Refactor track paint functions and available pieces in RTD

This commit is contained in:
Gymnasiast 2024-03-20 16:19:51 +01:00
parent b5fdcf9a17
commit 96c9b7d85d
No known key found for this signature in database
GPG Key ID: DBFFF47AB2CA3EDD
97 changed files with 722 additions and 738 deletions

View File

@ -3377,10 +3377,10 @@ static_assert(std::size(RatingNames) == 6);
| (1uLL << WIDX_SYNCHRONISE_WITH_ADJACENT_STATIONS_CHECKBOX));
// Sometimes, only one of the alternatives support lift hill pieces. Make sure to check both.
bool hasAlternativeType = ride->GetRideTypeDescriptor().HasFlag(RIDE_TYPE_FLAG_HAS_ALTERNATIVE_TRACK_TYPE);
if (ride->GetRideTypeDescriptor().SupportsTrackPiece(TRACK_LIFT_HILL)
|| (hasAlternativeType
&& GetRideTypeDescriptor(ride->GetRideTypeDescriptor().AlternateType).SupportsTrackPiece(TRACK_LIFT_HILL)))
const auto& rtd = ride->GetRideTypeDescriptor();
bool hasAlternativeType = rtd.HasFlag(RIDE_TYPE_FLAG_HAS_ALTERNATIVE_TRACK_TYPE);
if (rtd.TrackPaintFunctions.Regular.SupportsTrackPiece(TRACK_LIFT_HILL)
|| (hasAlternativeType && rtd.InvertedTrackPaintFunctions.SupportsTrackPiece(TRACK_LIFT_HILL)))
{
widgets[WIDX_LIFT_HILL_SPEED_LABEL].type = WindowWidgetType::Label;
widgets[WIDX_LIFT_HILL_SPEED].type = WindowWidgetType::Spinner;

View File

@ -181,12 +181,6 @@ static Widget _rideConstructionWidgets[] = {
static void WindowRideConstructionMouseUpDemolishNextPiece(const CoordsXYZD& piecePos, int32_t type);
static int32_t RideGetAlternativeType(const Ride& ride)
{
return (_currentTrackAlternative & RIDE_TYPE_ALTERNATIVE_TRACK_TYPE) ? ride.GetRideTypeDescriptor().AlternateType
: ride.type;
}
/* move to ride.c */
static void CloseRideWindowForConstruction(RideId rideId)
{
@ -312,8 +306,8 @@ static Widget _rideConstructionWidgets[] = {
{
return;
}
int32_t rideType = RideGetAlternativeType(*currentRide);
const auto& rtd = currentRide->GetRideTypeDescriptor();
const auto currentTrackDrawerDescriptor = getCurrentTrackDrawerDescriptor(rtd);
uint64_t disabledWidgets = 0;
@ -863,7 +857,7 @@ static Widget _rideConstructionWidgets[] = {
disabledWidgets |= (1uLL << WIDX_CONSTRUCT);
}
}
if (GetRideTypeDescriptor(rideType).HasFlag(RIDE_TYPE_FLAG_TRACK_ELEMENTS_HAVE_TWO_VARIETIES))
if (currentTrackDrawerDescriptor.HasCoveredPieces())
{
disabledWidgets &= ~(1uLL << WIDX_BANKING_GROUPBOX);
}
@ -1596,10 +1590,12 @@ static Widget _rideConstructionWidgets[] = {
{
return;
}
int32_t rideType = RideGetAlternativeType(*currentRide);
const auto& rtd = GetRideTypeDescriptor(currentRide->type);
auto trackDrawerDescriptor = getCurrentTrackDrawerDescriptor(rtd);
hold_down_widgets = 0;
if (GetRideTypeDescriptor(rideType).HasFlag(RIDE_TYPE_FLAG_IS_SHOP_OR_FACILITY) || !currentRide->HasStation())
if (rtd.HasFlag(RIDE_TYPE_FLAG_IS_SHOP_OR_FACILITY) || !currentRide->HasStation())
{
widgets[WIDX_ENTRANCE_EXIT_GROUPBOX].type = WindowWidgetType::Empty;
widgets[WIDX_ENTRANCE].type = WindowWidgetType::Empty;
@ -1677,7 +1673,7 @@ static Widget _rideConstructionWidgets[] = {
widgets[WIDX_SLOPE_DOWN_STEEP].tooltip = STR_RIDE_CONSTRUCTION_STEEP_SLOPE_DOWN_TIP;
widgets[WIDX_SLOPE_UP_STEEP].image = ImageId(SPR_RIDE_CONSTRUCTION_SLOPE_UP_STEEP);
widgets[WIDX_SLOPE_UP_STEEP].tooltip = STR_RIDE_CONSTRUCTION_STEEP_SLOPE_UP_TIP;
if (GetRideTypeDescriptor(rideType).SupportsTrackPiece(TRACK_REVERSE_FREEFALL))
if (trackDrawerDescriptor.SupportsTrackPiece(TRACK_REVERSE_FREEFALL))
{
widgets[WIDX_LEVEL].type = WindowWidgetType::FlatBtn;
widgets[WIDX_SLOPE_UP].type = WindowWidgetType::FlatBtn;
@ -1699,7 +1695,7 @@ static Widget _rideConstructionWidgets[] = {
{
// Enable helix
widgets[WIDX_SLOPE_DOWN_STEEP].type = WindowWidgetType::FlatBtn;
if (rideType != RIDE_TYPE_SPLASH_BOATS && rideType != RIDE_TYPE_RIVER_RAFTS)
if (currentRide->type != RIDE_TYPE_SPLASH_BOATS && currentRide->type != RIDE_TYPE_RIVER_RAFTS)
widgets[WIDX_SLOPE_UP_STEEP].type = WindowWidgetType::FlatBtn;
}
}
@ -1865,7 +1861,6 @@ static Widget _rideConstructionWidgets[] = {
|| _selectedTrackType > TrackElemType::HighestAlias
|| _currentTrackCurve > (RideConstructionSpecialPieceSelected | TrackElemType::HighestAlias);
const auto& rtd = GetRideTypeDescriptor(rideType);
bool rideHasSeatRotation = rtd.HasFlag(RIDE_TYPE_FLAG_HAS_SEAT_ROTATION);
if (!trackHasSpeedSetting)
@ -1876,33 +1871,42 @@ static Widget _rideConstructionWidgets[] = {
widgets[WIDX_BANK_STRAIGHT].type = WindowWidgetType::FlatBtn;
widgets[WIDX_BANK_RIGHT].type = WindowWidgetType::FlatBtn;
}
if (GetRideTypeDescriptor(rideType).HasFlag(RIDE_TYPE_FLAG_TRACK_ELEMENTS_HAVE_TWO_VARIETIES))
if (trackDrawerDescriptor.HasCoveredPieces())
{
if (rideType == RIDE_TYPE_WATER_COASTER)
{
widgets[WIDX_U_TRACK].image = ImageId(SPR_RIDE_CONSTRUCTION_RC_TRACK);
widgets[WIDX_O_TRACK].image = ImageId(SPR_RIDE_CONSTRUCTION_WATER_CHANNEL);
widgets[WIDX_U_TRACK].tooltip = STR_RIDE_CONSTRUCTION_STANDARD_RC_TRACK_TIP;
widgets[WIDX_O_TRACK].tooltip = STR_RIDE_CONSTRUCTION_WATER_CHANNEL_TIP;
if ((_currentTrackCurve < EnumValue(TrackCurve::LeftSmall)
|| _currentTrackCurve == (RideConstructionSpecialPieceSelected | TrackElemType::SBendLeft)
|| _currentTrackCurve == (RideConstructionSpecialPieceSelected | TrackElemType::SBendRight))
&& _currentTrackPitchEnd == TrackPitch::None && _currentTrackRollEnd == TrackRoll::None)
{
widgets[WIDX_BANKING_GROUPBOX].text = STR_RIDE_CONSTRUCTION_TRACK_STYLE;
widgets[WIDX_U_TRACK].type = WindowWidgetType::FlatBtn;
widgets[WIDX_O_TRACK].type = WindowWidgetType::FlatBtn;
}
}
else
widgets[WIDX_BANKING_GROUPBOX].text = STR_RIDE_CONSTRUCTION_TRACK_STYLE;
widgets[WIDX_U_TRACK].type = WindowWidgetType::FlatBtn;
widgets[WIDX_O_TRACK].type = WindowWidgetType::FlatBtn;
if (rtd.Category == RIDE_CATEGORY_WATER)
{
widgets[WIDX_U_TRACK].image = ImageId(SPR_RIDE_CONSTRUCTION_U_SHAPED_TRACK);
widgets[WIDX_O_TRACK].image = ImageId(SPR_RIDE_CONSTRUCTION_O_SHAPED_TRACK);
widgets[WIDX_U_TRACK].tooltip = STR_RIDE_CONSTRUCTION_U_SHAPED_OPEN_TRACK_TIP;
widgets[WIDX_O_TRACK].tooltip = STR_RIDE_CONSTRUCTION_O_SHAPED_ENCLOSED_TRACK_TIP;
widgets[WIDX_BANKING_GROUPBOX].text = STR_RIDE_CONSTRUCTION_TRACK_STYLE;
widgets[WIDX_U_TRACK].type = WindowWidgetType::FlatBtn;
widgets[WIDX_O_TRACK].type = WindowWidgetType::FlatBtn;
}
else
{
widgets[WIDX_U_TRACK].image = ImageId(SPR_RIDE_CONSTRUCTION_RC_TRACK);
widgets[WIDX_O_TRACK].image = ImageId(SPR_RIDE_CONSTRUCTION_WATER_CHANNEL);
widgets[WIDX_U_TRACK].tooltip = STR_RIDE_CONSTRUCTION_STANDARD_RC_TRACK_TIP;
widgets[WIDX_O_TRACK].tooltip = STR_RIDE_CONSTRUCTION_WATER_CHANNEL_TIP;
}
// TODO: Read these from the TrackDrawerEntry
if (currentRide->type == RIDE_TYPE_WATER_COASTER)
{
const bool hasCoveredVersion = (_currentTrackCurve < EnumValue(TrackCurve::LeftSmall)
|| _currentTrackCurve
== (RideConstructionSpecialPieceSelected | TrackElemType::SBendLeft)
|| _currentTrackCurve
== (RideConstructionSpecialPieceSelected
| TrackElemType::SBendRight))
&& _currentTrackPitchEnd == TrackPitch::None && _currentTrackRollEnd == TrackRoll::None;
if (!hasCoveredVersion)
{
widgets[WIDX_U_TRACK].type = WindowWidgetType::Empty;
widgets[WIDX_O_TRACK].type = WindowWidgetType::Empty;
}
}
}
}
@ -1986,7 +1990,7 @@ static Widget _rideConstructionWidgets[] = {
widgets[WIDX_CONSTRUCT].type = WindowWidgetType::Empty;
widgets[WIDX_DEMOLISH].type = WindowWidgetType::FlatBtn;
widgets[WIDX_ROTATE].type = WindowWidgetType::Empty;
if (GetRideTypeDescriptor(rideType).HasFlag(RIDE_TYPE_FLAG_CANNOT_HAVE_GAPS))
if (rtd.HasFlag(RIDE_TYPE_FLAG_CANNOT_HAVE_GAPS))
{
widgets[WIDX_PREVIOUS_SECTION].type = WindowWidgetType::Empty;
widgets[WIDX_NEXT_SECTION].type = WindowWidgetType::Empty;
@ -2085,7 +2089,7 @@ static Widget _rideConstructionWidgets[] = {
if (!_currentlyShowingBrakeOrBoosterSpeed)
{
if (GetRideTypeDescriptor(rideType).HasFlag(RIDE_TYPE_FLAG_TRACK_ELEMENTS_HAVE_TWO_VARIETIES))
if (trackDrawerDescriptor.HasCoveredPieces())
{
if (_currentTrackAlternative & RIDE_TYPE_ALTERNATIVE_TRACK_PIECES)
{
@ -3067,8 +3071,8 @@ static Widget _rideConstructionWidgets[] = {
if (rideEntry == nullptr)
return;
int32_t rideType = RideGetAlternativeType(*ride);
UpdateEnabledRidePieces(rideType);
auto trackDrawerDescriptor = getCurrentTrackDrawerDescriptor(ride->GetRideTypeDescriptor());
UpdateEnabledRidePieces(trackDrawerDescriptor);
}
/**

View File

@ -1668,3 +1668,16 @@ ResultWithMessage RideAreAllPossibleEntrancesAndExitsBuilt(const Ride& ride)
}
return { true };
}
TrackDrawerDescriptor getCurrentTrackDrawerDescriptor(const RideTypeDescriptor& rtd)
{
const bool isInverted = _currentTrackAlternative & RIDE_TYPE_ALTERNATIVE_TRACK_TYPE;
return getTrackDrawerDescriptor(rtd, isInverted);
}
TrackDrawerEntry getCurrentTrackDrawerEntry(const RideTypeDescriptor& rtd)
{
const bool isInverted = _currentTrackAlternative & RIDE_TYPE_ALTERNATIVE_TRACK_TYPE;
const bool isCovered = _currentTrackAlternative & RIDE_TYPE_ALTERNATIVE_TRACK_PIECES;
return getTrackDrawerEntry(rtd, isInverted, isCovered);
}

View File

@ -22,6 +22,9 @@ using track_type_t = uint16_t;
struct TileElement;
struct CoordsXYE;
struct RideTypeDescriptor;
struct TrackDrawerDescriptor;
struct TrackDrawerEntry;
enum class RideConstructionState : uint8_t
{
@ -92,3 +95,6 @@ bool RideSelectBackwardsFromFront();
bool RideSelectForwardsFromBack();
void RideConstructionStart(Ride& ride);
TrackDrawerDescriptor getCurrentTrackDrawerDescriptor(const RideTypeDescriptor& rtd);
TrackDrawerEntry getCurrentTrackDrawerEntry(const RideTypeDescriptor& rtd);

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 */ MultiDimensionRollerCoasterAltRTD,
/* RIDE_TYPE_MULTI_DIMENSION_ROLLER_COASTER_ALT */ MultiDimensionRollerCoasterRTD,
/* RIDE_TYPE_FLYING_ROLLER_COASTER */ FlyingRollerCoasterRTD,
/* RIDE_TYPE_FLYING_ROLLER_COASTER_ALT */ FlyingRollerCoasterAltRTD,
/* RIDE_TYPE_FLYING_ROLLER_COASTER_ALT */ FlyingRollerCoasterRTD,
/* 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 */ LayDownRollerCoasterAltRTD,
/* RIDE_TYPE_LAY_DOWN_ROLLER_COASTER_ALT */ LayDownRollerCoasterRTD,
/* RIDE_TYPE_REVERSER_ROLLER_COASTER */ ReverserRollerCoasterRTD,
/* RIDE_TYPE_HEARTLINE_TWISTER_COASTER */ HeartlineTwisterCoasterRTD,
/* RIDE_TYPE_MINI_GOLF */ MiniGolfRTD,
@ -359,17 +359,9 @@ bool RideTypeDescriptor::HasFlag(uint64_t flag) const
return Flags & flag;
}
void RideTypeDescriptor::GetAvailableTrackPieces(RideTrackGroup& res) const
{
res = EnabledTrackPieces;
if (GetGameState().Cheats.EnableAllDrawableTrackPieces)
res |= ExtraTrackPieces;
}
bool RideTypeDescriptor::SupportsTrackPiece(const uint64_t trackPiece) const
{
return EnabledTrackPieces.get(trackPiece)
|| (GetGameState().Cheats.EnableAllDrawableTrackPieces && ExtraTrackPieces.get(trackPiece));
return TrackPaintFunctions.Regular.SupportsTrackPiece(trackPiece);
}
ResearchCategory RideTypeDescriptor::GetResearchCategory() const
@ -408,9 +400,9 @@ bool IsTrackEnabled(int32_t trackFlagIndex)
return _enabledRidePieces.get(trackFlagIndex);
}
void UpdateEnabledRidePieces(ride_type_t rideType)
void UpdateEnabledRidePieces(TrackDrawerDescriptor trackDrawerDescriptor)
{
GetRideTypeDescriptor(rideType).GetAvailableTrackPieces(_enabledRidePieces);
trackDrawerDescriptor.Regular.GetAvailableTrackPieces(_enabledRidePieces);
if (!GetGameState().Cheats.EnableAllDrawableTrackPieces)
{
@ -422,3 +414,43 @@ void UpdateDisabledRidePieces(const RideTrackGroup& res)
{
_disabledRidePieces = res;
}
void TrackDrawerEntry::GetAvailableTrackPieces(RideTrackGroup& res) const
{
res = EnabledTrackPieces;
if (GetGameState().Cheats.EnableAllDrawableTrackPieces)
res |= ExtraTrackPieces;
}
bool TrackDrawerEntry::SupportsTrackPiece(const uint64_t trackPiece) const
{
return EnabledTrackPieces.get(trackPiece)
|| (GetGameState().Cheats.EnableAllDrawableTrackPieces && ExtraTrackPieces.get(trackPiece));
}
bool TrackDrawerDescriptor::HasCoveredPieces() const
{
return Covered.EnabledTrackPieces.count() > 0;
}
bool TrackDrawerDescriptor::SupportsTrackPiece(const uint64_t trackPiece) const
{
return Regular.SupportsTrackPiece(trackPiece);
}
TrackDrawerDescriptor getTrackDrawerDescriptor(const RideTypeDescriptor& rtd, bool isInverted)
{
return isInverted ? rtd.InvertedTrackPaintFunctions : rtd.TrackPaintFunctions;
}
TrackDrawerEntry getTrackDrawerEntry(const RideTypeDescriptor& rtd, bool isInverted, bool isCovered)
{
auto descriptor = getTrackDrawerDescriptor(rtd, isInverted);
if (isCovered)
{
return descriptor.Covered;
}
return descriptor.Regular;
}

View File

@ -267,37 +267,50 @@ enum class RideConstructionWindowContext : uint8_t
Maze,
};
struct TrackDrawerEntry
{
TRACK_PAINT_FUNCTION_GETTER Drawer = nullptr;
/** rct2: 0x0097C468 (0 - 31) and 0x0097C5D4 (32 - 63) */
RideTrackGroup EnabledTrackPieces{};
// Pieces that this ride type _can_ draw, but are disabled because their vehicles lack the relevant sprites,
// or because they are not realistic for the ride type (e.g. LIM boosters in Mini Roller Coasters).
RideTrackGroup ExtraTrackPieces{};
void GetAvailableTrackPieces(RideTrackGroup& res) const;
bool SupportsTrackPiece(const uint64_t trackPiece) const;
};
struct TrackDrawerDescriptor
{
TRACK_PAINT_FUNCTION_GETTER Regular;
TRACK_PAINT_FUNCTION_GETTER Covered;
TrackDrawerEntry Regular{};
TrackDrawerEntry Covered{};
constexpr TrackDrawerDescriptor(TRACK_PAINT_FUNCTION_GETTER function)
constexpr TrackDrawerDescriptor()
{
}
constexpr TrackDrawerDescriptor(TrackDrawerEntry function)
: Regular(function)
, Covered(nullptr)
{
}
constexpr TrackDrawerDescriptor(TRACK_PAINT_FUNCTION_GETTER functionRegular, TRACK_PAINT_FUNCTION_GETTER functionCovered)
: Regular(functionRegular)
, Covered(functionCovered)
constexpr TrackDrawerDescriptor(TrackDrawerEntry entryRegular, TrackDrawerEntry entryCovered)
: Regular(entryRegular)
, Covered(entryCovered)
{
}
bool HasCoveredPieces() const;
bool SupportsTrackPiece(const uint64_t trackPiece) const;
};
struct RideTypeDescriptor
{
uint8_t AlternateType;
uint8_t Category;
/** rct2: 0x0097C468 (0 - 31) and 0x0097C5D4 (32 - 63) */
RideTrackGroup EnabledTrackPieces;
// Pieces that this ride type _can_ draw, but are disabled because their vehicles lack the relevant sprites,
// or because they are not realistic for the ride type (e.g. LIM boosters in Mini Roller Coasters).
RideTrackGroup ExtraTrackPieces;
RideTrackGroup CoveredTrackPieces;
/** rct2: 0x0097CC68 */
track_type_t StartTrackPiece;
TrackDrawerDescriptor TrackPaintFunctions;
TrackDrawerDescriptor TrackPaintFunctions{};
TrackDrawerDescriptor InvertedTrackPaintFunctions{};
uint64_t Flags;
/** rct2: 0x0097C8AC */
uint64_t RideModes;
@ -358,7 +371,7 @@ struct RideTypeDescriptor
UpdateRideApproachVehicleWaypointsFunction UpdateRideApproachVehicleWaypoints = UpdateRideApproachVehicleWaypointsDefault;
bool HasFlag(uint64_t flag) const;
void GetAvailableTrackPieces(RideTrackGroup& res) const;
/** @deprecated */
bool SupportsTrackPiece(const uint64_t trackPiece) const;
ResearchCategory GetResearchCategory() const;
bool SupportsRideMode(RideMode rideMode) const;
@ -388,9 +401,10 @@ enum ride_type_flags : uint64_t
RIDE_TYPE_FLAG_HAS_DATA_LOGGING = (1uLL << 9),
RIDE_TYPE_FLAG_HAS_DROPS = (1uLL << 10),
RIDE_TYPE_FLAG_NO_TEST_MODE = (1uLL << 11),
RIDE_TYPE_FLAG_TRACK_ELEMENTS_HAVE_TWO_VARIETIES = (1uLL << 12), // used by rides with two varieties, like the u and o
// shapes of the dinghy slide and the dry and submerged
// track of the water coaster
RIDE_TYPE_FLAG_TRACK_ELEMENTS_HAVE_TWO_VARIETIES = (1uLL << 12), // set on rides with two varieties,
// like the u and o shapes of the dinghy slide
// and the dry and submerged track of the water
// coaster
RIDE_TYPE_FLAG_NO_VEHICLES = (1uLL << 13), // used only by maze, spiral slide and shops
RIDE_TYPE_FLAG_HAS_LOAD_OPTIONS = (1uLL << 14),
RIDE_TYPE_FLAG_VEHICLE_IS_INTEGRAL = (1uLL << 16), // Set by flat rides where the vehicle is integral to the structure, like
@ -517,13 +531,10 @@ extern const StringId RideModeNames[EnumValue(RideMode::Count)];
// clang-format off
constexpr RideTypeDescriptor DummyRTD =
{
.AlternateType = RIDE_TYPE_NULL,
.Category = RIDE_CATEGORY_NONE,
.EnabledTrackPieces = {},
.ExtraTrackPieces = {},
.CoveredTrackPieces = {},
.StartTrackPiece = TrackElemType::EndStation,
.TrackPaintFunctions = TrackDrawerDescriptor(nullptr),
.TrackPaintFunctions = {},
.InvertedTrackPaintFunctions = {},
.Flags = 0,
.RideModes = EnumsToFlags(RideMode::ContinuousCircuit),
.DefaultMode = RideMode::ContinuousCircuit,
@ -581,5 +592,8 @@ constexpr bool RideTypeIsValid(ObjectEntryIndex rideType)
}
bool IsTrackEnabled(int32_t trackFlagIndex);
void UpdateEnabledRidePieces(ride_type_t rideType);
void UpdateEnabledRidePieces(TrackDrawerDescriptor trackDrawerDescriptor);
void UpdateDisabledRidePieces(const RideTrackGroup& res);
TrackDrawerDescriptor getTrackDrawerDescriptor(const RideTypeDescriptor& rtd, bool isInverted);
TrackDrawerEntry getTrackDrawerEntry(const RideTypeDescriptor& rtd, bool isInverted = false, bool isCovered = false);

View File

@ -2309,21 +2309,12 @@ void PaintTrack(PaintSession& session, Direction direction, int32_t height, cons
}
const auto& rtd = GetRideTypeDescriptor(trackElement.GetRideType());
auto paintFunctions = rtd.TrackPaintFunctions;
TRACK_PAINT_FUNCTION_GETTER paintFunctionGetter;
if (TrackElementIsCovered(trackType))
const auto trackDrawerEntry = getTrackDrawerEntry(rtd, trackElement.IsInverted(), TrackElementIsCovered(trackType));
if (trackDrawerEntry.Drawer != nullptr)
{
trackType = UncoverTrackElement(trackType);
paintFunctionGetter = paintFunctions.Covered;
}
else
{
paintFunctionGetter = paintFunctions.Regular;
}
if (paintFunctionGetter != nullptr)
{
TRACK_PAINT_FUNCTION paintFunction = paintFunctionGetter(trackType);
TRACK_PAINT_FUNCTION paintFunction = trackDrawerEntry.Drawer(trackType);
if (paintFunction != nullptr)
{
paintFunction(session, *ride, trackSequence, direction, height, trackElement);

View File

@ -17,13 +17,14 @@
// clang-format off
constexpr RideTypeDescriptor AirPoweredVerticalCoasterRTD =
{
.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),
.TrackPaintFunctions = TrackDrawerDescriptor({
.Drawer = GetTrackPaintFunctionAirPoweredVerticalRC,
.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},
}),
.InvertedTrackPaintFunctions = {},
.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,

View File

@ -15,13 +15,14 @@
// clang-format off
constexpr RideTypeDescriptor AlpineCoasterRTD =
{
.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),
.TrackPaintFunctions = TrackDrawerDescriptor({
.Drawer = AlpineRC::GetTrackPaintFunction,
.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},
}),
.InvertedTrackPaintFunctions = {},
.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

View File

@ -17,13 +17,14 @@
// clang-format off
constexpr RideTypeDescriptor BobsleighCoasterRTD =
{
.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),
.TrackPaintFunctions = TrackDrawerDescriptor({
.Drawer = GetTrackPaintFunctionBobsleighRC,
.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 = {},
}),
.InvertedTrackPaintFunctions = {},
.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,

View File

@ -16,13 +16,14 @@
// clang-format off
constexpr RideTypeDescriptor ClassicMiniRollerCoasterRTD =
{
.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),
.TrackPaintFunctions = TrackDrawerDescriptor({
.Drawer = GetTrackPaintFunctionJuniorRC,
.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},
}),
.InvertedTrackPaintFunctions = {},
.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 |

View File

@ -17,13 +17,14 @@
// clang-format off
constexpr RideTypeDescriptor ClassicStandUpRollerCoasterRTD =
{
.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_BRAKES, TRACK_ON_RIDE_PHOTO, TRACK_BLOCK_BRAKES, TRACK_DIAG_BRAKES, TRACK_DIAG_BLOCK_BRAKES},
.ExtraTrackPieces = {},
.CoveredTrackPieces = {},
.StartTrackPiece = TrackElemType::EndStation,
.TrackPaintFunctions = TrackDrawerDescriptor(GetTrackPaintFunctionClassicStandUpRC),
.TrackPaintFunctions = TrackDrawerDescriptor({
.Drawer = GetTrackPaintFunctionClassicStandUpRC,
.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_BRAKES, TRACK_ON_RIDE_PHOTO, TRACK_BLOCK_BRAKES, TRACK_DIAG_BRAKES, TRACK_DIAG_BLOCK_BRAKES},
.ExtraTrackPieces = {},
}),
.InvertedTrackPaintFunctions = {},
.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 |

View File

@ -17,13 +17,14 @@
// clang-format off
constexpr RideTypeDescriptor ClassicWoodenRollerCoasterRTD =
{
.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),
.TrackPaintFunctions = TrackDrawerDescriptor({
.Drawer = GetTrackPaintFunctionClassicWoodenRC,
.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 = {},
}),
.InvertedTrackPaintFunctions = {},
.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 |

View File

@ -17,13 +17,14 @@
// clang-format off
constexpr RideTypeDescriptor CompactInvertedCoasterRTD =
{
.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),
.TrackPaintFunctions = TrackDrawerDescriptor({
.Drawer = GetTrackPaintFunctionCompactInvertedRC,
.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 = {},
}),
.InvertedTrackPaintFunctions = {},
.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,

View File

@ -17,13 +17,14 @@
// clang-format off
constexpr RideTypeDescriptor CorkscrewRollerCoasterRTD =
{
.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),
.TrackPaintFunctions = TrackDrawerDescriptor({
.Drawer = GetTrackPaintFunctionCorkscrewRC,
.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},
}),
.InvertedTrackPaintFunctions = {},
.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 |

View File

@ -18,13 +18,18 @@
// Non-inverted variant
constexpr RideTypeDescriptor FlyingRollerCoasterRTD =
{
.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),
.TrackPaintFunctions = TrackDrawerDescriptor({
.Drawer = GetTrackPaintFunctionFlyingRC,
.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},
}),
.InvertedTrackPaintFunctions = TrackDrawerDescriptor({
.Drawer = GetTrackPaintFunctionFlyingRC,
.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},
}),
.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 |
@ -86,70 +91,4 @@ constexpr RideTypeDescriptor FlyingRollerCoasterRTD =
},
},
};
// Inverted variant
constexpr RideTypeDescriptor FlyingRollerCoasterAltRTD =
{
.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 },
),
.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

@ -17,13 +17,14 @@
// clang-format off
constexpr RideTypeDescriptor GigaCoasterRTD =
{
.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),
.TrackPaintFunctions = TrackDrawerDescriptor({
.Drawer = GetTrackPaintFunctionGigaRC,
.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},
}),
.InvertedTrackPaintFunctions = {},
.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 |

View File

@ -17,13 +17,14 @@
// clang-format off
constexpr RideTypeDescriptor HeartlineTwisterCoasterRTD =
{
.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),
.TrackPaintFunctions = TrackDrawerDescriptor({
.Drawer = GetTrackPaintFunctionHeartlineTwisterRC,
.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 = {},
}),
.InvertedTrackPaintFunctions = {},
.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,

View File

@ -15,13 +15,14 @@
// clang-format off
constexpr RideTypeDescriptor HybridCoasterRTD =
{
.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),
.TrackPaintFunctions = TrackDrawerDescriptor({
.Drawer = HybridRC::GetTrackPaintFunction,
.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},
}),
.InvertedTrackPaintFunctions = {},
.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,

View File

@ -18,13 +18,14 @@
// clang-format off
constexpr RideTypeDescriptor HyperTwisterRTD =
{
.AlternateType = RIDE_TYPE_NULL,
.Category = RIDE_CATEGORY_ROLLERCOASTER,
.EnabledTrackPieces = { TRACK_FLAT, TRACK_STRAIGHT, TRACK_STATION_END, TRACK_LIFT_HILL, TRACK_FLAT_ROLL_BANKING, TRACK_SLOPE, TRACK_SLOPE_STEEP_UP, TRACK_SLOPE_STEEP_DOWN, TRACK_SLOPE_CURVE, TRACK_SLOPE_CURVE_STEEP, TRACK_S_BEND, TRACK_CURVE_SMALL, TRACK_CURVE, TRACK_CURVE_LARGE, TRACK_HELIX_DOWN_BANKED_HALF, TRACK_HELIX_UP_BANKED_HALF, TRACK_BRAKES, TRACK_ON_RIDE_PHOTO, TRACK_SLOPE_CURVE_BANKED, TRACK_BLOCK_BRAKES, TRACK_SLOPE_ROLL_BANKING, TRACK_SLOPE_STEEP_LONG, TRACK_SLOPE_VERTICAL, TRACK_CURVE_VERTICAL, TRACK_DIAG_BRAKES, TRACK_DIAG_BLOCK_BRAKES},
.ExtraTrackPieces = { TRACK_LIFT_HILL_STEEP, TRACK_BRAKE_FOR_DROP, TRACK_BOOSTER, TRACK_POWERED_LIFT },
.CoveredTrackPieces = {},
.StartTrackPiece = TrackElemType::EndStation,
.TrackPaintFunctions = TrackDrawerDescriptor(GetTrackPaintFunctionBolligerMabillard<MetalSupportType::Tubes>),
.TrackPaintFunctions = TrackDrawerDescriptor({
.Drawer = GetTrackPaintFunctionBolligerMabillard<MetalSupportType::Tubes>,
.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 },
}),
.InvertedTrackPaintFunctions = {},
.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 |

View File

@ -16,13 +16,14 @@
// clang-format off
constexpr RideTypeDescriptor HypercoasterRTD =
{
.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),
.TrackPaintFunctions = TrackDrawerDescriptor({
.Drawer = GetTrackPaintFunctionCorkscrewRC,
.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},
}),
.InvertedTrackPaintFunctions = {},
.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 |

View File

@ -17,13 +17,14 @@
// clang-format off
constexpr RideTypeDescriptor InvertedHairpinCoasterRTD =
{
.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),
.TrackPaintFunctions = TrackDrawerDescriptor({
.Drawer = GetTrackPaintFunctionInvertedHairpinRC,
.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 = {},
}),
.InvertedTrackPaintFunctions = {},
.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,

View File

@ -17,13 +17,14 @@
// clang-format off
constexpr RideTypeDescriptor InvertedImpulseCoasterRTD =
{
.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),
.TrackPaintFunctions = TrackDrawerDescriptor({
.Drawer = GetTrackPaintFunctionInvertedImpulseRC,
.EnabledTrackPieces = {TRACK_STRAIGHT, TRACK_STATION_END, TRACK_SLOPE, TRACK_SLOPE_STEEP_UP, TRACK_SLOPE_STEEP_DOWN, TRACK_SLOPE_VERTICAL, TRACK_CURVE_VERTICAL},
.ExtraTrackPieces = {},
}),
.InvertedTrackPaintFunctions = {},
.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 |

View File

@ -17,13 +17,14 @@
// clang-format off
constexpr RideTypeDescriptor InvertedRollerCoasterRTD =
{
.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),
.TrackPaintFunctions = TrackDrawerDescriptor({
.Drawer = GetTrackPaintFunctionInvertedRC,
.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},
}),
.InvertedTrackPaintFunctions = {},
.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 |

View File

@ -17,13 +17,14 @@
// clang-format off
constexpr RideTypeDescriptor JuniorRollerCoasterRTD =
{
.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),
.TrackPaintFunctions = TrackDrawerDescriptor({
.Drawer = GetTrackPaintFunctionJuniorRC,
.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},
}),
.InvertedTrackPaintFunctions = {},
.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 |

View File

@ -17,13 +17,14 @@
// clang-format off
constexpr RideTypeDescriptor LIMLaunchedRollerCoasterRTD =
{
.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),
.TrackPaintFunctions = TrackDrawerDescriptor({
.Drawer = GetTrackPaintFunctionLimLaunchedRC,
.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},
}),
.InvertedTrackPaintFunctions = {},
.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 |

View File

@ -17,13 +17,22 @@
// clang-format off
constexpr RideTypeDescriptor LayDownRollerCoasterRTD =
{
.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),
.TrackPaintFunctions = TrackDrawerDescriptor(
{
.Drawer = GetTrackPaintFunctionLayDownRC,
.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 },
}
),
.InvertedTrackPaintFunctions = TrackDrawerDescriptor(
{
.Drawer = GetTrackPaintFunctionLayDownRC,
.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 },
}
),
.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,
@ -80,69 +89,4 @@ constexpr RideTypeDescriptor LayDownRollerCoasterRTD =
},
},
};
constexpr RideTypeDescriptor LayDownRollerCoasterAltRTD =
{
.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 },
),
.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

