mirror of https://github.com/OpenRCT2/OpenRCT2.git
Merge pull request #21350 from Gymnasiast/objects-1.4.0
Update to v1.4.0 objects release
This commit is contained in:
commit
8916b3ce9d
|
@ -64,9 +64,9 @@ set(TITLE_SEQUENCE_VERSION "0.4.6")
|
|||
set(TITLE_SEQUENCE_URL "https://github.com/OpenRCT2/title-sequences/releases/download/v${TITLE_SEQUENCE_VERSION}/title-sequences.zip")
|
||||
set(TITLE_SEQUENCE_SHA1 "80fefc6ebbabc42a6f4703412daa5c62f661420d")
|
||||
|
||||
set(OBJECTS_VERSION "1.3.13")
|
||||
set(OBJECTS_VERSION "1.4.0")
|
||||
set(OBJECTS_URL "https://github.com/OpenRCT2/objects/releases/download/v${OBJECTS_VERSION}/objects.zip")
|
||||
set(OBJECTS_SHA1 "15a60424d5f4f0b94ac07763b6967ba0e6ae3a7d")
|
||||
set(OBJECTS_SHA1 "f512e230ffa2f16109209e4f30e7d7bf4fe21fc0")
|
||||
|
||||
set(OPENSFX_VERSION "1.0.5")
|
||||
set(OPENSFX_URL "https://github.com/OpenRCT2/OpenSoundEffects/releases/download/v${OPENSFX_VERSION}/opensound.zip")
|
||||
|
|
|
@ -5,10 +5,16 @@
|
|||
- Feature: [#21376] Add option to reload an object (for object developers).
|
||||
- Feature: [#21413, OpenSFX#19] Add log flume lift sound effect (when “chainlift” is enabled).
|
||||
- Feature: [#21455] Add option to control hidden scenery.
|
||||
- Feature: [objects#282] Added RCT1 beta terrains.
|
||||
- Improved: [#21356] Resize the title bar when moving between displays with different scaling factors on Windows systems.
|
||||
- Improved: [#21388] Tooltips will now show even when an error message is present.
|
||||
- Improved: [#21423] Add mechanism to allow building partly underground.
|
||||
- Improved: [objects#272, objects#276, objects#277, objects#278, objects#279, objects#280, objects#281] Add most remaining ports of RCT1 ride and vehicle objects (for import only).
|
||||
- Improved: [objects#275, objects#284, objects#286] Add remaining RCT1 walls (for import only).
|
||||
- Change: [#21350] Group Dodgems and Flying Saucers vehicles.
|
||||
- Change: [#21453] Reintroduce lost RCT1 Jet skis colour presets to the boat hire.
|
||||
- Change: [objects#285] Mark old reversed train objects as compatibility objects.
|
||||
- Fix: [#17610] Some scenery items are unavailable in RCT1 scenarios.
|
||||
- Fix: [#18963] Research table in parks from Loopy Landscapes is imported incorrectly.
|
||||
- Fix: [#20164] Grass and Rock terrain objects cannot be de-selected.
|
||||
- Fix: [#20907] RCT1/AA scenarios use the 4-across train for the Inverted Roller Coaster.
|
||||
|
@ -22,7 +28,9 @@
|
|||
- Fix: [#21332] Mini Helicopters and Monorail Cycles ride types are swapped in research within RCT1 scenarios.
|
||||
- Fix: [#21343] “Pause” and “Build Path” hotkeys do not work if top toolbar is hidden.
|
||||
- Fix: [#21347] Too many options are hidden if the platform has no file picker.
|
||||
- Fix: [#21350] Maze and Mini Golf track designs from RCT1 not shown in track designs list.
|
||||
- Fix: [#21425] Additional missing/misplaced land & construction rights tiles in Japanese Coastal Reclaim.
|
||||
- Fix: [objects#262, objects#263, objects#265, objects#266, objects#267, objects#268, objects#270, objects#271, objects#283] Various errors in expansion pack objects (original bug).
|
||||
- Fix: [OpenSFX#18] B&M Roar sound effect not looping correctly.
|
||||
|
||||
0.4.8 (2024-02-04)
|
||||
|
|
|
@ -45,8 +45,8 @@
|
|||
<LibsSha1 Condition="'$(Platform)'=='ARM64'">bd338aa3da9a357fb996dcaa6cea02c4f906718c</LibsSha1>
|
||||
<TitleSequencesUrl>https://github.com/OpenRCT2/title-sequences/releases/download/v0.4.6/title-sequences.zip</TitleSequencesUrl>
|
||||
<TitleSequencesSha1>80fefc6ebbabc42a6f4703412daa5c62f661420d</TitleSequencesSha1>
|
||||
<ObjectsUrl>https://github.com/OpenRCT2/objects/releases/download/v1.3.13/objects.zip</ObjectsUrl>
|
||||
<ObjectsSha1>15a60424d5f4f0b94ac07763b6967ba0e6ae3a7d</ObjectsSha1>
|
||||
<ObjectsUrl>https://github.com/OpenRCT2/objects/releases/download/v1.4.0/objects.zip</ObjectsUrl>
|
||||
<ObjectsSha1>f512e230ffa2f16109209e4f30e7d7bf4fe21fc0</ObjectsSha1>
|
||||
<OpenSFXUrl>https://github.com/OpenRCT2/OpenSoundEffects/releases/download/v1.0.5/opensound.zip</OpenSFXUrl>
|
||||
<OpenSFXSha1>b1b1f1b241d2cbff63a1889c4dc5a09bdf769bfb</OpenSFXSha1>
|
||||
<OpenMSXUrl>https://github.com/OpenRCT2/OpenMusic/releases/download/v1.5/openmusic.zip</OpenMSXUrl>
|
||||
|
|
|
@ -109,6 +109,116 @@ namespace RCT1
|
|||
Null = 255,
|
||||
};
|
||||
|
||||
enum class VehicleType : uint8_t
|
||||
{
|
||||
SteelRollerCoasterTrain,
|
||||
SteelRollerCoasterTrainBackwards,
|
||||
WoodenRollerCoasterTrain,
|
||||
InvertedCoasterTrain, // Not in RCT2
|
||||
SuspendedSwingingCars,
|
||||
LadybirdCars,
|
||||
StandUpRollerCoasterCars,
|
||||
SpinningCars,
|
||||
SinglePersonSwingingChairs,
|
||||
SwansPedalBoats,
|
||||
LargeMonorailTrain,
|
||||
Canoes,
|
||||
RowingBoats,
|
||||
SteamTrain,
|
||||
WoodenMouseCars,
|
||||
BumperBoats,
|
||||
WoodenRollerCoasterTrainBackwards,
|
||||
RocketCars,
|
||||
Horses, // Steeplechase
|
||||
Sportscars,
|
||||
LyingDownSwingingCars, // Inverted single-rail
|
||||
WoodenMineCars,
|
||||
SuspendedSwingingAirplaneCars,
|
||||
SmallMonorailCars,
|
||||
WaterTricycles,
|
||||
LaunchedFreefallCar,
|
||||
BobsleighCars,
|
||||
Dinghies,
|
||||
RotatingCabin,
|
||||
MineTrain,
|
||||
ChairliftCars,
|
||||
CorkscrewRollerCoasterTrain,
|
||||
Motorbikes,
|
||||
RacingCars,
|
||||
Trucks,
|
||||
GoKarts,
|
||||
RapidsBoats,
|
||||
LogFlumeBoats,
|
||||
Dodgems,
|
||||
SwingingShip,
|
||||
SwingingInverterShip,
|
||||
MerryGoRound,
|
||||
FerrisWheel,
|
||||
SimulatorPod,
|
||||
CinemaBuilding,
|
||||
TopspinCar,
|
||||
SpaceRings,
|
||||
ReverseFreefallRollerCoasterCar,
|
||||
VerticalRollerCoasterCars,
|
||||
CatCars,
|
||||
TwistArmsAndCars,
|
||||
HauntedHouseBuilding,
|
||||
LogCars,
|
||||
CircusTent,
|
||||
GhostTrainCars,
|
||||
SteelTwisterRollerCoasterTrain,
|
||||
WoodenTwisterRollerCoasterTrain,
|
||||
WoodenSideFrictionCars,
|
||||
VintageCars,
|
||||
SteamTrainCoveredCars,
|
||||
StandUpSteelTwisterRollerCoasterTrain,
|
||||
FloorlessSteelTwisterRollerCoasterTrain,
|
||||
SteelMouseCars,
|
||||
ChairliftCarsAlternative,
|
||||
SuspendedMonorailTrain,
|
||||
HelicopterCars,
|
||||
VirginiaReelTubs,
|
||||
ReverserCars,
|
||||
Golfers,
|
||||
RiverRideBoats,
|
||||
FlyingRollerCoasterTrain,
|
||||
NonLoopingSteelTwisterRollerCoasterTrain,
|
||||
HeartlineTwisterCars,
|
||||
HeartlineTwisterCarsReversed,
|
||||
Reserved,
|
||||
RotodropCar,
|
||||
FlyingSaucers,
|
||||
CrookedHouseBuilding,
|
||||
Bicycles,
|
||||
HypercoasterTrain,
|
||||
_4AcrossInvertedCoasterTrain,
|
||||
WaterCoasterBoats,
|
||||
FaceoffCars,
|
||||
JetSkis,
|
||||
RaftBoats,
|
||||
AmericanStyleSteamTrain,
|
||||
AirPoweredCoasterTrain,
|
||||
SuspendedWildMouseCars, // Inverted Hairpin in RCT2
|
||||
EnterpriseWheel,
|
||||
|
||||
Count,
|
||||
};
|
||||
|
||||
enum class BannerType : uint8_t
|
||||
{
|
||||
Plain = 0,
|
||||
Jungle,
|
||||
Roman,
|
||||
Egyptian,
|
||||
Mine,
|
||||
Jurassic,
|
||||
Oriental,
|
||||
Snow,
|
||||
Space,
|
||||
|
||||
Null = 255,
|
||||
};
|
||||
|
||||
#pragma pack(push, 1)
|
||||
struct Entrance
|
||||
{
|
||||
|
@ -125,11 +235,11 @@ namespace RCT1
|
|||
*/
|
||||
struct Ride
|
||||
{
|
||||
RideType Type; // 0x000
|
||||
uint8_t VehicleType; // 0x001
|
||||
uint16_t LifecycleFlags; // 0x002
|
||||
uint8_t OperatingMode; // 0x004
|
||||
uint8_t ColourScheme; // 0x005
|
||||
RideType Type; // 0x000
|
||||
RCT1::VehicleType VehicleType; // 0x001
|
||||
uint16_t LifecycleFlags; // 0x002
|
||||
uint8_t OperatingMode; // 0x004
|
||||
uint8_t ColourScheme; // 0x005
|
||||
struct
|
||||
{
|
||||
colour_t Body;
|
||||
|
@ -792,7 +902,7 @@ namespace RCT1
|
|||
struct TD4
|
||||
{
|
||||
RideType Type; // 0x00
|
||||
uint8_t VehicleType;
|
||||
RCT1::VehicleType VehicleType;
|
||||
uint32_t Flags; // 0x02
|
||||
uint8_t Mode; // 0x06
|
||||
uint8_t VersionAndColourScheme; // 0x07 0b0000_VVCC
|
||||
|
@ -850,101 +960,6 @@ namespace RCT1
|
|||
assert_struct_size(TD4AA, 0xC4);
|
||||
#pragma pack(pop)
|
||||
|
||||
enum
|
||||
{
|
||||
RCT1_VEHICLE_TYPE_STEEL_ROLLER_COASTER_TRAIN = 0,
|
||||
RCT1_VEHICLE_TYPE_STEEL_ROLLER_COASTER_TRAIN_BACKWARDS,
|
||||
RCT1_VEHICLE_TYPE_WOODEN_ROLLER_COASTER_TRAIN,
|
||||
RCT1_VEHICLE_TYPE_INVERTED_COASTER_TRAIN, // Not in RCT2
|
||||
RCT1_VEHICLE_TYPE_SUSPENDED_SWINGING_CARS,
|
||||
RCT1_VEHICLE_TYPE_LADYBIRD_CARS,
|
||||
RCT1_VEHICLE_TYPE_STANDUP_ROLLER_COASTER_CARS,
|
||||
RCT1_VEHICLE_TYPE_SPINNING_CARS,
|
||||
RCT1_VEHICLE_TYPE_SINGLE_PERSON_SWINGING_CHAIRS,
|
||||
RCT1_VEHICLE_TYPE_SWANS_PEDAL_BOATS,
|
||||
RCT1_VEHICLE_TYPE_LARGE_MONORAIL_TRAIN,
|
||||
RCT1_VEHICLE_TYPE_CANOES,
|
||||
RCT1_VEHICLE_TYPE_ROWING_BOATS,
|
||||
RCT1_VEHICLE_TYPE_STEAM_TRAIN,
|
||||
RCT1_VEHICLE_TYPE_WOODEN_MOUSE_CARS,
|
||||
RCT1_VEHICLE_TYPE_BUMPER_BOATS,
|
||||
RCT1_VEHICLE_TYPE_WOODEN_ROLLER_COASTER_TRAIN_BACKWARDS,
|
||||
RCT1_VEHICLE_TYPE_ROCKET_CARS,
|
||||
RCT1_VEHICLE_TYPE_HORSES, // Steeplechase
|
||||
RCT1_VEHICLE_TYPE_SPORTSCARS,
|
||||
RCT1_VEHICLE_TYPE_LYING_DOWN_SWINGING_CARS, // Inverted single-rail
|
||||
RCT1_VEHICLE_TYPE_WOODEN_MINE_CARS,
|
||||
RCT1_VEHICLE_TYPE_SUSPENDED_SWINGING_AIRPLANE_CARS,
|
||||
RCT1_VEHICLE_TYPE_SMALL_MONORAIL_CARS,
|
||||
RCT1_VEHICLE_TYPE_WATER_TRICYCLES,
|
||||
RCT1_VEHICLE_TYPE_LAUNCHED_FREEFALL_CAR,
|
||||
RCT1_VEHICLE_TYPE_BOBSLEIGH_CARS,
|
||||
RCT1_VEHICLE_TYPE_DINGHIES,
|
||||
RCT1_VEHICLE_TYPE_ROTATING_CABIN,
|
||||
RCT1_VEHICLE_TYPE_MINE_TRAIN,
|
||||
RCT1_VEHICLE_TYPE_CHAIRLIFT_CARS,
|
||||
RCT1_VEHICLE_TYPE_CORKSCREW_ROLLER_COASTER_TRAIN,
|
||||
RCT1_VEHICLE_TYPE_MOTORBIKES,
|
||||
RCT1_VEHICLE_TYPE_RACING_CARS,
|
||||
RCT1_VEHICLE_TYPE_TRUCKS,
|
||||
RCT1_VEHICLE_TYPE_GO_KARTS,
|
||||
RCT1_VEHICLE_TYPE_RAPIDS_BOATS,
|
||||
RCT1_VEHICLE_TYPE_LOG_FLUME_BOATS,
|
||||
RCT1_VEHICLE_TYPE_DODGEMS,
|
||||
RCT1_VEHICLE_TYPE_SWINGING_SHIP,
|
||||
RCT1_VEHICLE_TYPE_SWINGING_INVERTER_SHIP,
|
||||
RCT1_VEHICLE_TYPE_MERRY_GO_ROUND,
|
||||
RCT1_VEHICLE_TYPE_FERRIS_WHEEL,
|
||||
RCT1_VEHICLE_TYPE_SIMULATOR_POD,
|
||||
RCT1_VEHICLE_TYPE_CINEMA_BUILDING,
|
||||
RCT1_VEHICLE_TYPE_TOPSPIN_CAR,
|
||||
RCT1_VEHICLE_TYPE_SPACE_RINGS,
|
||||
RCT1_VEHICLE_TYPE_REVERSE_FREEFALL_ROLLER_COASTER_CAR,
|
||||
RCT1_VEHICLE_TYPE_VERTICAL_ROLLER_COASTER_CARS,
|
||||
RCT1_VEHICLE_TYPE_CAT_CARS,
|
||||
RCT1_VEHICLE_TYPE_TWIST_ARMS_AND_CARS,
|
||||
RCT1_VEHICLE_TYPE_HAUNTED_HOUSE_BUILDING,
|
||||
RCT1_VEHICLE_TYPE_LOG_CARS,
|
||||
RCT1_VEHICLE_TYPE_CIRCUS_TENT,
|
||||
RCT1_VEHICLE_TYPE_GHOST_TRAIN_CARS,
|
||||
RCT1_VEHICLE_TYPE_STEEL_TWISTER_ROLLER_COASTER_TRAIN,
|
||||
RCT1_VEHICLE_TYPE_WOODEN_TWISTER_ROLLER_COASTER_TRAIN,
|
||||
RCT1_VEHICLE_TYPE_WOODEN_SIDE_FRICTION_CARS,
|
||||
RCT1_VEHICLE_TYPE_VINTAGE_CARS,
|
||||
RCT1_VEHICLE_TYPE_STEAM_TRAIN_COVERED_CARS,
|
||||
RCT1_VEHICLE_TYPE_STAND_UP_STEEL_TWISTER_ROLLER_COASTER_TRAIN,
|
||||
RCT1_VEHICLE_TYPE_FLOORLESS_STEEL_TWISTER_ROLLER_COASTER_TRAIN,
|
||||
RCT1_VEHICLE_TYPE_STEEL_MOUSE_CARS,
|
||||
RCT1_VEHICLE_TYPE_CHAIRLIFT_CARS_ALTERNATIVE,
|
||||
RCT1_VEHICLE_TYPE_SUSPENDED_MONORAIL_TRAIN,
|
||||
RCT1_VEHICLE_TYPE_HELICOPTER_CARS,
|
||||
RCT1_VEHICLE_TYPE_VIRGINIA_REEL_TUBS,
|
||||
RCT1_VEHICLE_TYPE_REVERSER_CARS,
|
||||
RCT1_VEHICLE_TYPE_GOLFERS,
|
||||
RCT1_VEHICLE_TYPE_RIVER_RIDE_BOATS,
|
||||
RCT1_VEHICLE_TYPE_FLYING_ROLLER_COASTER_TRAIN,
|
||||
RCT1_VEHICLE_TYPE_NON_LOOPING_STEEL_TWISTER_ROLLER_COASTER_TRAIN,
|
||||
RCT1_VEHICLE_TYPE_HEARTLINE_TWISTER_CARS,
|
||||
RCT1_VEHICLE_TYPE_HEARTLINE_TWISTER_CARS_REVERSED,
|
||||
RCT1_VEHICLE_TYPE_RESERVED,
|
||||
RCT1_VEHICLE_TYPE_ROTODROP_CAR,
|
||||
RCT1_VEHICLE_TYPE_FLYING_SAUCERS,
|
||||
RCT1_VEHICLE_TYPE_CROOKED_HOUSE_BUILDING,
|
||||
RCT1_VEHICLE_TYPE_BICYCLES,
|
||||
RCT1_VEHICLE_TYPE_HYPERCOASTER_TRAIN,
|
||||
RCT1_VEHICLE_TYPE_4_ACROSS_INVERTED_COASTER_TRAIN,
|
||||
RCT1_VEHICLE_TYPE_WATER_COASTER_BOATS,
|
||||
RCT1_VEHICLE_TYPE_FACEOFF_CARS,
|
||||
RCT1_VEHICLE_TYPE_JET_SKIS,
|
||||
RCT1_VEHICLE_TYPE_RAFT_BOATS,
|
||||
RCT1_VEHICLE_TYPE_AMERICAN_STYLE_STEAM_TRAIN,
|
||||
RCT1_VEHICLE_TYPE_AIR_POWERED_COASTER_TRAIN,
|
||||
RCT1_VEHICLE_TYPE_SUSPENDED_WILD_MOUSE_CARS, // Inverted Hairpin in RCT2
|
||||
RCT1_VEHICLE_TYPE_ENTERPRISE_WHEEL,
|
||||
|
||||
RCT1_VEHICLE_TYPE_COUNT
|
||||
};
|
||||
|
||||
enum
|
||||
{
|
||||
RCT1_TRACK_ELEM_BOOSTER = 100
|
||||
|
|
|
@ -95,6 +95,7 @@ namespace RCT1
|
|||
RCT12::EntryList _smallSceneryEntries;
|
||||
RCT12::EntryList _largeSceneryEntries;
|
||||
RCT12::EntryList _wallEntries;
|
||||
RCT12::EntryList _bannerEntries;
|
||||
RCT12::EntryList _pathEntries;
|
||||
RCT12::EntryList _pathAdditionEntries;
|
||||
RCT12::EntryList _sceneryGroupEntries;
|
||||
|
@ -106,10 +107,11 @@ namespace RCT1
|
|||
|
||||
// Lookup tables for converting from RCT1 hard coded types to the new dynamic object entries
|
||||
ObjectEntryIndex _rideTypeToRideEntryMap[EnumValue(RideType::Count)]{};
|
||||
ObjectEntryIndex _vehicleTypeToRideEntryMap[RCT1_VEHICLE_TYPE_COUNT]{};
|
||||
ObjectEntryIndex _vehicleTypeToRideEntryMap[EnumValue(VehicleType::Count)]{};
|
||||
ObjectEntryIndex _smallSceneryTypeToEntryMap[256]{};
|
||||
ObjectEntryIndex _largeSceneryTypeToEntryMap[256]{};
|
||||
ObjectEntryIndex _wallTypeToEntryMap[256]{};
|
||||
ObjectEntryIndex _bannerTypeToEntryMap[9]{};
|
||||
ObjectEntryIndex _pathTypeToEntryMap[24]{};
|
||||
ObjectEntryIndex _pathAdditionTypeToEntryMap[16]{};
|
||||
ObjectEntryIndex _sceneryThemeTypeToEntryMap[24]{};
|
||||
|
@ -349,6 +351,7 @@ namespace RCT1
|
|||
std::fill(std::begin(_smallSceneryTypeToEntryMap), std::end(_smallSceneryTypeToEntryMap), OBJECT_ENTRY_INDEX_NULL);
|
||||
std::fill(std::begin(_largeSceneryTypeToEntryMap), std::end(_largeSceneryTypeToEntryMap), OBJECT_ENTRY_INDEX_NULL);
|
||||
std::fill(std::begin(_wallTypeToEntryMap), std::end(_wallTypeToEntryMap), OBJECT_ENTRY_INDEX_NULL);
|
||||
std::fill(std::begin(_bannerTypeToEntryMap), std::end(_bannerTypeToEntryMap), OBJECT_ENTRY_INDEX_NULL);
|
||||
std::fill(std::begin(_pathTypeToEntryMap), std::end(_pathTypeToEntryMap), OBJECT_ENTRY_INDEX_NULL);
|
||||
std::fill(std::begin(_pathAdditionTypeToEntryMap), std::end(_pathAdditionTypeToEntryMap), OBJECT_ENTRY_INDEX_NULL);
|
||||
std::fill(std::begin(_sceneryThemeTypeToEntryMap), std::end(_sceneryThemeTypeToEntryMap), OBJECT_ENTRY_INDEX_NULL);
|
||||
|
@ -373,6 +376,7 @@ namespace RCT1
|
|||
AddAvailableEntriesFromMap();
|
||||
AddAvailableEntriesFromRides();
|
||||
AddAvailableEntriesFromSceneryGroups();
|
||||
AddAvailableEntriesFromBannerList();
|
||||
AddEntryForWater();
|
||||
}
|
||||
|
||||
|
@ -453,7 +457,8 @@ namespace RCT1
|
|||
// For some bizarre reason, RCT1 research lists contain vehicles that aren't actually researched.
|
||||
if (rideTypeInResearch[researchItem->RelatedRide])
|
||||
{
|
||||
AddEntryForVehicleType(static_cast<RideType>(researchItem->RelatedRide), researchItem->Item);
|
||||
AddEntryForVehicleType(
|
||||
static_cast<RideType>(researchItem->RelatedRide), static_cast<VehicleType>(researchItem->Item));
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
@ -559,7 +564,7 @@ namespace RCT1
|
|||
case ObjectType::SmallScenery:
|
||||
case ObjectType::LargeScenery:
|
||||
case ObjectType::Walls:
|
||||
case ObjectType::Paths:
|
||||
case ObjectType::Banners:
|
||||
case ObjectType::PathAdditions:
|
||||
{
|
||||
RCT12::EntryList* entries = GetEntryList(objectType);
|
||||
|
@ -585,6 +590,19 @@ namespace RCT1
|
|||
}
|
||||
}
|
||||
|
||||
void AddAvailableEntriesFromBannerList()
|
||||
{
|
||||
for (size_t i = 0; i < std::size(_s4.Banners); i++)
|
||||
{
|
||||
auto& banner = _s4.Banners[i];
|
||||
auto type = static_cast<BannerType>(banner.Type);
|
||||
if (type == BannerType::Null)
|
||||
continue;
|
||||
|
||||
AddEntryForBanner(type);
|
||||
}
|
||||
}
|
||||
|
||||
void AddEntryForWater()
|
||||
{
|
||||
std::string_view entryName;
|
||||
|
@ -614,17 +632,17 @@ namespace RCT1
|
|||
}
|
||||
}
|
||||
|
||||
void AddEntryForVehicleType(RideType rideType, uint8_t vehicleType)
|
||||
void AddEntryForVehicleType(RideType rideType, VehicleType vehicleType)
|
||||
{
|
||||
Guard::Assert(EnumValue(rideType) < std::size(_rideTypeToRideEntryMap));
|
||||
|
||||
if (_vehicleTypeToRideEntryMap[vehicleType] == OBJECT_ENTRY_INDEX_NULL)
|
||||
if (_vehicleTypeToRideEntryMap[EnumValue(vehicleType)] == OBJECT_ENTRY_INDEX_NULL)
|
||||
{
|
||||
auto entryName = RCT1::GetVehicleObject(vehicleType);
|
||||
if (!entryName.empty())
|
||||
{
|
||||
auto entryIndex = _rideEntries.GetOrAddEntry(entryName);
|
||||
_vehicleTypeToRideEntryMap[vehicleType] = entryIndex;
|
||||
_vehicleTypeToRideEntryMap[EnumValue(vehicleType)] = entryIndex;
|
||||
|
||||
if (rideType != RideType::Null)
|
||||
AddEntryForRideType(rideType);
|
||||
|
@ -668,6 +686,18 @@ namespace RCT1
|
|||
}
|
||||
}
|
||||
|
||||
void AddEntryForBanner(BannerType bannerType)
|
||||
{
|
||||
assert(EnumValue(bannerType) < std::size(_bannerTypeToEntryMap));
|
||||
if (_bannerTypeToEntryMap[EnumValue(bannerType)] == OBJECT_ENTRY_INDEX_NULL)
|
||||
{
|
||||
auto entryName = RCT1::GetBannerObject(bannerType);
|
||||
auto entryIndex = _bannerEntries.GetOrAddEntry(entryName);
|
||||
|
||||
_bannerTypeToEntryMap[EnumValue(bannerType)] = entryIndex;
|
||||
}
|
||||
}
|
||||
|
||||
void AddEntryForPathSurface(ObjectEntryIndex pathType)
|
||||
{
|
||||
assert(pathType < std::size(_footpathSurfaceTypeToEntryMap));
|
||||
|
@ -797,7 +827,7 @@ namespace RCT1
|
|||
|
||||
if (RCT1::RideTypeUsesVehicles(src->Type))
|
||||
{
|
||||
dst->subtype = _vehicleTypeToRideEntryMap[src->VehicleType];
|
||||
dst->subtype = _vehicleTypeToRideEntryMap[EnumValue(src->VehicleType)];
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -830,6 +860,10 @@ namespace RCT1
|
|||
dst->lifecycle_flags &= ~RIDE_LIFECYCLE_INDESTRUCTIBLE;
|
||||
dst->lifecycle_flags &= ~RIDE_LIFECYCLE_INDESTRUCTIBLE_TRACK;
|
||||
}
|
||||
if (VehicleTypeIsReversed(src->VehicleType))
|
||||
{
|
||||
dst->lifecycle_flags |= RIDE_LIFECYCLE_REVERSED_TRAINS;
|
||||
}
|
||||
|
||||
// Station
|
||||
if (src->OverallView.IsNull())
|
||||
|
@ -1210,9 +1244,8 @@ namespace RCT1
|
|||
void SetVehicleColours(::Vehicle* dst, const RCT1::Vehicle* src)
|
||||
{
|
||||
const auto& srcRide = _s4.Rides[src->Ride];
|
||||
uint8_t vehicleTypeIndex = srcRide.VehicleType;
|
||||
RCT1::VehicleColourSchemeCopyDescriptor colourSchemeCopyDescriptor = RCT1::GetColourSchemeCopyDescriptor(
|
||||
vehicleTypeIndex);
|
||||
srcRide.VehicleType);
|
||||
|
||||
// RCT1 had no third colour
|
||||
if (colourSchemeCopyDescriptor.colour1 == COPY_COLOUR_1)
|
||||
|
@ -1475,19 +1508,7 @@ namespace RCT1
|
|||
AppendRequiredObjects(result, ObjectType::Paths, _pathEntries);
|
||||
AppendRequiredObjects(result, ObjectType::PathAdditions, _pathAdditionEntries);
|
||||
AppendRequiredObjects(result, ObjectType::SceneryGroup, _sceneryGroupEntries);
|
||||
AppendRequiredObjects(
|
||||
result, ObjectType::Banners,
|
||||
std::vector<std::string>({
|
||||
"rct2.footpath_banner.bn1",
|
||||
"rct2.footpath_banner.bn2",
|
||||
"rct2.footpath_banner.bn3",
|
||||
"rct2.footpath_banner.bn4",
|
||||
"rct2.footpath_banner.bn5",
|
||||
"rct2.footpath_banner.bn6",
|
||||
"rct2.footpath_banner.bn7",
|
||||
"rct2.footpath_banner.bn8",
|
||||
"rct2.footpath_banner.bn9",
|
||||
}));
|
||||
AppendRequiredObjects(result, ObjectType::Banners, _bannerEntries);
|
||||
AppendRequiredObjects(result, ObjectType::ParkEntrance, std::vector<std::string>({ "rct2.park_entrance.pkent1" }));
|
||||
AppendRequiredObjects(result, ObjectType::Water, _waterEntry);
|
||||
AppendRequiredObjects(result, ObjectType::TerrainSurface, _terrainSurfaceEntries);
|
||||
|
@ -2375,10 +2396,6 @@ namespace RCT1
|
|||
case RCT1_WALL_TYPE_WOODEN_PANEL_FENCE_WITH_SNOW:
|
||||
*colourA = COLOUR_DARK_BROWN;
|
||||
break;
|
||||
case RCT1_WALL_TYPE_WOODEN_PANEL_FENCE_WITH_GATE:
|
||||
*colourB = *colourA;
|
||||
*colourA = COLOUR_DARK_BROWN;
|
||||
break;
|
||||
case RCT1_WALL_TYPE_GLASS_SMOOTH:
|
||||
case RCT1_WALL_TYPE_GLASS_PANELS:
|
||||
*colourB = COLOUR_WHITE;
|
||||
|
@ -2400,7 +2417,12 @@ namespace RCT1
|
|||
|
||||
*dst = {};
|
||||
dst->id = id;
|
||||
dst->type = RCTEntryIndexToOpenRCT2EntryIndex(src->Type);
|
||||
auto type = RCTEntryIndexToOpenRCT2EntryIndex(src->Type);
|
||||
if (type < std::size(_bannerTypeToEntryMap))
|
||||
type = _bannerTypeToEntryMap[type];
|
||||
else
|
||||
type = OBJECT_ENTRY_INDEX_NULL;
|
||||
dst->type = type;
|
||||
|
||||
dst->flags = 0;
|
||||
if (src->Flags & BANNER_FLAG_NO_ENTRY)
|
||||
|
@ -2453,6 +2475,8 @@ namespace RCT1
|
|||
return &_largeSceneryEntries;
|
||||
case ObjectType::Walls:
|
||||
return &_wallEntries;
|
||||
case ObjectType::Banners:
|
||||
return &_bannerEntries;
|
||||
case ObjectType::Paths:
|
||||
return &_pathEntries;
|
||||
case ObjectType::PathAdditions:
|
||||
|
@ -2717,7 +2741,7 @@ namespace RCT1
|
|||
|
||||
if (researchList[i].Type == RCT1_RESEARCH_TYPE_RIDE)
|
||||
{
|
||||
return RCT1::GetRideType(static_cast<RideType>(researchList[i].Item), 0);
|
||||
return RCT1::GetRideType(static_cast<RideType>(researchList[i].Item), static_cast<VehicleType>(0));
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -2907,6 +2931,11 @@ namespace RCT1
|
|||
dst->SetFlag(VehicleFlags::Crashed);
|
||||
}
|
||||
dst->BlockBrakeSpeed = kRCT2DefaultBlockBrakeSpeed;
|
||||
|
||||
if (VehicleTypeIsReversed(rct1Ride.VehicleType))
|
||||
{
|
||||
dst->SetFlag(VehicleFlags::CarIsReversed);
|
||||
}
|
||||
}
|
||||
|
||||
template<> void S4Importer::ImportEntity<Guest>(const RCT12EntityBase& srcBase)
|
||||
|
|
|
@ -147,7 +147,7 @@ namespace RCT1
|
|||
}
|
||||
assert(!vehicleObject.empty());
|
||||
td->vehicle_object = ObjectEntryDescriptor(vehicleObject);
|
||||
td->vehicle_type = td4Base.VehicleType;
|
||||
td->vehicle_type = EnumValue(td4Base.VehicleType);
|
||||
|
||||
td->flags = td4Base.Flags;
|
||||
td->colour_scheme = td4Base.VersionAndColourScheme & 0x3;
|
||||
|
|
|
@ -163,11 +163,11 @@ namespace RCT1
|
|||
return terrainEdge < std::size(map) ? map[terrainEdge] : map[0];
|
||||
}
|
||||
|
||||
uint8_t GetRideType(RideType rideType, uint8_t vehicleType)
|
||||
uint8_t GetRideType(RideType rideType, VehicleType vehicleType)
|
||||
{
|
||||
if (rideType == RideType::SteelTwisterRollerCoaster && vehicleType == RCT1_VEHICLE_TYPE_NON_LOOPING_STEEL_TWISTER_ROLLER_COASTER_TRAIN)
|
||||
if (rideType == RideType::SteelTwisterRollerCoaster && vehicleType == VehicleType::NonLoopingSteelTwisterRollerCoasterTrain)
|
||||
return RIDE_TYPE_HYPER_TWISTER;
|
||||
if (rideType == RideType::SteelCorkscrewRollerCoaster && vehicleType == RCT1_VEHICLE_TYPE_HYPERCOASTER_TRAIN)
|
||||
if (rideType == RideType::SteelCorkscrewRollerCoaster && vehicleType == VehicleType::HypercoasterTrain)
|
||||
return RIDE_TYPE_HYPERCOASTER;
|
||||
|
||||
static uint8_t map[] =
|
||||
|
@ -265,103 +265,103 @@ namespace RCT1
|
|||
return map[index];
|
||||
}
|
||||
|
||||
VehicleColourSchemeCopyDescriptor GetColourSchemeCopyDescriptor(uint8_t vehicleType)
|
||||
VehicleColourSchemeCopyDescriptor GetColourSchemeCopyDescriptor(VehicleType vehicleType)
|
||||
{
|
||||
static VehicleColourSchemeCopyDescriptor map[89] =
|
||||
{
|
||||
{ COPY_COLOUR_1, COPY_COLOUR_2, COLOUR_BLACK }, // RCT1_VEHICLE_TYPE_STEEL_ROLLER_COASTER_TRAIN = 0,
|
||||
{ COPY_COLOUR_1, COPY_COLOUR_2, COLOUR_BLACK }, // RCT1_VEHICLE_TYPE_STEEL_ROLLER_COASTER_TRAIN_BACKWARDS,
|
||||
{ COPY_COLOUR_1, COPY_COLOUR_2, COLOUR_BLACK }, // RCT1_VEHICLE_TYPE_WOODEN_ROLLER_COASTER_TRAIN,
|
||||
{ COPY_COLOUR_1, COPY_COLOUR_2, COPY_COLOUR_2 }, // RCT1_VEHICLE_TYPE_INVERTED_COASTER_TRAIN, // Not in RCT2
|
||||
{ COPY_COLOUR_1, COPY_COLOUR_2, COPY_COLOUR_2 }, // RCT1_VEHICLE_TYPE_SUSPENDED_SWINGING_CARS,
|
||||
{ COPY_COLOUR_1, COPY_COLOUR_2, COLOUR_BLACK }, // RCT1_VEHICLE_TYPE_LADYBIRD_CARS,
|
||||
{ COPY_COLOUR_1, COPY_COLOUR_1, COPY_COLOUR_2 }, // RCT1_VEHICLE_TYPE_STANDUP_ROLLER_COASTER_CARS,
|
||||
{ COPY_COLOUR_1, COPY_COLOUR_2, COLOUR_BLACK }, // RCT1_VEHICLE_TYPE_SPINNING_CARS,
|
||||
{ COPY_COLOUR_1, COPY_COLOUR_2, COLOUR_BLACK }, // RCT1_VEHICLE_TYPE_SINGLE_PERSON_SWINGING_CHAIRS,
|
||||
{ COPY_COLOUR_1, COPY_COLOUR_2, COLOUR_BLACK }, // RCT1_VEHICLE_TYPE_SWANS_PEDAL_BOATS,
|
||||
{ COPY_COLOUR_1, COPY_COLOUR_2, COLOUR_BLACK }, // RCT1_VEHICLE_TYPE_STEEL_ROLLER_COASTER_TRAIN = 0,
|
||||
{ COPY_COLOUR_1, COPY_COLOUR_2, COLOUR_BLACK }, // RCT1_VEHICLE_TYPE_STEEL_ROLLER_COASTER_TRAIN_BACKWARDS,
|
||||
{ COPY_COLOUR_1, COPY_COLOUR_2, COLOUR_BLACK }, // RCT1_VEHICLE_TYPE_WOODEN_ROLLER_COASTER_TRAIN,
|
||||
{ COPY_COLOUR_1, COPY_COLOUR_2, COPY_COLOUR_2 }, // RCT1_VEHICLE_TYPE_INVERTED_COASTER_TRAIN, // Not in RCT2
|
||||
{ COPY_COLOUR_1, COPY_COLOUR_2, COPY_COLOUR_2 }, // RCT1_VEHICLE_TYPE_SUSPENDED_SWINGING_CARS,
|
||||
{ COPY_COLOUR_1, COPY_COLOUR_2, COLOUR_BLACK }, // RCT1_VEHICLE_TYPE_LADYBIRD_CARS,
|
||||
{ COPY_COLOUR_1, COPY_COLOUR_1, COPY_COLOUR_2 }, // RCT1_VEHICLE_TYPE_STANDUP_ROLLER_COASTER_CARS,
|
||||
{ COPY_COLOUR_1, COPY_COLOUR_2, COLOUR_BLACK }, // RCT1_VEHICLE_TYPE_SPINNING_CARS,
|
||||
{ COPY_COLOUR_1, COPY_COLOUR_2, COLOUR_BLACK }, // RCT1_VEHICLE_TYPE_SINGLE_PERSON_SWINGING_CHAIRS,
|
||||
{ COPY_COLOUR_1, COPY_COLOUR_2, COLOUR_BLACK }, // RCT1_VEHICLE_TYPE_SWANS_PEDAL_BOATS,
|
||||
{ COPY_COLOUR_1, COPY_COLOUR_2, COLOUR_DARK_BLUE }, // RCT1_VEHICLE_TYPE_LARGE_MONORAIL_TRAIN,
|
||||
{ COPY_COLOUR_1, COPY_COLOUR_2, COLOUR_BLACK }, // RCT1_VEHICLE_TYPE_CANOES,
|
||||
{ COPY_COLOUR_1, COPY_COLOUR_2, COLOUR_BLACK }, // RCT1_VEHICLE_TYPE_ROWING_BOATS,
|
||||
{ COPY_COLOUR_1, COPY_COLOUR_2, COLOUR_YELLOW }, // RCT1_VEHICLE_TYPE_STEAM_TRAIN,
|
||||
{ COPY_COLOUR_1, COPY_COLOUR_2, COPY_COLOUR_2 }, // RCT1_VEHICLE_TYPE_WOODEN_MOUSE_CARS,
|
||||
{ COPY_COLOUR_1, COPY_COLOUR_2, COLOUR_BLACK }, // RCT1_VEHICLE_TYPE_BUMPER_BOATS,
|
||||
{ COPY_COLOUR_1, COPY_COLOUR_2, COLOUR_BLACK }, // RCT1_VEHICLE_TYPE_WOODEN_ROLLER_COASTER_TRAIN_BACKWARDS,
|
||||
{ COPY_COLOUR_1, COPY_COLOUR_2, COLOUR_BLACK }, // RCT1_VEHICLE_TYPE_ROCKET_CARS,
|
||||
{ COPY_COLOUR_1, COPY_COLOUR_2, COLOUR_BLACK }, // RCT1_VEHICLE_TYPE_HORSES, // Steeplechase
|
||||
{ COPY_COLOUR_1, COPY_COLOUR_2, COLOUR_BLACK }, // RCT1_VEHICLE_TYPE_SPORTSCARS,
|
||||
{ COPY_COLOUR_1, COPY_COLOUR_2, COLOUR_BLACK }, // RCT1_VEHICLE_TYPE_LYING_DOWN_SWINGING_CARS, // Inverted single-rail
|
||||
{ COPY_COLOUR_1, COPY_COLOUR_2, COLOUR_BLACK }, // RCT1_VEHICLE_TYPE_WOODEN_MINE_CARS,
|
||||
{ COPY_COLOUR_1, COPY_COLOUR_2, COPY_COLOUR_2 }, // RCT1_VEHICLE_TYPE_SUSPENDED_SWINGING_AIRPLANE_CARS,
|
||||
{ COPY_COLOUR_1, COPY_COLOUR_2, COLOUR_BLACK }, // RCT1_VEHICLE_TYPE_SMALL_MONORAIL_CARS,
|
||||
{ COPY_COLOUR_1, COPY_COLOUR_2, COLOUR_BLACK }, // RCT1_VEHICLE_TYPE_WATER_TRICYCLES,
|
||||
{ COPY_COLOUR_1, COPY_COLOUR_2, COLOUR_BLACK }, // RCT1_VEHICLE_TYPE_LAUNCHED_FREEFALL_CAR,
|
||||
{ COPY_COLOUR_1, COPY_COLOUR_2, COLOUR_BLACK }, // RCT1_VEHICLE_TYPE_BOBSLEIGH_CARS,
|
||||
{ COPY_COLOUR_1, COPY_COLOUR_2, COLOUR_BLACK }, // RCT1_VEHICLE_TYPE_DINGHIES,
|
||||
{ COPY_COLOUR_1, COPY_COLOUR_2, COLOUR_BLACK }, // RCT1_VEHICLE_TYPE_ROTATING_CABIN,
|
||||
{ COPY_COLOUR_1, COPY_COLOUR_2, COLOUR_BLACK }, // RCT1_VEHICLE_TYPE_MINE_TRAIN,
|
||||
{ COPY_COLOUR_1, COPY_COLOUR_2, COLOUR_BLACK }, // RCT1_VEHICLE_TYPE_CHAIRLIFT_CARS,
|
||||
{ COPY_COLOUR_1, COPY_COLOUR_2, COLOUR_BLACK }, // RCT1_VEHICLE_TYPE_CORKSCREW_ROLLER_COASTER_TRAIN,
|
||||
{ COPY_COLOUR_1, COPY_COLOUR_2, COLOUR_BLACK }, // RCT1_VEHICLE_TYPE_MOTORBIKES,
|
||||
{ COPY_COLOUR_1, COPY_COLOUR_2, COLOUR_BLACK }, // RCT1_VEHICLE_TYPE_RACING_CARS,
|
||||
{ COPY_COLOUR_1, COPY_COLOUR_2, COLOUR_BLACK }, // RCT1_VEHICLE_TYPE_TRUCKS,
|
||||
{ COPY_COLOUR_1, COPY_COLOUR_2, COLOUR_BLACK }, // RCT1_VEHICLE_TYPE_GO_KARTS,
|
||||
{ COPY_COLOUR_1, COLOUR_BLACK, COLOUR_BLACK }, // RCT1_VEHICLE_TYPE_RAPIDS_BOATS,
|
||||
{ COPY_COLOUR_1, COPY_COLOUR_2, COLOUR_BLACK }, // RCT1_VEHICLE_TYPE_LOG_FLUME_BOATS,
|
||||
{ COPY_COLOUR_1, COPY_COLOUR_2, COLOUR_BLACK }, // RCT1_VEHICLE_TYPE_DODGEMS,
|
||||
{ COPY_COLOUR_1, COPY_COLOUR_2, COLOUR_BLACK }, // RCT1_VEHICLE_TYPE_SWINGING_SHIP,
|
||||
{ COPY_COLOUR_1, COPY_COLOUR_2, COLOUR_BLACK }, // RCT1_VEHICLE_TYPE_SWINGING_INVERTER_SHIP,
|
||||
{ COPY_COLOUR_1, COPY_COLOUR_2, COLOUR_BLACK }, // RCT1_VEHICLE_TYPE_MERRY_GO_ROUND,
|
||||
{ COPY_COLOUR_1, COPY_COLOUR_2, COLOUR_BLACK }, // RCT1_VEHICLE_TYPE_FERRIS_WHEEL,
|
||||
{ COPY_COLOUR_1, COPY_COLOUR_2, COLOUR_BLACK }, // RCT1_VEHICLE_TYPE_SIMULATOR_POD,
|
||||
{ COPY_COLOUR_1, COPY_COLOUR_2, COLOUR_BLACK }, // RCT1_VEHICLE_TYPE_CINEMA_BUILDING,
|
||||
{ COPY_COLOUR_1, COPY_COLOUR_2, COLOUR_BLACK }, // RCT1_VEHICLE_TYPE_TOPSPIN_CAR,
|
||||
{ COPY_COLOUR_1, COPY_COLOUR_2, COLOUR_BLACK }, // RCT1_VEHICLE_TYPE_SPACE_RINGS,
|
||||
{ COPY_COLOUR_1, COPY_COLOUR_2, COPY_COLOUR_1 }, // RCT1_VEHICLE_TYPE_REVERSE_FREEFALL_ROLLER_COASTER_CAR,
|
||||
{ COPY_COLOUR_1, COPY_COLOUR_2, COPY_COLOUR_2 }, // RCT1_VEHICLE_TYPE_VERTICAL_ROLLER_COASTER_CARS,
|
||||
{ COPY_COLOUR_1, COPY_COLOUR_2, COLOUR_BLACK }, // RCT1_VEHICLE_TYPE_CAT_CARS,
|
||||
{ COPY_COLOUR_1, COPY_COLOUR_2, COLOUR_BLACK }, // RCT1_VEHICLE_TYPE_TWIST_ARMS_AND_CARS,
|
||||
{ COPY_COLOUR_1, COPY_COLOUR_2, COLOUR_BLACK }, // RCT1_VEHICLE_TYPE_HAUNTED_HOUSE_BUILDING,
|
||||
{ COPY_COLOUR_1, COPY_COLOUR_2, COLOUR_BLACK }, // RCT1_VEHICLE_TYPE_LOG_CARS,
|
||||
{ COPY_COLOUR_1, COPY_COLOUR_2, COLOUR_BLACK }, // RCT1_VEHICLE_TYPE_CIRCUS_TENT,
|
||||
{ COPY_COLOUR_1, COPY_COLOUR_2, COLOUR_BLACK }, // RCT1_VEHICLE_TYPE_GHOST_TRAIN_CARS,
|
||||
{ COPY_COLOUR_1, COPY_COLOUR_1, COPY_COLOUR_2 }, // RCT1_VEHICLE_TYPE_STEEL_TWISTER_ROLLER_COASTER_TRAIN,
|
||||
{ COPY_COLOUR_1, COPY_COLOUR_2, COLOUR_BLACK }, // RCT1_VEHICLE_TYPE_WOODEN_TWISTER_ROLLER_COASTER_TRAIN,
|
||||
{ COPY_COLOUR_1, COPY_COLOUR_2, COLOUR_BLACK }, // RCT1_VEHICLE_TYPE_WOODEN_SIDE_FRICTION_CARS,
|
||||
{ COPY_COLOUR_1, COPY_COLOUR_1, COLOUR_BLACK }, // RCT1_VEHICLE_TYPE_VINTAGE_CARS,
|
||||
{ COPY_COLOUR_1, COPY_COLOUR_2, COLOUR_YELLOW }, // RCT1_VEHICLE_TYPE_STEAM_TRAIN_COVERED_CARS,
|
||||
{ COPY_COLOUR_1, COLOUR_BLACK, COPY_COLOUR_2 }, // RCT1_VEHICLE_TYPE_STAND_UP_STEEL_TWISTER_ROLLER_COASTER_TRAIN,
|
||||
{ COPY_COLOUR_1, COLOUR_BLACK, COPY_COLOUR_2 }, // RCT1_VEHICLE_TYPE_FLOORLESS_STEEL_TWISTER_ROLLER_COASTER_TRAIN,
|
||||
{ COPY_COLOUR_1, COPY_COLOUR_2, COLOUR_BLACK }, // RCT1_VEHICLE_TYPE_STEEL_MOUSE_CARS,
|
||||
{ COPY_COLOUR_1, COPY_COLOUR_2, COLOUR_BLACK }, // RCT1_VEHICLE_TYPE_CHAIRLIFT_CARS_ALTERNATIVE,
|
||||
{ COPY_COLOUR_1, COPY_COLOUR_2, COLOUR_BLACK }, // RCT1_VEHICLE_TYPE_SUSPENDED_MONORAIL_TRAIN,
|
||||
{ COPY_COLOUR_1, COPY_COLOUR_2, COLOUR_BLACK }, // RCT1_VEHICLE_TYPE_HELICOPTER_CARS,
|
||||
{ COPY_COLOUR_1, COPY_COLOUR_2, COLOUR_BLACK }, // RCT1_VEHICLE_TYPE_VIRGINIA_REEL_TUBS,
|
||||
{ COPY_COLOUR_1, COPY_COLOUR_2, COLOUR_BLACK }, // RCT1_VEHICLE_TYPE_REVERSER_CARS,
|
||||
{ COPY_COLOUR_1, COPY_COLOUR_2, COLOUR_BLACK }, // RCT1_VEHICLE_TYPE_GOLFERS,
|
||||
{ COPY_COLOUR_1, COPY_COLOUR_2, COLOUR_BLACK }, // RCT1_VEHICLE_TYPE_RIVER_RIDE_BOATS,
|
||||
{ COPY_COLOUR_1, COLOUR_BLACK, COPY_COLOUR_2 }, // RCT1_VEHICLE_TYPE_FLYING_ROLLER_COASTER_TRAIN,
|
||||
{ COPY_COLOUR_1, COPY_COLOUR_2, COPY_COLOUR_1 }, // RCT1_VEHICLE_TYPE_NON_LOOPING_STEEL_TWISTER_ROLLER_COASTER_TRAIN,
|
||||
{ COPY_COLOUR_1, COPY_COLOUR_2, COLOUR_BLACK }, // RCT1_VEHICLE_TYPE_HEARTLINE_TWISTER_CARS,
|
||||
{ COPY_COLOUR_1, COPY_COLOUR_2, COLOUR_BLACK }, // RCT1_VEHICLE_TYPE_HEARTLINE_TWISTER_CARS_REVERSED,
|
||||
{ COPY_COLOUR_1, COPY_COLOUR_2, COLOUR_BLACK }, // RCT1_VEHICLE_TYPE_RESERVED,
|
||||
{ COPY_COLOUR_1, COPY_COLOUR_2, COLOUR_BLACK }, // RCT1_VEHICLE_TYPE_ROTODROP_CAR,
|
||||
{ COPY_COLOUR_1, COPY_COLOUR_2, COLOUR_BLACK }, // RCT1_VEHICLE_TYPE_FLYING_SAUCERS,
|
||||
{ COPY_COLOUR_1, COPY_COLOUR_2, COLOUR_BLACK }, // RCT1_VEHICLE_TYPE_CROOKED_HOUSE_BUILDING,
|
||||
{ COPY_COLOUR_1, COPY_COLOUR_2, COLOUR_BLACK }, // RCT1_VEHICLE_TYPE_BICYCLES,
|
||||
{ COPY_COLOUR_1, COPY_COLOUR_2, COLOUR_BLACK }, // RCT1_VEHICLE_TYPE_HYPERCOASTER_TRAIN,
|
||||
{ COPY_COLOUR_1, COPY_COLOUR_2, COLOUR_BLACK }, // RCT1_VEHICLE_TYPE_4_ACROSS_INVERTED_COASTER_TRAIN,
|
||||
{ COPY_COLOUR_1, COPY_COLOUR_2, COLOUR_BLACK }, // RCT1_VEHICLE_TYPE_WATER_COASTER_BOATS,
|
||||
{ COPY_COLOUR_1, COPY_COLOUR_2, COPY_COLOUR_2 }, // RCT1_VEHICLE_TYPE_FACEOFF_CARS,
|
||||
{ COPY_COLOUR_1, COPY_COLOUR_2, COLOUR_BLACK }, // RCT1_VEHICLE_TYPE_JET_SKIS,
|
||||
{ COPY_COLOUR_1, COPY_COLOUR_2, COPY_COLOUR_2 }, // RCT1_VEHICLE_TYPE_RAFT_BOATS,
|
||||
{ COPY_COLOUR_1, COPY_COLOUR_2, COLOUR_YELLOW }, // RCT1_VEHICLE_TYPE_AMERICAN_STYLE_STEAM_TRAIN,
|
||||
{ COPY_COLOUR_1, COPY_COLOUR_2, COLOUR_BLACK }, // RCT1_VEHICLE_TYPE_AIR_POWERED_COASTER_TRAIN,
|
||||
{ COPY_COLOUR_1, COPY_COLOUR_2, COLOUR_BLACK }, // RCT1_VEHICLE_TYPE_SUSPENDED_WILD_MOUSE_CARS, // Inverted Hairpin in RCT2
|
||||
{ COPY_COLOUR_1, COPY_COLOUR_2, COLOUR_BLACK }, // RCT1_VEHICLE_TYPE_ENTERPRISE_WHEEL
|
||||
{ COPY_COLOUR_1, COPY_COLOUR_2, COLOUR_BLACK }, // RCT1_VEHICLE_TYPE_CANOES,
|
||||
{ COPY_COLOUR_1, COPY_COLOUR_2, COLOUR_BLACK }, // RCT1_VEHICLE_TYPE_ROWING_BOATS,
|
||||
{ COPY_COLOUR_1, COPY_COLOUR_2, COLOUR_YELLOW }, // RCT1_VEHICLE_TYPE_STEAM_TRAIN,
|
||||
{ COPY_COLOUR_1, COPY_COLOUR_2, COPY_COLOUR_2 }, // RCT1_VEHICLE_TYPE_WOODEN_MOUSE_CARS,
|
||||
{ COPY_COLOUR_1, COPY_COLOUR_2, COLOUR_BLACK }, // RCT1_VEHICLE_TYPE_BUMPER_BOATS,
|
||||
{ COPY_COLOUR_1, COPY_COLOUR_2, COLOUR_BLACK }, // RCT1_VEHICLE_TYPE_WOODEN_ROLLER_COASTER_TRAIN_BACKWARDS,
|
||||
{ COPY_COLOUR_1, COPY_COLOUR_2, COLOUR_BLACK }, // RCT1_VEHICLE_TYPE_ROCKET_CARS,
|
||||
{ COPY_COLOUR_1, COPY_COLOUR_2, COLOUR_BLACK }, // RCT1_VEHICLE_TYPE_HORSES, // Steeplechase
|
||||
{ COPY_COLOUR_1, COPY_COLOUR_2, COLOUR_BLACK }, // RCT1_VEHICLE_TYPE_SPORTSCARS,
|
||||
{ COPY_COLOUR_1, COPY_COLOUR_2, COLOUR_BLACK }, // RCT1_VEHICLE_TYPE_LYING_DOWN_SWINGING_CARS, // Inverted single-rail
|
||||
{ COPY_COLOUR_1, COPY_COLOUR_2, COLOUR_BLACK }, // RCT1_VEHICLE_TYPE_WOODEN_MINE_CARS,
|
||||
{ COPY_COLOUR_1, COPY_COLOUR_2, COPY_COLOUR_2 }, // RCT1_VEHICLE_TYPE_SUSPENDED_SWINGING_AIRPLANE_CARS,
|
||||
{ COPY_COLOUR_1, COPY_COLOUR_2, COLOUR_BLACK }, // RCT1_VEHICLE_TYPE_SMALL_MONORAIL_CARS,
|
||||
{ COPY_COLOUR_1, COPY_COLOUR_2, COLOUR_BLACK }, // RCT1_VEHICLE_TYPE_WATER_TRICYCLES,
|
||||
{ COPY_COLOUR_1, COPY_COLOUR_2, COLOUR_BLACK }, // RCT1_VEHICLE_TYPE_LAUNCHED_FREEFALL_CAR,
|
||||
{ COPY_COLOUR_1, COPY_COLOUR_2, COLOUR_BLACK }, // RCT1_VEHICLE_TYPE_BOBSLEIGH_CARS,
|
||||
{ COPY_COLOUR_1, COPY_COLOUR_2, COLOUR_BLACK }, // RCT1_VEHICLE_TYPE_DINGHIES,
|
||||
{ COPY_COLOUR_1, COPY_COLOUR_2, COLOUR_BLACK }, // RCT1_VEHICLE_TYPE_ROTATING_CABIN,
|
||||
{ COPY_COLOUR_1, COPY_COLOUR_2, COLOUR_BLACK }, // RCT1_VEHICLE_TYPE_MINE_TRAIN,
|
||||
{ COPY_COLOUR_1, COPY_COLOUR_2, COLOUR_BLACK }, // RCT1_VEHICLE_TYPE_CHAIRLIFT_CARS,
|
||||
{ COPY_COLOUR_1, COPY_COLOUR_2, COLOUR_BLACK }, // RCT1_VEHICLE_TYPE_CORKSCREW_ROLLER_COASTER_TRAIN,
|
||||
{ COPY_COLOUR_1, COPY_COLOUR_2, COLOUR_BLACK }, // RCT1_VEHICLE_TYPE_MOTORBIKES,
|
||||
{ COPY_COLOUR_1, COPY_COLOUR_2, COLOUR_BLACK }, // RCT1_VEHICLE_TYPE_RACING_CARS,
|
||||
{ COPY_COLOUR_1, COPY_COLOUR_2, COLOUR_BLACK }, // RCT1_VEHICLE_TYPE_TRUCKS,
|
||||
{ COPY_COLOUR_1, COPY_COLOUR_2, COLOUR_BLACK }, // RCT1_VEHICLE_TYPE_GO_KARTS,
|
||||
{ COPY_COLOUR_1, COLOUR_BLACK, COLOUR_BLACK }, // RCT1_VEHICLE_TYPE_RAPIDS_BOATS,
|
||||
{ COPY_COLOUR_1, COLOUR_BLACK, COLOUR_BLACK }, // RCT1_VEHICLE_TYPE_LOG_FLUME_BOATS,
|
||||
{ COPY_COLOUR_1, COPY_COLOUR_2, COLOUR_BLACK }, // RCT1_VEHICLE_TYPE_DODGEMS,
|
||||
{ COPY_COLOUR_1, COPY_COLOUR_2, COLOUR_BLACK }, // RCT1_VEHICLE_TYPE_SWINGING_SHIP,
|
||||
{ COPY_COLOUR_1, COPY_COLOUR_2, COLOUR_BLACK }, // RCT1_VEHICLE_TYPE_SWINGING_INVERTER_SHIP,
|
||||
{ COPY_COLOUR_1, COPY_COLOUR_2, COLOUR_BLACK }, // RCT1_VEHICLE_TYPE_MERRY_GO_ROUND,
|
||||
{ COPY_COLOUR_1, COPY_COLOUR_2, COLOUR_BLACK }, // RCT1_VEHICLE_TYPE_FERRIS_WHEEL,
|
||||
{ COPY_COLOUR_1, COPY_COLOUR_2, COLOUR_BLACK }, // RCT1_VEHICLE_TYPE_SIMULATOR_POD,
|
||||
{ COPY_COLOUR_1, COPY_COLOUR_2, COLOUR_BLACK }, // RCT1_VEHICLE_TYPE_CINEMA_BUILDING,
|
||||
{ COPY_COLOUR_1, COPY_COLOUR_2, COLOUR_BLACK }, // RCT1_VEHICLE_TYPE_TOPSPIN_CAR,
|
||||
{ COPY_COLOUR_1, COPY_COLOUR_2, COLOUR_BLACK }, // RCT1_VEHICLE_TYPE_SPACE_RINGS,
|
||||
{ COPY_COLOUR_1, COPY_COLOUR_2, COPY_COLOUR_1 }, // RCT1_VEHICLE_TYPE_REVERSE_FREEFALL_ROLLER_COASTER_CAR,
|
||||
{ COPY_COLOUR_1, COPY_COLOUR_2, COPY_COLOUR_1 }, // RCT1_VEHICLE_TYPE_VERTICAL_ROLLER_COASTER_CARS,
|
||||
{ COPY_COLOUR_1, COPY_COLOUR_2, COLOUR_BLACK }, // RCT1_VEHICLE_TYPE_CAT_CARS,
|
||||
{ COPY_COLOUR_1, COPY_COLOUR_2, COLOUR_BLACK }, // RCT1_VEHICLE_TYPE_TWIST_ARMS_AND_CARS,
|
||||
{ COPY_COLOUR_1, COPY_COLOUR_2, COLOUR_BLACK }, // RCT1_VEHICLE_TYPE_HAUNTED_HOUSE_BUILDING,
|
||||
{ COPY_COLOUR_1, COPY_COLOUR_2, COLOUR_BLACK }, // RCT1_VEHICLE_TYPE_LOG_CARS,
|
||||
{ COPY_COLOUR_1, COPY_COLOUR_2, COLOUR_BLACK }, // RCT1_VEHICLE_TYPE_CIRCUS_TENT,
|
||||
{ COPY_COLOUR_1, COPY_COLOUR_2, COLOUR_BLACK }, // RCT1_VEHICLE_TYPE_GHOST_TRAIN_CARS,
|
||||
{ COPY_COLOUR_1, COPY_COLOUR_2, COPY_COLOUR_2 }, // RCT1_VEHICLE_TYPE_STEEL_TWISTER_ROLLER_COASTER_TRAIN,
|
||||
{ COPY_COLOUR_1, COPY_COLOUR_2, COLOUR_BLACK }, // RCT1_VEHICLE_TYPE_WOODEN_TWISTER_ROLLER_COASTER_TRAIN,
|
||||
{ COPY_COLOUR_1, COPY_COLOUR_2, COLOUR_BLACK }, // RCT1_VEHICLE_TYPE_WOODEN_SIDE_FRICTION_CARS,
|
||||
{ COPY_COLOUR_1, COPY_COLOUR_1, COLOUR_BLACK }, // RCT1_VEHICLE_TYPE_VINTAGE_CARS,
|
||||
{ COPY_COLOUR_1, COPY_COLOUR_2, COLOUR_YELLOW }, // RCT1_VEHICLE_TYPE_STEAM_TRAIN_COVERED_CARS,
|
||||
{ COPY_COLOUR_1, COPY_COLOUR_2, COPY_COLOUR_2 }, // RCT1_VEHICLE_TYPE_STAND_UP_STEEL_TWISTER_ROLLER_COASTER_TRAIN,
|
||||
{ COPY_COLOUR_1, COPY_COLOUR_2, COPY_COLOUR_2 }, // RCT1_VEHICLE_TYPE_FLOORLESS_STEEL_TWISTER_ROLLER_COASTER_TRAIN,
|
||||
{ COPY_COLOUR_1, COPY_COLOUR_2, COLOUR_BLACK }, // RCT1_VEHICLE_TYPE_STEEL_MOUSE_CARS,
|
||||
{ COPY_COLOUR_1, COPY_COLOUR_2, COLOUR_BLACK }, // RCT1_VEHICLE_TYPE_CHAIRLIFT_CARS_ALTERNATIVE,
|
||||
{ COPY_COLOUR_1, COPY_COLOUR_2, COLOUR_BLACK }, // RCT1_VEHICLE_TYPE_SUSPENDED_MONORAIL_TRAIN,
|
||||
{ COPY_COLOUR_1, COPY_COLOUR_2, COLOUR_BLACK }, // RCT1_VEHICLE_TYPE_HELICOPTER_CARS,
|
||||
{ COPY_COLOUR_1, COPY_COLOUR_2, COLOUR_BLACK }, // RCT1_VEHICLE_TYPE_VIRGINIA_REEL_TUBS,
|
||||
{ COPY_COLOUR_1, COPY_COLOUR_2, COLOUR_BLACK }, // RCT1_VEHICLE_TYPE_REVERSER_CARS,
|
||||
{ COPY_COLOUR_1, COPY_COLOUR_2, COLOUR_BLACK }, // RCT1_VEHICLE_TYPE_GOLFERS,
|
||||
{ COPY_COLOUR_1, COPY_COLOUR_2, COLOUR_BLACK }, // RCT1_VEHICLE_TYPE_RIVER_RIDE_BOATS,
|
||||
{ COPY_COLOUR_1, COLOUR_BLACK, COPY_COLOUR_2 }, // RCT1_VEHICLE_TYPE_FLYING_ROLLER_COASTER_TRAIN,
|
||||
{ COPY_COLOUR_1, COPY_COLOUR_2, COPY_COLOUR_1 }, // RCT1_VEHICLE_TYPE_NON_LOOPING_STEEL_TWISTER_ROLLER_COASTER_TRAIN,
|
||||
{ COPY_COLOUR_1, COPY_COLOUR_2, COLOUR_BLACK }, // RCT1_VEHICLE_TYPE_HEARTLINE_TWISTER_CARS,
|
||||
{ COPY_COLOUR_1, COPY_COLOUR_2, COLOUR_BLACK }, // RCT1_VEHICLE_TYPE_HEARTLINE_TWISTER_CARS_REVERSED,
|
||||
{ COPY_COLOUR_1, COPY_COLOUR_2, COLOUR_BLACK }, // RCT1_VEHICLE_TYPE_RESERVED,
|
||||
{ COPY_COLOUR_1, COPY_COLOUR_2, COLOUR_BLACK }, // RCT1_VEHICLE_TYPE_ROTODROP_CAR,
|
||||
{ COPY_COLOUR_1, COPY_COLOUR_2, COLOUR_BLACK }, // RCT1_VEHICLE_TYPE_FLYING_SAUCERS,
|
||||
{ COPY_COLOUR_1, COPY_COLOUR_2, COLOUR_BLACK }, // RCT1_VEHICLE_TYPE_CROOKED_HOUSE_BUILDING,
|
||||
{ COPY_COLOUR_1, COPY_COLOUR_2, COLOUR_BLACK }, // RCT1_VEHICLE_TYPE_BICYCLES,
|
||||
{ COPY_COLOUR_1, COPY_COLOUR_2, COLOUR_BLACK }, // RCT1_VEHICLE_TYPE_HYPERCOASTER_TRAIN,
|
||||
{ COPY_COLOUR_1, COPY_COLOUR_2, COLOUR_BLACK }, // RCT1_VEHICLE_TYPE_4_ACROSS_INVERTED_COASTER_TRAIN,
|
||||
{ COPY_COLOUR_1, COPY_COLOUR_2, COLOUR_BLACK }, // RCT1_VEHICLE_TYPE_WATER_COASTER_BOATS,
|
||||
{ COPY_COLOUR_1, COPY_COLOUR_2, COPY_COLOUR_2 }, // RCT1_VEHICLE_TYPE_FACEOFF_CARS,
|
||||
{ COPY_COLOUR_1, COPY_COLOUR_2, COLOUR_BLACK }, // RCT1_VEHICLE_TYPE_JET_SKIS,
|
||||
{ COPY_COLOUR_1, COPY_COLOUR_2, COPY_COLOUR_2 }, // RCT1_VEHICLE_TYPE_RAFT_BOATS,
|
||||
{ COPY_COLOUR_1, COPY_COLOUR_2, COLOUR_YELLOW }, // RCT1_VEHICLE_TYPE_AMERICAN_STYLE_STEAM_TRAIN,
|
||||
{ COPY_COLOUR_1, COPY_COLOUR_2, COLOUR_BLACK }, // RCT1_VEHICLE_TYPE_AIR_POWERED_COASTER_TRAIN,
|
||||
{ COPY_COLOUR_1, COPY_COLOUR_2, COLOUR_BLACK }, // RCT1_VEHICLE_TYPE_SUSPENDED_WILD_MOUSE_CARS, // Inverted Hairpin in RCT2
|
||||
{ COPY_COLOUR_1, COPY_COLOUR_2, COLOUR_BLACK }, // RCT1_VEHICLE_TYPE_ENTERPRISE_WHEEL
|
||||
};
|
||||
|
||||
Guard::ArgumentInRange<size_t>(vehicleType, 0, std::size(map), "Unsupported RCT1 vehicle type.");
|
||||
return map[vehicleType];
|
||||
Guard::ArgumentInRange<size_t>(EnumValue(vehicleType), 0, std::size(map), "Unsupported RCT1 vehicle type.");
|
||||
return map[EnumValue(vehicleType)];
|
||||
}
|
||||
|
||||
bool RideTypeUsesVehicles(RideType rideType)
|
||||
|
@ -422,7 +422,7 @@ namespace RCT1
|
|||
return pathAdditionType;
|
||||
}
|
||||
|
||||
uint8_t GetVehicleSubEntryIndex(uint8_t rct1VehicleType, uint8_t vehicleSubEntry)
|
||||
uint8_t GetVehicleSubEntryIndex(VehicleType rct1VehicleType, uint8_t vehicleSubEntry)
|
||||
{
|
||||
static constexpr uint8_t map[] =
|
||||
{
|
||||
|
@ -684,11 +684,11 @@ namespace RCT1
|
|||
0,
|
||||
};
|
||||
|
||||
if (rct1VehicleType == RCT1_VEHICLE_TYPE_HEARTLINE_TWISTER_CARS)
|
||||
if (rct1VehicleType == VehicleType::HeartlineTwisterCars)
|
||||
{
|
||||
return vehicleSubEntry == HEARTLINE_TWISTER_FORWARDS ? 0 : 1;
|
||||
}
|
||||
if (rct1VehicleType == RCT1_VEHICLE_TYPE_HEARTLINE_TWISTER_CARS_REVERSED)
|
||||
if (rct1VehicleType == VehicleType::HeartlineTwisterCarsReversed)
|
||||
{
|
||||
return vehicleSubEntry == HEARTLINE_TWISTER_BACKWARDS ? 0 : 1;
|
||||
}
|
||||
|
@ -706,33 +706,33 @@ namespace RCT1
|
|||
{
|
||||
"rct1.ride.wooden_rc_trains", // RCT1_RIDE_TYPE_WOODEN_ROLLER_COASTER
|
||||
"rct2.ride.togst", // RCT1_RIDE_TYPE_STAND_UP_STEEL_ROLLER_COASTER
|
||||
"rct2.ride.arrsw1", // RCT1_RIDE_TYPE_SUSPENDED_ROLLER_COASTER
|
||||
"rct2.ride.nemt", // RCT1_RIDE_TYPE_INVERTED_ROLLER_COASTER
|
||||
"rct1.ride.suspended_swinging_cars", // RCT1_RIDE_TYPE_SUSPENDED_ROLLER_COASTER
|
||||
"rct1ll.ride.4_across_inverted_trains", // RCT1_RIDE_TYPE_INVERTED_ROLLER_COASTER
|
||||
"rct1.ride.ladybird_trains", // RCT1_RIDE_TYPE_STEEL_MINI_ROLLER_COASTER
|
||||
"rct2.ride.nrl", // RCT1_RIDE_TYPE_MINIATURE_RAILWAY
|
||||
"rct2.ride.mono2", // RCT1_RIDE_TYPE_MONORAIL
|
||||
"rct1.ride.steam_trains", // RCT1_RIDE_TYPE_MINIATURE_RAILWAY
|
||||
"rct1.ride.small_monorail_cars", // RCT1_RIDE_TYPE_MONORAIL
|
||||
"rct1.ride.single_person_swinging_cars", // RCT1_RIDE_TYPE_SUSPENDED_SINGLE_RAIL_ROLLER_COASTER
|
||||
"rct2.ride.rboat", // RCT1_RIDE_TYPE_BOAT_HIRE
|
||||
"rct2.ride.wmouse", // RCT1_RIDE_TYPE_WOODEN_CRAZY_RODENT_ROLLER_COASTER
|
||||
"rct2.ride.steep1", // RCT1_RIDE_TYPE_SINGLE_RAIL_ROLLER_COASTER
|
||||
"rct2.ride.spcar", // RCT1_RIDE_TYPE_CAR_RIDE
|
||||
"rct1.ride.mouse_cars", // RCT1_RIDE_TYPE_WOODEN_CRAZY_RODENT_ROLLER_COASTER
|
||||
"rct1.ride.horses", // RCT1_RIDE_TYPE_SINGLE_RAIL_ROLLER_COASTER
|
||||
"rct1.ride.sports_cars", // RCT1_RIDE_TYPE_CAR_RIDE
|
||||
"rct2.ride.ssc1", // RCT1_RIDE_TYPE_LAUNCHED_FREEFALL
|
||||
"rct2.ride.bob1", // RCT1_RIDE_TYPE_BOBSLED_ROLLER_COASTER
|
||||
"rct1.ride.bobsleigh_trains", // RCT1_RIDE_TYPE_BOBSLED_ROLLER_COASTER
|
||||
"rct2.ride.obs1", // RCT1_RIDE_TYPE_OBSERVATION_TOWER
|
||||
"rct1.ride.steel_rc_trains", // RCT1_RIDE_TYPE_STEEL_ROLLER_COASTER
|
||||
"rct2.ride.ding1", // RCT1_RIDE_TYPE_WATER_SLIDE
|
||||
"rct2.ride.amt1", // RCT1_RIDE_TYPE_MINE_TRAIN_ROLLER_COASTER
|
||||
"rct2.ride.clift1", // RCT1_RIDE_TYPE_CHAIRLIFT
|
||||
"rct1.ride.dinghies", // RCT1_RIDE_TYPE_WATER_SLIDE
|
||||
"rct1.ride.mine_trains", // RCT1_RIDE_TYPE_MINE_TRAIN_ROLLER_COASTER
|
||||
"rct1.ride.chairlift_cars", // RCT1_RIDE_TYPE_CHAIRLIFT
|
||||
"rct1.ride.corkscrew_trains", // RCT1_RIDE_TYPE_STEEL_CORKSCREW_ROLLER_COASTER
|
||||
"rct2.ride.hmaze", // RCT1_RIDE_TYPE_HEDGE_MAZE
|
||||
"rct2.ride.hskelt", // RCT1_RIDE_TYPE_SPIRAL_SLIDE
|
||||
"rct1.ride.go_karts", // RCT1_RIDE_TYPE_GO_KARTS
|
||||
"rct2.ride.lfb1", // RCT1_RIDE_TYPE_LOG_FLUME
|
||||
"rct2.ride.rapboat", // RCT1_RIDE_TYPE_RIVER_RAPIDS
|
||||
"rct2.ride.dodg1", // RCT1_RIDE_TYPE_DODGEMS
|
||||
"rct1.ride.logs", // RCT1_RIDE_TYPE_LOG_FLUME
|
||||
"rct1.ride.river_rapids_boats", // RCT1_RIDE_TYPE_RIVER_RAPIDS
|
||||
"rct1.ride.dodgems", // RCT1_RIDE_TYPE_DODGEMS
|
||||
"rct2.ride.swsh1", // RCT1_RIDE_TYPE_SWINGING_SHIP
|
||||
"rct2.ride.swsh2", // RCT1_RIDE_TYPE_SWINGING_INVERTER_SHIP
|
||||
"rct2.ride.icecr1", // RCT1_RIDE_TYPE_ICE_CREAM_STALL
|
||||
"rct1.ride.fruity_ices_stall", // RCT1_RIDE_TYPE_ICE_CREAM_STALL
|
||||
"rct2.ride.chpsh", // RCT1_RIDE_TYPE_CHIPS_STALL
|
||||
"rct2.ride.drnks", // RCT1_RIDE_TYPE_DRINK_STALL
|
||||
"rct2.ride.cndyf", // RCT1_RIDE_TYPE_CANDYFLOSS_STALL
|
||||
|
@ -746,44 +746,44 @@ namespace RCT1
|
|||
"rct2.ride.c3d", // RCT1_RIDE_TYPE_3D_CINEMA
|
||||
"rct2.ride.topsp1", // RCT1_RIDE_TYPE_TOP_SPIN
|
||||
"rct2.ride.srings", // RCT1_RIDE_TYPE_SPACE_RINGS
|
||||
"rct2.ride.revf1", // RCT1_RIDE_TYPE_REVERSE_FREEFALL_ROLLER_COASTER
|
||||
"rct1.ride.reverse_freefall_car", // RCT1_RIDE_TYPE_REVERSE_FREEFALL_ROLLER_COASTER
|
||||
"rct2.ride.souvs", // RCT1_RIDE_TYPE_SOUVENIR_STALL
|
||||
"rct2.ride.bmvd", // RCT1_RIDE_TYPE_VERTICAL_ROLLER_COASTER
|
||||
"rct1.ride.vertical_drop_trains", // RCT1_RIDE_TYPE_VERTICAL_ROLLER_COASTER
|
||||
"rct2.ride.pizzs", // RCT1_RIDE_TYPE_PIZZA_STALL
|
||||
"rct2.ride.twist1", // RCT1_RIDE_TYPE_TWIST
|
||||
"rct2.ride.hhbuild", // RCT1_RIDE_TYPE_HAUNTED_HOUSE
|
||||
"rct2.ride.popcs", // RCT1_RIDE_TYPE_POPCORN_STALL
|
||||
"rct2.ride.circus1", // RCT1_RIDE_TYPE_CIRCUS
|
||||
"rct2.ride.gtc", // RCT1_RIDE_TYPE_GHOST_TRAIN
|
||||
"rct2.ride.bmsd", // RCT1_RIDE_TYPE_STEEL_TWISTER_ROLLER_COASTER
|
||||
"rct1aa.ride.ghost_train_cars", // RCT1_RIDE_TYPE_GHOST_TRAIN
|
||||
"rct1aa.ride.twister_trains", // RCT1_RIDE_TYPE_STEEL_TWISTER_ROLLER_COASTER
|
||||
"rct2.ride.mft", // RCT1_RIDE_TYPE_WOODEN_TWISTER_ROLLER_COASTER
|
||||
"rct2.ride.sfric1", // RCT1_RIDE_TYPE_WOODEN_SIDE_FRICTION_ROLLER_COASTER
|
||||
"rct2.ride.smc1", // RCT1_RIDE_TYPE_STEEL_WILD_MOUSE_ROLLER_COASTER
|
||||
"rct1aa.ride.side_friction_cars", // RCT1_RIDE_TYPE_WOODEN_SIDE_FRICTION_ROLLER_COASTER
|
||||
"rct1aa.ride.steel_wild_mouse_cars", // RCT1_RIDE_TYPE_STEEL_WILD_MOUSE_ROLLER_COASTER
|
||||
"rct2.ride.hotds", // RCT1_RIDE_TYPE_HOT_DOG_STALL
|
||||
"rct2.ride.sqdst", // RCT1_RIDE_TYPE_EXOTIC_SEA_FOOD_STALL
|
||||
"rct2.ride.hatst", // RCT1_RIDE_TYPE_HAT_STALL
|
||||
"rct2.ride.toffs", // RCT1_RIDE_TYPE_TOFFEE_APPLE_STALL
|
||||
"rct2.ride.vreel", // RCT1_RIDE_TYPE_VIRGINIA_REEL
|
||||
"rct2.ride.spboat", // RCT1_RIDE_TYPE_RIVER_RIDE
|
||||
"rct2.ride.helicar", // RCT1_RIDE_TYPE_CYCLE_MONORAIL
|
||||
"rct1aa.ride.virginia_reel_tubs", // RCT1_RIDE_TYPE_VIRGINIA_REEL
|
||||
"rct1aa.ride.splash_boats", // RCT1_RIDE_TYPE_RIVER_RIDE
|
||||
"rct1aa.ride.mini_helicopters", // RCT1_RIDE_TYPE_CYCLE_MONORAIL
|
||||
"rct2.ride.vekst", // RCT1_RIDE_TYPE_FLYING_ROLLER_COASTER
|
||||
"rct2.ride.smono", // RCT1_RIDE_TYPE_SUSPENDED_MONORAIL
|
||||
"rct1aa.ride.suspended_monorail_trains", // RCT1_RIDE_TYPE_SUSPENDED_MONORAIL
|
||||
"", // RCT1_RIDE_TYPE_40
|
||||
"rct2.ride.revcar", // RCT1_RIDE_TYPE_WOODEN_REVERSER_ROLLER_COASTER
|
||||
"rct2.ride.utcar", // RCT1_RIDE_TYPE_HEARTLINE_TWISTER_ROLLER_COASTER
|
||||
"rct1aa.ride.reverser_cars", // RCT1_RIDE_TYPE_WOODEN_REVERSER_ROLLER_COASTER
|
||||
"rct1aa.ride.heartline_twister_cars", // RCT1_RIDE_TYPE_HEARTLINE_TWISTER_ROLLER_COASTER
|
||||
"rct2.ride.golf1", // RCT1_RIDE_TYPE_MINIATURE_GOLF
|
||||
"", // RCT1_RIDE_TYPE_44
|
||||
"rct2.ride.gdrop1", // RCT1_RIDE_TYPE_ROTO_DROP
|
||||
"rct2.ride.fsauc", // RCT1_RIDE_TYPE_FLYING_SAUCERS
|
||||
"rct1aa.ride.flying_saucers", // RCT1_RIDE_TYPE_FLYING_SAUCERS
|
||||
"rct2.ride.chbuild", // RCT1_RIDE_TYPE_CROOKED_HOUSE
|
||||
"rct2.ride.monbk", // RCT1_RIDE_TYPE_CYCLE_RAILWAY
|
||||
"rct1aa.ride.bicycles", // RCT1_RIDE_TYPE_CYCLE_RAILWAY
|
||||
"rct1.ride.inverted_trains", // RCT1_RIDE_TYPE_SUSPENDED_LOOPING_ROLLER_COASTER
|
||||
"rct2.ride.cstboat", // RCT1_RIDE_TYPE_WATER_COASTER
|
||||
"rct2.ride.thcar", // RCT1_RIDE_TYPE_AIR_POWERED_VERTICAL_COASTER
|
||||
"rct2.ride.ivmc1", // RCT1_RIDE_TYPE_INVERTED_WILD_MOUSE_COASTER
|
||||
"rct2.ride.jski", // RCT1_RIDE_TYPE_JET_SKIS
|
||||
"rct1ll.ride.coaster_boats", // RCT1_RIDE_TYPE_WATER_COASTER
|
||||
"rct1ll.ride.air_powered_trains", // RCT1_RIDE_TYPE_AIR_POWERED_VERTICAL_COASTER
|
||||
"rct1ll.ride.inverted_hairpin_cars", // RCT1_RIDE_TYPE_INVERTED_WILD_MOUSE_COASTER
|
||||
"rct1ll.ride.jet_skis", // RCT1_RIDE_TYPE_JET_SKIS
|
||||
"rct2.ride.tshrt", // RCT1_RIDE_TYPE_T_SHIRT_STALL
|
||||
"rct2.ride.rftboat", // RCT1_RIDE_TYPE_RAFT_RIDE
|
||||
"rct1ll.ride.rafts", // RCT1_RIDE_TYPE_RAFT_RIDE
|
||||
"rct2.ride.dough", // RCT1_RIDE_TYPE_DOUGHNUT_SHOP
|
||||
"rct2.ride.enterp", // RCT1_RIDE_TYPE_ENTERPRISE
|
||||
"rct2.ride.coffs", // RCT1_RIDE_TYPE_COFFEE_SHOP
|
||||
|
@ -797,103 +797,103 @@ namespace RCT1
|
|||
return map[index];
|
||||
}
|
||||
|
||||
std::string_view GetVehicleObject(uint8_t vehicleType)
|
||||
std::string_view GetVehicleObject(VehicleType vehicleType)
|
||||
{
|
||||
static constexpr const char * map[] =
|
||||
{
|
||||
"rct1.ride.steel_rc_trains", // RCT1_VEHICLE_TYPE_STEEL_ROLLER_COASTER_TRAIN
|
||||
"rct1.ride.steel_rc_trains_reversed", // RCT1_VEHICLE_TYPE_STEEL_ROLLER_COASTER_TRAIN_BACKWARDS
|
||||
"rct1.ride.wooden_rc_trains", // RCT1_VEHICLE_TYPE_WOODEN_ROLLER_COASTER_TRAIN
|
||||
"rct1.ride.inverted_trains", // RCT1_VEHICLE_TYPE_INVERTED_COASTER_TRAIN (Not in RCT2)
|
||||
"rct2.ride.arrsw1", // RCT1_VEHICLE_TYPE_SUSPENDED_SWINGING_CARS
|
||||
"rct1.ride.ladybird_trains", // RCT1_VEHICLE_TYPE_LADYBIRD_CARS
|
||||
"rct2.ride.togst", // RCT1_VEHICLE_TYPE_STANDUP_ROLLER_COASTER_CARS
|
||||
"rct2.ride.wmspin", // RCT1_VEHICLE_TYPE_SPINNING_CARS
|
||||
"rct1.ride.single_person_swinging_cars", // RCT1_VEHICLE_TYPE_SINGLE_PERSON_SWINGING_CHAIRS
|
||||
"rct2.ride.swans", // RCT1_VEHICLE_TYPE_SWANS_PEDAL_BOATS
|
||||
"rct2.ride.mono1", // RCT1_VEHICLE_TYPE_LARGE_MONORAIL_TRAIN
|
||||
"rct2.ride.cboat", // RCT1_VEHICLE_TYPE_CANOES
|
||||
"rct2.ride.rboat", // RCT1_VEHICLE_TYPE_ROWING_BOATS
|
||||
"rct2.ride.nrl", // RCT1_VEHICLE_TYPE_STEAM_TRAIN
|
||||
"rct2.ride.wmouse", // RCT1_VEHICLE_TYPE_WOODEN_MOUSE_CARS
|
||||
"rct2.ride.bboat", // RCT1_VEHICLE_TYPE_BUMPER_BOATS
|
||||
"rct1.ride.wooden_rc_trains_reversed", // RCT1_VEHICLE_TYPE_WOODEN_ROLLER_COASTER_TRAIN_BACKWARDS
|
||||
"rct1.ride.rocket_cars", // RCT1_VEHICLE_TYPE_ROCKET_CARS
|
||||
"rct2.ride.steep1", // RCT1_VEHICLE_TYPE_HORSES // Steeplechase
|
||||
"rct2.ride.spcar", // RCT1_VEHICLE_TYPE_SPORTSCARS
|
||||
"rct2.ride.skytr", // RCT1_VEHICLE_TYPE_LYING_DOWN_SWINGING_CARS (Inverted single-rail)
|
||||
"rct2.ride.wmmine", // RCT1_VEHICLE_TYPE_WOODEN_MINE_CARS
|
||||
"rct2.ride.arrsw2", // RCT1_VEHICLE_TYPE_SUSPENDED_SWINGING_AIRPLANE_CARS
|
||||
"rct2.ride.mono2", // RCT1_VEHICLE_TYPE_SMALL_MONORAIL_CARS
|
||||
"rct2.ride.trike", // RCT1_VEHICLE_TYPE_WATER_TRICYCLES
|
||||
"rct2.ride.ssc1", // RCT1_VEHICLE_TYPE_LAUNCHED_FREEFALL_CAR
|
||||
"rct2.ride.bob1", // RCT1_VEHICLE_TYPE_BOBSLEIGH_CARS
|
||||
"rct2.ride.ding1", // RCT1_VEHICLE_TYPE_DINGHIES
|
||||
"rct2.ride.obs1", // RCT1_VEHICLE_TYPE_ROTATING_CABIN
|
||||
"rct2.ride.amt1", // RCT1_VEHICLE_TYPE_MINE_TRAIN
|
||||
"rct2.ride.clift1", // RCT1_VEHICLE_TYPE_CHAIRLIFT_CARS
|
||||
"rct1.ride.corkscrew_trains", // RCT1_VEHICLE_TYPE_CORKSCREW_ROLLER_COASTER_TRAIN
|
||||
"rct2.ride.steep2", // RCT1_VEHICLE_TYPE_MOTORBIKES
|
||||
"rct2.ride.rcr", // RCT1_VEHICLE_TYPE_RACING_CARS
|
||||
"rct2.ride.truck1", // RCT1_VEHICLE_TYPE_TRUCKS
|
||||
"rct1.ride.go_karts", // RCT1_VEHICLE_TYPE_GO_KARTS
|
||||
"rct2.ride.rapboat", // RCT1_VEHICLE_TYPE_RAPIDS_BOATS
|
||||
"rct2.ride.lfb1", // RCT1_VEHICLE_TYPE_LOG_FLUME_BOATS
|
||||
"rct2.ride.dodg1", // RCT1_VEHICLE_TYPE_DODGEMS
|
||||
"rct2.ride.swsh1", // RCT1_VEHICLE_TYPE_SWINGING_SHIP
|
||||
"rct2.ride.swsh2", // RCT1_VEHICLE_TYPE_SWINGING_INVERTER_SHIP
|
||||
"rct2.ride.mgr1", // RCT1_VEHICLE_TYPE_MERRY_GO_ROUND
|
||||
"rct2.ride.fwh1", // RCT1_VEHICLE_TYPE_FERRIS_WHEEL
|
||||
"rct2.ride.simpod", // RCT1_VEHICLE_TYPE_SIMULATOR_POD
|
||||
"rct2.ride.c3d", // RCT1_VEHICLE_TYPE_CINEMA_BUILDING
|
||||
"rct2.ride.topsp1", // RCT1_VEHICLE_TYPE_TOPSPIN_CAR
|
||||
"rct2.ride.srings", // RCT1_VEHICLE_TYPE_SPACE_RINGS
|
||||
"rct2.ride.revf1", // RCT1_VEHICLE_TYPE_REVERSE_FREEFALL_ROLLER_COASTER_CAR
|
||||
"rct2.ride.bmvd", // RCT1_VEHICLE_TYPE_VERTICAL_ROLLER_COASTER_CARS
|
||||
"rct2.ride.ctcar", // RCT1_VEHICLE_TYPE_CAT_CARS
|
||||
"rct2.ride.twist1", // RCT1_VEHICLE_TYPE_TWIST_ARMS_AND_CARS
|
||||
"rct2.ride.hhbuild", // RCT1_VEHICLE_TYPE_HAUNTED_HOUSE_BUILDING
|
||||
"rct1.ride.log_trains", // RCT1_VEHICLE_TYPE_LOG_CARS
|
||||
"rct2.ride.circus1", // RCT1_VEHICLE_TYPE_CIRCUS_TENT
|
||||
"rct2.ride.gtc", // RCT1_VEHICLE_TYPE_GHOST_TRAIN_CARS
|
||||
"rct2.ride.bmsd", // RCT1_VEHICLE_TYPE_STEEL_TWISTER_ROLLER_COASTER_TRAIN
|
||||
"rct2.ride.mft", // RCT1_VEHICLE_TYPE_WOODEN_TWISTER_ROLLER_COASTER_TRAIN
|
||||
"rct2.ride.sfric1", // RCT1_VEHICLE_TYPE_WOODEN_SIDE_FRICTION_CARS
|
||||
"rct2.ride.vcr", // RCT1_VEHICLE_TYPE_VINTAGE_CARS
|
||||
"rct2.ride.nrl2", // RCT1_VEHICLE_TYPE_STEAM_TRAIN_COVERED_CARS
|
||||
"rct2.ride.bmsu", // RCT1_VEHICLE_TYPE_STAND_UP_STEEL_TWISTER_ROLLER_COASTER_TRAIN
|
||||
"rct2.ride.bmfl", // RCT1_VEHICLE_TYPE_FLOORLESS_STEEL_TWISTER_ROLLER_COASTER_TRAIN
|
||||
"rct2.ride.smc1", // RCT1_VEHICLE_TYPE_STEEL_MOUSE_CARS
|
||||
"rct2.ride.clift2", // RCT1_VEHICLE_TYPE_CHAIRLIFT_CARS_ALTERNATIVE
|
||||
"rct2.ride.smono", // RCT1_VEHICLE_TYPE_SUSPENDED_MONORAIL_TRAIN
|
||||
"rct2.ride.helicar", // RCT1_VEHICLE_TYPE_HELICOPTER_CARS
|
||||
"rct2.ride.vreel", // RCT1_VEHICLE_TYPE_VIRGINIA_REEL_TUBS
|
||||
"rct2.ride.revcar", // RCT1_VEHICLE_TYPE_REVERSER_CARS
|
||||
"rct2.ride.golf1", // RCT1_VEHICLE_TYPE_GOLFERS
|
||||
"rct2.ride.spboat", // RCT1_VEHICLE_TYPE_RIVER_RIDE_BOATS
|
||||
"rct2.ride.vekst", // RCT1_VEHICLE_TYPE_FLYING_ROLLER_COASTER_TRAIN
|
||||
"rct2.ride.bmrb", // RCT1_VEHICLE_TYPE_NON_LOOPING_STEEL_TWISTER_ROLLER_COASTER_TRAIN
|
||||
"rct2.ride.utcar", // RCT1_VEHICLE_TYPE_HEARTLINE_TWISTER_CARS
|
||||
"rct2.ride.utcarr", // RCT1_VEHICLE_TYPE_HEARTLINE_TWISTER_CARS_REVERSED
|
||||
"", // RCT1_VEHICLE_TYPE_RESERVED
|
||||
"rct2.ride.gdrop1", // RCT1_VEHICLE_TYPE_ROTODROP_CAR
|
||||
"rct2.ride.fsauc", // RCT1_VEHICLE_TYPE_FLYING_SAUCERS
|
||||
"rct2.ride.chbuild", // RCT1_VEHICLE_TYPE_CROOKED_HOUSE_BUILDING
|
||||
"rct2.ride.monbk", // RCT1_VEHICLE_TYPE_BICYCLES
|
||||
"rct2.ride.arrt2", // RCT1_VEHICLE_TYPE_HYPERCOASTER_TRAIN
|
||||
"rct2.ride.nemt", // RCT1_VEHICLE_TYPE_4_ACROSS_INVERTED_COASTER_TRAIN
|
||||
"rct2.ride.cstboat", // RCT1_VEHICLE_TYPE_WATER_COASTER_BOATS
|
||||
"rct2.ride.slcfo", // RCT1_VEHICLE_TYPE_FACEOFF_CARS
|
||||
"rct2.ride.jski", // RCT1_VEHICLE_TYPE_JET_SKIS
|
||||
"rct2.ride.rftboat", // RCT1_VEHICLE_TYPE_RAFT_BOATS
|
||||
"rct2.ride.aml1", // RCT1_VEHICLE_TYPE_AMERICAN_STYLE_STEAM_TRAIN
|
||||
"rct2.ride.thcar", // RCT1_VEHICLE_TYPE_AIR_POWERED_COASTER_TRAIN
|
||||
"rct2.ride.ivmc1", // RCT1_VEHICLE_TYPE_SUSPENDED_WILD_MOUSE_CARS (Inverted Hairpin in RCT2)
|
||||
"rct2.ride.enterp", // RCT1_VEHICLE_TYPE_ENTERPRISE_WHEEL
|
||||
"rct1.ride.steel_rc_trains", // VehicleType::SteelRollerCoasterTrain
|
||||
"rct1.ride.steel_rc_trains", // VehicleType::SteelRollerCoasterTrainBackwards
|
||||
"rct1.ride.wooden_rc_trains", // VehicleType::WoodenRollerCoasterTrain
|
||||
"rct1.ride.inverted_trains", // VehicleType::InvertedCoasterTrain//NotinRCT2
|
||||
"rct1.ride.suspended_swinging_cars", // VehicleType::SuspendedSwingingCars
|
||||
"rct1.ride.ladybird_trains", // VehicleType::LadybirdCars
|
||||
"rct2.ride.togst", // VehicleType::StandupRollerCoasterCars
|
||||
"rct2.ride.wmspin", // VehicleType::SpinningCars
|
||||
"rct1.ride.single_person_swinging_cars", // VehicleType::SinglePersonSwingingChairs
|
||||
"rct2.ride.swans", // VehicleType::SwansPedalBoats
|
||||
"rct1.ride.streamlined_monorail_trains", // VehicleType::LargeMonorailTrain
|
||||
"rct2.ride.cboat", // VehicleType::Canoes
|
||||
"rct2.ride.rboat", // VehicleType::RowingBoats
|
||||
"rct1.ride.steam_trains", // VehicleType::SteamTrain
|
||||
"rct1.ride.mouse_cars", // VehicleType::WoodenMouseCars
|
||||
"rct1.ride.bumper_boats", // VehicleType::BumperBoats
|
||||
"rct1.ride.wooden_rc_trains", // VehicleType::WoodenRollerCoasterTrainBackwards
|
||||
"rct1.ride.rocket_cars", // VehicleType::RocketCars
|
||||
"rct1.ride.horses", // VehicleType::Horses//Steeplechase
|
||||
"rct1.ride.sports_cars", // VehicleType::Sportscars
|
||||
"rct1.ride.swinging_lay_down_cars", // VehicleType::LyingDownSwingingCars//Invertedsingle-rail
|
||||
"rct1.ride.mine_cars", // VehicleType::WoodenMineCars
|
||||
"rct1.ride.suspended_swinging_aeroplane_cars", // VehicleType::SuspendedSwingingAirplaneCars
|
||||
"rct1.ride.small_monorail_cars", // VehicleType::SmallMonorailCars
|
||||
"rct2.ride.trike", // VehicleType::WaterTricycles
|
||||
"rct2.ride.ssc1", // VehicleType::LaunchedFreefallCar
|
||||
"rct1.ride.bobsleigh_trains", // VehicleType::BobsleighCars
|
||||
"rct1.ride.dinghies", // VehicleType::Dinghies
|
||||
"rct2.ride.obs1", // VehicleType::RotatingCabin
|
||||
"rct1.ride.mine_trains", // VehicleType::MineTrain
|
||||
"rct1.ride.chairlift_cars", // VehicleType::ChairliftCars
|
||||
"rct1.ride.corkscrew_trains", // VehicleType::CorkscrewRollerCoasterTrain
|
||||
"rct1.ride.motorbikes", // VehicleType::Motorbikes
|
||||
"rct1.ride.racing_cars", // VehicleType::RacingCars
|
||||
"rct1.ride.pickup_trucks", // VehicleType::Trucks
|
||||
"rct1.ride.go_karts", // VehicleType::GoKarts
|
||||
"rct1.ride.river_rapids_boats", // VehicleType::RapidsBoats
|
||||
"rct1.ride.logs", // VehicleType::LogFlumeBoats
|
||||
"rct1.ride.dodgems", // VehicleType::Dodgems
|
||||
"rct2.ride.swsh1", // VehicleType::SwingingShip
|
||||
"rct2.ride.swsh2", // VehicleType::SwingingInverterShip
|
||||
"rct2.ride.mgr1", // VehicleType::MerryGoRound
|
||||
"rct2.ride.fwh1", // VehicleType::FerrisWheel
|
||||
"rct2.ride.simpod", // VehicleType::SimulatorPod
|
||||
"rct2.ride.c3d", // VehicleType::CinemaBuilding
|
||||
"rct2.ride.topsp1", // VehicleType::TopspinCar
|
||||
"rct2.ride.srings", // VehicleType::SpaceRings
|
||||
"rct1.ride.reverse_freefall_car", // VehicleType::ReverseFreefallRollerCoasterCar
|
||||
"rct1.ride.vertical_drop_trains", // VehicleType::VerticalRollerCoasterCars
|
||||
"rct1.ride.cat_cars", // VehicleType::CatCars
|
||||
"rct2.ride.twist1", // VehicleType::TwistArmsAndCars
|
||||
"rct2.ride.hhbuild", // VehicleType::HauntedHouseBuilding
|
||||
"rct1.ride.log_trains", // VehicleType::LogCars
|
||||
"rct2.ride.circus1", // VehicleType::CircusTent
|
||||
"rct1aa.ride.ghost_train_cars", // VehicleType::GhostTrainCars
|
||||
"rct1aa.ride.twister_trains", // VehicleType::SteelTwisterRollerCoasterTrain
|
||||
"rct2.ride.mft", // VehicleType::WoodenTwisterRollerCoasterTrain
|
||||
"rct1aa.ride.side_friction_cars", // VehicleType::WoodenSideFrictionCars
|
||||
"rct1aa.ride.vintage_cars", // VehicleType::VintageCars
|
||||
"rct1aa.ride.steam_trains_covered", // VehicleType::SteamTrainCoveredCars
|
||||
"rct1aa.ride.stand_up_twister_trains", // VehicleType::StandUpSteelTwisterRollerCoasterTrain
|
||||
"rct1aa.ride.floorless_twister_trains", // VehicleType::FloorlessSteelTwisterRollerCoasterTrain
|
||||
"rct1aa.ride.steel_wild_mouse_cars", // VehicleType::SteelMouseCars
|
||||
"rct1aa.ride.ski_lift_cars", // VehicleType::ChairliftCarsAlternative
|
||||
"rct1aa.ride.suspended_monorail_trains", // VehicleType::SuspendedMonorailTrain
|
||||
"rct1aa.ride.mini_helicopters", // VehicleType::HelicopterCars
|
||||
"rct1aa.ride.virginia_reel_tubs", // VehicleType::VirginiaReelTubs
|
||||
"rct1aa.ride.reverser_cars", // VehicleType::ReverserCars
|
||||
"rct2.ride.golf1", // VehicleType::Golfers
|
||||
"rct1aa.ride.splash_boats", // VehicleType::RiverRideBoats
|
||||
"rct2.ride.vekst", // VehicleType::FlyingRollerCoasterTrain
|
||||
"rct1aa.ride.hyper_twister_trains", // VehicleType::NonLoopingSteelTwisterRollerCoasterTrain
|
||||
"rct1aa.ride.heartline_twister_cars", // VehicleType::HeartlineTwisterCars
|
||||
"rct1aa.ride.heartline_twister_cars", // VehicleType::HeartlineTwisterCarsReversed
|
||||
"", // VehicleType::Reserved
|
||||
"rct2.ride.gdrop1", // VehicleType::RotodropCar
|
||||
"rct1aa.ride.flying_saucers", // VehicleType::FlyingSaucers
|
||||
"rct2.ride.chbuild", // VehicleType::CrookedHouseBuilding
|
||||
"rct1aa.ride.bicycles", // VehicleType::Bicycles
|
||||
"rct1ll.ride.hypercoaster_trains", // VehicleType::HypercoasterTrain
|
||||
"rct1ll.ride.4_across_inverted_trains", // VehicleType::_4_Across_Inverted_Coaster_Train
|
||||
"rct1ll.ride.coaster_boats", // VehicleType::WaterCoasterBoats
|
||||
"rct1ll.ride.face_off_cars", // VehicleType::FaceoffCars
|
||||
"rct1ll.ride.jet_skis", // VehicleType::JetSkis
|
||||
"rct1ll.ride.rafts", // VehicleType::RaftBoats
|
||||
"rct1ll.ride.steam_trains_american", // VehicleType::AmericanStyleSteamTrain
|
||||
"rct1ll.ride.air_powered_trains", // VehicleType::AirPoweredCoasterTrain
|
||||
"rct1ll.ride.inverted_hairpin_cars", // VehicleType::SuspendedWildMouseCars
|
||||
"rct2.ride.enterp", // VehicleType::EnterpriseWheel
|
||||
};
|
||||
|
||||
Guard::ArgumentInRange<size_t>(vehicleType, 0, std::size(map), "Unsupported RCT1 vehicle type.");
|
||||
return map[vehicleType];
|
||||
Guard::ArgumentInRange<size_t>(EnumValue(vehicleType), 0, std::size(map), "Unsupported RCT1 vehicle type.");
|
||||
return map[EnumValue(vehicleType)];
|
||||
}
|
||||
|
||||
std::string_view GetSmallSceneryObject(uint8_t smallSceneryType)
|
||||
|
@ -1263,58 +1263,58 @@ namespace RCT1
|
|||
{
|
||||
static constexpr const char * map[] =
|
||||
{
|
||||
"rct2.scenery_wall.wmf", // RCT1_WALL_TYPE_MESH_FENCE
|
||||
"rct2.scenery_wall.wmfg", // RCT1_WALL_TYPE_MESH_FENCE_WITH_GATE
|
||||
"rct2.scenery_wall.wrw", // RCT1_WALL_TYPE_ROMAN
|
||||
"rct2.scenery_wall.wew", // RCT1_WALL_TYPE_EGYPTIAN
|
||||
"rct2.scenery_wall.whg", // RCT1_WALL_TYPE_HEDGE
|
||||
"rct2.scenery_wall.whgg", // RCT1_WALL_TYPE_HEDGE_WITH_GATE
|
||||
"rct2.scenery_wall.wcw1", // RCT1_WALL_TYPE_BLUE_PLAYING_CARDS
|
||||
"rct2.scenery_wall.wcw2", // RCT1_WALL_TYPE_RED_PLAYING_CARDS
|
||||
"rct2.scenery_wall.wsw", // RCT1_WALL_TYPE_WHITE_RAILING
|
||||
"rct2.scenery_wall.wswg", // RCT1_WALL_TYPE_WHITE_RAILING_WITH_GATE
|
||||
"rct2.scenery_wall.wmw", // RCT1_WALL_TYPE_MARTIAN
|
||||
"rct2.scenery_wall.wallgl16", // RCT1_WALL_TYPE_GLASS_SMOOTH
|
||||
"rct2.scenery_wall.wfw1", // RCT1_WALL_TYPE_WOODEN_PANEL_FENCE
|
||||
"rct2.scenery_wall.wfwg", // RCT1_WALL_TYPE_WOODEN_PANEL_FENCE_WITH_GATE
|
||||
"rct2.scenery_wall.wpw1", // RCT1_WALL_TYPE_WOODEN_POST_FENCE
|
||||
"rct2.scenery_wall.wpw2", // RCT1_WALL_TYPE_RED_WOODEN_POST_FENCE
|
||||
"rct2.scenery_wall.wpf", // RCT1_WALL_TYPE_BARBED_WIRE
|
||||
"rct2.scenery_wall.wpfg", // RCT1_WALL_TYPE_BARBED_WIRE_WITH_GATE
|
||||
"rct2.scenery_wall.wwtw", // RCT1_WALL_TYPE_PRIMITIVE_TALL_WOOD_FENCE
|
||||
"rct2.scenery_wall.wmww", // RCT1_WALL_TYPE_PRIMITIVE_SHORT_WOOD_FENCE
|
||||
"rct2.scenery_wall.wsw1", // RCT1_WALL_TYPE_IRON_RAILING
|
||||
"rct2.scenery_wall.wsw2", // RCT1_WALL_TYPE_IRON_RAILING_WITH_GATE
|
||||
"rct2.scenery_wall.wgw2", // RCT1_WALL_TYPE_GLASS_PANELS
|
||||
"rct2.scenery_wall.wbw", // RCT1_WALL_TYPE_BONE_FENCE
|
||||
"rct2.scenery_wall.wbr1", // RCT1_WALL_TYPE_BRICK
|
||||
"rct2.scenery_wall.wbrg", // RCT1_WALL_TYPE_BRICK_WITH_GATE
|
||||
"rct2.scenery_wall.wfw1", // RCT1_WALL_TYPE_WHITE_WOODEN_PANEL_FENCE
|
||||
"rct1.scenery_wall.wooden_fence_red", // RCT1_WALL_TYPE_RED_WOODEN_PANEL_FENCE
|
||||
"rct2.scenery_wall.wbr2", // RCT1_WALL_TYPE_STONE
|
||||
"rct2.scenery_wall.wbr3", // RCT1_WALL_TYPE_STONE_WITH_GATE
|
||||
"rct2.scenery_wall.wpw3", // RCT1_WALL_TYPE_WOODEN_FENCE
|
||||
"rct2.scenery_wall.wjf", // RCT1_WALL_TYPE_JUNGLE
|
||||
"rct2.scenery_wall.wch", // RCT1_WALL_TYPE_CONIFER_HEDGE
|
||||
"rct2.scenery_wall.wchg", // RCT1_WALL_TYPE_CONIFER_HEDGE_WITH_GATE
|
||||
"rct2.scenery_wall.wc1", // RCT1_WALL_TYPE_SMALL_BROWN_CASTLE
|
||||
"rct2.scenery_wall.wc2", // RCT1_WALL_TYPE_SMALL_GREY_CASTLE
|
||||
"rct2.scenery_wall.wc3", // RCT1_WALL_TYPE_ROMAN_COLUMN
|
||||
"rct2.scenery_wall.wc4", // RCT1_WALL_TYPE_LARGE_BROWN_CASTLE
|
||||
"rct2.scenery_wall.wc5", // RCT1_WALL_TYPE_LARGE_BROWN_CASTLE_CROSS
|
||||
"rct2.scenery_wall.wc6", // RCT1_WALL_TYPE_LARGE_BROWN_CASTLE_GATE
|
||||
"rct2.scenery_wall.wc7", // RCT1_WALL_TYPE_LARGE_BROWN_CASTLE_WINDOW
|
||||
"rct2.scenery_wall.wc8", // RCT1_WALL_TYPE_MEDIUM_BROWN_CASTLE
|
||||
"rct2.scenery_wall.wc9", // RCT1_WALL_TYPE_LARGE_GREY_CASTLE
|
||||
"rct2.scenery_wall.wc10", // RCT1_WALL_TYPE_LARGE_GREY_CASTLE_CROSS
|
||||
"rct2.scenery_wall.wc11", // RCT1_WALL_TYPE_LARGE_GREY_CASTLE_GATE
|
||||
"rct2.scenery_wall.wc12", // RCT1_WALL_TYPE_LARGE_GREY_CASTLE_WINDOW
|
||||
"rct2.scenery_wall.wc13", // RCT1_WALL_TYPE_MEDIUM_GREY_CASTLE
|
||||
"rct2.scenery_wall.wc14", // RCT1_WALL_TYPE_CREEPY
|
||||
"rct2.scenery_wall.wc15", // RCT1_WALL_TYPE_CREEPY_GATE
|
||||
"rct2.scenery_wall.wc16", // RCT1_WALL_TYPE_BARBED_WIRE_WITH_SNOW
|
||||
"rct2.scenery_wall.wc17", // RCT1_WALL_TYPE_WOODEN_PANEL_FENCE_WITH_SNOW
|
||||
"rct2.scenery_wall.wc18", // RCT1_WALL_TYPE_WOODEN_POST_FENCE_WITH_SNOW
|
||||
"rct2.scenery_wall.wmf", // RCT1_WALL_TYPE_MESH_FENCE
|
||||
"rct2.scenery_wall.wmfg", // RCT1_WALL_TYPE_MESH_FENCE_WITH_GATE
|
||||
"rct2.scenery_wall.wrw", // RCT1_WALL_TYPE_ROMAN
|
||||
"rct2.scenery_wall.wew", // RCT1_WALL_TYPE_EGYPTIAN
|
||||
"rct2.scenery_wall.whg", // RCT1_WALL_TYPE_HEDGE
|
||||
"rct2.scenery_wall.whgg", // RCT1_WALL_TYPE_HEDGE_WITH_GATE
|
||||
"rct1.scenery_wall.playing_card_wall_1", // RCT1_WALL_TYPE_BLUE_PLAYING_CARDS
|
||||
"rct1.scenery_wall.playing_card_wall_2", // RCT1_WALL_TYPE_RED_PLAYING_CARDS
|
||||
"rct2.scenery_wall.wsw", // RCT1_WALL_TYPE_WHITE_RAILING
|
||||
"rct2.scenery_wall.wswg", // RCT1_WALL_TYPE_WHITE_RAILING_WITH_GATE
|
||||
"rct2.scenery_wall.wmw", // RCT1_WALL_TYPE_MARTIAN
|
||||
"rct1aa.scenery_wall.glass_wall", // RCT1_WALL_TYPE_GLASS_SMOOTH
|
||||
"rct1.scenery_wall.wooden_fence_brown", // RCT1_WALL_TYPE_WOODEN_PANEL_FENCE
|
||||
"rct1.scenery_wall.wooden_fence_brown_gate", // RCT1_WALL_TYPE_WOODEN_PANEL_FENCE_WITH_GATE
|
||||
"rct1aa.scenery_wall.wooden_post_wall_1", // RCT1_WALL_TYPE_WOODEN_POST_FENCE
|
||||
"rct1aa.scenery_wall.wooden_post_wall_2", // RCT1_WALL_TYPE_RED_WOODEN_POST_FENCE
|
||||
"rct2.scenery_wall.wpf", // RCT1_WALL_TYPE_BARBED_WIRE
|
||||
"rct2.scenery_wall.wpfg", // RCT1_WALL_TYPE_BARBED_WIRE_WITH_GATE
|
||||
"rct2.scenery_wall.wwtw", // RCT1_WALL_TYPE_PRIMITIVE_TALL_WOOD_FENCE
|
||||
"rct2.scenery_wall.wmww", // RCT1_WALL_TYPE_PRIMITIVE_SHORT_WOOD_FENCE
|
||||
"rct2.scenery_wall.wsw1", // RCT1_WALL_TYPE_IRON_RAILING
|
||||
"rct2.scenery_wall.wsw2", // RCT1_WALL_TYPE_IRON_RAILING_WITH_GATE
|
||||
"rct2.scenery_wall.wgw2", // RCT1_WALL_TYPE_GLASS_PANELS
|
||||
"rct2.scenery_wall.wbw", // RCT1_WALL_TYPE_BONE_FENCE
|
||||
"rct2.scenery_wall.wbr1", // RCT1_WALL_TYPE_BRICK
|
||||
"rct2.scenery_wall.wbrg", // RCT1_WALL_TYPE_BRICK_WITH_GATE
|
||||
"rct1.scenery_wall.wooden_fence_white", // RCT1_WALL_TYPE_WHITE_WOODEN_PANEL_FENCE
|
||||
"rct1.scenery_wall.wooden_fence_red", // RCT1_WALL_TYPE_RED_WOODEN_PANEL_FENCE
|
||||
"rct2.scenery_wall.wbr2", // RCT1_WALL_TYPE_STONE
|
||||
"rct2.scenery_wall.wbr3", // RCT1_WALL_TYPE_STONE_WITH_GATE
|
||||
"rct1ll.scenery_wall.medieval_wooden_fence", // RCT1_WALL_TYPE_WOODEN_FENCE
|
||||
"rct2.scenery_wall.wjf", // RCT1_WALL_TYPE_JUNGLE
|
||||
"rct2.scenery_wall.wch", // RCT1_WALL_TYPE_CONIFER_HEDGE
|
||||
"rct2.scenery_wall.wchg", // RCT1_WALL_TYPE_CONIFER_HEDGE_WITH_GATE
|
||||
"rct2.scenery_wall.wc1", // RCT1_WALL_TYPE_SMALL_BROWN_CASTLE
|
||||
"rct2.scenery_wall.wc2", // RCT1_WALL_TYPE_SMALL_GREY_CASTLE
|
||||
"rct1.scenery_wall.roman_column_wall", // RCT1_WALL_TYPE_ROMAN_COLUMN
|
||||
"rct2.scenery_wall.wc4", // RCT1_WALL_TYPE_LARGE_BROWN_CASTLE
|
||||
"rct2.scenery_wall.wc5", // RCT1_WALL_TYPE_LARGE_BROWN_CASTLE_CROSS
|
||||
"rct2.scenery_wall.wc6", // RCT1_WALL_TYPE_LARGE_BROWN_CASTLE_GATE
|
||||
"rct2.scenery_wall.wc7", // RCT1_WALL_TYPE_LARGE_BROWN_CASTLE_WINDOW
|
||||
"rct2.scenery_wall.wc8", // RCT1_WALL_TYPE_MEDIUM_BROWN_CASTLE
|
||||
"rct2.scenery_wall.wc9", // RCT1_WALL_TYPE_LARGE_GREY_CASTLE
|
||||
"rct2.scenery_wall.wc10", // RCT1_WALL_TYPE_LARGE_GREY_CASTLE_CROSS
|
||||
"rct2.scenery_wall.wc11", // RCT1_WALL_TYPE_LARGE_GREY_CASTLE_GATE
|
||||
"rct2.scenery_wall.wc12", // RCT1_WALL_TYPE_LARGE_GREY_CASTLE_WINDOW
|
||||
"rct2.scenery_wall.wc13", // RCT1_WALL_TYPE_MEDIUM_GREY_CASTLE
|
||||
"rct2.scenery_wall.wc14", // RCT1_WALL_TYPE_CREEPY
|
||||
"rct2.scenery_wall.wc15", // RCT1_WALL_TYPE_CREEPY_GATE
|
||||
"rct2.scenery_wall.wc16", // RCT1_WALL_TYPE_BARBED_WIRE_WITH_SNOW
|
||||
"rct1ll.scenery_wall.wooden_fence_brown_snow", // RCT1_WALL_TYPE_WOODEN_PANEL_FENCE_WITH_SNOW
|
||||
"rct2.scenery_wall.wc18", // RCT1_WALL_TYPE_WOODEN_POST_FENCE_WITH_SNOW
|
||||
};
|
||||
if (wallType < std::size(map))
|
||||
return map[wallType];
|
||||
|
@ -1322,6 +1322,23 @@ namespace RCT1
|
|||
return map[0];
|
||||
}
|
||||
|
||||
std::string_view GetBannerObject(BannerType bannerType)
|
||||
{
|
||||
static constexpr const char * map[] =
|
||||
{
|
||||
"rct2.footpath_banner.bn1", // BannerType::Plain
|
||||
"rct2.footpath_banner.bn2", // BannerType::Jungle
|
||||
"rct2.footpath_banner.bn3", // BannerType::Roman
|
||||
"rct2.footpath_banner.bn4", // BannerType::Egyptian
|
||||
"rct2.footpath_banner.bn5", // BannerType::Mine
|
||||
"rct2.footpath_banner.bn6", // BannerType::Jurassic
|
||||
"rct2.footpath_banner.bn7", // BannerType::Oriental
|
||||
"rct2.footpath_banner.bn8", // BannerType::Snow
|
||||
"rct2.footpath_banner.bn9", // BannerType::Space
|
||||
};
|
||||
return map[EnumValue(bannerType)];
|
||||
}
|
||||
|
||||
std::string_view GetPathSurfaceObject(uint8_t pathType)
|
||||
{
|
||||
static constexpr const char * map[] =
|
||||
|
@ -1438,13 +1455,13 @@ namespace RCT1
|
|||
{ "rct2.scenery_small.tic", "rct2.scenery_small.tlc", "rct2.scenery_small.tmc", "rct2.scenery_small.tmp", "rct2.scenery_small.titc", "rct2.scenery_small.tghc", "rct2.scenery_small.tac", "rct2.scenery_small.tghc2", "rct2.scenery_small.tcj", "rct2.scenery_small.tmbj", "rct2.scenery_small.tcf", "rct2.scenery_small.tcl", "rct2.scenery_small.trf", "rct2.scenery_small.trf2", "rct2.scenery_small.tel", "rct2.scenery_small.tap", "rct2.scenery_small.tsp", "rct2.scenery_small.tmzp", "rct2.scenery_small.tcrp", "rct2.scenery_small.tbp", "rct2.scenery_small.tlp", "rct2.scenery_small.twp", "rct2.scenery_small.tas", "rct2.scenery_small.tmg", "rct2.scenery_small.tww", "rct2.scenery_small.tsb", "rct2.scenery_small.tvl", "rct2.scenery_small.tcy", "rct2.scenery_small.tns", "rct2.scenery_small.twn", "rct2.scenery_small.tce", "rct2.scenery_small.tco", "rct2.scenery_small.thl", "rct2.scenery_small.tcc", "rct2.scenery_small.tf1", "rct2.scenery_small.tf2", "rct2.scenery_small.tct", "rct2.scenery_small.th1", "rct2.scenery_small.th2", "rct2.scenery_small.tpm", "rct2.scenery_small.tropt1",
|
||||
"rct2.scenery_small.ts0", "rct2.scenery_small.ts1", "rct2.scenery_small.ts2", "rct2.scenery_small.ts3", "rct2.scenery_small.ts4", "rct2.scenery_small.ts5", "rct2.scenery_small.ts6", "rct2.scenery_small.tef", "rct2.scenery_small.tal", "rct2.scenery_small.tsq", "rct2.scenery_small.tht", "rct2.scenery_small.tcb", "rct2.scenery_small.tdm", "rct2.scenery_small.tsd", "rct2.scenery_small.torn1", "rct2.scenery_small.torn2", "rct2.scenery_small.tgs", "rct2.scenery_small.tus", "rct2.scenery_small.tbc", "rct2.scenery_small.tsc", "rct2.scenery_small.twf", "rct2.scenery_small.tsh0", "rct2.scenery_small.tsh1", "rct2.scenery_small.tsh2", "rct2.scenery_small.tsh3", "rct2.scenery_small.tsh4", "rct2.scenery_small.tsh5", "rct2.scenery_small.tdf", "rct2.scenery_small.tsh", "rct2.scenery_small.thrs", "rct2.scenery_small.tstd", "rct2.scenery_small.tbr", "rct2.scenery_small.ttf", "rct2.scenery_wall.whg", "rct2.scenery_wall.whgg", "rct2.scenery_wall.wch", "rct2.scenery_wall.wchg",
|
||||
"rct2.scenery_small.tg1", "rct2.scenery_small.tg2", "rct2.scenery_small.tg3", "rct2.scenery_small.tg4", "rct2.scenery_small.tg5", "rct2.scenery_small.tg6", "rct2.scenery_small.tg7", "rct2.scenery_small.tg8", "rct2.scenery_small.tg9", "rct2.scenery_small.tg10", "rct2.scenery_small.tg11", "rct2.scenery_small.tg12", "rct2.scenery_small.tg13", "rct2.scenery_small.tg14", "rct2.scenery_small.tg15", "rct2.scenery_small.tg16", "rct2.scenery_small.tg17", "rct2.scenery_small.tg18", "rct2.scenery_small.tg19", "rct2.scenery_small.tg20", "rct2.scenery_small.tg21",
|
||||
"rct2.scenery_wall.wbr1a", "rct2.scenery_wall.wbr2a", "rct2.scenery_wall.wallbb34", "rct2.scenery_wall.walltn32", "rct2.scenery_small.tntroof1", "rct2.scenery_wall.wallbb33", "rct2.scenery_wall.wallbb32", "rct2.scenery_wall.wallbb16", "rct2.scenery_wall.wallbb8", "rct2.scenery_small.roof5", "rct2.scenery_small.roof7", "rct2.scenery_wall.wallrs32", "rct2.scenery_wall.wallrs16", "rct2.scenery_wall.wallrs8", "rct2.scenery_wall.wallbr32", "rct2.scenery_wall.wallbr16", "rct2.scenery_wall.wallbr8", "rct2.scenery_wall.wallbrdr", "rct2.scenery_wall.wallbrwn", "rct2.scenery_small.brbase", "rct2.scenery_small.roof1", "rct2.scenery_small.roof2", "rct2.scenery_small.roof3", "rct2.scenery_small.roof4", "rct2.scenery_wall.wallcb32", "rct2.scenery_wall.wallcb16", "rct2.scenery_wall.wallcb8", "rct2.scenery_wall.wallcbdr", "rct2.scenery_wall.wallcbwn", "rct2.scenery_small.brbase2", "rct2.scenery_small.cwbcrv33", "rct2.scenery_small.cwbcrv32", "rct2.scenery_small.brcrrf1", "rct2.scenery_small.roof6", "rct2.scenery_small.roof8", "rct2.scenery_wall.wallcf32", "rct2.scenery_wall.wallcf16", "rct2.scenery_wall.wallcf8", "rct2.scenery_wall.wallcfdr", "rct2.scenery_wall.wallcfwn", "rct2.scenery_wall.wallcfar", "rct2.scenery_small.brbase3", "rct2.scenery_small.cwfcrv33", "rct2.scenery_small.cwfcrv32", "rct2.scenery_small.brcrrf2", "rct2.scenery_small.roof9", "rct2.scenery_small.roof11", "rct2.scenery_small.roof10", "rct2.scenery_small.roof12", "rct2.scenery_small.corroof2", "rct2.scenery_wall.wallco16", "rct2.scenery_small.corroof", "rct2.scenery_wall.walllt32", "rct2.scenery_wall.wallsk16", "rct2.scenery_wall.wallsk32", "rct2.scenery_small.sktdw2", "rct2.scenery_small.sktdw", "rct2.scenery_small.sktbase", "rct2.scenery_small.sktbaset", "rct2.scenery_small.suppw2", "rct2.scenery_small.suppw1", "rct2.scenery_small.suppw3", "rct2.scenery_small.suppleg1", "rct2.scenery_small.suppleg2", "rct2.scenery_small.sumrf", "rct2.scenery_wall.wallrh32",
|
||||
"rct2.scenery_wall.wmf", "rct2.scenery_wall.wmfg", "rct2.scenery_wall.wsw", "rct2.scenery_wall.wswg", "rct2.scenery_wall.wfw1", "rct1.scenery_wall.wooden_fence_red", "rct2.scenery_wall.wfwg", "rct2.scenery_wall.wpf", "rct2.scenery_wall.wpfg", "rct2.scenery_wall.wsw1", "rct2.scenery_wall.wsw2", "rct2.scenery_wall.wbr1", "rct2.scenery_wall.wbrg", "rct2.scenery_wall.wbr2", "rct2.scenery_wall.wbr3", "rct2.scenery_wall.wallmm16", "rct2.scenery_wall.wallmm17",
|
||||
"rct2.scenery_wall.wbr1a", "rct2.scenery_wall.wbr2a", "rct2.scenery_wall.wallbb34", "rct2.scenery_wall.walltn32", "rct2.scenery_small.tntroof1", "rct2.scenery_wall.wallbb33", "toontowner.scenery_small.xxbbbr01_fix", "rct2.scenery_wall.wallbb32", "rct2.scenery_wall.wallbb16", "rct2.scenery_wall.wallbb8", "rct2.scenery_small.roof5", "rct2.scenery_small.roof7", "rct2.scenery_wall.wallrs32", "rct2.scenery_wall.wallrs16", "rct2.scenery_wall.wallrs8", "rct2.scenery_wall.wallbr32", "rct2.scenery_wall.wallbr16", "rct2.scenery_wall.wallbr8", "rct2.scenery_wall.wallbrdr", "rct2.scenery_wall.wallbrwn", "rct2.scenery_small.brbase", "rct2.scenery_small.roof1", "toontowner.scenery_small.ttrftl02", "toontowner.scenery_small.ttrftl03", "toontowner.scenery_small.ttrftl04", "rct2.scenery_small.roof2", "rct2.scenery_small.roof3", "toontowner.scenery_small.ttrftl07", "toontowner.scenery_small.ttrftl08", "rct2.scenery_small.roof4", "rct2.scenery_wall.wallcb32", "rct2.scenery_wall.wallcb16", "rct2.scenery_wall.wallcb8", "rct2.scenery_wall.wallcbdr", "rct2.scenery_wall.wallcbwn", "rct2.scenery_small.brbase2", "rct2.scenery_small.cwbcrv33", "rct2.scenery_small.cwbcrv32", "rct2.scenery_small.brcrrf1", "rct2.scenery_small.roof6", "rct2.scenery_small.roof8", "rct2.scenery_wall.wallcf32", "rct2.scenery_wall.wallcf16", "rct2.scenery_wall.wallcf8", "rct2.scenery_wall.wallcfdr", "rct2.scenery_wall.wallcfwn", "rct2.scenery_wall.wallcfar", "rct2.scenery_small.brbase3", "rct2.scenery_small.cwfcrv33", "rct2.scenery_small.cwfcrv32", "rct2.scenery_small.brcrrf2", "rct2.scenery_small.roof9", "rct2.scenery_small.roof11", "rct2.scenery_small.roof10", "rct2.scenery_small.roof12", "rct2.scenery_small.corroof2", "rct2.scenery_wall.wallco16", "rct2.scenery_small.corroof", "rct2.scenery_wall.walllt32", "rct2.scenery_wall.wallsk16", "rct2.scenery_wall.wallsk32", "rct2.scenery_small.sktdw2", "rct2.scenery_small.sktdw", "rct2.scenery_small.sktbase", "rct2.scenery_small.sktbaset", "rct2.scenery_small.suppw2", "rct2.scenery_small.suppw1", "rct2.scenery_small.suppw3", "rct2.scenery_small.suppleg1", "rct2.scenery_small.suppleg2", "rct2.scenery_small.sumrf", "rct2.scenery_wall.wallrh32",
|
||||
"rct2.scenery_wall.wmf", "rct2.scenery_wall.wmfg", "rct2.scenery_wall.wsw", "rct2.scenery_wall.wswg", "rct2.scenery_wall.wfw1", "rct2.scenery_wall.wfwg", "rct1.scenery_wall.wooden_fence_brown", "rct1.scenery_wall.wooden_fence_brown_gate", "rct1.scenery_wall.wooden_fence_red", "rct1.scenery_wall.wooden_fence_white", "rct2.scenery_wall.wpf", "rct2.scenery_wall.wpfg", "rct2.scenery_wall.wsw1", "rct2.scenery_wall.wsw2", "rct2.scenery_wall.wbr1", "rct2.scenery_wall.wbrg", "rct2.scenery_wall.wbr2", "rct2.scenery_wall.wbr3", "rct2.scenery_wall.wallmm16", "rct2.scenery_wall.wallmm17",
|
||||
"rct2.footpath_item.lamp1", "rct2.footpath_item.lamp2", "rct2.footpath_item.litter1", "rct2.footpath_item.bench1", "rct2.footpath_item.qtv1", "rct2.footpath_banner.bn1", "rct2.scenery_wall.wallpost", "rct2.scenery_wall.wallsign", "rct2.scenery_large.ssig1", "rct2.scenery_large.ssig2", "rct2.scenery_large.ssig3", "rct2.scenery_large.ssig4" },
|
||||
// RCT1_SCENERY_THEME_MINE
|
||||
{ "rct2.scenery_large.smh1", "rct2.scenery_large.smh2", "rct2.scenery_large.smn1", "rct2.scenery_small.tbw", "rct2.scenery_small.tbr1", "rct2.scenery_small.tbr2", "rct2.scenery_small.tml", "rct2.scenery_small.tmw", "rct2.scenery_small.tbr3", "rct2.scenery_small.tbr4", "rct2.scenery_small.tmj", "rct2.footpath_banner.bn5", "rct2.scenery_wall.wallwd8", "rct2.scenery_wall.wallwd16", "rct2.scenery_wall.wallwd32", "rct2.scenery_wall.wallwd33", "rct2.scenery_wall.wallmn32", "rct2.scenery_small.wdbase", "rct2.scenery_small.minroof1", "rct2.scenery_small.roof13", "rct2.footpath_item.littermn" },
|
||||
{ "rct2.scenery_large.smh1", "rct2.scenery_large.smh2", "rct2.scenery_large.smn1", "rct2.scenery_small.tbw", "rct2.scenery_small.tbr1", "rct2.scenery_small.tbr2", "rct2.scenery_small.tml", "rct2.scenery_small.tmw", "rct2.scenery_small.tbr3", "rct2.scenery_small.tbr4", "rct2.scenery_small.tmj", "rct2.footpath_banner.bn5", "rct2.scenery_wall.wallwd8", "rct2.scenery_wall.wallwd16", "rct2.scenery_wall.wallwd32", "rct2.scenery_wall.wallwd33", "rct2.scenery_wall.wallmn32", "rct2.scenery_small.wdbase", "rct2.scenery_small.minroof1", "rct2.scenery_small.roof13", "toontowner.scenery_small.ttrfwd01", "toontowner.scenery_small.ttrfwd02", "toontowner.scenery_small.ttrfwd03", "toontowner.scenery_small.ttrfwd04", "toontowner.scenery_small.ttrfwd06", "toontowner.scenery_small.ttrfwd07", "toontowner.scenery_small.ttrfwd08", "rct2.footpath_item.littermn" },
|
||||
// RCT1_SCENERY_THEME_CLASSICAL_ROMAN
|
||||
{ "rct2.scenery_large.scol", "rct2.scenery_small.tt1", "rct2.scenery_small.trms", "rct2.scenery_small.trws", "rct2.scenery_small.trc", "rct2.scenery_small.tqf", "rct2.scenery_wall.wrw", "rct2.scenery_wall.wrwa", "rct2.scenery_small.romroof2", "rct2.scenery_wall.wc3", "rct2.scenery_small.romroof1", "rct2.footpath_banner.bn3" },
|
||||
{ "rct2.scenery_large.scol", "rct2.scenery_small.tt1", "rct2.scenery_small.trms", "rct2.scenery_small.trws", "rct2.scenery_small.trc", "rct2.scenery_small.tqf", "rct2.scenery_wall.wrw", "rct2.scenery_wall.wrwa", "rct2.scenery_small.romroof2", "rct1.scenery_wall.roman_column_wall", "rct2.scenery_wall.wc3", "rct2.scenery_small.romroof1", "rct2.footpath_banner.bn3" },
|
||||
// RCT1_SCENERY_THEME_EGYPTIAN
|
||||
{ "rct2.scenery_large.sspx", "rct2.scenery_large.scln", "rct2.scenery_large.spyr", "rct2.scenery_small.tes1", "rct2.scenery_small.ten", "rct2.scenery_small.ters", "rct2.scenery_small.terb", "rct2.scenery_small.tep", "rct2.scenery_wall.wew", "rct2.footpath_item.lamp3", "rct2.footpath_banner.bn4", "rct2.footpath_item.benchstn" },
|
||||
// RCT1_SCENERY_THEME_MARTIAN
|
||||
|
@ -1452,21 +1469,21 @@ namespace RCT1
|
|||
// RCT1_SCENERY_THEME_JUMPING_FOUNTAINS (Single researchable scenery item)
|
||||
{ "rct2.footpath_item.jumpfnt1" },
|
||||
// RCT1_SCENERY_THEME_WONDERLAND
|
||||
{ "rct2.scenery_small.twh1", "rct2.scenery_small.twh2", "rct2.scenery_small.tst1", "rct2.scenery_small.tst2", "rct2.scenery_small.tms1", "rct2.scenery_small.tst3", "rct2.scenery_small.tst4", "rct2.scenery_small.tst5", "rct2.scenery_small.tas1", "rct2.scenery_small.tas2", "rct2.scenery_small.tas3", "rct2.scenery_small.tas4", "rct2.scenery_small.chbbase", "rct2.scenery_small.tp1", "rct2.scenery_small.tp2", "rct2.scenery_small.tk1", "rct2.scenery_small.tk2", "rct2.scenery_small.tr1", "rct2.scenery_small.tr2", "rct2.scenery_small.tq1", "rct2.scenery_small.tq2", "rct2.scenery_small.tb1", "rct2.scenery_small.tb2", "rct2.scenery_small.tk3", "rct2.scenery_small.tk4", "rct2.scenery_wall.wcw1", "rct2.scenery_wall.wcw2" },
|
||||
{ "rct2.scenery_small.twh1", "rct2.scenery_small.twh2", "rct2.scenery_small.tst1", "rct2.scenery_small.tst2", "rct2.scenery_small.tms1", "rct2.scenery_small.tst3", "rct2.scenery_small.tst4", "rct2.scenery_small.tst5", "rct2.scenery_small.tas1", "rct2.scenery_small.tas2", "rct2.scenery_small.tas3", "rct2.scenery_small.tas4", "rct2.scenery_small.chbbase", "rct2.scenery_small.tp1", "rct2.scenery_small.tp2", "rct2.scenery_small.tk1", "rct2.scenery_small.tk2", "rct2.scenery_small.tr1", "rct2.scenery_small.tr2", "rct2.scenery_small.tq1", "rct2.scenery_small.tq2", "rct2.scenery_small.tb1", "rct2.scenery_small.tb2", "rct2.scenery_small.tk3", "rct2.scenery_small.tk4", "rct1.scenery_wall.playing_card_wall_1", "rct1.scenery_wall.playing_card_wall_2", "rct2.scenery_wall.wcw1", "rct2.scenery_wall.wcw2" },
|
||||
// RCT1_SCENERY_THEME_JURASSIC
|
||||
{ "rct2.scenery_small.tbn", "rct2.scenery_small.tbn1", "rct2.scenery_small.tdn4", "rct2.scenery_small.tdn5", "rct2.scenery_large.sdn1", "rct2.scenery_large.sdn2", "rct2.scenery_large.sdn3", "rct2.scenery_wall.wwtw", "rct2.scenery_wall.wmww", "rct2.scenery_wall.wwtwa", "rct2.scenery_wall.wbw", "rct2.footpath_banner.bn6" },
|
||||
// RCT1_SCENERY_THEME_SPOOKY,
|
||||
{ "rct2.scenery_large.ssk1", "rct2.scenery_small.tdt1", "rct2.scenery_small.tdt2", "rct2.scenery_small.tdt3", "rct2.scenery_small.tmm1", "rct2.scenery_small.tmm2", "rct2.scenery_small.tmm3", "rct2.scenery_small.tgs1", "rct2.scenery_small.tgs2", "rct2.scenery_small.tgs3", "rct2.scenery_small.tgs4", "rct2.scenery_small.smskull", "rct2.scenery_wall.wallrk32" },
|
||||
// RCT1_SCENERY_THEME_JUNGLE
|
||||
{ "rct2.scenery_small.tjt1", "rct2.scenery_small.tjt2", "rct2.scenery_small.tjb1", "rct2.scenery_small.tjt3", "rct2.scenery_small.tjt4", "rct2.scenery_small.tjp1", "rct2.scenery_small.tjb2", "rct2.scenery_small.tjt5", "rct2.scenery_small.tjb3", "rct2.scenery_small.tjb4", "rct2.scenery_small.tjt6", "rct2.scenery_small.tjp2", "rct2.scenery_small.tjf", "rct2.scenery_wall.wpw1", "rct2.scenery_wall.wpw2", "rct2.scenery_wall.wjf", "rct2.footpath_banner.bn2", "rct2.scenery_wall.walljn32", "rct2.scenery_small.jngroof1", "rct2.scenery_small.roof14", "rct2.footpath_item.benchlog" },
|
||||
{ "rct2.scenery_small.tjt1", "rct2.scenery_small.tjt2", "rct2.scenery_small.tjb1", "rct2.scenery_small.tjt3", "rct2.scenery_small.tjt4", "rct2.scenery_small.tjp1", "rct2.scenery_small.tjb2", "rct2.scenery_small.tjt5", "rct2.scenery_small.tjb3", "rct2.scenery_small.tjb4", "rct2.scenery_small.tjt6", "rct2.scenery_small.tjp2", "rct2.scenery_small.tjf", "rct1aa.scenery_wall.wooden_post_wall_1", "rct1aa.scenery_wall.wooden_post_wall_2", "rct2.scenery_wall.wpw1", "rct2.scenery_wall.wpw2", "rct2.scenery_wall.wjf", "couger.scenery_wall.acwwf32", "couger.scenery_wall.acww33", "rct2.footpath_banner.bn2", "rct2.scenery_wall.walljn32", "rct2.scenery_small.jngroof1", "rct2.scenery_small.roof14", "rct2.footpath_item.benchlog" },
|
||||
// RCT1_SCENERY_THEME_ABSTRACT
|
||||
{ "rct2.scenery_small.tge1", "rct2.scenery_small.tge2", "rct2.scenery_small.tge3", "rct2.scenery_small.tge4", "rct2.scenery_small.tge5", "rct2.scenery_small.tgc1", "rct2.scenery_small.tgc2", "rct2.scenery_wall.wallgl8", "rct2.scenery_wall.wallgl16", "rct2.scenery_wall.wallgl32", "rct2.scenery_small.georoof1", "rct2.scenery_wall.wgw2", "rct2.scenery_small.georoof2" },
|
||||
{ "rct2.scenery_small.tge1", "rct2.scenery_small.tge2", "rct2.scenery_small.tge3", "rct2.scenery_small.tge4", "rct2.scenery_small.tge5", "rct2.scenery_small.tgc1", "rct2.scenery_small.tgc2", "rct2.scenery_wall.wallgl8", "rct2.scenery_wall.wallgl16", "rct2.scenery_wall.wallgl32", "rct2.scenery_small.georoof1", "rct2.scenery_wall.wgw2", "rct1aa.scenery_wall.glass_wall", "toontowner.scenery_small.ttrfgl01", "toontowner.scenery_small.ttrfgl02", "rct2.scenery_small.georoof2", "toontowner.scenery_small.ttrfgl03" },
|
||||
// RCT1_SCENERY_THEME_GARDEN_CLOCK (Single researchable scenery item)
|
||||
{ "rct2.scenery_small.tck" },
|
||||
// RCT1_SCENERY_THEME_SNOW_ICE
|
||||
{ "rct2.scenery_large.sip", "rct2.scenery_small.tsm", "rct2.scenery_small.tig", "rct2.scenery_small.tsf1", "rct2.scenery_small.tsf2", "rct2.scenery_small.tsf3", "rct2.scenery_small.tsnc", "rct2.scenery_small.tsnb", "rct2.scenery_wall.wc16", "rct2.scenery_wall.wc17", "rct2.scenery_wall.wc18", "rct2.footpath_item.jumpsnw1", "rct2.scenery_small.tcfs", "rct2.scenery_small.trfs", "rct2.scenery_small.trf3", "rct2.scenery_small.tnss", "rct2.footpath_banner.bn8", "rct2.scenery_wall.wallig16", "rct2.scenery_wall.wallig24", "rct2.scenery_small.igroof" },
|
||||
{ "rct2.scenery_large.sip", "rct2.scenery_small.tsm", "rct2.scenery_small.tig", "rct2.scenery_small.tsf1", "rct2.scenery_small.tsf2", "rct2.scenery_small.tsf3", "rct2.scenery_small.tsnc", "rct2.scenery_small.tsnb", "rct2.scenery_wall.wc16", "rct1ll.scenery_wall.wooden_fence_brown_snow", "rct2.scenery_wall.wc17", "rct2.scenery_wall.wc18", "rct2.footpath_item.jumpsnw1", "rct2.scenery_small.tcfs", "rct2.scenery_small.trfs", "rct2.scenery_small.trf3", "rct2.scenery_small.tnss", "rct2.footpath_banner.bn8", "rct2.scenery_wall.wallig16", "rct2.scenery_wall.wallig24", "rct2.scenery_small.igroof" },
|
||||
// RCT1_SCENERY_THEME_MEDIEVAL
|
||||
{ "rct2.scenery_small.tct1", "rct2.scenery_large.stb1", "rct2.scenery_large.stb2", "rct2.scenery_wall.wc1", "rct2.scenery_wall.wc4", "rct2.scenery_wall.wc5", "rct2.scenery_wall.wc6", "rct2.scenery_wall.wc7", "rct2.scenery_wall.wc8", "rct2.scenery_wall.wallcz32", "rct2.scenery_wall.wallcy32", "rct2.scenery_small.tct2", "rct2.scenery_large.stg1", "rct2.scenery_large.stg2", "rct2.scenery_wall.wc2", "rct2.scenery_wall.wc9", "rct2.scenery_wall.wc10", "rct2.scenery_wall.wc11", "rct2.scenery_wall.wc12", "rct2.scenery_wall.wc13", "rct2.scenery_wall.wallcw32", "rct2.scenery_wall.wallcx32", "rct2.scenery_small.tcn", "rct2.scenery_small.ttg", "rct2.scenery_large.sct", "rct2.scenery_large.soh1", "rct2.scenery_large.soh2", "rct2.scenery_large.soh3", "rct2.scenery_wall.wpw3", "rct2.scenery_wall.wallcfpc", "rct2.scenery_wall.wallcbpc" },
|
||||
{ "rct2.scenery_small.tct1", "rct2.scenery_large.stb1", "rct2.scenery_large.stb2", "rct2.scenery_wall.wc1", "rct2.scenery_wall.wc4", "rct2.scenery_wall.wc5", "rct2.scenery_wall.wc6", "rct2.scenery_wall.wc7", "rct2.scenery_wall.wc8", "rct2.scenery_wall.wallcz32", "rct2.scenery_wall.wallcy32", "rct2.scenery_small.tct2", "rct2.scenery_large.stg1", "rct2.scenery_large.stg2", "rct2.scenery_wall.wc2", "rct2.scenery_wall.wc9", "rct2.scenery_wall.wc10", "rct2.scenery_wall.wc11", "rct2.scenery_wall.wc12", "rct2.scenery_wall.wc13", "rct2.scenery_wall.wallcw32", "rct2.scenery_wall.wallcx32", "rct2.scenery_small.tcn", "rct2.scenery_small.ttg", "rct2.scenery_large.sct", "rct2.scenery_large.soh1", "rct2.scenery_large.soh2", "rct2.scenery_large.soh3", "rct1ll.scenery_wall.medieval_wooden_fence", "rct2.scenery_wall.wpw3", "rct2.scenery_wall.wallcfpc", "rct2.scenery_wall.wallcbpc" },
|
||||
// RCT1_SCENERY_THEME_SPACE
|
||||
{ "rct2.scenery_large.ssr", "rct2.scenery_large.sst", "rct2.scenery_large.ssh", "rct2.scenery_small.tscp", "rct2.scenery_small.tsph", "rct2.scenery_small.tsc2", "rct2.scenery_small.tsp1", "rct2.scenery_small.tsp2", "rct2.scenery_wall.wallsp32", "rct2.scenery_small.spcroof1", "rct2.footpath_banner.bn9", "rct2.footpath_item.benchspc", "rct2.footpath_item.littersp" },
|
||||
// RCT1_SCENERY_THEME_CREEPY
|
||||
|
@ -1487,4 +1504,17 @@ namespace RCT1
|
|||
|
||||
return origTrackType;
|
||||
}
|
||||
|
||||
bool VehicleTypeIsReversed(const VehicleType vehicleType)
|
||||
{
|
||||
switch (vehicleType)
|
||||
{
|
||||
case VehicleType::SteelRollerCoasterTrainBackwards:
|
||||
case VehicleType::WoodenRollerCoasterTrainBackwards:
|
||||
case VehicleType::HeartlineTwisterCarsReversed:
|
||||
return true;
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
}
|
||||
} // namespace RCT1
|
||||
|
|
|
@ -11,6 +11,7 @@
|
|||
|
||||
#include "../common.h"
|
||||
#include "../entity/Peep.h"
|
||||
#include "RCT1.h"
|
||||
|
||||
#include <vector>
|
||||
|
||||
|
@ -27,15 +28,15 @@ namespace RCT1
|
|||
colour_t GetColour(colour_t colour);
|
||||
::PeepSpriteType GetPeepSpriteType(PeepSpriteType rct1SpriteType);
|
||||
|
||||
uint8_t GetRideType(RideType rideType, uint8_t vehicleType);
|
||||
VehicleColourSchemeCopyDescriptor GetColourSchemeCopyDescriptor(uint8_t vehicleType);
|
||||
uint8_t GetRideType(RideType rideType, VehicleType vehicleType);
|
||||
VehicleColourSchemeCopyDescriptor GetColourSchemeCopyDescriptor(VehicleType vehicleType);
|
||||
bool RideTypeUsesVehicles(RideType rideType);
|
||||
bool PathIsQueue(uint8_t pathType);
|
||||
uint8_t NormalisePathAddition(uint8_t pathAdditionType);
|
||||
uint8_t GetVehicleSubEntryIndex(uint8_t rct1VehicleType, uint8_t vehicleSubEntry);
|
||||
uint8_t GetVehicleSubEntryIndex(VehicleType rct1VehicleType, uint8_t vehicleSubEntry);
|
||||
|
||||
std::string_view GetRideTypeObject(RideType rideType, bool isLL);
|
||||
std::string_view GetVehicleObject(uint8_t vehicleType);
|
||||
std::string_view GetVehicleObject(VehicleType vehicleType);
|
||||
std::string_view GetSmallSceneryObject(uint8_t smallSceneryType);
|
||||
std::string_view GetLargeSceneryObject(uint8_t largeSceneryType);
|
||||
/**
|
||||
|
@ -43,6 +44,7 @@ namespace RCT1
|
|||
*/
|
||||
int32_t MapSlopedWall(uint8_t wallType);
|
||||
std::string_view GetWallObject(uint8_t wallType);
|
||||
std::string_view GetBannerObject(BannerType bannerType);
|
||||
std::string_view GetPathSurfaceObject(uint8_t pathType);
|
||||
std::string_view GetPathAddtionObject(uint8_t pathAdditionType);
|
||||
std::string_view GetFootpathRailingsObject(uint8_t footpathRailingsType);
|
||||
|
@ -52,4 +54,6 @@ namespace RCT1
|
|||
std::string_view GetTerrainEdgeObject(uint8_t terrainEdge);
|
||||
|
||||
const std::vector<const char*> GetSceneryObjects(uint8_t sceneryType);
|
||||
|
||||
bool VehicleTypeIsReversed(const VehicleType vehicleType);
|
||||
} // namespace RCT1
|
||||
|
|
|
@ -29,7 +29,7 @@ constexpr RideTypeDescriptor DodgemsRTD =
|
|||
RIDE_TYPE_FLAG_CANNOT_HAVE_GAPS | RIDE_TYPE_FLAG_NO_TEST_MODE | RIDE_TYPE_FLAG_TRACK_NO_WALLS |
|
||||
RIDE_TYPE_FLAG_FLAT_RIDE | RIDE_TYPE_FLAG_HAS_VEHICLE_COLOURS | RIDE_TYPE_FLAG_MUSIC_ON_DEFAULT |
|
||||
RIDE_TYPE_FLAG_ALLOW_MUSIC | RIDE_TYPE_FLAG_HAS_ENTRANCE_EXIT |
|
||||
RIDE_TYPE_FLAG_SLIGHTLY_INTERESTING_TO_LOOK_AT | RIDE_TYPE_FLAG_LIST_VEHICLES_SEPARATELY,
|
||||
RIDE_TYPE_FLAG_SLIGHTLY_INTERESTING_TO_LOOK_AT,
|
||||
.RideModes = EnumsToFlags(RideMode::Dodgems),
|
||||
.DefaultMode = RideMode::Dodgems,
|
||||
.OperatingSettings = { 20, 180, 0, 0, 0, 0 },
|
||||
|
|
|
@ -28,8 +28,7 @@ constexpr RideTypeDescriptor FlyingSaucersRTD =
|
|||
RIDE_TYPE_FLAG_HAS_SINGLE_PIECE_STATION | RIDE_TYPE_FLAG_CANNOT_HAVE_GAPS | RIDE_TYPE_FLAG_NO_TEST_MODE |
|
||||
RIDE_TYPE_FLAG_TRACK_NO_WALLS | RIDE_TYPE_FLAG_FLAT_RIDE | RIDE_TYPE_FLAG_HAS_VEHICLE_COLOURS |
|
||||
RIDE_TYPE_FLAG_MUSIC_ON_DEFAULT | RIDE_TYPE_FLAG_ALLOW_MUSIC | RIDE_TYPE_FLAG_HAS_ENTRANCE_EXIT |
|
||||
RIDE_TYPE_FLAG_SINGLE_SESSION | RIDE_TYPE_FLAG_INTERESTING_TO_LOOK_AT |
|
||||
RIDE_TYPE_FLAG_LIST_VEHICLES_SEPARATELY,
|
||||
RIDE_TYPE_FLAG_SINGLE_SESSION | RIDE_TYPE_FLAG_INTERESTING_TO_LOOK_AT,
|
||||
.RideModes = EnumsToFlags(RideMode::Dodgems),
|
||||
.DefaultMode = RideMode::Dodgems,
|
||||
.OperatingSettings = { 20, 180, 0, 0, 0, 0 },
|
||||
|
|
|
@ -26,7 +26,7 @@ constexpr RideTypeDescriptor MazeRTD =
|
|||
.StartTrackPiece = TrackElemType::Maze,
|
||||
.TrackPaintFunctions = TrackDrawerDescriptor(GetTrackPaintFunctionMaze),
|
||||
.Flags = RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_SUPPORTS | RIDE_TYPE_FLAG_HAS_SINGLE_PIECE_STATION | RIDE_TYPE_FLAG_NO_TEST_MODE | RIDE_TYPE_FLAG_NO_VEHICLES |
|
||||
RIDE_TYPE_FLAG_TRACK_NO_WALLS | RIDE_TYPE_FLAG_IN_RIDE | RIDE_TYPE_FLAG_HAS_TRACK | RIDE_TYPE_FLAG_HAS_ENTRANCE_EXIT | RIDE_TYPE_FLAG_LIST_VEHICLES_SEPARATELY |
|
||||
RIDE_TYPE_FLAG_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,
|
||||
.RideModes = EnumsToFlags(RideMode::Maze),
|
||||
.DefaultMode = RideMode::Maze,
|
||||
|
|
|
@ -26,7 +26,7 @@ constexpr RideTypeDescriptor MiniGolfRTD =
|
|||
.TrackPaintFunctions = TrackDrawerDescriptor(GetTrackPaintFunctionMiniGolf),
|
||||
.Flags = RIDE_TYPE_FLAGS_TRACK_HAS_3_COLOURS | RIDE_TYPE_FLAG_NO_TEST_MODE | RIDE_TYPE_FLAG_HAS_TRACK | RIDE_TYPE_FLAG_HAS_ONE_STATION |
|
||||
RIDE_TYPE_FLAG_SUPPORTS_MULTIPLE_TRACK_COLOUR | RIDE_TYPE_FLAG_ALLOW_MUSIC | RIDE_TYPE_FLAG_HAS_ENTRANCE_EXIT |
|
||||
RIDE_TYPE_FLAG_SLIGHTLY_INTERESTING_TO_LOOK_AT | RIDE_TYPE_FLAG_LIST_VEHICLES_SEPARATELY,
|
||||
RIDE_TYPE_FLAG_SLIGHTLY_INTERESTING_TO_LOOK_AT,
|
||||
.RideModes = EnumsToFlags(RideMode::ContinuousCircuit),
|
||||
.DefaultMode = RideMode::ContinuousCircuit,
|
||||
.OperatingSettings = { 0, 0, 0, 0, 0, 0 },
|
||||
|
|
|
@ -429,12 +429,14 @@ static std::vector<ScenerySelection> GetAllMiscScenery()
|
|||
{
|
||||
std::vector<ScenerySelection> miscScenery;
|
||||
std::vector<ScenerySelection> nonMiscScenery;
|
||||
std::vector<ObjectEntryIndex> sceneryGroupIds;
|
||||
for (ObjectEntryIndex i = 0; i < MAX_SCENERY_GROUP_OBJECTS; i++)
|
||||
{
|
||||
const auto* sgEntry = OpenRCT2::ObjectManager::GetObjectEntry<SceneryGroupEntry>(i);
|
||||
if (sgEntry != nullptr)
|
||||
{
|
||||
nonMiscScenery.insert(nonMiscScenery.end(), sgEntry->SceneryEntries.begin(), sgEntry->SceneryEntries.end());
|
||||
sceneryGroupIds.emplace_back(i);
|
||||
}
|
||||
}
|
||||
for (uint8_t sceneryType = SCENERY_TYPE_SMALL; sceneryType < SCENERY_TYPE_COUNT; sceneryType++)
|
||||
|
@ -442,6 +444,59 @@ static std::vector<ScenerySelection> GetAllMiscScenery()
|
|||
const auto maxObjects = GetMaxObjectsForSceneryType(sceneryType);
|
||||
for (ObjectEntryIndex i = 0; i < maxObjects; i++)
|
||||
{
|
||||
ObjectEntryIndex linkedSceneryGroup = OBJECT_ENTRY_INDEX_NULL;
|
||||
const auto objectType = GetObjectTypeFromSceneryType(sceneryType);
|
||||
switch (objectType)
|
||||
{
|
||||
case ObjectType::SmallScenery:
|
||||
{
|
||||
const auto* objectEntry = OpenRCT2::ObjectManager::GetObjectEntry<SmallSceneryEntry>(i);
|
||||
if (objectEntry != nullptr)
|
||||
linkedSceneryGroup = objectEntry->scenery_tab_id;
|
||||
break;
|
||||
}
|
||||
case ObjectType::LargeScenery:
|
||||
{
|
||||
const auto* objectEntry = OpenRCT2::ObjectManager::GetObjectEntry<LargeSceneryEntry>(i);
|
||||
if (objectEntry != nullptr)
|
||||
linkedSceneryGroup = objectEntry->scenery_tab_id;
|
||||
break;
|
||||
}
|
||||
case ObjectType::Walls:
|
||||
{
|
||||
const auto* objectEntry = OpenRCT2::ObjectManager::GetObjectEntry<WallSceneryEntry>(i);
|
||||
if (objectEntry != nullptr)
|
||||
linkedSceneryGroup = objectEntry->scenery_tab_id;
|
||||
break;
|
||||
}
|
||||
case ObjectType::Banners:
|
||||
{
|
||||
const auto* objectEntry = OpenRCT2::ObjectManager::GetObjectEntry<BannerSceneryEntry>(i);
|
||||
if (objectEntry != nullptr)
|
||||
linkedSceneryGroup = objectEntry->scenery_tab_id;
|
||||
break;
|
||||
}
|
||||
case ObjectType::PathAdditions:
|
||||
{
|
||||
const auto* objectEntry = OpenRCT2::ObjectManager::GetObjectEntry<PathAdditionEntry>(i);
|
||||
if (objectEntry != nullptr)
|
||||
linkedSceneryGroup = objectEntry->scenery_tab_id;
|
||||
break;
|
||||
}
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
// An object may be link itself against a scenery group, in which case it should not be marked as miscellaneous.
|
||||
if (linkedSceneryGroup != OBJECT_ENTRY_INDEX_NULL)
|
||||
{
|
||||
if (std::find(std::begin(sceneryGroupIds), std::end(sceneryGroupIds), linkedSceneryGroup)
|
||||
!= std::end(sceneryGroupIds))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
const ScenerySelection sceneryItem = { sceneryType, i };
|
||||
if (IsSceneryEntryValid(sceneryItem))
|
||||
{
|
||||
|
|
Loading…
Reference in New Issue