1
0
mirror of https://github.com/OpenRCT2/OpenRCT2 synced 2026-01-18 20:43:04 +01:00
Files
OpenRCT2/src/openrct2/Cheats.h
2025-10-01 20:34:54 +02:00

144 lines
3.6 KiB
C++

/*****************************************************************************
* Copyright (c) 2014-2025 OpenRCT2 developers
*
* For a complete list of all authors, please refer to contributors.md
* Interested in contributing? Visit https://github.com/OpenRCT2/OpenRCT2
*
* OpenRCT2 is licensed under the GNU General Public License version 3.
*****************************************************************************/
#pragma once
#include "core/Money.hpp"
enum class StaffSpeedCheat
{
None,
Frozen,
Fast,
};
struct CheatsState
{
bool sandboxMode;
bool disableClearanceChecks;
bool disableSupportLimits;
bool showAllOperatingModes;
bool showVehiclesFromOtherTrackTypes;
bool unlockOperatingLimits;
bool disableBrakesFailure;
bool disableAllBreakdowns;
bool buildInPauseMode;
bool ignoreRideIntensity;
bool ignorePrice;
bool disableVandalism;
bool disableLittering;
bool neverendingMarketing;
bool freezeWeather;
bool disableTrainLengthLimit;
bool disablePlantAging;
bool disableRideValueAging;
bool enableChainLiftOnAllTrack;
bool allowArbitraryRideTypeChanges;
bool ignoreResearchStatus;
bool enableAllDrawableTrackPieces;
bool allowTrackPlaceInvalidHeights;
bool allowRegularPathAsQueue;
bool allowSpecialColourSchemes;
bool makeAllDestructible;
StaffSpeedCheat selectedStaffSpeed;
int32_t forcedParkRating;
};
enum class CheatType : int32_t
{
sandboxMode,
disableClearanceChecks,
disableSupportLimits,
showAllOperatingModes,
showVehiclesFromOtherTrackTypes,
disableTrainLengthLimit,
enableChainLiftOnAllTrack,
fastLiftHill,
disableBrakesFailure,
disableAllBreakdowns,
unlockAllPrices,
buildInPauseMode,
ignoreRideIntensity,
disableVandalism,
disableLittering,
noMoney,
addMoney,
setMoney,
clearLoan,
setGuestParameter,
generateGuests,
removeAllGuests,
giveAllGuests,
setGrassLength,
waterPlants,
disablePlantAging,
fixVandalism,
removeLitter,
setStaffSpeed,
renewRides,
makeDestructible,
fixRides,
resetCrashStatus,
tenMinuteInspections,
winScenario,
forceWeather,
freezeWeather,
openClosePark,
haveFun,
setForcedParkRating,
neverendingMarketing,
allowArbitraryRideTypeChanges,
ownAllLand,
disableRideValueAging,
ignoreResearchStatus,
enableAllDrawableTrackPieces,
createDucks,
removeDucks,
allowTrackPlaceInvalidHeights,
noCapOnQueueLengthDummy, // Removed; this dummy exists only for deserialisation parks that had it saved
allowRegularPathAsQueue,
allowSpecialColourSchemes,
removeParkFences,
ignorePrice,
count,
};
enum
{
GUEST_PARAMETER_HAPPINESS,
GUEST_PARAMETER_ENERGY,
GUEST_PARAMETER_HUNGER,
GUEST_PARAMETER_THIRST,
GUEST_PARAMETER_NAUSEA,
GUEST_PARAMETER_NAUSEA_TOLERANCE,
GUEST_PARAMETER_TOILET,
GUEST_PARAMETER_PREFERRED_RIDE_INTENSITY
};
enum
{
OBJECT_MONEY,
OBJECT_PARK_MAP,
OBJECT_BALLOON,
OBJECT_UMBRELLA
};
constexpr auto kCheatsGiveGuestsMoney = 1000.00_GBP;
constexpr int32_t kCheatsTramIncrement = 250;
constexpr int32_t kCheatsDuckIncrement = 20;
constexpr int32_t kCheatsStaffFastSpeed = 0xFF;
constexpr int32_t kCheatsStaffNormalSpeed = 0x60;
constexpr int32_t kCheatsStaffFreezeSpeed = 0;
constexpr int32_t kForcedParkRatingDisabled = -1;
void CheatsReset();
const char* CheatsGetName(CheatType cheatType);
void CheatsSet(CheatType cheatType, int64_t param1 = 0, int64_t param2 = 0);
void CheatsSerialise(class DataSerialiser& ds);