Include AlternativeTrackTypes

This commit is contained in:
Marijn van der Werf 2016-08-06 02:09:28 +02:00 committed by Ted John
parent 0e42554f73
commit dd2178c7cf
3 changed files with 266 additions and 1 deletions

View File

@ -30179,3 +30179,263 @@ const rct_vehicle_info_list **gTrackVehicleInfo[17] = {
TrackVehicleInfoList_8B9F98,
TrackVehicleInfoList_8BAD28,
};
/** rct2: 0x00993D1C */
const sint16 AlternativeTrackTypes[256] = {
TRACK_ELEM_FLAT_COVERED, // TRACK_ELEM_FLAT
-1,
-1,
-1,
TRACK_ELEM_25_DEG_UP_COVERED, // TRACK_ELEM_25_DEG_UP
TRACK_ELEM_60_DEG_UP_COVERED, // TRACK_ELEM_60_DEG_UP
TRACK_ELEM_FLAT_TO_25_DEG_UP_COVERED, // TRACK_ELEM_FLAT_TO_25_DEG_UP
TRACK_ELEM_25_DEG_UP_TO_60_DEG_UP_COVERED, // TRACK_ELEM_25_DEG_UP_TO_60_DEG_UP
TRACK_ELEM_60_DEG_UP_TO_25_DEG_UP_COVERED, // TRACK_ELEM_60_DEG_UP_TO_25_DEG_UP
TRACK_ELEM_25_DEG_UP_TO_FLAT_COVERED, // TRACK_ELEM_25_DEG_UP_TO_FLAT
TRACK_ELEM_25_DEG_DOWN_COVERED, // TRACK_ELEM_25_DEG_DOWN
TRACK_ELEM_60_DEG_DOWN_COVERED, // TRACK_ELEM_60_DEG_DOWN
TRACK_ELEM_FLAT_TO_25_DEG_DOWN_COVERED, // TRACK_ELEM_FLAT_TO_25_DEG_DOWN
TRACK_ELEM_25_DEG_DOWN_TO_60_DEG_DOWN_COVERED, // TRACK_ELEM_25_DEG_DOWN_TO_60_DEG_DOWN
TRACK_ELEM_60_DEG_DOWN_TO_25_DEG_DOWN_COVERED, // TRACK_ELEM_60_DEG_DOWN_TO_25_DEG_DOWN
TRACK_ELEM_25_DEG_DOWN_TO_FLAT_COVERED, // TRACK_ELEM_25_DEG_DOWN_TO_FLAT
TRACK_ELEM_LEFT_QUARTER_TURN_5_TILES_COVERED, // TRACK_ELEM_LEFT_QUARTER_TURN_5_TILES
TRACK_ELEM_RIGHT_QUARTER_TURN_5_TILES_COVERED, // TRACK_ELEM_RIGHT_QUARTER_TURN_5_TILES
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
TRACK_ELEM_S_BEND_LEFT_COVERED, // TRACK_ELEM_S_BEND_LEFT
TRACK_ELEM_S_BEND_RIGHT_COVERED, // TRACK_ELEM_S_BEND_RIGHT
-1,
-1,
TRACK_ELEM_LEFT_QUARTER_TURN_3_TILES_COVERED, // TRACK_ELEM_LEFT_QUARTER_TURN_3_TILES
TRACK_ELEM_RIGHT_QUARTER_TURN_3_TILES_COVERED, // TRACK_ELEM_RIGHT_QUARTER_TURN_3_TILES
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
};

View File

@ -58,3 +58,5 @@ typedef struct {
} rct_vehicle_info_list;
extern const rct_vehicle_info_list **gTrackVehicleInfo[17];
extern const sint16 AlternativeTrackTypes[256];

View File

@ -2589,7 +2589,10 @@ static bool sub_6CA2DF(int *_trackType, int *_trackDirection, int *_rideIndex, i
if (ride_type_has_flag(ride->type, RIDE_TYPE_FLAG_TRACK_ELEMENTS_HAVE_TWO_VARIETIES) && _currentTrackCovered & 1) {
if (ride->type != RIDE_TYPE_WATER_COASTER || trackType == TRACK_ELEM_FLAT || trackType == TRACK_ELEM_LEFT_QUARTER_TURN_5_TILES || trackType == TRACK_ELEM_RIGHT_QUARTER_TURN_5_TILES) {
trackType = RCT2_GLOBAL(0x00993D1C + trackType, uint8);
sint16 alternativeType = AlternativeTrackTypes[trackType];
if (alternativeType > -1) {
trackType = (uint8) alternativeType;
}
edxRS16 &= 0xFFFE; // unsets 0x1
}
}