mirror of
https://github.com/OpenRCT2/OpenRCT2
synced 2026-01-21 14:02:59 +01:00
Some more checks, make sure gVehicleHierarchies are counted properly
This commit is contained in:
@@ -136,6 +136,7 @@ void gfx_bmp_sprite_to_buffer(uint8* palette_pointer, uint8* unknown_pointer, ui
|
||||
uint32 source_line_width = source_image->width * zoom_amount;
|
||||
//Requires use of palette?
|
||||
if (image_type & IMAGE_TYPE_USE_PALETTE){
|
||||
assert(palette_pointer != NULL);
|
||||
|
||||
//Mix with another image?? and colour adjusted
|
||||
if (unknown_pointer!= NULL){ //Not tested. I can't actually work out when this code runs.
|
||||
@@ -182,6 +183,7 @@ void gfx_bmp_sprite_to_buffer(uint8* palette_pointer, uint8* unknown_pointer, ui
|
||||
//Mix with background. It only uses source pointer for
|
||||
//telling if it needs to be drawn not for colour.
|
||||
if (image_type & IMAGE_TYPE_MIX_BACKGROUND){//Not tested
|
||||
assert(palette_pointer != NULL);
|
||||
for (; height > 0; height -= zoom_amount){
|
||||
uint8* next_source_pointer = source_pointer + source_line_width;
|
||||
uint8* next_dest_pointer = dest_pointer + dest_line_width;
|
||||
|
||||
@@ -428,6 +428,7 @@ static void input_viewport_drag_continue()
|
||||
dx = newDragX - _dragX;
|
||||
dy = newDragY - _dragY;
|
||||
w = window_find_by_number(_dragWindowClass, _dragWindowNumber);
|
||||
assert(w != NULL);
|
||||
|
||||
viewport = w->viewport;
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_TICKS_SINCE_DRAG_START, sint16) += RCT2_GLOBAL(RCT2_ADDRESS_TICKS_SINCE_LAST_UPDATE, sint16);
|
||||
|
||||
@@ -295,7 +295,9 @@ void sub_684AC3(){
|
||||
ebp = inner_research;
|
||||
}
|
||||
} while ((inner_research++)->entryIndex != RESEARCHED_ITEMS_END);
|
||||
assert(edx != NULL);
|
||||
edx->entryIndex = research->entryIndex;
|
||||
assert(ebp != NULL);
|
||||
ebp->entryIndex = (research + 1)->entryIndex;
|
||||
|
||||
uint8 cat = edx->category;
|
||||
|
||||
305
src/rct1.c
305
src/rct1.c
@@ -1528,152 +1528,157 @@ static const RCT1DefaultObjectsGroup RCT1DefaultObjects[10] = {
|
||||
};
|
||||
|
||||
// Keep these in the same order as gVehicleHierarchies
|
||||
char *SpiralRCObjectOrder[] = { "SPDRCR "};
|
||||
char *StandupRCObjectOrder[] = { "TOGST "};
|
||||
char *SuspendedSWRCObjectOrder[] = { "ARRSW1 ", "VEKVAMP ", "ARRSW2 "};
|
||||
char *InvertedRCObjectOrder[] = { "NEMT "};
|
||||
char *JuniorCoasterObjectOrder[] = { "ZLDB ", "ZLOG "};
|
||||
char *MiniatureRailwayObjectOrder[] = { "NRL ", "NRL2 ", "AML1 ", "TRAM1 "};
|
||||
char *MonorailObjectOrder[] = { "MONO1 ", "MONO2 ", "MONO3 "};
|
||||
char *MiniSuspendedRCObjectOrder[] = { "BATFL ", "SKYTR "};
|
||||
char *BoatRideObjectOrder[] = { "RBOAT ", "BBOAT ", "CBOAT ", "SWANS ", "TRIKE ","JSKI "};
|
||||
char *WoodenWMObjectOrder[] = { "WMOUSE ", "WMMINE "};
|
||||
char *SteeplechaseObjectOrder[] = { "STEEP1 ", "STEEP2 ", "SBOX "};
|
||||
char *CarRideObjectOrder[] = { "SPCAR ", "RCR ", "TRUCK1 ", "VCR ", "CTCAR "};
|
||||
char *LaunchedFFObjectOrder[] = { "SSC1 "};
|
||||
char *BobsleighRCObjectOrder[] = { "BOB1 ", "INTBOB "};
|
||||
char *ObservationTowerObjectOrder[] = { "OBS1 ", "OBS2 "};
|
||||
char *LoopingRCObjectOrder[] = { "SCHT1 "};
|
||||
char *DinghySlideObjectOrder[] = { "DING1 "};
|
||||
char *MineTrainRCObjectOrder[] = { "AMT1 "};
|
||||
char *ChairliftObjectOrder[] = { "CLIFT1 ", "CLIFT2 "};
|
||||
char *CorkscrewRCObjectOrder[] = { "ARRT1 ", "ARRT2 "};
|
||||
char *GoKartsObjectOrder[] = { "KART1 "};
|
||||
char *LogFlumeObjectOrder[] = { "LFB1 "};
|
||||
char *RiverRapidsObjectOrder[] = { "RAPBOAT "};
|
||||
char *ReverseFreefallRCObjectOrder[]= { "REVF1 "};
|
||||
char *LiftObjectOrder[] = { "LIFT1 "};
|
||||
char *VerticalDropRCObjectOrder[] = { "BMVD "};
|
||||
char *GhostTrainObjectOrder[] = { "GTC ", "HMCAR "};
|
||||
char *TwisterRCObjectOrder[] = { "BMSD ", "BMSU ", "BMFL ", "BMRB ", "GOLTR "};
|
||||
char *WoodenRCObjectOrder[] = { "PTCT1 ", "MFT ", "PTCT2 "};
|
||||
char *SideFrictionRCObjectOrder[] = { "SFRIC1 "};
|
||||
char *SteelWildMouseObjectOrder[] = { "SMC1 ", "SMC2 ", "WMSPIN "};
|
||||
char *MultiDimensionRCObjectOrder[] = { "ARRX "};
|
||||
char *FlyingRCObjectOrder[] = { "BMAIR "};
|
||||
char *VirginiaReelRCObjectOrder[] = { "VREEL "};
|
||||
char *SplashBoatsObjectOrder[] = { "SPBOAT "};
|
||||
char *MiniHelicoptersObjectOrder[] = { "HELICAR "};
|
||||
char *LayDownRCObjectOrder[] = { "VEKST "};
|
||||
char *SuspendedMonorailObjectOrder[]= { "SMONO "};
|
||||
char *ReverserRCObjectOrder[] = { "REVCAR "};
|
||||
char *HeartlineTwisterObjectOrder[] = { "UTCAR ", "UTCARR "};
|
||||
char *GigaRCObjectOrder[] = { "INTST "};
|
||||
char *RotoDropObjectOrder[] = { "GDROP1 "};
|
||||
char *MonorailCyclesObjectOrder[] = { "MONBK "};
|
||||
char *CompactInvertedRCObjectOrder[]= { "SLCT ", "SLCFO ", "VEKDV "};
|
||||
char *WaterRCObjectOrder[] = { "CSTBOAT "};
|
||||
char *AirPoweredRCObjectOrder[] = { "THCAR "};
|
||||
char *InvertedHairpinRCObjectOrder[]= { "IVMC1 "};
|
||||
char *SubmarineRideObjectOrder[] = { "SUBMAR "};
|
||||
char *RiverRaftsObjectOrder[] = { "RFTBOAT "};
|
||||
char *InvertedImpulseRCObjectOrder[]= { "INTINV "};
|
||||
char *MiniRCObjectOrder[] = { "WCATC ", "RCKC ", "JSTAR1 "};
|
||||
char *MineRideRCObjectOrder[] = { "PMT1 "};
|
||||
char *LIMLaunchedRCObjectOrder[] = { "PREMT1 "};
|
||||
const char *SpiralRCObjectOrder[] = { "SPDRCR "};
|
||||
const char *StandupRCObjectOrder[] = { "TOGST "};
|
||||
const char *SuspendedSWRCObjectOrder[] = { "ARRSW1 ", "VEKVAMP ", "ARRSW2 "};
|
||||
const char *InvertedRCObjectOrder[] = { "NEMT "};
|
||||
const char *JuniorCoasterObjectOrder[] = { "ZLDB ", "ZLOG "};
|
||||
const char *MiniatureRailwayObjectOrder[] = { "NRL ", "NRL2 ", "AML1 ", "TRAM1 "};
|
||||
const char *MonorailObjectOrder[] = { "MONO1 ", "MONO2 ", "MONO3 "};
|
||||
const char *MiniSuspendedRCObjectOrder[] = { "BATFL ", "SKYTR "};
|
||||
const char *BoatRideObjectOrder[] = { "RBOAT ", "BBOAT ", "CBOAT ", "SWANS ", "TRIKE ","JSKI "};
|
||||
const char *WoodenWMObjectOrder[] = { "WMOUSE ", "WMMINE "};
|
||||
const char *SteeplechaseObjectOrder[] = { "STEEP1 ", "STEEP2 ", "SBOX "};
|
||||
const char *CarRideObjectOrder[] = { "SPCAR ", "RCR ", "TRUCK1 ", "VCR ", "CTCAR "};
|
||||
const char *LaunchedFFObjectOrder[] = { "SSC1 "};
|
||||
const char *BobsleighRCObjectOrder[] = { "BOB1 ", "INTBOB "};
|
||||
const char *ObservationTowerObjectOrder[] = { "OBS1 ", "OBS2 "};
|
||||
const char *LoopingRCObjectOrder[] = { "SCHT1 "};
|
||||
const char *DinghySlideObjectOrder[] = { "DING1 "};
|
||||
const char *MineTrainRCObjectOrder[] = { "AMT1 "};
|
||||
const char *ChairliftObjectOrder[] = { "CLIFT1 ", "CLIFT2 "};
|
||||
const char *CorkscrewRCObjectOrder[] = { "ARRT1 ", "ARRT2 "};
|
||||
const char *GoKartsObjectOrder[] = { "KART1 "};
|
||||
const char *LogFlumeObjectOrder[] = { "LFB1 "};
|
||||
const char *RiverRapidsObjectOrder[] = { "RAPBOAT "};
|
||||
const char *ReverseFreefallRCObjectOrder[] = { "REVF1 "};
|
||||
const char *LiftObjectOrder[] = { "LIFT1 "};
|
||||
const char *VerticalDropRCObjectOrder[] = { "BMVD "};
|
||||
const char *GhostTrainObjectOrder[] = { "GTC ", "HMCAR "};
|
||||
const char *TwisterRCObjectOrder[] = { "BMSD ", "BMSU ", "BMFL ", "BMRB ", "GOLTR "};
|
||||
const char *WoodenRCObjectOrder[] = { "PTCT1 ", "MFT ", "PTCT2 "};
|
||||
const char *SideFrictionRCObjectOrder[] = { "SFRIC1 "};
|
||||
const char *SteelWildMouseObjectOrder[] = { "SMC1 ", "SMC2 ", "WMSPIN "};
|
||||
const char *MultiDimensionRCObjectOrder[] = { "ARRX "};
|
||||
const char *FlyingRCObjectOrder[] = { "BMAIR "};
|
||||
const char *VirginiaReelRCObjectOrder[] = { "VREEL "};
|
||||
const char *SplashBoatsObjectOrder[] = { "SPBOAT "};
|
||||
const char *MiniHelicoptersObjectOrder[] = { "HELICAR "};
|
||||
const char *LayDownRCObjectOrder[] = { "VEKST "};
|
||||
const char *SuspendedMonorailObjectOrder[] = { "SMONO "};
|
||||
const char *ReverserRCObjectOrder[] = { "REVCAR "};
|
||||
const char *HeartlineTwisterObjectOrder[] = { "UTCAR ", "UTCARR "};
|
||||
const char *GigaRCObjectOrder[] = { "INTST "};
|
||||
const char *RotoDropObjectOrder[] = { "GDROP1 "};
|
||||
const char *MonorailCyclesObjectOrder[] = { "MONBK "};
|
||||
const char *CompactInvertedRCObjectOrder[] = { "SLCT ", "SLCFO ", "VEKDV "};
|
||||
const char *WaterRCObjectOrder[] = { "CSTBOAT "};
|
||||
const char *AirPoweredRCObjectOrder[] = { "THCAR "};
|
||||
const char *InvertedHairpinRCObjectOrder[] = { "IVMC1 "};
|
||||
const char *SubmarineRideObjectOrder[] = { "SUBMAR "};
|
||||
const char *RiverRaftsObjectOrder[] = { "RFTBOAT "};
|
||||
const char *InvertedImpulseRCObjectOrder[] = { "INTINV "};
|
||||
const char *MiniRCObjectOrder[] = { "WCATC ", "RCKC ", "JSTAR1 "};
|
||||
const char *MineRideRCObjectOrder[] = { "PMT1 "};
|
||||
const char *LIMLaunchedRCObjectOrder[] = { "PREMT1 "};
|
||||
|
||||
char **gVehicleHierarchies[0x60] = {
|
||||
SpiralRCObjectOrder, // 0 Spiral Roller coaster
|
||||
StandupRCObjectOrder, // 1 Stand Up Coaster
|
||||
SuspendedSWRCObjectOrder, // 2 Suspended Swinging
|
||||
InvertedRCObjectOrder, // 3 Inverted
|
||||
JuniorCoasterObjectOrder, // 4 Junior RC / Steel Mini Coaster
|
||||
MiniatureRailwayObjectOrder, // 5 Mini Railroad
|
||||
MonorailObjectOrder, // 6 Monorail
|
||||
MiniSuspendedRCObjectOrder, // 7 Mini Suspended Coaster
|
||||
BoatRideObjectOrder, // 8 Boat ride
|
||||
WoodenWMObjectOrder, // 9 Wooden Wild Mine/Mouse
|
||||
SteeplechaseObjectOrder, // a Steeplechase/Motorbike/Soap Box Derby
|
||||
CarRideObjectOrder, // b Car Ride
|
||||
LaunchedFFObjectOrder, // c Launched Freefall
|
||||
BobsleighRCObjectOrder, // d Bobsleigh Coaster
|
||||
ObservationTowerObjectOrder, // e Observation Tower
|
||||
LoopingRCObjectOrder, // f Looping Roller Coaster
|
||||
DinghySlideObjectOrder, // 10 Dinghy Slide
|
||||
MineTrainRCObjectOrder, // 11 Mine Train Coaster
|
||||
ChairliftObjectOrder, // 12 Chairlift
|
||||
CorkscrewRCObjectOrder, // 13 Corkscrew Roller Coaster
|
||||
NULL, // 14 Maze, N/A
|
||||
NULL, // 15 Spiral Slide, N/A
|
||||
GoKartsObjectOrder, // 16 Go Karts
|
||||
LogFlumeObjectOrder, // 17 Log Flume
|
||||
RiverRapidsObjectOrder, // 18 River Rapids
|
||||
NULL, // 19 Dodgems, N/A
|
||||
NULL, // 1a Pirate Ship, N/A
|
||||
NULL, // 1b Swinging Inverter Ship, N/A
|
||||
NULL, // 1c Food Stall, N/A
|
||||
NULL, // 1d (none), N/A
|
||||
NULL, // 1e Drink Stall, N/A
|
||||
NULL, // 1f (none), N/A
|
||||
NULL, // 20 Shop (all types), N/A
|
||||
NULL, // 21 Merry Go Round, N/A
|
||||
NULL, // 22 Balloon Stall (maybe), N/A
|
||||
NULL, // 23 Information Kiosk, N/A
|
||||
NULL, // 24 Bathroom, N/A
|
||||
NULL, // 25 Ferris Wheel, N/A
|
||||
NULL, // 26 Motion Simulator, N/A
|
||||
NULL, // 27 3D Cinema, N/A
|
||||
NULL, // 28 Top Spin, N/A
|
||||
NULL, // 29 Space Rings, N/A
|
||||
ReverseFreefallRCObjectOrder, // 2a Reverse Freefall Coaster
|
||||
LiftObjectOrder, // 2b Lift
|
||||
VerticalDropRCObjectOrder, // 2c Vertical Drop Roller Coaster
|
||||
NULL, // 2d ATM, N/A
|
||||
NULL, // 2e Twist, N/A
|
||||
NULL, // 2f Haunted House, N/A
|
||||
NULL, // 30 First Aid, N/A
|
||||
NULL, // 31 Circus Show, N/A
|
||||
GhostTrainObjectOrder, // 32 Ghost Train
|
||||
TwisterRCObjectOrder, // 33 Twister Roller Coaster
|
||||
WoodenRCObjectOrder, // 34 Wooden Roller Coaster
|
||||
SideFrictionRCObjectOrder, // 35 Side-Friction Roller Coaster
|
||||
SteelWildMouseObjectOrder, // 36 Steel Wild Mouse
|
||||
MultiDimensionRCObjectOrder, // 37 Multi Dimension Coaster
|
||||
NULL, // 38 (none), N/A
|
||||
FlyingRCObjectOrder, // 39 Flying Roller Coaster
|
||||
NULL, // 3a (none), N/A
|
||||
VirginiaReelRCObjectOrder, // 3b Virginia Reel
|
||||
SplashBoatsObjectOrder, // 3c Splash Boats
|
||||
MiniHelicoptersObjectOrder, // 3d Mini Helicopters
|
||||
LayDownRCObjectOrder, // 3e Lay-down Roller Coaster
|
||||
SuspendedMonorailObjectOrder, // 3f Suspended Monorail
|
||||
NULL, // 40 (none), N/A
|
||||
ReverserRCObjectOrder, // 41 Reverser Roller Coaster
|
||||
HeartlineTwisterObjectOrder, // 42 Heartline Twister Roller Coaster
|
||||
NULL, // 43 Mini Golf, N/A
|
||||
GigaRCObjectOrder, // 44 Giga Coaster
|
||||
RotoDropObjectOrder, // 45 Roto-Drop
|
||||
NULL, // 46 Flying Saucers, N/A
|
||||
NULL, // 47 Crooked House, N/A
|
||||
MonorailCyclesObjectOrder, // 48 Monorail Cycles
|
||||
CompactInvertedRCObjectOrder, // 49 Compact Inverted Coaster
|
||||
WaterRCObjectOrder, // 4a Water Coaster
|
||||
AirPoweredRCObjectOrder, // 4b Air Powered Vertical Coaster
|
||||
InvertedHairpinRCObjectOrder, // 4c Inverted Hairpin Coaster
|
||||
NULL, // 4d Magic Carpet, N/A
|
||||
SubmarineRideObjectOrder, // 4e Submarine Ride
|
||||
RiverRaftsObjectOrder, // 4f River Rafts
|
||||
NULL, // 50 (none), N/A
|
||||
NULL, // 51 Enterprise, N/A
|
||||
NULL, // 52 (none), N/A
|
||||
NULL, // 53 (none), N/A
|
||||
NULL, // 54 (none), N/A
|
||||
NULL, // 55 (none), N/A
|
||||
InvertedImpulseRCObjectOrder, // 56 Inverted Impulse Coaster
|
||||
MiniRCObjectOrder, // 57 Mini Roller Coaster
|
||||
MineRideRCObjectOrder, // 58 Mine Ride
|
||||
NULL, // 59 Unknown Ride
|
||||
LIMLaunchedRCObjectOrder, // 60 LIM Launched Roller Coaster
|
||||
typedef struct {
|
||||
const char **entries;
|
||||
int count;
|
||||
} RCT1VehicleHierarchiesGroup;
|
||||
|
||||
RCT1VehicleHierarchiesGroup gVehicleHierarchies[0x60] = {
|
||||
{ SpiralRCObjectOrder, countof(SpiralRCObjectOrder) }, // 0 Spiral Roller coaster
|
||||
{ StandupRCObjectOrder, countof(StandupRCObjectOrder) }, // 1 Stand Up Coaster
|
||||
{ SuspendedSWRCObjectOrder, countof(SuspendedSWRCObjectOrder) }, // 2 Suspended Swinging
|
||||
{ InvertedRCObjectOrder, countof(InvertedRCObjectOrder) }, // 3 Inverted
|
||||
{ JuniorCoasterObjectOrder, countof(JuniorCoasterObjectOrder) }, // 4 Junior RC / Steel Mini Coaster
|
||||
{ MiniatureRailwayObjectOrder, countof(MiniatureRailwayObjectOrder) }, // 5 Mini Railroad
|
||||
{ MonorailObjectOrder, countof(MonorailObjectOrder) }, // 6 Monorail
|
||||
{ MiniSuspendedRCObjectOrder, countof(MiniSuspendedRCObjectOrder) }, // 7 Mini Suspended Coaster
|
||||
{ BoatRideObjectOrder, countof(BoatRideObjectOrder) }, // 8 Boat ride
|
||||
{ WoodenWMObjectOrder, countof(WoodenWMObjectOrder) }, // 9 Wooden Wild Mine/Mouse
|
||||
{ SteeplechaseObjectOrder, countof(SteeplechaseObjectOrder) }, // a Steeplechase/Motorbike/Soap Box Derby
|
||||
{ CarRideObjectOrder, countof(CarRideObjectOrder) }, // b Car Ride
|
||||
{ LaunchedFFObjectOrder, countof(LaunchedFFObjectOrder) }, // c Launched Freefall
|
||||
{ BobsleighRCObjectOrder, countof(BobsleighRCObjectOrder) }, // d Bobsleigh Coaster
|
||||
{ ObservationTowerObjectOrder, countof(ObservationTowerObjectOrder) }, // e Observation Tower
|
||||
{ LoopingRCObjectOrder, countof(LoopingRCObjectOrder) }, // f Looping Roller Coaster
|
||||
{ DinghySlideObjectOrder, countof(DinghySlideObjectOrder) }, // 10 Dinghy Slide
|
||||
{ MineTrainRCObjectOrder, countof(MineTrainRCObjectOrder) }, // 11 Mine Train Coaster
|
||||
{ ChairliftObjectOrder, countof(ChairliftObjectOrder) }, // 12 Chairlift
|
||||
{ CorkscrewRCObjectOrder, countof(CorkscrewRCObjectOrder) }, // 13 Corkscrew Roller Coaster
|
||||
{ NULL, 0 }, // 14 Maze, N/A
|
||||
{ NULL, 0 }, // 15 Spiral Slide, N/A
|
||||
{ GoKartsObjectOrder, countof(GoKartsObjectOrder) }, // 16 Go Karts
|
||||
{ LogFlumeObjectOrder, countof(LogFlumeObjectOrder) }, // 17 Log Flume
|
||||
{ RiverRapidsObjectOrder, countof(RiverRapidsObjectOrder) }, // 18 River Rapids
|
||||
{ NULL, 0 }, // 19 Dodgems, N/A
|
||||
{ NULL, 0 }, // 1a Pirate Ship, N/A
|
||||
{ NULL, 0 }, // 1b Swinging Inverter Ship, N/A
|
||||
{ NULL, 0 }, // 1c Food Stall, N/A
|
||||
{ NULL, 0 }, // 1d (none), N/A
|
||||
{ NULL, 0 }, // 1e Drink Stall, N/A
|
||||
{ NULL, 0 }, // 1f (none), N/A
|
||||
{ NULL, 0 }, // 20 Shop (all types), N/A
|
||||
{ NULL, 0 }, // 21 Merry Go Round, N/A
|
||||
{ NULL, 0 }, // 22 Balloon Stall (maybe), N/A
|
||||
{ NULL, 0 }, // 23 Information Kiosk, N/A
|
||||
{ NULL, 0 }, // 24 Bathroom, N/A
|
||||
{ NULL, 0 }, // 25 Ferris Wheel, N/A
|
||||
{ NULL, 0 }, // 26 Motion Simulator, N/A
|
||||
{ NULL, 0 }, // 27 3D Cinema, N/A
|
||||
{ NULL, 0 }, // 28 Top Spin, N/A
|
||||
{ NULL, 0 }, // 29 Space Rings, N/A
|
||||
{ ReverseFreefallRCObjectOrder, countof(ReverseFreefallRCObjectOrder) }, // 2a Reverse Freefall Coaster
|
||||
{ LiftObjectOrder, countof(LiftObjectOrder) }, // 2b Lift
|
||||
{ VerticalDropRCObjectOrder, countof(VerticalDropRCObjectOrder) }, // 2c Vertical Drop Roller Coaster
|
||||
{ NULL, 0 }, // 2d ATM, N/A
|
||||
{ NULL, 0 }, // 2e Twist, N/A
|
||||
{ NULL, 0 }, // 2f Haunted House, N/A
|
||||
{ NULL, 0 }, // 30 First Aid, N/A
|
||||
{ NULL, 0 }, // 31 Circus Show, N/A
|
||||
{ GhostTrainObjectOrder, countof(GhostTrainObjectOrder) }, // 32 Ghost Train
|
||||
{ TwisterRCObjectOrder, countof(TwisterRCObjectOrder) }, // 33 Twister Roller Coaster
|
||||
{ WoodenRCObjectOrder, countof(WoodenRCObjectOrder) }, // 34 Wooden Roller Coaster
|
||||
{ SideFrictionRCObjectOrder, countof(SideFrictionRCObjectOrder) }, // 35 Side-Friction Roller Coaster
|
||||
{ SteelWildMouseObjectOrder, countof(SteelWildMouseObjectOrder) }, // 36 Steel Wild Mouse
|
||||
{ MultiDimensionRCObjectOrder, countof(MultiDimensionRCObjectOrder) }, // 37 Multi Dimension Coaster
|
||||
{ NULL, 0 }, // 38 (none), N/A
|
||||
{ FlyingRCObjectOrder, countof(FlyingRCObjectOrder) }, // 39 Flying Roller Coaster
|
||||
{ NULL, 0 }, // 3a (none), N/A
|
||||
{ VirginiaReelRCObjectOrder, countof(VirginiaReelRCObjectOrder) }, // 3b Virginia Reel
|
||||
{ SplashBoatsObjectOrder, countof(SplashBoatsObjectOrder) }, // 3c Splash Boats
|
||||
{ MiniHelicoptersObjectOrder, countof(MiniHelicoptersObjectOrder) }, // 3d Mini Helicopters
|
||||
{ LayDownRCObjectOrder, countof(LayDownRCObjectOrder) }, // 3e Lay-down Roller Coaster
|
||||
{ SuspendedMonorailObjectOrder, countof(SuspendedMonorailObjectOrder) }, // 3f Suspended Monorail
|
||||
{ NULL, 0 }, // 40 (none), N/A
|
||||
{ ReverserRCObjectOrder, countof(ReverserRCObjectOrder) }, // 41 Reverser Roller Coaster
|
||||
{ HeartlineTwisterObjectOrder, countof(HeartlineTwisterObjectOrder) }, // 42 Heartline Twister Roller Coaster
|
||||
{ NULL, 0 }, // 43 Mini Golf, N/A
|
||||
{ GigaRCObjectOrder, countof(GigaRCObjectOrder) }, // 44 Giga Coaster
|
||||
{ RotoDropObjectOrder, countof(RotoDropObjectOrder) }, // 45 Roto-Drop
|
||||
{ NULL, 0 }, // 46 Flying Saucers, N/A
|
||||
{ NULL, 0 }, // 47 Crooked House, N/A
|
||||
{ MonorailCyclesObjectOrder, countof(MonorailCyclesObjectOrder) }, // 48 Monorail Cycles
|
||||
{ CompactInvertedRCObjectOrder, countof(CompactInvertedRCObjectOrder) }, // 49 Compact Inverted Coaster
|
||||
{ WaterRCObjectOrder, countof(WaterRCObjectOrder) }, // 4a Water Coaster
|
||||
{ AirPoweredRCObjectOrder, countof(AirPoweredRCObjectOrder) }, // 4b Air Powered Vertical Coaster
|
||||
{ InvertedHairpinRCObjectOrder, countof(InvertedHairpinRCObjectOrder) }, // 4c Inverted Hairpin Coaster
|
||||
{ NULL, 0 }, // 4d Magic Carpet, N/A
|
||||
{ SubmarineRideObjectOrder, countof(SubmarineRideObjectOrder) }, // 4e Submarine Ride
|
||||
{ RiverRaftsObjectOrder, countof(RiverRaftsObjectOrder) }, // 4f River Rafts
|
||||
{ NULL, 0 }, // 50 (none), N/A
|
||||
{ NULL, 0 }, // 51 Enterprise, N/A
|
||||
{ NULL, 0 }, // 52 (none), N/A
|
||||
{ NULL, 0 }, // 53 (none), N/A
|
||||
{ NULL, 0 }, // 54 (none), N/A
|
||||
{ NULL, 0 }, // 55 (none), N/A
|
||||
{ InvertedImpulseRCObjectOrder, countof(InvertedImpulseRCObjectOrder) }, // 56 Inverted Impulse Coaster
|
||||
{ MiniRCObjectOrder, countof(MiniRCObjectOrder) }, // 57 Mini Roller Coaster
|
||||
{ MineRideRCObjectOrder, countof(MineRideRCObjectOrder) }, // 58 Mine Ride
|
||||
{ NULL, 0 }, // 59 Unknown Ride
|
||||
{ LIMLaunchedRCObjectOrder, countof(LIMLaunchedRCObjectOrder) }, // 60 LIM Launched Roller Coaster
|
||||
};
|
||||
|
||||
const uint8 gRideCategories[0x60] = {
|
||||
@@ -1774,7 +1779,7 @@ const uint8 gRideCategories[0x60] = {
|
||||
It determines which picture is shown on the new ride tab and which train type is selected by default.*/
|
||||
bool vehicleIsHigherInHierarchy(int track_type, char *currentVehicleName, char *comparedVehicleName)
|
||||
{
|
||||
if(currentVehicleName==NULL || comparedVehicleName==NULL || gVehicleHierarchies[track_type]==NULL) {
|
||||
if(currentVehicleName==NULL || comparedVehicleName==NULL || gVehicleHierarchies[track_type].entries==NULL) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -1784,14 +1789,14 @@ bool vehicleIsHigherInHierarchy(int track_type, char *currentVehicleName, char *
|
||||
currentVehicleHierarchy=255;
|
||||
comparedVehicleHierarchy=255;
|
||||
|
||||
for(int i=0;i<countof(gVehicleHierarchies[track_type]);i++) {
|
||||
if(gVehicleHierarchies[track_type][i]==NULL)
|
||||
for(int i = 0; i < gVehicleHierarchies[track_type].count; i++) {
|
||||
if(gVehicleHierarchies[track_type].entries[i]==NULL)
|
||||
continue;
|
||||
|
||||
if(strcmp(comparedVehicleName,gVehicleHierarchies[track_type][i])==0)
|
||||
if(strcmp(comparedVehicleName,gVehicleHierarchies[track_type].entries[i])==0)
|
||||
comparedVehicleHierarchy=i;
|
||||
|
||||
if(strcmp(currentVehicleName,gVehicleHierarchies[track_type][i])==0)
|
||||
if(strcmp(currentVehicleName,gVehicleHierarchies[track_type].entries[i])==0)
|
||||
currentVehicleHierarchy=i;
|
||||
}
|
||||
|
||||
|
||||
@@ -502,7 +502,6 @@ enum {
|
||||
|
||||
extern const uint8 RCT1ColourConversionTable[32];
|
||||
|
||||
char **gVehicleHierarchies[0x60];
|
||||
const uint8 gRideCategories[0x60];
|
||||
|
||||
bool rct1_read_sc4(const char *path, rct1_s4 *s4);
|
||||
|
||||
Reference in New Issue
Block a user