1
0
mirror of https://github.com/OpenRCT2/OpenRCT2 synced 2026-01-19 04:53:12 +01:00

Implement flat-to-steep pieces and 25-to-60-degree lifts on the Junior rc

This commit is contained in:
Michael Steenbeek
2016-08-28 00:36:36 +02:00
committed by Ted John
parent 8cf7e87b5c
commit 7ebdec7e8f
2 changed files with 255 additions and 21 deletions

View File

@@ -146,7 +146,9 @@ enum {
SPR_JUNIOR_RC_25_DEG_CHAIN_NE_SW = 27919,
SPR_JUNIOR_RC_60_DEG_CHAIN_NE_SW = 27920,
SPR_JUNIOR_RC_FLAT_TO_25_DEG_UP_CHAIN_NE_SW = 27921,
SPR_JUNIOR_RC_25_DEG_TO_60_DEG_UP_CHAIN_NE_SW_PART_0_2 = 27922,
SPR_JUNIOR_RC_25_DEG_UP_TO_FLAT_CHAIN_NE_SW = 27923,
SPR_JUNIOR_RC_60_DEG_TO_25_DEG_UP_CHAIN_NE_SW_PART_0_2 = 27924,
SPR_JUNIOR_RC_25_DEG_UP_TO_FLAT_CHAIN_SW_NE = 27925,
SPR_JUNIOR_RC_60_DEG_TO_25_DEG_UP_CHAIN_SW_NE = 27926,
SPR_JUNIOR_RC_25_DEG_CHAIN_NW_SE = 27927,
@@ -154,11 +156,17 @@ enum {
SPR_JUNIOR_RC_25_DEG_CHAIN_SE_NW = 27929,
SPR_JUNIOR_RC_60_DEG_CHAIN_SE_NW = 27930,
SPR_JUNIOR_RC_FLAT_TO_25_DEG_UP_CHAIN_NW_SE = 27931,
SPR_JUNIOR_RC_25_DEG_TO_60_DEG_UP_CHAIN_NW_SE_PART_0_2 = 27932,
SPR_JUNIOR_RC_FLAT_TO_25_DEG_UP_CHAIN_SE_NW = 27933,
SPR_JUNIOR_RC_25_DEG_TO_60_DEG_UP_CHAIN_SE_NW = 27934,
SPR_JUNIOR_RC_25_DEG_UP_TO_FLAT_CHAIN_SE_NW = 27935,
SPR_JUNIOR_RC_60_DEG_TO_25_DEG_UP_CHAIN_SE_NW = 27936,
SPR_JUNIOR_RC_25_DEG_UP_TO_FLAT_CHAIN_NW_SE = 27937,
SPR_JUNIOR_RC_60_DEG_TO_25_DEG_UP_CHAIN_NW_SE_PART_0_2 = 27938,
SPR_JUNIOR_RC_25_DEG_TO_60_DEG_UP_CHAIN_NE_SW = 27939,
SPR_JUNIOR_RC_60_DEG_TO_25_DEG_UP_CHAIN_NE_SW = 27940,
SPR_JUNIOR_RC_25_DEG_TO_60_DEG_UP_CHAIN_NW_SE = 27941,
SPR_JUNIOR_RC_60_DEG_TO_25_DEG_UP_CHAIN_NW_SE = 27942,
SPR_JUNIOR_RC_RIGHT_QUARTER_TURN_5_TILES_25_DEG_UP_CHAIN_SW_SE_PART_0 = 27943,
SPR_JUNIOR_RC_RIGHT_QUARTER_TURN_5_TILES_25_DEG_UP_CHAIN_SW_SE_PART_1 = 27944,
SPR_JUNIOR_RC_RIGHT_QUARTER_TURN_5_TILES_25_DEG_UP_CHAIN_SW_SE_PART_2 = 27945,
@@ -558,14 +566,29 @@ enum {
SPR_JUNIOR_RC_FLAT_TO_60_DEG_UP_NW_SE = SPR_G2_BEGIN + 35,
SPR_JUNIOR_RC_FLAT_TO_60_DEG_UP_NE_SW = SPR_G2_BEGIN + 36,
SPR_JUNIOR_RC_FLAT_TO_60_DEG_UP_SE_NW = SPR_G2_BEGIN + 37,
SPR_JUNIOR_RC_FLAT_TO_60_DEG_UP_NW_SE_PART_0_2 = SPR_G2_BEGIN + 35,
SPR_JUNIOR_RC_FLAT_TO_60_DEG_UP_NE_SW_PART_0_2 = SPR_G2_BEGIN + 37,
SPR_JUNIOR_RC_FLAT_TO_60_DEG_UP_NW_SE_PART_0_2 = SPR_G2_BEGIN + 38,
SPR_JUNIOR_RC_FLAT_TO_60_DEG_UP_NE_SW_PART_0_2 = SPR_G2_BEGIN + 39,
SPR_JUNIOR_RC_FLAT_TO_60_DEG_UP_CHAIN_SW_NE = SPR_G2_BEGIN + 46,
SPR_JUNIOR_RC_FLAT_TO_60_DEG_UP_CHAIN_NW_SE = SPR_G2_BEGIN + 47,
SPR_JUNIOR_RC_FLAT_TO_60_DEG_UP_CHAIN_NE_SW = SPR_G2_BEGIN + 48,
SPR_JUNIOR_RC_FLAT_TO_60_DEG_UP_CHAIN_SE_NW = SPR_G2_BEGIN + 49,
SPR_JUNIOR_RC_FLAT_TO_60_DEG_UP_CHAIN_NW_SE_PART_0_2 = SPR_G2_BEGIN + 50,
SPR_JUNIOR_RC_FLAT_TO_60_DEG_UP_CHAIN_NE_SW_PART_0_2 = SPR_G2_BEGIN + 51,
SPR_JUNIOR_RC_60_DEG_UP_TO_FLAT_SW_NE = SPR_G2_BEGIN + 40,
SPR_JUNIOR_RC_60_DEG_UP_TO_FLAT_NW_SE = SPR_G2_BEGIN + 41,
SPR_JUNIOR_RC_60_DEG_UP_TO_FLAT_NE_SW = SPR_G2_BEGIN + 42,
SPR_JUNIOR_RC_60_DEG_UP_TO_FLAT_SE_NW = SPR_G2_BEGIN + 43,
SPR_JUNIOR_RC_60_DEG_UP_TO_FLAT_NW_SE_PART_0_2 = SPR_G2_BEGIN + 44,
SPR_JUNIOR_RC_60_DEG_UP_TO_FLAT_NE_SW_PART_0_2 = SPR_G2_BEGIN + 45,
SPR_JUNIOR_RC_60_DEG_UP_TO_FLAT_CHAIN_SW_NE = SPR_G2_BEGIN + 52,
SPR_JUNIOR_RC_60_DEG_UP_TO_FLAT_CHAIN_NW_SE = SPR_G2_BEGIN + 53,
SPR_JUNIOR_RC_60_DEG_UP_TO_FLAT_CHAIN_NE_SW = SPR_G2_BEGIN + 54,
SPR_JUNIOR_RC_60_DEG_UP_TO_FLAT_CHAIN_SE_NW = SPR_G2_BEGIN + 55,
SPR_JUNIOR_RC_60_DEG_UP_TO_FLAT_CHAIN_NW_SE_PART_0_2 = SPR_G2_BEGIN + 56,
SPR_JUNIOR_RC_60_DEG_UP_TO_FLAT_CHAIN_NE_SW_PART_0_2 = SPR_G2_BEGIN + 57,
};
static const uint32 junior_rc_track_pieces_flat[2][4] = {
@@ -1521,6 +1544,21 @@ static const uint32 junior_rc_track_pieces_flat_to_60_deg_up[2][4][2] = {
},
};
static const uint32 junior_rc_track_pieces_60_deg_up_to_flat[2][4][2] = {
{
{SPR_JUNIOR_RC_60_DEG_UP_TO_FLAT_SW_NE, 0},
{SPR_JUNIOR_RC_60_DEG_UP_TO_FLAT_NW_SE, SPR_JUNIOR_RC_60_DEG_UP_TO_FLAT_NW_SE_PART_0_2},
{SPR_JUNIOR_RC_60_DEG_UP_TO_FLAT_NE_SW, SPR_JUNIOR_RC_60_DEG_UP_TO_FLAT_NE_SW_PART_0_2},
{SPR_JUNIOR_RC_60_DEG_UP_TO_FLAT_SE_NW, 0},
},
{
{SPR_JUNIOR_RC_60_DEG_UP_TO_FLAT_CHAIN_SW_NE, 0},
{SPR_JUNIOR_RC_60_DEG_UP_TO_FLAT_CHAIN_NW_SE, SPR_JUNIOR_RC_60_DEG_UP_TO_FLAT_CHAIN_NW_SE_PART_0_2},
{SPR_JUNIOR_RC_60_DEG_UP_TO_FLAT_CHAIN_NE_SW, SPR_JUNIOR_RC_60_DEG_UP_TO_FLAT_CHAIN_NE_SW_PART_0_2},
{SPR_JUNIOR_RC_60_DEG_UP_TO_FLAT_CHAIN_SE_NW, 0},
},
};
static const uint32 junior_rc_track_pieces_60_deg_up[2][4] = {
{
SPR_JUNIOR_RC_60_DEG_SW_NE,
@@ -1536,18 +1574,34 @@ static const uint32 junior_rc_track_pieces_60_deg_up[2][4] = {
},
};
static const uint32 junior_rc_track_pieces_25_deg_up_to_60_deg_up[4][2] = {
{SPR_JUNIOR_RC_25_DEG_TO_60_DEG_UP_SW_NE, 0},
{SPR_JUNIOR_RC_25_DEG_TO_60_DEG_UP_NW_SE, SPR_JUNIOR_RC_25_DEG_TO_60_DEG_UP_NW_SE_PART_0_2},
{SPR_JUNIOR_RC_25_DEG_TO_60_DEG_UP_NE_SW, SPR_JUNIOR_RC_25_DEG_TO_60_DEG_UP_NE_SW_PART_0_2},
{SPR_JUNIOR_RC_25_DEG_TO_60_DEG_UP_SE_NW, 0},
static const uint32 junior_rc_track_pieces_25_deg_up_to_60_deg_up[2][4][2] = {
{
{SPR_JUNIOR_RC_25_DEG_TO_60_DEG_UP_SW_NE, 0},
{SPR_JUNIOR_RC_25_DEG_TO_60_DEG_UP_NW_SE, SPR_JUNIOR_RC_25_DEG_TO_60_DEG_UP_NW_SE_PART_0_2},
{SPR_JUNIOR_RC_25_DEG_TO_60_DEG_UP_NE_SW, SPR_JUNIOR_RC_25_DEG_TO_60_DEG_UP_NE_SW_PART_0_2},
{SPR_JUNIOR_RC_25_DEG_TO_60_DEG_UP_SE_NW, 0},
},
{
{SPR_JUNIOR_RC_25_DEG_TO_60_DEG_UP_CHAIN_SW_NE, 0},
{SPR_JUNIOR_RC_25_DEG_TO_60_DEG_UP_CHAIN_NW_SE, SPR_JUNIOR_RC_25_DEG_TO_60_DEG_UP_CHAIN_NW_SE_PART_0_2},
{SPR_JUNIOR_RC_25_DEG_TO_60_DEG_UP_CHAIN_NE_SW, SPR_JUNIOR_RC_25_DEG_TO_60_DEG_UP_CHAIN_NE_SW_PART_0_2},
{SPR_JUNIOR_RC_25_DEG_TO_60_DEG_UP_CHAIN_SE_NW, 0},
},
};
static const uint32 junior_rc_track_pieces_60_deg_up_to_25_deg_up[4][2] = {
{SPR_JUNIOR_RC_60_DEG_TO_25_DEG_UP_SW_NE, 0},
{SPR_JUNIOR_RC_60_DEG_TO_25_DEG_UP_NW_SE, SPR_JUNIOR_RC_60_DEG_TO_25_DEG_UP_NW_SE_PART_0_2},
{SPR_JUNIOR_RC_60_DEG_TO_25_DEG_UP_NE_SW, SPR_JUNIOR_RC_60_DEG_TO_25_DEG_UP_NE_SW_PART_0_2},
{SPR_JUNIOR_RC_60_DEG_TO_25_DEG_UP_SE_NW, 0},
static const uint32 junior_rc_track_pieces_60_deg_up_to_25_deg_up[2][4][2] = {
{
{SPR_JUNIOR_RC_60_DEG_TO_25_DEG_UP_SW_NE, 0},
{SPR_JUNIOR_RC_60_DEG_TO_25_DEG_UP_NW_SE, SPR_JUNIOR_RC_60_DEG_TO_25_DEG_UP_NW_SE_PART_0_2},
{SPR_JUNIOR_RC_60_DEG_TO_25_DEG_UP_NE_SW, SPR_JUNIOR_RC_60_DEG_TO_25_DEG_UP_NE_SW_PART_0_2},
{SPR_JUNIOR_RC_60_DEG_TO_25_DEG_UP_SE_NW, 0},
},
{
{SPR_JUNIOR_RC_60_DEG_TO_25_DEG_UP_CHAIN_SW_NE, 0},
{SPR_JUNIOR_RC_60_DEG_TO_25_DEG_UP_CHAIN_NW_SE, SPR_JUNIOR_RC_60_DEG_TO_25_DEG_UP_CHAIN_NW_SE_PART_0_2},
{SPR_JUNIOR_RC_60_DEG_TO_25_DEG_UP_CHAIN_NE_SW, SPR_JUNIOR_RC_60_DEG_TO_25_DEG_UP_CHAIN_NE_SW_PART_0_2},
{SPR_JUNIOR_RC_60_DEG_TO_25_DEG_UP_CHAIN_SE_NW, 0},
}
};
static const uint32 junior_rc_track_pieces_diag_60_deg_up[2][4] = {
@@ -3865,7 +3919,9 @@ static void junior_rc_25_deg_up_to_60_deg_up_paint_setup(uint8 rideIndex, uint8
uint32 image_id = RCT2_GLOBAL(0x00F44198, uint32);
image_id |= junior_rc_track_pieces_25_deg_up_to_60_deg_up[direction][0];
bool isChained = mapElement->type & (1 << 7);
image_id |= junior_rc_track_pieces_25_deg_up_to_60_deg_up[isChained][direction][0];
sub_98197C(image_id,
(sint8)junior_rc_60_deg_up_tile_offsets[direction].x,
@@ -3879,10 +3935,10 @@ static void junior_rc_25_deg_up_to_60_deg_up_paint_setup(uint8 rideIndex, uint8
height,
get_current_rotation());
if (junior_rc_track_pieces_25_deg_up_to_60_deg_up[direction][1] != 0) {
if (junior_rc_track_pieces_25_deg_up_to_60_deg_up[isChained][direction][1] != 0) {
image_id = RCT2_GLOBAL(0x00F44198, uint32);
image_id |= junior_rc_track_pieces_25_deg_up_to_60_deg_up[direction][1];
image_id |= junior_rc_track_pieces_25_deg_up_to_60_deg_up[isChained][direction][1];
sub_98197C(image_id,
(sint8)junior_rc_60_deg_up_tile_offsets[direction].x,
@@ -3931,7 +3987,9 @@ static void junior_rc_60_deg_up_to_25_deg_up_paint_setup(uint8 rideIndex, uint8
uint32 image_id = RCT2_GLOBAL(0x00F44198, uint32);
image_id |= junior_rc_track_pieces_60_deg_up_to_25_deg_up[direction][0];
bool isChained = mapElement->type & (1 << 7);
image_id |= junior_rc_track_pieces_60_deg_up_to_25_deg_up[isChained][direction][0];
sub_98197C(image_id,
(sint8)junior_rc_60_deg_up_tile_offsets[direction].x,
@@ -3945,10 +4003,10 @@ static void junior_rc_60_deg_up_to_25_deg_up_paint_setup(uint8 rideIndex, uint8
height,
get_current_rotation());
if (junior_rc_track_pieces_60_deg_up_to_25_deg_up[direction][1] != 0) {
if (junior_rc_track_pieces_60_deg_up_to_25_deg_up[isChained][direction][1] != 0) {
image_id = RCT2_GLOBAL(0x00F44198, uint32);
image_id |= junior_rc_track_pieces_60_deg_up_to_25_deg_up[direction][1];
image_id |= junior_rc_track_pieces_60_deg_up_to_25_deg_up[isChained][direction][1];
sub_98197C(image_id,
(sint8)junior_rc_60_deg_up_tile_offsets[direction].x,
@@ -4076,6 +4134,179 @@ static void junior_rc_diag_60_deg_down_to_25_deg_down_paint_setup(uint8 rideInde
paint_util_set_general_support_height(height + 72, 0x20);
}
static const rct_xy16 junior_rc_flat_to_60_deg_up_bound_lengths[4][2] = {
{{32, 24}, {0}},
{{10, 1}, {2, 32}},
{{1, 10}, {32, 2}},
{{24, 32}, {0}},
};
static const sint8 junior_rc_flat_to_60_deg_up_bound_thickness[4] = {
1,
43,
43,
1
};
static const rct_xy16 junior_rc_flat_to_60_deg_up_bound_offsets[4][2] = {
{{0, 4}, {0}},
{{10, 0}, {4, 0}},
{{0, 10}, {0, 4}},
{{4, 0}, {0}},
};
static const rct_xy16 junior_rc_flat_to_60_deg_up_tile_offsets[4][2] = {
{{12, -10}, { 0}},
{{22, 9}, {12, -11}},
{{30, 7}, { 5, 0}},
{{12, -12}, { 0}}
};
static const rct_xy16 junior_rc_60_deg_up_to_flat_tile_offsets[4][2] = {
{{13, -9}, { 0 }},
{{32, 9}, {-7, -11}},
{{22, 18}, { 2, -19}},
{{13, -9}, { 0 }}
};
static void junior_rc_flat_to_60_deg_up_paint_setup(uint8 rideIndex, uint8 trackSequence, uint8 direction, int height, rct_map_element* mapElement)
{
uint32 image_id = RCT2_GLOBAL(0x00F44198, uint32);
bool isChained = mapElement->type & (1 << 7);
image_id |= junior_rc_track_pieces_flat_to_60_deg_up[isChained][direction][0];
sub_98197C(image_id,
(sint8)junior_rc_flat_to_60_deg_up_tile_offsets[direction][0].x,
(sint8)junior_rc_flat_to_60_deg_up_tile_offsets[direction][0].y,
junior_rc_flat_to_60_deg_up_bound_lengths[direction][0].x,
junior_rc_flat_to_60_deg_up_bound_lengths[direction][0].y,
junior_rc_flat_to_60_deg_up_bound_thickness[direction],
height + 24,
junior_rc_flat_to_60_deg_up_bound_offsets[direction][0].x,
junior_rc_flat_to_60_deg_up_bound_offsets[direction][0].y,
height,
get_current_rotation());
if (junior_rc_track_pieces_flat_to_60_deg_up[isChained][direction][1] != 0) {
image_id = RCT2_GLOBAL(0x00F44198, uint32);
image_id |= junior_rc_track_pieces_flat_to_60_deg_up[isChained][direction][1];
sub_98197C(image_id,
(sint8)junior_rc_flat_to_60_deg_up_tile_offsets[direction][1].x,
(sint8)junior_rc_flat_to_60_deg_up_tile_offsets[direction][1].y,
junior_rc_flat_to_60_deg_up_bound_lengths[direction][1].x,
junior_rc_flat_to_60_deg_up_bound_lengths[direction][1].y,
junior_rc_flat_to_60_deg_up_bound_thickness[direction],
height,
junior_rc_flat_to_60_deg_up_bound_offsets[direction][1].x,
junior_rc_flat_to_60_deg_up_bound_offsets[direction][1].y,
height,
get_current_rotation());
}
switch (direction) {
case 0:
paint_util_push_tunnel_left(height, TUNNEL_1);
break;
case 1:
paint_util_push_tunnel_right(height + 24, TUNNEL_2);
break;
case 2:
paint_util_push_tunnel_left(height + 24, TUNNEL_2);
break;
case 3:
paint_util_push_tunnel_right(height, TUNNEL_1);
break;
}
const rct_xy16 pos = {RCT2_GLOBAL(0x009DE56A, sint16), RCT2_GLOBAL(0x009DE56E, sint16)};
sint8 support[4] = { 12, 12, 12, 14};
if (track_paint_util_should_paint_supports(pos)) {
metal_a_supports_paint_setup(direction & 1 ? 2 : 1, 4, support[direction], height - 7, RCT2_GLOBAL(0x00F4419C, uint32));
}
paint_util_set_segment_support_height(paint_util_rotate_segments(SEGMENT_C4 | SEGMENT_D0 | SEGMENT_CC, direction), 0xFFFF, 0);
paint_util_set_general_support_height(height + 72, 0x20);
}
static void junior_rc_60_deg_down_to_flat_paint_setup(uint8 rideIndex, uint8 trackSequence, uint8 direction, int height, rct_map_element* mapElement)
{
junior_rc_flat_to_60_deg_up_paint_setup(rideIndex, trackSequence, (direction + 2) & 3, height, mapElement);
}
static void junior_rc_60_deg_up_to_flat_paint_setup(uint8 rideIndex, uint8 trackSequence, uint8 direction, int height, rct_map_element* mapElement) {
uint32 image_id = RCT2_GLOBAL(0x00F44198, uint32);
bool isChained = mapElement->type & (1 << 7);
image_id |= junior_rc_track_pieces_60_deg_up_to_flat[isChained][direction][0];
sub_98197C(image_id,
(sint8)junior_rc_60_deg_up_to_flat_tile_offsets[direction][0].x,
(sint8)junior_rc_60_deg_up_to_flat_tile_offsets[direction][0].y,
junior_rc_flat_to_60_deg_up_bound_lengths[direction][0].x,
junior_rc_flat_to_60_deg_up_bound_lengths[direction][0].y,
junior_rc_flat_to_60_deg_up_bound_thickness[direction],
height + 24,
junior_rc_flat_to_60_deg_up_bound_offsets[direction][0].x,
junior_rc_flat_to_60_deg_up_bound_offsets[direction][0].y,
height,
get_current_rotation());
if (junior_rc_track_pieces_60_deg_up_to_flat[isChained][direction][1] != 0) {
image_id = RCT2_GLOBAL(0x00F44198, uint32);
image_id |= junior_rc_track_pieces_60_deg_up_to_flat[isChained][direction][1];
sub_98197C(image_id,
(sint8)junior_rc_60_deg_up_to_flat_tile_offsets[direction][1].x,
(sint8)junior_rc_60_deg_up_to_flat_tile_offsets[direction][1].y,
junior_rc_flat_to_60_deg_up_bound_lengths[direction][1].x,
junior_rc_flat_to_60_deg_up_bound_lengths[direction][1].y,
junior_rc_flat_to_60_deg_up_bound_thickness[direction],
height,
junior_rc_flat_to_60_deg_up_bound_offsets[direction][1].x,
junior_rc_flat_to_60_deg_up_bound_offsets[direction][1].y,
height,
get_current_rotation());
}
switch (direction) {
case 0:
paint_util_push_tunnel_left(height, TUNNEL_1);
break;
case 1:
paint_util_push_tunnel_right(height + 24, TUNNEL_2);
break;
case 2:
paint_util_push_tunnel_left(height + 24, TUNNEL_2);
break;
case 3:
paint_util_push_tunnel_right(height, TUNNEL_1);
break;
}
const rct_xy16 pos = {RCT2_GLOBAL(0x009DE56A, sint16), RCT2_GLOBAL(0x009DE56E, sint16)};
if (track_paint_util_should_paint_supports(pos)) {
metal_a_supports_paint_setup(direction & 1 ? 2 : 1, 4, 20, height - 5, RCT2_GLOBAL(0x00F4419C, uint32));
}
paint_util_set_segment_support_height(paint_util_rotate_segments(SEGMENT_C4 | SEGMENT_D0 | SEGMENT_CC, direction), 0xFFFF, 0);
paint_util_set_general_support_height(height + 72, 0x20);
}
static void junior_rc_flat_to_60_deg_down_paint_setup(uint8 rideIndex, uint8 trackSequence, uint8 direction, int height, rct_map_element* mapElement)
{
junior_rc_60_deg_up_to_flat_paint_setup(rideIndex, trackSequence, (direction + 2) & 3, height, mapElement);
}
/* 0x008AAA0C */
TRACK_PAINT_FUNCTION get_track_paint_function_junior_rc(int trackType, int direction) {
switch (trackType) {
@@ -4178,10 +4409,13 @@ TRACK_PAINT_FUNCTION get_track_paint_function_junior_rc(int trackType, int direc
return junior_rc_right_quarter_turn_3_tiles_25_deg_down_paint_setup;
case TRACK_ELEM_FLAT_TO_60_DEG_UP:
return junior_rc_flat_to_60_deg_up_paint_setup;
case TRACK_ELEM_60_DEG_UP_TO_FLAT:
return junior_rc_60_deg_up_to_flat_paint_setup;
case TRACK_ELEM_FLAT_TO_60_DEG_DOWN:
return junior_rc_flat_to_60_deg_down_paint_setup;
case TRACK_ELEM_60_DEG_DOWN_TO_FLAT:
return NULL;
return junior_rc_60_deg_down_to_flat_paint_setup;
case TRACK_ELEM_LEFT_HALF_BANKED_HELIX_UP_SMALL:
return junior_rc_left_half_banked_helix_up_small_paint_setup;
@@ -4279,4 +4513,4 @@ TRACK_PAINT_FUNCTION get_track_paint_function_junior_rc(int trackType, int direc
return junior_rc_block_brake_paint_setup;
}
return NULL;
}
}

View File

@@ -1059,7 +1059,7 @@ const uint64 RideTypePossibleTrackConfigurations[91] = {
/* RIDE_TYPE_STAND_UP_ROLLER_COASTER */ (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_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_BLOCK_BRAKES),
/* RIDE_TYPE_SUSPENDED_SWINGING_COASTER */ (1ULL << TRACK_STRAIGHT) | (1ULL << TRACK_STATION_END) | (1ULL << TRACK_LIFT_HILL) | (1ULL << TRACK_SLOPE) | (1ULL << TRACK_SLOPE_STEEP) | (1ULL << TRACK_SLOPE_CURVE) | (1ULL << TRACK_S_BEND) | (1ULL << TRACK_CURVE_SMALL) | (1ULL << TRACK_CURVE) | (1ULL << TRACK_HELIX_LARGE_UNBANKED) | (1ULL << TRACK_BRAKES) | (1ULL << TRACK_BLOCK_BRAKES),
/* RIDE_TYPE_INVERTED_ROLLER_COASTER */ (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_TWIST) | (1ULL << TRACK_HALF_LOOP) | (1ULL << TRACK_CORKSCREW) | (1ULL << TRACK_HELIX_LARGE) | (1ULL << TRACK_BRAKES) | (1ULL << TRACK_ON_RIDE_PHOTO) | (1ULL << TRACK_HALF_LOOP_LARGE) | (1ULL << TRACK_BLOCK_BRAKES) | (1ULL << TRACK_SLOPE_ROLL_BANKING),
/* RIDE_TYPE_JUNIOR_ROLLER_COASTER */ (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_CURVE) | (1ULL << TRACK_S_BEND) | (1ULL << TRACK_CURVE_SMALL) | (1ULL << TRACK_CURVE) | (1ULL << TRACK_HELIX_SMALL) | (1ULL << TRACK_BRAKES) | (1ULL << TRACK_BLOCK_BRAKES),
/* RIDE_TYPE_JUNIOR_ROLLER_COASTER */ (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),
/* RIDE_TYPE_MINIATURE_RAILWAY */ (1ULL << TRACK_STRAIGHT) | (1ULL << TRACK_STATION_END) | (1ULL << TRACK_SLOPE) | (1ULL << TRACK_S_BEND) | (1ULL << TRACK_CURVE_SMALL) | (1ULL << TRACK_CURVE),
/* RIDE_TYPE_MONORAIL */ (1ULL << TRACK_STRAIGHT) | (1ULL << TRACK_STATION_END) | (1ULL << TRACK_SLOPE) | (1ULL << TRACK_S_BEND) | (1ULL << TRACK_CURVE_SMALL) | (1ULL << TRACK_CURVE),
/* RIDE_TYPE_MINI_SUSPENDED_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),