Fix #21731: previously-invisible 'alt' rides now visible

This commit is contained in:
Michael Steenbeek 2024-04-18 22:29:52 +02:00 committed by GitHub
parent 1d3a2393dc
commit 9b7face116
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
5 changed files with 214 additions and 4 deletions

View File

@ -46,7 +46,7 @@ using namespace OpenRCT2;
// It is used for making sure only compatible builds get connected, even within
// single OpenRCT2 version.
#define NETWORK_STREAM_VERSION "2"
#define NETWORK_STREAM_VERSION "3"
#define NETWORK_STREAM_ID OPENRCT2_VERSION "-" NETWORK_STREAM_VERSION

View File

@ -307,15 +307,15 @@ constexpr RideTypeDescriptor RideTypeDescriptors[RIDE_TYPE_COUNT] = {
/* RIDE_TYPE_SIDE_FRICTION_ROLLER_COASTER */ SideFrictionRollerCoasterRTD,
/* RIDE_TYPE_STEEL_WILD_MOUSE */ SteelWildMouseRTD,
/* RIDE_TYPE_MULTI_DIMENSION_ROLLER_COASTER */ MultiDimensionRollerCoasterRTD,
/* RIDE_TYPE_MULTI_DIMENSION_ROLLER_COASTER_ALT */ MultiDimensionRollerCoasterRTD,
/* RIDE_TYPE_MULTI_DIMENSION_ROLLER_COASTER_ALT */ MultiDimensionRollerCoasterAltRTD,
/* RIDE_TYPE_FLYING_ROLLER_COASTER */ FlyingRollerCoasterRTD,
/* RIDE_TYPE_FLYING_ROLLER_COASTER_ALT */ FlyingRollerCoasterRTD,
/* RIDE_TYPE_FLYING_ROLLER_COASTER_ALT */ FlyingRollerCoasterAltRTD,
/* RIDE_TYPE_VIRGINIA_REEL */ VirginiaReelRTD,
/* RIDE_TYPE_SPLASH_BOATS */ SplashBoatsRTD,
/* RIDE_TYPE_MINI_HELICOPTERS */ MiniHelicoptersRTD,
/* RIDE_TYPE_LAY_DOWN_ROLLER_COASTER */ LayDownRollerCoasterRTD,
/* RIDE_TYPE_SUSPENDED_MONORAIL */ SuspendedMonorailRTD,
/* RIDE_TYPE_LAY_DOWN_ROLLER_COASTER_ALT */ LayDownRollerCoasterRTD,
/* RIDE_TYPE_LAY_DOWN_ROLLER_COASTER_ALT */ LayDownRollerCoasterAltRTD,
/* RIDE_TYPE_REVERSER_ROLLER_COASTER */ ReverserRollerCoasterRTD,
/* RIDE_TYPE_HEARTLINE_TWISTER_COASTER */ HeartlineTwisterCoasterRTD,
/* RIDE_TYPE_MINI_GOLF */ MiniGolfRTD,

View File

@ -91,4 +91,74 @@ constexpr RideTypeDescriptor FlyingRollerCoasterRTD =
},
},
};
constexpr RideTypeDescriptor FlyingRollerCoasterAltRTD =
{
.Category = RIDE_CATEGORY_NONE,
.StartTrackPiece = TrackElemType::EndStation,
.TrackPaintFunctions = TrackDrawerDescriptor({
.Drawer = nullptr,
.EnabledTrackPieces = { },
.ExtraTrackPieces = { },
}),
.InvertedTrackPaintFunctions = TrackDrawerDescriptor({
.Drawer = nullptr,
.EnabledTrackPieces = { },
.ExtraTrackPieces = { },
}),
.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 },
),
.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) },
17,
-1,
false,
{
{ RatingsModifierType::BonusLength, 6000, 764, 0, 0 },
{ RatingsModifierType::BonusSynchronisation, 0, RIDE_RATING(0, 40), RIDE_RATING(0, 05), 0 },
{ RatingsModifierType::BonusTrainLength, 0, 187245, 0, 0 },
{ RatingsModifierType::BonusMaxSpeed, 0, 44281, 88562, 35424 },
{ RatingsModifierType::BonusAverageSpeed, 0, 291271, 436906, 0 },
{ RatingsModifierType::BonusDuration, 150, 26214, 0, 0 },
{ RatingsModifierType::BonusGForces, 0, 24576, 38130, 49648 },
{ RatingsModifierType::BonusTurns, 0, 26749, 34767, 45749 },
{ RatingsModifierType::BonusDrops, 0, 29127, 46811, 49152 },
{ RatingsModifierType::BonusSheltered, 0, 15420, 32768, 35108 },
{ RatingsModifierType::BonusProximity, 0, 20130, 0, 0 },
{ RatingsModifierType::BonusScenery, 0, 6693, 0, 0 },
{ RatingsModifierType::RequirementInversions, 1, 2, 1, 1 },
{ RatingsModifierType::RequirementMaxSpeed, 0xA0000, 2, 1, 1 },
{ RatingsModifierType::RequirementNegativeGs, FIXED_2DP(0, 40), 2, 1, 1 },
{ RatingsModifierType::RequirementNumDrops, 2, 2, 1, 1 },
{ RatingsModifierType::PenaltyLateralGs, 0, 24576, 38130, 49648 },
},
},
};
// clang-format on