@ -17,13 +17,14 @@
// clang-format off
constexpr RideTypeDescriptor LoopingRollerCoasterRTD =
{
.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),
.TrackPaintFunctions = TrackDrawerDescriptor({
.Drawer = GetTrackPaintFunctionLoopingRC,
.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},
}),
.InvertedTrackPaintFunctions = {},
.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 |

View File

@ -17,13 +17,14 @@
// clang-format off
constexpr RideTypeDescriptor MineRideRTD =
{
.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),
.TrackPaintFunctions = TrackDrawerDescriptor({
.Drawer = GetTrackPaintFunctionMineRide,
.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 = {},
}),
.InvertedTrackPaintFunctions = {},
.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 |

View File

@ -18,13 +18,14 @@
// clang-format off
constexpr RideTypeDescriptor MineTrainCoasterRTD =
{
.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),
.TrackPaintFunctions = TrackDrawerDescriptor({
.Drawer = GetTrackPaintFunctionMineTrainRC,
.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 = {},
}),
.InvertedTrackPaintFunctions = {},
.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 |

View File

@ -17,13 +17,14 @@
// clang-format off
constexpr RideTypeDescriptor MiniRollerCoasterRTD =
{
.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),
.TrackPaintFunctions = TrackDrawerDescriptor({
.Drawer = GetTrackPaintFunctionMiniRC,
.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},
}),
.InvertedTrackPaintFunctions = {},
.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 |

