mirror of
https://github.com/OpenRCT2/OpenRCT2
synced 2026-01-23 06:44:38 +01:00
[Plugin] Add banner index to banner creation result
This commit is contained in:
@@ -7,6 +7,7 @@
|
||||
- Feature: [#21893, #22065] On launch, the game now indicates what system is being initialised.
|
||||
- Feature: [#21913] [Plugin] Allow precise and safe control of peep animations.
|
||||
- Feature: [#22046] [Plugin] Add interface for crashed vehicle particle.
|
||||
- Feature: [#22085] [Plugin] The result of actions that create banners now includes the bannerIndex.
|
||||
- Feature: [#22087] [Plugin] Expose guests’ favourite rides to the plugin API.
|
||||
- Improved: [#19870] Allow using new colours in UI themes.
|
||||
- Improved: [#21853] Dropdowns now automatically use multiple columns if they are too tall for the screen.
|
||||
|
||||
16
distribution/openrct2.d.ts
vendored
16
distribution/openrct2.d.ts
vendored
@@ -317,7 +317,7 @@ declare global {
|
||||
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: "bannerplace", args: BannerPlaceArgs, callback?: (result: BannerCreateActionResult) => 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;
|
||||
@@ -339,7 +339,7 @@ declare global {
|
||||
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: "largesceneryplace", args: LargeSceneryPlaceArgs, callback?: (result: BannerCreateActionResult) => 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;
|
||||
@@ -392,7 +392,7 @@ declare global {
|
||||
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: "wallplace", args: WallPlaceArgs, callback?: (result: BannerCreateActionResult) => 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;
|
||||
@@ -409,7 +409,7 @@ declare global {
|
||||
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: "bannerplace", args: BannerPlaceArgs, callback?: (result: BannerCreateActionResult) => 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;
|
||||
@@ -431,7 +431,7 @@ declare global {
|
||||
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: "largesceneryplace", args: LargeSceneryPlaceArgs, callback?: (result: BannerCreateActionResult) => 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;
|
||||
@@ -484,7 +484,7 @@ declare global {
|
||||
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: "wallplace", args: WallPlaceArgs, callback?: (result: BannerCreateActionResult) => 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;
|
||||
@@ -1343,6 +1343,10 @@ declare global {
|
||||
expenditureType?: ExpenditureType;
|
||||
}
|
||||
|
||||
interface BannerCreateActionResult extends GameActionResult {
|
||||
readonly bannerIndex?: number;
|
||||
}
|
||||
|
||||
interface RideCreateActionResult extends GameActionResult {
|
||||
readonly ride?: number;
|
||||
}
|
||||
|
||||
@@ -103,6 +103,7 @@ GameActions::Result BannerPlaceAction::Query() const
|
||||
GameActions::Status::InvalidParameters, STR_CANT_POSITION_THIS_HERE, STR_ERR_BANNER_ELEMENT_NOT_FOUND);
|
||||
}
|
||||
res.Cost = bannerEntry->price;
|
||||
res.SetData(BannerPlaceActionResult{});
|
||||
|
||||
return res;
|
||||
}
|
||||
|
||||
@@ -12,10 +12,13 @@
|
||||
# include "ScriptEngine.h"
|
||||
|
||||
# include "../PlatformEnvironment.h"
|
||||
# include "../actions/BannerPlaceAction.h"
|
||||
# include "../actions/CustomAction.h"
|
||||
# include "../actions/GameAction.h"
|
||||
# include "../actions/LargeSceneryPlaceAction.h"
|
||||
# include "../actions/RideCreateAction.h"
|
||||
# include "../actions/StaffHireNewAction.h"
|
||||
# include "../actions/WallPlaceAction.h"
|
||||
# include "../config/Config.h"
|
||||
# include "../core/EnumMap.hpp"
|
||||
# include "../core/File.h"
|
||||
@@ -1222,6 +1225,26 @@ DukValue ScriptEngine::GameActionResultToDuk(const GameAction& action, const Gam
|
||||
}
|
||||
}
|
||||
}
|
||||
// BannerPlaceAction, LargeSceneryPlaceAction, WallPlaceAction
|
||||
auto bannerId = BannerIndex::GetNull();
|
||||
switch (action.GetType())
|
||||
{
|
||||
case GameCommand::PlaceBanner:
|
||||
bannerId = result.GetData<BannerPlaceActionResult>().bannerId;
|
||||
break;
|
||||
case GameCommand::PlaceLargeScenery:
|
||||
bannerId = result.GetData<LargeSceneryPlaceActionResult>().bannerId;
|
||||
break;
|
||||
case GameCommand::PlaceWall:
|
||||
bannerId = result.GetData<WallPlaceActionResult>().BannerId;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
if (!bannerId.IsNull())
|
||||
{
|
||||
obj.Set("bannerIndex", bannerId.ToUnderlying());
|
||||
}
|
||||
|
||||
return obj.Take();
|
||||
}
|
||||
|
||||
@@ -47,7 +47,7 @@ namespace OpenRCT2
|
||||
|
||||
namespace OpenRCT2::Scripting
|
||||
{
|
||||
static constexpr int32_t OPENRCT2_PLUGIN_API_VERSION = 91;
|
||||
static constexpr int32_t OPENRCT2_PLUGIN_API_VERSION = 92;
|
||||
|
||||
// Versions marking breaking changes.
|
||||
static constexpr int32_t API_VERSION_33_PEEP_DEPRECATION = 33;
|
||||
|
||||
Reference in New Issue
Block a user