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)
|
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.
|
- Fix: [#24598] Cannot load .park files that use official legacy footpaths by accident.
|
||||||
|
|
||||||
0.4.24 (2025-07-05)
|
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 {
|
interface Cheats {
|
||||||
allowArbitraryRideTypeChanges: boolean;
|
allowArbitraryRideTypeChanges: boolean;
|
||||||
|
allowSpecialColourSchemes: boolean;
|
||||||
allowTrackPlaceInvalidHeights: boolean;
|
allowTrackPlaceInvalidHeights: boolean;
|
||||||
buildInPauseMode: boolean;
|
buildInPauseMode: boolean;
|
||||||
disableAllBreakdowns: boolean;
|
disableAllBreakdowns: boolean;
|
||||||
@@ -4603,10 +4604,13 @@ declare global {
|
|||||||
enableAllDrawableTrackPieces: boolean;
|
enableAllDrawableTrackPieces: boolean;
|
||||||
enableChainLiftOnAllTrack: boolean;
|
enableChainLiftOnAllTrack: boolean;
|
||||||
fastLiftHill: boolean;
|
fastLiftHill: boolean;
|
||||||
|
forcedParkRating: number;
|
||||||
freezeWeather: boolean;
|
freezeWeather: boolean;
|
||||||
ignoreResearchStatus: boolean;
|
ignoreResearchStatus: boolean;
|
||||||
ignoreRideIntensity: boolean;
|
ignoreRideIntensity: boolean;
|
||||||
|
ignoreRidePrice: boolean;
|
||||||
neverendingMarketing: boolean;
|
neverendingMarketing: boolean;
|
||||||
|
makeAllDestructible: boolean;
|
||||||
sandboxMode: boolean;
|
sandboxMode: boolean;
|
||||||
showAllOperatingModes: boolean;
|
showAllOperatingModes: boolean;
|
||||||
showVehiclesFromOtherTrackTypes: boolean;
|
showVehiclesFromOtherTrackTypes: boolean;
|
||||||
|
|||||||
@@ -46,7 +46,7 @@ namespace OpenRCT2
|
|||||||
|
|
||||||
namespace OpenRCT2::Scripting
|
namespace OpenRCT2::Scripting
|
||||||
{
|
{
|
||||||
static constexpr int32_t kPluginApiVersion = 108;
|
static constexpr int32_t kPluginApiVersion = 109;
|
||||||
|
|
||||||
// Versions marking breaking changes.
|
// Versions marking breaking changes.
|
||||||
static constexpr int32_t kApiVersionPeepDeprecation = 33;
|
static constexpr int32_t kApiVersionPeepDeprecation = 33;
|
||||||
|
|||||||
@@ -66,14 +66,19 @@ namespace OpenRCT2::Scripting
|
|||||||
ctx, &ScCheats::ignoreResearchStatus_get, &ScCheats::ignoreResearchStatus_set, "ignoreResearchStatus");
|
ctx, &ScCheats::ignoreResearchStatus_get, &ScCheats::ignoreResearchStatus_set, "ignoreResearchStatus");
|
||||||
dukglue_register_property(
|
dukglue_register_property(
|
||||||
ctx, &ScCheats::ignoreRideIntensity_get, &ScCheats::ignoreRideIntensity_set, "ignoreRideIntensity");
|
ctx, &ScCheats::ignoreRideIntensity_get, &ScCheats::ignoreRideIntensity_set, "ignoreRideIntensity");
|
||||||
|
dukglue_register_property(ctx, &ScCheats::ignoreRidePrice_get, &ScCheats::ignoreRidePrice_set, "ignoreRidePrice");
|
||||||
dukglue_register_property(
|
dukglue_register_property(
|
||||||
ctx, &ScCheats::neverendingMarketing_get, &ScCheats::neverendingMarketing_set, "neverendingMarketing");
|
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::sandboxMode_get, &ScCheats::sandboxMode_set, "sandboxMode");
|
||||||
dukglue_register_property(
|
dukglue_register_property(
|
||||||
ctx, &ScCheats::showAllOperatingModes_get, &ScCheats::showAllOperatingModes_set, "showAllOperatingModes");
|
ctx, &ScCheats::showAllOperatingModes_get, &ScCheats::showAllOperatingModes_set, "showAllOperatingModes");
|
||||||
dukglue_register_property(
|
dukglue_register_property(
|
||||||
ctx, &ScCheats::showVehiclesFromOtherTrackTypes_get, &ScCheats::showVehiclesFromOtherTrackTypes_set,
|
ctx, &ScCheats::showVehiclesFromOtherTrackTypes_get, &ScCheats::showVehiclesFromOtherTrackTypes_set,
|
||||||
"showVehiclesFromOtherTrackTypes");
|
"showVehiclesFromOtherTrackTypes");
|
||||||
|
dukglue_register_property(
|
||||||
|
ctx, &ScCheats::makeAllDestructible_get, &ScCheats::makeAllDestructible_set, "makeAllDestructible");
|
||||||
}
|
}
|
||||||
|
|
||||||
private:
|
private:
|
||||||
@@ -297,6 +302,17 @@ namespace OpenRCT2::Scripting
|
|||||||
getGameState().cheats.ignoreRideIntensity = value;
|
getGameState().cheats.ignoreRideIntensity = value;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool ignoreRidePrice_get()
|
||||||
|
{
|
||||||
|
return getGameState().cheats.ignorePrice;
|
||||||
|
}
|
||||||
|
|
||||||
|
void ignoreRidePrice_set(bool value)
|
||||||
|
{
|
||||||
|
ThrowIfGameStateNotMutable();
|
||||||
|
getGameState().cheats.ignorePrice = value;
|
||||||
|
}
|
||||||
|
|
||||||
bool neverendingMarketing_get()
|
bool neverendingMarketing_get()
|
||||||
{
|
{
|
||||||
return getGameState().cheats.neverendingMarketing;
|
return getGameState().cheats.neverendingMarketing;
|
||||||
@@ -308,6 +324,19 @@ namespace OpenRCT2::Scripting
|
|||||||
getGameState().cheats.neverendingMarketing = value;
|
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()
|
bool sandboxMode_get()
|
||||||
{
|
{
|
||||||
return getGameState().cheats.sandboxMode;
|
return getGameState().cheats.sandboxMode;
|
||||||
@@ -340,6 +369,17 @@ namespace OpenRCT2::Scripting
|
|||||||
ThrowIfGameStateNotMutable();
|
ThrowIfGameStateNotMutable();
|
||||||
getGameState().cheats.showVehiclesFromOtherTrackTypes = value;
|
getGameState().cheats.showVehiclesFromOtherTrackTypes = value;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool makeAllDestructible_get()
|
||||||
|
{
|
||||||
|
return getGameState().cheats.makeAllDestructible;
|
||||||
|
}
|
||||||
|
|
||||||
|
void makeAllDestructible_set(bool value)
|
||||||
|
{
|
||||||
|
ThrowIfGameStateNotMutable();
|
||||||
|
getGameState().cheats.makeAllDestructible = value;
|
||||||
|
}
|
||||||
};
|
};
|
||||||
} // namespace OpenRCT2::Scripting
|
} // namespace OpenRCT2::Scripting
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user