View File

@ -17,13 +17,14 @@
// clang-format off
constexpr RideTypeDescriptor MiniSuspendedCoasterRTD =
{
.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),
.TrackPaintFunctions = TrackDrawerDescriptor({
.Drawer = GetTrackPaintFunctionMiniSuspendedRC,
.EnabledTrackPieces = { TRACK_STRAIGHT, TRACK_STATION_END, TRACK_LIFT_HILL, TRACK_SLOPE, TRACK_S_BEND, TRACK_CURVE_SMALL, TRACK_CURVE, TRACK_CURVE_LARGE},
.ExtraTrackPieces = {},
}),
.InvertedTrackPaintFunctions = {},
.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 |

View File

@ -17,13 +17,18 @@
// clang-format off
constexpr RideTypeDescriptor MultiDimensionRollerCoasterRTD =
{
.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),
.TrackPaintFunctions = TrackDrawerDescriptor({
.Drawer = GetTrackPaintFunctionMultiDimensionRC,
.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 = {},
}),
.InvertedTrackPaintFunctions = TrackDrawerDescriptor({
.Drawer = GetTrackPaintFunctionMultiDimensionRC,
.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 = {},
}),
.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 |
@ -86,68 +91,4 @@ constexpr RideTypeDescriptor MultiDimensionRollerCoasterRTD =
},
};
constexpr RideTypeDescriptor MultiDimensionRollerCoasterAltRTD =
{
.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 },
),
.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

View File

@ -17,13 +17,14 @@
// clang-format off
constexpr RideTypeDescriptor ReverseFreefallCoasterRTD =
{
.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),
.TrackPaintFunctions = TrackDrawerDescriptor({
.Drawer = GetTrackPaintFunctionReverseFreefallRC,
.EnabledTrackPieces = { TRACK_STRAIGHT, TRACK_STATION_END, TRACK_LIFT_HILL_STEEP, TRACK_REVERSE_FREEFALL, TRACK_ON_RIDE_PHOTO},
.ExtraTrackPieces = {},
}),
.InvertedTrackPaintFunctions = {},
.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,

View File

@ -17,13 +17,14 @@
// clang-format off
constexpr RideTypeDescriptor ReverserRollerCoasterRTD =
{
.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),
.TrackPaintFunctions = TrackDrawerDescriptor({
.Drawer = GetTrackPaintFunctionReverserRC,
.EnabledTrackPieces = {TRACK_STRAIGHT, TRACK_STATION_END, TRACK_LIFT_HILL, TRACK_SLOPE, TRACK_S_BEND, TRACK_CURVE_SMALL, TRACK_CURVE, TRACK_BRAKES, TRACK_REVERSER},
.ExtraTrackPieces = {},
}),
.InvertedTrackPaintFunctions = {},
.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),

View File

@ -17,13 +17,14 @@
// clang-format off
constexpr RideTypeDescriptor SideFrictionRollerCoasterRTD =
{
.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),
.TrackPaintFunctions = TrackDrawerDescriptor({
.Drawer = GetTrackPaintFunctionSideFrictionRC,
.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 = {},
}),
.InvertedTrackPaintFunctions = {},
.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 |

View File

@ -15,13 +15,14 @@
// clang-format off
constexpr RideTypeDescriptor SingleRailRollerCoasterRTD =
{
.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),
.TrackPaintFunctions = TrackDrawerDescriptor({
.Drawer = SingleRailRC::GetTrackPaintFunction,
.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},
}),
.InvertedTrackPaintFunctions = {},
.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 |

View File

@ -16,13 +16,14 @@
// clang-format off
constexpr RideTypeDescriptor SpinningWildMouseRTD =
{
.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),
.TrackPaintFunctions = TrackDrawerDescriptor({
.Drawer = GetTrackPaintFunctionWildMouse,
.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},
}),
.InvertedTrackPaintFunctions = {},
.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),

View File

@ -17,13 +17,14 @@
// clang-format off
constexpr RideTypeDescriptor SpiralRollerCoasterRTD =
{
.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),
.TrackPaintFunctions = TrackDrawerDescriptor({
.Drawer = GetTrackPaintFunctionMiniRC,
.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},
}),
.InvertedTrackPaintFunctions = {},
.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,

View File

@ -17,13 +17,14 @@
// clang-format off
constexpr RideTypeDescriptor StandUpRollerCoasterRTD =
{
.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),
.TrackPaintFunctions = TrackDrawerDescriptor({
.Drawer = GetTrackPaintFunctionStandUpRC,
.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 = {},
}),
.InvertedTrackPaintFunctions = {},
.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 |

View File

