diff --git a/src/openrct2/ride/RideData.h b/src/openrct2/ride/RideData.h index fddb2769b7..3659a9ce16 100644 --- a/src/openrct2/ride/RideData.h +++ b/src/openrct2/ride/RideData.h @@ -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(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(SPR_NONE), static_cast(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(SPR_NONE), static_cast(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 diff --git a/src/openrct2/ride/coaster/meta/AirPoweredVerticalCoaster.h b/src/openrct2/ride/coaster/meta/AirPoweredVerticalCoaster.h index f860bb4d0b..545c79e8e5 100644 --- a/src/openrct2/ride/coaster/meta/AirPoweredVerticalCoaster.h +++ b/src/openrct2/ride/coaster/meta/AirPoweredVerticalCoaster.h @@ -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 diff --git a/src/openrct2/ride/coaster/meta/AlpineCoaster.h b/src/openrct2/ride/coaster/meta/AlpineCoaster.h index bf800abd5f..595ca0a05b 100644 --- a/src/openrct2/ride/coaster/meta/AlpineCoaster.h +++ b/src/openrct2/ride/coaster/meta/AlpineCoaster.h @@ -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 diff --git a/src/openrct2/ride/coaster/meta/BobsleighCoaster.h b/src/openrct2/ride/coaster/meta/BobsleighCoaster.h index b602ed4c73..5ac10844ca 100644 --- a/src/openrct2/ride/coaster/meta/BobsleighCoaster.h +++ b/src/openrct2/ride/coaster/meta/BobsleighCoaster.h @@ -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 diff --git a/src/openrct2/ride/coaster/meta/ClassicMiniRollerCoaster.h b/src/openrct2/ride/coaster/meta/ClassicMiniRollerCoaster.h index 47ac3e8c37..c655ac5709 100644 --- a/src/openrct2/ride/coaster/meta/ClassicMiniRollerCoaster.h +++ b/src/openrct2/ride/coaster/meta/ClassicMiniRollerCoaster.h @@ -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 diff --git a/src/openrct2/ride/coaster/meta/ClassicWoodenRollerCoaster.h b/src/openrct2/ride/coaster/meta/ClassicWoodenRollerCoaster.h index 0eedefb717..f82f1c4d00 100644 --- a/src/openrct2/ride/coaster/meta/ClassicWoodenRollerCoaster.h +++ b/src/openrct2/ride/coaster/meta/ClassicWoodenRollerCoaster.h @@ -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 diff --git a/src/openrct2/ride/coaster/meta/CompactInvertedCoaster.h b/src/openrct2/ride/coaster/meta/CompactInvertedCoaster.h index 9b25f0b4ae..1775bb3c28 100644 --- a/src/openrct2/ride/coaster/meta/CompactInvertedCoaster.h +++ b/src/openrct2/ride/coaster/meta/CompactInvertedCoaster.h @@ -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 diff --git a/src/openrct2/ride/coaster/meta/CorkscrewRollerCoaster.h b/src/openrct2/ride/coaster/meta/CorkscrewRollerCoaster.h index 7f421e7544..e0abe63d0f 100644 --- a/src/openrct2/ride/coaster/meta/CorkscrewRollerCoaster.h +++ b/src/openrct2/ride/coaster/meta/CorkscrewRollerCoaster.h @@ -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 diff --git a/src/openrct2/ride/coaster/meta/FlyingRollerCoaster.h b/src/openrct2/ride/coaster/meta/FlyingRollerCoaster.h index ebe793672e..ca4ddbeb9b 100644 --- a/src/openrct2/ride/coaster/meta/FlyingRollerCoaster.h +++ b/src/openrct2/ride/coaster/meta/FlyingRollerCoaster.h @@ -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 diff --git a/src/openrct2/ride/coaster/meta/GigaCoaster.h b/src/openrct2/ride/coaster/meta/GigaCoaster.h index 405ae3f51a..6107937f5d 100644 --- a/src/openrct2/ride/coaster/meta/GigaCoaster.h +++ b/src/openrct2/ride/coaster/meta/GigaCoaster.h @@ -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 diff --git a/src/openrct2/ride/coaster/meta/HeartlineTwisterCoaster.h b/src/openrct2/ride/coaster/meta/HeartlineTwisterCoaster.h index cf1f0e7c75..3bfd1a91f7 100644 --- a/src/openrct2/ride/coaster/meta/HeartlineTwisterCoaster.h +++ b/src/openrct2/ride/coaster/meta/HeartlineTwisterCoaster.h @@ -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 diff --git a/src/openrct2/ride/coaster/meta/HybridCoaster.h b/src/openrct2/ride/coaster/meta/HybridCoaster.h index defb7600a2..3bdb2755ab 100644 --- a/src/openrct2/ride/coaster/meta/HybridCoaster.h +++ b/src/openrct2/ride/coaster/meta/HybridCoaster.h @@ -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 diff --git a/src/openrct2/ride/coaster/meta/HyperTwister.h b/src/openrct2/ride/coaster/meta/HyperTwister.h index 461cb40c54..a8e006c2ca 100644 --- a/src/openrct2/ride/coaster/meta/HyperTwister.h +++ b/src/openrct2/ride/coaster/meta/HyperTwister.h @@ -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)), - 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), + .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 diff --git a/src/openrct2/ride/coaster/meta/Hypercoaster.h b/src/openrct2/ride/coaster/meta/Hypercoaster.h index 03ddf3b0c9..ee31fe6188 100644 --- a/src/openrct2/ride/coaster/meta/Hypercoaster.h +++ b/src/openrct2/ride/coaster/meta/Hypercoaster.h @@ -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 diff --git a/src/openrct2/ride/coaster/meta/InvertedHairpinCoaster.h b/src/openrct2/ride/coaster/meta/InvertedHairpinCoaster.h index 316626bc41..8c0f1eee1b 100644 --- a/src/openrct2/ride/coaster/meta/InvertedHairpinCoaster.h +++ b/src/openrct2/ride/coaster/meta/InvertedHairpinCoaster.h @@ -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 diff --git a/src/openrct2/ride/coaster/meta/InvertedImpulseCoaster.h b/src/openrct2/ride/coaster/meta/InvertedImpulseCoaster.h index e0847dd30c..84622fd3c4 100644 --- a/src/openrct2/ride/coaster/meta/InvertedImpulseCoaster.h +++ b/src/openrct2/ride/coaster/meta/InvertedImpulseCoaster.h @@ -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 diff --git a/src/openrct2/ride/coaster/meta/InvertedRollerCoaster.h b/src/openrct2/ride/coaster/meta/InvertedRollerCoaster.h index 9d4754b769..eb9d1c0d0f 100644 --- a/src/openrct2/ride/coaster/meta/InvertedRollerCoaster.h +++ b/src/openrct2/ride/coaster/meta/InvertedRollerCoaster.h @@ -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 diff --git a/src/openrct2/ride/coaster/meta/JuniorRollerCoaster.h b/src/openrct2/ride/coaster/meta/JuniorRollerCoaster.h index 734774595d..3bb0d0a220 100644 --- a/src/openrct2/ride/coaster/meta/JuniorRollerCoaster.h +++ b/src/openrct2/ride/coaster/meta/JuniorRollerCoaster.h @@ -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 diff --git a/src/openrct2/ride/coaster/meta/LIMLaunchedRollerCoaster.h b/src/openrct2/ride/coaster/meta/LIMLaunchedRollerCoaster.h index cb5d4c447d..d3e6ec9c7e 100644 --- a/src/openrct2/ride/coaster/meta/LIMLaunchedRollerCoaster.h +++ b/src/openrct2/ride/coaster/meta/LIMLaunchedRollerCoaster.h @@ -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 diff --git a/src/openrct2/ride/coaster/meta/LayDownRollerCoaster.h b/src/openrct2/ride/coaster/meta/LayDownRollerCoaster.h index cac7e9864d..ba6311b121 100644 --- a/src/openrct2/ride/coaster/meta/LayDownRollerCoaster.h +++ b/src/openrct2/ride/coaster/meta/LayDownRollerCoaster.h @@ -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 diff --git a/src/openrct2/ride/coaster/meta/LoopingRollerCoaster.h b/src/openrct2/ride/coaster/meta/LoopingRollerCoaster.h index f8a5f57d4c..9c261cba4a 100644 --- a/src/openrct2/ride/coaster/meta/LoopingRollerCoaster.h +++ b/src/openrct2/ride/coaster/meta/LoopingRollerCoaster.h @@ -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 diff --git a/src/openrct2/ride/coaster/meta/MineRide.h b/src/openrct2/ride/coaster/meta/MineRide.h index 09ee5c6034..9366c6e5ab 100644 --- a/src/openrct2/ride/coaster/meta/MineRide.h +++ b/src/openrct2/ride/coaster/meta/MineRide.h @@ -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 diff --git a/src/openrct2/ride/coaster/meta/MineTrainCoaster.h b/src/openrct2/ride/coaster/meta/MineTrainCoaster.h index 9f0367a197..59cb22576e 100644 --- a/src/openrct2/ride/coaster/meta/MineTrainCoaster.h +++ b/src/openrct2/ride/coaster/meta/MineTrainCoaster.h @@ -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 diff --git a/src/openrct2/ride/coaster/meta/MiniRollerCoaster.h b/src/openrct2/ride/coaster/meta/MiniRollerCoaster.h index ad285c4d09..dafeec3a03 100644 --- a/src/openrct2/ride/coaster/meta/MiniRollerCoaster.h +++ b/src/openrct2/ride/coaster/meta/MiniRollerCoaster.h @@ -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 diff --git a/src/openrct2/ride/coaster/meta/MiniSuspendedCoaster.h b/src/openrct2/ride/coaster/meta/MiniSuspendedCoaster.h index 3e819cc083..e7d9ed6d0c 100644 --- a/src/openrct2/ride/coaster/meta/MiniSuspendedCoaster.h +++ b/src/openrct2/ride/coaster/meta/MiniSuspendedCoaster.h @@ -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 diff --git a/src/openrct2/ride/coaster/meta/MultiDimensionRollerCoaster.h b/src/openrct2/ride/coaster/meta/MultiDimensionRollerCoaster.h index d21e94c848..762fa54a47 100644 --- a/src/openrct2/ride/coaster/meta/MultiDimensionRollerCoaster.h +++ b/src/openrct2/ride/coaster/meta/MultiDimensionRollerCoaster.h @@ -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 diff --git a/src/openrct2/ride/coaster/meta/ReverseFreefallCoaster.h b/src/openrct2/ride/coaster/meta/ReverseFreefallCoaster.h index 49c9294ab0..e1de3681b4 100644 --- a/src/openrct2/ride/coaster/meta/ReverseFreefallCoaster.h +++ b/src/openrct2/ride/coaster/meta/ReverseFreefallCoaster.h @@ -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 diff --git a/src/openrct2/ride/coaster/meta/ReverserRollerCoaster.h b/src/openrct2/ride/coaster/meta/ReverserRollerCoaster.h index fb0368e642..e88b6f8866 100644 --- a/src/openrct2/ride/coaster/meta/ReverserRollerCoaster.h +++ b/src/openrct2/ride/coaster/meta/ReverserRollerCoaster.h @@ -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 diff --git a/src/openrct2/ride/coaster/meta/SideFrictionRollerCoaster.h b/src/openrct2/ride/coaster/meta/SideFrictionRollerCoaster.h index a3faf83029..6b232f2d6e 100644 --- a/src/openrct2/ride/coaster/meta/SideFrictionRollerCoaster.h +++ b/src/openrct2/ride/coaster/meta/SideFrictionRollerCoaster.h @@ -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 diff --git a/src/openrct2/ride/coaster/meta/SingleRailRollerCoaster.h b/src/openrct2/ride/coaster/meta/SingleRailRollerCoaster.h index 603ade0c29..534649fd20 100644 --- a/src/openrct2/ride/coaster/meta/SingleRailRollerCoaster.h +++ b/src/openrct2/ride/coaster/meta/SingleRailRollerCoaster.h @@ -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 diff --git a/src/openrct2/ride/coaster/meta/SpinningWildMouse.h b/src/openrct2/ride/coaster/meta/SpinningWildMouse.h index d64bac6286..7bf2d6fc9c 100644 --- a/src/openrct2/ride/coaster/meta/SpinningWildMouse.h +++ b/src/openrct2/ride/coaster/meta/SpinningWildMouse.h @@ -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 diff --git a/src/openrct2/ride/coaster/meta/SpiralRollerCoaster.h b/src/openrct2/ride/coaster/meta/SpiralRollerCoaster.h index 76a0865c9a..2dd77c306c 100644 --- a/src/openrct2/ride/coaster/meta/SpiralRollerCoaster.h +++ b/src/openrct2/ride/coaster/meta/SpiralRollerCoaster.h @@ -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 diff --git a/src/openrct2/ride/coaster/meta/StandUpRollerCoaster.h b/src/openrct2/ride/coaster/meta/StandUpRollerCoaster.h index bb15fc3abf..7436991e68 100644 --- a/src/openrct2/ride/coaster/meta/StandUpRollerCoaster.h +++ b/src/openrct2/ride/coaster/meta/StandUpRollerCoaster.h @@ -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 diff --git a/src/openrct2/ride/coaster/meta/SteelWildMouse.h b/src/openrct2/ride/coaster/meta/SteelWildMouse.h index c829ffca59..fa6082842b 100644 --- a/src/openrct2/ride/coaster/meta/SteelWildMouse.h +++ b/src/openrct2/ride/coaster/meta/SteelWildMouse.h @@ -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 diff --git a/src/openrct2/ride/coaster/meta/Steeplechase.h b/src/openrct2/ride/coaster/meta/Steeplechase.h index 3dc2892750..e2f2fc52c6 100644 --- a/src/openrct2/ride/coaster/meta/Steeplechase.h +++ b/src/openrct2/ride/coaster/meta/Steeplechase.h @@ -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 diff --git a/src/openrct2/ride/coaster/meta/SuspendedSwingingCoaster.h b/src/openrct2/ride/coaster/meta/SuspendedSwingingCoaster.h index 048f53bca3..334f540e14 100644 --- a/src/openrct2/ride/coaster/meta/SuspendedSwingingCoaster.h +++ b/src/openrct2/ride/coaster/meta/SuspendedSwingingCoaster.h @@ -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 diff --git a/src/openrct2/ride/coaster/meta/TwisterRollerCoaster.h b/src/openrct2/ride/coaster/meta/TwisterRollerCoaster.h index d3796d4dad..e7f4552c57 100644 --- a/src/openrct2/ride/coaster/meta/TwisterRollerCoaster.h +++ b/src/openrct2/ride/coaster/meta/TwisterRollerCoaster.h @@ -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)), - 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), + .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 diff --git a/src/openrct2/ride/coaster/meta/VerticalDropCoaster.h b/src/openrct2/ride/coaster/meta/VerticalDropCoaster.h index 0d277ad12b..14d69a149f 100644 --- a/src/openrct2/ride/coaster/meta/VerticalDropCoaster.h +++ b/src/openrct2/ride/coaster/meta/VerticalDropCoaster.h @@ -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)), - 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), + .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 diff --git a/src/openrct2/ride/coaster/meta/VirginiaReel.h b/src/openrct2/ride/coaster/meta/VirginiaReel.h index cede1da1a3..3dbdc8ffa3 100644 --- a/src/openrct2/ride/coaster/meta/VirginiaReel.h +++ b/src/openrct2/ride/coaster/meta/VirginiaReel.h @@ -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 diff --git a/src/openrct2/ride/coaster/meta/WaterCoaster.h b/src/openrct2/ride/coaster/meta/WaterCoaster.h index 26ec7f6190..ff0ca82dc4 100644 --- a/src/openrct2/ride/coaster/meta/WaterCoaster.h +++ b/src/openrct2/ride/coaster/meta/WaterCoaster.h @@ -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 diff --git a/src/openrct2/ride/coaster/meta/WoodenRollerCoaster.h b/src/openrct2/ride/coaster/meta/WoodenRollerCoaster.h index b5d305ea75..e1dea0b4a3 100644 --- a/src/openrct2/ride/coaster/meta/WoodenRollerCoaster.h +++ b/src/openrct2/ride/coaster/meta/WoodenRollerCoaster.h @@ -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 diff --git a/src/openrct2/ride/coaster/meta/WoodenWildMouse.h b/src/openrct2/ride/coaster/meta/WoodenWildMouse.h index 06c3961abd..78b5762e58 100644 --- a/src/openrct2/ride/coaster/meta/WoodenWildMouse.h +++ b/src/openrct2/ride/coaster/meta/WoodenWildMouse.h @@ -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 diff --git a/src/openrct2/ride/gentle/meta/CarRide.h b/src/openrct2/ride/gentle/meta/CarRide.h index f57edf1c72..1111fb1d1a 100644 --- a/src/openrct2/ride/gentle/meta/CarRide.h +++ b/src/openrct2/ride/gentle/meta/CarRide.h @@ -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 diff --git a/src/openrct2/ride/gentle/meta/Circus.h b/src/openrct2/ride/gentle/meta/Circus.h index 0fcf8f5399..544d8b47cc 100644 --- a/src/openrct2/ride/gentle/meta/Circus.h +++ b/src/openrct2/ride/gentle/meta/Circus.h @@ -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 diff --git a/src/openrct2/ride/gentle/meta/CrookedHouse.h b/src/openrct2/ride/gentle/meta/CrookedHouse.h index a197de90d4..e8a4bcbdd4 100644 --- a/src/openrct2/ride/gentle/meta/CrookedHouse.h +++ b/src/openrct2/ride/gentle/meta/CrookedHouse.h @@ -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 diff --git a/src/openrct2/ride/gentle/meta/Dodgems.h b/src/openrct2/ride/gentle/meta/Dodgems.h index e8211cb54f..0a63c96969 100644 --- a/src/openrct2/ride/gentle/meta/Dodgems.h +++ b/src/openrct2/ride/gentle/meta/Dodgems.h @@ -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 diff --git a/src/openrct2/ride/gentle/meta/FerrisWheel.h b/src/openrct2/ride/gentle/meta/FerrisWheel.h index 899b3a0fcf..9f11016adf 100644 --- a/src/openrct2/ride/gentle/meta/FerrisWheel.h +++ b/src/openrct2/ride/gentle/meta/FerrisWheel.h @@ -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 diff --git a/src/openrct2/ride/gentle/meta/FlyingSaucers.h b/src/openrct2/ride/gentle/meta/FlyingSaucers.h index 5d41053e06..d6bbf9545f 100644 --- a/src/openrct2/ride/gentle/meta/FlyingSaucers.h +++ b/src/openrct2/ride/gentle/meta/FlyingSaucers.h @@ -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 diff --git a/src/openrct2/ride/gentle/meta/GhostTrain.h b/src/openrct2/ride/gentle/meta/GhostTrain.h index 79a211af1a..8580afd93c 100644 --- a/src/openrct2/ride/gentle/meta/GhostTrain.h +++ b/src/openrct2/ride/gentle/meta/GhostTrain.h @@ -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 diff --git a/src/openrct2/ride/gentle/meta/HauntedHouse.h b/src/openrct2/ride/gentle/meta/HauntedHouse.h index 5f40607623..0eb69cc6a9 100644 --- a/src/openrct2/ride/gentle/meta/HauntedHouse.h +++ b/src/openrct2/ride/gentle/meta/HauntedHouse.h @@ -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 diff --git a/src/openrct2/ride/gentle/meta/Maze.h b/src/openrct2/ride/gentle/meta/Maze.h index 7baefbd8f6..1918d71338 100644 --- a/src/openrct2/ride/gentle/meta/Maze.h +++ b/src/openrct2/ride/gentle/meta/Maze.h @@ -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 diff --git a/src/openrct2/ride/gentle/meta/MerryGoRound.h b/src/openrct2/ride/gentle/meta/MerryGoRound.h index c2758d8ca6..a478e4552e 100644 --- a/src/openrct2/ride/gentle/meta/MerryGoRound.h +++ b/src/openrct2/ride/gentle/meta/MerryGoRound.h @@ -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 diff --git a/src/openrct2/ride/gentle/meta/MiniGolf.h b/src/openrct2/ride/gentle/meta/MiniGolf.h index c41078657e..d1adb9ba45 100644 --- a/src/openrct2/ride/gentle/meta/MiniGolf.h +++ b/src/openrct2/ride/gentle/meta/MiniGolf.h @@ -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 diff --git a/src/openrct2/ride/gentle/meta/MiniHelicopters.h b/src/openrct2/ride/gentle/meta/MiniHelicopters.h index 25de126e9a..74d6730e2d 100644 --- a/src/openrct2/ride/gentle/meta/MiniHelicopters.h +++ b/src/openrct2/ride/gentle/meta/MiniHelicopters.h @@ -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 diff --git a/src/openrct2/ride/gentle/meta/MonorailCycles.h b/src/openrct2/ride/gentle/meta/MonorailCycles.h index b9d3e3adab..1a5321d2af 100644 --- a/src/openrct2/ride/gentle/meta/MonorailCycles.h +++ b/src/openrct2/ride/gentle/meta/MonorailCycles.h @@ -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 diff --git a/src/openrct2/ride/gentle/meta/MonsterTrucks.h b/src/openrct2/ride/gentle/meta/MonsterTrucks.h index aee1f2c18b..a2ebdee5d6 100644 --- a/src/openrct2/ride/gentle/meta/MonsterTrucks.h +++ b/src/openrct2/ride/gentle/meta/MonsterTrucks.h @@ -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(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(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 diff --git a/src/openrct2/ride/gentle/meta/ObservationTower.h b/src/openrct2/ride/gentle/meta/ObservationTower.h index c30b266c61..e13094fe9f 100644 --- a/src/openrct2/ride/gentle/meta/ObservationTower.h +++ b/src/openrct2/ride/gentle/meta/ObservationTower.h @@ -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 diff --git a/src/openrct2/ride/gentle/meta/SpaceRings.h b/src/openrct2/ride/gentle/meta/SpaceRings.h index 428899a17c..3901013432 100644 --- a/src/openrct2/ride/gentle/meta/SpaceRings.h +++ b/src/openrct2/ride/gentle/meta/SpaceRings.h @@ -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 diff --git a/src/openrct2/ride/gentle/meta/SpiralSlide.h b/src/openrct2/ride/gentle/meta/SpiralSlide.h index c3a1d56945..ac9be295cd 100644 --- a/src/openrct2/ride/gentle/meta/SpiralSlide.h +++ b/src/openrct2/ride/gentle/meta/SpiralSlide.h @@ -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 diff --git a/src/openrct2/ride/shops/meta/CashMachine.h b/src/openrct2/ride/shops/meta/CashMachine.h index 3b50a2c882..f15c9544ea 100644 --- a/src/openrct2/ride/shops/meta/CashMachine.h +++ b/src/openrct2/ride/shops/meta/CashMachine.h @@ -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 diff --git a/src/openrct2/ride/shops/meta/DrinkStall.h b/src/openrct2/ride/shops/meta/DrinkStall.h index 23c7dffe60..e191b42572 100644 --- a/src/openrct2/ride/shops/meta/DrinkStall.h +++ b/src/openrct2/ride/shops/meta/DrinkStall.h @@ -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 diff --git a/src/openrct2/ride/shops/meta/FirstAid.h b/src/openrct2/ride/shops/meta/FirstAid.h index 7e10b399a0..82486bb851 100644 --- a/src/openrct2/ride/shops/meta/FirstAid.h +++ b/src/openrct2/ride/shops/meta/FirstAid.h @@ -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 diff --git a/src/openrct2/ride/shops/meta/FoodStall.h b/src/openrct2/ride/shops/meta/FoodStall.h index 3013471c87..1efc4008ea 100644 --- a/src/openrct2/ride/shops/meta/FoodStall.h +++ b/src/openrct2/ride/shops/meta/FoodStall.h @@ -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 diff --git a/src/openrct2/ride/shops/meta/InformationKiosk.h b/src/openrct2/ride/shops/meta/InformationKiosk.h index 478ccb9f64..d9f39543eb 100644 --- a/src/openrct2/ride/shops/meta/InformationKiosk.h +++ b/src/openrct2/ride/shops/meta/InformationKiosk.h @@ -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 diff --git a/src/openrct2/ride/shops/meta/Shop.h b/src/openrct2/ride/shops/meta/Shop.h index 72d0a6335c..be0a2b8dbe 100644 --- a/src/openrct2/ride/shops/meta/Shop.h +++ b/src/openrct2/ride/shops/meta/Shop.h @@ -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 diff --git a/src/openrct2/ride/shops/meta/Toilets.h b/src/openrct2/ride/shops/meta/Toilets.h index 74d518c365..5633a07935 100644 --- a/src/openrct2/ride/shops/meta/Toilets.h +++ b/src/openrct2/ride/shops/meta/Toilets.h @@ -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 diff --git a/src/openrct2/ride/thrill/meta/3DCinema.h b/src/openrct2/ride/thrill/meta/3DCinema.h index f725a528f9..3a8ae668f1 100644 --- a/src/openrct2/ride/thrill/meta/3DCinema.h +++ b/src/openrct2/ride/thrill/meta/3DCinema.h @@ -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 diff --git a/src/openrct2/ride/thrill/meta/Enterprise.h b/src/openrct2/ride/thrill/meta/Enterprise.h index 7b2e0b8035..461a1d1952 100644 --- a/src/openrct2/ride/thrill/meta/Enterprise.h +++ b/src/openrct2/ride/thrill/meta/Enterprise.h @@ -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 diff --git a/src/openrct2/ride/thrill/meta/GoKarts.h b/src/openrct2/ride/thrill/meta/GoKarts.h index 4f80d54fa3..735975d20c 100644 --- a/src/openrct2/ride/thrill/meta/GoKarts.h +++ b/src/openrct2/ride/thrill/meta/GoKarts.h @@ -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 diff --git a/src/openrct2/ride/thrill/meta/LaunchedFreefall.h b/src/openrct2/ride/thrill/meta/LaunchedFreefall.h index 65ba26a33e..15c325fd82 100644 --- a/src/openrct2/ride/thrill/meta/LaunchedFreefall.h +++ b/src/openrct2/ride/thrill/meta/LaunchedFreefall.h @@ -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 diff --git a/src/openrct2/ride/thrill/meta/MagicCarpet.h b/src/openrct2/ride/thrill/meta/MagicCarpet.h index 58dd321274..3070519b89 100644 --- a/src/openrct2/ride/thrill/meta/MagicCarpet.h +++ b/src/openrct2/ride/thrill/meta/MagicCarpet.h @@ -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 diff --git a/src/openrct2/ride/thrill/meta/MotionSimulator.h b/src/openrct2/ride/thrill/meta/MotionSimulator.h index 2c5cdb3e1a..c33602634c 100644 --- a/src/openrct2/ride/thrill/meta/MotionSimulator.h +++ b/src/openrct2/ride/thrill/meta/MotionSimulator.h @@ -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 diff --git a/src/openrct2/ride/thrill/meta/RotoDrop.h b/src/openrct2/ride/thrill/meta/RotoDrop.h index acfb47f353..94e02fa8af 100644 --- a/src/openrct2/ride/thrill/meta/RotoDrop.h +++ b/src/openrct2/ride/thrill/meta/RotoDrop.h @@ -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 diff --git a/src/openrct2/ride/thrill/meta/SwingingInverterShip.h b/src/openrct2/ride/thrill/meta/SwingingInverterShip.h index f7b50a2f39..6df8eb6d0a 100644 --- a/src/openrct2/ride/thrill/meta/SwingingInverterShip.h +++ b/src/openrct2/ride/thrill/meta/SwingingInverterShip.h @@ -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 diff --git a/src/openrct2/ride/thrill/meta/SwingingShip.h b/src/openrct2/ride/thrill/meta/SwingingShip.h index 7b43e09387..55e861a334 100644 --- a/src/openrct2/ride/thrill/meta/SwingingShip.h +++ b/src/openrct2/ride/thrill/meta/SwingingShip.h @@ -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 diff --git a/src/openrct2/ride/thrill/meta/TopSpin.h b/src/openrct2/ride/thrill/meta/TopSpin.h index 9054566c8e..df9aca85d6 100644 --- a/src/openrct2/ride/thrill/meta/TopSpin.h +++ b/src/openrct2/ride/thrill/meta/TopSpin.h @@ -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 diff --git a/src/openrct2/ride/thrill/meta/Twist.h b/src/openrct2/ride/thrill/meta/Twist.h index 62200aa47f..27b2ac67d6 100644 --- a/src/openrct2/ride/thrill/meta/Twist.h +++ b/src/openrct2/ride/thrill/meta/Twist.h @@ -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 diff --git a/src/openrct2/ride/transport/meta/Chairlift.h b/src/openrct2/ride/transport/meta/Chairlift.h index ffef64a8d2..753a526240 100644 --- a/src/openrct2/ride/transport/meta/Chairlift.h +++ b/src/openrct2/ride/transport/meta/Chairlift.h @@ -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 diff --git a/src/openrct2/ride/transport/meta/Lift.h b/src/openrct2/ride/transport/meta/Lift.h index 394ccb22b6..11f2fd241f 100644 --- a/src/openrct2/ride/transport/meta/Lift.h +++ b/src/openrct2/ride/transport/meta/Lift.h @@ -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 diff --git a/src/openrct2/ride/transport/meta/MiniatureRailway.h b/src/openrct2/ride/transport/meta/MiniatureRailway.h index abe8c6905f..dc8c613c25 100644 --- a/src/openrct2/ride/transport/meta/MiniatureRailway.h +++ b/src/openrct2/ride/transport/meta/MiniatureRailway.h @@ -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 diff --git a/src/openrct2/ride/transport/meta/Monorail.h b/src/openrct2/ride/transport/meta/Monorail.h index ebb18b5175..068c25dddb 100644 --- a/src/openrct2/ride/transport/meta/Monorail.h +++ b/src/openrct2/ride/transport/meta/Monorail.h @@ -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 diff --git a/src/openrct2/ride/transport/meta/SuspendedMonorail.h b/src/openrct2/ride/transport/meta/SuspendedMonorail.h index e7110bb2c4..2ff5b639cb 100644 --- a/src/openrct2/ride/transport/meta/SuspendedMonorail.h +++ b/src/openrct2/ride/transport/meta/SuspendedMonorail.h @@ -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 diff --git a/src/openrct2/ride/water/meta/BoatHire.h b/src/openrct2/ride/water/meta/BoatHire.h index d2cc9ac85d..cc3b72021e 100644 --- a/src/openrct2/ride/water/meta/BoatHire.h +++ b/src/openrct2/ride/water/meta/BoatHire.h @@ -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 diff --git a/src/openrct2/ride/water/meta/DinghySlide.h b/src/openrct2/ride/water/meta/DinghySlide.h index 6da7acfa49..46a9b6f0a5 100644 --- a/src/openrct2/ride/water/meta/DinghySlide.h +++ b/src/openrct2/ride/water/meta/DinghySlide.h @@ -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 diff --git a/src/openrct2/ride/water/meta/LogFlume.h b/src/openrct2/ride/water/meta/LogFlume.h index 7cffca83ab..5de6e0732a 100644 --- a/src/openrct2/ride/water/meta/LogFlume.h +++ b/src/openrct2/ride/water/meta/LogFlume.h @@ -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 diff --git a/src/openrct2/ride/water/meta/RiverRafts.h b/src/openrct2/ride/water/meta/RiverRafts.h index ac071a8cc7..03a0adb17c 100644 --- a/src/openrct2/ride/water/meta/RiverRafts.h +++ b/src/openrct2/ride/water/meta/RiverRafts.h @@ -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 diff --git a/src/openrct2/ride/water/meta/RiverRapids.h b/src/openrct2/ride/water/meta/RiverRapids.h index 3adb5d9d49..773bc27091 100644 --- a/src/openrct2/ride/water/meta/RiverRapids.h +++ b/src/openrct2/ride/water/meta/RiverRapids.h @@ -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 diff --git a/src/openrct2/ride/water/meta/SplashBoats.h b/src/openrct2/ride/water/meta/SplashBoats.h index 3d906de710..d28d491a26 100644 --- a/src/openrct2/ride/water/meta/SplashBoats.h +++ b/src/openrct2/ride/water/meta/SplashBoats.h @@ -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 diff --git a/src/openrct2/ride/water/meta/SubmarineRide.h b/src/openrct2/ride/water/meta/SubmarineRide.h index ac75a21a79..51e83dac77 100644 --- a/src/openrct2/ride/water/meta/SubmarineRide.h +++ b/src/openrct2/ride/water/meta/SubmarineRide.h @@ -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