mirror of
https://github.com/OpenRCT2/OpenRCT2
synced 2026-01-23 06:44:38 +01:00
Replace SET_FIELD() macro with designated initialisers
This commit is contained in:
committed by
GitHub
parent
01bc8cdb5e
commit
aa804a19ff
@@ -364,12 +364,6 @@ struct RideTypeDescriptor
|
||||
bool SupportsRideMode(RideMode rideMode) const;
|
||||
};
|
||||
|
||||
#ifdef _WIN32
|
||||
# define SET_FIELD(fieldname, ...) __VA_ARGS__
|
||||
#else
|
||||
# define SET_FIELD(fieldname, ...) .fieldname = __VA_ARGS__
|
||||
#endif
|
||||
|
||||
extern const RideTypeDescriptor RideTypeDescriptors[RIDE_TYPE_COUNT];
|
||||
|
||||
enum
|
||||
@@ -523,36 +517,36 @@ extern const StringId RideModeNames[static_cast<uint8_t>(RideMode::Count)];
|
||||
// clang-format off
|
||||
constexpr RideTypeDescriptor DummyRTD =
|
||||
{
|
||||
SET_FIELD(AlternateType, RIDE_TYPE_NULL),
|
||||
SET_FIELD(Category, RIDE_CATEGORY_NONE),
|
||||
SET_FIELD(EnabledTrackPieces, {}),
|
||||
SET_FIELD(ExtraTrackPieces, {}),
|
||||
SET_FIELD(CoveredTrackPieces, {}),
|
||||
SET_FIELD(StartTrackPiece, TrackElemType::EndStation),
|
||||
SET_FIELD(TrackPaintFunctions, TrackDrawerDescriptor(nullptr)),
|
||||
SET_FIELD(Flags, 0),
|
||||
SET_FIELD(RideModes, EnumsToFlags(RideMode::ContinuousCircuit)),
|
||||
SET_FIELD(DefaultMode, RideMode::ContinuousCircuit),
|
||||
SET_FIELD(OperatingSettings, { 0, 0, 0, 0, 0, 0 }),
|
||||
SET_FIELD(Naming, { STR_UNKNOWN_RIDE, STR_RIDE_DESCRIPTION_UNKNOWN }),
|
||||
SET_FIELD(NameConvention, { RideComponentType::Train, RideComponentType::Track, RideComponentType::Station }),
|
||||
SET_FIELD(EnumName, "(INVALID)"),
|
||||
SET_FIELD(AvailableBreakdowns, 0),
|
||||
SET_FIELD(Heights, { 12, 64, 0, 0, }),
|
||||
SET_FIELD(MaxMass, 255),
|
||||
SET_FIELD(LiftData, { OpenRCT2::Audio::SoundId::Null, 5, 5 }),
|
||||
SET_FIELD(RatingsMultipliers, { 0, 0, 0 }),
|
||||
SET_FIELD(UpkeepCosts, { 50, 1, 0, 0, 0, 0 }),
|
||||
SET_FIELD(BuildCosts, { 0.00_GBP, 0.00_GBP, 1 }),
|
||||
SET_FIELD(DefaultPrices, { 20, 20 }),
|
||||
SET_FIELD(DefaultMusic, MUSIC_OBJECT_GENTLE),
|
||||
SET_FIELD(PhotoItem, ShopItem::Photo),
|
||||
SET_FIELD(BonusValue, 0),
|
||||
SET_FIELD(ColourPresets, DEFAULT_FLAT_RIDE_COLOUR_PRESET),
|
||||
SET_FIELD(ColourPreview, { static_cast<uint32_t>(SPR_NONE), static_cast<uint32_t>(SPR_NONE) }),
|
||||
SET_FIELD(ColourKey, RideColourKey::Ride),
|
||||
SET_FIELD(Name, "invalid"),
|
||||
SET_FIELD(RatingsData,
|
||||
.AlternateType = RIDE_TYPE_NULL,
|
||||
.Category = RIDE_CATEGORY_NONE,
|
||||
.EnabledTrackPieces = {},
|
||||
.ExtraTrackPieces = {},
|
||||
.CoveredTrackPieces = {},
|
||||
.StartTrackPiece = TrackElemType::EndStation,
|
||||
.TrackPaintFunctions = TrackDrawerDescriptor(nullptr),
|
||||
.Flags = 0,
|
||||
.RideModes = EnumsToFlags(RideMode::ContinuousCircuit),
|
||||
.DefaultMode = RideMode::ContinuousCircuit,
|
||||
.OperatingSettings = { 0, 0, 0, 0, 0, 0 },
|
||||
.Naming = { STR_UNKNOWN_RIDE, STR_RIDE_DESCRIPTION_UNKNOWN },
|
||||
.NameConvention = { RideComponentType::Train, RideComponentType::Track, RideComponentType::Station },
|
||||
.EnumName = "(INVALID)",
|
||||
.AvailableBreakdowns = 0,
|
||||
.Heights = { 12, 64, 0, 0, },
|
||||
.MaxMass = 255,
|
||||
.LiftData = { OpenRCT2::Audio::SoundId::Null, 5, 5 },
|
||||
.RatingsMultipliers = { 0, 0, 0 },
|
||||
.UpkeepCosts = { 50, 1, 0, 0, 0, 0 },
|
||||
.BuildCosts = { 0.00_GBP, 0.00_GBP, 1 },
|
||||
.DefaultPrices = { 20, 20 },
|
||||
.DefaultMusic = MUSIC_OBJECT_GENTLE,
|
||||
.PhotoItem = ShopItem::Photo,
|
||||
.BonusValue = 0,
|
||||
.ColourPresets = DEFAULT_FLAT_RIDE_COLOUR_PRESET,
|
||||
.ColourPreview = { static_cast<uint32_t>(SPR_NONE), static_cast<uint32_t>(SPR_NONE) },
|
||||
.ColourKey = RideColourKey::Ride,
|
||||
.Name = "invalid",
|
||||
.RatingsData =
|
||||
{
|
||||
RatingsCalculationType::FlatRide,
|
||||
{ RIDE_RATING(1, 00), RIDE_RATING(1, 00), RIDE_RATING(1, 00) },
|
||||
@@ -562,14 +556,14 @@ constexpr RideTypeDescriptor DummyRTD =
|
||||
{
|
||||
{ RatingsModifierType::NoModifier, 0, 0, 0, 0 },
|
||||
},
|
||||
}),
|
||||
SET_FIELD(UpdateRotating, UpdateRotatingDefault),
|
||||
SET_FIELD(LightFXAddLightsMagicVehicle, nullptr),
|
||||
SET_FIELD(StartRideMusic, OpenRCT2::RideAudio::DefaultStartRideMusicChannel),
|
||||
SET_FIELD(DesignCreateMode, TrackDesignCreateMode::Default),
|
||||
SET_FIELD(MusicUpdateFunction, DefaultMusicUpdate),
|
||||
SET_FIELD(Classification, RideClassification::Ride),
|
||||
SET_FIELD(UpdateLeaveEntrance, PeepUpdateRideLeaveEntranceDefault),
|
||||
},
|
||||
.UpdateRotating = UpdateRotatingDefault,
|
||||
.LightFXAddLightsMagicVehicle = nullptr,
|
||||
.StartRideMusic = OpenRCT2::RideAudio::DefaultStartRideMusicChannel,
|
||||
.DesignCreateMode = TrackDesignCreateMode::Default,
|
||||
.MusicUpdateFunction = DefaultMusicUpdate,
|
||||
.Classification = RideClassification::Ride,
|
||||
.UpdateLeaveEntrance = PeepUpdateRideLeaveEntranceDefault,
|
||||
};
|
||||
// clang-format on
|
||||
|
||||
|
||||
@@ -17,40 +17,40 @@
|
||||
// clang-format off
|
||||
constexpr RideTypeDescriptor AirPoweredVerticalCoasterRTD =
|
||||
{
|
||||
SET_FIELD(AlternateType, RIDE_TYPE_NULL),
|
||||
SET_FIELD(Category, RIDE_CATEGORY_ROLLERCOASTER),
|
||||
SET_FIELD(EnabledTrackPieces, {TRACK_STRAIGHT, TRACK_STATION_END, TRACK_LIFT_HILL_STEEP, TRACK_LIFT_HILL_CURVE, TRACK_FLAT_ROLL_BANKING, TRACK_CURVE, TRACK_BRAKES, TRACK_REVERSE_FREEFALL, TRACK_SLOPE_TO_FLAT, TRACK_ON_RIDE_PHOTO}),
|
||||
SET_FIELD(ExtraTrackPieces, {TRACK_BOOSTER}),
|
||||
SET_FIELD(CoveredTrackPieces, {}),
|
||||
SET_FIELD(StartTrackPiece, TrackElemType::EndStation),
|
||||
SET_FIELD(TrackPaintFunctions, TrackDrawerDescriptor(GetTrackPaintFunctionAirPoweredVerticalRC)),
|
||||
SET_FIELD(Flags, RIDE_TYPE_FLAGS_TRACK_HAS_3_COLOURS | RIDE_TYPE_FLAGS_COMMON_COASTER | RIDE_TYPE_FLAGS_COMMON_COASTER_NON_ALT | RIDE_TYPE_FLAG_PEEP_CHECK_GFORCES),
|
||||
SET_FIELD(RideModes, EnumsToFlags(RideMode::PoweredLaunchPasstrough, RideMode::PoweredLaunch)),
|
||||
SET_FIELD(DefaultMode, RideMode::PoweredLaunchPasstrough),
|
||||
SET_FIELD(OperatingSettings, { 30, 50, 30, 40, 40, 0, 13 }),
|
||||
SET_FIELD(Naming, { STR_RIDE_NAME_AIR_POWERED_VERTICAL_COASTER, STR_RIDE_DESCRIPTION_AIR_POWERED_VERTICAL_COASTER }),
|
||||
SET_FIELD(NameConvention, { RideComponentType::Train, RideComponentType::Track, RideComponentType::Station }),
|
||||
SET_FIELD(EnumName, nameof(RIDE_TYPE_AIR_POWERED_VERTICAL_COASTER)),
|
||||
SET_FIELD(AvailableBreakdowns, (1 << BREAKDOWN_SAFETY_CUT_OUT) | (1 << BREAKDOWN_RESTRAINTS_STUCK_CLOSED) | (1 << BREAKDOWN_RESTRAINTS_STUCK_OPEN) | (1 << BREAKDOWN_VEHICLE_MALFUNCTION)),
|
||||
SET_FIELD(Heights, { 255, 32, 4, 7, }),
|
||||
SET_FIELD(MaxMass, 255),
|
||||
SET_FIELD(LiftData, { OpenRCT2::Audio::SoundId::Null, 5, 5 }),
|
||||
SET_FIELD(RatingsMultipliers, { 44, 66, 10 }),
|
||||
SET_FIELD(UpkeepCosts, { 90, 20, 0, 0, 0, 10 }),
|
||||
SET_FIELD(BuildCosts, { 100.00_GBP, 0.00_GBP, 45, }),
|
||||
SET_FIELD(DefaultPrices, { 20, 20 }),
|
||||
SET_FIELD(DefaultMusic, MUSIC_OBJECT_ROCK_2),
|
||||
SET_FIELD(PhotoItem, ShopItem::Photo),
|
||||
SET_FIELD(BonusValue, 70),
|
||||
SET_FIELD(ColourPresets, TRACK_COLOUR_PRESETS(
|
||||
.AlternateType = RIDE_TYPE_NULL,
|
||||
.Category = RIDE_CATEGORY_ROLLERCOASTER,
|
||||
.EnabledTrackPieces = {TRACK_STRAIGHT, TRACK_STATION_END, TRACK_LIFT_HILL_STEEP, TRACK_LIFT_HILL_CURVE, TRACK_FLAT_ROLL_BANKING, TRACK_CURVE, TRACK_BRAKES, TRACK_REVERSE_FREEFALL, TRACK_SLOPE_TO_FLAT, TRACK_ON_RIDE_PHOTO},
|
||||
.ExtraTrackPieces = {TRACK_BOOSTER},
|
||||
.CoveredTrackPieces = {},
|
||||
.StartTrackPiece = TrackElemType::EndStation,
|
||||
.TrackPaintFunctions = TrackDrawerDescriptor(GetTrackPaintFunctionAirPoweredVerticalRC),
|
||||
.Flags = RIDE_TYPE_FLAGS_TRACK_HAS_3_COLOURS | RIDE_TYPE_FLAGS_COMMON_COASTER | RIDE_TYPE_FLAGS_COMMON_COASTER_NON_ALT | RIDE_TYPE_FLAG_PEEP_CHECK_GFORCES,
|
||||
.RideModes = EnumsToFlags(RideMode::PoweredLaunchPasstrough, RideMode::PoweredLaunch),
|
||||
.DefaultMode = RideMode::PoweredLaunchPasstrough,
|
||||
.OperatingSettings = { 30, 50, 30, 40, 40, 0, 13 },
|
||||
.Naming = { STR_RIDE_NAME_AIR_POWERED_VERTICAL_COASTER, STR_RIDE_DESCRIPTION_AIR_POWERED_VERTICAL_COASTER },
|
||||
.NameConvention = { RideComponentType::Train, RideComponentType::Track, RideComponentType::Station },
|
||||
.EnumName = nameof(RIDE_TYPE_AIR_POWERED_VERTICAL_COASTER),
|
||||
.AvailableBreakdowns = (1 << BREAKDOWN_SAFETY_CUT_OUT) | (1 << BREAKDOWN_RESTRAINTS_STUCK_CLOSED) | (1 << BREAKDOWN_RESTRAINTS_STUCK_OPEN) | (1 << BREAKDOWN_VEHICLE_MALFUNCTION),
|
||||
.Heights = { 255, 32, 4, 7, },
|
||||
.MaxMass = 255,
|
||||
.LiftData = { OpenRCT2::Audio::SoundId::Null, 5, 5 },
|
||||
.RatingsMultipliers = { 44, 66, 10 },
|
||||
.UpkeepCosts = { 90, 20, 0, 0, 0, 10 },
|
||||
.BuildCosts = { 100.00_GBP, 0.00_GBP, 45, },
|
||||
.DefaultPrices = { 20, 20 },
|
||||
.DefaultMusic = MUSIC_OBJECT_ROCK_2,
|
||||
.PhotoItem = ShopItem::Photo,
|
||||
.BonusValue = 70,
|
||||
.ColourPresets = TRACK_COLOUR_PRESETS(
|
||||
{ COLOUR_WHITE, COLOUR_BRIGHT_RED, COLOUR_DARK_BROWN },
|
||||
{ COLOUR_BRIGHT_RED, COLOUR_LIGHT_BLUE, COLOUR_WHITE },
|
||||
{ COLOUR_LIGHT_ORANGE, COLOUR_BRIGHT_RED, COLOUR_BRIGHT_YELLOW },
|
||||
)),
|
||||
SET_FIELD(ColourPreview, { SPR_RIDE_DESIGN_PREVIEW_AIR_POWERED_VERTICAL_COASTER_TRACK, SPR_RIDE_DESIGN_PREVIEW_AIR_POWERED_VERTICAL_COASTER_SUPPORTS }),
|
||||
SET_FIELD(ColourKey, RideColourKey::Ride),
|
||||
SET_FIELD(Name, "air_powered_vertical_rc"),
|
||||
SET_FIELD(RatingsData,
|
||||
),
|
||||
.ColourPreview = { SPR_RIDE_DESIGN_PREVIEW_AIR_POWERED_VERTICAL_COASTER_TRACK, SPR_RIDE_DESIGN_PREVIEW_AIR_POWERED_VERTICAL_COASTER_SUPPORTS },
|
||||
.ColourKey = RideColourKey::Ride,
|
||||
.Name = "air_powered_vertical_rc",
|
||||
.RatingsData =
|
||||
{
|
||||
RatingsCalculationType::Normal,
|
||||
{ RIDE_RATING(4, 13), RIDE_RATING(2, 50), RIDE_RATING(2, 80) },
|
||||
@@ -68,6 +68,6 @@ constexpr RideTypeDescriptor AirPoweredVerticalCoasterRTD =
|
||||
{ RatingsModifierType::RequirementDropHeight, 34, 4, 1, 1 },
|
||||
{ RatingsModifierType::PenaltyLateralGs, 0, 24576, 35746, 59578 },
|
||||
},
|
||||
}),
|
||||
},
|
||||
};
|
||||
// clang-format on
|
||||
|
||||
@@ -15,43 +15,43 @@
|
||||
// clang-format off
|
||||
constexpr RideTypeDescriptor AlpineCoasterRTD =
|
||||
{
|
||||
SET_FIELD(AlternateType, RIDE_TYPE_NULL),
|
||||
SET_FIELD(Category, RIDE_CATEGORY_ROLLERCOASTER),
|
||||
SET_FIELD(EnabledTrackPieces, { TRACK_FLAT, TRACK_STRAIGHT, TRACK_STATION_END, TRACK_LIFT_HILL, TRACK_FLAT_ROLL_BANKING, TRACK_SLOPE, TRACK_SLOPE_LONG, TRACK_SLOPE_CURVE, TRACK_S_BEND, TRACK_CURVE_SMALL, TRACK_CURVE, TRACK_CURVE_LARGE, TRACK_HELIX_DOWN_BANKED_HALF}),
|
||||
SET_FIELD(ExtraTrackPieces, {TRACK_HELIX_UP_BANKED_HALF}),
|
||||
SET_FIELD(CoveredTrackPieces, {}),
|
||||
SET_FIELD(StartTrackPiece, TrackElemType::EndStation),
|
||||
SET_FIELD(TrackPaintFunctions, TrackDrawerDescriptor(AlpineRC::GetTrackPaintFunction)),
|
||||
SET_FIELD(Flags, RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_MAIN | RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_SUPPORTS |
|
||||
.AlternateType = RIDE_TYPE_NULL,
|
||||
.Category = RIDE_CATEGORY_ROLLERCOASTER,
|
||||
.EnabledTrackPieces = { TRACK_FLAT, TRACK_STRAIGHT, TRACK_STATION_END, TRACK_LIFT_HILL, TRACK_FLAT_ROLL_BANKING, TRACK_SLOPE, TRACK_SLOPE_LONG, TRACK_SLOPE_CURVE, TRACK_S_BEND, TRACK_CURVE_SMALL, TRACK_CURVE, TRACK_CURVE_LARGE, TRACK_HELIX_DOWN_BANKED_HALF},
|
||||
.ExtraTrackPieces = {TRACK_HELIX_UP_BANKED_HALF},
|
||||
.CoveredTrackPieces = {},
|
||||
.StartTrackPiece = TrackElemType::EndStation,
|
||||
.TrackPaintFunctions = TrackDrawerDescriptor(AlpineRC::GetTrackPaintFunction),
|
||||
.Flags = RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_MAIN | RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_SUPPORTS |
|
||||
RIDE_TYPE_FLAG_HAS_DATA_LOGGING | RIDE_TYPE_FLAG_HAS_DROPS | RIDE_TYPE_FLAG_HAS_LOAD_OPTIONS | RIDE_TYPE_FLAG_PEEP_WILL_RIDE_AGAIN
|
||||
| RIDE_TYPE_FLAG_HAS_VEHICLE_COLOURS | RIDE_TYPE_FLAG_CHECK_FOR_STALLING | RIDE_TYPE_FLAG_HAS_TRACK
|
||||
| RIDE_TYPE_FLAG_ALLOW_MUSIC | RIDE_TYPE_FLAG_INTERESTING_TO_LOOK_AT
|
||||
| RIDE_TYPE_FLAG_CAN_SYNCHRONISE_ADJACENT_STATIONS | RIDE_TYPE_FLAG_HAS_ENTRANCE_EXIT |
|
||||
RIDE_TYPE_FLAG_NO_TEST_MODE | RIDE_TYPE_FLAG_ALLOW_MORE_VEHICLES_THAN_STATION_FITS | RIDE_TYPE_FLAG_UP_INCLINE_REQUIRES_LIFT),
|
||||
SET_FIELD(RideModes, EnumsToFlags(RideMode::ContinuousCircuit)),
|
||||
SET_FIELD(DefaultMode, RideMode::ContinuousCircuit),
|
||||
SET_FIELD(OperatingSettings, { 0, 0, 0, 0, 0, 0 }),
|
||||
SET_FIELD(Naming, { STR_RIDE_NAME_ALPINE_COASTER, STR_RIDE_DESCRIPTION_ALPINE_COASTER }),
|
||||
SET_FIELD(NameConvention, { RideComponentType::Car, RideComponentType::Track, RideComponentType::Station }),
|
||||
SET_FIELD(EnumName, nameof(RIDE_TYPE_ALPINE_ROLLER_COASTER)),
|
||||
SET_FIELD(AvailableBreakdowns, (1 << BREAKDOWN_SAFETY_CUT_OUT) | (1 << BREAKDOWN_VEHICLE_MALFUNCTION)),
|
||||
SET_FIELD(Heights, {18, 24, 3, 7}),
|
||||
SET_FIELD(MaxMass, 4),
|
||||
SET_FIELD(LiftData, { OpenRCT2::Audio::SoundId::Null, 4, 5 }),
|
||||
SET_FIELD(RatingsMultipliers, { 50, 30, 10 }),
|
||||
SET_FIELD(UpkeepCosts, { 35, 20, 80, 8, 3, 10 }),
|
||||
SET_FIELD(BuildCosts, { 22.50_GBP, 2.50_GBP, 50}),
|
||||
SET_FIELD(DefaultPrices, { 20, 20 }),
|
||||
SET_FIELD(DefaultMusic, MUSIC_OBJECT_GENTLE),
|
||||
SET_FIELD(PhotoItem, ShopItem::Photo),
|
||||
SET_FIELD(BonusValue, 65),
|
||||
SET_FIELD(ColourPresets, TRACK_COLOUR_PRESETS(
|
||||
RIDE_TYPE_FLAG_NO_TEST_MODE | RIDE_TYPE_FLAG_ALLOW_MORE_VEHICLES_THAN_STATION_FITS | RIDE_TYPE_FLAG_UP_INCLINE_REQUIRES_LIFT,
|
||||
.RideModes = EnumsToFlags(RideMode::ContinuousCircuit),
|
||||
.DefaultMode = RideMode::ContinuousCircuit,
|
||||
.OperatingSettings = { 0, 0, 0, 0, 0, 0 },
|
||||
.Naming = { STR_RIDE_NAME_ALPINE_COASTER, STR_RIDE_DESCRIPTION_ALPINE_COASTER },
|
||||
.NameConvention = { RideComponentType::Car, RideComponentType::Track, RideComponentType::Station },
|
||||
.EnumName = nameof(RIDE_TYPE_ALPINE_ROLLER_COASTER),
|
||||
.AvailableBreakdowns = (1 << BREAKDOWN_SAFETY_CUT_OUT) | (1 << BREAKDOWN_VEHICLE_MALFUNCTION),
|
||||
.Heights = {18, 24, 3, 7},
|
||||
.MaxMass = 4,
|
||||
.LiftData = { OpenRCT2::Audio::SoundId::Null, 4, 5 },
|
||||
.RatingsMultipliers = { 50, 30, 10 },
|
||||
.UpkeepCosts = { 35, 20, 80, 8, 3, 10 },
|
||||
.BuildCosts = { 22.50_GBP, 2.50_GBP, 50},
|
||||
.DefaultPrices = { 20, 20 },
|
||||
.DefaultMusic = MUSIC_OBJECT_GENTLE,
|
||||
.PhotoItem = ShopItem::Photo,
|
||||
.BonusValue = 65,
|
||||
.ColourPresets = TRACK_COLOUR_PRESETS(
|
||||
{ COLOUR_GREY, COLOUR_GREY, COLOUR_BLACK },
|
||||
)),
|
||||
SET_FIELD(ColourPreview, { SPR_RIDE_DESIGN_PREVIEW_ALPINE_COASTER_TRACK, SPR_RIDE_DESIGN_PREVIEW_ALPINE_COASTER_SUPPORTS }),
|
||||
SET_FIELD(ColourKey, RideColourKey::Ride),
|
||||
SET_FIELD(Name, "alpine_rc"),
|
||||
SET_FIELD(RatingsData,
|
||||
),
|
||||
.ColourPreview = { SPR_RIDE_DESIGN_PREVIEW_ALPINE_COASTER_TRACK, SPR_RIDE_DESIGN_PREVIEW_ALPINE_COASTER_SUPPORTS },
|
||||
.ColourKey = RideColourKey::Ride,
|
||||
.Name = "alpine_rc",
|
||||
.RatingsData =
|
||||
{
|
||||
RatingsCalculationType::Normal,
|
||||
{ RIDE_RATING(2, 30), RIDE_RATING(2, 10), RIDE_RATING(1, 4) },
|
||||
@@ -73,6 +73,6 @@ constexpr RideTypeDescriptor AlpineCoasterRTD =
|
||||
{ RatingsModifierType::RequirementMaxSpeed, 0x50000, 2, 2, 2 },
|
||||
{ RatingsModifierType::RequirementLength, 0x1720000, 2, 2, 2 },
|
||||
},
|
||||
}),
|
||||
},
|
||||
};
|
||||
// clang-format on
|
||||
|
||||
@@ -17,43 +17,43 @@
|
||||
// clang-format off
|
||||
constexpr RideTypeDescriptor BobsleighCoasterRTD =
|
||||
{
|
||||
SET_FIELD(AlternateType, RIDE_TYPE_NULL),
|
||||
SET_FIELD(Category, RIDE_CATEGORY_ROLLERCOASTER),
|
||||
SET_FIELD(EnabledTrackPieces, {TRACK_STRAIGHT, TRACK_STATION_END, TRACK_LIFT_HILL, TRACK_FLAT_ROLL_BANKING, TRACK_SLOPE, TRACK_S_BEND, TRACK_CURVE_SMALL, TRACK_CURVE,TRACK_HELIX_DOWN_BANKED_HALF, TRACK_HELIX_UP_BANKED_HALF, TRACK_BRAKES,TRACK_BLOCK_BRAKES, TRACK_ON_RIDE_PHOTO}),
|
||||
SET_FIELD(ExtraTrackPieces, {}),
|
||||
SET_FIELD(CoveredTrackPieces, {}),
|
||||
SET_FIELD(StartTrackPiece, TrackElemType::EndStation),
|
||||
SET_FIELD(TrackPaintFunctions, TrackDrawerDescriptor(GetTrackPaintFunctionBobsleighRC)),
|
||||
SET_FIELD(Flags, RIDE_TYPE_FLAGS_TRACK_HAS_3_COLOURS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION |
|
||||
.AlternateType = RIDE_TYPE_NULL,
|
||||
.Category = RIDE_CATEGORY_ROLLERCOASTER,
|
||||
.EnabledTrackPieces = {TRACK_STRAIGHT, TRACK_STATION_END, TRACK_LIFT_HILL, TRACK_FLAT_ROLL_BANKING, TRACK_SLOPE, TRACK_S_BEND, TRACK_CURVE_SMALL, TRACK_CURVE,TRACK_HELIX_DOWN_BANKED_HALF, TRACK_HELIX_UP_BANKED_HALF, TRACK_BRAKES,TRACK_BLOCK_BRAKES, TRACK_ON_RIDE_PHOTO},
|
||||
.ExtraTrackPieces = {},
|
||||
.CoveredTrackPieces = {},
|
||||
.StartTrackPiece = TrackElemType::EndStation,
|
||||
.TrackPaintFunctions = TrackDrawerDescriptor(GetTrackPaintFunctionBobsleighRC),
|
||||
.Flags = RIDE_TYPE_FLAGS_TRACK_HAS_3_COLOURS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION |
|
||||
RIDE_TYPE_FLAGS_COMMON_COASTER | RIDE_TYPE_FLAGS_COMMON_COASTER_NON_ALT | RIDE_TYPE_FLAG_PEEP_CHECK_GFORCES |
|
||||
RIDE_TYPE_FLAG_ALLOW_MULTIPLE_CIRCUITS),
|
||||
SET_FIELD(RideModes, EnumsToFlags(RideMode::ContinuousCircuit, RideMode::ContinuousCircuitBlockSectioned)),
|
||||
SET_FIELD(DefaultMode, RideMode::ContinuousCircuit),
|
||||
SET_FIELD(OperatingSettings, { 0, 0, 0, 0, 0, 0 }),
|
||||
SET_FIELD(Naming, { STR_RIDE_NAME_BOBSLEIGH_COASTER, STR_RIDE_DESCRIPTION_BOBSLEIGH_COASTER }),
|
||||
SET_FIELD(NameConvention, { RideComponentType::Train, RideComponentType::Track, RideComponentType::Station }),
|
||||
SET_FIELD(EnumName, nameof(RIDE_TYPE_BOBSLEIGH_COASTER)),
|
||||
SET_FIELD(AvailableBreakdowns, (1 << BREAKDOWN_SAFETY_CUT_OUT) | (1 << BREAKDOWN_VEHICLE_MALFUNCTION) | (1 << BREAKDOWN_BRAKES_FAILURE)),
|
||||
SET_FIELD(Heights, { 19, 24, 5, 7, }),
|
||||
SET_FIELD(MaxMass, 25),
|
||||
SET_FIELD(LiftData, { OpenRCT2::Audio::SoundId::LiftFrictionWheels, 4, 5 }),
|
||||
SET_FIELD(RatingsMultipliers, { 50, 30, 10 }),
|
||||
SET_FIELD(UpkeepCosts, { 40, 20, 80, 10, 3, 10 }),
|
||||
SET_FIELD(BuildCosts, { 40.00_GBP, 2.50_GBP, 45, }),
|
||||
SET_FIELD(DefaultPrices, { 20, 20 }),
|
||||
SET_FIELD(DefaultMusic, MUSIC_OBJECT_ROCK_1),
|
||||
SET_FIELD(PhotoItem, ShopItem::Photo),
|
||||
SET_FIELD(BonusValue, 75),
|
||||
SET_FIELD(ColourPresets, TRACK_COLOUR_PRESETS(
|
||||
RIDE_TYPE_FLAG_ALLOW_MULTIPLE_CIRCUITS,
|
||||
.RideModes = EnumsToFlags(RideMode::ContinuousCircuit, RideMode::ContinuousCircuitBlockSectioned),
|
||||
.DefaultMode = RideMode::ContinuousCircuit,
|
||||
.OperatingSettings = { 0, 0, 0, 0, 0, 0 },
|
||||
.Naming = { STR_RIDE_NAME_BOBSLEIGH_COASTER, STR_RIDE_DESCRIPTION_BOBSLEIGH_COASTER },
|
||||
.NameConvention = { RideComponentType::Train, RideComponentType::Track, RideComponentType::Station },
|
||||
.EnumName = nameof(RIDE_TYPE_BOBSLEIGH_COASTER),
|
||||
.AvailableBreakdowns = (1 << BREAKDOWN_SAFETY_CUT_OUT) | (1 << BREAKDOWN_VEHICLE_MALFUNCTION) | (1 << BREAKDOWN_BRAKES_FAILURE),
|
||||
.Heights = { 19, 24, 5, 7, },
|
||||
.MaxMass = 25,
|
||||
.LiftData = { OpenRCT2::Audio::SoundId::LiftFrictionWheels, 4, 5 },
|
||||
.RatingsMultipliers = { 50, 30, 10 },
|
||||
.UpkeepCosts = { 40, 20, 80, 10, 3, 10 },
|
||||
.BuildCosts = { 40.00_GBP, 2.50_GBP, 45, },
|
||||
.DefaultPrices = { 20, 20 },
|
||||
.DefaultMusic = MUSIC_OBJECT_ROCK_1,
|
||||
.PhotoItem = ShopItem::Photo,
|
||||
.BonusValue = 75,
|
||||
.ColourPresets = TRACK_COLOUR_PRESETS(
|
||||
{ COLOUR_WHITE, COLOUR_BRIGHT_RED, COLOUR_WHITE },
|
||||
{ COLOUR_LIGHT_BLUE, COLOUR_WHITE, COLOUR_BLACK },
|
||||
{ COLOUR_YELLOW, COLOUR_BRIGHT_RED, COLOUR_BLACK },
|
||||
{ COLOUR_TAN_DARK, COLOUR_DARK_ORANGE, COLOUR_DULL_BROWN_LIGHT }, // Reptilian
|
||||
)),
|
||||
SET_FIELD(ColourPreview, { SPR_RIDE_DESIGN_PREVIEW_BOBSLEIGH_COASTER_TRACK, SPR_RIDE_DESIGN_PREVIEW_BOBSLEIGH_COASTER_SUPPORTS }),
|
||||
SET_FIELD(ColourKey, RideColourKey::Ride),
|
||||
SET_FIELD(Name, "bobsleigh_rc"),
|
||||
SET_FIELD(RatingsData,
|
||||
),
|
||||
.ColourPreview = { SPR_RIDE_DESIGN_PREVIEW_BOBSLEIGH_COASTER_TRACK, SPR_RIDE_DESIGN_PREVIEW_BOBSLEIGH_COASTER_SUPPORTS },
|
||||
.ColourKey = RideColourKey::Ride,
|
||||
.Name = "bobsleigh_rc",
|
||||
.RatingsData =
|
||||
{
|
||||
RatingsCalculationType::Normal,
|
||||
{ RIDE_RATING(2, 80), RIDE_RATING(3, 20), RIDE_RATING(2, 50) },
|
||||
@@ -78,6 +78,6 @@ constexpr RideTypeDescriptor BobsleighCoasterRTD =
|
||||
{ RatingsModifierType::RequirementLength, 0x1720000, 2, 2, 2 },
|
||||
{ RatingsModifierType::PenaltyLateralGs, 0, 65536, 23831, 49648 },
|
||||
},
|
||||
}),
|
||||
},
|
||||
};
|
||||
// clang-format on
|
||||
|
||||
@@ -16,45 +16,45 @@
|
||||
// clang-format off
|
||||
constexpr RideTypeDescriptor ClassicMiniRollerCoasterRTD =
|
||||
{
|
||||
SET_FIELD(AlternateType, RIDE_TYPE_NULL),
|
||||
SET_FIELD(Category, RIDE_CATEGORY_ROLLERCOASTER),
|
||||
SET_FIELD(EnabledTrackPieces, { TRACK_STRAIGHT, TRACK_STATION_END, TRACK_LIFT_HILL, TRACK_LIFT_HILL_CURVE, TRACK_FLAT_ROLL_BANKING, TRACK_SLOPE, TRACK_SLOPE_STEEP_UP, TRACK_SLOPE_STEEP_DOWN, TRACK_SLOPE_LONG, TRACK_SLOPE_CURVE, TRACK_S_BEND, TRACK_CURVE_SMALL, TRACK_CURVE, TRACK_CURVE_LARGE, TRACK_HELIX_DOWN_BANKED_HALF, TRACK_HELIX_UP_BANKED_HALF, TRACK_BRAKES, TRACK_BLOCK_BRAKES, TRACK_BOOSTER, TRACK_DIAG_BRAKES, TRACK_DIAG_BLOCK_BRAKES}),
|
||||
SET_FIELD(ExtraTrackPieces, {TRACK_ON_RIDE_PHOTO}),
|
||||
SET_FIELD(CoveredTrackPieces, {}),
|
||||
SET_FIELD(StartTrackPiece, TrackElemType::EndStation),
|
||||
SET_FIELD(TrackPaintFunctions, TrackDrawerDescriptor(GetTrackPaintFunctionJuniorRC)),
|
||||
SET_FIELD(Flags, RIDE_TYPE_FLAGS_TRACK_HAS_3_COLOURS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION |
|
||||
.AlternateType = RIDE_TYPE_NULL,
|
||||
.Category = RIDE_CATEGORY_ROLLERCOASTER,
|
||||
.EnabledTrackPieces = { TRACK_STRAIGHT, TRACK_STATION_END, TRACK_LIFT_HILL, TRACK_LIFT_HILL_CURVE, TRACK_FLAT_ROLL_BANKING, TRACK_SLOPE, TRACK_SLOPE_STEEP_UP, TRACK_SLOPE_STEEP_DOWN, TRACK_SLOPE_LONG, TRACK_SLOPE_CURVE, TRACK_S_BEND, TRACK_CURVE_SMALL, TRACK_CURVE, TRACK_CURVE_LARGE, TRACK_HELIX_DOWN_BANKED_HALF, TRACK_HELIX_UP_BANKED_HALF, TRACK_BRAKES, TRACK_BLOCK_BRAKES, TRACK_BOOSTER, TRACK_DIAG_BRAKES, TRACK_DIAG_BLOCK_BRAKES},
|
||||
.ExtraTrackPieces = {TRACK_ON_RIDE_PHOTO},
|
||||
.CoveredTrackPieces = {},
|
||||
.StartTrackPiece = TrackElemType::EndStation,
|
||||
.TrackPaintFunctions = TrackDrawerDescriptor(GetTrackPaintFunctionJuniorRC),
|
||||
.Flags = RIDE_TYPE_FLAGS_TRACK_HAS_3_COLOURS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION |
|
||||
RIDE_TYPE_FLAGS_COMMON_COASTER | RIDE_TYPE_FLAGS_COMMON_COASTER_NON_ALT |
|
||||
RIDE_TYPE_FLAG_ALLOW_DOORS_ON_TRACK | RIDE_TYPE_FLAG_PEEP_CHECK_GFORCES | RIDE_TYPE_FLAG_ALLOW_MULTIPLE_CIRCUITS |
|
||||
RIDE_TYPE_FLAG_ALLOW_REVERSED_TRAINS),
|
||||
SET_FIELD(RideModes, EnumsToFlags(RideMode::ContinuousCircuit, RideMode::ContinuousCircuitBlockSectioned, RideMode::ReverseInclineLaunchedShuttle)),
|
||||
SET_FIELD(DefaultMode, RideMode::ContinuousCircuit),
|
||||
SET_FIELD(OperatingSettings, { 0, 0, 0, 17, 16, -1 }),
|
||||
SET_FIELD(Naming, { STR_RIDE_NAME_CLASSIC_MINI_ROLLER_COASTER, STR_RIDE_DESCRIPTION_CLASSIC_MINI_COASTER }),
|
||||
SET_FIELD(NameConvention, { RideComponentType::Train, RideComponentType::Track, RideComponentType::Station }),
|
||||
SET_FIELD(EnumName, nameof(RIDE_TYPE_CLASSIC_MINI_ROLLER_COASTER)),
|
||||
SET_FIELD(AvailableBreakdowns, (1 << BREAKDOWN_SAFETY_CUT_OUT) | (1 << BREAKDOWN_RESTRAINTS_STUCK_CLOSED) | (1 << BREAKDOWN_RESTRAINTS_STUCK_OPEN) | (1 << BREAKDOWN_VEHICLE_MALFUNCTION) | (1 << BREAKDOWN_BRAKES_FAILURE)),
|
||||
SET_FIELD(Heights, { 15, 24, 4, 7, }),
|
||||
SET_FIELD(MaxMass, 18),
|
||||
SET_FIELD(LiftData, { OpenRCT2::Audio::SoundId::LiftFrictionWheels, 4, 6 }),
|
||||
SET_FIELD(RatingsMultipliers, { 50, 30, 10 }),
|
||||
SET_FIELD(UpkeepCosts, { 40, 20, 80, 8, 3, 5 }),
|
||||
SET_FIELD(BuildCosts, { 22.50_GBP, 2.00_GBP, 40, }),
|
||||
SET_FIELD(DefaultPrices, { 20, 20 }),
|
||||
SET_FIELD(DefaultMusic, MUSIC_OBJECT_SUMMER),
|
||||
SET_FIELD(PhotoItem, ShopItem::Photo),
|
||||
SET_FIELD(BonusValue, 60),
|
||||
SET_FIELD(ColourPresets, TRACK_COLOUR_PRESETS(
|
||||
RIDE_TYPE_FLAG_ALLOW_REVERSED_TRAINS,
|
||||
.RideModes = EnumsToFlags(RideMode::ContinuousCircuit, RideMode::ContinuousCircuitBlockSectioned, RideMode::ReverseInclineLaunchedShuttle),
|
||||
.DefaultMode = RideMode::ContinuousCircuit,
|
||||
.OperatingSettings = { 0, 0, 0, 17, 16, -1 },
|
||||
.Naming = { STR_RIDE_NAME_CLASSIC_MINI_ROLLER_COASTER, STR_RIDE_DESCRIPTION_CLASSIC_MINI_COASTER },
|
||||
.NameConvention = { RideComponentType::Train, RideComponentType::Track, RideComponentType::Station },
|
||||
.EnumName = nameof(RIDE_TYPE_CLASSIC_MINI_ROLLER_COASTER),
|
||||
.AvailableBreakdowns = (1 << BREAKDOWN_SAFETY_CUT_OUT) | (1 << BREAKDOWN_RESTRAINTS_STUCK_CLOSED) | (1 << BREAKDOWN_RESTRAINTS_STUCK_OPEN) | (1 << BREAKDOWN_VEHICLE_MALFUNCTION) | (1 << BREAKDOWN_BRAKES_FAILURE),
|
||||
.Heights = { 15, 24, 4, 7, },
|
||||
.MaxMass = 18,
|
||||
.LiftData = { OpenRCT2::Audio::SoundId::LiftFrictionWheels, 4, 6 },
|
||||
.RatingsMultipliers = { 50, 30, 10 },
|
||||
.UpkeepCosts = { 40, 20, 80, 8, 3, 5 },
|
||||
.BuildCosts = { 22.50_GBP, 2.00_GBP, 40, },
|
||||
.DefaultPrices = { 20, 20 },
|
||||
.DefaultMusic = MUSIC_OBJECT_SUMMER,
|
||||
.PhotoItem = ShopItem::Photo,
|
||||
.BonusValue = 60,
|
||||
.ColourPresets = TRACK_COLOUR_PRESETS(
|
||||
{ COLOUR_YELLOW, COLOUR_YELLOW, COLOUR_SATURATED_BROWN },
|
||||
{ COLOUR_BORDEAUX_RED, COLOUR_BORDEAUX_RED, COLOUR_DARK_OLIVE_GREEN },
|
||||
{ COLOUR_TEAL, COLOUR_YELLOW, COLOUR_TEAL },
|
||||
{ COLOUR_SATURATED_BROWN, COLOUR_SATURATED_BROWN, COLOUR_OLIVE_GREEN },
|
||||
{ COLOUR_BLACK, COLOUR_LIGHT_BLUE, COLOUR_BLACK },
|
||||
)),
|
||||
SET_FIELD(ColourPreview, { SPR_RIDE_DESIGN_PREVIEW_JUNIOR_ROLLER_COASTER_TRACK, SPR_RIDE_DESIGN_PREVIEW_JUNIOR_ROLLER_COASTER_SUPPORTS }),
|
||||
SET_FIELD(ColourKey, RideColourKey::Ride),
|
||||
SET_FIELD(Name, "classic_mini_rc"),
|
||||
SET_FIELD(RatingsData,
|
||||
),
|
||||
.ColourPreview = { SPR_RIDE_DESIGN_PREVIEW_JUNIOR_ROLLER_COASTER_TRACK, SPR_RIDE_DESIGN_PREVIEW_JUNIOR_ROLLER_COASTER_SUPPORTS },
|
||||
.ColourKey = RideColourKey::Ride,
|
||||
.Name = "classic_mini_rc",
|
||||
.RatingsData =
|
||||
{
|
||||
RatingsCalculationType::Normal,
|
||||
{ RIDE_RATING(2, 40), RIDE_RATING(2, 80), RIDE_RATING(1, 90) },
|
||||
@@ -80,6 +80,6 @@ constexpr RideTypeDescriptor ClassicMiniRollerCoasterRTD =
|
||||
{ RatingsModifierType::RequirementNumDrops, 2, 2, 2, 2 },
|
||||
{ RatingsModifierType::PenaltyLateralGs, 0, 20480, 23831, 49648 },
|
||||
},
|
||||
}),
|
||||
},
|
||||
};
|
||||
// clang-format on
|
||||
|
||||
@@ -17,43 +17,43 @@
|
||||
// clang-format off
|
||||
constexpr RideTypeDescriptor ClassicWoodenRollerCoasterRTD =
|
||||
{
|
||||
SET_FIELD(AlternateType, RIDE_TYPE_NULL),
|
||||
SET_FIELD(Category, RIDE_CATEGORY_ROLLERCOASTER),
|
||||
SET_FIELD(EnabledTrackPieces, {TRACK_FLAT, TRACK_STRAIGHT, TRACK_STATION_END, TRACK_LIFT_HILL, TRACK_FLAT_ROLL_BANKING, TRACK_VERTICAL_LOOP, TRACK_SLOPE, TRACK_SLOPE_STEEP_UP, TRACK_SLOPE_STEEP_DOWN, TRACK_SLOPE_CURVE, TRACK_S_BEND, TRACK_CURVE_SMALL, TRACK_CURVE, TRACK_CURVE_LARGE, TRACK_BRAKES, TRACK_ON_RIDE_PHOTO, TRACK_WATER_SPLASH, TRACK_BLOCK_BRAKES, TRACK_DIAG_BRAKES, TRACK_DIAG_BLOCK_BRAKES}),
|
||||
SET_FIELD(ExtraTrackPieces, {}),
|
||||
SET_FIELD(CoveredTrackPieces, 0),
|
||||
SET_FIELD(StartTrackPiece, TrackElemType::EndStation),
|
||||
SET_FIELD(TrackPaintFunctions, TrackDrawerDescriptor(GetTrackPaintFunctionClassicWoodenRC)),
|
||||
SET_FIELD(Flags, RIDE_TYPE_FLAGS_TRACK_HAS_3_COLOURS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION |
|
||||
.AlternateType = RIDE_TYPE_NULL,
|
||||
.Category = RIDE_CATEGORY_ROLLERCOASTER,
|
||||
.EnabledTrackPieces = {TRACK_FLAT, TRACK_STRAIGHT, TRACK_STATION_END, TRACK_LIFT_HILL, TRACK_FLAT_ROLL_BANKING, TRACK_VERTICAL_LOOP, TRACK_SLOPE, TRACK_SLOPE_STEEP_UP, TRACK_SLOPE_STEEP_DOWN, TRACK_SLOPE_CURVE, TRACK_S_BEND, TRACK_CURVE_SMALL, TRACK_CURVE, TRACK_CURVE_LARGE, TRACK_BRAKES, TRACK_ON_RIDE_PHOTO, TRACK_WATER_SPLASH, TRACK_BLOCK_BRAKES, TRACK_DIAG_BRAKES, TRACK_DIAG_BLOCK_BRAKES},
|
||||
.ExtraTrackPieces = {},
|
||||
.CoveredTrackPieces = 0,
|
||||
.StartTrackPiece = TrackElemType::EndStation,
|
||||
.TrackPaintFunctions = TrackDrawerDescriptor(GetTrackPaintFunctionClassicWoodenRC),
|
||||
.Flags = RIDE_TYPE_FLAGS_TRACK_HAS_3_COLOURS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION |
|
||||
RIDE_TYPE_FLAGS_COMMON_COASTER | RIDE_TYPE_FLAGS_COMMON_COASTER_NON_ALT |
|
||||
RIDE_TYPE_FLAG_PEEP_CHECK_GFORCES | RIDE_TYPE_FLAG_ALLOW_MULTIPLE_CIRCUITS |
|
||||
RIDE_TYPE_FLAG_ALLOW_REVERSED_TRAINS),
|
||||
SET_FIELD(RideModes, EnumsToFlags(RideMode::ContinuousCircuit, RideMode::ContinuousCircuitBlockSectioned)),
|
||||
SET_FIELD(DefaultMode, RideMode::ContinuousCircuit),
|
||||
SET_FIELD(OperatingSettings, { 0, 0, 0, 0, 68, 0 }),
|
||||
SET_FIELD(Naming, { STR_RIDE_NAME_CLASSIC_WOODEN_ROLLER_COASTER, STR_RIDE_DESCRIPTION_CLASSIC_WOODEN_ROLLER_COASTER }),
|
||||
SET_FIELD(NameConvention, { RideComponentType::Train, RideComponentType::Track, RideComponentType::Station }),
|
||||
SET_FIELD(EnumName, nameof(RIDE_TYPE_CLASSIC_WOODEN_ROLLER_COASTER)),
|
||||
SET_FIELD(AvailableBreakdowns, (1 << BREAKDOWN_SAFETY_CUT_OUT) | (1 << BREAKDOWN_RESTRAINTS_STUCK_CLOSED) | (1 << BREAKDOWN_RESTRAINTS_STUCK_OPEN) | (1 << BREAKDOWN_VEHICLE_MALFUNCTION) | (1 << BREAKDOWN_BRAKES_FAILURE)),
|
||||
SET_FIELD(Heights, { 24, 24, 8, 11, }),
|
||||
SET_FIELD(MaxMass, 19),
|
||||
SET_FIELD(LiftData, { OpenRCT2::Audio::SoundId::LiftWood, 3, 5 }),
|
||||
SET_FIELD(RatingsMultipliers, { 52, 33, 4 }),
|
||||
SET_FIELD(UpkeepCosts, { 40, 20, 80, 10, 3, 10 }),
|
||||
SET_FIELD(BuildCosts, {37.50_GBP, 3.50_GBP, 50, }),
|
||||
SET_FIELD(DefaultPrices, { 20, 20 }),
|
||||
SET_FIELD(DefaultMusic, MUSIC_OBJECT_WILD_WEST),
|
||||
SET_FIELD(PhotoItem, ShopItem::Photo3),
|
||||
SET_FIELD(BonusValue, 105),
|
||||
SET_FIELD(ColourPresets, TRACK_COLOUR_PRESETS(
|
||||
RIDE_TYPE_FLAG_ALLOW_REVERSED_TRAINS,
|
||||
.RideModes = EnumsToFlags(RideMode::ContinuousCircuit, RideMode::ContinuousCircuitBlockSectioned),
|
||||
.DefaultMode = RideMode::ContinuousCircuit,
|
||||
.OperatingSettings = { 0, 0, 0, 0, 68, 0 },
|
||||
.Naming = { STR_RIDE_NAME_CLASSIC_WOODEN_ROLLER_COASTER, STR_RIDE_DESCRIPTION_CLASSIC_WOODEN_ROLLER_COASTER },
|
||||
.NameConvention = { RideComponentType::Train, RideComponentType::Track, RideComponentType::Station },
|
||||
.EnumName = nameof(RIDE_TYPE_CLASSIC_WOODEN_ROLLER_COASTER),
|
||||
.AvailableBreakdowns = (1 << BREAKDOWN_SAFETY_CUT_OUT) | (1 << BREAKDOWN_RESTRAINTS_STUCK_CLOSED) | (1 << BREAKDOWN_RESTRAINTS_STUCK_OPEN) | (1 << BREAKDOWN_VEHICLE_MALFUNCTION) | (1 << BREAKDOWN_BRAKES_FAILURE),
|
||||
.Heights = { 24, 24, 8, 11, },
|
||||
.MaxMass = 19,
|
||||
.LiftData = { OpenRCT2::Audio::SoundId::LiftWood, 3, 5 },
|
||||
.RatingsMultipliers = { 52, 33, 4 },
|
||||
.UpkeepCosts = { 40, 20, 80, 10, 3, 10 },
|
||||
.BuildCosts = {37.50_GBP, 3.50_GBP, 50, },
|
||||
.DefaultPrices = { 20, 20 },
|
||||
.DefaultMusic = MUSIC_OBJECT_WILD_WEST,
|
||||
.PhotoItem = ShopItem::Photo3,
|
||||
.BonusValue = 105,
|
||||
.ColourPresets = TRACK_COLOUR_PRESETS(
|
||||
{ COLOUR_SATURATED_BROWN, COLOUR_SATURATED_BROWN, COLOUR_SATURATED_BROWN},
|
||||
{ COLOUR_WHITE, COLOUR_LIGHT_BROWN, COLOUR_WHITE },
|
||||
{ COLOUR_LIGHT_BROWN, COLOUR_BLACK, COLOUR_LIGHT_BROWN },
|
||||
)),
|
||||
SET_FIELD(ColourPreview, { SPR_RIDE_DESIGN_PREVIEW_CLASSIC_WOODEN_ROLLER_COASTER_TRACK, SPR_RIDE_DESIGN_PREVIEW_CLASSIC_WOODEN_ROLLER_COASTER_SUPPORTS }),
|
||||
SET_FIELD(ColourKey, RideColourKey::Ride),
|
||||
SET_FIELD(Name, "classic_wooden_rc"),
|
||||
SET_FIELD(RatingsData,
|
||||
),
|
||||
.ColourPreview = { SPR_RIDE_DESIGN_PREVIEW_CLASSIC_WOODEN_ROLLER_COASTER_TRACK, SPR_RIDE_DESIGN_PREVIEW_CLASSIC_WOODEN_ROLLER_COASTER_SUPPORTS },
|
||||
.ColourKey = RideColourKey::Ride,
|
||||
.Name = "classic_wooden_rc",
|
||||
.RatingsData =
|
||||
{
|
||||
RatingsCalculationType::Normal,
|
||||
{ RIDE_RATING(2, 80), RIDE_RATING(2, 60), RIDE_RATING(2, 00) },
|
||||
@@ -81,6 +81,6 @@ constexpr RideTypeDescriptor ClassicWoodenRollerCoasterRTD =
|
||||
{ RatingsModifierType::RequirementNumDrops, 2, 2, 1, 2 },
|
||||
{ RatingsModifierType::PenaltyLateralGs, 0, 40960, 34555, 49648 },
|
||||
},
|
||||
}),
|
||||
},
|
||||
};
|
||||
// clang-format on
|
||||
|
||||
@@ -17,43 +17,43 @@
|
||||
// clang-format off
|
||||
constexpr RideTypeDescriptor CompactInvertedCoasterRTD =
|
||||
{
|
||||
SET_FIELD(AlternateType, RIDE_TYPE_NULL),
|
||||
SET_FIELD(Category, RIDE_CATEGORY_ROLLERCOASTER),
|
||||
SET_FIELD(EnabledTrackPieces, {TRACK_STRAIGHT, TRACK_STATION_END, TRACK_LIFT_HILL, TRACK_FLAT_ROLL_BANKING, TRACK_VERTICAL_LOOP, TRACK_SLOPE, TRACK_SLOPE_STEEP_UP, TRACK_SLOPE_STEEP_DOWN, TRACK_SLOPE_CURVE, TRACK_SLOPE_CURVE_STEEP, TRACK_S_BEND, TRACK_CURVE_SMALL, TRACK_CURVE, TRACK_CURVE_LARGE, TRACK_TWIST, TRACK_HALF_LOOP, TRACK_CORKSCREW, TRACK_HELIX_DOWN_BANKED_QUARTER, TRACK_HELIX_UP_BANKED_QUARTER, TRACK_BRAKES, TRACK_ON_RIDE_PHOTO, TRACK_SLOPE_VERTICAL, TRACK_BLOCK_BRAKES, TRACK_DIAG_BRAKES, TRACK_DIAG_BLOCK_BRAKES}),
|
||||
SET_FIELD(ExtraTrackPieces, {}),
|
||||
SET_FIELD(CoveredTrackPieces, {}),
|
||||
SET_FIELD(StartTrackPiece, TrackElemType::EndStation),
|
||||
SET_FIELD(TrackPaintFunctions, TrackDrawerDescriptor(GetTrackPaintFunctionCompactInvertedRC)),
|
||||
SET_FIELD(Flags, RIDE_TYPE_FLAGS_TRACK_HAS_3_COLOURS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION |
|
||||
.AlternateType = RIDE_TYPE_NULL,
|
||||
.Category = RIDE_CATEGORY_ROLLERCOASTER,
|
||||
.EnabledTrackPieces = {TRACK_STRAIGHT, TRACK_STATION_END, TRACK_LIFT_HILL, TRACK_FLAT_ROLL_BANKING, TRACK_VERTICAL_LOOP, TRACK_SLOPE, TRACK_SLOPE_STEEP_UP, TRACK_SLOPE_STEEP_DOWN, TRACK_SLOPE_CURVE, TRACK_SLOPE_CURVE_STEEP, TRACK_S_BEND, TRACK_CURVE_SMALL, TRACK_CURVE, TRACK_CURVE_LARGE, TRACK_TWIST, TRACK_HALF_LOOP, TRACK_CORKSCREW, TRACK_HELIX_DOWN_BANKED_QUARTER, TRACK_HELIX_UP_BANKED_QUARTER, TRACK_BRAKES, TRACK_ON_RIDE_PHOTO, TRACK_SLOPE_VERTICAL, TRACK_BLOCK_BRAKES, TRACK_DIAG_BRAKES, TRACK_DIAG_BLOCK_BRAKES},
|
||||
.ExtraTrackPieces = {},
|
||||
.CoveredTrackPieces = {},
|
||||
.StartTrackPiece = TrackElemType::EndStation,
|
||||
.TrackPaintFunctions = TrackDrawerDescriptor(GetTrackPaintFunctionCompactInvertedRC),
|
||||
.Flags = RIDE_TYPE_FLAGS_TRACK_HAS_3_COLOURS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION |
|
||||
RIDE_TYPE_FLAGS_COMMON_COASTER | RIDE_TYPE_FLAGS_COMMON_COASTER_NON_ALT |
|
||||
RIDE_TYPE_FLAG_PEEP_CHECK_GFORCES | RIDE_TYPE_FLAG_ALLOW_MULTIPLE_CIRCUITS | RIDE_TYPE_FLAG_IS_SUSPENDED),
|
||||
SET_FIELD(RideModes, EnumsToFlags(RideMode::ContinuousCircuit, RideMode::ContinuousCircuitBlockSectioned, RideMode::ReverseInclineLaunchedShuttle)),
|
||||
SET_FIELD(DefaultMode, RideMode::ContinuousCircuit),
|
||||
SET_FIELD(OperatingSettings, { 7, 27, 0, 0, 0, 0 }),
|
||||
SET_FIELD(Naming, { STR_RIDE_NAME_COMPACT_INVERTED_COASTER, STR_RIDE_DESCRIPTION_COMPACT_INVERTED_COASTER }),
|
||||
SET_FIELD(NameConvention, { RideComponentType::Train, RideComponentType::Track, RideComponentType::Station }),
|
||||
SET_FIELD(EnumName, nameof(RIDE_TYPE_COMPACT_INVERTED_COASTER)),
|
||||
SET_FIELD(AvailableBreakdowns, (1 << BREAKDOWN_SAFETY_CUT_OUT) | (1 << BREAKDOWN_RESTRAINTS_STUCK_CLOSED) | (1 << BREAKDOWN_RESTRAINTS_STUCK_OPEN) | (1 << BREAKDOWN_VEHICLE_MALFUNCTION) | (1 << BREAKDOWN_BRAKES_FAILURE)),
|
||||
SET_FIELD(Heights, { 27, 40, 29, 8, }),
|
||||
SET_FIELD(MaxMass, 18),
|
||||
SET_FIELD(LiftData, { OpenRCT2::Audio::SoundId::LiftClassic, 4, 6 }),
|
||||
SET_FIELD(RatingsMultipliers, { 50, 30, 10 }),
|
||||
SET_FIELD(UpkeepCosts, { 40, 20, 80, 13, 3, 10 }),
|
||||
SET_FIELD(BuildCosts, { 50.00_GBP, 2.50_GBP, 50, }),
|
||||
SET_FIELD(DefaultPrices, { 20, 20 }),
|
||||
SET_FIELD(DefaultMusic, MUSIC_OBJECT_TECHNO),
|
||||
SET_FIELD(PhotoItem, ShopItem::Photo2),
|
||||
SET_FIELD(BonusValue, 80),
|
||||
SET_FIELD(ColourPresets, TRACK_COLOUR_PRESETS(
|
||||
RIDE_TYPE_FLAG_PEEP_CHECK_GFORCES | RIDE_TYPE_FLAG_ALLOW_MULTIPLE_CIRCUITS | RIDE_TYPE_FLAG_IS_SUSPENDED,
|
||||
.RideModes = EnumsToFlags(RideMode::ContinuousCircuit, RideMode::ContinuousCircuitBlockSectioned, RideMode::ReverseInclineLaunchedShuttle),
|
||||
.DefaultMode = RideMode::ContinuousCircuit,
|
||||
.OperatingSettings = { 7, 27, 0, 0, 0, 0 },
|
||||
.Naming = { STR_RIDE_NAME_COMPACT_INVERTED_COASTER, STR_RIDE_DESCRIPTION_COMPACT_INVERTED_COASTER },
|
||||
.NameConvention = { RideComponentType::Train, RideComponentType::Track, RideComponentType::Station },
|
||||
.EnumName = nameof(RIDE_TYPE_COMPACT_INVERTED_COASTER),
|
||||
.AvailableBreakdowns = (1 << BREAKDOWN_SAFETY_CUT_OUT) | (1 << BREAKDOWN_RESTRAINTS_STUCK_CLOSED) | (1 << BREAKDOWN_RESTRAINTS_STUCK_OPEN) | (1 << BREAKDOWN_VEHICLE_MALFUNCTION) | (1 << BREAKDOWN_BRAKES_FAILURE),
|
||||
.Heights = { 27, 40, 29, 8, },
|
||||
.MaxMass = 18,
|
||||
.LiftData = { OpenRCT2::Audio::SoundId::LiftClassic, 4, 6 },
|
||||
.RatingsMultipliers = { 50, 30, 10 },
|
||||
.UpkeepCosts = { 40, 20, 80, 13, 3, 10 },
|
||||
.BuildCosts = { 50.00_GBP, 2.50_GBP, 50, },
|
||||
.DefaultPrices = { 20, 20 },
|
||||
.DefaultMusic = MUSIC_OBJECT_TECHNO,
|
||||
.PhotoItem = ShopItem::Photo2,
|
||||
.BonusValue = 80,
|
||||
.ColourPresets = TRACK_COLOUR_PRESETS(
|
||||
{ COLOUR_BRIGHT_YELLOW, COLOUR_BRIGHT_YELLOW, COLOUR_BRIGHT_RED },
|
||||
{ COLOUR_ICY_BLUE, COLOUR_ICY_BLUE, COLOUR_DARK_GREEN },
|
||||
{ COLOUR_BRIGHT_RED, COLOUR_BRIGHT_RED, COLOUR_BRIGHT_YELLOW },
|
||||
{ COLOUR_WHITE, COLOUR_WHITE, COLOUR_DARK_GREEN },
|
||||
)),
|
||||
SET_FIELD(ColourPreview, { SPR_RIDE_DESIGN_PREVIEW_COMPACT_INVERTED_COASTER_TRACK, SPR_RIDE_DESIGN_PREVIEW_COMPACT_INVERTED_COASTER_SUPPORTS }),
|
||||
SET_FIELD(ColourKey, RideColourKey::Ride),
|
||||
SET_FIELD(Name, "compact_inverted_rc"),
|
||||
SET_FIELD(RatingsData,
|
||||
),
|
||||
.ColourPreview = { SPR_RIDE_DESIGN_PREVIEW_COMPACT_INVERTED_COASTER_TRACK, SPR_RIDE_DESIGN_PREVIEW_COMPACT_INVERTED_COASTER_SUPPORTS },
|
||||
.ColourKey = RideColourKey::Ride,
|
||||
.Name = "compact_inverted_rc",
|
||||
.RatingsData =
|
||||
{
|
||||
RatingsCalculationType::Normal,
|
||||
{ RIDE_RATING(3, 15), RIDE_RATING(2, 80), RIDE_RATING(3, 20) },
|
||||
@@ -78,6 +78,6 @@ constexpr RideTypeDescriptor CompactInvertedCoasterRTD =
|
||||
{ RatingsModifierType::RequirementNegativeGs, FIXED_2DP(0, 30), 2, 2, 2 },
|
||||
{ RatingsModifierType::PenaltyLateralGs, 0, 24576, 30980, 55606 },
|
||||
},
|
||||
}),
|
||||
},
|
||||
};
|
||||
// clang-format on
|
||||
|
||||
@@ -17,44 +17,44 @@
|
||||
// clang-format off
|
||||
constexpr RideTypeDescriptor CorkscrewRollerCoasterRTD =
|
||||
{
|
||||
SET_FIELD(AlternateType, RIDE_TYPE_NULL),
|
||||
SET_FIELD(Category, RIDE_CATEGORY_ROLLERCOASTER),
|
||||
SET_FIELD(EnabledTrackPieces, {TRACK_STRAIGHT, TRACK_STATION_END, TRACK_LIFT_HILL, TRACK_FLAT_ROLL_BANKING, TRACK_VERTICAL_LOOP, TRACK_SLOPE, TRACK_SLOPE_STEEP_UP, TRACK_SLOPE_STEEP_DOWN, TRACK_SLOPE_CURVE, TRACK_SLOPE_CURVE_STEEP, TRACK_S_BEND, TRACK_CURVE_SMALL, TRACK_CURVE, TRACK_CURVE_LARGE, TRACK_HALF_LOOP, TRACK_CORKSCREW, TRACK_HELIX_DOWN_BANKED_HALF, TRACK_HELIX_UP_BANKED_HALF, TRACK_BRAKES, TRACK_ON_RIDE_PHOTO, TRACK_BLOCK_BRAKES,TRACK_BOOSTER, TRACK_SLOPE_STEEP_LONG, TRACK_DIAG_BRAKES, TRACK_DIAG_BLOCK_BRAKES}),
|
||||
SET_FIELD(ExtraTrackPieces, {TRACK_TWIST}),
|
||||
SET_FIELD(CoveredTrackPieces, {}),
|
||||
SET_FIELD(StartTrackPiece, TrackElemType::EndStation),
|
||||
SET_FIELD(TrackPaintFunctions, TrackDrawerDescriptor(GetTrackPaintFunctionCorkscrewRC)),
|
||||
SET_FIELD(Flags, RIDE_TYPE_FLAGS_TRACK_HAS_3_COLOURS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION |
|
||||
.AlternateType = RIDE_TYPE_NULL,
|
||||
.Category = RIDE_CATEGORY_ROLLERCOASTER,
|
||||
.EnabledTrackPieces = {TRACK_STRAIGHT, TRACK_STATION_END, TRACK_LIFT_HILL, TRACK_FLAT_ROLL_BANKING, TRACK_VERTICAL_LOOP, TRACK_SLOPE, TRACK_SLOPE_STEEP_UP, TRACK_SLOPE_STEEP_DOWN, TRACK_SLOPE_CURVE, TRACK_SLOPE_CURVE_STEEP, TRACK_S_BEND, TRACK_CURVE_SMALL, TRACK_CURVE, TRACK_CURVE_LARGE, TRACK_HALF_LOOP, TRACK_CORKSCREW, TRACK_HELIX_DOWN_BANKED_HALF, TRACK_HELIX_UP_BANKED_HALF, TRACK_BRAKES, TRACK_ON_RIDE_PHOTO, TRACK_BLOCK_BRAKES,TRACK_BOOSTER, TRACK_SLOPE_STEEP_LONG, TRACK_DIAG_BRAKES, TRACK_DIAG_BLOCK_BRAKES},
|
||||
.ExtraTrackPieces = {TRACK_TWIST},
|
||||
.CoveredTrackPieces = {},
|
||||
.StartTrackPiece = TrackElemType::EndStation,
|
||||
.TrackPaintFunctions = TrackDrawerDescriptor(GetTrackPaintFunctionCorkscrewRC),
|
||||
.Flags = RIDE_TYPE_FLAGS_TRACK_HAS_3_COLOURS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION |
|
||||
RIDE_TYPE_FLAGS_COMMON_COASTER | RIDE_TYPE_FLAGS_COMMON_COASTER_NON_ALT |
|
||||
RIDE_TYPE_FLAG_PEEP_CHECK_GFORCES | RIDE_TYPE_FLAG_ALLOW_MULTIPLE_CIRCUITS |
|
||||
RIDE_TYPE_FLAG_ALLOW_REVERSED_TRAINS),
|
||||
SET_FIELD(RideModes, EnumsToFlags(RideMode::ContinuousCircuit, RideMode::ContinuousCircuitBlockSectioned, RideMode::PoweredLaunchPasstrough, RideMode::PoweredLaunch, RideMode::ReverseInclineLaunchedShuttle)),
|
||||
SET_FIELD(DefaultMode, RideMode::ContinuousCircuit),
|
||||
SET_FIELD(OperatingSettings, { 10, 27, 30, 25, 25, 0 }),
|
||||
SET_FIELD(Naming, { STR_RIDE_NAME_CORKSCREW_ROLLER_COASTER, STR_RIDE_DESCRIPTION_CORKSCREW_ROLLER_COASTER }),
|
||||
SET_FIELD(NameConvention, { RideComponentType::Train, RideComponentType::Track, RideComponentType::Station }),
|
||||
SET_FIELD(EnumName, nameof(RIDE_TYPE_CORKSCREW_ROLLER_COASTER)),
|
||||
SET_FIELD(AvailableBreakdowns, (1 << BREAKDOWN_SAFETY_CUT_OUT) | (1 << BREAKDOWN_RESTRAINTS_STUCK_CLOSED) | (1 << BREAKDOWN_RESTRAINTS_STUCK_OPEN) | (1 << BREAKDOWN_VEHICLE_MALFUNCTION) | (1 << BREAKDOWN_BRAKES_FAILURE)),
|
||||
SET_FIELD(Heights, { 28, 24, 8, 11, }),
|
||||
SET_FIELD(MaxMass, 18),
|
||||
SET_FIELD(LiftData, { OpenRCT2::Audio::SoundId::LiftArrow, 4, 6 }),
|
||||
SET_FIELD(RatingsMultipliers, { 50, 30, 10 }),
|
||||
SET_FIELD(UpkeepCosts, { 40, 20, 80, 11, 3, 10 }),
|
||||
SET_FIELD(BuildCosts, { 52.50_GBP, 2.50_GBP, 50, }),
|
||||
SET_FIELD(DefaultPrices, { 20, 20 }),
|
||||
SET_FIELD(DefaultMusic, MUSIC_OBJECT_ROCK_1),
|
||||
SET_FIELD(PhotoItem, ShopItem::Photo),
|
||||
SET_FIELD(BonusValue, 100),
|
||||
SET_FIELD(ColourPresets, TRACK_COLOUR_PRESETS(
|
||||
RIDE_TYPE_FLAG_ALLOW_REVERSED_TRAINS,
|
||||
.RideModes = EnumsToFlags(RideMode::ContinuousCircuit, RideMode::ContinuousCircuitBlockSectioned, RideMode::PoweredLaunchPasstrough, RideMode::PoweredLaunch, RideMode::ReverseInclineLaunchedShuttle),
|
||||
.DefaultMode = RideMode::ContinuousCircuit,
|
||||
.OperatingSettings = { 10, 27, 30, 25, 25, 0 },
|
||||
.Naming = { STR_RIDE_NAME_CORKSCREW_ROLLER_COASTER, STR_RIDE_DESCRIPTION_CORKSCREW_ROLLER_COASTER },
|
||||
.NameConvention = { RideComponentType::Train, RideComponentType::Track, RideComponentType::Station },
|
||||
.EnumName = nameof(RIDE_TYPE_CORKSCREW_ROLLER_COASTER),
|
||||
.AvailableBreakdowns = (1 << BREAKDOWN_SAFETY_CUT_OUT) | (1 << BREAKDOWN_RESTRAINTS_STUCK_CLOSED) | (1 << BREAKDOWN_RESTRAINTS_STUCK_OPEN) | (1 << BREAKDOWN_VEHICLE_MALFUNCTION) | (1 << BREAKDOWN_BRAKES_FAILURE),
|
||||
.Heights = { 28, 24, 8, 11, },
|
||||
.MaxMass = 18,
|
||||
.LiftData = { OpenRCT2::Audio::SoundId::LiftArrow, 4, 6 },
|
||||
.RatingsMultipliers = { 50, 30, 10 },
|
||||
.UpkeepCosts = { 40, 20, 80, 11, 3, 10 },
|
||||
.BuildCosts = { 52.50_GBP, 2.50_GBP, 50, },
|
||||
.DefaultPrices = { 20, 20 },
|
||||
.DefaultMusic = MUSIC_OBJECT_ROCK_1,
|
||||
.PhotoItem = ShopItem::Photo,
|
||||
.BonusValue = 100,
|
||||
.ColourPresets = TRACK_COLOUR_PRESETS(
|
||||
{ COLOUR_BORDEAUX_RED, COLOUR_BORDEAUX_RED, COLOUR_BLACK },
|
||||
{ COLOUR_LIGHT_BLUE, COLOUR_LIGHT_BLUE, COLOUR_WHITE },
|
||||
{ COLOUR_BLACK, COLOUR_BORDEAUX_RED, COLOUR_BLACK },
|
||||
{ COLOUR_WHITE, COLOUR_WHITE, COLOUR_DARK_GREEN },
|
||||
)),
|
||||
SET_FIELD(ColourPreview, { SPR_RIDE_DESIGN_PREVIEW_CORKSCREW_ROLLER_COASTER_TRACK, SPR_RIDE_DESIGN_PREVIEW_CORKSCREW_ROLLER_COASTER_SUPPORTS }),
|
||||
SET_FIELD(ColourKey, RideColourKey::Ride),
|
||||
SET_FIELD(Name, "corkscrew_rc"),
|
||||
SET_FIELD(RatingsData,
|
||||
),
|
||||
.ColourPreview = { SPR_RIDE_DESIGN_PREVIEW_CORKSCREW_ROLLER_COASTER_TRACK, SPR_RIDE_DESIGN_PREVIEW_CORKSCREW_ROLLER_COASTER_SUPPORTS },
|
||||
.ColourKey = RideColourKey::Ride,
|
||||
.Name = "corkscrew_rc",
|
||||
.RatingsData =
|
||||
{
|
||||
RatingsCalculationType::Normal,
|
||||
{ RIDE_RATING(3, 00), RIDE_RATING(0, 50), RIDE_RATING(0, 20) },
|
||||
@@ -81,6 +81,6 @@ constexpr RideTypeDescriptor CorkscrewRollerCoasterRTD =
|
||||
{ RatingsModifierType::RequirementNumDrops, 2, 2, 2, 2 },
|
||||
{ RatingsModifierType::PenaltyLateralGs, 0, 24576, 35746, 49648 },
|
||||
},
|
||||
}),
|
||||
},
|
||||
};
|
||||
// clang-format on
|
||||
|
||||
@@ -18,35 +18,35 @@
|
||||
// Non-inverted variant
|
||||
constexpr RideTypeDescriptor FlyingRollerCoasterRTD =
|
||||
{
|
||||
SET_FIELD(AlternateType, RIDE_TYPE_FLYING_ROLLER_COASTER_ALT),
|
||||
SET_FIELD(Category, RIDE_CATEGORY_ROLLERCOASTER),
|
||||
SET_FIELD(EnabledTrackPieces, {TRACK_STRAIGHT, TRACK_FLAT_ROLL_BANKING, TRACK_SLOPE, TRACK_SLOPE_STEEP_UP, TRACK_SLOPE_STEEP_DOWN, TRACK_SLOPE_CURVE, TRACK_SLOPE_CURVE_STEEP, TRACK_S_BEND, TRACK_CURVE_SMALL, TRACK_CURVE, TRACK_CURVE_LARGE, TRACK_HELIX_DOWN_BANKED_HALF, TRACK_HELIX_UP_BANKED_HALF, TRACK_BRAKES, TRACK_ON_RIDE_PHOTO, TRACK_BLOCK_BRAKES, TRACK_SLOPE_ROLL_BANKING, TRACK_INLINE_TWIST_UNINVERTED, TRACK_FLYING_HALF_LOOP_UNINVERTED_UP, TRACK_QUARTER_LOOP_UNINVERTED_UP, TRACK_FLYING_LARGE_HALF_LOOP_UNINVERTED_UP, TRACK_SLOPE_VERTICAL, TRACK_SLOPE_CURVE_BANKED, TRACK_DIAG_BRAKES, TRACK_DIAG_BLOCK_BRAKES}),
|
||||
SET_FIELD(ExtraTrackPieces, {TRACK_BOOSTER, TRACK_SLOPE_STEEP_LONG, TRACK_FLYING_LARGE_HALF_LOOP_UNINVERTED_DOWN, TRACK_FLYING_HALF_LOOP_UNINVERTED_DOWN, TRACK_STATION_END, TRACK_VERTICAL_LOOP, TRACK_POWERED_LIFT}),
|
||||
SET_FIELD(CoveredTrackPieces, {}),
|
||||
SET_FIELD(StartTrackPiece, TrackElemType::EndStation),
|
||||
SET_FIELD(TrackPaintFunctions, TrackDrawerDescriptor(GetTrackPaintFunctionFlyingRC)),
|
||||
SET_FIELD(Flags, RIDE_TYPE_FLAGS_TRACK_HAS_3_COLOURS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION |
|
||||
.AlternateType = RIDE_TYPE_FLYING_ROLLER_COASTER_ALT,
|
||||
.Category = RIDE_CATEGORY_ROLLERCOASTER,
|
||||
.EnabledTrackPieces = {TRACK_STRAIGHT, TRACK_FLAT_ROLL_BANKING, TRACK_SLOPE, TRACK_SLOPE_STEEP_UP, TRACK_SLOPE_STEEP_DOWN, TRACK_SLOPE_CURVE, TRACK_SLOPE_CURVE_STEEP, TRACK_S_BEND, TRACK_CURVE_SMALL, TRACK_CURVE, TRACK_CURVE_LARGE, TRACK_HELIX_DOWN_BANKED_HALF, TRACK_HELIX_UP_BANKED_HALF, TRACK_BRAKES, TRACK_ON_RIDE_PHOTO, TRACK_BLOCK_BRAKES, TRACK_SLOPE_ROLL_BANKING, TRACK_INLINE_TWIST_UNINVERTED, TRACK_FLYING_HALF_LOOP_UNINVERTED_UP, TRACK_QUARTER_LOOP_UNINVERTED_UP, TRACK_FLYING_LARGE_HALF_LOOP_UNINVERTED_UP, TRACK_SLOPE_VERTICAL, TRACK_SLOPE_CURVE_BANKED, TRACK_DIAG_BRAKES, TRACK_DIAG_BLOCK_BRAKES},
|
||||
.ExtraTrackPieces = {TRACK_BOOSTER, TRACK_SLOPE_STEEP_LONG, TRACK_FLYING_LARGE_HALF_LOOP_UNINVERTED_DOWN, TRACK_FLYING_HALF_LOOP_UNINVERTED_DOWN, TRACK_STATION_END, TRACK_VERTICAL_LOOP, TRACK_POWERED_LIFT},
|
||||
.CoveredTrackPieces = {},
|
||||
.StartTrackPiece = TrackElemType::EndStation,
|
||||
.TrackPaintFunctions = TrackDrawerDescriptor(GetTrackPaintFunctionFlyingRC),
|
||||
.Flags = RIDE_TYPE_FLAGS_TRACK_HAS_3_COLOURS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION |
|
||||
RIDE_TYPE_FLAGS_COMMON_COASTER | RIDE_TYPE_FLAGS_COMMON_COASTER_NON_ALT |
|
||||
RIDE_TYPE_FLAG_HAS_ALTERNATIVE_TRACK_TYPE | RIDE_TYPE_FLAG_PEEP_CHECK_GFORCES |
|
||||
RIDE_TYPE_FLAG_ALLOW_MULTIPLE_CIRCUITS | RIDE_TYPE_FLAG_START_CONSTRUCTION_INVERTED),
|
||||
SET_FIELD(RideModes, EnumsToFlags(RideMode::ContinuousCircuit, RideMode::ContinuousCircuitBlockSectioned)),
|
||||
SET_FIELD(DefaultMode, RideMode::ContinuousCircuit),
|
||||
SET_FIELD(OperatingSettings, { 10, 27, 30, 25, 25, 0 }),
|
||||
SET_FIELD(Naming, { STR_RIDE_NAME_FLYING_ROLLER_COASTER, STR_RIDE_DESCRIPTION_FLYING_ROLLER_COASTER }),
|
||||
SET_FIELD(NameConvention, { RideComponentType::Train, RideComponentType::Track, RideComponentType::Station }),
|
||||
SET_FIELD(EnumName, nameof(RIDE_TYPE_FLYING_ROLLER_COASTER)),
|
||||
SET_FIELD(AvailableBreakdowns, (1 << BREAKDOWN_SAFETY_CUT_OUT) | (1 << BREAKDOWN_RESTRAINTS_STUCK_CLOSED) | (1 << BREAKDOWN_RESTRAINTS_STUCK_OPEN) | (1 << BREAKDOWN_VEHICLE_MALFUNCTION) | (1 << BREAKDOWN_BRAKES_FAILURE)),
|
||||
SET_FIELD(Heights, { 30, 24, 8, 11, }),
|
||||
SET_FIELD(MaxMass, 35),
|
||||
SET_FIELD(LiftData, { OpenRCT2::Audio::SoundId::LiftBM, 4, 6 }),
|
||||
SET_FIELD(RatingsMultipliers, { 50, 30, 10 }),
|
||||
SET_FIELD(UpkeepCosts, { 49, 20, 90, 11, 3, 15 }),
|
||||
SET_FIELD(BuildCosts, { 62.50_GBP, 2.50_GBP, 50, }),
|
||||
SET_FIELD(DefaultPrices, { 20, 20 }),
|
||||
SET_FIELD(DefaultMusic, MUSIC_OBJECT_ROCK_1),
|
||||
SET_FIELD(PhotoItem, ShopItem::Photo2),
|
||||
SET_FIELD(BonusValue, 100),
|
||||
SET_FIELD(ColourPresets, TRACK_COLOUR_PRESETS(
|
||||
RIDE_TYPE_FLAG_ALLOW_MULTIPLE_CIRCUITS | RIDE_TYPE_FLAG_START_CONSTRUCTION_INVERTED,
|
||||
.RideModes = EnumsToFlags(RideMode::ContinuousCircuit, RideMode::ContinuousCircuitBlockSectioned),
|
||||
.DefaultMode = RideMode::ContinuousCircuit,
|
||||
.OperatingSettings = { 10, 27, 30, 25, 25, 0 },
|
||||
.Naming = { STR_RIDE_NAME_FLYING_ROLLER_COASTER, STR_RIDE_DESCRIPTION_FLYING_ROLLER_COASTER },
|
||||
.NameConvention = { RideComponentType::Train, RideComponentType::Track, RideComponentType::Station },
|
||||
.EnumName = nameof(RIDE_TYPE_FLYING_ROLLER_COASTER),
|
||||
.AvailableBreakdowns = (1 << BREAKDOWN_SAFETY_CUT_OUT) | (1 << BREAKDOWN_RESTRAINTS_STUCK_CLOSED) | (1 << BREAKDOWN_RESTRAINTS_STUCK_OPEN) | (1 << BREAKDOWN_VEHICLE_MALFUNCTION) | (1 << BREAKDOWN_BRAKES_FAILURE),
|
||||
.Heights = { 30, 24, 8, 11, },
|
||||
.MaxMass = 35,
|
||||
.LiftData = { OpenRCT2::Audio::SoundId::LiftBM, 4, 6 },
|
||||
.RatingsMultipliers = { 50, 30, 10 },
|
||||
.UpkeepCosts = { 49, 20, 90, 11, 3, 15 },
|
||||
.BuildCosts = { 62.50_GBP, 2.50_GBP, 50, },
|
||||
.DefaultPrices = { 20, 20 },
|
||||
.DefaultMusic = MUSIC_OBJECT_ROCK_1,
|
||||
.PhotoItem = ShopItem::Photo2,
|
||||
.BonusValue = 100,
|
||||
.ColourPresets = TRACK_COLOUR_PRESETS(
|
||||
{ COLOUR_OLIVE_GREEN, COLOUR_OLIVE_GREEN, COLOUR_TEAL },
|
||||
{ COLOUR_TEAL, COLOUR_TEAL, COLOUR_BORDEAUX_RED },
|
||||
{ COLOUR_BRIGHT_RED, COLOUR_BRIGHT_RED, COLOUR_DARK_PURPLE },
|
||||
@@ -54,11 +54,11 @@ constexpr RideTypeDescriptor FlyingRollerCoasterRTD =
|
||||
{ COLOUR_BORDEAUX_RED_DARK, COLOUR_BORDEAUX_RED_DARK, COLOUR_SATURATED_BROWN }, // FLY
|
||||
{ COLOUR_LIGHT_BLUE, COLOUR_DARK_BLUE, COLOUR_ICY_BLUE }, // Manta
|
||||
{ COLOUR_YELLOW, COLOUR_BRIGHT_RED, COLOUR_LIGHT_ORANGE } // Tatsu
|
||||
)),
|
||||
SET_FIELD(ColourPreview, { SPR_RIDE_DESIGN_PREVIEW_FLYING_ROLLER_COASTER_TRACK, SPR_RIDE_DESIGN_PREVIEW_FLYING_ROLLER_COASTER_SUPPORTS }),
|
||||
SET_FIELD(ColourKey, RideColourKey::Ride),
|
||||
SET_FIELD(Name, "flying_rc"),
|
||||
SET_FIELD(RatingsData,
|
||||
),
|
||||
.ColourPreview = { SPR_RIDE_DESIGN_PREVIEW_FLYING_ROLLER_COASTER_TRACK, SPR_RIDE_DESIGN_PREVIEW_FLYING_ROLLER_COASTER_SUPPORTS },
|
||||
.ColourKey = RideColourKey::Ride,
|
||||
.Name = "flying_rc",
|
||||
.RatingsData =
|
||||
{
|
||||
RatingsCalculationType::Normal,
|
||||
{ RIDE_RATING(4, 35), RIDE_RATING(1, 85), RIDE_RATING(4, 33) },
|
||||
@@ -84,47 +84,47 @@ constexpr RideTypeDescriptor FlyingRollerCoasterRTD =
|
||||
{ RatingsModifierType::RequirementNumDrops, 2, 2, 1, 1 },
|
||||
{ RatingsModifierType::PenaltyLateralGs, 0, 24576, 38130, 49648 },
|
||||
},
|
||||
}),
|
||||
},
|
||||
};
|
||||
|
||||
// Inverted variant
|
||||
constexpr RideTypeDescriptor FlyingRollerCoasterAltRTD =
|
||||
{
|
||||
SET_FIELD(AlternateType, RIDE_TYPE_NULL),
|
||||
SET_FIELD(Category, RIDE_CATEGORY_NONE),
|
||||
SET_FIELD(EnabledTrackPieces, {TRACK_STRAIGHT, TRACK_STATION_END, TRACK_LIFT_HILL, TRACK_FLAT_ROLL_BANKING, TRACK_SLOPE, TRACK_SLOPE_STEEP_UP, TRACK_SLOPE_STEEP_DOWN, TRACK_SLOPE_CURVE, TRACK_SLOPE_CURVE_STEEP, TRACK_S_BEND, TRACK_CURVE_SMALL, TRACK_CURVE, TRACK_CURVE_LARGE, TRACK_HELIX_DOWN_BANKED_QUARTER, TRACK_HELIX_UP_BANKED_QUARTER, TRACK_BRAKES, TRACK_ON_RIDE_PHOTO, TRACK_BLOCK_BRAKES, TRACK_SLOPE_ROLL_BANKING, TRACK_INLINE_TWIST_INVERTED, TRACK_FLYING_HALF_LOOP_INVERTED_DOWN, TRACK_QUARTER_LOOP_INVERTED_DOWN, TRACK_FLYING_LARGE_HALF_LOOP_INVERTED_DOWN, TRACK_BOOSTER, TRACK_DIAG_BRAKES, TRACK_DIAG_BLOCK_BRAKES}),
|
||||
SET_FIELD(ExtraTrackPieces, {TRACK_FLYING_LARGE_HALF_LOOP_INVERTED_UP, TRACK_FLYING_HALF_LOOP_INVERTED_UP}),
|
||||
SET_FIELD(CoveredTrackPieces, {}),
|
||||
SET_FIELD(StartTrackPiece, TrackElemType::EndStation),
|
||||
SET_FIELD(TrackPaintFunctions, TrackDrawerDescriptor(nullptr)),
|
||||
SET_FIELD(Flags, RIDE_TYPE_FLAGS_TRACK_HAS_3_COLOURS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION |
|
||||
RIDE_TYPE_FLAGS_COMMON_COASTER | RIDE_TYPE_FLAG_START_CONSTRUCTION_INVERTED),
|
||||
SET_FIELD(RideModes, EnumsToFlags(RideMode::ContinuousCircuit, RideMode::ContinuousCircuitBlockSectioned)),
|
||||
SET_FIELD(DefaultMode, RideMode::ContinuousCircuit),
|
||||
SET_FIELD(OperatingSettings, { 10, 27, 30, 25, 25, 0 }),
|
||||
SET_FIELD(Naming, { STR_RIDE_NAME_3A, STR_RIDE_DESCRIPTION_UNKNOWN }),
|
||||
SET_FIELD(NameConvention, { RideComponentType::Train, RideComponentType::Track, RideComponentType::Station }),
|
||||
SET_FIELD(EnumName, nameof(RIDE_TYPE_FLYING_ROLLER_COASTER_ALT)),
|
||||
SET_FIELD(AvailableBreakdowns, (1 << BREAKDOWN_SAFETY_CUT_OUT) | (1 << BREAKDOWN_RESTRAINTS_STUCK_CLOSED) | (1 << BREAKDOWN_RESTRAINTS_STUCK_OPEN) | (1 << BREAKDOWN_VEHICLE_MALFUNCTION) | (1 << BREAKDOWN_BRAKES_FAILURE)),
|
||||
SET_FIELD(Heights, { 30, 24, 8, 11, }),
|
||||
SET_FIELD(MaxMass, 35),
|
||||
SET_FIELD(LiftData, { OpenRCT2::Audio::SoundId::LiftBM, 4, 6 }),
|
||||
SET_FIELD(RatingsMultipliers, { 50, 30, 10 }),
|
||||
SET_FIELD(UpkeepCosts, { 49, 20, 90, 11, 3, 15 }),
|
||||
SET_FIELD(BuildCosts, { 62.50_GBP, 2.50_GBP, 50, }),
|
||||
SET_FIELD(DefaultPrices, { 20, 20 }),
|
||||
SET_FIELD(DefaultMusic, MUSIC_OBJECT_ROCK_1),
|
||||
SET_FIELD(PhotoItem, ShopItem::Photo2),
|
||||
SET_FIELD(BonusValue, 100),
|
||||
SET_FIELD(ColourPresets, TRACK_COLOUR_PRESETS(
|
||||
.AlternateType = RIDE_TYPE_NULL,
|
||||
.Category = RIDE_CATEGORY_NONE,
|
||||
.EnabledTrackPieces = {TRACK_STRAIGHT, TRACK_STATION_END, TRACK_LIFT_HILL, TRACK_FLAT_ROLL_BANKING, TRACK_SLOPE, TRACK_SLOPE_STEEP_UP, TRACK_SLOPE_STEEP_DOWN, TRACK_SLOPE_CURVE, TRACK_SLOPE_CURVE_STEEP, TRACK_S_BEND, TRACK_CURVE_SMALL, TRACK_CURVE, TRACK_CURVE_LARGE, TRACK_HELIX_DOWN_BANKED_QUARTER, TRACK_HELIX_UP_BANKED_QUARTER, TRACK_BRAKES, TRACK_ON_RIDE_PHOTO, TRACK_BLOCK_BRAKES, TRACK_SLOPE_ROLL_BANKING, TRACK_INLINE_TWIST_INVERTED, TRACK_FLYING_HALF_LOOP_INVERTED_DOWN, TRACK_QUARTER_LOOP_INVERTED_DOWN, TRACK_FLYING_LARGE_HALF_LOOP_INVERTED_DOWN, TRACK_BOOSTER, TRACK_DIAG_BRAKES, TRACK_DIAG_BLOCK_BRAKES},
|
||||
.ExtraTrackPieces = {TRACK_FLYING_LARGE_HALF_LOOP_INVERTED_UP, TRACK_FLYING_HALF_LOOP_INVERTED_UP},
|
||||
.CoveredTrackPieces = {},
|
||||
.StartTrackPiece = TrackElemType::EndStation,
|
||||
.TrackPaintFunctions = TrackDrawerDescriptor(nullptr),
|
||||
.Flags = RIDE_TYPE_FLAGS_TRACK_HAS_3_COLOURS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION |
|
||||
RIDE_TYPE_FLAGS_COMMON_COASTER | RIDE_TYPE_FLAG_START_CONSTRUCTION_INVERTED,
|
||||
.RideModes = EnumsToFlags(RideMode::ContinuousCircuit, RideMode::ContinuousCircuitBlockSectioned),
|
||||
.DefaultMode = RideMode::ContinuousCircuit,
|
||||
.OperatingSettings = { 10, 27, 30, 25, 25, 0 },
|
||||
.Naming = { STR_RIDE_NAME_3A, STR_RIDE_DESCRIPTION_UNKNOWN },
|
||||
.NameConvention = { RideComponentType::Train, RideComponentType::Track, RideComponentType::Station },
|
||||
.EnumName = nameof(RIDE_TYPE_FLYING_ROLLER_COASTER_ALT),
|
||||
.AvailableBreakdowns = (1 << BREAKDOWN_SAFETY_CUT_OUT) | (1 << BREAKDOWN_RESTRAINTS_STUCK_CLOSED) | (1 << BREAKDOWN_RESTRAINTS_STUCK_OPEN) | (1 << BREAKDOWN_VEHICLE_MALFUNCTION) | (1 << BREAKDOWN_BRAKES_FAILURE),
|
||||
.Heights = { 30, 24, 8, 11, },
|
||||
.MaxMass = 35,
|
||||
.LiftData = { OpenRCT2::Audio::SoundId::LiftBM, 4, 6 },
|
||||
.RatingsMultipliers = { 50, 30, 10 },
|
||||
.UpkeepCosts = { 49, 20, 90, 11, 3, 15 },
|
||||
.BuildCosts = { 62.50_GBP, 2.50_GBP, 50, },
|
||||
.DefaultPrices = { 20, 20 },
|
||||
.DefaultMusic = MUSIC_OBJECT_ROCK_1,
|
||||
.PhotoItem = ShopItem::Photo2,
|
||||
.BonusValue = 100,
|
||||
.ColourPresets = TRACK_COLOUR_PRESETS(
|
||||
{ COLOUR_OLIVE_GREEN, COLOUR_OLIVE_GREEN, COLOUR_TEAL },
|
||||
{ COLOUR_TEAL, COLOUR_TEAL, COLOUR_BORDEAUX_RED },
|
||||
{ COLOUR_BRIGHT_RED, COLOUR_BRIGHT_RED, COLOUR_DARK_PURPLE },
|
||||
)),
|
||||
SET_FIELD(ColourPreview, { SPR_RIDE_DESIGN_PREVIEW_FLYING_ROLLER_COASTER_TRACK, SPR_RIDE_DESIGN_PREVIEW_FLYING_ROLLER_COASTER_SUPPORTS }),
|
||||
SET_FIELD(ColourKey, RideColourKey::Ride),
|
||||
SET_FIELD(Name, "flying_rc_alt"),
|
||||
SET_FIELD(RatingsData,
|
||||
),
|
||||
.ColourPreview = { SPR_RIDE_DESIGN_PREVIEW_FLYING_ROLLER_COASTER_TRACK, SPR_RIDE_DESIGN_PREVIEW_FLYING_ROLLER_COASTER_SUPPORTS },
|
||||
.ColourKey = RideColourKey::Ride,
|
||||
.Name = "flying_rc_alt",
|
||||
.RatingsData =
|
||||
{
|
||||
RatingsCalculationType::Normal,
|
||||
{ RIDE_RATING(4, 35), RIDE_RATING(1, 85), RIDE_RATING(4, 33) },
|
||||
@@ -150,6 +150,6 @@ constexpr RideTypeDescriptor FlyingRollerCoasterAltRTD =
|
||||
{ RatingsModifierType::RequirementNumDrops, 2, 2, 1, 1 },
|
||||
{ RatingsModifierType::PenaltyLateralGs, 0, 24576, 38130, 49648 },
|
||||
},
|
||||
}),
|
||||
},
|
||||
};
|
||||
// clang-format on
|
||||
|
||||
@@ -17,45 +17,45 @@
|
||||
// clang-format off
|
||||
constexpr RideTypeDescriptor GigaCoasterRTD =
|
||||
{
|
||||
SET_FIELD(AlternateType, RIDE_TYPE_NULL),
|
||||
SET_FIELD(Category, RIDE_CATEGORY_ROLLERCOASTER),
|
||||
SET_FIELD(EnabledTrackPieces, {TRACK_STRAIGHT, TRACK_STATION_END, TRACK_LIFT_HILL, TRACK_FLAT_ROLL_BANKING, TRACK_SLOPE, TRACK_SLOPE_STEEP_UP, TRACK_SLOPE_STEEP_DOWN, TRACK_SLOPE_CURVE, TRACK_SLOPE_CURVE_STEEP, TRACK_S_BEND, TRACK_CURVE_SMALL, TRACK_CURVE, TRACK_CURVE_LARGE, TRACK_HELIX_DOWN_BANKED_HALF, TRACK_HELIX_UP_BANKED_HALF, TRACK_BRAKES, TRACK_ON_RIDE_PHOTO, TRACK_BLOCK_BRAKES, TRACK_SLOPE_ROLL_BANKING, TRACK_SLOPE_STEEP_LONG, TRACK_LIFT_HILL_CABLE, TRACK_BOOSTER, TRACK_POWERED_LIFT, TRACK_SLOPE_CURVE_BANKED, TRACK_SLOPE_CURVE_LARGE, TRACK_DIAG_BRAKES, TRACK_DIAG_BLOCK_BRAKES, TRACK_SLOPE_VERTICAL, TRACK_CURVE_VERTICAL}),
|
||||
SET_FIELD(ExtraTrackPieces, {TRACK_BARREL_ROLL, TRACK_QUARTER_LOOP, TRACK_HALF_LOOP, TRACK_HALF_LOOP_MEDIUM, TRACK_HALF_LOOP_LARGE, TRACK_VERTICAL_LOOP, TRACK_CORKSCREW, TRACK_CORKSCREW_LARGE, TRACK_ZERO_G_ROLL, TRACK_ZERO_G_ROLL_LARGE}),
|
||||
SET_FIELD(CoveredTrackPieces, {}),
|
||||
SET_FIELD(StartTrackPiece, TrackElemType::EndStation),
|
||||
SET_FIELD(TrackPaintFunctions, TrackDrawerDescriptor(GetTrackPaintFunctionGigaRC)),
|
||||
SET_FIELD(Flags, RIDE_TYPE_FLAGS_TRACK_HAS_3_COLOURS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION |
|
||||
.AlternateType = RIDE_TYPE_NULL,
|
||||
.Category = RIDE_CATEGORY_ROLLERCOASTER,
|
||||
.EnabledTrackPieces = {TRACK_STRAIGHT, TRACK_STATION_END, TRACK_LIFT_HILL, TRACK_FLAT_ROLL_BANKING, TRACK_SLOPE, TRACK_SLOPE_STEEP_UP, TRACK_SLOPE_STEEP_DOWN, TRACK_SLOPE_CURVE, TRACK_SLOPE_CURVE_STEEP, TRACK_S_BEND, TRACK_CURVE_SMALL, TRACK_CURVE, TRACK_CURVE_LARGE, TRACK_HELIX_DOWN_BANKED_HALF, TRACK_HELIX_UP_BANKED_HALF, TRACK_BRAKES, TRACK_ON_RIDE_PHOTO, TRACK_BLOCK_BRAKES, TRACK_SLOPE_ROLL_BANKING, TRACK_SLOPE_STEEP_LONG, TRACK_LIFT_HILL_CABLE, TRACK_BOOSTER, TRACK_POWERED_LIFT, TRACK_SLOPE_CURVE_BANKED, TRACK_SLOPE_CURVE_LARGE, TRACK_DIAG_BRAKES, TRACK_DIAG_BLOCK_BRAKES, TRACK_SLOPE_VERTICAL, TRACK_CURVE_VERTICAL},
|
||||
.ExtraTrackPieces = {TRACK_BARREL_ROLL, TRACK_QUARTER_LOOP, TRACK_HALF_LOOP, TRACK_HALF_LOOP_MEDIUM, TRACK_HALF_LOOP_LARGE, TRACK_VERTICAL_LOOP, TRACK_CORKSCREW, TRACK_CORKSCREW_LARGE, TRACK_ZERO_G_ROLL, TRACK_ZERO_G_ROLL_LARGE},
|
||||
.CoveredTrackPieces = {},
|
||||
.StartTrackPiece = TrackElemType::EndStation,
|
||||
.TrackPaintFunctions = TrackDrawerDescriptor(GetTrackPaintFunctionGigaRC),
|
||||
.Flags = RIDE_TYPE_FLAGS_TRACK_HAS_3_COLOURS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION |
|
||||
RIDE_TYPE_FLAGS_COMMON_COASTER | RIDE_TYPE_FLAGS_COMMON_COASTER_NON_ALT |
|
||||
RIDE_TYPE_FLAG_PEEP_CHECK_GFORCES | RIDE_TYPE_FLAG_ALLOW_MULTIPLE_CIRCUITS | RIDE_TYPE_FLAG_ALLOW_CABLE_LIFT_HILL |
|
||||
RIDE_TYPE_FLAG_ALLOW_REVERSED_TRAINS),
|
||||
SET_FIELD(RideModes, EnumsToFlags(RideMode::ContinuousCircuit, RideMode::ContinuousCircuitBlockSectioned)),
|
||||
SET_FIELD(DefaultMode, RideMode::ContinuousCircuit),
|
||||
SET_FIELD(OperatingSettings, { 10, 27, 30, 17, 68, 1 }),
|
||||
SET_FIELD(Naming, { STR_RIDE_NAME_GIGA_COASTER, STR_RIDE_DESCRIPTION_GIGA_COASTER }),
|
||||
SET_FIELD(NameConvention, { RideComponentType::Train, RideComponentType::Track, RideComponentType::Station }),
|
||||
SET_FIELD(EnumName, nameof(RIDE_TYPE_GIGA_COASTER)),
|
||||
SET_FIELD(AvailableBreakdowns, (1 << BREAKDOWN_SAFETY_CUT_OUT) | (1 << BREAKDOWN_RESTRAINTS_STUCK_CLOSED) | (1 << BREAKDOWN_RESTRAINTS_STUCK_OPEN) | (1 << BREAKDOWN_VEHICLE_MALFUNCTION) | (1 << BREAKDOWN_BRAKES_FAILURE)),
|
||||
SET_FIELD(Heights, { 86, 24, 9, 11, }),
|
||||
SET_FIELD(MaxMass, 31),
|
||||
SET_FIELD(LiftData, { OpenRCT2::Audio::SoundId::LiftClassic, 5, 8 }),
|
||||
SET_FIELD(RatingsMultipliers, { 51, 32, 10 }),
|
||||
SET_FIELD(UpkeepCosts, { 10, 20, 80, 12, 3, 40 }),
|
||||
SET_FIELD(BuildCosts, { 60.00_GBP, 2.50_GBP, 55, }),
|
||||
SET_FIELD(DefaultPrices, { 20, 20 }),
|
||||
SET_FIELD(DefaultMusic, MUSIC_OBJECT_ROCK_3),
|
||||
SET_FIELD(PhotoItem, ShopItem::Photo),
|
||||
SET_FIELD(BonusValue, 120),
|
||||
SET_FIELD(ColourPresets, TRACK_COLOUR_PRESETS(
|
||||
RIDE_TYPE_FLAG_ALLOW_REVERSED_TRAINS,
|
||||
.RideModes = EnumsToFlags(RideMode::ContinuousCircuit, RideMode::ContinuousCircuitBlockSectioned),
|
||||
.DefaultMode = RideMode::ContinuousCircuit,
|
||||
.OperatingSettings = { 10, 27, 30, 17, 68, 1 },
|
||||
.Naming = { STR_RIDE_NAME_GIGA_COASTER, STR_RIDE_DESCRIPTION_GIGA_COASTER },
|
||||
.NameConvention = { RideComponentType::Train, RideComponentType::Track, RideComponentType::Station },
|
||||
.EnumName = nameof(RIDE_TYPE_GIGA_COASTER),
|
||||
.AvailableBreakdowns = (1 << BREAKDOWN_SAFETY_CUT_OUT) | (1 << BREAKDOWN_RESTRAINTS_STUCK_CLOSED) | (1 << BREAKDOWN_RESTRAINTS_STUCK_OPEN) | (1 << BREAKDOWN_VEHICLE_MALFUNCTION) | (1 << BREAKDOWN_BRAKES_FAILURE),
|
||||
.Heights = { 86, 24, 9, 11, },
|
||||
.MaxMass = 31,
|
||||
.LiftData = { OpenRCT2::Audio::SoundId::LiftClassic, 5, 8 },
|
||||
.RatingsMultipliers = { 51, 32, 10 },
|
||||
.UpkeepCosts = { 10, 20, 80, 12, 3, 40 },
|
||||
.BuildCosts = { 60.00_GBP, 2.50_GBP, 55, },
|
||||
.DefaultPrices = { 20, 20 },
|
||||
.DefaultMusic = MUSIC_OBJECT_ROCK_3,
|
||||
.PhotoItem = ShopItem::Photo,
|
||||
.BonusValue = 120,
|
||||
.ColourPresets = TRACK_COLOUR_PRESETS(
|
||||
{ COLOUR_BRIGHT_RED, COLOUR_BRIGHT_RED, COLOUR_WHITE },
|
||||
{ COLOUR_WHITE, COLOUR_WHITE, COLOUR_YELLOW },
|
||||
{ COLOUR_YELLOW, COLOUR_YELLOW, COLOUR_BORDEAUX_RED },
|
||||
{ COLOUR_LIGHT_BLUE, COLOUR_LIGHT_BLUE, COLOUR_BLACK },
|
||||
{ COLOUR_BRIGHT_YELLOW, COLOUR_YELLOW, COLOUR_DARK_GREEN }, // Mega-Lite / 蓝月飞车
|
||||
)),
|
||||
SET_FIELD(ColourPreview, { SPR_RIDE_DESIGN_PREVIEW_GIGA_COASTER_TRACK, SPR_RIDE_DESIGN_PREVIEW_GIGA_COASTER_SUPPORTS }),
|
||||
SET_FIELD(ColourKey, RideColourKey::Ride),
|
||||
SET_FIELD(Name, "giga_rc"),
|
||||
SET_FIELD(RatingsData,
|
||||
),
|
||||
.ColourPreview = { SPR_RIDE_DESIGN_PREVIEW_GIGA_COASTER_TRACK, SPR_RIDE_DESIGN_PREVIEW_GIGA_COASTER_SUPPORTS },
|
||||
.ColourKey = RideColourKey::Ride,
|
||||
.Name = "giga_rc",
|
||||
.RatingsData =
|
||||
{
|
||||
RatingsCalculationType::Normal,
|
||||
{ RIDE_RATING(3, 85), RIDE_RATING(0, 40), RIDE_RATING(0, 35) },
|
||||
@@ -82,6 +82,6 @@ constexpr RideTypeDescriptor GigaCoasterRTD =
|
||||
{ RatingsModifierType::RequirementNumDrops, 2, 2, 2, 2 },
|
||||
{ RatingsModifierType::PenaltyLateralGs, 0, 36864, 30384, 49648 },
|
||||
},
|
||||
}),
|
||||
},
|
||||
};
|
||||
// clang-format on
|
||||
|
||||
@@ -17,42 +17,42 @@
|
||||
// clang-format off
|
||||
constexpr RideTypeDescriptor HeartlineTwisterCoasterRTD =
|
||||
{
|
||||
SET_FIELD(AlternateType, RIDE_TYPE_NULL),
|
||||
SET_FIELD(Category, RIDE_CATEGORY_ROLLERCOASTER),
|
||||
SET_FIELD(EnabledTrackPieces, {TRACK_STRAIGHT, TRACK_STATION_END, TRACK_LIFT_HILL, TRACK_LIFT_HILL_STEEP, TRACK_SLOPE, TRACK_SLOPE_STEEP_UP, TRACK_SLOPE_STEEP_DOWN, TRACK_HEARTLINE_ROLL, TRACK_HEARTLINE_TRANSFER}),
|
||||
SET_FIELD(ExtraTrackPieces, {}),
|
||||
SET_FIELD(CoveredTrackPieces, {}),
|
||||
SET_FIELD(StartTrackPiece, TrackElemType::EndStation),
|
||||
SET_FIELD(TrackPaintFunctions, TrackDrawerDescriptor(GetTrackPaintFunctionHeartlineTwisterRC)),
|
||||
SET_FIELD(Flags, RIDE_TYPE_FLAGS_TRACK_HAS_3_COLOURS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION |
|
||||
.AlternateType = RIDE_TYPE_NULL,
|
||||
.Category = RIDE_CATEGORY_ROLLERCOASTER,
|
||||
.EnabledTrackPieces = {TRACK_STRAIGHT, TRACK_STATION_END, TRACK_LIFT_HILL, TRACK_LIFT_HILL_STEEP, TRACK_SLOPE, TRACK_SLOPE_STEEP_UP, TRACK_SLOPE_STEEP_DOWN, TRACK_HEARTLINE_ROLL, TRACK_HEARTLINE_TRANSFER},
|
||||
.ExtraTrackPieces = {},
|
||||
.CoveredTrackPieces = {},
|
||||
.StartTrackPiece = TrackElemType::EndStation,
|
||||
.TrackPaintFunctions = TrackDrawerDescriptor(GetTrackPaintFunctionHeartlineTwisterRC),
|
||||
.Flags = RIDE_TYPE_FLAGS_TRACK_HAS_3_COLOURS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION |
|
||||
RIDE_TYPE_FLAGS_COMMON_COASTER | RIDE_TYPE_FLAGS_COMMON_COASTER_NON_ALT | RIDE_TYPE_FLAG_PEEP_CHECK_GFORCES |
|
||||
RIDE_TYPE_FLAG_ALLOW_REVERSED_TRAINS),
|
||||
SET_FIELD(RideModes, EnumsToFlags(RideMode::ContinuousCircuit)),
|
||||
SET_FIELD(DefaultMode, RideMode::ContinuousCircuit),
|
||||
SET_FIELD(OperatingSettings, { 10, 27, 30, 25, 25, 0 }),
|
||||
SET_FIELD(Naming, { STR_RIDE_NAME_HEARTLINE_TWISTER_COASTER, STR_RIDE_DESCRIPTION_HEARTLINE_TWISTER_COASTER }),
|
||||
SET_FIELD(NameConvention, { RideComponentType::Car, RideComponentType::Track, RideComponentType::Station }),
|
||||
SET_FIELD(EnumName, nameof(RIDE_TYPE_HEARTLINE_TWISTER_COASTER)),
|
||||
SET_FIELD(AvailableBreakdowns, (1 << BREAKDOWN_SAFETY_CUT_OUT) | (1 << BREAKDOWN_RESTRAINTS_STUCK_CLOSED) | (1 << BREAKDOWN_RESTRAINTS_STUCK_OPEN) | (1 << BREAKDOWN_VEHICLE_MALFUNCTION)),
|
||||
SET_FIELD(Heights, { 22, 24, 15, 9, }),
|
||||
SET_FIELD(MaxMass, 18),
|
||||
SET_FIELD(LiftData, { OpenRCT2::Audio::SoundId::LiftClassic, 4, 6 }),
|
||||
SET_FIELD(RatingsMultipliers, { 50, 30, 10 }),
|
||||
SET_FIELD(UpkeepCosts, { 47, 20, 80, 11, 3, 10 }),
|
||||
SET_FIELD(BuildCosts, { 72.50_GBP, 3.50_GBP, 30, }),
|
||||
SET_FIELD(DefaultPrices, { 15, 20 }),
|
||||
SET_FIELD(DefaultMusic, MUSIC_OBJECT_TECHNO),
|
||||
SET_FIELD(PhotoItem, ShopItem::Photo),
|
||||
SET_FIELD(BonusValue, 70),
|
||||
SET_FIELD(ColourPresets, TRACK_COLOUR_PRESETS(
|
||||
RIDE_TYPE_FLAG_ALLOW_REVERSED_TRAINS,
|
||||
.RideModes = EnumsToFlags(RideMode::ContinuousCircuit),
|
||||
.DefaultMode = RideMode::ContinuousCircuit,
|
||||
.OperatingSettings = { 10, 27, 30, 25, 25, 0 },
|
||||
.Naming = { STR_RIDE_NAME_HEARTLINE_TWISTER_COASTER, STR_RIDE_DESCRIPTION_HEARTLINE_TWISTER_COASTER },
|
||||
.NameConvention = { RideComponentType::Car, RideComponentType::Track, RideComponentType::Station },
|
||||
.EnumName = nameof(RIDE_TYPE_HEARTLINE_TWISTER_COASTER),
|
||||
.AvailableBreakdowns = (1 << BREAKDOWN_SAFETY_CUT_OUT) | (1 << BREAKDOWN_RESTRAINTS_STUCK_CLOSED) | (1 << BREAKDOWN_RESTRAINTS_STUCK_OPEN) | (1 << BREAKDOWN_VEHICLE_MALFUNCTION),
|
||||
.Heights = { 22, 24, 15, 9, },
|
||||
.MaxMass = 18,
|
||||
.LiftData = { OpenRCT2::Audio::SoundId::LiftClassic, 4, 6 },
|
||||
.RatingsMultipliers = { 50, 30, 10 },
|
||||
.UpkeepCosts = { 47, 20, 80, 11, 3, 10 },
|
||||
.BuildCosts = { 72.50_GBP, 3.50_GBP, 30, },
|
||||
.DefaultPrices = { 15, 20 },
|
||||
.DefaultMusic = MUSIC_OBJECT_TECHNO,
|
||||
.PhotoItem = ShopItem::Photo,
|
||||
.BonusValue = 70,
|
||||
.ColourPresets = TRACK_COLOUR_PRESETS(
|
||||
{ COLOUR_WHITE, COLOUR_LIGHT_BLUE, COLOUR_WHITE },
|
||||
{ COLOUR_BORDEAUX_RED, COLOUR_YELLOW, COLOUR_BLACK },
|
||||
{ COLOUR_DARK_PURPLE, COLOUR_WHITE, COLOUR_DARK_GREEN },
|
||||
)),
|
||||
SET_FIELD(ColourPreview, { SPR_RIDE_DESIGN_PREVIEW_HEARTLINE_TWISTER_COASTER_TRACK, SPR_RIDE_DESIGN_PREVIEW_HEARTLINE_TWISTER_COASTER_SUPPORTS }),
|
||||
SET_FIELD(ColourKey, RideColourKey::Ride),
|
||||
SET_FIELD(Name, "heartline_twister_rc"),
|
||||
SET_FIELD(RatingsData,
|
||||
),
|
||||
.ColourPreview = { SPR_RIDE_DESIGN_PREVIEW_HEARTLINE_TWISTER_COASTER_TRACK, SPR_RIDE_DESIGN_PREVIEW_HEARTLINE_TWISTER_COASTER_SUPPORTS },
|
||||
.ColourKey = RideColourKey::Ride,
|
||||
.Name = "heartline_twister_rc",
|
||||
.RatingsData =
|
||||
{
|
||||
RatingsCalculationType::Normal,
|
||||
{ RIDE_RATING(3, 00), RIDE_RATING(1, 70), RIDE_RATING(1, 65) },
|
||||
@@ -76,6 +76,6 @@ constexpr RideTypeDescriptor HeartlineTwisterCoasterRTD =
|
||||
{ RatingsModifierType::RequirementNumDrops, 1, 4, 1, 1 },
|
||||
{ RatingsModifierType::PenaltyLateralGs, 0, 24576, 44683, 89367 },
|
||||
},
|
||||
}),
|
||||
},
|
||||
};
|
||||
// clang-format on
|
||||
|
||||
@@ -15,34 +15,34 @@
|
||||
// clang-format off
|
||||
constexpr RideTypeDescriptor HybridCoasterRTD =
|
||||
{
|
||||
SET_FIELD(AlternateType, RIDE_TYPE_NULL),
|
||||
SET_FIELD(Category, RIDE_CATEGORY_ROLLERCOASTER),
|
||||
SET_FIELD(EnabledTrackPieces, {TRACK_FLAT, TRACK_STRAIGHT, TRACK_STATION_END, TRACK_LIFT_HILL, TRACK_LIFT_HILL_STEEP, TRACK_FLAT_ROLL_BANKING, TRACK_SLOPE, TRACK_SLOPE_STEEP_UP, TRACK_SLOPE_STEEP_DOWN, TRACK_SLOPE_CURVE, TRACK_SLOPE_CURVE_STEEP, TRACK_S_BEND, TRACK_CURVE_SMALL, TRACK_CURVE, TRACK_CURVE_LARGE, TRACK_HELIX_DOWN_BANKED_HALF, TRACK_HELIX_UP_BANKED_HALF, TRACK_BRAKES, TRACK_ON_RIDE_PHOTO, TRACK_SLOPE_VERTICAL, TRACK_BARREL_ROLL, TRACK_POWERED_LIFT, TRACK_SLOPE_CURVE_BANKED, TRACK_BLOCK_BRAKES, TRACK_SLOPE_ROLL_BANKING, TRACK_SLOPE_STEEP_LONG, TRACK_CURVE_VERTICAL, TRACK_QUARTER_LOOP, TRACK_ZERO_G_ROLL, TRACK_ZERO_G_ROLL_LARGE, TRACK_SLOPE_CURVE_LARGE, TRACK_DIAG_BRAKES, TRACK_DIAG_BLOCK_BRAKES}),
|
||||
SET_FIELD(ExtraTrackPieces, {TRACK_BOOSTER}),
|
||||
SET_FIELD(CoveredTrackPieces, {}),
|
||||
SET_FIELD(StartTrackPiece, TrackElemType::EndStation),
|
||||
SET_FIELD(TrackPaintFunctions, TrackDrawerDescriptor(HybridRC::GetTrackPaintFunction)),
|
||||
SET_FIELD(Flags, RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_MAIN | RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_SUPPORTS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION |
|
||||
.AlternateType = RIDE_TYPE_NULL,
|
||||
.Category = RIDE_CATEGORY_ROLLERCOASTER,
|
||||
.EnabledTrackPieces = {TRACK_FLAT, TRACK_STRAIGHT, TRACK_STATION_END, TRACK_LIFT_HILL, TRACK_LIFT_HILL_STEEP, TRACK_FLAT_ROLL_BANKING, TRACK_SLOPE, TRACK_SLOPE_STEEP_UP, TRACK_SLOPE_STEEP_DOWN, TRACK_SLOPE_CURVE, TRACK_SLOPE_CURVE_STEEP, TRACK_S_BEND, TRACK_CURVE_SMALL, TRACK_CURVE, TRACK_CURVE_LARGE, TRACK_HELIX_DOWN_BANKED_HALF, TRACK_HELIX_UP_BANKED_HALF, TRACK_BRAKES, TRACK_ON_RIDE_PHOTO, TRACK_SLOPE_VERTICAL, TRACK_BARREL_ROLL, TRACK_POWERED_LIFT, TRACK_SLOPE_CURVE_BANKED, TRACK_BLOCK_BRAKES, TRACK_SLOPE_ROLL_BANKING, TRACK_SLOPE_STEEP_LONG, TRACK_CURVE_VERTICAL, TRACK_QUARTER_LOOP, TRACK_ZERO_G_ROLL, TRACK_ZERO_G_ROLL_LARGE, TRACK_SLOPE_CURVE_LARGE, TRACK_DIAG_BRAKES, TRACK_DIAG_BLOCK_BRAKES},
|
||||
.ExtraTrackPieces = {TRACK_BOOSTER},
|
||||
.CoveredTrackPieces = {},
|
||||
.StartTrackPiece = TrackElemType::EndStation,
|
||||
.TrackPaintFunctions = TrackDrawerDescriptor(HybridRC::GetTrackPaintFunction),
|
||||
.Flags = RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_MAIN | RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_SUPPORTS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION |
|
||||
RIDE_TYPE_FLAGS_COMMON_COASTER | RIDE_TYPE_FLAGS_COMMON_COASTER_NON_ALT |
|
||||
RIDE_TYPE_FLAG_PEEP_CHECK_GFORCES | RIDE_TYPE_FLAG_ALLOW_MULTIPLE_CIRCUITS | RIDE_TYPE_FLAG_ALLOW_REVERSED_TRAINS),
|
||||
SET_FIELD(RideModes, EnumsToFlags(RideMode::ContinuousCircuit, RideMode::ContinuousCircuitBlockSectioned)),
|
||||
SET_FIELD(DefaultMode, RideMode::ContinuousCircuit),
|
||||
SET_FIELD(OperatingSettings, { 0, 0, 30, 15, 52, 0 }),
|
||||
SET_FIELD(Naming, { STR_RIDE_NAME_HYBRID_COASTER, STR_RIDE_DESCRIPTION_HYBRID_COASTER }),
|
||||
SET_FIELD(NameConvention, { RideComponentType::Train, RideComponentType::Track, RideComponentType::Station }),
|
||||
SET_FIELD(EnumName, nameof(RIDE_TYPE_HYBRID_COASTER)),
|
||||
SET_FIELD(AvailableBreakdowns, (1 << BREAKDOWN_SAFETY_CUT_OUT) | (1 << BREAKDOWN_RESTRAINTS_STUCK_CLOSED) | (1 << BREAKDOWN_RESTRAINTS_STUCK_OPEN) | (1 << BREAKDOWN_VEHICLE_MALFUNCTION) | (1 << BREAKDOWN_BRAKES_FAILURE)),
|
||||
SET_FIELD(Heights, { 43, 24, 13, 13}),
|
||||
SET_FIELD(MaxMass, 18),
|
||||
SET_FIELD(LiftData, { OpenRCT2::Audio::SoundId::LiftRMC, 5, 8 }),
|
||||
SET_FIELD(RatingsMultipliers, { 52, 36, 10 }),
|
||||
SET_FIELD(UpkeepCosts, { 40, 20, 80, 10, 3, 10 }),
|
||||
SET_FIELD(BuildCosts, { 65.00_GBP, 3.50_GBP, 55}),
|
||||
SET_FIELD(DefaultPrices, { 20, 20 }),
|
||||
SET_FIELD(DefaultMusic, MUSIC_OBJECT_ROCK_2),
|
||||
SET_FIELD(PhotoItem, ShopItem::Photo),
|
||||
SET_FIELD(BonusValue, 120),
|
||||
SET_FIELD(ColourPresets, TRACK_COLOUR_PRESETS(
|
||||
RIDE_TYPE_FLAG_PEEP_CHECK_GFORCES | RIDE_TYPE_FLAG_ALLOW_MULTIPLE_CIRCUITS | RIDE_TYPE_FLAG_ALLOW_REVERSED_TRAINS,
|
||||
.RideModes = EnumsToFlags(RideMode::ContinuousCircuit, RideMode::ContinuousCircuitBlockSectioned),
|
||||
.DefaultMode = RideMode::ContinuousCircuit,
|
||||
.OperatingSettings = { 0, 0, 30, 15, 52, 0 },
|
||||
.Naming = { STR_RIDE_NAME_HYBRID_COASTER, STR_RIDE_DESCRIPTION_HYBRID_COASTER },
|
||||
.NameConvention = { RideComponentType::Train, RideComponentType::Track, RideComponentType::Station },
|
||||
.EnumName = nameof(RIDE_TYPE_HYBRID_COASTER),
|
||||
.AvailableBreakdowns = (1 << BREAKDOWN_SAFETY_CUT_OUT) | (1 << BREAKDOWN_RESTRAINTS_STUCK_CLOSED) | (1 << BREAKDOWN_RESTRAINTS_STUCK_OPEN) | (1 << BREAKDOWN_VEHICLE_MALFUNCTION) | (1 << BREAKDOWN_BRAKES_FAILURE),
|
||||
.Heights = { 43, 24, 13, 13},
|
||||
.MaxMass = 18,
|
||||
.LiftData = { OpenRCT2::Audio::SoundId::LiftRMC, 5, 8 },
|
||||
.RatingsMultipliers = { 52, 36, 10 },
|
||||
.UpkeepCosts = { 40, 20, 80, 10, 3, 10 },
|
||||
.BuildCosts = { 65.00_GBP, 3.50_GBP, 55},
|
||||
.DefaultPrices = { 20, 20 },
|
||||
.DefaultMusic = MUSIC_OBJECT_ROCK_2,
|
||||
.PhotoItem = ShopItem::Photo,
|
||||
.BonusValue = 120,
|
||||
.ColourPresets = TRACK_COLOUR_PRESETS(
|
||||
{ COLOUR_LIGHT_ORANGE, COLOUR_LIGHT_ORANGE, COLOUR_DARK_BROWN }, // Medusa
|
||||
{ COLOUR_BRIGHT_RED, COLOUR_BRIGHT_RED, COLOUR_SATURATED_BROWN},
|
||||
{ COLOUR_BRIGHT_RED, COLOUR_BRIGHT_RED, COLOUR_GREY }, // Storm Chaser
|
||||
@@ -51,11 +51,11 @@ constexpr RideTypeDescriptor HybridCoasterRTD =
|
||||
{ COLOUR_SATURATED_BROWN, COLOUR_SATURATED_BROWN, COLOUR_DARK_BROWN }, // Untamed
|
||||
{ COLOUR_SATURATED_PURPLE_DARK, COLOUR_SATURATED_PURPLE_DARK, COLOUR_SATURATED_BROWN }, // Iron Gwazi
|
||||
{ COLOUR_BORDEAUX_RED_DARK, COLOUR_BORDEAUX_RED_DARK, COLOUR_BLACK }, // Wildcat's Revenge
|
||||
)),
|
||||
SET_FIELD(ColourPreview, { SPR_RIDE_DESIGN_PREVIEW_HYBRID_COASTER_TRACK, SPR_RIDE_DESIGN_PREVIEW_HYBRID_COASTER_SUPPORTS }),
|
||||
SET_FIELD(ColourKey, RideColourKey::Ride),
|
||||
SET_FIELD(Name, "hybrid_rc"),
|
||||
SET_FIELD(RatingsData,
|
||||
),
|
||||
.ColourPreview = { SPR_RIDE_DESIGN_PREVIEW_HYBRID_COASTER_TRACK, SPR_RIDE_DESIGN_PREVIEW_HYBRID_COASTER_SUPPORTS },
|
||||
.ColourKey = RideColourKey::Ride,
|
||||
.Name = "hybrid_rc",
|
||||
.RatingsData =
|
||||
{
|
||||
RatingsCalculationType::Normal,
|
||||
{ RIDE_RATING(3, 80), RIDE_RATING(1, 00), RIDE_RATING(0, 45) },
|
||||
@@ -82,6 +82,6 @@ constexpr RideTypeDescriptor HybridCoasterRTD =
|
||||
{ RatingsModifierType::RequirementNumDrops, 2, 2, 2, 2 },
|
||||
{ RatingsModifierType::PenaltyLateralGs, 0, 24576, 35746, 49648 },
|
||||
},
|
||||
}),
|
||||
},
|
||||
};
|
||||
// clang-format on
|
||||
|
||||
@@ -18,46 +18,46 @@
|
||||
// clang-format off
|
||||
constexpr RideTypeDescriptor HyperTwisterRTD =
|
||||
{
|
||||
SET_FIELD(AlternateType, RIDE_TYPE_NULL),
|
||||
SET_FIELD(Category, RIDE_CATEGORY_ROLLERCOASTER),
|
||||
SET_FIELD(EnabledTrackPieces, { TRACK_FLAT, TRACK_STRAIGHT, TRACK_STATION_END, TRACK_LIFT_HILL, TRACK_FLAT_ROLL_BANKING, TRACK_SLOPE, TRACK_SLOPE_STEEP_UP, TRACK_SLOPE_STEEP_DOWN, TRACK_SLOPE_CURVE, TRACK_SLOPE_CURVE_STEEP, TRACK_S_BEND, TRACK_CURVE_SMALL, TRACK_CURVE, TRACK_CURVE_LARGE, TRACK_HELIX_DOWN_BANKED_HALF, TRACK_HELIX_UP_BANKED_HALF, TRACK_BRAKES, TRACK_ON_RIDE_PHOTO, TRACK_SLOPE_CURVE_BANKED, TRACK_BLOCK_BRAKES, TRACK_SLOPE_ROLL_BANKING, TRACK_SLOPE_STEEP_LONG, TRACK_SLOPE_VERTICAL, TRACK_CURVE_VERTICAL, TRACK_DIAG_BRAKES, TRACK_DIAG_BLOCK_BRAKES}),
|
||||
SET_FIELD(ExtraTrackPieces, { TRACK_LIFT_HILL_STEEP, TRACK_BRAKE_FOR_DROP, TRACK_BOOSTER, TRACK_POWERED_LIFT }),
|
||||
SET_FIELD(CoveredTrackPieces, {}),
|
||||
SET_FIELD(StartTrackPiece, TrackElemType::EndStation),
|
||||
SET_FIELD(TrackPaintFunctions, TrackDrawerDescriptor(GetTrackPaintFunctionBolligerMabillard<MetalSupportType::Tubes>)),
|
||||
SET_FIELD(Flags, RIDE_TYPE_FLAGS_TRACK_HAS_3_COLOURS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION |
|
||||
.AlternateType = RIDE_TYPE_NULL,
|
||||
.Category = RIDE_CATEGORY_ROLLERCOASTER,
|
||||
.EnabledTrackPieces = { TRACK_FLAT, TRACK_STRAIGHT, TRACK_STATION_END, TRACK_LIFT_HILL, TRACK_FLAT_ROLL_BANKING, TRACK_SLOPE, TRACK_SLOPE_STEEP_UP, TRACK_SLOPE_STEEP_DOWN, TRACK_SLOPE_CURVE, TRACK_SLOPE_CURVE_STEEP, TRACK_S_BEND, TRACK_CURVE_SMALL, TRACK_CURVE, TRACK_CURVE_LARGE, TRACK_HELIX_DOWN_BANKED_HALF, TRACK_HELIX_UP_BANKED_HALF, TRACK_BRAKES, TRACK_ON_RIDE_PHOTO, TRACK_SLOPE_CURVE_BANKED, TRACK_BLOCK_BRAKES, TRACK_SLOPE_ROLL_BANKING, TRACK_SLOPE_STEEP_LONG, TRACK_SLOPE_VERTICAL, TRACK_CURVE_VERTICAL, TRACK_DIAG_BRAKES, TRACK_DIAG_BLOCK_BRAKES},
|
||||
.ExtraTrackPieces = { TRACK_LIFT_HILL_STEEP, TRACK_BRAKE_FOR_DROP, TRACK_BOOSTER, TRACK_POWERED_LIFT },
|
||||
.CoveredTrackPieces = {},
|
||||
.StartTrackPiece = TrackElemType::EndStation,
|
||||
.TrackPaintFunctions = TrackDrawerDescriptor(GetTrackPaintFunctionBolligerMabillard<MetalSupportType::Tubes>),
|
||||
.Flags = RIDE_TYPE_FLAGS_TRACK_HAS_3_COLOURS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION |
|
||||
RIDE_TYPE_FLAGS_COMMON_COASTER | RIDE_TYPE_FLAGS_COMMON_COASTER_NON_ALT |
|
||||
RIDE_TYPE_FLAG_PEEP_CHECK_GFORCES | RIDE_TYPE_FLAG_ALLOW_MULTIPLE_CIRCUITS |
|
||||
RIDE_TYPE_FLAG_ALLOW_REVERSED_TRAINS),
|
||||
SET_FIELD(RideModes, EnumsToFlags(RideMode::ContinuousCircuit, RideMode::ContinuousCircuitBlockSectioned)),
|
||||
SET_FIELD(DefaultMode, RideMode::ContinuousCircuit),
|
||||
SET_FIELD(OperatingSettings, { 10, 27, 30, 17, 68, 0 }),
|
||||
SET_FIELD(Naming, { STR_RIDE_NAME_HYPER_TWISTER, STR_RIDE_DESCRIPTION_HYPER_TWISTER }),
|
||||
SET_FIELD(NameConvention, { RideComponentType::Train, RideComponentType::Track, RideComponentType::Station}),
|
||||
SET_FIELD(EnumName, nameof(RIDE_TYPE_HYPER_TWISTER)),
|
||||
SET_FIELD(AvailableBreakdowns, (1 << BREAKDOWN_SAFETY_CUT_OUT) | (1 << BREAKDOWN_RESTRAINTS_STUCK_CLOSED) | (1 << BREAKDOWN_RESTRAINTS_STUCK_OPEN) | (1 << BREAKDOWN_VEHICLE_MALFUNCTION) | (1 << BREAKDOWN_BRAKES_FAILURE)),
|
||||
SET_FIELD(Heights, { 61, 24, 8, 9, }),
|
||||
SET_FIELD(MaxMass, 31),
|
||||
SET_FIELD(LiftData, { OpenRCT2::Audio::SoundId::LiftBM, 5, 8 }),
|
||||
SET_FIELD(RatingsMultipliers, { 52, 36, 10 }),
|
||||
SET_FIELD(UpkeepCosts, { 43, 20, 80, 11, 3, 10 }),
|
||||
SET_FIELD(BuildCosts, { 60.00_GBP, 2.50_GBP, 55, }),
|
||||
SET_FIELD(DefaultPrices, { 20, 20 }),
|
||||
SET_FIELD(DefaultMusic, MUSIC_OBJECT_ROCK_1),
|
||||
SET_FIELD(PhotoItem, ShopItem::Photo),
|
||||
SET_FIELD(BonusValue, 120),
|
||||
SET_FIELD(ColourPresets, TRACK_COLOUR_PRESETS(
|
||||
RIDE_TYPE_FLAG_ALLOW_REVERSED_TRAINS,
|
||||
.RideModes = EnumsToFlags(RideMode::ContinuousCircuit, RideMode::ContinuousCircuitBlockSectioned),
|
||||
.DefaultMode = RideMode::ContinuousCircuit,
|
||||
.OperatingSettings = { 10, 27, 30, 17, 68, 0 },
|
||||
.Naming = { STR_RIDE_NAME_HYPER_TWISTER, STR_RIDE_DESCRIPTION_HYPER_TWISTER },
|
||||
.NameConvention = { RideComponentType::Train, RideComponentType::Track, RideComponentType::Station},
|
||||
.EnumName = nameof(RIDE_TYPE_HYPER_TWISTER),
|
||||
.AvailableBreakdowns = (1 << BREAKDOWN_SAFETY_CUT_OUT) | (1 << BREAKDOWN_RESTRAINTS_STUCK_CLOSED) | (1 << BREAKDOWN_RESTRAINTS_STUCK_OPEN) | (1 << BREAKDOWN_VEHICLE_MALFUNCTION) | (1 << BREAKDOWN_BRAKES_FAILURE),
|
||||
.Heights = { 61, 24, 8, 9, },
|
||||
.MaxMass = 31,
|
||||
.LiftData = { OpenRCT2::Audio::SoundId::LiftBM, 5, 8 },
|
||||
.RatingsMultipliers = { 52, 36, 10 },
|
||||
.UpkeepCosts = { 43, 20, 80, 11, 3, 10 },
|
||||
.BuildCosts = { 60.00_GBP, 2.50_GBP, 55, },
|
||||
.DefaultPrices = { 20, 20 },
|
||||
.DefaultMusic = MUSIC_OBJECT_ROCK_1,
|
||||
.PhotoItem = ShopItem::Photo,
|
||||
.BonusValue = 120,
|
||||
.ColourPresets = TRACK_COLOUR_PRESETS(
|
||||
{ COLOUR_YELLOW, COLOUR_YELLOW, COLOUR_BORDEAUX_RED },
|
||||
{ COLOUR_AQUAMARINE, COLOUR_AQUAMARINE, COLOUR_DARK_PURPLE },
|
||||
{ COLOUR_WHITE, COLOUR_WHITE, COLOUR_LIGHT_BLUE },
|
||||
{ COLOUR_DARK_GREEN, COLOUR_MOSS_GREEN, COLOUR_DARK_BROWN },
|
||||
{ COLOUR_BORDEAUX_RED, COLOUR_LIGHT_ORANGE, COLOUR_WHITE },
|
||||
{ COLOUR_DARK_PURPLE, COLOUR_SATURATED_PURPLE_DARK, COLOUR_AQUA_DARK }, // Mako
|
||||
)),
|
||||
SET_FIELD(ColourPreview, { SPR_RIDE_DESIGN_PREVIEW_TWISTER_ROLLER_COASTER_TRACK, SPR_RIDE_DESIGN_PREVIEW_TWISTER_ROLLER_COASTER_SUPPORTS }),
|
||||
SET_FIELD(ColourKey, RideColourKey::Ride),
|
||||
SET_FIELD(Name, "hyper_twister"),
|
||||
SET_FIELD(RatingsData,
|
||||
),
|
||||
.ColourPreview = { SPR_RIDE_DESIGN_PREVIEW_TWISTER_ROLLER_COASTER_TRACK, SPR_RIDE_DESIGN_PREVIEW_TWISTER_ROLLER_COASTER_SUPPORTS },
|
||||
.ColourKey = RideColourKey::Ride,
|
||||
.Name = "hyper_twister",
|
||||
.RatingsData =
|
||||
{
|
||||
RatingsCalculationType::Normal,
|
||||
{ RIDE_RATING(3, 50), RIDE_RATING(0, 40), RIDE_RATING(0, 30) },
|
||||
@@ -84,6 +84,6 @@ constexpr RideTypeDescriptor HyperTwisterRTD =
|
||||
{ RatingsModifierType::RequirementNumDrops, 2, 2, 2, 2 },
|
||||
{ RatingsModifierType::PenaltyLateralGs, 0, 24576, 32768, 49648 },
|
||||
},
|
||||
}),
|
||||
},
|
||||
};
|
||||
// clang-format on
|
||||
|
||||
@@ -16,46 +16,46 @@
|
||||
// clang-format off
|
||||
constexpr RideTypeDescriptor HypercoasterRTD =
|
||||
{
|
||||
SET_FIELD(AlternateType, RIDE_TYPE_NULL),
|
||||
SET_FIELD(Category, RIDE_CATEGORY_ROLLERCOASTER),
|
||||
SET_FIELD(EnabledTrackPieces, {TRACK_STRAIGHT, TRACK_STATION_END, TRACK_LIFT_HILL, TRACK_FLAT_ROLL_BANKING, TRACK_SLOPE, TRACK_SLOPE_STEEP_UP, TRACK_SLOPE_STEEP_DOWN, TRACK_SLOPE_CURVE, TRACK_SLOPE_CURVE_STEEP, TRACK_S_BEND, TRACK_CURVE_SMALL, TRACK_CURVE, TRACK_CURVE_LARGE, TRACK_HELIX_DOWN_BANKED_HALF, TRACK_HELIX_UP_BANKED_HALF, TRACK_BRAKES, TRACK_ON_RIDE_PHOTO, TRACK_BLOCK_BRAKES, TRACK_SLOPE_STEEP_LONG, TRACK_DIAG_BRAKES, TRACK_DIAG_BLOCK_BRAKES}),
|
||||
SET_FIELD(ExtraTrackPieces, {TRACK_VERTICAL_LOOP, TRACK_HALF_LOOP, TRACK_CORKSCREW, TRACK_BOOSTER}),
|
||||
SET_FIELD(CoveredTrackPieces, {}),
|
||||
SET_FIELD(StartTrackPiece, TrackElemType::EndStation),
|
||||
SET_FIELD(TrackPaintFunctions, TrackDrawerDescriptor(GetTrackPaintFunctionCorkscrewRC)),
|
||||
SET_FIELD(Flags, RIDE_TYPE_FLAGS_TRACK_HAS_3_COLOURS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION |
|
||||
.AlternateType = RIDE_TYPE_NULL,
|
||||
.Category = RIDE_CATEGORY_ROLLERCOASTER,
|
||||
.EnabledTrackPieces = {TRACK_STRAIGHT, TRACK_STATION_END, TRACK_LIFT_HILL, TRACK_FLAT_ROLL_BANKING, TRACK_SLOPE, TRACK_SLOPE_STEEP_UP, TRACK_SLOPE_STEEP_DOWN, TRACK_SLOPE_CURVE, TRACK_SLOPE_CURVE_STEEP, TRACK_S_BEND, TRACK_CURVE_SMALL, TRACK_CURVE, TRACK_CURVE_LARGE, TRACK_HELIX_DOWN_BANKED_HALF, TRACK_HELIX_UP_BANKED_HALF, TRACK_BRAKES, TRACK_ON_RIDE_PHOTO, TRACK_BLOCK_BRAKES, TRACK_SLOPE_STEEP_LONG, TRACK_DIAG_BRAKES, TRACK_DIAG_BLOCK_BRAKES},
|
||||
.ExtraTrackPieces = {TRACK_VERTICAL_LOOP, TRACK_HALF_LOOP, TRACK_CORKSCREW, TRACK_BOOSTER},
|
||||
.CoveredTrackPieces = {},
|
||||
.StartTrackPiece = TrackElemType::EndStation,
|
||||
.TrackPaintFunctions = TrackDrawerDescriptor(GetTrackPaintFunctionCorkscrewRC),
|
||||
.Flags = RIDE_TYPE_FLAGS_TRACK_HAS_3_COLOURS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION |
|
||||
RIDE_TYPE_FLAGS_COMMON_COASTER | RIDE_TYPE_FLAGS_COMMON_COASTER_NON_ALT |
|
||||
RIDE_TYPE_FLAG_PEEP_CHECK_GFORCES | RIDE_TYPE_FLAG_ALLOW_MULTIPLE_CIRCUITS |
|
||||
RIDE_TYPE_FLAG_ALLOW_REVERSED_TRAINS),
|
||||
SET_FIELD(RideModes, EnumsToFlags(RideMode::ContinuousCircuit, RideMode::ContinuousCircuitBlockSectioned, RideMode::PoweredLaunchPasstrough, RideMode::PoweredLaunch, RideMode::ReverseInclineLaunchedShuttle)),
|
||||
SET_FIELD(DefaultMode, RideMode::ContinuousCircuit),
|
||||
SET_FIELD(OperatingSettings, { 10, 27, 30, 25, 25, 0 }),
|
||||
SET_FIELD(Naming, { STR_RIDE_NAME_HYPERCOASTER, STR_RIDE_DESCRIPTION_HYPERCOASTER }),
|
||||
SET_FIELD(NameConvention, { RideComponentType::Train, RideComponentType::Track, RideComponentType::Station }),
|
||||
SET_FIELD(EnumName, nameof(RIDE_TYPE_HYPERCOASTER)),
|
||||
SET_FIELD(AvailableBreakdowns, (1 << BREAKDOWN_SAFETY_CUT_OUT) | (1 << BREAKDOWN_RESTRAINTS_STUCK_CLOSED) | (1 << BREAKDOWN_RESTRAINTS_STUCK_OPEN) | (1 << BREAKDOWN_VEHICLE_MALFUNCTION) | (1 << BREAKDOWN_BRAKES_FAILURE)),
|
||||
SET_FIELD(Heights, { 55, 24, 8, 11, }),
|
||||
SET_FIELD(MaxMass, 18),
|
||||
SET_FIELD(LiftData, { OpenRCT2::Audio::SoundId::LiftArrow, 4, 6 }),
|
||||
SET_FIELD(RatingsMultipliers, { 50, 30, 10 }),
|
||||
SET_FIELD(UpkeepCosts, { 40, 20, 80, 11, 3, 10 }),
|
||||
SET_FIELD(BuildCosts, { 52.50_GBP, 2.50_GBP, 50, }),
|
||||
SET_FIELD(DefaultPrices, { 20, 20 }),
|
||||
SET_FIELD(DefaultMusic, MUSIC_OBJECT_ROCK_1),
|
||||
SET_FIELD(PhotoItem, ShopItem::Photo),
|
||||
SET_FIELD(BonusValue, 100),
|
||||
SET_FIELD(ColourPresets, TRACK_COLOUR_PRESETS(
|
||||
RIDE_TYPE_FLAG_ALLOW_REVERSED_TRAINS,
|
||||
.RideModes = EnumsToFlags(RideMode::ContinuousCircuit, RideMode::ContinuousCircuitBlockSectioned, RideMode::PoweredLaunchPasstrough, RideMode::PoweredLaunch, RideMode::ReverseInclineLaunchedShuttle),
|
||||
.DefaultMode = RideMode::ContinuousCircuit,
|
||||
.OperatingSettings = { 10, 27, 30, 25, 25, 0 },
|
||||
.Naming = { STR_RIDE_NAME_HYPERCOASTER, STR_RIDE_DESCRIPTION_HYPERCOASTER },
|
||||
.NameConvention = { RideComponentType::Train, RideComponentType::Track, RideComponentType::Station },
|
||||
.EnumName = nameof(RIDE_TYPE_HYPERCOASTER),
|
||||
.AvailableBreakdowns = (1 << BREAKDOWN_SAFETY_CUT_OUT) | (1 << BREAKDOWN_RESTRAINTS_STUCK_CLOSED) | (1 << BREAKDOWN_RESTRAINTS_STUCK_OPEN) | (1 << BREAKDOWN_VEHICLE_MALFUNCTION) | (1 << BREAKDOWN_BRAKES_FAILURE),
|
||||
.Heights = { 55, 24, 8, 11, },
|
||||
.MaxMass = 18,
|
||||
.LiftData = { OpenRCT2::Audio::SoundId::LiftArrow, 4, 6 },
|
||||
.RatingsMultipliers = { 50, 30, 10 },
|
||||
.UpkeepCosts = { 40, 20, 80, 11, 3, 10 },
|
||||
.BuildCosts = { 52.50_GBP, 2.50_GBP, 50, },
|
||||
.DefaultPrices = { 20, 20 },
|
||||
.DefaultMusic = MUSIC_OBJECT_ROCK_1,
|
||||
.PhotoItem = ShopItem::Photo,
|
||||
.BonusValue = 100,
|
||||
.ColourPresets = TRACK_COLOUR_PRESETS(
|
||||
{ COLOUR_BORDEAUX_RED, COLOUR_BORDEAUX_RED, COLOUR_BLACK },
|
||||
{ COLOUR_LIGHT_BLUE, COLOUR_LIGHT_BLUE, COLOUR_WHITE },
|
||||
{ COLOUR_BLACK, COLOUR_BORDEAUX_RED, COLOUR_BLACK },
|
||||
{ COLOUR_WHITE, COLOUR_WHITE, COLOUR_DARK_GREEN },
|
||||
{ COLOUR_DULL_GREEN_LIGHT, COLOUR_DULL_GREEN_LIGHT, COLOUR_BLACK }, // Phantom's Revenge (Old)
|
||||
{ COLOUR_SATURATED_PURPLE_DARK, COLOUR_SATURATED_PURPLE_DARK, COLOUR_BLACK }, // Phantom's Revenge (New)
|
||||
)),
|
||||
SET_FIELD(ColourPreview, { SPR_RIDE_DESIGN_PREVIEW_CORKSCREW_ROLLER_COASTER_TRACK, SPR_RIDE_DESIGN_PREVIEW_CORKSCREW_ROLLER_COASTER_SUPPORTS }),
|
||||
SET_FIELD(ColourKey, RideColourKey::Ride),
|
||||
SET_FIELD(Name, "hypercoaster"),
|
||||
SET_FIELD(RatingsData,
|
||||
),
|
||||
.ColourPreview = { SPR_RIDE_DESIGN_PREVIEW_CORKSCREW_ROLLER_COASTER_TRACK, SPR_RIDE_DESIGN_PREVIEW_CORKSCREW_ROLLER_COASTER_SUPPORTS },
|
||||
.ColourKey = RideColourKey::Ride,
|
||||
.Name = "hypercoaster",
|
||||
.RatingsData =
|
||||
{
|
||||
RatingsCalculationType::Normal,
|
||||
{ RIDE_RATING(3, 00), RIDE_RATING(0, 50), RIDE_RATING(0, 20) },
|
||||
@@ -82,6 +82,6 @@ constexpr RideTypeDescriptor HypercoasterRTD =
|
||||
{ RatingsModifierType::RequirementNumDrops, 2, 2, 2, 2 },
|
||||
{ RatingsModifierType::PenaltyLateralGs, 0, 24576, 35746, 49648 },
|
||||
},
|
||||
}),
|
||||
},
|
||||
};
|
||||
// clang-format on
|
||||
|
||||
@@ -17,42 +17,42 @@
|
||||
// clang-format off
|
||||
constexpr RideTypeDescriptor InvertedHairpinCoasterRTD =
|
||||
{
|
||||
SET_FIELD(AlternateType, RIDE_TYPE_NULL),
|
||||
SET_FIELD(Category, RIDE_CATEGORY_ROLLERCOASTER),
|
||||
SET_FIELD(EnabledTrackPieces, {TRACK_STRAIGHT, TRACK_STATION_END, TRACK_LIFT_HILL, TRACK_LIFT_HILL_STEEP, TRACK_SLOPE, TRACK_SLOPE_STEEP_UP, TRACK_SLOPE_STEEP_DOWN, TRACK_SLOPE_LONG, TRACK_SLOPE_CURVE, TRACK_CURVE_VERY_SMALL, TRACK_CURVE_SMALL, TRACK_BRAKES, TRACK_BLOCK_BRAKES}),
|
||||
SET_FIELD(ExtraTrackPieces, {}),
|
||||
SET_FIELD(CoveredTrackPieces, {}),
|
||||
SET_FIELD(StartTrackPiece, TrackElemType::EndStation),
|
||||
SET_FIELD(TrackPaintFunctions, TrackDrawerDescriptor(GetTrackPaintFunctionInvertedHairpinRC)),
|
||||
SET_FIELD(Flags, RIDE_TYPE_FLAGS_TRACK_HAS_3_COLOURS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION |
|
||||
.AlternateType = RIDE_TYPE_NULL,
|
||||
.Category = RIDE_CATEGORY_ROLLERCOASTER,
|
||||
.EnabledTrackPieces = {TRACK_STRAIGHT, TRACK_STATION_END, TRACK_LIFT_HILL, TRACK_LIFT_HILL_STEEP, TRACK_SLOPE, TRACK_SLOPE_STEEP_UP, TRACK_SLOPE_STEEP_DOWN, TRACK_SLOPE_LONG, TRACK_SLOPE_CURVE, TRACK_CURVE_VERY_SMALL, TRACK_CURVE_SMALL, TRACK_BRAKES, TRACK_BLOCK_BRAKES},
|
||||
.ExtraTrackPieces = {},
|
||||
.CoveredTrackPieces = {},
|
||||
.StartTrackPiece = TrackElemType::EndStation,
|
||||
.TrackPaintFunctions = TrackDrawerDescriptor(GetTrackPaintFunctionInvertedHairpinRC),
|
||||
.Flags = RIDE_TYPE_FLAGS_TRACK_HAS_3_COLOURS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION |
|
||||
RIDE_TYPE_FLAGS_COMMON_COASTER | RIDE_TYPE_FLAGS_COMMON_COASTER_NON_ALT | RIDE_TYPE_FLAG_PEEP_CHECK_GFORCES |
|
||||
RIDE_TYPE_FLAG_IS_SUSPENDED),
|
||||
SET_FIELD(RideModes, EnumsToFlags(RideMode::ContinuousCircuit, RideMode::ContinuousCircuitBlockSectioned)),
|
||||
SET_FIELD(DefaultMode, RideMode::ContinuousCircuit),
|
||||
SET_FIELD(OperatingSettings, { 0, 0, 0, 0, 0, 0 }),
|
||||
SET_FIELD(Naming, { STR_RIDE_NAME_INVERTED_HAIRPIN_COASTER, STR_RIDE_DESCRIPTION_INVERTED_HAIRPIN_COASTER }),
|
||||
SET_FIELD(NameConvention, { RideComponentType::Car, RideComponentType::Track, RideComponentType::Station }),
|
||||
SET_FIELD(EnumName, nameof(RIDE_TYPE_INVERTED_HAIRPIN_COASTER)),
|
||||
SET_FIELD(AvailableBreakdowns, (1 << BREAKDOWN_SAFETY_CUT_OUT) | (1 << BREAKDOWN_RESTRAINTS_STUCK_CLOSED) | (1 << BREAKDOWN_RESTRAINTS_STUCK_OPEN) | (1 << BREAKDOWN_VEHICLE_MALFUNCTION) | (1 << BREAKDOWN_BRAKES_FAILURE)),
|
||||
SET_FIELD(Heights, { 16, 24, 24, 7, }),
|
||||
SET_FIELD(MaxMass, 4),
|
||||
SET_FIELD(LiftData, { OpenRCT2::Audio::SoundId::LiftWildMouse, 4, 6 }),
|
||||
SET_FIELD(RatingsMultipliers, { 50, 30, 30 }),
|
||||
SET_FIELD(UpkeepCosts, { 40, 20, 80, 9, 3, 10 }),
|
||||
SET_FIELD(BuildCosts, { 33.50_GBP, 2.00_GBP, 40, }),
|
||||
SET_FIELD(DefaultPrices, { 20, 20 }),
|
||||
SET_FIELD(DefaultMusic, MUSIC_OBJECT_ROCK_2),
|
||||
SET_FIELD(PhotoItem, ShopItem::Photo2),
|
||||
SET_FIELD(BonusValue, 55),
|
||||
SET_FIELD(ColourPresets, TRACK_COLOUR_PRESETS(
|
||||
RIDE_TYPE_FLAG_IS_SUSPENDED,
|
||||
.RideModes = EnumsToFlags(RideMode::ContinuousCircuit, RideMode::ContinuousCircuitBlockSectioned),
|
||||
.DefaultMode = RideMode::ContinuousCircuit,
|
||||
.OperatingSettings = { 0, 0, 0, 0, 0, 0 },
|
||||
.Naming = { STR_RIDE_NAME_INVERTED_HAIRPIN_COASTER, STR_RIDE_DESCRIPTION_INVERTED_HAIRPIN_COASTER },
|
||||
.NameConvention = { RideComponentType::Car, RideComponentType::Track, RideComponentType::Station },
|
||||
.EnumName = nameof(RIDE_TYPE_INVERTED_HAIRPIN_COASTER),
|
||||
.AvailableBreakdowns = (1 << BREAKDOWN_SAFETY_CUT_OUT) | (1 << BREAKDOWN_RESTRAINTS_STUCK_CLOSED) | (1 << BREAKDOWN_RESTRAINTS_STUCK_OPEN) | (1 << BREAKDOWN_VEHICLE_MALFUNCTION) | (1 << BREAKDOWN_BRAKES_FAILURE),
|
||||
.Heights = { 16, 24, 24, 7, },
|
||||
.MaxMass = 4,
|
||||
.LiftData = { OpenRCT2::Audio::SoundId::LiftWildMouse, 4, 6 },
|
||||
.RatingsMultipliers = { 50, 30, 30 },
|
||||
.UpkeepCosts = { 40, 20, 80, 9, 3, 10 },
|
||||
.BuildCosts = { 33.50_GBP, 2.00_GBP, 40, },
|
||||
.DefaultPrices = { 20, 20 },
|
||||
.DefaultMusic = MUSIC_OBJECT_ROCK_2,
|
||||
.PhotoItem = ShopItem::Photo2,
|
||||
.BonusValue = 55,
|
||||
.ColourPresets = TRACK_COLOUR_PRESETS(
|
||||
{ COLOUR_BRIGHT_YELLOW, COLOUR_BRIGHT_YELLOW, COLOUR_BRIGHT_RED },
|
||||
{ COLOUR_BLACK, COLOUR_ICY_BLUE, COLOUR_BLACK },
|
||||
{ COLOUR_WHITE, COLOUR_WHITE, COLOUR_YELLOW },
|
||||
)),
|
||||
SET_FIELD(ColourPreview, { SPR_RIDE_DESIGN_PREVIEW_INVERTED_HAIRPIN_COASTER_TRACK, SPR_RIDE_DESIGN_PREVIEW_INVERTED_HAIRPIN_COASTER_SUPPORTS }),
|
||||
SET_FIELD(ColourKey, RideColourKey::Ride),
|
||||
SET_FIELD(Name, "inverted_hairpin_rc"),
|
||||
SET_FIELD(RatingsData,
|
||||
),
|
||||
.ColourPreview = { SPR_RIDE_DESIGN_PREVIEW_INVERTED_HAIRPIN_COASTER_TRACK, SPR_RIDE_DESIGN_PREVIEW_INVERTED_HAIRPIN_COASTER_SUPPORTS },
|
||||
.ColourKey = RideColourKey::Ride,
|
||||
.Name = "inverted_hairpin_rc",
|
||||
.RatingsData =
|
||||
{
|
||||
RatingsCalculationType::Normal,
|
||||
{ RIDE_RATING(3, 00), RIDE_RATING(2, 65), RIDE_RATING(2, 25) },
|
||||
@@ -80,6 +80,6 @@ constexpr RideTypeDescriptor InvertedHairpinCoasterRTD =
|
||||
{ RatingsModifierType::RequirementNumDrops, 3, 2, 2, 2 },
|
||||
{ RatingsModifierType::PenaltyLateralGs, 0, 102400, 35746, 49648 },
|
||||
},
|
||||
}),
|
||||
},
|
||||
};
|
||||
// clang-format on
|
||||
|
||||
@@ -17,45 +17,45 @@
|
||||
// clang-format off
|
||||
constexpr RideTypeDescriptor InvertedImpulseCoasterRTD =
|
||||
{
|
||||
SET_FIELD(AlternateType, RIDE_TYPE_NULL),
|
||||
SET_FIELD(Category, RIDE_CATEGORY_ROLLERCOASTER),
|
||||
SET_FIELD(EnabledTrackPieces, {TRACK_STRAIGHT, TRACK_STATION_END, TRACK_SLOPE, TRACK_SLOPE_STEEP_UP, TRACK_SLOPE_STEEP_DOWN, TRACK_SLOPE_VERTICAL, TRACK_CURVE_VERTICAL}),
|
||||
SET_FIELD(ExtraTrackPieces, {}),
|
||||
SET_FIELD(CoveredTrackPieces, {}),
|
||||
SET_FIELD(StartTrackPiece, TrackElemType::EndStation),
|
||||
SET_FIELD(TrackPaintFunctions, TrackDrawerDescriptor(GetTrackPaintFunctionInvertedImpulseRC)),
|
||||
SET_FIELD(Flags, RIDE_TYPE_FLAGS_TRACK_HAS_3_COLOURS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION |
|
||||
.AlternateType = RIDE_TYPE_NULL,
|
||||
.Category = RIDE_CATEGORY_ROLLERCOASTER,
|
||||
.EnabledTrackPieces = {TRACK_STRAIGHT, TRACK_STATION_END, TRACK_SLOPE, TRACK_SLOPE_STEEP_UP, TRACK_SLOPE_STEEP_DOWN, TRACK_SLOPE_VERTICAL, TRACK_CURVE_VERTICAL},
|
||||
.ExtraTrackPieces = {},
|
||||
.CoveredTrackPieces = {},
|
||||
.StartTrackPiece = TrackElemType::EndStation,
|
||||
.TrackPaintFunctions = TrackDrawerDescriptor(GetTrackPaintFunctionInvertedImpulseRC),
|
||||
.Flags = RIDE_TYPE_FLAGS_TRACK_HAS_3_COLOURS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION |
|
||||
RIDE_TYPE_FLAGS_COMMON_COASTER | RIDE_TYPE_FLAGS_COMMON_COASTER_NON_ALT | RIDE_TYPE_FLAG_PEEP_CHECK_GFORCES |
|
||||
RIDE_TYPE_FLAG_ALLOW_MULTIPLE_CIRCUITS | RIDE_TYPE_FLAG_IS_SUSPENDED |
|
||||
RIDE_TYPE_FLAG_ALLOW_REVERSED_TRAINS),
|
||||
SET_FIELD(RideModes, EnumsToFlags(RideMode::PoweredLaunchPasstrough, RideMode::PoweredLaunch)),
|
||||
SET_FIELD(DefaultMode, RideMode::PoweredLaunchPasstrough),
|
||||
SET_FIELD(OperatingSettings, { 10, 33, 30, 25, 25, 0 }),
|
||||
SET_FIELD(Naming, { STR_RIDE_NAME_INVERTED_IMPULSE_COASTER, STR_RIDE_DESCRIPTION_INVERTED_IMPULSE_COASTER }),
|
||||
SET_FIELD(NameConvention, { RideComponentType::Train, RideComponentType::Track, RideComponentType::Station }),
|
||||
SET_FIELD(EnumName, nameof(RIDE_TYPE_INVERTED_IMPULSE_COASTER)),
|
||||
SET_FIELD(AvailableBreakdowns, (1 << BREAKDOWN_SAFETY_CUT_OUT) | (1 << BREAKDOWN_RESTRAINTS_STUCK_CLOSED) | (1 << BREAKDOWN_RESTRAINTS_STUCK_OPEN) | (1 << BREAKDOWN_VEHICLE_MALFUNCTION)),
|
||||
SET_FIELD(Heights, { 45, 40, 29, 8, }),
|
||||
SET_FIELD(MaxMass, 23),
|
||||
SET_FIELD(LiftData, { OpenRCT2::Audio::SoundId::LiftClassic, 4, 7 }),
|
||||
SET_FIELD(RatingsMultipliers, { 50, 30, 10 }),
|
||||
SET_FIELD(UpkeepCosts, { 180, 20, 80, 11, 3, 10 }),
|
||||
SET_FIELD(BuildCosts, { 62.50_GBP, 2.50_GBP, 25, }),
|
||||
SET_FIELD(DefaultPrices, { 20, 20 }),
|
||||
SET_FIELD(DefaultMusic, MUSIC_OBJECT_ROCK_1),
|
||||
SET_FIELD(PhotoItem, ShopItem::Photo2),
|
||||
SET_FIELD(BonusValue, 75),
|
||||
SET_FIELD(ColourPresets, TRACK_COLOUR_PRESETS(
|
||||
RIDE_TYPE_FLAG_ALLOW_REVERSED_TRAINS,
|
||||
.RideModes = EnumsToFlags(RideMode::PoweredLaunchPasstrough, RideMode::PoweredLaunch),
|
||||
.DefaultMode = RideMode::PoweredLaunchPasstrough,
|
||||
.OperatingSettings = { 10, 33, 30, 25, 25, 0 },
|
||||
.Naming = { STR_RIDE_NAME_INVERTED_IMPULSE_COASTER, STR_RIDE_DESCRIPTION_INVERTED_IMPULSE_COASTER },
|
||||
.NameConvention = { RideComponentType::Train, RideComponentType::Track, RideComponentType::Station },
|
||||
.EnumName = nameof(RIDE_TYPE_INVERTED_IMPULSE_COASTER),
|
||||
.AvailableBreakdowns = (1 << BREAKDOWN_SAFETY_CUT_OUT) | (1 << BREAKDOWN_RESTRAINTS_STUCK_CLOSED) | (1 << BREAKDOWN_RESTRAINTS_STUCK_OPEN) | (1 << BREAKDOWN_VEHICLE_MALFUNCTION),
|
||||
.Heights = { 45, 40, 29, 8, },
|
||||
.MaxMass = 23,
|
||||
.LiftData = { OpenRCT2::Audio::SoundId::LiftClassic, 4, 7 },
|
||||
.RatingsMultipliers = { 50, 30, 10 },
|
||||
.UpkeepCosts = { 180, 20, 80, 11, 3, 10 },
|
||||
.BuildCosts = { 62.50_GBP, 2.50_GBP, 25, },
|
||||
.DefaultPrices = { 20, 20 },
|
||||
.DefaultMusic = MUSIC_OBJECT_ROCK_1,
|
||||
.PhotoItem = ShopItem::Photo2,
|
||||
.BonusValue = 75,
|
||||
.ColourPresets = TRACK_COLOUR_PRESETS(
|
||||
{ COLOUR_BRIGHT_RED, COLOUR_BRIGHT_RED, COLOUR_GREY },
|
||||
{ COLOUR_YELLOW, COLOUR_YELLOW, COLOUR_WHITE },
|
||||
{ COLOUR_BRIGHT_PURPLE, COLOUR_BRIGHT_PURPLE, COLOUR_BORDEAUX_RED },
|
||||
{ COLOUR_BRIGHT_YELLOW, COLOUR_BRIGHT_YELLOW, COLOUR_BORDEAUX_RED }, // Volcano: The Blast Coaster
|
||||
{ COLOUR_BRIGHT_YELLOW, COLOUR_BRIGHT_YELLOW, COLOUR_TEAL }, // Wicked Twister
|
||||
)),
|
||||
SET_FIELD(ColourPreview, { SPR_RIDE_DESIGN_PREVIEW_INVERTED_IMPULSE_COASTER_TRACK, SPR_RIDE_DESIGN_PREVIEW_INVERTED_IMPULSE_COASTER_SUPPORTS }),
|
||||
SET_FIELD(ColourKey, RideColourKey::Ride),
|
||||
SET_FIELD(Name, "inverted_impulse_rc"),
|
||||
SET_FIELD(RatingsData,
|
||||
),
|
||||
.ColourPreview = { SPR_RIDE_DESIGN_PREVIEW_INVERTED_IMPULSE_COASTER_TRACK, SPR_RIDE_DESIGN_PREVIEW_INVERTED_IMPULSE_COASTER_SUPPORTS },
|
||||
.ColourKey = RideColourKey::Ride,
|
||||
.Name = "inverted_impulse_rc",
|
||||
.RatingsData =
|
||||
{
|
||||
RatingsCalculationType::Normal,
|
||||
{ RIDE_RATING(4, 00), RIDE_RATING(3, 00), RIDE_RATING(3, 20) },
|
||||
@@ -79,6 +79,6 @@ constexpr RideTypeDescriptor InvertedImpulseCoasterRTD =
|
||||
{ RatingsModifierType::RequirementMaxSpeed, 0xA0000, 2, 2, 2 },
|
||||
{ RatingsModifierType::PenaltyLateralGs, 0, 24576, 29789, 55606 },
|
||||
},
|
||||
}),
|
||||
},
|
||||
};
|
||||
// clang-format on
|
||||
|
||||
@@ -17,35 +17,35 @@
|
||||
// clang-format off
|
||||
constexpr RideTypeDescriptor InvertedRollerCoasterRTD =
|
||||
{
|
||||
SET_FIELD(AlternateType, RIDE_TYPE_NULL),
|
||||
SET_FIELD(Category, RIDE_CATEGORY_ROLLERCOASTER),
|
||||
SET_FIELD(EnabledTrackPieces, {TRACK_STRAIGHT, TRACK_STATION_END, TRACK_LIFT_HILL, TRACK_FLAT_ROLL_BANKING, TRACK_VERTICAL_LOOP, TRACK_SLOPE, TRACK_SLOPE_STEEP_UP, TRACK_SLOPE_STEEP_DOWN, TRACK_SLOPE_CURVE, TRACK_SLOPE_CURVE_STEEP, TRACK_S_BEND, TRACK_CURVE_SMALL, TRACK_CURVE, TRACK_CURVE_LARGE, TRACK_TWIST, TRACK_HALF_LOOP, TRACK_CORKSCREW, TRACK_HELIX_DOWN_BANKED_QUARTER, TRACK_HELIX_UP_BANKED_QUARTER, TRACK_BRAKES, TRACK_ON_RIDE_PHOTO, TRACK_HALF_LOOP_LARGE, TRACK_BLOCK_BRAKES, TRACK_SLOPE_ROLL_BANKING, TRACK_DIAG_BRAKES, TRACK_DIAG_BLOCK_BRAKES}),
|
||||
SET_FIELD(ExtraTrackPieces, {TRACK_BOOSTER}),
|
||||
SET_FIELD(CoveredTrackPieces, {}),
|
||||
SET_FIELD(StartTrackPiece, TrackElemType::EndStation),
|
||||
SET_FIELD(TrackPaintFunctions, TrackDrawerDescriptor(GetTrackPaintFunctionInvertedRC)),
|
||||
SET_FIELD(Flags, RIDE_TYPE_FLAGS_TRACK_HAS_3_COLOURS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION |
|
||||
.AlternateType = RIDE_TYPE_NULL,
|
||||
.Category = RIDE_CATEGORY_ROLLERCOASTER,
|
||||
.EnabledTrackPieces = {TRACK_STRAIGHT, TRACK_STATION_END, TRACK_LIFT_HILL, TRACK_FLAT_ROLL_BANKING, TRACK_VERTICAL_LOOP, TRACK_SLOPE, TRACK_SLOPE_STEEP_UP, TRACK_SLOPE_STEEP_DOWN, TRACK_SLOPE_CURVE, TRACK_SLOPE_CURVE_STEEP, TRACK_S_BEND, TRACK_CURVE_SMALL, TRACK_CURVE, TRACK_CURVE_LARGE, TRACK_TWIST, TRACK_HALF_LOOP, TRACK_CORKSCREW, TRACK_HELIX_DOWN_BANKED_QUARTER, TRACK_HELIX_UP_BANKED_QUARTER, TRACK_BRAKES, TRACK_ON_RIDE_PHOTO, TRACK_HALF_LOOP_LARGE, TRACK_BLOCK_BRAKES, TRACK_SLOPE_ROLL_BANKING, TRACK_DIAG_BRAKES, TRACK_DIAG_BLOCK_BRAKES},
|
||||
.ExtraTrackPieces = {TRACK_BOOSTER},
|
||||
.CoveredTrackPieces = {},
|
||||
.StartTrackPiece = TrackElemType::EndStation,
|
||||
.TrackPaintFunctions = TrackDrawerDescriptor(GetTrackPaintFunctionInvertedRC),
|
||||
.Flags = RIDE_TYPE_FLAGS_TRACK_HAS_3_COLOURS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION |
|
||||
RIDE_TYPE_FLAGS_COMMON_COASTER | RIDE_TYPE_FLAGS_COMMON_COASTER_NON_ALT |
|
||||
RIDE_TYPE_FLAG_PEEP_CHECK_GFORCES | RIDE_TYPE_FLAG_ALLOW_MULTIPLE_CIRCUITS | RIDE_TYPE_FLAG_IS_SUSPENDED |
|
||||
RIDE_TYPE_FLAG_ALLOW_REVERSED_TRAINS),
|
||||
SET_FIELD(RideModes, EnumsToFlags(RideMode::ContinuousCircuit, RideMode::ContinuousCircuitBlockSectioned, RideMode::PoweredLaunchPasstrough, RideMode::PoweredLaunch)),
|
||||
SET_FIELD(DefaultMode, RideMode::ContinuousCircuit),
|
||||
SET_FIELD(OperatingSettings, { 7, 27, 0, 0, 38, 0 }),
|
||||
SET_FIELD(Naming, { STR_RIDE_NAME_INVERTED_ROLLER_COASTER, STR_RIDE_DESCRIPTION_INVERTED_ROLLER_COASTER }),
|
||||
SET_FIELD(NameConvention, { RideComponentType::Train, RideComponentType::Track, RideComponentType::Station }),
|
||||
SET_FIELD(EnumName, nameof(RIDE_TYPE_INVERTED_ROLLER_COASTER)),
|
||||
SET_FIELD(AvailableBreakdowns, (1 << BREAKDOWN_SAFETY_CUT_OUT) | (1 << BREAKDOWN_RESTRAINTS_STUCK_CLOSED) | (1 << BREAKDOWN_RESTRAINTS_STUCK_OPEN) | (1 << BREAKDOWN_VEHICLE_MALFUNCTION) | (1 << BREAKDOWN_BRAKES_FAILURE)),
|
||||
SET_FIELD(Heights, { 42, 40, 29, 8, }),
|
||||
SET_FIELD(MaxMass, 27),
|
||||
SET_FIELD(LiftData, { OpenRCT2::Audio::SoundId::LiftBM, 5, 7 }),
|
||||
SET_FIELD(RatingsMultipliers, { 50, 30, 10 }),
|
||||
SET_FIELD(UpkeepCosts, { 40, 20, 80, 13, 3, 10 }),
|
||||
SET_FIELD(BuildCosts, { 65.00_GBP, 2.50_GBP, 50, }),
|
||||
SET_FIELD(DefaultPrices, { 20, 20 }),
|
||||
SET_FIELD(DefaultMusic, MUSIC_OBJECT_TECHNO),
|
||||
SET_FIELD(PhotoItem, ShopItem::Photo2),
|
||||
SET_FIELD(BonusValue, 100),
|
||||
SET_FIELD(ColourPresets,TRACK_COLOUR_PRESETS(
|
||||
RIDE_TYPE_FLAG_ALLOW_REVERSED_TRAINS,
|
||||
.RideModes = EnumsToFlags(RideMode::ContinuousCircuit, RideMode::ContinuousCircuitBlockSectioned, RideMode::PoweredLaunchPasstrough, RideMode::PoweredLaunch),
|
||||
.DefaultMode = RideMode::ContinuousCircuit,
|
||||
.OperatingSettings = { 7, 27, 0, 0, 38, 0 },
|
||||
.Naming = { STR_RIDE_NAME_INVERTED_ROLLER_COASTER, STR_RIDE_DESCRIPTION_INVERTED_ROLLER_COASTER },
|
||||
.NameConvention = { RideComponentType::Train, RideComponentType::Track, RideComponentType::Station },
|
||||
.EnumName = nameof(RIDE_TYPE_INVERTED_ROLLER_COASTER),
|
||||
.AvailableBreakdowns = (1 << BREAKDOWN_SAFETY_CUT_OUT) | (1 << BREAKDOWN_RESTRAINTS_STUCK_CLOSED) | (1 << BREAKDOWN_RESTRAINTS_STUCK_OPEN) | (1 << BREAKDOWN_VEHICLE_MALFUNCTION) | (1 << BREAKDOWN_BRAKES_FAILURE),
|
||||
.Heights = { 42, 40, 29, 8, },
|
||||
.MaxMass = 27,
|
||||
.LiftData = { OpenRCT2::Audio::SoundId::LiftBM, 5, 7 },
|
||||
.RatingsMultipliers = { 50, 30, 10 },
|
||||
.UpkeepCosts = { 40, 20, 80, 13, 3, 10 },
|
||||
.BuildCosts = { 65.00_GBP, 2.50_GBP, 50, },
|
||||
.DefaultPrices = { 20, 20 },
|
||||
.DefaultMusic = MUSIC_OBJECT_TECHNO,
|
||||
.PhotoItem = ShopItem::Photo2,
|
||||
.BonusValue = 100,
|
||||
.ColourPresets = TRACK_COLOUR_PRESETS(
|
||||
{ COLOUR_BORDEAUX_RED, COLOUR_BORDEAUX_RED, COLOUR_BLACK },
|
||||
{ COLOUR_WHITE, COLOUR_YELLOW, COLOUR_WHITE },
|
||||
{ COLOUR_SALMON_PINK, COLOUR_SALMON_PINK, COLOUR_GREY },
|
||||
@@ -55,11 +55,11 @@ constexpr RideTypeDescriptor InvertedRollerCoasterRTD =
|
||||
{ COLOUR_BLACK, COLOUR_BLACK, COLOUR_DULL_PURPLE_LIGHT }, // Great Bear
|
||||
{ COLOUR_DARK_BLUE, COLOUR_DARK_BLUE, COLOUR_SATURATED_BROWN_LIGHT }, // Montu / Oziris
|
||||
{ COLOUR_DARK_PINK, COLOUR_DARK_PINK, COLOUR_SATURATED_PURPLE_DARK }, // Banshee (Renders)
|
||||
)),
|
||||
SET_FIELD(ColourPreview, { SPR_RIDE_DESIGN_PREVIEW_INVERTED_ROLLER_COASTER_TRACK, SPR_RIDE_DESIGN_PREVIEW_INVERTED_ROLLER_COASTER_SUPPORTS }),
|
||||
SET_FIELD(ColourKey, RideColourKey::Ride),
|
||||
SET_FIELD(Name, "inverted_rc"),
|
||||
SET_FIELD(RatingsData,
|
||||
),
|
||||
.ColourPreview = { SPR_RIDE_DESIGN_PREVIEW_INVERTED_ROLLER_COASTER_TRACK, SPR_RIDE_DESIGN_PREVIEW_INVERTED_ROLLER_COASTER_SUPPORTS },
|
||||
.ColourKey = RideColourKey::Ride,
|
||||
.Name = "inverted_rc",
|
||||
.RatingsData =
|
||||
{
|
||||
RatingsCalculationType::Normal,
|
||||
{ RIDE_RATING(3, 60), RIDE_RATING(2, 80), RIDE_RATING(3, 20) },
|
||||
@@ -85,6 +85,6 @@ constexpr RideTypeDescriptor InvertedRollerCoasterRTD =
|
||||
{ RatingsModifierType::RequirementNegativeGs, FIXED_2DP(0, 30), 2, 2, 2 },
|
||||
{ RatingsModifierType::PenaltyLateralGs, 0, 24576, 29789, 55606 },
|
||||
},
|
||||
}),
|
||||
},
|
||||
};
|
||||
// clang-format on
|
||||
|
||||
@@ -17,45 +17,45 @@
|
||||
// clang-format off
|
||||
constexpr RideTypeDescriptor JuniorRollerCoasterRTD =
|
||||
{
|
||||
SET_FIELD(AlternateType, RIDE_TYPE_NULL),
|
||||
SET_FIELD(Category, RIDE_CATEGORY_ROLLERCOASTER),
|
||||
SET_FIELD(EnabledTrackPieces, { TRACK_STRAIGHT, TRACK_STATION_END, TRACK_LIFT_HILL,TRACK_LIFT_HILL_CURVE, TRACK_FLAT_ROLL_BANKING, TRACK_SLOPE, TRACK_SLOPE_LONG, TRACK_SLOPE_CURVE, TRACK_S_BEND, TRACK_CURVE_SMALL, TRACK_CURVE, TRACK_CURVE_LARGE, TRACK_HELIX_DOWN_BANKED_HALF, TRACK_HELIX_UP_BANKED_HALF, TRACK_BRAKES, TRACK_BLOCK_BRAKES, TRACK_BOOSTER, TRACK_DIAG_BRAKES, TRACK_DIAG_BLOCK_BRAKES}),
|
||||
SET_FIELD(ExtraTrackPieces, {TRACK_SLOPE_STEEP_UP, TRACK_SLOPE_STEEP_DOWN, TRACK_ON_RIDE_PHOTO}),
|
||||
SET_FIELD(CoveredTrackPieces, {}),
|
||||
SET_FIELD(StartTrackPiece, TrackElemType::EndStation),
|
||||
SET_FIELD(TrackPaintFunctions, TrackDrawerDescriptor(GetTrackPaintFunctionJuniorRC)),
|
||||
SET_FIELD(Flags, RIDE_TYPE_FLAGS_TRACK_HAS_3_COLOURS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION |
|
||||
.AlternateType = RIDE_TYPE_NULL,
|
||||
.Category = RIDE_CATEGORY_ROLLERCOASTER,
|
||||
.EnabledTrackPieces = { TRACK_STRAIGHT, TRACK_STATION_END, TRACK_LIFT_HILL,TRACK_LIFT_HILL_CURVE, TRACK_FLAT_ROLL_BANKING, TRACK_SLOPE, TRACK_SLOPE_LONG, TRACK_SLOPE_CURVE, TRACK_S_BEND, TRACK_CURVE_SMALL, TRACK_CURVE, TRACK_CURVE_LARGE, TRACK_HELIX_DOWN_BANKED_HALF, TRACK_HELIX_UP_BANKED_HALF, TRACK_BRAKES, TRACK_BLOCK_BRAKES, TRACK_BOOSTER, TRACK_DIAG_BRAKES, TRACK_DIAG_BLOCK_BRAKES},
|
||||
.ExtraTrackPieces = {TRACK_SLOPE_STEEP_UP, TRACK_SLOPE_STEEP_DOWN, TRACK_ON_RIDE_PHOTO},
|
||||
.CoveredTrackPieces = {},
|
||||
.StartTrackPiece = TrackElemType::EndStation,
|
||||
.TrackPaintFunctions = TrackDrawerDescriptor(GetTrackPaintFunctionJuniorRC),
|
||||
.Flags = RIDE_TYPE_FLAGS_TRACK_HAS_3_COLOURS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION |
|
||||
RIDE_TYPE_FLAGS_COMMON_COASTER | RIDE_TYPE_FLAGS_COMMON_COASTER_NON_ALT |
|
||||
RIDE_TYPE_FLAG_ALLOW_DOORS_ON_TRACK | RIDE_TYPE_FLAG_PEEP_CHECK_GFORCES | RIDE_TYPE_FLAG_ALLOW_MULTIPLE_CIRCUITS |
|
||||
RIDE_TYPE_FLAG_ALLOW_REVERSED_TRAINS),
|
||||
SET_FIELD(RideModes, EnumsToFlags(RideMode::ContinuousCircuit, RideMode::ContinuousCircuitBlockSectioned)),
|
||||
SET_FIELD(DefaultMode, RideMode::ContinuousCircuit),
|
||||
SET_FIELD(OperatingSettings, { 0, 0, 0, 17, 16, -1 }),
|
||||
SET_FIELD(Naming, { STR_RIDE_NAME_JUNIOR_ROLLER_COASTER, STR_RIDE_DESCRIPTION_JUNIOR_ROLLER_COASTER }),
|
||||
SET_FIELD(NameConvention, { RideComponentType::Train, RideComponentType::Track, RideComponentType::Station }),
|
||||
SET_FIELD(EnumName, nameof(RIDE_TYPE_JUNIOR_ROLLER_COASTER)),
|
||||
SET_FIELD(AvailableBreakdowns, (1 << BREAKDOWN_SAFETY_CUT_OUT) | (1 << BREAKDOWN_RESTRAINTS_STUCK_CLOSED) | (1 << BREAKDOWN_RESTRAINTS_STUCK_OPEN) | (1 << BREAKDOWN_VEHICLE_MALFUNCTION) | (1 << BREAKDOWN_BRAKES_FAILURE)),
|
||||
SET_FIELD(Heights, { 12, 24, 4, 7, }),
|
||||
SET_FIELD(MaxMass, 18),
|
||||
SET_FIELD(LiftData, { OpenRCT2::Audio::SoundId::LiftFrictionWheels, 4, 6 }),
|
||||
SET_FIELD(RatingsMultipliers, { 50, 30, 10 }),
|
||||
SET_FIELD(UpkeepCosts, { 40, 20, 80, 8, 3, 5 }),
|
||||
SET_FIELD(BuildCosts, { 22.50_GBP, 2.00_GBP, 40, }),
|
||||
SET_FIELD(DefaultPrices, { 20, 20 }),
|
||||
SET_FIELD(DefaultMusic, MUSIC_OBJECT_SUMMER),
|
||||
SET_FIELD(PhotoItem, ShopItem::Photo),
|
||||
SET_FIELD(BonusValue, 60),
|
||||
SET_FIELD(ColourPresets, TRACK_COLOUR_PRESETS(
|
||||
RIDE_TYPE_FLAG_ALLOW_REVERSED_TRAINS,
|
||||
.RideModes = EnumsToFlags(RideMode::ContinuousCircuit, RideMode::ContinuousCircuitBlockSectioned),
|
||||
.DefaultMode = RideMode::ContinuousCircuit,
|
||||
.OperatingSettings = { 0, 0, 0, 17, 16, -1 },
|
||||
.Naming = { STR_RIDE_NAME_JUNIOR_ROLLER_COASTER, STR_RIDE_DESCRIPTION_JUNIOR_ROLLER_COASTER },
|
||||
.NameConvention = { RideComponentType::Train, RideComponentType::Track, RideComponentType::Station },
|
||||
.EnumName = nameof(RIDE_TYPE_JUNIOR_ROLLER_COASTER),
|
||||
.AvailableBreakdowns = (1 << BREAKDOWN_SAFETY_CUT_OUT) | (1 << BREAKDOWN_RESTRAINTS_STUCK_CLOSED) | (1 << BREAKDOWN_RESTRAINTS_STUCK_OPEN) | (1 << BREAKDOWN_VEHICLE_MALFUNCTION) | (1 << BREAKDOWN_BRAKES_FAILURE),
|
||||
.Heights = { 12, 24, 4, 7, },
|
||||
.MaxMass = 18,
|
||||
.LiftData = { OpenRCT2::Audio::SoundId::LiftFrictionWheels, 4, 6 },
|
||||
.RatingsMultipliers = { 50, 30, 10 },
|
||||
.UpkeepCosts = { 40, 20, 80, 8, 3, 5 },
|
||||
.BuildCosts = { 22.50_GBP, 2.00_GBP, 40, },
|
||||
.DefaultPrices = { 20, 20 },
|
||||
.DefaultMusic = MUSIC_OBJECT_SUMMER,
|
||||
.PhotoItem = ShopItem::Photo,
|
||||
.BonusValue = 60,
|
||||
.ColourPresets = TRACK_COLOUR_PRESETS(
|
||||
{ COLOUR_YELLOW, COLOUR_YELLOW, COLOUR_SATURATED_BROWN },
|
||||
{ COLOUR_BORDEAUX_RED, COLOUR_BORDEAUX_RED, COLOUR_DARK_OLIVE_GREEN },
|
||||
{ COLOUR_TEAL, COLOUR_YELLOW, COLOUR_TEAL },
|
||||
{ COLOUR_SATURATED_BROWN, COLOUR_SATURATED_BROWN, COLOUR_OLIVE_GREEN },
|
||||
{ COLOUR_BLACK, COLOUR_LIGHT_BLUE, COLOUR_BLACK },
|
||||
)),
|
||||
SET_FIELD(ColourPreview, { SPR_RIDE_DESIGN_PREVIEW_JUNIOR_ROLLER_COASTER_TRACK, SPR_RIDE_DESIGN_PREVIEW_JUNIOR_ROLLER_COASTER_SUPPORTS }),
|
||||
SET_FIELD(ColourKey, RideColourKey::Ride),
|
||||
SET_FIELD(Name, "junior_rc"),
|
||||
SET_FIELD(RatingsData,
|
||||
),
|
||||
.ColourPreview = { SPR_RIDE_DESIGN_PREVIEW_JUNIOR_ROLLER_COASTER_TRACK, SPR_RIDE_DESIGN_PREVIEW_JUNIOR_ROLLER_COASTER_SUPPORTS },
|
||||
.ColourKey = RideColourKey::Ride,
|
||||
.Name = "junior_rc",
|
||||
.RatingsData =
|
||||
{
|
||||
RatingsCalculationType::Normal,
|
||||
{ RIDE_RATING(2, 40), RIDE_RATING(2, 50), RIDE_RATING(1, 80) },
|
||||
@@ -81,6 +81,6 @@ constexpr RideTypeDescriptor JuniorRollerCoasterRTD =
|
||||
{ RatingsModifierType::RequirementNumDrops, 1, 2, 2, 2 },
|
||||
{ RatingsModifierType::PenaltyLateralGs, 0, 20480, 23831, 49648 },
|
||||
},
|
||||
}),
|
||||
},
|
||||
};
|
||||
// clang-format on
|
||||
|
||||
@@ -17,46 +17,46 @@
|
||||
// clang-format off
|
||||
constexpr RideTypeDescriptor LIMLaunchedRollerCoasterRTD =
|
||||
{
|
||||
SET_FIELD(AlternateType, RIDE_TYPE_NULL),
|
||||
SET_FIELD(Category, RIDE_CATEGORY_ROLLERCOASTER),
|
||||
SET_FIELD(EnabledTrackPieces, {TRACK_STRAIGHT, TRACK_STATION_END, TRACK_FLAT_ROLL_BANKING, TRACK_VERTICAL_LOOP, TRACK_SLOPE, TRACK_SLOPE_STEEP_UP, TRACK_SLOPE_STEEP_DOWN, TRACK_SLOPE_CURVE, TRACK_SLOPE_CURVE_STEEP, TRACK_S_BEND, TRACK_CURVE_SMALL, TRACK_CURVE, TRACK_CURVE_LARGE, TRACK_TWIST, TRACK_CORKSCREW, TRACK_HELIX_DOWN_BANKED_HALF, TRACK_HELIX_UP_BANKED_HALF, TRACK_BRAKES, TRACK_ON_RIDE_PHOTO, TRACK_SLOPE_VERTICAL, TRACK_BLOCK_BRAKES, TRACK_SLOPE_ROLL_BANKING, TRACK_CURVE_VERTICAL, TRACK_QUARTER_LOOP, TRACK_BARREL_ROLL, TRACK_SLOPE_CURVE_BANKED, TRACK_SLOPE_STEEP_LONG, TRACK_HALF_LOOP, TRACK_HALF_LOOP_MEDIUM, TRACK_HALF_LOOP_LARGE, TRACK_CORKSCREW_LARGE}),
|
||||
SET_FIELD(ExtraTrackPieces, {TRACK_SLOPE_LONG, TRACK_ZERO_G_ROLL, TRACK_ZERO_G_ROLL_LARGE}),
|
||||
SET_FIELD(CoveredTrackPieces, {}),
|
||||
SET_FIELD(StartTrackPiece, TrackElemType::EndStation),
|
||||
SET_FIELD(TrackPaintFunctions, TrackDrawerDescriptor(GetTrackPaintFunctionLimLaunchedRC)),
|
||||
SET_FIELD(Flags, RIDE_TYPE_FLAGS_TRACK_HAS_3_COLOURS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION |
|
||||
.AlternateType = RIDE_TYPE_NULL,
|
||||
.Category = RIDE_CATEGORY_ROLLERCOASTER,
|
||||
.EnabledTrackPieces = {TRACK_STRAIGHT, TRACK_STATION_END, TRACK_FLAT_ROLL_BANKING, TRACK_VERTICAL_LOOP, TRACK_SLOPE, TRACK_SLOPE_STEEP_UP, TRACK_SLOPE_STEEP_DOWN, TRACK_SLOPE_CURVE, TRACK_SLOPE_CURVE_STEEP, TRACK_S_BEND, TRACK_CURVE_SMALL, TRACK_CURVE, TRACK_CURVE_LARGE, TRACK_TWIST, TRACK_CORKSCREW, TRACK_HELIX_DOWN_BANKED_HALF, TRACK_HELIX_UP_BANKED_HALF, TRACK_BRAKES, TRACK_ON_RIDE_PHOTO, TRACK_SLOPE_VERTICAL, TRACK_BLOCK_BRAKES, TRACK_SLOPE_ROLL_BANKING, TRACK_CURVE_VERTICAL, TRACK_QUARTER_LOOP, TRACK_BARREL_ROLL, TRACK_SLOPE_CURVE_BANKED, TRACK_SLOPE_STEEP_LONG, TRACK_HALF_LOOP, TRACK_HALF_LOOP_MEDIUM, TRACK_HALF_LOOP_LARGE, TRACK_CORKSCREW_LARGE},
|
||||
.ExtraTrackPieces = {TRACK_SLOPE_LONG, TRACK_ZERO_G_ROLL, TRACK_ZERO_G_ROLL_LARGE},
|
||||
.CoveredTrackPieces = {},
|
||||
.StartTrackPiece = TrackElemType::EndStation,
|
||||
.TrackPaintFunctions = TrackDrawerDescriptor(GetTrackPaintFunctionLimLaunchedRC),
|
||||
.Flags = RIDE_TYPE_FLAGS_TRACK_HAS_3_COLOURS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION |
|
||||
RIDE_TYPE_FLAGS_COMMON_COASTER | RIDE_TYPE_FLAGS_COMMON_COASTER_NON_ALT |
|
||||
RIDE_TYPE_FLAG_PEEP_CHECK_GFORCES | RIDE_TYPE_FLAG_ALLOW_MULTIPLE_CIRCUITS |
|
||||
RIDE_TYPE_FLAG_ALLOW_REVERSED_TRAINS),
|
||||
SET_FIELD(RideModes, EnumsToFlags(RideMode::PoweredLaunchPasstrough, RideMode::PoweredLaunch, RideMode::PoweredLaunchBlockSectioned)),
|
||||
SET_FIELD(DefaultMode, RideMode::PoweredLaunchPasstrough),
|
||||
SET_FIELD(OperatingSettings, { 10, 31, 26, 18, 52, 0 }),
|
||||
SET_FIELD(Naming, { STR_RIDE_NAME_LIM_LAUNCHED_ROLLER_COASTER, STR_RIDE_DESCRIPTION_LIM_LAUNCHED_ROLLER_COASTER }),
|
||||
SET_FIELD(NameConvention, { RideComponentType::Train, RideComponentType::Track, RideComponentType::Station }),
|
||||
SET_FIELD(EnumName, nameof(RIDE_TYPE_LIM_LAUNCHED_ROLLER_COASTER)),
|
||||
SET_FIELD(AvailableBreakdowns, (1 << BREAKDOWN_SAFETY_CUT_OUT) | (1 << BREAKDOWN_RESTRAINTS_STUCK_CLOSED) | (1 << BREAKDOWN_RESTRAINTS_STUCK_OPEN) | (1 << BREAKDOWN_VEHICLE_MALFUNCTION) | (1 << BREAKDOWN_BRAKES_FAILURE)),
|
||||
SET_FIELD(Heights, { 35, 24, 5, 7, }),
|
||||
SET_FIELD(MaxMass, 18),
|
||||
SET_FIELD(LiftData, { OpenRCT2::Audio::SoundId::Null, 4, 6 }),
|
||||
SET_FIELD(RatingsMultipliers, { 50, 30, 10 }),
|
||||
SET_FIELD(UpkeepCosts, { 42, 20, 80, 9, 3, 10 }),
|
||||
SET_FIELD(BuildCosts, { 47.50_GBP, 2.50_GBP, 50, }),
|
||||
SET_FIELD(DefaultPrices, { 20, 20 }),
|
||||
SET_FIELD(DefaultMusic, MUSIC_OBJECT_ROCK_1),
|
||||
SET_FIELD(PhotoItem, ShopItem::Photo),
|
||||
SET_FIELD(BonusValue, 55),
|
||||
SET_FIELD(ColourPresets, TRACK_COLOUR_PRESETS(
|
||||
RIDE_TYPE_FLAG_ALLOW_REVERSED_TRAINS,
|
||||
.RideModes = EnumsToFlags(RideMode::PoweredLaunchPasstrough, RideMode::PoweredLaunch, RideMode::PoweredLaunchBlockSectioned),
|
||||
.DefaultMode = RideMode::PoweredLaunchPasstrough,
|
||||
.OperatingSettings = { 10, 31, 26, 18, 52, 0 },
|
||||
.Naming = { STR_RIDE_NAME_LIM_LAUNCHED_ROLLER_COASTER, STR_RIDE_DESCRIPTION_LIM_LAUNCHED_ROLLER_COASTER },
|
||||
.NameConvention = { RideComponentType::Train, RideComponentType::Track, RideComponentType::Station },
|
||||
.EnumName = nameof(RIDE_TYPE_LIM_LAUNCHED_ROLLER_COASTER),
|
||||
.AvailableBreakdowns = (1 << BREAKDOWN_SAFETY_CUT_OUT) | (1 << BREAKDOWN_RESTRAINTS_STUCK_CLOSED) | (1 << BREAKDOWN_RESTRAINTS_STUCK_OPEN) | (1 << BREAKDOWN_VEHICLE_MALFUNCTION) | (1 << BREAKDOWN_BRAKES_FAILURE),
|
||||
.Heights = { 35, 24, 5, 7, },
|
||||
.MaxMass = 18,
|
||||
.LiftData = { OpenRCT2::Audio::SoundId::Null, 4, 6 },
|
||||
.RatingsMultipliers = { 50, 30, 10 },
|
||||
.UpkeepCosts = { 42, 20, 80, 9, 3, 10 },
|
||||
.BuildCosts = { 47.50_GBP, 2.50_GBP, 50, },
|
||||
.DefaultPrices = { 20, 20 },
|
||||
.DefaultMusic = MUSIC_OBJECT_ROCK_1,
|
||||
.PhotoItem = ShopItem::Photo,
|
||||
.BonusValue = 55,
|
||||
.ColourPresets = TRACK_COLOUR_PRESETS(
|
||||
{ COLOUR_BRIGHT_GREEN, COLOUR_BRIGHT_GREEN, COLOUR_WHITE },
|
||||
{ COLOUR_BRIGHT_RED, COLOUR_BRIGHT_RED, COLOUR_DARK_BROWN },
|
||||
{ COLOUR_YELLOW, COLOUR_YELLOW, COLOUR_SATURATED_GREEN },
|
||||
{ COLOUR_BRIGHT_GREEN, COLOUR_SATURATED_GREEN_LIGHT, COLOUR_SATURATED_PURPLE_DARK}, // Joker's Jinx
|
||||
{ COLOUR_SATURATED_GREEN_LIGHT, COLOUR_GRASS_GREEN_LIGHT , COLOUR_AQUA_DARK}, // Poltergeist
|
||||
{ COLOUR_GREY, COLOUR_DARK_BROWN , COLOUR_BLACK}, // Flight of Fear
|
||||
)),
|
||||
SET_FIELD(ColourPreview, { SPR_RIDE_DESIGN_PREVIEW_LIM_LAUNCHED_ROLLER_COASTER_TRACK, SPR_RIDE_DESIGN_PREVIEW_LIM_LAUNCHED_ROLLER_COASTER_SUPPORTS }),
|
||||
SET_FIELD(ColourKey, RideColourKey::Ride),
|
||||
SET_FIELD(Name, "lim_launched_rc"),
|
||||
SET_FIELD(RatingsData,
|
||||
),
|
||||
.ColourPreview = { SPR_RIDE_DESIGN_PREVIEW_LIM_LAUNCHED_ROLLER_COASTER_TRACK, SPR_RIDE_DESIGN_PREVIEW_LIM_LAUNCHED_ROLLER_COASTER_SUPPORTS },
|
||||
.ColourKey = RideColourKey::Ride,
|
||||
.Name = "lim_launched_rc",
|
||||
.RatingsData =
|
||||
{
|
||||
RatingsCalculationType::Normal,
|
||||
{ RIDE_RATING(2, 90), RIDE_RATING(1, 50), RIDE_RATING(2, 20) },
|
||||
@@ -83,6 +83,6 @@ constexpr RideTypeDescriptor LIMLaunchedRollerCoasterRTD =
|
||||
{ RatingsModifierType::RequirementNumDrops, 2, 2, 2, 2 },
|
||||
{ RatingsModifierType::PenaltyLateralGs, 0, 24576, 35746, 49648 },
|
||||
},
|
||||
}),
|
||||
},
|
||||
};
|
||||
// clang-format on
|
||||
|
||||
@@ -17,42 +17,42 @@
|
||||
// clang-format off
|
||||
constexpr RideTypeDescriptor LayDownRollerCoasterRTD =
|
||||
{
|
||||
SET_FIELD(AlternateType, RIDE_TYPE_LAY_DOWN_ROLLER_COASTER_ALT),
|
||||
SET_FIELD(Category, RIDE_CATEGORY_ROLLERCOASTER),
|
||||
SET_FIELD(EnabledTrackPieces, {TRACK_STRAIGHT, TRACK_STATION_END, TRACK_LIFT_HILL, TRACK_FLAT_ROLL_BANKING, TRACK_VERTICAL_LOOP, TRACK_SLOPE, TRACK_SLOPE_STEEP_UP, TRACK_SLOPE_STEEP_DOWN, TRACK_SLOPE_CURVE, TRACK_SLOPE_CURVE_STEEP, TRACK_S_BEND, TRACK_CURVE_SMALL, TRACK_CURVE, TRACK_CURVE_LARGE, TRACK_HELIX_DOWN_BANKED_HALF, TRACK_HELIX_UP_BANKED_HALF, TRACK_BRAKES, TRACK_ON_RIDE_PHOTO, TRACK_BLOCK_BRAKES, TRACK_INLINE_TWIST_UNINVERTED, TRACK_FLYING_HALF_LOOP_UNINVERTED_UP, TRACK_CORKSCREW_UNINVERTED, TRACK_SLOPE_STEEP_LONG, TRACK_DIAG_BRAKES, TRACK_DIAG_BLOCK_BRAKES}),
|
||||
SET_FIELD(ExtraTrackPieces, {TRACK_FLYING_HALF_LOOP_UNINVERTED_DOWN, TRACK_BOOSTER}),
|
||||
SET_FIELD(CoveredTrackPieces, {}),
|
||||
SET_FIELD(StartTrackPiece, TrackElemType::EndStation),
|
||||
SET_FIELD(TrackPaintFunctions, TrackDrawerDescriptor(GetTrackPaintFunctionLayDownRC)),
|
||||
SET_FIELD(Flags, RIDE_TYPE_FLAGS_TRACK_HAS_3_COLOURS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION |
|
||||
.AlternateType = RIDE_TYPE_LAY_DOWN_ROLLER_COASTER_ALT,
|
||||
.Category = RIDE_CATEGORY_ROLLERCOASTER,
|
||||
.EnabledTrackPieces = {TRACK_STRAIGHT, TRACK_STATION_END, TRACK_LIFT_HILL, TRACK_FLAT_ROLL_BANKING, TRACK_VERTICAL_LOOP, TRACK_SLOPE, TRACK_SLOPE_STEEP_UP, TRACK_SLOPE_STEEP_DOWN, TRACK_SLOPE_CURVE, TRACK_SLOPE_CURVE_STEEP, TRACK_S_BEND, TRACK_CURVE_SMALL, TRACK_CURVE, TRACK_CURVE_LARGE, TRACK_HELIX_DOWN_BANKED_HALF, TRACK_HELIX_UP_BANKED_HALF, TRACK_BRAKES, TRACK_ON_RIDE_PHOTO, TRACK_BLOCK_BRAKES, TRACK_INLINE_TWIST_UNINVERTED, TRACK_FLYING_HALF_LOOP_UNINVERTED_UP, TRACK_CORKSCREW_UNINVERTED, TRACK_SLOPE_STEEP_LONG, TRACK_DIAG_BRAKES, TRACK_DIAG_BLOCK_BRAKES},
|
||||
.ExtraTrackPieces = {TRACK_FLYING_HALF_LOOP_UNINVERTED_DOWN, TRACK_BOOSTER},
|
||||
.CoveredTrackPieces = {},
|
||||
.StartTrackPiece = TrackElemType::EndStation,
|
||||
.TrackPaintFunctions = TrackDrawerDescriptor(GetTrackPaintFunctionLayDownRC),
|
||||
.Flags = RIDE_TYPE_FLAGS_TRACK_HAS_3_COLOURS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION |
|
||||
RIDE_TYPE_FLAGS_COMMON_COASTER | RIDE_TYPE_FLAGS_COMMON_COASTER_NON_ALT |
|
||||
RIDE_TYPE_FLAG_HAS_ALTERNATIVE_TRACK_TYPE | RIDE_TYPE_FLAG_PEEP_CHECK_GFORCES | RIDE_TYPE_FLAG_ALLOW_MULTIPLE_CIRCUITS),
|
||||
SET_FIELD(RideModes, EnumsToFlags(RideMode::ContinuousCircuit, RideMode::ContinuousCircuitBlockSectioned)),
|
||||
SET_FIELD(DefaultMode, RideMode::ContinuousCircuit),
|
||||
SET_FIELD(OperatingSettings, { 10, 27, 30, 25, 25, 0 }),
|
||||
SET_FIELD(Naming, { STR_RIDE_NAME_LAY_DOWN_ROLLER_COASTER, STR_RIDE_DESCRIPTION_LAY_DOWN_ROLLER_COASTER }),
|
||||
SET_FIELD(NameConvention, { RideComponentType::Train, RideComponentType::Track, RideComponentType::Station }),
|
||||
SET_FIELD(EnumName, nameof(RIDE_TYPE_LAY_DOWN_ROLLER_COASTER)),
|
||||
SET_FIELD(AvailableBreakdowns, (1 << BREAKDOWN_SAFETY_CUT_OUT) | (1 << BREAKDOWN_RESTRAINTS_STUCK_CLOSED) | (1 << BREAKDOWN_RESTRAINTS_STUCK_OPEN) | (1 << BREAKDOWN_VEHICLE_MALFUNCTION) | (1 << BREAKDOWN_BRAKES_FAILURE)),
|
||||
SET_FIELD(Heights, { 26, 24, 8, 11, }),
|
||||
SET_FIELD(MaxMass, 25),
|
||||
SET_FIELD(LiftData, { OpenRCT2::Audio::SoundId::LiftClassic, 4, 6 }),
|
||||
SET_FIELD(RatingsMultipliers, { 50, 30, 10 }),
|
||||
SET_FIELD(UpkeepCosts, { 49, 20, 90, 11, 3, 15 }),
|
||||
SET_FIELD(BuildCosts, { 53.50_GBP, 2.50_GBP, 50, }),
|
||||
SET_FIELD(DefaultPrices, { 20, 20 }),
|
||||
SET_FIELD(DefaultMusic, MUSIC_OBJECT_ROCK_1),
|
||||
SET_FIELD(PhotoItem, ShopItem::Photo2),
|
||||
SET_FIELD(BonusValue, 100),
|
||||
SET_FIELD(ColourPresets, TRACK_COLOUR_PRESETS(
|
||||
RIDE_TYPE_FLAG_HAS_ALTERNATIVE_TRACK_TYPE | RIDE_TYPE_FLAG_PEEP_CHECK_GFORCES | RIDE_TYPE_FLAG_ALLOW_MULTIPLE_CIRCUITS,
|
||||
.RideModes = EnumsToFlags(RideMode::ContinuousCircuit, RideMode::ContinuousCircuitBlockSectioned),
|
||||
.DefaultMode = RideMode::ContinuousCircuit,
|
||||
.OperatingSettings = { 10, 27, 30, 25, 25, 0 },
|
||||
.Naming = { STR_RIDE_NAME_LAY_DOWN_ROLLER_COASTER, STR_RIDE_DESCRIPTION_LAY_DOWN_ROLLER_COASTER },
|
||||
.NameConvention = { RideComponentType::Train, RideComponentType::Track, RideComponentType::Station },
|
||||
.EnumName = nameof(RIDE_TYPE_LAY_DOWN_ROLLER_COASTER),
|
||||
.AvailableBreakdowns = (1 << BREAKDOWN_SAFETY_CUT_OUT) | (1 << BREAKDOWN_RESTRAINTS_STUCK_CLOSED) | (1 << BREAKDOWN_RESTRAINTS_STUCK_OPEN) | (1 << BREAKDOWN_VEHICLE_MALFUNCTION) | (1 << BREAKDOWN_BRAKES_FAILURE),
|
||||
.Heights = { 26, 24, 8, 11, },
|
||||
.MaxMass = 25,
|
||||
.LiftData = { OpenRCT2::Audio::SoundId::LiftClassic, 4, 6 },
|
||||
.RatingsMultipliers = { 50, 30, 10 },
|
||||
.UpkeepCosts = { 49, 20, 90, 11, 3, 15 },
|
||||
.BuildCosts = { 53.50_GBP, 2.50_GBP, 50, },
|
||||
.DefaultPrices = { 20, 20 },
|
||||
.DefaultMusic = MUSIC_OBJECT_ROCK_1,
|
||||
.PhotoItem = ShopItem::Photo2,
|
||||
.BonusValue = 100,
|
||||
.ColourPresets = TRACK_COLOUR_PRESETS(
|
||||
{ COLOUR_BRIGHT_RED, COLOUR_BRIGHT_RED, COLOUR_YELLOW },
|
||||
{ COLOUR_DARK_PURPLE, COLOUR_DARK_PURPLE, COLOUR_YELLOW },
|
||||
{ COLOUR_YELLOW, COLOUR_YELLOW, COLOUR_DARK_GREEN },
|
||||
)),
|
||||
SET_FIELD(ColourPreview, { SPR_RIDE_DESIGN_PREVIEW_LAY_DOWN_ROLLER_COASTER_TRACK, SPR_RIDE_DESIGN_PREVIEW_LAY_DOWN_ROLLER_COASTER_SUPPORTS }),
|
||||
SET_FIELD(ColourKey, RideColourKey::Ride),
|
||||
SET_FIELD(Name, "lay_down_rc"),
|
||||
SET_FIELD(RatingsData,
|
||||
),
|
||||
.ColourPreview = { SPR_RIDE_DESIGN_PREVIEW_LAY_DOWN_ROLLER_COASTER_TRACK, SPR_RIDE_DESIGN_PREVIEW_LAY_DOWN_ROLLER_COASTER_SUPPORTS },
|
||||
.ColourKey = RideColourKey::Ride,
|
||||
.Name = "lay_down_rc",
|
||||
.RatingsData =
|
||||
{
|
||||
RatingsCalculationType::Normal,
|
||||
{ RIDE_RATING(3, 85), RIDE_RATING(1, 15), RIDE_RATING(2, 75) },
|
||||
@@ -78,46 +78,46 @@ constexpr RideTypeDescriptor LayDownRollerCoasterRTD =
|
||||
{ RatingsModifierType::RequirementNumDrops, 2, 2, 2, 2 },
|
||||
{ RatingsModifierType::PenaltyLateralGs, 0, 24576, 38130, 49648 },
|
||||
},
|
||||
}),
|
||||
},
|
||||
};
|
||||
|
||||
constexpr RideTypeDescriptor LayDownRollerCoasterAltRTD =
|
||||
{
|
||||
SET_FIELD(AlternateType, RIDE_TYPE_NULL),
|
||||
SET_FIELD(Category, RIDE_CATEGORY_NONE),
|
||||
SET_FIELD(EnabledTrackPieces, {TRACK_STRAIGHT, TRACK_FLAT_ROLL_BANKING, TRACK_SLOPE, TRACK_SLOPE_STEEP_UP, TRACK_SLOPE_STEEP_DOWN, TRACK_SLOPE_CURVE, TRACK_SLOPE_CURVE_STEEP, TRACK_S_BEND, TRACK_CURVE_SMALL, TRACK_CURVE, TRACK_CURVE_LARGE, TRACK_HELIX_DOWN_BANKED_QUARTER, TRACK_HELIX_UP_BANKED_QUARTER, TRACK_BRAKES, TRACK_ON_RIDE_PHOTO, TRACK_BLOCK_BRAKES, TRACK_INLINE_TWIST_INVERTED, TRACK_FLYING_HALF_LOOP_INVERTED_DOWN, TRACK_CORKSCREW_INVERTED}),
|
||||
SET_FIELD(ExtraTrackPieces, {TRACK_FLYING_HALF_LOOP_INVERTED_UP, TRACK_STATION_END, TRACK_LIFT_HILL}),
|
||||
SET_FIELD(CoveredTrackPieces, {}),
|
||||
SET_FIELD(StartTrackPiece, TrackElemType::EndStation),
|
||||
SET_FIELD(TrackPaintFunctions, TrackDrawerDescriptor(nullptr)),
|
||||
SET_FIELD(Flags, RIDE_TYPE_FLAGS_TRACK_HAS_3_COLOURS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION |
|
||||
RIDE_TYPE_FLAGS_COMMON_COASTER),
|
||||
SET_FIELD(RideModes, EnumsToFlags(RideMode::ContinuousCircuit, RideMode::ContinuousCircuitBlockSectioned)),
|
||||
SET_FIELD(DefaultMode, RideMode::ContinuousCircuit),
|
||||
SET_FIELD(OperatingSettings, { 10, 27, 30, 25, 25, 0 }),
|
||||
SET_FIELD(Naming, { STR_RIDE_NAME_40, STR_RIDE_DESCRIPTION_UNKNOWN }),
|
||||
SET_FIELD(NameConvention, { RideComponentType::Train, RideComponentType::Track, RideComponentType::Station }),
|
||||
SET_FIELD(EnumName, nameof(RIDE_TYPE_LAY_DOWN_ROLLER_COASTER_ALT)),
|
||||
SET_FIELD(AvailableBreakdowns, (1 << BREAKDOWN_SAFETY_CUT_OUT) | (1 << BREAKDOWN_RESTRAINTS_STUCK_CLOSED) | (1 << BREAKDOWN_RESTRAINTS_STUCK_OPEN) | (1 << BREAKDOWN_VEHICLE_MALFUNCTION) | (1 << BREAKDOWN_BRAKES_FAILURE)),
|
||||
SET_FIELD(Heights, { 26, 24, 8, 11, }),
|
||||
SET_FIELD(MaxMass, 25),
|
||||
SET_FIELD(LiftData, { OpenRCT2::Audio::SoundId::LiftClassic, 4, 6 }),
|
||||
SET_FIELD(RatingsMultipliers, { 50, 30, 10 }),
|
||||
SET_FIELD(UpkeepCosts, { 49, 20, 90, 11, 3, 15 }),
|
||||
SET_FIELD(BuildCosts, { 53.50_GBP, 2.50_GBP, 50, }),
|
||||
SET_FIELD(DefaultPrices, { 20, 20 }),
|
||||
SET_FIELD(DefaultMusic, MUSIC_OBJECT_ROCK_1),
|
||||
SET_FIELD(PhotoItem, ShopItem::Photo2),
|
||||
SET_FIELD(BonusValue, 100),
|
||||
SET_FIELD(ColourPresets, TRACK_COLOUR_PRESETS(
|
||||
.AlternateType = RIDE_TYPE_NULL,
|
||||
.Category = RIDE_CATEGORY_NONE,
|
||||
.EnabledTrackPieces = {TRACK_STRAIGHT, TRACK_FLAT_ROLL_BANKING, TRACK_SLOPE, TRACK_SLOPE_STEEP_UP, TRACK_SLOPE_STEEP_DOWN, TRACK_SLOPE_CURVE, TRACK_SLOPE_CURVE_STEEP, TRACK_S_BEND, TRACK_CURVE_SMALL, TRACK_CURVE, TRACK_CURVE_LARGE, TRACK_HELIX_DOWN_BANKED_QUARTER, TRACK_HELIX_UP_BANKED_QUARTER, TRACK_BRAKES, TRACK_ON_RIDE_PHOTO, TRACK_BLOCK_BRAKES, TRACK_INLINE_TWIST_INVERTED, TRACK_FLYING_HALF_LOOP_INVERTED_DOWN, TRACK_CORKSCREW_INVERTED},
|
||||
.ExtraTrackPieces = {TRACK_FLYING_HALF_LOOP_INVERTED_UP, TRACK_STATION_END, TRACK_LIFT_HILL},
|
||||
.CoveredTrackPieces = {},
|
||||
.StartTrackPiece = TrackElemType::EndStation,
|
||||
.TrackPaintFunctions = TrackDrawerDescriptor(nullptr),
|
||||
.Flags = RIDE_TYPE_FLAGS_TRACK_HAS_3_COLOURS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION |
|
||||
RIDE_TYPE_FLAGS_COMMON_COASTER,
|
||||
.RideModes = EnumsToFlags(RideMode::ContinuousCircuit, RideMode::ContinuousCircuitBlockSectioned),
|
||||
.DefaultMode = RideMode::ContinuousCircuit,
|
||||
.OperatingSettings = { 10, 27, 30, 25, 25, 0 },
|
||||
.Naming = { STR_RIDE_NAME_40, STR_RIDE_DESCRIPTION_UNKNOWN },
|
||||
.NameConvention = { RideComponentType::Train, RideComponentType::Track, RideComponentType::Station },
|
||||
.EnumName = nameof(RIDE_TYPE_LAY_DOWN_ROLLER_COASTER_ALT),
|
||||
.AvailableBreakdowns = (1 << BREAKDOWN_SAFETY_CUT_OUT) | (1 << BREAKDOWN_RESTRAINTS_STUCK_CLOSED) | (1 << BREAKDOWN_RESTRAINTS_STUCK_OPEN) | (1 << BREAKDOWN_VEHICLE_MALFUNCTION) | (1 << BREAKDOWN_BRAKES_FAILURE),
|
||||
.Heights = { 26, 24, 8, 11, },
|
||||
.MaxMass = 25,
|
||||
.LiftData = { OpenRCT2::Audio::SoundId::LiftClassic, 4, 6 },
|
||||
.RatingsMultipliers = { 50, 30, 10 },
|
||||
.UpkeepCosts = { 49, 20, 90, 11, 3, 15 },
|
||||
.BuildCosts = { 53.50_GBP, 2.50_GBP, 50, },
|
||||
.DefaultPrices = { 20, 20 },
|
||||
.DefaultMusic = MUSIC_OBJECT_ROCK_1,
|
||||
.PhotoItem = ShopItem::Photo2,
|
||||
.BonusValue = 100,
|
||||
.ColourPresets = TRACK_COLOUR_PRESETS(
|
||||
{ COLOUR_BRIGHT_RED, COLOUR_BRIGHT_RED, COLOUR_YELLOW },
|
||||
{ COLOUR_DARK_PURPLE, COLOUR_DARK_PURPLE, COLOUR_YELLOW },
|
||||
{ COLOUR_YELLOW, COLOUR_YELLOW, COLOUR_DARK_GREEN },
|
||||
)),
|
||||
SET_FIELD(ColourPreview, { SPR_RIDE_DESIGN_PREVIEW_LAY_DOWN_ROLLER_COASTER_TRACK, SPR_RIDE_DESIGN_PREVIEW_LAY_DOWN_ROLLER_COASTER_SUPPORTS }),
|
||||
SET_FIELD(ColourKey, RideColourKey::Ride),
|
||||
SET_FIELD(Name, "lay_down_rc_alt"),
|
||||
SET_FIELD(RatingsData,
|
||||
),
|
||||
.ColourPreview = { SPR_RIDE_DESIGN_PREVIEW_LAY_DOWN_ROLLER_COASTER_TRACK, SPR_RIDE_DESIGN_PREVIEW_LAY_DOWN_ROLLER_COASTER_SUPPORTS },
|
||||
.ColourKey = RideColourKey::Ride,
|
||||
.Name = "lay_down_rc_alt",
|
||||
.RatingsData =
|
||||
{
|
||||
RatingsCalculationType::Normal,
|
||||
{ RIDE_RATING(3, 85), RIDE_RATING(1, 15), RIDE_RATING(2, 75) },
|
||||
@@ -143,6 +143,6 @@ constexpr RideTypeDescriptor LayDownRollerCoasterAltRTD =
|
||||
{ RatingsModifierType::RequirementNumDrops, 2, 2, 2, 2 },
|
||||
{ RatingsModifierType::PenaltyLateralGs, 0, 24576, 38130, 49648 },
|
||||
},
|
||||
}),
|
||||
},
|
||||
};
|
||||
// clang-format on
|
||||
|
||||
@@ -17,35 +17,35 @@
|
||||
// clang-format off
|
||||
constexpr RideTypeDescriptor LoopingRollerCoasterRTD =
|
||||
{
|
||||
SET_FIELD(AlternateType, RIDE_TYPE_NULL),
|
||||
SET_FIELD(Category, RIDE_CATEGORY_ROLLERCOASTER),
|
||||
SET_FIELD(EnabledTrackPieces, {TRACK_STRAIGHT, TRACK_STATION_END, TRACK_LIFT_HILL, TRACK_FLAT_ROLL_BANKING, TRACK_VERTICAL_LOOP, TRACK_SLOPE, TRACK_SLOPE_STEEP_UP, TRACK_SLOPE_STEEP_DOWN, TRACK_SLOPE_CURVE, TRACK_SLOPE_CURVE_STEEP, TRACK_S_BEND, TRACK_CURVE_SMALL, TRACK_CURVE, TRACK_CURVE_LARGE, TRACK_HELIX_DOWN_BANKED_HALF, TRACK_HELIX_UP_BANKED_HALF, TRACK_BRAKES, TRACK_ON_RIDE_PHOTO, TRACK_BLOCK_BRAKES, TRACK_SLOPE_ROLL_BANKING, TRACK_BOOSTER, TRACK_SLOPE_CURVE_BANKED, TRACK_SLOPE_STEEP_LONG, TRACK_DIAG_BRAKES, TRACK_DIAG_BLOCK_BRAKES}),
|
||||
SET_FIELD(ExtraTrackPieces, {TRACK_SLOPE_VERTICAL, TRACK_TWIST, TRACK_CORKSCREW, TRACK_CURVE_VERTICAL, TRACK_QUARTER_LOOP, TRACK_SLOPE_LONG, TRACK_BARREL_ROLL, TRACK_HALF_LOOP, TRACK_HALF_LOOP_MEDIUM, TRACK_HALF_LOOP_LARGE,TRACK_CORKSCREW_LARGE, TRACK_ZERO_G_ROLL, TRACK_ZERO_G_ROLL_LARGE}),
|
||||
SET_FIELD(CoveredTrackPieces, {}),
|
||||
SET_FIELD(StartTrackPiece, TrackElemType::EndStation),
|
||||
SET_FIELD(TrackPaintFunctions, TrackDrawerDescriptor(GetTrackPaintFunctionLoopingRC)),
|
||||
SET_FIELD(Flags, RIDE_TYPE_FLAGS_TRACK_HAS_3_COLOURS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION |
|
||||
.AlternateType = RIDE_TYPE_NULL,
|
||||
.Category = RIDE_CATEGORY_ROLLERCOASTER,
|
||||
.EnabledTrackPieces = {TRACK_STRAIGHT, TRACK_STATION_END, TRACK_LIFT_HILL, TRACK_FLAT_ROLL_BANKING, TRACK_VERTICAL_LOOP, TRACK_SLOPE, TRACK_SLOPE_STEEP_UP, TRACK_SLOPE_STEEP_DOWN, TRACK_SLOPE_CURVE, TRACK_SLOPE_CURVE_STEEP, TRACK_S_BEND, TRACK_CURVE_SMALL, TRACK_CURVE, TRACK_CURVE_LARGE, TRACK_HELIX_DOWN_BANKED_HALF, TRACK_HELIX_UP_BANKED_HALF, TRACK_BRAKES, TRACK_ON_RIDE_PHOTO, TRACK_BLOCK_BRAKES, TRACK_SLOPE_ROLL_BANKING, TRACK_BOOSTER, TRACK_SLOPE_CURVE_BANKED, TRACK_SLOPE_STEEP_LONG, TRACK_DIAG_BRAKES, TRACK_DIAG_BLOCK_BRAKES},
|
||||
.ExtraTrackPieces = {TRACK_SLOPE_VERTICAL, TRACK_TWIST, TRACK_CORKSCREW, TRACK_CURVE_VERTICAL, TRACK_QUARTER_LOOP, TRACK_SLOPE_LONG, TRACK_BARREL_ROLL, TRACK_HALF_LOOP, TRACK_HALF_LOOP_MEDIUM, TRACK_HALF_LOOP_LARGE,TRACK_CORKSCREW_LARGE, TRACK_ZERO_G_ROLL, TRACK_ZERO_G_ROLL_LARGE},
|
||||
.CoveredTrackPieces = {},
|
||||
.StartTrackPiece = TrackElemType::EndStation,
|
||||
.TrackPaintFunctions = TrackDrawerDescriptor(GetTrackPaintFunctionLoopingRC),
|
||||
.Flags = RIDE_TYPE_FLAGS_TRACK_HAS_3_COLOURS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION |
|
||||
RIDE_TYPE_FLAGS_COMMON_COASTER | RIDE_TYPE_FLAGS_COMMON_COASTER_NON_ALT |
|
||||
RIDE_TYPE_FLAG_PEEP_CHECK_GFORCES | RIDE_TYPE_FLAG_ALLOW_MULTIPLE_CIRCUITS |
|
||||
RIDE_TYPE_FLAG_ALLOW_REVERSED_TRAINS),
|
||||
SET_FIELD(RideModes, EnumsToFlags(RideMode::ContinuousCircuit, RideMode::ContinuousCircuitBlockSectioned, RideMode::ReverseInclineLaunchedShuttle, RideMode::PoweredLaunchPasstrough, RideMode::PoweredLaunch)),
|
||||
SET_FIELD(DefaultMode, RideMode::ContinuousCircuit),
|
||||
SET_FIELD(OperatingSettings, { 10, 27, 26, 18, 18, 0 }),
|
||||
SET_FIELD(Naming, { STR_RIDE_NAME_LOOPING_ROLLER_COASTER, STR_RIDE_DESCRIPTION_LOOPING_ROLLER_COASTER }),
|
||||
SET_FIELD(NameConvention, { RideComponentType::Train, RideComponentType::Track, RideComponentType::Station }),
|
||||
SET_FIELD(EnumName, nameof(RIDE_TYPE_LOOPING_ROLLER_COASTER)),
|
||||
SET_FIELD(AvailableBreakdowns, (1 << BREAKDOWN_SAFETY_CUT_OUT) | (1 << BREAKDOWN_RESTRAINTS_STUCK_CLOSED) | (1 << BREAKDOWN_RESTRAINTS_STUCK_OPEN) | (1 << BREAKDOWN_VEHICLE_MALFUNCTION) | (1 << BREAKDOWN_BRAKES_FAILURE)),
|
||||
SET_FIELD(Heights, { 35, 24, 5, 7, }),
|
||||
SET_FIELD(MaxMass, 18),
|
||||
SET_FIELD(LiftData, { OpenRCT2::Audio::SoundId::LiftClassic, 4, 6 }),
|
||||
SET_FIELD(RatingsMultipliers, { 50, 30, 10 }),
|
||||
SET_FIELD(UpkeepCosts, { 40, 20, 80, 10, 3, 10 }),
|
||||
SET_FIELD(BuildCosts, { 45.00_GBP, 2.50_GBP, 50, }),
|
||||
SET_FIELD(DefaultPrices, { 20, 20 }),
|
||||
SET_FIELD(DefaultMusic, MUSIC_OBJECT_ROCK_1),
|
||||
SET_FIELD(PhotoItem, ShopItem::Photo),
|
||||
SET_FIELD(BonusValue, 95),
|
||||
SET_FIELD(ColourPresets, TRACK_COLOUR_PRESETS(
|
||||
RIDE_TYPE_FLAG_ALLOW_REVERSED_TRAINS,
|
||||
.RideModes = EnumsToFlags(RideMode::ContinuousCircuit, RideMode::ContinuousCircuitBlockSectioned, RideMode::ReverseInclineLaunchedShuttle, RideMode::PoweredLaunchPasstrough, RideMode::PoweredLaunch),
|
||||
.DefaultMode = RideMode::ContinuousCircuit,
|
||||
.OperatingSettings = { 10, 27, 26, 18, 18, 0 },
|
||||
.Naming = { STR_RIDE_NAME_LOOPING_ROLLER_COASTER, STR_RIDE_DESCRIPTION_LOOPING_ROLLER_COASTER },
|
||||
.NameConvention = { RideComponentType::Train, RideComponentType::Track, RideComponentType::Station },
|
||||
.EnumName = nameof(RIDE_TYPE_LOOPING_ROLLER_COASTER),
|
||||
.AvailableBreakdowns = (1 << BREAKDOWN_SAFETY_CUT_OUT) | (1 << BREAKDOWN_RESTRAINTS_STUCK_CLOSED) | (1 << BREAKDOWN_RESTRAINTS_STUCK_OPEN) | (1 << BREAKDOWN_VEHICLE_MALFUNCTION) | (1 << BREAKDOWN_BRAKES_FAILURE),
|
||||
.Heights = { 35, 24, 5, 7, },
|
||||
.MaxMass = 18,
|
||||
.LiftData = { OpenRCT2::Audio::SoundId::LiftClassic, 4, 6 },
|
||||
.RatingsMultipliers = { 50, 30, 10 },
|
||||
.UpkeepCosts = { 40, 20, 80, 10, 3, 10 },
|
||||
.BuildCosts = { 45.00_GBP, 2.50_GBP, 50, },
|
||||
.DefaultPrices = { 20, 20 },
|
||||
.DefaultMusic = MUSIC_OBJECT_ROCK_1,
|
||||
.PhotoItem = ShopItem::Photo,
|
||||
.BonusValue = 95,
|
||||
.ColourPresets = TRACK_COLOUR_PRESETS(
|
||||
{ COLOUR_LIGHT_BROWN, COLOUR_LIGHT_BROWN, COLOUR_BLACK },
|
||||
{ COLOUR_BRIGHT_RED, COLOUR_BRIGHT_RED, COLOUR_BLACK },
|
||||
{ COLOUR_WHITE, COLOUR_WHITE, COLOUR_SATURATED_RED },
|
||||
@@ -54,11 +54,11 @@ constexpr RideTypeDescriptor LoopingRollerCoasterRTD =
|
||||
{ COLOUR_OLIVE_GREEN, COLOUR_OLIVE_GREEN, COLOUR_LIGHT_BROWN },
|
||||
{ COLOUR_GREY, COLOUR_LIGHT_ORANGE, COLOUR_GREY },
|
||||
{ COLOUR_GRASS_GREEN_LIGHT, COLOUR_SATURATED_GREEN_LIGHT, COLOUR_AQUA_DARK }, // Mindbender
|
||||
)),
|
||||
SET_FIELD(ColourPreview, { SPR_RIDE_DESIGN_PREVIEW_LOOPING_ROLLER_COASTER_TRACK, SPR_RIDE_DESIGN_PREVIEW_LOOPING_ROLLER_COASTER_SUPPORTS }),
|
||||
SET_FIELD(ColourKey, RideColourKey::Ride),
|
||||
SET_FIELD(Name, "looping_rc"),
|
||||
SET_FIELD(RatingsData,
|
||||
),
|
||||
.ColourPreview = { SPR_RIDE_DESIGN_PREVIEW_LOOPING_ROLLER_COASTER_TRACK, SPR_RIDE_DESIGN_PREVIEW_LOOPING_ROLLER_COASTER_SUPPORTS },
|
||||
.ColourKey = RideColourKey::Ride,
|
||||
.Name = "looping_rc",
|
||||
.RatingsData =
|
||||
{
|
||||
RatingsCalculationType::Normal,
|
||||
{ RIDE_RATING(3, 00), RIDE_RATING(0, 50), RIDE_RATING(0, 20) },
|
||||
@@ -85,6 +85,6 @@ constexpr RideTypeDescriptor LoopingRollerCoasterRTD =
|
||||
{ RatingsModifierType::RequirementNumDrops, 2, 2, 2, 2 },
|
||||
{ RatingsModifierType::PenaltyLateralGs, 0, 24576, 35746, 49648 },
|
||||
},
|
||||
}),
|
||||
},
|
||||
};
|
||||
// clang-format on
|
||||
|
||||
@@ -17,42 +17,42 @@
|
||||
// clang-format off
|
||||
constexpr RideTypeDescriptor MineRideRTD =
|
||||
{
|
||||
SET_FIELD(AlternateType, RIDE_TYPE_NULL),
|
||||
SET_FIELD(Category, RIDE_CATEGORY_ROLLERCOASTER),
|
||||
SET_FIELD(EnabledTrackPieces, {TRACK_STRAIGHT, TRACK_STATION_END, TRACK_FLAT_ROLL_BANKING, TRACK_SLOPE, TRACK_S_BEND, TRACK_CURVE_SMALL, TRACK_CURVE, TRACK_CURVE_LARGE, TRACK_HELIX_DOWN_BANKED_HALF, TRACK_HELIX_UP_BANKED_HALF, TRACK_ON_RIDE_PHOTO}),
|
||||
SET_FIELD(ExtraTrackPieces, {}),
|
||||
SET_FIELD(CoveredTrackPieces, {}),
|
||||
SET_FIELD(StartTrackPiece, TrackElemType::EndStation),
|
||||
SET_FIELD(TrackPaintFunctions, TrackDrawerDescriptor(GetTrackPaintFunctionMineRide)),
|
||||
SET_FIELD(Flags, RIDE_TYPE_FLAGS_TRACK_HAS_3_COLOURS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION |
|
||||
.AlternateType = RIDE_TYPE_NULL,
|
||||
.Category = RIDE_CATEGORY_ROLLERCOASTER,
|
||||
.EnabledTrackPieces = {TRACK_STRAIGHT, TRACK_STATION_END, TRACK_FLAT_ROLL_BANKING, TRACK_SLOPE, TRACK_S_BEND, TRACK_CURVE_SMALL, TRACK_CURVE, TRACK_CURVE_LARGE, TRACK_HELIX_DOWN_BANKED_HALF, TRACK_HELIX_UP_BANKED_HALF, TRACK_ON_RIDE_PHOTO},
|
||||
.ExtraTrackPieces = {},
|
||||
.CoveredTrackPieces = {},
|
||||
.StartTrackPiece = TrackElemType::EndStation,
|
||||
.TrackPaintFunctions = TrackDrawerDescriptor(GetTrackPaintFunctionMineRide),
|
||||
.Flags = RIDE_TYPE_FLAGS_TRACK_HAS_3_COLOURS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION |
|
||||
RIDE_TYPE_FLAGS_COMMON_COASTER | RIDE_TYPE_FLAGS_COMMON_COASTER_NON_ALT |
|
||||
RIDE_TYPE_FLAG_PEEP_CHECK_GFORCES | RIDE_TYPE_FLAG_ALLOW_MULTIPLE_CIRCUITS |
|
||||
RIDE_TYPE_FLAG_ALLOW_REVERSED_TRAINS),
|
||||
SET_FIELD(RideModes, EnumsToFlags(RideMode::ContinuousCircuit)),
|
||||
SET_FIELD(DefaultMode, RideMode::ContinuousCircuit),
|
||||
SET_FIELD(OperatingSettings, { 0, 0, 0, 0, 0, 0 }),
|
||||
SET_FIELD(Naming, { STR_RIDE_NAME_MINE_RIDE, STR_RIDE_DESCRIPTION_MINE_RIDE }),
|
||||
SET_FIELD(NameConvention, { RideComponentType::Train, RideComponentType::Track, RideComponentType::Station }),
|
||||
SET_FIELD(EnumName, nameof(RIDE_TYPE_MINE_RIDE)),
|
||||
SET_FIELD(AvailableBreakdowns, (1 << BREAKDOWN_SAFETY_CUT_OUT) | (1 << BREAKDOWN_RESTRAINTS_STUCK_CLOSED) | (1 << BREAKDOWN_RESTRAINTS_STUCK_OPEN) | (1 << BREAKDOWN_VEHICLE_MALFUNCTION)),
|
||||
SET_FIELD(Heights, { 13, 24, 9, 11, }),
|
||||
SET_FIELD(MaxMass, 27),
|
||||
SET_FIELD(LiftData, { OpenRCT2::Audio::SoundId::Null, 5, 5 }),
|
||||
SET_FIELD(RatingsMultipliers, { 60, 20, 10 }),
|
||||
SET_FIELD(UpkeepCosts, { 50, 20, 80, 10, 3, 10 }),
|
||||
SET_FIELD(BuildCosts, { 42.50_GBP, 2.00_GBP, 40, }),
|
||||
SET_FIELD(DefaultPrices, { 20, 20 }),
|
||||
SET_FIELD(DefaultMusic, MUSIC_OBJECT_WILD_WEST),
|
||||
SET_FIELD(PhotoItem, ShopItem::Photo),
|
||||
SET_FIELD(BonusValue, 70),
|
||||
SET_FIELD(ColourPresets, TRACK_COLOUR_PRESETS(
|
||||
RIDE_TYPE_FLAG_ALLOW_REVERSED_TRAINS,
|
||||
.RideModes = EnumsToFlags(RideMode::ContinuousCircuit),
|
||||
.DefaultMode = RideMode::ContinuousCircuit,
|
||||
.OperatingSettings = { 0, 0, 0, 0, 0, 0 },
|
||||
.Naming = { STR_RIDE_NAME_MINE_RIDE, STR_RIDE_DESCRIPTION_MINE_RIDE },
|
||||
.NameConvention = { RideComponentType::Train, RideComponentType::Track, RideComponentType::Station },
|
||||
.EnumName = nameof(RIDE_TYPE_MINE_RIDE),
|
||||
.AvailableBreakdowns = (1 << BREAKDOWN_SAFETY_CUT_OUT) | (1 << BREAKDOWN_RESTRAINTS_STUCK_CLOSED) | (1 << BREAKDOWN_RESTRAINTS_STUCK_OPEN) | (1 << BREAKDOWN_VEHICLE_MALFUNCTION),
|
||||
.Heights = { 13, 24, 9, 11, },
|
||||
.MaxMass = 27,
|
||||
.LiftData = { OpenRCT2::Audio::SoundId::Null, 5, 5 },
|
||||
.RatingsMultipliers = { 60, 20, 10 },
|
||||
.UpkeepCosts = { 50, 20, 80, 10, 3, 10 },
|
||||
.BuildCosts = { 42.50_GBP, 2.00_GBP, 40, },
|
||||
.DefaultPrices = { 20, 20 },
|
||||
.DefaultMusic = MUSIC_OBJECT_WILD_WEST,
|
||||
.PhotoItem = ShopItem::Photo,
|
||||
.BonusValue = 70,
|
||||
.ColourPresets = TRACK_COLOUR_PRESETS(
|
||||
{ COLOUR_DARK_BROWN, COLOUR_DARK_BROWN, COLOUR_BLACK },
|
||||
{ COLOUR_BORDEAUX_RED, COLOUR_BORDEAUX_RED, COLOUR_DARK_BROWN },
|
||||
)),
|
||||
SET_FIELD(ColourPreview, { SPR_RIDE_DESIGN_PREVIEW_MINE_RIDE_TRACK, SPR_RIDE_DESIGN_PREVIEW_MINE_RIDE_SUPPORTS }),
|
||||
SET_FIELD(ColourKey, RideColourKey::Ride),
|
||||
SET_FIELD(Name, "mine_ride"),
|
||||
SET_FIELD(RatingsData,
|
||||
),
|
||||
.ColourPreview = { SPR_RIDE_DESIGN_PREVIEW_MINE_RIDE_TRACK, SPR_RIDE_DESIGN_PREVIEW_MINE_RIDE_SUPPORTS },
|
||||
.ColourKey = RideColourKey::Ride,
|
||||
.Name = "mine_ride",
|
||||
.RatingsData =
|
||||
{
|
||||
RatingsCalculationType::Normal,
|
||||
{ RIDE_RATING(2, 75), RIDE_RATING(1, 00), RIDE_RATING(1, 80) },
|
||||
@@ -76,6 +76,6 @@ constexpr RideTypeDescriptor MineRideRTD =
|
||||
{ RatingsModifierType::RequirementLength, 0x10E0000, 2, 2, 2 },
|
||||
{ RatingsModifierType::PenaltyLateralGs, 0, 40960, 29789, 49648 },
|
||||
},
|
||||
}),
|
||||
},
|
||||
};
|
||||
// clang-format on
|
||||
|
||||
@@ -18,42 +18,42 @@
|
||||
// clang-format off
|
||||
constexpr RideTypeDescriptor MineTrainCoasterRTD =
|
||||
{
|
||||
SET_FIELD(AlternateType, RIDE_TYPE_NULL),
|
||||
SET_FIELD(Category, RIDE_CATEGORY_ROLLERCOASTER),
|
||||
SET_FIELD(EnabledTrackPieces, { TRACK_STRAIGHT, TRACK_STATION_END, TRACK_LIFT_HILL, TRACK_FLAT_ROLL_BANKING, TRACK_SLOPE, TRACK_SLOPE_STEEP_UP, TRACK_SLOPE_STEEP_DOWN, TRACK_SLOPE_CURVE, TRACK_S_BEND, TRACK_CURVE_SMALL, TRACK_CURVE, TRACK_CURVE_LARGE, TRACK_HELIX_DOWN_BANKED_HALF, TRACK_HELIX_UP_BANKED_HALF, TRACK_BRAKES, TRACK_ON_RIDE_PHOTO, TRACK_BLOCK_BRAKES, TRACK_DIAG_BRAKES, TRACK_DIAG_BLOCK_BRAKES}),
|
||||
SET_FIELD(ExtraTrackPieces, {}),
|
||||
SET_FIELD(CoveredTrackPieces, {}),
|
||||
SET_FIELD(StartTrackPiece, TrackElemType::EndStation),
|
||||
SET_FIELD(TrackPaintFunctions, TrackDrawerDescriptor(GetTrackPaintFunctionMineTrainRC)),
|
||||
SET_FIELD(Flags, RIDE_TYPE_FLAGS_TRACK_HAS_3_COLOURS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION |
|
||||
.AlternateType = RIDE_TYPE_NULL,
|
||||
.Category = RIDE_CATEGORY_ROLLERCOASTER,
|
||||
.EnabledTrackPieces = { TRACK_STRAIGHT, TRACK_STATION_END, TRACK_LIFT_HILL, TRACK_FLAT_ROLL_BANKING, TRACK_SLOPE, TRACK_SLOPE_STEEP_UP, TRACK_SLOPE_STEEP_DOWN, TRACK_SLOPE_CURVE, TRACK_S_BEND, TRACK_CURVE_SMALL, TRACK_CURVE, TRACK_CURVE_LARGE, TRACK_HELIX_DOWN_BANKED_HALF, TRACK_HELIX_UP_BANKED_HALF, TRACK_BRAKES, TRACK_ON_RIDE_PHOTO, TRACK_BLOCK_BRAKES, TRACK_DIAG_BRAKES, TRACK_DIAG_BLOCK_BRAKES},
|
||||
.ExtraTrackPieces = {},
|
||||
.CoveredTrackPieces = {},
|
||||
.StartTrackPiece = TrackElemType::EndStation,
|
||||
.TrackPaintFunctions = TrackDrawerDescriptor(GetTrackPaintFunctionMineTrainRC),
|
||||
.Flags = RIDE_TYPE_FLAGS_TRACK_HAS_3_COLOURS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION |
|
||||
RIDE_TYPE_FLAGS_COMMON_COASTER | RIDE_TYPE_FLAGS_COMMON_COASTER_NON_ALT |
|
||||
RIDE_TYPE_FLAG_PEEP_CHECK_GFORCES | RIDE_TYPE_FLAG_ALLOW_MULTIPLE_CIRCUITS |
|
||||
RIDE_TYPE_FLAG_ALLOW_REVERSED_TRAINS),
|
||||
SET_FIELD(RideModes, EnumsToFlags(RideMode::ContinuousCircuit, RideMode::ContinuousCircuitBlockSectioned)),
|
||||
SET_FIELD(DefaultMode, RideMode::ContinuousCircuit),
|
||||
SET_FIELD(OperatingSettings, { 0, 0, 0, 0, 0, 0 }),
|
||||
SET_FIELD(Naming, { STR_RIDE_NAME_MINE_TRAIN_COASTER, STR_RIDE_DESCRIPTION_MINE_TRAIN_COASTER }),
|
||||
SET_FIELD(NameConvention, { RideComponentType::Train, RideComponentType::Track, RideComponentType::Station }),
|
||||
SET_FIELD(EnumName, nameof(RIDE_TYPE_MINE_TRAIN_COASTER)),
|
||||
SET_FIELD(AvailableBreakdowns, (1 << BREAKDOWN_SAFETY_CUT_OUT) | (1 << BREAKDOWN_RESTRAINTS_STUCK_CLOSED) | (1 << BREAKDOWN_RESTRAINTS_STUCK_OPEN) | (1 << BREAKDOWN_VEHICLE_MALFUNCTION) | (1 << BREAKDOWN_BRAKES_FAILURE)),
|
||||
SET_FIELD(Heights, { 21, 24, 4, 7, }),
|
||||
SET_FIELD(MaxMass, 15),
|
||||
SET_FIELD(LiftData, { OpenRCT2::Audio::SoundId::LiftArrow, 4, 6 }),
|
||||
SET_FIELD(RatingsMultipliers, { 50, 30, 10 }),
|
||||
SET_FIELD(UpkeepCosts, { 40, 20, 80, 10, 3, 10 }),
|
||||
SET_FIELD(BuildCosts, { 41.00_GBP, 3.00_GBP, 50, }),
|
||||
SET_FIELD(DefaultPrices, { 20, 20 }),
|
||||
SET_FIELD(DefaultMusic, MUSIC_OBJECT_WILD_WEST),
|
||||
SET_FIELD(PhotoItem, ShopItem::Photo),
|
||||
SET_FIELD(BonusValue, 85),
|
||||
SET_FIELD(ColourPresets, TRACK_COLOUR_PRESETS(
|
||||
RIDE_TYPE_FLAG_ALLOW_REVERSED_TRAINS,
|
||||
.RideModes = EnumsToFlags(RideMode::ContinuousCircuit, RideMode::ContinuousCircuitBlockSectioned),
|
||||
.DefaultMode = RideMode::ContinuousCircuit,
|
||||
.OperatingSettings = { 0, 0, 0, 0, 0, 0 },
|
||||
.Naming = { STR_RIDE_NAME_MINE_TRAIN_COASTER, STR_RIDE_DESCRIPTION_MINE_TRAIN_COASTER },
|
||||
.NameConvention = { RideComponentType::Train, RideComponentType::Track, RideComponentType::Station },
|
||||
.EnumName = nameof(RIDE_TYPE_MINE_TRAIN_COASTER),
|
||||
.AvailableBreakdowns = (1 << BREAKDOWN_SAFETY_CUT_OUT) | (1 << BREAKDOWN_RESTRAINTS_STUCK_CLOSED) | (1 << BREAKDOWN_RESTRAINTS_STUCK_OPEN) | (1 << BREAKDOWN_VEHICLE_MALFUNCTION) | (1 << BREAKDOWN_BRAKES_FAILURE),
|
||||
.Heights = { 21, 24, 4, 7, },
|
||||
.MaxMass = 15,
|
||||
.LiftData = { OpenRCT2::Audio::SoundId::LiftArrow, 4, 6 },
|
||||
.RatingsMultipliers = { 50, 30, 10 },
|
||||
.UpkeepCosts = { 40, 20, 80, 10, 3, 10 },
|
||||
.BuildCosts = { 41.00_GBP, 3.00_GBP, 50, },
|
||||
.DefaultPrices = { 20, 20 },
|
||||
.DefaultMusic = MUSIC_OBJECT_WILD_WEST,
|
||||
.PhotoItem = ShopItem::Photo,
|
||||
.BonusValue = 85,
|
||||
.ColourPresets = TRACK_COLOUR_PRESETS(
|
||||
{ COLOUR_DARK_BROWN, COLOUR_GREY, COLOUR_DARK_BROWN },
|
||||
{ COLOUR_DARK_BROWN, COLOUR_GREY, COLOUR_BLACK },
|
||||
)),
|
||||
SET_FIELD(ColourPreview, { SPR_RIDE_DESIGN_PREVIEW_MINE_TRAIN_COASTER_TRACK, SPR_RIDE_DESIGN_PREVIEW_MINE_TRAIN_COASTER_SUPPORTS }),
|
||||
SET_FIELD(ColourKey, RideColourKey::Ride),
|
||||
SET_FIELD(Name, "mine_train_rc"),
|
||||
SET_FIELD(RatingsData,
|
||||
),
|
||||
.ColourPreview = { SPR_RIDE_DESIGN_PREVIEW_MINE_TRAIN_COASTER_TRACK, SPR_RIDE_DESIGN_PREVIEW_MINE_TRAIN_COASTER_SUPPORTS },
|
||||
.ColourKey = RideColourKey::Ride,
|
||||
.Name = "mine_train_rc",
|
||||
.RatingsData =
|
||||
{
|
||||
RatingsCalculationType::Normal,
|
||||
{ RIDE_RATING(2, 90), RIDE_RATING(2, 30), RIDE_RATING(2, 10) },
|
||||
@@ -81,8 +81,8 @@ constexpr RideTypeDescriptor MineTrainCoasterRTD =
|
||||
{ RatingsModifierType::RequirementNumDrops, 2, 2, 2, 2 },
|
||||
{ RatingsModifierType::PenaltyLateralGs, 0, 40960, 35746, 49648 },
|
||||
},
|
||||
}),
|
||||
SET_FIELD(UpdateRotating, UpdateRotatingDefault),
|
||||
SET_FIELD(LightFXAddLightsMagicVehicle, LightFxAddLightsMagicVehicle_MineTrainCoaster),
|
||||
},
|
||||
.UpdateRotating = UpdateRotatingDefault,
|
||||
.LightFXAddLightsMagicVehicle = LightFxAddLightsMagicVehicle_MineTrainCoaster,
|
||||
};
|
||||
// clang-format on
|
||||
|
||||
@@ -17,43 +17,43 @@
|
||||
// clang-format off
|
||||
constexpr RideTypeDescriptor MiniRollerCoasterRTD =
|
||||
{
|
||||
SET_FIELD(AlternateType, RIDE_TYPE_NULL),
|
||||
SET_FIELD(Category, RIDE_CATEGORY_ROLLERCOASTER),
|
||||
SET_FIELD(EnabledTrackPieces, { TRACK_STRAIGHT, TRACK_STATION_END, TRACK_FLAT_ROLL_BANKING, TRACK_SLOPE, TRACK_SLOPE_STEEP_UP, TRACK_SLOPE_STEEP_DOWN, TRACK_SLOPE_CURVE, TRACK_SLOPE_CURVE_STEEP, TRACK_S_BEND, TRACK_CURVE_SMALL, TRACK_CURVE, TRACK_CURVE_LARGE, TRACK_HELIX_DOWN_BANKED_HALF, TRACK_HELIX_UP_BANKED_HALF, TRACK_BRAKES, TRACK_ON_RIDE_PHOTO, TRACK_BLOCK_BRAKES, TRACK_SLOPE_ROLL_BANKING, TRACK_LIFT_HILL}),
|
||||
SET_FIELD(ExtraTrackPieces, {TRACK_BOOSTER, TRACK_LIFT_HILL_CURVED}),
|
||||
SET_FIELD(CoveredTrackPieces, {}),
|
||||
SET_FIELD(StartTrackPiece, TrackElemType::EndStation),
|
||||
SET_FIELD(TrackPaintFunctions, TrackDrawerDescriptor(GetTrackPaintFunctionMiniRC)),
|
||||
SET_FIELD(Flags, RIDE_TYPE_FLAGS_TRACK_HAS_3_COLOURS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION |
|
||||
.AlternateType = RIDE_TYPE_NULL,
|
||||
.Category = RIDE_CATEGORY_ROLLERCOASTER,
|
||||
.EnabledTrackPieces = { TRACK_STRAIGHT, TRACK_STATION_END, TRACK_FLAT_ROLL_BANKING, TRACK_SLOPE, TRACK_SLOPE_STEEP_UP, TRACK_SLOPE_STEEP_DOWN, TRACK_SLOPE_CURVE, TRACK_SLOPE_CURVE_STEEP, TRACK_S_BEND, TRACK_CURVE_SMALL, TRACK_CURVE, TRACK_CURVE_LARGE, TRACK_HELIX_DOWN_BANKED_HALF, TRACK_HELIX_UP_BANKED_HALF, TRACK_BRAKES, TRACK_ON_RIDE_PHOTO, TRACK_BLOCK_BRAKES, TRACK_SLOPE_ROLL_BANKING, TRACK_LIFT_HILL},
|
||||
.ExtraTrackPieces = {TRACK_BOOSTER, TRACK_LIFT_HILL_CURVED},
|
||||
.CoveredTrackPieces = {},
|
||||
.StartTrackPiece = TrackElemType::EndStation,
|
||||
.TrackPaintFunctions = TrackDrawerDescriptor(GetTrackPaintFunctionMiniRC),
|
||||
.Flags = RIDE_TYPE_FLAGS_TRACK_HAS_3_COLOURS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION |
|
||||
RIDE_TYPE_FLAGS_COMMON_COASTER | RIDE_TYPE_FLAGS_COMMON_COASTER_NON_ALT |
|
||||
RIDE_TYPE_FLAG_PEEP_CHECK_GFORCES | RIDE_TYPE_FLAG_ALLOW_MULTIPLE_CIRCUITS |
|
||||
RIDE_TYPE_FLAG_ALLOW_REVERSED_TRAINS),
|
||||
SET_FIELD(RideModes, EnumsToFlags(RideMode::ContinuousCircuit, RideMode::ContinuousCircuitBlockSectioned)),
|
||||
SET_FIELD(DefaultMode, RideMode::ContinuousCircuit),
|
||||
SET_FIELD(OperatingSettings, { 0, 0, 0, 0, 68, 1 }),
|
||||
SET_FIELD(Naming, { STR_RIDE_NAME_MINI_ROLLER_COASTER, STR_RIDE_DESCRIPTION_MINI_ROLLER_COASTER }),
|
||||
SET_FIELD(NameConvention, { RideComponentType::Car, RideComponentType::Track, RideComponentType::Station }),
|
||||
SET_FIELD(EnumName, nameof(RIDE_TYPE_MINI_ROLLER_COASTER)),
|
||||
SET_FIELD(AvailableBreakdowns, (1 << BREAKDOWN_SAFETY_CUT_OUT) | (1 << BREAKDOWN_RESTRAINTS_STUCK_CLOSED) | (1 << BREAKDOWN_RESTRAINTS_STUCK_OPEN) | (1 << BREAKDOWN_VEHICLE_MALFUNCTION) | (1 << BREAKDOWN_BRAKES_FAILURE)),
|
||||
SET_FIELD(Heights, { 16, 24, 9, 11, }),
|
||||
SET_FIELD(MaxMass, 10),
|
||||
SET_FIELD(LiftData, { OpenRCT2::Audio::SoundId::LiftClassic, 4, 6 }),
|
||||
SET_FIELD(RatingsMultipliers, { 50, 30, 10 }),
|
||||
SET_FIELD(UpkeepCosts, { 35, 20, 80, 8, 3, 10 }),
|
||||
SET_FIELD(BuildCosts, { 32.50_GBP, 2.00_GBP, 40, }),
|
||||
SET_FIELD(DefaultPrices, { 20, 20 }),
|
||||
SET_FIELD(DefaultMusic, MUSIC_OBJECT_SUMMER),
|
||||
SET_FIELD(PhotoItem, ShopItem::Photo),
|
||||
SET_FIELD(BonusValue, 60),
|
||||
SET_FIELD(ColourPresets, TRACK_COLOUR_PRESETS(
|
||||
RIDE_TYPE_FLAG_ALLOW_REVERSED_TRAINS,
|
||||
.RideModes = EnumsToFlags(RideMode::ContinuousCircuit, RideMode::ContinuousCircuitBlockSectioned),
|
||||
.DefaultMode = RideMode::ContinuousCircuit,
|
||||
.OperatingSettings = { 0, 0, 0, 0, 68, 1 },
|
||||
.Naming = { STR_RIDE_NAME_MINI_ROLLER_COASTER, STR_RIDE_DESCRIPTION_MINI_ROLLER_COASTER },
|
||||
.NameConvention = { RideComponentType::Car, RideComponentType::Track, RideComponentType::Station },
|
||||
.EnumName = nameof(RIDE_TYPE_MINI_ROLLER_COASTER),
|
||||
.AvailableBreakdowns = (1 << BREAKDOWN_SAFETY_CUT_OUT) | (1 << BREAKDOWN_RESTRAINTS_STUCK_CLOSED) | (1 << BREAKDOWN_RESTRAINTS_STUCK_OPEN) | (1 << BREAKDOWN_VEHICLE_MALFUNCTION) | (1 << BREAKDOWN_BRAKES_FAILURE),
|
||||
.Heights = { 16, 24, 9, 11, },
|
||||
.MaxMass = 10,
|
||||
.LiftData = { OpenRCT2::Audio::SoundId::LiftClassic, 4, 6 },
|
||||
.RatingsMultipliers = { 50, 30, 10 },
|
||||
.UpkeepCosts = { 35, 20, 80, 8, 3, 10 },
|
||||
.BuildCosts = { 32.50_GBP, 2.00_GBP, 40, },
|
||||
.DefaultPrices = { 20, 20 },
|
||||
.DefaultMusic = MUSIC_OBJECT_SUMMER,
|
||||
.PhotoItem = ShopItem::Photo,
|
||||
.BonusValue = 60,
|
||||
.ColourPresets = TRACK_COLOUR_PRESETS(
|
||||
{ COLOUR_GREY, COLOUR_GREY, COLOUR_DARK_BROWN },
|
||||
{ COLOUR_MOSS_GREEN, COLOUR_MOSS_GREEN, COLOUR_DARK_BROWN },
|
||||
{ COLOUR_SALMON_PINK, COLOUR_SALMON_PINK, COLOUR_BORDEAUX_RED },
|
||||
)),
|
||||
SET_FIELD(ColourPreview, { SPR_RIDE_DESIGN_PREVIEW_MINI_ROLLER_COASTER_TRACK, SPR_RIDE_DESIGN_PREVIEW_MINI_ROLLER_COASTER_SUPPORTS }),
|
||||
SET_FIELD(ColourKey, RideColourKey::Ride),
|
||||
SET_FIELD(Name, "mini_rc"),
|
||||
SET_FIELD(RatingsData,
|
||||
),
|
||||
.ColourPreview = { SPR_RIDE_DESIGN_PREVIEW_MINI_ROLLER_COASTER_TRACK, SPR_RIDE_DESIGN_PREVIEW_MINI_ROLLER_COASTER_SUPPORTS },
|
||||
.ColourKey = RideColourKey::Ride,
|
||||
.Name = "mini_rc",
|
||||
.RatingsData =
|
||||
{
|
||||
RatingsCalculationType::Normal,
|
||||
{ RIDE_RATING(2, 55), RIDE_RATING(2, 40), RIDE_RATING(1, 85) },
|
||||
@@ -80,6 +80,6 @@ constexpr RideTypeDescriptor MiniRollerCoasterRTD =
|
||||
{ RatingsModifierType::RequirementNumDrops, 2, 2, 2, 2 },
|
||||
{ RatingsModifierType::PenaltyLateralGs, 0, 20480, 23831, 49648 },
|
||||
},
|
||||
}),
|
||||
},
|
||||
};
|
||||
// clang-format on
|
||||
|
||||
@@ -17,42 +17,42 @@
|
||||
// clang-format off
|
||||
constexpr RideTypeDescriptor MiniSuspendedCoasterRTD =
|
||||
{
|
||||
SET_FIELD(AlternateType, RIDE_TYPE_NULL),
|
||||
SET_FIELD(Category, RIDE_CATEGORY_ROLLERCOASTER),
|
||||
SET_FIELD(EnabledTrackPieces, { TRACK_STRAIGHT, TRACK_STATION_END, TRACK_LIFT_HILL, TRACK_SLOPE, TRACK_S_BEND, TRACK_CURVE_SMALL, TRACK_CURVE, TRACK_CURVE_LARGE}),
|
||||
SET_FIELD(ExtraTrackPieces, {}),
|
||||
SET_FIELD(CoveredTrackPieces, {}),
|
||||
SET_FIELD(StartTrackPiece, TrackElemType::EndStation),
|
||||
SET_FIELD(TrackPaintFunctions, TrackDrawerDescriptor(GetTrackPaintFunctionMiniSuspendedRC)),
|
||||
SET_FIELD(Flags, RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_MAIN | RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_SUPPORTS |
|
||||
.AlternateType = RIDE_TYPE_NULL,
|
||||
.Category = RIDE_CATEGORY_ROLLERCOASTER,
|
||||
.EnabledTrackPieces = { TRACK_STRAIGHT, TRACK_STATION_END, TRACK_LIFT_HILL, TRACK_SLOPE, TRACK_S_BEND, TRACK_CURVE_SMALL, TRACK_CURVE, TRACK_CURVE_LARGE},
|
||||
.ExtraTrackPieces = {},
|
||||
.CoveredTrackPieces = {},
|
||||
.StartTrackPiece = TrackElemType::EndStation,
|
||||
.TrackPaintFunctions = TrackDrawerDescriptor(GetTrackPaintFunctionMiniSuspendedRC),
|
||||
.Flags = RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_MAIN | RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_SUPPORTS |
|
||||
RIDE_TYPE_FLAGS_COMMON_COASTER | RIDE_TYPE_FLAGS_COMMON_COASTER_NON_ALT |
|
||||
RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION |
|
||||
RIDE_TYPE_FLAG_PEEP_CHECK_GFORCES | RIDE_TYPE_FLAG_IS_SUSPENDED),
|
||||
SET_FIELD(RideModes, EnumsToFlags(RideMode::ContinuousCircuit)),
|
||||
SET_FIELD(DefaultMode, RideMode::ContinuousCircuit),
|
||||
SET_FIELD(OperatingSettings, { 0, 0, 0, 0, 0, 0 }),
|
||||
SET_FIELD(Naming, { STR_RIDE_NAME_MINI_SUSPENDED_COASTER, STR_RIDE_DESCRIPTION_MINI_SUSPENDED_COASTER }),
|
||||
SET_FIELD(NameConvention, { RideComponentType::Car, RideComponentType::Track, RideComponentType::Station }),
|
||||
SET_FIELD(EnumName, nameof(RIDE_TYPE_MINI_SUSPENDED_COASTER)),
|
||||
SET_FIELD(AvailableBreakdowns, (1 << BREAKDOWN_SAFETY_CUT_OUT) | (1 << BREAKDOWN_RESTRAINTS_STUCK_CLOSED) | (1 << BREAKDOWN_RESTRAINTS_STUCK_OPEN) | (1 << BREAKDOWN_VEHICLE_MALFUNCTION) | (1 << BREAKDOWN_BRAKES_FAILURE)),
|
||||
SET_FIELD(Heights, { 10, 24, 24, 8, }),
|
||||
SET_FIELD(MaxMass, 3),
|
||||
SET_FIELD(LiftData, { OpenRCT2::Audio::SoundId::LiftFrictionWheels, 4, 5 }),
|
||||
SET_FIELD(RatingsMultipliers, { 50, 30, 10 }),
|
||||
SET_FIELD(UpkeepCosts, { 40, 20, 80, 10, 3, 10 }),
|
||||
SET_FIELD(BuildCosts, { 30.00_GBP, 2.50_GBP, 40, }),
|
||||
SET_FIELD(DefaultPrices, { 20, 20 }),
|
||||
SET_FIELD(DefaultMusic, MUSIC_OBJECT_WILD_WEST),
|
||||
SET_FIELD(PhotoItem, ShopItem::Photo2),
|
||||
SET_FIELD(BonusValue, 50),
|
||||
SET_FIELD(ColourPresets, TRACK_COLOUR_PRESETS(
|
||||
RIDE_TYPE_FLAG_PEEP_CHECK_GFORCES | RIDE_TYPE_FLAG_IS_SUSPENDED,
|
||||
.RideModes = EnumsToFlags(RideMode::ContinuousCircuit),
|
||||
.DefaultMode = RideMode::ContinuousCircuit,
|
||||
.OperatingSettings = { 0, 0, 0, 0, 0, 0 },
|
||||
.Naming = { STR_RIDE_NAME_MINI_SUSPENDED_COASTER, STR_RIDE_DESCRIPTION_MINI_SUSPENDED_COASTER },
|
||||
.NameConvention = { RideComponentType::Car, RideComponentType::Track, RideComponentType::Station },
|
||||
.EnumName = nameof(RIDE_TYPE_MINI_SUSPENDED_COASTER),
|
||||
.AvailableBreakdowns = (1 << BREAKDOWN_SAFETY_CUT_OUT) | (1 << BREAKDOWN_RESTRAINTS_STUCK_CLOSED) | (1 << BREAKDOWN_RESTRAINTS_STUCK_OPEN) | (1 << BREAKDOWN_VEHICLE_MALFUNCTION) | (1 << BREAKDOWN_BRAKES_FAILURE),
|
||||
.Heights = { 10, 24, 24, 8, },
|
||||
.MaxMass = 3,
|
||||
.LiftData = { OpenRCT2::Audio::SoundId::LiftFrictionWheels, 4, 5 },
|
||||
.RatingsMultipliers = { 50, 30, 10 },
|
||||
.UpkeepCosts = { 40, 20, 80, 10, 3, 10 },
|
||||
.BuildCosts = { 30.00_GBP, 2.50_GBP, 40, },
|
||||
.DefaultPrices = { 20, 20 },
|
||||
.DefaultMusic = MUSIC_OBJECT_WILD_WEST,
|
||||
.PhotoItem = ShopItem::Photo2,
|
||||
.BonusValue = 50,
|
||||
.ColourPresets = TRACK_COLOUR_PRESETS(
|
||||
{ COLOUR_BLACK, COLOUR_BLACK, COLOUR_SATURATED_BROWN },
|
||||
{ COLOUR_BRIGHT_RED, COLOUR_BRIGHT_RED, COLOUR_BLACK },
|
||||
)),
|
||||
SET_FIELD(ColourPreview, { SPR_RIDE_DESIGN_PREVIEW_MINI_SUSPENDED_COASTER_TRACK, SPR_RIDE_DESIGN_PREVIEW_MINI_SUSPENDED_COASTER_SUPPORTS }),
|
||||
SET_FIELD(ColourKey, RideColourKey::Ride),
|
||||
SET_FIELD(Name, "mini_suspended_rc"),
|
||||
SET_FIELD(RatingsData,
|
||||
),
|
||||
.ColourPreview = { SPR_RIDE_DESIGN_PREVIEW_MINI_SUSPENDED_COASTER_TRACK, SPR_RIDE_DESIGN_PREVIEW_MINI_SUSPENDED_COASTER_SUPPORTS },
|
||||
.ColourKey = RideColourKey::Ride,
|
||||
.Name = "mini_suspended_rc",
|
||||
.RatingsData =
|
||||
{
|
||||
RatingsCalculationType::Normal,
|
||||
{ RIDE_RATING(2, 80), RIDE_RATING(2, 50), RIDE_RATING(2, 70) },
|
||||
@@ -78,6 +78,6 @@ constexpr RideTypeDescriptor MiniSuspendedCoasterRTD =
|
||||
{ RatingsModifierType::RequirementLength, 0xC80000, 2, 2, 2 },
|
||||
{ RatingsModifierType::PenaltyLateralGs, 0, 24576, 35746, 49648 },
|
||||
},
|
||||
}),
|
||||
},
|
||||
};
|
||||
// clang-format on
|
||||
|
||||
@@ -17,47 +17,47 @@
|
||||
// clang-format off
|
||||
constexpr RideTypeDescriptor MultiDimensionRollerCoasterRTD =
|
||||
{
|
||||
SET_FIELD(AlternateType, RIDE_TYPE_MULTI_DIMENSION_ROLLER_COASTER_ALT),
|
||||
SET_FIELD(Category, RIDE_CATEGORY_ROLLERCOASTER),
|
||||
SET_FIELD(EnabledTrackPieces, { TRACK_STRAIGHT, TRACK_STATION_END, TRACK_LIFT_HILL, TRACK_FLAT_ROLL_BANKING, TRACK_SLOPE, TRACK_SLOPE_STEEP_UP, TRACK_SLOPE_STEEP_DOWN, TRACK_S_BEND, TRACK_CURVE_SMALL, TRACK_CURVE, TRACK_CURVE_LARGE, TRACK_HELIX_DOWN_BANKED_HALF, TRACK_HELIX_UP_BANKED_HALF, TRACK_BRAKES, TRACK_ON_RIDE_PHOTO, TRACK_SLOPE_VERTICAL, TRACK_BLOCK_BRAKES, TRACK_INLINE_TWIST_UNINVERTED,TRACK_QUARTER_LOOP_UNINVERTED_UP, TRACK_QUARTER_LOOP_UNINVERTED_DOWN, TRACK_DIAG_BRAKES, TRACK_DIAG_BLOCK_BRAKES}),
|
||||
SET_FIELD(ExtraTrackPieces, {}),
|
||||
SET_FIELD(CoveredTrackPieces, {}),
|
||||
SET_FIELD(StartTrackPiece, TrackElemType::EndStation),
|
||||
SET_FIELD(TrackPaintFunctions, TrackDrawerDescriptor(GetTrackPaintFunctionMultiDimensionRC)),
|
||||
SET_FIELD(Flags, RIDE_TYPE_FLAGS_TRACK_HAS_3_COLOURS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION |
|
||||
.AlternateType = RIDE_TYPE_MULTI_DIMENSION_ROLLER_COASTER_ALT,
|
||||
.Category = RIDE_CATEGORY_ROLLERCOASTER,
|
||||
.EnabledTrackPieces = { TRACK_STRAIGHT, TRACK_STATION_END, TRACK_LIFT_HILL, TRACK_FLAT_ROLL_BANKING, TRACK_SLOPE, TRACK_SLOPE_STEEP_UP, TRACK_SLOPE_STEEP_DOWN, TRACK_S_BEND, TRACK_CURVE_SMALL, TRACK_CURVE, TRACK_CURVE_LARGE, TRACK_HELIX_DOWN_BANKED_HALF, TRACK_HELIX_UP_BANKED_HALF, TRACK_BRAKES, TRACK_ON_RIDE_PHOTO, TRACK_SLOPE_VERTICAL, TRACK_BLOCK_BRAKES, TRACK_INLINE_TWIST_UNINVERTED,TRACK_QUARTER_LOOP_UNINVERTED_UP, TRACK_QUARTER_LOOP_UNINVERTED_DOWN, TRACK_DIAG_BRAKES, TRACK_DIAG_BLOCK_BRAKES},
|
||||
.ExtraTrackPieces = {},
|
||||
.CoveredTrackPieces = {},
|
||||
.StartTrackPiece = TrackElemType::EndStation,
|
||||
.TrackPaintFunctions = TrackDrawerDescriptor(GetTrackPaintFunctionMultiDimensionRC),
|
||||
.Flags = RIDE_TYPE_FLAGS_TRACK_HAS_3_COLOURS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION |
|
||||
RIDE_TYPE_FLAGS_COMMON_COASTER | RIDE_TYPE_FLAGS_COMMON_COASTER_NON_ALT |
|
||||
RIDE_TYPE_FLAG_HAS_ALTERNATIVE_TRACK_TYPE | RIDE_TYPE_FLAG_PEEP_CHECK_GFORCES |
|
||||
RIDE_TYPE_FLAG_ALLOW_MULTIPLE_CIRCUITS | RIDE_TYPE_FLAG_HAS_SEAT_ROTATION |
|
||||
RIDE_TYPE_FLAG_ALLOW_REVERSED_TRAINS),
|
||||
SET_FIELD(RideModes, EnumsToFlags(RideMode::ContinuousCircuit, RideMode::ContinuousCircuitBlockSectioned)),
|
||||
SET_FIELD(DefaultMode, RideMode::ContinuousCircuit),
|
||||
SET_FIELD(OperatingSettings, { 10, 27, 30, 25, 25, 0 }),
|
||||
SET_FIELD(Naming, { STR_RIDE_NAME_MULTI_DIMENSION_ROLLER_COASTER, STR_RIDE_DESCRIPTION_MULTI_DIMENSION_ROLLER_COASTER }),
|
||||
SET_FIELD(NameConvention, { RideComponentType::Train, RideComponentType::Track, RideComponentType::Station }),
|
||||
SET_FIELD(EnumName, nameof(RIDE_TYPE_MULTI_DIMENSION_ROLLER_COASTER)),
|
||||
SET_FIELD(AvailableBreakdowns, (1 << BREAKDOWN_SAFETY_CUT_OUT) | (1 << BREAKDOWN_RESTRAINTS_STUCK_CLOSED) | (1 << BREAKDOWN_RESTRAINTS_STUCK_OPEN) | (1 << BREAKDOWN_VEHICLE_MALFUNCTION) | (1 << BREAKDOWN_BRAKES_FAILURE)),
|
||||
SET_FIELD(Heights, { 40, 24, 8, 11, }),
|
||||
SET_FIELD(MaxMass, 78),
|
||||
SET_FIELD(LiftData, { OpenRCT2::Audio::SoundId::LiftFrictionWheels, 4, 6 }),
|
||||
SET_FIELD(RatingsMultipliers, { 50, 30, 10 }),
|
||||
SET_FIELD(UpkeepCosts, { 75, 20, 90, 11, 3, 15 }),
|
||||
SET_FIELD(BuildCosts, { 90.00_GBP, 2.50_GBP, 50, }),
|
||||
SET_FIELD(DefaultPrices, { 20, 20 }),
|
||||
SET_FIELD(DefaultMusic, MUSIC_OBJECT_ROCK_3),
|
||||
SET_FIELD(PhotoItem, ShopItem::Photo2),
|
||||
SET_FIELD(BonusValue, 100),
|
||||
SET_FIELD(ColourPresets, TRACK_COLOUR_PRESETS(
|
||||
RIDE_TYPE_FLAG_ALLOW_REVERSED_TRAINS,
|
||||
.RideModes = EnumsToFlags(RideMode::ContinuousCircuit, RideMode::ContinuousCircuitBlockSectioned),
|
||||
.DefaultMode = RideMode::ContinuousCircuit,
|
||||
.OperatingSettings = { 10, 27, 30, 25, 25, 0 },
|
||||
.Naming = { STR_RIDE_NAME_MULTI_DIMENSION_ROLLER_COASTER, STR_RIDE_DESCRIPTION_MULTI_DIMENSION_ROLLER_COASTER },
|
||||
.NameConvention = { RideComponentType::Train, RideComponentType::Track, RideComponentType::Station },
|
||||
.EnumName = nameof(RIDE_TYPE_MULTI_DIMENSION_ROLLER_COASTER),
|
||||
.AvailableBreakdowns = (1 << BREAKDOWN_SAFETY_CUT_OUT) | (1 << BREAKDOWN_RESTRAINTS_STUCK_CLOSED) | (1 << BREAKDOWN_RESTRAINTS_STUCK_OPEN) | (1 << BREAKDOWN_VEHICLE_MALFUNCTION) | (1 << BREAKDOWN_BRAKES_FAILURE),
|
||||
.Heights = { 40, 24, 8, 11, },
|
||||
.MaxMass = 78,
|
||||
.LiftData = { OpenRCT2::Audio::SoundId::LiftFrictionWheels, 4, 6 },
|
||||
.RatingsMultipliers = { 50, 30, 10 },
|
||||
.UpkeepCosts = { 75, 20, 90, 11, 3, 15 },
|
||||
.BuildCosts = { 90.00_GBP, 2.50_GBP, 50, },
|
||||
.DefaultPrices = { 20, 20 },
|
||||
.DefaultMusic = MUSIC_OBJECT_ROCK_3,
|
||||
.PhotoItem = ShopItem::Photo2,
|
||||
.BonusValue = 100,
|
||||
.ColourPresets = TRACK_COLOUR_PRESETS(
|
||||
{ COLOUR_BRIGHT_PINK, COLOUR_YELLOW, COLOUR_YELLOW }, // X
|
||||
{ COLOUR_LIGHT_PURPLE, COLOUR_BRIGHT_RED, COLOUR_BRIGHT_RED },
|
||||
{ COLOUR_BORDEAUX_RED, COLOUR_WHITE, COLOUR_WHITE },
|
||||
{ COLOUR_BRIGHT_RED, COLOUR_BRIGHT_RED, COLOUR_BLACK }, // X2
|
||||
{ COLOUR_BORDEAUX_RED_DARK, COLOUR_DARK_YELLOW, COLOUR_OLIVE_DARK }, // Dinoconda
|
||||
{ COLOUR_BLACK, COLOUR_BLACK, COLOUR_GREY }, // Eejanaika
|
||||
)),
|
||||
SET_FIELD(ColourPreview, { SPR_RIDE_DESIGN_PREVIEW_MULTI_DIMENSION_ROLLER_COASTER_TRACK, SPR_RIDE_DESIGN_PREVIEW_MULTI_DIMENSION_ROLLER_COASTER_SUPPORTS }),
|
||||
SET_FIELD(ColourKey, RideColourKey::Ride),
|
||||
SET_FIELD(Name, "multi_dimension_rc"),
|
||||
SET_FIELD(RatingsData,
|
||||
),
|
||||
.ColourPreview = { SPR_RIDE_DESIGN_PREVIEW_MULTI_DIMENSION_ROLLER_COASTER_TRACK, SPR_RIDE_DESIGN_PREVIEW_MULTI_DIMENSION_ROLLER_COASTER_SUPPORTS },
|
||||
.ColourKey = RideColourKey::Ride,
|
||||
.Name = "multi_dimension_rc",
|
||||
.RatingsData =
|
||||
{
|
||||
RatingsCalculationType::Normal,
|
||||
{ RIDE_RATING(3, 75), RIDE_RATING(1, 95), RIDE_RATING(4, 79) },
|
||||
@@ -83,46 +83,46 @@ constexpr RideTypeDescriptor MultiDimensionRollerCoasterRTD =
|
||||
{ RatingsModifierType::RequirementNumDrops, 2, 2, 1, 1 },
|
||||
{ RatingsModifierType::PenaltyLateralGs, 0, 24576, 38130, 49648 },
|
||||
},
|
||||
}),
|
||||
},
|
||||
};
|
||||
|
||||
constexpr RideTypeDescriptor MultiDimensionRollerCoasterAltRTD =
|
||||
{
|
||||
SET_FIELD(AlternateType, RIDE_TYPE_NULL),
|
||||
SET_FIELD(Category, RIDE_CATEGORY_NONE),
|
||||
SET_FIELD(EnabledTrackPieces, {TRACK_STRAIGHT, TRACK_FLAT_ROLL_BANKING, TRACK_SLOPE, TRACK_SLOPE_STEEP_UP, TRACK_SLOPE_STEEP_DOWN, TRACK_S_BEND, TRACK_CURVE_SMALL, TRACK_CURVE, TRACK_CURVE_LARGE, TRACK_BRAKES, TRACK_ON_RIDE_PHOTO, TRACK_SLOPE_VERTICAL, TRACK_BLOCK_BRAKES, TRACK_INLINE_TWIST_INVERTED, TRACK_QUARTER_LOOP_INVERTED_UP, TRACK_QUARTER_LOOP_INVERTED_DOWN}),
|
||||
SET_FIELD(ExtraTrackPieces, {}),
|
||||
SET_FIELD(CoveredTrackPieces, {}),
|
||||
SET_FIELD(StartTrackPiece, TrackElemType::EndStation),
|
||||
SET_FIELD(TrackPaintFunctions, TrackDrawerDescriptor(nullptr)),
|
||||
SET_FIELD(Flags, RIDE_TYPE_FLAGS_TRACK_HAS_3_COLOURS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION |
|
||||
RIDE_TYPE_FLAGS_COMMON_COASTER | RIDE_TYPE_FLAG_HAS_SEAT_ROTATION),
|
||||
SET_FIELD(RideModes, EnumsToFlags(RideMode::ContinuousCircuit, RideMode::ContinuousCircuitBlockSectioned)),
|
||||
SET_FIELD(DefaultMode, RideMode::ContinuousCircuit),
|
||||
SET_FIELD(OperatingSettings, { 10, 27, 30, 25, 25, 0 }),
|
||||
SET_FIELD(Naming, { STR_RIDE_NAME_38, STR_RIDE_DESCRIPTION_UNKNOWN }),
|
||||
SET_FIELD(NameConvention, { RideComponentType::Train, RideComponentType::Track, RideComponentType::Station }),
|
||||
SET_FIELD(EnumName, nameof(RIDE_TYPE_MULTI_DIMENSION_ROLLER_COASTER_ALT)),
|
||||
SET_FIELD(AvailableBreakdowns, (1 << BREAKDOWN_SAFETY_CUT_OUT) | (1 << BREAKDOWN_RESTRAINTS_STUCK_CLOSED) | (1 << BREAKDOWN_RESTRAINTS_STUCK_OPEN) | (1 << BREAKDOWN_VEHICLE_MALFUNCTION) | (1 << BREAKDOWN_BRAKES_FAILURE)),
|
||||
SET_FIELD(Heights, { 40, 24, 8, 11, }),
|
||||
SET_FIELD(MaxMass, 78),
|
||||
SET_FIELD(LiftData, { OpenRCT2::Audio::SoundId::LiftFrictionWheels, 4, 6 }),
|
||||
SET_FIELD(RatingsMultipliers, { 50, 30, 10 }),
|
||||
SET_FIELD(UpkeepCosts, { 75, 20, 90, 11, 3, 15 }),
|
||||
SET_FIELD(BuildCosts, { 90.00_GBP, 2.50_GBP, 50, }),
|
||||
SET_FIELD(DefaultPrices, { 20, 20 }),
|
||||
SET_FIELD(DefaultMusic, MUSIC_OBJECT_ROCK_3),
|
||||
SET_FIELD(PhotoItem, ShopItem::Photo2),
|
||||
SET_FIELD(BonusValue, 100),
|
||||
SET_FIELD(ColourPresets, TRACK_COLOUR_PRESETS(
|
||||
.AlternateType = RIDE_TYPE_NULL,
|
||||
.Category = RIDE_CATEGORY_NONE,
|
||||
.EnabledTrackPieces = {TRACK_STRAIGHT, TRACK_FLAT_ROLL_BANKING, TRACK_SLOPE, TRACK_SLOPE_STEEP_UP, TRACK_SLOPE_STEEP_DOWN, TRACK_S_BEND, TRACK_CURVE_SMALL, TRACK_CURVE, TRACK_CURVE_LARGE, TRACK_BRAKES, TRACK_ON_RIDE_PHOTO, TRACK_SLOPE_VERTICAL, TRACK_BLOCK_BRAKES, TRACK_INLINE_TWIST_INVERTED, TRACK_QUARTER_LOOP_INVERTED_UP, TRACK_QUARTER_LOOP_INVERTED_DOWN},
|
||||
.ExtraTrackPieces = {},
|
||||
.CoveredTrackPieces = {},
|
||||
.StartTrackPiece = TrackElemType::EndStation,
|
||||
.TrackPaintFunctions = TrackDrawerDescriptor(nullptr),
|
||||
.Flags = RIDE_TYPE_FLAGS_TRACK_HAS_3_COLOURS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION |
|
||||
RIDE_TYPE_FLAGS_COMMON_COASTER | RIDE_TYPE_FLAG_HAS_SEAT_ROTATION,
|
||||
.RideModes = EnumsToFlags(RideMode::ContinuousCircuit, RideMode::ContinuousCircuitBlockSectioned),
|
||||
.DefaultMode = RideMode::ContinuousCircuit,
|
||||
.OperatingSettings = { 10, 27, 30, 25, 25, 0 },
|
||||
.Naming = { STR_RIDE_NAME_38, STR_RIDE_DESCRIPTION_UNKNOWN },
|
||||
.NameConvention = { RideComponentType::Train, RideComponentType::Track, RideComponentType::Station },
|
||||
.EnumName = nameof(RIDE_TYPE_MULTI_DIMENSION_ROLLER_COASTER_ALT),
|
||||
.AvailableBreakdowns = (1 << BREAKDOWN_SAFETY_CUT_OUT) | (1 << BREAKDOWN_RESTRAINTS_STUCK_CLOSED) | (1 << BREAKDOWN_RESTRAINTS_STUCK_OPEN) | (1 << BREAKDOWN_VEHICLE_MALFUNCTION) | (1 << BREAKDOWN_BRAKES_FAILURE),
|
||||
.Heights = { 40, 24, 8, 11, },
|
||||
.MaxMass = 78,
|
||||
.LiftData = { OpenRCT2::Audio::SoundId::LiftFrictionWheels, 4, 6 },
|
||||
.RatingsMultipliers = { 50, 30, 10 },
|
||||
.UpkeepCosts = { 75, 20, 90, 11, 3, 15 },
|
||||
.BuildCosts = { 90.00_GBP, 2.50_GBP, 50, },
|
||||
.DefaultPrices = { 20, 20 },
|
||||
.DefaultMusic = MUSIC_OBJECT_ROCK_3,
|
||||
.PhotoItem = ShopItem::Photo2,
|
||||
.BonusValue = 100,
|
||||
.ColourPresets = TRACK_COLOUR_PRESETS(
|
||||
{ COLOUR_BRIGHT_PINK, COLOUR_YELLOW, COLOUR_YELLOW },
|
||||
{ COLOUR_LIGHT_PURPLE, COLOUR_BRIGHT_RED, COLOUR_BRIGHT_RED },
|
||||
{ COLOUR_BORDEAUX_RED, COLOUR_WHITE, COLOUR_WHITE },
|
||||
)),
|
||||
SET_FIELD(ColourPreview, { SPR_RIDE_DESIGN_PREVIEW_MULTI_DIMENSION_ROLLER_COASTER_TRACK, SPR_RIDE_DESIGN_PREVIEW_MULTI_DIMENSION_ROLLER_COASTER_SUPPORTS }),
|
||||
SET_FIELD(ColourKey, RideColourKey::Ride),
|
||||
SET_FIELD(Name, "multi_dimension_rc_alt"),
|
||||
SET_FIELD(RatingsData,
|
||||
),
|
||||
.ColourPreview = { SPR_RIDE_DESIGN_PREVIEW_MULTI_DIMENSION_ROLLER_COASTER_TRACK, SPR_RIDE_DESIGN_PREVIEW_MULTI_DIMENSION_ROLLER_COASTER_SUPPORTS },
|
||||
.ColourKey = RideColourKey::Ride,
|
||||
.Name = "multi_dimension_rc_alt",
|
||||
.RatingsData =
|
||||
{
|
||||
RatingsCalculationType::Normal,
|
||||
{ RIDE_RATING(3, 75), RIDE_RATING(1, 95), RIDE_RATING(4, 79) },
|
||||
@@ -148,6 +148,6 @@ constexpr RideTypeDescriptor MultiDimensionRollerCoasterAltRTD =
|
||||
{ RatingsModifierType::RequirementNumDrops, 2, 2, 1, 1 },
|
||||
{ RatingsModifierType::PenaltyLateralGs, 0, 24576, 38130, 49648 },
|
||||
},
|
||||
}),
|
||||
},
|
||||
};
|
||||
// clang-format on
|
||||
|
||||
@@ -17,40 +17,40 @@
|
||||
// clang-format off
|
||||
constexpr RideTypeDescriptor ReverseFreefallCoasterRTD =
|
||||
{
|
||||
SET_FIELD(AlternateType, RIDE_TYPE_NULL),
|
||||
SET_FIELD(Category, RIDE_CATEGORY_ROLLERCOASTER),
|
||||
SET_FIELD(EnabledTrackPieces, { TRACK_STRAIGHT, TRACK_STATION_END, TRACK_LIFT_HILL_STEEP, TRACK_REVERSE_FREEFALL, TRACK_ON_RIDE_PHOTO}),
|
||||
SET_FIELD(ExtraTrackPieces, {}),
|
||||
SET_FIELD(CoveredTrackPieces, {}),
|
||||
SET_FIELD(StartTrackPiece, TrackElemType::EndStation),
|
||||
SET_FIELD(TrackPaintFunctions, TrackDrawerDescriptor(GetTrackPaintFunctionReverseFreefallRC)),
|
||||
SET_FIELD(Flags, RIDE_TYPE_FLAGS_TRACK_HAS_3_COLOURS | RIDE_TYPE_FLAGS_COMMON_COASTER | RIDE_TYPE_FLAGS_COMMON_COASTER_NON_ALT | RIDE_TYPE_FLAG_ALLOW_REVERSED_TRAINS),
|
||||
SET_FIELD(RideModes, EnumsToFlags(RideMode::LimPoweredLaunch)),
|
||||
SET_FIELD(DefaultMode, RideMode::LimPoweredLaunch),
|
||||
SET_FIELD(OperatingSettings, { 7, 30, 30, 40, 40, 0 }),
|
||||
SET_FIELD(Naming, { STR_RIDE_NAME_REVERSE_FREEFALL_COASTER, STR_RIDE_DESCRIPTION_REVERSE_FREEFALL_COASTER }),
|
||||
SET_FIELD(NameConvention, { RideComponentType::Car, RideComponentType::Track, RideComponentType::Station }),
|
||||
SET_FIELD(EnumName, nameof(RIDE_TYPE_REVERSE_FREEFALL_COASTER)),
|
||||
SET_FIELD(AvailableBreakdowns, (1 << BREAKDOWN_SAFETY_CUT_OUT) | (1 << BREAKDOWN_RESTRAINTS_STUCK_CLOSED) | (1 << BREAKDOWN_RESTRAINTS_STUCK_OPEN) | (1 << BREAKDOWN_VEHICLE_MALFUNCTION)),
|
||||
SET_FIELD(Heights, { 255, 32, 4, 7, }),
|
||||
SET_FIELD(MaxMass, 255),
|
||||
SET_FIELD(LiftData, { OpenRCT2::Audio::SoundId::Null, 5, 5 }),
|
||||
SET_FIELD(RatingsMultipliers, { 44, 66, 10 }),
|
||||
SET_FIELD(UpkeepCosts, { 80, 20, 0, 0, 0, 10 }),
|
||||
SET_FIELD(BuildCosts, { 100.00_GBP, 0.00_GBP, 45, }),
|
||||
SET_FIELD(DefaultPrices, { 20, 20 }),
|
||||
SET_FIELD(DefaultMusic, MUSIC_OBJECT_ROCK_1),
|
||||
SET_FIELD(PhotoItem, ShopItem::Photo),
|
||||
SET_FIELD(BonusValue, 70),
|
||||
SET_FIELD(ColourPresets, TRACK_COLOUR_PRESETS(
|
||||
.AlternateType = RIDE_TYPE_NULL,
|
||||
.Category = RIDE_CATEGORY_ROLLERCOASTER,
|
||||
.EnabledTrackPieces = { TRACK_STRAIGHT, TRACK_STATION_END, TRACK_LIFT_HILL_STEEP, TRACK_REVERSE_FREEFALL, TRACK_ON_RIDE_PHOTO},
|
||||
.ExtraTrackPieces = {},
|
||||
.CoveredTrackPieces = {},
|
||||
.StartTrackPiece = TrackElemType::EndStation,
|
||||
.TrackPaintFunctions = TrackDrawerDescriptor(GetTrackPaintFunctionReverseFreefallRC),
|
||||
.Flags = RIDE_TYPE_FLAGS_TRACK_HAS_3_COLOURS | RIDE_TYPE_FLAGS_COMMON_COASTER | RIDE_TYPE_FLAGS_COMMON_COASTER_NON_ALT | RIDE_TYPE_FLAG_ALLOW_REVERSED_TRAINS,
|
||||
.RideModes = EnumsToFlags(RideMode::LimPoweredLaunch),
|
||||
.DefaultMode = RideMode::LimPoweredLaunch,
|
||||
.OperatingSettings = { 7, 30, 30, 40, 40, 0 },
|
||||
.Naming = { STR_RIDE_NAME_REVERSE_FREEFALL_COASTER, STR_RIDE_DESCRIPTION_REVERSE_FREEFALL_COASTER },
|
||||
.NameConvention = { RideComponentType::Car, RideComponentType::Track, RideComponentType::Station },
|
||||
.EnumName = nameof(RIDE_TYPE_REVERSE_FREEFALL_COASTER),
|
||||
.AvailableBreakdowns = (1 << BREAKDOWN_SAFETY_CUT_OUT) | (1 << BREAKDOWN_RESTRAINTS_STUCK_CLOSED) | (1 << BREAKDOWN_RESTRAINTS_STUCK_OPEN) | (1 << BREAKDOWN_VEHICLE_MALFUNCTION),
|
||||
.Heights = { 255, 32, 4, 7, },
|
||||
.MaxMass = 255,
|
||||
.LiftData = { OpenRCT2::Audio::SoundId::Null, 5, 5 },
|
||||
.RatingsMultipliers = { 44, 66, 10 },
|
||||
.UpkeepCosts = { 80, 20, 0, 0, 0, 10 },
|
||||
.BuildCosts = { 100.00_GBP, 0.00_GBP, 45, },
|
||||
.DefaultPrices = { 20, 20 },
|
||||
.DefaultMusic = MUSIC_OBJECT_ROCK_1,
|
||||
.PhotoItem = ShopItem::Photo,
|
||||
.BonusValue = 70,
|
||||
.ColourPresets = TRACK_COLOUR_PRESETS(
|
||||
{ COLOUR_DARK_GREEN, COLOUR_YELLOW, COLOUR_DARK_GREEN },
|
||||
{ COLOUR_BORDEAUX_RED, COLOUR_BORDEAUX_RED, COLOUR_YELLOW },
|
||||
{ COLOUR_GREY, COLOUR_SALMON_PINK, COLOUR_GREY },
|
||||
)),
|
||||
SET_FIELD(ColourPreview, { SPR_RIDE_DESIGN_PREVIEW_REVERSE_FREEFALL_COASTER_TRACK, SPR_RIDE_DESIGN_PREVIEW_REVERSE_FREEFALL_COASTER_SUPPORTS }),
|
||||
SET_FIELD(ColourKey, RideColourKey::Ride),
|
||||
SET_FIELD(Name, "reverse_freefall_rc"),
|
||||
SET_FIELD(RatingsData,
|
||||
),
|
||||
.ColourPreview = { SPR_RIDE_DESIGN_PREVIEW_REVERSE_FREEFALL_COASTER_TRACK, SPR_RIDE_DESIGN_PREVIEW_REVERSE_FREEFALL_COASTER_SUPPORTS },
|
||||
.ColourKey = RideColourKey::Ride,
|
||||
.Name = "reverse_freefall_rc",
|
||||
.RatingsData =
|
||||
{
|
||||
RatingsCalculationType::Normal,
|
||||
{ RIDE_RATING(2, 00), RIDE_RATING(3, 20), RIDE_RATING(2, 80) },
|
||||
@@ -68,6 +68,6 @@ constexpr RideTypeDescriptor ReverseFreefallCoasterRTD =
|
||||
{ RatingsModifierType::BonusScenery, 0, 11155, 0, 0 },
|
||||
{ RatingsModifierType::RequirementDropHeight, 34, 2, 2, 2 },
|
||||
},
|
||||
}),
|
||||
},
|
||||
};
|
||||
// clang-format on
|
||||
|
||||
@@ -17,40 +17,40 @@
|
||||
// clang-format off
|
||||
constexpr RideTypeDescriptor ReverserRollerCoasterRTD =
|
||||
{
|
||||
SET_FIELD(AlternateType, RIDE_TYPE_NULL),
|
||||
SET_FIELD(Category, RIDE_CATEGORY_ROLLERCOASTER),
|
||||
SET_FIELD(EnabledTrackPieces, {TRACK_STRAIGHT, TRACK_STATION_END, TRACK_LIFT_HILL, TRACK_SLOPE, TRACK_S_BEND, TRACK_CURVE_SMALL, TRACK_CURVE, TRACK_BRAKES, TRACK_REVERSER}),
|
||||
SET_FIELD(ExtraTrackPieces, {}),
|
||||
SET_FIELD(CoveredTrackPieces, {}),
|
||||
SET_FIELD(StartTrackPiece, TrackElemType::EndStation),
|
||||
SET_FIELD(TrackPaintFunctions, TrackDrawerDescriptor(GetTrackPaintFunctionReverserRC)),
|
||||
SET_FIELD(Flags, RIDE_TYPE_FLAGS_TRACK_HAS_3_COLOURS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION |
|
||||
RIDE_TYPE_FLAGS_COMMON_COASTER | RIDE_TYPE_FLAGS_COMMON_COASTER_NON_ALT | RIDE_TYPE_FLAG_PEEP_CHECK_GFORCES),
|
||||
SET_FIELD(RideModes, EnumsToFlags(RideMode::ContinuousCircuit)),
|
||||
SET_FIELD(DefaultMode, RideMode::ContinuousCircuit),
|
||||
SET_FIELD(OperatingSettings, { 0, 0, 0, 0, 0, 0 }),
|
||||
SET_FIELD(Naming, { STR_RIDE_NAME_REVERSER_ROLLER_COASTER, STR_RIDE_DESCRIPTION_REVERSER_ROLLER_COASTER }),
|
||||
SET_FIELD(NameConvention, { RideComponentType::Car, RideComponentType::Track, RideComponentType::Station }),
|
||||
SET_FIELD(EnumName, nameof(RIDE_TYPE_REVERSER_ROLLER_COASTER)),
|
||||
SET_FIELD(AvailableBreakdowns, (1 << BREAKDOWN_SAFETY_CUT_OUT) | (1 << BREAKDOWN_VEHICLE_MALFUNCTION) | (1 << BREAKDOWN_BRAKES_FAILURE)),
|
||||
SET_FIELD(Heights, { 18, 24, 8, 11, }),
|
||||
SET_FIELD(MaxMass, 15),
|
||||
SET_FIELD(LiftData, { OpenRCT2::Audio::SoundId::LiftWood, 3, 5 }),
|
||||
SET_FIELD(RatingsMultipliers, { 48, 28, 7 }),
|
||||
SET_FIELD(UpkeepCosts, { 39, 20, 80, 10, 3, 10 }),
|
||||
SET_FIELD(BuildCosts, { 27.50_GBP, 3.00_GBP, 37, }),
|
||||
SET_FIELD(DefaultPrices, { 20, 20 }),
|
||||
SET_FIELD(DefaultMusic, MUSIC_OBJECT_TECHNO),
|
||||
SET_FIELD(PhotoItem, ShopItem::Photo3),
|
||||
SET_FIELD(BonusValue, 65),
|
||||
SET_FIELD(ColourPresets, TRACK_COLOUR_PRESETS(
|
||||
.AlternateType = RIDE_TYPE_NULL,
|
||||
.Category = RIDE_CATEGORY_ROLLERCOASTER,
|
||||
.EnabledTrackPieces = {TRACK_STRAIGHT, TRACK_STATION_END, TRACK_LIFT_HILL, TRACK_SLOPE, TRACK_S_BEND, TRACK_CURVE_SMALL, TRACK_CURVE, TRACK_BRAKES, TRACK_REVERSER},
|
||||
.ExtraTrackPieces = {},
|
||||
.CoveredTrackPieces = {},
|
||||
.StartTrackPiece = TrackElemType::EndStation,
|
||||
.TrackPaintFunctions = TrackDrawerDescriptor(GetTrackPaintFunctionReverserRC),
|
||||
.Flags = RIDE_TYPE_FLAGS_TRACK_HAS_3_COLOURS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION |
|
||||
RIDE_TYPE_FLAGS_COMMON_COASTER | RIDE_TYPE_FLAGS_COMMON_COASTER_NON_ALT | RIDE_TYPE_FLAG_PEEP_CHECK_GFORCES,
|
||||
.RideModes = EnumsToFlags(RideMode::ContinuousCircuit),
|
||||
.DefaultMode = RideMode::ContinuousCircuit,
|
||||
.OperatingSettings = { 0, 0, 0, 0, 0, 0 },
|
||||
.Naming = { STR_RIDE_NAME_REVERSER_ROLLER_COASTER, STR_RIDE_DESCRIPTION_REVERSER_ROLLER_COASTER },
|
||||
.NameConvention = { RideComponentType::Car, RideComponentType::Track, RideComponentType::Station },
|
||||
.EnumName = nameof(RIDE_TYPE_REVERSER_ROLLER_COASTER),
|
||||
.AvailableBreakdowns = (1 << BREAKDOWN_SAFETY_CUT_OUT) | (1 << BREAKDOWN_VEHICLE_MALFUNCTION) | (1 << BREAKDOWN_BRAKES_FAILURE),
|
||||
.Heights = { 18, 24, 8, 11, },
|
||||
.MaxMass = 15,
|
||||
.LiftData = { OpenRCT2::Audio::SoundId::LiftWood, 3, 5 },
|
||||
.RatingsMultipliers = { 48, 28, 7 },
|
||||
.UpkeepCosts = { 39, 20, 80, 10, 3, 10 },
|
||||
.BuildCosts = { 27.50_GBP, 3.00_GBP, 37, },
|
||||
.DefaultPrices = { 20, 20 },
|
||||
.DefaultMusic = MUSIC_OBJECT_TECHNO,
|
||||
.PhotoItem = ShopItem::Photo3,
|
||||
.BonusValue = 65,
|
||||
.ColourPresets = TRACK_COLOUR_PRESETS(
|
||||
{ COLOUR_DARK_BROWN, COLOUR_LIGHT_BROWN, COLOUR_DARK_BROWN },
|
||||
{ COLOUR_SATURATED_BROWN, COLOUR_BORDEAUX_RED, COLOUR_SATURATED_BROWN },
|
||||
)),
|
||||
SET_FIELD(ColourPreview, { SPR_RIDE_DESIGN_PREVIEW_REVERSER_ROLLER_COASTER_TRACK, SPR_RIDE_DESIGN_PREVIEW_REVERSER_ROLLER_COASTER_SUPPORTS }),
|
||||
SET_FIELD(ColourKey, RideColourKey::Ride),
|
||||
SET_FIELD(Name, "reverser_rc"),
|
||||
SET_FIELD(RatingsData,
|
||||
),
|
||||
.ColourPreview = { SPR_RIDE_DESIGN_PREVIEW_REVERSER_ROLLER_COASTER_TRACK, SPR_RIDE_DESIGN_PREVIEW_REVERSER_ROLLER_COASTER_SUPPORTS },
|
||||
.ColourKey = RideColourKey::Ride,
|
||||
.Name = "reverser_rc",
|
||||
.RatingsData =
|
||||
{
|
||||
RatingsCalculationType::Normal,
|
||||
{ RIDE_RATING(2, 40), RIDE_RATING(1, 80), RIDE_RATING(1, 70) },
|
||||
@@ -76,6 +76,6 @@ constexpr RideTypeDescriptor ReverserRollerCoasterRTD =
|
||||
{ RatingsModifierType::RequirementNumDrops, 2, 2, 1, 1 },
|
||||
{ RatingsModifierType::PenaltyLateralGs, 0, 28672, 23831, 49648 },
|
||||
},
|
||||
}),
|
||||
},
|
||||
};
|
||||
// clang-format on
|
||||
|
||||
@@ -17,44 +17,44 @@
|
||||
// clang-format off
|
||||
constexpr RideTypeDescriptor SideFrictionRollerCoasterRTD =
|
||||
{
|
||||
SET_FIELD(AlternateType, RIDE_TYPE_NULL),
|
||||
SET_FIELD(Category, RIDE_CATEGORY_ROLLERCOASTER),
|
||||
SET_FIELD(EnabledTrackPieces, {TRACK_STRAIGHT, TRACK_STATION_END, TRACK_LIFT_HILL, TRACK_SLOPE, TRACK_S_BEND, TRACK_CURVE_SMALL, TRACK_CURVE, TRACK_CURVE_LARGE, TRACK_BRAKES, TRACK_SLOPE_STEEP_UP, TRACK_SLOPE_STEEP_DOWN}),
|
||||
SET_FIELD(ExtraTrackPieces, {}),
|
||||
SET_FIELD(CoveredTrackPieces, {}),
|
||||
SET_FIELD(StartTrackPiece, TrackElemType::EndStation),
|
||||
SET_FIELD(TrackPaintFunctions, TrackDrawerDescriptor(GetTrackPaintFunctionSideFrictionRC)),
|
||||
SET_FIELD(Flags, RIDE_TYPE_FLAGS_TRACK_HAS_3_COLOURS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION |
|
||||
.AlternateType = RIDE_TYPE_NULL,
|
||||
.Category = RIDE_CATEGORY_ROLLERCOASTER,
|
||||
.EnabledTrackPieces = {TRACK_STRAIGHT, TRACK_STATION_END, TRACK_LIFT_HILL, TRACK_SLOPE, TRACK_S_BEND, TRACK_CURVE_SMALL, TRACK_CURVE, TRACK_CURVE_LARGE, TRACK_BRAKES, TRACK_SLOPE_STEEP_UP, TRACK_SLOPE_STEEP_DOWN},
|
||||
.ExtraTrackPieces = {},
|
||||
.CoveredTrackPieces = {},
|
||||
.StartTrackPiece = TrackElemType::EndStation,
|
||||
.TrackPaintFunctions = TrackDrawerDescriptor(GetTrackPaintFunctionSideFrictionRC),
|
||||
.Flags = RIDE_TYPE_FLAGS_TRACK_HAS_3_COLOURS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION |
|
||||
RIDE_TYPE_FLAGS_COMMON_COASTER | RIDE_TYPE_FLAGS_COMMON_COASTER_NON_ALT |
|
||||
RIDE_TYPE_FLAG_PEEP_CHECK_GFORCES | RIDE_TYPE_FLAG_ALLOW_MULTIPLE_CIRCUITS |
|
||||
RIDE_TYPE_FLAG_ALLOW_REVERSED_TRAINS),
|
||||
SET_FIELD(RideModes, EnumsToFlags(RideMode::ContinuousCircuit)),
|
||||
SET_FIELD(DefaultMode, RideMode::ContinuousCircuit),
|
||||
SET_FIELD(OperatingSettings, { 0, 0, 0, 0, 0, 0 }),
|
||||
SET_FIELD(Naming, { STR_RIDE_NAME_SIDE_FRICTION_ROLLER_COASTER, STR_RIDE_DESCRIPTION_SIDE_FRICTION_ROLLER_COASTER }),
|
||||
SET_FIELD(NameConvention, { RideComponentType::Train, RideComponentType::Track, RideComponentType::Station }),
|
||||
SET_FIELD(EnumName, nameof(RIDE_TYPE_SIDE_FRICTION_ROLLER_COASTER)),
|
||||
SET_FIELD(AvailableBreakdowns, (1 << BREAKDOWN_SAFETY_CUT_OUT) | (1 << BREAKDOWN_VEHICLE_MALFUNCTION) | (1 << BREAKDOWN_BRAKES_FAILURE)),
|
||||
SET_FIELD(Heights, { 18, 24, 4, 11, }),
|
||||
SET_FIELD(MaxMass, 15),
|
||||
SET_FIELD(LiftData, { OpenRCT2::Audio::SoundId::LiftWood, 3, 5 }),
|
||||
SET_FIELD(RatingsMultipliers, { 48, 28, 7 }),
|
||||
SET_FIELD(UpkeepCosts, { 39, 20, 80, 10, 3, 10 }),
|
||||
SET_FIELD(BuildCosts, { 27.50_GBP, 3.00_GBP, 37, }),
|
||||
SET_FIELD(DefaultPrices, { 20, 20 }),
|
||||
SET_FIELD(DefaultMusic, MUSIC_OBJECT_GENTLE),
|
||||
SET_FIELD(PhotoItem, ShopItem::Photo3),
|
||||
SET_FIELD(BonusValue, 65),
|
||||
SET_FIELD(ColourPresets, TRACK_COLOUR_PRESETS(
|
||||
RIDE_TYPE_FLAG_ALLOW_REVERSED_TRAINS,
|
||||
.RideModes = EnumsToFlags(RideMode::ContinuousCircuit),
|
||||
.DefaultMode = RideMode::ContinuousCircuit,
|
||||
.OperatingSettings = { 0, 0, 0, 0, 0, 0 },
|
||||
.Naming = { STR_RIDE_NAME_SIDE_FRICTION_ROLLER_COASTER, STR_RIDE_DESCRIPTION_SIDE_FRICTION_ROLLER_COASTER },
|
||||
.NameConvention = { RideComponentType::Train, RideComponentType::Track, RideComponentType::Station },
|
||||
.EnumName = nameof(RIDE_TYPE_SIDE_FRICTION_ROLLER_COASTER),
|
||||
.AvailableBreakdowns = (1 << BREAKDOWN_SAFETY_CUT_OUT) | (1 << BREAKDOWN_VEHICLE_MALFUNCTION) | (1 << BREAKDOWN_BRAKES_FAILURE),
|
||||
.Heights = { 18, 24, 4, 11, },
|
||||
.MaxMass = 15,
|
||||
.LiftData = { OpenRCT2::Audio::SoundId::LiftWood, 3, 5 },
|
||||
.RatingsMultipliers = { 48, 28, 7 },
|
||||
.UpkeepCosts = { 39, 20, 80, 10, 3, 10 },
|
||||
.BuildCosts = { 27.50_GBP, 3.00_GBP, 37, },
|
||||
.DefaultPrices = { 20, 20 },
|
||||
.DefaultMusic = MUSIC_OBJECT_GENTLE,
|
||||
.PhotoItem = ShopItem::Photo3,
|
||||
.BonusValue = 65,
|
||||
.ColourPresets = TRACK_COLOUR_PRESETS(
|
||||
{ COLOUR_WHITE, COLOUR_DARK_BROWN, COLOUR_WHITE },
|
||||
{ COLOUR_SATURATED_BROWN, COLOUR_WHITE, COLOUR_SATURATED_BROWN },
|
||||
{ COLOUR_DARK_BROWN, COLOUR_LIGHT_BROWN, COLOUR_DARK_BROWN },
|
||||
{ COLOUR_WHITE, COLOUR_DULL_GREEN_DARK, COLOUR_WHITE }, // Leap-The-Dips
|
||||
)),
|
||||
SET_FIELD(ColourPreview, { SPR_RIDE_DESIGN_PREVIEW_SIDE_FRICTION_ROLLER_COASTER_TRACK, SPR_RIDE_DESIGN_PREVIEW_SIDE_FRICTION_ROLLER_COASTER_SUPPORTS }),
|
||||
SET_FIELD(ColourKey, RideColourKey::Ride),
|
||||
SET_FIELD(Name, "side_friction_rc"),
|
||||
SET_FIELD(RatingsData,
|
||||
),
|
||||
.ColourPreview = { SPR_RIDE_DESIGN_PREVIEW_SIDE_FRICTION_ROLLER_COASTER_TRACK, SPR_RIDE_DESIGN_PREVIEW_SIDE_FRICTION_ROLLER_COASTER_SUPPORTS },
|
||||
.ColourKey = RideColourKey::Ride,
|
||||
.Name = "side_friction_rc",
|
||||
.RatingsData =
|
||||
{
|
||||
RatingsCalculationType::Normal,
|
||||
{ RIDE_RATING(2, 50), RIDE_RATING(2, 00), RIDE_RATING(1, 50) },
|
||||
@@ -81,6 +81,6 @@ constexpr RideTypeDescriptor SideFrictionRollerCoasterRTD =
|
||||
{ RatingsModifierType::RequirementNumDrops, 2, 2, 2, 2 },
|
||||
{ RatingsModifierType::PenaltyLateralGs, 0, 28672, 35746, 49648 },
|
||||
},
|
||||
}),
|
||||
},
|
||||
};
|
||||
// clang-format on
|
||||
|
||||
@@ -15,43 +15,43 @@
|
||||
// clang-format off
|
||||
constexpr RideTypeDescriptor SingleRailRollerCoasterRTD =
|
||||
{
|
||||
SET_FIELD(AlternateType, RIDE_TYPE_NULL),
|
||||
SET_FIELD(Category, RIDE_CATEGORY_ROLLERCOASTER),
|
||||
SET_FIELD(EnabledTrackPieces, { TRACK_FLAT, TRACK_STRAIGHT, TRACK_STATION_END, TRACK_LIFT_HILL, TRACK_LIFT_HILL_STEEP, TRACK_FLAT_ROLL_BANKING, TRACK_SLOPE, TRACK_SLOPE_LONG, TRACK_SLOPE_STEEP_UP, TRACK_SLOPE_STEEP_DOWN, TRACK_SLOPE_CURVE, TRACK_SLOPE_CURVE_STEEP, TRACK_S_BEND, TRACK_CURVE_SMALL, TRACK_CURVE, TRACK_CURVE_LARGE, TRACK_CORKSCREW, TRACK_HELIX_DOWN_BANKED_HALF, TRACK_HELIX_UP_BANKED_HALF, TRACK_BRAKES, TRACK_ON_RIDE_PHOTO, TRACK_SLOPE_VERTICAL, TRACK_BARREL_ROLL, TRACK_SLOPE_CURVE_BANKED, TRACK_BLOCK_BRAKES, TRACK_SLOPE_ROLL_BANKING, TRACK_CURVE_VERTICAL, TRACK_QUARTER_LOOP, TRACK_HALF_LOOP, TRACK_HALF_LOOP_MEDIUM, TRACK_CORKSCREW_LARGE, TRACK_ZERO_G_ROLL, TRACK_ZERO_G_ROLL_LARGE, TRACK_SLOPE_CURVE_LARGE, TRACK_DIAG_BRAKES, TRACK_DIAG_BLOCK_BRAKES}),
|
||||
SET_FIELD(ExtraTrackPieces, {TRACK_SLOPE_STEEP_LONG, TRACK_HALF_LOOP_LARGE}),
|
||||
SET_FIELD(CoveredTrackPieces, {}),
|
||||
SET_FIELD(StartTrackPiece, TrackElemType::EndStation),
|
||||
SET_FIELD(TrackPaintFunctions, TrackDrawerDescriptor(SingleRailRC::GetTrackPaintFunction)),
|
||||
SET_FIELD(Flags, RIDE_TYPE_FLAGS_TRACK_HAS_3_COLOURS | RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_SUPPORTS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION |
|
||||
.AlternateType = RIDE_TYPE_NULL,
|
||||
.Category = RIDE_CATEGORY_ROLLERCOASTER,
|
||||
.EnabledTrackPieces = { TRACK_FLAT, TRACK_STRAIGHT, TRACK_STATION_END, TRACK_LIFT_HILL, TRACK_LIFT_HILL_STEEP, TRACK_FLAT_ROLL_BANKING, TRACK_SLOPE, TRACK_SLOPE_LONG, TRACK_SLOPE_STEEP_UP, TRACK_SLOPE_STEEP_DOWN, TRACK_SLOPE_CURVE, TRACK_SLOPE_CURVE_STEEP, TRACK_S_BEND, TRACK_CURVE_SMALL, TRACK_CURVE, TRACK_CURVE_LARGE, TRACK_CORKSCREW, TRACK_HELIX_DOWN_BANKED_HALF, TRACK_HELIX_UP_BANKED_HALF, TRACK_BRAKES, TRACK_ON_RIDE_PHOTO, TRACK_SLOPE_VERTICAL, TRACK_BARREL_ROLL, TRACK_SLOPE_CURVE_BANKED, TRACK_BLOCK_BRAKES, TRACK_SLOPE_ROLL_BANKING, TRACK_CURVE_VERTICAL, TRACK_QUARTER_LOOP, TRACK_HALF_LOOP, TRACK_HALF_LOOP_MEDIUM, TRACK_CORKSCREW_LARGE, TRACK_ZERO_G_ROLL, TRACK_ZERO_G_ROLL_LARGE, TRACK_SLOPE_CURVE_LARGE, TRACK_DIAG_BRAKES, TRACK_DIAG_BLOCK_BRAKES},
|
||||
.ExtraTrackPieces = {TRACK_SLOPE_STEEP_LONG, TRACK_HALF_LOOP_LARGE},
|
||||
.CoveredTrackPieces = {},
|
||||
.StartTrackPiece = TrackElemType::EndStation,
|
||||
.TrackPaintFunctions = TrackDrawerDescriptor(SingleRailRC::GetTrackPaintFunction),
|
||||
.Flags = RIDE_TYPE_FLAGS_TRACK_HAS_3_COLOURS | RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_SUPPORTS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION |
|
||||
RIDE_TYPE_FLAGS_COMMON_COASTER | RIDE_TYPE_FLAGS_COMMON_COASTER_NON_ALT |
|
||||
RIDE_TYPE_FLAG_PEEP_CHECK_GFORCES | RIDE_TYPE_FLAG_ALLOW_MULTIPLE_CIRCUITS |
|
||||
RIDE_TYPE_FLAG_ALLOW_REVERSED_TRAINS),
|
||||
SET_FIELD(RideModes, EnumsToFlags(RideMode::ContinuousCircuit, RideMode::ContinuousCircuitBlockSectioned)),
|
||||
SET_FIELD(DefaultMode, RideMode::ContinuousCircuit),
|
||||
SET_FIELD(OperatingSettings, { 0, 0, 30, 15, 52, 0 }),
|
||||
SET_FIELD(Naming, { STR_RIDE_NAME_SINGLE_RAIL_ROLLER_COASTER, STR_RIDE_DESCRIPTION_SINGLE_RAIL_ROLLER_COASTER }),
|
||||
SET_FIELD(NameConvention, { RideComponentType::Train, RideComponentType::Track, RideComponentType::Station }),
|
||||
SET_FIELD(EnumName, nameof(RIDE_TYPE_SINGLE_RAIL_ROLLER_COASTER)),
|
||||
SET_FIELD(AvailableBreakdowns, (1 << BREAKDOWN_SAFETY_CUT_OUT) | (1 << BREAKDOWN_RESTRAINTS_STUCK_CLOSED) | (1 << BREAKDOWN_RESTRAINTS_STUCK_OPEN) | (1 << BREAKDOWN_VEHICLE_MALFUNCTION) | (1 << BREAKDOWN_BRAKES_FAILURE)),
|
||||
SET_FIELD(Heights, { 28, 24, 5, 7}),
|
||||
SET_FIELD(MaxMass, 18),
|
||||
SET_FIELD(LiftData, { OpenRCT2::Audio::SoundId::LiftRMC, 5, 8 }),
|
||||
SET_FIELD(RatingsMultipliers, { 52, 36, 10 }),
|
||||
SET_FIELD(UpkeepCosts, { 40, 20, 80, 10, 3, 10 }),
|
||||
SET_FIELD(BuildCosts, { 37.50_GBP, 2.50_GBP, 50}),
|
||||
SET_FIELD(DefaultPrices, { 20, 20 }),
|
||||
SET_FIELD(DefaultMusic, MUSIC_OBJECT_ROCK_1),
|
||||
SET_FIELD(PhotoItem, ShopItem::Photo),
|
||||
SET_FIELD(BonusValue, 80),
|
||||
SET_FIELD(ColourPresets, TRACK_COLOUR_PRESETS(
|
||||
RIDE_TYPE_FLAG_ALLOW_REVERSED_TRAINS,
|
||||
.RideModes = EnumsToFlags(RideMode::ContinuousCircuit, RideMode::ContinuousCircuitBlockSectioned),
|
||||
.DefaultMode = RideMode::ContinuousCircuit,
|
||||
.OperatingSettings = { 0, 0, 30, 15, 52, 0 },
|
||||
.Naming = { STR_RIDE_NAME_SINGLE_RAIL_ROLLER_COASTER, STR_RIDE_DESCRIPTION_SINGLE_RAIL_ROLLER_COASTER },
|
||||
.NameConvention = { RideComponentType::Train, RideComponentType::Track, RideComponentType::Station },
|
||||
.EnumName = nameof(RIDE_TYPE_SINGLE_RAIL_ROLLER_COASTER),
|
||||
.AvailableBreakdowns = (1 << BREAKDOWN_SAFETY_CUT_OUT) | (1 << BREAKDOWN_RESTRAINTS_STUCK_CLOSED) | (1 << BREAKDOWN_RESTRAINTS_STUCK_OPEN) | (1 << BREAKDOWN_VEHICLE_MALFUNCTION) | (1 << BREAKDOWN_BRAKES_FAILURE),
|
||||
.Heights = { 28, 24, 5, 7},
|
||||
.MaxMass = 18,
|
||||
.LiftData = { OpenRCT2::Audio::SoundId::LiftRMC, 5, 8 },
|
||||
.RatingsMultipliers = { 52, 36, 10 },
|
||||
.UpkeepCosts = { 40, 20, 80, 10, 3, 10 },
|
||||
.BuildCosts = { 37.50_GBP, 2.50_GBP, 50},
|
||||
.DefaultPrices = { 20, 20 },
|
||||
.DefaultMusic = MUSIC_OBJECT_ROCK_1,
|
||||
.PhotoItem = ShopItem::Photo,
|
||||
.BonusValue = 80,
|
||||
.ColourPresets = TRACK_COLOUR_PRESETS(
|
||||
{ COLOUR_LIGHT_ORANGE, COLOUR_LIGHT_ORANGE, COLOUR_WHITE },
|
||||
{ COLOUR_YELLOW, COLOUR_YELLOW, COLOUR_BLACK },
|
||||
{ COLOUR_LIGHT_BLUE, COLOUR_LIGHT_BLUE, COLOUR_DARK_GREEN }
|
||||
)),
|
||||
SET_FIELD(ColourPreview, { SPR_RIDE_DESIGN_PREVIEW_SINGLE_RAIL_ROLLER_COASTER_TRACK, SPR_RIDE_DESIGN_PREVIEW_SINGLE_RAIL_ROLLER_COASTER_SUPPORTS }),
|
||||
SET_FIELD(ColourKey, RideColourKey::Ride),
|
||||
SET_FIELD(Name, "single_rail_rc"),
|
||||
SET_FIELD(RatingsData,
|
||||
),
|
||||
.ColourPreview = { SPR_RIDE_DESIGN_PREVIEW_SINGLE_RAIL_ROLLER_COASTER_TRACK, SPR_RIDE_DESIGN_PREVIEW_SINGLE_RAIL_ROLLER_COASTER_SUPPORTS },
|
||||
.ColourKey = RideColourKey::Ride,
|
||||
.Name = "single_rail_rc",
|
||||
.RatingsData =
|
||||
{
|
||||
RatingsCalculationType::Normal,
|
||||
{ RIDE_RATING(3, 50), RIDE_RATING(0, 60), RIDE_RATING(0, 40) },
|
||||
@@ -78,6 +78,6 @@ constexpr RideTypeDescriptor SingleRailRollerCoasterRTD =
|
||||
{ RatingsModifierType::RequirementNumDrops, 2, 2, 2, 2 },
|
||||
{ RatingsModifierType::PenaltyLateralGs, 0, 24576, 35746, 49648 },
|
||||
},
|
||||
}),
|
||||
},
|
||||
};
|
||||
// clang-format on
|
||||
|
||||
@@ -16,42 +16,42 @@
|
||||
// clang-format off
|
||||
constexpr RideTypeDescriptor SpinningWildMouseRTD =
|
||||
{
|
||||
SET_FIELD(AlternateType, RIDE_TYPE_NULL),
|
||||
SET_FIELD(Category, RIDE_CATEGORY_ROLLERCOASTER),
|
||||
SET_FIELD(EnabledTrackPieces, {TRACK_STRAIGHT,TRACK_STATION_END,TRACK_LIFT_HILL, TRACK_SLOPE,TRACK_SLOPE_LONG,TRACK_CURVE_VERY_SMALL,TRACK_CURVE_SMALL, TRACK_BRAKES,TRACK_BLOCK_BRAKES,TRACK_ROTATION_CONTROL_TOGGLE}),
|
||||
SET_FIELD(ExtraTrackPieces, {TRACK_LIFT_HILL_STEEP, TRACK_SLOPE_STEEP_UP, TRACK_SLOPE_STEEP_DOWN, TRACK_SLOPE_CURVE}),
|
||||
SET_FIELD(CoveredTrackPieces, {}),
|
||||
SET_FIELD(StartTrackPiece, TrackElemType::EndStation),
|
||||
SET_FIELD(TrackPaintFunctions, TrackDrawerDescriptor(GetTrackPaintFunctionWildMouse)),
|
||||
SET_FIELD(Flags, RIDE_TYPE_FLAGS_TRACK_HAS_3_COLOURS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION |
|
||||
RIDE_TYPE_FLAGS_COMMON_COASTER | RIDE_TYPE_FLAGS_COMMON_COASTER_NON_ALT | RIDE_TYPE_FLAG_PEEP_CHECK_GFORCES),
|
||||
SET_FIELD(RideModes, EnumsToFlags(RideMode::ContinuousCircuit, RideMode::ContinuousCircuitBlockSectioned)),
|
||||
SET_FIELD(DefaultMode, RideMode::ContinuousCircuit),
|
||||
SET_FIELD(OperatingSettings, { 0, 0, 0, 0, 0, 0 }),
|
||||
SET_FIELD(Naming, { STR_SPINNING_WILD_MOUSE_GROUP, STR_SPINNING_WILD_MOUSE_GROUP_DESC }),
|
||||
SET_FIELD(NameConvention, { RideComponentType::Car, RideComponentType::Track, RideComponentType::Station }),
|
||||
SET_FIELD(EnumName, nameof(RIDE_TYPE_SPINNING_WILD_MOUSE)),
|
||||
SET_FIELD(AvailableBreakdowns, (1 << BREAKDOWN_SAFETY_CUT_OUT) | (1 << BREAKDOWN_RESTRAINTS_STUCK_CLOSED) | (1 << BREAKDOWN_RESTRAINTS_STUCK_OPEN) | (1 << BREAKDOWN_VEHICLE_MALFUNCTION) | (1 << BREAKDOWN_BRAKES_FAILURE)),
|
||||
SET_FIELD(Heights, { 16, 24, 4, 7, }),
|
||||
SET_FIELD(MaxMass, 4),
|
||||
SET_FIELD(LiftData, { OpenRCT2::Audio::SoundId::LiftWildMouse, 4, 6 }),
|
||||
SET_FIELD(RatingsMultipliers, { 50, 30, 30 }),
|
||||
SET_FIELD(UpkeepCosts, { 40, 20, 80, 9, 3, 10 }),
|
||||
SET_FIELD(BuildCosts, { 27.50_GBP, 2.00_GBP, 40, }),
|
||||
SET_FIELD(DefaultPrices, { 20, 20 }),
|
||||
SET_FIELD(DefaultMusic, MUSIC_OBJECT_ROCK_1),
|
||||
SET_FIELD(PhotoItem, ShopItem::Photo),
|
||||
SET_FIELD(BonusValue, 55),
|
||||
SET_FIELD(ColourPresets, TRACK_COLOUR_PRESETS(
|
||||
.AlternateType = RIDE_TYPE_NULL,
|
||||
.Category = RIDE_CATEGORY_ROLLERCOASTER,
|
||||
.EnabledTrackPieces = {TRACK_STRAIGHT,TRACK_STATION_END,TRACK_LIFT_HILL, TRACK_SLOPE,TRACK_SLOPE_LONG,TRACK_CURVE_VERY_SMALL,TRACK_CURVE_SMALL, TRACK_BRAKES,TRACK_BLOCK_BRAKES,TRACK_ROTATION_CONTROL_TOGGLE},
|
||||
.ExtraTrackPieces = {TRACK_LIFT_HILL_STEEP, TRACK_SLOPE_STEEP_UP, TRACK_SLOPE_STEEP_DOWN, TRACK_SLOPE_CURVE},
|
||||
.CoveredTrackPieces = {},
|
||||
.StartTrackPiece = TrackElemType::EndStation,
|
||||
.TrackPaintFunctions = TrackDrawerDescriptor(GetTrackPaintFunctionWildMouse),
|
||||
.Flags = RIDE_TYPE_FLAGS_TRACK_HAS_3_COLOURS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION |
|
||||
RIDE_TYPE_FLAGS_COMMON_COASTER | RIDE_TYPE_FLAGS_COMMON_COASTER_NON_ALT | RIDE_TYPE_FLAG_PEEP_CHECK_GFORCES,
|
||||
.RideModes = EnumsToFlags(RideMode::ContinuousCircuit, RideMode::ContinuousCircuitBlockSectioned),
|
||||
.DefaultMode = RideMode::ContinuousCircuit,
|
||||
.OperatingSettings = { 0, 0, 0, 0, 0, 0 },
|
||||
.Naming = { STR_SPINNING_WILD_MOUSE_GROUP, STR_SPINNING_WILD_MOUSE_GROUP_DESC },
|
||||
.NameConvention = { RideComponentType::Car, RideComponentType::Track, RideComponentType::Station },
|
||||
.EnumName = nameof(RIDE_TYPE_SPINNING_WILD_MOUSE),
|
||||
.AvailableBreakdowns = (1 << BREAKDOWN_SAFETY_CUT_OUT) | (1 << BREAKDOWN_RESTRAINTS_STUCK_CLOSED) | (1 << BREAKDOWN_RESTRAINTS_STUCK_OPEN) | (1 << BREAKDOWN_VEHICLE_MALFUNCTION) | (1 << BREAKDOWN_BRAKES_FAILURE),
|
||||
.Heights = { 16, 24, 4, 7, },
|
||||
.MaxMass = 4,
|
||||
.LiftData = { OpenRCT2::Audio::SoundId::LiftWildMouse, 4, 6 },
|
||||
.RatingsMultipliers = { 50, 30, 30 },
|
||||
.UpkeepCosts = { 40, 20, 80, 9, 3, 10 },
|
||||
.BuildCosts = { 27.50_GBP, 2.00_GBP, 40, },
|
||||
.DefaultPrices = { 20, 20 },
|
||||
.DefaultMusic = MUSIC_OBJECT_ROCK_1,
|
||||
.PhotoItem = ShopItem::Photo,
|
||||
.BonusValue = 55,
|
||||
.ColourPresets = TRACK_COLOUR_PRESETS(
|
||||
{ COLOUR_LIGHT_BLUE, COLOUR_LIGHT_BLUE, COLOUR_YELLOW },
|
||||
{ COLOUR_BRIGHT_RED, COLOUR_BRIGHT_RED, COLOUR_WHITE },
|
||||
{ COLOUR_DARK_PURPLE, COLOUR_BRIGHT_PINK, COLOUR_DARK_PURPLE },
|
||||
{ COLOUR_LIGHT_BROWN, COLOUR_LIGHT_BROWN, COLOUR_BORDEAUX_RED },
|
||||
)),
|
||||
SET_FIELD(ColourPreview, { SPR_RIDE_DESIGN_PREVIEW_WILD_MOUSE_TRACK, SPR_RIDE_DESIGN_PREVIEW_WILD_MOUSE_SUPPORTS }),
|
||||
SET_FIELD(ColourKey, RideColourKey::Ride),
|
||||
SET_FIELD(Name, "spinning_wild_mouse"),
|
||||
SET_FIELD(RatingsData,
|
||||
),
|
||||
.ColourPreview = { SPR_RIDE_DESIGN_PREVIEW_WILD_MOUSE_TRACK, SPR_RIDE_DESIGN_PREVIEW_WILD_MOUSE_SUPPORTS },
|
||||
.ColourKey = RideColourKey::Ride,
|
||||
.Name = "spinning_wild_mouse",
|
||||
.RatingsData =
|
||||
{
|
||||
RatingsCalculationType::Normal,
|
||||
{ RIDE_RATING(2, 80), RIDE_RATING(2, 50), RIDE_RATING(2, 10) },
|
||||
@@ -78,6 +78,6 @@ constexpr RideTypeDescriptor SpinningWildMouseRTD =
|
||||
{ RatingsModifierType::RequirementNumDrops, 2, 2, 2, 2 },
|
||||
{ RatingsModifierType::PenaltyLateralGs, 0, 102400, 35746, 49648 },
|
||||
},
|
||||
}),
|
||||
},
|
||||
};
|
||||
// clang-format on
|
||||
|
||||
@@ -17,41 +17,41 @@
|
||||
// clang-format off
|
||||
constexpr RideTypeDescriptor SpiralRollerCoasterRTD =
|
||||
{
|
||||
SET_FIELD(AlternateType, RIDE_TYPE_NULL),
|
||||
SET_FIELD(Category, RIDE_CATEGORY_ROLLERCOASTER),
|
||||
SET_FIELD(EnabledTrackPieces, {TRACK_STRAIGHT, TRACK_STATION_END, TRACK_FLAT_ROLL_BANKING, TRACK_SLOPE, TRACK_SLOPE_STEEP_UP, TRACK_SLOPE_STEEP_DOWN, TRACK_SLOPE_CURVE, TRACK_SLOPE_CURVE_STEEP, TRACK_S_BEND, TRACK_CURVE_SMALL, TRACK_CURVE, TRACK_CURVE_LARGE, TRACK_HELIX_DOWN_BANKED_HALF, TRACK_HELIX_UP_BANKED_HALF, TRACK_BRAKES, TRACK_ON_RIDE_PHOTO, TRACK_BLOCK_BRAKES, TRACK_SLOPE_ROLL_BANKING, TRACK_LIFT_HILL_CURVED}),
|
||||
SET_FIELD(ExtraTrackPieces, {TRACK_BOOSTER, TRACK_LIFT_HILL}),
|
||||
SET_FIELD(CoveredTrackPieces, {}),
|
||||
SET_FIELD(StartTrackPiece, TrackElemType::EndStation),
|
||||
SET_FIELD(TrackPaintFunctions, TrackDrawerDescriptor(GetTrackPaintFunctionMiniRC)),
|
||||
SET_FIELD(Flags, RIDE_TYPE_FLAGS_TRACK_HAS_3_COLOURS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION |
|
||||
.AlternateType = RIDE_TYPE_NULL,
|
||||
.Category = RIDE_CATEGORY_ROLLERCOASTER,
|
||||
.EnabledTrackPieces = {TRACK_STRAIGHT, TRACK_STATION_END, TRACK_FLAT_ROLL_BANKING, TRACK_SLOPE, TRACK_SLOPE_STEEP_UP, TRACK_SLOPE_STEEP_DOWN, TRACK_SLOPE_CURVE, TRACK_SLOPE_CURVE_STEEP, TRACK_S_BEND, TRACK_CURVE_SMALL, TRACK_CURVE, TRACK_CURVE_LARGE, TRACK_HELIX_DOWN_BANKED_HALF, TRACK_HELIX_UP_BANKED_HALF, TRACK_BRAKES, TRACK_ON_RIDE_PHOTO, TRACK_BLOCK_BRAKES, TRACK_SLOPE_ROLL_BANKING, TRACK_LIFT_HILL_CURVED},
|
||||
.ExtraTrackPieces = {TRACK_BOOSTER, TRACK_LIFT_HILL},
|
||||
.CoveredTrackPieces = {},
|
||||
.StartTrackPiece = TrackElemType::EndStation,
|
||||
.TrackPaintFunctions = TrackDrawerDescriptor(GetTrackPaintFunctionMiniRC),
|
||||
.Flags = RIDE_TYPE_FLAGS_TRACK_HAS_3_COLOURS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION |
|
||||
RIDE_TYPE_FLAGS_COMMON_COASTER | RIDE_TYPE_FLAGS_COMMON_COASTER_NON_ALT |
|
||||
RIDE_TYPE_FLAG_PEEP_CHECK_GFORCES | RIDE_TYPE_FLAG_ALLOW_MULTIPLE_CIRCUITS),
|
||||
SET_FIELD(RideModes, EnumsToFlags(RideMode::ContinuousCircuit, RideMode::ContinuousCircuitBlockSectioned)),
|
||||
SET_FIELD(DefaultMode, RideMode::ContinuousCircuit),
|
||||
SET_FIELD(OperatingSettings, { 10, 27, 30, 17, 17, 0 }),
|
||||
SET_FIELD(Naming, { STR_RIDE_NAME_SPIRAL_ROLLER_COASTER, STR_RIDE_DESCRIPTION_SPIRAL_ROLLER_COASTER }),
|
||||
SET_FIELD(NameConvention, { RideComponentType::Train, RideComponentType::Track, RideComponentType::Station }),
|
||||
SET_FIELD(EnumName, nameof(RIDE_TYPE_SPIRAL_ROLLER_COASTER)),
|
||||
SET_FIELD(AvailableBreakdowns, (1 << BREAKDOWN_SAFETY_CUT_OUT) | (1 << BREAKDOWN_VEHICLE_MALFUNCTION) | (1 << BREAKDOWN_BRAKES_FAILURE)),
|
||||
SET_FIELD(Heights, { 19, 24, 9, 11, }),
|
||||
SET_FIELD(MaxMass, 31),
|
||||
SET_FIELD(LiftData, { OpenRCT2::Audio::SoundId::LiftFrictionWheels, 7, 7 }),
|
||||
SET_FIELD(RatingsMultipliers, { 50, 30, 10 }),
|
||||
SET_FIELD(UpkeepCosts, { 41, 20, 80, 10, 3, 10 }),
|
||||
SET_FIELD(BuildCosts, { 35.00_GBP, 2.50_GBP, 50, }),
|
||||
SET_FIELD(DefaultPrices, { 20, 20 }),
|
||||
SET_FIELD(DefaultMusic, MUSIC_OBJECT_ROCK_3),
|
||||
SET_FIELD(PhotoItem, ShopItem::Photo),
|
||||
SET_FIELD(BonusValue, 85),
|
||||
SET_FIELD(ColourPresets, TRACK_COLOUR_PRESETS(
|
||||
RIDE_TYPE_FLAG_PEEP_CHECK_GFORCES | RIDE_TYPE_FLAG_ALLOW_MULTIPLE_CIRCUITS,
|
||||
.RideModes = EnumsToFlags(RideMode::ContinuousCircuit, RideMode::ContinuousCircuitBlockSectioned),
|
||||
.DefaultMode = RideMode::ContinuousCircuit,
|
||||
.OperatingSettings = { 10, 27, 30, 17, 17, 0 },
|
||||
.Naming = { STR_RIDE_NAME_SPIRAL_ROLLER_COASTER, STR_RIDE_DESCRIPTION_SPIRAL_ROLLER_COASTER },
|
||||
.NameConvention = { RideComponentType::Train, RideComponentType::Track, RideComponentType::Station },
|
||||
.EnumName = nameof(RIDE_TYPE_SPIRAL_ROLLER_COASTER),
|
||||
.AvailableBreakdowns = (1 << BREAKDOWN_SAFETY_CUT_OUT) | (1 << BREAKDOWN_VEHICLE_MALFUNCTION) | (1 << BREAKDOWN_BRAKES_FAILURE),
|
||||
.Heights = { 19, 24, 9, 11, },
|
||||
.MaxMass = 31,
|
||||
.LiftData = { OpenRCT2::Audio::SoundId::LiftFrictionWheels, 7, 7 },
|
||||
.RatingsMultipliers = { 50, 30, 10 },
|
||||
.UpkeepCosts = { 41, 20, 80, 10, 3, 10 },
|
||||
.BuildCosts = { 35.00_GBP, 2.50_GBP, 50, },
|
||||
.DefaultPrices = { 20, 20 },
|
||||
.DefaultMusic = MUSIC_OBJECT_ROCK_3,
|
||||
.PhotoItem = ShopItem::Photo,
|
||||
.BonusValue = 85,
|
||||
.ColourPresets = TRACK_COLOUR_PRESETS(
|
||||
{ COLOUR_BORDEAUX_RED, COLOUR_BORDEAUX_RED, COLOUR_DARK_GREEN },
|
||||
{ COLOUR_GREY, COLOUR_GREY, COLOUR_BORDEAUX_RED },
|
||||
)),
|
||||
SET_FIELD(ColourPreview, { SPR_RIDE_DESIGN_PREVIEW_SPIRAL_ROLLER_COASTER_TRACK, SPR_RIDE_DESIGN_PREVIEW_SPIRAL_ROLLER_COASTER_SUPPORTS }),
|
||||
SET_FIELD(ColourKey, RideColourKey::Ride),
|
||||
SET_FIELD(Name, "spiral_rc"),
|
||||
SET_FIELD(RatingsData,
|
||||
),
|
||||
.ColourPreview = { SPR_RIDE_DESIGN_PREVIEW_SPIRAL_ROLLER_COASTER_TRACK, SPR_RIDE_DESIGN_PREVIEW_SPIRAL_ROLLER_COASTER_SUPPORTS },
|
||||
.ColourKey = RideColourKey::Ride,
|
||||
.Name = "spiral_rc",
|
||||
.RatingsData =
|
||||
{
|
||||
RatingsCalculationType::Normal,
|
||||
{ RIDE_RATING(3, 30), RIDE_RATING(0, 30), RIDE_RATING(0, 30) },
|
||||
@@ -77,6 +77,6 @@ constexpr RideTypeDescriptor SpiralRollerCoasterRTD =
|
||||
{ RatingsModifierType::RequirementNumDrops, 2, 2, 2, 2 },
|
||||
{ RatingsModifierType::PenaltyLateralGs, 0, 36864, 30384, 49648 },
|
||||
},
|
||||
}),
|
||||
},
|
||||
};
|
||||
// clang-format on
|
||||
|
||||
@@ -17,46 +17,46 @@
|
||||
// clang-format off
|
||||
constexpr RideTypeDescriptor StandUpRollerCoasterRTD =
|
||||
{
|
||||
SET_FIELD(AlternateType, RIDE_TYPE_NULL),
|
||||
SET_FIELD(Category, RIDE_CATEGORY_ROLLERCOASTER),
|
||||
SET_FIELD(EnabledTrackPieces, {TRACK_STRAIGHT, TRACK_STATION_END, TRACK_LIFT_HILL, TRACK_FLAT_ROLL_BANKING, TRACK_VERTICAL_LOOP, TRACK_SLOPE, TRACK_SLOPE_STEEP_UP, TRACK_SLOPE_STEEP_DOWN, TRACK_SLOPE_CURVE, TRACK_S_BEND, TRACK_CURVE_SMALL, TRACK_CURVE, TRACK_CURVE_LARGE, TRACK_HALF_LOOP, TRACK_CORKSCREW, TRACK_HELIX_DOWN_BANKED_HALF, TRACK_HELIX_UP_BANKED_HALF, TRACK_BRAKES, TRACK_ON_RIDE_PHOTO, TRACK_BLOCK_BRAKES, TRACK_DIAG_BRAKES, TRACK_DIAG_BLOCK_BRAKES}),
|
||||
SET_FIELD(ExtraTrackPieces, {}),
|
||||
SET_FIELD(CoveredTrackPieces, {}),
|
||||
SET_FIELD(StartTrackPiece, TrackElemType::EndStation),
|
||||
SET_FIELD(TrackPaintFunctions, TrackDrawerDescriptor(GetTrackPaintFunctionStandUpRC)),
|
||||
SET_FIELD(Flags, RIDE_TYPE_FLAGS_TRACK_HAS_3_COLOURS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION |
|
||||
.AlternateType = RIDE_TYPE_NULL,
|
||||
.Category = RIDE_CATEGORY_ROLLERCOASTER,
|
||||
.EnabledTrackPieces = {TRACK_STRAIGHT, TRACK_STATION_END, TRACK_LIFT_HILL, TRACK_FLAT_ROLL_BANKING, TRACK_VERTICAL_LOOP, TRACK_SLOPE, TRACK_SLOPE_STEEP_UP, TRACK_SLOPE_STEEP_DOWN, TRACK_SLOPE_CURVE, TRACK_S_BEND, TRACK_CURVE_SMALL, TRACK_CURVE, TRACK_CURVE_LARGE, TRACK_HALF_LOOP, TRACK_CORKSCREW, TRACK_HELIX_DOWN_BANKED_HALF, TRACK_HELIX_UP_BANKED_HALF, TRACK_BRAKES, TRACK_ON_RIDE_PHOTO, TRACK_BLOCK_BRAKES, TRACK_DIAG_BRAKES, TRACK_DIAG_BLOCK_BRAKES},
|
||||
.ExtraTrackPieces = {},
|
||||
.CoveredTrackPieces = {},
|
||||
.StartTrackPiece = TrackElemType::EndStation,
|
||||
.TrackPaintFunctions = TrackDrawerDescriptor(GetTrackPaintFunctionStandUpRC),
|
||||
.Flags = RIDE_TYPE_FLAGS_TRACK_HAS_3_COLOURS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION |
|
||||
RIDE_TYPE_FLAGS_COMMON_COASTER | RIDE_TYPE_FLAGS_COMMON_COASTER_NON_ALT |
|
||||
RIDE_TYPE_FLAG_PEEP_CHECK_GFORCES | RIDE_TYPE_FLAG_ALLOW_MULTIPLE_CIRCUITS |
|
||||
RIDE_TYPE_FLAG_ALLOW_REVERSED_TRAINS),
|
||||
SET_FIELD(RideModes, EnumsToFlags(RideMode::ContinuousCircuit, RideMode::ContinuousCircuitBlockSectioned, RideMode::ReverseInclineLaunchedShuttle, RideMode::PoweredLaunchPasstrough, RideMode::PoweredLaunch)),
|
||||
SET_FIELD(DefaultMode, RideMode::ContinuousCircuit),
|
||||
SET_FIELD(OperatingSettings, { 7, 27, 0, 0, 0, 0 }),
|
||||
SET_FIELD(Naming, { STR_RIDE_NAME_STAND_UP_ROLLER_COASTER, STR_RIDE_DESCRIPTION_STAND_UP_ROLLER_COASTER }),
|
||||
SET_FIELD(NameConvention, { RideComponentType::Train, RideComponentType::Track, RideComponentType::Station }),
|
||||
SET_FIELD(EnumName, nameof(RIDE_TYPE_STAND_UP_ROLLER_COASTER)),
|
||||
SET_FIELD(AvailableBreakdowns, (1 << BREAKDOWN_SAFETY_CUT_OUT) | (1 << BREAKDOWN_RESTRAINTS_STUCK_CLOSED) | (1 << BREAKDOWN_RESTRAINTS_STUCK_OPEN) | (1 << BREAKDOWN_VEHICLE_MALFUNCTION) | (1 << BREAKDOWN_BRAKES_FAILURE)),
|
||||
SET_FIELD(Heights, { 25, 24, 9, 11, }),
|
||||
SET_FIELD(MaxMass, 18),
|
||||
SET_FIELD(LiftData, { OpenRCT2::Audio::SoundId::LiftClassic, 4, 6 }),
|
||||
SET_FIELD(RatingsMultipliers, { 50, 30, 10 }),
|
||||
SET_FIELD(UpkeepCosts, { 40, 20, 80, 10, 3, 10 }),
|
||||
SET_FIELD(BuildCosts, { 50.00_GBP, 2.50_GBP, 50, }),
|
||||
SET_FIELD(DefaultPrices, { 20, 20 }),
|
||||
SET_FIELD(DefaultMusic, MUSIC_OBJECT_TECHNO),
|
||||
SET_FIELD(PhotoItem, ShopItem::Photo),
|
||||
SET_FIELD(BonusValue, 90),
|
||||
SET_FIELD(ColourPresets, TRACK_COLOUR_PRESETS(
|
||||
RIDE_TYPE_FLAG_ALLOW_REVERSED_TRAINS,
|
||||
.RideModes = EnumsToFlags(RideMode::ContinuousCircuit, RideMode::ContinuousCircuitBlockSectioned, RideMode::ReverseInclineLaunchedShuttle, RideMode::PoweredLaunchPasstrough, RideMode::PoweredLaunch),
|
||||
.DefaultMode = RideMode::ContinuousCircuit,
|
||||
.OperatingSettings = { 7, 27, 0, 0, 0, 0 },
|
||||
.Naming = { STR_RIDE_NAME_STAND_UP_ROLLER_COASTER, STR_RIDE_DESCRIPTION_STAND_UP_ROLLER_COASTER },
|
||||
.NameConvention = { RideComponentType::Train, RideComponentType::Track, RideComponentType::Station },
|
||||
.EnumName = nameof(RIDE_TYPE_STAND_UP_ROLLER_COASTER),
|
||||
.AvailableBreakdowns = (1 << BREAKDOWN_SAFETY_CUT_OUT) | (1 << BREAKDOWN_RESTRAINTS_STUCK_CLOSED) | (1 << BREAKDOWN_RESTRAINTS_STUCK_OPEN) | (1 << BREAKDOWN_VEHICLE_MALFUNCTION) | (1 << BREAKDOWN_BRAKES_FAILURE),
|
||||
.Heights = { 25, 24, 9, 11, },
|
||||
.MaxMass = 18,
|
||||
.LiftData = { OpenRCT2::Audio::SoundId::LiftClassic, 4, 6 },
|
||||
.RatingsMultipliers = { 50, 30, 10 },
|
||||
.UpkeepCosts = { 40, 20, 80, 10, 3, 10 },
|
||||
.BuildCosts = { 50.00_GBP, 2.50_GBP, 50, },
|
||||
.DefaultPrices = { 20, 20 },
|
||||
.DefaultMusic = MUSIC_OBJECT_TECHNO,
|
||||
.PhotoItem = ShopItem::Photo,
|
||||
.BonusValue = 90,
|
||||
.ColourPresets = TRACK_COLOUR_PRESETS(
|
||||
{ COLOUR_BRIGHT_RED, COLOUR_BRIGHT_RED, COLOUR_BLACK },
|
||||
{ COLOUR_BLACK, COLOUR_LIGHT_BLUE, COLOUR_BLACK },
|
||||
{ COLOUR_LIGHT_ORANGE, COLOUR_WHITE, COLOUR_LIGHT_ORANGE },
|
||||
{ COLOUR_BORDEAUX_RED, COLOUR_YELLOW, COLOUR_BORDEAUX_RED },
|
||||
{ COLOUR_MOSS_GREEN, COLOUR_MOSS_GREEN, COLOUR_WHITE },
|
||||
{ COLOUR_SATURATED_BROWN, COLOUR_LIGHT_ORANGE, COLOUR_SATURATED_BROWN },
|
||||
)),
|
||||
SET_FIELD(ColourPreview, { SPR_RIDE_DESIGN_PREVIEW_STAND_UP_ROLLER_COASTER_TRACK, SPR_RIDE_DESIGN_PREVIEW_STAND_UP_ROLLER_COASTER_SUPPORTS }),
|
||||
SET_FIELD(ColourKey, RideColourKey::Ride),
|
||||
SET_FIELD(Name, "stand_up_rc"),
|
||||
SET_FIELD(RatingsData,
|
||||
),
|
||||
.ColourPreview = { SPR_RIDE_DESIGN_PREVIEW_STAND_UP_ROLLER_COASTER_TRACK, SPR_RIDE_DESIGN_PREVIEW_STAND_UP_ROLLER_COASTER_SUPPORTS },
|
||||
.ColourKey = RideColourKey::Ride,
|
||||
.Name = "stand_up_rc",
|
||||
.RatingsData =
|
||||
{
|
||||
RatingsCalculationType::Normal,
|
||||
{ RIDE_RATING(2, 50), RIDE_RATING(3, 00), RIDE_RATING(3, 00) },
|
||||
@@ -82,6 +82,6 @@ constexpr RideTypeDescriptor StandUpRollerCoasterRTD =
|
||||
{ RatingsModifierType::RequirementNegativeGs, FIXED_2DP(0, 50), 2, 2, 2 },
|
||||
{ RatingsModifierType::PenaltyLateralGs, 0, 24576, 35746, 59578 },
|
||||
},
|
||||
}),
|
||||
},
|
||||
};
|
||||
// clang-format on
|
||||
|
||||
@@ -17,43 +17,43 @@
|
||||
// clang-format off
|
||||
constexpr RideTypeDescriptor SteelWildMouseRTD =
|
||||
{
|
||||
SET_FIELD(AlternateType, RIDE_TYPE_NULL),
|
||||
SET_FIELD(Category, RIDE_CATEGORY_ROLLERCOASTER),
|
||||
SET_FIELD(EnabledTrackPieces, {TRACK_STRAIGHT, TRACK_STATION_END, TRACK_LIFT_HILL, TRACK_LIFT_HILL_STEEP, TRACK_SLOPE, TRACK_SLOPE_STEEP_UP, TRACK_SLOPE_STEEP_DOWN, TRACK_SLOPE_LONG, TRACK_SLOPE_CURVE, TRACK_CURVE_VERY_SMALL, TRACK_CURVE_SMALL, TRACK_BRAKES, TRACK_BLOCK_BRAKES}),
|
||||
SET_FIELD(ExtraTrackPieces, {TRACK_ROTATION_CONTROL_TOGGLE}),
|
||||
SET_FIELD(CoveredTrackPieces, {}),
|
||||
SET_FIELD(StartTrackPiece, TrackElemType::EndStation),
|
||||
SET_FIELD(TrackPaintFunctions, TrackDrawerDescriptor(GetTrackPaintFunctionWildMouse)),
|
||||
SET_FIELD(Flags, RIDE_TYPE_FLAGS_TRACK_HAS_3_COLOURS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION |
|
||||
.AlternateType = RIDE_TYPE_NULL,
|
||||
.Category = RIDE_CATEGORY_ROLLERCOASTER,
|
||||
.EnabledTrackPieces = {TRACK_STRAIGHT, TRACK_STATION_END, TRACK_LIFT_HILL, TRACK_LIFT_HILL_STEEP, TRACK_SLOPE, TRACK_SLOPE_STEEP_UP, TRACK_SLOPE_STEEP_DOWN, TRACK_SLOPE_LONG, TRACK_SLOPE_CURVE, TRACK_CURVE_VERY_SMALL, TRACK_CURVE_SMALL, TRACK_BRAKES, TRACK_BLOCK_BRAKES},
|
||||
.ExtraTrackPieces = {TRACK_ROTATION_CONTROL_TOGGLE},
|
||||
.CoveredTrackPieces = {},
|
||||
.StartTrackPiece = TrackElemType::EndStation,
|
||||
.TrackPaintFunctions = TrackDrawerDescriptor(GetTrackPaintFunctionWildMouse),
|
||||
.Flags = RIDE_TYPE_FLAGS_TRACK_HAS_3_COLOURS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION |
|
||||
RIDE_TYPE_FLAGS_COMMON_COASTER | RIDE_TYPE_FLAGS_COMMON_COASTER_NON_ALT | RIDE_TYPE_FLAG_ALLOW_DOORS_ON_TRACK |
|
||||
RIDE_TYPE_FLAG_PEEP_CHECK_GFORCES),
|
||||
SET_FIELD(RideModes, EnumsToFlags(RideMode::ContinuousCircuit, RideMode::ContinuousCircuitBlockSectioned)),
|
||||
SET_FIELD(DefaultMode, RideMode::ContinuousCircuit),
|
||||
SET_FIELD(OperatingSettings, { 0, 0, 0, 0, 0, 0 }),
|
||||
SET_FIELD(Naming, { STR_RIDE_NAME_WILD_MOUSE, STR_RIDE_DESCRIPTION_WILD_MOUSE }),
|
||||
SET_FIELD(NameConvention, { RideComponentType::Car, RideComponentType::Track, RideComponentType::Station }),
|
||||
SET_FIELD(EnumName, nameof(RIDE_TYPE_STEEL_WILD_MOUSE)),
|
||||
SET_FIELD(AvailableBreakdowns, (1 << BREAKDOWN_SAFETY_CUT_OUT) | (1 << BREAKDOWN_RESTRAINTS_STUCK_CLOSED) | (1 << BREAKDOWN_RESTRAINTS_STUCK_OPEN) | (1 << BREAKDOWN_VEHICLE_MALFUNCTION) | (1 << BREAKDOWN_BRAKES_FAILURE)),
|
||||
SET_FIELD(Heights, { 16, 24, 4, 7, }),
|
||||
SET_FIELD(MaxMass, 4),
|
||||
SET_FIELD(LiftData, { OpenRCT2::Audio::SoundId::LiftWildMouse, 4, 6 }),
|
||||
SET_FIELD(RatingsMultipliers, { 50, 30, 30 }),
|
||||
SET_FIELD(UpkeepCosts, { 40, 20, 80, 9, 3, 10 }),
|
||||
SET_FIELD(BuildCosts, { 27.50_GBP, 2.00_GBP, 40, }),
|
||||
SET_FIELD(DefaultPrices, { 20, 20 }),
|
||||
SET_FIELD(DefaultMusic, MUSIC_OBJECT_ROCK_1),
|
||||
SET_FIELD(PhotoItem, ShopItem::Photo),
|
||||
SET_FIELD(BonusValue, 55),
|
||||
SET_FIELD(ColourPresets, TRACK_COLOUR_PRESETS(
|
||||
RIDE_TYPE_FLAG_PEEP_CHECK_GFORCES,
|
||||
.RideModes = EnumsToFlags(RideMode::ContinuousCircuit, RideMode::ContinuousCircuitBlockSectioned),
|
||||
.DefaultMode = RideMode::ContinuousCircuit,
|
||||
.OperatingSettings = { 0, 0, 0, 0, 0, 0 },
|
||||
.Naming = { STR_RIDE_NAME_WILD_MOUSE, STR_RIDE_DESCRIPTION_WILD_MOUSE },
|
||||
.NameConvention = { RideComponentType::Car, RideComponentType::Track, RideComponentType::Station },
|
||||
.EnumName = nameof(RIDE_TYPE_STEEL_WILD_MOUSE),
|
||||
.AvailableBreakdowns = (1 << BREAKDOWN_SAFETY_CUT_OUT) | (1 << BREAKDOWN_RESTRAINTS_STUCK_CLOSED) | (1 << BREAKDOWN_RESTRAINTS_STUCK_OPEN) | (1 << BREAKDOWN_VEHICLE_MALFUNCTION) | (1 << BREAKDOWN_BRAKES_FAILURE),
|
||||
.Heights = { 16, 24, 4, 7, },
|
||||
.MaxMass = 4,
|
||||
.LiftData = { OpenRCT2::Audio::SoundId::LiftWildMouse, 4, 6 },
|
||||
.RatingsMultipliers = { 50, 30, 30 },
|
||||
.UpkeepCosts = { 40, 20, 80, 9, 3, 10 },
|
||||
.BuildCosts = { 27.50_GBP, 2.00_GBP, 40, },
|
||||
.DefaultPrices = { 20, 20 },
|
||||
.DefaultMusic = MUSIC_OBJECT_ROCK_1,
|
||||
.PhotoItem = ShopItem::Photo,
|
||||
.BonusValue = 55,
|
||||
.ColourPresets = TRACK_COLOUR_PRESETS(
|
||||
{ COLOUR_LIGHT_BLUE, COLOUR_LIGHT_BLUE, COLOUR_YELLOW },
|
||||
{ COLOUR_BRIGHT_RED, COLOUR_BRIGHT_RED, COLOUR_WHITE },
|
||||
{ COLOUR_DARK_PURPLE, COLOUR_BRIGHT_PINK, COLOUR_DARK_PURPLE },
|
||||
{ COLOUR_LIGHT_BROWN, COLOUR_LIGHT_BROWN, COLOUR_BORDEAUX_RED },
|
||||
)),
|
||||
SET_FIELD(ColourPreview, { SPR_RIDE_DESIGN_PREVIEW_WILD_MOUSE_TRACK, SPR_RIDE_DESIGN_PREVIEW_WILD_MOUSE_SUPPORTS }),
|
||||
SET_FIELD(ColourKey, RideColourKey::Ride),
|
||||
SET_FIELD(Name, "steel_wild_mouse"),
|
||||
SET_FIELD(RatingsData,
|
||||
),
|
||||
.ColourPreview = { SPR_RIDE_DESIGN_PREVIEW_WILD_MOUSE_TRACK, SPR_RIDE_DESIGN_PREVIEW_WILD_MOUSE_SUPPORTS },
|
||||
.ColourKey = RideColourKey::Ride,
|
||||
.Name = "steel_wild_mouse",
|
||||
.RatingsData =
|
||||
{
|
||||
RatingsCalculationType::Normal,
|
||||
{ RIDE_RATING(2, 80), RIDE_RATING(2, 50), RIDE_RATING(2, 10) },
|
||||
@@ -80,6 +80,6 @@ constexpr RideTypeDescriptor SteelWildMouseRTD =
|
||||
{ RatingsModifierType::RequirementNumDrops, 2, 2, 2, 2 },
|
||||
{ RatingsModifierType::PenaltyLateralGs, 0, 102400, 35746, 49648 },
|
||||
},
|
||||
}),
|
||||
},
|
||||
};
|
||||
// clang-format on
|
||||
|
||||
@@ -17,34 +17,34 @@
|
||||
// clang-format off
|
||||
constexpr RideTypeDescriptor SteeplechaseRTD =
|
||||
{
|
||||
SET_FIELD(AlternateType, RIDE_TYPE_NULL),
|
||||
SET_FIELD(Category, RIDE_CATEGORY_ROLLERCOASTER),
|
||||
SET_FIELD(EnabledTrackPieces, {TRACK_STRAIGHT, TRACK_STATION_END, TRACK_LIFT_HILL, TRACK_SLOPE, TRACK_S_BEND, TRACK_CURVE_SMALL, TRACK_CURVE, TRACK_CURVE_LARGE, TRACK_BRAKES, TRACK_BLOCK_BRAKES}),
|
||||
SET_FIELD(ExtraTrackPieces, {}),
|
||||
SET_FIELD(CoveredTrackPieces, {}),
|
||||
SET_FIELD(StartTrackPiece, TrackElemType::EndStation),
|
||||
SET_FIELD(TrackPaintFunctions, TrackDrawerDescriptor(GetTrackPaintFunctionSteeplechase)),
|
||||
SET_FIELD(Flags, RIDE_TYPE_FLAGS_TRACK_HAS_3_COLOURS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION |
|
||||
.AlternateType = RIDE_TYPE_NULL,
|
||||
.Category = RIDE_CATEGORY_ROLLERCOASTER,
|
||||
.EnabledTrackPieces = {TRACK_STRAIGHT, TRACK_STATION_END, TRACK_LIFT_HILL, TRACK_SLOPE, TRACK_S_BEND, TRACK_CURVE_SMALL, TRACK_CURVE, TRACK_CURVE_LARGE, TRACK_BRAKES, TRACK_BLOCK_BRAKES},
|
||||
.ExtraTrackPieces = {},
|
||||
.CoveredTrackPieces = {},
|
||||
.StartTrackPiece = TrackElemType::EndStation,
|
||||
.TrackPaintFunctions = TrackDrawerDescriptor(GetTrackPaintFunctionSteeplechase),
|
||||
.Flags = RIDE_TYPE_FLAGS_TRACK_HAS_3_COLOURS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION |
|
||||
RIDE_TYPE_FLAGS_COMMON_COASTER | RIDE_TYPE_FLAGS_COMMON_COASTER_NON_ALT |
|
||||
RIDE_TYPE_FLAG_PEEP_CHECK_GFORCES),
|
||||
SET_FIELD(RideModes, EnumsToFlags(RideMode::ContinuousCircuit, RideMode::ContinuousCircuitBlockSectioned)),
|
||||
SET_FIELD(DefaultMode, RideMode::ContinuousCircuit),
|
||||
SET_FIELD(OperatingSettings, { 0, 0, 0, 0, 0, 0 }),
|
||||
SET_FIELD(Naming, { STR_RIDE_NAME_STEEPLECHASE, STR_RIDE_DESCRIPTION_STEEPLECHASE }),
|
||||
SET_FIELD(NameConvention, { RideComponentType::Car, RideComponentType::Track, RideComponentType::Station }),
|
||||
SET_FIELD(EnumName, nameof(RIDE_TYPE_STEEPLECHASE)),
|
||||
SET_FIELD(AvailableBreakdowns, (1 << BREAKDOWN_SAFETY_CUT_OUT) | (1 << BREAKDOWN_VEHICLE_MALFUNCTION) | (1 << BREAKDOWN_BRAKES_FAILURE)),
|
||||
SET_FIELD(Heights, { 14, 24, 7, 7, }),
|
||||
SET_FIELD(MaxMass, 4),
|
||||
SET_FIELD(LiftData, { OpenRCT2::Audio::SoundId::LiftClassic, 4, 5 }),
|
||||
SET_FIELD(RatingsMultipliers, { 50, 30, 10 }),
|
||||
SET_FIELD(UpkeepCosts, { 40, 20, 80, 10, 3, 10 }),
|
||||
SET_FIELD(BuildCosts, { 28.50_GBP, 2.00_GBP, 40, }),
|
||||
SET_FIELD(DefaultPrices, { 20, 20 }),
|
||||
SET_FIELD(DefaultMusic, MUSIC_OBJECT_ROCK_1),
|
||||
SET_FIELD(PhotoItem, ShopItem::Photo),
|
||||
SET_FIELD(BonusValue, 60),
|
||||
SET_FIELD(ColourPresets, TRACK_COLOUR_PRESETS(
|
||||
RIDE_TYPE_FLAG_PEEP_CHECK_GFORCES,
|
||||
.RideModes = EnumsToFlags(RideMode::ContinuousCircuit, RideMode::ContinuousCircuitBlockSectioned),
|
||||
.DefaultMode = RideMode::ContinuousCircuit,
|
||||
.OperatingSettings = { 0, 0, 0, 0, 0, 0 },
|
||||
.Naming = { STR_RIDE_NAME_STEEPLECHASE, STR_RIDE_DESCRIPTION_STEEPLECHASE },
|
||||
.NameConvention = { RideComponentType::Car, RideComponentType::Track, RideComponentType::Station },
|
||||
.EnumName = nameof(RIDE_TYPE_STEEPLECHASE),
|
||||
.AvailableBreakdowns = (1 << BREAKDOWN_SAFETY_CUT_OUT) | (1 << BREAKDOWN_VEHICLE_MALFUNCTION) | (1 << BREAKDOWN_BRAKES_FAILURE),
|
||||
.Heights = { 14, 24, 7, 7, },
|
||||
.MaxMass = 4,
|
||||
.LiftData = { OpenRCT2::Audio::SoundId::LiftClassic, 4, 5 },
|
||||
.RatingsMultipliers = { 50, 30, 10 },
|
||||
.UpkeepCosts = { 40, 20, 80, 10, 3, 10 },
|
||||
.BuildCosts = { 28.50_GBP, 2.00_GBP, 40, },
|
||||
.DefaultPrices = { 20, 20 },
|
||||
.DefaultMusic = MUSIC_OBJECT_ROCK_1,
|
||||
.PhotoItem = ShopItem::Photo,
|
||||
.BonusValue = 60,
|
||||
.ColourPresets = TRACK_COLOUR_PRESETS(
|
||||
{ COLOUR_LIGHT_BLUE, COLOUR_LIGHT_BLUE, COLOUR_BLACK },
|
||||
{ COLOUR_BRIGHT_RED, COLOUR_BRIGHT_RED, COLOUR_BLACK },
|
||||
{ COLOUR_BRIGHT_GREEN, COLOUR_BRIGHT_GREEN, COLOUR_BLACK },
|
||||
@@ -52,11 +52,11 @@ constexpr RideTypeDescriptor SteeplechaseRTD =
|
||||
{ COLOUR_LIGHT_ORANGE, COLOUR_LIGHT_ORANGE, COLOUR_BLACK },
|
||||
{ COLOUR_WHITE, COLOUR_WHITE, COLOUR_BLACK },
|
||||
{ COLOUR_BRIGHT_PINK, COLOUR_BRIGHT_PINK, COLOUR_BLACK },
|
||||
)),
|
||||
SET_FIELD(ColourPreview, { SPR_RIDE_DESIGN_PREVIEW_STEEPLECHASE_TRACK, SPR_RIDE_DESIGN_PREVIEW_STEEPLECHASE_SUPPORTS }),
|
||||
SET_FIELD(ColourKey, RideColourKey::Ride),
|
||||
SET_FIELD(Name, "steeplechase"),
|
||||
SET_FIELD(RatingsData,
|
||||
),
|
||||
.ColourPreview = { SPR_RIDE_DESIGN_PREVIEW_STEEPLECHASE_TRACK, SPR_RIDE_DESIGN_PREVIEW_STEEPLECHASE_SUPPORTS },
|
||||
.ColourKey = RideColourKey::Ride,
|
||||
.Name = "steeplechase",
|
||||
.RatingsData =
|
||||
{
|
||||
RatingsCalculationType::Normal,
|
||||
{ RIDE_RATING(2, 70), RIDE_RATING(2, 40), RIDE_RATING(1, 80) },
|
||||
@@ -83,6 +83,6 @@ constexpr RideTypeDescriptor SteeplechaseRTD =
|
||||
{ RatingsModifierType::RequirementNumDrops, 2, 2, 2, 2 },
|
||||
{ RatingsModifierType::PenaltyLateralGs, 0, 20480, 20852, 49648 },
|
||||
},
|
||||
}),
|
||||
},
|
||||
};
|
||||
// clang-format on
|
||||
|
||||
@@ -17,43 +17,43 @@
|
||||
// clang-format off
|
||||
constexpr RideTypeDescriptor SuspendedSwingingCoasterRTD =
|
||||
{
|
||||
SET_FIELD(AlternateType, RIDE_TYPE_NULL),
|
||||
SET_FIELD(Category, RIDE_CATEGORY_ROLLERCOASTER),
|
||||
SET_FIELD(EnabledTrackPieces, {TRACK_STRAIGHT, TRACK_STATION_END, TRACK_LIFT_HILL, TRACK_SLOPE, TRACK_SLOPE_STEEP_UP, TRACK_SLOPE_STEEP_DOWN, TRACK_SLOPE_CURVE, TRACK_S_BEND, TRACK_CURVE_SMALL, TRACK_CURVE, TRACK_CURVE_LARGE, TRACK_HELIX_DOWN_UNBANKED_QUARTER, TRACK_HELIX_UP_UNBANKED_QUARTER, TRACK_BRAKES, TRACK_BLOCK_BRAKES}),
|
||||
SET_FIELD(ExtraTrackPieces, {}),
|
||||
SET_FIELD(CoveredTrackPieces, {}),
|
||||
SET_FIELD(StartTrackPiece, TrackElemType::EndStation),
|
||||
SET_FIELD(TrackPaintFunctions, TrackDrawerDescriptor(GetTrackPaintFunctionSuspendedSwingingRC)),
|
||||
SET_FIELD(Flags, RIDE_TYPE_FLAGS_TRACK_HAS_3_COLOURS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION |
|
||||
.AlternateType = RIDE_TYPE_NULL,
|
||||
.Category = RIDE_CATEGORY_ROLLERCOASTER,
|
||||
.EnabledTrackPieces = {TRACK_STRAIGHT, TRACK_STATION_END, TRACK_LIFT_HILL, TRACK_SLOPE, TRACK_SLOPE_STEEP_UP, TRACK_SLOPE_STEEP_DOWN, TRACK_SLOPE_CURVE, TRACK_S_BEND, TRACK_CURVE_SMALL, TRACK_CURVE, TRACK_CURVE_LARGE, TRACK_HELIX_DOWN_UNBANKED_QUARTER, TRACK_HELIX_UP_UNBANKED_QUARTER, TRACK_BRAKES, TRACK_BLOCK_BRAKES},
|
||||
.ExtraTrackPieces = {},
|
||||
.CoveredTrackPieces = {},
|
||||
.StartTrackPiece = TrackElemType::EndStation,
|
||||
.TrackPaintFunctions = TrackDrawerDescriptor(GetTrackPaintFunctionSuspendedSwingingRC),
|
||||
.Flags = RIDE_TYPE_FLAGS_TRACK_HAS_3_COLOURS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION |
|
||||
RIDE_TYPE_FLAGS_COMMON_COASTER | RIDE_TYPE_FLAGS_COMMON_COASTER_NON_ALT |
|
||||
RIDE_TYPE_FLAG_PEEP_CHECK_GFORCES | RIDE_TYPE_FLAG_IS_SUSPENDED),
|
||||
SET_FIELD(RideModes, EnumsToFlags(RideMode::ContinuousCircuit, RideMode::ContinuousCircuitBlockSectioned)),
|
||||
SET_FIELD(DefaultMode, RideMode::ContinuousCircuit),
|
||||
SET_FIELD(OperatingSettings, { 0, 0, 0, 0, 0, 0 }),
|
||||
SET_FIELD(Naming, { STR_RIDE_NAME_SUSPENDED_SWINGING_COASTER, STR_RIDE_DESCRIPTION_SUSPENDED_SWINGING_COASTER }),
|
||||
SET_FIELD(NameConvention, { RideComponentType::Train, RideComponentType::Track, RideComponentType::Station }),
|
||||
SET_FIELD(EnumName, nameof(RIDE_TYPE_SUSPENDED_SWINGING_COASTER)),
|
||||
SET_FIELD(AvailableBreakdowns, (1 << BREAKDOWN_SAFETY_CUT_OUT) | (1 << BREAKDOWN_RESTRAINTS_STUCK_CLOSED) | (1 << BREAKDOWN_RESTRAINTS_STUCK_OPEN) | (1 << BREAKDOWN_VEHICLE_MALFUNCTION) | (1 << BREAKDOWN_BRAKES_FAILURE)),
|
||||
SET_FIELD(Heights, { 24, 40, 29, 8, }),
|
||||
SET_FIELD(MaxMass, 26),
|
||||
SET_FIELD(LiftData, { OpenRCT2::Audio::SoundId::LiftClassic, 4, 6 }),
|
||||
SET_FIELD(RatingsMultipliers, { 50, 30, 10 }),
|
||||
SET_FIELD(UpkeepCosts, { 40, 20, 80, 20, 3, 10 }),
|
||||
SET_FIELD(BuildCosts, { 47.50_GBP, 2.50_GBP, 50, }),
|
||||
SET_FIELD(DefaultPrices, { 20, 20 }),
|
||||
SET_FIELD(DefaultMusic, MUSIC_OBJECT_ROCK_1),
|
||||
SET_FIELD(PhotoItem, ShopItem::Photo2),
|
||||
SET_FIELD(BonusValue, 90),
|
||||
SET_FIELD(ColourPresets, TRACK_COLOUR_PRESETS(
|
||||
RIDE_TYPE_FLAG_PEEP_CHECK_GFORCES | RIDE_TYPE_FLAG_IS_SUSPENDED,
|
||||
.RideModes = EnumsToFlags(RideMode::ContinuousCircuit, RideMode::ContinuousCircuitBlockSectioned),
|
||||
.DefaultMode = RideMode::ContinuousCircuit,
|
||||
.OperatingSettings = { 0, 0, 0, 0, 0, 0 },
|
||||
.Naming = { STR_RIDE_NAME_SUSPENDED_SWINGING_COASTER, STR_RIDE_DESCRIPTION_SUSPENDED_SWINGING_COASTER },
|
||||
.NameConvention = { RideComponentType::Train, RideComponentType::Track, RideComponentType::Station },
|
||||
.EnumName = nameof(RIDE_TYPE_SUSPENDED_SWINGING_COASTER),
|
||||
.AvailableBreakdowns = (1 << BREAKDOWN_SAFETY_CUT_OUT) | (1 << BREAKDOWN_RESTRAINTS_STUCK_CLOSED) | (1 << BREAKDOWN_RESTRAINTS_STUCK_OPEN) | (1 << BREAKDOWN_VEHICLE_MALFUNCTION) | (1 << BREAKDOWN_BRAKES_FAILURE),
|
||||
.Heights = { 24, 40, 29, 8, },
|
||||
.MaxMass = 26,
|
||||
.LiftData = { OpenRCT2::Audio::SoundId::LiftClassic, 4, 6 },
|
||||
.RatingsMultipliers = { 50, 30, 10 },
|
||||
.UpkeepCosts = { 40, 20, 80, 20, 3, 10 },
|
||||
.BuildCosts = { 47.50_GBP, 2.50_GBP, 50, },
|
||||
.DefaultPrices = { 20, 20 },
|
||||
.DefaultMusic = MUSIC_OBJECT_ROCK_1,
|
||||
.PhotoItem = ShopItem::Photo2,
|
||||
.BonusValue = 90,
|
||||
.ColourPresets = TRACK_COLOUR_PRESETS(
|
||||
{ COLOUR_OLIVE_GREEN, COLOUR_OLIVE_GREEN, COLOUR_LIGHT_BROWN },
|
||||
{ COLOUR_BLACK, COLOUR_LIGHT_BLUE, COLOUR_BLACK },
|
||||
{ COLOUR_SATURATED_BROWN, COLOUR_YELLOW, COLOUR_SATURATED_BROWN },
|
||||
{ COLOUR_BORDEAUX_RED, COLOUR_BORDEAUX_RED, COLOUR_OLIVE_GREEN },
|
||||
)),
|
||||
SET_FIELD(ColourPreview, { SPR_RIDE_DESIGN_PREVIEW_SUSPENDED_SWINGING_COASTER_TRACK, SPR_RIDE_DESIGN_PREVIEW_SUSPENDED_SWINGING_COASTER_SUPPORTS }),
|
||||
SET_FIELD(ColourKey, RideColourKey::Ride),
|
||||
SET_FIELD(Name, "suspended_swinging_rc"),
|
||||
SET_FIELD(RatingsData,
|
||||
),
|
||||
.ColourPreview = { SPR_RIDE_DESIGN_PREVIEW_SUSPENDED_SWINGING_COASTER_TRACK, SPR_RIDE_DESIGN_PREVIEW_SUSPENDED_SWINGING_COASTER_SUPPORTS },
|
||||
.ColourKey = RideColourKey::Ride,
|
||||
.Name = "suspended_swinging_rc",
|
||||
.RatingsData =
|
||||
{
|
||||
RatingsCalculationType::Normal,
|
||||
{ RIDE_RATING(3, 30), RIDE_RATING(2, 90), RIDE_RATING(3, 50) },
|
||||
@@ -80,6 +80,6 @@ constexpr RideTypeDescriptor SuspendedSwingingCoasterRTD =
|
||||
{ RatingsModifierType::RequirementLength, 0x1720000, 2, 2, 2 },
|
||||
{ RatingsModifierType::PenaltyLateralGs, 0, 32768, 23831, 79437 },
|
||||
},
|
||||
}),
|
||||
},
|
||||
};
|
||||
// clang-format on
|
||||
|
||||
@@ -19,35 +19,35 @@
|
||||
// clang-format off
|
||||
constexpr RideTypeDescriptor TwisterRollerCoasterRTD =
|
||||
{
|
||||
SET_FIELD(AlternateType, RIDE_TYPE_NULL),
|
||||
SET_FIELD(Category, RIDE_CATEGORY_ROLLERCOASTER),
|
||||
SET_FIELD(EnabledTrackPieces, {TRACK_FLAT, TRACK_STRAIGHT, TRACK_STATION_END, TRACK_LIFT_HILL, TRACK_FLAT_ROLL_BANKING, TRACK_VERTICAL_LOOP, TRACK_SLOPE, TRACK_SLOPE_STEEP_UP, TRACK_SLOPE_STEEP_DOWN, TRACK_SLOPE_CURVE, TRACK_SLOPE_CURVE_STEEP, TRACK_S_BEND, TRACK_CURVE_SMALL, TRACK_CURVE, TRACK_CURVE_LARGE, TRACK_HALF_LOOP, TRACK_CORKSCREW, TRACK_HELIX_DOWN_BANKED_HALF, TRACK_HELIX_UP_BANKED_HALF, TRACK_BRAKES, TRACK_ON_RIDE_PHOTO, TRACK_SLOPE_VERTICAL, TRACK_BARREL_ROLL, TRACK_POWERED_LIFT, TRACK_HALF_LOOP_LARGE, TRACK_SLOPE_CURVE_BANKED, TRACK_BLOCK_BRAKES, TRACK_SLOPE_ROLL_BANKING, TRACK_SLOPE_STEEP_LONG, TRACK_CURVE_VERTICAL, TRACK_QUARTER_LOOP, TRACK_BOOSTER, TRACK_TWIST, TRACK_DIAG_BRAKES, TRACK_DIAG_BLOCK_BRAKES}),
|
||||
SET_FIELD(ExtraTrackPieces, {TRACK_LIFT_HILL_STEEP, TRACK_BRAKE_FOR_DROP}),
|
||||
SET_FIELD(CoveredTrackPieces, {}),
|
||||
SET_FIELD(StartTrackPiece, TrackElemType::EndStation),
|
||||
SET_FIELD(TrackPaintFunctions, TrackDrawerDescriptor(GetTrackPaintFunctionBolligerMabillard<MetalSupportType::Tubes>)),
|
||||
SET_FIELD(Flags, RIDE_TYPE_FLAGS_TRACK_HAS_3_COLOURS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION |
|
||||
.AlternateType = RIDE_TYPE_NULL,
|
||||
.Category = RIDE_CATEGORY_ROLLERCOASTER,
|
||||
.EnabledTrackPieces = {TRACK_FLAT, TRACK_STRAIGHT, TRACK_STATION_END, TRACK_LIFT_HILL, TRACK_FLAT_ROLL_BANKING, TRACK_VERTICAL_LOOP, TRACK_SLOPE, TRACK_SLOPE_STEEP_UP, TRACK_SLOPE_STEEP_DOWN, TRACK_SLOPE_CURVE, TRACK_SLOPE_CURVE_STEEP, TRACK_S_BEND, TRACK_CURVE_SMALL, TRACK_CURVE, TRACK_CURVE_LARGE, TRACK_HALF_LOOP, TRACK_CORKSCREW, TRACK_HELIX_DOWN_BANKED_HALF, TRACK_HELIX_UP_BANKED_HALF, TRACK_BRAKES, TRACK_ON_RIDE_PHOTO, TRACK_SLOPE_VERTICAL, TRACK_BARREL_ROLL, TRACK_POWERED_LIFT, TRACK_HALF_LOOP_LARGE, TRACK_SLOPE_CURVE_BANKED, TRACK_BLOCK_BRAKES, TRACK_SLOPE_ROLL_BANKING, TRACK_SLOPE_STEEP_LONG, TRACK_CURVE_VERTICAL, TRACK_QUARTER_LOOP, TRACK_BOOSTER, TRACK_TWIST, TRACK_DIAG_BRAKES, TRACK_DIAG_BLOCK_BRAKES},
|
||||
.ExtraTrackPieces = {TRACK_LIFT_HILL_STEEP, TRACK_BRAKE_FOR_DROP},
|
||||
.CoveredTrackPieces = {},
|
||||
.StartTrackPiece = TrackElemType::EndStation,
|
||||
.TrackPaintFunctions = TrackDrawerDescriptor(GetTrackPaintFunctionBolligerMabillard<MetalSupportType::Tubes>),
|
||||
.Flags = RIDE_TYPE_FLAGS_TRACK_HAS_3_COLOURS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION |
|
||||
RIDE_TYPE_FLAGS_COMMON_COASTER | RIDE_TYPE_FLAGS_COMMON_COASTER_NON_ALT |
|
||||
RIDE_TYPE_FLAG_PEEP_CHECK_GFORCES | RIDE_TYPE_FLAG_ALLOW_MULTIPLE_CIRCUITS |
|
||||
RIDE_TYPE_FLAG_ALLOW_REVERSED_TRAINS),
|
||||
SET_FIELD(RideModes, EnumsToFlags(RideMode::ContinuousCircuit, RideMode::ContinuousCircuitBlockSectioned)),
|
||||
SET_FIELD(DefaultMode, RideMode::ContinuousCircuit),
|
||||
SET_FIELD(OperatingSettings, { 10, 27, 30, 17, 68, 0 }),
|
||||
SET_FIELD(Naming, { STR_RIDE_NAME_TWISTER_ROLLER_COASTER, STR_RIDE_DESCRIPTION_TWISTER_ROLLER_COASTER }),
|
||||
SET_FIELD(NameConvention, { RideComponentType::Train, RideComponentType::Track, RideComponentType::Station }),
|
||||
SET_FIELD(EnumName, nameof(RIDE_TYPE_TWISTER_ROLLER_COASTER)),
|
||||
SET_FIELD(AvailableBreakdowns, (1 << BREAKDOWN_SAFETY_CUT_OUT) | (1 << BREAKDOWN_RESTRAINTS_STUCK_CLOSED) | (1 << BREAKDOWN_RESTRAINTS_STUCK_OPEN) | (1 << BREAKDOWN_VEHICLE_MALFUNCTION) | (1 << BREAKDOWN_BRAKES_FAILURE)),
|
||||
SET_FIELD(Heights, { 40, 24, 8, 9, }),
|
||||
SET_FIELD(MaxMass, 31),
|
||||
SET_FIELD(LiftData, { OpenRCT2::Audio::SoundId::LiftBM, 5, 8 }),
|
||||
SET_FIELD(RatingsMultipliers, { 52, 36, 10 }),
|
||||
SET_FIELD(UpkeepCosts, { 43, 20, 80, 11, 3, 10 }),
|
||||
SET_FIELD(BuildCosts, { 60.00_GBP, 2.50_GBP, 55, }),
|
||||
SET_FIELD(DefaultPrices, { 20, 20 }),
|
||||
SET_FIELD(DefaultMusic, MUSIC_OBJECT_ROCK_1),
|
||||
SET_FIELD(PhotoItem, ShopItem::Photo),
|
||||
SET_FIELD(BonusValue, 120),
|
||||
SET_FIELD(ColourPresets, TRACK_COLOUR_PRESETS(
|
||||
RIDE_TYPE_FLAG_ALLOW_REVERSED_TRAINS,
|
||||
.RideModes = EnumsToFlags(RideMode::ContinuousCircuit, RideMode::ContinuousCircuitBlockSectioned),
|
||||
.DefaultMode = RideMode::ContinuousCircuit,
|
||||
.OperatingSettings = { 10, 27, 30, 17, 68, 0 },
|
||||
.Naming = { STR_RIDE_NAME_TWISTER_ROLLER_COASTER, STR_RIDE_DESCRIPTION_TWISTER_ROLLER_COASTER },
|
||||
.NameConvention = { RideComponentType::Train, RideComponentType::Track, RideComponentType::Station },
|
||||
.EnumName = nameof(RIDE_TYPE_TWISTER_ROLLER_COASTER),
|
||||
.AvailableBreakdowns = (1 << BREAKDOWN_SAFETY_CUT_OUT) | (1 << BREAKDOWN_RESTRAINTS_STUCK_CLOSED) | (1 << BREAKDOWN_RESTRAINTS_STUCK_OPEN) | (1 << BREAKDOWN_VEHICLE_MALFUNCTION) | (1 << BREAKDOWN_BRAKES_FAILURE),
|
||||
.Heights = { 40, 24, 8, 9, },
|
||||
.MaxMass = 31,
|
||||
.LiftData = { OpenRCT2::Audio::SoundId::LiftBM, 5, 8 },
|
||||
.RatingsMultipliers = { 52, 36, 10 },
|
||||
.UpkeepCosts = { 43, 20, 80, 11, 3, 10 },
|
||||
.BuildCosts = { 60.00_GBP, 2.50_GBP, 55, },
|
||||
.DefaultPrices = { 20, 20 },
|
||||
.DefaultMusic = MUSIC_OBJECT_ROCK_1,
|
||||
.PhotoItem = ShopItem::Photo,
|
||||
.BonusValue = 120,
|
||||
.ColourPresets = TRACK_COLOUR_PRESETS(
|
||||
{ COLOUR_YELLOW, COLOUR_YELLOW, COLOUR_BORDEAUX_RED },
|
||||
{ COLOUR_AQUAMARINE, COLOUR_AQUAMARINE, COLOUR_DARK_PURPLE },
|
||||
{ COLOUR_WHITE, COLOUR_WHITE, COLOUR_LIGHT_BLUE },
|
||||
@@ -55,11 +55,11 @@ constexpr RideTypeDescriptor TwisterRollerCoasterRTD =
|
||||
{ COLOUR_BORDEAUX_RED, COLOUR_LIGHT_ORANGE, COLOUR_WHITE },
|
||||
{ COLOUR_LIGHT_BLUE, COLOUR_YELLOW, COLOUR_DARK_PINK }, // Scream
|
||||
{ COLOUR_DARK_ORANGE, COLOUR_DARK_ORANGE, COLOUR_BLACK }, // Rougarou
|
||||
)),
|
||||
SET_FIELD(ColourPreview, { SPR_RIDE_DESIGN_PREVIEW_TWISTER_ROLLER_COASTER_TRACK, SPR_RIDE_DESIGN_PREVIEW_TWISTER_ROLLER_COASTER_SUPPORTS }),
|
||||
SET_FIELD(ColourKey, RideColourKey::Ride),
|
||||
SET_FIELD(Name, "twister_rc"),
|
||||
SET_FIELD(RatingsData,
|
||||
),
|
||||
.ColourPreview = { SPR_RIDE_DESIGN_PREVIEW_TWISTER_ROLLER_COASTER_TRACK, SPR_RIDE_DESIGN_PREVIEW_TWISTER_ROLLER_COASTER_SUPPORTS },
|
||||
.ColourKey = RideColourKey::Ride,
|
||||
.Name = "twister_rc",
|
||||
.RatingsData =
|
||||
{
|
||||
RatingsCalculationType::Normal,
|
||||
{ RIDE_RATING(3, 50), RIDE_RATING(0, 40), RIDE_RATING(0, 30) },
|
||||
@@ -86,6 +86,6 @@ constexpr RideTypeDescriptor TwisterRollerCoasterRTD =
|
||||
{ RatingsModifierType::RequirementNumDrops, 2, 2, 2, 2 },
|
||||
{ RatingsModifierType::PenaltyLateralGs, 0, 24576, 32768, 49648 },
|
||||
},
|
||||
}),
|
||||
},
|
||||
};
|
||||
// clang-format on
|
||||
|
||||
@@ -19,44 +19,44 @@
|
||||
// clang-format off
|
||||
constexpr RideTypeDescriptor VerticalDropCoasterRTD =
|
||||
{
|
||||
SET_FIELD(AlternateType, RIDE_TYPE_NULL),
|
||||
SET_FIELD(Category, RIDE_CATEGORY_ROLLERCOASTER),
|
||||
SET_FIELD(EnabledTrackPieces, {TRACK_FLAT, TRACK_STRAIGHT, TRACK_STATION_END, TRACK_LIFT_HILL, TRACK_LIFT_HILL_STEEP, TRACK_FLAT_ROLL_BANKING, TRACK_VERTICAL_LOOP, TRACK_SLOPE, TRACK_SLOPE_STEEP_UP, TRACK_SLOPE_STEEP_DOWN, TRACK_SLOPE_LONG, TRACK_SLOPE_CURVE, TRACK_SLOPE_CURVE_STEEP, TRACK_S_BEND, TRACK_CURVE_SMALL, TRACK_CURVE, TRACK_CURVE_LARGE, TRACK_HELIX_DOWN_BANKED_HALF, TRACK_HELIX_UP_BANKED_HALF, TRACK_BRAKES, TRACK_ON_RIDE_PHOTO, TRACK_SLOPE_VERTICAL, TRACK_SLOPE_CURVE_BANKED, TRACK_BLOCK_BRAKES, TRACK_SLOPE_ROLL_BANKING, TRACK_CURVE_VERTICAL, TRACK_HALF_LOOP_LARGE, TRACK_BRAKE_FOR_DROP, TRACK_DIAG_BRAKES, TRACK_DIAG_BLOCK_BRAKES}),
|
||||
SET_FIELD(ExtraTrackPieces, {TRACK_HALF_LOOP, TRACK_CORKSCREW, TRACK_BARREL_ROLL, TRACK_POWERED_LIFT, TRACK_HALF_LOOP_LARGE, TRACK_QUARTER_LOOP, TRACK_BOOSTER, TRACK_TWIST}),
|
||||
SET_FIELD(CoveredTrackPieces, {}),
|
||||
SET_FIELD(StartTrackPiece, TrackElemType::EndStation),
|
||||
SET_FIELD(TrackPaintFunctions, TrackDrawerDescriptor(GetTrackPaintFunctionBolligerMabillard<MetalSupportType::Boxed>)),
|
||||
SET_FIELD(Flags, RIDE_TYPE_FLAGS_TRACK_HAS_3_COLOURS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION |
|
||||
.AlternateType = RIDE_TYPE_NULL,
|
||||
.Category = RIDE_CATEGORY_ROLLERCOASTER,
|
||||
.EnabledTrackPieces = {TRACK_FLAT, TRACK_STRAIGHT, TRACK_STATION_END, TRACK_LIFT_HILL, TRACK_LIFT_HILL_STEEP, TRACK_FLAT_ROLL_BANKING, TRACK_VERTICAL_LOOP, TRACK_SLOPE, TRACK_SLOPE_STEEP_UP, TRACK_SLOPE_STEEP_DOWN, TRACK_SLOPE_LONG, TRACK_SLOPE_CURVE, TRACK_SLOPE_CURVE_STEEP, TRACK_S_BEND, TRACK_CURVE_SMALL, TRACK_CURVE, TRACK_CURVE_LARGE, TRACK_HELIX_DOWN_BANKED_HALF, TRACK_HELIX_UP_BANKED_HALF, TRACK_BRAKES, TRACK_ON_RIDE_PHOTO, TRACK_SLOPE_VERTICAL, TRACK_SLOPE_CURVE_BANKED, TRACK_BLOCK_BRAKES, TRACK_SLOPE_ROLL_BANKING, TRACK_CURVE_VERTICAL, TRACK_HALF_LOOP_LARGE, TRACK_BRAKE_FOR_DROP, TRACK_DIAG_BRAKES, TRACK_DIAG_BLOCK_BRAKES},
|
||||
.ExtraTrackPieces = {TRACK_HALF_LOOP, TRACK_CORKSCREW, TRACK_BARREL_ROLL, TRACK_POWERED_LIFT, TRACK_HALF_LOOP_LARGE, TRACK_QUARTER_LOOP, TRACK_BOOSTER, TRACK_TWIST},
|
||||
.CoveredTrackPieces = {},
|
||||
.StartTrackPiece = TrackElemType::EndStation,
|
||||
.TrackPaintFunctions = TrackDrawerDescriptor(GetTrackPaintFunctionBolligerMabillard<MetalSupportType::Boxed>),
|
||||
.Flags = RIDE_TYPE_FLAGS_TRACK_HAS_3_COLOURS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION |
|
||||
RIDE_TYPE_FLAGS_COMMON_COASTER | RIDE_TYPE_FLAGS_COMMON_COASTER_NON_ALT |
|
||||
RIDE_TYPE_FLAG_PEEP_CHECK_GFORCES),
|
||||
SET_FIELD(RideModes, EnumsToFlags(RideMode::ContinuousCircuit, RideMode::ContinuousCircuitBlockSectioned)),
|
||||
SET_FIELD(DefaultMode, RideMode::ContinuousCircuit),
|
||||
SET_FIELD(OperatingSettings, { 10, 27, 26, 17, 68, 0 }),
|
||||
SET_FIELD(Naming, { STR_RIDE_NAME_VERTICAL_DROP_ROLLER_COASTER, STR_RIDE_DESCRIPTION_VERTICAL_DROP_ROLLER_COASTER }),
|
||||
SET_FIELD(NameConvention, { RideComponentType::Train, RideComponentType::Track, RideComponentType::Station }),
|
||||
SET_FIELD(EnumName, nameof(RIDE_TYPE_VERTICAL_DROP_ROLLER_COASTER)),
|
||||
SET_FIELD(AvailableBreakdowns, (1 << BREAKDOWN_SAFETY_CUT_OUT) | (1 << BREAKDOWN_RESTRAINTS_STUCK_CLOSED) | (1 << BREAKDOWN_RESTRAINTS_STUCK_OPEN) | (1 << BREAKDOWN_VEHICLE_MALFUNCTION) | (1 << BREAKDOWN_BRAKES_FAILURE)),
|
||||
SET_FIELD(Heights, { 55, 24, 8, 11, }),
|
||||
SET_FIELD(MaxMass, 25),
|
||||
SET_FIELD(LiftData, { OpenRCT2::Audio::SoundId::LiftBM, 4, 5 }),
|
||||
SET_FIELD(RatingsMultipliers, { 52, 38, 10 }),
|
||||
SET_FIELD(UpkeepCosts, { 44, 20, 80, 11, 3, 10 }),
|
||||
SET_FIELD(BuildCosts, { 60.00_GBP, 2.50_GBP, 42, }),
|
||||
SET_FIELD(DefaultPrices, { 20, 20 }),
|
||||
SET_FIELD(DefaultMusic, MUSIC_OBJECT_ROCK_1),
|
||||
SET_FIELD(PhotoItem, ShopItem::Photo),
|
||||
SET_FIELD(BonusValue, 95),
|
||||
SET_FIELD(ColourPresets, TRACK_COLOUR_PRESETS(
|
||||
RIDE_TYPE_FLAG_PEEP_CHECK_GFORCES,
|
||||
.RideModes = EnumsToFlags(RideMode::ContinuousCircuit, RideMode::ContinuousCircuitBlockSectioned),
|
||||
.DefaultMode = RideMode::ContinuousCircuit,
|
||||
.OperatingSettings = { 10, 27, 26, 17, 68, 0 },
|
||||
.Naming = { STR_RIDE_NAME_VERTICAL_DROP_ROLLER_COASTER, STR_RIDE_DESCRIPTION_VERTICAL_DROP_ROLLER_COASTER },
|
||||
.NameConvention = { RideComponentType::Train, RideComponentType::Track, RideComponentType::Station },
|
||||
.EnumName = nameof(RIDE_TYPE_VERTICAL_DROP_ROLLER_COASTER),
|
||||
.AvailableBreakdowns = (1 << BREAKDOWN_SAFETY_CUT_OUT) | (1 << BREAKDOWN_RESTRAINTS_STUCK_CLOSED) | (1 << BREAKDOWN_RESTRAINTS_STUCK_OPEN) | (1 << BREAKDOWN_VEHICLE_MALFUNCTION) | (1 << BREAKDOWN_BRAKES_FAILURE),
|
||||
.Heights = { 55, 24, 8, 11, },
|
||||
.MaxMass = 25,
|
||||
.LiftData = { OpenRCT2::Audio::SoundId::LiftBM, 4, 5 },
|
||||
.RatingsMultipliers = { 52, 38, 10 },
|
||||
.UpkeepCosts = { 44, 20, 80, 11, 3, 10 },
|
||||
.BuildCosts = { 60.00_GBP, 2.50_GBP, 42, },
|
||||
.DefaultPrices = { 20, 20 },
|
||||
.DefaultMusic = MUSIC_OBJECT_ROCK_1,
|
||||
.PhotoItem = ShopItem::Photo,
|
||||
.BonusValue = 95,
|
||||
.ColourPresets = TRACK_COLOUR_PRESETS(
|
||||
{ COLOUR_BLACK, COLOUR_GREY, COLOUR_BLACK },
|
||||
{ COLOUR_DARK_GREEN, COLOUR_DARK_GREEN, COLOUR_GREY },
|
||||
{ COLOUR_DARK_ORANGE, COLOUR_DARK_ORANGE, COLOUR_DULL_GREEN_DARK }, // Yukon Striker
|
||||
{ COLOUR_LIGHT_ORANGE, COLOUR_DARK_ORANGE, COLOUR_DARK_BLUE }, // Valravn
|
||||
{ COLOUR_GREY, COLOUR_BRIGHT_RED, COLOUR_YELLOW }, // Dr. Diabolical's Cliffhanger
|
||||
)),
|
||||
SET_FIELD(ColourPreview, { SPR_RIDE_DESIGN_PREVIEW_VERTICAL_DROP_ROLLER_COASTER_TRACK, SPR_RIDE_DESIGN_PREVIEW_VERTICAL_DROP_ROLLER_COASTER_SUPPORTS }),
|
||||
SET_FIELD(ColourKey, RideColourKey::Ride),
|
||||
SET_FIELD(Name, "vertical_drop_rc"),
|
||||
SET_FIELD(RatingsData,
|
||||
),
|
||||
.ColourPreview = { SPR_RIDE_DESIGN_PREVIEW_VERTICAL_DROP_ROLLER_COASTER_TRACK, SPR_RIDE_DESIGN_PREVIEW_VERTICAL_DROP_ROLLER_COASTER_SUPPORTS },
|
||||
.ColourKey = RideColourKey::Ride,
|
||||
.Name = "vertical_drop_rc",
|
||||
.RatingsData =
|
||||
{
|
||||
RatingsCalculationType::Normal,
|
||||
{ RIDE_RATING(3, 20), RIDE_RATING(0, 80), RIDE_RATING(0, 30) },
|
||||
@@ -81,6 +81,6 @@ constexpr RideTypeDescriptor VerticalDropCoasterRTD =
|
||||
{ RatingsModifierType::RequirementNumDrops, 1, 2, 2, 2 },
|
||||
{ RatingsModifierType::PenaltyLateralGs, 0, 40960, 35746, 49648 },
|
||||
},
|
||||
}),
|
||||
},
|
||||
};
|
||||
// clang-format on
|
||||
|
||||
@@ -17,41 +17,41 @@
|
||||
// clang-format off
|
||||
constexpr RideTypeDescriptor VirginiaReelRTD =
|
||||
{
|
||||
SET_FIELD(AlternateType, RIDE_TYPE_NULL),
|
||||
SET_FIELD(Category, RIDE_CATEGORY_ROLLERCOASTER),
|
||||
SET_FIELD(EnabledTrackPieces, {TRACK_STRAIGHT, TRACK_STATION_END, TRACK_LIFT_HILL, TRACK_SLOPE, TRACK_CURVE_VERY_SMALL, TRACK_CURVE_SMALL}),
|
||||
SET_FIELD(ExtraTrackPieces, {}),
|
||||
SET_FIELD(CoveredTrackPieces, {}),
|
||||
SET_FIELD(StartTrackPiece, TrackElemType::EndStation),
|
||||
SET_FIELD(TrackPaintFunctions, TrackDrawerDescriptor(GetTrackPaintFunctionVirginiaReel)),
|
||||
SET_FIELD(Flags, RIDE_TYPE_FLAGS_TRACK_HAS_3_COLOURS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION |
|
||||
RIDE_TYPE_FLAGS_COMMON_COASTER | RIDE_TYPE_FLAGS_COMMON_COASTER_NON_ALT | RIDE_TYPE_FLAG_PEEP_CHECK_GFORCES),
|
||||
SET_FIELD(RideModes, EnumsToFlags(RideMode::ContinuousCircuit)),
|
||||
SET_FIELD(DefaultMode, RideMode::ContinuousCircuit),
|
||||
SET_FIELD(OperatingSettings, { 0, 0, 0, 0, 0, 0 }),
|
||||
SET_FIELD(Naming, { STR_RIDE_NAME_VIRGINIA_REEL, STR_RIDE_DESCRIPTION_VIRGINIA_REEL }),
|
||||
SET_FIELD(NameConvention, { RideComponentType::Car, RideComponentType::Track, RideComponentType::Station }),
|
||||
SET_FIELD(EnumName, nameof(RIDE_TYPE_VIRGINIA_REEL)),
|
||||
SET_FIELD(AvailableBreakdowns, (1 << BREAKDOWN_SAFETY_CUT_OUT) | (1 << BREAKDOWN_VEHICLE_MALFUNCTION) | (1 << BREAKDOWN_BRAKES_FAILURE)),
|
||||
SET_FIELD(Heights, { 14, 24, 6, 7, }),
|
||||
SET_FIELD(MaxMass, 15),
|
||||
SET_FIELD(LiftData, { OpenRCT2::Audio::SoundId::LiftClassic, 3, 5 }),
|
||||
SET_FIELD(RatingsMultipliers, { 30, 15, 25 }),
|
||||
SET_FIELD(UpkeepCosts, { 39, 20, 80, 10, 3, 10 }),
|
||||
SET_FIELD(BuildCosts, { 26.50_GBP, 3.00_GBP, 25, }),
|
||||
SET_FIELD(DefaultPrices, { 20, 20 }),
|
||||
SET_FIELD(DefaultMusic, MUSIC_OBJECT_ROCK_1),
|
||||
SET_FIELD(PhotoItem, ShopItem::Photo3),
|
||||
SET_FIELD(BonusValue, 50),
|
||||
SET_FIELD(ColourPresets, TRACK_COLOUR_PRESETS(
|
||||
.AlternateType = RIDE_TYPE_NULL,
|
||||
.Category = RIDE_CATEGORY_ROLLERCOASTER,
|
||||
.EnabledTrackPieces = {TRACK_STRAIGHT, TRACK_STATION_END, TRACK_LIFT_HILL, TRACK_SLOPE, TRACK_CURVE_VERY_SMALL, TRACK_CURVE_SMALL},
|
||||
.ExtraTrackPieces = {},
|
||||
.CoveredTrackPieces = {},
|
||||
.StartTrackPiece = TrackElemType::EndStation,
|
||||
.TrackPaintFunctions = TrackDrawerDescriptor(GetTrackPaintFunctionVirginiaReel),
|
||||
.Flags = RIDE_TYPE_FLAGS_TRACK_HAS_3_COLOURS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION |
|
||||
RIDE_TYPE_FLAGS_COMMON_COASTER | RIDE_TYPE_FLAGS_COMMON_COASTER_NON_ALT | RIDE_TYPE_FLAG_PEEP_CHECK_GFORCES,
|
||||
.RideModes = EnumsToFlags(RideMode::ContinuousCircuit),
|
||||
.DefaultMode = RideMode::ContinuousCircuit,
|
||||
.OperatingSettings = { 0, 0, 0, 0, 0, 0 },
|
||||
.Naming = { STR_RIDE_NAME_VIRGINIA_REEL, STR_RIDE_DESCRIPTION_VIRGINIA_REEL },
|
||||
.NameConvention = { RideComponentType::Car, RideComponentType::Track, RideComponentType::Station },
|
||||
.EnumName = nameof(RIDE_TYPE_VIRGINIA_REEL),
|
||||
.AvailableBreakdowns = (1 << BREAKDOWN_SAFETY_CUT_OUT) | (1 << BREAKDOWN_VEHICLE_MALFUNCTION) | (1 << BREAKDOWN_BRAKES_FAILURE),
|
||||
.Heights = { 14, 24, 6, 7, },
|
||||
.MaxMass = 15,
|
||||
.LiftData = { OpenRCT2::Audio::SoundId::LiftClassic, 3, 5 },
|
||||
.RatingsMultipliers = { 30, 15, 25 },
|
||||
.UpkeepCosts = { 39, 20, 80, 10, 3, 10 },
|
||||
.BuildCosts = { 26.50_GBP, 3.00_GBP, 25, },
|
||||
.DefaultPrices = { 20, 20 },
|
||||
.DefaultMusic = MUSIC_OBJECT_ROCK_1,
|
||||
.PhotoItem = ShopItem::Photo3,
|
||||
.BonusValue = 50,
|
||||
.ColourPresets = TRACK_COLOUR_PRESETS(
|
||||
{ COLOUR_SATURATED_BROWN, COLOUR_GREY, COLOUR_SATURATED_BROWN },
|
||||
{ COLOUR_BLACK, COLOUR_DARK_BROWN, COLOUR_DARK_BROWN },
|
||||
{ COLOUR_DARK_BROWN, COLOUR_BORDEAUX_RED, COLOUR_DARK_BROWN },
|
||||
)),
|
||||
SET_FIELD(ColourPreview, { SPR_RIDE_DESIGN_PREVIEW_VIRGINIA_REEL_TRACK, SPR_RIDE_DESIGN_PREVIEW_VIRGINIA_REEL_SUPPORTS }),
|
||||
SET_FIELD(ColourKey, RideColourKey::Ride),
|
||||
SET_FIELD(Name, "virginia_reel"),
|
||||
SET_FIELD(RatingsData,
|
||||
),
|
||||
.ColourPreview = { SPR_RIDE_DESIGN_PREVIEW_VIRGINIA_REEL_TRACK, SPR_RIDE_DESIGN_PREVIEW_VIRGINIA_REEL_SUPPORTS },
|
||||
.ColourKey = RideColourKey::Ride,
|
||||
.Name = "virginia_reel",
|
||||
.RatingsData =
|
||||
{
|
||||
RatingsCalculationType::Normal,
|
||||
{ RIDE_RATING(2, 10), RIDE_RATING(1, 90), RIDE_RATING(3, 70) },
|
||||
@@ -75,6 +75,6 @@ constexpr RideTypeDescriptor VirginiaReelRTD =
|
||||
{ RatingsModifierType::RequirementNumDrops, 2, 2, 2, 2 },
|
||||
{ RatingsModifierType::PenaltyLateralGs, 0, 110592, 29789, 59578 },
|
||||
},
|
||||
}),
|
||||
},
|
||||
};
|
||||
// clang-format on
|
||||
|
||||
@@ -18,43 +18,43 @@
|
||||
// clang-format off
|
||||
constexpr RideTypeDescriptor WaterCoasterRTD =
|
||||
{
|
||||
SET_FIELD(AlternateType, RIDE_TYPE_NULL),
|
||||
SET_FIELD(Category, RIDE_CATEGORY_ROLLERCOASTER),
|
||||
SET_FIELD(EnabledTrackPieces, {TRACK_STRAIGHT, TRACK_STATION_END, TRACK_LIFT_HILL, TRACK_FLAT_ROLL_BANKING, TRACK_SLOPE, TRACK_SLOPE_STEEP_UP, TRACK_SLOPE_STEEP_DOWN, TRACK_SLOPE_CURVE, TRACK_S_BEND, TRACK_CURVE_SMALL, TRACK_CURVE, TRACK_CURVE_LARGE, TRACK_HELIX_DOWN_BANKED_HALF, TRACK_HELIX_UP_BANKED_HALF, TRACK_BRAKES, TRACK_BLOCK_BRAKES, TRACK_ON_RIDE_PHOTO, TRACK_BOOSTER, TRACK_DIAG_BRAKES, TRACK_DIAG_BLOCK_BRAKES}),
|
||||
SET_FIELD(ExtraTrackPieces, {TRACK_SLOPE_LONG}),
|
||||
SET_FIELD(CoveredTrackPieces, {TrackElemType::Flat, TrackElemType::LeftQuarterTurn5Tiles, TrackElemType::RightQuarterTurn5Tiles, TrackElemType::SBendLeft, TrackElemType::SBendRight}),
|
||||
SET_FIELD(StartTrackPiece, TrackElemType::EndStation),
|
||||
SET_FIELD(TrackPaintFunctions, TrackDrawerDescriptor(GetTrackPaintFunctionWaterRC, GetTrackPaintFunctionSplashBoats)),
|
||||
SET_FIELD(Flags, RIDE_TYPE_FLAGS_TRACK_HAS_3_COLOURS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION |
|
||||
.AlternateType = RIDE_TYPE_NULL,
|
||||
.Category = RIDE_CATEGORY_ROLLERCOASTER,
|
||||
.EnabledTrackPieces = {TRACK_STRAIGHT, TRACK_STATION_END, TRACK_LIFT_HILL, TRACK_FLAT_ROLL_BANKING, TRACK_SLOPE, TRACK_SLOPE_STEEP_UP, TRACK_SLOPE_STEEP_DOWN, TRACK_SLOPE_CURVE, TRACK_S_BEND, TRACK_CURVE_SMALL, TRACK_CURVE, TRACK_CURVE_LARGE, TRACK_HELIX_DOWN_BANKED_HALF, TRACK_HELIX_UP_BANKED_HALF, TRACK_BRAKES, TRACK_BLOCK_BRAKES, TRACK_ON_RIDE_PHOTO, TRACK_BOOSTER, TRACK_DIAG_BRAKES, TRACK_DIAG_BLOCK_BRAKES},
|
||||
.ExtraTrackPieces = {TRACK_SLOPE_LONG},
|
||||
.CoveredTrackPieces = {TrackElemType::Flat, TrackElemType::LeftQuarterTurn5Tiles, TrackElemType::RightQuarterTurn5Tiles, TrackElemType::SBendLeft, TrackElemType::SBendRight},
|
||||
.StartTrackPiece = TrackElemType::EndStation,
|
||||
.TrackPaintFunctions = TrackDrawerDescriptor(GetTrackPaintFunctionWaterRC, GetTrackPaintFunctionSplashBoats),
|
||||
.Flags = RIDE_TYPE_FLAGS_TRACK_HAS_3_COLOURS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION |
|
||||
RIDE_TYPE_FLAGS_COMMON_COASTER | RIDE_TYPE_FLAGS_COMMON_COASTER_NON_ALT |
|
||||
RIDE_TYPE_FLAG_TRACK_ELEMENTS_HAVE_TWO_VARIETIES | RIDE_TYPE_FLAG_PEEP_CHECK_GFORCES),
|
||||
SET_FIELD(RideModes, EnumsToFlags(RideMode::ContinuousCircuit, RideMode::ContinuousCircuitBlockSectioned)),
|
||||
SET_FIELD(DefaultMode, RideMode::ContinuousCircuit),
|
||||
SET_FIELD(OperatingSettings, { 0, 0, 0, 17, 16, -1 }),
|
||||
SET_FIELD(Naming, { STR_RIDE_NAME_WATER_COASTER, STR_RIDE_DESCRIPTION_WATER_COASTER }),
|
||||
SET_FIELD(NameConvention, { RideComponentType::Boat, RideComponentType::Track, RideComponentType::Station }),
|
||||
SET_FIELD(EnumName, nameof(RIDE_TYPE_WATER_COASTER)),
|
||||
SET_FIELD(AvailableBreakdowns, (1 << BREAKDOWN_SAFETY_CUT_OUT) | (1 << BREAKDOWN_RESTRAINTS_STUCK_CLOSED) | (1 << BREAKDOWN_RESTRAINTS_STUCK_OPEN) | (1 << BREAKDOWN_VEHICLE_MALFUNCTION) | (1 << BREAKDOWN_BRAKES_FAILURE)),
|
||||
SET_FIELD(Heights, { 18, 24, 4, 7, }),
|
||||
SET_FIELD(MaxMass, 13),
|
||||
SET_FIELD(LiftData, { OpenRCT2::Audio::SoundId::LiftClassic, 4, 6 }),
|
||||
SET_FIELD(RatingsMultipliers, { 50, 30, 10 }),
|
||||
SET_FIELD(UpkeepCosts, { 60, 20, 80, 8, 3, 10 }),
|
||||
SET_FIELD(BuildCosts, { 27.50_GBP, 2.00_GBP, 40, }),
|
||||
SET_FIELD(DefaultPrices, { 20, 20 }),
|
||||
SET_FIELD(DefaultMusic, MUSIC_OBJECT_WATER),
|
||||
SET_FIELD(PhotoItem, ShopItem::Photo4),
|
||||
SET_FIELD(BonusValue, 60),
|
||||
SET_FIELD(ColourPresets, TRACK_COLOUR_PRESETS(
|
||||
RIDE_TYPE_FLAG_TRACK_ELEMENTS_HAVE_TWO_VARIETIES | RIDE_TYPE_FLAG_PEEP_CHECK_GFORCES,
|
||||
.RideModes = EnumsToFlags(RideMode::ContinuousCircuit, RideMode::ContinuousCircuitBlockSectioned),
|
||||
.DefaultMode = RideMode::ContinuousCircuit,
|
||||
.OperatingSettings = { 0, 0, 0, 17, 16, -1 },
|
||||
.Naming = { STR_RIDE_NAME_WATER_COASTER, STR_RIDE_DESCRIPTION_WATER_COASTER },
|
||||
.NameConvention = { RideComponentType::Boat, RideComponentType::Track, RideComponentType::Station },
|
||||
.EnumName = nameof(RIDE_TYPE_WATER_COASTER),
|
||||
.AvailableBreakdowns = (1 << BREAKDOWN_SAFETY_CUT_OUT) | (1 << BREAKDOWN_RESTRAINTS_STUCK_CLOSED) | (1 << BREAKDOWN_RESTRAINTS_STUCK_OPEN) | (1 << BREAKDOWN_VEHICLE_MALFUNCTION) | (1 << BREAKDOWN_BRAKES_FAILURE),
|
||||
.Heights = { 18, 24, 4, 7, },
|
||||
.MaxMass = 13,
|
||||
.LiftData = { OpenRCT2::Audio::SoundId::LiftClassic, 4, 6 },
|
||||
.RatingsMultipliers = { 50, 30, 10 },
|
||||
.UpkeepCosts = { 60, 20, 80, 8, 3, 10 },
|
||||
.BuildCosts = { 27.50_GBP, 2.00_GBP, 40, },
|
||||
.DefaultPrices = { 20, 20 },
|
||||
.DefaultMusic = MUSIC_OBJECT_WATER,
|
||||
.PhotoItem = ShopItem::Photo4,
|
||||
.BonusValue = 60,
|
||||
.ColourPresets = TRACK_COLOUR_PRESETS(
|
||||
{ COLOUR_DARK_GREEN, COLOUR_DARK_GREEN, COLOUR_BLACK },
|
||||
{ COLOUR_DARK_BROWN, COLOUR_DARK_BROWN, COLOUR_BORDEAUX_RED },
|
||||
{ COLOUR_WHITE, COLOUR_WHITE, COLOUR_DARK_PURPLE },
|
||||
{ COLOUR_DULL_BROWN_LIGHT, COLOUR_DULL_BROWN_LIGHT, COLOUR_DARK_BROWN }, // De Vliegende Hollander
|
||||
)),
|
||||
SET_FIELD(ColourPreview, { SPR_RIDE_DESIGN_PREVIEW_WATER_COASTER_TRACK, SPR_RIDE_DESIGN_PREVIEW_WATER_COASTER_SUPPORTS }),
|
||||
SET_FIELD(ColourKey, RideColourKey::Ride),
|
||||
SET_FIELD(Name, "water_coaster"),
|
||||
SET_FIELD(RatingsData,
|
||||
),
|
||||
.ColourPreview = { SPR_RIDE_DESIGN_PREVIEW_WATER_COASTER_TRACK, SPR_RIDE_DESIGN_PREVIEW_WATER_COASTER_SUPPORTS },
|
||||
.ColourKey = RideColourKey::Ride,
|
||||
.Name = "water_coaster",
|
||||
.RatingsData =
|
||||
{
|
||||
RatingsCalculationType::Normal,
|
||||
{ RIDE_RATING(2, 70), RIDE_RATING(2, 80), RIDE_RATING(2, 10) },
|
||||
@@ -80,18 +80,18 @@ constexpr RideTypeDescriptor WaterCoasterRTD =
|
||||
{ RatingsModifierType::RequirementSplashdown, 0, 8, 1, 1 },
|
||||
{ RatingsModifierType::PenaltyLateralGs, 0, 20480, 23831, 49648 },
|
||||
},
|
||||
}),
|
||||
SET_FIELD(UpdateRotating, UpdateRotatingDefault),
|
||||
SET_FIELD(LightFXAddLightsMagicVehicle, LightFxAddLightsMagicVehicle_BoatHire),
|
||||
SET_FIELD(StartRideMusic, OpenRCT2::RideAudio::DefaultStartRideMusicChannel),
|
||||
SET_FIELD(DesignCreateMode, TrackDesignCreateMode::Default),
|
||||
SET_FIELD(MusicUpdateFunction, DefaultMusicUpdate),
|
||||
SET_FIELD(Classification, RideClassification::Ride),
|
||||
SET_FIELD(UpdateLeaveEntrance, PeepUpdateRideLeaveEntranceDefault),
|
||||
SET_FIELD(SpecialElementRatingAdjustment, SpecialTrackElementRatingsAjustment_Default),
|
||||
SET_FIELD(GetGuestWaypointLocation, GetGuestWaypointLocationDefault),
|
||||
SET_FIELD(ConstructionWindowContext, RideConstructionWindowContext::Default),
|
||||
SET_FIELD(RideUpdate, nullptr),
|
||||
SET_FIELD(UpdateMeasurementsSpecialElements, RideUpdateMeasurementsSpecialElements_WaterCoaster),
|
||||
},
|
||||
.UpdateRotating = UpdateRotatingDefault,
|
||||
.LightFXAddLightsMagicVehicle = LightFxAddLightsMagicVehicle_BoatHire,
|
||||
.StartRideMusic = OpenRCT2::RideAudio::DefaultStartRideMusicChannel,
|
||||
.DesignCreateMode = TrackDesignCreateMode::Default,
|
||||
.MusicUpdateFunction = DefaultMusicUpdate,
|
||||
.Classification = RideClassification::Ride,
|
||||
.UpdateLeaveEntrance = PeepUpdateRideLeaveEntranceDefault,
|
||||
.SpecialElementRatingAdjustment = SpecialTrackElementRatingsAjustment_Default,
|
||||
.GetGuestWaypointLocation = GetGuestWaypointLocationDefault,
|
||||
.ConstructionWindowContext = RideConstructionWindowContext::Default,
|
||||
.RideUpdate = nullptr,
|
||||
.UpdateMeasurementsSpecialElements = RideUpdateMeasurementsSpecialElements_WaterCoaster,
|
||||
};
|
||||
// clang-format on
|
||||
|
||||
@@ -17,35 +17,35 @@
|
||||
// clang-format off
|
||||
constexpr RideTypeDescriptor WoodenRollerCoasterRTD =
|
||||
{
|
||||
SET_FIELD(AlternateType, RIDE_TYPE_NULL),
|
||||
SET_FIELD(Category, RIDE_CATEGORY_ROLLERCOASTER),
|
||||
SET_FIELD(EnabledTrackPieces, {TRACK_FLAT, TRACK_STRAIGHT, TRACK_STATION_END, TRACK_LIFT_HILL, TRACK_FLAT_ROLL_BANKING, TRACK_VERTICAL_LOOP, TRACK_SLOPE, TRACK_SLOPE_STEEP_UP, TRACK_SLOPE_STEEP_DOWN, TRACK_SLOPE_CURVE, TRACK_SLOPE_CURVE_STEEP, TRACK_S_BEND, TRACK_CURVE_SMALL, TRACK_CURVE, TRACK_CURVE_LARGE, TRACK_HELIX_DOWN_BANKED_HALF, TRACK_HELIX_UP_BANKED_HALF, TRACK_BRAKES, TRACK_ON_RIDE_PHOTO, TRACK_WATER_SPLASH, TRACK_SLOPE_CURVE_BANKED, TRACK_BLOCK_BRAKES, TRACK_SLOPE_ROLL_BANKING, TRACK_DIAG_BRAKES, TRACK_DIAG_BLOCK_BRAKES}),
|
||||
SET_FIELD(ExtraTrackPieces, {TRACK_BOOSTER}),
|
||||
SET_FIELD(CoveredTrackPieces, {}),
|
||||
SET_FIELD(StartTrackPiece, TrackElemType::EndStation),
|
||||
SET_FIELD(TrackPaintFunctions, TrackDrawerDescriptor(GetTrackPaintFunctionWoodenRC)),
|
||||
SET_FIELD(Flags, RIDE_TYPE_FLAGS_TRACK_HAS_3_COLOURS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION |
|
||||
.AlternateType = RIDE_TYPE_NULL,
|
||||
.Category = RIDE_CATEGORY_ROLLERCOASTER,
|
||||
.EnabledTrackPieces = {TRACK_FLAT, TRACK_STRAIGHT, TRACK_STATION_END, TRACK_LIFT_HILL, TRACK_FLAT_ROLL_BANKING, TRACK_VERTICAL_LOOP, TRACK_SLOPE, TRACK_SLOPE_STEEP_UP, TRACK_SLOPE_STEEP_DOWN, TRACK_SLOPE_CURVE, TRACK_SLOPE_CURVE_STEEP, TRACK_S_BEND, TRACK_CURVE_SMALL, TRACK_CURVE, TRACK_CURVE_LARGE, TRACK_HELIX_DOWN_BANKED_HALF, TRACK_HELIX_UP_BANKED_HALF, TRACK_BRAKES, TRACK_ON_RIDE_PHOTO, TRACK_WATER_SPLASH, TRACK_SLOPE_CURVE_BANKED, TRACK_BLOCK_BRAKES, TRACK_SLOPE_ROLL_BANKING, TRACK_DIAG_BRAKES, TRACK_DIAG_BLOCK_BRAKES},
|
||||
.ExtraTrackPieces = {TRACK_BOOSTER},
|
||||
.CoveredTrackPieces = {},
|
||||
.StartTrackPiece = TrackElemType::EndStation,
|
||||
.TrackPaintFunctions = TrackDrawerDescriptor(GetTrackPaintFunctionWoodenRC),
|
||||
.Flags = RIDE_TYPE_FLAGS_TRACK_HAS_3_COLOURS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION |
|
||||
RIDE_TYPE_FLAGS_COMMON_COASTER | RIDE_TYPE_FLAGS_COMMON_COASTER_NON_ALT |
|
||||
RIDE_TYPE_FLAG_PEEP_CHECK_GFORCES | RIDE_TYPE_FLAG_ALLOW_MULTIPLE_CIRCUITS |
|
||||
RIDE_TYPE_FLAG_ALLOW_REVERSED_TRAINS),
|
||||
SET_FIELD(RideModes, EnumsToFlags(RideMode::ContinuousCircuit, RideMode::ContinuousCircuitBlockSectioned, RideMode::ReverseInclineLaunchedShuttle)),
|
||||
SET_FIELD(DefaultMode, RideMode::ContinuousCircuit),
|
||||
SET_FIELD(OperatingSettings, { 0, 0, 0, 0, 68, 0 }),
|
||||
SET_FIELD(Naming, { STR_RIDE_NAME_WOODEN_ROLLER_COASTER, STR_RIDE_DESCRIPTION_WOODEN_ROLLER_COASTER }),
|
||||
SET_FIELD(NameConvention, { RideComponentType::Train, RideComponentType::Track, RideComponentType::Station }),
|
||||
SET_FIELD(EnumName, nameof(RIDE_TYPE_WOODEN_ROLLER_COASTER)),
|
||||
SET_FIELD(AvailableBreakdowns, (1 << BREAKDOWN_SAFETY_CUT_OUT) | (1 << BREAKDOWN_RESTRAINTS_STUCK_CLOSED) | (1 << BREAKDOWN_RESTRAINTS_STUCK_OPEN) | (1 << BREAKDOWN_VEHICLE_MALFUNCTION) | (1 << BREAKDOWN_BRAKES_FAILURE)),
|
||||
SET_FIELD(Heights, { 41, 24, 8, 11, }),
|
||||
SET_FIELD(MaxMass, 19),
|
||||
SET_FIELD(LiftData, { OpenRCT2::Audio::SoundId::LiftWood, 5, 7 }),
|
||||
SET_FIELD(RatingsMultipliers, { 52, 33, 8 }),
|
||||
SET_FIELD(UpkeepCosts, { 40, 20, 80, 10, 3, 10 }),
|
||||
SET_FIELD(BuildCosts, { 37.50_GBP, 3.50_GBP, 50, }),
|
||||
SET_FIELD(DefaultPrices, { 20, 20 }),
|
||||
SET_FIELD(DefaultMusic, MUSIC_OBJECT_WILD_WEST),
|
||||
SET_FIELD(PhotoItem, ShopItem::Photo3),
|
||||
SET_FIELD(BonusValue, 105),
|
||||
SET_FIELD(ColourPresets, TRACK_COLOUR_PRESETS(
|
||||
RIDE_TYPE_FLAG_ALLOW_REVERSED_TRAINS,
|
||||
.RideModes = EnumsToFlags(RideMode::ContinuousCircuit, RideMode::ContinuousCircuitBlockSectioned, RideMode::ReverseInclineLaunchedShuttle),
|
||||
.DefaultMode = RideMode::ContinuousCircuit,
|
||||
.OperatingSettings = { 0, 0, 0, 0, 68, 0 },
|
||||
.Naming = { STR_RIDE_NAME_WOODEN_ROLLER_COASTER, STR_RIDE_DESCRIPTION_WOODEN_ROLLER_COASTER },
|
||||
.NameConvention = { RideComponentType::Train, RideComponentType::Track, RideComponentType::Station },
|
||||
.EnumName = nameof(RIDE_TYPE_WOODEN_ROLLER_COASTER),
|
||||
.AvailableBreakdowns = (1 << BREAKDOWN_SAFETY_CUT_OUT) | (1 << BREAKDOWN_RESTRAINTS_STUCK_CLOSED) | (1 << BREAKDOWN_RESTRAINTS_STUCK_OPEN) | (1 << BREAKDOWN_VEHICLE_MALFUNCTION) | (1 << BREAKDOWN_BRAKES_FAILURE),
|
||||
.Heights = { 41, 24, 8, 11, },
|
||||
.MaxMass = 19,
|
||||
.LiftData = { OpenRCT2::Audio::SoundId::LiftWood, 5, 7 },
|
||||
.RatingsMultipliers = { 52, 33, 8 },
|
||||
.UpkeepCosts = { 40, 20, 80, 10, 3, 10 },
|
||||
.BuildCosts = { 37.50_GBP, 3.50_GBP, 50, },
|
||||
.DefaultPrices = { 20, 20 },
|
||||
.DefaultMusic = MUSIC_OBJECT_WILD_WEST,
|
||||
.PhotoItem = ShopItem::Photo3,
|
||||
.BonusValue = 105,
|
||||
.ColourPresets = TRACK_COLOUR_PRESETS(
|
||||
{ COLOUR_BORDEAUX_RED, COLOUR_BLACK, COLOUR_WHITE },
|
||||
{ COLOUR_BRIGHT_RED, COLOUR_BLACK, COLOUR_GREY },
|
||||
{ COLOUR_YELLOW, COLOUR_DARK_BROWN, COLOUR_DARK_BROWN },
|
||||
@@ -54,11 +54,11 @@ constexpr RideTypeDescriptor WoodenRollerCoasterRTD =
|
||||
{ COLOUR_LIGHT_BLUE, COLOUR_BLACK, COLOUR_DARK_BROWN },
|
||||
{ COLOUR_SATURATED_BROWN_LIGHT, COLOUR_TAN_DARK, COLOUR_LIGHT_BROWN }, // Generic GCI
|
||||
{ COLOUR_TAN_DARK, COLOUR_DULL_BROWN_DARK, COLOUR_GREY }, // The Voyage /* Change supports to "minetrain" if possible in the future. */
|
||||
)),
|
||||
SET_FIELD(ColourPreview, { SPR_RIDE_DESIGN_PREVIEW_WOODEN_ROLLER_COASTER_TRACK, SPR_RIDE_DESIGN_PREVIEW_WOODEN_ROLLER_COASTER_SUPPORTS }),
|
||||
SET_FIELD(ColourKey, RideColourKey::Ride),
|
||||
SET_FIELD(Name, "wooden_rc"),
|
||||
SET_FIELD(RatingsData,
|
||||
),
|
||||
.ColourPreview = { SPR_RIDE_DESIGN_PREVIEW_WOODEN_ROLLER_COASTER_TRACK, SPR_RIDE_DESIGN_PREVIEW_WOODEN_ROLLER_COASTER_SUPPORTS },
|
||||
.ColourKey = RideColourKey::Ride,
|
||||
.Name = "wooden_rc",
|
||||
.RatingsData =
|
||||
{
|
||||
RatingsCalculationType::Normal,
|
||||
{ RIDE_RATING(3, 20), RIDE_RATING(2, 60), RIDE_RATING(2, 00) },
|
||||
@@ -86,6 +86,6 @@ constexpr RideTypeDescriptor WoodenRollerCoasterRTD =
|
||||
{ RatingsModifierType::RequirementNumDrops, 2, 2, 2, 2 },
|
||||
{ RatingsModifierType::PenaltyLateralGs, 0, 40960, 34555, 49648 },
|
||||
},
|
||||
}),
|
||||
},
|
||||
};
|
||||
// clang-format on
|
||||
|
||||
@@ -17,43 +17,43 @@
|
||||
// clang-format off
|
||||
constexpr RideTypeDescriptor WoodenWildMouseRTD =
|
||||
{
|
||||
SET_FIELD(AlternateType, RIDE_TYPE_NULL),
|
||||
SET_FIELD(Category, RIDE_CATEGORY_ROLLERCOASTER),
|
||||
SET_FIELD(EnabledTrackPieces, {TRACK_STRAIGHT, TRACK_STATION_END, TRACK_LIFT_HILL, TRACK_LIFT_HILL_STEEP, TRACK_SLOPE, TRACK_SLOPE_STEEP_UP, TRACK_SLOPE_STEEP_DOWN, TRACK_SLOPE_LONG, TRACK_CURVE_VERY_SMALL, TRACK_CURVE_SMALL}),
|
||||
SET_FIELD(ExtraTrackPieces, {}),
|
||||
SET_FIELD(CoveredTrackPieces, {}),
|
||||
SET_FIELD(StartTrackPiece, TrackElemType::EndStation),
|
||||
SET_FIELD(TrackPaintFunctions, TrackDrawerDescriptor(GetTrackPaintFunctionWoodenWildMouse)),
|
||||
SET_FIELD(Flags, RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_MAIN | RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_SUPPORTS |
|
||||
.AlternateType = RIDE_TYPE_NULL,
|
||||
.Category = RIDE_CATEGORY_ROLLERCOASTER,
|
||||
.EnabledTrackPieces = {TRACK_STRAIGHT, TRACK_STATION_END, TRACK_LIFT_HILL, TRACK_LIFT_HILL_STEEP, TRACK_SLOPE, TRACK_SLOPE_STEEP_UP, TRACK_SLOPE_STEEP_DOWN, TRACK_SLOPE_LONG, TRACK_CURVE_VERY_SMALL, TRACK_CURVE_SMALL},
|
||||
.ExtraTrackPieces = {},
|
||||
.CoveredTrackPieces = {},
|
||||
.StartTrackPiece = TrackElemType::EndStation,
|
||||
.TrackPaintFunctions = TrackDrawerDescriptor(GetTrackPaintFunctionWoodenWildMouse),
|
||||
.Flags = RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_MAIN | RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_SUPPORTS |
|
||||
RIDE_TYPE_FLAGS_COMMON_COASTER | RIDE_TYPE_FLAGS_COMMON_COASTER_NON_ALT |
|
||||
RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION | RIDE_TYPE_FLAG_ALLOW_DOORS_ON_TRACK |
|
||||
RIDE_TYPE_FLAG_PEEP_CHECK_GFORCES),
|
||||
SET_FIELD(RideModes, EnumsToFlags(RideMode::ContinuousCircuit)),
|
||||
SET_FIELD(DefaultMode, RideMode::ContinuousCircuit),
|
||||
SET_FIELD(OperatingSettings, { 0, 0, 0, 0, 0, 0 }),
|
||||
SET_FIELD(Naming, { STR_RIDE_NAME_WOODEN_WILD_MOUSE, STR_RIDE_DESCRIPTION_WOODEN_WILD_MOUSE }),
|
||||
SET_FIELD(NameConvention, { RideComponentType::Car, RideComponentType::Track, RideComponentType::Station }),
|
||||
SET_FIELD(EnumName, nameof(RIDE_TYPE_WOODEN_WILD_MOUSE)),
|
||||
SET_FIELD(AvailableBreakdowns, (1 << BREAKDOWN_SAFETY_CUT_OUT) | (1 << BREAKDOWN_VEHICLE_MALFUNCTION) | (1 << BREAKDOWN_BRAKES_FAILURE)),
|
||||
SET_FIELD(Heights, { 14, 24, 4, 7, }),
|
||||
SET_FIELD(MaxMass, 4),
|
||||
SET_FIELD(LiftData, { OpenRCT2::Audio::SoundId::LiftClassic, 4, 5 }),
|
||||
SET_FIELD(RatingsMultipliers, { 50, 30, 30 }),
|
||||
SET_FIELD(UpkeepCosts, { 40, 20, 80, 9, 3, 10 }),
|
||||
SET_FIELD(BuildCosts, { 25.00_GBP, 3.00_GBP, 40, }),
|
||||
SET_FIELD(DefaultPrices, { 20, 20 }),
|
||||
SET_FIELD(DefaultMusic, MUSIC_OBJECT_WILD_WEST),
|
||||
SET_FIELD(PhotoItem, ShopItem::Photo3),
|
||||
SET_FIELD(BonusValue, 55),
|
||||
SET_FIELD(ColourPresets, TRACK_COLOUR_PRESETS(
|
||||
RIDE_TYPE_FLAG_PEEP_CHECK_GFORCES,
|
||||
.RideModes = EnumsToFlags(RideMode::ContinuousCircuit),
|
||||
.DefaultMode = RideMode::ContinuousCircuit,
|
||||
.OperatingSettings = { 0, 0, 0, 0, 0, 0 },
|
||||
.Naming = { STR_RIDE_NAME_WOODEN_WILD_MOUSE, STR_RIDE_DESCRIPTION_WOODEN_WILD_MOUSE },
|
||||
.NameConvention = { RideComponentType::Car, RideComponentType::Track, RideComponentType::Station },
|
||||
.EnumName = nameof(RIDE_TYPE_WOODEN_WILD_MOUSE),
|
||||
.AvailableBreakdowns = (1 << BREAKDOWN_SAFETY_CUT_OUT) | (1 << BREAKDOWN_VEHICLE_MALFUNCTION) | (1 << BREAKDOWN_BRAKES_FAILURE),
|
||||
.Heights = { 14, 24, 4, 7, },
|
||||
.MaxMass = 4,
|
||||
.LiftData = { OpenRCT2::Audio::SoundId::LiftClassic, 4, 5 },
|
||||
.RatingsMultipliers = { 50, 30, 30 },
|
||||
.UpkeepCosts = { 40, 20, 80, 9, 3, 10 },
|
||||
.BuildCosts = { 25.00_GBP, 3.00_GBP, 40, },
|
||||
.DefaultPrices = { 20, 20 },
|
||||
.DefaultMusic = MUSIC_OBJECT_WILD_WEST,
|
||||
.PhotoItem = ShopItem::Photo3,
|
||||
.BonusValue = 55,
|
||||
.ColourPresets = TRACK_COLOUR_PRESETS(
|
||||
{ COLOUR_BRIGHT_RED, COLOUR_BRIGHT_RED, COLOUR_WHITE },
|
||||
{ COLOUR_BRIGHT_RED, COLOUR_BRIGHT_RED, COLOUR_SATURATED_BROWN },
|
||||
{ COLOUR_LIGHT_BLUE, COLOUR_LIGHT_BLUE, COLOUR_SATURATED_BROWN },
|
||||
)),
|
||||
SET_FIELD(ColourPreview, { SPR_RIDE_DESIGN_PREVIEW_WOODEN_WILD_MOUSE_TRACK, SPR_RIDE_DESIGN_PREVIEW_WOODEN_WILD_MOUSE_SUPPORTS }),
|
||||
SET_FIELD(ColourKey, RideColourKey::Ride),
|
||||
SET_FIELD(Name, "wooden_wild_mouse"),
|
||||
SET_FIELD(RatingsData,
|
||||
),
|
||||
.ColourPreview = { SPR_RIDE_DESIGN_PREVIEW_WOODEN_WILD_MOUSE_TRACK, SPR_RIDE_DESIGN_PREVIEW_WOODEN_WILD_MOUSE_SUPPORTS },
|
||||
.ColourKey = RideColourKey::Ride,
|
||||
.Name = "wooden_wild_mouse",
|
||||
.RatingsData =
|
||||
{
|
||||
RatingsCalculationType::Normal,
|
||||
{ RIDE_RATING(2, 90), RIDE_RATING(2, 90), RIDE_RATING(2, 10) },
|
||||
@@ -81,6 +81,6 @@ constexpr RideTypeDescriptor WoodenWildMouseRTD =
|
||||
{ RatingsModifierType::RequirementNumDrops, 3, 2, 2, 2 },
|
||||
{ RatingsModifierType::PenaltyLateralGs, 0, 102400, 35746, 49648 },
|
||||
},
|
||||
}),
|
||||
},
|
||||
};
|
||||
// clang-format on
|
||||
|
||||
@@ -18,37 +18,37 @@
|
||||
// clang-format off
|
||||
constexpr RideTypeDescriptor CarRideRTD =
|
||||
{
|
||||
SET_FIELD(AlternateType, RIDE_TYPE_NULL),
|
||||
SET_FIELD(Category, RIDE_CATEGORY_GENTLE),
|
||||
SET_FIELD(EnabledTrackPieces, {TRACK_STRAIGHT, TRACK_STATION_END, TRACK_SLOPE, TRACK_CURVE_VERY_SMALL, TRACK_CURVE_SMALL, TRACK_SPINNING_TUNNEL}),
|
||||
SET_FIELD(ExtraTrackPieces, {TRACK_SLOPE_STEEP_UP, TRACK_SLOPE_STEEP_DOWN, TRACK_RAPIDS}),
|
||||
SET_FIELD(CoveredTrackPieces, {}),
|
||||
SET_FIELD(StartTrackPiece, TrackElemType::EndStation),
|
||||
SET_FIELD(TrackPaintFunctions, TrackDrawerDescriptor(GetTrackPaintFunctionCarRide)),
|
||||
SET_FIELD(Flags, RIDE_TYPE_FLAGS_TRACK_HAS_3_COLOURS | RIDE_TYPE_FLAG_CAN_SYNCHRONISE_ADJACENT_STATIONS |
|
||||
.AlternateType = RIDE_TYPE_NULL,
|
||||
.Category = RIDE_CATEGORY_GENTLE,
|
||||
.EnabledTrackPieces = {TRACK_STRAIGHT, TRACK_STATION_END, TRACK_SLOPE, TRACK_CURVE_VERY_SMALL, TRACK_CURVE_SMALL, TRACK_SPINNING_TUNNEL},
|
||||
.ExtraTrackPieces = {TRACK_SLOPE_STEEP_UP, TRACK_SLOPE_STEEP_DOWN, TRACK_RAPIDS},
|
||||
.CoveredTrackPieces = {},
|
||||
.StartTrackPiece = TrackElemType::EndStation,
|
||||
.TrackPaintFunctions = TrackDrawerDescriptor(GetTrackPaintFunctionCarRide),
|
||||
.Flags = RIDE_TYPE_FLAGS_TRACK_HAS_3_COLOURS | RIDE_TYPE_FLAG_CAN_SYNCHRONISE_ADJACENT_STATIONS |
|
||||
RIDE_TYPE_FLAG_HAS_DATA_LOGGING | RIDE_TYPE_FLAG_HAS_LOAD_OPTIONS | RIDE_TYPE_FLAG_PEEP_WILL_RIDE_AGAIN |
|
||||
RIDE_TYPE_FLAG_HAS_VEHICLE_COLOURS | RIDE_TYPE_FLAG_HAS_TRACK | RIDE_TYPE_FLAG_SUPPORTS_MULTIPLE_TRACK_COLOUR |
|
||||
RIDE_TYPE_FLAG_ALLOW_DOORS_ON_TRACK | RIDE_TYPE_FLAG_ALLOW_MUSIC | RIDE_TYPE_FLAG_HAS_ENTRANCE_EXIT |
|
||||
RIDE_TYPE_FLAG_ALLOW_MORE_VEHICLES_THAN_STATION_FITS | RIDE_TYPE_FLAG_SHOW_IN_TRACK_DESIGNER |
|
||||
RIDE_TYPE_FLAG_SLIGHTLY_INTERESTING_TO_LOOK_AT),
|
||||
SET_FIELD(RideModes, EnumsToFlags(RideMode::ContinuousCircuit)),
|
||||
SET_FIELD(DefaultMode, RideMode::ContinuousCircuit),
|
||||
SET_FIELD(OperatingSettings, { 0, 0, 0, 0, 0, 0 }),
|
||||
SET_FIELD(Naming, { STR_RIDE_NAME_CAR_RIDE, STR_RIDE_DESCRIPTION_CAR_RIDE }),
|
||||
SET_FIELD(NameConvention, { RideComponentType::Car, RideComponentType::Track, RideComponentType::Station }),
|
||||
SET_FIELD(EnumName, nameof(RIDE_TYPE_CAR_RIDE)),
|
||||
SET_FIELD(AvailableBreakdowns, (1 << BREAKDOWN_SAFETY_CUT_OUT) | (1 << BREAKDOWN_VEHICLE_MALFUNCTION)),
|
||||
SET_FIELD(Heights, { 6, 24, 4, 7, }),
|
||||
SET_FIELD(MaxMass, 2),
|
||||
SET_FIELD(LiftData, { OpenRCT2::Audio::SoundId::Null, 5, 5 }),
|
||||
SET_FIELD(RatingsMultipliers, { 70, 10, 10 }),
|
||||
SET_FIELD(UpkeepCosts, { 70, 20, 0, 8, 3, 5 }),
|
||||
SET_FIELD(BuildCosts, { 12.50_GBP, 2.50_GBP, 30, }),
|
||||
SET_FIELD(DefaultPrices, { 15, 0 }),
|
||||
SET_FIELD(DefaultMusic, MUSIC_OBJECT_SUMMER),
|
||||
SET_FIELD(PhotoItem, ShopItem::Photo),
|
||||
SET_FIELD(BonusValue, 50),
|
||||
SET_FIELD(ColourPresets, TRACK_COLOUR_PRESETS(
|
||||
RIDE_TYPE_FLAG_SLIGHTLY_INTERESTING_TO_LOOK_AT,
|
||||
.RideModes = EnumsToFlags(RideMode::ContinuousCircuit),
|
||||
.DefaultMode = RideMode::ContinuousCircuit,
|
||||
.OperatingSettings = { 0, 0, 0, 0, 0, 0 },
|
||||
.Naming = { STR_RIDE_NAME_CAR_RIDE, STR_RIDE_DESCRIPTION_CAR_RIDE },
|
||||
.NameConvention = { RideComponentType::Car, RideComponentType::Track, RideComponentType::Station },
|
||||
.EnumName = nameof(RIDE_TYPE_CAR_RIDE),
|
||||
.AvailableBreakdowns = (1 << BREAKDOWN_SAFETY_CUT_OUT) | (1 << BREAKDOWN_VEHICLE_MALFUNCTION),
|
||||
.Heights = { 6, 24, 4, 7, },
|
||||
.MaxMass = 2,
|
||||
.LiftData = { OpenRCT2::Audio::SoundId::Null, 5, 5 },
|
||||
.RatingsMultipliers = { 70, 10, 10 },
|
||||
.UpkeepCosts = { 70, 20, 0, 8, 3, 5 },
|
||||
.BuildCosts = { 12.50_GBP, 2.50_GBP, 30, },
|
||||
.DefaultPrices = { 15, 0 },
|
||||
.DefaultMusic = MUSIC_OBJECT_SUMMER,
|
||||
.PhotoItem = ShopItem::Photo,
|
||||
.BonusValue = 50,
|
||||
.ColourPresets = TRACK_COLOUR_PRESETS(
|
||||
{ COLOUR_SATURATED_BROWN, COLOUR_SATURATED_BROWN, COLOUR_GREY },
|
||||
{ COLOUR_LIGHT_PURPLE, COLOUR_LIGHT_PURPLE, COLOUR_WHITE },
|
||||
{ COLOUR_BORDEAUX_RED, COLOUR_BORDEAUX_RED, COLOUR_OLIVE_GREEN },
|
||||
@@ -58,11 +58,11 @@ constexpr RideTypeDescriptor CarRideRTD =
|
||||
{ COLOUR_LIGHT_WATER, COLOUR_LIGHT_WATER, COLOUR_GREY },
|
||||
{ COLOUR_ICY_BLUE, COLOUR_ICY_BLUE, COLOUR_WHITE },
|
||||
{ COLOUR_WHITE, COLOUR_WHITE, COLOUR_OLIVE_GREEN },
|
||||
)),
|
||||
SET_FIELD(ColourPreview, { SPR_RIDE_DESIGN_PREVIEW_CAR_RIDE_TRACK, SPR_RIDE_DESIGN_PREVIEW_CAR_RIDE_SUPPORTS }),
|
||||
SET_FIELD(ColourKey, RideColourKey::Ride),
|
||||
SET_FIELD(Name, "car_ride"),
|
||||
SET_FIELD(RatingsData,
|
||||
),
|
||||
.ColourPreview = { SPR_RIDE_DESIGN_PREVIEW_CAR_RIDE_TRACK, SPR_RIDE_DESIGN_PREVIEW_CAR_RIDE_SUPPORTS },
|
||||
.ColourKey = RideColourKey::Ride,
|
||||
.Name = "car_ride",
|
||||
.RatingsData =
|
||||
{
|
||||
RatingsCalculationType::Normal,
|
||||
{ RIDE_RATING(2, 00), RIDE_RATING(0, 50), RIDE_RATING(0, 00) },
|
||||
@@ -83,8 +83,8 @@ constexpr RideTypeDescriptor CarRideRTD =
|
||||
{ RatingsModifierType::BonusScenery, 0, 8366, 0, 0 },
|
||||
{ RatingsModifierType::RequirementLength, 0xC80000, 8, 2, 2 },
|
||||
},
|
||||
}),
|
||||
SET_FIELD(UpdateRotating, UpdateRotatingDefault),
|
||||
SET_FIELD(LightFXAddLightsMagicVehicle, LightFxAddLightsMagicVehicle_BoatHire),
|
||||
},
|
||||
.UpdateRotating = UpdateRotatingDefault,
|
||||
.LightFXAddLightsMagicVehicle = LightFxAddLightsMagicVehicle_BoatHire,
|
||||
};
|
||||
// clang-format on
|
||||
|
||||
@@ -17,40 +17,40 @@
|
||||
// clang-format off
|
||||
constexpr RideTypeDescriptor CircusRTD =
|
||||
{
|
||||
SET_FIELD(AlternateType, RIDE_TYPE_NULL),
|
||||
SET_FIELD(Category, RIDE_CATEGORY_GENTLE),
|
||||
SET_FIELD(EnabledTrackPieces, {}),
|
||||
SET_FIELD(ExtraTrackPieces, {}),
|
||||
SET_FIELD(CoveredTrackPieces, {}),
|
||||
SET_FIELD(StartTrackPiece, TrackElemType::FlatTrack3x3),
|
||||
SET_FIELD(TrackPaintFunctions, TrackDrawerDescriptor(GetTrackPaintFunctionCircus)),
|
||||
SET_FIELD(Flags, RIDE_TYPE_FLAG_HAS_SINGLE_PIECE_STATION | RIDE_TYPE_FLAG_CANNOT_HAVE_GAPS |
|
||||
.AlternateType = RIDE_TYPE_NULL,
|
||||
.Category = RIDE_CATEGORY_GENTLE,
|
||||
.EnabledTrackPieces = {},
|
||||
.ExtraTrackPieces = {},
|
||||
.CoveredTrackPieces = {},
|
||||
.StartTrackPiece = TrackElemType::FlatTrack3x3,
|
||||
.TrackPaintFunctions = TrackDrawerDescriptor(GetTrackPaintFunctionCircus),
|
||||
.Flags = RIDE_TYPE_FLAG_HAS_SINGLE_PIECE_STATION | RIDE_TYPE_FLAG_CANNOT_HAVE_GAPS |
|
||||
RIDE_TYPE_FLAG_HAS_LOAD_OPTIONS | RIDE_TYPE_FLAG_VEHICLE_IS_INTEGRAL | RIDE_TYPE_FLAG_TRACK_NO_WALLS |
|
||||
RIDE_TYPE_FLAG_FLAT_RIDE | RIDE_TYPE_FLAG_IN_RIDE | RIDE_TYPE_FLAG_HAS_VEHICLE_COLOURS |
|
||||
RIDE_TYPE_FLAG_MUSIC_ON_DEFAULT | RIDE_TYPE_FLAG_HAS_ENTRANCE_EXIT | RIDE_TYPE_FLAG_SINGLE_SESSION |
|
||||
RIDE_TYPE_FLAG_LIST_VEHICLES_SEPARATELY),
|
||||
SET_FIELD(RideModes, EnumsToFlags(RideMode::Circus)),
|
||||
SET_FIELD(DefaultMode, RideMode::Circus),
|
||||
SET_FIELD(OperatingSettings, { 0, 0, 0, 0, 0, 0 }),
|
||||
SET_FIELD(Naming, { STR_RIDE_NAME_CIRCUS, STR_RIDE_DESCRIPTION_CIRCUS }),
|
||||
SET_FIELD(NameConvention, { RideComponentType::Building, RideComponentType::Structure, RideComponentType::Station }),
|
||||
SET_FIELD(EnumName, nameof(RIDE_TYPE_CIRCUS)),
|
||||
SET_FIELD(AvailableBreakdowns, (1 << BREAKDOWN_SAFETY_CUT_OUT)),
|
||||
SET_FIELD(Heights, { 12, 128, 3, 2, }),
|
||||
SET_FIELD(MaxMass, 255),
|
||||
SET_FIELD(LiftData, { OpenRCT2::Audio::SoundId::Null, 5, 5 }),
|
||||
SET_FIELD(RatingsMultipliers, { 20, 10, 0 }),
|
||||
SET_FIELD(UpkeepCosts, { 50, 1, 0, 0, 0, 0 }),
|
||||
SET_FIELD(BuildCosts, { 62.50_GBP, 1.00_GBP, 1, }),
|
||||
SET_FIELD(DefaultPrices, { 12, 0 }),
|
||||
SET_FIELD(DefaultMusic, {}),
|
||||
SET_FIELD(PhotoItem, ShopItem::Photo),
|
||||
SET_FIELD(BonusValue, 39),
|
||||
SET_FIELD(ColourPresets, DEFAULT_FLAT_RIDE_COLOUR_PRESET),
|
||||
SET_FIELD(ColourPreview, { 0, 0 }),
|
||||
SET_FIELD(ColourKey, RideColourKey::Ride),
|
||||
SET_FIELD(Name, "circus"),
|
||||
SET_FIELD(RatingsData,
|
||||
RIDE_TYPE_FLAG_LIST_VEHICLES_SEPARATELY,
|
||||
.RideModes = EnumsToFlags(RideMode::Circus),
|
||||
.DefaultMode = RideMode::Circus,
|
||||
.OperatingSettings = { 0, 0, 0, 0, 0, 0 },
|
||||
.Naming = { STR_RIDE_NAME_CIRCUS, STR_RIDE_DESCRIPTION_CIRCUS },
|
||||
.NameConvention = { RideComponentType::Building, RideComponentType::Structure, RideComponentType::Station },
|
||||
.EnumName = nameof(RIDE_TYPE_CIRCUS),
|
||||
.AvailableBreakdowns = (1 << BREAKDOWN_SAFETY_CUT_OUT),
|
||||
.Heights = { 12, 128, 3, 2, },
|
||||
.MaxMass = 255,
|
||||
.LiftData = { OpenRCT2::Audio::SoundId::Null, 5, 5 },
|
||||
.RatingsMultipliers = { 20, 10, 0 },
|
||||
.UpkeepCosts = { 50, 1, 0, 0, 0, 0 },
|
||||
.BuildCosts = { 62.50_GBP, 1.00_GBP, 1, },
|
||||
.DefaultPrices = { 12, 0 },
|
||||
.DefaultMusic = {},
|
||||
.PhotoItem = ShopItem::Photo,
|
||||
.BonusValue = 39,
|
||||
.ColourPresets = DEFAULT_FLAT_RIDE_COLOUR_PRESET,
|
||||
.ColourPreview = { 0, 0 },
|
||||
.ColourKey = RideColourKey::Ride,
|
||||
.Name = "circus",
|
||||
.RatingsData =
|
||||
{
|
||||
RatingsCalculationType::FlatRide,
|
||||
{ RIDE_RATING(2, 10), RIDE_RATING(0, 30), RIDE_RATING(0, 0) },
|
||||
@@ -58,19 +58,19 @@ constexpr RideTypeDescriptor CircusRTD =
|
||||
7,
|
||||
false,
|
||||
{ { RatingsModifierType::NoModifier, 0, 0, 0, 0 } }
|
||||
}),
|
||||
SET_FIELD(UpdateRotating, UpdateRotatingDefault),
|
||||
SET_FIELD(LightFXAddLightsMagicVehicle, nullptr),
|
||||
SET_FIELD(StartRideMusic, OpenRCT2::RideAudio::CircusStartRideMusicChannel),
|
||||
SET_FIELD(DesignCreateMode, TrackDesignCreateMode::Default),
|
||||
SET_FIELD(MusicUpdateFunction, CircusMusicUpdate),
|
||||
SET_FIELD(Classification,RideClassification::Ride),
|
||||
SET_FIELD(UpdateLeaveEntrance,PeepUpdateRideLeaveEntranceDefault),
|
||||
SET_FIELD(SpecialElementRatingAdjustment, SpecialTrackElementRatingsAjustment_Default),
|
||||
SET_FIELD(GetGuestWaypointLocation, GetGuestWaypointLocationDefault),
|
||||
SET_FIELD(ConstructionWindowContext, RideConstructionWindowContext::Default),
|
||||
SET_FIELD(RideUpdate, nullptr),
|
||||
SET_FIELD(UpdateMeasurementsSpecialElements, RideUpdateMeasurementsSpecialElements_Default),
|
||||
SET_FIELD(MusicTrackOffsetLength, OpenRCT2::RideAudio::RideMusicGetTrackOffsetLength_Circus),
|
||||
},
|
||||
.UpdateRotating = UpdateRotatingDefault,
|
||||
.LightFXAddLightsMagicVehicle = nullptr,
|
||||
.StartRideMusic = OpenRCT2::RideAudio::CircusStartRideMusicChannel,
|
||||
.DesignCreateMode = TrackDesignCreateMode::Default,
|
||||
.MusicUpdateFunction = CircusMusicUpdate,
|
||||
.Classification = RideClassification::Ride,
|
||||
.UpdateLeaveEntrance = PeepUpdateRideLeaveEntranceDefault,
|
||||
.SpecialElementRatingAdjustment = SpecialTrackElementRatingsAjustment_Default,
|
||||
.GetGuestWaypointLocation = GetGuestWaypointLocationDefault,
|
||||
.ConstructionWindowContext = RideConstructionWindowContext::Default,
|
||||
.RideUpdate = nullptr,
|
||||
.UpdateMeasurementsSpecialElements = RideUpdateMeasurementsSpecialElements_Default,
|
||||
.MusicTrackOffsetLength = OpenRCT2::RideAudio::RideMusicGetTrackOffsetLength_Circus,
|
||||
};
|
||||
// clang-format on
|
||||
|
||||
@@ -17,42 +17,42 @@
|
||||
// clang-format off
|
||||
constexpr RideTypeDescriptor CrookedHouseRTD =
|
||||
{
|
||||
SET_FIELD(AlternateType, RIDE_TYPE_NULL),
|
||||
SET_FIELD(Category, RIDE_CATEGORY_GENTLE),
|
||||
SET_FIELD(EnabledTrackPieces, {}),
|
||||
SET_FIELD(ExtraTrackPieces, {}),
|
||||
SET_FIELD(CoveredTrackPieces, {}),
|
||||
SET_FIELD(StartTrackPiece, TrackElemType::FlatTrack3x3),
|
||||
SET_FIELD(TrackPaintFunctions, TrackDrawerDescriptor(GetTrackPaintFunctionCrookedHouse)),
|
||||
SET_FIELD(Flags, RIDE_TYPE_FLAG_HAS_SINGLE_PIECE_STATION | RIDE_TYPE_FLAG_CANNOT_HAVE_GAPS |
|
||||
.AlternateType = RIDE_TYPE_NULL,
|
||||
.Category = RIDE_CATEGORY_GENTLE,
|
||||
.EnabledTrackPieces = {},
|
||||
.ExtraTrackPieces = {},
|
||||
.CoveredTrackPieces = {},
|
||||
.StartTrackPiece = TrackElemType::FlatTrack3x3,
|
||||
.TrackPaintFunctions = TrackDrawerDescriptor(GetTrackPaintFunctionCrookedHouse),
|
||||
.Flags = RIDE_TYPE_FLAG_HAS_SINGLE_PIECE_STATION | RIDE_TYPE_FLAG_CANNOT_HAVE_GAPS |
|
||||
RIDE_TYPE_FLAG_HAS_LOAD_OPTIONS | RIDE_TYPE_FLAG_VEHICLE_IS_INTEGRAL | RIDE_TYPE_FLAG_TRACK_NO_WALLS |
|
||||
RIDE_TYPE_FLAG_FLAT_RIDE | RIDE_TYPE_FLAG_IN_RIDE | RIDE_TYPE_FLAG_ALLOW_MUSIC |
|
||||
RIDE_TYPE_FLAG_HAS_ENTRANCE_EXIT | RIDE_TYPE_FLAG_SINGLE_SESSION |
|
||||
RIDE_TYPE_FLAG_LIST_VEHICLES_SEPARATELY),
|
||||
SET_FIELD(RideModes, EnumsToFlags(RideMode::CrookedHouse)),
|
||||
SET_FIELD(DefaultMode, RideMode::CrookedHouse),
|
||||
SET_FIELD(OperatingSettings, { 0, 0, 0, 0, 0, 0 }),
|
||||
SET_FIELD(Naming, { STR_RIDE_NAME_CROOKED_HOUSE, STR_RIDE_DESCRIPTION_CROOKED_HOUSE }),
|
||||
SET_FIELD(NameConvention, { RideComponentType::Building, RideComponentType::Structure, RideComponentType::Station }),
|
||||
SET_FIELD(EnumName, nameof(RIDE_TYPE_CROOKED_HOUSE)),
|
||||
SET_FIELD(AvailableBreakdowns, 0),
|
||||
SET_FIELD(Heights, { 16, 96, 3, 2, }),
|
||||
SET_FIELD(MaxMass, 255),
|
||||
SET_FIELD(LiftData, { OpenRCT2::Audio::SoundId::Null, 5, 5 }),
|
||||
SET_FIELD(RatingsMultipliers, { 15, 8, 0 }),
|
||||
SET_FIELD(UpkeepCosts, { 30, 1, 0, 0, 0, 0 }),
|
||||
SET_FIELD(BuildCosts, { 32.50_GBP, 1.00_GBP, 1, }),
|
||||
SET_FIELD(DefaultPrices, { 6, 0 }),
|
||||
SET_FIELD(DefaultMusic, MUSIC_OBJECT_GENTLE),
|
||||
SET_FIELD(PhotoItem, ShopItem::Photo),
|
||||
SET_FIELD(BonusValue, 22),
|
||||
SET_FIELD(ColourPresets, TRACK_COLOUR_PRESETS(
|
||||
RIDE_TYPE_FLAG_LIST_VEHICLES_SEPARATELY,
|
||||
.RideModes = EnumsToFlags(RideMode::CrookedHouse),
|
||||
.DefaultMode = RideMode::CrookedHouse,
|
||||
.OperatingSettings = { 0, 0, 0, 0, 0, 0 },
|
||||
.Naming = { STR_RIDE_NAME_CROOKED_HOUSE, STR_RIDE_DESCRIPTION_CROOKED_HOUSE },
|
||||
.NameConvention = { RideComponentType::Building, RideComponentType::Structure, RideComponentType::Station },
|
||||
.EnumName = nameof(RIDE_TYPE_CROOKED_HOUSE),
|
||||
.AvailableBreakdowns = 0,
|
||||
.Heights = { 16, 96, 3, 2, },
|
||||
.MaxMass = 255,
|
||||
.LiftData = { OpenRCT2::Audio::SoundId::Null, 5, 5 },
|
||||
.RatingsMultipliers = { 15, 8, 0 },
|
||||
.UpkeepCosts = { 30, 1, 0, 0, 0, 0 },
|
||||
.BuildCosts = { 32.50_GBP, 1.00_GBP, 1, },
|
||||
.DefaultPrices = { 6, 0 },
|
||||
.DefaultMusic = MUSIC_OBJECT_GENTLE,
|
||||
.PhotoItem = ShopItem::Photo,
|
||||
.BonusValue = 22,
|
||||
.ColourPresets = TRACK_COLOUR_PRESETS(
|
||||
{ COLOUR_BRIGHT_RED, COLOUR_BLACK, COLOUR_GREY },
|
||||
)),
|
||||
SET_FIELD(ColourPreview, { 0, 0 }),
|
||||
SET_FIELD(ColourKey, RideColourKey::Ride),
|
||||
SET_FIELD(Name, "crooked_house"),
|
||||
SET_FIELD(RatingsData,
|
||||
),
|
||||
.ColourPreview = { 0, 0 },
|
||||
.ColourKey = RideColourKey::Ride,
|
||||
.Name = "crooked_house",
|
||||
.RatingsData =
|
||||
{
|
||||
RatingsCalculationType::FlatRide,
|
||||
{ RIDE_RATING(2, 15), RIDE_RATING(0, 62), RIDE_RATING(0, 34) },
|
||||
@@ -60,6 +60,6 @@ constexpr RideTypeDescriptor CrookedHouseRTD =
|
||||
7,
|
||||
false,
|
||||
{ { RatingsModifierType::NoModifier, 0, 0, 0, 0 } }
|
||||
}),
|
||||
},
|
||||
};
|
||||
// clang-format on
|
||||
|
||||
@@ -18,46 +18,46 @@
|
||||
// clang-format off
|
||||
constexpr RideTypeDescriptor DodgemsRTD =
|
||||
{
|
||||
SET_FIELD(AlternateType, RIDE_TYPE_NULL),
|
||||
SET_FIELD(Category, RIDE_CATEGORY_GENTLE),
|
||||
SET_FIELD(EnabledTrackPieces, {}),
|
||||
SET_FIELD(ExtraTrackPieces, {}),
|
||||
SET_FIELD(CoveredTrackPieces, {}),
|
||||
SET_FIELD(StartTrackPiece, TrackElemType::FlatTrack4x4),
|
||||
SET_FIELD(TrackPaintFunctions, TrackDrawerDescriptor(GetTrackPaintFunctionDodgems)),
|
||||
SET_FIELD(Flags, RIDE_TYPE_FLAGS_TRACK_HAS_3_COLOURS | RIDE_TYPE_FLAG_HAS_SINGLE_PIECE_STATION |
|
||||
.AlternateType = RIDE_TYPE_NULL,
|
||||
.Category = RIDE_CATEGORY_GENTLE,
|
||||
.EnabledTrackPieces = {},
|
||||
.ExtraTrackPieces = {},
|
||||
.CoveredTrackPieces = {},
|
||||
.StartTrackPiece = TrackElemType::FlatTrack4x4,
|
||||
.TrackPaintFunctions = TrackDrawerDescriptor(GetTrackPaintFunctionDodgems),
|
||||
.Flags = RIDE_TYPE_FLAGS_TRACK_HAS_3_COLOURS | RIDE_TYPE_FLAG_HAS_SINGLE_PIECE_STATION |
|
||||
RIDE_TYPE_FLAG_CANNOT_HAVE_GAPS | RIDE_TYPE_FLAG_NO_TEST_MODE | RIDE_TYPE_FLAG_TRACK_NO_WALLS |
|
||||
RIDE_TYPE_FLAG_FLAT_RIDE | RIDE_TYPE_FLAG_HAS_VEHICLE_COLOURS | RIDE_TYPE_FLAG_MUSIC_ON_DEFAULT |
|
||||
RIDE_TYPE_FLAG_ALLOW_MUSIC | RIDE_TYPE_FLAG_HAS_ENTRANCE_EXIT |
|
||||
RIDE_TYPE_FLAG_SLIGHTLY_INTERESTING_TO_LOOK_AT | RIDE_TYPE_FLAG_LIST_VEHICLES_SEPARATELY),
|
||||
SET_FIELD(RideModes, EnumsToFlags(RideMode::Dodgems)),
|
||||
SET_FIELD(DefaultMode, RideMode::Dodgems),
|
||||
SET_FIELD(OperatingSettings, { 20, 180, 0, 0, 0, 0 }),
|
||||
SET_FIELD(Naming, { STR_RIDE_NAME_DODGEMS, STR_RIDE_DESCRIPTION_DODGEMS }),
|
||||
SET_FIELD(NameConvention, { RideComponentType::Car, RideComponentType::Building, RideComponentType::Station }),
|
||||
SET_FIELD(EnumName, nameof(RIDE_TYPE_DODGEMS)),
|
||||
SET_FIELD(AvailableBreakdowns, (1 << BREAKDOWN_SAFETY_CUT_OUT)),
|
||||
SET_FIELD(Heights, { 9, 48, 2, 2, }),
|
||||
SET_FIELD(MaxMass, 255),
|
||||
SET_FIELD(LiftData, { OpenRCT2::Audio::SoundId::Null, 5, 5 }),
|
||||
SET_FIELD(RatingsMultipliers, { 40, 20, 0 }),
|
||||
SET_FIELD(UpkeepCosts, { 50, 1, 0, 5, 0, 0 }),
|
||||
SET_FIELD(BuildCosts, { 27.50_GBP, 1.00_GBP, 1, }),
|
||||
SET_FIELD(DefaultPrices, { 15, 0 }),
|
||||
SET_FIELD(DefaultMusic, MUSIC_OBJECT_DODGEMS),
|
||||
SET_FIELD(PhotoItem, ShopItem::Photo),
|
||||
SET_FIELD(BonusValue, 35),
|
||||
SET_FIELD(ColourPresets, TRACK_COLOUR_PRESETS(
|
||||
RIDE_TYPE_FLAG_SLIGHTLY_INTERESTING_TO_LOOK_AT | RIDE_TYPE_FLAG_LIST_VEHICLES_SEPARATELY,
|
||||
.RideModes = EnumsToFlags(RideMode::Dodgems),
|
||||
.DefaultMode = RideMode::Dodgems,
|
||||
.OperatingSettings = { 20, 180, 0, 0, 0, 0 },
|
||||
.Naming = { STR_RIDE_NAME_DODGEMS, STR_RIDE_DESCRIPTION_DODGEMS },
|
||||
.NameConvention = { RideComponentType::Car, RideComponentType::Building, RideComponentType::Station },
|
||||
.EnumName = nameof(RIDE_TYPE_DODGEMS),
|
||||
.AvailableBreakdowns = (1 << BREAKDOWN_SAFETY_CUT_OUT),
|
||||
.Heights = { 9, 48, 2, 2, },
|
||||
.MaxMass = 255,
|
||||
.LiftData = { OpenRCT2::Audio::SoundId::Null, 5, 5 },
|
||||
.RatingsMultipliers = { 40, 20, 0 },
|
||||
.UpkeepCosts = { 50, 1, 0, 5, 0, 0 },
|
||||
.BuildCosts = { 27.50_GBP, 1.00_GBP, 1, },
|
||||
.DefaultPrices = { 15, 0 },
|
||||
.DefaultMusic = MUSIC_OBJECT_DODGEMS,
|
||||
.PhotoItem = ShopItem::Photo,
|
||||
.BonusValue = 35,
|
||||
.ColourPresets = TRACK_COLOUR_PRESETS(
|
||||
{ COLOUR_BRIGHT_RED, COLOUR_SATURATED_BROWN, COLOUR_SATURATED_BROWN },
|
||||
{ COLOUR_LIGHT_BLUE, COLOUR_GREY, COLOUR_GREY },
|
||||
{ COLOUR_DARK_GREEN, COLOUR_BLACK, COLOUR_DARK_GREEN },
|
||||
{ COLOUR_YELLOW, COLOUR_LIGHT_BROWN, COLOUR_DARK_YELLOW },
|
||||
{ COLOUR_SATURATED_GREEN, COLOUR_SATURATED_BROWN, COLOUR_SATURATED_BROWN },
|
||||
)),
|
||||
SET_FIELD(ColourPreview, { SPR_RIDE_DESIGN_PREVIEW_DODGEMS_TRACK, SPR_RIDE_DESIGN_PREVIEW_DODGEMS_SUPPORTS }),
|
||||
SET_FIELD(ColourKey, RideColourKey::Ride),
|
||||
SET_FIELD(Name, "dodgems"),
|
||||
SET_FIELD(RatingsData,
|
||||
),
|
||||
.ColourPreview = { SPR_RIDE_DESIGN_PREVIEW_DODGEMS_TRACK, SPR_RIDE_DESIGN_PREVIEW_DODGEMS_SUPPORTS },
|
||||
.ColourKey = RideColourKey::Ride,
|
||||
.Name = "dodgems",
|
||||
.RatingsData =
|
||||
{
|
||||
RatingsCalculationType::FlatRide,
|
||||
{ RIDE_RATING(1, 30), RIDE_RATING(0, 50), RIDE_RATING(0, 35) },
|
||||
@@ -70,8 +70,8 @@ constexpr RideTypeDescriptor DodgemsRTD =
|
||||
{ RatingsModifierType::BonusNumTrains, 4, RIDE_RATING(0, 80), 0, 0 },
|
||||
{ RatingsModifierType::BonusScenery, 0, 5577, 0, 0 },
|
||||
},
|
||||
}),
|
||||
SET_FIELD(UpdateRotating, UpdateRotatingDefault),
|
||||
SET_FIELD(LightFXAddLightsMagicVehicle, LightFxAddLightsMagicVehicle_BoatHire),
|
||||
},
|
||||
.UpdateRotating = UpdateRotatingDefault,
|
||||
.LightFXAddLightsMagicVehicle = LightFxAddLightsMagicVehicle_BoatHire,
|
||||
};
|
||||
// clang-format on
|
||||
|
||||
@@ -17,43 +17,43 @@
|
||||
// clang-format off
|
||||
constexpr RideTypeDescriptor FerrisWheelRTD =
|
||||
{
|
||||
SET_FIELD(AlternateType, RIDE_TYPE_NULL),
|
||||
SET_FIELD(Category, RIDE_CATEGORY_GENTLE),
|
||||
SET_FIELD(EnabledTrackPieces, {}),
|
||||
SET_FIELD(ExtraTrackPieces, {}),
|
||||
SET_FIELD(CoveredTrackPieces, {}),
|
||||
SET_FIELD(StartTrackPiece, TrackElemType::FlatTrack1x4C),
|
||||
SET_FIELD(TrackPaintFunctions, TrackDrawerDescriptor(GetTrackPaintFunctionFerrisWheel)),
|
||||
SET_FIELD(Flags, RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_MAIN | RIDE_TYPE_FLAG_HAS_SINGLE_PIECE_STATION |
|
||||
.AlternateType = RIDE_TYPE_NULL,
|
||||
.Category = RIDE_CATEGORY_GENTLE,
|
||||
.EnabledTrackPieces = {},
|
||||
.ExtraTrackPieces = {},
|
||||
.CoveredTrackPieces = {},
|
||||
.StartTrackPiece = TrackElemType::FlatTrack1x4C,
|
||||
.TrackPaintFunctions = TrackDrawerDescriptor(GetTrackPaintFunctionFerrisWheel),
|
||||
.Flags = RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_MAIN | RIDE_TYPE_FLAG_HAS_SINGLE_PIECE_STATION |
|
||||
RIDE_TYPE_FLAG_CANNOT_HAVE_GAPS | RIDE_TYPE_FLAG_VEHICLE_IS_INTEGRAL | RIDE_TYPE_FLAG_TRACK_NO_WALLS |
|
||||
RIDE_TYPE_FLAG_FLAT_RIDE | RIDE_TYPE_FLAG_HAS_VEHICLE_COLOURS | RIDE_TYPE_FLAG_ALLOW_MUSIC |
|
||||
RIDE_TYPE_FLAG_HAS_ENTRANCE_EXIT | RIDE_TYPE_FLAG_SINGLE_SESSION |
|
||||
RIDE_TYPE_FLAG_SLIGHTLY_INTERESTING_TO_LOOK_AT | RIDE_TYPE_FLAG_LIST_VEHICLES_SEPARATELY),
|
||||
SET_FIELD(RideModes, EnumsToFlags(RideMode::ForwardRotation, RideMode::BackwardRotation)),
|
||||
SET_FIELD(DefaultMode, RideMode::ForwardRotation),
|
||||
SET_FIELD(OperatingSettings, { 1, 3, 0, 0, 0, 0 }),
|
||||
SET_FIELD(Naming, { STR_RIDE_NAME_FERRIS_WHEEL, STR_RIDE_DESCRIPTION_FERRIS_WHEEL }),
|
||||
SET_FIELD(NameConvention, { RideComponentType::Wheel, RideComponentType::Structure, RideComponentType::Station }),
|
||||
SET_FIELD(EnumName, nameof(RIDE_TYPE_FERRIS_WHEEL)),
|
||||
SET_FIELD(AvailableBreakdowns, (1 << BREAKDOWN_SAFETY_CUT_OUT)),
|
||||
SET_FIELD(Heights, { 16, 176, 3, 2, }),
|
||||
SET_FIELD(MaxMass, 255),
|
||||
SET_FIELD(LiftData, { OpenRCT2::Audio::SoundId::Null, 5, 5 }),
|
||||
SET_FIELD(RatingsMultipliers, { 60, 20, 10 }),
|
||||
SET_FIELD(UpkeepCosts, { 50, 1, 0, 0, 0, 0 }),
|
||||
SET_FIELD(BuildCosts, { 112.50_GBP, 1.00_GBP, 1, }),
|
||||
SET_FIELD(DefaultPrices, { 10, 0 }),
|
||||
SET_FIELD(DefaultMusic, MUSIC_OBJECT_SUMMER),
|
||||
SET_FIELD(PhotoItem, ShopItem::Photo),
|
||||
SET_FIELD(BonusValue, 45),
|
||||
SET_FIELD(ColourPresets, TRACK_COLOUR_PRESETS(
|
||||
RIDE_TYPE_FLAG_SLIGHTLY_INTERESTING_TO_LOOK_AT | RIDE_TYPE_FLAG_LIST_VEHICLES_SEPARATELY,
|
||||
.RideModes = EnumsToFlags(RideMode::ForwardRotation, RideMode::BackwardRotation),
|
||||
.DefaultMode = RideMode::ForwardRotation,
|
||||
.OperatingSettings = { 1, 3, 0, 0, 0, 0 },
|
||||
.Naming = { STR_RIDE_NAME_FERRIS_WHEEL, STR_RIDE_DESCRIPTION_FERRIS_WHEEL },
|
||||
.NameConvention = { RideComponentType::Wheel, RideComponentType::Structure, RideComponentType::Station },
|
||||
.EnumName = nameof(RIDE_TYPE_FERRIS_WHEEL),
|
||||
.AvailableBreakdowns = (1 << BREAKDOWN_SAFETY_CUT_OUT),
|
||||
.Heights = { 16, 176, 3, 2, },
|
||||
.MaxMass = 255,
|
||||
.LiftData = { OpenRCT2::Audio::SoundId::Null, 5, 5 },
|
||||
.RatingsMultipliers = { 60, 20, 10 },
|
||||
.UpkeepCosts = { 50, 1, 0, 0, 0, 0 },
|
||||
.BuildCosts = { 112.50_GBP, 1.00_GBP, 1, },
|
||||
.DefaultPrices = { 10, 0 },
|
||||
.DefaultMusic = MUSIC_OBJECT_SUMMER,
|
||||
.PhotoItem = ShopItem::Photo,
|
||||
.BonusValue = 45,
|
||||
.ColourPresets = TRACK_COLOUR_PRESETS(
|
||||
{ COLOUR_BLACK, COLOUR_BLACK, COLOUR_BLACK },
|
||||
{ COLOUR_GREY, COLOUR_GREY, COLOUR_GREY },
|
||||
)),
|
||||
SET_FIELD(ColourPreview, { SPR_RIDE_DESIGN_PREVIEW_FERRIS_WHEEL_TRACK, 0 }),
|
||||
SET_FIELD(ColourKey, RideColourKey::Ride),
|
||||
SET_FIELD(Name, "ferris_wheel"),
|
||||
SET_FIELD(RatingsData,
|
||||
),
|
||||
.ColourPreview = { SPR_RIDE_DESIGN_PREVIEW_FERRIS_WHEEL_TRACK, 0 },
|
||||
.ColourKey = RideColourKey::Ride,
|
||||
.Name = "ferris_wheel",
|
||||
.RatingsData =
|
||||
{
|
||||
RatingsCalculationType::FlatRide,
|
||||
{ RIDE_RATING(0, 60), RIDE_RATING(0, 25), RIDE_RATING(0, 30) },
|
||||
@@ -64,6 +64,6 @@ constexpr RideTypeDescriptor FerrisWheelRTD =
|
||||
{ RatingsModifierType::BonusRotations, 0, 25, 25, 25 },
|
||||
{ RatingsModifierType::BonusScenery, 0, 41831, 0, 0 },
|
||||
},
|
||||
}),
|
||||
},
|
||||
};
|
||||
// clang-format on
|
||||
|
||||
@@ -17,46 +17,46 @@
|
||||
// clang-format off
|
||||
constexpr RideTypeDescriptor FlyingSaucersRTD =
|
||||
{
|
||||
SET_FIELD(AlternateType, RIDE_TYPE_NULL),
|
||||
SET_FIELD(Category, RIDE_CATEGORY_GENTLE),
|
||||
SET_FIELD(EnabledTrackPieces, {}),
|
||||
SET_FIELD(ExtraTrackPieces, {}),
|
||||
SET_FIELD(CoveredTrackPieces, {}),
|
||||
SET_FIELD(StartTrackPiece, TrackElemType::FlatTrack4x4),
|
||||
SET_FIELD(TrackPaintFunctions, TrackDrawerDescriptor(GetTrackPaintFunctionFlyingSaucers)),
|
||||
SET_FIELD(Flags, RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_MAIN | RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_ADDITIONAL |
|
||||
.AlternateType = RIDE_TYPE_NULL,
|
||||
.Category = RIDE_CATEGORY_GENTLE,
|
||||
.EnabledTrackPieces = {},
|
||||
.ExtraTrackPieces = {},
|
||||
.CoveredTrackPieces = {},
|
||||
.StartTrackPiece = TrackElemType::FlatTrack4x4,
|
||||
.TrackPaintFunctions = TrackDrawerDescriptor(GetTrackPaintFunctionFlyingSaucers),
|
||||
.Flags = RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_MAIN | RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_ADDITIONAL |
|
||||
RIDE_TYPE_FLAG_HAS_SINGLE_PIECE_STATION | RIDE_TYPE_FLAG_CANNOT_HAVE_GAPS | RIDE_TYPE_FLAG_NO_TEST_MODE |
|
||||
RIDE_TYPE_FLAG_TRACK_NO_WALLS | RIDE_TYPE_FLAG_FLAT_RIDE | RIDE_TYPE_FLAG_HAS_VEHICLE_COLOURS |
|
||||
RIDE_TYPE_FLAG_MUSIC_ON_DEFAULT | RIDE_TYPE_FLAG_ALLOW_MUSIC | RIDE_TYPE_FLAG_HAS_ENTRANCE_EXIT |
|
||||
RIDE_TYPE_FLAG_SINGLE_SESSION | RIDE_TYPE_FLAG_INTERESTING_TO_LOOK_AT |
|
||||
RIDE_TYPE_FLAG_LIST_VEHICLES_SEPARATELY),
|
||||
SET_FIELD(RideModes, EnumsToFlags(RideMode::Dodgems)),
|
||||
SET_FIELD(DefaultMode, RideMode::Dodgems),
|
||||
SET_FIELD(OperatingSettings, { 20, 180, 0, 0, 0, 0 }),
|
||||
SET_FIELD(Naming, { STR_RIDE_NAME_FLYING_SAUCERS, STR_RIDE_DESCRIPTION_FLYING_SAUCERS }),
|
||||
SET_FIELD(NameConvention, { RideComponentType::Car, RideComponentType::Building, RideComponentType::Station }),
|
||||
SET_FIELD(EnumName, nameof(RIDE_TYPE_FLYING_SAUCERS)),
|
||||
SET_FIELD(AvailableBreakdowns, (1 << BREAKDOWN_SAFETY_CUT_OUT)),
|
||||
SET_FIELD(Heights, { 9, 48, 2, 2, }),
|
||||
SET_FIELD(MaxMass, 255),
|
||||
SET_FIELD(LiftData, { OpenRCT2::Audio::SoundId::Null, 5, 5 }),
|
||||
SET_FIELD(RatingsMultipliers, { 50, 25, 0 }),
|
||||
SET_FIELD(UpkeepCosts, { 90, 1, 0, 5, 0, 0 }),
|
||||
SET_FIELD(BuildCosts, { 35.00_GBP, 2.00_GBP, 1, }),
|
||||
SET_FIELD(DefaultPrices, { 15, 0 }),
|
||||
SET_FIELD(DefaultMusic, MUSIC_OBJECT_ROCK_1),
|
||||
SET_FIELD(PhotoItem, ShopItem::Photo),
|
||||
SET_FIELD(BonusValue, 35),
|
||||
SET_FIELD(ColourPresets, TRACK_COLOUR_PRESETS(
|
||||
RIDE_TYPE_FLAG_LIST_VEHICLES_SEPARATELY,
|
||||
.RideModes = EnumsToFlags(RideMode::Dodgems),
|
||||
.DefaultMode = RideMode::Dodgems,
|
||||
.OperatingSettings = { 20, 180, 0, 0, 0, 0 },
|
||||
.Naming = { STR_RIDE_NAME_FLYING_SAUCERS, STR_RIDE_DESCRIPTION_FLYING_SAUCERS },
|
||||
.NameConvention = { RideComponentType::Car, RideComponentType::Building, RideComponentType::Station },
|
||||
.EnumName = nameof(RIDE_TYPE_FLYING_SAUCERS),
|
||||
.AvailableBreakdowns = (1 << BREAKDOWN_SAFETY_CUT_OUT),
|
||||
.Heights = { 9, 48, 2, 2, },
|
||||
.MaxMass = 255,
|
||||
.LiftData = { OpenRCT2::Audio::SoundId::Null, 5, 5 },
|
||||
.RatingsMultipliers = { 50, 25, 0 },
|
||||
.UpkeepCosts = { 90, 1, 0, 5, 0, 0 },
|
||||
.BuildCosts = { 35.00_GBP, 2.00_GBP, 1, },
|
||||
.DefaultPrices = { 15, 0 },
|
||||
.DefaultMusic = MUSIC_OBJECT_ROCK_1,
|
||||
.PhotoItem = ShopItem::Photo,
|
||||
.BonusValue = 35,
|
||||
.ColourPresets = TRACK_COLOUR_PRESETS(
|
||||
{ COLOUR_DARK_PURPLE, COLOUR_GREY, COLOUR_BLACK },
|
||||
{ COLOUR_BLACK, COLOUR_YELLOW, COLOUR_BLACK },
|
||||
{ COLOUR_YELLOW, COLOUR_SATURATED_RED, COLOUR_BLACK },
|
||||
{ COLOUR_ICY_BLUE, COLOUR_WHITE, COLOUR_BLACK },
|
||||
)),
|
||||
SET_FIELD(ColourPreview, { SPR_RIDE_DESIGN_PREVIEW_FLYING_SAUCERS_TRACK, 0 }),
|
||||
SET_FIELD(ColourKey, RideColourKey::Ride),
|
||||
SET_FIELD(Name, "flying_saucers"),
|
||||
SET_FIELD(RatingsData,
|
||||
),
|
||||
.ColourPreview = { SPR_RIDE_DESIGN_PREVIEW_FLYING_SAUCERS_TRACK, 0 },
|
||||
.ColourKey = RideColourKey::Ride,
|
||||
.Name = "flying_saucers",
|
||||
.RatingsData =
|
||||
{
|
||||
RatingsCalculationType::FlatRide,
|
||||
{ RIDE_RATING(2, 40), RIDE_RATING(0, 55), RIDE_RATING(0, 39) },
|
||||
@@ -69,6 +69,6 @@ constexpr RideTypeDescriptor FlyingSaucersRTD =
|
||||
{ RatingsModifierType::BonusNumTrains, 4, RIDE_RATING(0, 80), 0, 0 },
|
||||
{ RatingsModifierType::BonusScenery, 0, 5577, 0, 0 },
|
||||
},
|
||||
}),
|
||||
},
|
||||
};
|
||||
// clang-format on
|
||||
|
||||
@@ -18,47 +18,47 @@
|
||||
// clang-format off
|
||||
constexpr RideTypeDescriptor GhostTrainRTD =
|
||||
{
|
||||
SET_FIELD(AlternateType, RIDE_TYPE_NULL),
|
||||
SET_FIELD(Category, RIDE_CATEGORY_GENTLE),
|
||||
SET_FIELD(EnabledTrackPieces, {TRACK_STRAIGHT, TRACK_STATION_END, TRACK_SLOPE, TRACK_CURVE_VERY_SMALL, TRACK_CURVE_SMALL, TRACK_BRAKES, TRACK_SPINNING_TUNNEL}),
|
||||
SET_FIELD(ExtraTrackPieces, {}),
|
||||
SET_FIELD(CoveredTrackPieces, {}),
|
||||
SET_FIELD(StartTrackPiece, TrackElemType::EndStation),
|
||||
SET_FIELD(TrackPaintFunctions, TrackDrawerDescriptor(GetTrackPaintFunctionGhostTrain)),
|
||||
SET_FIELD(Flags, RIDE_TYPE_FLAGS_TRACK_HAS_3_COLOURS | RIDE_TYPE_FLAG_CAN_SYNCHRONISE_ADJACENT_STATIONS |
|
||||
.AlternateType = RIDE_TYPE_NULL,
|
||||
.Category = RIDE_CATEGORY_GENTLE,
|
||||
.EnabledTrackPieces = {TRACK_STRAIGHT, TRACK_STATION_END, TRACK_SLOPE, TRACK_CURVE_VERY_SMALL, TRACK_CURVE_SMALL, TRACK_BRAKES, TRACK_SPINNING_TUNNEL},
|
||||
.ExtraTrackPieces = {},
|
||||
.CoveredTrackPieces = {},
|
||||
.StartTrackPiece = TrackElemType::EndStation,
|
||||
.TrackPaintFunctions = TrackDrawerDescriptor(GetTrackPaintFunctionGhostTrain),
|
||||
.Flags = RIDE_TYPE_FLAGS_TRACK_HAS_3_COLOURS | RIDE_TYPE_FLAG_CAN_SYNCHRONISE_ADJACENT_STATIONS |
|
||||
RIDE_TYPE_FLAG_HAS_G_FORCES | RIDE_TYPE_FLAG_HAS_DATA_LOGGING | RIDE_TYPE_FLAG_HAS_DROPS |
|
||||
RIDE_TYPE_FLAG_HAS_LOAD_OPTIONS | RIDE_TYPE_FLAG_PEEP_WILL_RIDE_AGAIN | RIDE_TYPE_FLAG_HAS_VEHICLE_COLOURS |
|
||||
RIDE_TYPE_FLAG_HAS_TRACK | RIDE_TYPE_FLAG_SUPPORTS_MULTIPLE_TRACK_COLOUR | RIDE_TYPE_FLAG_ALLOW_DOORS_ON_TRACK |
|
||||
RIDE_TYPE_FLAG_ALLOW_MUSIC | RIDE_TYPE_FLAG_HAS_ENTRANCE_EXIT | RIDE_TYPE_FLAG_ALLOW_MORE_VEHICLES_THAN_STATION_FITS |
|
||||
RIDE_TYPE_FLAG_HAS_AIR_TIME | RIDE_TYPE_FLAG_SHOW_IN_TRACK_DESIGNER | RIDE_TYPE_FLAG_INTERESTING_TO_LOOK_AT |
|
||||
RIDE_TYPE_FLAG_HAS_LANDSCAPE_DOORS),
|
||||
SET_FIELD(RideModes, EnumsToFlags(RideMode::ContinuousCircuit)),
|
||||
SET_FIELD(DefaultMode, RideMode::ContinuousCircuit),
|
||||
SET_FIELD(OperatingSettings, { 0, 0, 0, 0, 0, 0 }),
|
||||
SET_FIELD(Naming, { STR_RIDE_NAME_GHOST_TRAIN, STR_RIDE_DESCRIPTION_GHOST_TRAIN }),
|
||||
SET_FIELD(NameConvention, { RideComponentType::Car, RideComponentType::Track, RideComponentType::Station }),
|
||||
SET_FIELD(EnumName, nameof(RIDE_TYPE_GHOST_TRAIN)),
|
||||
SET_FIELD(AvailableBreakdowns, (1 << BREAKDOWN_SAFETY_CUT_OUT) | (1 << BREAKDOWN_VEHICLE_MALFUNCTION)),
|
||||
SET_FIELD(Heights, { 8, 24, 6, 7, }),
|
||||
SET_FIELD(MaxMass, 2),
|
||||
SET_FIELD(LiftData, { OpenRCT2::Audio::SoundId::Null, 5, 5 }),
|
||||
SET_FIELD(RatingsMultipliers, { 70, 10, 10 }),
|
||||
SET_FIELD(UpkeepCosts, { 80, 20, 0, 8, 3, 5 }),
|
||||
SET_FIELD(BuildCosts, { 13.00_GBP, 2.50_GBP, 30, }),
|
||||
SET_FIELD(DefaultPrices, { 15, 0 }),
|
||||
SET_FIELD(DefaultMusic, MUSIC_OBJECT_HORROR),
|
||||
SET_FIELD(PhotoItem, ShopItem::Photo),
|
||||
SET_FIELD(BonusValue, 50),
|
||||
SET_FIELD(ColourPresets, TRACK_COLOUR_PRESETS(
|
||||
RIDE_TYPE_FLAG_HAS_LANDSCAPE_DOORS,
|
||||
.RideModes = EnumsToFlags(RideMode::ContinuousCircuit),
|
||||
.DefaultMode = RideMode::ContinuousCircuit,
|
||||
.OperatingSettings = { 0, 0, 0, 0, 0, 0 },
|
||||
.Naming = { STR_RIDE_NAME_GHOST_TRAIN, STR_RIDE_DESCRIPTION_GHOST_TRAIN },
|
||||
.NameConvention = { RideComponentType::Car, RideComponentType::Track, RideComponentType::Station },
|
||||
.EnumName = nameof(RIDE_TYPE_GHOST_TRAIN),
|
||||
.AvailableBreakdowns = (1 << BREAKDOWN_SAFETY_CUT_OUT) | (1 << BREAKDOWN_VEHICLE_MALFUNCTION),
|
||||
.Heights = { 8, 24, 6, 7, },
|
||||
.MaxMass = 2,
|
||||
.LiftData = { OpenRCT2::Audio::SoundId::Null, 5, 5 },
|
||||
.RatingsMultipliers = { 70, 10, 10 },
|
||||
.UpkeepCosts = { 80, 20, 0, 8, 3, 5 },
|
||||
.BuildCosts = { 13.00_GBP, 2.50_GBP, 30, },
|
||||
.DefaultPrices = { 15, 0 },
|
||||
.DefaultMusic = MUSIC_OBJECT_HORROR,
|
||||
.PhotoItem = ShopItem::Photo,
|
||||
.BonusValue = 50,
|
||||
.ColourPresets = TRACK_COLOUR_PRESETS(
|
||||
{ COLOUR_DARK_GREEN, COLOUR_BORDEAUX_RED, COLOUR_BLACK },
|
||||
{ COLOUR_TEAL, COLOUR_WHITE, COLOUR_DARK_BROWN },
|
||||
{ COLOUR_DARK_BROWN, COLOUR_BORDEAUX_RED, COLOUR_BLACK },
|
||||
{ COLOUR_BORDEAUX_RED, COLOUR_YELLOW, COLOUR_BLACK },
|
||||
)),
|
||||
SET_FIELD(ColourPreview, { SPR_RIDE_DESIGN_PREVIEW_GHOST_TRAIN_TRACK, SPR_RIDE_DESIGN_PREVIEW_GHOST_TRAIN_SUPPORTS }),
|
||||
SET_FIELD(ColourKey, RideColourKey::Ride),
|
||||
SET_FIELD(Name, "ghost_train"),
|
||||
SET_FIELD(RatingsData,
|
||||
),
|
||||
.ColourPreview = { SPR_RIDE_DESIGN_PREVIEW_GHOST_TRAIN_TRACK, SPR_RIDE_DESIGN_PREVIEW_GHOST_TRAIN_SUPPORTS },
|
||||
.ColourKey = RideColourKey::Ride,
|
||||
.Name = "ghost_train",
|
||||
.RatingsData =
|
||||
{
|
||||
RatingsCalculationType::Normal,
|
||||
{ RIDE_RATING(2, 00), RIDE_RATING(0, 20), RIDE_RATING(0, 03) },
|
||||
@@ -78,14 +78,14 @@ constexpr RideTypeDescriptor GhostTrainRTD =
|
||||
{ RatingsModifierType::BonusScenery, 0, 8366, 0, 0 },
|
||||
{ RatingsModifierType::RequirementLength, 0xB40000, 2, 2, 2 },
|
||||
},
|
||||
}),
|
||||
SET_FIELD(UpdateRotating, UpdateRotatingDefault),
|
||||
SET_FIELD(LightFXAddLightsMagicVehicle, LightFxAddLightsMagicVehicle_MineTrainCoaster),
|
||||
SET_FIELD(StartRideMusic, OpenRCT2::RideAudio::DefaultStartRideMusicChannel),
|
||||
SET_FIELD(DesignCreateMode, TrackDesignCreateMode::Default),
|
||||
SET_FIELD(MusicUpdateFunction, DefaultMusicUpdate),
|
||||
SET_FIELD(Classification, RideClassification::Ride),
|
||||
SET_FIELD(UpdateLeaveEntrance, PeepUpdateRideLeaveEntranceDefault),
|
||||
SET_FIELD(SpecialElementRatingAdjustment, SpecialTrackElementRatingsAjustment_GhostTrain),
|
||||
},
|
||||
.UpdateRotating = UpdateRotatingDefault,
|
||||
.LightFXAddLightsMagicVehicle = LightFxAddLightsMagicVehicle_MineTrainCoaster,
|
||||
.StartRideMusic = OpenRCT2::RideAudio::DefaultStartRideMusicChannel,
|
||||
.DesignCreateMode = TrackDesignCreateMode::Default,
|
||||
.MusicUpdateFunction = DefaultMusicUpdate,
|
||||
.Classification = RideClassification::Ride,
|
||||
.UpdateLeaveEntrance = PeepUpdateRideLeaveEntranceDefault,
|
||||
.SpecialElementRatingAdjustment = SpecialTrackElementRatingsAjustment_GhostTrain,
|
||||
};
|
||||
// clang-format on
|
||||
|
||||
@@ -17,40 +17,40 @@
|
||||
// clang-format off
|
||||
constexpr RideTypeDescriptor HauntedHouseRTD =
|
||||
{
|
||||
SET_FIELD(AlternateType, RIDE_TYPE_NULL),
|
||||
SET_FIELD(Category, RIDE_CATEGORY_GENTLE),
|
||||
SET_FIELD(EnabledTrackPieces, {}),
|
||||
SET_FIELD(ExtraTrackPieces, {}),
|
||||
SET_FIELD(CoveredTrackPieces, {}),
|
||||
SET_FIELD(StartTrackPiece, TrackElemType::FlatTrack3x3),
|
||||
SET_FIELD(TrackPaintFunctions, TrackDrawerDescriptor(GetTrackPaintFunctionHauntedHouse)),
|
||||
SET_FIELD(Flags, RIDE_TYPE_FLAG_HAS_SINGLE_PIECE_STATION | RIDE_TYPE_FLAG_CANNOT_HAVE_GAPS |
|
||||
.AlternateType = RIDE_TYPE_NULL,
|
||||
.Category = RIDE_CATEGORY_GENTLE,
|
||||
.EnabledTrackPieces = {},
|
||||
.ExtraTrackPieces = {},
|
||||
.CoveredTrackPieces = {},
|
||||
.StartTrackPiece = TrackElemType::FlatTrack3x3,
|
||||
.TrackPaintFunctions = TrackDrawerDescriptor(GetTrackPaintFunctionHauntedHouse),
|
||||
.Flags = RIDE_TYPE_FLAG_HAS_SINGLE_PIECE_STATION | RIDE_TYPE_FLAG_CANNOT_HAVE_GAPS |
|
||||
RIDE_TYPE_FLAG_HAS_LOAD_OPTIONS | RIDE_TYPE_FLAG_VEHICLE_IS_INTEGRAL | RIDE_TYPE_FLAG_TRACK_NO_WALLS |
|
||||
RIDE_TYPE_FLAG_FLAT_RIDE | RIDE_TYPE_FLAG_IN_RIDE | RIDE_TYPE_FLAG_ALLOW_MUSIC |
|
||||
RIDE_TYPE_FLAG_HAS_ENTRANCE_EXIT | RIDE_TYPE_FLAG_SINGLE_SESSION |
|
||||
RIDE_TYPE_FLAG_LIST_VEHICLES_SEPARATELY),
|
||||
SET_FIELD(RideModes, EnumsToFlags(RideMode::HauntedHouse)),
|
||||
SET_FIELD(DefaultMode, RideMode::HauntedHouse),
|
||||
SET_FIELD(OperatingSettings, { 0, 0, 0, 0, 0, 0 }),
|
||||
SET_FIELD(Naming, { STR_RIDE_NAME_HAUNTED_HOUSE, STR_RIDE_DESCRIPTION_HAUNTED_HOUSE }),
|
||||
SET_FIELD(NameConvention, { RideComponentType::Building, RideComponentType::Structure, RideComponentType::Station }),
|
||||
SET_FIELD(EnumName, nameof(RIDE_TYPE_HAUNTED_HOUSE)),
|
||||
SET_FIELD(AvailableBreakdowns, (1 << BREAKDOWN_SAFETY_CUT_OUT)),
|
||||
SET_FIELD(Heights, { 16, 160, 3, 2, }),
|
||||
SET_FIELD(MaxMass, 255),
|
||||
SET_FIELD(LiftData, { OpenRCT2::Audio::SoundId::Null, 5, 5 }),
|
||||
SET_FIELD(RatingsMultipliers, { 20, 10, 0 }),
|
||||
SET_FIELD(UpkeepCosts, { 50, 1, 0, 0, 0, 0 }),
|
||||
SET_FIELD(BuildCosts, { 42.50_GBP, 1.00_GBP, 1, }),
|
||||
SET_FIELD(DefaultPrices, { 10, 0 }),
|
||||
SET_FIELD(DefaultMusic, MUSIC_OBJECT_HORROR),
|
||||
SET_FIELD(PhotoItem, ShopItem::Photo),
|
||||
SET_FIELD(BonusValue, 22),
|
||||
SET_FIELD(ColourPresets, DEFAULT_FLAT_RIDE_COLOUR_PRESET),
|
||||
SET_FIELD(ColourPreview, { 0, 0 }),
|
||||
SET_FIELD(ColourKey, RideColourKey::Ride),
|
||||
SET_FIELD(Name, "haunted_house"),
|
||||
SET_FIELD(RatingsData,
|
||||
RIDE_TYPE_FLAG_LIST_VEHICLES_SEPARATELY,
|
||||
.RideModes = EnumsToFlags(RideMode::HauntedHouse),
|
||||
.DefaultMode = RideMode::HauntedHouse,
|
||||
.OperatingSettings = { 0, 0, 0, 0, 0, 0 },
|
||||
.Naming = { STR_RIDE_NAME_HAUNTED_HOUSE, STR_RIDE_DESCRIPTION_HAUNTED_HOUSE },
|
||||
.NameConvention = { RideComponentType::Building, RideComponentType::Structure, RideComponentType::Station },
|
||||
.EnumName = nameof(RIDE_TYPE_HAUNTED_HOUSE),
|
||||
.AvailableBreakdowns = (1 << BREAKDOWN_SAFETY_CUT_OUT),
|
||||
.Heights = { 16, 160, 3, 2, },
|
||||
.MaxMass = 255,
|
||||
.LiftData = { OpenRCT2::Audio::SoundId::Null, 5, 5 },
|
||||
.RatingsMultipliers = { 20, 10, 0 },
|
||||
.UpkeepCosts = { 50, 1, 0, 0, 0, 0 },
|
||||
.BuildCosts = { 42.50_GBP, 1.00_GBP, 1, },
|
||||
.DefaultPrices = { 10, 0 },
|
||||
.DefaultMusic = MUSIC_OBJECT_HORROR,
|
||||
.PhotoItem = ShopItem::Photo,
|
||||
.BonusValue = 22,
|
||||
.ColourPresets = DEFAULT_FLAT_RIDE_COLOUR_PRESET,
|
||||
.ColourPreview = { 0, 0 },
|
||||
.ColourKey = RideColourKey::Ride,
|
||||
.Name = "haunted_house",
|
||||
.RatingsData =
|
||||
{
|
||||
RatingsCalculationType::FlatRide,
|
||||
{ RIDE_RATING(3, 41), RIDE_RATING(1, 53), RIDE_RATING(0, 10) },
|
||||
@@ -58,6 +58,6 @@ constexpr RideTypeDescriptor HauntedHouseRTD =
|
||||
7,
|
||||
false,
|
||||
{ { RatingsModifierType::NoModifier, 0, 0, 0, 0 } }
|
||||
}),
|
||||
},
|
||||
};
|
||||
// clang-format on
|
||||
|
||||
@@ -18,40 +18,40 @@
|
||||
// clang-format off
|
||||
constexpr RideTypeDescriptor MazeRTD =
|
||||
{
|
||||
SET_FIELD(AlternateType, RIDE_TYPE_NULL),
|
||||
SET_FIELD(Category, RIDE_CATEGORY_GENTLE),
|
||||
SET_FIELD(EnabledTrackPieces, {}),
|
||||
SET_FIELD(ExtraTrackPieces, {}),
|
||||
SET_FIELD(CoveredTrackPieces, {}),
|
||||
SET_FIELD(StartTrackPiece, TrackElemType::Maze),
|
||||
SET_FIELD(TrackPaintFunctions, TrackDrawerDescriptor(GetTrackPaintFunctionMaze)),
|
||||
SET_FIELD(Flags, RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_SUPPORTS | RIDE_TYPE_FLAG_HAS_SINGLE_PIECE_STATION | RIDE_TYPE_FLAG_NO_TEST_MODE | RIDE_TYPE_FLAG_NO_VEHICLES |
|
||||
.AlternateType = RIDE_TYPE_NULL,
|
||||
.Category = RIDE_CATEGORY_GENTLE,
|
||||
.EnabledTrackPieces = {},
|
||||
.ExtraTrackPieces = {},
|
||||
.CoveredTrackPieces = {},
|
||||
.StartTrackPiece = TrackElemType::Maze,
|
||||
.TrackPaintFunctions = TrackDrawerDescriptor(GetTrackPaintFunctionMaze),
|
||||
.Flags = RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_SUPPORTS | RIDE_TYPE_FLAG_HAS_SINGLE_PIECE_STATION | RIDE_TYPE_FLAG_NO_TEST_MODE | RIDE_TYPE_FLAG_NO_VEHICLES |
|
||||
RIDE_TYPE_FLAG_TRACK_NO_WALLS | RIDE_TYPE_FLAG_IN_RIDE | RIDE_TYPE_FLAG_HAS_TRACK | RIDE_TYPE_FLAG_HAS_ENTRANCE_EXIT | RIDE_TYPE_FLAG_LIST_VEHICLES_SEPARATELY |
|
||||
RIDE_TYPE_FLAG_PEEP_CAN_USE_UMBRELLA | RIDE_TYPE_FLAG_IS_MAZE),
|
||||
SET_FIELD(RideModes, EnumsToFlags(RideMode::Maze)),
|
||||
SET_FIELD(DefaultMode, RideMode::Maze),
|
||||
SET_FIELD(OperatingSettings, { 1, 64, 0, 0, 0, 0 }),
|
||||
SET_FIELD(Naming, { STR_RIDE_NAME_MAZE, STR_RIDE_DESCRIPTION_MAZE }),
|
||||
SET_FIELD(NameConvention, { RideComponentType::Train, RideComponentType::Track, RideComponentType::Station }),
|
||||
SET_FIELD(EnumName, nameof(RIDE_TYPE_MAZE)),
|
||||
SET_FIELD(AvailableBreakdowns, 0),
|
||||
SET_FIELD(Heights, { 6, 24, 0, 1, }),
|
||||
SET_FIELD(MaxMass, 18),
|
||||
SET_FIELD(LiftData, { OpenRCT2::Audio::SoundId::Null, 5, 5 }),
|
||||
SET_FIELD(RatingsMultipliers, { 50, 0, 0 }),
|
||||
SET_FIELD(UpkeepCosts, { 50, 1, 0, 0, 0, 0 }),
|
||||
SET_FIELD(BuildCosts, { 27.50_GBP, 1.00_GBP, 8, }),
|
||||
SET_FIELD(DefaultPrices, { 10, 0 }),
|
||||
SET_FIELD(DefaultMusic, MUSIC_OBJECT_SUMMER),
|
||||
SET_FIELD(PhotoItem, ShopItem::Photo),
|
||||
SET_FIELD(BonusValue, 40),
|
||||
SET_FIELD(ColourPresets, TRACK_COLOUR_PRESETS(
|
||||
RIDE_TYPE_FLAG_PEEP_CAN_USE_UMBRELLA | RIDE_TYPE_FLAG_IS_MAZE,
|
||||
.RideModes = EnumsToFlags(RideMode::Maze),
|
||||
.DefaultMode = RideMode::Maze,
|
||||
.OperatingSettings = { 1, 64, 0, 0, 0, 0 },
|
||||
.Naming = { STR_RIDE_NAME_MAZE, STR_RIDE_DESCRIPTION_MAZE },
|
||||
.NameConvention = { RideComponentType::Train, RideComponentType::Track, RideComponentType::Station },
|
||||
.EnumName = nameof(RIDE_TYPE_MAZE),
|
||||
.AvailableBreakdowns = 0,
|
||||
.Heights = { 6, 24, 0, 1, },
|
||||
.MaxMass = 18,
|
||||
.LiftData = { OpenRCT2::Audio::SoundId::Null, 5, 5 },
|
||||
.RatingsMultipliers = { 50, 0, 0 },
|
||||
.UpkeepCosts = { 50, 1, 0, 0, 0, 0 },
|
||||
.BuildCosts = { 27.50_GBP, 1.00_GBP, 8, },
|
||||
.DefaultPrices = { 10, 0 },
|
||||
.DefaultMusic = MUSIC_OBJECT_SUMMER,
|
||||
.PhotoItem = ShopItem::Photo,
|
||||
.BonusValue = 40,
|
||||
.ColourPresets = TRACK_COLOUR_PRESETS(
|
||||
{ COLOUR_GREY, COLOUR_GREY, COLOUR_GREY },
|
||||
)),
|
||||
SET_FIELD(ColourPreview, { 0, 0 }),
|
||||
SET_FIELD(ColourKey, RideColourKey::Ride),
|
||||
SET_FIELD(Name, "maze"),
|
||||
SET_FIELD(RatingsData,
|
||||
),
|
||||
.ColourPreview = { 0, 0 },
|
||||
.ColourKey = RideColourKey::Ride,
|
||||
.Name = "maze",
|
||||
.RatingsData =
|
||||
{
|
||||
RatingsCalculationType::FlatRide,
|
||||
{ RIDE_RATING(1, 30), RIDE_RATING(0, 50), RIDE_RATING(0, 00) },
|
||||
@@ -62,16 +62,16 @@ constexpr RideTypeDescriptor MazeRTD =
|
||||
{ RatingsModifierType::BonusMazeSize, 100, 1, 2, 0 },
|
||||
{ RatingsModifierType::BonusScenery, 0, 22310, 0, 0 },
|
||||
},
|
||||
}),
|
||||
SET_FIELD(UpdateRotating, UpdateRotatingDefault),
|
||||
SET_FIELD(LightFXAddLightsMagicVehicle, nullptr),
|
||||
SET_FIELD(StartRideMusic, OpenRCT2::RideAudio::DefaultStartRideMusicChannel),
|
||||
SET_FIELD(DesignCreateMode, TrackDesignCreateMode::Maze),
|
||||
SET_FIELD(MusicUpdateFunction, DefaultMusicUpdate),
|
||||
SET_FIELD(Classification, RideClassification::Ride),
|
||||
SET_FIELD(UpdateLeaveEntrance, PeepUpdateRideLeaveEntranceMaze),
|
||||
SET_FIELD(SpecialElementRatingAdjustment, SpecialTrackElementRatingsAjustment_Default),
|
||||
SET_FIELD(GetGuestWaypointLocation, GetGuestWaypointLocationDefault),
|
||||
SET_FIELD(ConstructionWindowContext, RideConstructionWindowContext::Maze),
|
||||
},
|
||||
.UpdateRotating = UpdateRotatingDefault,
|
||||
.LightFXAddLightsMagicVehicle = nullptr,
|
||||
.StartRideMusic = OpenRCT2::RideAudio::DefaultStartRideMusicChannel,
|
||||
.DesignCreateMode = TrackDesignCreateMode::Maze,
|
||||
.MusicUpdateFunction = DefaultMusicUpdate,
|
||||
.Classification = RideClassification::Ride,
|
||||
.UpdateLeaveEntrance = PeepUpdateRideLeaveEntranceMaze,
|
||||
.SpecialElementRatingAdjustment = SpecialTrackElementRatingsAjustment_Default,
|
||||
.GetGuestWaypointLocation = GetGuestWaypointLocationDefault,
|
||||
.ConstructionWindowContext = RideConstructionWindowContext::Maze,
|
||||
};
|
||||
// clang-format on
|
||||
|
||||
@@ -17,40 +17,40 @@
|
||||
// clang-format off
|
||||
constexpr RideTypeDescriptor MerryGoRoundRTD =
|
||||
{
|
||||
SET_FIELD(AlternateType, RIDE_TYPE_NULL),
|
||||
SET_FIELD(Category, RIDE_CATEGORY_GENTLE),
|
||||
SET_FIELD(EnabledTrackPieces, {}),
|
||||
SET_FIELD(ExtraTrackPieces, {}),
|
||||
SET_FIELD(CoveredTrackPieces, {}),
|
||||
SET_FIELD(StartTrackPiece, TrackElemType::FlatTrack3x3),
|
||||
SET_FIELD(TrackPaintFunctions, TrackDrawerDescriptor(GetTrackPaintFunctionMerryGoRound)),
|
||||
SET_FIELD(Flags, RIDE_TYPE_FLAG_HAS_SINGLE_PIECE_STATION | RIDE_TYPE_FLAG_CANNOT_HAVE_GAPS |
|
||||
.AlternateType = RIDE_TYPE_NULL,
|
||||
.Category = RIDE_CATEGORY_GENTLE,
|
||||
.EnabledTrackPieces = {},
|
||||
.ExtraTrackPieces = {},
|
||||
.CoveredTrackPieces = {},
|
||||
.StartTrackPiece = TrackElemType::FlatTrack3x3,
|
||||
.TrackPaintFunctions = TrackDrawerDescriptor(GetTrackPaintFunctionMerryGoRound),
|
||||
.Flags = RIDE_TYPE_FLAG_HAS_SINGLE_PIECE_STATION | RIDE_TYPE_FLAG_CANNOT_HAVE_GAPS |
|
||||
RIDE_TYPE_FLAG_HAS_LOAD_OPTIONS | RIDE_TYPE_FLAG_VEHICLE_IS_INTEGRAL | RIDE_TYPE_FLAG_TRACK_NO_WALLS |
|
||||
RIDE_TYPE_FLAG_FLAT_RIDE | RIDE_TYPE_FLAG_HAS_VEHICLE_COLOURS | RIDE_TYPE_FLAG_MUSIC_ON_DEFAULT |
|
||||
RIDE_TYPE_FLAG_ALLOW_MUSIC | RIDE_TYPE_FLAG_HAS_ENTRANCE_EXIT | RIDE_TYPE_FLAG_SINGLE_SESSION |
|
||||
RIDE_TYPE_FLAG_INTERESTING_TO_LOOK_AT | RIDE_TYPE_FLAG_LIST_VEHICLES_SEPARATELY),
|
||||
SET_FIELD(RideModes, EnumsToFlags(RideMode::Rotation)),
|
||||
SET_FIELD(DefaultMode, RideMode::Rotation),
|
||||
SET_FIELD(OperatingSettings, { 4, 25, 0, 0, 0, 0 }),
|
||||
SET_FIELD(Naming, { STR_RIDE_NAME_MERRY_GO_ROUND, STR_RIDE_DESCRIPTION_MERRY_GO_ROUND }),
|
||||
SET_FIELD(NameConvention, { RideComponentType::Car, RideComponentType::Structure, RideComponentType::Station }),
|
||||
SET_FIELD(EnumName, nameof(RIDE_TYPE_MERRY_GO_ROUND)),
|
||||
SET_FIELD(AvailableBreakdowns, (1 << BREAKDOWN_SAFETY_CUT_OUT) | (1 << BREAKDOWN_CONTROL_FAILURE)),
|
||||
SET_FIELD(Heights, { 12, 64, 3, 2, }),
|
||||
SET_FIELD(MaxMass, 255),
|
||||
SET_FIELD(LiftData, { OpenRCT2::Audio::SoundId::Null, 5, 5 }),
|
||||
SET_FIELD(RatingsMultipliers, { 50, 10, 0 }),
|
||||
SET_FIELD(UpkeepCosts, { 50, 1, 0, 0, 0, 0 }),
|
||||
SET_FIELD(BuildCosts, { 57.50_GBP, 1.00_GBP, 1, }),
|
||||
SET_FIELD(DefaultPrices, { 10, 0 }),
|
||||
SET_FIELD(DefaultMusic, MUSIC_OBJECT_FAIRGROUND),
|
||||
SET_FIELD(PhotoItem, ShopItem::Photo),
|
||||
SET_FIELD(BonusValue, 45),
|
||||
SET_FIELD(ColourPresets, DEFAULT_FLAT_RIDE_COLOUR_PRESET),
|
||||
SET_FIELD(ColourPreview, { 0, 0 }),
|
||||
SET_FIELD(ColourKey, RideColourKey::Ride),
|
||||
SET_FIELD(Name, "merry_go_round"),
|
||||
SET_FIELD(RatingsData,
|
||||
RIDE_TYPE_FLAG_INTERESTING_TO_LOOK_AT | RIDE_TYPE_FLAG_LIST_VEHICLES_SEPARATELY,
|
||||
.RideModes = EnumsToFlags(RideMode::Rotation),
|
||||
.DefaultMode = RideMode::Rotation,
|
||||
.OperatingSettings = { 4, 25, 0, 0, 0, 0 },
|
||||
.Naming = { STR_RIDE_NAME_MERRY_GO_ROUND, STR_RIDE_DESCRIPTION_MERRY_GO_ROUND },
|
||||
.NameConvention = { RideComponentType::Car, RideComponentType::Structure, RideComponentType::Station },
|
||||
.EnumName = nameof(RIDE_TYPE_MERRY_GO_ROUND),
|
||||
.AvailableBreakdowns = (1 << BREAKDOWN_SAFETY_CUT_OUT) | (1 << BREAKDOWN_CONTROL_FAILURE),
|
||||
.Heights = { 12, 64, 3, 2, },
|
||||
.MaxMass = 255,
|
||||
.LiftData = { OpenRCT2::Audio::SoundId::Null, 5, 5 },
|
||||
.RatingsMultipliers = { 50, 10, 0 },
|
||||
.UpkeepCosts = { 50, 1, 0, 0, 0, 0 },
|
||||
.BuildCosts = { 57.50_GBP, 1.00_GBP, 1, },
|
||||
.DefaultPrices = { 10, 0 },
|
||||
.DefaultMusic = MUSIC_OBJECT_FAIRGROUND,
|
||||
.PhotoItem = ShopItem::Photo,
|
||||
.BonusValue = 45,
|
||||
.ColourPresets = DEFAULT_FLAT_RIDE_COLOUR_PRESET,
|
||||
.ColourPreview = { 0, 0 },
|
||||
.ColourKey = RideColourKey::Ride,
|
||||
.Name = "merry_go_round",
|
||||
.RatingsData =
|
||||
{
|
||||
RatingsCalculationType::FlatRide,
|
||||
{ RIDE_RATING(0, 60), RIDE_RATING(0, 15), RIDE_RATING(0, 30) },
|
||||
@@ -61,6 +61,6 @@ constexpr RideTypeDescriptor MerryGoRoundRTD =
|
||||
{ RatingsModifierType::BonusRotations, 0, 5, 5, 5 },
|
||||
{ RatingsModifierType::BonusScenery, 0, 19521, 0, 0 },
|
||||
},
|
||||
}),
|
||||
},
|
||||
};
|
||||
// clang-format on
|
||||
|
||||
@@ -17,41 +17,41 @@
|
||||
// clang-format off
|
||||
constexpr RideTypeDescriptor MiniGolfRTD =
|
||||
{
|
||||
SET_FIELD(AlternateType, RIDE_TYPE_NULL),
|
||||
SET_FIELD(Category, RIDE_CATEGORY_GENTLE),
|
||||
SET_FIELD(EnabledTrackPieces, {TRACK_STRAIGHT, TRACK_STATION_END, TRACK_SLOPE, TRACK_CURVE_VERY_SMALL, TRACK_MINI_GOLF_HOLE}),
|
||||
SET_FIELD(ExtraTrackPieces, {}),
|
||||
SET_FIELD(CoveredTrackPieces, {}),
|
||||
SET_FIELD(StartTrackPiece, TrackElemType::EndStation),
|
||||
SET_FIELD(TrackPaintFunctions, TrackDrawerDescriptor(GetTrackPaintFunctionMiniGolf)),
|
||||
SET_FIELD(Flags, RIDE_TYPE_FLAGS_TRACK_HAS_3_COLOURS | RIDE_TYPE_FLAG_NO_TEST_MODE | RIDE_TYPE_FLAG_HAS_TRACK | RIDE_TYPE_FLAG_HAS_ONE_STATION |
|
||||
.AlternateType = RIDE_TYPE_NULL,
|
||||
.Category = RIDE_CATEGORY_GENTLE,
|
||||
.EnabledTrackPieces = {TRACK_STRAIGHT, TRACK_STATION_END, TRACK_SLOPE, TRACK_CURVE_VERY_SMALL, TRACK_MINI_GOLF_HOLE},
|
||||
.ExtraTrackPieces = {},
|
||||
.CoveredTrackPieces = {},
|
||||
.StartTrackPiece = TrackElemType::EndStation,
|
||||
.TrackPaintFunctions = TrackDrawerDescriptor(GetTrackPaintFunctionMiniGolf),
|
||||
.Flags = RIDE_TYPE_FLAGS_TRACK_HAS_3_COLOURS | RIDE_TYPE_FLAG_NO_TEST_MODE | RIDE_TYPE_FLAG_HAS_TRACK | RIDE_TYPE_FLAG_HAS_ONE_STATION |
|
||||
RIDE_TYPE_FLAG_SUPPORTS_MULTIPLE_TRACK_COLOUR | RIDE_TYPE_FLAG_ALLOW_MUSIC | RIDE_TYPE_FLAG_HAS_ENTRANCE_EXIT |
|
||||
RIDE_TYPE_FLAG_SLIGHTLY_INTERESTING_TO_LOOK_AT | RIDE_TYPE_FLAG_LIST_VEHICLES_SEPARATELY),
|
||||
SET_FIELD(RideModes, EnumsToFlags(RideMode::ContinuousCircuit)),
|
||||
SET_FIELD(DefaultMode, RideMode::ContinuousCircuit),
|
||||
SET_FIELD(OperatingSettings, { 0, 0, 0, 0, 0, 0 }),
|
||||
SET_FIELD(Naming, { STR_RIDE_NAME_MINI_GOLF, STR_RIDE_DESCRIPTION_MINI_GOLF }),
|
||||
SET_FIELD(NameConvention, { RideComponentType::Player, RideComponentType::Course, RideComponentType::Station }),
|
||||
SET_FIELD(EnumName, nameof(RIDE_TYPE_MINI_GOLF)),
|
||||
SET_FIELD(AvailableBreakdowns, 0),
|
||||
SET_FIELD(Heights, { 7, 32, 2, 2, }),
|
||||
SET_FIELD(MaxMass, 255),
|
||||
SET_FIELD(LiftData, { OpenRCT2::Audio::SoundId::Null, 5, 5 }),
|
||||
SET_FIELD(RatingsMultipliers, { 50, 30, 10 }),
|
||||
SET_FIELD(UpkeepCosts, { 30, 60, 0, 0, 0, 0 }),
|
||||
SET_FIELD(BuildCosts, { 25.00_GBP, 3.50_GBP, 20, }),
|
||||
SET_FIELD(DefaultPrices, { 10, 0 }),
|
||||
SET_FIELD(DefaultMusic, MUSIC_OBJECT_SUMMER),
|
||||
SET_FIELD(PhotoItem, ShopItem::Photo),
|
||||
SET_FIELD(BonusValue, 23),
|
||||
SET_FIELD(ColourPresets, TRACK_COLOUR_PRESETS(
|
||||
RIDE_TYPE_FLAG_SLIGHTLY_INTERESTING_TO_LOOK_AT | RIDE_TYPE_FLAG_LIST_VEHICLES_SEPARATELY,
|
||||
.RideModes = EnumsToFlags(RideMode::ContinuousCircuit),
|
||||
.DefaultMode = RideMode::ContinuousCircuit,
|
||||
.OperatingSettings = { 0, 0, 0, 0, 0, 0 },
|
||||
.Naming = { STR_RIDE_NAME_MINI_GOLF, STR_RIDE_DESCRIPTION_MINI_GOLF },
|
||||
.NameConvention = { RideComponentType::Player, RideComponentType::Course, RideComponentType::Station },
|
||||
.EnumName = nameof(RIDE_TYPE_MINI_GOLF),
|
||||
.AvailableBreakdowns = 0,
|
||||
.Heights = { 7, 32, 2, 2, },
|
||||
.MaxMass = 255,
|
||||
.LiftData = { OpenRCT2::Audio::SoundId::Null, 5, 5 },
|
||||
.RatingsMultipliers = { 50, 30, 10 },
|
||||
.UpkeepCosts = { 30, 60, 0, 0, 0, 0 },
|
||||
.BuildCosts = { 25.00_GBP, 3.50_GBP, 20, },
|
||||
.DefaultPrices = { 10, 0 },
|
||||
.DefaultMusic = MUSIC_OBJECT_SUMMER,
|
||||
.PhotoItem = ShopItem::Photo,
|
||||
.BonusValue = 23,
|
||||
.ColourPresets = TRACK_COLOUR_PRESETS(
|
||||
{ COLOUR_SATURATED_GREEN, COLOUR_DARK_BROWN, COLOUR_BLACK },
|
||||
{ COLOUR_MOSS_GREEN, COLOUR_BORDEAUX_RED, COLOUR_DARK_BROWN },
|
||||
)),
|
||||
SET_FIELD(ColourPreview, { SPR_RIDE_DESIGN_PREVIEW_MINI_GOLF_TRACK, SPR_RIDE_DESIGN_PREVIEW_MINI_GOLF_SUPPORTS }),
|
||||
SET_FIELD(ColourKey, RideColourKey::Ride),
|
||||
SET_FIELD(Name, "mini_golf"),
|
||||
SET_FIELD(RatingsData,
|
||||
),
|
||||
.ColourPreview = { SPR_RIDE_DESIGN_PREVIEW_MINI_GOLF_TRACK, SPR_RIDE_DESIGN_PREVIEW_MINI_GOLF_SUPPORTS },
|
||||
.ColourKey = RideColourKey::Ride,
|
||||
.Name = "mini_golf",
|
||||
.RatingsData =
|
||||
{
|
||||
RatingsCalculationType::Normal,
|
||||
{ RIDE_RATING(1, 50), RIDE_RATING(0, 90), RIDE_RATING(0, 00) },
|
||||
@@ -67,18 +67,18 @@ constexpr RideTypeDescriptor MiniGolfRTD =
|
||||
{ RatingsModifierType::BonusHoles, 0, 5, 0, 0 },
|
||||
{ RatingsModifierType::RequirementHoles, 1, 8, 2, 2 },
|
||||
},
|
||||
}),
|
||||
SET_FIELD(UpdateRotating, UpdateRotatingDefault),
|
||||
SET_FIELD(LightFXAddLightsMagicVehicle, nullptr),
|
||||
SET_FIELD(StartRideMusic, OpenRCT2::RideAudio::DefaultStartRideMusicChannel),
|
||||
SET_FIELD(DesignCreateMode, TrackDesignCreateMode::Default),
|
||||
SET_FIELD(MusicUpdateFunction, DefaultMusicUpdate),
|
||||
SET_FIELD(Classification, RideClassification::Ride),
|
||||
SET_FIELD(UpdateLeaveEntrance, PeepUpdateRideLeaveEntranceDefault),
|
||||
SET_FIELD(SpecialElementRatingAdjustment, SpecialTrackElementRatingsAjustment_Default),
|
||||
SET_FIELD(GetGuestWaypointLocation, GetGuestWaypointLocationDefault),
|
||||
SET_FIELD(ConstructionWindowContext, RideConstructionWindowContext::Default),
|
||||
SET_FIELD(RideUpdate, nullptr),
|
||||
SET_FIELD(UpdateMeasurementsSpecialElements, RideUpdateMeasurementsSpecialElements_MiniGolf),
|
||||
},
|
||||
.UpdateRotating = UpdateRotatingDefault,
|
||||
.LightFXAddLightsMagicVehicle = nullptr,
|
||||
.StartRideMusic = OpenRCT2::RideAudio::DefaultStartRideMusicChannel,
|
||||
.DesignCreateMode = TrackDesignCreateMode::Default,
|
||||
.MusicUpdateFunction = DefaultMusicUpdate,
|
||||
.Classification = RideClassification::Ride,
|
||||
.UpdateLeaveEntrance = PeepUpdateRideLeaveEntranceDefault,
|
||||
.SpecialElementRatingAdjustment = SpecialTrackElementRatingsAjustment_Default,
|
||||
.GetGuestWaypointLocation = GetGuestWaypointLocationDefault,
|
||||
.ConstructionWindowContext = RideConstructionWindowContext::Default,
|
||||
.RideUpdate = nullptr,
|
||||
.UpdateMeasurementsSpecialElements = RideUpdateMeasurementsSpecialElements_MiniGolf,
|
||||
};
|
||||
// clang-format on
|
||||
|
||||
@@ -18,47 +18,47 @@
|
||||
// clang-format off
|
||||
constexpr RideTypeDescriptor MiniHelicoptersRTD =
|
||||
{
|
||||
SET_FIELD(AlternateType, RIDE_TYPE_NULL),
|
||||
SET_FIELD(Category, RIDE_CATEGORY_GENTLE),
|
||||
SET_FIELD(EnabledTrackPieces, {TRACK_STRAIGHT, TRACK_STATION_END, TRACK_SLOPE, TRACK_CURVE_VERY_SMALL, TRACK_CURVE_SMALL}),
|
||||
SET_FIELD(ExtraTrackPieces, {TRACK_SPINNING_TUNNEL}),
|
||||
SET_FIELD(CoveredTrackPieces, {}),
|
||||
SET_FIELD(StartTrackPiece, TrackElemType::EndStation),
|
||||
SET_FIELD(TrackPaintFunctions, TrackDrawerDescriptor(GetTrackPaintFunctionMiniHelicopters)),
|
||||
SET_FIELD(Flags, RIDE_TYPE_FLAGS_TRACK_HAS_3_COLOURS | RIDE_TYPE_FLAG_CAN_SYNCHRONISE_ADJACENT_STATIONS |
|
||||
.AlternateType = RIDE_TYPE_NULL,
|
||||
.Category = RIDE_CATEGORY_GENTLE,
|
||||
.EnabledTrackPieces = {TRACK_STRAIGHT, TRACK_STATION_END, TRACK_SLOPE, TRACK_CURVE_VERY_SMALL, TRACK_CURVE_SMALL},
|
||||
.ExtraTrackPieces = {TRACK_SPINNING_TUNNEL},
|
||||
.CoveredTrackPieces = {},
|
||||
.StartTrackPiece = TrackElemType::EndStation,
|
||||
.TrackPaintFunctions = TrackDrawerDescriptor(GetTrackPaintFunctionMiniHelicopters),
|
||||
.Flags = RIDE_TYPE_FLAGS_TRACK_HAS_3_COLOURS | RIDE_TYPE_FLAG_CAN_SYNCHRONISE_ADJACENT_STATIONS |
|
||||
RIDE_TYPE_FLAG_HAS_DATA_LOGGING | RIDE_TYPE_FLAG_HAS_LOAD_OPTIONS | RIDE_TYPE_FLAG_PEEP_WILL_RIDE_AGAIN |
|
||||
RIDE_TYPE_FLAG_HAS_VEHICLE_COLOURS | RIDE_TYPE_FLAG_HAS_TRACK | RIDE_TYPE_FLAG_SUPPORTS_MULTIPLE_TRACK_COLOUR |
|
||||
RIDE_TYPE_FLAG_ALLOW_DOORS_ON_TRACK | RIDE_TYPE_FLAG_ALLOW_MUSIC | RIDE_TYPE_FLAG_HAS_ENTRANCE_EXIT |
|
||||
RIDE_TYPE_FLAG_ALLOW_MORE_VEHICLES_THAN_STATION_FITS | RIDE_TYPE_FLAG_SHOW_IN_TRACK_DESIGNER |
|
||||
RIDE_TYPE_FLAG_SLIGHTLY_INTERESTING_TO_LOOK_AT),
|
||||
SET_FIELD(RideModes, EnumsToFlags(RideMode::ContinuousCircuit)),
|
||||
SET_FIELD(DefaultMode, RideMode::ContinuousCircuit),
|
||||
SET_FIELD(OperatingSettings, { 0, 0, 0, 0, 0, 0 }),
|
||||
SET_FIELD(Naming, { STR_RIDE_NAME_MINI_HELICOPTERS, STR_RIDE_DESCRIPTION_MINI_HELICOPTERS }),
|
||||
SET_FIELD(NameConvention, { RideComponentType::Car, RideComponentType::Track, RideComponentType::Station }),
|
||||
SET_FIELD(EnumName, nameof(RIDE_TYPE_MINI_HELICOPTERS)),
|
||||
SET_FIELD(AvailableBreakdowns, (1 << BREAKDOWN_SAFETY_CUT_OUT) | (1 << BREAKDOWN_VEHICLE_MALFUNCTION)),
|
||||
SET_FIELD(Heights, { 7, 24, 4, 7, }),
|
||||
SET_FIELD(MaxMass, 2),
|
||||
SET_FIELD(LiftData, { OpenRCT2::Audio::SoundId::Null, 5, 5 }),
|
||||
SET_FIELD(RatingsMultipliers, { 70, 10, 10 }),
|
||||
SET_FIELD(UpkeepCosts, { 70, 20, 0, 8, 3, 5 }),
|
||||
SET_FIELD(BuildCosts, { 12.50_GBP, 2.50_GBP, 30, }),
|
||||
SET_FIELD(DefaultPrices, { 15, 0 }),
|
||||
SET_FIELD(DefaultMusic, MUSIC_OBJECT_SUMMER),
|
||||
SET_FIELD(PhotoItem, ShopItem::Photo),
|
||||
SET_FIELD(BonusValue, 45),
|
||||
SET_FIELD(ColourPresets, TRACK_COLOUR_PRESETS(
|
||||
RIDE_TYPE_FLAG_SLIGHTLY_INTERESTING_TO_LOOK_AT,
|
||||
.RideModes = EnumsToFlags(RideMode::ContinuousCircuit),
|
||||
.DefaultMode = RideMode::ContinuousCircuit,
|
||||
.OperatingSettings = { 0, 0, 0, 0, 0, 0 },
|
||||
.Naming = { STR_RIDE_NAME_MINI_HELICOPTERS, STR_RIDE_DESCRIPTION_MINI_HELICOPTERS },
|
||||
.NameConvention = { RideComponentType::Car, RideComponentType::Track, RideComponentType::Station },
|
||||
.EnumName = nameof(RIDE_TYPE_MINI_HELICOPTERS),
|
||||
.AvailableBreakdowns = (1 << BREAKDOWN_SAFETY_CUT_OUT) | (1 << BREAKDOWN_VEHICLE_MALFUNCTION),
|
||||
.Heights = { 7, 24, 4, 7, },
|
||||
.MaxMass = 2,
|
||||
.LiftData = { OpenRCT2::Audio::SoundId::Null, 5, 5 },
|
||||
.RatingsMultipliers = { 70, 10, 10 },
|
||||
.UpkeepCosts = { 70, 20, 0, 8, 3, 5 },
|
||||
.BuildCosts = { 12.50_GBP, 2.50_GBP, 30, },
|
||||
.DefaultPrices = { 15, 0 },
|
||||
.DefaultMusic = MUSIC_OBJECT_SUMMER,
|
||||
.PhotoItem = ShopItem::Photo,
|
||||
.BonusValue = 45,
|
||||
.ColourPresets = TRACK_COLOUR_PRESETS(
|
||||
{ COLOUR_DARK_PURPLE, COLOUR_YELLOW, COLOUR_DARK_PURPLE },
|
||||
{ COLOUR_WHITE, COLOUR_WHITE, COLOUR_BRIGHT_RED },
|
||||
{ COLOUR_BRIGHT_RED, COLOUR_BRIGHT_RED, COLOUR_YELLOW },
|
||||
{ COLOUR_BRIGHT_PINK, COLOUR_BRIGHT_PINK, COLOUR_WHITE },
|
||||
{ COLOUR_LIGHT_BLUE, COLOUR_LIGHT_BLUE, COLOUR_WHITE },
|
||||
)),
|
||||
SET_FIELD(ColourPreview, { SPR_RIDE_DESIGN_PREVIEW_MINI_HELICOPTERS_TRACK, SPR_RIDE_DESIGN_PREVIEW_MINI_HELICOPTERS_SUPPORTS }),
|
||||
SET_FIELD(ColourKey, RideColourKey::Ride),
|
||||
SET_FIELD(Name, "mini_helicopters"),
|
||||
SET_FIELD(RatingsData,
|
||||
),
|
||||
.ColourPreview = { SPR_RIDE_DESIGN_PREVIEW_MINI_HELICOPTERS_TRACK, SPR_RIDE_DESIGN_PREVIEW_MINI_HELICOPTERS_SUPPORTS },
|
||||
.ColourKey = RideColourKey::Ride,
|
||||
.Name = "mini_helicopters",
|
||||
.RatingsData =
|
||||
{
|
||||
RatingsCalculationType::Normal,
|
||||
{ RIDE_RATING(1, 60), RIDE_RATING(0, 40), RIDE_RATING(0, 00) },
|
||||
@@ -79,8 +79,8 @@ constexpr RideTypeDescriptor MiniHelicoptersRTD =
|
||||
{ RatingsModifierType::BonusScenery, 0, 8366, 0, 0 },
|
||||
{ RatingsModifierType::RequirementLength, 0xA00000, 2, 2, 2 },
|
||||
},
|
||||
}),
|
||||
SET_FIELD(UpdateRotating, UpdateRotatingDefault),
|
||||
SET_FIELD(LightFXAddLightsMagicVehicle, LightFxAddLightsMagicVehicle_BoatHire),
|
||||
},
|
||||
.UpdateRotating = UpdateRotatingDefault,
|
||||
.LightFXAddLightsMagicVehicle = LightFxAddLightsMagicVehicle_BoatHire,
|
||||
};
|
||||
// clang-format on
|
||||
|
||||
@@ -18,43 +18,43 @@
|
||||
// clang-format off
|
||||
constexpr RideTypeDescriptor MonorailCyclesRTD =
|
||||
{
|
||||
SET_FIELD(AlternateType, RIDE_TYPE_NULL),
|
||||
SET_FIELD(Category, RIDE_CATEGORY_GENTLE),
|
||||
SET_FIELD(EnabledTrackPieces, {TRACK_STRAIGHT, TRACK_STATION_END, TRACK_S_BEND, TRACK_CURVE_SMALL, TRACK_CURVE}),
|
||||
SET_FIELD(ExtraTrackPieces, {}),
|
||||
SET_FIELD(CoveredTrackPieces, {}),
|
||||
SET_FIELD(StartTrackPiece, TrackElemType::EndStation),
|
||||
SET_FIELD(TrackPaintFunctions, TrackDrawerDescriptor(GetTrackPaintFunctionMonorailCycles)),
|
||||
SET_FIELD(Flags, RIDE_TYPE_FLAGS_TRACK_HAS_3_COLOURS | RIDE_TYPE_FLAG_CAN_SYNCHRONISE_ADJACENT_STATIONS |
|
||||
.AlternateType = RIDE_TYPE_NULL,
|
||||
.Category = RIDE_CATEGORY_GENTLE,
|
||||
.EnabledTrackPieces = {TRACK_STRAIGHT, TRACK_STATION_END, TRACK_S_BEND, TRACK_CURVE_SMALL, TRACK_CURVE},
|
||||
.ExtraTrackPieces = {},
|
||||
.CoveredTrackPieces = {},
|
||||
.StartTrackPiece = TrackElemType::EndStation,
|
||||
.TrackPaintFunctions = TrackDrawerDescriptor(GetTrackPaintFunctionMonorailCycles),
|
||||
.Flags = RIDE_TYPE_FLAGS_TRACK_HAS_3_COLOURS | RIDE_TYPE_FLAG_CAN_SYNCHRONISE_ADJACENT_STATIONS |
|
||||
RIDE_TYPE_FLAG_HAS_DATA_LOGGING | RIDE_TYPE_FLAG_NO_TEST_MODE | RIDE_TYPE_FLAG_HAS_LOAD_OPTIONS |
|
||||
RIDE_TYPE_FLAG_PEEP_WILL_RIDE_AGAIN | RIDE_TYPE_FLAG_HAS_VEHICLE_COLOURS | RIDE_TYPE_FLAG_HAS_TRACK |
|
||||
RIDE_TYPE_FLAG_SUPPORTS_MULTIPLE_TRACK_COLOUR | RIDE_TYPE_FLAG_ALLOW_MUSIC | RIDE_TYPE_FLAG_HAS_ENTRANCE_EXIT |
|
||||
RIDE_TYPE_FLAG_SLIGHTLY_INTERESTING_TO_LOOK_AT),
|
||||
SET_FIELD(RideModes, EnumsToFlags(RideMode::ContinuousCircuit)),
|
||||
SET_FIELD(DefaultMode, RideMode::ContinuousCircuit),
|
||||
SET_FIELD(OperatingSettings, { 0, 0, 0, 0, 0, 0 }),
|
||||
SET_FIELD(Naming, { STR_RIDE_NAME_MONORAIL_CYCLES, STR_RIDE_DESCRIPTION_MONORAIL_CYCLES }),
|
||||
SET_FIELD(NameConvention, { RideComponentType::Car, RideComponentType::Track, RideComponentType::Station }),
|
||||
SET_FIELD(EnumName, nameof(RIDE_TYPE_MONORAIL_CYCLES)),
|
||||
SET_FIELD(AvailableBreakdowns, (1 << BREAKDOWN_VEHICLE_MALFUNCTION)),
|
||||
SET_FIELD(Heights, { 5, 24, 8, 7, }),
|
||||
SET_FIELD(MaxMass, 2),
|
||||
SET_FIELD(LiftData, { OpenRCT2::Audio::SoundId::Null, 5, 5 }),
|
||||
SET_FIELD(RatingsMultipliers, { 50, 10, 10 }),
|
||||
SET_FIELD(UpkeepCosts, { 47, 20, 0, 8, 3, 5 }),
|
||||
SET_FIELD(BuildCosts, { 10.00_GBP, 2.50_GBP, 30, }),
|
||||
SET_FIELD(DefaultPrices, { 15, 0 }),
|
||||
SET_FIELD(DefaultMusic, MUSIC_OBJECT_SUMMER),
|
||||
SET_FIELD(PhotoItem, ShopItem::Photo),
|
||||
SET_FIELD(BonusValue, 45),
|
||||
SET_FIELD(ColourPresets, TRACK_COLOUR_PRESETS(
|
||||
RIDE_TYPE_FLAG_SLIGHTLY_INTERESTING_TO_LOOK_AT,
|
||||
.RideModes = EnumsToFlags(RideMode::ContinuousCircuit),
|
||||
.DefaultMode = RideMode::ContinuousCircuit,
|
||||
.OperatingSettings = { 0, 0, 0, 0, 0, 0 },
|
||||
.Naming = { STR_RIDE_NAME_MONORAIL_CYCLES, STR_RIDE_DESCRIPTION_MONORAIL_CYCLES },
|
||||
.NameConvention = { RideComponentType::Car, RideComponentType::Track, RideComponentType::Station },
|
||||
.EnumName = nameof(RIDE_TYPE_MONORAIL_CYCLES),
|
||||
.AvailableBreakdowns = (1 << BREAKDOWN_VEHICLE_MALFUNCTION),
|
||||
.Heights = { 5, 24, 8, 7, },
|
||||
.MaxMass = 2,
|
||||
.LiftData = { OpenRCT2::Audio::SoundId::Null, 5, 5 },
|
||||
.RatingsMultipliers = { 50, 10, 10 },
|
||||
.UpkeepCosts = { 47, 20, 0, 8, 3, 5 },
|
||||
.BuildCosts = { 10.00_GBP, 2.50_GBP, 30, },
|
||||
.DefaultPrices = { 15, 0 },
|
||||
.DefaultMusic = MUSIC_OBJECT_SUMMER,
|
||||
.PhotoItem = ShopItem::Photo,
|
||||
.BonusValue = 45,
|
||||
.ColourPresets = TRACK_COLOUR_PRESETS(
|
||||
{ COLOUR_DARK_BROWN, COLOUR_GREY, COLOUR_DARK_BROWN },
|
||||
{ COLOUR_GREY, COLOUR_BLACK, COLOUR_GREY },
|
||||
)),
|
||||
SET_FIELD(ColourPreview, { SPR_RIDE_DESIGN_PREVIEW_MONORAIL_CYCLES_TRACK, SPR_RIDE_DESIGN_PREVIEW_MONORAIL_CYCLES_SUPPORTS }),
|
||||
SET_FIELD(ColourKey, RideColourKey::Ride),
|
||||
SET_FIELD(Name, "monorail_cycles"),
|
||||
SET_FIELD(RatingsData,
|
||||
),
|
||||
.ColourPreview = { SPR_RIDE_DESIGN_PREVIEW_MONORAIL_CYCLES_TRACK, SPR_RIDE_DESIGN_PREVIEW_MONORAIL_CYCLES_SUPPORTS },
|
||||
.ColourKey = RideColourKey::Ride,
|
||||
.Name = "monorail_cycles",
|
||||
.RatingsData =
|
||||
{
|
||||
RatingsCalculationType::Normal,
|
||||
{ RIDE_RATING(1, 40), RIDE_RATING(0, 20), RIDE_RATING(0, 00) },
|
||||
@@ -75,8 +75,8 @@ constexpr RideTypeDescriptor MonorailCyclesRTD =
|
||||
{ RatingsModifierType::BonusScenery, 0, 11155, 0, 0 },
|
||||
{ RatingsModifierType::RequirementLength, 0x8C0000, 2, 2, 2 },
|
||||
},
|
||||
}),
|
||||
SET_FIELD(UpdateRotating, UpdateRotatingDefault),
|
||||
SET_FIELD(LightFXAddLightsMagicVehicle, LightFxAddLightsMagicVehicle_BoatHire),
|
||||
},
|
||||
.UpdateRotating = UpdateRotatingDefault,
|
||||
.LightFXAddLightsMagicVehicle = LightFxAddLightsMagicVehicle_BoatHire,
|
||||
};
|
||||
// clang-format on
|
||||
|
||||
@@ -17,46 +17,46 @@
|
||||
// clang-format off
|
||||
constexpr RideTypeDescriptor MonsterTrucksRTD =
|
||||
{
|
||||
SET_FIELD(AlternateType, RIDE_TYPE_NULL),
|
||||
SET_FIELD(Category, RIDE_CATEGORY_GENTLE),
|
||||
SET_FIELD(EnabledTrackPieces, {TRACK_STRAIGHT, TRACK_STATION_END, TRACK_SLOPE, TRACK_SLOPE_STEEP_UP, TRACK_SLOPE_STEEP_DOWN, TRACK_CURVE_VERY_SMALL, TRACK_CURVE_SMALL, TRACK_RAPIDS}),
|
||||
SET_FIELD(ExtraTrackPieces, {TRACK_SPINNING_TUNNEL}),
|
||||
SET_FIELD(CoveredTrackPieces, {}),
|
||||
SET_FIELD(StartTrackPiece, TrackElemType::EndStation),
|
||||
SET_FIELD(TrackPaintFunctions, TrackDrawerDescriptor(GetTrackPaintFunctionCarRide)),
|
||||
SET_FIELD(Flags, RIDE_TYPE_FLAGS_TRACK_HAS_3_COLOURS | RIDE_TYPE_FLAG_CAN_SYNCHRONISE_ADJACENT_STATIONS |
|
||||
.AlternateType = RIDE_TYPE_NULL,
|
||||
.Category = RIDE_CATEGORY_GENTLE,
|
||||
.EnabledTrackPieces = {TRACK_STRAIGHT, TRACK_STATION_END, TRACK_SLOPE, TRACK_SLOPE_STEEP_UP, TRACK_SLOPE_STEEP_DOWN, TRACK_CURVE_VERY_SMALL, TRACK_CURVE_SMALL, TRACK_RAPIDS},
|
||||
.ExtraTrackPieces = {TRACK_SPINNING_TUNNEL},
|
||||
.CoveredTrackPieces = {},
|
||||
.StartTrackPiece = TrackElemType::EndStation,
|
||||
.TrackPaintFunctions = TrackDrawerDescriptor(GetTrackPaintFunctionCarRide),
|
||||
.Flags = RIDE_TYPE_FLAGS_TRACK_HAS_3_COLOURS | RIDE_TYPE_FLAG_CAN_SYNCHRONISE_ADJACENT_STATIONS |
|
||||
RIDE_TYPE_FLAG_HAS_DATA_LOGGING | RIDE_TYPE_FLAG_HAS_LOAD_OPTIONS | RIDE_TYPE_FLAG_PEEP_WILL_RIDE_AGAIN |
|
||||
RIDE_TYPE_FLAG_HAS_VEHICLE_COLOURS | RIDE_TYPE_FLAG_HAS_TRACK | RIDE_TYPE_FLAG_SUPPORTS_MULTIPLE_TRACK_COLOUR |
|
||||
RIDE_TYPE_FLAG_ALLOW_MUSIC | RIDE_TYPE_FLAG_HAS_ENTRANCE_EXIT |
|
||||
RIDE_TYPE_FLAG_ALLOW_MORE_VEHICLES_THAN_STATION_FITS | RIDE_TYPE_FLAG_SHOW_IN_TRACK_DESIGNER |
|
||||
RIDE_TYPE_FLAG_SLIGHTLY_INTERESTING_TO_LOOK_AT),
|
||||
SET_FIELD(RideModes, (1uLL << static_cast<uint8_t>(RideMode::ContinuousCircuit))),
|
||||
SET_FIELD(DefaultMode, RideMode::ContinuousCircuit),
|
||||
SET_FIELD(OperatingSettings, { 0, 0, 0, 0, 0, 0 }),
|
||||
SET_FIELD(Naming, { STR_RIDE_NAME_MONSTER_TRUCKS, STR_RIDE_DESCRIPTION_MONSTER_TRUCKS_GROUP }),
|
||||
SET_FIELD(NameConvention, { RideComponentType::Car, RideComponentType::Track, RideComponentType::Station }),
|
||||
SET_FIELD(EnumName, nameof(RIDE_TYPE_MONSTER_TRUCKS)),
|
||||
SET_FIELD(AvailableBreakdowns, (1 << BREAKDOWN_SAFETY_CUT_OUT) | (1 << BREAKDOWN_VEHICLE_MALFUNCTION)),
|
||||
SET_FIELD(Heights, { 18, 24, 4, 7, }),
|
||||
SET_FIELD(MaxMass, 2),
|
||||
SET_FIELD(LiftData, { OpenRCT2::Audio::SoundId::Null, 5, 5 }),
|
||||
SET_FIELD(RatingsMultipliers, { 70, 10, 10 }),
|
||||
SET_FIELD(UpkeepCosts, { 70, 20, 0, 8, 3, 5 }),
|
||||
SET_FIELD(BuildCosts, { 12.50_GBP, 2.50_GBP, 30, }),
|
||||
SET_FIELD(DefaultPrices, { 15, 0 }),
|
||||
SET_FIELD(DefaultMusic, MUSIC_OBJECT_SUMMER),
|
||||
SET_FIELD(PhotoItem, ShopItem::Photo),
|
||||
SET_FIELD(BonusValue, 50),
|
||||
SET_FIELD(ColourPresets, TRACK_COLOUR_PRESETS(
|
||||
RIDE_TYPE_FLAG_SLIGHTLY_INTERESTING_TO_LOOK_AT,
|
||||
.RideModes = (1uLL << static_cast<uint8_t>(RideMode::ContinuousCircuit)),
|
||||
.DefaultMode = RideMode::ContinuousCircuit,
|
||||
.OperatingSettings = { 0, 0, 0, 0, 0, 0 },
|
||||
.Naming = { STR_RIDE_NAME_MONSTER_TRUCKS, STR_RIDE_DESCRIPTION_MONSTER_TRUCKS_GROUP },
|
||||
.NameConvention = { RideComponentType::Car, RideComponentType::Track, RideComponentType::Station },
|
||||
.EnumName = nameof(RIDE_TYPE_MONSTER_TRUCKS),
|
||||
.AvailableBreakdowns = (1 << BREAKDOWN_SAFETY_CUT_OUT) | (1 << BREAKDOWN_VEHICLE_MALFUNCTION),
|
||||
.Heights = { 18, 24, 4, 7, },
|
||||
.MaxMass = 2,
|
||||
.LiftData = { OpenRCT2::Audio::SoundId::Null, 5, 5 },
|
||||
.RatingsMultipliers = { 70, 10, 10 },
|
||||
.UpkeepCosts = { 70, 20, 0, 8, 3, 5 },
|
||||
.BuildCosts = { 12.50_GBP, 2.50_GBP, 30, },
|
||||
.DefaultPrices = { 15, 0 },
|
||||
.DefaultMusic = MUSIC_OBJECT_SUMMER,
|
||||
.PhotoItem = ShopItem::Photo,
|
||||
.BonusValue = 50,
|
||||
.ColourPresets = TRACK_COLOUR_PRESETS(
|
||||
{ COLOUR_SATURATED_BROWN, COLOUR_SATURATED_BROWN, COLOUR_GREY },
|
||||
{ COLOUR_LIGHT_PURPLE, COLOUR_LIGHT_PURPLE, COLOUR_WHITE },
|
||||
{ COLOUR_BORDEAUX_RED, COLOUR_BORDEAUX_RED, COLOUR_OLIVE_GREEN },
|
||||
{ COLOUR_GREY, COLOUR_GREY, COLOUR_BLACK },
|
||||
)),
|
||||
SET_FIELD(ColourPreview, { SPR_RIDE_DESIGN_PREVIEW_CAR_RIDE_TRACK, SPR_RIDE_DESIGN_PREVIEW_CAR_RIDE_SUPPORTS }),
|
||||
SET_FIELD(ColourKey, RideColourKey::Ride),
|
||||
SET_FIELD(Name, "monster_trucks"),
|
||||
SET_FIELD(RatingsData,
|
||||
),
|
||||
.ColourPreview = { SPR_RIDE_DESIGN_PREVIEW_CAR_RIDE_TRACK, SPR_RIDE_DESIGN_PREVIEW_CAR_RIDE_SUPPORTS },
|
||||
.ColourKey = RideColourKey::Ride,
|
||||
.Name = "monster_trucks",
|
||||
.RatingsData =
|
||||
{
|
||||
RatingsCalculationType::Normal,
|
||||
{ RIDE_RATING(2, 00), RIDE_RATING(0, 50), RIDE_RATING(0, 00) },
|
||||
@@ -77,8 +77,8 @@ constexpr RideTypeDescriptor MonsterTrucksRTD =
|
||||
{ RatingsModifierType::BonusScenery, 0, 8366, 0, 0 },
|
||||
{ RatingsModifierType::RequirementLength, 0xC80000, 8, 2, 2 },
|
||||
},
|
||||
}),
|
||||
SET_FIELD(UpdateRotating, UpdateRotatingDefault),
|
||||
SET_FIELD(LightFXAddLightsMagicVehicle, LightFxAddLightsMagicVehicle_BoatHire),
|
||||
},
|
||||
.UpdateRotating = UpdateRotatingDefault,
|
||||
.LightFXAddLightsMagicVehicle = LightFxAddLightsMagicVehicle_BoatHire,
|
||||
};
|
||||
// clang-format on
|
||||
|
||||
@@ -18,42 +18,42 @@
|
||||
// clang-format off
|
||||
constexpr RideTypeDescriptor ObservationTowerRTD =
|
||||
{
|
||||
SET_FIELD(AlternateType, RIDE_TYPE_NULL),
|
||||
SET_FIELD(Category, RIDE_CATEGORY_GENTLE),
|
||||
SET_FIELD(EnabledTrackPieces, {TRACK_TOWER_BASE}),
|
||||
SET_FIELD(ExtraTrackPieces, {}),
|
||||
SET_FIELD(CoveredTrackPieces, {}),
|
||||
SET_FIELD(StartTrackPiece, TrackElemType::TowerBase),
|
||||
SET_FIELD(TrackPaintFunctions, TrackDrawerDescriptor(GetTrackPaintFunctionObservationTower)),
|
||||
SET_FIELD(Flags, RIDE_TYPE_FLAGS_TRACK_HAS_3_COLOURS | RIDE_TYPE_FLAG_HAS_SINGLE_PIECE_STATION | RIDE_TYPE_FLAG_CANNOT_HAVE_GAPS |
|
||||
.AlternateType = RIDE_TYPE_NULL,
|
||||
.Category = RIDE_CATEGORY_GENTLE,
|
||||
.EnabledTrackPieces = {TRACK_TOWER_BASE},
|
||||
.ExtraTrackPieces = {},
|
||||
.CoveredTrackPieces = {},
|
||||
.StartTrackPiece = TrackElemType::TowerBase,
|
||||
.TrackPaintFunctions = TrackDrawerDescriptor(GetTrackPaintFunctionObservationTower),
|
||||
.Flags = RIDE_TYPE_FLAGS_TRACK_HAS_3_COLOURS | RIDE_TYPE_FLAG_HAS_SINGLE_PIECE_STATION | RIDE_TYPE_FLAG_CANNOT_HAVE_GAPS |
|
||||
RIDE_TYPE_FLAG_HAS_LOAD_OPTIONS | RIDE_TYPE_FLAG_TRACK_NO_WALLS | RIDE_TYPE_FLAG_HAS_VEHICLE_COLOURS | RIDE_TYPE_FLAG_HAS_TRACK |
|
||||
RIDE_TYPE_FLAG_SUPPORTS_MULTIPLE_TRACK_COLOUR | RIDE_TYPE_FLAG_ALLOW_MUSIC | RIDE_TYPE_FLAG_HAS_ENTRANCE_EXIT |
|
||||
RIDE_TYPE_FLAG_SHOW_IN_TRACK_DESIGNER | RIDE_TYPE_FLAG_SLIGHTLY_INTERESTING_TO_LOOK_AT),
|
||||
SET_FIELD(RideModes, EnumsToFlags(RideMode::RotatingLift)),
|
||||
SET_FIELD(DefaultMode, RideMode::RotatingLift),
|
||||
SET_FIELD(OperatingSettings, { 0, 0, 0, 0, 0, 0 }),
|
||||
SET_FIELD(Naming, { STR_RIDE_NAME_OBSERVATION_TOWER, STR_RIDE_DESCRIPTION_OBSERVATION_TOWER }),
|
||||
SET_FIELD(NameConvention, { RideComponentType::Cabin, RideComponentType::Track, RideComponentType::Station }),
|
||||
SET_FIELD(EnumName, nameof(RIDE_TYPE_OBSERVATION_TOWER)),
|
||||
SET_FIELD(AvailableBreakdowns, (1 << BREAKDOWN_SAFETY_CUT_OUT) | (1 << BREAKDOWN_VEHICLE_MALFUNCTION)),
|
||||
SET_FIELD(Heights, { 255, 32, 3, 2, }),
|
||||
SET_FIELD(MaxMass, 15),
|
||||
SET_FIELD(LiftData, { OpenRCT2::Audio::SoundId::Null, 5, 5 }),
|
||||
SET_FIELD(RatingsMultipliers, { 80, 10, 0 }),
|
||||
SET_FIELD(UpkeepCosts, { 50, 20, 0, 10, 0, 0 }),
|
||||
SET_FIELD(BuildCosts, { 18.50_GBP, 0.00_GBP, 4, }),
|
||||
SET_FIELD(DefaultPrices, { 10, 0 }),
|
||||
SET_FIELD(DefaultMusic, MUSIC_OBJECT_SUMMER),
|
||||
SET_FIELD(PhotoItem, ShopItem::Photo),
|
||||
SET_FIELD(BonusValue, 45),
|
||||
SET_FIELD(ColourPresets, TRACK_COLOUR_PRESETS(
|
||||
RIDE_TYPE_FLAG_SHOW_IN_TRACK_DESIGNER | RIDE_TYPE_FLAG_SLIGHTLY_INTERESTING_TO_LOOK_AT,
|
||||
.RideModes = EnumsToFlags(RideMode::RotatingLift),
|
||||
.DefaultMode = RideMode::RotatingLift,
|
||||
.OperatingSettings = { 0, 0, 0, 0, 0, 0 },
|
||||
.Naming = { STR_RIDE_NAME_OBSERVATION_TOWER, STR_RIDE_DESCRIPTION_OBSERVATION_TOWER },
|
||||
.NameConvention = { RideComponentType::Cabin, RideComponentType::Track, RideComponentType::Station },
|
||||
.EnumName = nameof(RIDE_TYPE_OBSERVATION_TOWER),
|
||||
.AvailableBreakdowns = (1 << BREAKDOWN_SAFETY_CUT_OUT) | (1 << BREAKDOWN_VEHICLE_MALFUNCTION),
|
||||
.Heights = { 255, 32, 3, 2, },
|
||||
.MaxMass = 15,
|
||||
.LiftData = { OpenRCT2::Audio::SoundId::Null, 5, 5 },
|
||||
.RatingsMultipliers = { 80, 10, 0 },
|
||||
.UpkeepCosts = { 50, 20, 0, 10, 0, 0 },
|
||||
.BuildCosts = { 18.50_GBP, 0.00_GBP, 4, },
|
||||
.DefaultPrices = { 10, 0 },
|
||||
.DefaultMusic = MUSIC_OBJECT_SUMMER,
|
||||
.PhotoItem = ShopItem::Photo,
|
||||
.BonusValue = 45,
|
||||
.ColourPresets = TRACK_COLOUR_PRESETS(
|
||||
{ COLOUR_BRIGHT_RED, COLOUR_BLACK, COLOUR_GREY },
|
||||
{ COLOUR_LIGHT_BLUE, COLOUR_YELLOW, COLOUR_GREY },
|
||||
)),
|
||||
SET_FIELD(ColourPreview, { SPR_RIDE_DESIGN_PREVIEW_OBSERVATION_TOWER_TRACK, SPR_RIDE_DESIGN_PREVIEW_OBSERVATION_TOWER_SUPPORTS }),
|
||||
SET_FIELD(ColourKey, RideColourKey::Ride),
|
||||
SET_FIELD(Name, "observation_tower"),
|
||||
SET_FIELD(RatingsData,
|
||||
),
|
||||
.ColourPreview = { SPR_RIDE_DESIGN_PREVIEW_OBSERVATION_TOWER_TRACK, SPR_RIDE_DESIGN_PREVIEW_OBSERVATION_TOWER_SUPPORTS },
|
||||
.ColourKey = RideColourKey::Ride,
|
||||
.Name = "observation_tower",
|
||||
.RatingsData =
|
||||
{
|
||||
RatingsCalculationType::Normal,
|
||||
{ RIDE_RATING(1, 50), RIDE_RATING(0, 00), RIDE_RATING(0, 10) },
|
||||
@@ -66,8 +66,8 @@ constexpr RideTypeDescriptor ObservationTowerRTD =
|
||||
{ RatingsModifierType::BonusTowerRide, 0, 45875, 0, 26214 },
|
||||
{ RatingsModifierType::RequirementUnsheltered, 5, 4, 1, 1 },
|
||||
},
|
||||
}),
|
||||
SET_FIELD(UpdateRotating, UpdateRotatingDefault),
|
||||
SET_FIELD(LightFXAddLightsMagicVehicle, LightFxAddLightsMagicVehicle_ObservationTower),
|
||||
},
|
||||
.UpdateRotating = UpdateRotatingDefault,
|
||||
.LightFXAddLightsMagicVehicle = LightFxAddLightsMagicVehicle_ObservationTower,
|
||||
};
|
||||
// clang-format on
|
||||
|
||||
@@ -17,39 +17,39 @@
|
||||
// clang-format off
|
||||
constexpr RideTypeDescriptor SpaceRingsRTD =
|
||||
{
|
||||
SET_FIELD(AlternateType, RIDE_TYPE_NULL),
|
||||
SET_FIELD(Category, RIDE_CATEGORY_GENTLE),
|
||||
SET_FIELD(EnabledTrackPieces, {}),
|
||||
SET_FIELD(ExtraTrackPieces, {}),
|
||||
SET_FIELD(CoveredTrackPieces, {}),
|
||||
SET_FIELD(StartTrackPiece, TrackElemType::FlatTrack3x3),
|
||||
SET_FIELD(TrackPaintFunctions, TrackDrawerDescriptor(GetTrackPaintFunctionSpaceRings)),
|
||||
SET_FIELD(Flags, RIDE_TYPE_FLAG_HAS_SINGLE_PIECE_STATION | RIDE_TYPE_FLAG_CANNOT_HAVE_GAPS | RIDE_TYPE_FLAG_NO_TEST_MODE |
|
||||
.AlternateType = RIDE_TYPE_NULL,
|
||||
.Category = RIDE_CATEGORY_GENTLE,
|
||||
.EnabledTrackPieces = {},
|
||||
.ExtraTrackPieces = {},
|
||||
.CoveredTrackPieces = {},
|
||||
.StartTrackPiece = TrackElemType::FlatTrack3x3,
|
||||
.TrackPaintFunctions = TrackDrawerDescriptor(GetTrackPaintFunctionSpaceRings),
|
||||
.Flags = RIDE_TYPE_FLAG_HAS_SINGLE_PIECE_STATION | RIDE_TYPE_FLAG_CANNOT_HAVE_GAPS | RIDE_TYPE_FLAG_NO_TEST_MODE |
|
||||
RIDE_TYPE_FLAG_TRACK_NO_WALLS | RIDE_TYPE_FLAG_FLAT_RIDE | RIDE_TYPE_FLAG_HAS_VEHICLE_COLOURS |
|
||||
RIDE_TYPE_FLAG_ALLOW_MUSIC | RIDE_TYPE_FLAG_HAS_ENTRANCE_EXIT | RIDE_TYPE_FLAG_SINGLE_SESSION |
|
||||
RIDE_TYPE_FLAG_SLIGHTLY_INTERESTING_TO_LOOK_AT | RIDE_TYPE_FLAG_LIST_VEHICLES_SEPARATELY),
|
||||
SET_FIELD(RideModes, EnumsToFlags(RideMode::SpaceRings)),
|
||||
SET_FIELD(DefaultMode, RideMode::SpaceRings),
|
||||
SET_FIELD(OperatingSettings, { 0, 0, 0, 0, 0, 0 }),
|
||||
SET_FIELD(Naming, { STR_RIDE_NAME_SPACE_RINGS, STR_RIDE_DESCRIPTION_SPACE_RINGS }),
|
||||
SET_FIELD(NameConvention, { RideComponentType::Ring, RideComponentType::Structure, RideComponentType::Station }),
|
||||
SET_FIELD(EnumName, nameof(RIDE_TYPE_SPACE_RINGS)),
|
||||
SET_FIELD(AvailableBreakdowns, (1 << BREAKDOWN_SAFETY_CUT_OUT)),
|
||||
SET_FIELD(Heights, { 16, 48, 3, 2, }),
|
||||
SET_FIELD(MaxMass, 255),
|
||||
SET_FIELD(LiftData, { OpenRCT2::Audio::SoundId::Null, 5, 5 }),
|
||||
SET_FIELD(RatingsMultipliers, { 12, 4, 4 }),
|
||||
SET_FIELD(UpkeepCosts, { 50, 1, 0, 0, 0, 0 }),
|
||||
SET_FIELD(BuildCosts, { 36.00_GBP, 1.00_GBP, 1, }),
|
||||
SET_FIELD(DefaultPrices, { 5, 0 }),
|
||||
SET_FIELD(DefaultMusic, MUSIC_OBJECT_GENTLE),
|
||||
SET_FIELD(PhotoItem, ShopItem::Photo),
|
||||
SET_FIELD(BonusValue, 30),
|
||||
SET_FIELD(ColourPresets, DEFAULT_FLAT_RIDE_COLOUR_PRESET),
|
||||
SET_FIELD(ColourPreview, { 0, 0 }),
|
||||
SET_FIELD(ColourKey, RideColourKey::Ride),
|
||||
SET_FIELD(Name, "space_rings"),
|
||||
SET_FIELD(RatingsData,
|
||||
RIDE_TYPE_FLAG_SLIGHTLY_INTERESTING_TO_LOOK_AT | RIDE_TYPE_FLAG_LIST_VEHICLES_SEPARATELY,
|
||||
.RideModes = EnumsToFlags(RideMode::SpaceRings),
|
||||
.DefaultMode = RideMode::SpaceRings,
|
||||
.OperatingSettings = { 0, 0, 0, 0, 0, 0 },
|
||||
.Naming = { STR_RIDE_NAME_SPACE_RINGS, STR_RIDE_DESCRIPTION_SPACE_RINGS },
|
||||
.NameConvention = { RideComponentType::Ring, RideComponentType::Structure, RideComponentType::Station },
|
||||
.EnumName = nameof(RIDE_TYPE_SPACE_RINGS),
|
||||
.AvailableBreakdowns = (1 << BREAKDOWN_SAFETY_CUT_OUT),
|
||||
.Heights = { 16, 48, 3, 2, },
|
||||
.MaxMass = 255,
|
||||
.LiftData = { OpenRCT2::Audio::SoundId::Null, 5, 5 },
|
||||
.RatingsMultipliers = { 12, 4, 4 },
|
||||
.UpkeepCosts = { 50, 1, 0, 0, 0, 0 },
|
||||
.BuildCosts = { 36.00_GBP, 1.00_GBP, 1, },
|
||||
.DefaultPrices = { 5, 0 },
|
||||
.DefaultMusic = MUSIC_OBJECT_GENTLE,
|
||||
.PhotoItem = ShopItem::Photo,
|
||||
.BonusValue = 30,
|
||||
.ColourPresets = DEFAULT_FLAT_RIDE_COLOUR_PRESET,
|
||||
.ColourPreview = { 0, 0 },
|
||||
.ColourKey = RideColourKey::Ride,
|
||||
.Name = "space_rings",
|
||||
.RatingsData =
|
||||
{
|
||||
RatingsCalculationType::FlatRide,
|
||||
{ RIDE_RATING(1, 50), RIDE_RATING(2, 10), RIDE_RATING(6, 50) },
|
||||
@@ -59,6 +59,6 @@ constexpr RideTypeDescriptor SpaceRingsRTD =
|
||||
{
|
||||
{ RatingsModifierType::BonusScenery, 0, 25098, 0, 0 },
|
||||
},
|
||||
}),
|
||||
},
|
||||
};
|
||||
// clang-format on
|
||||
|
||||
@@ -17,45 +17,45 @@
|
||||
// clang-format off
|
||||
constexpr RideTypeDescriptor SpiralSlideRTD =
|
||||
{
|
||||
SET_FIELD(AlternateType, RIDE_TYPE_NULL),
|
||||
SET_FIELD(Category, RIDE_CATEGORY_GENTLE),
|
||||
SET_FIELD(EnabledTrackPieces, {}),
|
||||
SET_FIELD(ExtraTrackPieces, {}),
|
||||
SET_FIELD(CoveredTrackPieces, {}),
|
||||
SET_FIELD(StartTrackPiece, TrackElemType::FlatTrack2x2),
|
||||
SET_FIELD(TrackPaintFunctions, TrackDrawerDescriptor(GetTrackPaintFunctionSpiralSlide)),
|
||||
SET_FIELD(Flags, RIDE_TYPE_FLAGS_TRACK_HAS_3_COLOURS | RIDE_TYPE_FLAG_HAS_SINGLE_PIECE_STATION |
|
||||
.AlternateType = RIDE_TYPE_NULL,
|
||||
.Category = RIDE_CATEGORY_GENTLE,
|
||||
.EnabledTrackPieces = {},
|
||||
.ExtraTrackPieces = {},
|
||||
.CoveredTrackPieces = {},
|
||||
.StartTrackPiece = TrackElemType::FlatTrack2x2,
|
||||
.TrackPaintFunctions = TrackDrawerDescriptor(GetTrackPaintFunctionSpiralSlide),
|
||||
.Flags = RIDE_TYPE_FLAGS_TRACK_HAS_3_COLOURS | RIDE_TYPE_FLAG_HAS_SINGLE_PIECE_STATION |
|
||||
RIDE_TYPE_FLAG_CANNOT_HAVE_GAPS | RIDE_TYPE_FLAG_NO_TEST_MODE | RIDE_TYPE_FLAG_NO_VEHICLES |
|
||||
RIDE_TYPE_FLAG_TRACK_NO_WALLS | RIDE_TYPE_FLAG_FLAT_RIDE | RIDE_TYPE_FLAG_ALLOW_MUSIC |
|
||||
RIDE_TYPE_FLAG_HAS_ENTRANCE_EXIT | RIDE_TYPE_FLAG_INTERESTING_TO_LOOK_AT |
|
||||
RIDE_TYPE_FLAG_LIST_VEHICLES_SEPARATELY | RIDE_TYPE_FLAG_IS_SPIRAL_SLIDE),
|
||||
SET_FIELD(RideModes, EnumsToFlags(RideMode::SingleRidePerAdmission, RideMode::UnlimitedRidesPerAdmission)),
|
||||
SET_FIELD(DefaultMode, RideMode::SingleRidePerAdmission),
|
||||
SET_FIELD(OperatingSettings, { 1, 5, 0, 0, 0, 0 }),
|
||||
SET_FIELD(Naming, { STR_RIDE_NAME_SPIRAL_SLIDE, STR_RIDE_DESCRIPTION_SPIRAL_SLIDE }),
|
||||
SET_FIELD(NameConvention, { RideComponentType::Train, RideComponentType::Building, RideComponentType::Station }),
|
||||
SET_FIELD(EnumName, nameof(RIDE_TYPE_SPIRAL_SLIDE)),
|
||||
SET_FIELD(AvailableBreakdowns, (1 << BREAKDOWN_SAFETY_CUT_OUT)),
|
||||
SET_FIELD(Heights, { 15, 128, 0, 2, }),
|
||||
SET_FIELD(MaxMass, 255),
|
||||
SET_FIELD(LiftData, { OpenRCT2::Audio::SoundId::Null, 5, 5 }),
|
||||
SET_FIELD(RatingsMultipliers, { 50, 10, 0 }),
|
||||
SET_FIELD(UpkeepCosts, { 50, 1, 0, 0, 0, 0 }),
|
||||
SET_FIELD(BuildCosts, { 82.50_GBP, 1.00_GBP, 1, }),
|
||||
SET_FIELD(DefaultPrices, { 15, 0 }),
|
||||
SET_FIELD(DefaultMusic, MUSIC_OBJECT_SUMMER),
|
||||
SET_FIELD(PhotoItem, ShopItem::Photo),
|
||||
SET_FIELD(BonusValue, 40),
|
||||
SET_FIELD(ColourPresets, TRACK_COLOUR_PRESETS(
|
||||
RIDE_TYPE_FLAG_LIST_VEHICLES_SEPARATELY | RIDE_TYPE_FLAG_IS_SPIRAL_SLIDE,
|
||||
.RideModes = EnumsToFlags(RideMode::SingleRidePerAdmission, RideMode::UnlimitedRidesPerAdmission),
|
||||
.DefaultMode = RideMode::SingleRidePerAdmission,
|
||||
.OperatingSettings = { 1, 5, 0, 0, 0, 0 },
|
||||
.Naming = { STR_RIDE_NAME_SPIRAL_SLIDE, STR_RIDE_DESCRIPTION_SPIRAL_SLIDE },
|
||||
.NameConvention = { RideComponentType::Train, RideComponentType::Building, RideComponentType::Station },
|
||||
.EnumName = nameof(RIDE_TYPE_SPIRAL_SLIDE),
|
||||
.AvailableBreakdowns = (1 << BREAKDOWN_SAFETY_CUT_OUT),
|
||||
.Heights = { 15, 128, 0, 2, },
|
||||
.MaxMass = 255,
|
||||
.LiftData = { OpenRCT2::Audio::SoundId::Null, 5, 5 },
|
||||
.RatingsMultipliers = { 50, 10, 0 },
|
||||
.UpkeepCosts = { 50, 1, 0, 0, 0, 0 },
|
||||
.BuildCosts = { 82.50_GBP, 1.00_GBP, 1, },
|
||||
.DefaultPrices = { 15, 0 },
|
||||
.DefaultMusic = MUSIC_OBJECT_SUMMER,
|
||||
.PhotoItem = ShopItem::Photo,
|
||||
.BonusValue = 40,
|
||||
.ColourPresets = TRACK_COLOUR_PRESETS(
|
||||
{ COLOUR_BRIGHT_RED, COLOUR_YELLOW, COLOUR_DARK_BROWN },
|
||||
{ COLOUR_LIGHT_BLUE, COLOUR_BRIGHT_PINK, COLOUR_LIGHT_PURPLE },
|
||||
{ COLOUR_WHITE, COLOUR_BORDEAUX_RED, COLOUR_GREY },
|
||||
{ COLOUR_DULL_BROWN_LIGHT, COLOUR_SATURATED_RED, COLOUR_GREY },
|
||||
)),
|
||||
SET_FIELD(ColourPreview, { SPR_RIDE_DESIGN_PREVIEW_SPIRAL_SLIDE_TRACK, 0 }),
|
||||
SET_FIELD(ColourKey, RideColourKey::Ride),
|
||||
SET_FIELD(Name, "spiral_slide"),
|
||||
SET_FIELD(RatingsData,
|
||||
),
|
||||
.ColourPreview = { SPR_RIDE_DESIGN_PREVIEW_SPIRAL_SLIDE_TRACK, 0 },
|
||||
.ColourKey = RideColourKey::Ride,
|
||||
.Name = "spiral_slide",
|
||||
.RatingsData =
|
||||
{
|
||||
RatingsCalculationType::FlatRide,
|
||||
{ RIDE_RATING(1, 50), RIDE_RATING(1, 40), RIDE_RATING(0, 90) },
|
||||
@@ -66,17 +66,17 @@ constexpr RideTypeDescriptor SpiralSlideRTD =
|
||||
{ RatingsModifierType::BonusSlideUnlimitedRides, 0, RIDE_RATING(0, 40), RIDE_RATING(0, 20), RIDE_RATING(0, 25) },
|
||||
{ RatingsModifierType::BonusScenery, 0, 25098, 0, 0 },
|
||||
},
|
||||
}),
|
||||
SET_FIELD(UpdateRotating, UpdateRotatingDefault),
|
||||
SET_FIELD(LightFXAddLightsMagicVehicle, nullptr),
|
||||
SET_FIELD(StartRideMusic, OpenRCT2::RideAudio::DefaultStartRideMusicChannel),
|
||||
SET_FIELD(DesignCreateMode, TrackDesignCreateMode::Default),
|
||||
SET_FIELD(MusicUpdateFunction, DefaultMusicUpdate),
|
||||
SET_FIELD(Classification, RideClassification::Ride),
|
||||
SET_FIELD(UpdateLeaveEntrance, PeepUpdateRideLeaveEntranceSpiralSlide),
|
||||
SET_FIELD(SpecialElementRatingAdjustment, SpecialTrackElementRatingsAjustment_Default),
|
||||
SET_FIELD(GetGuestWaypointLocation, GetGuestWaypointLocationDefault),
|
||||
SET_FIELD(ConstructionWindowContext, RideConstructionWindowContext::Default),
|
||||
SET_FIELD(RideUpdate, UpdateSpiralSlide),
|
||||
},
|
||||
.UpdateRotating = UpdateRotatingDefault,
|
||||
.LightFXAddLightsMagicVehicle = nullptr,
|
||||
.StartRideMusic = OpenRCT2::RideAudio::DefaultStartRideMusicChannel,
|
||||
.DesignCreateMode = TrackDesignCreateMode::Default,
|
||||
.MusicUpdateFunction = DefaultMusicUpdate,
|
||||
.Classification = RideClassification::Ride,
|
||||
.UpdateLeaveEntrance = PeepUpdateRideLeaveEntranceSpiralSlide,
|
||||
.SpecialElementRatingAdjustment = SpecialTrackElementRatingsAjustment_Default,
|
||||
.GetGuestWaypointLocation = GetGuestWaypointLocationDefault,
|
||||
.ConstructionWindowContext = RideConstructionWindowContext::Default,
|
||||
.RideUpdate = UpdateSpiralSlide,
|
||||
};
|
||||
// clang-format on
|
||||
|
||||
@@ -16,38 +16,38 @@
|
||||
// clang-format off
|
||||
constexpr RideTypeDescriptor CashMachineRTD =
|
||||
{
|
||||
SET_FIELD(AlternateType, RIDE_TYPE_NULL),
|
||||
SET_FIELD(Category, RIDE_CATEGORY_SHOP),
|
||||
SET_FIELD(EnabledTrackPieces, {}),
|
||||
SET_FIELD(ExtraTrackPieces, {}),
|
||||
SET_FIELD(CoveredTrackPieces, {}),
|
||||
SET_FIELD(StartTrackPiece, TrackElemType::FlatTrack1x1A),
|
||||
SET_FIELD(TrackPaintFunctions, TrackDrawerDescriptor(GetTrackPaintFunctionShop)),
|
||||
SET_FIELD(Flags, RIDE_TYPE_FLAG_HAS_SINGLE_PIECE_STATION | RIDE_TYPE_FLAG_CANNOT_HAVE_GAPS | RIDE_TYPE_FLAG_NO_TEST_MODE |
|
||||
.AlternateType = RIDE_TYPE_NULL,
|
||||
.Category = RIDE_CATEGORY_SHOP,
|
||||
.EnabledTrackPieces = {},
|
||||
.ExtraTrackPieces = {},
|
||||
.CoveredTrackPieces = {},
|
||||
.StartTrackPiece = TrackElemType::FlatTrack1x1A,
|
||||
.TrackPaintFunctions = TrackDrawerDescriptor(GetTrackPaintFunctionShop),
|
||||
.Flags = RIDE_TYPE_FLAG_HAS_SINGLE_PIECE_STATION | RIDE_TYPE_FLAG_CANNOT_HAVE_GAPS | RIDE_TYPE_FLAG_NO_TEST_MODE |
|
||||
RIDE_TYPE_FLAG_NO_VEHICLES | RIDE_TYPE_FLAG_IS_CASH_MACHINE | RIDE_TYPE_FLAG_IS_SHOP_OR_FACILITY |
|
||||
RIDE_TYPE_FLAG_TRACK_NO_WALLS | RIDE_TYPE_FLAG_FLAT_RIDE | RIDE_TYPE_FLAG_LIST_VEHICLES_SEPARATELY),
|
||||
SET_FIELD(RideModes, EnumsToFlags(RideMode::ShopStall)),
|
||||
SET_FIELD(DefaultMode, RideMode::ShopStall),
|
||||
SET_FIELD(OperatingSettings, { 0, 0, 0, 0, 0, 0 }),
|
||||
SET_FIELD(Naming, { STR_RIDE_NAME_CASH_MACHINE, STR_RIDE_DESCRIPTION_CASH_MACHINE }),
|
||||
SET_FIELD(NameConvention, { RideComponentType::Car, RideComponentType::Building, RideComponentType::Station }),
|
||||
SET_FIELD(EnumName, nameof(RIDE_TYPE_CASH_MACHINE)),
|
||||
SET_FIELD(AvailableBreakdowns, 0),
|
||||
SET_FIELD(Heights, { 12, DefaultCashMachineHeight, 0, 0, }),
|
||||
SET_FIELD(MaxMass, 255),
|
||||
SET_FIELD(LiftData, { OpenRCT2::Audio::SoundId::Null, 5, 5 }),
|
||||
SET_FIELD(RatingsMultipliers, { 0, 0, 0 }),
|
||||
SET_FIELD(UpkeepCosts, { 40, 1, 0, 0, 0, 0 }),
|
||||
SET_FIELD(BuildCosts, { 200.00_GBP, 0.00_GBP, 1, }),
|
||||
SET_FIELD(DefaultPrices, { 0, 0 }),
|
||||
SET_FIELD(DefaultMusic, MUSIC_OBJECT_GENTLE),
|
||||
SET_FIELD(PhotoItem, ShopItem::Photo),
|
||||
SET_FIELD(BonusValue, 5),
|
||||
SET_FIELD(ColourPresets, DEFAULT_FLAT_RIDE_COLOUR_PRESET),
|
||||
SET_FIELD(ColourPreview, { 0, 0 }),
|
||||
SET_FIELD(ColourKey, RideColourKey::CashMachine),
|
||||
SET_FIELD(Name, "cash_machine"),
|
||||
SET_FIELD(RatingsData,
|
||||
RIDE_TYPE_FLAG_TRACK_NO_WALLS | RIDE_TYPE_FLAG_FLAT_RIDE | RIDE_TYPE_FLAG_LIST_VEHICLES_SEPARATELY,
|
||||
.RideModes = EnumsToFlags(RideMode::ShopStall),
|
||||
.DefaultMode = RideMode::ShopStall,
|
||||
.OperatingSettings = { 0, 0, 0, 0, 0, 0 },
|
||||
.Naming = { STR_RIDE_NAME_CASH_MACHINE, STR_RIDE_DESCRIPTION_CASH_MACHINE },
|
||||
.NameConvention = { RideComponentType::Car, RideComponentType::Building, RideComponentType::Station },
|
||||
.EnumName = nameof(RIDE_TYPE_CASH_MACHINE),
|
||||
.AvailableBreakdowns = 0,
|
||||
.Heights = { 12, DefaultCashMachineHeight, 0, 0, },
|
||||
.MaxMass = 255,
|
||||
.LiftData = { OpenRCT2::Audio::SoundId::Null, 5, 5 },
|
||||
.RatingsMultipliers = { 0, 0, 0 },
|
||||
.UpkeepCosts = { 40, 1, 0, 0, 0, 0 },
|
||||
.BuildCosts = { 200.00_GBP, 0.00_GBP, 1, },
|
||||
.DefaultPrices = { 0, 0 },
|
||||
.DefaultMusic = MUSIC_OBJECT_GENTLE,
|
||||
.PhotoItem = ShopItem::Photo,
|
||||
.BonusValue = 5,
|
||||
.ColourPresets = DEFAULT_FLAT_RIDE_COLOUR_PRESET,
|
||||
.ColourPreview = { 0, 0 },
|
||||
.ColourKey = RideColourKey::CashMachine,
|
||||
.Name = "cash_machine",
|
||||
.RatingsData =
|
||||
{
|
||||
RatingsCalculationType::Stall,
|
||||
{ 1, 1, 1 },
|
||||
@@ -55,12 +55,12 @@ constexpr RideTypeDescriptor CashMachineRTD =
|
||||
-1,
|
||||
false,
|
||||
{ { RatingsModifierType::NoModifier, 0, 0, 0, 0 } }
|
||||
}),
|
||||
SET_FIELD(UpdateRotating, UpdateRotatingDefault),
|
||||
SET_FIELD(LightFXAddLightsMagicVehicle, nullptr),
|
||||
SET_FIELD(StartRideMusic, OpenRCT2::RideAudio::DefaultStartRideMusicChannel),
|
||||
SET_FIELD(DesignCreateMode, TrackDesignCreateMode::Default),
|
||||
SET_FIELD(MusicUpdateFunction, DefaultMusicUpdate),
|
||||
SET_FIELD(Classification, RideClassification::KioskOrFacility),
|
||||
},
|
||||
.UpdateRotating = UpdateRotatingDefault,
|
||||
.LightFXAddLightsMagicVehicle = nullptr,
|
||||
.StartRideMusic = OpenRCT2::RideAudio::DefaultStartRideMusicChannel,
|
||||
.DesignCreateMode = TrackDesignCreateMode::Default,
|
||||
.MusicUpdateFunction = DefaultMusicUpdate,
|
||||
.Classification = RideClassification::KioskOrFacility,
|
||||
};
|
||||
// clang-format on
|
||||
|
||||
@@ -16,39 +16,39 @@
|
||||
// clang-format off
|
||||
constexpr RideTypeDescriptor DrinkStallRTD =
|
||||
{
|
||||
SET_FIELD(AlternateType, RIDE_TYPE_NULL),
|
||||
SET_FIELD(Category, RIDE_CATEGORY_SHOP),
|
||||
SET_FIELD(EnabledTrackPieces, {}),
|
||||
SET_FIELD(ExtraTrackPieces, {}),
|
||||
SET_FIELD(CoveredTrackPieces, {}),
|
||||
SET_FIELD(StartTrackPiece, TrackElemType::FlatTrack1x1A),
|
||||
SET_FIELD(TrackPaintFunctions, TrackDrawerDescriptor(GetTrackPaintFunctionShop)),
|
||||
SET_FIELD(Flags, RIDE_TYPE_FLAG_HAS_SINGLE_PIECE_STATION | RIDE_TYPE_FLAG_CANNOT_HAVE_GAPS | RIDE_TYPE_FLAG_NO_TEST_MODE |
|
||||
.AlternateType = RIDE_TYPE_NULL,
|
||||
.Category = RIDE_CATEGORY_SHOP,
|
||||
.EnabledTrackPieces = {},
|
||||
.ExtraTrackPieces = {},
|
||||
.CoveredTrackPieces = {},
|
||||
.StartTrackPiece = TrackElemType::FlatTrack1x1A,
|
||||
.TrackPaintFunctions = TrackDrawerDescriptor(GetTrackPaintFunctionShop),
|
||||
.Flags = RIDE_TYPE_FLAG_HAS_SINGLE_PIECE_STATION | RIDE_TYPE_FLAG_CANNOT_HAVE_GAPS | RIDE_TYPE_FLAG_NO_TEST_MODE |
|
||||
RIDE_TYPE_FLAG_NO_VEHICLES | RIDE_TYPE_FLAG_IS_SHOP_OR_FACILITY | RIDE_TYPE_FLAG_TRACK_NO_WALLS |
|
||||
RIDE_TYPE_FLAG_FLAT_RIDE | RIDE_TYPE_FLAG_SELLS_DRINKS | RIDE_TYPE_FLAG_LIST_VEHICLES_SEPARATELY |
|
||||
RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_MAIN),
|
||||
SET_FIELD(RideModes, EnumsToFlags(RideMode::ShopStall)),
|
||||
SET_FIELD(DefaultMode, RideMode::ShopStall),
|
||||
SET_FIELD(OperatingSettings, { 0, 0, 0, 0, 0, 0 }),
|
||||
SET_FIELD(Naming, { STR_RIDE_NAME_DRINK_STALL, STR_RIDE_DESCRIPTION_DRINK_STALL }),
|
||||
SET_FIELD(NameConvention, { RideComponentType::Car, RideComponentType::Building, RideComponentType::Station }),
|
||||
SET_FIELD(EnumName, nameof(RIDE_TYPE_DRINK_STALL)),
|
||||
SET_FIELD(AvailableBreakdowns, 0),
|
||||
SET_FIELD(Heights, { 12, DefaultDrinksStallHeight, 0, 0, }),
|
||||
SET_FIELD(MaxMass, 255),
|
||||
SET_FIELD(LiftData, { OpenRCT2::Audio::SoundId::Null, 5, 5 }),
|
||||
SET_FIELD(RatingsMultipliers, { 0, 0, 0 }),
|
||||
SET_FIELD(UpkeepCosts, { 50, 1, 0, 0, 0, 0 }),
|
||||
SET_FIELD(BuildCosts, { 250.00_GBP, 0.00_GBP, 1, }),
|
||||
SET_FIELD(DefaultPrices, { 0, 0 }),
|
||||
SET_FIELD(DefaultMusic, MUSIC_OBJECT_GENTLE),
|
||||
SET_FIELD(PhotoItem, ShopItem::Photo),
|
||||
SET_FIELD(BonusValue, 15),
|
||||
SET_FIELD(ColourPresets, DEFAULT_STALL_COLOUR_PRESET),
|
||||
SET_FIELD(ColourPreview, { 0, 0 }),
|
||||
SET_FIELD(ColourKey, RideColourKey::Drink),
|
||||
SET_FIELD(Name, "drink_stall"),
|
||||
SET_FIELD(RatingsData,
|
||||
RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_MAIN,
|
||||
.RideModes = EnumsToFlags(RideMode::ShopStall),
|
||||
.DefaultMode = RideMode::ShopStall,
|
||||
.OperatingSettings = { 0, 0, 0, 0, 0, 0 },
|
||||
.Naming = { STR_RIDE_NAME_DRINK_STALL, STR_RIDE_DESCRIPTION_DRINK_STALL },
|
||||
.NameConvention = { RideComponentType::Car, RideComponentType::Building, RideComponentType::Station },
|
||||
.EnumName = nameof(RIDE_TYPE_DRINK_STALL),
|
||||
.AvailableBreakdowns = 0,
|
||||
.Heights = { 12, DefaultDrinksStallHeight, 0, 0, },
|
||||
.MaxMass = 255,
|
||||
.LiftData = { OpenRCT2::Audio::SoundId::Null, 5, 5 },
|
||||
.RatingsMultipliers = { 0, 0, 0 },
|
||||
.UpkeepCosts = { 50, 1, 0, 0, 0, 0 },
|
||||
.BuildCosts = { 250.00_GBP, 0.00_GBP, 1, },
|
||||
.DefaultPrices = { 0, 0 },
|
||||
.DefaultMusic = MUSIC_OBJECT_GENTLE,
|
||||
.PhotoItem = ShopItem::Photo,
|
||||
.BonusValue = 15,
|
||||
.ColourPresets = DEFAULT_STALL_COLOUR_PRESET,
|
||||
.ColourPreview = { 0, 0 },
|
||||
.ColourKey = RideColourKey::Drink,
|
||||
.Name = "drink_stall",
|
||||
.RatingsData =
|
||||
{
|
||||
RatingsCalculationType::Stall,
|
||||
{ 1, 1, 1 },
|
||||
@@ -56,12 +56,12 @@ constexpr RideTypeDescriptor DrinkStallRTD =
|
||||
-1,
|
||||
false,
|
||||
{ { RatingsModifierType::NoModifier, 0, 0, 0, 0 } }
|
||||
}),
|
||||
SET_FIELD(UpdateRotating, UpdateRotatingDefault),
|
||||
SET_FIELD(LightFXAddLightsMagicVehicle, nullptr),
|
||||
SET_FIELD(StartRideMusic, OpenRCT2::RideAudio::DefaultStartRideMusicChannel),
|
||||
SET_FIELD(DesignCreateMode, TrackDesignCreateMode::Default),
|
||||
SET_FIELD(MusicUpdateFunction, DefaultMusicUpdate),
|
||||
SET_FIELD(Classification, RideClassification::ShopOrStall),
|
||||
},
|
||||
.UpdateRotating = UpdateRotatingDefault,
|
||||
.LightFXAddLightsMagicVehicle = nullptr,
|
||||
.StartRideMusic = OpenRCT2::RideAudio::DefaultStartRideMusicChannel,
|
||||
.DesignCreateMode = TrackDesignCreateMode::Default,
|
||||
.MusicUpdateFunction = DefaultMusicUpdate,
|
||||
.Classification = RideClassification::ShopOrStall,
|
||||
};
|
||||
// clang-format on
|
||||
|
||||
@@ -16,39 +16,39 @@
|
||||
// clang-format off
|
||||
constexpr RideTypeDescriptor FirstAidRTD =
|
||||
{
|
||||
SET_FIELD(AlternateType, RIDE_TYPE_NULL),
|
||||
SET_FIELD(Category, RIDE_CATEGORY_SHOP),
|
||||
SET_FIELD(EnabledTrackPieces, {}),
|
||||
SET_FIELD(ExtraTrackPieces, {}),
|
||||
SET_FIELD(CoveredTrackPieces, {}),
|
||||
SET_FIELD(StartTrackPiece, TrackElemType::FlatTrack1x1A),
|
||||
SET_FIELD(TrackPaintFunctions, TrackDrawerDescriptor(GetTrackPaintFunctionFacility)),
|
||||
SET_FIELD(Flags, RIDE_TYPE_FLAG_HAS_SINGLE_PIECE_STATION | RIDE_TYPE_FLAG_CANNOT_HAVE_GAPS | RIDE_TYPE_FLAG_NO_TEST_MODE |
|
||||
.AlternateType = RIDE_TYPE_NULL,
|
||||
.Category = RIDE_CATEGORY_SHOP,
|
||||
.EnabledTrackPieces = {},
|
||||
.ExtraTrackPieces = {},
|
||||
.CoveredTrackPieces = {},
|
||||
.StartTrackPiece = TrackElemType::FlatTrack1x1A,
|
||||
.TrackPaintFunctions = TrackDrawerDescriptor(GetTrackPaintFunctionFacility),
|
||||
.Flags = RIDE_TYPE_FLAG_HAS_SINGLE_PIECE_STATION | RIDE_TYPE_FLAG_CANNOT_HAVE_GAPS | RIDE_TYPE_FLAG_NO_TEST_MODE |
|
||||
RIDE_TYPE_FLAG_NO_VEHICLES | RIDE_TYPE_FLAG_IS_SHOP_OR_FACILITY | RIDE_TYPE_FLAG_TRACK_NO_WALLS |
|
||||
RIDE_TYPE_FLAG_FLAT_RIDE | RIDE_TYPE_FLAG_IS_FIRST_AID | RIDE_TYPE_FLAG_PEEP_SHOULD_GO_INSIDE_FACILITY |
|
||||
RIDE_TYPE_FLAG_IN_RIDE | RIDE_TYPE_FLAG_LIST_VEHICLES_SEPARATELY),
|
||||
SET_FIELD(RideModes, EnumsToFlags(RideMode::ShopStall)),
|
||||
SET_FIELD(DefaultMode, RideMode::ShopStall),
|
||||
SET_FIELD(OperatingSettings, { 8, 8, 0, 0, 0, 0 }),
|
||||
SET_FIELD(Naming, { STR_RIDE_NAME_FIRST_AID, STR_RIDE_DESCRIPTION_FIRST_AID }),
|
||||
SET_FIELD(NameConvention, { RideComponentType::Car, RideComponentType::Building, RideComponentType::Station }),
|
||||
SET_FIELD(EnumName, nameof(RIDE_TYPE_FIRST_AID)),
|
||||
SET_FIELD(AvailableBreakdowns, 0),
|
||||
SET_FIELD(Heights, { 12, DefaultFirstAidHeight, 0, 0, }),
|
||||
SET_FIELD(MaxMass, 255),
|
||||
SET_FIELD(LiftData, { OpenRCT2::Audio::SoundId::Null, 5, 5 }),
|
||||
SET_FIELD(RatingsMultipliers, { 0, 0, 0 }),
|
||||
SET_FIELD(UpkeepCosts, { 45, 1, 0, 0, 0, 0 }),
|
||||
SET_FIELD(BuildCosts, { 250.00_GBP, 0.00_GBP, 1, }),
|
||||
SET_FIELD(DefaultPrices, { 0, 0 }),
|
||||
SET_FIELD(DefaultMusic, MUSIC_OBJECT_GENTLE),
|
||||
SET_FIELD(PhotoItem, ShopItem::Photo),
|
||||
SET_FIELD(BonusValue, 5),
|
||||
SET_FIELD(ColourPresets, DEFAULT_FLAT_RIDE_COLOUR_PRESET),
|
||||
SET_FIELD(ColourPreview, { 0, 0 }),
|
||||
SET_FIELD(ColourKey, RideColourKey::FirstAid),
|
||||
SET_FIELD(Name, "first_aid"),
|
||||
SET_FIELD(RatingsData,
|
||||
RIDE_TYPE_FLAG_IN_RIDE | RIDE_TYPE_FLAG_LIST_VEHICLES_SEPARATELY,
|
||||
.RideModes = EnumsToFlags(RideMode::ShopStall),
|
||||
.DefaultMode = RideMode::ShopStall,
|
||||
.OperatingSettings = { 8, 8, 0, 0, 0, 0 },
|
||||
.Naming = { STR_RIDE_NAME_FIRST_AID, STR_RIDE_DESCRIPTION_FIRST_AID },
|
||||
.NameConvention = { RideComponentType::Car, RideComponentType::Building, RideComponentType::Station },
|
||||
.EnumName = nameof(RIDE_TYPE_FIRST_AID),
|
||||
.AvailableBreakdowns = 0,
|
||||
.Heights = { 12, DefaultFirstAidHeight, 0, 0, },
|
||||
.MaxMass = 255,
|
||||
.LiftData = { OpenRCT2::Audio::SoundId::Null, 5, 5 },
|
||||
.RatingsMultipliers = { 0, 0, 0 },
|
||||
.UpkeepCosts = { 45, 1, 0, 0, 0, 0 },
|
||||
.BuildCosts = { 250.00_GBP, 0.00_GBP, 1, },
|
||||
.DefaultPrices = { 0, 0 },
|
||||
.DefaultMusic = MUSIC_OBJECT_GENTLE,
|
||||
.PhotoItem = ShopItem::Photo,
|
||||
.BonusValue = 5,
|
||||
.ColourPresets = DEFAULT_FLAT_RIDE_COLOUR_PRESET,
|
||||
.ColourPreview = { 0, 0 },
|
||||
.ColourKey = RideColourKey::FirstAid,
|
||||
.Name = "first_aid",
|
||||
.RatingsData =
|
||||
{
|
||||
RatingsCalculationType::Stall,
|
||||
{ 1, 1, 1 },
|
||||
@@ -56,12 +56,12 @@ constexpr RideTypeDescriptor FirstAidRTD =
|
||||
-1,
|
||||
false,
|
||||
{ { RatingsModifierType::NoModifier, 0, 0, 0, 0 } }
|
||||
}),
|
||||
SET_FIELD(UpdateRotating, UpdateRotatingDefault),
|
||||
SET_FIELD(LightFXAddLightsMagicVehicle, nullptr),
|
||||
SET_FIELD(StartRideMusic, OpenRCT2::RideAudio::DefaultStartRideMusicChannel),
|
||||
SET_FIELD(DesignCreateMode, TrackDesignCreateMode::Default),
|
||||
SET_FIELD(MusicUpdateFunction, DefaultMusicUpdate),
|
||||
SET_FIELD(Classification, RideClassification::KioskOrFacility),
|
||||
},
|
||||
.UpdateRotating = UpdateRotatingDefault,
|
||||
.LightFXAddLightsMagicVehicle = nullptr,
|
||||
.StartRideMusic = OpenRCT2::RideAudio::DefaultStartRideMusicChannel,
|
||||
.DesignCreateMode = TrackDesignCreateMode::Default,
|
||||
.MusicUpdateFunction = DefaultMusicUpdate,
|
||||
.Classification = RideClassification::KioskOrFacility,
|
||||
};
|
||||
// clang-format on
|
||||
|
||||
@@ -16,39 +16,39 @@
|
||||
// clang-format off
|
||||
constexpr RideTypeDescriptor FoodStallRTD =
|
||||
{
|
||||
SET_FIELD(AlternateType, RIDE_TYPE_NULL),
|
||||
SET_FIELD(Category, RIDE_CATEGORY_SHOP),
|
||||
SET_FIELD(EnabledTrackPieces, {}),
|
||||
SET_FIELD(ExtraTrackPieces, {}),
|
||||
SET_FIELD(CoveredTrackPieces, {}),
|
||||
SET_FIELD(StartTrackPiece, TrackElemType::FlatTrack1x1A),
|
||||
SET_FIELD(TrackPaintFunctions, TrackDrawerDescriptor(GetTrackPaintFunctionShop)),
|
||||
SET_FIELD(Flags, RIDE_TYPE_FLAG_HAS_SINGLE_PIECE_STATION | RIDE_TYPE_FLAG_CANNOT_HAVE_GAPS | RIDE_TYPE_FLAG_NO_TEST_MODE |
|
||||
.AlternateType = RIDE_TYPE_NULL,
|
||||
.Category = RIDE_CATEGORY_SHOP,
|
||||
.EnabledTrackPieces = {},
|
||||
.ExtraTrackPieces = {},
|
||||
.CoveredTrackPieces = {},
|
||||
.StartTrackPiece = TrackElemType::FlatTrack1x1A,
|
||||
.TrackPaintFunctions = TrackDrawerDescriptor(GetTrackPaintFunctionShop),
|
||||
.Flags = RIDE_TYPE_FLAG_HAS_SINGLE_PIECE_STATION | RIDE_TYPE_FLAG_CANNOT_HAVE_GAPS | RIDE_TYPE_FLAG_NO_TEST_MODE |
|
||||
RIDE_TYPE_FLAG_NO_VEHICLES | RIDE_TYPE_FLAG_IS_SHOP_OR_FACILITY | RIDE_TYPE_FLAG_TRACK_NO_WALLS |
|
||||
RIDE_TYPE_FLAG_FLAT_RIDE | RIDE_TYPE_FLAG_SELLS_FOOD | RIDE_TYPE_FLAG_LIST_VEHICLES_SEPARATELY |
|
||||
RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_MAIN),
|
||||
SET_FIELD(RideModes, EnumsToFlags(RideMode::ShopStall)),
|
||||
SET_FIELD(DefaultMode, RideMode::ShopStall),
|
||||
SET_FIELD(OperatingSettings, { 0, 0, 0, 0, 0, 0 }),
|
||||
SET_FIELD(Naming, { STR_RIDE_NAME_FOOD_STALL, STR_RIDE_DESCRIPTION_FOOD_STALL }),
|
||||
SET_FIELD(NameConvention, { RideComponentType::Car, RideComponentType::Building, RideComponentType::Station }),
|
||||
SET_FIELD(EnumName, nameof(RIDE_TYPE_FOOD_STALL)),
|
||||
SET_FIELD(AvailableBreakdowns, 0),
|
||||
SET_FIELD(Heights, { 12, DefaultFoodStallHeight, 0, 0, }),
|
||||
SET_FIELD(MaxMass, 255),
|
||||
SET_FIELD(LiftData, { OpenRCT2::Audio::SoundId::Null, 5, 5 }),
|
||||
SET_FIELD(RatingsMultipliers, { 0, 0, 0 }),
|
||||
SET_FIELD(UpkeepCosts, { 50, 1, 0, 0, 0, 0 }),
|
||||
SET_FIELD(BuildCosts, { 300.00_GBP, 0.00_GBP, 1, }),
|
||||
SET_FIELD(DefaultPrices, { 0, 0 }),
|
||||
SET_FIELD(DefaultMusic, MUSIC_OBJECT_GENTLE),
|
||||
SET_FIELD(PhotoItem, ShopItem::Photo),
|
||||
SET_FIELD(BonusValue, 15),
|
||||
SET_FIELD(ColourPresets, DEFAULT_STALL_COLOUR_PRESET),
|
||||
SET_FIELD(ColourPreview, { 0, 0 }),
|
||||
SET_FIELD(ColourKey, RideColourKey::Food),
|
||||
SET_FIELD(Name, "food_stall"),
|
||||
SET_FIELD(RatingsData,
|
||||
RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_MAIN,
|
||||
.RideModes = EnumsToFlags(RideMode::ShopStall),
|
||||
.DefaultMode = RideMode::ShopStall,
|
||||
.OperatingSettings = { 0, 0, 0, 0, 0, 0 },
|
||||
.Naming = { STR_RIDE_NAME_FOOD_STALL, STR_RIDE_DESCRIPTION_FOOD_STALL },
|
||||
.NameConvention = { RideComponentType::Car, RideComponentType::Building, RideComponentType::Station },
|
||||
.EnumName = nameof(RIDE_TYPE_FOOD_STALL),
|
||||
.AvailableBreakdowns = 0,
|
||||
.Heights = { 12, DefaultFoodStallHeight, 0, 0, },
|
||||
.MaxMass = 255,
|
||||
.LiftData = { OpenRCT2::Audio::SoundId::Null, 5, 5 },
|
||||
.RatingsMultipliers = { 0, 0, 0 },
|
||||
.UpkeepCosts = { 50, 1, 0, 0, 0, 0 },
|
||||
.BuildCosts = { 300.00_GBP, 0.00_GBP, 1, },
|
||||
.DefaultPrices = { 0, 0 },
|
||||
.DefaultMusic = MUSIC_OBJECT_GENTLE,
|
||||
.PhotoItem = ShopItem::Photo,
|
||||
.BonusValue = 15,
|
||||
.ColourPresets = DEFAULT_STALL_COLOUR_PRESET,
|
||||
.ColourPreview = { 0, 0 },
|
||||
.ColourKey = RideColourKey::Food,
|
||||
.Name = "food_stall",
|
||||
.RatingsData =
|
||||
{
|
||||
RatingsCalculationType::Stall,
|
||||
{ 1, 1, 1 },
|
||||
@@ -56,12 +56,12 @@ constexpr RideTypeDescriptor FoodStallRTD =
|
||||
-1,
|
||||
false,
|
||||
{ { RatingsModifierType::NoModifier, 0, 0, 0, 0 } }
|
||||
}),
|
||||
SET_FIELD(UpdateRotating, UpdateRotatingDefault),
|
||||
SET_FIELD(LightFXAddLightsMagicVehicle, nullptr),
|
||||
SET_FIELD(StartRideMusic, OpenRCT2::RideAudio::DefaultStartRideMusicChannel),
|
||||
SET_FIELD(DesignCreateMode, TrackDesignCreateMode::Default),
|
||||
SET_FIELD(MusicUpdateFunction, DefaultMusicUpdate),
|
||||
SET_FIELD(Classification, RideClassification::ShopOrStall),
|
||||
},
|
||||
.UpdateRotating = UpdateRotatingDefault,
|
||||
.LightFXAddLightsMagicVehicle = nullptr,
|
||||
.StartRideMusic = OpenRCT2::RideAudio::DefaultStartRideMusicChannel,
|
||||
.DesignCreateMode = TrackDesignCreateMode::Default,
|
||||
.MusicUpdateFunction = DefaultMusicUpdate,
|
||||
.Classification = RideClassification::ShopOrStall,
|
||||
};
|
||||
// clang-format on
|
||||
|
||||
@@ -16,39 +16,39 @@
|
||||
// clang-format off
|
||||
constexpr RideTypeDescriptor InformationKioskRTD =
|
||||
{
|
||||
SET_FIELD(AlternateType, RIDE_TYPE_NULL),
|
||||
SET_FIELD(Category, RIDE_CATEGORY_SHOP),
|
||||
SET_FIELD(EnabledTrackPieces, {}),
|
||||
SET_FIELD(ExtraTrackPieces, {}),
|
||||
SET_FIELD(CoveredTrackPieces, {}),
|
||||
SET_FIELD(StartTrackPiece, TrackElemType::FlatTrack1x1B),
|
||||
SET_FIELD(TrackPaintFunctions, TrackDrawerDescriptor(GetTrackPaintFunctionShop)),
|
||||
SET_FIELD(Flags, RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_MAIN | RIDE_TYPE_FLAG_HAS_SINGLE_PIECE_STATION |
|
||||
.AlternateType = RIDE_TYPE_NULL,
|
||||
.Category = RIDE_CATEGORY_SHOP,
|
||||
.EnabledTrackPieces = {},
|
||||
.ExtraTrackPieces = {},
|
||||
.CoveredTrackPieces = {},
|
||||
.StartTrackPiece = TrackElemType::FlatTrack1x1B,
|
||||
.TrackPaintFunctions = TrackDrawerDescriptor(GetTrackPaintFunctionShop),
|
||||
.Flags = RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_MAIN | RIDE_TYPE_FLAG_HAS_SINGLE_PIECE_STATION |
|
||||
RIDE_TYPE_FLAG_CANNOT_HAVE_GAPS | RIDE_TYPE_FLAG_NO_TEST_MODE | RIDE_TYPE_FLAG_NO_VEHICLES |
|
||||
RIDE_TYPE_FLAG_IS_SHOP_OR_FACILITY | RIDE_TYPE_FLAG_TRACK_NO_WALLS | RIDE_TYPE_FLAG_FLAT_RIDE |
|
||||
RIDE_TYPE_FLAG_LIST_VEHICLES_SEPARATELY),
|
||||
SET_FIELD(RideModes, EnumsToFlags(RideMode::ShopStall)),
|
||||
SET_FIELD(DefaultMode, RideMode::ShopStall),
|
||||
SET_FIELD(OperatingSettings, { 0, 0, 0, 0, 0, 0 }),
|
||||
SET_FIELD(Naming, { STR_RIDE_NAME_INFORMATION_KIOSK, STR_RIDE_DESCRIPTION_INFORMATION_KIOSK }),
|
||||
SET_FIELD(NameConvention, { RideComponentType::Car, RideComponentType::Building, RideComponentType::Station }),
|
||||
SET_FIELD(EnumName, nameof(RIDE_TYPE_INFORMATION_KIOSK)),
|
||||
SET_FIELD(AvailableBreakdowns, 0),
|
||||
SET_FIELD(Heights, { 12, DefaultInformationKioskHeight, 0, 0, }),
|
||||
SET_FIELD(MaxMass, 255),
|
||||
SET_FIELD(LiftData, { OpenRCT2::Audio::SoundId::Null, 5, 5 }),
|
||||
SET_FIELD(RatingsMultipliers, { 0, 0, 0 }),
|
||||
SET_FIELD(UpkeepCosts, { 50, 1, 0, 0, 0, 0 }),
|
||||
SET_FIELD(BuildCosts, { 250.00_GBP, 0.00_GBP, 1, }),
|
||||
SET_FIELD(DefaultPrices, { 0, 0 }),
|
||||
SET_FIELD(DefaultMusic, MUSIC_OBJECT_GENTLE),
|
||||
SET_FIELD(PhotoItem, ShopItem::Photo),
|
||||
SET_FIELD(BonusValue, 15),
|
||||
SET_FIELD(ColourPresets, DEFAULT_STALL_COLOUR_PRESET),
|
||||
SET_FIELD(ColourPreview, { 0, 0 }),
|
||||
SET_FIELD(ColourKey, RideColourKey::InfoKiosk),
|
||||
SET_FIELD(Name, "information_kiosk"),
|
||||
SET_FIELD(RatingsData,
|
||||
RIDE_TYPE_FLAG_LIST_VEHICLES_SEPARATELY,
|
||||
.RideModes = EnumsToFlags(RideMode::ShopStall),
|
||||
.DefaultMode = RideMode::ShopStall,
|
||||
.OperatingSettings = { 0, 0, 0, 0, 0, 0 },
|
||||
.Naming = { STR_RIDE_NAME_INFORMATION_KIOSK, STR_RIDE_DESCRIPTION_INFORMATION_KIOSK },
|
||||
.NameConvention = { RideComponentType::Car, RideComponentType::Building, RideComponentType::Station },
|
||||
.EnumName = nameof(RIDE_TYPE_INFORMATION_KIOSK),
|
||||
.AvailableBreakdowns = 0,
|
||||
.Heights = { 12, DefaultInformationKioskHeight, 0, 0, },
|
||||
.MaxMass = 255,
|
||||
.LiftData = { OpenRCT2::Audio::SoundId::Null, 5, 5 },
|
||||
.RatingsMultipliers = { 0, 0, 0 },
|
||||
.UpkeepCosts = { 50, 1, 0, 0, 0, 0 },
|
||||
.BuildCosts = { 250.00_GBP, 0.00_GBP, 1, },
|
||||
.DefaultPrices = { 0, 0 },
|
||||
.DefaultMusic = MUSIC_OBJECT_GENTLE,
|
||||
.PhotoItem = ShopItem::Photo,
|
||||
.BonusValue = 15,
|
||||
.ColourPresets = DEFAULT_STALL_COLOUR_PRESET,
|
||||
.ColourPreview = { 0, 0 },
|
||||
.ColourKey = RideColourKey::InfoKiosk,
|
||||
.Name = "information_kiosk",
|
||||
.RatingsData =
|
||||
{
|
||||
RatingsCalculationType::Stall,
|
||||
{ 1, 1, 1 },
|
||||
@@ -56,12 +56,12 @@ constexpr RideTypeDescriptor InformationKioskRTD =
|
||||
-1,
|
||||
false,
|
||||
{ { RatingsModifierType::NoModifier, 0, 0, 0, 0 } }
|
||||
}),
|
||||
SET_FIELD(UpdateRotating, UpdateRotatingDefault),
|
||||
SET_FIELD(LightFXAddLightsMagicVehicle, nullptr),
|
||||
SET_FIELD(StartRideMusic, OpenRCT2::RideAudio::DefaultStartRideMusicChannel),
|
||||
SET_FIELD(DesignCreateMode, TrackDesignCreateMode::Default),
|
||||
SET_FIELD(MusicUpdateFunction, DefaultMusicUpdate),
|
||||
SET_FIELD(Classification, RideClassification::KioskOrFacility),
|
||||
},
|
||||
.UpdateRotating = UpdateRotatingDefault,
|
||||
.LightFXAddLightsMagicVehicle = nullptr,
|
||||
.StartRideMusic = OpenRCT2::RideAudio::DefaultStartRideMusicChannel,
|
||||
.DesignCreateMode = TrackDesignCreateMode::Default,
|
||||
.MusicUpdateFunction = DefaultMusicUpdate,
|
||||
.Classification = RideClassification::KioskOrFacility,
|
||||
};
|
||||
// clang-format on
|
||||
|
||||
@@ -16,39 +16,39 @@
|
||||
// clang-format off
|
||||
constexpr RideTypeDescriptor ShopRTD =
|
||||
{
|
||||
SET_FIELD(AlternateType, RIDE_TYPE_NULL),
|
||||
SET_FIELD(Category, RIDE_CATEGORY_SHOP),
|
||||
SET_FIELD(EnabledTrackPieces, {}),
|
||||
SET_FIELD(ExtraTrackPieces, {}),
|
||||
SET_FIELD(CoveredTrackPieces, {}),
|
||||
SET_FIELD(StartTrackPiece, TrackElemType::FlatTrack1x1A),
|
||||
SET_FIELD(TrackPaintFunctions, TrackDrawerDescriptor(GetTrackPaintFunctionShop)),
|
||||
SET_FIELD(Flags, RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_MAIN | RIDE_TYPE_FLAG_HAS_SINGLE_PIECE_STATION |
|
||||
.AlternateType = RIDE_TYPE_NULL,
|
||||
.Category = RIDE_CATEGORY_SHOP,
|
||||
.EnabledTrackPieces = {},
|
||||
.ExtraTrackPieces = {},
|
||||
.CoveredTrackPieces = {},
|
||||
.StartTrackPiece = TrackElemType::FlatTrack1x1A,
|
||||
.TrackPaintFunctions = TrackDrawerDescriptor(GetTrackPaintFunctionShop),
|
||||
.Flags = RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_MAIN | RIDE_TYPE_FLAG_HAS_SINGLE_PIECE_STATION |
|
||||
RIDE_TYPE_FLAG_CANNOT_HAVE_GAPS | RIDE_TYPE_FLAG_NO_TEST_MODE | RIDE_TYPE_FLAG_NO_VEHICLES |
|
||||
RIDE_TYPE_FLAG_IS_SHOP_OR_FACILITY | RIDE_TYPE_FLAG_TRACK_NO_WALLS | RIDE_TYPE_FLAG_FLAT_RIDE |
|
||||
RIDE_TYPE_FLAG_LIST_VEHICLES_SEPARATELY),
|
||||
SET_FIELD(RideModes, EnumsToFlags(RideMode::ShopStall)),
|
||||
SET_FIELD(DefaultMode, RideMode::ShopStall),
|
||||
SET_FIELD(OperatingSettings, { 0, 0, 0, 0, 0, 0 }),
|
||||
SET_FIELD(Naming, { STR_RIDE_NAME_SHOP, STR_RIDE_DESCRIPTION_SHOP }),
|
||||
SET_FIELD(NameConvention, { RideComponentType::Car, RideComponentType::Building, RideComponentType::Station }),
|
||||
SET_FIELD(EnumName, nameof(RIDE_TYPE_SHOP)),
|
||||
SET_FIELD(AvailableBreakdowns, 0),
|
||||
SET_FIELD(Heights, { 12, DefaultShopHeight, 0, 0, }),
|
||||
SET_FIELD(MaxMass, 255),
|
||||
SET_FIELD(LiftData, { OpenRCT2::Audio::SoundId::Null, 5, 5 }),
|
||||
SET_FIELD(RatingsMultipliers, { 0, 0, 0 }),
|
||||
SET_FIELD(UpkeepCosts, { 50, 1, 0, 0, 0, 0 }),
|
||||
SET_FIELD(BuildCosts, { 200.00_GBP, 0.00_GBP, 1, }),
|
||||
SET_FIELD(DefaultPrices, { 0, 0 }),
|
||||
SET_FIELD(DefaultMusic, MUSIC_OBJECT_GENTLE),
|
||||
SET_FIELD(PhotoItem, ShopItem::Photo),
|
||||
SET_FIELD(BonusValue, 15),
|
||||
SET_FIELD(ColourPresets, DEFAULT_STALL_COLOUR_PRESET),
|
||||
SET_FIELD(ColourPreview, { 0, 0 }),
|
||||
SET_FIELD(ColourKey, RideColourKey::Shop),
|
||||
SET_FIELD(Name, "shop"),
|
||||
SET_FIELD(RatingsData,
|
||||
RIDE_TYPE_FLAG_LIST_VEHICLES_SEPARATELY,
|
||||
.RideModes = EnumsToFlags(RideMode::ShopStall),
|
||||
.DefaultMode = RideMode::ShopStall,
|
||||
.OperatingSettings = { 0, 0, 0, 0, 0, 0 },
|
||||
.Naming = { STR_RIDE_NAME_SHOP, STR_RIDE_DESCRIPTION_SHOP },
|
||||
.NameConvention = { RideComponentType::Car, RideComponentType::Building, RideComponentType::Station },
|
||||
.EnumName = nameof(RIDE_TYPE_SHOP),
|
||||
.AvailableBreakdowns = 0,
|
||||
.Heights = { 12, DefaultShopHeight, 0, 0, },
|
||||
.MaxMass = 255,
|
||||
.LiftData = { OpenRCT2::Audio::SoundId::Null, 5, 5 },
|
||||
.RatingsMultipliers = { 0, 0, 0 },
|
||||
.UpkeepCosts = { 50, 1, 0, 0, 0, 0 },
|
||||
.BuildCosts = { 200.00_GBP, 0.00_GBP, 1, },
|
||||
.DefaultPrices = { 0, 0 },
|
||||
.DefaultMusic = MUSIC_OBJECT_GENTLE,
|
||||
.PhotoItem = ShopItem::Photo,
|
||||
.BonusValue = 15,
|
||||
.ColourPresets = DEFAULT_STALL_COLOUR_PRESET,
|
||||
.ColourPreview = { 0, 0 },
|
||||
.ColourKey = RideColourKey::Shop,
|
||||
.Name = "shop",
|
||||
.RatingsData =
|
||||
{
|
||||
RatingsCalculationType::Stall,
|
||||
{ 1, 1, 1 },
|
||||
@@ -56,12 +56,12 @@ constexpr RideTypeDescriptor ShopRTD =
|
||||
-1,
|
||||
false,
|
||||
{ { RatingsModifierType::NoModifier, 0, 0, 0, 0 } }
|
||||
}),
|
||||
SET_FIELD(UpdateRotating, UpdateRotatingDefault),
|
||||
SET_FIELD(LightFXAddLightsMagicVehicle, nullptr),
|
||||
SET_FIELD(StartRideMusic, OpenRCT2::RideAudio::DefaultStartRideMusicChannel),
|
||||
SET_FIELD(DesignCreateMode, TrackDesignCreateMode::Default),
|
||||
SET_FIELD(MusicUpdateFunction, DefaultMusicUpdate),
|
||||
SET_FIELD(Classification, RideClassification::ShopOrStall),
|
||||
},
|
||||
.UpdateRotating = UpdateRotatingDefault,
|
||||
.LightFXAddLightsMagicVehicle = nullptr,
|
||||
.StartRideMusic = OpenRCT2::RideAudio::DefaultStartRideMusicChannel,
|
||||
.DesignCreateMode = TrackDesignCreateMode::Default,
|
||||
.MusicUpdateFunction = DefaultMusicUpdate,
|
||||
.Classification = RideClassification::ShopOrStall,
|
||||
};
|
||||
// clang-format on
|
||||
|
||||
@@ -16,39 +16,39 @@
|
||||
// clang-format off
|
||||
constexpr RideTypeDescriptor ToiletsRTD =
|
||||
{
|
||||
SET_FIELD(AlternateType, RIDE_TYPE_NULL),
|
||||
SET_FIELD(Category, RIDE_CATEGORY_SHOP),
|
||||
SET_FIELD(EnabledTrackPieces, {}),
|
||||
SET_FIELD(ExtraTrackPieces, {}),
|
||||
SET_FIELD(CoveredTrackPieces, {}),
|
||||
SET_FIELD(StartTrackPiece, TrackElemType::FlatTrack1x1A),
|
||||
SET_FIELD(TrackPaintFunctions, TrackDrawerDescriptor(GetTrackPaintFunctionFacility)),
|
||||
SET_FIELD(Flags, RIDE_TYPE_FLAG_HAS_SINGLE_PIECE_STATION | RIDE_TYPE_FLAG_CANNOT_HAVE_GAPS | RIDE_TYPE_FLAG_NO_TEST_MODE |
|
||||
.AlternateType = RIDE_TYPE_NULL,
|
||||
.Category = RIDE_CATEGORY_SHOP,
|
||||
.EnabledTrackPieces = {},
|
||||
.ExtraTrackPieces = {},
|
||||
.CoveredTrackPieces = {},
|
||||
.StartTrackPiece = TrackElemType::FlatTrack1x1A,
|
||||
.TrackPaintFunctions = TrackDrawerDescriptor(GetTrackPaintFunctionFacility),
|
||||
.Flags = RIDE_TYPE_FLAG_HAS_SINGLE_PIECE_STATION | RIDE_TYPE_FLAG_CANNOT_HAVE_GAPS | RIDE_TYPE_FLAG_NO_TEST_MODE |
|
||||
RIDE_TYPE_FLAG_NO_VEHICLES | RIDE_TYPE_FLAG_IS_SHOP_OR_FACILITY | RIDE_TYPE_FLAG_TRACK_NO_WALLS |
|
||||
RIDE_TYPE_FLAG_FLAT_RIDE | RIDE_TYPE_FLAG_PEEP_SHOULD_GO_INSIDE_FACILITY | RIDE_TYPE_FLAG_IN_RIDE |
|
||||
RIDE_TYPE_FLAG_IS_TOILET | RIDE_TYPE_FLAG_LIST_VEHICLES_SEPARATELY),
|
||||
SET_FIELD(RideModes, EnumsToFlags(RideMode::ShopStall)),
|
||||
SET_FIELD(DefaultMode, RideMode::ShopStall),
|
||||
SET_FIELD(OperatingSettings, { 4, 4, 0, 0, 0, 0 }),
|
||||
SET_FIELD(Naming, { STR_RIDE_NAME_TOILETS, STR_RIDE_DESCRIPTION_TOILETS }),
|
||||
SET_FIELD(NameConvention, { RideComponentType::Car, RideComponentType::Building, RideComponentType::Station }),
|
||||
SET_FIELD(EnumName, nameof(RIDE_TYPE_TOILETS)),
|
||||
SET_FIELD(AvailableBreakdowns, 0),
|
||||
SET_FIELD(Heights, { 12, DefaultToiletHeight, 0, 0, }),
|
||||
SET_FIELD(MaxMass, 255),
|
||||
SET_FIELD(LiftData, { OpenRCT2::Audio::SoundId::Null, 5, 5 }),
|
||||
SET_FIELD(RatingsMultipliers, { 0, 0, 0 }),
|
||||
SET_FIELD(UpkeepCosts, { 50, 1, 0, 0, 0, 0 }),
|
||||
SET_FIELD(BuildCosts, { 225.00_GBP, 0.00_GBP, 1, }),
|
||||
SET_FIELD(DefaultPrices, { 0, 0 }),
|
||||
SET_FIELD(DefaultMusic, MUSIC_OBJECT_GENTLE),
|
||||
SET_FIELD(PhotoItem, ShopItem::Photo),
|
||||
SET_FIELD(BonusValue, 5),
|
||||
SET_FIELD(ColourPresets, DEFAULT_FLAT_RIDE_COLOUR_PRESET),
|
||||
SET_FIELD(ColourPreview, { 0, 0 }),
|
||||
SET_FIELD(ColourKey, RideColourKey::Toilets),
|
||||
SET_FIELD(Name, "toilets"),
|
||||
SET_FIELD(RatingsData,
|
||||
RIDE_TYPE_FLAG_IS_TOILET | RIDE_TYPE_FLAG_LIST_VEHICLES_SEPARATELY,
|
||||
.RideModes = EnumsToFlags(RideMode::ShopStall),
|
||||
.DefaultMode = RideMode::ShopStall,
|
||||
.OperatingSettings = { 4, 4, 0, 0, 0, 0 },
|
||||
.Naming = { STR_RIDE_NAME_TOILETS, STR_RIDE_DESCRIPTION_TOILETS },
|
||||
.NameConvention = { RideComponentType::Car, RideComponentType::Building, RideComponentType::Station },
|
||||
.EnumName = nameof(RIDE_TYPE_TOILETS),
|
||||
.AvailableBreakdowns = 0,
|
||||
.Heights = { 12, DefaultToiletHeight, 0, 0, },
|
||||
.MaxMass = 255,
|
||||
.LiftData = { OpenRCT2::Audio::SoundId::Null, 5, 5 },
|
||||
.RatingsMultipliers = { 0, 0, 0 },
|
||||
.UpkeepCosts = { 50, 1, 0, 0, 0, 0 },
|
||||
.BuildCosts = { 225.00_GBP, 0.00_GBP, 1, },
|
||||
.DefaultPrices = { 0, 0 },
|
||||
.DefaultMusic = MUSIC_OBJECT_GENTLE,
|
||||
.PhotoItem = ShopItem::Photo,
|
||||
.BonusValue = 5,
|
||||
.ColourPresets = DEFAULT_FLAT_RIDE_COLOUR_PRESET,
|
||||
.ColourPreview = { 0, 0 },
|
||||
.ColourKey = RideColourKey::Toilets,
|
||||
.Name = "toilets",
|
||||
.RatingsData =
|
||||
{
|
||||
RatingsCalculationType::Stall,
|
||||
{ 1, 1, 1 },
|
||||
@@ -56,12 +56,12 @@ constexpr RideTypeDescriptor ToiletsRTD =
|
||||
-1,
|
||||
false,
|
||||
{ { RatingsModifierType::NoModifier, 0, 0, 0, 0 } }
|
||||
}),
|
||||
SET_FIELD(UpdateRotating, UpdateRotatingDefault),
|
||||
SET_FIELD(LightFXAddLightsMagicVehicle, nullptr),
|
||||
SET_FIELD(StartRideMusic, OpenRCT2::RideAudio::DefaultStartRideMusicChannel),
|
||||
SET_FIELD(DesignCreateMode, TrackDesignCreateMode::Default),
|
||||
SET_FIELD(MusicUpdateFunction, DefaultMusicUpdate),
|
||||
SET_FIELD(Classification, RideClassification::KioskOrFacility),
|
||||
},
|
||||
.UpdateRotating = UpdateRotatingDefault,
|
||||
.LightFXAddLightsMagicVehicle = nullptr,
|
||||
.StartRideMusic = OpenRCT2::RideAudio::DefaultStartRideMusicChannel,
|
||||
.DesignCreateMode = TrackDesignCreateMode::Default,
|
||||
.MusicUpdateFunction = DefaultMusicUpdate,
|
||||
.Classification = RideClassification::KioskOrFacility,
|
||||
};
|
||||
// clang-format on
|
||||
|
||||
@@ -17,40 +17,40 @@
|
||||
// C++ does not allow names to start with a number, hence the absence of the '3D' prefix.
|
||||
constexpr RideTypeDescriptor CinemaRTD =
|
||||
{
|
||||
SET_FIELD(AlternateType, RIDE_TYPE_NULL),
|
||||
SET_FIELD(Category, RIDE_CATEGORY_THRILL),
|
||||
SET_FIELD(EnabledTrackPieces, {}),
|
||||
SET_FIELD(ExtraTrackPieces, {}),
|
||||
SET_FIELD(CoveredTrackPieces, {}),
|
||||
SET_FIELD(StartTrackPiece, TrackElemType::FlatTrack3x3),
|
||||
SET_FIELD(TrackPaintFunctions, TrackDrawerDescriptor(GetTrackPaintFunction3dCinema)),
|
||||
SET_FIELD(Flags, RIDE_TYPE_FLAG_HAS_SINGLE_PIECE_STATION | RIDE_TYPE_FLAG_CANNOT_HAVE_GAPS |
|
||||
.AlternateType = RIDE_TYPE_NULL,
|
||||
.Category = RIDE_CATEGORY_THRILL,
|
||||
.EnabledTrackPieces = {},
|
||||
.ExtraTrackPieces = {},
|
||||
.CoveredTrackPieces = {},
|
||||
.StartTrackPiece = TrackElemType::FlatTrack3x3,
|
||||
.TrackPaintFunctions = TrackDrawerDescriptor(GetTrackPaintFunction3dCinema),
|
||||
.Flags = RIDE_TYPE_FLAG_HAS_SINGLE_PIECE_STATION | RIDE_TYPE_FLAG_CANNOT_HAVE_GAPS |
|
||||
RIDE_TYPE_FLAG_HAS_LOAD_OPTIONS | RIDE_TYPE_FLAG_VEHICLE_IS_INTEGRAL | RIDE_TYPE_FLAG_TRACK_NO_WALLS |
|
||||
RIDE_TYPE_FLAG_FLAT_RIDE | RIDE_TYPE_FLAG_IN_RIDE | RIDE_TYPE_FLAG_HAS_VEHICLE_COLOURS |
|
||||
RIDE_TYPE_FLAG_ALLOW_MUSIC | RIDE_TYPE_FLAG_HAS_ENTRANCE_EXIT | RIDE_TYPE_FLAG_SINGLE_SESSION |
|
||||
RIDE_TYPE_FLAG_LIST_VEHICLES_SEPARATELY),
|
||||
SET_FIELD(RideModes, EnumsToFlags(RideMode::MouseTails3DFilm, RideMode::StormChasers3DFilm, RideMode::SpaceRaiders3DFilm)),
|
||||
SET_FIELD(DefaultMode, RideMode::MouseTails3DFilm),
|
||||
SET_FIELD(OperatingSettings, { 0, 0, 0, 0, 0, 0 }),
|
||||
SET_FIELD(Naming, { STR_RIDE_NAME_3D_CINEMA, STR_RIDE_DESCRIPTION_3D_CINEMA }),
|
||||
SET_FIELD(NameConvention, { RideComponentType::Building, RideComponentType::Structure, RideComponentType::Station }),
|
||||
SET_FIELD(EnumName, nameof(RIDE_TYPE_3D_CINEMA)),
|
||||
SET_FIELD(AvailableBreakdowns, (1 << BREAKDOWN_SAFETY_CUT_OUT)),
|
||||
SET_FIELD(Heights, { 12, 128, 3, 2, }),
|
||||
SET_FIELD(MaxMass, 255),
|
||||
SET_FIELD(LiftData, { OpenRCT2::Audio::SoundId::Null, 5, 5 }),
|
||||
SET_FIELD(RatingsMultipliers, { 20, 10, 0 }),
|
||||
SET_FIELD(UpkeepCosts, { 50, 1, 0, 0, 0, 0 }),
|
||||
SET_FIELD(BuildCosts, { 70.00_GBP, 1.00_GBP, 1, }),
|
||||
SET_FIELD(DefaultPrices, { 20, 0 }),
|
||||
SET_FIELD(DefaultMusic, MUSIC_OBJECT_ROCK_1),
|
||||
SET_FIELD(PhotoItem, ShopItem::Photo),
|
||||
SET_FIELD(BonusValue, 45),
|
||||
SET_FIELD(ColourPresets, DEFAULT_FLAT_RIDE_COLOUR_PRESET),
|
||||
SET_FIELD(ColourPreview, { 0, 0 }),
|
||||
SET_FIELD(ColourKey, RideColourKey::Ride),
|
||||
SET_FIELD(Name, "3d_cinema"),
|
||||
SET_FIELD(RatingsData,
|
||||
RIDE_TYPE_FLAG_LIST_VEHICLES_SEPARATELY,
|
||||
.RideModes = EnumsToFlags(RideMode::MouseTails3DFilm, RideMode::StormChasers3DFilm, RideMode::SpaceRaiders3DFilm),
|
||||
.DefaultMode = RideMode::MouseTails3DFilm,
|
||||
.OperatingSettings = { 0, 0, 0, 0, 0, 0 },
|
||||
.Naming = { STR_RIDE_NAME_3D_CINEMA, STR_RIDE_DESCRIPTION_3D_CINEMA },
|
||||
.NameConvention = { RideComponentType::Building, RideComponentType::Structure, RideComponentType::Station },
|
||||
.EnumName = nameof(RIDE_TYPE_3D_CINEMA),
|
||||
.AvailableBreakdowns = (1 << BREAKDOWN_SAFETY_CUT_OUT),
|
||||
.Heights = { 12, 128, 3, 2, },
|
||||
.MaxMass = 255,
|
||||
.LiftData = { OpenRCT2::Audio::SoundId::Null, 5, 5 },
|
||||
.RatingsMultipliers = { 20, 10, 0 },
|
||||
.UpkeepCosts = { 50, 1, 0, 0, 0, 0 },
|
||||
.BuildCosts = { 70.00_GBP, 1.00_GBP, 1, },
|
||||
.DefaultPrices = { 20, 0 },
|
||||
.DefaultMusic = MUSIC_OBJECT_ROCK_1,
|
||||
.PhotoItem = ShopItem::Photo,
|
||||
.BonusValue = 45,
|
||||
.ColourPresets = DEFAULT_FLAT_RIDE_COLOUR_PRESET,
|
||||
.ColourPreview = { 0, 0 },
|
||||
.ColourKey = RideColourKey::Ride,
|
||||
.Name = "3d_cinema",
|
||||
.RatingsData =
|
||||
{
|
||||
RatingsCalculationType::FlatRide,
|
||||
{ 1, 1, 1 },
|
||||
@@ -60,6 +60,6 @@ constexpr RideTypeDescriptor CinemaRTD =
|
||||
{
|
||||
{ RatingsModifierType::Bonus3DCinemaMode, 0, 0, 0, 0 },
|
||||
},
|
||||
}),
|
||||
},
|
||||
};
|
||||
// clang-format on
|
||||
|
||||
@@ -16,40 +16,40 @@
|
||||
// clang-format off
|
||||
constexpr RideTypeDescriptor EnterpriseRTD =
|
||||
{
|
||||
SET_FIELD(AlternateType, RIDE_TYPE_NULL),
|
||||
SET_FIELD(Category, RIDE_CATEGORY_THRILL),
|
||||
SET_FIELD(EnabledTrackPieces, {}),
|
||||
SET_FIELD(ExtraTrackPieces, {}),
|
||||
SET_FIELD(CoveredTrackPieces, {}),
|
||||
SET_FIELD(StartTrackPiece, TrackElemType::FlatTrack4x4),
|
||||
SET_FIELD(TrackPaintFunctions, TrackDrawerDescriptor(GetTrackPaintFunctionEnterprise)),
|
||||
SET_FIELD(Flags, RIDE_TYPE_FLAG_HAS_SINGLE_PIECE_STATION | RIDE_TYPE_FLAG_CANNOT_HAVE_GAPS |
|
||||
.AlternateType = RIDE_TYPE_NULL,
|
||||
.Category = RIDE_CATEGORY_THRILL,
|
||||
.EnabledTrackPieces = {},
|
||||
.ExtraTrackPieces = {},
|
||||
.CoveredTrackPieces = {},
|
||||
.StartTrackPiece = TrackElemType::FlatTrack4x4,
|
||||
.TrackPaintFunctions = TrackDrawerDescriptor(GetTrackPaintFunctionEnterprise),
|
||||
.Flags = RIDE_TYPE_FLAG_HAS_SINGLE_PIECE_STATION | RIDE_TYPE_FLAG_CANNOT_HAVE_GAPS |
|
||||
RIDE_TYPE_FLAG_HAS_LOAD_OPTIONS | RIDE_TYPE_FLAG_VEHICLE_IS_INTEGRAL | RIDE_TYPE_FLAG_TRACK_NO_WALLS |
|
||||
RIDE_TYPE_FLAG_FLAT_RIDE | RIDE_TYPE_FLAG_PEEP_WILL_RIDE_AGAIN | RIDE_TYPE_FLAG_HAS_VEHICLE_COLOURS |
|
||||
RIDE_TYPE_FLAG_ALLOW_MUSIC | RIDE_TYPE_FLAG_HAS_ENTRANCE_EXIT | RIDE_TYPE_FLAG_SINGLE_SESSION |
|
||||
RIDE_TYPE_FLAG_INTERESTING_TO_LOOK_AT | RIDE_TYPE_FLAG_LIST_VEHICLES_SEPARATELY),
|
||||
SET_FIELD(RideModes, EnumsToFlags(RideMode::Rotation)),
|
||||
SET_FIELD(DefaultMode, RideMode::Rotation),
|
||||
SET_FIELD(OperatingSettings, { 10, 20, 0, 0, 0, 0 }),
|
||||
SET_FIELD(Naming, { STR_RIDE_NAME_ENTERPRISE, STR_RIDE_DESCRIPTION_ENTERPRISE }),
|
||||
SET_FIELD(NameConvention, { RideComponentType::Wheel, RideComponentType::Structure, RideComponentType::Station }),
|
||||
SET_FIELD(EnumName, nameof(RIDE_TYPE_ENTERPRISE)),
|
||||
SET_FIELD(AvailableBreakdowns, (1 << BREAKDOWN_SAFETY_CUT_OUT)),
|
||||
SET_FIELD(Heights, { 16, 160, 3, 2, }),
|
||||
SET_FIELD(MaxMass, 255),
|
||||
SET_FIELD(LiftData, { OpenRCT2::Audio::SoundId::Null, 5, 5 }),
|
||||
SET_FIELD(RatingsMultipliers, { 50, 10, 0 }),
|
||||
SET_FIELD(UpkeepCosts, { 50, 1, 0, 0, 0, 0 }),
|
||||
SET_FIELD(BuildCosts, { 50.00_GBP, 1.00_GBP, 1, }),
|
||||
SET_FIELD(DefaultPrices, { 20, 0 }),
|
||||
SET_FIELD(DefaultMusic, MUSIC_OBJECT_ROCK_2),
|
||||
SET_FIELD(PhotoItem, ShopItem::Photo),
|
||||
SET_FIELD(BonusValue, 45),
|
||||
SET_FIELD(ColourPresets, DEFAULT_FLAT_RIDE_COLOUR_PRESET),
|
||||
SET_FIELD(ColourPreview, { 0, 0 }),
|
||||
SET_FIELD(ColourKey, RideColourKey::Ride),
|
||||
SET_FIELD(Name, "enterprise"),
|
||||
SET_FIELD(RatingsData,
|
||||
RIDE_TYPE_FLAG_INTERESTING_TO_LOOK_AT | RIDE_TYPE_FLAG_LIST_VEHICLES_SEPARATELY,
|
||||
.RideModes = EnumsToFlags(RideMode::Rotation),
|
||||
.DefaultMode = RideMode::Rotation,
|
||||
.OperatingSettings = { 10, 20, 0, 0, 0, 0 },
|
||||
.Naming = { STR_RIDE_NAME_ENTERPRISE, STR_RIDE_DESCRIPTION_ENTERPRISE },
|
||||
.NameConvention = { RideComponentType::Wheel, RideComponentType::Structure, RideComponentType::Station },
|
||||
.EnumName = nameof(RIDE_TYPE_ENTERPRISE),
|
||||
.AvailableBreakdowns = (1 << BREAKDOWN_SAFETY_CUT_OUT),
|
||||
.Heights = { 16, 160, 3, 2, },
|
||||
.MaxMass = 255,
|
||||
.LiftData = { OpenRCT2::Audio::SoundId::Null, 5, 5 },
|
||||
.RatingsMultipliers = { 50, 10, 0 },
|
||||
.UpkeepCosts = { 50, 1, 0, 0, 0, 0 },
|
||||
.BuildCosts = { 50.00_GBP, 1.00_GBP, 1, },
|
||||
.DefaultPrices = { 20, 0 },
|
||||
.DefaultMusic = MUSIC_OBJECT_ROCK_2,
|
||||
.PhotoItem = ShopItem::Photo,
|
||||
.BonusValue = 45,
|
||||
.ColourPresets = DEFAULT_FLAT_RIDE_COLOUR_PRESET,
|
||||
.ColourPreview = { 0, 0 },
|
||||
.ColourKey = RideColourKey::Ride,
|
||||
.Name = "enterprise",
|
||||
.RatingsData =
|
||||
{
|
||||
RatingsCalculationType::FlatRide,
|
||||
{ RIDE_RATING(3, 60), RIDE_RATING(4, 55), RIDE_RATING(5, 72) },
|
||||
@@ -60,15 +60,15 @@ constexpr RideTypeDescriptor EnterpriseRTD =
|
||||
{ RatingsModifierType::BonusOperationOption, 0, 1, 16, 16 },
|
||||
{ RatingsModifierType::BonusScenery, 0, 19521, 0, 0 },
|
||||
},
|
||||
}),
|
||||
SET_FIELD(UpdateRotating, UpdateRotatingEnterprise),
|
||||
SET_FIELD(LightFXAddLightsMagicVehicle, nullptr),
|
||||
SET_FIELD(StartRideMusic, OpenRCT2::RideAudio::DefaultStartRideMusicChannel),
|
||||
SET_FIELD(DesignCreateMode, TrackDesignCreateMode::Default),
|
||||
SET_FIELD(MusicUpdateFunction, DefaultMusicUpdate),
|
||||
SET_FIELD(Classification, RideClassification::Ride),
|
||||
SET_FIELD(UpdateLeaveEntrance, PeepUpdateRideLeaveEntranceDefault),
|
||||
SET_FIELD(SpecialElementRatingAdjustment, SpecialTrackElementRatingsAjustment_Default),
|
||||
SET_FIELD(GetGuestWaypointLocation, GetGuestWaypointLocationEnterprise),
|
||||
},
|
||||
.UpdateRotating = UpdateRotatingEnterprise,
|
||||
.LightFXAddLightsMagicVehicle = nullptr,
|
||||
.StartRideMusic = OpenRCT2::RideAudio::DefaultStartRideMusicChannel,
|
||||
.DesignCreateMode = TrackDesignCreateMode::Default,
|
||||
.MusicUpdateFunction = DefaultMusicUpdate,
|
||||
.Classification = RideClassification::Ride,
|
||||
.UpdateLeaveEntrance = PeepUpdateRideLeaveEntranceDefault,
|
||||
.SpecialElementRatingAdjustment = SpecialTrackElementRatingsAjustment_Default,
|
||||
.GetGuestWaypointLocation = GetGuestWaypointLocationEnterprise,
|
||||
};
|
||||
// clang-format on
|
||||
|
||||
@@ -18,43 +18,43 @@
|
||||
// clang-format off
|
||||
constexpr RideTypeDescriptor GoKartsRTD =
|
||||
{
|
||||
SET_FIELD(AlternateType, RIDE_TYPE_NULL),
|
||||
SET_FIELD(Category, RIDE_CATEGORY_THRILL),
|
||||
SET_FIELD(EnabledTrackPieces, {TRACK_STRAIGHT, TRACK_STATION_END, TRACK_SLOPE, TRACK_CURVE_VERY_SMALL}),
|
||||
SET_FIELD(ExtraTrackPieces, {}),
|
||||
SET_FIELD(CoveredTrackPieces, {}),
|
||||
SET_FIELD(StartTrackPiece, TrackElemType::EndStation),
|
||||
SET_FIELD(TrackPaintFunctions, TrackDrawerDescriptor(GetTrackPaintFunctionGoKarts)),
|
||||
SET_FIELD(Flags, RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_MAIN | RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_SUPPORTS | RIDE_TYPE_FLAG_NO_TEST_MODE | RIDE_TYPE_FLAG_HAS_ONE_STATION |
|
||||
.AlternateType = RIDE_TYPE_NULL,
|
||||
.Category = RIDE_CATEGORY_THRILL,
|
||||
.EnabledTrackPieces = {TRACK_STRAIGHT, TRACK_STATION_END, TRACK_SLOPE, TRACK_CURVE_VERY_SMALL},
|
||||
.ExtraTrackPieces = {},
|
||||
.CoveredTrackPieces = {},
|
||||
.StartTrackPiece = TrackElemType::EndStation,
|
||||
.TrackPaintFunctions = TrackDrawerDescriptor(GetTrackPaintFunctionGoKarts),
|
||||
.Flags = RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_MAIN | RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_SUPPORTS | RIDE_TYPE_FLAG_NO_TEST_MODE | RIDE_TYPE_FLAG_HAS_ONE_STATION |
|
||||
RIDE_TYPE_FLAG_TRACK_NO_WALLS | RIDE_TYPE_FLAG_PEEP_WILL_RIDE_AGAIN | RIDE_TYPE_FLAG_HAS_VEHICLE_COLOURS | RIDE_TYPE_FLAG_HAS_TRACK |
|
||||
RIDE_TYPE_FLAG_SUPPORTS_MULTIPLE_TRACK_COLOUR | RIDE_TYPE_FLAG_ALLOW_MUSIC | RIDE_TYPE_FLAG_HAS_ENTRANCE_EXIT | RIDE_TYPE_FLAG_INTERESTING_TO_LOOK_AT),
|
||||
SET_FIELD(RideModes, EnumsToFlags(RideMode::Race, RideMode::ContinuousCircuit)),
|
||||
SET_FIELD(DefaultMode, RideMode::Race),
|
||||
SET_FIELD(OperatingSettings, { 1, 10, 0, 0, 0, 0 }),
|
||||
SET_FIELD(Naming, { STR_RIDE_NAME_GO_KARTS, STR_RIDE_DESCRIPTION_GO_KARTS }),
|
||||
SET_FIELD(NameConvention, { RideComponentType::Car, RideComponentType::Track, RideComponentType::Station }),
|
||||
SET_FIELD(EnumName, nameof(RIDE_TYPE_GO_KARTS)),
|
||||
SET_FIELD(AvailableBreakdowns, (1 << BREAKDOWN_VEHICLE_MALFUNCTION)),
|
||||
SET_FIELD(Heights, { 7, 24, 2, 1, }),
|
||||
SET_FIELD(MaxMass, 255),
|
||||
SET_FIELD(LiftData, { OpenRCT2::Audio::SoundId::Null, 5, 5 }),
|
||||
SET_FIELD(RatingsMultipliers, { 120, 20, 0 }),
|
||||
SET_FIELD(UpkeepCosts, { 50, 20, 0, 8, 0, 0 }),
|
||||
SET_FIELD(BuildCosts, { 31.00_GBP, 2.00_GBP, 20, }),
|
||||
SET_FIELD(DefaultPrices, { 20, 0 }),
|
||||
SET_FIELD(DefaultMusic, MUSIC_OBJECT_TECHNO),
|
||||
SET_FIELD(PhotoItem, ShopItem::Photo),
|
||||
SET_FIELD(BonusValue, 55),
|
||||
SET_FIELD(ColourPresets, TRACK_COLOUR_PRESETS(
|
||||
RIDE_TYPE_FLAG_SUPPORTS_MULTIPLE_TRACK_COLOUR | RIDE_TYPE_FLAG_ALLOW_MUSIC | RIDE_TYPE_FLAG_HAS_ENTRANCE_EXIT | RIDE_TYPE_FLAG_INTERESTING_TO_LOOK_AT,
|
||||
.RideModes = EnumsToFlags(RideMode::Race, RideMode::ContinuousCircuit),
|
||||
.DefaultMode = RideMode::Race,
|
||||
.OperatingSettings = { 1, 10, 0, 0, 0, 0 },
|
||||
.Naming = { STR_RIDE_NAME_GO_KARTS, STR_RIDE_DESCRIPTION_GO_KARTS },
|
||||
.NameConvention = { RideComponentType::Car, RideComponentType::Track, RideComponentType::Station },
|
||||
.EnumName = nameof(RIDE_TYPE_GO_KARTS),
|
||||
.AvailableBreakdowns = (1 << BREAKDOWN_VEHICLE_MALFUNCTION),
|
||||
.Heights = { 7, 24, 2, 1, },
|
||||
.MaxMass = 255,
|
||||
.LiftData = { OpenRCT2::Audio::SoundId::Null, 5, 5 },
|
||||
.RatingsMultipliers = { 120, 20, 0 },
|
||||
.UpkeepCosts = { 50, 20, 0, 8, 0, 0 },
|
||||
.BuildCosts = { 31.00_GBP, 2.00_GBP, 20, },
|
||||
.DefaultPrices = { 20, 0 },
|
||||
.DefaultMusic = MUSIC_OBJECT_TECHNO,
|
||||
.PhotoItem = ShopItem::Photo,
|
||||
.BonusValue = 55,
|
||||
.ColourPresets = TRACK_COLOUR_PRESETS(
|
||||
{ COLOUR_BORDEAUX_RED, COLOUR_BORDEAUX_RED, COLOUR_DARK_BROWN },
|
||||
{ COLOUR_YELLOW, COLOUR_YELLOW, COLOUR_BORDEAUX_RED },
|
||||
{ COLOUR_DARK_GREEN, COLOUR_DARK_GREEN, COLOUR_DARK_GREEN },
|
||||
{ COLOUR_DARK_BROWN, COLOUR_DARK_BROWN, COLOUR_BLACK },
|
||||
)),
|
||||
SET_FIELD(ColourPreview, { SPR_RIDE_DESIGN_PREVIEW_GO_KARTS_TRACK, SPR_RIDE_DESIGN_PREVIEW_GO_KARTS_SUPPORTS }),
|
||||
SET_FIELD(ColourKey, RideColourKey::Ride),
|
||||
SET_FIELD(Name, "go_karts"),
|
||||
SET_FIELD(RatingsData,
|
||||
),
|
||||
.ColourPreview = { SPR_RIDE_DESIGN_PREVIEW_GO_KARTS_TRACK, SPR_RIDE_DESIGN_PREVIEW_GO_KARTS_SUPPORTS },
|
||||
.ColourKey = RideColourKey::Ride,
|
||||
.Name = "go_karts",
|
||||
.RatingsData =
|
||||
{
|
||||
RatingsCalculationType::Normal,
|
||||
{ RIDE_RATING(1, 42), RIDE_RATING(1, 73), RIDE_RATING(0, 40) },
|
||||
@@ -71,8 +71,8 @@ constexpr RideTypeDescriptor GoKartsRTD =
|
||||
{ RatingsModifierType::BonusScenery, 0, 16732, 0, 0 },
|
||||
{ RatingsModifierType::RequirementUnsheltered, 6, 2, 1, 1 },
|
||||
},
|
||||
}),
|
||||
SET_FIELD(UpdateRotating, UpdateRotatingDefault),
|
||||
SET_FIELD(LightFXAddLightsMagicVehicle, LightFxAddLightsMagicVehicle_BoatHire),
|
||||
},
|
||||
.UpdateRotating = UpdateRotatingDefault,
|
||||
.LightFXAddLightsMagicVehicle = LightFxAddLightsMagicVehicle_BoatHire,
|
||||
};
|
||||
// clang-format on
|
||||
|
||||
@@ -17,42 +17,42 @@
|
||||
// clang-format off
|
||||
constexpr RideTypeDescriptor LaunchedFreefallRTD =
|
||||
{
|
||||
SET_FIELD(AlternateType, RIDE_TYPE_NULL),
|
||||
SET_FIELD(Category, RIDE_CATEGORY_THRILL),
|
||||
SET_FIELD(EnabledTrackPieces, {TRACK_TOWER_BASE}),
|
||||
SET_FIELD(ExtraTrackPieces, {}),
|
||||
SET_FIELD(CoveredTrackPieces, {}),
|
||||
SET_FIELD(StartTrackPiece, TrackElemType::TowerBase),
|
||||
SET_FIELD(TrackPaintFunctions, TrackDrawerDescriptor(GetTrackPaintFunctionLaunchedFreefall)),
|
||||
SET_FIELD(Flags, RIDE_TYPE_FLAGS_TRACK_HAS_3_COLOURS | RIDE_TYPE_FLAG_HAS_SINGLE_PIECE_STATION | RIDE_TYPE_FLAG_CANNOT_HAVE_GAPS |
|
||||
.AlternateType = RIDE_TYPE_NULL,
|
||||
.Category = RIDE_CATEGORY_THRILL,
|
||||
.EnabledTrackPieces = {TRACK_TOWER_BASE},
|
||||
.ExtraTrackPieces = {},
|
||||
.CoveredTrackPieces = {},
|
||||
.StartTrackPiece = TrackElemType::TowerBase,
|
||||
.TrackPaintFunctions = TrackDrawerDescriptor(GetTrackPaintFunctionLaunchedFreefall),
|
||||
.Flags = RIDE_TYPE_FLAGS_TRACK_HAS_3_COLOURS | RIDE_TYPE_FLAG_HAS_SINGLE_PIECE_STATION | RIDE_TYPE_FLAG_CANNOT_HAVE_GAPS |
|
||||
RIDE_TYPE_FLAG_HAS_DATA_LOGGING | RIDE_TYPE_FLAG_HAS_LOAD_OPTIONS | RIDE_TYPE_FLAG_TRACK_NO_WALLS | RIDE_TYPE_FLAG_PEEP_WILL_RIDE_AGAIN |
|
||||
RIDE_TYPE_FLAG_HAS_VEHICLE_COLOURS | RIDE_TYPE_FLAG_HAS_TRACK | RIDE_TYPE_FLAG_SUPPORTS_MULTIPLE_TRACK_COLOUR |
|
||||
RIDE_TYPE_FLAG_ALLOW_MUSIC | RIDE_TYPE_FLAG_HAS_ENTRANCE_EXIT | RIDE_TYPE_FLAG_SHOW_IN_TRACK_DESIGNER | RIDE_TYPE_FLAG_INTERESTING_TO_LOOK_AT),
|
||||
SET_FIELD(RideModes, EnumsToFlags(RideMode::UpwardLaunch, RideMode::DownwardLaunch)),
|
||||
SET_FIELD(DefaultMode, RideMode::UpwardLaunch),
|
||||
SET_FIELD(OperatingSettings, { 10, 40, 0, 0, 0, 0 }),
|
||||
SET_FIELD(Naming, { STR_RIDE_NAME_LAUNCHED_FREEFALL, STR_RIDE_DESCRIPTION_LAUNCHED_FREEFALL }),
|
||||
SET_FIELD(NameConvention, { RideComponentType::Car, RideComponentType::Track, RideComponentType::Station }),
|
||||
SET_FIELD(EnumName, nameof(RIDE_TYPE_LAUNCHED_FREEFALL)),
|
||||
SET_FIELD(AvailableBreakdowns, (1 << BREAKDOWN_SAFETY_CUT_OUT) | (1 << BREAKDOWN_RESTRAINTS_STUCK_CLOSED) | (1 << BREAKDOWN_RESTRAINTS_STUCK_OPEN) | (1 << BREAKDOWN_VEHICLE_MALFUNCTION)),
|
||||
SET_FIELD(Heights, { 255, 32, 3, 2, }),
|
||||
SET_FIELD(MaxMass, 15),
|
||||
SET_FIELD(LiftData, { OpenRCT2::Audio::SoundId::Null, 5, 5 }),
|
||||
SET_FIELD(RatingsMultipliers, { 50, 50, 10 }),
|
||||
SET_FIELD(UpkeepCosts, { 50, 20, 0, 10, 0, 0 }),
|
||||
SET_FIELD(BuildCosts, { 25.00_GBP, 0.00_GBP, 4, }),
|
||||
SET_FIELD(DefaultPrices, { 20, 0 }),
|
||||
SET_FIELD(DefaultMusic, MUSIC_OBJECT_TECHNO),
|
||||
SET_FIELD(PhotoItem, ShopItem::Photo),
|
||||
SET_FIELD(BonusValue, 65),
|
||||
SET_FIELD(ColourPresets, TRACK_COLOUR_PRESETS(
|
||||
RIDE_TYPE_FLAG_ALLOW_MUSIC | RIDE_TYPE_FLAG_HAS_ENTRANCE_EXIT | RIDE_TYPE_FLAG_SHOW_IN_TRACK_DESIGNER | RIDE_TYPE_FLAG_INTERESTING_TO_LOOK_AT,
|
||||
.RideModes = EnumsToFlags(RideMode::UpwardLaunch, RideMode::DownwardLaunch),
|
||||
.DefaultMode = RideMode::UpwardLaunch,
|
||||
.OperatingSettings = { 10, 40, 0, 0, 0, 0 },
|
||||
.Naming = { STR_RIDE_NAME_LAUNCHED_FREEFALL, STR_RIDE_DESCRIPTION_LAUNCHED_FREEFALL },
|
||||
.NameConvention = { RideComponentType::Car, RideComponentType::Track, RideComponentType::Station },
|
||||
.EnumName = nameof(RIDE_TYPE_LAUNCHED_FREEFALL),
|
||||
.AvailableBreakdowns = (1 << BREAKDOWN_SAFETY_CUT_OUT) | (1 << BREAKDOWN_RESTRAINTS_STUCK_CLOSED) | (1 << BREAKDOWN_RESTRAINTS_STUCK_OPEN) | (1 << BREAKDOWN_VEHICLE_MALFUNCTION),
|
||||
.Heights = { 255, 32, 3, 2, },
|
||||
.MaxMass = 15,
|
||||
.LiftData = { OpenRCT2::Audio::SoundId::Null, 5, 5 },
|
||||
.RatingsMultipliers = { 50, 50, 10 },
|
||||
.UpkeepCosts = { 50, 20, 0, 10, 0, 0 },
|
||||
.BuildCosts = { 25.00_GBP, 0.00_GBP, 4, },
|
||||
.DefaultPrices = { 20, 0 },
|
||||
.DefaultMusic = MUSIC_OBJECT_TECHNO,
|
||||
.PhotoItem = ShopItem::Photo,
|
||||
.BonusValue = 65,
|
||||
.ColourPresets = TRACK_COLOUR_PRESETS(
|
||||
{ COLOUR_WHITE, COLOUR_BRIGHT_RED, COLOUR_LIGHT_PURPLE },
|
||||
{ COLOUR_DARK_GREEN, COLOUR_YELLOW, COLOUR_WHITE },
|
||||
)),
|
||||
SET_FIELD(ColourPreview, { SPR_RIDE_DESIGN_PREVIEW_LAUNCHED_FREEFALL_TRACK, SPR_RIDE_DESIGN_PREVIEW_LAUNCHED_FREEFALL_SUPPORTS }),
|
||||
SET_FIELD(ColourKey, RideColourKey::Ride),
|
||||
SET_FIELD(Name, "launched_freefall"),
|
||||
SET_FIELD(RatingsData,
|
||||
),
|
||||
.ColourPreview = { SPR_RIDE_DESIGN_PREVIEW_LAUNCHED_FREEFALL_TRACK, SPR_RIDE_DESIGN_PREVIEW_LAUNCHED_FREEFALL_SUPPORTS },
|
||||
.ColourKey = RideColourKey::Ride,
|
||||
.Name = "launched_freefall",
|
||||
.RatingsData =
|
||||
{
|
||||
RatingsCalculationType::Normal,
|
||||
{ RIDE_RATING(2, 70), RIDE_RATING(3, 00), RIDE_RATING(3, 50) },
|
||||
@@ -65,6 +65,6 @@ constexpr RideTypeDescriptor LaunchedFreefallRTD =
|
||||
{ RatingsModifierType::BonusProximity, 0, 20130, 0, 0 },
|
||||
{ RatingsModifierType::BonusScenery, 0, 25098, 0, 0 },
|
||||
},
|
||||
}),
|
||||
},
|
||||
};
|
||||
// clang-format on
|
||||
|
||||
@@ -17,44 +17,44 @@
|
||||
// clang-format off
|
||||
constexpr RideTypeDescriptor MagicCarpetRTD =
|
||||
{
|
||||
SET_FIELD(AlternateType, RIDE_TYPE_NULL),
|
||||
SET_FIELD(Category, RIDE_CATEGORY_THRILL),
|
||||
SET_FIELD(EnabledTrackPieces, {}),
|
||||
SET_FIELD(ExtraTrackPieces, {}),
|
||||
SET_FIELD(CoveredTrackPieces, {}),
|
||||
SET_FIELD(StartTrackPiece, TrackElemType::FlatTrack1x4A),
|
||||
SET_FIELD(TrackPaintFunctions, TrackDrawerDescriptor(GetTrackPaintFunctionMagicCarpet)),
|
||||
SET_FIELD(Flags, RIDE_TYPE_FLAGS_TRACK_HAS_3_COLOURS | RIDE_TYPE_FLAG_HAS_SINGLE_PIECE_STATION |
|
||||
.AlternateType = RIDE_TYPE_NULL,
|
||||
.Category = RIDE_CATEGORY_THRILL,
|
||||
.EnabledTrackPieces = {},
|
||||
.ExtraTrackPieces = {},
|
||||
.CoveredTrackPieces = {},
|
||||
.StartTrackPiece = TrackElemType::FlatTrack1x4A,
|
||||
.TrackPaintFunctions = TrackDrawerDescriptor(GetTrackPaintFunctionMagicCarpet),
|
||||
.Flags = RIDE_TYPE_FLAGS_TRACK_HAS_3_COLOURS | RIDE_TYPE_FLAG_HAS_SINGLE_PIECE_STATION |
|
||||
RIDE_TYPE_FLAG_CANNOT_HAVE_GAPS | RIDE_TYPE_FLAG_HAS_LOAD_OPTIONS | RIDE_TYPE_FLAG_VEHICLE_IS_INTEGRAL |
|
||||
RIDE_TYPE_FLAG_TRACK_NO_WALLS | RIDE_TYPE_FLAG_FLAT_RIDE | RIDE_TYPE_FLAG_HAS_VEHICLE_COLOURS |
|
||||
RIDE_TYPE_FLAG_ALLOW_MUSIC | RIDE_TYPE_FLAG_HAS_ENTRANCE_EXIT | RIDE_TYPE_FLAG_SINGLE_SESSION |
|
||||
RIDE_TYPE_FLAG_INTERESTING_TO_LOOK_AT | RIDE_TYPE_FLAG_LIST_VEHICLES_SEPARATELY),
|
||||
SET_FIELD(RideModes, EnumsToFlags(RideMode::Swing)),
|
||||
SET_FIELD(DefaultMode, RideMode::Swing),
|
||||
SET_FIELD(OperatingSettings, { 7, 15, 0, 0, 0, 0 }),
|
||||
SET_FIELD(Naming, { STR_RIDE_NAME_MAGIC_CARPET, STR_RIDE_DESCRIPTION_MAGIC_CARPET }),
|
||||
SET_FIELD(NameConvention, { RideComponentType::Car, RideComponentType::Structure, RideComponentType::Station }),
|
||||
SET_FIELD(EnumName, nameof(RIDE_TYPE_MAGIC_CARPET)),
|
||||
SET_FIELD(AvailableBreakdowns, (1 << BREAKDOWN_SAFETY_CUT_OUT)),
|
||||
SET_FIELD(Heights, { 15, 176, 7, 11, }),
|
||||
SET_FIELD(MaxMass, 255),
|
||||
SET_FIELD(LiftData, { OpenRCT2::Audio::SoundId::Null, 5, 5 }),
|
||||
SET_FIELD(RatingsMultipliers, { 50, 30, 10 }),
|
||||
SET_FIELD(UpkeepCosts, { 50, 1, 0, 0, 0, 0 }),
|
||||
SET_FIELD(BuildCosts, { 99.00_GBP, 1.00_GBP, 1, }),
|
||||
SET_FIELD(DefaultPrices, { 15, 0 }),
|
||||
SET_FIELD(DefaultMusic, MUSIC_OBJECT_EGYPTIAN),
|
||||
SET_FIELD(PhotoItem, ShopItem::Photo),
|
||||
SET_FIELD(BonusValue, 35),
|
||||
SET_FIELD(ColourPresets, TRACK_COLOUR_PRESETS(
|
||||
RIDE_TYPE_FLAG_INTERESTING_TO_LOOK_AT | RIDE_TYPE_FLAG_LIST_VEHICLES_SEPARATELY,
|
||||
.RideModes = EnumsToFlags(RideMode::Swing),
|
||||
.DefaultMode = RideMode::Swing,
|
||||
.OperatingSettings = { 7, 15, 0, 0, 0, 0 },
|
||||
.Naming = { STR_RIDE_NAME_MAGIC_CARPET, STR_RIDE_DESCRIPTION_MAGIC_CARPET },
|
||||
.NameConvention = { RideComponentType::Car, RideComponentType::Structure, RideComponentType::Station },
|
||||
.EnumName = nameof(RIDE_TYPE_MAGIC_CARPET),
|
||||
.AvailableBreakdowns = (1 << BREAKDOWN_SAFETY_CUT_OUT),
|
||||
.Heights = { 15, 176, 7, 11, },
|
||||
.MaxMass = 255,
|
||||
.LiftData = { OpenRCT2::Audio::SoundId::Null, 5, 5 },
|
||||
.RatingsMultipliers = { 50, 30, 10 },
|
||||
.UpkeepCosts = { 50, 1, 0, 0, 0, 0 },
|
||||
.BuildCosts = { 99.00_GBP, 1.00_GBP, 1, },
|
||||
.DefaultPrices = { 15, 0 },
|
||||
.DefaultMusic = MUSIC_OBJECT_EGYPTIAN,
|
||||
.PhotoItem = ShopItem::Photo,
|
||||
.BonusValue = 35,
|
||||
.ColourPresets = TRACK_COLOUR_PRESETS(
|
||||
{ COLOUR_DARK_PURPLE, COLOUR_WHITE, COLOUR_BLACK },
|
||||
{ COLOUR_YELLOW, COLOUR_WHITE, COLOUR_BLACK },
|
||||
{ COLOUR_BRIGHT_RED, COLOUR_YELLOW, COLOUR_BLACK },
|
||||
)),
|
||||
SET_FIELD(ColourPreview, { SPR_RIDE_DESIGN_PREVIEW_MAGIC_CARPET_TRACK, SPR_RIDE_DESIGN_PREVIEW_MAGIC_CARPET_SUPPORTS }),
|
||||
SET_FIELD(ColourKey, RideColourKey::Ride),
|
||||
SET_FIELD(Name, "magic_carpet"),
|
||||
SET_FIELD(RatingsData,
|
||||
),
|
||||
.ColourPreview = { SPR_RIDE_DESIGN_PREVIEW_MAGIC_CARPET_TRACK, SPR_RIDE_DESIGN_PREVIEW_MAGIC_CARPET_SUPPORTS },
|
||||
.ColourKey = RideColourKey::Ride,
|
||||
.Name = "magic_carpet",
|
||||
.RatingsData =
|
||||
{
|
||||
RatingsCalculationType::FlatRide,
|
||||
{ RIDE_RATING(2, 45), RIDE_RATING(1, 60), RIDE_RATING(2, 60) },
|
||||
@@ -65,6 +65,6 @@ constexpr RideTypeDescriptor MagicCarpetRTD =
|
||||
{ RatingsModifierType::BonusOperationOption, 0, 10, 20, 20 },
|
||||
{ RatingsModifierType::BonusScenery, 0, 11155, 0, 0 },
|
||||
},
|
||||
}),
|
||||
},
|
||||
};
|
||||
// clang-format on
|
||||
|
||||
@@ -16,40 +16,40 @@
|
||||
// clang-format off
|
||||
constexpr RideTypeDescriptor MotionSimulatorRTD =
|
||||
{
|
||||
SET_FIELD(AlternateType, RIDE_TYPE_NULL),
|
||||
SET_FIELD(Category, RIDE_CATEGORY_THRILL),
|
||||
SET_FIELD(EnabledTrackPieces, {}),
|
||||
SET_FIELD(ExtraTrackPieces, {}),
|
||||
SET_FIELD(CoveredTrackPieces, {}),
|
||||
SET_FIELD(StartTrackPiece, TrackElemType::FlatTrack2x2),
|
||||
SET_FIELD(TrackPaintFunctions, TrackDrawerDescriptor(GetTrackPaintFunctionMotionsimulator)),
|
||||
SET_FIELD(Flags, RIDE_TYPE_FLAG_HAS_SINGLE_PIECE_STATION | RIDE_TYPE_FLAG_CANNOT_HAVE_GAPS |
|
||||
.AlternateType = RIDE_TYPE_NULL,
|
||||
.Category = RIDE_CATEGORY_THRILL,
|
||||
.EnabledTrackPieces = {},
|
||||
.ExtraTrackPieces = {},
|
||||
.CoveredTrackPieces = {},
|
||||
.StartTrackPiece = TrackElemType::FlatTrack2x2,
|
||||
.TrackPaintFunctions = TrackDrawerDescriptor(GetTrackPaintFunctionMotionsimulator),
|
||||
.Flags = RIDE_TYPE_FLAG_HAS_SINGLE_PIECE_STATION | RIDE_TYPE_FLAG_CANNOT_HAVE_GAPS |
|
||||
RIDE_TYPE_FLAG_HAS_LOAD_OPTIONS | RIDE_TYPE_FLAG_VEHICLE_IS_INTEGRAL | RIDE_TYPE_FLAG_TRACK_NO_WALLS |
|
||||
RIDE_TYPE_FLAG_FLAT_RIDE | RIDE_TYPE_FLAG_HAS_VEHICLE_COLOURS | RIDE_TYPE_FLAG_ALLOW_MUSIC |
|
||||
RIDE_TYPE_FLAG_HAS_ENTRANCE_EXIT | RIDE_TYPE_FLAG_SINGLE_SESSION |
|
||||
RIDE_TYPE_FLAG_SLIGHTLY_INTERESTING_TO_LOOK_AT | RIDE_TYPE_FLAG_LIST_VEHICLES_SEPARATELY),
|
||||
SET_FIELD(RideModes, EnumsToFlags(RideMode::FilmAvengingAviators, RideMode::FilmThrillRiders)),
|
||||
SET_FIELD(DefaultMode, RideMode::FilmAvengingAviators),
|
||||
SET_FIELD(OperatingSettings, { 0, 0, 0, 0, 0, 0 }),
|
||||
SET_FIELD(Naming, { STR_RIDE_NAME_MOTION_SIMULATOR, STR_RIDE_DESCRIPTION_MOTION_SIMULATOR }),
|
||||
SET_FIELD(NameConvention, { RideComponentType::Car, RideComponentType::Structure, RideComponentType::Station }),
|
||||
SET_FIELD(EnumName, nameof(RIDE_TYPE_MOTION_SIMULATOR)),
|
||||
SET_FIELD(AvailableBreakdowns, (1 << BREAKDOWN_SAFETY_CUT_OUT)),
|
||||
SET_FIELD(Heights, { 12, 64, 3, 2, }),
|
||||
SET_FIELD(MaxMass, 255),
|
||||
SET_FIELD(LiftData, { OpenRCT2::Audio::SoundId::Null, 5, 5 }),
|
||||
SET_FIELD(RatingsMultipliers, { 24, 20, 10 }),
|
||||
SET_FIELD(UpkeepCosts, { 50, 1, 0, 0, 0, 0 }),
|
||||
SET_FIELD(BuildCosts, { 110.00_GBP, 1.00_GBP, 1, }),
|
||||
SET_FIELD(DefaultPrices, { 20, 0 }),
|
||||
SET_FIELD(DefaultMusic, MUSIC_OBJECT_ROCK_1),
|
||||
SET_FIELD(PhotoItem, ShopItem::Photo),
|
||||
SET_FIELD(BonusValue, 45),
|
||||
SET_FIELD(ColourPresets, DEFAULT_FLAT_RIDE_COLOUR_PRESET),
|
||||
SET_FIELD(ColourPreview, { 0, 0 }),
|
||||
SET_FIELD(ColourKey, RideColourKey::Ride),
|
||||
SET_FIELD(Name, "motion_simulator"),
|
||||
SET_FIELD(RatingsData,
|
||||
RIDE_TYPE_FLAG_SLIGHTLY_INTERESTING_TO_LOOK_AT | RIDE_TYPE_FLAG_LIST_VEHICLES_SEPARATELY,
|
||||
.RideModes = EnumsToFlags(RideMode::FilmAvengingAviators, RideMode::FilmThrillRiders),
|
||||
.DefaultMode = RideMode::FilmAvengingAviators,
|
||||
.OperatingSettings = { 0, 0, 0, 0, 0, 0 },
|
||||
.Naming = { STR_RIDE_NAME_MOTION_SIMULATOR, STR_RIDE_DESCRIPTION_MOTION_SIMULATOR },
|
||||
.NameConvention = { RideComponentType::Car, RideComponentType::Structure, RideComponentType::Station },
|
||||
.EnumName = nameof(RIDE_TYPE_MOTION_SIMULATOR),
|
||||
.AvailableBreakdowns = (1 << BREAKDOWN_SAFETY_CUT_OUT),
|
||||
.Heights = { 12, 64, 3, 2, },
|
||||
.MaxMass = 255,
|
||||
.LiftData = { OpenRCT2::Audio::SoundId::Null, 5, 5 },
|
||||
.RatingsMultipliers = { 24, 20, 10 },
|
||||
.UpkeepCosts = { 50, 1, 0, 0, 0, 0 },
|
||||
.BuildCosts = { 110.00_GBP, 1.00_GBP, 1, },
|
||||
.DefaultPrices = { 20, 0 },
|
||||
.DefaultMusic = MUSIC_OBJECT_ROCK_1,
|
||||
.PhotoItem = ShopItem::Photo,
|
||||
.BonusValue = 45,
|
||||
.ColourPresets = DEFAULT_FLAT_RIDE_COLOUR_PRESET,
|
||||
.ColourPreview = { 0, 0 },
|
||||
.ColourKey = RideColourKey::Ride,
|
||||
.Name = "motion_simulator",
|
||||
.RatingsData =
|
||||
{
|
||||
RatingsCalculationType::FlatRide,
|
||||
{ 1, 1, 1 },
|
||||
@@ -59,20 +59,20 @@ constexpr RideTypeDescriptor MotionSimulatorRTD =
|
||||
{
|
||||
{ RatingsModifierType::BonusMotionSimulatorMode, 0, 0, 0, 0 },
|
||||
},
|
||||
}),
|
||||
SET_FIELD(UpdateRotating, UpdateRotatingDefault),
|
||||
SET_FIELD(LightFXAddLightsMagicVehicle, nullptr),
|
||||
SET_FIELD(StartRideMusic, OpenRCT2::RideAudio::DefaultStartRideMusicChannel),
|
||||
SET_FIELD(DesignCreateMode, TrackDesignCreateMode::Default),
|
||||
SET_FIELD(MusicUpdateFunction, DefaultMusicUpdate),
|
||||
SET_FIELD(Classification, RideClassification::Ride),
|
||||
SET_FIELD(UpdateLeaveEntrance, PeepUpdateRideLeaveEntranceDefault),
|
||||
SET_FIELD(SpecialElementRatingAdjustment, SpecialTrackElementRatingsAjustment_Default),
|
||||
SET_FIELD(GetGuestWaypointLocation, GetGuestWaypointLocationDefault),
|
||||
SET_FIELD(ConstructionWindowContext, RideConstructionWindowContext::Default),
|
||||
SET_FIELD(RideUpdate, nullptr),
|
||||
SET_FIELD(UpdateMeasurementsSpecialElements, RideUpdateMeasurementsSpecialElements_Default),
|
||||
SET_FIELD(MusicTrackOffsetLength, OpenRCT2::RideAudio::RideMusicGetTrackOffsetLength_Default),
|
||||
SET_FIELD(UpdateRideApproachVehicleWaypoints, UpdateRideApproachVehicleWaypointsMotionSimulator),
|
||||
},
|
||||
.UpdateRotating = UpdateRotatingDefault,
|
||||
.LightFXAddLightsMagicVehicle = nullptr,
|
||||
.StartRideMusic = OpenRCT2::RideAudio::DefaultStartRideMusicChannel,
|
||||
.DesignCreateMode = TrackDesignCreateMode::Default,
|
||||
.MusicUpdateFunction = DefaultMusicUpdate,
|
||||
.Classification = RideClassification::Ride,
|
||||
.UpdateLeaveEntrance = PeepUpdateRideLeaveEntranceDefault,
|
||||
.SpecialElementRatingAdjustment = SpecialTrackElementRatingsAjustment_Default,
|
||||
.GetGuestWaypointLocation = GetGuestWaypointLocationDefault,
|
||||
.ConstructionWindowContext = RideConstructionWindowContext::Default,
|
||||
.RideUpdate = nullptr,
|
||||
.UpdateMeasurementsSpecialElements = RideUpdateMeasurementsSpecialElements_Default,
|
||||
.MusicTrackOffsetLength = OpenRCT2::RideAudio::RideMusicGetTrackOffsetLength_Default,
|
||||
.UpdateRideApproachVehicleWaypoints = UpdateRideApproachVehicleWaypointsMotionSimulator,
|
||||
};
|
||||
// clang-format on
|
||||
|
||||
@@ -17,43 +17,43 @@
|
||||
// clang-format off
|
||||
constexpr RideTypeDescriptor RotoDropRTD =
|
||||
{
|
||||
SET_FIELD(AlternateType, RIDE_TYPE_NULL),
|
||||
SET_FIELD(Category, RIDE_CATEGORY_THRILL),
|
||||
SET_FIELD(EnabledTrackPieces, {TRACK_TOWER_BASE}),
|
||||
SET_FIELD(ExtraTrackPieces, {}),
|
||||
SET_FIELD(CoveredTrackPieces, {}),
|
||||
SET_FIELD(StartTrackPiece, TrackElemType::TowerBase),
|
||||
SET_FIELD(TrackPaintFunctions, TrackDrawerDescriptor(GetTrackPaintFunctionRotoDrop)),
|
||||
SET_FIELD(Flags, RIDE_TYPE_FLAGS_TRACK_HAS_3_COLOURS | RIDE_TYPE_FLAG_HAS_SINGLE_PIECE_STATION | RIDE_TYPE_FLAG_CANNOT_HAVE_GAPS |
|
||||
.AlternateType = RIDE_TYPE_NULL,
|
||||
.Category = RIDE_CATEGORY_THRILL,
|
||||
.EnabledTrackPieces = {TRACK_TOWER_BASE},
|
||||
.ExtraTrackPieces = {},
|
||||
.CoveredTrackPieces = {},
|
||||
.StartTrackPiece = TrackElemType::TowerBase,
|
||||
.TrackPaintFunctions = TrackDrawerDescriptor(GetTrackPaintFunctionRotoDrop),
|
||||
.Flags = RIDE_TYPE_FLAGS_TRACK_HAS_3_COLOURS | RIDE_TYPE_FLAG_HAS_SINGLE_PIECE_STATION | RIDE_TYPE_FLAG_CANNOT_HAVE_GAPS |
|
||||
RIDE_TYPE_FLAG_HAS_DATA_LOGGING | RIDE_TYPE_FLAG_HAS_LOAD_OPTIONS | RIDE_TYPE_FLAG_TRACK_NO_WALLS |
|
||||
RIDE_TYPE_FLAG_PEEP_WILL_RIDE_AGAIN | RIDE_TYPE_FLAG_HAS_VEHICLE_COLOURS | RIDE_TYPE_FLAG_HAS_TRACK |
|
||||
RIDE_TYPE_FLAG_SUPPORTS_MULTIPLE_TRACK_COLOUR | RIDE_TYPE_FLAG_ALLOW_MUSIC | RIDE_TYPE_FLAG_HAS_ENTRANCE_EXIT |
|
||||
RIDE_TYPE_FLAG_SINGLE_SESSION | RIDE_TYPE_FLAG_SHOW_IN_TRACK_DESIGNER | RIDE_TYPE_FLAG_INTERESTING_TO_LOOK_AT),
|
||||
SET_FIELD(RideModes, EnumsToFlags(RideMode::FreefallDrop)),
|
||||
SET_FIELD(DefaultMode, RideMode::FreefallDrop),
|
||||
SET_FIELD(OperatingSettings, { 0, 0, 0, 0, 0, 0 }),
|
||||
SET_FIELD(Naming, { STR_RIDE_NAME_ROTO_DROP, STR_RIDE_DESCRIPTION_ROTO_DROP }),
|
||||
SET_FIELD(NameConvention, { RideComponentType::Car, RideComponentType::Track, RideComponentType::Station }),
|
||||
SET_FIELD(EnumName, nameof(RIDE_TYPE_ROTO_DROP)),
|
||||
SET_FIELD(AvailableBreakdowns, (1 << BREAKDOWN_SAFETY_CUT_OUT) | (1 << BREAKDOWN_RESTRAINTS_STUCK_CLOSED) | (1 << BREAKDOWN_RESTRAINTS_STUCK_OPEN) | (1 << BREAKDOWN_VEHICLE_MALFUNCTION)),
|
||||
SET_FIELD(Heights, { 255, 32, 3, 2, }),
|
||||
SET_FIELD(MaxMass, 15),
|
||||
SET_FIELD(LiftData, { OpenRCT2::Audio::SoundId::Null, 5, 5 }),
|
||||
SET_FIELD(RatingsMultipliers, { 50, 50, 10 }),
|
||||
SET_FIELD(UpkeepCosts, { 50, 20, 0, 10, 0, 0 }),
|
||||
SET_FIELD(BuildCosts, { 22.50_GBP, 0.00_GBP, 4, }),
|
||||
SET_FIELD(DefaultPrices, { 20, 0 }),
|
||||
SET_FIELD(DefaultMusic, MUSIC_OBJECT_ROCK_1),
|
||||
SET_FIELD(PhotoItem, ShopItem::Photo),
|
||||
SET_FIELD(BonusValue, 45),
|
||||
SET_FIELD(ColourPresets, TRACK_COLOUR_PRESETS(
|
||||
RIDE_TYPE_FLAG_SINGLE_SESSION | RIDE_TYPE_FLAG_SHOW_IN_TRACK_DESIGNER | RIDE_TYPE_FLAG_INTERESTING_TO_LOOK_AT,
|
||||
.RideModes = EnumsToFlags(RideMode::FreefallDrop),
|
||||
.DefaultMode = RideMode::FreefallDrop,
|
||||
.OperatingSettings = { 0, 0, 0, 0, 0, 0 },
|
||||
.Naming = { STR_RIDE_NAME_ROTO_DROP, STR_RIDE_DESCRIPTION_ROTO_DROP },
|
||||
.NameConvention = { RideComponentType::Car, RideComponentType::Track, RideComponentType::Station },
|
||||
.EnumName = nameof(RIDE_TYPE_ROTO_DROP),
|
||||
.AvailableBreakdowns = (1 << BREAKDOWN_SAFETY_CUT_OUT) | (1 << BREAKDOWN_RESTRAINTS_STUCK_CLOSED) | (1 << BREAKDOWN_RESTRAINTS_STUCK_OPEN) | (1 << BREAKDOWN_VEHICLE_MALFUNCTION),
|
||||
.Heights = { 255, 32, 3, 2, },
|
||||
.MaxMass = 15,
|
||||
.LiftData = { OpenRCT2::Audio::SoundId::Null, 5, 5 },
|
||||
.RatingsMultipliers = { 50, 50, 10 },
|
||||
.UpkeepCosts = { 50, 20, 0, 10, 0, 0 },
|
||||
.BuildCosts = { 22.50_GBP, 0.00_GBP, 4, },
|
||||
.DefaultPrices = { 20, 0 },
|
||||
.DefaultMusic = MUSIC_OBJECT_ROCK_1,
|
||||
.PhotoItem = ShopItem::Photo,
|
||||
.BonusValue = 45,
|
||||
.ColourPresets = TRACK_COLOUR_PRESETS(
|
||||
{ COLOUR_BORDEAUX_RED, COLOUR_YELLOW, COLOUR_GREY },
|
||||
{ COLOUR_BLACK, COLOUR_LIGHT_BLUE, COLOUR_GREY },
|
||||
)),
|
||||
SET_FIELD(ColourPreview, { SPR_RIDE_DESIGN_PREVIEW_ROTO_DROP_TRACK, SPR_RIDE_DESIGN_PREVIEW_ROTO_DROP_SUPPORTS }),
|
||||
SET_FIELD(ColourKey, RideColourKey::Ride),
|
||||
SET_FIELD(Name, "roto_drop"),
|
||||
SET_FIELD(RatingsData,
|
||||
),
|
||||
.ColourPreview = { SPR_RIDE_DESIGN_PREVIEW_ROTO_DROP_TRACK, SPR_RIDE_DESIGN_PREVIEW_ROTO_DROP_SUPPORTS },
|
||||
.ColourKey = RideColourKey::Ride,
|
||||
.Name = "roto_drop",
|
||||
.RatingsData =
|
||||
{
|
||||
RatingsCalculationType::Normal,
|
||||
{ RIDE_RATING(2, 80), RIDE_RATING(3, 50), RIDE_RATING(3, 50) },
|
||||
@@ -65,6 +65,6 @@ constexpr RideTypeDescriptor RotoDropRTD =
|
||||
{ RatingsModifierType::BonusScenery, 0, 25098, 0, 0 },
|
||||
{ RatingsModifierType::BonusRotoDrop, 0, 0, 0, 0 },
|
||||
},
|
||||
}),
|
||||
},
|
||||
};
|
||||
// clang-format on
|
||||
|
||||
@@ -17,43 +17,43 @@
|
||||
// clang-format off
|
||||
constexpr RideTypeDescriptor SwingingInverterShipRTD =
|
||||
{
|
||||
SET_FIELD(AlternateType, RIDE_TYPE_NULL),
|
||||
SET_FIELD(Category, RIDE_CATEGORY_THRILL),
|
||||
SET_FIELD(EnabledTrackPieces, {}),
|
||||
SET_FIELD(ExtraTrackPieces, {}),
|
||||
SET_FIELD(CoveredTrackPieces, {}),
|
||||
SET_FIELD(StartTrackPiece, TrackElemType::FlatTrack1x4B),
|
||||
SET_FIELD(TrackPaintFunctions, TrackDrawerDescriptor(GetTrackPaintFunctionSwingingInverterShip)),
|
||||
SET_FIELD(Flags, RIDE_TYPE_FLAGS_TRACK_HAS_3_COLOURS | RIDE_TYPE_FLAG_HAS_SINGLE_PIECE_STATION |
|
||||
.AlternateType = RIDE_TYPE_NULL,
|
||||
.Category = RIDE_CATEGORY_THRILL,
|
||||
.EnabledTrackPieces = {},
|
||||
.ExtraTrackPieces = {},
|
||||
.CoveredTrackPieces = {},
|
||||
.StartTrackPiece = TrackElemType::FlatTrack1x4B,
|
||||
.TrackPaintFunctions = TrackDrawerDescriptor(GetTrackPaintFunctionSwingingInverterShip),
|
||||
.Flags = RIDE_TYPE_FLAGS_TRACK_HAS_3_COLOURS | RIDE_TYPE_FLAG_HAS_SINGLE_PIECE_STATION |
|
||||
RIDE_TYPE_FLAG_CANNOT_HAVE_GAPS | RIDE_TYPE_FLAG_HAS_LOAD_OPTIONS | RIDE_TYPE_FLAG_VEHICLE_IS_INTEGRAL |
|
||||
RIDE_TYPE_FLAG_TRACK_NO_WALLS | RIDE_TYPE_FLAG_FLAT_RIDE | RIDE_TYPE_FLAG_HAS_VEHICLE_COLOURS |
|
||||
RIDE_TYPE_FLAG_ALLOW_MUSIC | RIDE_TYPE_FLAG_HAS_ENTRANCE_EXIT | RIDE_TYPE_FLAG_SINGLE_SESSION |
|
||||
RIDE_TYPE_FLAG_INTERESTING_TO_LOOK_AT | RIDE_TYPE_FLAG_LIST_VEHICLES_SEPARATELY),
|
||||
SET_FIELD(RideModes, EnumsToFlags(RideMode::Swing)),
|
||||
SET_FIELD(DefaultMode, RideMode::Swing),
|
||||
SET_FIELD(OperatingSettings, { 7, 15, 0, 0, 0, 0 }),
|
||||
SET_FIELD(Naming, { STR_RIDE_NAME_SWINGING_INVERTER_SHIP, STR_RIDE_DESCRIPTION_SWINGING_INVERTER_SHIP }),
|
||||
SET_FIELD(NameConvention, { RideComponentType::Ship, RideComponentType::Structure, RideComponentType::Station }),
|
||||
SET_FIELD(EnumName, nameof(RIDE_TYPE_SWINGING_INVERTER_SHIP)),
|
||||
SET_FIELD(AvailableBreakdowns, (1 << BREAKDOWN_SAFETY_CUT_OUT)),
|
||||
SET_FIELD(Heights, { 15, 176, 7, 11, }),
|
||||
SET_FIELD(MaxMass, 255),
|
||||
SET_FIELD(LiftData, { OpenRCT2::Audio::SoundId::Null, 5, 5 }),
|
||||
SET_FIELD(RatingsMultipliers, { 50, 30, 10 }),
|
||||
SET_FIELD(UpkeepCosts, { 50, 1, 0, 0, 0, 0 }),
|
||||
SET_FIELD(BuildCosts, { 106.00_GBP, 1.00_GBP, 1, }),
|
||||
SET_FIELD(DefaultPrices, { 15, 0 }),
|
||||
SET_FIELD(DefaultMusic, MUSIC_OBJECT_TECHNO),
|
||||
SET_FIELD(PhotoItem, ShopItem::Photo),
|
||||
SET_FIELD(BonusValue, 35),
|
||||
SET_FIELD(ColourPresets, TRACK_COLOUR_PRESETS(
|
||||
RIDE_TYPE_FLAG_INTERESTING_TO_LOOK_AT | RIDE_TYPE_FLAG_LIST_VEHICLES_SEPARATELY,
|
||||
.RideModes = EnumsToFlags(RideMode::Swing),
|
||||
.DefaultMode = RideMode::Swing,
|
||||
.OperatingSettings = { 7, 15, 0, 0, 0, 0 },
|
||||
.Naming = { STR_RIDE_NAME_SWINGING_INVERTER_SHIP, STR_RIDE_DESCRIPTION_SWINGING_INVERTER_SHIP },
|
||||
.NameConvention = { RideComponentType::Ship, RideComponentType::Structure, RideComponentType::Station },
|
||||
.EnumName = nameof(RIDE_TYPE_SWINGING_INVERTER_SHIP),
|
||||
.AvailableBreakdowns = (1 << BREAKDOWN_SAFETY_CUT_OUT),
|
||||
.Heights = { 15, 176, 7, 11, },
|
||||
.MaxMass = 255,
|
||||
.LiftData = { OpenRCT2::Audio::SoundId::Null, 5, 5 },
|
||||
.RatingsMultipliers = { 50, 30, 10 },
|
||||
.UpkeepCosts = { 50, 1, 0, 0, 0, 0 },
|
||||
.BuildCosts = { 106.00_GBP, 1.00_GBP, 1, },
|
||||
.DefaultPrices = { 15, 0 },
|
||||
.DefaultMusic = MUSIC_OBJECT_TECHNO,
|
||||
.PhotoItem = ShopItem::Photo,
|
||||
.BonusValue = 35,
|
||||
.ColourPresets = TRACK_COLOUR_PRESETS(
|
||||
{ COLOUR_BORDEAUX_RED, COLOUR_YELLOW, COLOUR_BLACK },
|
||||
{ COLOUR_BLACK, COLOUR_SATURATED_BROWN, COLOUR_BLACK },
|
||||
)),
|
||||
SET_FIELD(ColourPreview, { SPR_RIDE_DESIGN_PREVIEW_SWINGING_INVERTER_SHIP_TRACK, SPR_RIDE_DESIGN_PREVIEW_SWINGING_INVERTER_SHIP_SUPPORTS }),
|
||||
SET_FIELD(ColourKey, RideColourKey::Ride),
|
||||
SET_FIELD(Name, "swinging_inverter_ship"),
|
||||
SET_FIELD(RatingsData,
|
||||
),
|
||||
.ColourPreview = { SPR_RIDE_DESIGN_PREVIEW_SWINGING_INVERTER_SHIP_TRACK, SPR_RIDE_DESIGN_PREVIEW_SWINGING_INVERTER_SHIP_SUPPORTS },
|
||||
.ColourKey = RideColourKey::Ride,
|
||||
.Name = "swinging_inverter_ship",
|
||||
.RatingsData =
|
||||
{
|
||||
RatingsCalculationType::FlatRide,
|
||||
{ RIDE_RATING(2, 50), RIDE_RATING(2, 70), RIDE_RATING(2, 74) },
|
||||
@@ -64,6 +64,6 @@ constexpr RideTypeDescriptor SwingingInverterShipRTD =
|
||||
{ RatingsModifierType::BonusOperationOption, 0, 11, 22, 22 },
|
||||
{ RatingsModifierType::BonusScenery, 0, 11155, 0, 0 },
|
||||
},
|
||||
}),
|
||||
},
|
||||
};
|
||||
// clang-format on
|
||||
|
||||
@@ -17,43 +17,43 @@
|
||||
// clang-format off
|
||||
constexpr RideTypeDescriptor SwingingShipRTD =
|
||||
{
|
||||
SET_FIELD(AlternateType, RIDE_TYPE_NULL),
|
||||
SET_FIELD(Category, RIDE_CATEGORY_THRILL),
|
||||
SET_FIELD(EnabledTrackPieces, {}),
|
||||
SET_FIELD(ExtraTrackPieces, {}),
|
||||
SET_FIELD(CoveredTrackPieces, {}),
|
||||
SET_FIELD(StartTrackPiece, TrackElemType::FlatTrack1x5),
|
||||
SET_FIELD(TrackPaintFunctions, TrackDrawerDescriptor(GetTrackPaintFunctionSwingingShip)),
|
||||
SET_FIELD(Flags, RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_MAIN | RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_SUPPORTS |
|
||||
.AlternateType = RIDE_TYPE_NULL,
|
||||
.Category = RIDE_CATEGORY_THRILL,
|
||||
.EnabledTrackPieces = {},
|
||||
.ExtraTrackPieces = {},
|
||||
.CoveredTrackPieces = {},
|
||||
.StartTrackPiece = TrackElemType::FlatTrack1x5,
|
||||
.TrackPaintFunctions = TrackDrawerDescriptor(GetTrackPaintFunctionSwingingShip),
|
||||
.Flags = RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_MAIN | RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_SUPPORTS |
|
||||
RIDE_TYPE_FLAG_HAS_SINGLE_PIECE_STATION | RIDE_TYPE_FLAG_CANNOT_HAVE_GAPS |
|
||||
RIDE_TYPE_FLAG_HAS_LOAD_OPTIONS | RIDE_TYPE_FLAG_VEHICLE_IS_INTEGRAL | RIDE_TYPE_FLAG_TRACK_NO_WALLS |
|
||||
RIDE_TYPE_FLAG_FLAT_RIDE | RIDE_TYPE_FLAG_HAS_VEHICLE_COLOURS | RIDE_TYPE_FLAG_ALLOW_MUSIC |
|
||||
RIDE_TYPE_FLAG_HAS_ENTRANCE_EXIT | RIDE_TYPE_FLAG_SINGLE_SESSION | RIDE_TYPE_FLAG_INTERESTING_TO_LOOK_AT |
|
||||
RIDE_TYPE_FLAG_LIST_VEHICLES_SEPARATELY),
|
||||
SET_FIELD(RideModes, EnumsToFlags(RideMode::Swing)),
|
||||
SET_FIELD(DefaultMode, RideMode::Swing),
|
||||
SET_FIELD(OperatingSettings, { 7, 25, 0, 0, 0, 0 }),
|
||||
SET_FIELD(Naming, { STR_RIDE_NAME_SWINGING_SHIP, STR_RIDE_DESCRIPTION_SWINGING_SHIP }),
|
||||
SET_FIELD(NameConvention, { RideComponentType::Ship, RideComponentType::Structure, RideComponentType::Station }),
|
||||
SET_FIELD(EnumName, nameof(RIDE_TYPE_SWINGING_SHIP)),
|
||||
SET_FIELD(AvailableBreakdowns, (1 << BREAKDOWN_SAFETY_CUT_OUT)),
|
||||
SET_FIELD(Heights, { 12, 112, 7, 11, }),
|
||||
SET_FIELD(MaxMass, 255),
|
||||
SET_FIELD(LiftData, { OpenRCT2::Audio::SoundId::Null, 5, 5 }),
|
||||
SET_FIELD(RatingsMultipliers, { 50, 30, 10 }),
|
||||
SET_FIELD(UpkeepCosts, { 50, 1, 0, 0, 0, 0 }),
|
||||
SET_FIELD(BuildCosts, { 77.50_GBP, 1.00_GBP, 1, }),
|
||||
SET_FIELD(DefaultPrices, { 15, 0 }),
|
||||
SET_FIELD(DefaultMusic, MUSIC_OBJECT_PIRATE),
|
||||
SET_FIELD(PhotoItem, ShopItem::Photo),
|
||||
SET_FIELD(BonusValue, 35),
|
||||
SET_FIELD(ColourPresets, TRACK_COLOUR_PRESETS(
|
||||
RIDE_TYPE_FLAG_LIST_VEHICLES_SEPARATELY,
|
||||
.RideModes = EnumsToFlags(RideMode::Swing),
|
||||
.DefaultMode = RideMode::Swing,
|
||||
.OperatingSettings = { 7, 25, 0, 0, 0, 0 },
|
||||
.Naming = { STR_RIDE_NAME_SWINGING_SHIP, STR_RIDE_DESCRIPTION_SWINGING_SHIP },
|
||||
.NameConvention = { RideComponentType::Ship, RideComponentType::Structure, RideComponentType::Station },
|
||||
.EnumName = nameof(RIDE_TYPE_SWINGING_SHIP),
|
||||
.AvailableBreakdowns = (1 << BREAKDOWN_SAFETY_CUT_OUT),
|
||||
.Heights = { 12, 112, 7, 11, },
|
||||
.MaxMass = 255,
|
||||
.LiftData = { OpenRCT2::Audio::SoundId::Null, 5, 5 },
|
||||
.RatingsMultipliers = { 50, 30, 10 },
|
||||
.UpkeepCosts = { 50, 1, 0, 0, 0, 0 },
|
||||
.BuildCosts = { 77.50_GBP, 1.00_GBP, 1, },
|
||||
.DefaultPrices = { 15, 0 },
|
||||
.DefaultMusic = MUSIC_OBJECT_PIRATE,
|
||||
.PhotoItem = ShopItem::Photo,
|
||||
.BonusValue = 35,
|
||||
.ColourPresets = TRACK_COLOUR_PRESETS(
|
||||
{ COLOUR_DARK_BROWN, COLOUR_DARK_BROWN, COLOUR_BLACK },
|
||||
)),
|
||||
SET_FIELD(ColourPreview, { SPR_RIDE_DESIGN_PREVIEW_SWINGING_SHIP_TRACK, SPR_RIDE_DESIGN_PREVIEW_SWINGING_SHIP_SUPPORTS }),
|
||||
SET_FIELD(ColourKey, RideColourKey::Ride),
|
||||
SET_FIELD(Name, "swinging_ship"),
|
||||
SET_FIELD(RatingsData,
|
||||
),
|
||||
.ColourPreview = { SPR_RIDE_DESIGN_PREVIEW_SWINGING_SHIP_TRACK, SPR_RIDE_DESIGN_PREVIEW_SWINGING_SHIP_SUPPORTS },
|
||||
.ColourKey = RideColourKey::Ride,
|
||||
.Name = "swinging_ship",
|
||||
.RatingsData =
|
||||
{
|
||||
RatingsCalculationType::FlatRide,
|
||||
{ RIDE_RATING(1, 50), RIDE_RATING(1, 90), RIDE_RATING(1, 41) },
|
||||
@@ -64,6 +64,6 @@ constexpr RideTypeDescriptor SwingingShipRTD =
|
||||
{ RatingsModifierType::BonusOperationOption, 0, 5, 5, 10 },
|
||||
{ RatingsModifierType::BonusScenery, 0, 16732, 0, 0 },
|
||||
},
|
||||
}),
|
||||
},
|
||||
};
|
||||
// clang-format on
|
||||
|
||||
@@ -17,44 +17,44 @@
|
||||
// clang-format off
|
||||
constexpr RideTypeDescriptor TopSpinRTD =
|
||||
{
|
||||
SET_FIELD(AlternateType, RIDE_TYPE_NULL),
|
||||
SET_FIELD(Category, RIDE_CATEGORY_THRILL),
|
||||
SET_FIELD(EnabledTrackPieces, {}),
|
||||
SET_FIELD(ExtraTrackPieces, {}),
|
||||
SET_FIELD(CoveredTrackPieces, {}),
|
||||
SET_FIELD(StartTrackPiece, TrackElemType::FlatTrack3x3),
|
||||
SET_FIELD(TrackPaintFunctions, TrackDrawerDescriptor(GetTrackPaintFunctionTopspin)),
|
||||
SET_FIELD(Flags, RIDE_TYPE_FLAGS_TRACK_HAS_3_COLOURS | RIDE_TYPE_FLAG_HAS_SINGLE_PIECE_STATION |
|
||||
.AlternateType = RIDE_TYPE_NULL,
|
||||
.Category = RIDE_CATEGORY_THRILL,
|
||||
.EnabledTrackPieces = {},
|
||||
.ExtraTrackPieces = {},
|
||||
.CoveredTrackPieces = {},
|
||||
.StartTrackPiece = TrackElemType::FlatTrack3x3,
|
||||
.TrackPaintFunctions = TrackDrawerDescriptor(GetTrackPaintFunctionTopspin),
|
||||
.Flags = RIDE_TYPE_FLAGS_TRACK_HAS_3_COLOURS | RIDE_TYPE_FLAG_HAS_SINGLE_PIECE_STATION |
|
||||
RIDE_TYPE_FLAG_CANNOT_HAVE_GAPS | RIDE_TYPE_FLAG_HAS_LOAD_OPTIONS | RIDE_TYPE_FLAG_VEHICLE_IS_INTEGRAL |
|
||||
RIDE_TYPE_FLAG_TRACK_NO_WALLS | RIDE_TYPE_FLAG_FLAT_RIDE | RIDE_TYPE_FLAG_HAS_VEHICLE_COLOURS |
|
||||
RIDE_TYPE_FLAG_ALLOW_MUSIC | RIDE_TYPE_FLAG_HAS_ENTRANCE_EXIT | RIDE_TYPE_FLAG_SINGLE_SESSION |
|
||||
RIDE_TYPE_FLAG_INTERESTING_TO_LOOK_AT | RIDE_TYPE_FLAG_LIST_VEHICLES_SEPARATELY),
|
||||
SET_FIELD(RideModes, EnumsToFlags(RideMode::Beginners, RideMode::Intense, RideMode::Berserk)),
|
||||
SET_FIELD(DefaultMode, RideMode::Beginners),
|
||||
SET_FIELD(OperatingSettings, { 0, 0, 0, 0, 0, 0 }),
|
||||
SET_FIELD(Naming, { STR_RIDE_NAME_TOP_SPIN, STR_RIDE_DESCRIPTION_TOP_SPIN }),
|
||||
SET_FIELD(NameConvention, { RideComponentType::Car, RideComponentType::Structure, RideComponentType::Station }),
|
||||
SET_FIELD(EnumName, nameof(RIDE_TYPE_TOP_SPIN)),
|
||||
SET_FIELD(AvailableBreakdowns, (1 << BREAKDOWN_SAFETY_CUT_OUT)),
|
||||
SET_FIELD(Heights, { 16, 112, 3, 2, }),
|
||||
SET_FIELD(MaxMass, 255),
|
||||
SET_FIELD(LiftData, { OpenRCT2::Audio::SoundId::Null, 5, 5 }),
|
||||
SET_FIELD(RatingsMultipliers, { 24, 20, 10 }),
|
||||
SET_FIELD(UpkeepCosts, { 50, 1, 0, 0, 0, 0 }),
|
||||
SET_FIELD(BuildCosts, { 72.50_GBP, 1.00_GBP, 1, }),
|
||||
SET_FIELD(DefaultPrices, { 20, 0 }),
|
||||
SET_FIELD(DefaultMusic, MUSIC_OBJECT_TECHNO),
|
||||
SET_FIELD(PhotoItem, ShopItem::Photo),
|
||||
SET_FIELD(BonusValue, 55),
|
||||
SET_FIELD(ColourPresets, TRACK_COLOUR_PRESETS(
|
||||
RIDE_TYPE_FLAG_INTERESTING_TO_LOOK_AT | RIDE_TYPE_FLAG_LIST_VEHICLES_SEPARATELY,
|
||||
.RideModes = EnumsToFlags(RideMode::Beginners, RideMode::Intense, RideMode::Berserk),
|
||||
.DefaultMode = RideMode::Beginners,
|
||||
.OperatingSettings = { 0, 0, 0, 0, 0, 0 },
|
||||
.Naming = { STR_RIDE_NAME_TOP_SPIN, STR_RIDE_DESCRIPTION_TOP_SPIN },
|
||||
.NameConvention = { RideComponentType::Car, RideComponentType::Structure, RideComponentType::Station },
|
||||
.EnumName = nameof(RIDE_TYPE_TOP_SPIN),
|
||||
.AvailableBreakdowns = (1 << BREAKDOWN_SAFETY_CUT_OUT),
|
||||
.Heights = { 16, 112, 3, 2, },
|
||||
.MaxMass = 255,
|
||||
.LiftData = { OpenRCT2::Audio::SoundId::Null, 5, 5 },
|
||||
.RatingsMultipliers = { 24, 20, 10 },
|
||||
.UpkeepCosts = { 50, 1, 0, 0, 0, 0 },
|
||||
.BuildCosts = { 72.50_GBP, 1.00_GBP, 1, },
|
||||
.DefaultPrices = { 20, 0 },
|
||||
.DefaultMusic = MUSIC_OBJECT_TECHNO,
|
||||
.PhotoItem = ShopItem::Photo,
|
||||
.BonusValue = 55,
|
||||
.ColourPresets = TRACK_COLOUR_PRESETS(
|
||||
{ COLOUR_BRIGHT_RED, COLOUR_YELLOW, COLOUR_YELLOW },
|
||||
{ COLOUR_TEAL, COLOUR_WHITE, COLOUR_WHITE },
|
||||
{ COLOUR_DARK_GREEN, COLOUR_BRIGHT_RED, COLOUR_BRIGHT_RED },
|
||||
)),
|
||||
SET_FIELD(ColourPreview, { SPR_RIDE_DESIGN_PREVIEW_TOP_SPIN_TRACK, 0 }),
|
||||
SET_FIELD(ColourKey, RideColourKey::Ride),
|
||||
SET_FIELD(Name, "top_spin"),
|
||||
SET_FIELD(RatingsData,
|
||||
),
|
||||
.ColourPreview = { SPR_RIDE_DESIGN_PREVIEW_TOP_SPIN_TRACK, 0 },
|
||||
.ColourKey = RideColourKey::Ride,
|
||||
.Name = "top_spin",
|
||||
.RatingsData =
|
||||
{
|
||||
RatingsCalculationType::FlatRide,
|
||||
{ 1, 1, 1 },
|
||||
@@ -65,6 +65,6 @@ constexpr RideTypeDescriptor TopSpinRTD =
|
||||
{ RatingsModifierType::BonusTopSpinMode, 0, 0, 0, 0 },
|
||||
{ RatingsModifierType::BonusScenery, 0, 11155, 0, 0 },
|
||||
},
|
||||
}),
|
||||
},
|
||||
};
|
||||
// clang-format on
|
||||
|
||||
@@ -16,39 +16,39 @@
|
||||
// clang-format off
|
||||
constexpr RideTypeDescriptor TwistRTD =
|
||||
{
|
||||
SET_FIELD(AlternateType, RIDE_TYPE_NULL),
|
||||
SET_FIELD(Category, RIDE_CATEGORY_THRILL),
|
||||
SET_FIELD(EnabledTrackPieces, {}),
|
||||
SET_FIELD(ExtraTrackPieces, {}),
|
||||
SET_FIELD(CoveredTrackPieces, {}),
|
||||
SET_FIELD(StartTrackPiece, TrackElemType::FlatTrack3x3),
|
||||
SET_FIELD(TrackPaintFunctions, TrackDrawerDescriptor(GetTrackPaintFunctionTwist)),
|
||||
SET_FIELD(Flags, RIDE_TYPE_FLAG_HAS_SINGLE_PIECE_STATION | RIDE_TYPE_FLAG_CANNOT_HAVE_GAPS | RIDE_TYPE_FLAG_HAS_LOAD_OPTIONS |
|
||||
.AlternateType = RIDE_TYPE_NULL,
|
||||
.Category = RIDE_CATEGORY_THRILL,
|
||||
.EnabledTrackPieces = {},
|
||||
.ExtraTrackPieces = {},
|
||||
.CoveredTrackPieces = {},
|
||||
.StartTrackPiece = TrackElemType::FlatTrack3x3,
|
||||
.TrackPaintFunctions = TrackDrawerDescriptor(GetTrackPaintFunctionTwist),
|
||||
.Flags = RIDE_TYPE_FLAG_HAS_SINGLE_PIECE_STATION | RIDE_TYPE_FLAG_CANNOT_HAVE_GAPS | RIDE_TYPE_FLAG_HAS_LOAD_OPTIONS |
|
||||
RIDE_TYPE_FLAG_VEHICLE_IS_INTEGRAL | RIDE_TYPE_FLAG_TRACK_NO_WALLS | RIDE_TYPE_FLAG_FLAT_RIDE |
|
||||
RIDE_TYPE_FLAG_HAS_VEHICLE_COLOURS | RIDE_TYPE_FLAG_ALLOW_MUSIC | RIDE_TYPE_FLAG_HAS_ENTRANCE_EXIT |
|
||||
RIDE_TYPE_FLAG_SINGLE_SESSION | RIDE_TYPE_FLAG_INTERESTING_TO_LOOK_AT | RIDE_TYPE_FLAG_LIST_VEHICLES_SEPARATELY),
|
||||
SET_FIELD(RideModes, EnumsToFlags(RideMode::Rotation)),
|
||||
SET_FIELD(DefaultMode, RideMode::Rotation),
|
||||
SET_FIELD(OperatingSettings, { 3, 6, 0, 0, 0, 0, 12, 3 }),
|
||||
SET_FIELD(Naming, { STR_RIDE_NAME_TWIST, STR_RIDE_DESCRIPTION_TWIST }),
|
||||
SET_FIELD(NameConvention, { RideComponentType::Structure, RideComponentType::Structure, RideComponentType::Station }),
|
||||
SET_FIELD(EnumName, nameof(RIDE_TYPE_TWIST)),
|
||||
SET_FIELD(AvailableBreakdowns, (1 << BREAKDOWN_SAFETY_CUT_OUT)),
|
||||
SET_FIELD(Heights, { 12, 64, 3, 2, }),
|
||||
SET_FIELD(MaxMass, 255),
|
||||
SET_FIELD(LiftData, { OpenRCT2::Audio::SoundId::Null, 5, 5 }),
|
||||
SET_FIELD(RatingsMultipliers, { 40, 20, 10 }),
|
||||
SET_FIELD(UpkeepCosts, { 50, 1, 0, 0, 0, 0 }),
|
||||
SET_FIELD(BuildCosts, { 45.00_GBP, 1.00_GBP, 1, }),
|
||||
SET_FIELD(DefaultPrices, { 10, 0 }),
|
||||
SET_FIELD(DefaultMusic, MUSIC_OBJECT_GENTLE),
|
||||
SET_FIELD(PhotoItem, ShopItem::Photo),
|
||||
SET_FIELD(BonusValue, 40),
|
||||
SET_FIELD(ColourPresets, DEFAULT_FLAT_RIDE_COLOUR_PRESET),
|
||||
SET_FIELD(ColourPreview, { 0, 0 }),
|
||||
SET_FIELD(ColourKey, RideColourKey::Ride),
|
||||
SET_FIELD(Name, "twist"),
|
||||
SET_FIELD(RatingsData,
|
||||
RIDE_TYPE_FLAG_SINGLE_SESSION | RIDE_TYPE_FLAG_INTERESTING_TO_LOOK_AT | RIDE_TYPE_FLAG_LIST_VEHICLES_SEPARATELY,
|
||||
.RideModes = EnumsToFlags(RideMode::Rotation),
|
||||
.DefaultMode = RideMode::Rotation,
|
||||
.OperatingSettings = { 3, 6, 0, 0, 0, 0, 12, 3 },
|
||||
.Naming = { STR_RIDE_NAME_TWIST, STR_RIDE_DESCRIPTION_TWIST },
|
||||
.NameConvention = { RideComponentType::Structure, RideComponentType::Structure, RideComponentType::Station },
|
||||
.EnumName = nameof(RIDE_TYPE_TWIST),
|
||||
.AvailableBreakdowns = (1 << BREAKDOWN_SAFETY_CUT_OUT),
|
||||
.Heights = { 12, 64, 3, 2, },
|
||||
.MaxMass = 255,
|
||||
.LiftData = { OpenRCT2::Audio::SoundId::Null, 5, 5 },
|
||||
.RatingsMultipliers = { 40, 20, 10 },
|
||||
.UpkeepCosts = { 50, 1, 0, 0, 0, 0 },
|
||||
.BuildCosts = { 45.00_GBP, 1.00_GBP, 1, },
|
||||
.DefaultPrices = { 10, 0 },
|
||||
.DefaultMusic = MUSIC_OBJECT_GENTLE,
|
||||
.PhotoItem = ShopItem::Photo,
|
||||
.BonusValue = 40,
|
||||
.ColourPresets = DEFAULT_FLAT_RIDE_COLOUR_PRESET,
|
||||
.ColourPreview = { 0, 0 },
|
||||
.ColourKey = RideColourKey::Ride,
|
||||
.Name = "twist",
|
||||
.RatingsData =
|
||||
{
|
||||
RatingsCalculationType::FlatRide,
|
||||
{ RIDE_RATING(1, 13), RIDE_RATING(0, 97), RIDE_RATING(1, 90) },
|
||||
@@ -59,6 +59,6 @@ constexpr RideTypeDescriptor TwistRTD =
|
||||
{ RatingsModifierType::BonusRotations, 0, 20, 20, 20 },
|
||||
{ RatingsModifierType::BonusScenery, 0, 13943, 0, 0 },
|
||||
},
|
||||
}),
|
||||
},
|
||||
};
|
||||
// clang-format on
|
||||
|
||||
@@ -18,44 +18,44 @@
|
||||
// clang-format off
|
||||
constexpr RideTypeDescriptor ChairliftRTD =
|
||||
{
|
||||
SET_FIELD(AlternateType, RIDE_TYPE_NULL),
|
||||
SET_FIELD(Category, RIDE_CATEGORY_TRANSPORT),
|
||||
SET_FIELD(EnabledTrackPieces, {TRACK_STRAIGHT, TRACK_STATION_END, TRACK_SLOPE, TRACK_CURVE_VERY_SMALL}),
|
||||
SET_FIELD(ExtraTrackPieces, {}),
|
||||
SET_FIELD(CoveredTrackPieces, {}),
|
||||
SET_FIELD(StartTrackPiece, TrackElemType::EndStation),
|
||||
SET_FIELD(TrackPaintFunctions, TrackDrawerDescriptor(GetTrackPaintFunctionChairlift)),
|
||||
SET_FIELD(Flags, RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_MAIN | RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_SUPPORTS | RIDE_TYPE_FLAG_CAN_SYNCHRONISE_ADJACENT_STATIONS |
|
||||
.AlternateType = RIDE_TYPE_NULL,
|
||||
.Category = RIDE_CATEGORY_TRANSPORT,
|
||||
.EnabledTrackPieces = {TRACK_STRAIGHT, TRACK_STATION_END, TRACK_SLOPE, TRACK_CURVE_VERY_SMALL},
|
||||
.ExtraTrackPieces = {},
|
||||
.CoveredTrackPieces = {},
|
||||
.StartTrackPiece = TrackElemType::EndStation,
|
||||
.TrackPaintFunctions = TrackDrawerDescriptor(GetTrackPaintFunctionChairlift),
|
||||
.Flags = RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_MAIN | RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_SUPPORTS | RIDE_TYPE_FLAG_CAN_SYNCHRONISE_ADJACENT_STATIONS |
|
||||
RIDE_TYPE_FLAG_HAS_LOAD_OPTIONS | RIDE_TYPE_FLAG_HAS_VEHICLE_COLOURS | RIDE_TYPE_FLAG_HAS_TRACK |
|
||||
RIDE_TYPE_FLAG_SUPPORTS_MULTIPLE_TRACK_COLOUR | RIDE_TYPE_FLAG_ALLOW_MUSIC | RIDE_TYPE_FLAG_HAS_ENTRANCE_EXIT |
|
||||
RIDE_TYPE_FLAG_ALLOW_MORE_VEHICLES_THAN_STATION_FITS | RIDE_TYPE_FLAG_TRANSPORT_RIDE | RIDE_TYPE_FLAG_SHOW_IN_TRACK_DESIGNER |
|
||||
RIDE_TYPE_FLAG_SLIGHTLY_INTERESTING_TO_LOOK_AT | RIDE_TYPE_FLAG_IS_SUSPENDED),
|
||||
SET_FIELD(RideModes, EnumsToFlags(RideMode::StationToStation)),
|
||||
SET_FIELD(DefaultMode, RideMode::StationToStation),
|
||||
SET_FIELD(OperatingSettings, { 1, 4, 0, 0, 0, 0 }),
|
||||
SET_FIELD(Naming, { STR_RIDE_NAME_CHAIRLIFT, STR_RIDE_DESCRIPTION_CHAIRLIFT }),
|
||||
SET_FIELD(NameConvention, { RideComponentType::Car, RideComponentType::Track, RideComponentType::Station }),
|
||||
SET_FIELD(EnumName, nameof(RIDE_TYPE_CHAIRLIFT)),
|
||||
SET_FIELD(AvailableBreakdowns, (1 << BREAKDOWN_SAFETY_CUT_OUT)),
|
||||
SET_FIELD(Heights, { 40, 32, 28, 2, }),
|
||||
SET_FIELD(MaxMass, 18),
|
||||
SET_FIELD(LiftData, { OpenRCT2::Audio::SoundId::Null, 5, 5 }),
|
||||
SET_FIELD(RatingsMultipliers, { 70, 10, 0 }),
|
||||
SET_FIELD(UpkeepCosts, { 60, 20, 0, 4, 3, 10 }),
|
||||
SET_FIELD(BuildCosts, { 32.50_GBP, 0.50_GBP, 30, }),
|
||||
SET_FIELD(DefaultPrices, { 10, 0 }),
|
||||
SET_FIELD(DefaultMusic, MUSIC_OBJECT_SUMMER),
|
||||
SET_FIELD(PhotoItem, ShopItem::Photo),
|
||||
SET_FIELD(BonusValue, 55),
|
||||
SET_FIELD(ColourPresets, TRACK_COLOUR_PRESETS(
|
||||
RIDE_TYPE_FLAG_SLIGHTLY_INTERESTING_TO_LOOK_AT | RIDE_TYPE_FLAG_IS_SUSPENDED,
|
||||
.RideModes = EnumsToFlags(RideMode::StationToStation),
|
||||
.DefaultMode = RideMode::StationToStation,
|
||||
.OperatingSettings = { 1, 4, 0, 0, 0, 0 },
|
||||
.Naming = { STR_RIDE_NAME_CHAIRLIFT, STR_RIDE_DESCRIPTION_CHAIRLIFT },
|
||||
.NameConvention = { RideComponentType::Car, RideComponentType::Track, RideComponentType::Station },
|
||||
.EnumName = nameof(RIDE_TYPE_CHAIRLIFT),
|
||||
.AvailableBreakdowns = (1 << BREAKDOWN_SAFETY_CUT_OUT),
|
||||
.Heights = { 40, 32, 28, 2, },
|
||||
.MaxMass = 18,
|
||||
.LiftData = { OpenRCT2::Audio::SoundId::Null, 5, 5 },
|
||||
.RatingsMultipliers = { 70, 10, 0 },
|
||||
.UpkeepCosts = { 60, 20, 0, 4, 3, 10 },
|
||||
.BuildCosts = { 32.50_GBP, 0.50_GBP, 30, },
|
||||
.DefaultPrices = { 10, 0 },
|
||||
.DefaultMusic = MUSIC_OBJECT_SUMMER,
|
||||
.PhotoItem = ShopItem::Photo,
|
||||
.BonusValue = 55,
|
||||
.ColourPresets = TRACK_COLOUR_PRESETS(
|
||||
{ COLOUR_BORDEAUX_RED, COLOUR_BORDEAUX_RED, COLOUR_GREY },
|
||||
{ COLOUR_WHITE, COLOUR_WHITE, COLOUR_OLIVE_GREEN },
|
||||
{ COLOUR_LIGHT_BROWN, COLOUR_LIGHT_BROWN, COLOUR_WHITE },
|
||||
)),
|
||||
SET_FIELD(ColourPreview, { SPR_RIDE_DESIGN_PREVIEW_CHAIRLIFT_TRACK, SPR_RIDE_DESIGN_PREVIEW_CHAIRLIFT_SUPPORTS }),
|
||||
SET_FIELD(ColourKey, RideColourKey::Ride),
|
||||
SET_FIELD(Name, "chairlift"),
|
||||
SET_FIELD(RatingsData,
|
||||
),
|
||||
.ColourPreview = { SPR_RIDE_DESIGN_PREVIEW_CHAIRLIFT_TRACK, SPR_RIDE_DESIGN_PREVIEW_CHAIRLIFT_SUPPORTS },
|
||||
.ColourKey = RideColourKey::Ride,
|
||||
.Name = "chairlift",
|
||||
.RatingsData =
|
||||
{
|
||||
RatingsCalculationType::Normal,
|
||||
{ RIDE_RATING(1, 60), RIDE_RATING(0, 40), RIDE_RATING(0, 50) },
|
||||
@@ -76,17 +76,17 @@ constexpr RideTypeDescriptor ChairliftRTD =
|
||||
{ RatingsModifierType::RequirementStations, 1, 0, 2, 1 },
|
||||
{ RatingsModifierType::RequirementUnsheltered, 4, 4, 1, 1 },
|
||||
},
|
||||
}),
|
||||
SET_FIELD(UpdateRotating, UpdateRotatingDefault),
|
||||
SET_FIELD(LightFXAddLightsMagicVehicle, LightFxAddLightsMagicVehicle_ChairLift),
|
||||
SET_FIELD(StartRideMusic, OpenRCT2::RideAudio::DefaultStartRideMusicChannel),
|
||||
SET_FIELD(DesignCreateMode, TrackDesignCreateMode::Default),
|
||||
SET_FIELD(MusicUpdateFunction, DefaultMusicUpdate),
|
||||
SET_FIELD(Classification, RideClassification::Ride),
|
||||
SET_FIELD(UpdateLeaveEntrance, PeepUpdateRideLeaveEntranceDefault),
|
||||
SET_FIELD(SpecialElementRatingAdjustment, SpecialTrackElementRatingsAjustment_Default),
|
||||
SET_FIELD(GetGuestWaypointLocation, GetGuestWaypointLocationDefault),
|
||||
SET_FIELD(ConstructionWindowContext, RideConstructionWindowContext::Default),
|
||||
SET_FIELD(RideUpdate, UpdateChairlift),
|
||||
},
|
||||
.UpdateRotating = UpdateRotatingDefault,
|
||||
.LightFXAddLightsMagicVehicle = LightFxAddLightsMagicVehicle_ChairLift,
|
||||
.StartRideMusic = OpenRCT2::RideAudio::DefaultStartRideMusicChannel,
|
||||
.DesignCreateMode = TrackDesignCreateMode::Default,
|
||||
.MusicUpdateFunction = DefaultMusicUpdate,
|
||||
.Classification = RideClassification::Ride,
|
||||
.UpdateLeaveEntrance = PeepUpdateRideLeaveEntranceDefault,
|
||||
.SpecialElementRatingAdjustment = SpecialTrackElementRatingsAjustment_Default,
|
||||
.GetGuestWaypointLocation = GetGuestWaypointLocationDefault,
|
||||
.ConstructionWindowContext = RideConstructionWindowContext::Default,
|
||||
.RideUpdate = UpdateChairlift,
|
||||
};
|
||||
// clang-format on
|
||||
|
||||
@@ -17,43 +17,43 @@
|
||||
// clang-format off
|
||||
constexpr RideTypeDescriptor LiftRTD =
|
||||
{
|
||||
SET_FIELD(AlternateType, RIDE_TYPE_NULL),
|
||||
SET_FIELD(Category, RIDE_CATEGORY_TRANSPORT),
|
||||
SET_FIELD(EnabledTrackPieces, {TRACK_TOWER_BASE}),
|
||||
SET_FIELD(ExtraTrackPieces, {}),
|
||||
SET_FIELD(CoveredTrackPieces, {}),
|
||||
SET_FIELD(StartTrackPiece, TrackElemType::TowerBase),
|
||||
SET_FIELD(TrackPaintFunctions, TrackDrawerDescriptor(GetTrackPaintFunctionLift)),
|
||||
SET_FIELD(Flags, RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_MAIN | RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_SUPPORTS | RIDE_TYPE_FLAG_HAS_SINGLE_PIECE_STATION |
|
||||
.AlternateType = RIDE_TYPE_NULL,
|
||||
.Category = RIDE_CATEGORY_TRANSPORT,
|
||||
.EnabledTrackPieces = {TRACK_TOWER_BASE},
|
||||
.ExtraTrackPieces = {},
|
||||
.CoveredTrackPieces = {},
|
||||
.StartTrackPiece = TrackElemType::TowerBase,
|
||||
.TrackPaintFunctions = TrackDrawerDescriptor(GetTrackPaintFunctionLift),
|
||||
.Flags = RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_MAIN | RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_SUPPORTS | RIDE_TYPE_FLAG_HAS_SINGLE_PIECE_STATION |
|
||||
RIDE_TYPE_FLAG_CANNOT_HAVE_GAPS | RIDE_TYPE_FLAG_HAS_LOAD_OPTIONS | RIDE_TYPE_FLAG_TRACK_NO_WALLS | RIDE_TYPE_FLAG_HAS_VEHICLE_COLOURS |
|
||||
RIDE_TYPE_FLAG_HAS_TRACK | RIDE_TYPE_FLAG_ALLOW_EXTRA_TOWER_BASES | RIDE_TYPE_FLAG_SUPPORTS_MULTIPLE_TRACK_COLOUR |
|
||||
RIDE_TYPE_FLAG_ALLOW_MUSIC | RIDE_TYPE_FLAG_HAS_ENTRANCE_EXIT | RIDE_TYPE_FLAG_TRANSPORT_RIDE | RIDE_TYPE_FLAG_SHOW_IN_TRACK_DESIGNER),
|
||||
SET_FIELD(RideModes, EnumsToFlags(RideMode::Shuttle)),
|
||||
SET_FIELD(DefaultMode, RideMode::Shuttle),
|
||||
SET_FIELD(OperatingSettings, { 0, 0, 0, 0, 0, 0 }),
|
||||
SET_FIELD(Naming, { STR_RIDE_NAME_LIFT, STR_RIDE_DESCRIPTION_LIFT }),
|
||||
SET_FIELD(NameConvention, { RideComponentType::Cabin, RideComponentType::Track, RideComponentType::Station }),
|
||||
SET_FIELD(EnumName, nameof(RIDE_TYPE_LIFT)),
|
||||
SET_FIELD(AvailableBreakdowns, (1 << BREAKDOWN_SAFETY_CUT_OUT) | (1 << BREAKDOWN_DOORS_STUCK_CLOSED) | (1 << BREAKDOWN_DOORS_STUCK_OPEN) | (1 << BREAKDOWN_VEHICLE_MALFUNCTION)),
|
||||
SET_FIELD(Heights, { 255, 32, 3, 2, }),
|
||||
SET_FIELD(MaxMass, 15),
|
||||
SET_FIELD(LiftData, { OpenRCT2::Audio::SoundId::Null, 5, 5 }),
|
||||
SET_FIELD(RatingsMultipliers, { 80, 10, 0 }),
|
||||
SET_FIELD(UpkeepCosts, { 50, 20, 0, 10, 0, 0 }),
|
||||
SET_FIELD(BuildCosts, { 19.50_GBP, 0.00_GBP, 4, }),
|
||||
SET_FIELD(DefaultPrices, { 10, 0 }),
|
||||
SET_FIELD(DefaultMusic, MUSIC_OBJECT_SUMMER),
|
||||
SET_FIELD(PhotoItem, ShopItem::Photo),
|
||||
SET_FIELD(BonusValue, 45),
|
||||
SET_FIELD(ColourPresets, TRACK_COLOUR_PRESETS(
|
||||
RIDE_TYPE_FLAG_ALLOW_MUSIC | RIDE_TYPE_FLAG_HAS_ENTRANCE_EXIT | RIDE_TYPE_FLAG_TRANSPORT_RIDE | RIDE_TYPE_FLAG_SHOW_IN_TRACK_DESIGNER,
|
||||
.RideModes = EnumsToFlags(RideMode::Shuttle),
|
||||
.DefaultMode = RideMode::Shuttle,
|
||||
.OperatingSettings = { 0, 0, 0, 0, 0, 0 },
|
||||
.Naming = { STR_RIDE_NAME_LIFT, STR_RIDE_DESCRIPTION_LIFT },
|
||||
.NameConvention = { RideComponentType::Cabin, RideComponentType::Track, RideComponentType::Station },
|
||||
.EnumName = nameof(RIDE_TYPE_LIFT),
|
||||
.AvailableBreakdowns = (1 << BREAKDOWN_SAFETY_CUT_OUT) | (1 << BREAKDOWN_DOORS_STUCK_CLOSED) | (1 << BREAKDOWN_DOORS_STUCK_OPEN) | (1 << BREAKDOWN_VEHICLE_MALFUNCTION),
|
||||
.Heights = { 255, 32, 3, 2, },
|
||||
.MaxMass = 15,
|
||||
.LiftData = { OpenRCT2::Audio::SoundId::Null, 5, 5 },
|
||||
.RatingsMultipliers = { 80, 10, 0 },
|
||||
.UpkeepCosts = { 50, 20, 0, 10, 0, 0 },
|
||||
.BuildCosts = { 19.50_GBP, 0.00_GBP, 4, },
|
||||
.DefaultPrices = { 10, 0 },
|
||||
.DefaultMusic = MUSIC_OBJECT_SUMMER,
|
||||
.PhotoItem = ShopItem::Photo,
|
||||
.BonusValue = 45,
|
||||
.ColourPresets = TRACK_COLOUR_PRESETS(
|
||||
{ COLOUR_BORDEAUX_RED, COLOUR_BORDEAUX_RED, COLOUR_GREY },
|
||||
{ COLOUR_DARK_GREEN, COLOUR_DARK_GREEN, COLOUR_GREY },
|
||||
{ COLOUR_BLACK, COLOUR_BLACK, COLOUR_GREY },
|
||||
)),
|
||||
SET_FIELD(ColourPreview, { SPR_RIDE_DESIGN_PREVIEW_LIFT_TRACK, 0 }),
|
||||
SET_FIELD(ColourKey, RideColourKey::Ride),
|
||||
SET_FIELD(Name, "lift"),
|
||||
SET_FIELD(RatingsData,
|
||||
),
|
||||
.ColourPreview = { SPR_RIDE_DESIGN_PREVIEW_LIFT_TRACK, 0 },
|
||||
.ColourKey = RideColourKey::Ride,
|
||||
.Name = "lift",
|
||||
.RatingsData =
|
||||
{
|
||||
RatingsCalculationType::Normal,
|
||||
{ RIDE_RATING(1, 11), RIDE_RATING(0, 35), RIDE_RATING(0, 30) },
|
||||
@@ -66,6 +66,6 @@ constexpr RideTypeDescriptor LiftRTD =
|
||||
{ RatingsModifierType::BonusTowerRide, 0, 45875, 0, 26214 },
|
||||
{ RatingsModifierType::RequirementUnsheltered, 5, 4, 1, 1 },
|
||||
},
|
||||
}),
|
||||
},
|
||||
};
|
||||
// clang-format on
|
||||
|
||||
@@ -18,44 +18,44 @@
|
||||
// clang-format off
|
||||
constexpr RideTypeDescriptor MiniatureRailwayRTD =
|
||||
{
|
||||
SET_FIELD(AlternateType, RIDE_TYPE_NULL),
|
||||
SET_FIELD(Category, RIDE_CATEGORY_TRANSPORT),
|
||||
SET_FIELD(EnabledTrackPieces, {TRACK_STRAIGHT, TRACK_STATION_END, TRACK_SLOPE, TRACK_S_BEND, TRACK_CURVE_SMALL, TRACK_CURVE, TRACK_CURVE_LARGE}),
|
||||
SET_FIELD(ExtraTrackPieces, {}),
|
||||
SET_FIELD(CoveredTrackPieces, {}),
|
||||
SET_FIELD(StartTrackPiece, TrackElemType::EndStation),
|
||||
SET_FIELD(TrackPaintFunctions, TrackDrawerDescriptor(GetTrackPaintFunctionMiniatureRailway)),
|
||||
SET_FIELD(Flags, RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_SUPPORTS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION | RIDE_TYPE_FLAG_CAN_SYNCHRONISE_ADJACENT_STATIONS |
|
||||
.AlternateType = RIDE_TYPE_NULL,
|
||||
.Category = RIDE_CATEGORY_TRANSPORT,
|
||||
.EnabledTrackPieces = {TRACK_STRAIGHT, TRACK_STATION_END, TRACK_SLOPE, TRACK_S_BEND, TRACK_CURVE_SMALL, TRACK_CURVE, TRACK_CURVE_LARGE},
|
||||
.ExtraTrackPieces = {},
|
||||
.CoveredTrackPieces = {},
|
||||
.StartTrackPiece = TrackElemType::EndStation,
|
||||
.TrackPaintFunctions = TrackDrawerDescriptor(GetTrackPaintFunctionMiniatureRailway),
|
||||
.Flags = RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_SUPPORTS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION | RIDE_TYPE_FLAG_CAN_SYNCHRONISE_ADJACENT_STATIONS |
|
||||
RIDE_TYPE_FLAG_HAS_DATA_LOGGING | RIDE_TYPE_FLAG_HAS_LOAD_OPTIONS | RIDE_TYPE_FLAG_HAS_VEHICLE_COLOURS |
|
||||
RIDE_TYPE_FLAG_HAS_TRACK | RIDE_TYPE_FLAG_SUPPORTS_MULTIPLE_TRACK_COLOUR |
|
||||
RIDE_TYPE_FLAG_ALLOW_MUSIC | RIDE_TYPE_FLAG_HAS_ENTRANCE_EXIT | RIDE_TYPE_FLAG_ALLOW_MORE_VEHICLES_THAN_STATION_FITS |
|
||||
RIDE_TYPE_FLAG_ALLOW_MULTIPLE_CIRCUITS | RIDE_TYPE_FLAG_TRANSPORT_RIDE | RIDE_TYPE_FLAG_SHOW_IN_TRACK_DESIGNER |
|
||||
RIDE_TYPE_FLAG_SUPPORTS_LEVEL_CROSSINGS),
|
||||
SET_FIELD(RideModes, EnumsToFlags(RideMode::ContinuousCircuit, RideMode::Shuttle)),
|
||||
SET_FIELD(DefaultMode, RideMode::ContinuousCircuit),
|
||||
SET_FIELD(OperatingSettings, { 0, 0, 0, 0, 0, 0 }),
|
||||
SET_FIELD(Naming, { STR_RIDE_NAME_MINIATURE_RAILWAY, STR_RIDE_DESCRIPTION_MINIATURE_RAILWAY }),
|
||||
SET_FIELD(NameConvention, { RideComponentType::Train, RideComponentType::Track, RideComponentType::Station }),
|
||||
SET_FIELD(EnumName, nameof(RIDE_TYPE_MINIATURE_RAILWAY)),
|
||||
SET_FIELD(AvailableBreakdowns, (1 << BREAKDOWN_SAFETY_CUT_OUT) | (1 << BREAKDOWN_VEHICLE_MALFUNCTION)),
|
||||
SET_FIELD(Heights, { 7, 32, 5, 9, }),
|
||||
SET_FIELD(MaxMass, 39),
|
||||
SET_FIELD(LiftData, { OpenRCT2::Audio::SoundId::Null, 5, 5 }),
|
||||
SET_FIELD(RatingsMultipliers, { 70, 6, -10 }),
|
||||
SET_FIELD(UpkeepCosts, { 60, 20, 0, 10, 3, 5 }),
|
||||
SET_FIELD(BuildCosts, { 17.50_GBP, 3.00_GBP, 50, }),
|
||||
SET_FIELD(DefaultPrices, { 10, 0 }),
|
||||
SET_FIELD(DefaultMusic, MUSIC_OBJECT_SUMMER),
|
||||
SET_FIELD(PhotoItem, ShopItem::Photo),
|
||||
SET_FIELD(BonusValue, 50),
|
||||
SET_FIELD(ColourPresets, TRACK_COLOUR_PRESETS(
|
||||
RIDE_TYPE_FLAG_SUPPORTS_LEVEL_CROSSINGS,
|
||||
.RideModes = EnumsToFlags(RideMode::ContinuousCircuit, RideMode::Shuttle),
|
||||
.DefaultMode = RideMode::ContinuousCircuit,
|
||||
.OperatingSettings = { 0, 0, 0, 0, 0, 0 },
|
||||
.Naming = { STR_RIDE_NAME_MINIATURE_RAILWAY, STR_RIDE_DESCRIPTION_MINIATURE_RAILWAY },
|
||||
.NameConvention = { RideComponentType::Train, RideComponentType::Track, RideComponentType::Station },
|
||||
.EnumName = nameof(RIDE_TYPE_MINIATURE_RAILWAY),
|
||||
.AvailableBreakdowns = (1 << BREAKDOWN_SAFETY_CUT_OUT) | (1 << BREAKDOWN_VEHICLE_MALFUNCTION),
|
||||
.Heights = { 7, 32, 5, 9, },
|
||||
.MaxMass = 39,
|
||||
.LiftData = { OpenRCT2::Audio::SoundId::Null, 5, 5 },
|
||||
.RatingsMultipliers = { 70, 6, -10 },
|
||||
.UpkeepCosts = { 60, 20, 0, 10, 3, 5 },
|
||||
.BuildCosts = { 17.50_GBP, 3.00_GBP, 50, },
|
||||
.DefaultPrices = { 10, 0 },
|
||||
.DefaultMusic = MUSIC_OBJECT_SUMMER,
|
||||
.PhotoItem = ShopItem::Photo,
|
||||
.BonusValue = 50,
|
||||
.ColourPresets = TRACK_COLOUR_PRESETS(
|
||||
{ COLOUR_LIGHT_BLUE, COLOUR_WHITE, COLOUR_DARK_BROWN },
|
||||
{ COLOUR_BRIGHT_RED, COLOUR_WHITE, COLOUR_BLACK },
|
||||
)),
|
||||
SET_FIELD(ColourPreview, { SPR_RIDE_DESIGN_PREVIEW_MINIATURE_RAILWAY_TRACK, SPR_RIDE_DESIGN_PREVIEW_MINIATURE_RAILWAY_SUPPORTS }),
|
||||
SET_FIELD(ColourKey, RideColourKey::Ride),
|
||||
SET_FIELD(Name, "miniature_railway"),
|
||||
SET_FIELD(RatingsData,
|
||||
),
|
||||
.ColourPreview = { SPR_RIDE_DESIGN_PREVIEW_MINIATURE_RAILWAY_TRACK, SPR_RIDE_DESIGN_PREVIEW_MINIATURE_RAILWAY_SUPPORTS },
|
||||
.ColourKey = RideColourKey::Ride,
|
||||
.Name = "miniature_railway",
|
||||
.RatingsData =
|
||||
{
|
||||
RatingsCalculationType::Normal,
|
||||
{ RIDE_RATING(2, 50), RIDE_RATING(0, 00), RIDE_RATING(0, 00) },
|
||||
@@ -74,8 +74,8 @@ constexpr RideTypeDescriptor MiniatureRailwayRTD =
|
||||
{ RatingsModifierType::RequirementLength, 0xC80000, 2, 2, 2 },
|
||||
{ RatingsModifierType::RequirementUnsheltered, 4, 4, 1, 1 },
|
||||
},
|
||||
}),
|
||||
SET_FIELD(UpdateRotating, UpdateRotatingDefault),
|
||||
SET_FIELD(LightFXAddLightsMagicVehicle, LightFxAddLightsMagicVehicle_MiniatureRailway),
|
||||
},
|
||||
.UpdateRotating = UpdateRotatingDefault,
|
||||
.LightFXAddLightsMagicVehicle = LightFxAddLightsMagicVehicle_MiniatureRailway,
|
||||
};
|
||||
// clang-format on
|
||||
|
||||
@@ -18,47 +18,47 @@
|
||||
// clang-format off
|
||||
constexpr RideTypeDescriptor MonorailRTD =
|
||||
{
|
||||
SET_FIELD(AlternateType, RIDE_TYPE_NULL),
|
||||
SET_FIELD(Category, RIDE_CATEGORY_TRANSPORT),
|
||||
SET_FIELD(EnabledTrackPieces, {TRACK_STRAIGHT, TRACK_STATION_END, TRACK_SLOPE, TRACK_S_BEND, TRACK_CURVE_SMALL, TRACK_CURVE, TRACK_CURVE_LARGE}),
|
||||
SET_FIELD(ExtraTrackPieces, {}),
|
||||
SET_FIELD(CoveredTrackPieces, {}),
|
||||
SET_FIELD(StartTrackPiece, TrackElemType::EndStation),
|
||||
SET_FIELD(TrackPaintFunctions, TrackDrawerDescriptor(GetTrackPaintFunctionMonorail)),
|
||||
SET_FIELD(Flags, RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_MAIN | RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_ADDITIONAL | RIDE_TYPE_FLAG_CAN_SYNCHRONISE_ADJACENT_STATIONS |
|
||||
.AlternateType = RIDE_TYPE_NULL,
|
||||
.Category = RIDE_CATEGORY_TRANSPORT,
|
||||
.EnabledTrackPieces = {TRACK_STRAIGHT, TRACK_STATION_END, TRACK_SLOPE, TRACK_S_BEND, TRACK_CURVE_SMALL, TRACK_CURVE, TRACK_CURVE_LARGE},
|
||||
.ExtraTrackPieces = {},
|
||||
.CoveredTrackPieces = {},
|
||||
.StartTrackPiece = TrackElemType::EndStation,
|
||||
.TrackPaintFunctions = TrackDrawerDescriptor(GetTrackPaintFunctionMonorail),
|
||||
.Flags = RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_MAIN | RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_ADDITIONAL | RIDE_TYPE_FLAG_CAN_SYNCHRONISE_ADJACENT_STATIONS |
|
||||
RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_SUPPORTS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION |
|
||||
RIDE_TYPE_FLAG_HAS_DATA_LOGGING | RIDE_TYPE_FLAG_HAS_LOAD_OPTIONS | RIDE_TYPE_FLAG_HAS_VEHICLE_COLOURS |
|
||||
RIDE_TYPE_FLAG_HAS_TRACK | RIDE_TYPE_FLAG_SUPPORTS_MULTIPLE_TRACK_COLOUR |
|
||||
RIDE_TYPE_FLAG_ALLOW_MUSIC | RIDE_TYPE_FLAG_HAS_ENTRANCE_EXIT | RIDE_TYPE_FLAG_ALLOW_MORE_VEHICLES_THAN_STATION_FITS |
|
||||
RIDE_TYPE_FLAG_ALLOW_MULTIPLE_CIRCUITS | RIDE_TYPE_FLAG_TRANSPORT_RIDE | RIDE_TYPE_FLAG_SHOW_IN_TRACK_DESIGNER),
|
||||
SET_FIELD(RideModes, EnumsToFlags(RideMode::ContinuousCircuit, RideMode::Shuttle)),
|
||||
SET_FIELD(DefaultMode, RideMode::ContinuousCircuit),
|
||||
SET_FIELD(OperatingSettings, { 0, 0, 0, 0, 0, 0 }),
|
||||
SET_FIELD(Naming, { STR_RIDE_NAME_MONORAIL, STR_RIDE_DESCRIPTION_MONORAIL }),
|
||||
SET_FIELD(NameConvention, { RideComponentType::Train, RideComponentType::Track, RideComponentType::Station }),
|
||||
SET_FIELD(EnumName, nameof(RIDE_TYPE_MONORAIL)),
|
||||
SET_FIELD(AvailableBreakdowns, (1 << BREAKDOWN_SAFETY_CUT_OUT) | (1 << BREAKDOWN_DOORS_STUCK_CLOSED) | (1 << BREAKDOWN_DOORS_STUCK_OPEN) | (1 << BREAKDOWN_VEHICLE_MALFUNCTION)),
|
||||
SET_FIELD(Heights, { 8, 32, 8, 9, }),
|
||||
SET_FIELD(MaxMass, 78),
|
||||
SET_FIELD(LiftData, { OpenRCT2::Audio::SoundId::Null, 5, 5 }),
|
||||
SET_FIELD(RatingsMultipliers, { 70, 6, -10 }),
|
||||
SET_FIELD(UpkeepCosts, { 65, 20, 0, 10, 3, 10 }),
|
||||
SET_FIELD(BuildCosts, { 21.00_GBP, 2.50_GBP, 50, }),
|
||||
SET_FIELD(DefaultPrices, { 10, 0 }),
|
||||
SET_FIELD(DefaultMusic, MUSIC_OBJECT_SUMMER),
|
||||
SET_FIELD(PhotoItem, ShopItem::Photo),
|
||||
SET_FIELD(BonusValue, 60),
|
||||
SET_FIELD(ColourPresets, TRACK_COLOUR_PRESETS(
|
||||
RIDE_TYPE_FLAG_ALLOW_MULTIPLE_CIRCUITS | RIDE_TYPE_FLAG_TRANSPORT_RIDE | RIDE_TYPE_FLAG_SHOW_IN_TRACK_DESIGNER,
|
||||
.RideModes = EnumsToFlags(RideMode::ContinuousCircuit, RideMode::Shuttle),
|
||||
.DefaultMode = RideMode::ContinuousCircuit,
|
||||
.OperatingSettings = { 0, 0, 0, 0, 0, 0 },
|
||||
.Naming = { STR_RIDE_NAME_MONORAIL, STR_RIDE_DESCRIPTION_MONORAIL },
|
||||
.NameConvention = { RideComponentType::Train, RideComponentType::Track, RideComponentType::Station },
|
||||
.EnumName = nameof(RIDE_TYPE_MONORAIL),
|
||||
.AvailableBreakdowns = (1 << BREAKDOWN_SAFETY_CUT_OUT) | (1 << BREAKDOWN_DOORS_STUCK_CLOSED) | (1 << BREAKDOWN_DOORS_STUCK_OPEN) | (1 << BREAKDOWN_VEHICLE_MALFUNCTION),
|
||||
.Heights = { 8, 32, 8, 9, },
|
||||
.MaxMass = 78,
|
||||
.LiftData = { OpenRCT2::Audio::SoundId::Null, 5, 5 },
|
||||
.RatingsMultipliers = { 70, 6, -10 },
|
||||
.UpkeepCosts = { 65, 20, 0, 10, 3, 10 },
|
||||
.BuildCosts = { 21.00_GBP, 2.50_GBP, 50, },
|
||||
.DefaultPrices = { 10, 0 },
|
||||
.DefaultMusic = MUSIC_OBJECT_SUMMER,
|
||||
.PhotoItem = ShopItem::Photo,
|
||||
.BonusValue = 60,
|
||||
.ColourPresets = TRACK_COLOUR_PRESETS(
|
||||
{ COLOUR_GREY, COLOUR_GREY, COLOUR_DARK_OLIVE_GREEN },
|
||||
{ COLOUR_GREY, COLOUR_GREY, COLOUR_SATURATED_BROWN },
|
||||
{ COLOUR_GREY, COLOUR_BORDEAUX_RED, COLOUR_BORDEAUX_RED },
|
||||
{ COLOUR_BORDEAUX_RED, COLOUR_BORDEAUX_RED, COLOUR_BLACK },
|
||||
{ COLOUR_OLIVE_GREEN, COLOUR_OLIVE_GREEN, COLOUR_WHITE },
|
||||
)),
|
||||
SET_FIELD(ColourPreview, { SPR_RIDE_DESIGN_PREVIEW_MONORAIL_TRACK, SPR_RIDE_DESIGN_PREVIEW_MONORAIL_SUPPORTS }),
|
||||
SET_FIELD(ColourKey, RideColourKey::Ride),
|
||||
SET_FIELD(Name, "monorail"),
|
||||
SET_FIELD(RatingsData,
|
||||
),
|
||||
.ColourPreview = { SPR_RIDE_DESIGN_PREVIEW_MONORAIL_TRACK, SPR_RIDE_DESIGN_PREVIEW_MONORAIL_SUPPORTS },
|
||||
.ColourKey = RideColourKey::Ride,
|
||||
.Name = "monorail",
|
||||
.RatingsData =
|
||||
{
|
||||
RatingsCalculationType::Normal,
|
||||
{ RIDE_RATING(2, 00), RIDE_RATING(0, 00), RIDE_RATING(0, 00) },
|
||||
@@ -77,8 +77,8 @@ constexpr RideTypeDescriptor MonorailRTD =
|
||||
{ RatingsModifierType::RequirementLength, 0xAA0000, 2, 2, 2 },
|
||||
{ RatingsModifierType::RequirementUnsheltered, 4, 4, 1, 1 },
|
||||
},
|
||||
}),
|
||||
SET_FIELD(UpdateRotating, UpdateRotatingDefault),
|
||||
SET_FIELD(LightFXAddLightsMagicVehicle, LightFxAddLightsMagicVehicle_Monorail),
|
||||
},
|
||||
.UpdateRotating = UpdateRotatingDefault,
|
||||
.LightFXAddLightsMagicVehicle = LightFxAddLightsMagicVehicle_Monorail,
|
||||
};
|
||||
// clang-format on
|
||||
|
||||
@@ -17,46 +17,46 @@
|
||||
// clang-format off
|
||||
constexpr RideTypeDescriptor SuspendedMonorailRTD =
|
||||
{
|
||||
SET_FIELD(AlternateType, RIDE_TYPE_NULL),
|
||||
SET_FIELD(Category, RIDE_CATEGORY_TRANSPORT),
|
||||
SET_FIELD(EnabledTrackPieces, {TRACK_STRAIGHT, TRACK_STATION_END, TRACK_SLOPE, TRACK_S_BEND, TRACK_CURVE_SMALL, TRACK_CURVE, TRACK_CURVE_LARGE}),
|
||||
SET_FIELD(ExtraTrackPieces, {}),
|
||||
SET_FIELD(CoveredTrackPieces, {}),
|
||||
SET_FIELD(StartTrackPiece, TrackElemType::EndStation),
|
||||
SET_FIELD(TrackPaintFunctions, TrackDrawerDescriptor(GetTrackPaintFunctionSuspendedMonorail)),
|
||||
SET_FIELD(Flags, RIDE_TYPE_FLAGS_TRACK_HAS_3_COLOURS | RIDE_TYPE_FLAG_CAN_SYNCHRONISE_ADJACENT_STATIONS |
|
||||
.AlternateType = RIDE_TYPE_NULL,
|
||||
.Category = RIDE_CATEGORY_TRANSPORT,
|
||||
.EnabledTrackPieces = {TRACK_STRAIGHT, TRACK_STATION_END, TRACK_SLOPE, TRACK_S_BEND, TRACK_CURVE_SMALL, TRACK_CURVE, TRACK_CURVE_LARGE},
|
||||
.ExtraTrackPieces = {},
|
||||
.CoveredTrackPieces = {},
|
||||
.StartTrackPiece = TrackElemType::EndStation,
|
||||
.TrackPaintFunctions = TrackDrawerDescriptor(GetTrackPaintFunctionSuspendedMonorail),
|
||||
.Flags = RIDE_TYPE_FLAGS_TRACK_HAS_3_COLOURS | RIDE_TYPE_FLAG_CAN_SYNCHRONISE_ADJACENT_STATIONS |
|
||||
RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION |
|
||||
RIDE_TYPE_FLAG_HAS_DATA_LOGGING | RIDE_TYPE_FLAG_HAS_LOAD_OPTIONS | RIDE_TYPE_FLAG_HAS_VEHICLE_COLOURS |
|
||||
RIDE_TYPE_FLAG_HAS_TRACK | RIDE_TYPE_FLAG_SUPPORTS_MULTIPLE_TRACK_COLOUR |
|
||||
RIDE_TYPE_FLAG_ALLOW_MUSIC | RIDE_TYPE_FLAG_HAS_ENTRANCE_EXIT | RIDE_TYPE_FLAG_ALLOW_MORE_VEHICLES_THAN_STATION_FITS |
|
||||
RIDE_TYPE_FLAG_ALLOW_MULTIPLE_CIRCUITS | RIDE_TYPE_FLAG_TRANSPORT_RIDE | RIDE_TYPE_FLAG_SHOW_IN_TRACK_DESIGNER |
|
||||
RIDE_TYPE_FLAG_IS_SUSPENDED),
|
||||
SET_FIELD(RideModes, EnumsToFlags(RideMode::ContinuousCircuit, RideMode::Shuttle)),
|
||||
SET_FIELD(DefaultMode, RideMode::ContinuousCircuit),
|
||||
SET_FIELD(OperatingSettings, { 0, 0, 0, 0, 0, 0 }),
|
||||
SET_FIELD(Naming, { STR_RIDE_NAME_SUSPENDED_MONORAIL, STR_RIDE_DESCRIPTION_SUSPENDED_MONORAIL }),
|
||||
SET_FIELD(NameConvention, { RideComponentType::Train, RideComponentType::Track, RideComponentType::Station }),
|
||||
SET_FIELD(EnumName, nameof(RIDE_TYPE_SUSPENDED_MONORAIL)),
|
||||
SET_FIELD(AvailableBreakdowns, (1 << BREAKDOWN_SAFETY_CUT_OUT) | (1 << BREAKDOWN_DOORS_STUCK_CLOSED) | (1 << BREAKDOWN_DOORS_STUCK_OPEN) | (1 << BREAKDOWN_VEHICLE_MALFUNCTION)),
|
||||
SET_FIELD(Heights, { 12, 40, 32, 8, }),
|
||||
SET_FIELD(MaxMass, 78),
|
||||
SET_FIELD(LiftData, { OpenRCT2::Audio::SoundId::Null, 5, 5 }),
|
||||
SET_FIELD(RatingsMultipliers, { 70, 6, -10 }),
|
||||
SET_FIELD(UpkeepCosts, { 70, 20, 0, 10, 3, 10 }),
|
||||
SET_FIELD(BuildCosts, { 32.50_GBP, 2.50_GBP, 50, }),
|
||||
SET_FIELD(DefaultPrices, { 10, 0 }),
|
||||
SET_FIELD(DefaultMusic, MUSIC_OBJECT_SUMMER),
|
||||
SET_FIELD(PhotoItem, ShopItem::Photo),
|
||||
SET_FIELD(BonusValue, 60),
|
||||
SET_FIELD(ColourPresets, TRACK_COLOUR_PRESETS(
|
||||
RIDE_TYPE_FLAG_IS_SUSPENDED,
|
||||
.RideModes = EnumsToFlags(RideMode::ContinuousCircuit, RideMode::Shuttle),
|
||||
.DefaultMode = RideMode::ContinuousCircuit,
|
||||
.OperatingSettings = { 0, 0, 0, 0, 0, 0 },
|
||||
.Naming = { STR_RIDE_NAME_SUSPENDED_MONORAIL, STR_RIDE_DESCRIPTION_SUSPENDED_MONORAIL },
|
||||
.NameConvention = { RideComponentType::Train, RideComponentType::Track, RideComponentType::Station },
|
||||
.EnumName = nameof(RIDE_TYPE_SUSPENDED_MONORAIL),
|
||||
.AvailableBreakdowns = (1 << BREAKDOWN_SAFETY_CUT_OUT) | (1 << BREAKDOWN_DOORS_STUCK_CLOSED) | (1 << BREAKDOWN_DOORS_STUCK_OPEN) | (1 << BREAKDOWN_VEHICLE_MALFUNCTION),
|
||||
.Heights = { 12, 40, 32, 8, },
|
||||
.MaxMass = 78,
|
||||
.LiftData = { OpenRCT2::Audio::SoundId::Null, 5, 5 },
|
||||
.RatingsMultipliers = { 70, 6, -10 },
|
||||
.UpkeepCosts = { 70, 20, 0, 10, 3, 10 },
|
||||
.BuildCosts = { 32.50_GBP, 2.50_GBP, 50, },
|
||||
.DefaultPrices = { 10, 0 },
|
||||
.DefaultMusic = MUSIC_OBJECT_SUMMER,
|
||||
.PhotoItem = ShopItem::Photo,
|
||||
.BonusValue = 60,
|
||||
.ColourPresets = TRACK_COLOUR_PRESETS(
|
||||
{ COLOUR_BORDEAUX_RED, COLOUR_BLACK, COLOUR_BLACK },
|
||||
{ COLOUR_DARK_PURPLE, COLOUR_DARK_PURPLE, COLOUR_BLACK },
|
||||
{ COLOUR_DARK_GREEN, COLOUR_DARK_GREEN, COLOUR_BLACK },
|
||||
)),
|
||||
SET_FIELD(ColourPreview, { SPR_RIDE_DESIGN_PREVIEW_SUSPENDED_MONORAIL_TRACK, SPR_RIDE_DESIGN_PREVIEW_SUSPENDED_MONORAIL_SUPPORTS }),
|
||||
SET_FIELD(ColourKey, RideColourKey::Ride),
|
||||
SET_FIELD(Name, "suspended_monorail"),
|
||||
SET_FIELD(RatingsData,
|
||||
),
|
||||
.ColourPreview = { SPR_RIDE_DESIGN_PREVIEW_SUSPENDED_MONORAIL_TRACK, SPR_RIDE_DESIGN_PREVIEW_SUSPENDED_MONORAIL_SUPPORTS },
|
||||
.ColourKey = RideColourKey::Ride,
|
||||
.Name = "suspended_monorail",
|
||||
.RatingsData =
|
||||
{
|
||||
RatingsCalculationType::Normal,
|
||||
{ RIDE_RATING(2, 15), RIDE_RATING(0, 23), RIDE_RATING(0, 8) },
|
||||
@@ -75,6 +75,6 @@ constexpr RideTypeDescriptor SuspendedMonorailRTD =
|
||||
{ RatingsModifierType::RequirementLength, 0xAA0000, 2, 2, 2 },
|
||||
{ RatingsModifierType::RequirementUnsheltered, 4, 4, 1, 1 },
|
||||
},
|
||||
}),
|
||||
},
|
||||
};
|
||||
// clang-format on
|
||||
|
||||
@@ -18,34 +18,34 @@
|
||||
// clang-format off
|
||||
constexpr RideTypeDescriptor BoatHireRTD =
|
||||
{
|
||||
SET_FIELD(AlternateType, RIDE_TYPE_NULL),
|
||||
SET_FIELD(Category, RIDE_CATEGORY_WATER),
|
||||
SET_FIELD(EnabledTrackPieces, {TRACK_STRAIGHT, TRACK_STATION_END, TRACK_CURVE_VERY_SMALL}),
|
||||
SET_FIELD(ExtraTrackPieces, {}),
|
||||
SET_FIELD(CoveredTrackPieces, {}),
|
||||
SET_FIELD(StartTrackPiece, TrackElemType::EndStation),
|
||||
SET_FIELD(TrackPaintFunctions, TrackDrawerDescriptor(GetTrackPaintFunctionBoatHire)),
|
||||
SET_FIELD(Flags, RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_MAIN | RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_SUPPORTS | RIDE_TYPE_FLAG_TRACK_MUST_BE_ON_WATER |
|
||||
.AlternateType = RIDE_TYPE_NULL,
|
||||
.Category = RIDE_CATEGORY_WATER,
|
||||
.EnabledTrackPieces = {TRACK_STRAIGHT, TRACK_STATION_END, TRACK_CURVE_VERY_SMALL},
|
||||
.ExtraTrackPieces = {},
|
||||
.CoveredTrackPieces = {},
|
||||
.StartTrackPiece = TrackElemType::EndStation,
|
||||
.TrackPaintFunctions = TrackDrawerDescriptor(GetTrackPaintFunctionBoatHire),
|
||||
.Flags = RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_MAIN | RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_SUPPORTS | RIDE_TYPE_FLAG_TRACK_MUST_BE_ON_WATER |
|
||||
RIDE_TYPE_FLAG_NO_TEST_MODE | RIDE_TYPE_FLAG_HAS_LOAD_OPTIONS | RIDE_TYPE_FLAG_HAS_VEHICLE_COLOURS | RIDE_TYPE_FLAG_CHECK_FOR_STALLING |
|
||||
RIDE_TYPE_FLAG_HAS_TRACK | RIDE_TYPE_FLAG_SUPPORTS_MULTIPLE_TRACK_COLOUR | RIDE_TYPE_FLAG_ALLOW_MUSIC | RIDE_TYPE_FLAG_HAS_ENTRANCE_EXIT),
|
||||
SET_FIELD(RideModes, EnumsToFlags(RideMode::BoatHire)),
|
||||
SET_FIELD(DefaultMode, RideMode::BoatHire),
|
||||
SET_FIELD(OperatingSettings, { 0, 0, 0, 0, 0, 0 }),
|
||||
SET_FIELD(Naming, { STR_RIDE_NAME_BOAT_HIRE, STR_RIDE_DESCRIPTION_BOAT_HIRE }),
|
||||
SET_FIELD(NameConvention, { RideComponentType::Boat, RideComponentType::DockingPlatform, RideComponentType::DockingPlatform }),
|
||||
SET_FIELD(EnumName, nameof(RIDE_TYPE_BOAT_HIRE)),
|
||||
SET_FIELD(AvailableBreakdowns, (1 << BREAKDOWN_VEHICLE_MALFUNCTION)),
|
||||
SET_FIELD(Heights, { 255, 16, 0, 3, }),
|
||||
SET_FIELD(MaxMass, 255),
|
||||
SET_FIELD(LiftData, { OpenRCT2::Audio::SoundId::Null, 5, 5 }),
|
||||
SET_FIELD(RatingsMultipliers, { 70, 6, 0 }),
|
||||
SET_FIELD(UpkeepCosts, { 50, 1, 0, 4, 0, 0 }),
|
||||
SET_FIELD(BuildCosts, { 27.50_GBP, 0.00_GBP, 5, }),
|
||||
SET_FIELD(DefaultPrices, { 10, 0 }),
|
||||
SET_FIELD(DefaultMusic, MUSIC_OBJECT_WATER),
|
||||
SET_FIELD(PhotoItem, ShopItem::Photo),
|
||||
SET_FIELD(BonusValue, 40),
|
||||
SET_FIELD(ColourPresets, TRACK_COLOUR_PRESETS(
|
||||
RIDE_TYPE_FLAG_HAS_TRACK | RIDE_TYPE_FLAG_SUPPORTS_MULTIPLE_TRACK_COLOUR | RIDE_TYPE_FLAG_ALLOW_MUSIC | RIDE_TYPE_FLAG_HAS_ENTRANCE_EXIT,
|
||||
.RideModes = EnumsToFlags(RideMode::BoatHire),
|
||||
.DefaultMode = RideMode::BoatHire,
|
||||
.OperatingSettings = { 0, 0, 0, 0, 0, 0 },
|
||||
.Naming = { STR_RIDE_NAME_BOAT_HIRE, STR_RIDE_DESCRIPTION_BOAT_HIRE },
|
||||
.NameConvention = { RideComponentType::Boat, RideComponentType::DockingPlatform, RideComponentType::DockingPlatform },
|
||||
.EnumName = nameof(RIDE_TYPE_BOAT_HIRE),
|
||||
.AvailableBreakdowns = (1 << BREAKDOWN_VEHICLE_MALFUNCTION),
|
||||
.Heights = { 255, 16, 0, 3, },
|
||||
.MaxMass = 255,
|
||||
.LiftData = { OpenRCT2::Audio::SoundId::Null, 5, 5 },
|
||||
.RatingsMultipliers = { 70, 6, 0 },
|
||||
.UpkeepCosts = { 50, 1, 0, 4, 0, 0 },
|
||||
.BuildCosts = { 27.50_GBP, 0.00_GBP, 5, },
|
||||
.DefaultPrices = { 10, 0 },
|
||||
.DefaultMusic = MUSIC_OBJECT_WATER,
|
||||
.PhotoItem = ShopItem::Photo,
|
||||
.BonusValue = 40,
|
||||
.ColourPresets = TRACK_COLOUR_PRESETS(
|
||||
{ COLOUR_MOSS_GREEN, COLOUR_MOSS_GREEN, COLOUR_WHITE },
|
||||
{ COLOUR_BLACK, COLOUR_BLACK, COLOUR_DARK_GREEN },
|
||||
{ COLOUR_LIGHT_BROWN, COLOUR_LIGHT_BROWN, COLOUR_YELLOW },
|
||||
@@ -56,11 +56,11 @@ constexpr RideTypeDescriptor BoatHireRTD =
|
||||
{ COLOUR_BRIGHT_PURPLE, COLOUR_BRIGHT_PURPLE, COLOUR_WHITE },
|
||||
{ COLOUR_BRIGHT_YELLOW, COLOUR_BRIGHT_YELLOW, COLOUR_YELLOW },
|
||||
{ COLOUR_DARK_WATER, COLOUR_DARK_WATER, COLOUR_DARK_GREEN },
|
||||
)),
|
||||
SET_FIELD(ColourPreview, { SPR_RIDE_DESIGN_PREVIEW_BOAT_HIRE_TRACK, SPR_RIDE_DESIGN_PREVIEW_BOAT_HIRE_SUPPORTS }),
|
||||
SET_FIELD(ColourKey, RideColourKey::Ride),
|
||||
SET_FIELD(Name, "boat_hire"),
|
||||
SET_FIELD(RatingsData,
|
||||
),
|
||||
.ColourPreview = { SPR_RIDE_DESIGN_PREVIEW_BOAT_HIRE_TRACK, SPR_RIDE_DESIGN_PREVIEW_BOAT_HIRE_SUPPORTS },
|
||||
.ColourKey = RideColourKey::Ride,
|
||||
.Name = "boat_hire",
|
||||
.RatingsData =
|
||||
{
|
||||
RatingsCalculationType::Normal,
|
||||
{ RIDE_RATING(1, 90), RIDE_RATING(0, 80), RIDE_RATING(0, 90) },
|
||||
@@ -72,8 +72,8 @@ constexpr RideTypeDescriptor BoatHireRTD =
|
||||
{ RatingsModifierType::BonusProximity, 0, 11183, 0, 0 },
|
||||
{ RatingsModifierType::BonusScenery, 0, 22310, 0, 0 },
|
||||
},
|
||||
}),
|
||||
SET_FIELD(UpdateRotating, UpdateRotatingDefault),
|
||||
SET_FIELD(LightFXAddLightsMagicVehicle, LightFxAddLightsMagicVehicle_BoatHire),
|
||||
},
|
||||
.UpdateRotating = UpdateRotatingDefault,
|
||||
.LightFXAddLightsMagicVehicle = LightFxAddLightsMagicVehicle_BoatHire,
|
||||
};
|
||||
// clang-format on
|
||||
|
||||
@@ -17,46 +17,46 @@
|
||||
// clang-format off
|
||||
constexpr RideTypeDescriptor DinghySlideRTD =
|
||||
{
|
||||
SET_FIELD(AlternateType, RIDE_TYPE_NULL),
|
||||
SET_FIELD(Category, RIDE_CATEGORY_WATER),
|
||||
SET_FIELD(EnabledTrackPieces, {TRACK_STRAIGHT, TRACK_STATION_END, TRACK_LIFT_HILL, TRACK_SLOPE, TRACK_SLOPE_STEEP_UP, TRACK_SLOPE_STEEP_DOWN, TRACK_S_BEND, TRACK_CURVE_SMALL, TRACK_CURVE}),
|
||||
SET_FIELD(ExtraTrackPieces,{}),
|
||||
SET_FIELD(CoveredTrackPieces, {TrackElemType::Flat, TrackElemType::Up25, TrackElemType::Up60, TrackElemType::FlatToUp25, TrackElemType::Up25ToUp60, TrackElemType::Up60ToUp25, TrackElemType::Up25ToFlat, TrackElemType::Down25, TrackElemType::Down60, TrackElemType::FlatToDown25, TrackElemType::Down25ToDown60, TrackElemType::Down60ToDown25, TrackElemType::Down25ToFlat, TrackElemType::LeftQuarterTurn5Tiles, TrackElemType::RightQuarterTurn5Tiles, TrackElemType::SBendLeft, TrackElemType::SBendRight, TrackElemType::LeftQuarterTurn3Tiles,TrackElemType::RightQuarterTurn3Tiles}),
|
||||
SET_FIELD(StartTrackPiece, TrackElemType::EndStation),
|
||||
SET_FIELD(TrackPaintFunctions, TrackDrawerDescriptor(GetTrackPaintFunctionDinghySlide, GetTrackPaintFunctionDinghySlideCovered)),
|
||||
SET_FIELD(Flags, RIDE_TYPE_FLAGS_TRACK_HAS_3_COLOURS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION |
|
||||
.AlternateType = RIDE_TYPE_NULL,
|
||||
.Category = RIDE_CATEGORY_WATER,
|
||||
.EnabledTrackPieces = {TRACK_STRAIGHT, TRACK_STATION_END, TRACK_LIFT_HILL, TRACK_SLOPE, TRACK_SLOPE_STEEP_UP, TRACK_SLOPE_STEEP_DOWN, TRACK_S_BEND, TRACK_CURVE_SMALL, TRACK_CURVE},
|
||||
.ExtraTrackPieces = {},
|
||||
.CoveredTrackPieces = {TrackElemType::Flat, TrackElemType::Up25, TrackElemType::Up60, TrackElemType::FlatToUp25, TrackElemType::Up25ToUp60, TrackElemType::Up60ToUp25, TrackElemType::Up25ToFlat, TrackElemType::Down25, TrackElemType::Down60, TrackElemType::FlatToDown25, TrackElemType::Down25ToDown60, TrackElemType::Down60ToDown25, TrackElemType::Down25ToFlat, TrackElemType::LeftQuarterTurn5Tiles, TrackElemType::RightQuarterTurn5Tiles, TrackElemType::SBendLeft, TrackElemType::SBendRight, TrackElemType::LeftQuarterTurn3Tiles,TrackElemType::RightQuarterTurn3Tiles},
|
||||
.StartTrackPiece = TrackElemType::EndStation,
|
||||
.TrackPaintFunctions = TrackDrawerDescriptor(GetTrackPaintFunctionDinghySlide, GetTrackPaintFunctionDinghySlideCovered),
|
||||
.Flags = RIDE_TYPE_FLAGS_TRACK_HAS_3_COLOURS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION |
|
||||
RIDE_TYPE_FLAG_CAN_SYNCHRONISE_ADJACENT_STATIONS | RIDE_TYPE_FLAG_HAS_G_FORCES |
|
||||
RIDE_TYPE_FLAG_HAS_DATA_LOGGING | RIDE_TYPE_FLAG_HAS_DROPS | RIDE_TYPE_FLAG_TRACK_ELEMENTS_HAVE_TWO_VARIETIES |
|
||||
RIDE_TYPE_FLAG_HAS_LOAD_OPTIONS | RIDE_TYPE_FLAG_PEEP_WILL_RIDE_AGAIN | RIDE_TYPE_FLAG_HAS_VEHICLE_COLOURS |
|
||||
RIDE_TYPE_FLAG_CHECK_FOR_STALLING | RIDE_TYPE_FLAG_HAS_TRACK | RIDE_TYPE_FLAG_SUPPORTS_MULTIPLE_TRACK_COLOUR |
|
||||
RIDE_TYPE_FLAG_ALLOW_MUSIC | RIDE_TYPE_FLAG_HAS_ENTRANCE_EXIT | RIDE_TYPE_FLAG_HAS_AIR_TIME |
|
||||
RIDE_TYPE_FLAG_SHOW_IN_TRACK_DESIGNER | RIDE_TYPE_FLAG_INTERESTING_TO_LOOK_AT),
|
||||
SET_FIELD(RideModes, EnumsToFlags(RideMode::ContinuousCircuit)),
|
||||
SET_FIELD(DefaultMode, RideMode::ContinuousCircuit),
|
||||
SET_FIELD(OperatingSettings, { 0, 0, 0, 0, 0, 0 }),
|
||||
SET_FIELD(Naming, { STR_RIDE_NAME_DINGHY_SLIDE, STR_RIDE_DESCRIPTION_DINGHY_SLIDE }),
|
||||
SET_FIELD(NameConvention, { RideComponentType::Boat, RideComponentType::Track, RideComponentType::Station }),
|
||||
SET_FIELD(EnumName, nameof(RIDE_TYPE_DINGHY_SLIDE)),
|
||||
SET_FIELD(AvailableBreakdowns, (1 << BREAKDOWN_SAFETY_CUT_OUT)),
|
||||
SET_FIELD(Heights, { 15, 24, 5, 7, }),
|
||||
SET_FIELD(MaxMass, 5),
|
||||
SET_FIELD(LiftData, { OpenRCT2::Audio::SoundId::LiftFrictionWheels, 4, 5 }),
|
||||
SET_FIELD(RatingsMultipliers, { 50, 30, 10 }),
|
||||
SET_FIELD(UpkeepCosts, { 40, 20, 80, 4, 3, 10 }),
|
||||
SET_FIELD(BuildCosts, { 20.00_GBP, 2.00_GBP, 40, }),
|
||||
SET_FIELD(DefaultPrices, { 20, 20 }),
|
||||
SET_FIELD(DefaultMusic, MUSIC_OBJECT_WATER),
|
||||
SET_FIELD(PhotoItem, ShopItem::Photo4),
|
||||
SET_FIELD(BonusValue, 55),
|
||||
SET_FIELD(ColourPresets, TRACK_COLOUR_PRESETS(
|
||||
RIDE_TYPE_FLAG_SHOW_IN_TRACK_DESIGNER | RIDE_TYPE_FLAG_INTERESTING_TO_LOOK_AT,
|
||||
.RideModes = EnumsToFlags(RideMode::ContinuousCircuit),
|
||||
.DefaultMode = RideMode::ContinuousCircuit,
|
||||
.OperatingSettings = { 0, 0, 0, 0, 0, 0 },
|
||||
.Naming = { STR_RIDE_NAME_DINGHY_SLIDE, STR_RIDE_DESCRIPTION_DINGHY_SLIDE },
|
||||
.NameConvention = { RideComponentType::Boat, RideComponentType::Track, RideComponentType::Station },
|
||||
.EnumName = nameof(RIDE_TYPE_DINGHY_SLIDE),
|
||||
.AvailableBreakdowns = (1 << BREAKDOWN_SAFETY_CUT_OUT),
|
||||
.Heights = { 15, 24, 5, 7, },
|
||||
.MaxMass = 5,
|
||||
.LiftData = { OpenRCT2::Audio::SoundId::LiftFrictionWheels, 4, 5 },
|
||||
.RatingsMultipliers = { 50, 30, 10 },
|
||||
.UpkeepCosts = { 40, 20, 80, 4, 3, 10 },
|
||||
.BuildCosts = { 20.00_GBP, 2.00_GBP, 40, },
|
||||
.DefaultPrices = { 20, 20 },
|
||||
.DefaultMusic = MUSIC_OBJECT_WATER,
|
||||
.PhotoItem = ShopItem::Photo4,
|
||||
.BonusValue = 55,
|
||||
.ColourPresets = TRACK_COLOUR_PRESETS(
|
||||
{ COLOUR_DARK_GREEN, COLOUR_SATURATED_BROWN, COLOUR_DARK_GREEN },
|
||||
{ COLOUR_TEAL, COLOUR_BORDEAUX_RED, COLOUR_TEAL },
|
||||
{ COLOUR_BRIGHT_RED, COLOUR_GREY, COLOUR_SATURATED_RED },
|
||||
)),
|
||||
SET_FIELD(ColourPreview, { SPR_RIDE_DESIGN_PREVIEW_DINGHY_SLIDE_TRACK, SPR_RIDE_DESIGN_PREVIEW_DINGHY_SLIDE_SUPPORTS }),
|
||||
SET_FIELD(ColourKey, RideColourKey::Ride),
|
||||
SET_FIELD(Name, "dinghy_slide"),
|
||||
SET_FIELD(RatingsData,
|
||||
),
|
||||
.ColourPreview = { SPR_RIDE_DESIGN_PREVIEW_DINGHY_SLIDE_TRACK, SPR_RIDE_DESIGN_PREVIEW_DINGHY_SLIDE_SUPPORTS },
|
||||
.ColourKey = RideColourKey::Ride,
|
||||
.Name = "dinghy_slide",
|
||||
.RatingsData =
|
||||
{
|
||||
RatingsCalculationType::Normal,
|
||||
{ RIDE_RATING(2, 70), RIDE_RATING(2, 00), RIDE_RATING(1, 50) },
|
||||
@@ -81,6 +81,6 @@ constexpr RideTypeDescriptor DinghySlideRTD =
|
||||
{ RatingsModifierType::RequirementLength, 0x8C0000, 2, 2, 2 },
|
||||
{ RatingsModifierType::PenaltyLateralGs, 0, 65536, 29789, 49648 },
|
||||
},
|
||||
}),
|
||||
},
|
||||
};
|
||||
// clang-format on
|
||||
|
||||
@@ -17,44 +17,44 @@
|
||||
// clang-format off
|
||||
constexpr RideTypeDescriptor LogFlumeRTD =
|
||||
{
|
||||
SET_FIELD(AlternateType, RIDE_TYPE_NULL),
|
||||
SET_FIELD(Category, RIDE_CATEGORY_WATER),
|
||||
SET_FIELD(EnabledTrackPieces, {TRACK_STRAIGHT, TRACK_STATION_END, TRACK_SLOPE, TRACK_S_BEND, TRACK_CURVE_SMALL, TRACK_ON_RIDE_PHOTO, TRACK_LOG_FLUME_REVERSER, TRACK_SLOPE_STEEP_DOWN}),
|
||||
SET_FIELD(ExtraTrackPieces, {}),
|
||||
SET_FIELD(CoveredTrackPieces, {}),
|
||||
SET_FIELD(StartTrackPiece, TrackElemType::EndStation),
|
||||
SET_FIELD(TrackPaintFunctions, TrackDrawerDescriptor(GetTrackPaintFunctionLogFlume)),
|
||||
SET_FIELD(Flags, RIDE_TYPE_FLAGS_TRACK_HAS_3_COLOURS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION |
|
||||
.AlternateType = RIDE_TYPE_NULL,
|
||||
.Category = RIDE_CATEGORY_WATER,
|
||||
.EnabledTrackPieces = {TRACK_STRAIGHT, TRACK_STATION_END, TRACK_SLOPE, TRACK_S_BEND, TRACK_CURVE_SMALL, TRACK_ON_RIDE_PHOTO, TRACK_LOG_FLUME_REVERSER, TRACK_SLOPE_STEEP_DOWN},
|
||||
.ExtraTrackPieces = {},
|
||||
.CoveredTrackPieces = {},
|
||||
.StartTrackPiece = TrackElemType::EndStation,
|
||||
.TrackPaintFunctions = TrackDrawerDescriptor(GetTrackPaintFunctionLogFlume),
|
||||
.Flags = RIDE_TYPE_FLAGS_TRACK_HAS_3_COLOURS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION |
|
||||
RIDE_TYPE_FLAG_CAN_SYNCHRONISE_ADJACENT_STATIONS | RIDE_TYPE_FLAG_HAS_DATA_LOGGING | RIDE_TYPE_FLAG_HAS_DROPS |
|
||||
RIDE_TYPE_FLAG_HAS_LOAD_OPTIONS | RIDE_TYPE_FLAG_PEEP_WILL_RIDE_AGAIN | RIDE_TYPE_FLAG_HAS_VEHICLE_COLOURS | RIDE_TYPE_FLAG_HAS_TRACK |
|
||||
RIDE_TYPE_FLAG_SUPPORTS_MULTIPLE_TRACK_COLOUR | RIDE_TYPE_FLAG_ALLOW_MUSIC | RIDE_TYPE_FLAG_HAS_ENTRANCE_EXIT |
|
||||
RIDE_TYPE_FLAG_ALLOW_MORE_VEHICLES_THAN_STATION_FITS | RIDE_TYPE_FLAG_HAS_AIR_TIME | RIDE_TYPE_FLAG_SHOW_IN_TRACK_DESIGNER |
|
||||
RIDE_TYPE_FLAG_INTERESTING_TO_LOOK_AT),
|
||||
SET_FIELD(RideModes, EnumsToFlags(RideMode::ContinuousCircuit)),
|
||||
SET_FIELD(DefaultMode, RideMode::ContinuousCircuit),
|
||||
SET_FIELD(OperatingSettings, { 0, 0, 0, 0, 0, 0 }),
|
||||
SET_FIELD(Naming, { STR_RIDE_NAME_LOG_FLUME, STR_RIDE_DESCRIPTION_LOG_FLUME }),
|
||||
SET_FIELD(NameConvention, { RideComponentType::Boat, RideComponentType::Track, RideComponentType::Station }),
|
||||
SET_FIELD(EnumName, nameof(RIDE_TYPE_LOG_FLUME)),
|
||||
SET_FIELD(AvailableBreakdowns, (1 << BREAKDOWN_SAFETY_CUT_OUT) | (1 << BREAKDOWN_CONTROL_FAILURE)),
|
||||
SET_FIELD(Heights, { 10, 24, 7, 9, }),
|
||||
SET_FIELD(MaxMass, 255),
|
||||
SET_FIELD(LiftData, { OpenRCT2::Audio::SoundId::Null, 5, 5 }),
|
||||
SET_FIELD(RatingsMultipliers, { 80, 34, 6 }),
|
||||
SET_FIELD(UpkeepCosts, { 80, 20, 0, 9, 0, 10 }),
|
||||
SET_FIELD(BuildCosts, { 22.50_GBP, 2.50_GBP, 40, }),
|
||||
SET_FIELD(DefaultPrices, { 20, 20 }),
|
||||
SET_FIELD(DefaultMusic, MUSIC_OBJECT_WATER),
|
||||
SET_FIELD(PhotoItem, ShopItem::Photo4),
|
||||
SET_FIELD(BonusValue, 65),
|
||||
SET_FIELD(ColourPresets, TRACK_COLOUR_PRESETS(
|
||||
RIDE_TYPE_FLAG_INTERESTING_TO_LOOK_AT,
|
||||
.RideModes = EnumsToFlags(RideMode::ContinuousCircuit),
|
||||
.DefaultMode = RideMode::ContinuousCircuit,
|
||||
.OperatingSettings = { 0, 0, 0, 0, 0, 0 },
|
||||
.Naming = { STR_RIDE_NAME_LOG_FLUME, STR_RIDE_DESCRIPTION_LOG_FLUME },
|
||||
.NameConvention = { RideComponentType::Boat, RideComponentType::Track, RideComponentType::Station },
|
||||
.EnumName = nameof(RIDE_TYPE_LOG_FLUME),
|
||||
.AvailableBreakdowns = (1 << BREAKDOWN_SAFETY_CUT_OUT) | (1 << BREAKDOWN_CONTROL_FAILURE),
|
||||
.Heights = { 10, 24, 7, 9, },
|
||||
.MaxMass = 255,
|
||||
.LiftData = { OpenRCT2::Audio::SoundId::Null, 5, 5 },
|
||||
.RatingsMultipliers = { 80, 34, 6 },
|
||||
.UpkeepCosts = { 80, 20, 0, 9, 0, 10 },
|
||||
.BuildCosts = { 22.50_GBP, 2.50_GBP, 40, },
|
||||
.DefaultPrices = { 20, 20 },
|
||||
.DefaultMusic = MUSIC_OBJECT_WATER,
|
||||
.PhotoItem = ShopItem::Photo4,
|
||||
.BonusValue = 65,
|
||||
.ColourPresets = TRACK_COLOUR_PRESETS(
|
||||
{ COLOUR_DARK_BROWN, COLOUR_DARK_BROWN, COLOUR_GREY },
|
||||
{ COLOUR_OLIVE_GREEN, COLOUR_BLACK, COLOUR_GREY },
|
||||
)),
|
||||
SET_FIELD(ColourPreview, { SPR_RIDE_DESIGN_PREVIEW_LOG_FLUME_TRACK, SPR_RIDE_DESIGN_PREVIEW_LOG_FLUME_SUPPORTS }),
|
||||
SET_FIELD(ColourKey, RideColourKey::Ride),
|
||||
SET_FIELD(Name, "log_flume"),
|
||||
SET_FIELD(RatingsData,
|
||||
),
|
||||
.ColourPreview = { SPR_RIDE_DESIGN_PREVIEW_LOG_FLUME_TRACK, SPR_RIDE_DESIGN_PREVIEW_LOG_FLUME_SUPPORTS },
|
||||
.ColourKey = RideColourKey::Ride,
|
||||
.Name = "log_flume",
|
||||
.RatingsData =
|
||||
{
|
||||
RatingsCalculationType::Normal,
|
||||
{ RIDE_RATING(1, 50), RIDE_RATING(0, 55), RIDE_RATING(0, 30) },
|
||||
@@ -73,14 +73,14 @@ constexpr RideTypeDescriptor LogFlumeRTD =
|
||||
{ RatingsModifierType::BonusScenery, 0, 11155, 0, 0 },
|
||||
{ RatingsModifierType::RequirementDropHeight, 6, 2, 2, 2 },
|
||||
},
|
||||
}),
|
||||
SET_FIELD(UpdateRotating, UpdateRotatingDefault),
|
||||
SET_FIELD(LightFXAddLightsMagicVehicle, nullptr),
|
||||
SET_FIELD(StartRideMusic, OpenRCT2::RideAudio::DefaultStartRideMusicChannel),
|
||||
SET_FIELD(DesignCreateMode, TrackDesignCreateMode::Default),
|
||||
SET_FIELD(MusicUpdateFunction, DefaultMusicUpdate),
|
||||
SET_FIELD(Classification, RideClassification::Ride),
|
||||
SET_FIELD(UpdateLeaveEntrance, PeepUpdateRideLeaveEntranceDefault),
|
||||
SET_FIELD(SpecialElementRatingAdjustment, SpecialTrackElementRatingsAjustment_LogFlume),
|
||||
},
|
||||
.UpdateRotating = UpdateRotatingDefault,
|
||||
.LightFXAddLightsMagicVehicle = nullptr,
|
||||
.StartRideMusic = OpenRCT2::RideAudio::DefaultStartRideMusicChannel,
|
||||
.DesignCreateMode = TrackDesignCreateMode::Default,
|
||||
.MusicUpdateFunction = DefaultMusicUpdate,
|
||||
.Classification = RideClassification::Ride,
|
||||
.UpdateLeaveEntrance = PeepUpdateRideLeaveEntranceDefault,
|
||||
.SpecialElementRatingAdjustment = SpecialTrackElementRatingsAjustment_LogFlume,
|
||||
};
|
||||
// clang-format on
|
||||
|
||||
@@ -17,43 +17,43 @@
|
||||
// clang-format off
|
||||
constexpr RideTypeDescriptor RiverRaftsRTD =
|
||||
{
|
||||
SET_FIELD(AlternateType, RIDE_TYPE_NULL),
|
||||
SET_FIELD(Category, RIDE_CATEGORY_WATER),
|
||||
SET_FIELD(EnabledTrackPieces, {TRACK_STRAIGHT, TRACK_STATION_END, TRACK_S_BEND, TRACK_CURVE}),
|
||||
SET_FIELD(ExtraTrackPieces, {TRACK_SLOPE, TRACK_SLOPE_STEEP_DOWN, TRACK_ON_RIDE_PHOTO}),
|
||||
SET_FIELD(CoveredTrackPieces, {}),
|
||||
SET_FIELD(StartTrackPiece, TrackElemType::EndStation),
|
||||
SET_FIELD(TrackPaintFunctions, TrackDrawerDescriptor(GetTrackPaintFunctionSplashBoats)),
|
||||
SET_FIELD(Flags, RIDE_TYPE_FLAGS_TRACK_HAS_3_COLOURS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION |
|
||||
.AlternateType = RIDE_TYPE_NULL,
|
||||
.Category = RIDE_CATEGORY_WATER,
|
||||
.EnabledTrackPieces = {TRACK_STRAIGHT, TRACK_STATION_END, TRACK_S_BEND, TRACK_CURVE},
|
||||
.ExtraTrackPieces = {TRACK_SLOPE, TRACK_SLOPE_STEEP_DOWN, TRACK_ON_RIDE_PHOTO},
|
||||
.CoveredTrackPieces = {},
|
||||
.StartTrackPiece = TrackElemType::EndStation,
|
||||
.TrackPaintFunctions = TrackDrawerDescriptor(GetTrackPaintFunctionSplashBoats),
|
||||
.Flags = RIDE_TYPE_FLAGS_TRACK_HAS_3_COLOURS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION |
|
||||
RIDE_TYPE_FLAG_CAN_SYNCHRONISE_ADJACENT_STATIONS | RIDE_TYPE_FLAG_HAS_DATA_LOGGING |
|
||||
RIDE_TYPE_FLAG_HAS_LOAD_OPTIONS | RIDE_TYPE_FLAG_PEEP_WILL_RIDE_AGAIN | RIDE_TYPE_FLAG_HAS_VEHICLE_COLOURS |
|
||||
RIDE_TYPE_FLAG_HAS_TRACK | RIDE_TYPE_FLAG_SUPPORTS_MULTIPLE_TRACK_COLOUR | RIDE_TYPE_FLAG_ALLOW_MUSIC |
|
||||
RIDE_TYPE_FLAG_HAS_ENTRANCE_EXIT | RIDE_TYPE_FLAG_ALLOW_MORE_VEHICLES_THAN_STATION_FITS |
|
||||
RIDE_TYPE_FLAG_SHOW_IN_TRACK_DESIGNER | RIDE_TYPE_FLAG_SLIGHTLY_INTERESTING_TO_LOOK_AT),
|
||||
SET_FIELD(RideModes, EnumsToFlags(RideMode::ContinuousCircuit)),
|
||||
SET_FIELD(DefaultMode, RideMode::ContinuousCircuit),
|
||||
SET_FIELD(OperatingSettings, { 0, 0, 0, 0, 0, 0 }),
|
||||
SET_FIELD(Naming, { STR_RIDE_NAME_RIVER_RAFTS, STR_RIDE_DESCRIPTION_RIVER_RAFTS }),
|
||||
SET_FIELD(NameConvention, { RideComponentType::Boat, RideComponentType::Track, RideComponentType::Station }),
|
||||
SET_FIELD(EnumName, nameof(RIDE_TYPE_RIVER_RAFTS)),
|
||||
SET_FIELD(AvailableBreakdowns, (1 << BREAKDOWN_SAFETY_CUT_OUT)),
|
||||
SET_FIELD(Heights, { 12, 24, 7, 11, }),
|
||||
SET_FIELD(MaxMass, 255),
|
||||
SET_FIELD(LiftData, { OpenRCT2::Audio::SoundId::Null, 5, 5 }),
|
||||
SET_FIELD(RatingsMultipliers, { 80, 34, 6 }),
|
||||
SET_FIELD(UpkeepCosts, { 50, 20, 0, 9, 0, 10 }),
|
||||
SET_FIELD(BuildCosts, { 20.00_GBP, 2.50_GBP, 30, }),
|
||||
SET_FIELD(DefaultPrices, { 10, 20 }),
|
||||
SET_FIELD(DefaultMusic, MUSIC_OBJECT_GENTLE),
|
||||
SET_FIELD(PhotoItem, ShopItem::Photo4),
|
||||
SET_FIELD(BonusValue, 65),
|
||||
SET_FIELD(ColourPresets, TRACK_COLOUR_PRESETS(
|
||||
RIDE_TYPE_FLAG_SHOW_IN_TRACK_DESIGNER | RIDE_TYPE_FLAG_SLIGHTLY_INTERESTING_TO_LOOK_AT,
|
||||
.RideModes = EnumsToFlags(RideMode::ContinuousCircuit),
|
||||
.DefaultMode = RideMode::ContinuousCircuit,
|
||||
.OperatingSettings = { 0, 0, 0, 0, 0, 0 },
|
||||
.Naming = { STR_RIDE_NAME_RIVER_RAFTS, STR_RIDE_DESCRIPTION_RIVER_RAFTS },
|
||||
.NameConvention = { RideComponentType::Boat, RideComponentType::Track, RideComponentType::Station },
|
||||
.EnumName = nameof(RIDE_TYPE_RIVER_RAFTS),
|
||||
.AvailableBreakdowns = (1 << BREAKDOWN_SAFETY_CUT_OUT),
|
||||
.Heights = { 12, 24, 7, 11, },
|
||||
.MaxMass = 255,
|
||||
.LiftData = { OpenRCT2::Audio::SoundId::Null, 5, 5 },
|
||||
.RatingsMultipliers = { 80, 34, 6 },
|
||||
.UpkeepCosts = { 50, 20, 0, 9, 0, 10 },
|
||||
.BuildCosts = { 20.00_GBP, 2.50_GBP, 30, },
|
||||
.DefaultPrices = { 10, 20 },
|
||||
.DefaultMusic = MUSIC_OBJECT_GENTLE,
|
||||
.PhotoItem = ShopItem::Photo4,
|
||||
.BonusValue = 65,
|
||||
.ColourPresets = TRACK_COLOUR_PRESETS(
|
||||
{ COLOUR_BLACK, COLOUR_BLACK, COLOUR_SATURATED_BROWN },
|
||||
)),
|
||||
SET_FIELD(ColourPreview, { SPR_RIDE_DESIGN_PREVIEW_RIVER_RAFTS_TRACK, SPR_RIDE_DESIGN_PREVIEW_RIVER_RAFTS_SUPPORTS }),
|
||||
SET_FIELD(ColourKey, RideColourKey::Ride),
|
||||
SET_FIELD(Name, "river_rafts"),
|
||||
SET_FIELD(RatingsData,
|
||||
),
|
||||
.ColourPreview = { SPR_RIDE_DESIGN_PREVIEW_RIVER_RAFTS_TRACK, SPR_RIDE_DESIGN_PREVIEW_RIVER_RAFTS_SUPPORTS },
|
||||
.ColourKey = RideColourKey::Ride,
|
||||
.Name = "river_rafts",
|
||||
.RatingsData =
|
||||
{
|
||||
RatingsCalculationType::Normal,
|
||||
{ RIDE_RATING(1, 45), RIDE_RATING(0, 25), RIDE_RATING(0, 34) },
|
||||
@@ -70,6 +70,6 @@ constexpr RideTypeDescriptor RiverRaftsRTD =
|
||||
{ RatingsModifierType::BonusProximity, 0, 13420, 0, 0 },
|
||||
{ RatingsModifierType::BonusScenery, 0, 11155, 0, 0 },
|
||||
},
|
||||
}),
|
||||
},
|
||||
};
|
||||
// clang-format on
|
||||
|
||||
@@ -17,44 +17,44 @@
|
||||
// clang-format off
|
||||
constexpr RideTypeDescriptor RiverRapidsRTD =
|
||||
{
|
||||
SET_FIELD(AlternateType, RIDE_TYPE_NULL),
|
||||
SET_FIELD(Category, RIDE_CATEGORY_WATER),
|
||||
SET_FIELD(EnabledTrackPieces, {TRACK_STRAIGHT, TRACK_STATION_END, TRACK_SLOPE, TRACK_CURVE_VERY_SMALL, TRACK_ON_RIDE_PHOTO, TRACK_RAPIDS, TRACK_WATERFALL, TRACK_WHIRLPOOL}),
|
||||
SET_FIELD(ExtraTrackPieces, {}),
|
||||
SET_FIELD(CoveredTrackPieces, {}),
|
||||
SET_FIELD(StartTrackPiece, TrackElemType::EndStation),
|
||||
SET_FIELD(TrackPaintFunctions, TrackDrawerDescriptor(GetTrackPaintFunctionRiverRapids)),
|
||||
SET_FIELD(Flags, RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_MAIN | RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_SUPPORTS |
|
||||
.AlternateType = RIDE_TYPE_NULL,
|
||||
.Category = RIDE_CATEGORY_WATER,
|
||||
.EnabledTrackPieces = {TRACK_STRAIGHT, TRACK_STATION_END, TRACK_SLOPE, TRACK_CURVE_VERY_SMALL, TRACK_ON_RIDE_PHOTO, TRACK_RAPIDS, TRACK_WATERFALL, TRACK_WHIRLPOOL},
|
||||
.ExtraTrackPieces = {},
|
||||
.CoveredTrackPieces = {},
|
||||
.StartTrackPiece = TrackElemType::EndStation,
|
||||
.TrackPaintFunctions = TrackDrawerDescriptor(GetTrackPaintFunctionRiverRapids),
|
||||
.Flags = RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_MAIN | RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_SUPPORTS |
|
||||
RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION |
|
||||
RIDE_TYPE_FLAG_CAN_SYNCHRONISE_ADJACENT_STATIONS | RIDE_TYPE_FLAG_HAS_DATA_LOGGING | RIDE_TYPE_FLAG_HAS_DROPS |
|
||||
RIDE_TYPE_FLAG_HAS_LOAD_OPTIONS | RIDE_TYPE_FLAG_TRACK_NO_WALLS | RIDE_TYPE_FLAG_PEEP_WILL_RIDE_AGAIN |
|
||||
RIDE_TYPE_FLAG_HAS_VEHICLE_COLOURS | RIDE_TYPE_FLAG_HAS_TRACK | RIDE_TYPE_FLAG_SUPPORTS_MULTIPLE_TRACK_COLOUR |
|
||||
RIDE_TYPE_FLAG_ALLOW_MUSIC | RIDE_TYPE_FLAG_HAS_ENTRANCE_EXIT | RIDE_TYPE_FLAG_ALLOW_MORE_VEHICLES_THAN_STATION_FITS |
|
||||
RIDE_TYPE_FLAG_HAS_AIR_TIME | RIDE_TYPE_FLAG_SHOW_IN_TRACK_DESIGNER | RIDE_TYPE_FLAG_INTERESTING_TO_LOOK_AT),
|
||||
SET_FIELD(RideModes, EnumsToFlags(RideMode::ContinuousCircuit)),
|
||||
SET_FIELD(DefaultMode, RideMode::ContinuousCircuit),
|
||||
SET_FIELD(OperatingSettings, { 0, 0, 0, 0, 0, 0 }),
|
||||
SET_FIELD(Naming, { STR_RIDE_NAME_RIVER_RAPIDS, STR_RIDE_DESCRIPTION_RIVER_RAPIDS }),
|
||||
SET_FIELD(NameConvention, { RideComponentType::Boat, RideComponentType::Track, RideComponentType::Station }),
|
||||
SET_FIELD(EnumName, nameof(RIDE_TYPE_RIVER_RAPIDS)),
|
||||
SET_FIELD(AvailableBreakdowns, (1 << BREAKDOWN_SAFETY_CUT_OUT) | (1 << BREAKDOWN_CONTROL_FAILURE)),
|
||||
SET_FIELD(Heights, { 9, 32, 14, 15, }),
|
||||
SET_FIELD(MaxMass, 255),
|
||||
SET_FIELD(LiftData, { OpenRCT2::Audio::SoundId::Null, 5, 5 }),
|
||||
SET_FIELD(RatingsMultipliers, { 72, 26, 6 }),
|
||||
SET_FIELD(UpkeepCosts, { 82, 20, 0, 10, 0, 10 }),
|
||||
SET_FIELD(BuildCosts, { 31.00_GBP, 3.00_GBP, 40, }),
|
||||
SET_FIELD(DefaultPrices, { 20, 20 }),
|
||||
SET_FIELD(DefaultMusic, MUSIC_OBJECT_WATER),
|
||||
SET_FIELD(PhotoItem, ShopItem::Photo4),
|
||||
SET_FIELD(BonusValue, 70),
|
||||
SET_FIELD(ColourPresets, TRACK_COLOUR_PRESETS(
|
||||
RIDE_TYPE_FLAG_HAS_AIR_TIME | RIDE_TYPE_FLAG_SHOW_IN_TRACK_DESIGNER | RIDE_TYPE_FLAG_INTERESTING_TO_LOOK_AT,
|
||||
.RideModes = EnumsToFlags(RideMode::ContinuousCircuit),
|
||||
.DefaultMode = RideMode::ContinuousCircuit,
|
||||
.OperatingSettings = { 0, 0, 0, 0, 0, 0 },
|
||||
.Naming = { STR_RIDE_NAME_RIVER_RAPIDS, STR_RIDE_DESCRIPTION_RIVER_RAPIDS },
|
||||
.NameConvention = { RideComponentType::Boat, RideComponentType::Track, RideComponentType::Station },
|
||||
.EnumName = nameof(RIDE_TYPE_RIVER_RAPIDS),
|
||||
.AvailableBreakdowns = (1 << BREAKDOWN_SAFETY_CUT_OUT) | (1 << BREAKDOWN_CONTROL_FAILURE),
|
||||
.Heights = { 9, 32, 14, 15, },
|
||||
.MaxMass = 255,
|
||||
.LiftData = { OpenRCT2::Audio::SoundId::Null, 5, 5 },
|
||||
.RatingsMultipliers = { 72, 26, 6 },
|
||||
.UpkeepCosts = { 82, 20, 0, 10, 0, 10 },
|
||||
.BuildCosts = { 31.00_GBP, 3.00_GBP, 40, },
|
||||
.DefaultPrices = { 20, 20 },
|
||||
.DefaultMusic = MUSIC_OBJECT_WATER,
|
||||
.PhotoItem = ShopItem::Photo4,
|
||||
.BonusValue = 70,
|
||||
.ColourPresets = TRACK_COLOUR_PRESETS(
|
||||
{ COLOUR_WHITE, COLOUR_BLACK, COLOUR_DARK_BROWN },
|
||||
)),
|
||||
SET_FIELD(ColourPreview, { SPR_RIDE_DESIGN_PREVIEW_RIVER_RAPIDS_TRACK, SPR_RIDE_DESIGN_PREVIEW_RIVER_RAPIDS_SUPPORTS }),
|
||||
SET_FIELD(ColourKey, RideColourKey::Ride),
|
||||
SET_FIELD(Name, "river_rapids"),
|
||||
SET_FIELD(RatingsData,
|
||||
),
|
||||
.ColourPreview = { SPR_RIDE_DESIGN_PREVIEW_RIVER_RAPIDS_TRACK, SPR_RIDE_DESIGN_PREVIEW_RIVER_RAPIDS_SUPPORTS },
|
||||
.ColourKey = RideColourKey::Ride,
|
||||
.Name = "river_rapids",
|
||||
.RatingsData =
|
||||
{
|
||||
RatingsCalculationType::Normal,
|
||||
{ RIDE_RATING(1, 20), RIDE_RATING(0, 70), RIDE_RATING(0, 50) },
|
||||
@@ -74,13 +74,13 @@ constexpr RideTypeDescriptor RiverRapidsRTD =
|
||||
{ RatingsModifierType::RequirementDropHeight, 2, 2, 2, 2 },
|
||||
{ RatingsModifierType::RequirementLength, 0xC80000, 2, 2, 2 },
|
||||
},
|
||||
}),
|
||||
SET_FIELD(UpdateRotating, UpdateRotatingDefault),
|
||||
SET_FIELD(LightFXAddLightsMagicVehicle, nullptr),
|
||||
SET_FIELD(StartRideMusic, OpenRCT2::RideAudio::DefaultStartRideMusicChannel),
|
||||
SET_FIELD(DesignCreateMode, TrackDesignCreateMode::Default),
|
||||
SET_FIELD(MusicUpdateFunction, DefaultMusicUpdate),
|
||||
SET_FIELD(Classification, RideClassification::Ride),
|
||||
SET_FIELD(UpdateLeaveEntrance, PeepUpdateRideLeaveEntranceDefault),
|
||||
},
|
||||
.UpdateRotating = UpdateRotatingDefault,
|
||||
.LightFXAddLightsMagicVehicle = nullptr,
|
||||
.StartRideMusic = OpenRCT2::RideAudio::DefaultStartRideMusicChannel,
|
||||
.DesignCreateMode = TrackDesignCreateMode::Default,
|
||||
.MusicUpdateFunction = DefaultMusicUpdate,
|
||||
.Classification = RideClassification::Ride,
|
||||
.UpdateLeaveEntrance = PeepUpdateRideLeaveEntranceDefault,
|
||||
};
|
||||
// clang-format on
|
||||
|
||||
@@ -18,44 +18,44 @@
|
||||
// clang-format off
|
||||
constexpr RideTypeDescriptor SplashBoatsRTD =
|
||||
{
|
||||
SET_FIELD(AlternateType, RIDE_TYPE_NULL),
|
||||
SET_FIELD(Category, RIDE_CATEGORY_WATER),
|
||||
SET_FIELD(EnabledTrackPieces, {TRACK_STRAIGHT, TRACK_STATION_END, TRACK_SLOPE, TRACK_SLOPE_STEEP_DOWN, TRACK_S_BEND, TRACK_CURVE, TRACK_ON_RIDE_PHOTO}),
|
||||
SET_FIELD(ExtraTrackPieces, {}),
|
||||
SET_FIELD(CoveredTrackPieces, {}),
|
||||
SET_FIELD(StartTrackPiece, TrackElemType::EndStation),
|
||||
SET_FIELD(TrackPaintFunctions, TrackDrawerDescriptor(GetTrackPaintFunctionSplashBoats)),
|
||||
SET_FIELD(Flags, RIDE_TYPE_FLAGS_TRACK_HAS_3_COLOURS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION |
|
||||
.AlternateType = RIDE_TYPE_NULL,
|
||||
.Category = RIDE_CATEGORY_WATER,
|
||||
.EnabledTrackPieces = {TRACK_STRAIGHT, TRACK_STATION_END, TRACK_SLOPE, TRACK_SLOPE_STEEP_DOWN, TRACK_S_BEND, TRACK_CURVE, TRACK_ON_RIDE_PHOTO},
|
||||
.ExtraTrackPieces = {},
|
||||
.CoveredTrackPieces = {},
|
||||
.StartTrackPiece = TrackElemType::EndStation,
|
||||
.TrackPaintFunctions = TrackDrawerDescriptor(GetTrackPaintFunctionSplashBoats),
|
||||
.Flags = RIDE_TYPE_FLAGS_TRACK_HAS_3_COLOURS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION |
|
||||
RIDE_TYPE_FLAG_CAN_SYNCHRONISE_ADJACENT_STATIONS | RIDE_TYPE_FLAG_HAS_DATA_LOGGING | RIDE_TYPE_FLAG_HAS_DROPS |
|
||||
RIDE_TYPE_FLAG_HAS_LOAD_OPTIONS | RIDE_TYPE_FLAG_PEEP_WILL_RIDE_AGAIN | RIDE_TYPE_FLAG_HAS_VEHICLE_COLOURS |
|
||||
RIDE_TYPE_FLAG_HAS_TRACK | RIDE_TYPE_FLAG_SUPPORTS_MULTIPLE_TRACK_COLOUR | RIDE_TYPE_FLAG_ALLOW_MUSIC |
|
||||
RIDE_TYPE_FLAG_HAS_ENTRANCE_EXIT | RIDE_TYPE_FLAG_ALLOW_MORE_VEHICLES_THAN_STATION_FITS | RIDE_TYPE_FLAG_HAS_AIR_TIME |
|
||||
RIDE_TYPE_FLAG_SHOW_IN_TRACK_DESIGNER | RIDE_TYPE_FLAG_SLIGHTLY_INTERESTING_TO_LOOK_AT),
|
||||
SET_FIELD(RideModes, EnumsToFlags(RideMode::ContinuousCircuit)),
|
||||
SET_FIELD(DefaultMode, RideMode::ContinuousCircuit),
|
||||
SET_FIELD(OperatingSettings, { 0, 0, 0, 0, 0, 0 }),
|
||||
SET_FIELD(Naming, { STR_RIDE_NAME_SPLASH_BOATS, STR_RIDE_DESCRIPTION_SPLASH_BOATS }),
|
||||
SET_FIELD(NameConvention, { RideComponentType::Boat, RideComponentType::Track, RideComponentType::Station }),
|
||||
SET_FIELD(EnumName, nameof(RIDE_TYPE_SPLASH_BOATS)),
|
||||
SET_FIELD(AvailableBreakdowns, (1 << BREAKDOWN_SAFETY_CUT_OUT) | (1 << BREAKDOWN_CONTROL_FAILURE)),
|
||||
SET_FIELD(Heights, { 16, 24, 7, 11, }),
|
||||
SET_FIELD(MaxMass, 255),
|
||||
SET_FIELD(LiftData, { OpenRCT2::Audio::SoundId::Null, 5, 5 }),
|
||||
SET_FIELD(RatingsMultipliers, { 80, 34, 6 }),
|
||||
SET_FIELD(UpkeepCosts, { 70, 20, 0, 9, 0, 10 }),
|
||||
SET_FIELD(BuildCosts, { 28.50_GBP, 2.50_GBP, 30, }),
|
||||
SET_FIELD(DefaultPrices, { 20, 20 }),
|
||||
SET_FIELD(DefaultMusic, MUSIC_OBJECT_WATER),
|
||||
SET_FIELD(PhotoItem, ShopItem::Photo4),
|
||||
SET_FIELD(BonusValue, 65),
|
||||
SET_FIELD(ColourPresets, TRACK_COLOUR_PRESETS(
|
||||
RIDE_TYPE_FLAG_SHOW_IN_TRACK_DESIGNER | RIDE_TYPE_FLAG_SLIGHTLY_INTERESTING_TO_LOOK_AT,
|
||||
.RideModes = EnumsToFlags(RideMode::ContinuousCircuit),
|
||||
.DefaultMode = RideMode::ContinuousCircuit,
|
||||
.OperatingSettings = { 0, 0, 0, 0, 0, 0 },
|
||||
.Naming = { STR_RIDE_NAME_SPLASH_BOATS, STR_RIDE_DESCRIPTION_SPLASH_BOATS },
|
||||
.NameConvention = { RideComponentType::Boat, RideComponentType::Track, RideComponentType::Station },
|
||||
.EnumName = nameof(RIDE_TYPE_SPLASH_BOATS),
|
||||
.AvailableBreakdowns = (1 << BREAKDOWN_SAFETY_CUT_OUT) | (1 << BREAKDOWN_CONTROL_FAILURE),
|
||||
.Heights = { 16, 24, 7, 11, },
|
||||
.MaxMass = 255,
|
||||
.LiftData = { OpenRCT2::Audio::SoundId::Null, 5, 5 },
|
||||
.RatingsMultipliers = { 80, 34, 6 },
|
||||
.UpkeepCosts = { 70, 20, 0, 9, 0, 10 },
|
||||
.BuildCosts = { 28.50_GBP, 2.50_GBP, 30, },
|
||||
.DefaultPrices = { 20, 20 },
|
||||
.DefaultMusic = MUSIC_OBJECT_WATER,
|
||||
.PhotoItem = ShopItem::Photo4,
|
||||
.BonusValue = 65,
|
||||
.ColourPresets = TRACK_COLOUR_PRESETS(
|
||||
{ COLOUR_DARK_BROWN, COLOUR_DARK_BROWN, COLOUR_BLACK },
|
||||
{ COLOUR_DARK_GREEN, COLOUR_DARK_GREEN, COLOUR_GREY },
|
||||
)),
|
||||
SET_FIELD(ColourPreview, { SPR_RIDE_DESIGN_PREVIEW_SPLASH_BOATS_TRACK, SPR_RIDE_DESIGN_PREVIEW_SPLASH_BOATS_SUPPORTS }),
|
||||
SET_FIELD(ColourKey, RideColourKey::Ride),
|
||||
SET_FIELD(Name, "splash_boats"),
|
||||
SET_FIELD(RatingsData,
|
||||
),
|
||||
.ColourPreview = { SPR_RIDE_DESIGN_PREVIEW_SPLASH_BOATS_TRACK, SPR_RIDE_DESIGN_PREVIEW_SPLASH_BOATS_SUPPORTS },
|
||||
.ColourKey = RideColourKey::Ride,
|
||||
.Name = "splash_boats",
|
||||
.RatingsData =
|
||||
{
|
||||
RatingsCalculationType::Normal,
|
||||
{ RIDE_RATING(1, 46), RIDE_RATING(0, 35), RIDE_RATING(0, 30) },
|
||||
@@ -74,8 +74,8 @@ constexpr RideTypeDescriptor SplashBoatsRTD =
|
||||
{ RatingsModifierType::BonusScenery, 0, 11155, 0, 0 },
|
||||
{ RatingsModifierType::RequirementDropHeight, 6, 2, 2, 2 },
|
||||
},
|
||||
}),
|
||||
SET_FIELD(UpdateRotating, UpdateRotatingDefault),
|
||||
SET_FIELD(LightFXAddLightsMagicVehicle, LightFxAddLightsMagicVehicle_BoatHire),
|
||||
},
|
||||
.UpdateRotating = UpdateRotatingDefault,
|
||||
.LightFXAddLightsMagicVehicle = LightFxAddLightsMagicVehicle_BoatHire,
|
||||
};
|
||||
// clang-format on
|
||||
|
||||
@@ -18,42 +18,42 @@
|
||||
// clang-format off
|
||||
constexpr RideTypeDescriptor SubmarineRideRTD =
|
||||
{
|
||||
SET_FIELD(AlternateType, RIDE_TYPE_NULL),
|
||||
SET_FIELD(Category, RIDE_CATEGORY_WATER),
|
||||
SET_FIELD(EnabledTrackPieces, {TRACK_STRAIGHT, TRACK_STATION_END, TRACK_CURVE_VERY_SMALL, TRACK_CURVE_SMALL}),
|
||||
SET_FIELD(ExtraTrackPieces, {}),
|
||||
SET_FIELD(CoveredTrackPieces, {}),
|
||||
SET_FIELD(StartTrackPiece, TrackElemType::EndStation),
|
||||
SET_FIELD(TrackPaintFunctions, TrackDrawerDescriptor(GetTrackPaintFunctionSubmarineRide)),
|
||||
SET_FIELD(Flags, RIDE_TYPE_FLAGS_TRACK_HAS_3_COLOURS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION |
|
||||
.AlternateType = RIDE_TYPE_NULL,
|
||||
.Category = RIDE_CATEGORY_WATER,
|
||||
.EnabledTrackPieces = {TRACK_STRAIGHT, TRACK_STATION_END, TRACK_CURVE_VERY_SMALL, TRACK_CURVE_SMALL},
|
||||
.ExtraTrackPieces = {},
|
||||
.CoveredTrackPieces = {},
|
||||
.StartTrackPiece = TrackElemType::EndStation,
|
||||
.TrackPaintFunctions = TrackDrawerDescriptor(GetTrackPaintFunctionSubmarineRide),
|
||||
.Flags = RIDE_TYPE_FLAGS_TRACK_HAS_3_COLOURS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION |
|
||||
RIDE_TYPE_FLAG_TRACK_MUST_BE_ON_WATER | RIDE_TYPE_FLAG_HAS_LOAD_OPTIONS | RIDE_TYPE_FLAG_PEEP_WILL_RIDE_AGAIN |
|
||||
RIDE_TYPE_FLAG_HAS_VEHICLE_COLOURS | RIDE_TYPE_FLAG_HAS_TRACK | RIDE_TYPE_FLAG_SUPPORTS_MULTIPLE_TRACK_COLOUR |
|
||||
RIDE_TYPE_FLAG_ALLOW_MUSIC | RIDE_TYPE_FLAG_PEEP_CHECK_GFORCES | RIDE_TYPE_FLAG_HAS_ENTRANCE_EXIT |
|
||||
RIDE_TYPE_FLAG_ALLOW_MORE_VEHICLES_THAN_STATION_FITS),
|
||||
SET_FIELD(RideModes, EnumsToFlags(RideMode::ContinuousCircuit)),
|
||||
SET_FIELD(DefaultMode, RideMode::ContinuousCircuit),
|
||||
SET_FIELD(OperatingSettings, { 0, 0, 0, 0, 0, 0 }),
|
||||
SET_FIELD(Naming, { STR_RIDE_NAME_SUBMARINE_RIDE, STR_RIDE_DESCRIPTION_SUBMARINE_RIDE }),
|
||||
SET_FIELD(NameConvention, { RideComponentType::Boat, RideComponentType::Track, RideComponentType::DockingPlatform }),
|
||||
SET_FIELD(EnumName, nameof(RIDE_TYPE_SUBMARINE_RIDE)),
|
||||
SET_FIELD(AvailableBreakdowns, (1 << BREAKDOWN_SAFETY_CUT_OUT) | (1 << BREAKDOWN_VEHICLE_MALFUNCTION)),
|
||||
SET_FIELD(Heights, { 255, 16, 0, 3, }),
|
||||
SET_FIELD(MaxMass, 255),
|
||||
SET_FIELD(LiftData, { OpenRCT2::Audio::SoundId::Null, 5, 5 }),
|
||||
SET_FIELD(RatingsMultipliers, { 70, 6, 0 }),
|
||||
SET_FIELD(UpkeepCosts, { 50, 1, 0, 4, 0, 0 }),
|
||||
SET_FIELD(BuildCosts, { 35.00_GBP, 2.50_GBP, 5, }),
|
||||
SET_FIELD(DefaultPrices, { 10, 0 }),
|
||||
SET_FIELD(DefaultMusic, MUSIC_OBJECT_WATER),
|
||||
SET_FIELD(PhotoItem, ShopItem::Photo),
|
||||
SET_FIELD(BonusValue, 40),
|
||||
SET_FIELD(ColourPresets, TRACK_COLOUR_PRESETS(
|
||||
RIDE_TYPE_FLAG_ALLOW_MORE_VEHICLES_THAN_STATION_FITS,
|
||||
.RideModes = EnumsToFlags(RideMode::ContinuousCircuit),
|
||||
.DefaultMode = RideMode::ContinuousCircuit,
|
||||
.OperatingSettings = { 0, 0, 0, 0, 0, 0 },
|
||||
.Naming = { STR_RIDE_NAME_SUBMARINE_RIDE, STR_RIDE_DESCRIPTION_SUBMARINE_RIDE },
|
||||
.NameConvention = { RideComponentType::Boat, RideComponentType::Track, RideComponentType::DockingPlatform },
|
||||
.EnumName = nameof(RIDE_TYPE_SUBMARINE_RIDE),
|
||||
.AvailableBreakdowns = (1 << BREAKDOWN_SAFETY_CUT_OUT) | (1 << BREAKDOWN_VEHICLE_MALFUNCTION),
|
||||
.Heights = { 255, 16, 0, 3, },
|
||||
.MaxMass = 255,
|
||||
.LiftData = { OpenRCT2::Audio::SoundId::Null, 5, 5 },
|
||||
.RatingsMultipliers = { 70, 6, 0 },
|
||||
.UpkeepCosts = { 50, 1, 0, 4, 0, 0 },
|
||||
.BuildCosts = { 35.00_GBP, 2.50_GBP, 5, },
|
||||
.DefaultPrices = { 10, 0 },
|
||||
.DefaultMusic = MUSIC_OBJECT_WATER,
|
||||
.PhotoItem = ShopItem::Photo,
|
||||
.BonusValue = 40,
|
||||
.ColourPresets = TRACK_COLOUR_PRESETS(
|
||||
{ COLOUR_GREY, COLOUR_GREY, COLOUR_BLACK },
|
||||
)),
|
||||
SET_FIELD(ColourPreview, { SPR_RIDE_DESIGN_PREVIEW_SUBMARINE_RIDE_TRACK, SPR_RIDE_DESIGN_PREVIEW_SUBMARINE_RIDE_SUPPORTS }),
|
||||
SET_FIELD(ColourKey, RideColourKey::Ride),
|
||||
SET_FIELD(Name, "submarine_ride"),
|
||||
SET_FIELD(RatingsData,
|
||||
),
|
||||
.ColourPreview = { SPR_RIDE_DESIGN_PREVIEW_SUBMARINE_RIDE_TRACK, SPR_RIDE_DESIGN_PREVIEW_SUBMARINE_RIDE_SUPPORTS },
|
||||
.ColourKey = RideColourKey::Ride,
|
||||
.Name = "submarine_ride",
|
||||
.RatingsData =
|
||||
{
|
||||
RatingsCalculationType::Normal,
|
||||
{ RIDE_RATING(2, 20), RIDE_RATING(1, 80), RIDE_RATING(1, 40) },
|
||||
@@ -65,8 +65,8 @@ constexpr RideTypeDescriptor SubmarineRideRTD =
|
||||
{ RatingsModifierType::BonusProximity, 0, 11183, 0, 0 },
|
||||
{ RatingsModifierType::BonusScenery, 0, 22310, 0, 0 },
|
||||
},
|
||||
}),
|
||||
SET_FIELD(UpdateRotating, UpdateRotatingDefault),
|
||||
SET_FIELD(LightFXAddLightsMagicVehicle, LightFxAddLightsMagicVehicle_BoatHire),
|
||||
},
|
||||
.UpdateRotating = UpdateRotatingDefault,
|
||||
.LightFXAddLightsMagicVehicle = LightFxAddLightsMagicVehicle_BoatHire,
|
||||
};
|
||||
// clang-format on
|
||||
|
||||
Reference in New Issue
Block a user