@ -17,13 +17,14 @@
// clang-format off
constexpr RideTypeDescriptor SteelWildMouseRTD =
{
.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),
.TrackPaintFunctions = TrackDrawerDescriptor({
.Drawer = GetTrackPaintFunctionWildMouse,
.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},
}),
.InvertedTrackPaintFunctions = {},
.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,

View File

@ -17,13 +17,14 @@
// clang-format off
constexpr RideTypeDescriptor SteeplechaseRTD =
{
.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),
.TrackPaintFunctions = TrackDrawerDescriptor({
.Drawer = GetTrackPaintFunctionSteeplechase,
.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 = {},
}),
.InvertedTrackPaintFunctions = {},
.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,

View File

@ -17,13 +17,14 @@
// clang-format off
constexpr RideTypeDescriptor SuspendedSwingingCoasterRTD =
{
.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),
.TrackPaintFunctions = TrackDrawerDescriptor({
.Drawer = GetTrackPaintFunctionSuspendedSwingingRC,
.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 = {},
}),
.InvertedTrackPaintFunctions = {},
.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,

View File

@ -19,13 +19,14 @@
// clang-format off
constexpr RideTypeDescriptor TwisterRollerCoasterRTD =
{
.AlternateType = RIDE_TYPE_NULL,
.Category = RIDE_CATEGORY_ROLLERCOASTER,
.EnabledTrackPieces = {TRACK_FLAT, TRACK_STRAIGHT, TRACK_STATION_END, TRACK_LIFT_HILL, TRACK_FLAT_ROLL_BANKING, TRACK_VERTICAL_LOOP, TRACK_SLOPE, TRACK_SLOPE_STEEP_UP, TRACK_SLOPE_STEEP_DOWN, TRACK_SLOPE_CURVE, TRACK_SLOPE_CURVE_STEEP, TRACK_S_BEND, TRACK_CURVE_SMALL, TRACK_CURVE, TRACK_CURVE_LARGE, TRACK_HALF_LOOP, TRACK_CORKSCREW, TRACK_HELIX_DOWN_BANKED_HALF, TRACK_HELIX_UP_BANKED_HALF, TRACK_BRAKES, TRACK_ON_RIDE_PHOTO, TRACK_SLOPE_VERTICAL, TRACK_BARREL_ROLL, TRACK_POWERED_LIFT, TRACK_HALF_LOOP_LARGE, TRACK_SLOPE_CURVE_BANKED, TRACK_BLOCK_BRAKES, TRACK_SLOPE_ROLL_BANKING, TRACK_SLOPE_STEEP_LONG, TRACK_CURVE_VERTICAL, TRACK_QUARTER_LOOP, TRACK_BOOSTER, TRACK_TWIST, TRACK_DIAG_BRAKES, TRACK_DIAG_BLOCK_BRAKES},
.ExtraTrackPieces = {TRACK_LIFT_HILL_STEEP, TRACK_BRAKE_FOR_DROP},
.CoveredTrackPieces = {},
.StartTrackPiece = TrackElemType::EndStation,
.TrackPaintFunctions = TrackDrawerDescriptor(GetTrackPaintFunctionBolligerMabillard<MetalSupportType::Tubes>),
.TrackPaintFunctions = TrackDrawerDescriptor({
.Drawer = GetTrackPaintFunctionBolligerMabillard<MetalSupportType::Tubes>,
.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},
}),
.InvertedTrackPaintFunctions = {},
.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 |

View File

@ -19,13 +19,14 @@
// clang-format off
constexpr RideTypeDescriptor VerticalDropCoasterRTD =
{
.AlternateType = RIDE_TYPE_NULL,
.Category = RIDE_CATEGORY_ROLLERCOASTER,
.EnabledTrackPieces = {TRACK_FLAT, TRACK_STRAIGHT, TRACK_STATION_END, TRACK_LIFT_HILL, TRACK_LIFT_HILL_STEEP, TRACK_FLAT_ROLL_BANKING, TRACK_VERTICAL_LOOP, TRACK_SLOPE, TRACK_SLOPE_STEEP_UP, TRACK_SLOPE_STEEP_DOWN, TRACK_SLOPE_LONG, TRACK_SLOPE_CURVE, TRACK_SLOPE_CURVE_STEEP, TRACK_S_BEND, TRACK_CURVE_SMALL, TRACK_CURVE, TRACK_CURVE_LARGE, TRACK_HELIX_DOWN_BANKED_HALF, TRACK_HELIX_UP_BANKED_HALF, TRACK_BRAKES, TRACK_ON_RIDE_PHOTO, TRACK_SLOPE_VERTICAL, TRACK_SLOPE_CURVE_BANKED, TRACK_BLOCK_BRAKES, TRACK_SLOPE_ROLL_BANKING, TRACK_CURVE_VERTICAL, TRACK_HALF_LOOP_LARGE, TRACK_BRAKE_FOR_DROP, TRACK_DIAG_BRAKES, TRACK_DIAG_BLOCK_BRAKES},
.ExtraTrackPieces = {TRACK_HALF_LOOP, TRACK_CORKSCREW, TRACK_BARREL_ROLL, TRACK_POWERED_LIFT, TRACK_HALF_LOOP_LARGE, TRACK_QUARTER_LOOP, TRACK_BOOSTER, TRACK_TWIST},
.CoveredTrackPieces = {},
.StartTrackPiece = TrackElemType::EndStation,
.TrackPaintFunctions = TrackDrawerDescriptor(GetTrackPaintFunctionBolligerMabillard<MetalSupportType::Boxed>),
.TrackPaintFunctions = TrackDrawerDescriptor({
.Drawer = GetTrackPaintFunctionBolligerMabillard<MetalSupportType::Boxed>,
.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},
}),
.InvertedTrackPaintFunctions = {},
.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,

View File

@ -17,13 +17,14 @@
// clang-format off
constexpr RideTypeDescriptor VirginiaReelRTD =
{
.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),
.TrackPaintFunctions = TrackDrawerDescriptor({
.Drawer = GetTrackPaintFunctionVirginiaReel,
.EnabledTrackPieces = {TRACK_STRAIGHT, TRACK_STATION_END, TRACK_LIFT_HILL, TRACK_SLOPE, TRACK_CURVE_VERY_SMALL, TRACK_CURVE_SMALL},
.ExtraTrackPieces = {},
}),
.InvertedTrackPaintFunctions = {},
.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),

View File

@ -18,13 +18,21 @@
// clang-format off
constexpr RideTypeDescriptor WaterCoasterRTD =
{
.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),
.TrackPaintFunctions = TrackDrawerDescriptor(
{
.Drawer = GetTrackPaintFunctionWaterRC,
.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},
},
{
.Drawer = GetTrackPaintFunctionSplashBoats,
.EnabledTrackPieces = {TrackElemType::Flat, TrackElemType::LeftQuarterTurn5Tiles, TrackElemType::RightQuarterTurn5Tiles, TrackElemType::SBendLeft, TrackElemType::SBendRight},
.ExtraTrackPieces = {},
}
),
.InvertedTrackPaintFunctions = {},
.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,

View File

@ -17,13 +17,14 @@
// clang-format off
constexpr RideTypeDescriptor WoodenRollerCoasterRTD =
{
.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),
.TrackPaintFunctions = TrackDrawerDescriptor({
.Drawer = GetTrackPaintFunctionWoodenRC,
.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},
}),
.InvertedTrackPaintFunctions = {},
.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 |

View File

@ -17,13 +17,14 @@
// clang-format off
constexpr RideTypeDescriptor WoodenWildMouseRTD =
{
.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),
.TrackPaintFunctions = TrackDrawerDescriptor({
.Drawer = GetTrackPaintFunctionWoodenWildMouse,
.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 = {},
}),
.InvertedTrackPaintFunctions = {},
.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 |

View File

@ -18,13 +18,14 @@
// clang-format off
constexpr RideTypeDescriptor CarRideRTD =
{
.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),
.TrackPaintFunctions = TrackDrawerDescriptor({
.Drawer = GetTrackPaintFunctionCarRide,
.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},
}),
.InvertedTrackPaintFunctions = {},
.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 |

View File

