diff --git a/src/openrct2/actions/StaffHireNewAction.hpp b/src/openrct2/actions/StaffHireNewAction.hpp index 9c9d334a8a..fc119002eb 100644 --- a/src/openrct2/actions/StaffHireNewAction.hpp +++ b/src/openrct2/actions/StaffHireNewAction.hpp @@ -68,6 +68,14 @@ public: { } + void AcceptParameters(GameActionParameterVisitor & visitor) override + { + visitor.Visit("autoPosition", _autoPosition); + visitor.Visit("staffType", _staffType); + visitor.Visit("entertainerType", _entertainerType); + visitor.Visit("staffOrders", _staffOrders); + } + uint16_t GetActionFlags() const override { return GameAction::GetActionFlags() | GameActions::Flags::AllowWhilePaused; diff --git a/src/openrct2/scripting/ScriptEngine.cpp b/src/openrct2/scripting/ScriptEngine.cpp index 85db8b1dc5..16d9c86680 100644 --- a/src/openrct2/scripting/ScriptEngine.cpp +++ b/src/openrct2/scripting/ScriptEngine.cpp @@ -15,6 +15,7 @@ # include "../actions/CustomAction.hpp" # include "../actions/GameAction.h" # include "../actions/RideCreateAction.hpp" +# include "../actions/StaffHireNewAction.hpp" # include "../config/Config.h" # include "../core/File.h" # include "../core/FileScanner.h" @@ -43,7 +44,7 @@ using namespace OpenRCT2; using namespace OpenRCT2::Scripting; -static constexpr int32_t OPENRCT2_PLUGIN_API_VERSION = 13; +static constexpr int32_t OPENRCT2_PLUGIN_API_VERSION = 14; struct ExpressionStringifier final { @@ -857,6 +858,14 @@ DukValue ScriptEngine::GameActionResultToDuk(const GameAction& action, const std obj.Set("ride", rideCreateResult.rideIndex); } } + else if (action.GetType() == GAME_COMMAND_HIRE_NEW_STAFF_MEMBER) + { + auto& staffHireResult = static_cast(*result.get()); + if (staffHireResult.peepSriteIndex != SPRITE_INDEX_NULL) + { + obj.Set("peep", staffHireResult.peepSriteIndex); + } + } return obj.Take(); }