diff --git a/distribution/changelog.txt b/distribution/changelog.txt index d36eaee289..ba7af8b636 100644 --- a/distribution/changelog.txt +++ b/distribution/changelog.txt @@ -1,5 +1,6 @@ 0.4.4 (in development) ------------------------------------------------------------------------ +- Improved: [#18826] [Plugin] Added all actions and their documentation to plugin API. 0.4.3 (2022-12-14) ------------------------------------------------------------------------ diff --git a/distribution/openrct2.d.ts b/distribution/openrct2.d.ts index 0c68e395a7..b530977d62 100644 --- a/distribution/openrct2.d.ts +++ b/distribution/openrct2.d.ts @@ -273,8 +273,89 @@ declare global { * @param args The action parameters. * @param callback The function to be called with the result of the action. */ - queryAction(action: ActionType, args: object, callback?: (result: GameActionResult) => void): void; queryAction(action: string, args: object, callback?: (result: GameActionResult) => void): void; + queryAction(action: ActionType, args: object, callback?: (result: GameActionResult) => void): void; + queryAction(action: "balloonpress", args: BalloonPressArgs, callback?: (result: GameActionResult) => void): void; + queryAction(action: "bannerplace", args: BannerPlaceArgs, callback?: (result: GameActionResult) => void): void; + queryAction(action: "bannerremove", args: BannerRemoveArgs, callback?: (result: GameActionResult) => void): void; + queryAction(action: "bannersetcolour", args: BannerSetColourArgs, callback?: (result: GameActionResult) => void): void; + queryAction(action: "bannersetname", args: BannerSetNameArgs, callback?: (result: GameActionResult) => void): void; + queryAction(action: "bannersetstyle", args: BannerSetStyleArgs, callback?: (result: GameActionResult) => void): void; + queryAction(action: "changemapsize", args: ChangeMapSizeArgs, callback?: (result: GameActionResult) => void): void; + queryAction(action: "clearscenery", args: ClearSceneryArgs, callback?: (result: GameActionResult) => void): void; + queryAction(action: "climateset", args: ClimateSetArgs, callback?: (result: GameActionResult) => void): void; + queryAction(action: "footpathadditionplace", args: FootpathAdditionPlaceArgs, callback?: (result: GameActionResult) => void): void; + queryAction(action: "footpathadditionremove", args: FootpathAdditionRemoveArgs, callback?: (result: GameActionResult) => void): void; + queryAction(action: "footpathplace", args: FootpathPlaceArgs, callback?: (result: GameActionResult) => void): void; + queryAction(action: "footpathlayoutplace", args: FootpathLayoutPlaceArgs, callback?: (result: GameActionResult) => void): void; + queryAction(action: "footpathremove", args: FootpathRemoveArgs, callback?: (result: GameActionResult) => void): void; + queryAction(action: "guestsetflags", args: GuestSetFlagsArgs, callback?: (result: GameActionResult) => void): void; + queryAction(action: "guestsetname", args: GuestSetNameArgs, callback?: (result: GameActionResult) => void): void; + queryAction(action: "landbuyrights", args: LandBuyRightsArgs, callback?: (result: GameActionResult) => void): void; + queryAction(action: "landlower", args: LandLowerArgs, callback?: (result: GameActionResult) => void): void; + queryAction(action: "landraise", args: LandRaiseArgs, callback?: (result: GameActionResult) => void): void; + queryAction(action: "landsetheight", args: LandSetHeightArgs, callback?: (result: GameActionResult) => void): void; + queryAction(action: "landsetrights", args: LandSetRightsArgs, callback?: (result: GameActionResult) => void): void; + queryAction(action: "landsmooth", args: LandSmoothArgs, callback?: (result: GameActionResult) => void): void; + queryAction(action: "largesceneryplace", args: LargeSceneryPlaceArgs, callback?: (result: GameActionResult) => void): void; + queryAction(action: "largesceneryremove", args: LargeSceneryRemoveArgs, callback?: (result: GameActionResult) => void): void; + queryAction(action: "largescenerysetcolour", args: LargeScenerySetColourArgs, callback?: (result: GameActionResult) => void): void; + queryAction(action: "loadorquit", args: LoadOrQuitArgs, callback?: (result: GameActionResult) => void): void; + queryAction(action: "mazeplacetrack", args: MazePlaceTrackArgs, callback?: (result: GameActionResult) => void): void; + queryAction(action: "mazesettrack", args: MazeSetTrackArgs, callback?: (result: GameActionResult) => void): void; + queryAction(action: "networkmodifygroup", args: NetworkModifyGroupArgs, callback?: (result: GameActionResult) => void): void; + queryAction(action: "parkentranceplace", args: ParkEntrancePlaceArgs, callback?: (result: GameActionResult) => void): void; + queryAction(action: "parkentranceremove", args: ParkEntranceRemoveArgs, callback?: (result: GameActionResult) => void): void; + queryAction(action: "parkmarketing", args: ParkMarketingArgs, callback?: (result: GameActionResult) => void): void; + queryAction(action: "parksetdate", args: ParkSetDateArgs, callback?: (result: GameActionResult) => void): void; + queryAction(action: "parksetloan", args: ParkSetLoanArgs, callback?: (result: GameActionResult) => void): void; + queryAction(action: "parksetname", args: ParkSetNameArgs, callback?: (result: GameActionResult) => void): void; + queryAction(action: "parksetparameter", args: ParkSetParameterArgs, callback?: (result: GameActionResult) => void): void; + queryAction(action: "parksetresearchfunding", args: ParkSetResearchFundingArgs, callback?: (result: GameActionResult) => void): void; + queryAction(action: "pausetoggle", args: PauseToggleArgs, callback?: (result: GameActionResult) => void): void; + queryAction(action: "peeppickup", args: PeepPickupArgs, callback?: (result: GameActionResult) => void): void; + queryAction(action: "peepspawnplace", args: PeepSpawnPlaceArgs, callback?: (result: GameActionResult) => void): void; + queryAction(action: "playerkick", args: PlayerKickArgs, callback?: (result: GameActionResult) => void): void; + queryAction(action: "playersetgroup", args: PlayerSetGroupArgs, callback?: (result: GameActionResult) => void): void; + queryAction(action: "ridecreate", args: RideCreateArgs, callback?: (result: GameActionResult) => void): void; + queryAction(action: "ridedemolish", args: RideDemolishArgs, callback?: (result: GameActionResult) => void): void; + queryAction(action: "rideentranceexitplace", args: RideEntranceExitPlaceArgs, callback?: (result: GameActionResult) => void): void; + queryAction(action: "rideentranceexitremove", args: RideEntranceExitRemoveArgs, callback?: (result: GameActionResult) => void): void; + queryAction(action: "ridefreezerating", args: RideFreezeRatingArgs, callback?: (result: GameActionResult) => void): void; + queryAction(action: "ridesetappearance", args: RideSetAppearanceArgs, callback?: (result: GameActionResult) => void): void; + queryAction(action: "ridesetcolourscheme", args: RideSetColourSchemeArgs, callback?: (result: GameActionResult) => void): void; + queryAction(action: "ridesetname", args: RideSetNameArgs, callback?: (result: GameActionResult) => void): void; + queryAction(action: "ridesetprice", args: RideSetPriceArgs, callback?: (result: GameActionResult) => void): void; + queryAction(action: "ridesetsetting", args: RideSetSettingArgs, callback?: (result: GameActionResult) => void): void; + queryAction(action: "ridesetstatus", args: RideSetStatusArgs, callback?: (result: GameActionResult) => void): void; + queryAction(action: "ridesetvehicle", args: RideSetVehicleArgs, callback?: (result: GameActionResult) => void): void; + queryAction(action: "scenariosetsetting", args: ScenarioSetSettingArgs, callback?: (result: GameActionResult) => void): void; + queryAction(action: "setcheat", args: SetCheatArgs, callback?: (result: GameActionResult) => void): void; + queryAction(action: "setparkentrancefee", args: SetParkEntranceFeeArgs, callback?: (result: GameActionResult) => void): void; + queryAction(action: "signsetname", args: SignSetNameArgs, callback?: (result: GameActionResult) => void): void; + queryAction(action: "signsetstyle", args: SignSetStyleArgs, callback?: (result: GameActionResult) => void): void; + queryAction(action: "smallsceneryplace", args: SmallSceneryPlaceArgs, callback?: (result: GameActionResult) => void): void; + queryAction(action: "smallsceneryremove", args: SmallSceneryRemoveArgs, callback?: (result: GameActionResult) => void): void; + queryAction(action: "smallscenerysetcolour", args: SmallScenerySetColourArgs, callback?: (result: GameActionResult) => void): void; + queryAction(action: "stafffire", args: StaffFireArgs, callback?: (result: GameActionResult) => void): void; + queryAction(action: "staffhire", args: StaffHireArgs, callback?: (result: GameActionResult) => void): void; + queryAction(action: "staffsetcolour", args: StaffSetColourArgs, callback?: (result: GameActionResult) => void): void; + queryAction(action: "staffsetcostume", args: StaffSetCostumeArgs, callback?: (result: GameActionResult) => void): void; + queryAction(action: "staffsetname", args: StaffSetNameArgs, callback?: (result: GameActionResult) => void): void; + queryAction(action: "staffsetorders", args: StaffSetOrdersArgs, callback?: (result: GameActionResult) => void): void; + queryAction(action: "staffsetpatrolarea", args: StaffSetPatrolAreaArgs, callback?: (result: GameActionResult) => void): void; + queryAction(action: "surfacesetstyle", args: SurfaceSetStyleArgs, callback?: (result: GameActionResult) => void): void; + queryAction(action: "tilemodify", args: TileModifyArgs, callback?: (result: GameActionResult) => void): void; + queryAction(action: "trackdesign", args: TrackDesignArgs, callback?: (result: GameActionResult) => void): void; + queryAction(action: "trackplace", args: TrackPlaceArgs, callback?: (result: GameActionResult) => void): void; + queryAction(action: "trackremove", args: TrackRemoveArgs, callback?: (result: GameActionResult) => void): void; + queryAction(action: "tracksetbrakespeed", args: TrackSetBrakeSpeedArgs, callback?: (result: GameActionResult) => void): void; + queryAction(action: "wallplace", args: WallPlaceArgs, callback?: (result: GameActionResult) => void): void; + queryAction(action: "wallremove", args: WallRemoveArgs, callback?: (result: GameActionResult) => void): void; + queryAction(action: "wallsetcolour", args: WallSetColourArgs, callback?: (result: GameActionResult) => void): void; + queryAction(action: "waterlower", args: WaterLowerArgs, callback?: (result: GameActionResult) => void): void; + queryAction(action: "waterraise", args: WaterRaiseArgs, callback?: (result: GameActionResult) => void): void; + queryAction(action: "watersetheight", args: WaterSetHeightArgs, callback?: (result: GameActionResult) => void): void; /** * Executes a game action. In a network game, this will send a request to the server and wait @@ -283,8 +364,89 @@ declare global { * @param args The action parameters. * @param callback The function to be called with the result of the action. */ - executeAction(action: ActionType, args: object, callback?: (result: GameActionResult) => void): void; executeAction(action: string, args: object, callback?: (result: GameActionResult) => void): void; + executeAction(action: ActionType, args: object, callback?: (result: GameActionResult) => void): void; + executeAction(action: "balloonpress", args: BalloonPressArgs, callback?: (result: GameActionResult) => void): void; + executeAction(action: "bannerplace", args: BannerPlaceArgs, callback?: (result: GameActionResult) => void): void; + executeAction(action: "bannerremove", args: BannerRemoveArgs, callback?: (result: GameActionResult) => void): void; + executeAction(action: "bannersetcolour", args: BannerSetColourArgs, callback?: (result: GameActionResult) => void): void; + executeAction(action: "bannersetname", args: BannerSetNameArgs, callback?: (result: GameActionResult) => void): void; + executeAction(action: "bannersetstyle", args: BannerSetStyleArgs, callback?: (result: GameActionResult) => void): void; + executeAction(action: "changemapsize", args: ChangeMapSizeArgs, callback?: (result: GameActionResult) => void): void; + executeAction(action: "clearscenery", args: ClearSceneryArgs, callback?: (result: GameActionResult) => void): void; + executeAction(action: "climateset", args: ClimateSetArgs, callback?: (result: GameActionResult) => void): void; + executeAction(action: "footpathadditionplace", args: FootpathAdditionPlaceArgs, callback?: (result: GameActionResult) => void): void; + executeAction(action: "footpathadditionremove", args: FootpathAdditionRemoveArgs, callback?: (result: GameActionResult) => void): void; + executeAction(action: "footpathplace", args: FootpathPlaceArgs, callback?: (result: GameActionResult) => void): void; + executeAction(action: "footpathlayoutplace", args: FootpathLayoutPlaceArgs, callback?: (result: GameActionResult) => void): void; + executeAction(action: "footpathremove", args: FootpathRemoveArgs, callback?: (result: GameActionResult) => void): void; + executeAction(action: "guestsetflags", args: GuestSetFlagsArgs, callback?: (result: GameActionResult) => void): void; + executeAction(action: "guestsetname", args: GuestSetNameArgs, callback?: (result: GameActionResult) => void): void; + executeAction(action: "landbuyrights", args: LandBuyRightsArgs, callback?: (result: GameActionResult) => void): void; + executeAction(action: "landlower", args: LandLowerArgs, callback?: (result: GameActionResult) => void): void; + executeAction(action: "landraise", args: LandRaiseArgs, callback?: (result: GameActionResult) => void): void; + executeAction(action: "landsetheight", args: LandSetHeightArgs, callback?: (result: GameActionResult) => void): void; + executeAction(action: "landsetrights", args: LandSetRightsArgs, callback?: (result: GameActionResult) => void): void; + executeAction(action: "landsmooth", args: LandSmoothArgs, callback?: (result: GameActionResult) => void): void; + executeAction(action: "largesceneryplace", args: LargeSceneryPlaceArgs, callback?: (result: GameActionResult) => void): void; + executeAction(action: "largesceneryremove", args: LargeSceneryRemoveArgs, callback?: (result: GameActionResult) => void): void; + executeAction(action: "largescenerysetcolour", args: LargeScenerySetColourArgs, callback?: (result: GameActionResult) => void): void; + executeAction(action: "loadorquit", args: LoadOrQuitArgs, callback?: (result: GameActionResult) => void): void; + executeAction(action: "mazeplacetrack", args: MazePlaceTrackArgs, callback?: (result: GameActionResult) => void): void; + executeAction(action: "mazesettrack", args: MazeSetTrackArgs, callback?: (result: GameActionResult) => void): void; + executeAction(action: "networkmodifygroup", args: NetworkModifyGroupArgs, callback?: (result: GameActionResult) => void): void; + executeAction(action: "parkentranceplace", args: ParkEntrancePlaceArgs, callback?: (result: GameActionResult) => void): void; + executeAction(action: "parkentranceremove", args: ParkEntranceRemoveArgs, callback?: (result: GameActionResult) => void): void; + executeAction(action: "parkmarketing", args: ParkMarketingArgs, callback?: (result: GameActionResult) => void): void; + executeAction(action: "parksetdate", args: ParkSetDateArgs, callback?: (result: GameActionResult) => void): void; + executeAction(action: "parksetloan", args: ParkSetLoanArgs, callback?: (result: GameActionResult) => void): void; + executeAction(action: "parksetname", args: ParkSetNameArgs, callback?: (result: GameActionResult) => void): void; + executeAction(action: "parksetparameter", args: ParkSetParameterArgs, callback?: (result: GameActionResult) => void): void; + executeAction(action: "parksetresearchfunding", args: ParkSetResearchFundingArgs, callback?: (result: GameActionResult) => void): void; + executeAction(action: "pausetoggle", args: PauseToggleArgs, callback?: (result: GameActionResult) => void): void; + executeAction(action: "peeppickup", args: PeepPickupArgs, callback?: (result: GameActionResult) => void): void; + executeAction(action: "peepspawnplace", args: PeepSpawnPlaceArgs, callback?: (result: GameActionResult) => void): void; + executeAction(action: "playerkick", args: PlayerKickArgs, callback?: (result: GameActionResult) => void): void; + executeAction(action: "playersetgroup", args: PlayerSetGroupArgs, callback?: (result: GameActionResult) => void): void; + executeAction(action: "ridecreate", args: RideCreateArgs, callback?: (result: GameActionResult) => void): void; + executeAction(action: "ridedemolish", args: RideDemolishArgs, callback?: (result: GameActionResult) => void): void; + executeAction(action: "rideentranceexitplace", args: RideEntranceExitPlaceArgs, callback?: (result: GameActionResult) => void): void; + executeAction(action: "rideentranceexitremove", args: RideEntranceExitRemoveArgs, callback?: (result: GameActionResult) => void): void; + executeAction(action: "ridefreezerating", args: RideFreezeRatingArgs, callback?: (result: GameActionResult) => void): void; + executeAction(action: "ridesetappearance", args: RideSetAppearanceArgs, callback?: (result: GameActionResult) => void): void; + executeAction(action: "ridesetcolourscheme", args: RideSetColourSchemeArgs, callback?: (result: GameActionResult) => void): void; + executeAction(action: "ridesetname", args: RideSetNameArgs, callback?: (result: GameActionResult) => void): void; + executeAction(action: "ridesetprice", args: RideSetPriceArgs, callback?: (result: GameActionResult) => void): void; + executeAction(action: "ridesetsetting", args: RideSetSettingArgs, callback?: (result: GameActionResult) => void): void; + executeAction(action: "ridesetstatus", args: RideSetStatusArgs, callback?: (result: GameActionResult) => void): void; + executeAction(action: "ridesetvehicle", args: RideSetVehicleArgs, callback?: (result: GameActionResult) => void): void; + executeAction(action: "scenariosetsetting", args: ScenarioSetSettingArgs, callback?: (result: GameActionResult) => void): void; + executeAction(action: "setcheat", args: SetCheatArgs, callback?: (result: GameActionResult) => void): void; + executeAction(action: "setparkentrancefee", args: SetParkEntranceFeeArgs, callback?: (result: GameActionResult) => void): void; + executeAction(action: "signsetname", args: SignSetNameArgs, callback?: (result: GameActionResult) => void): void; + executeAction(action: "signsetstyle", args: SignSetStyleArgs, callback?: (result: GameActionResult) => void): void; + executeAction(action: "smallsceneryplace", args: SmallSceneryPlaceArgs, callback?: (result: GameActionResult) => void): void; + executeAction(action: "smallsceneryremove", args: SmallSceneryRemoveArgs, callback?: (result: GameActionResult) => void): void; + executeAction(action: "smallscenerysetcolour", args: SmallScenerySetColourArgs, callback?: (result: GameActionResult) => void): void; + executeAction(action: "stafffire", args: StaffFireArgs, callback?: (result: GameActionResult) => void): void; + executeAction(action: "staffhire", args: StaffHireArgs, callback?: (result: GameActionResult) => void): void; + executeAction(action: "staffsetcolour", args: StaffSetColourArgs, callback?: (result: GameActionResult) => void): void; + executeAction(action: "staffsetcostume", args: StaffSetCostumeArgs, callback?: (result: GameActionResult) => void): void; + executeAction(action: "staffsetname", args: StaffSetNameArgs, callback?: (result: GameActionResult) => void): void; + executeAction(action: "staffsetorders", args: StaffSetOrdersArgs, callback?: (result: GameActionResult) => void): void; + executeAction(action: "staffsetpatrolarea", args: StaffSetPatrolAreaArgs, callback?: (result: GameActionResult) => void): void; + executeAction(action: "surfacesetstyle", args: SurfaceSetStyleArgs, callback?: (result: GameActionResult) => void): void; + executeAction(action: "tilemodify", args: TileModifyArgs, callback?: (result: GameActionResult) => void): void; + executeAction(action: "trackdesign", args: TrackDesignArgs, callback?: (result: GameActionResult) => void): void; + executeAction(action: "trackplace", args: TrackPlaceArgs, callback?: (result: GameActionResult) => void): void; + executeAction(action: "trackremove", args: TrackRemoveArgs, callback?: (result: GameActionResult) => void): void; + executeAction(action: "tracksetbrakespeed", args: TrackSetBrakeSpeedArgs, callback?: (result: GameActionResult) => void): void; + executeAction(action: "wallplace", args: WallPlaceArgs, callback?: (result: GameActionResult) => void): void; + executeAction(action: "wallremove", args: WallRemoveArgs, callback?: (result: GameActionResult) => void): void; + executeAction(action: "wallsetcolour", args: WallSetColourArgs, callback?: (result: GameActionResult) => void): void; + executeAction(action: "waterlower", args: WaterLowerArgs, callback?: (result: GameActionResult) => void): void; + executeAction(action: "waterraise", args: WaterRaiseArgs, callback?: (result: GameActionResult) => void): void; + executeAction(action: "watersetheight", args: WaterSetHeightArgs, callback?: (result: GameActionResult) => void): void; /** * Subscribes to the given hook. @@ -446,11 +608,11 @@ declare global { "changemapsize" | "clearscenery" | "climateset" | - "footpathplace" | - "footpathplacefromtrack" | - "footpathremove" | "footpathadditionplace" | "footpathadditionremove" | + "footpathplace" | + "footpathlayoutplace" | + "footpathremove" | "guestsetflags" | "guestsetname" | "landbuyrights" | @@ -458,7 +620,7 @@ declare global { "landraise" | "landsetheight" | "landsetrights" | - "landsmoothaction" | + "landsmooth" | "largesceneryplace" | "largesceneryremove" | "largescenerysetcolour" | @@ -466,6 +628,7 @@ declare global { "mazeplacetrack" | "mazesettrack" | "networkmodifygroup" | + "parkentranceplace" | "parkentranceremove" | "parkmarketing" | "parksetdate" | @@ -475,27 +638,29 @@ declare global { "parksetresearchfunding" | "pausetoggle" | "peeppickup" | - "placeparkentrance" | - "placepeepspawn" | + "peepspawnplace" | "playerkick" | "playersetgroup" | "ridecreate" | "ridedemolish" | "rideentranceexitplace" | "rideentranceexitremove" | + "ridefreezerating" | "ridesetappearance" | "ridesetcolourscheme" | "ridesetname" | "ridesetprice" | "ridesetsetting" | "ridesetstatus" | - "ridesetvehicles" | + "ridesetvehicle" | "scenariosetsetting" | - "setcheataction" | + "setcheat" | "setparkentrancefee" | "signsetname" | + "signsetstyle" | "smallsceneryplace" | "smallsceneryremove" | + "smallscenerysetcolour" | "stafffire" | "staffhire" | "staffsetcolour" | @@ -516,6 +681,599 @@ declare global { "waterraise" | "watersetheight"; + + interface GameActionArgs { + flags?: number; // see GAME_COMMAND in openrct2/Game.h + } + + interface BalloonPressArgs extends GameActionArgs { + id: number; + } + + interface BannerPlaceArgs extends GameActionArgs { + x: number; + y: number; + z: number; + direction: number; + object: number; + primaryColour: number; + } + + interface BannerRemoveArgs extends GameActionArgs { + x: number; + y: number; + z: number; + direction: number; + } + + interface BannerSetColourArgs extends GameActionArgs { + x: number; + y: number; + z: number; + direction: number; + primaryColour: number; + } + + interface BannerSetNameArgs extends GameActionArgs { + id: number; + name: string; + } + + interface BannerSetStyleArgs extends GameActionArgs { + id: number; + type: number; // 0: primary colour, 1: secondary colour: 2: no entry + parameter: number; // primary colour | secondary colour | 0: disable, 1: enable + } + + interface ChangeMapSizeArgs extends GameActionArgs { + targetSizeX: number; + targetSizeY: number; + } + + interface ClearSceneryArgs extends GameActionArgs { + itemsToClear: number; // Bit mask. 1: small scenery and walls, 2: large scenery, 4: footpaths. + } + + interface ClimateSetArgs extends GameActionArgs { + climate: number; // 0: cool and wet, 1: warm, 2: hot and dry, 3: cold + } + + interface FootpathAdditionPlaceArgs extends GameActionArgs { + x: number; + y: number; + z: number; + object: number; + } + + interface FootpathAdditionRemoveArgs extends GameActionArgs { + x: number; + y: number; + z: number; + } + + interface FootpathPlaceArgs extends GameActionArgs { + x: number; + y: number; + z: number; + direction: number; // direction or 0xFF + object: number; // surface object + railingsObject: number; + slope: number; // 0: flat, 4,5,6,7: slope direction + 4 + constructFlags: number; + } + + // see openrct2/actions/FootpathPlaceFromTrackAction + interface FootpathLayoutPlaceArgs extends GameActionArgs { + x: number; + y: number; + z: number; + edges: number; // bit mask + object: number; + railingsObject: number; + slope: number; // 0: flat, 4,5,6,7: slope direction + 4 + constructFlags: number; + } + + interface FootpathRemoveArgs extends GameActionArgs { + x: number; + y: number; + z: number; + } + + // recommendation: use Peep.setFlag instead of the GuestSetFlag action + interface GuestSetFlagsArgs extends GameActionArgs { + peep: number; + guestFlags: number; // see PEEP_FLAGS in openrct2/entity/Peep.h + } + + interface GuestSetNameArgs extends GameActionArgs { + peep: number; + name: string; + } + + interface LandBuyRightsArgs extends GameActionArgs { + x1: number; + y1: number; + x2: number; + y2: number; + setting: number; // 0: buy land, 1: buy construction rights + } + + // x, y specify the centre. Only used for GameActionResult and 3D audio position. + // x1, y1, x2, y2 specify a map range + interface LandLowerArgs extends GameActionArgs { + x: number; + y: number; + x1: number; + y1: number; + x2: number; + y2: number; + selectionType: number; // see MAP_SELECT_TYPE in openrct2/world/Map.h + } + + // x, y specify the centre. Only used for GameActionResult and 3D audio position. + // x1, y1, x2, y2 specify a map range + interface LandRaiseArgs extends GameActionArgs { + x: number; + y: number; + x1: number; + y1: number; + x2: number; + y2: number; + selectionType: number; // see MAP_SELECT_TYPE in openrct2/world/Map.h + } + + interface LandSetHeightArgs extends GameActionArgs { + x: number; + y: number; + height: number; + style: number; // see TILE_ELEMENT_SLOPE in openrct2/world/Surface.h + } + + interface LandSetRightsArgs extends GameActionArgs { + x1: number; + y1: number; + x2: number; + y2: number; + setting: number; // 0: unown land, 1: unown construction rights, 2: set for sale, 3: set construction rights for sale, 4: set ownership + ownership: number; // only used if setting = 4 (set ownership). See OWNERSHIP in openrct2/world/Surface.h + } + + // x, y specify the centre. Only used for GameActionResult and 3D audio position. + // x1, y1, x2, y2 specify a map range + interface LandSmoothArgs extends GameActionArgs { + x: number; + y: number; + x1: number; + y1: number; + x2: number; + y2: number; + selectionType: number; // see MAP_SELECT_TYPE in openrct2/world/Map.h + isLowering: boolean; + } + + interface LargeSceneryPlaceArgs extends GameActionArgs { + x: number; + y: number; + z: number; + direction: number; + object: number; + primaryColour: number; + secondaryColour: number; + tertiaryColour: number; + } + + interface LargeSceneryRemoveArgs extends GameActionArgs { + x: number; + y: number; + z: number; + direction: number; + tileIndex: number; + } + + interface LargeScenerySetColourArgs extends GameActionArgs { + x: number; + y: number; + z: number; + direction: number; + tileIndex: number; + primaryColour: number; + secondaryColour: number; + tertiaryColour: number; + } + + interface LoadOrQuitArgs extends GameActionArgs { + mode: number; // 0: open save prompt, 1: close save prompt + savePromptMode: number; // 0: save before load, 1: save before quit. Only used if mode = 0 (open save prompt). + } + + interface MazePlaceTrackArgs extends GameActionArgs { + x: number; + y: number; + z: number; + ride: number; + mazeEntry: number; + } + + interface MazeSetTrackArgs extends GameActionArgs { + x: number; + y: number; + z: number; + direction: number; + ride: number; + mode: number; // 0: build, 1: move, 2: fill + isInitialPlacement: boolean; + } + + interface NetworkModifyGroupArgs extends GameActionArgs { + type: number; // 0: add group, 1: remove group, 2: set permissions, 3: set name, 4: set default + groupId: number; // ignored if type = 0 (add group) + name: string; // only used if type = 3 (set name) + permissionIndex: number; // only used if type = 2 (set permissions). See NetworkPermission in openrct2/network/NetworkAction.h + permissionState: number; // only used if type = 2 (set permissions). 0: toggle, 1: set all, 2: clear all + } + + interface ParkEntrancePlaceArgs extends GameActionArgs { + x: number; + y: number; + z: number; + direction: number; + footpathSurfaceObject: number; + } + + interface ParkEntranceRemoveArgs extends GameActionArgs { + x: number; + y: number; + z: number; + } + + interface ParkMarketingArgs extends GameActionArgs { + type: number; // see ADVERTISING_CAMPAIGN in openrct2/management/Marketing.h + item: number; // ride id or shop item. See ShopItem in openrct2/ride/ShopItem.h + numweeks: number; + } + + interface ParkSetDateArgs extends GameActionArgs { + year: number; + month: number; + day: number; + } + + interface ParkSetLoanArgs extends GameActionArgs { + value: number; + } + + interface ParkSetNameArgs extends GameActionArgs { + name: string; + } + + interface ParkSetParameterArgs extends GameActionArgs { + parameter: number; // 0: close park, 1: open park, 2: set same price in park + value: number; // only used if parameter = 2 (set same price in park). Bit mask. See ShopItem in openrct2/ride/ShopItem.h + } + + interface ParkSetResearchFundingArgs extends GameActionArgs { + priorities: number; // bit mask. See ResearchCategory in openrct2/management/Research.h + fundingAmount: number; // 0: none, 1: minimal, 2: normal, 3: maximum + } + + interface PauseToggleArgs extends GameActionArgs { + } + + interface PeepPickupArgs extends GameActionArgs { + type: number; // 0: pickup, 1: cancel, 2: place + id: number; + x: number; // unused if type = 0. If type = 1 (cancel), this needs to be the peep's x position BEFORE pickup + y: number; // only used if type = 2 (place) + z: number; // only used if type = 2 (place) + playerId: number; // 0 in single player + } + + interface PeepSpawnPlaceArgs extends GameActionArgs { + x: number; + y: number; + z: number; + direction: number; + } + + interface PlayerKickArgs extends GameActionArgs { + playerId: number; + } + + interface PlayerSetGroupArgs extends GameActionArgs { + playerId: number; + groupId: number; + } + + interface RideCreateArgs extends GameActionArgs { + rideType: number; + rideObject: number; + entranceObject: number; + colour1: number; + colour2: number; + } + + interface RideDemolishArgs extends GameActionArgs { + ride: number; + modifyType: number; // 0: demolish, 1: renew + } + + interface RideEntranceExitPlaceArgs extends GameActionArgs { + x: number; + y: number; + direction: number; + ride: number; + station: number; + isExit: boolean; + } + + interface RideEntranceExitRemoveArgs extends GameActionArgs { + x: number; + y: number; + ride: number; + station: number; + isExit: boolean; + } + + interface RideFreezeRatingArgs extends GameActionArgs { + ride: number; + type: number; // 0: excitement, 1: intensity, 2: nausea + value: number; + } + + interface RideSetAppearanceArgs extends GameActionArgs { + ride: number; + type: number; // see RideSetAppearanceType in openrct2/actions/RideSetAppearanceAction.h + // value: + // - if type is one of the track or vehicle colours: colour + // - if type is VehicleColourScheme: 0: all same, 1: per train, 2: per car + // - if type is EntranceStyle: entrance style + // - if type is SellingItemColourIsRandom: 0: disabled, 1: enabled + value: number; + index: number; // colour scheme index, only used if type is one of the track or vehicle colours + } + + interface RideSetColourSchemeArgs extends GameActionArgs { + x: number; + y: number; + z: number; + direction: number; + trackType: number; + colourScheme: number; + } + + interface RideSetNameArgs extends GameActionArgs { + ride: number; + name: string; + } + + interface RideSetPriceArgs extends GameActionArgs { + ride: number; + price: number; + isPrimaryPrice: boolean; + } + + interface RideSetSettingArgs extends GameActionArgs { + ride: number; + setting: number; // see RideSetSetting in openrct2/actions/RideSetSettingAction.h + value: number; + } + + interface RideSetStatusArgs extends GameActionArgs { + ride: number; + status: number; // 0: closed, 1: open, 2: testing, 3: simulating + } + + interface RideSetVehicleArgs extends GameActionArgs { + ride: number; + type: number; // 0: number of trains, 1: number of cars per train, 2: ride entry + value: number; // number value or sub type + colour: number; // only used if type is ride entry + } + + interface ScenarioSetSettingArgs extends GameActionArgs { + setting: number; // see ScenarioSetSetting in openrct2/actions/ScenarioSetSettingAction.h + value: number; + } + + interface SetCheatArgs extends GameActionArgs { + type: number; // see CheatType in openrct2/Cheats.h + param1: number; // see openrct2/actions/SetCheatAction.cpp + param2: number; // see openrct2/actions/SetCheatAction.cpp + } + + interface SetParkEntranceFeeArgs extends GameActionArgs { + value: number; + } + + interface SignSetNameArgs extends GameActionArgs { + id: number; + name: string; + } + + interface SignSetStyleArgs extends GameActionArgs { + id: number; + mainColour: number; + textColour: number; + isLarge: boolean; + } + + interface SmallSceneryPlaceArgs extends GameActionArgs { + x: number; + y: number; + z: number; + direction: number; + object: number; + quadrant: number; + primaryColour: number; + secondaryColour: number; + } + + interface SmallSceneryRemoveArgs extends GameActionArgs { + x: number; + y: number; + z: number; + object: number; + quadrant: number; + } + + interface SmallScenerySetColourArgs extends GameActionArgs { + x: number; + y: number; + z: number; + quadrant: number; + sceneryType: number; + primaryColour: number; + secondaryColour: number; + tertiaryColour: number; + } + + interface StaffFireArgs extends GameActionArgs { + id: number; + } + + interface StaffHireArgs extends GameActionArgs { + autoPosition: boolean; + staffType: number; // 0: handyman, 1: mechanic, 2: security, 3: entertainer + entertainerType: number; // see EntertainerCostume in openrct2/entity/Staff.h + staffOrders: number; // bit mask. See STAFF_ORDERS in openrct2/entity/Staff.h + } + + interface StaffSetColourArgs extends GameActionArgs { + staffType: number; // 0: handyman, 1: mechanic, 2: security, 3: entertainer + colour: number; + } + + interface StaffSetCostumeArgs extends GameActionArgs { + id: number; + costume: number; // see EntertainerCostume in openrct2/entity/Staff.h + } + + interface StaffSetNameArgs extends GameActionArgs { + id: number; + name: string; + } + + interface StaffSetOrdersArgs extends GameActionArgs { + id: number; + staffOrders: number; // bit mask. See STAFF_ORDERS in openrct2/entity/Staff.h + } + + interface StaffSetPatrolAreaArgs extends GameActionArgs { + id: number; + x1: number; + y1: number; + x2: number; + y2: number; + mode: number; // 0: set, 1: unset, 2: clear all + } + + interface SurfaceSetStyleArgs extends GameActionArgs { + x1: number; + y1: number; + x2: number; + y2: number; + surfaceStyle: number; + edgeStyle: number; + } + + // does not support TileModifyType::AnyPaste + interface TileModifyArgs extends GameActionArgs { + x: number; + y: number; + setting: number; // see TileModifyType in openrct2/actions/TileModifyAction.h + value1: number; + value2: number; // see openrct2/actions/TileModifyAction.cpp + } + + // currently unsupported + interface TrackDesignArgs extends GameActionArgs { + x: number; + y: number; + z: number; + direction: number; + } + + interface TrackPlaceArgs extends GameActionArgs { + x: number; + y: number; + z: number; + direction: number; + ride: number; + trackType: number; + rideType: number; + brakeSpeed: number; + colour: number; + seatRotation: number; + trackPlaceFlags: number; + isFromTrackDesign: boolean; + } + + interface TrackRemoveArgs extends GameActionArgs { + x: number; + y: number; + z: number; + direction: number; + trackType: number; + sequence: number; + } + + interface TrackSetBrakeSpeedArgs extends GameActionArgs { + x: number; + y: number; + z: number; + trackType: number; + brakeSpeed: number; + } + + interface WallPlaceArgs extends GameActionArgs { + x: number; + y: number; + z: number; + object: number; + edge: number; // = direction + primaryColour: number; + secondaryColour: number; + tertiaryColour: number; + } + + interface WallRemoveArgs extends GameActionArgs { + x: number; + y: number; + z: number; + direction: number; + } + + interface WallSetColourArgs extends GameActionArgs { + x: number; + y: number; + z: number; + direction: number; + primaryColour: number; + secondaryColour: number; + tertiaryColour: number; + } + + interface WaterLowerArgs extends GameActionArgs { + x1: number; + y1: number; + x2: number; + y2: number; + } + + interface WaterRaiseArgs extends GameActionArgs { + x1: number; + y1: number; + x2: number; + y2: number; + } + + interface WaterSetHeightArgs extends GameActionArgs { + x: number; + y: number; + height: number; + } + interface GameActionEventArgs { readonly player: number; readonly type: number; diff --git a/src/openrct2/actions/ClearAction.cpp b/src/openrct2/actions/ClearAction.cpp index 07512a7eff..44987938e0 100644 --- a/src/openrct2/actions/ClearAction.cpp +++ b/src/openrct2/actions/ClearAction.cpp @@ -30,6 +30,17 @@ ClearAction::ClearAction(MapRange range, ClearableItems itemsToClear) { } +void ClearAction::AcceptParameters(GameActionParameterVisitor& visitor) +{ + visitor.Visit(_range); + visitor.Visit("itemsToClear", _itemsToClear); +} + +uint16_t ClearAction::GetActionFlags() const +{ + return GameAction::GetActionFlags(); +} + void ClearAction::Serialise(DataSerialiser& stream) { GameAction::Serialise(stream); diff --git a/src/openrct2/actions/ClearAction.h b/src/openrct2/actions/ClearAction.h index a197aa0bb5..8093eab7bb 100644 --- a/src/openrct2/actions/ClearAction.h +++ b/src/openrct2/actions/ClearAction.h @@ -34,6 +34,10 @@ public: ClearAction() = default; ClearAction(MapRange range, ClearableItems itemsToClear); + void AcceptParameters(GameActionParameterVisitor& visitor) override; + + uint16_t GetActionFlags() const override; + void Serialise(DataSerialiser& stream) override; GameActions::Result Query() const override; GameActions::Result Execute() const override; diff --git a/src/openrct2/actions/FootpathPlaceFromTrackAction.cpp b/src/openrct2/actions/FootpathPlaceFromTrackAction.cpp index a862b36774..15b4ecd788 100644 --- a/src/openrct2/actions/FootpathPlaceFromTrackAction.cpp +++ b/src/openrct2/actions/FootpathPlaceFromTrackAction.cpp @@ -43,6 +43,16 @@ void FootpathPlaceFromTrackAction::Serialise(DataSerialiser& stream) << DS_TAG(_constructFlags); } +void FootpathPlaceFromTrackAction::AcceptParameters(GameActionParameterVisitor& visitor) +{ + visitor.Visit(_loc); + visitor.Visit("slope", _slope); + visitor.Visit("object", _type); + visitor.Visit("railingsObject", _railingsType); + visitor.Visit("edges", _edges); + visitor.Visit("constructFlags", _constructFlags); +} + uint16_t FootpathPlaceFromTrackAction::GetActionFlags() const { return GameAction::GetActionFlags(); diff --git a/src/openrct2/actions/FootpathPlaceFromTrackAction.h b/src/openrct2/actions/FootpathPlaceFromTrackAction.h index 6e19dbf49b..22311832c8 100644 --- a/src/openrct2/actions/FootpathPlaceFromTrackAction.h +++ b/src/openrct2/actions/FootpathPlaceFromTrackAction.h @@ -27,6 +27,8 @@ public: const CoordsXYZ& loc, uint8_t slope, ObjectEntryIndex type, ObjectEntryIndex railingsType, uint8_t edges, PathConstructFlags constructFlags = 0); + void AcceptParameters(GameActionParameterVisitor& visitor) override; + uint16_t GetActionFlags() const override; void Serialise(DataSerialiser& stream) override; diff --git a/src/openrct2/actions/GuestSetFlagsAction.cpp b/src/openrct2/actions/GuestSetFlagsAction.cpp index 67409363dd..087553347f 100644 --- a/src/openrct2/actions/GuestSetFlagsAction.cpp +++ b/src/openrct2/actions/GuestSetFlagsAction.cpp @@ -22,7 +22,7 @@ GuestSetFlagsAction::GuestSetFlagsAction(EntityId peepId, uint32_t flags) void GuestSetFlagsAction::AcceptParameters(GameActionParameterVisitor& visitor) { visitor.Visit("peep", _peepId); - visitor.Visit("flags", _newFlags); + visitor.Visit("guestFlags", _newFlags); } uint16_t GuestSetFlagsAction::GetActionFlags() const diff --git a/src/openrct2/actions/LandBuyRightsAction.cpp b/src/openrct2/actions/LandBuyRightsAction.cpp index 18cdeb657d..f85bf5df02 100644 --- a/src/openrct2/actions/LandBuyRightsAction.cpp +++ b/src/openrct2/actions/LandBuyRightsAction.cpp @@ -36,6 +36,12 @@ LandBuyRightsAction::LandBuyRightsAction(const CoordsXY& coord, LandBuyRightSett { } +void LandBuyRightsAction::AcceptParameters(GameActionParameterVisitor& visitor) +{ + visitor.Visit(_range); + visitor.Visit("setting", _setting); +} + uint16_t LandBuyRightsAction::GetActionFlags() const { return GameAction::GetActionFlags(); diff --git a/src/openrct2/actions/LandBuyRightsAction.h b/src/openrct2/actions/LandBuyRightsAction.h index a4813409d6..56208e2509 100644 --- a/src/openrct2/actions/LandBuyRightsAction.h +++ b/src/openrct2/actions/LandBuyRightsAction.h @@ -34,6 +34,8 @@ public: LandBuyRightsAction(const MapRange& range, LandBuyRightSetting setting); LandBuyRightsAction(const CoordsXY& coord, LandBuyRightSetting setting); + void AcceptParameters(GameActionParameterVisitor& visitor) override; + uint16_t GetActionFlags() const override; void Serialise(DataSerialiser& stream) override; diff --git a/src/openrct2/actions/LandLowerAction.cpp b/src/openrct2/actions/LandLowerAction.cpp index 0d80033d9a..0a4f578c41 100644 --- a/src/openrct2/actions/LandLowerAction.cpp +++ b/src/openrct2/actions/LandLowerAction.cpp @@ -31,6 +31,13 @@ LandLowerAction::LandLowerAction(const CoordsXY& coords, MapRange range, uint8_t { } +void LandLowerAction::AcceptParameters(GameActionParameterVisitor& visitor) +{ + visitor.Visit(_coords); + visitor.Visit(_range); + visitor.Visit("selectionType", _selectionType); +} + uint16_t LandLowerAction::GetActionFlags() const { return GameAction::GetActionFlags(); diff --git a/src/openrct2/actions/LandLowerAction.h b/src/openrct2/actions/LandLowerAction.h index 0f635c6591..08ad023660 100644 --- a/src/openrct2/actions/LandLowerAction.h +++ b/src/openrct2/actions/LandLowerAction.h @@ -22,6 +22,8 @@ public: LandLowerAction() = default; LandLowerAction(const CoordsXY& coords, MapRange range, uint8_t selectionType); + void AcceptParameters(GameActionParameterVisitor& visitor) override; + uint16_t GetActionFlags() const override; void Serialise(DataSerialiser& stream) override; diff --git a/src/openrct2/actions/LandRaiseAction.cpp b/src/openrct2/actions/LandRaiseAction.cpp index 6384a6b809..57036d61a8 100644 --- a/src/openrct2/actions/LandRaiseAction.cpp +++ b/src/openrct2/actions/LandRaiseAction.cpp @@ -32,6 +32,13 @@ LandRaiseAction::LandRaiseAction(const CoordsXY& coords, MapRange range, uint8_t { } +void LandRaiseAction::AcceptParameters(GameActionParameterVisitor& visitor) +{ + visitor.Visit(_coords); + visitor.Visit(_range); + visitor.Visit("selectionType", _selectionType); +} + uint16_t LandRaiseAction::GetActionFlags() const { return GameAction::GetActionFlags(); diff --git a/src/openrct2/actions/LandRaiseAction.h b/src/openrct2/actions/LandRaiseAction.h index 88fdfec313..2974eacede 100644 --- a/src/openrct2/actions/LandRaiseAction.h +++ b/src/openrct2/actions/LandRaiseAction.h @@ -22,6 +22,8 @@ public: LandRaiseAction() = default; LandRaiseAction(const CoordsXY& coords, MapRange range, uint8_t selectionType); + void AcceptParameters(GameActionParameterVisitor& visitor) override; + uint16_t GetActionFlags() const override; void Serialise(DataSerialiser& stream) override; diff --git a/src/openrct2/actions/LandSetHeightAction.cpp b/src/openrct2/actions/LandSetHeightAction.cpp index d016538d78..679f27c859 100644 --- a/src/openrct2/actions/LandSetHeightAction.cpp +++ b/src/openrct2/actions/LandSetHeightAction.cpp @@ -33,6 +33,13 @@ LandSetHeightAction::LandSetHeightAction(const CoordsXY& coords, uint8_t height, { } +void LandSetHeightAction::AcceptParameters(GameActionParameterVisitor& visitor) +{ + visitor.Visit(_coords); + visitor.Visit("height", _height); + visitor.Visit("style", _style); +} + uint16_t LandSetHeightAction::GetActionFlags() const { return GameAction::GetActionFlags() | GameActions::Flags::EditorOnly; diff --git a/src/openrct2/actions/LandSetHeightAction.h b/src/openrct2/actions/LandSetHeightAction.h index 7dba07f930..475492af51 100644 --- a/src/openrct2/actions/LandSetHeightAction.h +++ b/src/openrct2/actions/LandSetHeightAction.h @@ -22,6 +22,8 @@ public: LandSetHeightAction() = default; LandSetHeightAction(const CoordsXY& coords, uint8_t height, uint8_t style); + void AcceptParameters(GameActionParameterVisitor& visitor) override; + uint16_t GetActionFlags() const override; void Serialise(DataSerialiser& stream) override; diff --git a/src/openrct2/actions/LandSetRightsAction.cpp b/src/openrct2/actions/LandSetRightsAction.cpp index 81947a3771..7482e5b36e 100644 --- a/src/openrct2/actions/LandSetRightsAction.cpp +++ b/src/openrct2/actions/LandSetRightsAction.cpp @@ -41,6 +41,13 @@ LandSetRightsAction::LandSetRightsAction(const CoordsXY& coord, LandSetRightSett { } +void LandSetRightsAction::AcceptParameters(GameActionParameterVisitor& visitor) +{ + visitor.Visit(_range); + visitor.Visit("setting", _setting); + visitor.Visit("ownership", _ownership); +} + uint16_t LandSetRightsAction::GetActionFlags() const { return GameAction::GetActionFlags() | GameActions::Flags::EditorOnly; diff --git a/src/openrct2/actions/LandSetRightsAction.h b/src/openrct2/actions/LandSetRightsAction.h index 581fe46824..4cb37143a7 100644 --- a/src/openrct2/actions/LandSetRightsAction.h +++ b/src/openrct2/actions/LandSetRightsAction.h @@ -33,6 +33,8 @@ public: LandSetRightsAction(const MapRange& range, LandSetRightSetting setting, uint8_t ownership = 0); LandSetRightsAction(const CoordsXY& coord, LandSetRightSetting setting, uint8_t ownership = 0); + void AcceptParameters(GameActionParameterVisitor& visitor) override; + uint16_t GetActionFlags() const override; void Serialise(DataSerialiser& stream) override; diff --git a/src/openrct2/actions/LandSmoothAction.cpp b/src/openrct2/actions/LandSmoothAction.cpp index b9a6fef4cb..a6d41ad85d 100644 --- a/src/openrct2/actions/LandSmoothAction.cpp +++ b/src/openrct2/actions/LandSmoothAction.cpp @@ -33,6 +33,14 @@ LandSmoothAction::LandSmoothAction(const CoordsXY& coords, MapRange range, uint8 { } +void LandSmoothAction::AcceptParameters(GameActionParameterVisitor& visitor) +{ + visitor.Visit(_coords); + visitor.Visit(_range); + visitor.Visit("selectionType", _selectionType); + visitor.Visit("isLowering", _isLowering); +} + uint16_t LandSmoothAction::GetActionFlags() const { return GameAction::GetActionFlags(); diff --git a/src/openrct2/actions/LandSmoothAction.h b/src/openrct2/actions/LandSmoothAction.h index 9f37b2455f..99f8c5bffe 100644 --- a/src/openrct2/actions/LandSmoothAction.h +++ b/src/openrct2/actions/LandSmoothAction.h @@ -28,6 +28,8 @@ public: LandSmoothAction() = default; LandSmoothAction(const CoordsXY& coords, MapRange range, uint8_t selectionType, bool isLowering); + void AcceptParameters(GameActionParameterVisitor& visitor) override; + uint16_t GetActionFlags() const override; void Serialise(DataSerialiser& stream) override; diff --git a/src/openrct2/actions/LargeScenerySetColourAction.cpp b/src/openrct2/actions/LargeScenerySetColourAction.cpp index c2c1263373..10f4e6144b 100644 --- a/src/openrct2/actions/LargeScenerySetColourAction.cpp +++ b/src/openrct2/actions/LargeScenerySetColourAction.cpp @@ -23,6 +23,15 @@ LargeScenerySetColourAction::LargeScenerySetColourAction( { } +void LargeScenerySetColourAction::AcceptParameters(GameActionParameterVisitor& visitor) +{ + visitor.Visit(_loc); + visitor.Visit("tileIndex", _tileIndex); + visitor.Visit("primaryColour", _primaryColour); + visitor.Visit("secondaryColour", _secondaryColour); + visitor.Visit("tertiaryColour", _tertiaryColour); +} + uint16_t LargeScenerySetColourAction::GetActionFlags() const { return GameAction::GetActionFlags() | GameActions::Flags::AllowWhilePaused; diff --git a/src/openrct2/actions/LargeScenerySetColourAction.h b/src/openrct2/actions/LargeScenerySetColourAction.h index f6bcea5c2e..32c4cf0212 100644 --- a/src/openrct2/actions/LargeScenerySetColourAction.h +++ b/src/openrct2/actions/LargeScenerySetColourAction.h @@ -25,6 +25,8 @@ public: LargeScenerySetColourAction( const CoordsXYZD& loc, uint8_t tileIndex, uint8_t primaryColour, uint8_t secondaryColour, uint8_t tertiaryColour); + void AcceptParameters(GameActionParameterVisitor& visitor) override; + uint16_t GetActionFlags() const override; void Serialise(DataSerialiser& stream) override; diff --git a/src/openrct2/actions/LoadOrQuitAction.cpp b/src/openrct2/actions/LoadOrQuitAction.cpp index 8409f164fd..823d91a347 100644 --- a/src/openrct2/actions/LoadOrQuitAction.cpp +++ b/src/openrct2/actions/LoadOrQuitAction.cpp @@ -18,6 +18,12 @@ LoadOrQuitAction::LoadOrQuitAction(LoadOrQuitModes mode, PromptMode savePromptMo { } +void LoadOrQuitAction::AcceptParameters(GameActionParameterVisitor& visitor) +{ + visitor.Visit("mode", _mode); + visitor.Visit("savePromptMode", _savePromptMode); +} + uint16_t LoadOrQuitAction::GetActionFlags() const { return GameAction::GetActionFlags() | GameActions::Flags::ClientOnly | GameActions::Flags::AllowWhilePaused; diff --git a/src/openrct2/actions/LoadOrQuitAction.h b/src/openrct2/actions/LoadOrQuitAction.h index 62bdb4af7b..9418b6b359 100644 --- a/src/openrct2/actions/LoadOrQuitAction.h +++ b/src/openrct2/actions/LoadOrQuitAction.h @@ -27,6 +27,8 @@ public: LoadOrQuitAction() = default; LoadOrQuitAction(LoadOrQuitModes mode, PromptMode savePromptMode = PromptMode::SaveBeforeLoad); + void AcceptParameters(GameActionParameterVisitor& visitor) override; + uint16_t GetActionFlags() const override; void Serialise(DataSerialiser& stream) override; diff --git a/src/openrct2/actions/NetworkModifyGroupAction.cpp b/src/openrct2/actions/NetworkModifyGroupAction.cpp index 9b99bc8b12..192ee9e84f 100644 --- a/src/openrct2/actions/NetworkModifyGroupAction.cpp +++ b/src/openrct2/actions/NetworkModifyGroupAction.cpp @@ -22,6 +22,15 @@ NetworkModifyGroupAction::NetworkModifyGroupAction( { } +void NetworkModifyGroupAction::AcceptParameters(GameActionParameterVisitor& visitor) +{ + visitor.Visit("type", _type); + visitor.Visit("groupId", _groupId); + visitor.Visit("name", _name); + visitor.Visit("permissionIndex", _permissionIndex); + visitor.Visit("permissionState", _permissionState); +} + uint16_t NetworkModifyGroupAction::GetActionFlags() const { return GameAction::GetActionFlags() | GameActions::Flags::AllowWhilePaused; diff --git a/src/openrct2/actions/NetworkModifyGroupAction.h b/src/openrct2/actions/NetworkModifyGroupAction.h index 161e229b15..06fe12f4a9 100644 --- a/src/openrct2/actions/NetworkModifyGroupAction.h +++ b/src/openrct2/actions/NetworkModifyGroupAction.h @@ -44,6 +44,8 @@ public: ModifyGroupType type, uint8_t groupId = std::numeric_limits::max(), const std::string name = "", uint32_t permissionIndex = 0, PermissionState permissionState = PermissionState::Count); + void AcceptParameters(GameActionParameterVisitor& visitor) override; + uint16_t GetActionFlags() const override; void Serialise(DataSerialiser& stream) override; diff --git a/src/openrct2/actions/ParkEntranceRemoveAction.cpp b/src/openrct2/actions/ParkEntranceRemoveAction.cpp index 37991f9adc..f732d73318 100644 --- a/src/openrct2/actions/ParkEntranceRemoveAction.cpp +++ b/src/openrct2/actions/ParkEntranceRemoveAction.cpp @@ -19,6 +19,11 @@ ParkEntranceRemoveAction::ParkEntranceRemoveAction(const CoordsXYZ& loc) { } +void ParkEntranceRemoveAction::AcceptParameters(GameActionParameterVisitor& visitor) +{ + visitor.Visit(_loc); +} + uint16_t ParkEntranceRemoveAction::GetActionFlags() const { return GameAction::GetActionFlags() | GameActions::Flags::EditorOnly; diff --git a/src/openrct2/actions/ParkEntranceRemoveAction.h b/src/openrct2/actions/ParkEntranceRemoveAction.h index be2e7bb684..53f0c5f761 100644 --- a/src/openrct2/actions/ParkEntranceRemoveAction.h +++ b/src/openrct2/actions/ParkEntranceRemoveAction.h @@ -20,6 +20,8 @@ public: ParkEntranceRemoveAction() = default; ParkEntranceRemoveAction(const CoordsXYZ& loc); + void AcceptParameters(GameActionParameterVisitor& visitor) override; + uint16_t GetActionFlags() const override; void Serialise(DataSerialiser& stream) override; diff --git a/src/openrct2/actions/ParkSetParameterAction.cpp b/src/openrct2/actions/ParkSetParameterAction.cpp index e009db1a17..993d4d1c1d 100644 --- a/src/openrct2/actions/ParkSetParameterAction.cpp +++ b/src/openrct2/actions/ParkSetParameterAction.cpp @@ -20,6 +20,12 @@ ParkSetParameterAction::ParkSetParameterAction(ParkParameter parameter, uint64_t { } +void ParkSetParameterAction::AcceptParameters(GameActionParameterVisitor& visitor) +{ + visitor.Visit("parameter", _parameter); + visitor.Visit("value", _value); +} + uint16_t ParkSetParameterAction::GetActionFlags() const { return GameAction::GetActionFlags() | GameActions::Flags::AllowWhilePaused; diff --git a/src/openrct2/actions/ParkSetParameterAction.h b/src/openrct2/actions/ParkSetParameterAction.h index 58dffc6c63..9180f66212 100644 --- a/src/openrct2/actions/ParkSetParameterAction.h +++ b/src/openrct2/actions/ParkSetParameterAction.h @@ -36,6 +36,8 @@ public: ParkSetParameterAction() = default; ParkSetParameterAction(ParkParameter parameter, uint64_t value = 0); + void AcceptParameters(GameActionParameterVisitor& visitor) override; + uint16_t GetActionFlags() const override; void Serialise(DataSerialiser& stream) override; diff --git a/src/openrct2/actions/ParkSetResearchFundingAction.cpp b/src/openrct2/actions/ParkSetResearchFundingAction.cpp index 3c5e889bc3..402970f2f2 100644 --- a/src/openrct2/actions/ParkSetResearchFundingAction.cpp +++ b/src/openrct2/actions/ParkSetResearchFundingAction.cpp @@ -23,6 +23,12 @@ ParkSetResearchFundingAction::ParkSetResearchFundingAction(uint32_t priorities, { } +void ParkSetResearchFundingAction::AcceptParameters(GameActionParameterVisitor& visitor) +{ + visitor.Visit("priorities", _priorities); + visitor.Visit("fundingAmount", _fundingAmount); +} + uint16_t ParkSetResearchFundingAction::GetActionFlags() const { return GameAction::GetActionFlags() | GameActions::Flags::AllowWhilePaused; diff --git a/src/openrct2/actions/ParkSetResearchFundingAction.h b/src/openrct2/actions/ParkSetResearchFundingAction.h index 69c4031e41..d98eabef3a 100644 --- a/src/openrct2/actions/ParkSetResearchFundingAction.h +++ b/src/openrct2/actions/ParkSetResearchFundingAction.h @@ -22,6 +22,8 @@ public: ParkSetResearchFundingAction() = default; ParkSetResearchFundingAction(uint32_t priorities, uint8_t fundingAmount); + void AcceptParameters(GameActionParameterVisitor& visitor) override; + uint16_t GetActionFlags() const override; void Serialise(DataSerialiser& stream) override; diff --git a/src/openrct2/actions/PeepPickupAction.cpp b/src/openrct2/actions/PeepPickupAction.cpp index c18ae82f11..008233c9d3 100644 --- a/src/openrct2/actions/PeepPickupAction.cpp +++ b/src/openrct2/actions/PeepPickupAction.cpp @@ -23,6 +23,14 @@ PeepPickupAction::PeepPickupAction(PeepPickupType type, EntityId spriteId, const { } +void PeepPickupAction::AcceptParameters(GameActionParameterVisitor& visitor) +{ + visitor.Visit("type", _type); + visitor.Visit("id", _spriteId); + visitor.Visit(_loc); + visitor.Visit("playerId", _owner); +} + uint16_t PeepPickupAction::GetActionFlags() const { return GameAction::GetActionFlags() | GameActions::Flags::AllowWhilePaused; diff --git a/src/openrct2/actions/PeepPickupAction.h b/src/openrct2/actions/PeepPickupAction.h index b8cc065d51..c6a8c0053b 100644 --- a/src/openrct2/actions/PeepPickupAction.h +++ b/src/openrct2/actions/PeepPickupAction.h @@ -32,6 +32,8 @@ public: PeepPickupAction() = default; PeepPickupAction(PeepPickupType type, EntityId spriteId, const CoordsXYZ& loc, NetworkPlayerId_t owner); + void AcceptParameters(GameActionParameterVisitor& visitor) override; + uint16_t GetActionFlags() const override; void Serialise(DataSerialiser& stream) override; diff --git a/src/openrct2/actions/PlaceParkEntranceAction.cpp b/src/openrct2/actions/PlaceParkEntranceAction.cpp index 7c9dfdc807..7edfb93050 100644 --- a/src/openrct2/actions/PlaceParkEntranceAction.cpp +++ b/src/openrct2/actions/PlaceParkEntranceAction.cpp @@ -27,6 +27,12 @@ PlaceParkEntranceAction::PlaceParkEntranceAction(const CoordsXYZD& location, Obj { } +void PlaceParkEntranceAction::AcceptParameters(GameActionParameterVisitor& visitor) +{ + visitor.Visit(_loc); + visitor.Visit("footpathSurfaceObject", _pathType); +} + uint16_t PlaceParkEntranceAction::GetActionFlags() const { return GameActionBase::GetActionFlags() | GameActions::Flags::EditorOnly; diff --git a/src/openrct2/actions/PlaceParkEntranceAction.h b/src/openrct2/actions/PlaceParkEntranceAction.h index 691a110f66..2b6c0aa4b8 100644 --- a/src/openrct2/actions/PlaceParkEntranceAction.h +++ b/src/openrct2/actions/PlaceParkEntranceAction.h @@ -21,6 +21,8 @@ public: PlaceParkEntranceAction() = default; PlaceParkEntranceAction(const CoordsXYZD& location, ObjectEntryIndex pathType); + void AcceptParameters(GameActionParameterVisitor& visitor) override; + uint16_t GetActionFlags() const override; void Serialise(DataSerialiser& stream) override; diff --git a/src/openrct2/actions/PlacePeepSpawnAction.cpp b/src/openrct2/actions/PlacePeepSpawnAction.cpp index a90b004e9c..2105b05594 100644 --- a/src/openrct2/actions/PlacePeepSpawnAction.cpp +++ b/src/openrct2/actions/PlacePeepSpawnAction.cpp @@ -23,6 +23,11 @@ PlacePeepSpawnAction::PlacePeepSpawnAction(const CoordsXYZD& location) { } +void PlacePeepSpawnAction::AcceptParameters(GameActionParameterVisitor& visitor) +{ + visitor.Visit(_location); +} + uint16_t PlacePeepSpawnAction::GetActionFlags() const { return GameActionBase::GetActionFlags() | GameActions::Flags::EditorOnly | GameActions::Flags::AllowWhilePaused; diff --git a/src/openrct2/actions/PlacePeepSpawnAction.h b/src/openrct2/actions/PlacePeepSpawnAction.h index fa73ffc7f1..54fb6b31e4 100644 --- a/src/openrct2/actions/PlacePeepSpawnAction.h +++ b/src/openrct2/actions/PlacePeepSpawnAction.h @@ -20,6 +20,8 @@ public: PlacePeepSpawnAction() = default; PlacePeepSpawnAction(const CoordsXYZD& location); + void AcceptParameters(GameActionParameterVisitor& visitor) override; + uint16_t GetActionFlags() const override; void Serialise(DataSerialiser& stream) override; diff --git a/src/openrct2/actions/PlayerKickAction.cpp b/src/openrct2/actions/PlayerKickAction.cpp index 357e47ff70..f6c8761ba7 100644 --- a/src/openrct2/actions/PlayerKickAction.cpp +++ b/src/openrct2/actions/PlayerKickAction.cpp @@ -16,6 +16,11 @@ PlayerKickAction::PlayerKickAction(NetworkPlayerId_t playerId) { } +void PlayerKickAction::AcceptParameters(GameActionParameterVisitor& visitor) +{ + visitor.Visit("playerId", _playerId); +} + uint16_t PlayerKickAction::GetActionFlags() const { return GameAction::GetActionFlags() | GameActions::Flags::AllowWhilePaused; diff --git a/src/openrct2/actions/PlayerKickAction.h b/src/openrct2/actions/PlayerKickAction.h index b4e96c9a38..cc7bcbcbb2 100644 --- a/src/openrct2/actions/PlayerKickAction.h +++ b/src/openrct2/actions/PlayerKickAction.h @@ -21,6 +21,8 @@ public: PlayerKickAction(NetworkPlayerId_t playerId); + void AcceptParameters(GameActionParameterVisitor& visitor) override; + uint16_t GetActionFlags() const override; void Serialise(DataSerialiser& stream) override; diff --git a/src/openrct2/actions/PlayerSetGroupAction.cpp b/src/openrct2/actions/PlayerSetGroupAction.cpp index 8e13120efe..37eb1db228 100644 --- a/src/openrct2/actions/PlayerSetGroupAction.cpp +++ b/src/openrct2/actions/PlayerSetGroupAction.cpp @@ -17,6 +17,12 @@ PlayerSetGroupAction::PlayerSetGroupAction(NetworkPlayerId_t playerId, uint8_t g { } +void PlayerSetGroupAction::AcceptParameters(GameActionParameterVisitor& visitor) +{ + visitor.Visit("playerId", _playerId); + visitor.Visit("groupId", _groupId); +} + uint16_t PlayerSetGroupAction::GetActionFlags() const { return GameAction::GetActionFlags() | GameActions::Flags::AllowWhilePaused; diff --git a/src/openrct2/actions/PlayerSetGroupAction.h b/src/openrct2/actions/PlayerSetGroupAction.h index 23bef33c2b..7952dd36ca 100644 --- a/src/openrct2/actions/PlayerSetGroupAction.h +++ b/src/openrct2/actions/PlayerSetGroupAction.h @@ -21,6 +21,8 @@ public: PlayerSetGroupAction() = default; PlayerSetGroupAction(NetworkPlayerId_t playerId, uint8_t groupId); + void AcceptParameters(GameActionParameterVisitor& visitor) override; + uint16_t GetActionFlags() const override; void Serialise(DataSerialiser& stream) override; diff --git a/src/openrct2/actions/RideFreezeRatingAction.cpp b/src/openrct2/actions/RideFreezeRatingAction.cpp index c01c28284e..c0241368ac 100644 --- a/src/openrct2/actions/RideFreezeRatingAction.cpp +++ b/src/openrct2/actions/RideFreezeRatingAction.cpp @@ -16,6 +16,13 @@ RideFreezeRatingAction::RideFreezeRatingAction(RideId rideIndex, RideRatingType { } +void RideFreezeRatingAction::AcceptParameters(GameActionParameterVisitor& visitor) +{ + visitor.Visit("ride", _rideIndex); + visitor.Visit("type", _type); + visitor.Visit("value", _value); +} + void RideFreezeRatingAction::Serialise(DataSerialiser& stream) { GameAction::Serialise(stream); diff --git a/src/openrct2/actions/RideFreezeRatingAction.h b/src/openrct2/actions/RideFreezeRatingAction.h index bde58fa53b..a77df3be2a 100644 --- a/src/openrct2/actions/RideFreezeRatingAction.h +++ b/src/openrct2/actions/RideFreezeRatingAction.h @@ -29,6 +29,8 @@ public: RideFreezeRatingAction() = default; RideFreezeRatingAction(RideId rideIndex, RideRatingType type, ride_rating value); + void AcceptParameters(GameActionParameterVisitor& visitor) override; + void Serialise(DataSerialiser& stream) override; GameActions::Result Query() const override; GameActions::Result Execute() const override; diff --git a/src/openrct2/actions/ScenarioSetSettingAction.cpp b/src/openrct2/actions/ScenarioSetSettingAction.cpp index 67da42831f..2819f1bc8b 100644 --- a/src/openrct2/actions/ScenarioSetSettingAction.cpp +++ b/src/openrct2/actions/ScenarioSetSettingAction.cpp @@ -26,6 +26,12 @@ void ScenarioSetSettingAction::Serialise(DataSerialiser& stream) stream << DS_TAG(_setting) << DS_TAG(_value); } +void ScenarioSetSettingAction::AcceptParameters(GameActionParameterVisitor& visitor) +{ + visitor.Visit("setting", _setting); + visitor.Visit("value", _value); +} + GameActions::Result ScenarioSetSettingAction::Query() const { if (_setting >= ScenarioSetSetting::Count) diff --git a/src/openrct2/actions/ScenarioSetSettingAction.h b/src/openrct2/actions/ScenarioSetSettingAction.h index 987b0e187a..728bfd5d9a 100644 --- a/src/openrct2/actions/ScenarioSetSettingAction.h +++ b/src/openrct2/actions/ScenarioSetSettingAction.h @@ -52,6 +52,8 @@ public: { } + void AcceptParameters(GameActionParameterVisitor& visitor) override; + uint16_t GetActionFlags() const override { return GameAction::GetActionFlags() | GameActions::Flags::AllowWhilePaused; diff --git a/src/openrct2/actions/SignSetStyleAction.cpp b/src/openrct2/actions/SignSetStyleAction.cpp index f35643b13a..8553b3db8a 100644 --- a/src/openrct2/actions/SignSetStyleAction.cpp +++ b/src/openrct2/actions/SignSetStyleAction.cpp @@ -26,6 +26,14 @@ SignSetStyleAction::SignSetStyleAction(BannerIndex bannerIndex, uint8_t mainColo { } +void SignSetStyleAction::AcceptParameters(GameActionParameterVisitor& visitor) +{ + visitor.Visit("id", _bannerIndex); + visitor.Visit("mainColour", _mainColour); + visitor.Visit("textColour", _textColour); + visitor.Visit("isLarge", _isLarge); +} + uint16_t SignSetStyleAction::GetActionFlags() const { return GameAction::GetActionFlags() | GameActions::Flags::AllowWhilePaused; diff --git a/src/openrct2/actions/SignSetStyleAction.h b/src/openrct2/actions/SignSetStyleAction.h index 8ba51d3753..3b0edcab54 100644 --- a/src/openrct2/actions/SignSetStyleAction.h +++ b/src/openrct2/actions/SignSetStyleAction.h @@ -23,6 +23,8 @@ public: SignSetStyleAction() = default; SignSetStyleAction(BannerIndex bannerIndex, uint8_t mainColour, uint8_t textColour, bool isLarge); + void AcceptParameters(GameActionParameterVisitor& visitor) override; + uint16_t GetActionFlags() const override; void Serialise(DataSerialiser& stream) override; diff --git a/src/openrct2/actions/SmallScenerySetColourAction.cpp b/src/openrct2/actions/SmallScenerySetColourAction.cpp index c9ae6c08f2..04987a5319 100644 --- a/src/openrct2/actions/SmallScenerySetColourAction.cpp +++ b/src/openrct2/actions/SmallScenerySetColourAction.cpp @@ -37,6 +37,16 @@ SmallScenerySetColourAction::SmallScenerySetColourAction( { } +void SmallScenerySetColourAction::AcceptParameters(GameActionParameterVisitor& visitor) +{ + visitor.Visit(_loc); + visitor.Visit("quadrant", _quadrant); + visitor.Visit("sceneryType", _sceneryType); + visitor.Visit("primaryColour", _primaryColour); + visitor.Visit("secondaryColour", _secondaryColour); + visitor.Visit("tertiaryColour", _tertiaryColour); +} + uint16_t SmallScenerySetColourAction::GetActionFlags() const { return GameAction::GetActionFlags() | GameActions::Flags::AllowWhilePaused; diff --git a/src/openrct2/actions/SmallScenerySetColourAction.h b/src/openrct2/actions/SmallScenerySetColourAction.h index b723d58116..269f1d4482 100644 --- a/src/openrct2/actions/SmallScenerySetColourAction.h +++ b/src/openrct2/actions/SmallScenerySetColourAction.h @@ -27,6 +27,8 @@ public: const CoordsXYZ& loc, uint8_t quadrant, ObjectEntryIndex sceneryType, uint8_t primaryColour, uint8_t secondaryColour, uint8_t tertiaryColour); + void AcceptParameters(GameActionParameterVisitor& visitor) override; + uint16_t GetActionFlags() const override; void Serialise(DataSerialiser& stream) override; diff --git a/src/openrct2/actions/StaffSetColourAction.cpp b/src/openrct2/actions/StaffSetColourAction.cpp index 7004b5f1c9..8b2e5017d7 100644 --- a/src/openrct2/actions/StaffSetColourAction.cpp +++ b/src/openrct2/actions/StaffSetColourAction.cpp @@ -25,6 +25,12 @@ StaffSetColourAction::StaffSetColourAction(StaffType staffType, uint8_t colour) { } +void StaffSetColourAction::AcceptParameters(GameActionParameterVisitor& visitor) +{ + visitor.Visit("staffType", _staffType); + visitor.Visit("colour", _colour); +} + uint16_t StaffSetColourAction::GetActionFlags() const { return GameAction::GetActionFlags() | GameActions::Flags::AllowWhilePaused; diff --git a/src/openrct2/actions/StaffSetColourAction.h b/src/openrct2/actions/StaffSetColourAction.h index 96db9a276b..471f3e9027 100644 --- a/src/openrct2/actions/StaffSetColourAction.h +++ b/src/openrct2/actions/StaffSetColourAction.h @@ -21,6 +21,8 @@ public: StaffSetColourAction() = default; StaffSetColourAction(StaffType staffType, uint8_t colour); + void AcceptParameters(GameActionParameterVisitor& visitor) override; + uint16_t GetActionFlags() const override; void Serialise(DataSerialiser& stream) override; diff --git a/src/openrct2/actions/StaffSetCostumeAction.cpp b/src/openrct2/actions/StaffSetCostumeAction.cpp index 779e665331..41df438d04 100644 --- a/src/openrct2/actions/StaffSetCostumeAction.cpp +++ b/src/openrct2/actions/StaffSetCostumeAction.cpp @@ -42,6 +42,12 @@ StaffSetCostumeAction::StaffSetCostumeAction(EntityId spriteIndex, EntertainerCo { } +void StaffSetCostumeAction::AcceptParameters(GameActionParameterVisitor& visitor) +{ + visitor.Visit("id", _spriteIndex); + visitor.Visit("costume", _costume); +} + uint16_t StaffSetCostumeAction::GetActionFlags() const { return GameAction::GetActionFlags() | GameActions::Flags::AllowWhilePaused; diff --git a/src/openrct2/actions/StaffSetCostumeAction.h b/src/openrct2/actions/StaffSetCostumeAction.h index c445ffced6..db7a8fc2c1 100644 --- a/src/openrct2/actions/StaffSetCostumeAction.h +++ b/src/openrct2/actions/StaffSetCostumeAction.h @@ -22,6 +22,8 @@ public: StaffSetCostumeAction() = default; StaffSetCostumeAction(EntityId spriteIndex, EntertainerCostume costume); + void AcceptParameters(GameActionParameterVisitor& visitor) override; + uint16_t GetActionFlags() const override; void Serialise(DataSerialiser& stream) override; diff --git a/src/openrct2/actions/StaffSetNameAction.cpp b/src/openrct2/actions/StaffSetNameAction.cpp index b5b99cff63..f25a7a938f 100644 --- a/src/openrct2/actions/StaffSetNameAction.cpp +++ b/src/openrct2/actions/StaffSetNameAction.cpp @@ -27,6 +27,12 @@ StaffSetNameAction::StaffSetNameAction(EntityId spriteIndex, const std::string& { } +void StaffSetNameAction::AcceptParameters(GameActionParameterVisitor& visitor) +{ + visitor.Visit("id", _spriteIndex); + visitor.Visit("name", _name); +} + uint16_t StaffSetNameAction::GetActionFlags() const { return GameAction::GetActionFlags() | GameActions::Flags::AllowWhilePaused; diff --git a/src/openrct2/actions/StaffSetNameAction.h b/src/openrct2/actions/StaffSetNameAction.h index 0c53451003..4bcd21dd17 100644 --- a/src/openrct2/actions/StaffSetNameAction.h +++ b/src/openrct2/actions/StaffSetNameAction.h @@ -21,6 +21,8 @@ public: StaffSetNameAction() = default; StaffSetNameAction(EntityId spriteIndex, const std::string& name); + void AcceptParameters(GameActionParameterVisitor& visitor) override; + uint16_t GetActionFlags() const override; void Serialise(DataSerialiser& stream) override; GameActions::Result Query() const override; diff --git a/src/openrct2/actions/StaffSetOrdersAction.cpp b/src/openrct2/actions/StaffSetOrdersAction.cpp index d8d4fbd425..0a0e97e623 100644 --- a/src/openrct2/actions/StaffSetOrdersAction.cpp +++ b/src/openrct2/actions/StaffSetOrdersAction.cpp @@ -23,6 +23,12 @@ StaffSetOrdersAction::StaffSetOrdersAction(EntityId spriteIndex, uint8_t ordersI { } +void StaffSetOrdersAction::AcceptParameters(GameActionParameterVisitor& visitor) +{ + visitor.Visit("id", _spriteIndex); + visitor.Visit("staffOrders", _ordersId); +} + uint16_t StaffSetOrdersAction::GetActionFlags() const { return GameAction::GetActionFlags() | GameActions::Flags::AllowWhilePaused; diff --git a/src/openrct2/actions/StaffSetOrdersAction.h b/src/openrct2/actions/StaffSetOrdersAction.h index 9fc0e66a42..4fd5598536 100644 --- a/src/openrct2/actions/StaffSetOrdersAction.h +++ b/src/openrct2/actions/StaffSetOrdersAction.h @@ -21,6 +21,8 @@ public: StaffSetOrdersAction() = default; StaffSetOrdersAction(EntityId spriteIndex, uint8_t ordersId); + void AcceptParameters(GameActionParameterVisitor& visitor) override; + uint16_t GetActionFlags() const override; void Serialise(DataSerialiser& stream) override; diff --git a/src/openrct2/actions/SurfaceSetStyleAction.cpp b/src/openrct2/actions/SurfaceSetStyleAction.cpp index b40081c95a..bb931256f5 100644 --- a/src/openrct2/actions/SurfaceSetStyleAction.cpp +++ b/src/openrct2/actions/SurfaceSetStyleAction.cpp @@ -26,6 +26,13 @@ SurfaceSetStyleAction::SurfaceSetStyleAction(MapRange range, ObjectEntryIndex su { } +void SurfaceSetStyleAction::AcceptParameters(GameActionParameterVisitor& visitor) +{ + visitor.Visit(_range); + visitor.Visit("surfaceStyle", _surfaceStyle); + visitor.Visit("edgeStyle", _edgeStyle); +} + void SurfaceSetStyleAction::Serialise(DataSerialiser& stream) { GameAction::Serialise(stream); diff --git a/src/openrct2/actions/SurfaceSetStyleAction.h b/src/openrct2/actions/SurfaceSetStyleAction.h index 6325e34776..de0d12db30 100644 --- a/src/openrct2/actions/SurfaceSetStyleAction.h +++ b/src/openrct2/actions/SurfaceSetStyleAction.h @@ -22,6 +22,8 @@ public: SurfaceSetStyleAction() = default; SurfaceSetStyleAction(MapRange range, ObjectEntryIndex surfaceStyle, ObjectEntryIndex edgeStyle); + void AcceptParameters(GameActionParameterVisitor& visitor) override; + void Serialise(DataSerialiser& stream) override; GameActions::Result Query() const override; GameActions::Result Execute() const override; diff --git a/src/openrct2/actions/TileModifyAction.cpp b/src/openrct2/actions/TileModifyAction.cpp index ba2a8a0cac..58c41dc9be 100644 --- a/src/openrct2/actions/TileModifyAction.cpp +++ b/src/openrct2/actions/TileModifyAction.cpp @@ -23,6 +23,14 @@ TileModifyAction::TileModifyAction( { } +void TileModifyAction::AcceptParameters(GameActionParameterVisitor& visitor) +{ + visitor.Visit(_loc); + visitor.Visit("setting", _setting); + visitor.Visit("value1", _value1); + visitor.Visit("value2", _value2); +} + uint16_t TileModifyAction::GetActionFlags() const { return GameAction::GetActionFlags() | GameActions::Flags::AllowWhilePaused; diff --git a/src/openrct2/actions/TileModifyAction.h b/src/openrct2/actions/TileModifyAction.h index eec1eb2cf1..0b326dad68 100644 --- a/src/openrct2/actions/TileModifyAction.h +++ b/src/openrct2/actions/TileModifyAction.h @@ -54,6 +54,8 @@ public: TileModifyAction( CoordsXY loc, TileModifyType setting, uint32_t value1 = 0, uint32_t value2 = 0, TileElement pasteElement = {}); + void AcceptParameters(GameActionParameterVisitor& visitor) override; + uint16_t GetActionFlags() const override; void Serialise(DataSerialiser& stream) override; diff --git a/src/openrct2/actions/WallSetColourAction.cpp b/src/openrct2/actions/WallSetColourAction.cpp index 656bd932cc..753db541d6 100644 --- a/src/openrct2/actions/WallSetColourAction.cpp +++ b/src/openrct2/actions/WallSetColourAction.cpp @@ -29,6 +29,14 @@ WallSetColourAction::WallSetColourAction( { } +void WallSetColourAction::AcceptParameters(GameActionParameterVisitor& visitor) +{ + visitor.Visit(_loc); + visitor.Visit("primaryColour", _primaryColour); + visitor.Visit("secondaryColour", _secondaryColour); + visitor.Visit("tertiaryColour", _tertiaryColour); +} + uint16_t WallSetColourAction::GetActionFlags() const { return GameAction::GetActionFlags() | GameActions::Flags::AllowWhilePaused; diff --git a/src/openrct2/actions/WallSetColourAction.h b/src/openrct2/actions/WallSetColourAction.h index 61675f5287..c0de7d2d40 100644 --- a/src/openrct2/actions/WallSetColourAction.h +++ b/src/openrct2/actions/WallSetColourAction.h @@ -23,6 +23,8 @@ public: WallSetColourAction() = default; WallSetColourAction(const CoordsXYZD& loc, int32_t primaryColour, int32_t secondaryColour, int32_t tertiaryColour); + void AcceptParameters(GameActionParameterVisitor& visitor) override; + uint16_t GetActionFlags() const override; void Serialise(DataSerialiser& stream) override; diff --git a/src/openrct2/actions/WaterLowerAction.cpp b/src/openrct2/actions/WaterLowerAction.cpp index b2f70f583f..dfd82be3fc 100644 --- a/src/openrct2/actions/WaterLowerAction.cpp +++ b/src/openrct2/actions/WaterLowerAction.cpp @@ -19,6 +19,11 @@ WaterLowerAction::WaterLowerAction(MapRange range) { } +void WaterLowerAction::AcceptParameters(GameActionParameterVisitor& visitor) +{ + visitor.Visit(_range); +} + uint16_t WaterLowerAction::GetActionFlags() const { return GameAction::GetActionFlags(); diff --git a/src/openrct2/actions/WaterLowerAction.h b/src/openrct2/actions/WaterLowerAction.h index 6b777caafc..cffc4b4348 100644 --- a/src/openrct2/actions/WaterLowerAction.h +++ b/src/openrct2/actions/WaterLowerAction.h @@ -20,6 +20,8 @@ public: WaterLowerAction() = default; WaterLowerAction(MapRange range); + void AcceptParameters(GameActionParameterVisitor& visitor) override; + uint16_t GetActionFlags() const override; void Serialise(DataSerialiser& stream) override; diff --git a/src/openrct2/actions/WaterRaiseAction.cpp b/src/openrct2/actions/WaterRaiseAction.cpp index 74779abaa8..13d1fcb142 100644 --- a/src/openrct2/actions/WaterRaiseAction.cpp +++ b/src/openrct2/actions/WaterRaiseAction.cpp @@ -19,6 +19,11 @@ WaterRaiseAction::WaterRaiseAction(MapRange range) { } +void WaterRaiseAction::AcceptParameters(GameActionParameterVisitor& visitor) +{ + visitor.Visit(_range); +} + uint16_t WaterRaiseAction::GetActionFlags() const { return GameAction::GetActionFlags(); diff --git a/src/openrct2/actions/WaterRaiseAction.h b/src/openrct2/actions/WaterRaiseAction.h index 3b5c8e28ee..e23942b22a 100644 --- a/src/openrct2/actions/WaterRaiseAction.h +++ b/src/openrct2/actions/WaterRaiseAction.h @@ -20,6 +20,8 @@ public: WaterRaiseAction() = default; WaterRaiseAction(MapRange range); + void AcceptParameters(GameActionParameterVisitor& visitor) override; + uint16_t GetActionFlags() const override; void Serialise(DataSerialiser& stream) override; diff --git a/src/openrct2/actions/WaterSetHeightAction.cpp b/src/openrct2/actions/WaterSetHeightAction.cpp index 8b0490b15f..8fbf58ee22 100644 --- a/src/openrct2/actions/WaterSetHeightAction.cpp +++ b/src/openrct2/actions/WaterSetHeightAction.cpp @@ -21,6 +21,12 @@ WaterSetHeightAction::WaterSetHeightAction(const CoordsXY& coords, uint8_t heigh { } +void WaterSetHeightAction::AcceptParameters(GameActionParameterVisitor& visitor) +{ + visitor.Visit(_coords); + visitor.Visit("height", _height); +} + uint16_t WaterSetHeightAction::GetActionFlags() const { return GameAction::GetActionFlags(); diff --git a/src/openrct2/actions/WaterSetHeightAction.h b/src/openrct2/actions/WaterSetHeightAction.h index 951f9c33dc..b06953cb1a 100644 --- a/src/openrct2/actions/WaterSetHeightAction.h +++ b/src/openrct2/actions/WaterSetHeightAction.h @@ -21,6 +21,8 @@ public: WaterSetHeightAction() = default; WaterSetHeightAction(const CoordsXY& coords, uint8_t height); + void AcceptParameters(GameActionParameterVisitor& visitor) override; + uint16_t GetActionFlags() const override; void Serialise(DataSerialiser& stream) override; diff --git a/src/openrct2/scripting/ScriptEngine.cpp b/src/openrct2/scripting/ScriptEngine.cpp index 76eee91c90..014ab7747c 100644 --- a/src/openrct2/scripting/ScriptEngine.cpp +++ b/src/openrct2/scripting/ScriptEngine.cpp @@ -1274,7 +1274,7 @@ const static EnumMap ActionNameToType = { { "clearscenery", GameCommand::ClearScenery }, { "climateset", GameCommand::SetClimate }, { "footpathplace", GameCommand::PlacePath }, - { "footpathplacefromtrack", GameCommand::PlacePathFromTrack }, + { "footpathlayoutplace", GameCommand::PlacePathFromTrack }, { "footpathremove", GameCommand::RemovePath }, { "footpathadditionplace", GameCommand::PlaceFootpathAddition }, { "footpathadditionremove", GameCommand::RemoveFootpathAddition }, @@ -1285,14 +1285,15 @@ const static EnumMap ActionNameToType = { { "landraise", GameCommand::RaiseLand }, { "landsetheight", GameCommand::SetLandHeight }, { "landsetrights", GameCommand::SetLandOwnership }, - { "landsmoothaction", GameCommand::EditLandSmooth }, + { "landsmooth", GameCommand::EditLandSmooth }, { "largesceneryplace", GameCommand::PlaceLargeScenery }, { "largesceneryremove", GameCommand::RemoveLargeScenery }, - { "largescenerysetcolour", GameCommand::SetSceneryColour }, + { "largescenerysetcolour", GameCommand::SetLargeSceneryColour }, { "loadorquit", GameCommand::LoadOrQuit }, { "mazeplacetrack", GameCommand::PlaceMazeDesign }, { "mazesettrack", GameCommand::SetMazeTrack }, { "networkmodifygroup", GameCommand::ModifyGroups }, + { "parkentranceplace", GameCommand::PlaceParkEntrance }, { "parkentranceremove", GameCommand::RemoveParkEntrance }, { "parkmarketing", GameCommand::StartMarketingCampaign }, { "parksetdate", GameCommand::SetDate }, @@ -1302,8 +1303,7 @@ const static EnumMap ActionNameToType = { { "parksetresearchfunding", GameCommand::SetResearchFunding }, { "pausetoggle", GameCommand::TogglePause }, { "peeppickup", GameCommand::PickupGuest }, - { "placeparkentrance", GameCommand::PlaceParkEntrance }, - { "placepeepspawn", GameCommand::PlacePeepSpawn }, + { "peepspawnplace", GameCommand::PlacePeepSpawn }, { "playerkick", GameCommand::KickPlayer }, { "playersetgroup", GameCommand::SetPlayerGroup }, { "ridecreate", GameCommand::CreateRide }, @@ -1317,14 +1317,15 @@ const static EnumMap ActionNameToType = { { "ridesetprice", GameCommand::SetRidePrice }, { "ridesetsetting", GameCommand::SetRideSetting }, { "ridesetstatus", GameCommand::SetRideStatus }, - { "ridesetvehicles", GameCommand::SetRideVehicles }, + { "ridesetvehicle", GameCommand::SetRideVehicles }, { "scenariosetsetting", GameCommand::EditScenarioOptions }, - { "setcheataction", GameCommand::Cheat }, + { "setcheat", GameCommand::Cheat }, { "setparkentrancefee", GameCommand::SetParkEntranceFee }, { "signsetname", GameCommand::SetSignName }, { "signsetstyle", GameCommand::SetSignStyle }, { "smallsceneryplace", GameCommand::PlaceScenery }, { "smallsceneryremove", GameCommand::RemoveScenery }, + { "smallscenerysetcolour", GameCommand::SetSceneryColour}, { "stafffire", GameCommand::FireStaffMember }, { "staffhire", GameCommand::HireNewStaffMember }, { "staffsetcolour", GameCommand::SetStaffColour }, diff --git a/src/openrct2/scripting/ScriptEngine.h b/src/openrct2/scripting/ScriptEngine.h index f2a0db4c1d..301c7f7ee5 100644 --- a/src/openrct2/scripting/ScriptEngine.h +++ b/src/openrct2/scripting/ScriptEngine.h @@ -46,7 +46,7 @@ namespace OpenRCT2 namespace OpenRCT2::Scripting { - static constexpr int32_t OPENRCT2_PLUGIN_API_VERSION = 65; + static constexpr int32_t OPENRCT2_PLUGIN_API_VERSION = 66; // Versions marking breaking changes. static constexpr int32_t API_VERSION_33_PEEP_DEPRECATION = 33;