View File

@ -89,4 +89,74 @@ constexpr RideTypeDescriptor LayDownRollerCoasterRTD =
},
},
};
constexpr RideTypeDescriptor LayDownRollerCoasterAltRTD =
{
.Category = RIDE_CATEGORY_NONE,
.StartTrackPiece = TrackElemType::EndStation,
.TrackPaintFunctions = TrackDrawerDescriptor({
.Drawer = nullptr,
.EnabledTrackPieces = { },
.ExtraTrackPieces = { },
}),
.InvertedTrackPaintFunctions = TrackDrawerDescriptor({
.Drawer = nullptr,
.EnabledTrackPieces = { },
.ExtraTrackPieces = { },
}),
.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 },
),
.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) },
18,
-1,
true,
{
{ RatingsModifierType::BonusLength, 6000, 764, 0, 0 },
{ RatingsModifierType::BonusSynchronisation, 0, RIDE_RATING(0, 40), RIDE_RATING(0, 05), 0 },
{ RatingsModifierType::BonusTrainLength, 0, 187245, 0, 0 },
{ RatingsModifierType::BonusMaxSpeed, 0, 44281, 88562, 35424 },
{ RatingsModifierType::BonusAverageSpeed, 0, 291271, 436906, 0 },
{ RatingsModifierType::BonusDuration, 150, 26214, 0, 0 },
{ RatingsModifierType::BonusGForces, 0, 24576, 38130, 49648 },
{ RatingsModifierType::BonusTurns, 0, 26749, 34767, 45749 },
{ RatingsModifierType::BonusDrops, 0, 29127, 46811, 49152 },
{ RatingsModifierType::BonusSheltered, 0, 15420, 32768, 35108 },
{ RatingsModifierType::BonusProximity, 0, 20130, 0, 0 },
{ RatingsModifierType::BonusScenery, 0, 6693, 0, 0 },
{ RatingsModifierType::RequirementInversions, 1, 4, 2, 2 },
{ RatingsModifierType::RequirementMaxSpeed, 0xA0000, 2, 2, 2 },
{ RatingsModifierType::RequirementNegativeGs, FIXED_2DP(0, 40), 2, 2, 2 },
{ RatingsModifierType::RequirementNumDrops, 2, 2, 2, 2 },
{ RatingsModifierType::PenaltyLateralGs, 0, 24576, 38130, 49648 },
},
},
};
// clang-format on

View File

@ -91,4 +91,74 @@ constexpr RideTypeDescriptor MultiDimensionRollerCoasterRTD =
},
};
constexpr RideTypeDescriptor MultiDimensionRollerCoasterAltRTD =
{
.Category = RIDE_CATEGORY_NONE,
.StartTrackPiece = TrackElemType::EndStation,
.TrackPaintFunctions = TrackDrawerDescriptor({
.Drawer = nullptr,
.EnabledTrackPieces = { },
.ExtraTrackPieces = { },
}),
.InvertedTrackPaintFunctions = TrackDrawerDescriptor({
.Drawer = nullptr,
.EnabledTrackPieces = { },
.ExtraTrackPieces = { },
}),
.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 },
),
.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) },
18,
-1,
true,
{
{ RatingsModifierType::BonusLength, 6000, 764, 0, 0 },
{ RatingsModifierType::BonusSynchronisation, 0, RIDE_RATING(0, 40), RIDE_RATING(0, 05), 0 },
{ RatingsModifierType::BonusTrainLength, 0, 187245, 0, 0 },
{ RatingsModifierType::BonusMaxSpeed, 0, 44281, 88562, 35424 },
{ RatingsModifierType::BonusAverageSpeed, 0, 291271, 436906, 0 },
{ RatingsModifierType::BonusDuration, 150, 26214, 0, 0 },
{ RatingsModifierType::BonusGForces, 0, 24576, 38130, 49648 },
{ RatingsModifierType::BonusTurns, 0, 26749, 34767, 45749 },
{ RatingsModifierType::BonusDrops, 0, 29127, 46811, 49152 },
{ RatingsModifierType::BonusSheltered, 0, 15420, 32768, 35108 },
{ RatingsModifierType::BonusProximity, 0, 20130, 0, 0 },
{ RatingsModifierType::BonusScenery, 0, 6693, 0, 0 },
{ RatingsModifierType::RequirementInversions, 1, 4, 1, 1 },
{ RatingsModifierType::RequirementMaxSpeed, 0xA0000, 2, 1, 1 },
{ RatingsModifierType::RequirementNegativeGs, FIXED_2DP(0, 40), 2, 1, 1 },
{ RatingsModifierType::RequirementNumDrops, 2, 2, 1, 1 },
{ RatingsModifierType::PenaltyLateralGs, 0, 24576, 38130, 49648 },
},
},
};
// clang-format on