mirror of https://github.com/OpenRCT2/OpenRCT2.git
Define RCT1 vehicles as constants and use a lookup table
This commit is contained in:
parent
74d0c2aed8
commit
caefc1d9cc
178
src/rct1.c
178
src/rct1.c
|
@ -1106,6 +1106,99 @@ static const rct_object_entry RCT1DefaultObjectsRides[] = {
|
|||
{ 0x00008000, { "AML1 " }, 0 }
|
||||
};
|
||||
|
||||
// A value of 255 means the default vehicle for the respective track type should be used.
|
||||
static const uint8 RCT1AlternativeVehicleMappings[89] = {
|
||||
255, // RCT1_VEHICLE_TYPE_STEEL_ROLLER_COASTER_TRAIN
|
||||
255, // RCT1_VEHICLE_TYPE_STEEL_ROLLER_COASTER_TRAIN_BACKWARDS
|
||||
255, // RCT1_VEHICLE_TYPE_WOODEN_ROLLER_COASTER_TRAIN
|
||||
73, // RCT1_VEHICLE_TYPE_INVERTED_COASTER_TRAIN // Not in RCT2
|
||||
255, // RCT1_VEHICLE_TYPE_SUSPENDED_SWINGING_CARS
|
||||
255, // RCT1_VEHICLE_TYPE_LADYBIRD_CARS
|
||||
255, // RCT1_VEHICLE_TYPE_STANDUP_ROLLER_COASTER_CARS
|
||||
85, // RCT1_VEHICLE_TYPE_SPINNING_CARS
|
||||
255, // RCT1_VEHICLE_TYPE_SINGLE_PERSON_SWINGING_CHAIRS
|
||||
86, // RCT1_VEHICLE_TYPE_SWANS_PEDAL_BOATS
|
||||
87, // RCT1_VEHICLE_TYPE_LARGE_MONORAIL_TRAIN
|
||||
88, // RCT1_VEHICLE_TYPE_CANOES
|
||||
255, // RCT1_VEHICLE_TYPE_ROWING_BOATS
|
||||
255, // RCT1_VEHICLE_TYPE_STEAM_TRAIN
|
||||
255, // RCT1_VEHICLE_TYPE_WOODEN_MOUSE_CARS
|
||||
89, // RCT1_VEHICLE_TYPE_BUMPER_BOATS
|
||||
255, // RCT1_VEHICLE_TYPE_WOODEN_ROLLER_COASTER_TRAIN_BACKWARDS
|
||||
90, // RCT1_VEHICLE_TYPE_ROCKET_CARS
|
||||
255, // RCT1_VEHICLE_TYPE_HORSES // Steeplechase
|
||||
255, // RCT1_VEHICLE_TYPE_SPORTSCARS
|
||||
91, // RCT1_VEHICLE_TYPE_LYING_DOWN_SWINGING_CARS // Inverted single-rail
|
||||
92, // RCT1_VEHICLE_TYPE_WOODEN_MINE_CARS
|
||||
93, // RCT1_VEHICLE_TYPE_SUSPENDED_SWINGING_AIRPLANE_CARS
|
||||
255, // RCT1_VEHICLE_TYPE_SMALL_MONORAIL_CARS
|
||||
94, // RCT1_VEHICLE_TYPE_WATER_TRICYCLES
|
||||
255, // RCT1_VEHICLE_TYPE_LAUNCHED_FREEFALL_CAR
|
||||
255, // RCT1_VEHICLE_TYPE_BOBSLEIGH_CARS
|
||||
255, // RCT1_VEHICLE_TYPE_DINGHIES
|
||||
255, // RCT1_VEHICLE_TYPE_ROTATING_CABIN
|
||||
255, // RCT1_VEHICLE_TYPE_MINE_TRAIN
|
||||
255, // RCT1_VEHICLE_TYPE_CHAIRLIFT_CARS
|
||||
255, // RCT1_VEHICLE_TYPE_CORKSCREW_ROLLER_COASTER_TRAIN
|
||||
95, // RCT1_VEHICLE_TYPE_MOTORBIKES
|
||||
96, // RCT1_VEHICLE_TYPE_RACING_CARS
|
||||
97, // RCT1_VEHICLE_TYPE_TRUCKS
|
||||
255, // RCT1_VEHICLE_TYPE_GO_KARTS
|
||||
255, // RCT1_VEHICLE_TYPE_RAPIDS_BOATS
|
||||
255, // RCT1_VEHICLE_TYPE_LOG_FLUME_BOATS
|
||||
255, // RCT1_VEHICLE_TYPE_DODGEMS
|
||||
255, // RCT1_VEHICLE_TYPE_SWINGING_SHIP
|
||||
255, // RCT1_VEHICLE_TYPE_SWINGING_INVERTER_SHIP
|
||||
255, // RCT1_VEHICLE_TYPE_MERRY_GO_ROUND
|
||||
255, // RCT1_VEHICLE_TYPE_FERRIS_WHEEL
|
||||
255, // RCT1_VEHICLE_TYPE_SIMULATOR_POD
|
||||
255, // RCT1_VEHICLE_TYPE_CINEMA_BUILDING
|
||||
255, // RCT1_VEHICLE_TYPE_TOPSPIN_CAR
|
||||
255, // RCT1_VEHICLE_TYPE_SPACE_RINGS
|
||||
255, // RCT1_VEHICLE_TYPE_REVERSE_FREEFALL_ROLLER_COASTER_CAR
|
||||
255, // RCT1_VEHICLE_TYPE_VERTICAL_ROLLER_COASTER_CARS
|
||||
98, // RCT1_VEHICLE_TYPE_CAT_CARS
|
||||
255, // RCT1_VEHICLE_TYPE_TWIST_ARMS_AND_CARS
|
||||
255, // RCT1_VEHICLE_TYPE_HAUNTED_HOUSE_BUILDING
|
||||
99, // RCT1_VEHICLE_TYPE_LOG_CARS
|
||||
255, // RCT1_VEHICLE_TYPE_CIRCUS_TENT
|
||||
255, // RCT1_VEHICLE_TYPE_GHOST_TRAIN_CARS
|
||||
255, // RCT1_VEHICLE_TYPE_STEEL_TWISTER_ROLLER_COASTER_TRAIN
|
||||
255, // RCT1_VEHICLE_TYPE_WOODEN_TWISTER_ROLLER_COASTER_TRAIN
|
||||
255, // RCT1_VEHICLE_TYPE_WOODEN_SIDE_FRICTION_CARS
|
||||
100, // RCT1_VEHICLE_TYPE_VINTAGE_CARS
|
||||
101, // RCT1_VEHICLE_TYPE_STEAM_TRAIN_COVERED_CARS
|
||||
102, // RCT1_VEHICLE_TYPE_STAND_UP_STEEL_TWISTER_ROLLER_COASTER_TRAIN
|
||||
103, // RCT1_VEHICLE_TYPE_FLOORLESS_STEEL_TWISTER_ROLLER_COASTER_TRAIN
|
||||
255, // RCT1_VEHICLE_TYPE_STEEL_MOUSE_CARS
|
||||
104, // RCT1_VEHICLE_TYPE_CHAIRLIFT_CARS_ALTERNATIVE
|
||||
255, // RCT1_VEHICLE_TYPE_SUSPENDED_MONORAIL_TRAIN
|
||||
255, // RCT1_VEHICLE_TYPE_HELICOPTER_CARS
|
||||
255, // RCT1_VEHICLE_TYPE_VIRGINIA_REEL_TUBS
|
||||
255, // RCT1_VEHICLE_TYPE_REVERSER_CARS
|
||||
255, // RCT1_VEHICLE_TYPE_GOLFERS
|
||||
255, // RCT1_VEHICLE_TYPE_RIVER_RIDE_BOATS
|
||||
255, // RCT1_VEHICLE_TYPE_FLYING_ROLLER_COASTER_TRAIN
|
||||
105, // RCT1_VEHICLE_TYPE_NON_LOOPING_STEEL_TWISTER_ROLLER_COASTER_TRAIN
|
||||
255, // RCT1_VEHICLE_TYPE_HEARTLINE_TWISTER_CARS
|
||||
106, // RCT1_VEHICLE_TYPE_HEARTLINE_TWISTER_CARS_REVERSED
|
||||
255, // RCT1_VEHICLE_TYPE_RESERVED
|
||||
255, // RCT1_VEHICLE_TYPE_ROTODROP_CAR
|
||||
255, // RCT1_VEHICLE_TYPE_FLYING_SAUCERS
|
||||
255, // RCT1_VEHICLE_TYPE_CROOKED_HOUSE_BUILDING
|
||||
255, // RCT1_VEHICLE_TYPE_BICYCLES
|
||||
107, // RCT1_VEHICLE_TYPE_HYPERCOASTER_TRAIN
|
||||
255, // RCT1_VEHICLE_TYPE_4_ACROSS_INVERTED_COASTER_TRAIN
|
||||
255, // RCT1_VEHICLE_TYPE_WATER_COASTER_BOATS
|
||||
108, // RCT1_VEHICLE_TYPE_FACEOFF_CARS
|
||||
255, // RCT1_VEHICLE_TYPE_JET_SKIS
|
||||
255, // RCT1_VEHICLE_TYPE_RAFT_BOATS
|
||||
109, // RCT1_VEHICLE_TYPE_AMERICAN_STYLE_STEAM_TRAIN
|
||||
255, // RCT1_VEHICLE_TYPE_AIR_POWERED_COASTER_TRAIN
|
||||
255, // RCT1_VEHICLE_TYPE_SUSPENDED_WILD_MOUSE_CARS // Inverted Hairpin in RCT2
|
||||
255 // RCT1_VEHICLE_TYPE_ENTERPRISE_WHEEL
|
||||
};
|
||||
|
||||
// rct2: 0x0098BD0E
|
||||
static const rct_object_entry RCT1DefaultObjectsSmallScenery[] = {
|
||||
{ 0x00000081, { "TL0 " }, 0 },
|
||||
|
@ -2084,89 +2177,10 @@ static void rct1_import_ride(rct1_s4 *s4, rct_ride *dst, rct1_ride *src)
|
|||
|
||||
// Make sure the right vehicle is chosen.
|
||||
// https://github.com/OpenRCT2/OpenRCT2/wiki/RCT1-ride-and-vehicle-types-and-their-RCT2-equivalents
|
||||
switch(src->vehicle_type)
|
||||
{
|
||||
case 3:
|
||||
dst->subtype = 73;
|
||||
break;
|
||||
case 7:
|
||||
dst->subtype = 85;
|
||||
break;
|
||||
case 9:
|
||||
dst->subtype = 86;
|
||||
break;
|
||||
case 10:
|
||||
dst->subtype = 87;
|
||||
break;
|
||||
case 11:
|
||||
dst->subtype = 88;
|
||||
break;
|
||||
case 15:
|
||||
dst->subtype = 89;
|
||||
break;
|
||||
case 17:
|
||||
dst->subtype = 90;
|
||||
break;
|
||||
case 20:
|
||||
dst->subtype = 91;
|
||||
break;
|
||||
case 21:
|
||||
dst->subtype = 92;
|
||||
break;
|
||||
case 22:
|
||||
dst->subtype = 93;
|
||||
break;
|
||||
case 24:
|
||||
dst->subtype = 94;
|
||||
break;
|
||||
case 32:
|
||||
dst->subtype = 95;
|
||||
break;
|
||||
case 33:
|
||||
dst->subtype = 96;
|
||||
break;
|
||||
case 34:
|
||||
dst->subtype = 97;
|
||||
break;
|
||||
case 49:
|
||||
dst->subtype = 98;
|
||||
break;
|
||||
case 52:
|
||||
dst->subtype = 99;
|
||||
break;
|
||||
case 58:
|
||||
dst->subtype = 100;
|
||||
break;
|
||||
case 59:
|
||||
dst->subtype = 101;
|
||||
break;
|
||||
case 60:
|
||||
dst->subtype = 102;
|
||||
break;
|
||||
case 61:
|
||||
dst->subtype = 103;
|
||||
break;
|
||||
case 63:
|
||||
dst->subtype = 104;
|
||||
break;
|
||||
case 71:
|
||||
dst->subtype = 105;
|
||||
break;
|
||||
case 73:
|
||||
dst->subtype = 106;
|
||||
break;
|
||||
case 79:
|
||||
dst->subtype = 107;
|
||||
break;
|
||||
case 82:
|
||||
dst->subtype = 108;
|
||||
break;
|
||||
case 85:
|
||||
dst->subtype = 109;
|
||||
break;
|
||||
default:
|
||||
if (RCT1AlternativeVehicleMappings[src->vehicle_type] != 255)
|
||||
dst->subtype = RCT1AlternativeVehicleMappings[src->vehicle_type];
|
||||
else
|
||||
dst->subtype = src->type;
|
||||
}
|
||||
|
||||
rideEntry = get_ride_entry(dst->subtype);
|
||||
|
||||
|
|
92
src/rct1.h
92
src/rct1.h
|
@ -426,6 +426,98 @@ enum {
|
|||
RCT1_RIDE_TYPE_LEMONADE_STALL
|
||||
};
|
||||
|
||||
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
|
||||
};
|
||||
|
||||
enum{
|
||||
RCT1_TRACK_ELEM_BOOSTER = 100
|
||||
};
|
||||
|
|
Loading…
Reference in New Issue