mirror of
https://github.com/OpenRCT2/OpenRCT2
synced 2025-12-10 09:32:29 +01:00
Feature: [Plugin] Add bindings for missing cheats
Added the following binds for completeness: - ignoreRidePrice - makeAllDestructible - forcedParkRating* `allowSpecialColourSchemes` was missing from the type definition file so I added that as well. \*forcedParkRating required a little more logic than the boolean cheats and I added some safeguards to prevent setting invalid values
This commit is contained in:
@@ -1,5 +1,6 @@
|
||||
0.4.25 (in development)
|
||||
------------------------------------------------------------------------
|
||||
- Feature: [#24702] [Plugin] Add bindings for missing cheats (forcedParkRating, ignoreRidePrice, makeAllDestructible).
|
||||
- Fix: [#24598] Cannot load .park files that use official legacy footpaths by accident.
|
||||
|
||||
0.4.24 (2025-07-05)
|
||||
|
||||
4
distribution/openrct2.d.ts
vendored
4
distribution/openrct2.d.ts
vendored
@@ -4589,6 +4589,7 @@ declare global {
|
||||
|
||||
interface Cheats {
|
||||
allowArbitraryRideTypeChanges: boolean;
|
||||
allowSpecialColourSchemes: boolean;
|
||||
allowTrackPlaceInvalidHeights: boolean;
|
||||
buildInPauseMode: boolean;
|
||||
disableAllBreakdowns: boolean;
|
||||
@@ -4603,10 +4604,13 @@ declare global {
|
||||
enableAllDrawableTrackPieces: boolean;
|
||||
enableChainLiftOnAllTrack: boolean;
|
||||
fastLiftHill: boolean;
|
||||
forcedParkRating: number;
|
||||
freezeWeather: boolean;
|
||||
ignoreResearchStatus: boolean;
|
||||
ignoreRideIntensity: boolean;
|
||||
ignoreRidePrice: boolean;
|
||||
neverendingMarketing: boolean;
|
||||
makeAllDestructible: boolean;
|
||||
sandboxMode: boolean;
|
||||
showAllOperatingModes: boolean;
|
||||
showVehiclesFromOtherTrackTypes: boolean;
|
||||
|
||||
@@ -46,7 +46,7 @@ namespace OpenRCT2
|
||||
|
||||
namespace OpenRCT2::Scripting
|
||||
{
|
||||
static constexpr int32_t kPluginApiVersion = 108;
|
||||
static constexpr int32_t kPluginApiVersion = 109;
|
||||
|
||||
// Versions marking breaking changes.
|
||||
static constexpr int32_t kApiVersionPeepDeprecation = 33;
|
||||
|
||||
@@ -66,14 +66,19 @@ namespace OpenRCT2::Scripting
|
||||
ctx, &ScCheats::ignoreResearchStatus_get, &ScCheats::ignoreResearchStatus_set, "ignoreResearchStatus");
|
||||
dukglue_register_property(
|
||||
ctx, &ScCheats::ignoreRideIntensity_get, &ScCheats::ignoreRideIntensity_set, "ignoreRideIntensity");
|
||||
dukglue_register_property(ctx, &ScCheats::ignoreRidePrice_get, &ScCheats::ignoreRidePrice_set, "ignoreRidePrice");
|
||||
dukglue_register_property(
|
||||
ctx, &ScCheats::neverendingMarketing_get, &ScCheats::neverendingMarketing_set, "neverendingMarketing");
|
||||
dukglue_register_property(
|
||||
ctx, &ScCheats::forcedParkRating_get, &ScCheats::forcedParkRating_set, "forcedParkRating");
|
||||
dukglue_register_property(ctx, &ScCheats::sandboxMode_get, &ScCheats::sandboxMode_set, "sandboxMode");
|
||||
dukglue_register_property(
|
||||
ctx, &ScCheats::showAllOperatingModes_get, &ScCheats::showAllOperatingModes_set, "showAllOperatingModes");
|
||||
dukglue_register_property(
|
||||
ctx, &ScCheats::showVehiclesFromOtherTrackTypes_get, &ScCheats::showVehiclesFromOtherTrackTypes_set,
|
||||
"showVehiclesFromOtherTrackTypes");
|
||||
dukglue_register_property(
|
||||
ctx, &ScCheats::makeAllDestructible_get, &ScCheats::makeAllDestructible_set, "makeAllDestructible");
|
||||
}
|
||||
|
||||
private:
|
||||
@@ -297,6 +302,17 @@ namespace OpenRCT2::Scripting
|
||||
getGameState().cheats.ignoreRideIntensity = value;
|
||||
}
|
||||
|
||||
bool ignoreRidePrice_get()
|
||||
{
|
||||
return getGameState().cheats.ignorePrice;
|
||||
}
|
||||
|
||||
void ignoreRidePrice_set(bool value)
|
||||
{
|
||||
ThrowIfGameStateNotMutable();
|
||||
getGameState().cheats.ignorePrice = value;
|
||||
}
|
||||
|
||||
bool neverendingMarketing_get()
|
||||
{
|
||||
return getGameState().cheats.neverendingMarketing;
|
||||
@@ -308,6 +324,19 @@ namespace OpenRCT2::Scripting
|
||||
getGameState().cheats.neverendingMarketing = value;
|
||||
}
|
||||
|
||||
int32_t forcedParkRating_get()
|
||||
{
|
||||
return getGameState().cheats.forcedParkRating;
|
||||
}
|
||||
|
||||
void forcedParkRating_set(int32_t value)
|
||||
{
|
||||
ThrowIfGameStateNotMutable();
|
||||
int32_t adjusted = std::max(-1, std::min(value, 999));
|
||||
getGameState().cheats.forcedParkRating = adjusted;
|
||||
Park::SetForcedRating(adjusted);
|
||||
}
|
||||
|
||||
bool sandboxMode_get()
|
||||
{
|
||||
return getGameState().cheats.sandboxMode;
|
||||
@@ -340,6 +369,17 @@ namespace OpenRCT2::Scripting
|
||||
ThrowIfGameStateNotMutable();
|
||||
getGameState().cheats.showVehiclesFromOtherTrackTypes = value;
|
||||
}
|
||||
|
||||
bool makeAllDestructible_get()
|
||||
{
|
||||
return getGameState().cheats.makeAllDestructible;
|
||||
}
|
||||
|
||||
void makeAllDestructible_set(bool value)
|
||||
{
|
||||
ThrowIfGameStateNotMutable();
|
||||
getGameState().cheats.makeAllDestructible = value;
|
||||
}
|
||||
};
|
||||
} // namespace OpenRCT2::Scripting
|
||||
|
||||
|
||||
Reference in New Issue
Block a user