diff --git a/distribution/changelog.txt b/distribution/changelog.txt index f1a895a343..b4c76b4d27 100644 --- a/distribution/changelog.txt +++ b/distribution/changelog.txt @@ -5,6 +5,7 @@ - Improved: [#23051] Add large sloped turns and new inversions to the Twister, Vertical Drop, Hyper and Flying Roller Coasters. - Improved: [#23123] Improve sorting of roller coasters in build new ride menu. - Improved: [#23211] Add boosters to classic wooden roller coaster (cheats only). +- Improved: [#23233] Add diagonal booster to LSM Launched Coaster. - Fix: [#22726] ‘Force park rating’ cheat is not saved with the park. - Fix: [#23206] Multiplayer desyncs when FPS is uncapped. - Fix: [#23238] Updating a guest’s favourite ride works differently from vanilla RCT2. diff --git a/resources/g2/sprites.json b/resources/g2/sprites.json index 7b2079f8a4..f2d753e98c 100644 --- a/resources/g2/sprites.json +++ b/resources/g2/sprites.json @@ -2847,6 +2847,36 @@ "y": -9, "palette": "keep" }, + { + "path": "track/lattice_triangle/diagonal_booster_0.png", + "x": -32, + "y": 3 + }, + { + "path": "track/lattice_triangle/diagonal_booster_1.png", + "x": -8, + "y": -9 + }, + { + "path": "track/lattice_triangle/diagonal_booster_alt_0.png", + "x": -32, + "y": 2 + }, + { + "path": "track/lattice_triangle/diagonal_booster_alt_1.png", + "x": -8, + "y": -9 + }, + { + "path": "track/lattice_triangle/diagonal_booster_alt_2.png", + "x": -32, + "y": 3 + }, + { + "path": "track/lattice_triangle/diagonal_booster_alt_3.png", + "x": -8, + "y": -9 + }, { "path": "track/lattice_triangle/drive_tyre_1.png", "x": -22, diff --git a/resources/g2/track/lattice_triangle/diagonal_booster_0.png b/resources/g2/track/lattice_triangle/diagonal_booster_0.png new file mode 100644 index 0000000000..b3260656d3 Binary files /dev/null and b/resources/g2/track/lattice_triangle/diagonal_booster_0.png differ diff --git a/resources/g2/track/lattice_triangle/diagonal_booster_1.png b/resources/g2/track/lattice_triangle/diagonal_booster_1.png new file mode 100644 index 0000000000..cb2f306260 Binary files /dev/null and b/resources/g2/track/lattice_triangle/diagonal_booster_1.png differ diff --git a/resources/g2/track/lattice_triangle/diagonal_booster_alt_0.png b/resources/g2/track/lattice_triangle/diagonal_booster_alt_0.png new file mode 100644 index 0000000000..259e83f917 Binary files /dev/null and b/resources/g2/track/lattice_triangle/diagonal_booster_alt_0.png differ diff --git a/resources/g2/track/lattice_triangle/diagonal_booster_alt_1.png b/resources/g2/track/lattice_triangle/diagonal_booster_alt_1.png new file mode 100644 index 0000000000..98715fb7e8 Binary files /dev/null and b/resources/g2/track/lattice_triangle/diagonal_booster_alt_1.png differ diff --git a/resources/g2/track/lattice_triangle/diagonal_booster_alt_2.png b/resources/g2/track/lattice_triangle/diagonal_booster_alt_2.png new file mode 100644 index 0000000000..879a700f1b Binary files /dev/null and b/resources/g2/track/lattice_triangle/diagonal_booster_alt_2.png differ diff --git a/resources/g2/track/lattice_triangle/diagonal_booster_alt_3.png b/resources/g2/track/lattice_triangle/diagonal_booster_alt_3.png new file mode 100644 index 0000000000..7b160e3e18 Binary files /dev/null and b/resources/g2/track/lattice_triangle/diagonal_booster_alt_3.png differ diff --git a/src/openrct2-ui/ride/Construction.h b/src/openrct2-ui/ride/Construction.h index 42d2f347c1..392edf426c 100644 --- a/src/openrct2-ui/ride/Construction.h +++ b/src/openrct2-ui/ride/Construction.h @@ -47,6 +47,7 @@ namespace OpenRCT2 TrackElemType::LeftHalfBankedHelixDownLarge, TrackElemType::RightHalfBankedHelixDownLarge, TrackElemType::Booster, + TrackElemType::DiagBooster, TrackElemType::Brakes, TrackElemType::DiagBrakes, TrackElemType::Down25Brakes, @@ -143,7 +144,7 @@ namespace OpenRCT2 constexpr size_t DropdownLength = DropdownOrder.size(); // Update the magic number with the current number of track elements to silence - static_assert(EnumValue(TrackElemType::Count) == 340, "Reminder to add new track element to special dropdown list"); + static_assert(EnumValue(TrackElemType::Count) == 341, "Reminder to add new track element to special dropdown list"); constexpr bool TrackPieceDirectionIsDiagonal(const uint8_t direction) { diff --git a/src/openrct2/network/NetworkBase.cpp b/src/openrct2/network/NetworkBase.cpp index 73226b6e07..1ec9033c2f 100644 --- a/src/openrct2/network/NetworkBase.cpp +++ b/src/openrct2/network/NetworkBase.cpp @@ -49,7 +49,7 @@ using namespace OpenRCT2; // It is used for making sure only compatible builds get connected, even within // single OpenRCT2 version. -constexpr uint8_t kNetworkStreamVersion = 4; +constexpr uint8_t kNetworkStreamVersion = 5; const std::string kNetworkStreamID = std::string(OPENRCT2_VERSION) + "-" + std::to_string(kNetworkStreamVersion); diff --git a/src/openrct2/paint/track/coaster/LatticeTriangleTrack.cpp b/src/openrct2/paint/track/coaster/LatticeTriangleTrack.cpp index 84f425a21f..a6d1f7a09a 100644 --- a/src/openrct2/paint/track/coaster/LatticeTriangleTrack.cpp +++ b/src/openrct2/paint/track/coaster/LatticeTriangleTrack.cpp @@ -18421,6 +18421,18 @@ static void LatticeTriangleTrackDiagBrakes( PaintUtilSetGeneralSupportHeight(session, height + kDefaultGeneralSupportHeight); } +static void LatticeTriangleTrackDiagBooster( + PaintSession& session, const Ride& ride, uint8_t trackSequence, uint8_t direction, int32_t height, + const TrackElement& trackElement, SupportType supportType) +{ + constexpr ImageIndex images[kNumOrthogonalDirections] = { SPR_G2_LATTICE_TRIANGLE_TRACK_DIAG_BOOSTER_1, + SPR_G2_LATTICE_TRIANGLE_TRACK_DIAG_BOOSTER_2, + SPR_G2_LATTICE_TRIANGLE_TRACK_DIAG_BOOSTER_1, + SPR_G2_LATTICE_TRIANGLE_TRACK_DIAG_BOOSTER_2 }; + + TrackPaintUtilDiagTilesPaintExtra(session, 3, height, direction, trackSequence, images, supportType.metal); +} + TRACK_PAINT_FUNCTION GetTrackPaintFunctionLatticeTriangleTrack(OpenRCT2::TrackElemType trackType) { switch (trackType) @@ -18910,6 +18922,8 @@ TRACK_PAINT_FUNCTION GetTrackPaintFunctionLatticeTriangleTrack(OpenRCT2::TrackEl case TrackElemType::DiagBlockBrakes: case TrackElemType::DiagBrakes: return LatticeTriangleTrackDiagBrakes; + case TrackElemType::DiagBooster: + return LatticeTriangleTrackDiagBooster; default: return nullptr; } diff --git a/src/openrct2/paint/track/coaster/LatticeTriangleTrackAlt.cpp b/src/openrct2/paint/track/coaster/LatticeTriangleTrackAlt.cpp index f2623d6649..fce98ceb48 100644 --- a/src/openrct2/paint/track/coaster/LatticeTriangleTrackAlt.cpp +++ b/src/openrct2/paint/track/coaster/LatticeTriangleTrackAlt.cpp @@ -194,6 +194,18 @@ static void LatticeTriangleTrackAltPoweredLift( PaintUtilSetGeneralSupportHeight(session, height + 56); } +static void LatticeTriangleTrackAltDiagBooster( + PaintSession& session, const Ride& ride, uint8_t trackSequence, uint8_t direction, int32_t height, + const TrackElement& trackElement, SupportType supportType) +{ + constexpr ImageIndex images[kNumOrthogonalDirections] = { SPR_G2_LATTICE_TRIANGLE_TRACK_DIAG_BOOSTER_ALT_1, + SPR_G2_LATTICE_TRIANGLE_TRACK_DIAG_BOOSTER_ALT_2, + SPR_G2_LATTICE_TRIANGLE_TRACK_DIAG_BOOSTER_ALT_3, + SPR_G2_LATTICE_TRIANGLE_TRACK_DIAG_BOOSTER_ALT_4 }; + + TrackPaintUtilDiagTilesPaintExtra(session, 3, height, direction, trackSequence, images, supportType.metal); +} + TRACK_PAINT_FUNCTION GetTrackPaintFunctionLatticeTriangleTrackAlt(TrackElemType trackType) { switch (trackType) @@ -210,6 +222,8 @@ TRACK_PAINT_FUNCTION GetTrackPaintFunctionLatticeTriangleTrackAlt(TrackElemType return LatticeTriangleTrackAltBooster; case TrackElemType::PoweredLift: return LatticeTriangleTrackAltPoweredLift; + case TrackElemType::DiagBooster: + return LatticeTriangleTrackAltDiagBooster; default: return GetTrackPaintFunctionLatticeTriangleTrack(trackType); diff --git a/src/openrct2/park/ParkFile.h b/src/openrct2/park/ParkFile.h index 92d883c79c..5d9a6d3ad5 100644 --- a/src/openrct2/park/ParkFile.h +++ b/src/openrct2/park/ParkFile.h @@ -11,10 +11,10 @@ namespace OpenRCT2 struct GameState_t; // Current version that is saved. - constexpr uint32_t PARK_FILE_CURRENT_VERSION = 44; + constexpr uint32_t PARK_FILE_CURRENT_VERSION = 45; // The minimum version that is forwards compatible with the current version. - constexpr uint32_t PARK_FILE_MIN_VERSION = 44; + constexpr uint32_t PARK_FILE_MIN_VERSION = 45; // The minimum version that is backwards compatible with the current version. // If this is increased beyond 0, uncomment the checks in ParkFile.cpp and Context.cpp! diff --git a/src/openrct2/ride/Ride.cpp b/src/openrct2/ride/Ride.cpp index 9262504fb2..c9ffa62b2c 100644 --- a/src/openrct2/ride/Ride.cpp +++ b/src/openrct2/ride/Ride.cpp @@ -4939,6 +4939,7 @@ OpenRCT2::BitSet RideEntryGetSupportedTrackPieces( { SpriteGroupType::SlopeFlat, SpritePrecision::Sprites8 }, // TrackGroup::diagBrakes { SpriteGroupType::SlopeFlat, SpritePrecision::Sprites8 }, // TrackGroup::diagBlockBrakes { SpriteGroupType::Slopes25, SpritePrecision::Sprites4 }, // TrackGroup::inclinedBrakes + { SpriteGroupType::SlopeFlat, SpritePrecision::Sprites8 }, // TrackGroup::diagBooster }; static_assert(std::size(trackPieceRequiredSprites) == EnumValue(TrackGroup::count)); diff --git a/src/openrct2/ride/Track.cpp b/src/openrct2/ride/Track.cpp index 78fd353d65..0c080fef7d 100644 --- a/src/openrct2/ride/Track.cpp +++ b/src/openrct2/ride/Track.cpp @@ -599,7 +599,14 @@ bool TrackTypeIsBlockBrakes(OpenRCT2::TrackElemType trackType) bool TrackTypeIsBooster(OpenRCT2::TrackElemType trackType) { - return trackType == TrackElemType::Booster; + switch (trackType) + { + case TrackElemType::Booster: + case TrackElemType::DiagBooster: + return true; + default: + return false; + } } bool TrackElementIsCovered(OpenRCT2::TrackElemType trackElementType) diff --git a/src/openrct2/ride/Track.h b/src/openrct2/ride/Track.h index 9a37c76438..bc7a1a0fcc 100644 --- a/src/openrct2/ride/Track.h +++ b/src/openrct2/ride/Track.h @@ -146,6 +146,7 @@ enum class TrackGroup : uint8_t diagBrakes, diagBlockBrakes, inclinedBrakes, + diagBooster, count, }; @@ -600,8 +601,9 @@ namespace OpenRCT2 DiagBrakes = 337, DiagBlockBrakes = 338, Down25Brakes = 339, + DiagBooster = 340, - Count = 340, + Count = 341, None = 65535, }; } diff --git a/src/openrct2/ride/TrackData.cpp b/src/openrct2/ride/TrackData.cpp index 8b7db7a82a..1396e5aead 100644 --- a/src/openrct2/ride/TrackData.cpp +++ b/src/openrct2/ride/TrackData.cpp @@ -368,7 +368,8 @@ namespace OpenRCT2::TrackMetaData { 4, 1, 0,-48, -32, 64 }, // TrackElemType::RightEighthBankToOrthogonalDown25 { 4, 4, 0, 0, -32, 32 }, // TrackElemType::DiagBrakes { 4, 4, 0, 0, -32, 32 }, // TrackElemType::DiagBlockBrakes - { 0, 0, 16, 0, 0, 0 } // TrackElemType::Down25Brakes + { 0, 0, 16, 0, 0, 0 }, // TrackElemType::Down25Brakes + { 4, 4, 0, 0, -32, 32 }, // TrackElemType::DiagBooster }; static_assert(std::size(_trackCoordinates) == EnumValue(TrackElemType::Count)); @@ -713,6 +714,7 @@ namespace OpenRCT2::TrackMetaData 45, // TrackElemType::DiagBrakes 45, // TrackElemType::DiagBlockBrakes 33, // TrackElemType::Down25Brakes + 45, // TrackElemType::DiagBooster }; static_assert(std::size(TrackPieceLengths) == EnumValue(TrackElemType::Count)); @@ -1058,6 +1060,7 @@ namespace OpenRCT2::TrackMetaData { TrackElemType::DiagBrakes, TrackElemType::DiagBrakes }, // TrackElemType::DiagBrakes { TrackCurve::None, TrackCurve::None }, // TrackElemType::DiagBlockBrakes { TrackElemType::Down25Brakes, TrackElemType::Down25Brakes }, // TrackElemType::Down25Brakes + { TrackElemType::DiagBooster, TrackElemType::DiagBooster }, // TrackElemType::DiagBooster }; static_assert(std::size(gTrackCurveChain) == EnumValue(TrackElemType::Count)); @@ -1592,6 +1595,7 @@ namespace OpenRCT2::TrackMetaData TrackElemType::None, // TrackElemType::DiagBrakes TrackElemType::None, // TrackElemType::DiagBlockBrakes TrackElemType::None, // TrackElemType::Down25Brakes + TrackElemType::None, // TrackElemType::DiagBooster }; static_assert(std::size(AlternativeTrackTypes) == EnumValue(TrackElemType::Count)); @@ -1937,6 +1941,7 @@ namespace OpenRCT2::TrackMetaData 123456, // TrackElemType::DiagBrakes 123456, // TrackElemType::DiagBlockBrakes 109824, // TrackElemType::Down25Brakes + 123456, // TrackElemType::DiagBooster }; static_assert(std::size(TrackPricing) == EnumValue(TrackElemType::Count)); @@ -2282,6 +2287,7 @@ namespace OpenRCT2::TrackMetaData TrackElemType::DiagBrakes, TrackElemType::DiagBlockBrakes, TrackElemType::Down25Brakes, + TrackElemType::DiagBooster, }; static_assert(std::size(TrackElementMirrorMap) == EnumValue(TrackElemType::Count)); @@ -2627,6 +2633,7 @@ namespace OpenRCT2::TrackMetaData (1 << 0), // TrackElemType::DiagBrakes (1 << 0), // TrackElemType::DiagBlockBrakes (1 << 0), // TrackElemType::Down25Brakes + (1 << 0), // TrackElemType::DiagBooster }; static_assert(std::size(TrackHeightMarkerPositions) == EnumValue(TrackElemType::Count)); @@ -2975,6 +2982,7 @@ namespace OpenRCT2::TrackMetaData /* TrackElemType::DiagBrakes */ 0, /* TrackElemType::DiagBlockBrakes */ 0, /* TrackElemType::Down25Brakes */ TRACK_ELEM_FLAG_DOWN | TRACK_ELEM_FLAG_STARTS_AT_HALF_HEIGHT, + /* TrackElemType::DiagBooster */ 0, }; static_assert(std::size(TrackFlags) == EnumValue(TrackElemType::Count)); // clang-format on @@ -3324,6 +3332,7 @@ namespace OpenRCT2::TrackMetaData { TrackGroup::diagBrakes, TrackPitch::None, TrackPitch::None, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::DiagBrakes { TrackGroup::diagBlockBrakes, TrackPitch::None, TrackPitch::None, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::DiagBlockBrakes { TrackGroup::inclinedBrakes, TrackPitch::Down25, TrackPitch::Down25, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::Down25Brakes + { TrackGroup::diagBooster, TrackPitch::None, TrackPitch::None, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::DiagBooster }; static_assert(std::size(TrackDefinitions) == EnumValue(TrackElemType::Count)); @@ -3386,7 +3395,7 @@ namespace OpenRCT2::TrackMetaData SpinFunction::None, SpinFunction::None, SpinFunction::None, SpinFunction::None, SpinFunction::None, SpinFunction::None, SpinFunction::None, SpinFunction::None, SpinFunction::None, SpinFunction::None, SpinFunction::None, SpinFunction::L9, SpinFunction::R9, SpinFunction::L9, SpinFunction::R9, SpinFunction::L9, SpinFunction::R9, SpinFunction::L9, - SpinFunction::R9, SpinFunction::None, SpinFunction::None, SpinFunction::None + SpinFunction::R9, SpinFunction::None, SpinFunction::None, SpinFunction::None, SpinFunction::None }; static_assert(std::size(TrackTypeToSpinFunction) == EnumValue(TrackElemType::Count)); @@ -4681,6 +4690,7 @@ namespace OpenRCT2::TrackMetaData STR_BRAKES, // TrackElemType::DiagBrakes STR_BLOCK_BRAKES, // TrackElemType::DiagBlockBrakes STR_BRAKES, // TrackElemType::Down25Brakes + STR_BOOSTER, // TrackElemType::DiagBooster }; static_assert(std::size(RideConfigurationStringIds) == EnumValue(TrackElemType::Count)); @@ -12597,7 +12607,8 @@ namespace OpenRCT2::TrackMetaData /* TrackElemType::DiagBlockBrakes */ { 4, { kDiagBlockBrakesSeq0, kDiagBlockBrakesSeq1, kDiagBlockBrakesSeq2, kDiagBlockBrakesSeq3 } }, /* TrackElemType::InclinedBrakes */ - { 1, { kDown25Seq0 } } + { 1, { kDown25Seq0 } }, + /* TrackElemType::DiagBooster */ { 4, { kDiagFlatSeq0, kDiagFlatSeq1, kDiagFlatSeq2, kDiagFlatSeq3 } }, }; static constexpr auto BuildDescriptorTable() diff --git a/src/openrct2/ride/VehicleSubpositionData.cpp b/src/openrct2/ride/VehicleSubpositionData.cpp index e206fa8cde..fd979d5032 100644 --- a/src/openrct2/ride/VehicleSubpositionData.cpp +++ b/src/openrct2/ride/VehicleSubpositionData.cpp @@ -30078,9 +30078,10 @@ static constexpr const VehicleInfoList *TrackVehicleInfoListDefault[] = { &TrackVehicleInfoRightEighthBankToOrthogonalUp250, &TrackVehicleInfoRightEighthBankToOrthogonalUp251, &TrackVehicleInfoRightEighthBankToOrthogonalUp252, &TrackVehicleInfoRightEighthBankToOrthogonalUp253, // TrackElemType::RightEighthBankBankToOrthogonalUp25 &TrackVehicleInfoLeftEighthBankToOrthogonalDown250, &TrackVehicleInfoLeftEighthBankToOrthogonalDown251, &TrackVehicleInfoLeftEighthBankToOrthogonalDown252, &TrackVehicleInfoLeftEighthBankToOrthogonalDown253, // TrackElemType::LeftEighthBankBankToOrthogonalDown25 &TrackVehicleInfoRightEighthBankToOrthogonalDown250, &TrackVehicleInfoRightEighthBankToOrthogonalDown251, &TrackVehicleInfoRightEighthBankToOrthogonalDown252, &TrackVehicleInfoRightEighthBankToOrthogonalDown253, // TrackElemType::RightEighthBankBankToOrthogonalDown25 - &TrackVehicleInfo_9162E6, &TrackVehicleInfo_916408, &TrackVehicleInfo_91652A, &TrackVehicleInfo_91664C, // DiagBrakes - &TrackVehicleInfo_9162E6, &TrackVehicleInfo_916408, &TrackVehicleInfo_91652A, &TrackVehicleInfo_91664C, // DiagBlockBrakes - &TrackVehicleInfo_8C27B2, &TrackVehicleInfo_8C28D4, &TrackVehicleInfo_8C29F6, &TrackVehicleInfo_8C2B18, // SlopedBrakes + &TrackVehicleInfo_9162E6, &TrackVehicleInfo_916408, &TrackVehicleInfo_91652A, &TrackVehicleInfo_91664C, // DiagBrakes + &TrackVehicleInfo_9162E6, &TrackVehicleInfo_916408, &TrackVehicleInfo_91652A, &TrackVehicleInfo_91664C, // DiagBlockBrakes + &TrackVehicleInfo_8C27B2, &TrackVehicleInfo_8C28D4, &TrackVehicleInfo_8C29F6, &TrackVehicleInfo_8C2B18, // SlopedBrakes + &TrackVehicleInfo_9162E6, &TrackVehicleInfo_916408, &TrackVehicleInfo_91652A, &TrackVehicleInfo_91664C, // DiagBooster }; static_assert(std::size(TrackVehicleInfoListDefault) == VehicleTrackSubpositionSizeDefault); diff --git a/src/openrct2/ride/rtd/coaster/GigaCoaster.h b/src/openrct2/ride/rtd/coaster/GigaCoaster.h index fdb2ae56d1..8ee1c30894 100644 --- a/src/openrct2/ride/rtd/coaster/GigaCoaster.h +++ b/src/openrct2/ride/rtd/coaster/GigaCoaster.h @@ -23,7 +23,7 @@ constexpr RideTypeDescriptor GigaCoasterRTD = .Drawer = GetTrackPaintFunctionLatticeTriangleTrack, .supportType = MetalSupportType::Tubes, .enabledTrackGroups = {TrackGroup::straight, TrackGroup::stationEnd, TrackGroup::liftHill, TrackGroup::flatRollBanking, TrackGroup::slope, TrackGroup::slopeSteepUp, TrackGroup::slopeSteepDown, TrackGroup::slopeCurve, TrackGroup::slopeCurveSteep, TrackGroup::sBend, TrackGroup::curveSmall, TrackGroup::curve, TrackGroup::curveLarge, TrackGroup::helixDownBankedHalf, TrackGroup::helixUpBankedHalf, TrackGroup::brakes, TrackGroup::onridePhoto, TrackGroup::blockBrakes, TrackGroup::slopeRollBanking, TrackGroup::slopeSteepLong, TrackGroup::liftHillCable, TrackGroup::slopeCurveBanked, TrackGroup::slopeCurveLarge, TrackGroup::diagBrakes, TrackGroup::diagBlockBrakes, TrackGroup::slopeVertical, TrackGroup::curveVertical}, - .extraTrackGroups = {TrackGroup::barrelRoll, TrackGroup::quarterLoop, TrackGroup::halfLoop, TrackGroup::halfLoopMedium, TrackGroup::halfLoopLarge, TrackGroup::verticalLoop, TrackGroup::corkscrew, TrackGroup::corkscrewLarge, TrackGroup::zeroGRoll, TrackGroup::zeroGRollLarge, TrackGroup::booster, TrackGroup::poweredLift}, + .extraTrackGroups = {TrackGroup::barrelRoll, TrackGroup::quarterLoop, TrackGroup::halfLoop, TrackGroup::halfLoopMedium, TrackGroup::halfLoopLarge, TrackGroup::verticalLoop, TrackGroup::corkscrew, TrackGroup::corkscrewLarge, TrackGroup::zeroGRoll, TrackGroup::zeroGRollLarge, TrackGroup::booster, TrackGroup::diagBooster, TrackGroup::poweredLift}, }), .InvertedTrackPaintFunctions = {}, .Flags = kRtdFlagsHasThreeColours | kRtdFlagsCommonCoaster | kRtdFlagsCommonCoasterNonAlt | diff --git a/src/openrct2/ride/rtd/coaster/LSMLaunchedRollerCoaster.h b/src/openrct2/ride/rtd/coaster/LSMLaunchedRollerCoaster.h index 75c8103dbe..50ca3f39bf 100644 --- a/src/openrct2/ride/rtd/coaster/LSMLaunchedRollerCoaster.h +++ b/src/openrct2/ride/rtd/coaster/LSMLaunchedRollerCoaster.h @@ -22,7 +22,7 @@ constexpr RideTypeDescriptor LSMLaunchedRollerCoasterRTD = .TrackPaintFunctions = TrackDrawerDescriptor({ .Drawer = GetTrackPaintFunctionLatticeTriangleTrackAlt, .supportType = MetalSupportType::Tubes, - .enabledTrackGroups = {TrackGroup::straight, TrackGroup::stationEnd, TrackGroup::flatRollBanking, TrackGroup::slope, TrackGroup::slopeSteepUp, TrackGroup::slopeSteepDown, TrackGroup::slopeCurve, TrackGroup::slopeCurveSteep, TrackGroup::sBend, TrackGroup::curveSmall, TrackGroup::curve, TrackGroup::curveLarge, TrackGroup::helixDownBankedHalf, TrackGroup::helixUpBankedHalf, TrackGroup::brakes, TrackGroup::onridePhoto, TrackGroup::blockBrakes, TrackGroup::slopeRollBanking, TrackGroup::slopeSteepLong, TrackGroup::slopeCurveBanked, TrackGroup::slopeCurveLarge, TrackGroup::slopeCurveLargeBanked, TrackGroup::booster, TrackGroup::poweredLift, TrackGroup::slopeVertical, TrackGroup::curveVertical, TrackGroup::barrelRoll, TrackGroup::quarterLoop, TrackGroup::halfLoop, TrackGroup::halfLoopMedium, TrackGroup::halfLoopLarge, TrackGroup::verticalLoop, TrackGroup::corkscrew, TrackGroup::corkscrewLarge, TrackGroup::zeroGRoll, TrackGroup::zeroGRollLarge }, + .enabledTrackGroups = {TrackGroup::straight, TrackGroup::stationEnd, TrackGroup::flatRollBanking, TrackGroup::slope, TrackGroup::slopeSteepUp, TrackGroup::slopeSteepDown, TrackGroup::slopeCurve, TrackGroup::slopeCurveSteep, TrackGroup::sBend, TrackGroup::curveSmall, TrackGroup::curve, TrackGroup::curveLarge, TrackGroup::helixDownBankedHalf, TrackGroup::helixUpBankedHalf, TrackGroup::brakes, TrackGroup::onridePhoto, TrackGroup::blockBrakes, TrackGroup::slopeRollBanking, TrackGroup::slopeSteepLong, TrackGroup::slopeCurveBanked, TrackGroup::slopeCurveLarge, TrackGroup::slopeCurveLargeBanked, TrackGroup::booster, TrackGroup::diagBooster, TrackGroup::poweredLift, TrackGroup::slopeVertical, TrackGroup::curveVertical, TrackGroup::barrelRoll, TrackGroup::quarterLoop, TrackGroup::halfLoop, TrackGroup::halfLoopMedium, TrackGroup::halfLoopLarge, TrackGroup::verticalLoop, TrackGroup::corkscrew, TrackGroup::corkscrewLarge, TrackGroup::zeroGRoll, TrackGroup::zeroGRollLarge }, .extraTrackGroups = {TrackGroup::liftHill, TrackGroup::liftHillCable}, }), .InvertedTrackPaintFunctions = {}, diff --git a/src/openrct2/sprites.h b/src/openrct2/sprites.h index f1c63a15dc..98a16a7a99 100644 --- a/src/openrct2/sprites.h +++ b/src/openrct2/sprites.h @@ -1247,7 +1247,13 @@ enum : ImageIndex SPR_G2_LATTICE_TRIANGLE_TRACK_BRAKE_ALT_OPEN_SW_NE, SPR_G2_LATTICE_TRIANGLE_TRACK_BRAKE_ALT_OPEN_SE_NW, SPR_G2_LATTICE_TRIANGLE_TRACK_DIAG_BRAKES, - SPR_G2_LATTICE_TRIANGLE_TRACK_DRIVE_TYRE_NE_SW = SPR_G2_LATTICE_TRIANGLE_TRACK_DIAG_BRAKES + 6, + SPR_G2_LATTICE_TRIANGLE_TRACK_DIAG_BOOSTER_1 = SPR_G2_LATTICE_TRIANGLE_TRACK_DIAG_BRAKES + 6, + SPR_G2_LATTICE_TRIANGLE_TRACK_DIAG_BOOSTER_2, + SPR_G2_LATTICE_TRIANGLE_TRACK_DIAG_BOOSTER_ALT_1, + SPR_G2_LATTICE_TRIANGLE_TRACK_DIAG_BOOSTER_ALT_2, + SPR_G2_LATTICE_TRIANGLE_TRACK_DIAG_BOOSTER_ALT_3, + SPR_G2_LATTICE_TRIANGLE_TRACK_DIAG_BOOSTER_ALT_4, + SPR_G2_LATTICE_TRIANGLE_TRACK_DRIVE_TYRE_NE_SW, SPR_G2_LATTICE_TRIANGLE_TRACK_DRIVE_TYRE_NW_SE, SPR_G2_LATTICE_TRIANGLE_TRACK_DRIVE_TYRE_SW_NE, SPR_G2_LATTICE_TRIANGLE_TRACK_DRIVE_TYRE_SE_NW,