@ -17,13 +17,14 @@
// clang-format off
constexpr RideTypeDescriptor CircusRTD =
{
.AlternateType = RIDE_TYPE_NULL,
.Category = RIDE_CATEGORY_GENTLE,
.EnabledTrackPieces = {},
.ExtraTrackPieces = {},
.CoveredTrackPieces = {},
.StartTrackPiece = TrackElemType::FlatTrack3x3,
.TrackPaintFunctions = TrackDrawerDescriptor(GetTrackPaintFunctionCircus),
.TrackPaintFunctions = TrackDrawerDescriptor({
.Drawer = GetTrackPaintFunctionCircus,
.EnabledTrackPieces = {},
.ExtraTrackPieces = {},
}),
.InvertedTrackPaintFunctions = {},
.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 |

View File

@ -17,13 +17,14 @@
// clang-format off
constexpr RideTypeDescriptor CrookedHouseRTD =
{
.AlternateType = RIDE_TYPE_NULL,
.Category = RIDE_CATEGORY_GENTLE,
.EnabledTrackPieces = {},
.ExtraTrackPieces = {},
.CoveredTrackPieces = {},
.StartTrackPiece = TrackElemType::FlatTrack3x3,
.TrackPaintFunctions = TrackDrawerDescriptor(GetTrackPaintFunctionCrookedHouse),
.TrackPaintFunctions = TrackDrawerDescriptor({
.Drawer = GetTrackPaintFunctionCrookedHouse,
.EnabledTrackPieces = {},
.ExtraTrackPieces = {},
}),
.InvertedTrackPaintFunctions = {},
.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 |

View File

@ -18,13 +18,14 @@
// clang-format off
constexpr RideTypeDescriptor DodgemsRTD =
{
.AlternateType = RIDE_TYPE_NULL,
.Category = RIDE_CATEGORY_GENTLE,
.EnabledTrackPieces = {},
.ExtraTrackPieces = {},
.CoveredTrackPieces = {},
.StartTrackPiece = TrackElemType::FlatTrack4x4,
.TrackPaintFunctions = TrackDrawerDescriptor(GetTrackPaintFunctionDodgems),
.TrackPaintFunctions = TrackDrawerDescriptor({
.Drawer = GetTrackPaintFunctionDodgems,
.EnabledTrackPieces = {},
.ExtraTrackPieces = {},
}),
.InvertedTrackPaintFunctions = {},
.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 |

View File

@ -17,13 +17,14 @@
// clang-format off
constexpr RideTypeDescriptor FerrisWheelRTD =
{
.AlternateType = RIDE_TYPE_NULL,
.Category = RIDE_CATEGORY_GENTLE,
.EnabledTrackPieces = {},
.ExtraTrackPieces = {},
.CoveredTrackPieces = {},
.StartTrackPiece = TrackElemType::FlatTrack1x4C,
.TrackPaintFunctions = TrackDrawerDescriptor(GetTrackPaintFunctionFerrisWheel),
.TrackPaintFunctions = TrackDrawerDescriptor({
.Drawer = GetTrackPaintFunctionFerrisWheel,
.EnabledTrackPieces = {},
.ExtraTrackPieces = {},
}),
.InvertedTrackPaintFunctions = {},
.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 |

View File

@ -17,13 +17,14 @@
// clang-format off
constexpr RideTypeDescriptor FlyingSaucersRTD =
{
.AlternateType = RIDE_TYPE_NULL,
.Category = RIDE_CATEGORY_GENTLE,
.EnabledTrackPieces = {},
.ExtraTrackPieces = {},
.CoveredTrackPieces = {},
.StartTrackPiece = TrackElemType::FlatTrack4x4,
.TrackPaintFunctions = TrackDrawerDescriptor(GetTrackPaintFunctionFlyingSaucers),
.TrackPaintFunctions = TrackDrawerDescriptor({
.Drawer = GetTrackPaintFunctionFlyingSaucers,
.EnabledTrackPieces = {},
.ExtraTrackPieces = {},
}),
.InvertedTrackPaintFunctions = {},
.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 |

View File

@ -18,13 +18,14 @@
// clang-format off
constexpr RideTypeDescriptor GhostTrainRTD =
{
.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),
.TrackPaintFunctions = TrackDrawerDescriptor({
.Drawer = GetTrackPaintFunctionGhostTrain,
.EnabledTrackPieces = {TRACK_STRAIGHT, TRACK_STATION_END, TRACK_SLOPE, TRACK_CURVE_VERY_SMALL, TRACK_CURVE_SMALL, TRACK_BRAKES, TRACK_SPINNING_TUNNEL},
.ExtraTrackPieces = {},
}),
.InvertedTrackPaintFunctions = {},
.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 |

View File

@ -17,13 +17,14 @@
// clang-format off
constexpr RideTypeDescriptor HauntedHouseRTD =
{
.AlternateType = RIDE_TYPE_NULL,
.Category = RIDE_CATEGORY_GENTLE,
.EnabledTrackPieces = {},
.ExtraTrackPieces = {},
.CoveredTrackPieces = {},
.StartTrackPiece = TrackElemType::FlatTrack3x3,
.TrackPaintFunctions = TrackDrawerDescriptor(GetTrackPaintFunctionHauntedHouse),
.TrackPaintFunctions = TrackDrawerDescriptor({
.Drawer = GetTrackPaintFunctionHauntedHouse,
.EnabledTrackPieces = {},
.ExtraTrackPieces = {},
}),
.InvertedTrackPaintFunctions = {},
.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 |

View File

@ -18,13 +18,14 @@
// clang-format off
constexpr RideTypeDescriptor MazeRTD =
{
.AlternateType = RIDE_TYPE_NULL,
.Category = RIDE_CATEGORY_GENTLE,
.EnabledTrackPieces = {},
.ExtraTrackPieces = {},
.CoveredTrackPieces = {},
.StartTrackPiece = TrackElemType::Maze,
.TrackPaintFunctions = TrackDrawerDescriptor(GetTrackPaintFunctionMaze),
.TrackPaintFunctions = TrackDrawerDescriptor({
.Drawer = GetTrackPaintFunctionMaze,
.EnabledTrackPieces = {},
.ExtraTrackPieces = {},
}),
.InvertedTrackPaintFunctions = {},
.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_PEEP_CAN_USE_UMBRELLA | RIDE_TYPE_FLAG_IS_MAZE,

View File

@ -17,13 +17,14 @@
// clang-format off
constexpr RideTypeDescriptor MerryGoRoundRTD =
{
.AlternateType = RIDE_TYPE_NULL,
.Category = RIDE_CATEGORY_GENTLE,
.EnabledTrackPieces = {},
.ExtraTrackPieces = {},
.CoveredTrackPieces = {},
.StartTrackPiece = TrackElemType::FlatTrack3x3,
.TrackPaintFunctions = TrackDrawerDescriptor(GetTrackPaintFunctionMerryGoRound),
.TrackPaintFunctions = TrackDrawerDescriptor({
.Drawer = GetTrackPaintFunctionMerryGoRound,
.EnabledTrackPieces = {},
.ExtraTrackPieces = {},
}),
.InvertedTrackPaintFunctions = {},
.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 |

View File

@ -17,13 +17,14 @@
// clang-format off
constexpr RideTypeDescriptor MiniGolfRTD =
{
.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),
.TrackPaintFunctions = TrackDrawerDescriptor({
.Drawer = GetTrackPaintFunctionMiniGolf,
.EnabledTrackPieces = {TRACK_STRAIGHT, TRACK_STATION_END, TRACK_SLOPE, TRACK_CURVE_VERY_SMALL, TRACK_MINI_GOLF_HOLE},
.ExtraTrackPieces = {},
}),
.InvertedTrackPaintFunctions = {},
.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,

View File

@ -18,13 +18,14 @@
// clang-format off
constexpr RideTypeDescriptor MiniHelicoptersRTD =
{
.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),
.TrackPaintFunctions = TrackDrawerDescriptor({
.Drawer = GetTrackPaintFunctionMiniHelicopters,
.EnabledTrackPieces = {TRACK_STRAIGHT, TRACK_STATION_END, TRACK_SLOPE, TRACK_CURVE_VERY_SMALL, TRACK_CURVE_SMALL},
.ExtraTrackPieces = {TRACK_SPINNING_TUNNEL},
}),
.InvertedTrackPaintFunctions = {},
.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 |

View File

@ -18,13 +18,14 @@
// clang-format off
constexpr RideTypeDescriptor MonorailCyclesRTD =
{
.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),
.TrackPaintFunctions = TrackDrawerDescriptor({
.Drawer = GetTrackPaintFunctionMonorailCycles,
.EnabledTrackPieces = {TRACK_STRAIGHT, TRACK_STATION_END, TRACK_S_BEND, TRACK_CURVE_SMALL, TRACK_CURVE},
.ExtraTrackPieces = {},
}),
.InvertedTrackPaintFunctions = {},
.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 |

View File

@ -17,13 +17,14 @@
// clang-format off
constexpr RideTypeDescriptor MonsterTrucksRTD =
{
.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),
.TrackPaintFunctions = TrackDrawerDescriptor({
.Drawer = GetTrackPaintFunctionCarRide,
.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},
}),
.InvertedTrackPaintFunctions = {},
.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 |

View File

@ -18,13 +18,14 @@
// clang-format off
constexpr RideTypeDescriptor ObservationTowerRTD =
{
.AlternateType = RIDE_TYPE_NULL,
.Category = RIDE_CATEGORY_GENTLE,
.EnabledTrackPieces = {TRACK_TOWER_BASE},
.ExtraTrackPieces = {},
.CoveredTrackPieces = {},
.StartTrackPiece = TrackElemType::TowerBase,
.TrackPaintFunctions = TrackDrawerDescriptor(GetTrackPaintFunctionObservationTower),
.TrackPaintFunctions = TrackDrawerDescriptor({
.Drawer = GetTrackPaintFunctionObservationTower,
.EnabledTrackPieces = {TRACK_TOWER_BASE},
.ExtraTrackPieces = {},
}),
.InvertedTrackPaintFunctions = {},
.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 |

View File

@ -17,13 +17,14 @@
// clang-format off
constexpr RideTypeDescriptor SpaceRingsRTD =
{
.AlternateType = RIDE_TYPE_NULL,
.Category = RIDE_CATEGORY_GENTLE,
.EnabledTrackPieces = {},
.ExtraTrackPieces = {},
.CoveredTrackPieces = {},
.StartTrackPiece = TrackElemType::FlatTrack3x3,
.TrackPaintFunctions = TrackDrawerDescriptor(GetTrackPaintFunctionSpaceRings),
.TrackPaintFunctions = TrackDrawerDescriptor({
.Drawer = GetTrackPaintFunctionSpaceRings,
.EnabledTrackPieces = {},
.ExtraTrackPieces = {},
}),
.InvertedTrackPaintFunctions = {},
.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 |

View File

@ -17,13 +17,14 @@
// clang-format off
constexpr RideTypeDescriptor SpiralSlideRTD =
{
.AlternateType = RIDE_TYPE_NULL,
.Category = RIDE_CATEGORY_GENTLE,
.EnabledTrackPieces = {},
.ExtraTrackPieces = {},
.CoveredTrackPieces = {},
.StartTrackPiece = TrackElemType::FlatTrack2x2,
.TrackPaintFunctions = TrackDrawerDescriptor(GetTrackPaintFunctionSpiralSlide),
.TrackPaintFunctions = TrackDrawerDescriptor({
.Drawer = GetTrackPaintFunctionSpiralSlide,
.EnabledTrackPieces = {},
.ExtraTrackPieces = {},
}),
.InvertedTrackPaintFunctions = {},
.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 |

View File

@ -16,13 +16,14 @@
// clang-format off
constexpr RideTypeDescriptor CashMachineRTD =
{
.AlternateType = RIDE_TYPE_NULL,
.Category = RIDE_CATEGORY_SHOP,
.EnabledTrackPieces = {},
.ExtraTrackPieces = {},
.CoveredTrackPieces = {},
.StartTrackPiece = TrackElemType::FlatTrack1x1A,
.TrackPaintFunctions = TrackDrawerDescriptor(GetTrackPaintFunctionShop),
.TrackPaintFunctions = TrackDrawerDescriptor({
.Drawer = GetTrackPaintFunctionShop,
.EnabledTrackPieces = {},
.ExtraTrackPieces = {},
}),
.InvertedTrackPaintFunctions = {},
.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,

View File

@ -16,13 +16,14 @@
// clang-format off
constexpr RideTypeDescriptor DrinkStallRTD =
{
.AlternateType = RIDE_TYPE_NULL,
.Category = RIDE_CATEGORY_SHOP,
.EnabledTrackPieces = {},
.ExtraTrackPieces = {},
.CoveredTrackPieces = {},
.StartTrackPiece = TrackElemType::FlatTrack1x1A,
.TrackPaintFunctions = TrackDrawerDescriptor(GetTrackPaintFunctionShop),
.TrackPaintFunctions = TrackDrawerDescriptor({
.Drawer = GetTrackPaintFunctionShop,
.EnabledTrackPieces = {},
.ExtraTrackPieces = {},
}),
.InvertedTrackPaintFunctions = {},
.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 |

View File

@ -16,13 +16,14 @@
// clang-format off
constexpr RideTypeDescriptor FirstAidRTD =
{
.AlternateType = RIDE_TYPE_NULL,
.Category = RIDE_CATEGORY_SHOP,
.EnabledTrackPieces = {},
.ExtraTrackPieces = {},
.CoveredTrackPieces = {},
.StartTrackPiece = TrackElemType::FlatTrack1x1A,
.TrackPaintFunctions = TrackDrawerDescriptor(GetTrackPaintFunctionFacility),
.TrackPaintFunctions = TrackDrawerDescriptor({
.Drawer = GetTrackPaintFunctionFacility,
.EnabledTrackPieces = {},
.ExtraTrackPieces = {},
}),
.InvertedTrackPaintFunctions = {},
.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 |

View File

@ -16,13 +16,14 @@
// clang-format off
constexpr RideTypeDescriptor FoodStallRTD =
{
.AlternateType = RIDE_TYPE_NULL,
.Category = RIDE_CATEGORY_SHOP,
.EnabledTrackPieces = {},
.ExtraTrackPieces = {},
.CoveredTrackPieces = {},
.StartTrackPiece = TrackElemType::FlatTrack1x1A,
.TrackPaintFunctions = TrackDrawerDescriptor(GetTrackPaintFunctionShop),
.TrackPaintFunctions = TrackDrawerDescriptor({
.Drawer = GetTrackPaintFunctionShop,
.EnabledTrackPieces = {},
.ExtraTrackPieces = {},
}),
.InvertedTrackPaintFunctions = {},
.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 |

View File

@ -16,13 +16,14 @@
// clang-format off
constexpr RideTypeDescriptor InformationKioskRTD =
{
.AlternateType = RIDE_TYPE_NULL,
.Category = RIDE_CATEGORY_SHOP,
.EnabledTrackPieces = {},
.ExtraTrackPieces = {},
.CoveredTrackPieces = {},
.StartTrackPiece = TrackElemType::FlatTrack1x1B,
.TrackPaintFunctions = TrackDrawerDescriptor(GetTrackPaintFunctionShop),
.TrackPaintFunctions = TrackDrawerDescriptor({
.Drawer = GetTrackPaintFunctionShop,
.EnabledTrackPieces = {},
.ExtraTrackPieces = {},
}),
.InvertedTrackPaintFunctions = {},
.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 |

View File

@ -16,13 +16,14 @@
// clang-format off
constexpr RideTypeDescriptor ShopRTD =
{
.AlternateType = RIDE_TYPE_NULL,
.Category = RIDE_CATEGORY_SHOP,
.EnabledTrackPieces = {},
.ExtraTrackPieces = {},
.CoveredTrackPieces = {},
.StartTrackPiece = TrackElemType::FlatTrack1x1A,
.TrackPaintFunctions = TrackDrawerDescriptor(GetTrackPaintFunctionShop),
.TrackPaintFunctions = TrackDrawerDescriptor({
.Drawer = GetTrackPaintFunctionShop,
.EnabledTrackPieces = {},
.ExtraTrackPieces = {},
}),
.InvertedTrackPaintFunctions = {},
.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 |

View File

@ -16,13 +16,14 @@
// clang-format off
constexpr RideTypeDescriptor ToiletsRTD =
{
.AlternateType = RIDE_TYPE_NULL,
.Category = RIDE_CATEGORY_SHOP,
.EnabledTrackPieces = {},
.ExtraTrackPieces = {},
.CoveredTrackPieces = {},
.StartTrackPiece = TrackElemType::FlatTrack1x1A,
.TrackPaintFunctions = TrackDrawerDescriptor(GetTrackPaintFunctionFacility),
.TrackPaintFunctions = TrackDrawerDescriptor({
.Drawer = GetTrackPaintFunctionFacility,
.EnabledTrackPieces = {},
.ExtraTrackPieces = {},
}),
.InvertedTrackPaintFunctions = {},
.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 |

View File

@ -17,13 +17,14 @@
// C++ does not allow names to start with a number, hence the absence of the '3D' prefix.
constexpr RideTypeDescriptor CinemaRTD =
{
.AlternateType = RIDE_TYPE_NULL,
.Category = RIDE_CATEGORY_THRILL,
.EnabledTrackPieces = {},
.ExtraTrackPieces = {},
.CoveredTrackPieces = {},
.StartTrackPiece = TrackElemType::FlatTrack3x3,
.TrackPaintFunctions = TrackDrawerDescriptor(GetTrackPaintFunction3dCinema),
.TrackPaintFunctions = TrackDrawerDescriptor({
.Drawer = GetTrackPaintFunction3dCinema,
.EnabledTrackPieces = {},
.ExtraTrackPieces = {},
}),
.InvertedTrackPaintFunctions = {},
.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 |

View File

@ -16,13 +16,14 @@
// clang-format off
constexpr RideTypeDescriptor EnterpriseRTD =
{
.AlternateType = RIDE_TYPE_NULL,
.Category = RIDE_CATEGORY_THRILL,
.EnabledTrackPieces = {},
.ExtraTrackPieces = {},
.CoveredTrackPieces = {},
.StartTrackPiece = TrackElemType::FlatTrack4x4,
.TrackPaintFunctions = TrackDrawerDescriptor(GetTrackPaintFunctionEnterprise),
.TrackPaintFunctions = TrackDrawerDescriptor({
.Drawer = GetTrackPaintFunctionEnterprise,
.EnabledTrackPieces = {},
.ExtraTrackPieces = {},
}),
.InvertedTrackPaintFunctions = {},
.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 |

View File

@ -18,13 +18,14 @@
// clang-format off
constexpr RideTypeDescriptor GoKartsRTD =
{
.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),
.TrackPaintFunctions = TrackDrawerDescriptor({
.Drawer = GetTrackPaintFunctionGoKarts,
.EnabledTrackPieces = {TRACK_STRAIGHT, TRACK_STATION_END, TRACK_SLOPE, TRACK_CURVE_VERY_SMALL},
.ExtraTrackPieces = {},
}),
.InvertedTrackPaintFunctions = {},
.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,

View File

@ -17,13 +17,14 @@
// clang-format off
constexpr RideTypeDescriptor LaunchedFreefallRTD =
{
.AlternateType = RIDE_TYPE_NULL,
.Category = RIDE_CATEGORY_THRILL,
.EnabledTrackPieces = {TRACK_TOWER_BASE},
.ExtraTrackPieces = {},
.CoveredTrackPieces = {},
.StartTrackPiece = TrackElemType::TowerBase,
.TrackPaintFunctions = TrackDrawerDescriptor(GetTrackPaintFunctionLaunchedFreefall),
.TrackPaintFunctions = TrackDrawerDescriptor({
.Drawer = GetTrackPaintFunctionLaunchedFreefall,
.EnabledTrackPieces = {TRACK_TOWER_BASE},
.ExtraTrackPieces = {},
}),
.InvertedTrackPaintFunctions = {},
.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 |

View File

@ -17,13 +17,14 @@
// clang-format off
constexpr RideTypeDescriptor MagicCarpetRTD =
{
.AlternateType = RIDE_TYPE_NULL,
.Category = RIDE_CATEGORY_THRILL,
.EnabledTrackPieces = {},
.ExtraTrackPieces = {},
.CoveredTrackPieces = {},
.StartTrackPiece = TrackElemType::FlatTrack1x4A,
.TrackPaintFunctions = TrackDrawerDescriptor(GetTrackPaintFunctionMagicCarpet),
.TrackPaintFunctions = TrackDrawerDescriptor({
.Drawer = GetTrackPaintFunctionMagicCarpet,
.EnabledTrackPieces = {},
.ExtraTrackPieces = {},
}),
.InvertedTrackPaintFunctions = {},
.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 |

View File

@ -16,13 +16,14 @@
// clang-format off
constexpr RideTypeDescriptor MotionSimulatorRTD =
{
.AlternateType = RIDE_TYPE_NULL,
.Category = RIDE_CATEGORY_THRILL,
.EnabledTrackPieces = {},
.ExtraTrackPieces = {},
.CoveredTrackPieces = {},
.StartTrackPiece = TrackElemType::FlatTrack2x2,
.TrackPaintFunctions = TrackDrawerDescriptor(GetTrackPaintFunctionMotionsimulator),
.TrackPaintFunctions = TrackDrawerDescriptor({
.Drawer = GetTrackPaintFunctionMotionsimulator,
.EnabledTrackPieces = {},
.ExtraTrackPieces = {},
}),
.InvertedTrackPaintFunctions = {},
.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 |

View File

@ -17,13 +17,14 @@
// clang-format off
constexpr RideTypeDescriptor RotoDropRTD =
{
.AlternateType = RIDE_TYPE_NULL,
.Category = RIDE_CATEGORY_THRILL,
.EnabledTrackPieces = {TRACK_TOWER_BASE},
.ExtraTrackPieces = {},
.CoveredTrackPieces = {},
.StartTrackPiece = TrackElemType::TowerBase,
.TrackPaintFunctions = TrackDrawerDescriptor(GetTrackPaintFunctionRotoDrop),
.TrackPaintFunctions = TrackDrawerDescriptor({
.Drawer = GetTrackPaintFunctionRotoDrop,
.EnabledTrackPieces = {TRACK_TOWER_BASE},
.ExtraTrackPieces = {},
}),
.InvertedTrackPaintFunctions = {},
.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 |

View File

@ -17,13 +17,14 @@
// clang-format off
constexpr RideTypeDescriptor SwingingInverterShipRTD =
{
.AlternateType = RIDE_TYPE_NULL,
.Category = RIDE_CATEGORY_THRILL,
.EnabledTrackPieces = {},
.ExtraTrackPieces = {},
.CoveredTrackPieces = {},
.StartTrackPiece = TrackElemType::FlatTrack1x4B,
.TrackPaintFunctions = TrackDrawerDescriptor(GetTrackPaintFunctionSwingingInverterShip),
.TrackPaintFunctions = TrackDrawerDescriptor({
.Drawer = GetTrackPaintFunctionSwingingInverterShip,
.EnabledTrackPieces = {},
.ExtraTrackPieces = {},
}),
.InvertedTrackPaintFunctions = {},
.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 |

View File

@ -17,13 +17,14 @@
// clang-format off
constexpr RideTypeDescriptor SwingingShipRTD =
{
.AlternateType = RIDE_TYPE_NULL,
.Category = RIDE_CATEGORY_THRILL,
.EnabledTrackPieces = {},
.ExtraTrackPieces = {},
.CoveredTrackPieces = {},
.StartTrackPiece = TrackElemType::FlatTrack1x5,
.TrackPaintFunctions = TrackDrawerDescriptor(GetTrackPaintFunctionSwingingShip),
.TrackPaintFunctions = TrackDrawerDescriptor({
.Drawer = GetTrackPaintFunctionSwingingShip,
.EnabledTrackPieces = {},
.ExtraTrackPieces = {},
}),
.InvertedTrackPaintFunctions = {},
.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 |

View File

@ -17,13 +17,14 @@
// clang-format off
constexpr RideTypeDescriptor TopSpinRTD =
{
.AlternateType = RIDE_TYPE_NULL,
.Category = RIDE_CATEGORY_THRILL,
.EnabledTrackPieces = {},
.ExtraTrackPieces = {},
.CoveredTrackPieces = {},
.StartTrackPiece = TrackElemType::FlatTrack3x3,
.TrackPaintFunctions = TrackDrawerDescriptor(GetTrackPaintFunctionTopspin),
.TrackPaintFunctions = TrackDrawerDescriptor({
.Drawer = GetTrackPaintFunctionTopspin,
.EnabledTrackPieces = {},
.ExtraTrackPieces = {},
}),
.InvertedTrackPaintFunctions = {},
.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 |

View File

@ -16,13 +16,14 @@
// clang-format off
constexpr RideTypeDescriptor TwistRTD =
{
.AlternateType = RIDE_TYPE_NULL,
.Category = RIDE_CATEGORY_THRILL,
.EnabledTrackPieces = {},
.ExtraTrackPieces = {},
.CoveredTrackPieces = {},
.StartTrackPiece = TrackElemType::FlatTrack3x3,
.TrackPaintFunctions = TrackDrawerDescriptor(GetTrackPaintFunctionTwist),
.TrackPaintFunctions = TrackDrawerDescriptor({
.Drawer = GetTrackPaintFunctionTwist,
.EnabledTrackPieces = {},
.ExtraTrackPieces = {},
}),
.InvertedTrackPaintFunctions = {},
.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 |

View File

@ -18,13 +18,14 @@
// clang-format off
constexpr RideTypeDescriptor ChairliftRTD =
{
.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),
.TrackPaintFunctions = TrackDrawerDescriptor({
.Drawer = GetTrackPaintFunctionChairlift,
.EnabledTrackPieces = {TRACK_STRAIGHT, TRACK_STATION_END, TRACK_SLOPE, TRACK_CURVE_VERY_SMALL},
.ExtraTrackPieces = {},
}),
.InvertedTrackPaintFunctions = {},
.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 |

View File

@ -17,13 +17,14 @@
// clang-format off
constexpr RideTypeDescriptor LiftRTD =
{
.AlternateType = RIDE_TYPE_NULL,
.Category = RIDE_CATEGORY_TRANSPORT,
.EnabledTrackPieces = {TRACK_TOWER_BASE},
.ExtraTrackPieces = {},
.CoveredTrackPieces = {},
.StartTrackPiece = TrackElemType::TowerBase,
.TrackPaintFunctions = TrackDrawerDescriptor(GetTrackPaintFunctionLift),
.TrackPaintFunctions = TrackDrawerDescriptor({
.Drawer = GetTrackPaintFunctionLift,
.EnabledTrackPieces = {TRACK_TOWER_BASE},
.ExtraTrackPieces = {},
}),
.InvertedTrackPaintFunctions = {},
.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 |

View File

@ -18,13 +18,14 @@
// clang-format off
constexpr RideTypeDescriptor MiniatureRailwayRTD =
{
.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),
.TrackPaintFunctions = TrackDrawerDescriptor({
.Drawer = GetTrackPaintFunctionMiniatureRailway,
.EnabledTrackPieces = {TRACK_STRAIGHT, TRACK_STATION_END, TRACK_SLOPE, TRACK_S_BEND, TRACK_CURVE_SMALL, TRACK_CURVE, TRACK_CURVE_LARGE},
.ExtraTrackPieces = {},
}),
.InvertedTrackPaintFunctions = {},
.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 |

View File

@ -18,13 +18,14 @@
// clang-format off
constexpr RideTypeDescriptor MonorailRTD =
{
.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),
.TrackPaintFunctions = TrackDrawerDescriptor({
.Drawer = GetTrackPaintFunctionMonorail,
.EnabledTrackPieces = {TRACK_STRAIGHT, TRACK_STATION_END, TRACK_SLOPE, TRACK_S_BEND, TRACK_CURVE_SMALL, TRACK_CURVE, TRACK_CURVE_LARGE},
.ExtraTrackPieces = {},
}),
.InvertedTrackPaintFunctions = {},
.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 |

View File

@ -17,13 +17,14 @@
// clang-format off
constexpr RideTypeDescriptor SuspendedMonorailRTD =
{
.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),
.TrackPaintFunctions = TrackDrawerDescriptor({
.Drawer = GetTrackPaintFunctionSuspendedMonorail,
.EnabledTrackPieces = {TRACK_STRAIGHT, TRACK_STATION_END, TRACK_SLOPE, TRACK_S_BEND, TRACK_CURVE_SMALL, TRACK_CURVE, TRACK_CURVE_LARGE},
.ExtraTrackPieces = {},
}),
.InvertedTrackPaintFunctions = {},
.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 |

View File

@ -18,13 +18,14 @@
// clang-format off
constexpr RideTypeDescriptor BoatHireRTD =
{
.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),
.TrackPaintFunctions = TrackDrawerDescriptor({
.Drawer = GetTrackPaintFunctionBoatHire,
.EnabledTrackPieces = {TRACK_STRAIGHT, TRACK_STATION_END, TRACK_CURVE_VERY_SMALL},
.ExtraTrackPieces = {},
}),
.InvertedTrackPaintFunctions = {},
.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,

View File

@ -17,13 +17,21 @@
// clang-format off
constexpr RideTypeDescriptor DinghySlideRTD =
{
.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),
.TrackPaintFunctions = TrackDrawerDescriptor(
{
.Drawer = GetTrackPaintFunctionDinghySlide,
.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 = {},
},
{
.Drawer = GetTrackPaintFunctionDinghySlideCovered,
.EnabledTrackPieces = {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},
.ExtraTrackPieces = {},
}
),
.InvertedTrackPaintFunctions = {},
.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 |

View File

@ -17,13 +17,14 @@
// clang-format off
constexpr RideTypeDescriptor LogFlumeRTD =
{
.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),
.TrackPaintFunctions = TrackDrawerDescriptor({
.Drawer = GetTrackPaintFunctionLogFlume,
.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 = {},
}),
.InvertedTrackPaintFunctions = {},
.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 |

View File

@ -17,13 +17,14 @@
// clang-format off
constexpr RideTypeDescriptor RiverRaftsRTD =
{
.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),
.TrackPaintFunctions = TrackDrawerDescriptor({
.Drawer = GetTrackPaintFunctionSplashBoats,
.EnabledTrackPieces = {TRACK_STRAIGHT, TRACK_STATION_END, TRACK_S_BEND, TRACK_CURVE},
.ExtraTrackPieces = {TRACK_SLOPE, TRACK_SLOPE_STEEP_DOWN, TRACK_ON_RIDE_PHOTO},
}),
.InvertedTrackPaintFunctions = {},
.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 |

View File

@ -17,13 +17,14 @@
// clang-format off
constexpr RideTypeDescriptor RiverRapidsRTD =
{
.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),
.TrackPaintFunctions = TrackDrawerDescriptor({
.Drawer = GetTrackPaintFunctionRiverRapids,
.EnabledTrackPieces = {TRACK_STRAIGHT, TRACK_STATION_END, TRACK_SLOPE, TRACK_CURVE_VERY_SMALL, TRACK_ON_RIDE_PHOTO, TRACK_RAPIDS, TRACK_WATERFALL, TRACK_WHIRLPOOL},
.ExtraTrackPieces = {},
}),
.InvertedTrackPaintFunctions = {},
.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 |

View File

@ -18,13 +18,14 @@
// clang-format off
constexpr RideTypeDescriptor SplashBoatsRTD =
{
.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),
.TrackPaintFunctions = TrackDrawerDescriptor({
.Drawer = GetTrackPaintFunctionSplashBoats,
.EnabledTrackPieces = {TRACK_STRAIGHT, TRACK_STATION_END, TRACK_SLOPE, TRACK_SLOPE_STEEP_DOWN, TRACK_S_BEND, TRACK_CURVE, TRACK_ON_RIDE_PHOTO},
.ExtraTrackPieces = {},
}),
.InvertedTrackPaintFunctions = {},
.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 |

View File

@ -18,13 +18,14 @@
// clang-format off
constexpr RideTypeDescriptor SubmarineRideRTD =
{
.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),
.TrackPaintFunctions = TrackDrawerDescriptor({
.Drawer = GetTrackPaintFunctionSubmarineRide,
.EnabledTrackPieces = {TRACK_STRAIGHT, TRACK_STATION_END, TRACK_CURVE_VERY_SMALL, TRACK_CURVE_SMALL},
.ExtraTrackPieces = {},
}),
.InvertedTrackPaintFunctions = {},
.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 |

View File

@ -299,10 +299,10 @@ bool WindowRideConstructionUpdateState(
}
const auto& rtd = ride->GetRideTypeDescriptor();
if (rtd.HasFlag(RIDE_TYPE_FLAG_TRACK_ELEMENTS_HAVE_TWO_VARIETIES)
&& _currentTrackAlternative & RIDE_TYPE_ALTERNATIVE_TRACK_PIECES)
const auto trackDrawerDecriptor = getCurrentTrackDrawerDescriptor(rtd);
if (trackDrawerDecriptor.HasCoveredPieces() && _currentTrackAlternative & RIDE_TYPE_ALTERNATIVE_TRACK_PIECES)
{
auto availablePieces = rtd.CoveredTrackPieces;
auto availablePieces = trackDrawerDecriptor.Covered.EnabledTrackPieces;
const auto& ted = GetTrackElementDescriptor(trackType);
auto alternativeType = ted.AlternativeType;
// this method limits the track element types that can be used