mirror of https://github.com/OpenRCT2/OpenRCT2.git
start moving RCT1 importer to C++
This commit is contained in:
parent
72e625c5a3
commit
cf7b81fd3a
|
@ -95,6 +95,8 @@
|
|||
<ClCompile Include="src\platform\shared.c" />
|
||||
<ClCompile Include="src\platform\windows.c" />
|
||||
<ClCompile Include="src\rct1.c" />
|
||||
<ClCompile Include="src\rct1\S4Importer.cpp" />
|
||||
<ClCompile Include="src\rct1\tables.cpp" />
|
||||
<ClCompile Include="src\rct2.c" />
|
||||
<ClCompile Include="src\ride\cable_lift.c" />
|
||||
<ClCompile Include="src\ride\ride.c" />
|
||||
|
@ -268,6 +270,7 @@
|
|||
<ClInclude Include="src\platform\crash.h" />
|
||||
<ClInclude Include="src\platform\platform.h" />
|
||||
<ClInclude Include="src\rct1.h" />
|
||||
<ClInclude Include="src\rct1\import.h" />
|
||||
<ClInclude Include="src\rct2.h" />
|
||||
<ClInclude Include="src\ride\cable_lift.h" />
|
||||
<ClInclude Include="src\ride\ride.h" />
|
||||
|
@ -403,4 +406,4 @@
|
|||
</ItemDefinitionGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||
<ImportGroup Label="ExtensionTargets" />
|
||||
</Project>
|
||||
</Project>
|
||||
|
|
|
@ -591,6 +591,8 @@
|
|||
<ClCompile Include="src\windows\themes.c">
|
||||
<Filter>Source\Windows</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="src\rct1\tables.cpp" />
|
||||
<ClCompile Include="src\rct1\S4Importer.cpp" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="src\management\award.h">
|
||||
|
@ -902,6 +904,7 @@
|
|||
<ClInclude Include="src\core\List.hpp">
|
||||
<Filter>Source\Core</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="src\rct1\import.h" />
|
||||
<ClInclude Include="resources\resource.h">
|
||||
<Filter>Resource Files</Filter>
|
||||
</ClInclude>
|
||||
|
|
|
@ -22,6 +22,8 @@ public:
|
|||
|
||||
List() : std::vector<T>() { }
|
||||
|
||||
List(std::initializer_list<T> initializerList) : std::vector<T>(initializerList) { }
|
||||
|
||||
List(size_t capacity) : std::vector<T>(capacity) { }
|
||||
|
||||
List(const T * items, size_t count) : std::vector<T>(items, items + count) { }
|
||||
|
|
|
@ -0,0 +1,224 @@
|
|||
#include <Windows.h>
|
||||
|
||||
#include "../common.h"
|
||||
#include "../core/List.hpp"
|
||||
#include "../core/Util.hpp"
|
||||
#include "import.h"
|
||||
|
||||
extern "C"
|
||||
{
|
||||
#include "../rct1.h"
|
||||
#include "../util/sawyercoding.h"
|
||||
}
|
||||
|
||||
/**
|
||||
* Class to import RollerCoaster Tycoon 1 scenarios (*.SC4) and saved games (*.SV4).
|
||||
*/
|
||||
class S4Importer
|
||||
{
|
||||
public:
|
||||
|
||||
private:
|
||||
rct1_s4 _s4;
|
||||
uint8 _gameVersion;
|
||||
|
||||
// Lists of dynamic object entries
|
||||
List<const char *> _rideEntries;
|
||||
List<const char *> _smallSceneryEntries;
|
||||
List<const char *> _largeSceneryEntries;
|
||||
List<const char *> _wallEntries;
|
||||
List<const char *> _sceneryGroupEntries;
|
||||
|
||||
// Lookup tables for converting from RCT1 hard coded types to the new dynamic object entries
|
||||
uint8 _rideTypeToRideEntryMap[96];
|
||||
uint8 _vehicleTypeToRideEntryMap[96];
|
||||
uint8 _smallSceneryTypeToEntryMap[96];
|
||||
uint8 _largeSceneryTypeToEntryMap[96];
|
||||
uint8 _wallSceneryTypeToEntryMap[96];
|
||||
uint8 _sceneryThemeTypeToEntryMap[24];
|
||||
|
||||
void Initialise();
|
||||
|
||||
/**
|
||||
* Scans the map and research list for all the object types used and builds lists and
|
||||
* lookup tables for converting from hard coded RCT1 object types to dynamic object entries.
|
||||
*/
|
||||
void CreateAvailableObjectMappings();
|
||||
void AddAvailableEntriesFromResearchList();
|
||||
void AddAvailableEntriesFromMap();
|
||||
void AddAvailableEntriesFromRides();
|
||||
|
||||
void AddEntryForRideType(uint8 rideType);
|
||||
void AddEntryForVehicleType(uint8 rideType, uint8 vehicleType);
|
||||
void AddEntryForSmallScenery(uint8 smallSceneryType);
|
||||
void AddEntriesForSceneryTheme(uint8 sceneryThemeType);
|
||||
|
||||
const rct1_research_item * GetResearchList(size_t * count);
|
||||
};
|
||||
|
||||
void S4Importer::Initialise()
|
||||
{
|
||||
_gameVersion = sawyercoding_detect_rct1_version(_s4.game_version) & FILE_VERSION_MASK;
|
||||
|
||||
Memory::Set(_rideTypeToRideEntryMap, 255, sizeof(_rideTypeToRideEntryMap));
|
||||
Memory::Set(_vehicleTypeToRideEntryMap, 255, sizeof(_vehicleTypeToRideEntryMap));
|
||||
Memory::Set(_smallSceneryTypeToEntryMap, 255, sizeof(_smallSceneryTypeToEntryMap));
|
||||
Memory::Set(_largeSceneryTypeToEntryMap, 255, sizeof(_largeSceneryTypeToEntryMap));
|
||||
Memory::Set(_wallSceneryTypeToEntryMap, 255, sizeof(_wallSceneryTypeToEntryMap));
|
||||
Memory::Set(_sceneryThemeTypeToEntryMap, 255, sizeof(_sceneryThemeTypeToEntryMap));
|
||||
}
|
||||
|
||||
void S4Importer::CreateAvailableObjectMappings()
|
||||
{
|
||||
AddAvailableEntriesFromResearchList();
|
||||
AddAvailableEntriesFromMap();
|
||||
AddAvailableEntriesFromRides();
|
||||
}
|
||||
|
||||
void S4Importer::AddAvailableEntriesFromResearchList()
|
||||
{
|
||||
size_t researchListCount;
|
||||
const rct1_research_item * researchList = GetResearchList(&researchListCount);
|
||||
for (size_t i = 0; i < researchListCount; i++)
|
||||
{
|
||||
const rct1_research_item * researchItem = &researchList[i];
|
||||
if (researchItem->item == RCT1_RESEARCH_END_RESEARCHABLE ||
|
||||
researchItem->item == RCT1_RESEARCH_END)
|
||||
{
|
||||
break;
|
||||
}
|
||||
if (researchItem->item == RCT1_RESEARCH_END_AVAILABLE)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
switch (researchItem->category) {
|
||||
case RCT1_RESEARCH_CATEGORY_THEME:
|
||||
AddEntriesForSceneryTheme(researchItem->item);
|
||||
break;
|
||||
case RCT1_RESEARCH_CATEGORY_RIDE:
|
||||
{
|
||||
uint8 rideType = researchItem->item;
|
||||
|
||||
// Add all vehicles for this ride type
|
||||
uint32 numVehicles = 0;
|
||||
for (size_t j = 0; j < researchListCount; j++)
|
||||
{
|
||||
const rct1_research_item *researchItem2 = &researchList[j];
|
||||
if (researchItem2->item == RCT1_RESEARCH_END_RESEARCHABLE ||
|
||||
researchItem2->item == RCT1_RESEARCH_END_AVAILABLE)
|
||||
{
|
||||
break;
|
||||
}
|
||||
|
||||
if (researchItem2->category == RCT1_RESEARCH_CATEGORY_VEHICLE &&
|
||||
researchItem2->related_ride == rideType)
|
||||
{
|
||||
AddEntryForVehicleType(rideType, researchItem2->item);
|
||||
numVehicles++;
|
||||
}
|
||||
}
|
||||
|
||||
// If no vehicles found so just add the default for this ride
|
||||
if (numVehicles == 0)
|
||||
{
|
||||
AddEntryForRideType(rideType);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void S4Importer::AddAvailableEntriesFromMap()
|
||||
{
|
||||
size_t maxTiles = 128 * 128;
|
||||
size_t tileIndex = 0;
|
||||
rct_map_element * mapElement = _s4.map_elements;
|
||||
|
||||
while (tileIndex < maxTiles)
|
||||
{
|
||||
switch (map_element_get_type(mapElement)) {
|
||||
case MAP_ELEMENT_TYPE_SCENERY:
|
||||
AddEntryForSmallScenery(mapElement->properties.scenery.type);
|
||||
break;
|
||||
}
|
||||
|
||||
if (map_element_is_last_for_tile(mapElement++))
|
||||
{
|
||||
tileIndex++;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void S4Importer::AddAvailableEntriesFromRides()
|
||||
{
|
||||
for (size_t i = 0; i < Util::CountOf(_s4.rides); i++)
|
||||
{
|
||||
rct1_ride * ride = &_s4.rides[i];
|
||||
|
||||
// TODO might need to check if ride type has a vehicle type
|
||||
AddEntryForVehicleType(ride->type, ride->vehicle_type);
|
||||
}
|
||||
}
|
||||
|
||||
void S4Importer::AddEntryForRideType(uint8 rideType)
|
||||
{
|
||||
if (_rideTypeToRideEntryMap[rideType] == 255)
|
||||
{
|
||||
const char * entryName = RCT1::Tables::GetRideTypeObject(rideType);
|
||||
_rideEntries.Add(entryName);
|
||||
_rideTypeToRideEntryMap[rideType] = (uint8)_rideEntries.GetCount();
|
||||
}
|
||||
}
|
||||
|
||||
void S4Importer::AddEntryForVehicleType(uint8 rideType, uint8 vehicleType)
|
||||
{
|
||||
if (_vehicleTypeToRideEntryMap[rideType] == 255)
|
||||
{
|
||||
const char * entryName = RCT1::Tables::GetVehicleObject(vehicleType);
|
||||
|
||||
uint8 rideEntryIndex = (uint8)_rideEntries.GetCount();
|
||||
_vehicleTypeToRideEntryMap[vehicleType] = rideEntryIndex;
|
||||
_rideEntries.Add(entryName);
|
||||
|
||||
// Just overwrite this with the vehicle entry for now...
|
||||
_rideTypeToRideEntryMap[rideType] = rideEntryIndex;
|
||||
}
|
||||
}
|
||||
|
||||
void S4Importer::AddEntryForSmallScenery(uint8 smallSceneryType)
|
||||
{
|
||||
if (_smallSceneryTypeToEntryMap[smallSceneryType] == 255)
|
||||
{
|
||||
const char * entryName = RCT1::Tables::GetSmallSceneryObject(smallSceneryType);
|
||||
_smallSceneryEntries.Add(entryName);
|
||||
_smallSceneryTypeToEntryMap[smallSceneryType] = (uint8)_rideEntries.GetCount();
|
||||
}
|
||||
}
|
||||
|
||||
void S4Importer::AddEntriesForSceneryTheme(uint8 sceneryThemeType)
|
||||
{
|
||||
const char * entryName = RCT1::Tables::GetSceneryGroupObject(sceneryThemeType);
|
||||
|
||||
_sceneryThemeTypeToEntryMap[sceneryThemeType] = (uint8)_sceneryGroupEntries.GetCount();
|
||||
_sceneryGroupEntries.Add(entryName);
|
||||
|
||||
// TODO add entries for all scenery items belonging to scenery group
|
||||
}
|
||||
|
||||
const rct1_research_item * S4Importer::GetResearchList(size_t * count)
|
||||
{
|
||||
// Loopy Landscapes stores research items in a different place
|
||||
if (_gameVersion == FILE_VERSION_RCT1_LL)
|
||||
{
|
||||
*count = Util::CountOf(_s4.research_items_LL);
|
||||
return _s4.research_items_LL;
|
||||
}
|
||||
else
|
||||
{
|
||||
*count = Util::CountOf(_s4.research_items);
|
||||
return _s4.research_items;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,14 @@
|
|||
#pragma once
|
||||
|
||||
namespace RCT1
|
||||
{
|
||||
namespace Tables
|
||||
{
|
||||
const char * GetRideTypeObject(uint8 rideType);
|
||||
const char * GetVehicleObject(uint8 vehicleType);
|
||||
const char * GetSmallSceneryObject(uint8 smallSceneryType);
|
||||
const char * GetLargeSceneryObject(uint8 largeSceneryType);
|
||||
const char * GetWallObject(uint8 wallType);
|
||||
const char * GetSceneryGroupObject(uint8 sceneryGroupType);
|
||||
}
|
||||
}
|
|
@ -0,0 +1,832 @@
|
|||
#include <Windows.h>
|
||||
|
||||
#include "../common.h"
|
||||
#include "../core/List.hpp"
|
||||
#include "../ride/ride.h"
|
||||
#include "import.h"
|
||||
|
||||
namespace RCT1
|
||||
{
|
||||
const char * DefaultParkEntranceObject = "PKENT1 ";
|
||||
|
||||
namespace Tables
|
||||
{
|
||||
uint8 GetRideType(uint8 rideType)
|
||||
{
|
||||
static uint8 map[] =
|
||||
{
|
||||
RIDE_TYPE_WOODEN_ROLLER_COASTER,
|
||||
RIDE_TYPE_STAND_UP_ROLLER_COASTER,
|
||||
RIDE_TYPE_SUSPENDED_SWINGING_COASTER,
|
||||
RIDE_TYPE_INVERTED_ROLLER_COASTER,
|
||||
RIDE_TYPE_JUNIOR_ROLLER_COASTER,
|
||||
RIDE_TYPE_MINIATURE_RAILWAY,
|
||||
RIDE_TYPE_MONORAIL,
|
||||
RIDE_TYPE_MINI_SUSPENDED_COASTER,
|
||||
RIDE_TYPE_BOAT_RIDE,
|
||||
RIDE_TYPE_WOODEN_WILD_MOUSE,
|
||||
RIDE_TYPE_STEEPLECHASE,
|
||||
RIDE_TYPE_CAR_RIDE,
|
||||
RIDE_TYPE_LAUNCHED_FREEFALL,
|
||||
RIDE_TYPE_BOBSLEIGH_COASTER,
|
||||
RIDE_TYPE_OBSERVATION_TOWER,
|
||||
RIDE_TYPE_LOOPING_ROLLER_COASTER,
|
||||
RIDE_TYPE_DINGHY_SLIDE,
|
||||
RIDE_TYPE_MINE_TRAIN_COASTER,
|
||||
RIDE_TYPE_CHAIRLIFT,
|
||||
RIDE_TYPE_CORKSCREW_ROLLER_COASTER,
|
||||
RIDE_TYPE_MAZE,
|
||||
RIDE_TYPE_SPIRAL_SLIDE,
|
||||
RIDE_TYPE_GO_KARTS,
|
||||
RIDE_TYPE_LOG_FLUME,
|
||||
RIDE_TYPE_RIVER_RAPIDS,
|
||||
RIDE_TYPE_DODGEMS,
|
||||
RIDE_TYPE_PIRATE_SHIP,
|
||||
RIDE_TYPE_SWINGING_INVERTER_SHIP,
|
||||
RIDE_TYPE_FOOD_STALL,
|
||||
RIDE_TYPE_FOOD_STALL,
|
||||
RIDE_TYPE_DRINK_STALL,
|
||||
RIDE_TYPE_FOOD_STALL,
|
||||
RIDE_TYPE_SHOP,
|
||||
RIDE_TYPE_MERRY_GO_ROUND,
|
||||
RIDE_TYPE_SHOP,
|
||||
RIDE_TYPE_INFORMATION_KIOSK,
|
||||
RIDE_TYPE_TOILETS,
|
||||
RIDE_TYPE_FERRIS_WHEEL,
|
||||
RIDE_TYPE_MOTION_SIMULATOR,
|
||||
RIDE_TYPE_3D_CINEMA,
|
||||
RIDE_TYPE_TOP_SPIN,
|
||||
RIDE_TYPE_SPACE_RINGS,
|
||||
RIDE_TYPE_REVERSE_FREEFALL_COASTER,
|
||||
RIDE_TYPE_SHOP,
|
||||
RIDE_TYPE_VERTICAL_DROP_ROLLER_COASTER,
|
||||
RIDE_TYPE_FOOD_STALL,
|
||||
RIDE_TYPE_TWIST,
|
||||
RIDE_TYPE_HAUNTED_HOUSE,
|
||||
RIDE_TYPE_FOOD_STALL,
|
||||
RIDE_TYPE_CIRCUS_SHOW,
|
||||
RIDE_TYPE_GHOST_TRAIN,
|
||||
RIDE_TYPE_TWISTER_ROLLER_COASTER,
|
||||
RIDE_TYPE_WOODEN_ROLLER_COASTER,
|
||||
RIDE_TYPE_SIDE_FRICTION_ROLLER_COASTER,
|
||||
RIDE_TYPE_WILD_MOUSE,
|
||||
RIDE_TYPE_FOOD_STALL,
|
||||
RIDE_TYPE_FOOD_STALL,
|
||||
RIDE_TYPE_SHOP,
|
||||
RIDE_TYPE_FOOD_STALL,
|
||||
RIDE_TYPE_VIRGINIA_REEL,
|
||||
RIDE_TYPE_SPLASH_BOATS,
|
||||
RIDE_TYPE_MINI_HELICOPTERS,
|
||||
RIDE_TYPE_LAY_DOWN_ROLLER_COASTER,
|
||||
RIDE_TYPE_SUSPENDED_MONORAIL,
|
||||
RIDE_TYPE_NULL,
|
||||
RIDE_TYPE_REVERSER_ROLLER_COASTER,
|
||||
RIDE_TYPE_HEARTLINE_TWISTER_COASTER,
|
||||
RIDE_TYPE_MINI_GOLF,
|
||||
RIDE_TYPE_NULL,
|
||||
RIDE_TYPE_ROTO_DROP,
|
||||
RIDE_TYPE_FLYING_SAUCERS,
|
||||
RIDE_TYPE_CROOKED_HOUSE,
|
||||
RIDE_TYPE_MONORAIL_CYCLES,
|
||||
RIDE_TYPE_COMPACT_INVERTED_COASTER,
|
||||
RIDE_TYPE_WATER_COASTER,
|
||||
RIDE_TYPE_AIR_POWERED_VERTICAL_COASTER,
|
||||
RIDE_TYPE_INVERTED_HAIRPIN_COASTER,
|
||||
RIDE_TYPE_BOAT_RIDE,
|
||||
RIDE_TYPE_SHOP,
|
||||
RIDE_TYPE_RIVER_RAFTS,
|
||||
RIDE_TYPE_FOOD_STALL,
|
||||
RIDE_TYPE_ENTERPRISE,
|
||||
RIDE_TYPE_DRINK_STALL,
|
||||
RIDE_TYPE_FOOD_STALL,
|
||||
RIDE_TYPE_DRINK_STALL
|
||||
};
|
||||
return map[rideType];
|
||||
}
|
||||
|
||||
const char * GetRideTypeObject(uint8 rideType)
|
||||
{
|
||||
static const char * map[] =
|
||||
{
|
||||
"PTCT1 ",
|
||||
"TOGST ",
|
||||
"ARRSW1 ",
|
||||
"NEMT ",
|
||||
"ZLDB ",
|
||||
"NRL ",
|
||||
"MONO2 ",
|
||||
"BATFL ",
|
||||
"RBOAT ",
|
||||
"WMOUSE ",
|
||||
"STEEP1 ",
|
||||
"SPCAR ",
|
||||
"SSC1 ",
|
||||
"BOB1 ",
|
||||
"OBS1 ",
|
||||
"SCHT1 ",
|
||||
"DING1 ",
|
||||
"AMT1 ",
|
||||
"CLIFT1 ",
|
||||
"ARRT1 ",
|
||||
"HMAZE ",
|
||||
"HSKELT ",
|
||||
"KART1 ",
|
||||
"LFB1 ",
|
||||
"RAPBOAT ",
|
||||
"DODG1 ",
|
||||
"SWSH1 ",
|
||||
"SWSH2 ",
|
||||
"ICECR1 ",
|
||||
"CHPSH ",
|
||||
"DRNKS ",
|
||||
"CNDYF ",
|
||||
"BURGB ",
|
||||
"MGR1 ",
|
||||
"BALLN ",
|
||||
"INFOK ",
|
||||
"TLT1 ",
|
||||
"FWH1 ",
|
||||
"SIMPOD ",
|
||||
"C3D ",
|
||||
"TOPSP1 ",
|
||||
"SRINGS ",
|
||||
"REVF1 ",
|
||||
"SOUVS ",
|
||||
"BMVD ",
|
||||
"PIZZS ",
|
||||
"TWIST1 ",
|
||||
"HHBUILD ",
|
||||
"POPCS ",
|
||||
"CIRCUS1 ",
|
||||
"GTC ",
|
||||
"BMSD ",
|
||||
"MFT ",
|
||||
"SFRIC1 ",
|
||||
"SMC1 ",
|
||||
"HOTDS ",
|
||||
"SQDST ",
|
||||
"HATST ",
|
||||
"TOFFS ",
|
||||
"VREEL ",
|
||||
"SPBOAT ",
|
||||
"MONBK ",
|
||||
"BMAIR ",
|
||||
"SMONO ",
|
||||
" ",
|
||||
"REVCAR ",
|
||||
"UTCAR ",
|
||||
"GOLF1 ",
|
||||
" ",
|
||||
"GDROP1 ",
|
||||
"FSAUC ",
|
||||
"CHBUILD ",
|
||||
"HELICAR ",
|
||||
"SLCT ",
|
||||
"CSTBOAT ",
|
||||
"THCAR ",
|
||||
"IVMC1 ",
|
||||
"JSKI ",
|
||||
"TSHRT ",
|
||||
"RFTBOAT ",
|
||||
"DOUGH ",
|
||||
"ENTERP ",
|
||||
"COFFS ",
|
||||
"CHCKS ",
|
||||
"LEMST ",
|
||||
};
|
||||
return map[rideType];
|
||||
}
|
||||
|
||||
const char * GetVehicleObject(uint8 vehicleType)
|
||||
{
|
||||
static const char * map[] =
|
||||
{
|
||||
"PTCT1 ", // RCT1_VEHICLE_TYPE_STEEL_ROLLER_COASTER_TRAIN
|
||||
"TOGST ", // RCT1_VEHICLE_TYPE_STEEL_ROLLER_COASTER_TRAIN_BACKWARDS
|
||||
"ARRSW1 ", // RCT1_VEHICLE_TYPE_WOODEN_ROLLER_COASTER_TRAIN
|
||||
"NEMT ", // RCT1_VEHICLE_TYPE_INVERTED_COASTER_TRAIN (Not in RCT2)
|
||||
"ZLDB ", // RCT1_VEHICLE_TYPE_SUSPENDED_SWINGING_CARS
|
||||
"NRL ", // RCT1_VEHICLE_TYPE_LADYBIRD_CARS
|
||||
"MONO2 ", // RCT1_VEHICLE_TYPE_STANDUP_ROLLER_COASTER_CARS
|
||||
"BATFL ", // RCT1_VEHICLE_TYPE_SPINNING_CARS
|
||||
"RBOAT ", // RCT1_VEHICLE_TYPE_SINGLE_PERSON_SWINGING_CHAIRS
|
||||
"WMOUSE ", // RCT1_VEHICLE_TYPE_SWANS_PEDAL_BOATS
|
||||
"STEEP1 ", // RCT1_VEHICLE_TYPE_LARGE_MONORAIL_TRAIN
|
||||
"SPCAR ", // RCT1_VEHICLE_TYPE_CANOES
|
||||
"SSC1 ", // RCT1_VEHICLE_TYPE_ROWING_BOATS
|
||||
"BOB1 ", // RCT1_VEHICLE_TYPE_STEAM_TRAIN
|
||||
"OBS1 ", // RCT1_VEHICLE_TYPE_WOODEN_MOUSE_CARS
|
||||
"SCHT1 ", // RCT1_VEHICLE_TYPE_BUMPER_BOATS
|
||||
"DING1 ", // RCT1_VEHICLE_TYPE_WOODEN_ROLLER_COASTER_TRAIN_BACKWARDS
|
||||
"AMT1 ", // RCT1_VEHICLE_TYPE_ROCKET_CARS
|
||||
"CLIFT1 ", // RCT1_VEHICLE_TYPE_HORSES // Steeplechase
|
||||
"ARRT1 ", // RCT1_VEHICLE_TYPE_SPORTSCARS
|
||||
"HMAZE ", // RCT1_VEHICLE_TYPE_LYING_DOWN_SWINGING_CARS (Inverted single-rail)
|
||||
"HSKELT ", // RCT1_VEHICLE_TYPE_WOODEN_MINE_CARS
|
||||
"KART1 ", // RCT1_VEHICLE_TYPE_SUSPENDED_SWINGING_AIRPLANE_CARS
|
||||
"LFB1 ", // RCT1_VEHICLE_TYPE_SMALL_MONORAIL_CARS
|
||||
"RAPBOAT ", // RCT1_VEHICLE_TYPE_WATER_TRICYCLES
|
||||
"DODG1 ", // RCT1_VEHICLE_TYPE_LAUNCHED_FREEFALL_CAR
|
||||
"SWSH1 ", // RCT1_VEHICLE_TYPE_BOBSLEIGH_CARS
|
||||
"SWSH2 ", // RCT1_VEHICLE_TYPE_DINGHIES
|
||||
"ICECR1 ", // RCT1_VEHICLE_TYPE_ROTATING_CABIN
|
||||
"CHPSH ", // RCT1_VEHICLE_TYPE_MINE_TRAIN
|
||||
"DRNKS ", // RCT1_VEHICLE_TYPE_CHAIRLIFT_CARS
|
||||
"CNDYF ", // RCT1_VEHICLE_TYPE_CORKSCREW_ROLLER_COASTER_TRAIN
|
||||
"BURGB ", // RCT1_VEHICLE_TYPE_MOTORBIKES
|
||||
"MGR1 ", // RCT1_VEHICLE_TYPE_RACING_CARS
|
||||
"BALLN ", // RCT1_VEHICLE_TYPE_TRUCKS
|
||||
"INFOK ", // RCT1_VEHICLE_TYPE_GO_KARTS
|
||||
"TLT1 ", // RCT1_VEHICLE_TYPE_RAPIDS_BOATS
|
||||
"FWH1 ", // RCT1_VEHICLE_TYPE_LOG_FLUME_BOATS
|
||||
"SIMPOD ", // RCT1_VEHICLE_TYPE_DODGEMS
|
||||
"C3D ", // RCT1_VEHICLE_TYPE_SWINGING_SHIP
|
||||
"TOPSP1 ", // RCT1_VEHICLE_TYPE_SWINGING_INVERTER_SHIP
|
||||
"SRINGS ", // RCT1_VEHICLE_TYPE_MERRY_GO_ROUND
|
||||
"REVF1 ", // RCT1_VEHICLE_TYPE_FERRIS_WHEEL
|
||||
"SOUVS ", // RCT1_VEHICLE_TYPE_SIMULATOR_POD
|
||||
"BMVD ", // RCT1_VEHICLE_TYPE_CINEMA_BUILDING
|
||||
"PIZZS ", // RCT1_VEHICLE_TYPE_TOPSPIN_CAR
|
||||
"TWIST1 ", // RCT1_VEHICLE_TYPE_SPACE_RINGS
|
||||
"HHBUILD ", // RCT1_VEHICLE_TYPE_REVERSE_FREEFALL_ROLLER_COASTER_CAR
|
||||
"POPCS ", // RCT1_VEHICLE_TYPE_VERTICAL_ROLLER_COASTER_CARS
|
||||
"CIRCUS1 ", // RCT1_VEHICLE_TYPE_CAT_CARS
|
||||
"GTC ", // RCT1_VEHICLE_TYPE_TWIST_ARMS_AND_CARS
|
||||
"BMSD ", // RCT1_VEHICLE_TYPE_HAUNTED_HOUSE_BUILDING
|
||||
"MFT ", // RCT1_VEHICLE_TYPE_LOG_CARS
|
||||
"SFRIC1 ", // RCT1_VEHICLE_TYPE_CIRCUS_TENT
|
||||
"SMC1 ", // RCT1_VEHICLE_TYPE_GHOST_TRAIN_CARS
|
||||
"HOTDS ", // RCT1_VEHICLE_TYPE_STEEL_TWISTER_ROLLER_COASTER_TRAIN
|
||||
"SQDST ", // RCT1_VEHICLE_TYPE_WOODEN_TWISTER_ROLLER_COASTER_TRAIN
|
||||
"HATST ", // RCT1_VEHICLE_TYPE_WOODEN_SIDE_FRICTION_CARS
|
||||
"TOFFS ", // RCT1_VEHICLE_TYPE_VINTAGE_CARS
|
||||
"VREEL ", // RCT1_VEHICLE_TYPE_STEAM_TRAIN_COVERED_CARS
|
||||
"SPBOAT ", // RCT1_VEHICLE_TYPE_STAND_UP_STEEL_TWISTER_ROLLER_COASTER_TRAIN
|
||||
"MONBK ", // RCT1_VEHICLE_TYPE_FLOORLESS_STEEL_TWISTER_ROLLER_COASTER_TRAIN
|
||||
"BMAIR ", // RCT1_VEHICLE_TYPE_STEEL_MOUSE_CARS
|
||||
"SMONO ", // RCT1_VEHICLE_TYPE_CHAIRLIFT_CARS_ALTERNATIVE
|
||||
" ", // RCT1_VEHICLE_TYPE_SUSPENDED_MONORAIL_TRAIN
|
||||
"REVCAR ", // RCT1_VEHICLE_TYPE_HELICOPTER_CARS
|
||||
"UTCAR ", // RCT1_VEHICLE_TYPE_VIRGINIA_REEL_TUBS
|
||||
"GOLF1 ", // RCT1_VEHICLE_TYPE_REVERSER_CARS
|
||||
" ", // RCT1_VEHICLE_TYPE_GOLFERS
|
||||
"GDROP1 ", // RCT1_VEHICLE_TYPE_RIVER_RIDE_BOATS
|
||||
"FSAUC ", // RCT1_VEHICLE_TYPE_FLYING_ROLLER_COASTER_TRAIN
|
||||
"CHBUILD ", // RCT1_VEHICLE_TYPE_NON_LOOPING_STEEL_TWISTER_ROLLER_COASTER_TRAIN
|
||||
"HELICAR ", // RCT1_VEHICLE_TYPE_HEARTLINE_TWISTER_CARS
|
||||
"SLCT ", // RCT1_VEHICLE_TYPE_HEARTLINE_TWISTER_CARS_REVERSED
|
||||
"CSTBOAT ", // RCT1_VEHICLE_TYPE_RESERVED
|
||||
"THCAR ", // RCT1_VEHICLE_TYPE_ROTODROP_CAR
|
||||
"IVMC1 ", // RCT1_VEHICLE_TYPE_FLYING_SAUCERS
|
||||
"JSKI ", // RCT1_VEHICLE_TYPE_CROOKED_HOUSE_BUILDING
|
||||
"TSHRT ", // RCT1_VEHICLE_TYPE_BICYCLES
|
||||
"RFTBOAT ", // RCT1_VEHICLE_TYPE_HYPERCOASTER_TRAIN
|
||||
"DOUGH ", // RCT1_VEHICLE_TYPE_4_ACROSS_INVERTED_COASTER_TRAIN
|
||||
"ENTERP ", // RCT1_VEHICLE_TYPE_WATER_COASTER_BOATS
|
||||
"COFFS ", // RCT1_VEHICLE_TYPE_FACEOFF_CARS
|
||||
"CHCKS ", // RCT1_VEHICLE_TYPE_JET_SKIS
|
||||
"LEMST ", // RCT1_VEHICLE_TYPE_RAFT_BOATS
|
||||
"WMSPIN ", // RCT1_VEHICLE_TYPE_AMERICAN_STYLE_STEAM_TRAIN
|
||||
"SWANS ", // RCT1_VEHICLE_TYPE_AIR_POWERED_COASTER_TRAIN
|
||||
"MONO1 ", // RCT1_VEHICLE_TYPE_SUSPENDED_WILD_MOUSE_CARS (Inverted Hairpin in RCT2)
|
||||
"CBOAT ", // RCT1_VEHICLE_TYPE_ENTERPRISE_WHEEL
|
||||
};
|
||||
return map[vehicleType];
|
||||
}
|
||||
|
||||
const char * GetSmallSceneryObject(uint8 smallSceneryType)
|
||||
{
|
||||
static const char * map[] =
|
||||
{
|
||||
"TL0 ",
|
||||
"TL1 ",
|
||||
"TL2 ",
|
||||
"TL3 ",
|
||||
"TM0 ",
|
||||
"TM1 ",
|
||||
"TM2 ",
|
||||
"TM3 ",
|
||||
"TS0 ",
|
||||
"TS1 ",
|
||||
"TS2 ",
|
||||
"TS3 ",
|
||||
"TS4 ",
|
||||
"TS5 ",
|
||||
"TS6 ",
|
||||
"TIC ",
|
||||
"TLC ",
|
||||
"TMC ",
|
||||
"TMP ",
|
||||
"TITC ",
|
||||
"TGHC ",
|
||||
"TAC ",
|
||||
"TGHC2 ",
|
||||
"TCJ ",
|
||||
"TMBJ ",
|
||||
"TCF ",
|
||||
"TCL ",
|
||||
"TRF ",
|
||||
"TRF2 ",
|
||||
"TEL ",
|
||||
"TAP ",
|
||||
"TSP ",
|
||||
"TMZP ",
|
||||
"TCRP ",
|
||||
"TBP ",
|
||||
"TLP ",
|
||||
"TWP ",
|
||||
"TAS ",
|
||||
"TMG ",
|
||||
"TWW ",
|
||||
"TSB ",
|
||||
"TVL ",
|
||||
"TCT ",
|
||||
"TEF ",
|
||||
"TAL ",
|
||||
"TSQ ",
|
||||
"THT ",
|
||||
"TCB ",
|
||||
"TDM ",
|
||||
"TSD ",
|
||||
"TGS ",
|
||||
"TUS ",
|
||||
"TH1 ",
|
||||
"TBC ",
|
||||
"TH2 ",
|
||||
"TPM ",
|
||||
"TSC ",
|
||||
"TG1 ",
|
||||
"TWF ",
|
||||
"TSH0 ",
|
||||
"TSH1 ",
|
||||
"TSH2 ",
|
||||
"TSH3 ",
|
||||
"TSH4 ",
|
||||
"TSH5 ",
|
||||
"TG2 ",
|
||||
"TG3 ",
|
||||
"TG4 ",
|
||||
"TG5 ",
|
||||
"TG6 ",
|
||||
"TG7 ",
|
||||
"TG8 ",
|
||||
"TG9 ",
|
||||
"TG10 ",
|
||||
"TG11 ",
|
||||
"TG12 ",
|
||||
"TG13 ",
|
||||
"TG14 ",
|
||||
"TT1 ",
|
||||
"TDF ",
|
||||
"TSH ",
|
||||
"THRS ",
|
||||
"TSTD ",
|
||||
"TRMS ",
|
||||
"TRWS ",
|
||||
"TRC ",
|
||||
"TQF ",
|
||||
"TES1 ",
|
||||
"TEN ",
|
||||
"TERS ",
|
||||
"TERB ",
|
||||
"TEP ",
|
||||
"TST1 ",
|
||||
"TST2 ",
|
||||
"TMS1 ",
|
||||
"TAS1 ",
|
||||
"TAS2 ",
|
||||
"TAS3 ",
|
||||
"TST3 ",
|
||||
"TST4 ",
|
||||
"TST5 ",
|
||||
"TAS4 ",
|
||||
"TCY ",
|
||||
"TBW ",
|
||||
"TBR1 ",
|
||||
"TBR2 ",
|
||||
"TML ",
|
||||
"TMW ",
|
||||
"TBR3 ",
|
||||
"TBR4 ",
|
||||
"TMJ ",
|
||||
"TBR ",
|
||||
"TMO1 ",
|
||||
"TMO2 ",
|
||||
"TMO3 ",
|
||||
"TMO4 ",
|
||||
"TMO5 ",
|
||||
"TWH1 ",
|
||||
"TWH2 ",
|
||||
"TNS ",
|
||||
"TP1 ",
|
||||
"TP2 ",
|
||||
"TK1 ",
|
||||
"TK2 ",
|
||||
"TR1 ",
|
||||
"TR2 ",
|
||||
"TQ1 ",
|
||||
"TQ2 ",
|
||||
"TWN ",
|
||||
"TCE ",
|
||||
"TCO ",
|
||||
"THL ",
|
||||
"TCC ",
|
||||
"TB1 ",
|
||||
"TB2 ",
|
||||
"TK3 ",
|
||||
"TK4 ",
|
||||
"TBN ",
|
||||
"TBN1 ",
|
||||
"TDT1 ",
|
||||
"TDT2 ",
|
||||
"TDT3 ",
|
||||
"TMM1 ",
|
||||
"TMM2 ",
|
||||
"TMM3 ",
|
||||
"TGS1 ",
|
||||
"TGS2 ",
|
||||
"TGS3 ",
|
||||
"TGS4 ",
|
||||
"TDN4 ",
|
||||
"TDN5 ",
|
||||
"TJT1 ",
|
||||
"TJT2 ",
|
||||
"TJB1 ",
|
||||
"TTF ",
|
||||
"TF1 ",
|
||||
"TF2 ",
|
||||
"TGE1 ",
|
||||
"TJT3 ",
|
||||
"TJT4 ",
|
||||
"TJP1 ",
|
||||
"TJB2 ",
|
||||
"TGE2 ",
|
||||
"TJT5 ",
|
||||
"TJB3 ",
|
||||
"TJB4 ",
|
||||
"TJT6 ",
|
||||
"TJP2 ",
|
||||
"TGE3 ",
|
||||
"TCK ",
|
||||
"TGE4 ",
|
||||
"TGE5 ",
|
||||
"TG15 ",
|
||||
"TG16 ",
|
||||
"TG17 ",
|
||||
"TG18 ",
|
||||
"TG19 ",
|
||||
"TG20 ",
|
||||
"TG21 ",
|
||||
"TSM ",
|
||||
"TIG ",
|
||||
"TCFS ",
|
||||
"TRFS ",
|
||||
"TRF3 ",
|
||||
"TNSS ",
|
||||
"TCT1 ",
|
||||
"TCT2 ",
|
||||
"TSF1 ",
|
||||
"TSF2 ",
|
||||
"TSF3 ",
|
||||
"TCN ",
|
||||
"TTG ",
|
||||
"TSNC ",
|
||||
"TSNB ",
|
||||
"TSCP ",
|
||||
"TCD ",
|
||||
"TSG ",
|
||||
"TSK ",
|
||||
"TGH1 ",
|
||||
"TGH2 ",
|
||||
"TSMP ",
|
||||
"TJF ",
|
||||
"TLY ",
|
||||
"TGC1 ",
|
||||
"TGC2 ",
|
||||
"TGG ",
|
||||
"TSPH ",
|
||||
"TOH1 ",
|
||||
"TOH2 ",
|
||||
"TOT1 ",
|
||||
"TOT2 ",
|
||||
"TOS ",
|
||||
"TOT3 ",
|
||||
"TOT4 ",
|
||||
"TSC2 ",
|
||||
"TSP1 ",
|
||||
"TOH3 ",
|
||||
"TSP2 ",
|
||||
"ROMROOF1",
|
||||
"GEOROOF1",
|
||||
"TNTROOF1",
|
||||
"JNGROOF1",
|
||||
"MINROOF1",
|
||||
"ROMROOF2",
|
||||
"GEOROOF2",
|
||||
"PAGROOF1",
|
||||
"SPCROOF1",
|
||||
"ROOF1 ",
|
||||
"ROOF2 ",
|
||||
"ROOF3 ",
|
||||
"ROOF4 ",
|
||||
"ROOF5 ",
|
||||
"ROOF6 ",
|
||||
"ROOF7 ",
|
||||
"ROOF8 ",
|
||||
"ROOF9 ",
|
||||
"ROOF10 ",
|
||||
"ROOF11 ",
|
||||
"ROOF12 ",
|
||||
"ROOF13 ",
|
||||
"ROOF14 ",
|
||||
"IGROOF ",
|
||||
"CORROOF ",
|
||||
"CORROOF2",
|
||||
};
|
||||
return map[smallSceneryType];
|
||||
}
|
||||
|
||||
const char * GetLargeSceneryObject(uint8 largeSceneryType)
|
||||
{
|
||||
static const char * map[] =
|
||||
{
|
||||
"SCOL ",
|
||||
"SHS1 ",
|
||||
"SSPX ",
|
||||
"SHS2 ",
|
||||
"SCLN ",
|
||||
"SMH1 ",
|
||||
"SMH2 ",
|
||||
"SVLC ",
|
||||
"SPYR ",
|
||||
"SMN1 ",
|
||||
"SMB ",
|
||||
"SSK1 ",
|
||||
"SDN1 ",
|
||||
"SDN2 ",
|
||||
"SDN3 ",
|
||||
"SIP ",
|
||||
"STB1 ",
|
||||
"STB2 ",
|
||||
"STG1 ",
|
||||
"STG2 ",
|
||||
"SCT ",
|
||||
"SOH1 ",
|
||||
"SOH2 ",
|
||||
"SOH3 ",
|
||||
"SGP ",
|
||||
"SSR ",
|
||||
"STH ",
|
||||
"SAH ",
|
||||
"SPS ",
|
||||
"SPG ",
|
||||
"SOB ",
|
||||
"SAH2 ",
|
||||
"SST ",
|
||||
"SSH ",
|
||||
"SAH3 ",
|
||||
"SSIG1 ",
|
||||
"SSIG2 ",
|
||||
"SSIG3 ",
|
||||
"SSIG4 ",
|
||||
};
|
||||
return map[largeSceneryType];
|
||||
}
|
||||
|
||||
const char * GetWallObject(uint8 wallType)
|
||||
{
|
||||
static const char * map[] =
|
||||
{
|
||||
"WMF ",
|
||||
"WMFG ",
|
||||
"WRW ",
|
||||
"WEW ",
|
||||
"WHG ",
|
||||
"WHGG ",
|
||||
"WCW1 ",
|
||||
"WCW2 ",
|
||||
"WSW ",
|
||||
"WSWG ",
|
||||
"WMW ",
|
||||
"WALLGL16",
|
||||
"WFW1 ",
|
||||
"WFWG ",
|
||||
"WPW1 ",
|
||||
"WPW2 ",
|
||||
"WPF ",
|
||||
"WPFG ",
|
||||
"WWTW ",
|
||||
"WMWW ",
|
||||
"WSW1 ",
|
||||
"WSW2 ",
|
||||
"WGW2 ",
|
||||
"WBW ",
|
||||
"WBR1 ",
|
||||
"WBRG ",
|
||||
"WALLCFAR",
|
||||
"WALLPOST",
|
||||
"WBR2 ",
|
||||
"WBR3 ",
|
||||
"WPW3 ",
|
||||
"WJF ",
|
||||
"WCH ",
|
||||
"WCHG ",
|
||||
"WC1 ",
|
||||
"WC2 ",
|
||||
"WC3 ",
|
||||
"WC4 ",
|
||||
"WC5 ",
|
||||
"WC6 ",
|
||||
"WC7 ",
|
||||
"WC8 ",
|
||||
"WC9 ",
|
||||
"WC10 ",
|
||||
"WC11 ",
|
||||
"WC12 ",
|
||||
"WC13 ",
|
||||
"WC14 ",
|
||||
"WC15 ",
|
||||
"WC16 ",
|
||||
"WC17 ",
|
||||
"WC18 ",
|
||||
"WALLBRDR",
|
||||
"WALLBR32",
|
||||
"WALLBR16",
|
||||
"WALLBR8 ",
|
||||
"WALLCF8 ",
|
||||
"WALLCF16",
|
||||
"WALLCF32",
|
||||
"WALLBB8 ",
|
||||
"WALLBB16",
|
||||
"WALLBB32",
|
||||
"WALLRS8 ",
|
||||
"WALLRS16",
|
||||
"WALLRS32",
|
||||
"WALLCB8 ",
|
||||
"WALLCB16",
|
||||
"WALLCB32",
|
||||
"WALLGL8 ",
|
||||
"WALLGL32",
|
||||
"WALLWD8 ",
|
||||
"WALLWD16",
|
||||
"WALLWD32",
|
||||
"WALLTN32",
|
||||
"WALLJN32",
|
||||
"WALLMN32",
|
||||
"WALLSP32",
|
||||
"WALLPG32",
|
||||
"WALLU132",
|
||||
"WALLU232",
|
||||
"WALLCZ32",
|
||||
"WALLCW32",
|
||||
"WALLCY32",
|
||||
"WALLCX32",
|
||||
"WBR1A ",
|
||||
"WBR2A ",
|
||||
"WRWA ",
|
||||
"WWTWA ",
|
||||
"WALLIG16",
|
||||
"WALLIG24",
|
||||
"WALLCO16",
|
||||
"WALLCFDR",
|
||||
"WALLCBDR",
|
||||
"WALLBRWN",
|
||||
"WALLCFWN",
|
||||
"WALLCBWN",
|
||||
};
|
||||
return map[wallType];
|
||||
}
|
||||
|
||||
const char * GetSceneryGroupObject(uint8 sceneryGroupType)
|
||||
{
|
||||
static const char * map[] =
|
||||
{
|
||||
" ", // RCT1_SCENERY_THEME_GENERAL
|
||||
"SCGMINE ", // RCT1_SCENERY_THEME_MINE
|
||||
"SCGCLASS", // RCT1_SCENERY_THEME_CLASSICAL_ROMAN
|
||||
"SCGEGYPT", // RCT1_SCENERY_THEME_EGYPTIAN
|
||||
"SCGMART ", // RCT1_SCENERY_THEME_MARTIAN
|
||||
"SCGWOND ", // RCT1_SCENERY_THEME_TOYLAND
|
||||
"SCGJURAS", // RCT1_SCENERY_THEME_JURASSIC
|
||||
"SCGSPOOK", // RCT1_SCENERY_THEME_GRAVEYARD
|
||||
"SCGJUNGL", // RCT1_SCENERY_THEME_JUNGLE
|
||||
"SCGABSTR", // RCT1_SCENERY_THEME_ABSTRACT
|
||||
"SCGSNOW ", // RCT1_SCENERY_THEME_SNOW_ICE
|
||||
"SCGMEDIE", // RCT1_SCENERY_THEME_MEDIEVAL
|
||||
"SCGSPACE", // RCT1_SCENERY_THEME_SPACE
|
||||
"SCGHALLO", // RCT1_SCENERY_THEME_CREEPY
|
||||
"SCGURBAN", // RCT1_SCENERY_THEME_URBAN
|
||||
"SCGORIEN", // RCT1_SCENERY_THEME_PAGODA
|
||||
};
|
||||
return map[sceneryGroupType];
|
||||
}
|
||||
|
||||
const char * GetWaterObject(uint8 waterType)
|
||||
{
|
||||
static const char * map[] =
|
||||
{
|
||||
"WTRCYAN ",
|
||||
"WTRORNG ",
|
||||
};
|
||||
return map[waterType];
|
||||
}
|
||||
|
||||
const List<const char *> GetPreferedRideEntryOrder(uint8 rideType)
|
||||
{
|
||||
static const List<const char *> preferedRideEntryOrder[] =
|
||||
{
|
||||
{ "SPDRCR "}, // RIDE_TYPE_SPIRAL_ROLLER_COASTER
|
||||
{ "TOGST "}, // RIDE_TYPE_STAND_UP_ROLLER_COASTER
|
||||
{ "ARRSW1 ", "VEKVAMP ", "ARRSW2 "}, // RIDE_TYPE_SUSPENDED_SWINGING_COASTER
|
||||
{ "NEMT "}, // RIDE_TYPE_INVERTED_ROLLER_COASTER
|
||||
{ "ZLDB ", "ZLOG "}, // RIDE_TYPE_JUNIOR_ROLLER_COASTER
|
||||
{ "NRL ", "NRL2 ", "AML1 ", "TRAM1 "}, // RIDE_TYPE_MINIATURE_RAILWAY
|
||||
{ "MONO1 ", "MONO2 ", "MONO3 "}, // RIDE_TYPE_MONORAIL
|
||||
{ "BATFL ", "SKYTR "}, // RIDE_TYPE_MINI_SUSPENDED_COASTER
|
||||
{ "RBOAT ", "BBOAT ", "CBOAT ", "SWANS ", "TRIKE ", "JSKI " }, // RIDE_TYPE_BOAT_RIDE
|
||||
{ "WMOUSE ", "WMMINE "}, // RIDE_TYPE_WOODEN_WILD_MOUSE
|
||||
{ "STEEP1 ", "STEEP2 ", "SBOX "}, // RIDE_TYPE_STEEPLECHASE
|
||||
{ "SPCAR ", "RCR ", "TRUCK1 ", "VCR ", "CTCAR " }, // RIDE_TYPE_CAR_RIDE
|
||||
{ "SSC1 " }, // RIDE_TYPE_LAUNCHED_FREEFALL
|
||||
{ "BOB1 ", "INTBOB " }, // RIDE_TYPE_BOBSLEIGH_COASTER
|
||||
{ "OBS1 ", "OBS2 " }, // RIDE_TYPE_OBSERVATION_TOWER
|
||||
{ "SCHT1 " }, // RIDE_TYPE_LOOPING_ROLLER_COASTER
|
||||
{ "DING1 " }, // RIDE_TYPE_DINGHY_SLIDE
|
||||
{ "AMT1 " }, // RIDE_TYPE_MINE_TRAIN_COASTER
|
||||
{ "CLIFT1 ", "CLIFT2 " }, // RIDE_TYPE_CHAIRLIFT
|
||||
{ "ARRT1 ", "ARRT2 " }, // RIDE_TYPE_CORKSCREW_ROLLER_COASTER
|
||||
{ }, // RIDE_TYPE_MAZE
|
||||
{ }, // RIDE_TYPE_SPIRAL_SLIDE
|
||||
{ "KART1 " }, // RIDE_TYPE_GO_KARTS
|
||||
{ "LFB1 " }, // RIDE_TYPE_LOG_FLUME
|
||||
{ "RAPBOAT " }, // RIDE_TYPE_RIVER_RAPIDS
|
||||
{ }, // RIDE_TYPE_DODGEMS
|
||||
{ }, // RIDE_TYPE_PIRATE_SHIP
|
||||
{ }, // RIDE_TYPE_SWINGING_INVERTER_SHIP
|
||||
{ }, // RIDE_TYPE_FOOD_STALL
|
||||
{ }, // RIDE_TYPE_1D
|
||||
{ }, // RIDE_TYPE_DRINK_STALL
|
||||
{ }, // RIDE_TYPE_1F
|
||||
{ }, // RIDE_TYPE_SHOP
|
||||
{ }, // RIDE_TYPE_MERRY_GO_ROUND
|
||||
{ }, // RIDE_TYPE_22
|
||||
{ }, // RIDE_TYPE_INFORMATION_KIOSK
|
||||
{ }, // RIDE_TYPE_TOILETS
|
||||
{ }, // RIDE_TYPE_FERRIS_WHEEL
|
||||
{ }, // RIDE_TYPE_MOTION_SIMULATOR
|
||||
{ }, // RIDE_TYPE_3D_CINEMA
|
||||
{ }, // RIDE_TYPE_TOP_SPIN
|
||||
{ }, // RIDE_TYPE_SPACE_RINGS
|
||||
{ "REVF1 " }, // RIDE_TYPE_REVERSE_FREEFALL_COASTER
|
||||
{ "LIFT1 " }, // RIDE_TYPE_LIFT
|
||||
{ "BMVD " }, // RIDE_TYPE_VERTICAL_DROP_ROLLER_COASTER
|
||||
{ }, // RIDE_TYPE_CASH_MACHINE
|
||||
{ }, // RIDE_TYPE_TWIST
|
||||
{ }, // RIDE_TYPE_HAUNTED_HOUSE
|
||||
{ }, // RIDE_TYPE_FIRST_AID
|
||||
{ }, // RIDE_TYPE_CIRCUS_SHOW
|
||||
{ "GTC ", "HMCAR " }, // RIDE_TYPE_GHOST_TRAIN
|
||||
{ "BMSD ", "BMSU ", "BMFL ", "BMRB ", "GOLTR " }, // RIDE_TYPE_TWISTER_ROLLER_COASTER
|
||||
{ "PTCT1 ", "MFT ", "PTCT2 " }, // RIDE_TYPE_WOODEN_ROLLER_COASTER
|
||||
{ "SFRIC1 " }, // RIDE_TYPE_SIDE_FRICTION_ROLLER_COASTER
|
||||
{ "SMC1 ", "SMC2 ", "WMSPIN " }, // RIDE_TYPE_WILD_MOUSE
|
||||
{ "ARRX " }, // RIDE_TYPE_MULTI_DIMENSION_ROLLER_COASTER
|
||||
{ }, // RIDE_TYPE_38
|
||||
{ "BMAIR " }, // RIDE_TYPE_FLYING_ROLLER_COASTER
|
||||
{ }, // RIDE_TYPE_3A
|
||||
{ "VREEL " }, // RIDE_TYPE_VIRGINIA_REEL
|
||||
{ "SPBOAT " }, // RIDE_TYPE_SPLASH_BOATS
|
||||
{ "HELICAR " }, // RIDE_TYPE_MINI_HELICOPTERS
|
||||
{ "VEKST " }, // RIDE_TYPE_LAY_DOWN_ROLLER_COASTER
|
||||
{ "SMONO " }, // RIDE_TYPE_SUSPENDED_MONORAIL
|
||||
{ }, // RIDE_TYPE_40
|
||||
{ "REVCAR " }, // RIDE_TYPE_REVERSER_ROLLER_COASTER
|
||||
{ "UTCAR ", "UTCARR " }, // RIDE_TYPE_HEARTLINE_TWISTER_COASTER
|
||||
{ }, // RIDE_TYPE_MINI_GOLF
|
||||
{ "INTST " }, // RIDE_TYPE_GIGA_COASTER
|
||||
{ "GDROP1 " }, // RIDE_TYPE_ROTO_DROP
|
||||
{ }, // RIDE_TYPE_FLYING_SAUCERS
|
||||
{ }, // RIDE_TYPE_CROOKED_HOUSE
|
||||
{ "MONBK " }, // RIDE_TYPE_MONORAIL_CYCLES
|
||||
{ "SLCT ", "SLCFO ", "VEKDV " }, // RIDE_TYPE_COMPACT_INVERTED_COASTER
|
||||
{ "CSTBOAT " }, // RIDE_TYPE_WATER_COASTER
|
||||
{ "THCAR " }, // RIDE_TYPE_AIR_POWERED_VERTICAL_COASTER
|
||||
{ "IVMC1 " }, // RIDE_TYPE_INVERTED_HAIRPIN_COASTER
|
||||
{ }, // RIDE_TYPE_MAGIC_CARPET
|
||||
{ "SUBMAR " }, // RIDE_TYPE_SUBMARINE_RIDE
|
||||
{ "RFTBOAT " }, // RIDE_TYPE_RIVER_RAFTS
|
||||
{ }, // RIDE_TYPE_50
|
||||
{ }, // RIDE_TYPE_ENTERPRISE
|
||||
{ }, // RIDE_TYPE_52
|
||||
{ }, // RIDE_TYPE_53
|
||||
{ }, // RIDE_TYPE_54
|
||||
{ }, // RIDE_TYPE_55
|
||||
{ "INTINV " }, // RIDE_TYPE_INVERTED_IMPULSE_COASTER
|
||||
{ "WCATC ", "RCKC ", "JSTAR1 " }, // RIDE_TYPE_MINI_ROLLER_COASTER
|
||||
{ "PMT1 " }, // RIDE_TYPE_MINE_RIDE
|
||||
{ "PREMT1 " }, // RIDE_TYPE_59
|
||||
}; // RIDE_TYPE_LIM_LAUNCHED_ROLLER_COASTER
|
||||
return preferedRideEntryOrder[rideType];
|
||||
}
|
||||
}
|
||||
}
|
|
@ -21,6 +21,7 @@
|
|||
#ifndef _SAWYERCODING_H_
|
||||
#define _SAWYERCODING_H_
|
||||
|
||||
#include <SDL.h>
|
||||
#include "../common.h"
|
||||
|
||||
typedef struct {
|
||||
|
|
Loading…
Reference in New Issue