Add DesignCreateMode field to the RTD (#16987)

This commit is contained in:
frutiemax 2022-06-13 07:39:37 -04:00 committed by GitHub
parent faa5a41f5a
commit 9c796816a1
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
12 changed files with 25 additions and 5 deletions

View File

@ -77,6 +77,12 @@ enum class RideColourKey : uint8_t
Toilets
};
enum class TrackDesignCreateMode : uint_fast8_t
{
Default,
Maze
};
struct RideNameConvention
{
RideComponentType vehicle;
@ -189,6 +195,7 @@ struct RideTypeDescriptor
track_colour_preset_list ColourPresets;
RideColourPreview ColourPreview;
RideColourKey ColourKey;
TrackDesignCreateMode DesignCreateMode = TrackDesignCreateMode::Default;
RideMusicUpdateFunction MusicUpdateFunction = DefaultMusicUpdate;
RideClassification Classification = RideClassification::Ride;

View File

@ -149,12 +149,16 @@ rct_string_id TrackDesign::CreateTrackDesign(TrackDesignState& tds, const Ride&
flags = 0;
flags2 = 0;
if (type == RIDE_TYPE_MAZE)
const auto& rtd = GetRideTypeDescriptor(type);
if (rtd.DesignCreateMode == TrackDesignCreateMode::Maze)
{
return CreateTrackDesignMaze(tds, ride);
}
return CreateTrackDesignTrack(tds, ride);
else
{
return CreateTrackDesignTrack(tds, ride);
}
}
rct_string_id TrackDesign::CreateTrackDesignTrack(TrackDesignState& tds, const Ride& ride)

View File

@ -48,7 +48,7 @@ constexpr const RideTypeDescriptor HybridCoasterRTD =
{ COLOUR_BRIGHT_RED, COLOUR_BRIGHT_RED, COLOUR_SATURATED_BROWN},
{ COLOUR_LIGHT_BLUE, COLOUR_LIGHT_BLUE, COLOUR_WHITE}
)),
SET_FIELD(ColourPreview, { SPR_RIDE_DESIGN_PREVIEW_HYBRID_COASTER_TRACK, SPR_RIDE_DESIGN_PREVIEW_HYBRID_COASTER_SUPPORTS }),
SET_FIELD(ColourKey, RideColourKey::Ride),
SET_FIELD(ColourPreview, { SPR_RIDE_DESIGN_PREVIEW_HYBRID_COASTER_TRACK, SPR_RIDE_DESIGN_PREVIEW_HYBRID_COASTER_SUPPORTS }),
SET_FIELD(ColourKey, RideColourKey::Ride),
};
// clang-format on

View File

@ -49,6 +49,7 @@ constexpr const RideTypeDescriptor CircusRTD =
SET_FIELD(ColourPresets, DEFAULT_FLAT_RIDE_COLOUR_PRESET),
SET_FIELD(ColourPreview, { 0, 0 }),
SET_FIELD(ColourKey, RideColourKey::Ride),
SET_FIELD(DesignCreateMode, TrackDesignCreateMode::Default),
SET_FIELD(MusicUpdateFunction, CircusMusicUpdate),
};
// clang-format on

View File

@ -50,5 +50,6 @@ constexpr const RideTypeDescriptor MazeRTD =
)),
SET_FIELD(ColourPreview, { 0, 0 }),
SET_FIELD(ColourKey, RideColourKey::Ride),
SET_FIELD(DesignCreateMode, TrackDesignCreateMode::Maze),
};
// clang-format on

View File

@ -46,6 +46,7 @@ constexpr const RideTypeDescriptor CashMachineRTD =
SET_FIELD(ColourPresets, DEFAULT_FLAT_RIDE_COLOUR_PRESET),
SET_FIELD(ColourPreview, { 0, 0 }),
SET_FIELD(ColourKey, RideColourKey::CashMachine),
SET_FIELD(DesignCreateMode, TrackDesignCreateMode::Default),
SET_FIELD(MusicUpdateFunction, DefaultMusicUpdate),
SET_FIELD(Classification, RideClassification::KioskOrFacility),
};

View File

@ -47,6 +47,7 @@ constexpr const RideTypeDescriptor DrinkStallRTD =
SET_FIELD(ColourPresets, DEFAULT_STALL_COLOUR_PRESET),
SET_FIELD(ColourPreview, { 0, 0 }),
SET_FIELD(ColourKey, RideColourKey::Drink),
SET_FIELD(DesignCreateMode, TrackDesignCreateMode::Default),
SET_FIELD(MusicUpdateFunction, DefaultMusicUpdate),
SET_FIELD(Classification, RideClassification::ShopOrStall),
};

View File

@ -47,6 +47,7 @@ constexpr const RideTypeDescriptor FirstAidRTD =
SET_FIELD(ColourPresets, DEFAULT_FLAT_RIDE_COLOUR_PRESET),
SET_FIELD(ColourPreview, { 0, 0 }),
SET_FIELD(ColourKey, RideColourKey::FirstAid),
SET_FIELD(DesignCreateMode, TrackDesignCreateMode::Default),
SET_FIELD(MusicUpdateFunction, DefaultMusicUpdate),
SET_FIELD(Classification, RideClassification::KioskOrFacility),
};

View File

@ -47,6 +47,7 @@ constexpr const RideTypeDescriptor FoodStallRTD =
SET_FIELD(ColourPresets, DEFAULT_STALL_COLOUR_PRESET),
SET_FIELD(ColourPreview, { 0, 0 }),
SET_FIELD(ColourKey, RideColourKey::Food),
SET_FIELD(DesignCreateMode, TrackDesignCreateMode::Default),
SET_FIELD(MusicUpdateFunction, DefaultMusicUpdate),
SET_FIELD(Classification, RideClassification::ShopOrStall),
};

View File

@ -47,6 +47,7 @@ constexpr const RideTypeDescriptor InformationKioskRTD =
SET_FIELD(ColourPresets, DEFAULT_STALL_COLOUR_PRESET),
SET_FIELD(ColourPreview, { 0, 0 }),
SET_FIELD(ColourKey, RideColourKey::InfoKiosk),
SET_FIELD(DesignCreateMode, TrackDesignCreateMode::Default),
SET_FIELD(MusicUpdateFunction, DefaultMusicUpdate),
SET_FIELD(Classification, RideClassification::KioskOrFacility),
};

View File

@ -47,6 +47,7 @@ constexpr const RideTypeDescriptor ShopRTD =
SET_FIELD(ColourPresets, DEFAULT_STALL_COLOUR_PRESET),
SET_FIELD(ColourPreview, { 0, 0 }),
SET_FIELD(ColourKey, RideColourKey::Shop),
SET_FIELD(DesignCreateMode, TrackDesignCreateMode::Default),
SET_FIELD(MusicUpdateFunction, DefaultMusicUpdate),
SET_FIELD(Classification, RideClassification::ShopOrStall),
};

View File

@ -47,6 +47,7 @@ constexpr const RideTypeDescriptor ToiletsRTD =
SET_FIELD(ColourPresets, DEFAULT_FLAT_RIDE_COLOUR_PRESET),
SET_FIELD(ColourPreview, { 0, 0 }),
SET_FIELD(ColourKey, RideColourKey::Toilets),
SET_FIELD(DesignCreateMode, TrackDesignCreateMode::Default),
SET_FIELD(MusicUpdateFunction, DefaultMusicUpdate),
SET_FIELD(Classification, RideClassification::KioskOrFacility),
};