mirror of
https://github.com/OpenRCT2/OpenRCT2
synced 2026-01-15 11:03:00 +01:00
Add parameter visitors to ride related actions
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
/*****************************************************************************
|
||||
* Copyright (c) 2014-2019 OpenRCT2 developers
|
||||
* Copyright (c) 2014-2020 OpenRCT2 developers
|
||||
*
|
||||
* For a complete list of all authors, please refer to contributors.md
|
||||
* Interested in contributing? Visit https://github.com/OpenRCT2/OpenRCT2
|
||||
@@ -148,6 +148,10 @@ class GameActionParameterVisitor
|
||||
public:
|
||||
virtual ~GameActionParameterVisitor() = default;
|
||||
|
||||
virtual void Visit(const std::string_view& name, bool& param)
|
||||
{
|
||||
}
|
||||
|
||||
virtual void Visit(const std::string_view& name, int32_t& param)
|
||||
{
|
||||
}
|
||||
@@ -156,6 +160,12 @@ public:
|
||||
{
|
||||
}
|
||||
|
||||
void Visit(CoordsXY& param)
|
||||
{
|
||||
Visit("x", param.x);
|
||||
Visit("y", param.y);
|
||||
}
|
||||
|
||||
void Visit(CoordsXYZD& param)
|
||||
{
|
||||
Visit("x", param.x);
|
||||
@@ -171,6 +181,11 @@ public:
|
||||
Visit(name, value);
|
||||
param = static_cast<T>(value);
|
||||
}
|
||||
|
||||
template<typename T, size_t _TypeID> void Visit(const std::string_view& name, NetworkObjectId_t<T, _TypeID>& param)
|
||||
{
|
||||
Visit(name, param.id);
|
||||
}
|
||||
};
|
||||
|
||||
struct GameAction
|
||||
|
||||
@@ -39,7 +39,7 @@ public:
|
||||
|
||||
void AcceptParameters(GameActionParameterVisitor & visitor) override
|
||||
{
|
||||
visitor.Visit("id", _spriteIndex);
|
||||
visitor.Visit("peep", _spriteIndex);
|
||||
visitor.Visit("name", _name);
|
||||
}
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*****************************************************************************
|
||||
* Copyright (c) 2014-2019 OpenRCT2 developers
|
||||
* Copyright (c) 2014-2020 OpenRCT2 developers
|
||||
*
|
||||
* For a complete list of all authors, please refer to contributors.md
|
||||
* Interested in contributing? Visit https://github.com/OpenRCT2/OpenRCT2
|
||||
@@ -30,6 +30,13 @@ public:
|
||||
{
|
||||
}
|
||||
|
||||
void AcceptParameters(GameActionParameterVisitor & visitor) override
|
||||
{
|
||||
visitor.Visit(_loc);
|
||||
visitor.Visit("ride", _rideIndex);
|
||||
visitor.Visit("mazeEntry", _mazeEntry);
|
||||
}
|
||||
|
||||
void Serialise(DataSerialiser & stream) override
|
||||
{
|
||||
GameAction::Serialise(stream);
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*****************************************************************************
|
||||
* Copyright (c) 2014-2019 OpenRCT2 developers
|
||||
* Copyright (c) 2014-2020 OpenRCT2 developers
|
||||
*
|
||||
* For a complete list of all authors, please refer to contributors.md
|
||||
* Interested in contributing? Visit https://github.com/OpenRCT2/OpenRCT2
|
||||
@@ -67,6 +67,14 @@ public:
|
||||
{
|
||||
}
|
||||
|
||||
void AcceptParameters(GameActionParameterVisitor & visitor) override
|
||||
{
|
||||
visitor.Visit(_loc);
|
||||
visitor.Visit("ride", _rideIndex);
|
||||
visitor.Visit("mode", _mode);
|
||||
visitor.Visit("isInitialPlacement", _initialPlacement);
|
||||
}
|
||||
|
||||
void Serialise(DataSerialiser & stream) override
|
||||
{
|
||||
GameAction::Serialise(stream);
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*****************************************************************************
|
||||
* Copyright (c) 2014-2019 OpenRCT2 developers
|
||||
* Copyright (c) 2014-2020 OpenRCT2 developers
|
||||
*
|
||||
* For a complete list of all authors, please refer to contributors.md
|
||||
* Interested in contributing? Visit https://github.com/OpenRCT2/OpenRCT2
|
||||
@@ -45,6 +45,12 @@ public:
|
||||
{
|
||||
}
|
||||
|
||||
void AcceptParameters(GameActionParameterVisitor & visitor) override
|
||||
{
|
||||
visitor.Visit("ride", _rideIndex);
|
||||
visitor.Visit("modifyType", _modifyType);
|
||||
}
|
||||
|
||||
uint32_t GetCooldownTime() const override
|
||||
{
|
||||
return 1000;
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*****************************************************************************
|
||||
* Copyright (c) 2014-2019 OpenRCT2 developers
|
||||
* Copyright (c) 2014-2020 OpenRCT2 developers
|
||||
*
|
||||
* For a complete list of all authors, please refer to contributors.md
|
||||
* Interested in contributing? Visit https://github.com/OpenRCT2/OpenRCT2
|
||||
@@ -40,6 +40,15 @@ public:
|
||||
{
|
||||
}
|
||||
|
||||
void AcceptParameters(GameActionParameterVisitor & visitor) override
|
||||
{
|
||||
visitor.Visit(_loc);
|
||||
visitor.Visit("direction", _direction);
|
||||
visitor.Visit("ride", _rideIndex);
|
||||
visitor.Visit("station", _stationNum);
|
||||
visitor.Visit("isExit", _isExit);
|
||||
}
|
||||
|
||||
uint16_t GetActionFlags() const override
|
||||
{
|
||||
return GameAction::GetActionFlags();
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*****************************************************************************
|
||||
* Copyright (c) 2014-2019 OpenRCT2 developers
|
||||
* Copyright (c) 2014-2020 OpenRCT2 developers
|
||||
*
|
||||
* For a complete list of all authors, please refer to contributors.md
|
||||
* Interested in contributing? Visit https://github.com/OpenRCT2/OpenRCT2
|
||||
@@ -33,6 +33,14 @@ public:
|
||||
{
|
||||
}
|
||||
|
||||
void AcceptParameters(GameActionParameterVisitor & visitor) override
|
||||
{
|
||||
visitor.Visit(_loc);
|
||||
visitor.Visit("ride", _rideIndex);
|
||||
visitor.Visit("station", _stationNum);
|
||||
visitor.Visit("isExit", _isExit);
|
||||
}
|
||||
|
||||
uint16_t GetActionFlags() const override
|
||||
{
|
||||
return GameAction::GetActionFlags();
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*****************************************************************************
|
||||
* Copyright (c) 2014-2019 OpenRCT2 developers
|
||||
* Copyright (c) 2014-2020 OpenRCT2 developers
|
||||
*
|
||||
* For a complete list of all authors, please refer to contributors.md
|
||||
* Interested in contributing? Visit https://github.com/OpenRCT2/OpenRCT2
|
||||
@@ -55,6 +55,14 @@ public:
|
||||
{
|
||||
}
|
||||
|
||||
void AcceptParameters(GameActionParameterVisitor & visitor) override
|
||||
{
|
||||
visitor.Visit("ride", _rideIndex);
|
||||
visitor.Visit("type", _type);
|
||||
visitor.Visit("value", _value);
|
||||
visitor.Visit("index", _index);
|
||||
}
|
||||
|
||||
uint16_t GetActionFlags() const override
|
||||
{
|
||||
return GameAction::GetActionFlags() | GA_FLAGS::ALLOW_WHILE_PAUSED;
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*****************************************************************************
|
||||
* Copyright (c) 2014-2019 OpenRCT2 developers
|
||||
* Copyright (c) 2014-2020 OpenRCT2 developers
|
||||
*
|
||||
* For a complete list of all authors, please refer to contributors.md
|
||||
* Interested in contributing? Visit https://github.com/OpenRCT2/OpenRCT2
|
||||
@@ -37,6 +37,13 @@ public:
|
||||
{
|
||||
}
|
||||
|
||||
void AcceptParameters(GameActionParameterVisitor & visitor) override
|
||||
{
|
||||
visitor.Visit(_loc);
|
||||
visitor.Visit("trackType", _trackType);
|
||||
visitor.Visit("colourScheme", _newColourScheme);
|
||||
}
|
||||
|
||||
uint16_t GetActionFlags() const override
|
||||
{
|
||||
return GameAction::GetActionFlags() | GA_FLAGS::ALLOW_WHILE_PAUSED;
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*****************************************************************************
|
||||
* Copyright (c) 2014-2019 OpenRCT2 developers
|
||||
* Copyright (c) 2014-2020 OpenRCT2 developers
|
||||
*
|
||||
* For a complete list of all authors, please refer to contributors.md
|
||||
* Interested in contributing? Visit https://github.com/OpenRCT2/OpenRCT2
|
||||
@@ -38,6 +38,12 @@ public:
|
||||
{
|
||||
}
|
||||
|
||||
void AcceptParameters(GameActionParameterVisitor & visitor) override
|
||||
{
|
||||
visitor.Visit("ride", _rideIndex);
|
||||
visitor.Visit("name", _name);
|
||||
}
|
||||
|
||||
uint16_t GetActionFlags() const override
|
||||
{
|
||||
return GameAction::GetActionFlags() | GA_FLAGS::ALLOW_WHILE_PAUSED;
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*****************************************************************************
|
||||
* Copyright (c) 2014-2019 OpenRCT2 developers
|
||||
* Copyright (c) 2014-2020 OpenRCT2 developers
|
||||
*
|
||||
* For a complete list of all authors, please refer to contributors.md
|
||||
* Interested in contributing? Visit https://github.com/OpenRCT2/OpenRCT2
|
||||
@@ -41,6 +41,13 @@ public:
|
||||
{
|
||||
}
|
||||
|
||||
void AcceptParameters(GameActionParameterVisitor & visitor) override
|
||||
{
|
||||
visitor.Visit("ride", _rideIndex);
|
||||
visitor.Visit("price", _price);
|
||||
visitor.Visit("isPrimaryPrice", _primaryPrice);
|
||||
}
|
||||
|
||||
uint16_t GetActionFlags() const override
|
||||
{
|
||||
return GameAction::GetActionFlags() | GA_FLAGS::ALLOW_WHILE_PAUSED;
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*****************************************************************************
|
||||
* Copyright (c) 2014-2019 OpenRCT2 developers
|
||||
* Copyright (c) 2014-2020 OpenRCT2 developers
|
||||
*
|
||||
* For a complete list of all authors, please refer to contributors.md
|
||||
* Interested in contributing? Visit https://github.com/OpenRCT2/OpenRCT2
|
||||
@@ -46,6 +46,13 @@ public:
|
||||
{
|
||||
}
|
||||
|
||||
void AcceptParameters(GameActionParameterVisitor & visitor) override
|
||||
{
|
||||
visitor.Visit("ride", _rideIndex);
|
||||
visitor.Visit("setting", _setting);
|
||||
visitor.Visit("value", _value);
|
||||
}
|
||||
|
||||
uint16_t GetActionFlags() const override
|
||||
{
|
||||
return GameAction::GetActionFlags() | GA_FLAGS::ALLOW_WHILE_PAUSED;
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*****************************************************************************
|
||||
* Copyright (c) 2014-2019 OpenRCT2 developers
|
||||
* Copyright (c) 2014-2020 OpenRCT2 developers
|
||||
*
|
||||
* For a complete list of all authors, please refer to contributors.md
|
||||
* Interested in contributing? Visit https://github.com/OpenRCT2/OpenRCT2
|
||||
@@ -46,6 +46,12 @@ public:
|
||||
{
|
||||
}
|
||||
|
||||
void AcceptParameters(GameActionParameterVisitor & visitor) override
|
||||
{
|
||||
visitor.Visit("ride", _rideIndex);
|
||||
visitor.Visit("status", _status);
|
||||
}
|
||||
|
||||
uint16_t GetActionFlags() const override
|
||||
{
|
||||
return GameAction::GetActionFlags() | GA_FLAGS::ALLOW_WHILE_PAUSED;
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*****************************************************************************
|
||||
* Copyright (c) 2014-2019 OpenRCT2 developers
|
||||
* Copyright (c) 2014-2020 OpenRCT2 developers
|
||||
*
|
||||
* For a complete list of all authors, please refer to contributors.md
|
||||
* Interested in contributing? Visit https://github.com/OpenRCT2/OpenRCT2
|
||||
@@ -57,6 +57,14 @@ public:
|
||||
{
|
||||
}
|
||||
|
||||
void AcceptParameters(GameActionParameterVisitor & visitor) override
|
||||
{
|
||||
visitor.Visit("ride", _rideIndex);
|
||||
visitor.Visit("type", _type);
|
||||
visitor.Visit("value", _value);
|
||||
visitor.Visit("colour", _colour);
|
||||
}
|
||||
|
||||
uint16_t GetActionFlags() const override
|
||||
{
|
||||
return GameAction::GetActionFlags() | GA_FLAGS::ALLOW_WHILE_PAUSED;
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*****************************************************************************
|
||||
* Copyright (c) 2014-2019 OpenRCT2 developers
|
||||
* Copyright (c) 2014-2020 OpenRCT2 developers
|
||||
*
|
||||
* For a complete list of all authors, please refer to contributors.md
|
||||
* Interested in contributing? Visit https://github.com/OpenRCT2/OpenRCT2
|
||||
@@ -50,6 +50,11 @@ public:
|
||||
{
|
||||
}
|
||||
|
||||
void AcceptParameters(GameActionParameterVisitor & visitor) override
|
||||
{
|
||||
visitor.Visit(_loc);
|
||||
}
|
||||
|
||||
uint16_t GetActionFlags() const override
|
||||
{
|
||||
return GameActionBase::GetActionFlags();
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*****************************************************************************
|
||||
* Copyright (c) 2014-2019 OpenRCT2 developers
|
||||
* Copyright (c) 2014-2020 OpenRCT2 developers
|
||||
*
|
||||
* For a complete list of all authors, please refer to contributors.md
|
||||
* Interested in contributing? Visit https://github.com/OpenRCT2/OpenRCT2
|
||||
@@ -74,6 +74,18 @@ public:
|
||||
_origin.direction &= 3;
|
||||
}
|
||||
|
||||
void AcceptParameters(GameActionParameterVisitor & visitor) override
|
||||
{
|
||||
visitor.Visit(_origin);
|
||||
visitor.Visit("ride", _rideIndex);
|
||||
visitor.Visit("trackType", _trackType);
|
||||
visitor.Visit("brakeSpeed", _brakeSpeed);
|
||||
visitor.Visit("colour", _colour);
|
||||
visitor.Visit("seatRotation", _seatRotation);
|
||||
visitor.Visit("trackPlaceFlags", _trackPlaceFlags);
|
||||
visitor.Visit("isFromTrackDesign", _fromTrackDesign);
|
||||
}
|
||||
|
||||
uint16_t GetActionFlags() const override final
|
||||
{
|
||||
return GameAction::GetActionFlags();
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*****************************************************************************
|
||||
* Copyright (c) 2014-2019 OpenRCT2 developers
|
||||
* Copyright (c) 2014-2020 OpenRCT2 developers
|
||||
*
|
||||
* For a complete list of all authors, please refer to contributors.md
|
||||
* Interested in contributing? Visit https://github.com/OpenRCT2/OpenRCT2
|
||||
@@ -39,6 +39,13 @@ public:
|
||||
_origin.direction &= 3;
|
||||
}
|
||||
|
||||
void AcceptParameters(GameActionParameterVisitor & visitor) override
|
||||
{
|
||||
visitor.Visit(_origin);
|
||||
visitor.Visit("trackType", _trackType);
|
||||
visitor.Visit("sequence", _sequence);
|
||||
}
|
||||
|
||||
uint16_t GetActionFlags() const override
|
||||
{
|
||||
return GameAction::GetActionFlags();
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*****************************************************************************
|
||||
* Copyright (c) 2014-2019 OpenRCT2 developers
|
||||
* Copyright (c) 2014-2020 OpenRCT2 developers
|
||||
*
|
||||
* For a complete list of all authors, please refer to contributors.md
|
||||
* Interested in contributing? Visit https://github.com/OpenRCT2/OpenRCT2
|
||||
@@ -28,6 +28,13 @@ public:
|
||||
{
|
||||
}
|
||||
|
||||
void AcceptParameters(GameActionParameterVisitor & visitor) override
|
||||
{
|
||||
visitor.Visit(_loc);
|
||||
visitor.Visit("trackType", _trackType);
|
||||
visitor.Visit("brakeSpeed", _brakeSpeed);
|
||||
}
|
||||
|
||||
uint16_t GetActionFlags() const override
|
||||
{
|
||||
return GameAction::GetActionFlags() | GA_FLAGS::ALLOW_WHILE_PAUSED;
|
||||
|
||||
@@ -899,6 +899,11 @@ public:
|
||||
{
|
||||
}
|
||||
|
||||
void Visit(const std::string_view& name, bool& param) override
|
||||
{
|
||||
param = _dukValue[name].as_bool();
|
||||
}
|
||||
|
||||
void Visit(const std::string_view& name, int32_t& param) override
|
||||
{
|
||||
param = _dukValue[name].as_int();
|
||||
@@ -921,6 +926,12 @@ public:
|
||||
{
|
||||
}
|
||||
|
||||
void Visit(const std::string_view& name, bool& param) override
|
||||
{
|
||||
std::string szName(name);
|
||||
_dukObject.Set(szName.c_str(), param);
|
||||
}
|
||||
|
||||
void Visit(const std::string_view& name, int32_t& param) override
|
||||
{
|
||||
std::string szName(name);
|
||||
@@ -976,9 +987,24 @@ void ScriptEngine::RunGameActionHooks(const GameAction& action, std::unique_ptr<
|
||||
static std::unique_ptr<GameAction> CreateGameActionFromActionId(const std::string& actionid)
|
||||
{
|
||||
const static std::unordered_map<std::string, uint32_t> ActionNameToType = {
|
||||
{ "parksetname", GAME_COMMAND_SET_PARK_NAME },
|
||||
{ "smallsceneryplace", GAME_COMMAND_PLACE_SCENERY },
|
||||
{ "guestsetname", GAME_COMMAND_SET_GUEST_NAME },
|
||||
{ "parksetname", GAME_COMMAND_SET_PARK_NAME },
|
||||
{ "ridecreate", GAME_COMMAND_CREATE_RIDE },
|
||||
{ "ridedemolish", GAME_COMMAND_DEMOLISH_RIDE },
|
||||
{ "rideentranceexitplace", GAME_COMMAND_PLACE_RIDE_ENTRANCE_OR_EXIT },
|
||||
{ "rideentranceexitremove", GAME_COMMAND_REMOVE_RIDE_ENTRANCE_OR_EXIT },
|
||||
{ "ridesetappearance", GAME_COMMAND_SET_RIDE_APPEARANCE },
|
||||
{ "ridesetcolourscheme.hpp", GAME_COMMAND_SET_COLOUR_SCHEME },
|
||||
{ "ridesetname", GAME_COMMAND_SET_RIDE_NAME },
|
||||
{ "ridesetprice", GAME_COMMAND_SET_RIDE_PRICE },
|
||||
{ "ridesetsetting", GAME_COMMAND_SET_RIDE_SETTING },
|
||||
{ "ridesetstatus", GAME_COMMAND_SET_RIDE_STATUS },
|
||||
{ "ridesetvehicles", GAME_COMMAND_SET_RIDE_VEHICLES },
|
||||
{ "smallsceneryplace", GAME_COMMAND_PLACE_SCENERY },
|
||||
{ "trackdesign", GAME_COMMAND_PLACE_TRACK_DESIGN },
|
||||
{ "trackplace", GAME_COMMAND_PLACE_TRACK },
|
||||
{ "trackremove", GAME_COMMAND_REMOVE_TRACK },
|
||||
{ "tracksetbrakespeed", GAME_COMMAND_SET_BRAKES_SPEED },
|
||||
};
|
||||
|
||||
auto result = ActionNameToType.find(actionid);
|
||||
|
||||
Reference in New Issue
Block a user