diff --git a/src/ride/track_data.c b/src/ride/track_data.c index aff3bd999b..f21eb569ab 100644 --- a/src/ride/track_data.c +++ b/src/ride/track_data.c @@ -5659,7 +5659,7 @@ const TRACK_PAINT_FUNCTION_GETTER RideTypeTrackPaintFunctions[91] = { 0, // RIDE_TYPE_LIM_LAUNCHED_ROLLER_COASTER }; -const track_descriptor gTrackDescriptors[140] = { +const track_descriptor gTrackDescriptors[142] = { { true, TRACK_SLOPE_DOWN_60, TRACK_BANK_NONE, TRACK_CURVE_NONE, TRACK_SLOPE_DOWN_60, TRACK_BANK_NONE, TRACK_ELEM_DIAG_60_DEG_DOWN }, { true, TRACK_SLOPE_DOWN_60, TRACK_BANK_NONE, TRACK_CURVE_NONE, TRACK_SLOPE_DOWN_25, TRACK_BANK_NONE, TRACK_ELEM_DIAG_60_DEG_DOWN_TO_25_DEG_DOWN }, { true, TRACK_SLOPE_DOWN_60, TRACK_BANK_NONE, TRACK_CURVE_NONE, TRACK_SLOPE_NONE, TRACK_BANK_NONE, TRACK_ELEM_DIAG_60_DEG_DOWN_TO_FLAT }, @@ -5712,6 +5712,7 @@ const track_descriptor gTrackDescriptors[140] = { { false, TRACK_SLOPE_DOWN_25, TRACK_BANK_LEFT, TRACK_CURVE_NONE, TRACK_SLOPE_NONE, TRACK_BANK_LEFT, TRACK_ELEM_LEFT_BANKED_25_DEG_DOWN_TO_LEFT_BANKED_FLAT }, { false, TRACK_SLOPE_DOWN_25, TRACK_BANK_LEFT, TRACK_CURVE_NONE, TRACK_SLOPE_NONE, TRACK_BANK_NONE, TRACK_ELEM_LEFT_BANKED_25_DEG_DOWN_TO_FLAT }, { false, TRACK_SLOPE_DOWN_25, TRACK_BANK_NONE, TRACK_CURVE_LEFT_SMALL, TRACK_SLOPE_DOWN_25, TRACK_BANK_NONE, TRACK_ELEM_LEFT_QUARTER_TURN_3_TILES_25_DEG_DOWN }, + { false, TRACK_SLOPE_DOWN_25, TRACK_BANK_NONE, TRACK_CURVE_LEFT_SMALL, TRACK_SLOPE_NONE, TRACK_BANK_LEFT, TRACK_ELEM_LEFT_QUARTER_TURN_3_TILES_25_DEG_DOWN_TO_LEFT_BANK }, { false, TRACK_SLOPE_DOWN_25, TRACK_BANK_NONE, TRACK_CURVE_LEFT, TRACK_SLOPE_DOWN_25, TRACK_BANK_NONE, TRACK_ELEM_LEFT_QUARTER_TURN_5_TILES_25_DEG_DOWN }, { false, TRACK_SLOPE_DOWN_25, TRACK_BANK_NONE, TRACK_CURVE_NONE, TRACK_SLOPE_DOWN_60, TRACK_BANK_NONE, TRACK_ELEM_25_DEG_DOWN_TO_60_DEG_DOWN }, { false, TRACK_SLOPE_DOWN_25, TRACK_BANK_NONE, TRACK_CURVE_NONE, TRACK_SLOPE_DOWN_25, TRACK_BANK_LEFT, TRACK_ELEM_25_DEG_DOWN_TO_LEFT_BANKED_25_DEG_DOWN }, @@ -5721,6 +5722,7 @@ const track_descriptor gTrackDescriptors[140] = { { false, TRACK_SLOPE_DOWN_25, TRACK_BANK_NONE, TRACK_CURVE_NONE, TRACK_SLOPE_NONE, TRACK_BANK_NONE, TRACK_ELEM_25_DEG_DOWN_TO_FLAT }, { false, TRACK_SLOPE_DOWN_25, TRACK_BANK_NONE, TRACK_CURVE_NONE, TRACK_SLOPE_NONE, TRACK_BANK_RIGHT, TRACK_ELEM_25_DEG_DOWN_TO_RIGHT_BANK }, { false, TRACK_SLOPE_DOWN_25, TRACK_BANK_NONE, TRACK_CURVE_RIGHT, TRACK_SLOPE_DOWN_25, TRACK_BANK_NONE, TRACK_ELEM_RIGHT_QUARTER_TURN_5_TILES_25_DEG_DOWN }, + { false, TRACK_SLOPE_DOWN_25, TRACK_BANK_NONE, TRACK_CURVE_RIGHT_SMALL, TRACK_SLOPE_NONE, TRACK_BANK_RIGHT, TRACK_ELEM_RIGHT_QUARTER_TURN_3_TILES_25_DEG_DOWN_TO_RIGHT_BANK }, { false, TRACK_SLOPE_DOWN_25, TRACK_BANK_NONE, TRACK_CURVE_RIGHT_SMALL, TRACK_SLOPE_DOWN_25, TRACK_BANK_NONE, TRACK_ELEM_RIGHT_QUARTER_TURN_3_TILES_25_DEG_DOWN }, { false, TRACK_SLOPE_DOWN_25, TRACK_BANK_RIGHT, TRACK_CURVE_NONE, TRACK_SLOPE_DOWN_25, TRACK_BANK_NONE, TRACK_ELEM_RIGHT_BANKED_25_DEG_DOWN_TO_25_DEG_DOWN }, { false, TRACK_SLOPE_DOWN_25, TRACK_BANK_RIGHT, TRACK_CURVE_NONE, TRACK_SLOPE_DOWN_25, TRACK_BANK_RIGHT, TRACK_ELEM_25_DEG_DOWN_RIGHT_BANKED }, diff --git a/src/ride/track_data.h b/src/ride/track_data.h index 41e8c37d15..cfcba28647 100644 --- a/src/ride/track_data.h +++ b/src/ride/track_data.h @@ -54,4 +54,4 @@ typedef struct { uint8 track_element; } track_descriptor; -extern const track_descriptor gTrackDescriptors[140]; +extern const track_descriptor gTrackDescriptors[142]; diff --git a/src/windows/ride_construction.c b/src/windows/ride_construction.c index 0c3bfde735..d10e554e0e 100644 --- a/src/windows/ride_construction.c +++ b/src/windows/ride_construction.c @@ -1000,13 +1000,13 @@ static void window_ride_construction_resize(rct_window *w) if (_currentTrackSlopeEnd == _previousTrackSlopeEnd) { if (_currentTrackSlopeEnd == TRACK_SLOPE_UP_25) { disabledWidgets |= (1ULL << WIDX_SLOPE_UP_STEEP); - if (_currentTrackCurve == TRACK_CURVE_LEFT_SMALL || _currentTrackCurve == TRACK_CURVE_RIGHT_SMALL || _rideConstructionState != RIDE_CONSTRUCTION_STATE_BACK || !is_track_enabled(TRACK_SLOPE_CURVE_BANKED)) { + if (_currentTrackCurve == TRACK_CURVE_LEFT || _currentTrackCurve == TRACK_CURVE_RIGHT || _rideConstructionState != RIDE_CONSTRUCTION_STATE_BACK || !is_track_enabled(TRACK_SLOPE_CURVE_BANKED)) { disabledWidgets |= (1ULL << WIDX_LEVEL); } } if (_currentTrackSlopeEnd == TRACK_SLOPE_DOWN_25) { disabledWidgets |= (1ULL << WIDX_SLOPE_DOWN_STEEP); - if (_currentTrackCurve == TRACK_CURVE_LEFT_SMALL || _currentTrackCurve == TRACK_CURVE_RIGHT_SMALL || _rideConstructionState != RIDE_CONSTRUCTION_STATE_FRONT || !is_track_enabled(TRACK_SLOPE_CURVE_BANKED)) { + if (_currentTrackCurve == TRACK_CURVE_LEFT || _currentTrackCurve == TRACK_CURVE_RIGHT || _rideConstructionState != RIDE_CONSTRUCTION_STATE_FRONT || !is_track_enabled(TRACK_SLOPE_CURVE_BANKED)) { disabledWidgets |= (1ULL << WIDX_LEVEL); } } @@ -2451,7 +2451,7 @@ static bool sub_6CA2DF_get_track_element(uint8 *trackElement) { } if (curve <= 8) { - for (int i = 0; i < 140; i++) { + for (int i = 0; i < countof(gTrackDescriptors); i++) { track_descriptor trackDescriptor = gTrackDescriptors[i]; if (trackDescriptor.track_curve != curve) continue; if (trackDescriptor.starts_diagonal != startsDiagonal) continue;