1
0
mirror of https://github.com/OpenRCT2/OpenRCT2 synced 2025-12-14 19:42:38 +01:00

Split Steel Wild Mouse and Spinning Wild Mouse when using Ride Groups

Includes a little cleanup for the Ride Groups and a fix in the table with available pieces, which erroneously listed banked pieces as available.
This commit is contained in:
Michael Steenbeek
2017-11-23 15:39:05 +01:00
parent 1011d6172d
commit d88c01de74
6 changed files with 75 additions and 50 deletions

View File

@@ -4470,6 +4470,8 @@ STR_6158 :Failed to load this file...{NEWLINE}Incompatible RCTC version: {COM
STR_6159 :Smooth Nearest Neighbour STR_6159 :Smooth Nearest Neighbour
STR_6160 :{WINDOW_COLOUR_2}Available vehicles: {BLACK}{STRING} STR_6160 :{WINDOW_COLOUR_2}Available vehicles: {BLACK}{STRING}
STR_6161 :Gridlines display toggle STR_6161 :Gridlines display toggle
STR_6162 :Spinning Wild Mouse
STR_6163 :Mouse shaped cars speed through tight corners and short drops, gently spinning around to disorientate the riders
############# #############
# Scenarios # # Scenarios #

View File

@@ -3747,7 +3747,7 @@ enum {
STR_STEEL_TWISTER_GROUP = 6108, STR_STEEL_TWISTER_GROUP = 6108,
STR_HYPER_TWISTER_GROUP = 6109, STR_HYPER_TWISTER_GROUP = 6109,
STR_JUNIOR_RC_GROUP = 6110, STR_JUNIOR_RC_GROUP = 6110,
STR_MIDI_COASTER_GROUP = 6111, STR_CLASSIC_MINI_COASTER_GROUP = 6111,
STR_CORKSCREW_RC_GROUP_DESC = 6112, STR_CORKSCREW_RC_GROUP_DESC = 6112,
STR_HYPERCOASTER_GROUP_DESC = 6113, STR_HYPERCOASTER_GROUP_DESC = 6113,
STR_CAR_RIDE_GROUP_DESC = 6114, STR_CAR_RIDE_GROUP_DESC = 6114,
@@ -3755,7 +3755,7 @@ enum {
STR_STEEL_TWISTER_GROUP_DESC = 6116, STR_STEEL_TWISTER_GROUP_DESC = 6116,
STR_HYPER_TWISTER_GROUP_DESC = 6117, STR_HYPER_TWISTER_GROUP_DESC = 6117,
STR_JUNIOR_RC_GROUP_DESC = 6118, STR_JUNIOR_RC_GROUP_DESC = 6118,
STR_MIDI_COASTER_GROUP_DESC = 6119, STR_CLASSIC_MINI_COASTER_GROUP_DESC = 6119,
STR_NEWS_ITEM_RESEARCH_NEW_VEHICLE_AVAILABLE = 6120, STR_NEWS_ITEM_RESEARCH_NEW_VEHICLE_AVAILABLE = 6120,
@@ -3822,6 +3822,9 @@ enum {
STR_SHORTCUT_GRIDLINES_DISPLAY_TOGGLE = 6161, STR_SHORTCUT_GRIDLINES_DISPLAY_TOGGLE = 6161,
STR_SPINNING_WILD_MOUSE_GROUP = 6162,
STR_SPINNING_WILD_MOUSE_GROUP_DESC = 6163,
// Have to include resource strings (from scenarios and objects) for the time being now that language is partially working // Have to include resource strings (from scenarios and objects) for the time being now that language is partially working
STR_COUNT = 32768 STR_COUNT = 32768
}; };

View File

@@ -79,7 +79,7 @@ class ObjectFileIndex final : public FileIndex<ObjectRepositoryItem>
{ {
private: private:
static constexpr uint32 MAGIC_NUMBER = 0x5844494F; // OIDX static constexpr uint32 MAGIC_NUMBER = 0x5844494F; // OIDX
static constexpr uint16 VERSION = 15; static constexpr uint16 VERSION = 16;
static constexpr auto PATTERN = "*.dat;*.pob"; static constexpr auto PATTERN = "*.dat;*.pob";
public: public:

View File

@@ -76,49 +76,71 @@ static const RideGroup ride_group_junior_rc = {
/*.Naming =*/ { STR_JUNIOR_RC_GROUP, STR_JUNIOR_RC_GROUP_DESC }, /*.Naming =*/ { STR_JUNIOR_RC_GROUP, STR_JUNIOR_RC_GROUP_DESC },
}; };
static const RideGroup ride_group_midi_coaster = { static const RideGroup ride_group_classic_mini_coaster = {
/*.RideType =*/ RIDE_TYPE_JUNIOR_ROLLER_COASTER, /*.RideType =*/ RIDE_TYPE_JUNIOR_ROLLER_COASTER,
/*.MaximumHeight =*/ 15, /*.MaximumHeight =*/ 15,
/*.AvailableTrackPieces =*/ (1ULL << TRACK_STRAIGHT) | (1ULL << TRACK_STATION_END) | (1ULL << TRACK_LIFT_HILL) | (1ULL << TRACK_LIFT_HILL_CURVE) | (1ULL << TRACK_FLAT_ROLL_BANKING) | (1ULL << TRACK_SLOPE) | (1ULL << TRACK_SLOPE_STEEP) | (1ULL << TRACK_SLOPE_LONG) | (1ULL << TRACK_SLOPE_CURVE) | (1ULL << TRACK_S_BEND) | (1ULL << TRACK_CURVE_SMALL) | (1ULL << TRACK_CURVE) | (1ULL << TRACK_HELIX_SMALL) | (1ULL << TRACK_BRAKES) | (1ULL << TRACK_BLOCK_BRAKES) | (1ULL << TRACK_BOOSTER), /*.AvailableTrackPieces =*/ (1ULL << TRACK_STRAIGHT) | (1ULL << TRACK_STATION_END) | (1ULL << TRACK_LIFT_HILL) | (1ULL << TRACK_LIFT_HILL_CURVE) | (1ULL << TRACK_FLAT_ROLL_BANKING) | (1ULL << TRACK_SLOPE) | (1ULL << TRACK_SLOPE_STEEP) | (1ULL << TRACK_SLOPE_LONG) | (1ULL << TRACK_SLOPE_CURVE) | (1ULL << TRACK_S_BEND) | (1ULL << TRACK_CURVE_SMALL) | (1ULL << TRACK_CURVE) | (1ULL << TRACK_HELIX_SMALL) | (1ULL << TRACK_BRAKES) | (1ULL << TRACK_BLOCK_BRAKES) | (1ULL << TRACK_BOOSTER),
/*.Naming =*/ { STR_MIDI_COASTER_GROUP, STR_MIDI_COASTER_GROUP_DESC }, /*.Naming =*/ { STR_CLASSIC_MINI_COASTER_GROUP, STR_CLASSIC_MINI_COASTER_GROUP_DESC },
};
static const RideGroup ride_group_steel_wild_mouse = {
/*.RideType =*/ RIDE_TYPE_WILD_MOUSE,
/*.MaximumHeight =*/ 16,
/*.AvailableTrackPieces =*/ (1ULL << TRACK_STRAIGHT) | (1ULL << TRACK_STATION_END) | (1ULL << TRACK_LIFT_HILL) | (1ULL << TRACK_LIFT_HILL_STEEP) | (1ULL << TRACK_SLOPE) | (1ULL << TRACK_SLOPE_STEEP) | (1ULL << TRACK_SLOPE_LONG) | (1ULL << TRACK_SLOPE_CURVE) | (1ULL << TRACK_CURVE_VERY_SMALL) | (1ULL << TRACK_CURVE_SMALL) | (1ULL << TRACK_BRAKES) | (1ULL << TRACK_BLOCK_BRAKES),
/*.Naming =*/ { STR_RIDE_NAME_WILD_MOUSE, STR_RIDE_DESCRIPTION_WILD_MOUSE },
};
static const RideGroup ride_group_spinning_wild_mouse = {
/*.RideType =*/ RIDE_TYPE_WILD_MOUSE,
/*.MaximumHeight =*/ 16,
/*.AvailableTrackPieces =*/ (1ULL << TRACK_STRAIGHT) | (1ULL << TRACK_STATION_END) | (1ULL << TRACK_LIFT_HILL) | (1ULL << TRACK_SLOPE) | (1ULL << TRACK_SLOPE_LONG) | (1ULL << TRACK_SLOPE_CURVE) | (1ULL << TRACK_CURVE_VERY_SMALL) | (1ULL << TRACK_CURVE_SMALL) | (1ULL << TRACK_BRAKES) | (1ULL << TRACK_BLOCK_BRAKES) | (1ULL << TRACK_ROTATION_CONTROL_TOGGLE),
/*.Naming =*/ { STR_SPINNING_WILD_MOUSE_GROUP, STR_SPINNING_WILD_MOUSE_GROUP_DESC },
}; };
static const RideGroup corkscrew_rc_groups[MAX_RIDE_GROUPS_PER_RIDE_TYPE] = { ride_group_corkscrew_rc, ride_group_hypercoaster }; static const RideGroup corkscrew_rc_groups[MAX_RIDE_GROUPS_PER_RIDE_TYPE] = { ride_group_corkscrew_rc, ride_group_hypercoaster };
static const RideGroup junior_rc_groups[MAX_RIDE_GROUPS_PER_RIDE_TYPE] = { ride_group_junior_rc, ride_group_midi_coaster }; static const RideGroup junior_rc_groups[MAX_RIDE_GROUPS_PER_RIDE_TYPE] = { ride_group_junior_rc, ride_group_classic_mini_coaster };
static const RideGroup car_ride_groups[MAX_RIDE_GROUPS_PER_RIDE_TYPE] = { ride_group_car_ride, ride_group_monster_trucks }; static const RideGroup car_ride_groups[MAX_RIDE_GROUPS_PER_RIDE_TYPE] = { ride_group_car_ride, ride_group_monster_trucks };
static const RideGroup twister_rc_groups[MAX_RIDE_GROUPS_PER_RIDE_TYPE] = { ride_group_steel_twister_rc, ride_group_hyper_twister }; static const RideGroup twister_rc_groups[MAX_RIDE_GROUPS_PER_RIDE_TYPE] = { ride_group_steel_twister_rc, ride_group_hyper_twister };
static const RideGroup steel_wild_mouse_groups[MAX_RIDE_GROUPS_PER_RIDE_TYPE] = { ride_group_steel_wild_mouse, ride_group_spinning_wild_mouse };
const RideGroup * RideGroupManager::GetRideGroup(const uint8 rideType, const rct_ride_entry * rideEntry) const RideGroup * RideGroupManager::GetRideGroup(const uint8 rideType, const rct_ride_entry * rideEntry)
{ {
switch (rideType) { switch (rideType)
case RIDE_TYPE_CORKSCREW_ROLLER_COASTER: {
if (rideEntry->enabledTrackPieces & (1ULL << TRACK_VERTICAL_LOOP)) case RIDE_TYPE_CORKSCREW_ROLLER_COASTER:
return (RideGroup *) &ride_group_corkscrew_rc; if (rideEntry->enabledTrackPieces & (1ULL << TRACK_VERTICAL_LOOP))
else return &ride_group_corkscrew_rc;
return (RideGroup *) &ride_group_hypercoaster; else
case RIDE_TYPE_JUNIOR_ROLLER_COASTER: return &ride_group_hypercoaster;
if (ride_entry_get_supported_track_pieces(rideEntry) & (1ULL << TRACK_SLOPE_STEEP)) case RIDE_TYPE_JUNIOR_ROLLER_COASTER:
return (RideGroup *) &ride_group_midi_coaster; if (ride_entry_get_supported_track_pieces(rideEntry) & (1ULL << TRACK_SLOPE_STEEP))
else return &ride_group_classic_mini_coaster;
return (RideGroup *) &ride_group_junior_rc; else
case RIDE_TYPE_CAR_RIDE: return &ride_group_junior_rc;
if (rideEntry->enabledTrackPieces & (1ULL << TRACK_SLOPE_STEEP)) case RIDE_TYPE_CAR_RIDE:
return (RideGroup *) &ride_group_monster_trucks; if (rideEntry->enabledTrackPieces & (1ULL << TRACK_SLOPE_STEEP))
else return &ride_group_monster_trucks;
return (RideGroup *) &ride_group_car_ride; else
case RIDE_TYPE_TWISTER_ROLLER_COASTER: return &ride_group_car_ride;
if (rideEntry->enabledTrackPieces & (1ULL << TRACK_VERTICAL_LOOP)) case RIDE_TYPE_TWISTER_ROLLER_COASTER:
return (RideGroup *) &ride_group_steel_twister_rc; if (rideEntry->enabledTrackPieces & (1ULL << TRACK_VERTICAL_LOOP))
else return &ride_group_steel_twister_rc;
return (RideGroup *) &ride_group_hyper_twister; else
default: return &ride_group_hyper_twister;
return nullptr; case RIDE_TYPE_WILD_MOUSE:
if (rideEntry->enabledTrackPieces & (1ULL << TRACK_SLOPE_STEEP))
return &ride_group_steel_wild_mouse;
else
return &ride_group_spinning_wild_mouse;
default:
return nullptr;
} }
} }
bool RideGroupManager::RideTypeHasRideGroups(const uint8 rideType) bool RideGroupManager::RideTypeHasRideGroups(const uint8 rideType)
{ {
if (!gConfigInterface.select_by_track_type) { if (!gConfigInterface.select_by_track_type)
{
return false; return false;
} }
@@ -128,6 +150,7 @@ bool RideGroupManager::RideTypeHasRideGroups(const uint8 rideType)
case RIDE_TYPE_JUNIOR_ROLLER_COASTER: case RIDE_TYPE_JUNIOR_ROLLER_COASTER:
case RIDE_TYPE_CAR_RIDE: case RIDE_TYPE_CAR_RIDE:
case RIDE_TYPE_TWISTER_ROLLER_COASTER: case RIDE_TYPE_TWISTER_ROLLER_COASTER:
case RIDE_TYPE_WILD_MOUSE:
return true; return true;
default: default:
return false; return false;
@@ -136,27 +159,24 @@ bool RideGroupManager::RideTypeHasRideGroups(const uint8 rideType)
const RideGroup * RideGroupManager::RideGroupFind(const uint8 rideType, const uint8 index) const RideGroup * RideGroupManager::RideGroupFind(const uint8 rideType, const uint8 index)
{ {
RideGroup * rideGroup; if (index >= MAX_RIDE_GROUPS_PER_RIDE_TYPE)
return nullptr;
switch(rideType) switch(rideType)
{ {
case RIDE_TYPE_CORKSCREW_ROLLER_COASTER: case RIDE_TYPE_CORKSCREW_ROLLER_COASTER:
rideGroup = (RideGroup *) &corkscrew_rc_groups[index]; return &corkscrew_rc_groups[index];
break; case RIDE_TYPE_JUNIOR_ROLLER_COASTER:
case RIDE_TYPE_JUNIOR_ROLLER_COASTER: return &junior_rc_groups[index];
rideGroup = (RideGroup *) &junior_rc_groups[index]; case RIDE_TYPE_CAR_RIDE:
break; return &car_ride_groups[index];
case RIDE_TYPE_CAR_RIDE: case RIDE_TYPE_TWISTER_ROLLER_COASTER:
rideGroup = (RideGroup *) &car_ride_groups[index]; return &twister_rc_groups[index];
break; case RIDE_TYPE_WILD_MOUSE:
case RIDE_TYPE_TWISTER_ROLLER_COASTER: return &steel_wild_mouse_groups[index];
rideGroup = (RideGroup *) &twister_rc_groups[index]; default:
break; return nullptr;
default:
return nullptr;
} }
return rideGroup;
} }
bool RideGroupManager::RideGroupsAreEqual(const RideGroup * a, const RideGroup * b) bool RideGroupManager::RideGroupsAreEqual(const RideGroup * a, const RideGroup * b)

View File

@@ -1110,7 +1110,7 @@ const uint64 RideTypePossibleTrackConfigurations[RIDE_TYPE_COUNT] = {
/* RIDE_TYPE_TWISTER_ROLLER_COASTER */ (1ULL << TRACK_FLAT) | (1ULL << TRACK_STRAIGHT) | (1ULL << TRACK_STATION_END) | (1ULL << TRACK_LIFT_HILL) | (1ULL << TRACK_FLAT_ROLL_BANKING) | (1ULL << TRACK_VERTICAL_LOOP) | (1ULL << TRACK_SLOPE) | (1ULL << TRACK_SLOPE_STEEP) | (1ULL << TRACK_SLOPE_CURVE) | (1ULL << TRACK_SLOPE_CURVE_STEEP) | (1ULL << TRACK_S_BEND) | (1ULL << TRACK_CURVE_SMALL) | (1ULL << TRACK_CURVE) | (1ULL << TRACK_HALF_LOOP) | (1ULL << TRACK_CORKSCREW) | (1ULL << TRACK_HELIX_SMALL) | (1ULL << TRACK_BRAKES) | (1ULL << TRACK_ON_RIDE_PHOTO) | (1ULL << TRACK_SLOPE_VERTICAL) | (1ULL << TRACK_BARREL_ROLL) | (1ULL << TRACK_POWERED_LIFT) | (1ULL << TRACK_HALF_LOOP_LARGE) | (1ULL << TRACK_SLOPE_CURVE_BANKED) | (1ULL << TRACK_BLOCK_BRAKES) | (1ULL << TRACK_SLOPE_ROLL_BANKING) | (1ULL << TRACK_SLOPE_STEEP_LONG) | (1ULL << TRACK_CURVE_VERTICAL) | (1ULL << TRACK_QUARTER_LOOP) | (1ULL << TRACK_BOOSTER), /* RIDE_TYPE_TWISTER_ROLLER_COASTER */ (1ULL << TRACK_FLAT) | (1ULL << TRACK_STRAIGHT) | (1ULL << TRACK_STATION_END) | (1ULL << TRACK_LIFT_HILL) | (1ULL << TRACK_FLAT_ROLL_BANKING) | (1ULL << TRACK_VERTICAL_LOOP) | (1ULL << TRACK_SLOPE) | (1ULL << TRACK_SLOPE_STEEP) | (1ULL << TRACK_SLOPE_CURVE) | (1ULL << TRACK_SLOPE_CURVE_STEEP) | (1ULL << TRACK_S_BEND) | (1ULL << TRACK_CURVE_SMALL) | (1ULL << TRACK_CURVE) | (1ULL << TRACK_HALF_LOOP) | (1ULL << TRACK_CORKSCREW) | (1ULL << TRACK_HELIX_SMALL) | (1ULL << TRACK_BRAKES) | (1ULL << TRACK_ON_RIDE_PHOTO) | (1ULL << TRACK_SLOPE_VERTICAL) | (1ULL << TRACK_BARREL_ROLL) | (1ULL << TRACK_POWERED_LIFT) | (1ULL << TRACK_HALF_LOOP_LARGE) | (1ULL << TRACK_SLOPE_CURVE_BANKED) | (1ULL << TRACK_BLOCK_BRAKES) | (1ULL << TRACK_SLOPE_ROLL_BANKING) | (1ULL << TRACK_SLOPE_STEEP_LONG) | (1ULL << TRACK_CURVE_VERTICAL) | (1ULL << TRACK_QUARTER_LOOP) | (1ULL << TRACK_BOOSTER),
/* RIDE_TYPE_WOODEN_ROLLER_COASTER */ (1ULL << TRACK_FLAT) | (1ULL << TRACK_STRAIGHT) | (1ULL << TRACK_STATION_END) | (1ULL << TRACK_LIFT_HILL) | (1ULL << TRACK_FLAT_ROLL_BANKING) | (1ULL << TRACK_VERTICAL_LOOP) | (1ULL << TRACK_SLOPE) | (1ULL << TRACK_SLOPE_STEEP) | (1ULL << TRACK_SLOPE_CURVE) | (1ULL << TRACK_SLOPE_CURVE_STEEP) | (1ULL << TRACK_S_BEND) | (1ULL << TRACK_CURVE_SMALL) | (1ULL << TRACK_CURVE) | (1ULL << TRACK_HELIX_SMALL) | (1ULL << TRACK_BRAKES) | (1ULL << TRACK_ON_RIDE_PHOTO) | (1ULL << TRACK_WATER_SPLASH) | (1ULL << TRACK_SLOPE_CURVE_BANKED) | (1ULL << TRACK_BLOCK_BRAKES) | (1ULL << TRACK_SLOPE_ROLL_BANKING), /* RIDE_TYPE_WOODEN_ROLLER_COASTER */ (1ULL << TRACK_FLAT) | (1ULL << TRACK_STRAIGHT) | (1ULL << TRACK_STATION_END) | (1ULL << TRACK_LIFT_HILL) | (1ULL << TRACK_FLAT_ROLL_BANKING) | (1ULL << TRACK_VERTICAL_LOOP) | (1ULL << TRACK_SLOPE) | (1ULL << TRACK_SLOPE_STEEP) | (1ULL << TRACK_SLOPE_CURVE) | (1ULL << TRACK_SLOPE_CURVE_STEEP) | (1ULL << TRACK_S_BEND) | (1ULL << TRACK_CURVE_SMALL) | (1ULL << TRACK_CURVE) | (1ULL << TRACK_HELIX_SMALL) | (1ULL << TRACK_BRAKES) | (1ULL << TRACK_ON_RIDE_PHOTO) | (1ULL << TRACK_WATER_SPLASH) | (1ULL << TRACK_SLOPE_CURVE_BANKED) | (1ULL << TRACK_BLOCK_BRAKES) | (1ULL << TRACK_SLOPE_ROLL_BANKING),
/* RIDE_TYPE_SIDE_FRICTION_ROLLER_COASTER */ (1ULL << TRACK_STRAIGHT) | (1ULL << TRACK_STATION_END) | (1ULL << TRACK_LIFT_HILL) | (1ULL << TRACK_SLOPE) | (1ULL << TRACK_S_BEND) | (1ULL << TRACK_CURVE_SMALL) | (1ULL << TRACK_CURVE) | (1ULL << TRACK_BRAKES), /* RIDE_TYPE_SIDE_FRICTION_ROLLER_COASTER */ (1ULL << TRACK_STRAIGHT) | (1ULL << TRACK_STATION_END) | (1ULL << TRACK_LIFT_HILL) | (1ULL << TRACK_SLOPE) | (1ULL << TRACK_S_BEND) | (1ULL << TRACK_CURVE_SMALL) | (1ULL << TRACK_CURVE) | (1ULL << TRACK_BRAKES),
/* RIDE_TYPE_WILD_MOUSE */ (1ULL << TRACK_STRAIGHT) | (1ULL << TRACK_STATION_END) | (1ULL << TRACK_LIFT_HILL) | (1ULL << TRACK_LIFT_HILL_STEEP) | (1ULL << TRACK_FLAT_ROLL_BANKING) | (1ULL << TRACK_SLOPE) | (1ULL << TRACK_SLOPE_STEEP) | (1ULL << TRACK_SLOPE_LONG) | (1ULL << TRACK_SLOPE_CURVE) | (1ULL << TRACK_CURVE_VERY_SMALL) | (1ULL << TRACK_CURVE_SMALL) | (1ULL << TRACK_BRAKES) | (1ULL << TRACK_BLOCK_BRAKES) | (1ULL << TRACK_ROTATION_CONTROL_TOGGLE), /* RIDE_TYPE_WILD_MOUSE */ (1ULL << TRACK_STRAIGHT) | (1ULL << TRACK_STATION_END) | (1ULL << TRACK_LIFT_HILL) | (1ULL << TRACK_LIFT_HILL_STEEP) | (1ULL << TRACK_SLOPE) | (1ULL << TRACK_SLOPE_STEEP) | (1ULL << TRACK_SLOPE_LONG) | (1ULL << TRACK_SLOPE_CURVE) | (1ULL << TRACK_CURVE_VERY_SMALL) | (1ULL << TRACK_CURVE_SMALL) | (1ULL << TRACK_BRAKES) | (1ULL << TRACK_BLOCK_BRAKES) | (1ULL << TRACK_ROTATION_CONTROL_TOGGLE),
/* RIDE_TYPE_MULTI_DIMENSION_ROLLER_COASTER */ (1ULL << TRACK_STRAIGHT) | (1ULL << TRACK_STATION_END) | (1ULL << TRACK_LIFT_HILL) | (1ULL << TRACK_FLAT_ROLL_BANKING) | (1ULL << TRACK_SLOPE) | (1ULL << TRACK_SLOPE_STEEP) | (1ULL << TRACK_S_BEND) | (1ULL << TRACK_CURVE_SMALL) | (1ULL << TRACK_CURVE) | (1ULL << TRACK_HELIX_SMALL) | (1ULL << TRACK_BRAKES) | (1ULL << TRACK_ON_RIDE_PHOTO) | (1ULL << TRACK_SLOPE_VERTICAL) | (1ULL << TRACK_BLOCK_BRAKES) | (1ULL << TRACK_INLINE_TWIST_UNINVERTED) | (1ULL << TRACK_QUARTER_LOOP_UNINVERTED), /* RIDE_TYPE_MULTI_DIMENSION_ROLLER_COASTER */ (1ULL << TRACK_STRAIGHT) | (1ULL << TRACK_STATION_END) | (1ULL << TRACK_LIFT_HILL) | (1ULL << TRACK_FLAT_ROLL_BANKING) | (1ULL << TRACK_SLOPE) | (1ULL << TRACK_SLOPE_STEEP) | (1ULL << TRACK_S_BEND) | (1ULL << TRACK_CURVE_SMALL) | (1ULL << TRACK_CURVE) | (1ULL << TRACK_HELIX_SMALL) | (1ULL << TRACK_BRAKES) | (1ULL << TRACK_ON_RIDE_PHOTO) | (1ULL << TRACK_SLOPE_VERTICAL) | (1ULL << TRACK_BLOCK_BRAKES) | (1ULL << TRACK_INLINE_TWIST_UNINVERTED) | (1ULL << TRACK_QUARTER_LOOP_UNINVERTED),
/* RIDE_TYPE_MULTI_DIMENSION_ROLLER_COASTER_ALT */ (1ULL << TRACK_STRAIGHT) | (1ULL << TRACK_FLAT_ROLL_BANKING) | (1ULL << TRACK_SLOPE) | (1ULL << TRACK_SLOPE_STEEP) | (1ULL << TRACK_S_BEND) | (1ULL << TRACK_CURVE_SMALL) | (1ULL << TRACK_CURVE) | (1ULL << TRACK_BRAKES) | (1ULL << TRACK_ON_RIDE_PHOTO) | (1ULL << TRACK_SLOPE_VERTICAL) | (1ULL << TRACK_BLOCK_BRAKES) | (1ULL << TRACK_INLINE_TWIST_INVERTED) | (1ULL << TRACK_QUARTER_LOOP_INVERTED), /* RIDE_TYPE_MULTI_DIMENSION_ROLLER_COASTER_ALT */ (1ULL << TRACK_STRAIGHT) | (1ULL << TRACK_FLAT_ROLL_BANKING) | (1ULL << TRACK_SLOPE) | (1ULL << TRACK_SLOPE_STEEP) | (1ULL << TRACK_S_BEND) | (1ULL << TRACK_CURVE_SMALL) | (1ULL << TRACK_CURVE) | (1ULL << TRACK_BRAKES) | (1ULL << TRACK_ON_RIDE_PHOTO) | (1ULL << TRACK_SLOPE_VERTICAL) | (1ULL << TRACK_BLOCK_BRAKES) | (1ULL << TRACK_INLINE_TWIST_INVERTED) | (1ULL << TRACK_QUARTER_LOOP_INVERTED),
/* RIDE_TYPE_FLYING_ROLLER_COASTER */ (1ULL << TRACK_STRAIGHT) | (1ULL << TRACK_FLAT_ROLL_BANKING) | (1ULL << TRACK_SLOPE) | (1ULL << TRACK_SLOPE_STEEP) | (1ULL << TRACK_SLOPE_CURVE) | (1ULL << TRACK_SLOPE_CURVE_STEEP) | (1ULL << TRACK_S_BEND) | (1ULL << TRACK_CURVE_SMALL) | (1ULL << TRACK_CURVE) | (1ULL << TRACK_HELIX_SMALL) | (1ULL << TRACK_BRAKES) | (1ULL << TRACK_ON_RIDE_PHOTO) | (1ULL << TRACK_BLOCK_BRAKES) | (1ULL << TRACK_SLOPE_ROLL_BANKING) | (1ULL << TRACK_INLINE_TWIST_UNINVERTED) | (1ULL << TRACK_HALF_LOOP_UNINVERTED), /* RIDE_TYPE_FLYING_ROLLER_COASTER */ (1ULL << TRACK_STRAIGHT) | (1ULL << TRACK_FLAT_ROLL_BANKING) | (1ULL << TRACK_SLOPE) | (1ULL << TRACK_SLOPE_STEEP) | (1ULL << TRACK_SLOPE_CURVE) | (1ULL << TRACK_SLOPE_CURVE_STEEP) | (1ULL << TRACK_S_BEND) | (1ULL << TRACK_CURVE_SMALL) | (1ULL << TRACK_CURVE) | (1ULL << TRACK_HELIX_SMALL) | (1ULL << TRACK_BRAKES) | (1ULL << TRACK_ON_RIDE_PHOTO) | (1ULL << TRACK_BLOCK_BRAKES) | (1ULL << TRACK_SLOPE_ROLL_BANKING) | (1ULL << TRACK_INLINE_TWIST_UNINVERTED) | (1ULL << TRACK_HALF_LOOP_UNINVERTED),

View File

@@ -61,7 +61,7 @@ class TrackDesignFileIndex final : public FileIndex<TrackRepositoryItem>
{ {
private: private:
static constexpr uint32 MAGIC_NUMBER = 0x58444954; // TIDX static constexpr uint32 MAGIC_NUMBER = 0x58444954; // TIDX
static constexpr uint16 VERSION = 1; static constexpr uint16 VERSION = 2;
static constexpr auto PATTERN = "*.td4;*.td6"; static constexpr auto PATTERN = "*.td4;*.td6";
public: public: