1
0
mirror of https://github.com/OpenRCT2/OpenRCT2 synced 2026-01-15 11:03:00 +01:00

Make all GameAction types accessible to plugins (#12708)

* add ActionType

* Make all game actions available to plugins

Includes list of game actions in the .d.ts

* Add an overload for internal game actions

This allows things like Visual Studio Code to autocomplete

* action can be a string (custom gameactions)

* Increment OPENRCT2_PLUGIN_API_VERSION

* Add #12708 to changelog and tombomp to contributors.
This commit is contained in:
Tom Parsons
2020-09-10 12:30:56 +01:00
committed by GitHub
parent 11ebe78328
commit 9a30100a81
4 changed files with 146 additions and 3 deletions

View File

@@ -42,7 +42,7 @@
using namespace OpenRCT2;
using namespace OpenRCT2::Scripting;
static constexpr int32_t OPENRCT2_PLUGIN_API_VERSION = 4;
static constexpr int32_t OPENRCT2_PLUGIN_API_VERSION = 5;
struct ExpressionStringifier final
{
@@ -948,25 +948,84 @@ public:
};
const static std::unordered_map<std::string, uint32_t> ActionNameToType = {
{ "balloonpress", GAME_COMMAND_BALLOON_PRESS },
{ "bannerplace", GAME_COMMAND_PLACE_BANNER },
{ "bannerremove", GAME_COMMAND_REMOVE_BANNER },
{ "bannersetcolour", GAME_COMMAND_SET_BANNER_COLOUR },
{ "bannersetname", GAME_COMMAND_SET_BANNER_NAME },
{ "bannersetstyle", GAME_COMMAND_SET_BANNER_STYLE },
{ "clearscenery", GAME_COMMAND_CLEAR_SCENERY },
{ "climateset", GAME_COMMAND_SET_CLIMATE },
{ "footpathplace", GAME_COMMAND_PLACE_PATH },
{ "footpathplacefromtrack", GAME_COMMAND_PLACE_PATH_FROM_TRACK },
{ "footpathremove", GAME_COMMAND_REMOVE_PATH },
{ "footpathsceneryplace", GAME_COMMAND_PLACE_FOOTPATH_SCENERY },
{ "footpathsceneryremove", GAME_COMMAND_REMOVE_FOOTPATH_SCENERY },
{ "guestsetflags", GAME_COMMAND_GUEST_SET_FLAGS },
{ "guestsetname", GAME_COMMAND_SET_GUEST_NAME },
{ "landbuyrights", GAME_COMMAND_BUY_LAND_RIGHTS },
{ "landlower", GAME_COMMAND_LOWER_LAND },
{ "landraise", GAME_COMMAND_RAISE_LAND },
{ "landsetheight", GAME_COMMAND_SET_LAND_HEIGHT },
{ "landsetrights", GAME_COMMAND_SET_LAND_OWNERSHIP },
{ "landsmoothaction", GAME_COMMAND_EDIT_LAND_SMOOTH },
{ "largesceneryplace", GAME_COMMAND_PLACE_LARGE_SCENERY },
{ "largesceneryremove", GAME_COMMAND_REMOVE_LARGE_SCENERY },
{ "largescenerysetcolour", GAME_COMMAND_SET_SCENERY_COLOUR },
{ "loadorquit", GAME_COMMAND_LOAD_OR_QUIT },
{ "mazeplacetrack", GAME_COMMAND_PLACE_MAZE_DESIGN },
{ "mazesettrack", GAME_COMMAND_SET_MAZE_TRACK },
{ "networkmodifygroup", GAME_COMMAND_MODIFY_GROUPS },
{ "parkentranceremove", GAME_COMMAND_REMOVE_PARK_ENTRANCE },
{ "parkmarketing", GAME_COMMAND_START_MARKETING_CAMPAIGN },
{ "parksetdate", GAME_COMMAND_SET_DATE },
{ "parksetloan", GAME_COMMAND_SET_CURRENT_LOAN },
{ "parksetname", GAME_COMMAND_SET_PARK_NAME },
{ "parksetparameter", GAME_COMMAND_SET_PARK_OPEN },
{ "parksetresearchfunding", GAME_COMMAND_SET_RESEARCH_FUNDING },
{ "pausetoggle", GAME_COMMAND_TOGGLE_PAUSE },
{ "peeppickup", GAME_COMMAND_PICKUP_GUEST },
{ "placeparkentrance", GAME_COMMAND_PLACE_PARK_ENTRANCE },
{ "placepeepspawn", GAME_COMMAND_PLACE_PEEP_SPAWN },
{ "playerkick", GAME_COMMAND_KICK_PLAYER },
{ "playersetgroup", GAME_COMMAND_SET_PLAYER_GROUP },
{ "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 },
{ "ridesetcolourscheme", 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 },
{ "scenariosetsetting", GAME_COMMAND_EDIT_SCENARIO_OPTIONS },
{ "setcheataction", GAME_COMMAND_CHEAT },
{ "setparkentrancefee", GAME_COMMAND_SET_PARK_ENTRANCE_FEE },
{ "signsetname", GAME_COMMAND_SET_SIGN_NAME },
{ "signsetstyle", GAME_COMMAND_SET_SIGN_STYLE },
{ "smallsceneryplace", GAME_COMMAND_PLACE_SCENERY },
{ "smallsceneryremove", GAME_COMMAND_REMOVE_SCENERY },
{ "stafffire", GAME_COMMAND_FIRE_STAFF_MEMBER },
{ "staffhire", GAME_COMMAND_HIRE_NEW_STAFF_MEMBER },
{ "staffsetcolour", GAME_COMMAND_SET_STAFF_COLOUR },
{ "staffsetcostume", GAME_COMMAND_SET_STAFF_COSTUME },
{ "staffsetname", GAME_COMMAND_SET_STAFF_NAME },
{ "staffsetorders", GAME_COMMAND_SET_STAFF_ORDERS },
{ "staffsetpatrolarea", GAME_COMMAND_SET_STAFF_PATROL },
{ "surfacesetstyle", GAME_COMMAND_CHANGE_SURFACE_STYLE },
{ "tilemodify", GAME_COMMAND_MODIFY_TILE },
{ "trackdesign", GAME_COMMAND_PLACE_TRACK_DESIGN },
{ "trackplace", GAME_COMMAND_PLACE_TRACK },
{ "trackremove", GAME_COMMAND_REMOVE_TRACK },
{ "tracksetbrakespeed", GAME_COMMAND_SET_BRAKES_SPEED },
{ "wallplace", GAME_COMMAND_PLACE_WALL },
{ "wallremove", GAME_COMMAND_REMOVE_WALL },
{ "wallsetcolour", GAME_COMMAND_SET_WALL_COLOUR },
{ "waterlower", GAME_COMMAND_LOWER_WATER },
{ "waterraise", GAME_COMMAND_RAISE_WATER },
{ "watersetheight", GAME_COMMAND_SET_WATER_HEIGHT }
};
static std::string GetActionName(uint32_t commandId)