1
0
mirror of https://github.com/OpenRCT2/OpenRCT2 synced 2026-01-15 11:03:00 +01:00

Close #12436: refactor JUNIOR_RC_CHAINTYPE into strong enum (#13237)

* Close #12436: refactor JUNIOR_RC_CHAINTYPE enum
This commit is contained in:
Bryan DiLaura
2020-10-20 18:48:29 -06:00
committed by GitHub
parent 257ada4617
commit 1f245b8288
3 changed files with 171 additions and 157 deletions

View File

@@ -1622,9 +1622,9 @@ static constexpr const uint32_t junior_rc_track_pieces_diag_60_deg_down_to_25_de
void junior_rc_paint_track_flat(
paint_session* session, ride_id_t rideIndex, uint8_t trackSequence, uint8_t direction, uint16_t height,
const TileElement* tileElement, JUNIOR_RC_CHAINTYPE chainType)
const TileElement* tileElement, JuniorRcChainType chainType)
{
uint32_t imageId = junior_rc_track_pieces_flat[chainType][direction] | session->TrackColours[SCHEME_TRACK];
uint32_t imageId = junior_rc_track_pieces_flat[EnumValue(chainType)][direction] | session->TrackColours[SCHEME_TRACK];
sub_98196C_rotated(session, direction, imageId, 0, 6, 32, 20, 1, height);
paint_util_push_tunnel_rotated(session, direction, height, TUNNEL_0);
@@ -1700,9 +1700,9 @@ void junior_rc_paint_station(
void junior_rc_paint_track_25_deg_up(
paint_session* session, ride_id_t rideIndex, uint8_t trackSequence, uint8_t direction, uint16_t height,
const TileElement* tileElement, JUNIOR_RC_CHAINTYPE chainType)
const TileElement* tileElement, JuniorRcChainType chainType)
{
uint32_t imageId = junior_rc_track_pieces_25_deg_up[chainType][direction] | session->TrackColours[SCHEME_TRACK];
uint32_t imageId = junior_rc_track_pieces_25_deg_up[EnumValue(chainType)][direction] | session->TrackColours[SCHEME_TRACK];
sub_98196C_rotated(session, direction, imageId, 0, 6, 32, 20, 1, height);
int8_t tunnelHeights[4] = { -8, 8, 8, -8 };
@@ -1722,9 +1722,10 @@ void junior_rc_paint_track_25_deg_up(
void junior_rc_paint_track_flat_to_25_deg_up(
paint_session* session, ride_id_t rideIndex, uint8_t trackSequence, uint8_t direction, uint16_t height,
const TileElement* tileElement, JUNIOR_RC_CHAINTYPE chainType)
const TileElement* tileElement, JuniorRcChainType chainType)
{
uint32_t imageId = junior_rc_track_pieces_flat_to_25_deg_up[chainType][direction] | session->TrackColours[SCHEME_TRACK];
uint32_t imageId = junior_rc_track_pieces_flat_to_25_deg_up[EnumValue(chainType)][direction]
| session->TrackColours[SCHEME_TRACK];
sub_98196C_rotated(session, direction, imageId, 0, 6, 32, 20, 1, height);
if (direction == 0 || direction == 3)
@@ -1750,9 +1751,10 @@ void junior_rc_paint_track_flat_to_25_deg_up(
void junior_rc_paint_track_25_deg_up_to_flat(
paint_session* session, ride_id_t rideIndex, uint8_t trackSequence, uint8_t direction, uint16_t height,
const TileElement* tileElement, JUNIOR_RC_CHAINTYPE chainType)
const TileElement* tileElement, JuniorRcChainType chainType)
{
uint32_t imageId = junior_rc_track_pieces_25_deg_up_to_flat[chainType][direction] | session->TrackColours[SCHEME_TRACK];
uint32_t imageId = junior_rc_track_pieces_25_deg_up_to_flat[EnumValue(chainType)][direction]
| session->TrackColours[SCHEME_TRACK];
sub_98196C_rotated(session, direction, imageId, 0, 6, 32, 20, 1, height);
uint8_t tunnelType;
@@ -2503,11 +2505,11 @@ static void junior_rc_right_bank_paint_setup(
void junior_rc_paint_track_left_quarter_turn_5_tiles_25_deg_up(
paint_session* session, ride_id_t rideIndex, uint8_t trackSequence, uint8_t direction, uint16_t height,
const TileElement* tileElement, JUNIOR_RC_CHAINTYPE chainType)
const TileElement* tileElement, JuniorRcChainType chainType)
{
track_paint_util_right_quarter_turn_5_tiles_paint(
session, 1, height, direction, trackSequence, session->TrackColours[SCHEME_TRACK],
junior_rc_track_pieces_left_quarter_turn_5_tiles_25_deg_up[chainType],
junior_rc_track_pieces_left_quarter_turn_5_tiles_25_deg_up[EnumValue(chainType)],
junior_rc_left_quarter_turn_5_tiles_25_deg_up_offsets, defaultRightQuarterTurn5TilesBoundLengths, nullptr);
uint8_t supportSpecial[4] = { 8, 8, 8, 3 };
@@ -2583,11 +2585,11 @@ void junior_rc_paint_track_left_quarter_turn_5_tiles_25_deg_up(
void junior_rc_paint_track_right_quarter_turn_5_tiles_25_deg_up(
paint_session* session, ride_id_t rideIndex, uint8_t trackSequence, uint8_t direction, uint16_t height,
const TileElement* tileElement, JUNIOR_RC_CHAINTYPE chainType)
const TileElement* tileElement, JuniorRcChainType chainType)
{
track_paint_util_right_quarter_turn_5_tiles_paint(
session, 1, height, direction, trackSequence, session->TrackColours[SCHEME_TRACK],
junior_rc_track_pieces_right_quarter_turn_5_tiles_25_deg_up[chainType], defaultRightQuarterTurn5TilesOffsets,
junior_rc_track_pieces_right_quarter_turn_5_tiles_25_deg_up[EnumValue(chainType)], defaultRightQuarterTurn5TilesOffsets,
defaultRightQuarterTurn5TilesBoundLengths, nullptr);
uint8_t supportSpecial[4] = { 11, 8, 8, 7 };
@@ -2669,7 +2671,7 @@ static void junior_rc_left_quarter_turn_5_tiles_25_deg_up_paint_setup(
bool isChained = tileElement->AsTrack()->HasChain();
junior_rc_paint_track_left_quarter_turn_5_tiles_25_deg_up(
session, rideIndex, trackSequence, direction, height, tileElement,
isChained ? JUNIOR_RC_CHAIN_FRICTION_WHEELS : JUNIOR_RC_CHAIN_NONE);
isChained ? JuniorRcChainType::FrictionWheels : JuniorRcChainType::None);
}
/* rct2: 0x008AAE20, 0x00519E18, 0x0051A148, 0x0051A452, 0x0051A738 */
@@ -2680,7 +2682,7 @@ static void junior_rc_right_quarter_turn_5_tiles_25_deg_up_paint_setup(
bool isChained = tileElement->AsTrack()->HasChain();
junior_rc_paint_track_right_quarter_turn_5_tiles_25_deg_up(
session, rideIndex, trackSequence, direction, height, tileElement,
isChained ? JUNIOR_RC_CHAIN_FRICTION_WHEELS : JUNIOR_RC_CHAIN_NONE);
isChained ? JuniorRcChainType::FrictionWheels : JuniorRcChainType::None);
}
/* rct2: 0x008AAE30, 0x0051AA42, 0x0051AA68, 0x0051AA8C, 0x0051AAB0 */
@@ -3064,7 +3066,7 @@ static void junior_rc_right_quarter_turn_3_tiles_bank_paint_setup(
void junior_rc_paint_track_right_quarter_turn_3_tiles_25_deg_up(
paint_session* session, ride_id_t rideIndex, uint8_t trackSequence, uint8_t direction, uint16_t height,
const TileElement* tileElement, JUNIOR_RC_CHAINTYPE chainType)
const TileElement* tileElement, JuniorRcChainType chainType)
{
uint32_t imageId = 0;
CoordsXY offset;
@@ -3074,14 +3076,14 @@ void junior_rc_paint_track_right_quarter_turn_3_tiles_25_deg_up(
switch (trackSequence)
{
case 0:
imageId = junior_rc_track_pieces_right_quarter_turn_3_tiles_25_deg_up[chainType][direction][0]
imageId = junior_rc_track_pieces_right_quarter_turn_3_tiles_25_deg_up[EnumValue(chainType)][direction][0]
| session->TrackColours[SCHEME_TRACK];
offset = defaultRightQuarterTurn3TilesOffsets[direction][0];
boundsLength = defaultRightQuarterTurn3TilesBoundLengths[direction][0];
boundsOffset = offset;
break;
case 3:
imageId = junior_rc_track_pieces_right_quarter_turn_3_tiles_25_deg_up[chainType][direction][1]
imageId = junior_rc_track_pieces_right_quarter_turn_3_tiles_25_deg_up[EnumValue(chainType)][direction][1]
| session->TrackColours[SCHEME_TRACK];
offset = defaultRightQuarterTurn3TilesOffsets[direction][2];
boundsLength = defaultRightQuarterTurn3TilesBoundLengths[direction][2];
@@ -3143,7 +3145,7 @@ void junior_rc_paint_track_right_quarter_turn_3_tiles_25_deg_up(
void junior_rc_paint_track_right_quarter_turn_3_tiles_25_deg_down(
paint_session* session, ride_id_t rideIndex, uint8_t trackSequence, uint8_t direction, uint16_t height,
const TileElement* tileElement, JUNIOR_RC_CHAINTYPE chainType)
const TileElement* tileElement, JuniorRcChainType chainType)
{
uint32_t imageId = 0;
CoordsXY offset;
@@ -3153,14 +3155,14 @@ void junior_rc_paint_track_right_quarter_turn_3_tiles_25_deg_down(
switch (trackSequence)
{
case 0:
imageId = junior_rc_track_pieces_right_quarter_turn_3_tiles_25_deg_down[chainType][direction][0]
imageId = junior_rc_track_pieces_right_quarter_turn_3_tiles_25_deg_down[EnumValue(chainType)][direction][0]
| session->TrackColours[SCHEME_TRACK];
offset = defaultRightQuarterTurn3TilesOffsets[direction][0];
boundsLength = defaultRightQuarterTurn3TilesBoundLengths[direction][0];
boundsOffset = offset;
break;
case 3:
imageId = junior_rc_track_pieces_right_quarter_turn_3_tiles_25_deg_down[chainType][direction][1]
imageId = junior_rc_track_pieces_right_quarter_turn_3_tiles_25_deg_down[EnumValue(chainType)][direction][1]
| session->TrackColours[SCHEME_TRACK];
offset = defaultRightQuarterTurn3TilesOffsets[direction][2];
boundsLength = defaultRightQuarterTurn3TilesBoundLengths[direction][2];
@@ -3238,7 +3240,7 @@ static void junior_rc_right_quarter_turn_3_tiles_25_deg_up_paint_setup(
bool isChained = tileElement->AsTrack()->HasChain();
junior_rc_paint_track_right_quarter_turn_3_tiles_25_deg_up(
session, rideIndex, trackSequence, direction, height, tileElement,
isChained ? JUNIOR_RC_CHAIN_FRICTION_WHEELS : JUNIOR_RC_CHAIN_NONE);
isChained ? JuniorRcChainType::FrictionWheels : JuniorRcChainType::None);
}
/** rct2: 0x008AAEF0, 0x0051CEC8, 0x0051D078, 0x0051D202, 0x0051D368*/
@@ -3249,7 +3251,7 @@ static void junior_rc_right_quarter_turn_3_tiles_25_deg_down_paint_setup(
bool isChained = tileElement->AsTrack()->HasChain();
junior_rc_paint_track_right_quarter_turn_3_tiles_25_deg_down(
session, rideIndex, trackSequence, direction, height, tileElement,
isChained ? JUNIOR_RC_CHAIN_FRICTION_WHEELS : JUNIOR_RC_CHAIN_NONE);
isChained ? JuniorRcChainType::FrictionWheels : JuniorRcChainType::None);
}
static constexpr const uint8_t junior_rc_left_quarter_turn_3_tiles_to_right_turn_map[] = { 3, 1, 2, 0 };
@@ -4192,11 +4194,11 @@ static constexpr const uint8_t junior_rc_diag_support_segment[] = { 1, 0, 2, 3 }
void junior_rc_paint_track_diag_flat(
paint_session* session, ride_id_t rideIndex, uint8_t trackSequence, uint8_t direction, uint16_t height,
const TileElement* tileElement, JUNIOR_RC_CHAINTYPE chainType)
const TileElement* tileElement, JuniorRcChainType chainType)
{
track_paint_util_diag_tiles_paint(
session, 1, height, direction, trackSequence, session->TrackColours[SCHEME_TRACK],
junior_rc_track_pieces_diag_flat[chainType], defaultDiagTileOffsets, defaultDiagBoundLengths, nullptr);
junior_rc_track_pieces_diag_flat[EnumValue(chainType)], defaultDiagTileOffsets, defaultDiagBoundLengths, nullptr);
if (trackSequence == 3)
{
@@ -4212,11 +4214,11 @@ void junior_rc_paint_track_diag_flat(
void junior_rc_paint_track_diag_25_deg_up(
paint_session* session, ride_id_t rideIndex, uint8_t trackSequence, uint8_t direction, uint16_t height,
const TileElement* tileElement, JUNIOR_RC_CHAINTYPE chainType)
const TileElement* tileElement, JuniorRcChainType chainType)
{
track_paint_util_diag_tiles_paint(
session, 1, height, direction, trackSequence, session->TrackColours[SCHEME_TRACK],
junior_rc_track_pieces_diag_25_deg_up[chainType], defaultDiagTileOffsets, defaultDiagBoundLengths, nullptr);
junior_rc_track_pieces_diag_25_deg_up[EnumValue(chainType)], defaultDiagTileOffsets, defaultDiagBoundLengths, nullptr);
if (trackSequence == 3)
{
@@ -4232,11 +4234,12 @@ void junior_rc_paint_track_diag_25_deg_up(
void junior_rc_paint_track_diag_flat_to_25_deg_up(
paint_session* session, ride_id_t rideIndex, uint8_t trackSequence, uint8_t direction, uint16_t height,
const TileElement* tileElement, JUNIOR_RC_CHAINTYPE chainType)
const TileElement* tileElement, JuniorRcChainType chainType)
{
track_paint_util_diag_tiles_paint(
session, 1, height, direction, trackSequence, session->TrackColours[SCHEME_TRACK],
junior_rc_track_pieces_diag_flat_to_25_deg_up[chainType], defaultDiagTileOffsets, defaultDiagBoundLengths, nullptr);
junior_rc_track_pieces_diag_flat_to_25_deg_up[EnumValue(chainType)], defaultDiagTileOffsets, defaultDiagBoundLengths,
nullptr);
if (trackSequence == 3)
{
@@ -4252,14 +4255,15 @@ void junior_rc_paint_track_diag_flat_to_25_deg_up(
void junior_rc_paint_track_diag_flat_to_60_deg_up(
paint_session* session, ride_id_t rideIndex, uint8_t trackSequence, uint8_t direction, uint16_t height,
const TileElement* tileElement, JUNIOR_RC_CHAINTYPE chainType)
const TileElement* tileElement, JuniorRcChainType chainType)
{
// There is no specific chain for the Water Coaster, use the Junior RC chain instead
chainType = std::min(JUNIOR_RC_CHAIN_FRICTION_WHEELS, chainType);
chainType = std::min(JuniorRcChainType::FrictionWheels, chainType);
track_paint_util_diag_tiles_paint(
session, 1, height, direction, trackSequence, session->TrackColours[SCHEME_TRACK],
junior_rc_track_pieces_diag_flat_to_60_deg_up[chainType], defaultDiagTileOffsets, defaultDiagBoundLengths, nullptr);
junior_rc_track_pieces_diag_flat_to_60_deg_up[EnumValue(chainType)], defaultDiagTileOffsets, defaultDiagBoundLengths,
nullptr);
if (trackSequence == 3)
{
@@ -4275,11 +4279,12 @@ void junior_rc_paint_track_diag_flat_to_60_deg_up(
void junior_rc_paint_track_diag_25_deg_up_to_flat(
paint_session* session, ride_id_t rideIndex, uint8_t trackSequence, uint8_t direction, uint16_t height,
const TileElement* tileElement, JUNIOR_RC_CHAINTYPE chainType)
const TileElement* tileElement, JuniorRcChainType chainType)
{
track_paint_util_diag_tiles_paint(
session, 1, height, direction, trackSequence, session->TrackColours[SCHEME_TRACK],
junior_rc_track_pieces_diag_25_deg_up_to_flat[chainType], defaultDiagTileOffsets, defaultDiagBoundLengths, nullptr);
junior_rc_track_pieces_diag_25_deg_up_to_flat[EnumValue(chainType)], defaultDiagTileOffsets, defaultDiagBoundLengths,
nullptr);
if (trackSequence == 3)
{
@@ -4295,14 +4300,15 @@ void junior_rc_paint_track_diag_25_deg_up_to_flat(
void junior_rc_paint_track_diag_60_deg_up_to_flat(
paint_session* session, ride_id_t rideIndex, uint8_t trackSequence, uint8_t direction, uint16_t height,
const TileElement* tileElement, JUNIOR_RC_CHAINTYPE chainType)
const TileElement* tileElement, JuniorRcChainType chainType)
{
// There is no specific chain for the Water Coaster, use the Junior RC chain instead
chainType = std::min(JUNIOR_RC_CHAIN_FRICTION_WHEELS, chainType);
chainType = std::min(JuniorRcChainType::FrictionWheels, chainType);
track_paint_util_diag_tiles_paint(
session, 1, height, direction, trackSequence, session->TrackColours[SCHEME_TRACK],
junior_rc_track_pieces_diag_60_deg_up_to_flat[chainType], defaultDiagTileOffsets, defaultDiagBoundLengths, nullptr);
junior_rc_track_pieces_diag_60_deg_up_to_flat[EnumValue(chainType)], defaultDiagTileOffsets, defaultDiagBoundLengths,
nullptr);
if (trackSequence == 3)
{
@@ -4318,11 +4324,12 @@ void junior_rc_paint_track_diag_60_deg_up_to_flat(
void junior_rc_paint_track_diag_25_deg_down(
paint_session* session, ride_id_t rideIndex, uint8_t trackSequence, uint8_t direction, uint16_t height,
const TileElement* tileElement, JUNIOR_RC_CHAINTYPE chainType)
const TileElement* tileElement, JuniorRcChainType chainType)
{
track_paint_util_diag_tiles_paint(
session, 1, height, direction, trackSequence, session->TrackColours[SCHEME_TRACK],
junior_rc_track_pieces_diag_25_deg_down[chainType], defaultDiagTileOffsets, defaultDiagBoundLengths, nullptr);
junior_rc_track_pieces_diag_25_deg_down[EnumValue(chainType)], defaultDiagTileOffsets, defaultDiagBoundLengths,
nullptr);
if (trackSequence == 3)
{
@@ -4338,11 +4345,12 @@ void junior_rc_paint_track_diag_25_deg_down(
void junior_rc_paint_track_diag_flat_to_25_deg_down(
paint_session* session, ride_id_t rideIndex, uint8_t trackSequence, uint8_t direction, uint16_t height,
const TileElement* tileElement, JUNIOR_RC_CHAINTYPE chainType)
const TileElement* tileElement, JuniorRcChainType chainType)
{
track_paint_util_diag_tiles_paint(
session, 1, height, direction, trackSequence, session->TrackColours[SCHEME_TRACK],
junior_rc_track_pieces_diag_flat_to_25_deg_down[chainType], defaultDiagTileOffsets, defaultDiagBoundLengths, nullptr);
junior_rc_track_pieces_diag_flat_to_25_deg_down[EnumValue(chainType)], defaultDiagTileOffsets, defaultDiagBoundLengths,
nullptr);
if (trackSequence == 3)
{
@@ -4358,14 +4366,15 @@ void junior_rc_paint_track_diag_flat_to_25_deg_down(
void junior_rc_paint_track_diag_flat_to_60_deg_down(
paint_session* session, ride_id_t rideIndex, uint8_t trackSequence, uint8_t direction, uint16_t height,
const TileElement* tileElement, JUNIOR_RC_CHAINTYPE chainType)
const TileElement* tileElement, JuniorRcChainType chainType)
{
// There is no specific chain for the Water Coaster, use the Junior RC chain instead
chainType = std::min(JUNIOR_RC_CHAIN_FRICTION_WHEELS, chainType);
chainType = std::min(JuniorRcChainType::FrictionWheels, chainType);
track_paint_util_diag_tiles_paint(
session, 1, height, direction, trackSequence, session->TrackColours[SCHEME_TRACK],
junior_rc_track_pieces_diag_flat_to_60_deg_down[chainType], defaultDiagTileOffsets, defaultDiagBoundLengths, nullptr);
junior_rc_track_pieces_diag_flat_to_60_deg_down[EnumValue(chainType)], defaultDiagTileOffsets, defaultDiagBoundLengths,
nullptr);
if (trackSequence == 3)
{
@@ -4381,11 +4390,12 @@ void junior_rc_paint_track_diag_flat_to_60_deg_down(
void junior_rc_paint_track_diag_25_deg_down_to_flat(
paint_session* session, ride_id_t rideIndex, uint8_t trackSequence, uint8_t direction, uint16_t height,
const TileElement* tileElement, JUNIOR_RC_CHAINTYPE chainType)
const TileElement* tileElement, JuniorRcChainType chainType)
{
track_paint_util_diag_tiles_paint(
session, 1, height, direction, trackSequence, session->TrackColours[SCHEME_TRACK],
junior_rc_track_pieces_diag_25_deg_down_to_flat[chainType], defaultDiagTileOffsets, defaultDiagBoundLengths, nullptr);
junior_rc_track_pieces_diag_25_deg_down_to_flat[EnumValue(chainType)], defaultDiagTileOffsets, defaultDiagBoundLengths,
nullptr);
if (trackSequence == 3)
{
@@ -4401,14 +4411,15 @@ void junior_rc_paint_track_diag_25_deg_down_to_flat(
void junior_rc_paint_track_diag_60_deg_down_to_flat(
paint_session* session, ride_id_t rideIndex, uint8_t trackSequence, uint8_t direction, uint16_t height,
const TileElement* tileElement, JUNIOR_RC_CHAINTYPE chainType)
const TileElement* tileElement, JuniorRcChainType chainType)
{
// There is no specific chain for the Water Coaster, use the Junior RC chain instead
chainType = std::min(JUNIOR_RC_CHAIN_FRICTION_WHEELS, chainType);
chainType = std::min(JuniorRcChainType::FrictionWheels, chainType);
track_paint_util_diag_tiles_paint(
session, 1, height, direction, trackSequence, session->TrackColours[SCHEME_TRACK],
junior_rc_track_pieces_diag_60_deg_down_to_flat[chainType], defaultDiagTileOffsets, defaultDiagBoundLengths, nullptr);
junior_rc_track_pieces_diag_60_deg_down_to_flat[EnumValue(chainType)], defaultDiagTileOffsets, defaultDiagBoundLengths,
nullptr);
if (trackSequence == 3)
{
@@ -4430,7 +4441,7 @@ static void junior_rc_diag_flat_paint_setup(
bool isChained = tileElement->AsTrack()->HasChain();
junior_rc_paint_track_diag_flat(
session, rideIndex, trackSequence, direction, height, tileElement,
isChained ? JUNIOR_RC_CHAIN_FRICTION_WHEELS : JUNIOR_RC_CHAIN_NONE);
isChained ? JuniorRcChainType::FrictionWheels : JuniorRcChainType::None);
}
/** rct2: 0x008AAF40 */
@@ -4441,7 +4452,7 @@ static void junior_rc_diag_25_deg_up_paint_setup(
bool isChained = tileElement->AsTrack()->HasChain();
junior_rc_paint_track_diag_25_deg_up(
session, rideIndex, trackSequence, direction, height, tileElement,
isChained ? JUNIOR_RC_CHAIN_FRICTION_WHEELS : JUNIOR_RC_CHAIN_NONE);
isChained ? JuniorRcChainType::FrictionWheels : JuniorRcChainType::None);
}
/** rct2: 0x008AAF20 */
@@ -4452,7 +4463,7 @@ static void junior_rc_diag_flat_to_25_deg_up_paint_setup(
bool isChained = tileElement->AsTrack()->HasChain();
junior_rc_paint_track_diag_flat_to_25_deg_up(
session, rideIndex, trackSequence, direction, height, tileElement,
isChained ? JUNIOR_RC_CHAIN_FRICTION_WHEELS : JUNIOR_RC_CHAIN_NONE);
isChained ? JuniorRcChainType::FrictionWheels : JuniorRcChainType::None);
}
static void junior_rc_diag_flat_to_60_deg_up_paint_setup(
@@ -4462,7 +4473,7 @@ static void junior_rc_diag_flat_to_60_deg_up_paint_setup(
bool isChained = tileElement->AsTrack()->HasChain();
junior_rc_paint_track_diag_flat_to_60_deg_up(
session, rideIndex, trackSequence, direction, height, tileElement,
isChained ? JUNIOR_RC_CHAIN_FRICTION_WHEELS : JUNIOR_RC_CHAIN_NONE);
isChained ? JuniorRcChainType::FrictionWheels : JuniorRcChainType::None);
}
/** rct2: 0x008AAF30 */
@@ -4473,7 +4484,7 @@ static void junior_rc_diag_25_deg_up_to_flat_paint_setup(
bool isChained = tileElement->AsTrack()->HasChain();
junior_rc_paint_track_diag_25_deg_up_to_flat(
session, rideIndex, trackSequence, direction, height, tileElement,
isChained ? JUNIOR_RC_CHAIN_FRICTION_WHEELS : JUNIOR_RC_CHAIN_NONE);
isChained ? JuniorRcChainType::FrictionWheels : JuniorRcChainType::None);
}
static void junior_rc_diag_60_deg_up_to_flat_paint_setup(
@@ -4483,7 +4494,7 @@ static void junior_rc_diag_60_deg_up_to_flat_paint_setup(
bool isChained = tileElement->AsTrack()->HasChain();
junior_rc_paint_track_diag_60_deg_up_to_flat(
session, rideIndex, trackSequence, direction, height, tileElement,
isChained ? JUNIOR_RC_CHAIN_FRICTION_WHEELS : JUNIOR_RC_CHAIN_NONE);
isChained ? JuniorRcChainType::FrictionWheels : JuniorRcChainType::None);
}
/** rct2: 0x008AAF70 */
@@ -4494,7 +4505,7 @@ static void junior_rc_diag_25_deg_down_paint_setup(
bool isChained = tileElement->AsTrack()->HasChain();
junior_rc_paint_track_diag_25_deg_down(
session, rideIndex, trackSequence, direction, height, tileElement,
isChained ? JUNIOR_RC_CHAIN_FRICTION_WHEELS : JUNIOR_RC_CHAIN_NONE);
isChained ? JuniorRcChainType::FrictionWheels : JuniorRcChainType::None);
}
/** rct2: 0x008AAF50 */
@@ -4505,7 +4516,7 @@ static void junior_rc_diag_flat_to_25_deg_down_paint_setup(
bool isChained = tileElement->AsTrack()->HasChain();
junior_rc_paint_track_diag_flat_to_25_deg_down(
session, rideIndex, trackSequence, direction, height, tileElement,
isChained ? JUNIOR_RC_CHAIN_FRICTION_WHEELS : JUNIOR_RC_CHAIN_NONE);
isChained ? JuniorRcChainType::FrictionWheels : JuniorRcChainType::None);
}
static void junior_rc_diag_flat_to_60_deg_down_paint_setup(
@@ -4515,7 +4526,7 @@ static void junior_rc_diag_flat_to_60_deg_down_paint_setup(
bool isChained = tileElement->AsTrack()->HasChain();
junior_rc_paint_track_diag_flat_to_60_deg_down(
session, rideIndex, trackSequence, direction, height, tileElement,
isChained ? JUNIOR_RC_CHAIN_FRICTION_WHEELS : JUNIOR_RC_CHAIN_NONE);
isChained ? JuniorRcChainType::FrictionWheels : JuniorRcChainType::None);
}
/** rct2: 0x008AAF60 */
@@ -4526,7 +4537,7 @@ static void junior_rc_diag_25_deg_down_to_flat_paint_setup(
bool isChained = tileElement->AsTrack()->HasChain();
junior_rc_paint_track_diag_25_deg_down_to_flat(
session, rideIndex, trackSequence, direction, height, tileElement,
isChained ? JUNIOR_RC_CHAIN_FRICTION_WHEELS : JUNIOR_RC_CHAIN_NONE);
isChained ? JuniorRcChainType::FrictionWheels : JuniorRcChainType::None);
}
static void junior_rc_diag_60_deg_down_to_flat_paint_setup(
@@ -4536,7 +4547,7 @@ static void junior_rc_diag_60_deg_down_to_flat_paint_setup(
bool isChained = tileElement->AsTrack()->HasChain();
junior_rc_paint_track_diag_60_deg_down_to_flat(
session, rideIndex, trackSequence, direction, height, tileElement,
isChained ? JUNIOR_RC_CHAIN_FRICTION_WHEELS : JUNIOR_RC_CHAIN_NONE);
isChained ? JuniorRcChainType::FrictionWheels : JuniorRcChainType::None);
}
/** rct2: 0x008AB1C0 */
@@ -4948,11 +4959,11 @@ static constexpr const CoordsXY junior_rc_60_deg_up_bound_lengths[4] = {
void junior_rc_paint_track_60_deg_up(
paint_session* session, ride_id_t rideIndex, uint8_t trackSequence, uint8_t direction, uint16_t height,
const TileElement* tileElement, JUNIOR_RC_CHAINTYPE chainType)
const TileElement* tileElement, JuniorRcChainType chainType)
{
uint32_t image_id = session->TrackColours[SCHEME_TRACK];
image_id |= junior_rc_track_pieces_60_deg_up[chainType][direction];
image_id |= junior_rc_track_pieces_60_deg_up[EnumValue(chainType)][direction];
sub_98197C(
session, image_id, static_cast<int8_t>(junior_rc_60_deg_up_tile_offsets[direction].x),
@@ -4996,7 +5007,7 @@ static void junior_rc_60_deg_up_paint_setup(
bool isChained = tileElement->AsTrack()->HasChain();
junior_rc_paint_track_60_deg_up(
session, rideIndex, trackSequence, direction, height, tileElement,
isChained ? JUNIOR_RC_CHAIN_FRICTION_WHEELS : JUNIOR_RC_CHAIN_NONE);
isChained ? JuniorRcChainType::FrictionWheels : JuniorRcChainType::None);
}
static void junior_rc_60_deg_down_paint_setup(
@@ -5024,11 +5035,11 @@ static constexpr const CoordsXY junior_rc_25_deg_up_to_60_deg_up_bound_offsets[4
void junior_rc_paint_track_25_deg_up_to_60_deg_up(
paint_session* session, ride_id_t rideIndex, uint8_t trackSequence, uint8_t direction, uint16_t height,
const TileElement* tileElement, JUNIOR_RC_CHAINTYPE chainType)
const TileElement* tileElement, JuniorRcChainType chainType)
{
uint32_t image_id = session->TrackColours[SCHEME_TRACK];
image_id |= junior_rc_track_pieces_25_deg_up_to_60_deg_up[chainType][direction][0];
image_id |= junior_rc_track_pieces_25_deg_up_to_60_deg_up[EnumValue(chainType)][direction][0];
sub_98197C(
session, image_id, static_cast<int8_t>(junior_rc_60_deg_up_tile_offsets[direction].x),
@@ -5039,11 +5050,11 @@ void junior_rc_paint_track_25_deg_up_to_60_deg_up(
junior_rc_25_deg_up_to_60_deg_up_bound_offsets[direction][0].x,
junior_rc_25_deg_up_to_60_deg_up_bound_offsets[direction][0].y, height);
if (junior_rc_track_pieces_25_deg_up_to_60_deg_up[chainType][direction][1] != 0)
if (junior_rc_track_pieces_25_deg_up_to_60_deg_up[EnumValue(chainType)][direction][1] != 0)
{
image_id = session->TrackColours[SCHEME_TRACK];
image_id |= junior_rc_track_pieces_25_deg_up_to_60_deg_up[chainType][direction][1];
image_id |= junior_rc_track_pieces_25_deg_up_to_60_deg_up[EnumValue(chainType)][direction][1];
sub_98197C(
session, image_id, static_cast<int8_t>(junior_rc_60_deg_up_tile_offsets[direction].x),
@@ -5091,7 +5102,7 @@ static void junior_rc_25_deg_up_to_60_deg_up_paint_setup(
bool isChained = tileElement->AsTrack()->HasChain();
junior_rc_paint_track_25_deg_up_to_60_deg_up(
session, rideIndex, trackSequence, direction, height, tileElement,
isChained ? JUNIOR_RC_CHAIN_FRICTION_WHEELS : JUNIOR_RC_CHAIN_NONE);
isChained ? JuniorRcChainType::FrictionWheels : JuniorRcChainType::None);
}
static void junior_rc_60_deg_down_to_25_deg_down_paint_setup(
@@ -5103,11 +5114,11 @@ static void junior_rc_60_deg_down_to_25_deg_down_paint_setup(
void junior_rc_paint_track_60_deg_up_to_25_deg_up(
paint_session* session, ride_id_t rideIndex, uint8_t trackSequence, uint8_t direction, uint16_t height,
const TileElement* tileElement, JUNIOR_RC_CHAINTYPE chainType)
const TileElement* tileElement, JuniorRcChainType chainType)
{
uint32_t image_id = session->TrackColours[SCHEME_TRACK];
image_id |= junior_rc_track_pieces_60_deg_up_to_25_deg_up[chainType][direction][0];
image_id |= junior_rc_track_pieces_60_deg_up_to_25_deg_up[EnumValue(chainType)][direction][0];
sub_98197C(
session, image_id, static_cast<int8_t>(junior_rc_60_deg_up_tile_offsets[direction].x),
@@ -5118,11 +5129,11 @@ void junior_rc_paint_track_60_deg_up_to_25_deg_up(
junior_rc_25_deg_up_to_60_deg_up_bound_offsets[direction][0].x,
junior_rc_25_deg_up_to_60_deg_up_bound_offsets[direction][0].y, height);
if (junior_rc_track_pieces_60_deg_up_to_25_deg_up[chainType][direction][1] != 0)
if (junior_rc_track_pieces_60_deg_up_to_25_deg_up[EnumValue(chainType)][direction][1] != 0)
{
image_id = session->TrackColours[SCHEME_TRACK];
image_id |= junior_rc_track_pieces_60_deg_up_to_25_deg_up[chainType][direction][1];
image_id |= junior_rc_track_pieces_60_deg_up_to_25_deg_up[EnumValue(chainType)][direction][1];
sub_98197C(
session, image_id, static_cast<int8_t>(junior_rc_60_deg_up_tile_offsets[direction].x),
@@ -5169,7 +5180,7 @@ static void junior_rc_60_deg_up_to_25_deg_up_paint_setup(
bool isChained = tileElement->AsTrack()->HasChain();
junior_rc_paint_track_60_deg_up_to_25_deg_up(
session, rideIndex, trackSequence, direction, height, tileElement,
isChained ? JUNIOR_RC_CHAIN_FRICTION_WHEELS : JUNIOR_RC_CHAIN_NONE);
isChained ? JuniorRcChainType::FrictionWheels : JuniorRcChainType::None);
}
static void junior_rc_25_deg_down_to_60_deg_down_paint_setup(
@@ -5181,11 +5192,11 @@ static void junior_rc_25_deg_down_to_60_deg_down_paint_setup(
void junior_rc_paint_track_diag_60_deg_up(
paint_session* session, ride_id_t rideIndex, uint8_t trackSequence, uint8_t direction, uint16_t height,
const TileElement* tileElement, JUNIOR_RC_CHAINTYPE chainType)
const TileElement* tileElement, JuniorRcChainType chainType)
{
track_paint_util_diag_tiles_paint(
session, 1, height, direction, trackSequence, session->TrackColours[SCHEME_TRACK],
junior_rc_track_pieces_diag_60_deg_up[chainType], defaultDiagTileOffsets, defaultDiagBoundLengths, nullptr);
junior_rc_track_pieces_diag_60_deg_up[EnumValue(chainType)], defaultDiagTileOffsets, defaultDiagBoundLengths, nullptr);
if (trackSequence == 3)
{
@@ -5201,11 +5212,12 @@ void junior_rc_paint_track_diag_60_deg_up(
void junior_rc_paint_track_diag_60_deg_down(
paint_session* session, ride_id_t rideIndex, uint8_t trackSequence, uint8_t direction, uint16_t height,
const TileElement* tileElement, JUNIOR_RC_CHAINTYPE chainType)
const TileElement* tileElement, JuniorRcChainType chainType)
{
track_paint_util_diag_tiles_paint(
session, 1, height, direction, trackSequence, session->TrackColours[SCHEME_TRACK],
junior_rc_track_pieces_diag_60_deg_down[chainType], defaultDiagTileOffsets, defaultDiagBoundLengths, nullptr);
junior_rc_track_pieces_diag_60_deg_down[EnumValue(chainType)], defaultDiagTileOffsets, defaultDiagBoundLengths,
nullptr);
if (trackSequence == 3)
{
@@ -5221,12 +5233,12 @@ void junior_rc_paint_track_diag_60_deg_down(
void junior_rc_paint_track_diag_25_deg_up_to_60_deg_up(
paint_session* session, ride_id_t rideIndex, uint8_t trackSequence, uint8_t direction, uint16_t height,
const TileElement* tileElement, JUNIOR_RC_CHAINTYPE chainType)
const TileElement* tileElement, JuniorRcChainType chainType)
{
track_paint_util_diag_tiles_paint(
session, 1, height, direction, trackSequence, session->TrackColours[SCHEME_TRACK],
junior_rc_track_pieces_diag_25_deg_up_to_60_deg_up[chainType], defaultDiagTileOffsets, defaultDiagBoundLengths,
nullptr);
junior_rc_track_pieces_diag_25_deg_up_to_60_deg_up[EnumValue(chainType)], defaultDiagTileOffsets,
defaultDiagBoundLengths, nullptr);
if (trackSequence == 3)
{
@@ -5242,21 +5254,22 @@ void junior_rc_paint_track_diag_25_deg_up_to_60_deg_up(
void junior_rc_paint_track_diag_60_deg_up_to_25_deg_up(
paint_session* session, ride_id_t rideIndex, uint8_t trackSequence, uint8_t direction, uint16_t height,
const TileElement* tileElement, JUNIOR_RC_CHAINTYPE chainType)
const TileElement* tileElement, JuniorRcChainType chainType)
{
if (direction == 1 && trackSequence == 3)
{
sub_98197C(
session,
junior_rc_track_pieces_diag_60_deg_up_to_25_deg_up[chainType][direction] | session->TrackColours[SCHEME_TRACK], -16,
-16, 16, 16, 1, height, 0, 0, height);
junior_rc_track_pieces_diag_60_deg_up_to_25_deg_up[EnumValue(chainType)][direction]
| session->TrackColours[SCHEME_TRACK],
-16, -16, 16, 16, 1, height, 0, 0, height);
}
else
{
track_paint_util_diag_tiles_paint(
session, 1, height, direction, trackSequence, session->TrackColours[SCHEME_TRACK],
junior_rc_track_pieces_diag_60_deg_up_to_25_deg_up[chainType], defaultDiagTileOffsets, defaultDiagBoundLengths,
nullptr);
junior_rc_track_pieces_diag_60_deg_up_to_25_deg_up[EnumValue(chainType)], defaultDiagTileOffsets,
defaultDiagBoundLengths, nullptr);
}
if (trackSequence == 3)
@@ -5273,21 +5286,22 @@ void junior_rc_paint_track_diag_60_deg_up_to_25_deg_up(
void junior_rc_paint_track_diag_25_deg_down_to_60_deg_down(
paint_session* session, ride_id_t rideIndex, uint8_t trackSequence, uint8_t direction, uint16_t height,
const TileElement* tileElement, JUNIOR_RC_CHAINTYPE chainType)
const TileElement* tileElement, JuniorRcChainType chainType)
{
if (direction == 3 && trackSequence == 0)
{
sub_98197C(
session,
junior_rc_track_pieces_diag_25_deg_down_to_60_deg_down[chainType][direction] | session->TrackColours[SCHEME_TRACK],
junior_rc_track_pieces_diag_25_deg_down_to_60_deg_down[EnumValue(chainType)][direction]
| session->TrackColours[SCHEME_TRACK],
-16, -16, 16, 16, 1, height, 0, 0, height);
}
else
{
track_paint_util_diag_tiles_paint(
session, 1, height, direction, trackSequence, session->TrackColours[SCHEME_TRACK],
junior_rc_track_pieces_diag_25_deg_down_to_60_deg_down[chainType], defaultDiagTileOffsets, defaultDiagBoundLengths,
nullptr);
junior_rc_track_pieces_diag_25_deg_down_to_60_deg_down[EnumValue(chainType)], defaultDiagTileOffsets,
defaultDiagBoundLengths, nullptr);
}
if (trackSequence == 3)
@@ -5304,12 +5318,12 @@ void junior_rc_paint_track_diag_25_deg_down_to_60_deg_down(
void junior_rc_paint_track_diag_60_deg_down_to_25_deg_down(
paint_session* session, ride_id_t rideIndex, uint8_t trackSequence, uint8_t direction, uint16_t height,
const TileElement* tileElement, JUNIOR_RC_CHAINTYPE chainType)
const TileElement* tileElement, JuniorRcChainType chainType)
{
track_paint_util_diag_tiles_paint(
session, 1, height, direction, trackSequence, session->TrackColours[SCHEME_TRACK],
junior_rc_track_pieces_diag_60_deg_down_to_25_deg_down[chainType], defaultDiagTileOffsets, defaultDiagBoundLengths,
nullptr);
junior_rc_track_pieces_diag_60_deg_down_to_25_deg_down[EnumValue(chainType)], defaultDiagTileOffsets,
defaultDiagBoundLengths, nullptr);
if (trackSequence == 3)
{
@@ -5330,7 +5344,7 @@ static void junior_rc_diag_60_deg_up_paint_setup(
bool isChained = tileElement->AsTrack()->HasChain();
junior_rc_paint_track_diag_60_deg_up(
session, rideIndex, trackSequence, direction, height, tileElement,
isChained ? JUNIOR_RC_CHAIN_FRICTION_WHEELS : JUNIOR_RC_CHAIN_NONE);
isChained ? JuniorRcChainType::FrictionWheels : JuniorRcChainType::None);
}
static void junior_rc_diag_60_deg_down_paint_setup(
@@ -5340,7 +5354,7 @@ static void junior_rc_diag_60_deg_down_paint_setup(
bool isChained = tileElement->AsTrack()->HasChain();
junior_rc_paint_track_diag_60_deg_down(
session, rideIndex, trackSequence, direction, height, tileElement,
isChained ? JUNIOR_RC_CHAIN_FRICTION_WHEELS : JUNIOR_RC_CHAIN_NONE);
isChained ? JuniorRcChainType::FrictionWheels : JuniorRcChainType::None);
}
static void junior_rc_diag_25_deg_up_to_60_deg_up_paint_setup(
@@ -5350,7 +5364,7 @@ static void junior_rc_diag_25_deg_up_to_60_deg_up_paint_setup(
bool isChained = tileElement->AsTrack()->HasChain();
junior_rc_paint_track_diag_25_deg_up_to_60_deg_up(
session, rideIndex, trackSequence, direction, height, tileElement,
isChained ? JUNIOR_RC_CHAIN_FRICTION_WHEELS : JUNIOR_RC_CHAIN_NONE);
isChained ? JuniorRcChainType::FrictionWheels : JuniorRcChainType::None);
}
static void junior_rc_diag_60_deg_up_to_25_deg_up_paint_setup(
@@ -5360,7 +5374,7 @@ static void junior_rc_diag_60_deg_up_to_25_deg_up_paint_setup(
bool isChained = tileElement->AsTrack()->HasChain();
junior_rc_paint_track_diag_60_deg_up_to_25_deg_up(
session, rideIndex, trackSequence, direction, height, tileElement,
isChained ? JUNIOR_RC_CHAIN_FRICTION_WHEELS : JUNIOR_RC_CHAIN_NONE);
isChained ? JuniorRcChainType::FrictionWheels : JuniorRcChainType::None);
}
static void junior_rc_diag_25_deg_down_to_60_deg_down_paint_setup(
@@ -5370,7 +5384,7 @@ static void junior_rc_diag_25_deg_down_to_60_deg_down_paint_setup(
bool isChained = tileElement->AsTrack()->HasChain();
junior_rc_paint_track_diag_25_deg_down_to_60_deg_down(
session, rideIndex, trackSequence, direction, height, tileElement,
isChained ? JUNIOR_RC_CHAIN_FRICTION_WHEELS : JUNIOR_RC_CHAIN_NONE);
isChained ? JuniorRcChainType::FrictionWheels : JuniorRcChainType::None);
}
static void junior_rc_diag_60_deg_down_to_25_deg_down_paint_setup(
@@ -5380,7 +5394,7 @@ static void junior_rc_diag_60_deg_down_to_25_deg_down_paint_setup(
bool isChained = tileElement->AsTrack()->HasChain();
junior_rc_paint_track_diag_60_deg_down_to_25_deg_down(
session, rideIndex, trackSequence, direction, height, tileElement,
isChained ? JUNIOR_RC_CHAIN_FRICTION_WHEELS : JUNIOR_RC_CHAIN_NONE);
isChained ? JuniorRcChainType::FrictionWheels : JuniorRcChainType::None);
}
static constexpr const CoordsXY junior_rc_flat_to_60_deg_up_bound_lengths[4][2] = {
@@ -5558,7 +5572,7 @@ static void junior_rc_flat_paint_setup(
bool isChained = tileElement->AsTrack()->HasChain();
junior_rc_paint_track_flat(
session, rideIndex, trackSequence, direction, height, tileElement,
isChained ? JUNIOR_RC_CHAIN_FRICTION_WHEELS : JUNIOR_RC_CHAIN_NONE);
isChained ? JuniorRcChainType::FrictionWheels : JuniorRcChainType::None);
}
/* rct2: 0x00515629, 0x00514D22, 0x005151B9 */
@@ -5577,7 +5591,7 @@ static void junior_rc_25_deg_up_paint_setup(
bool isChained = tileElement->AsTrack()->HasChain();
junior_rc_paint_track_25_deg_up(
session, rideIndex, trackSequence, direction, height, tileElement,
isChained ? JUNIOR_RC_CHAIN_FRICTION_WHEELS : JUNIOR_RC_CHAIN_NONE);
isChained ? JuniorRcChainType::FrictionWheels : JuniorRcChainType::None);
}
/* rct2: 0x00518B42 */
@@ -5588,7 +5602,7 @@ static void junior_rc_flat_to_25_deg_up_paint_setup(
bool isChained = tileElement->AsTrack()->HasChain();
junior_rc_paint_track_flat_to_25_deg_up(
session, rideIndex, trackSequence, direction, height, tileElement,
isChained ? JUNIOR_RC_CHAIN_FRICTION_WHEELS : JUNIOR_RC_CHAIN_NONE);
isChained ? JuniorRcChainType::FrictionWheels : JuniorRcChainType::None);
}
/* rct2: 0x00518E56 */
@@ -5599,7 +5613,7 @@ static void junior_rc_25_deg_up_to_flat_paint_setup(
bool isChained = tileElement->AsTrack()->HasChain();
junior_rc_paint_track_25_deg_up_to_flat(
session, rideIndex, trackSequence, direction, height, tileElement,
isChained ? JUNIOR_RC_CHAIN_FRICTION_WHEELS : JUNIOR_RC_CHAIN_NONE);
isChained ? JuniorRcChainType::FrictionWheels : JuniorRcChainType::None);
}
/* rct2: 0x005189B0 */

View File

@@ -13,11 +13,11 @@
#include "../../common.h"
#include "../../paint/tile_element/Paint.TileElement.h"
enum JUNIOR_RC_CHAINTYPE
enum class JuniorRcChainType : uint8_t
{
JUNIOR_RC_CHAIN_NONE,
JUNIOR_RC_CHAIN_FRICTION_WHEELS,
JUNIOR_RC_CHAIN_CHAIN_LIFT,
None,
FrictionWheels,
ChainLift,
};
void junior_rc_paint_station(
@@ -26,90 +26,90 @@ void junior_rc_paint_station(
void junior_rc_paint_track_flat(
paint_session* session, ride_id_t rideIndex, uint8_t trackSequence, uint8_t direction, uint16_t height,
const TileElement* tileElement, JUNIOR_RC_CHAINTYPE chainType);
const TileElement* tileElement, JuniorRcChainType chainType);
void junior_rc_paint_track_25_deg_up(
paint_session* session, ride_id_t rideIndex, uint8_t trackSequence, uint8_t direction, uint16_t height,
const TileElement* tileElement, JUNIOR_RC_CHAINTYPE chainType);
const TileElement* tileElement, JuniorRcChainType chainType);
void junior_rc_paint_track_60_deg_up(
paint_session* session, ride_id_t rideIndex, uint8_t trackSequence, uint8_t direction, uint16_t height,
const TileElement* tileElement, JUNIOR_RC_CHAINTYPE chainType);
const TileElement* tileElement, JuniorRcChainType chainType);
void junior_rc_paint_track_flat_to_25_deg_up(
paint_session* session, ride_id_t rideIndex, uint8_t trackSequence, uint8_t direction, uint16_t height,
const TileElement* tileElement, JUNIOR_RC_CHAINTYPE chainType);
const TileElement* tileElement, JuniorRcChainType chainType);
void junior_rc_paint_track_25_deg_up_to_60_deg_up(
paint_session* session, ride_id_t rideIndex, uint8_t trackSequence, uint8_t direction, uint16_t height,
const TileElement* tileElement, JUNIOR_RC_CHAINTYPE chainType);
const TileElement* tileElement, JuniorRcChainType chainType);
void junior_rc_paint_track_60_deg_up_to_25_deg_up(
paint_session* session, ride_id_t rideIndex, uint8_t trackSequence, uint8_t direction, uint16_t height,
const TileElement* tileElement, JUNIOR_RC_CHAINTYPE chainType);
const TileElement* tileElement, JuniorRcChainType chainType);
void junior_rc_paint_track_25_deg_up_to_flat(
paint_session* session, ride_id_t rideIndex, uint8_t trackSequence, uint8_t direction, uint16_t height,
const TileElement* tileElement, JUNIOR_RC_CHAINTYPE chainType);
const TileElement* tileElement, JuniorRcChainType chainType);
void junior_rc_paint_track_left_quarter_turn_5_tiles_25_deg_up(
paint_session* session, ride_id_t rideIndex, uint8_t trackSequence, uint8_t direction, uint16_t height,
const TileElement* tileElement, JUNIOR_RC_CHAINTYPE chainType);
const TileElement* tileElement, JuniorRcChainType chainType);
void junior_rc_paint_track_right_quarter_turn_5_tiles_25_deg_up(
paint_session* session, ride_id_t rideIndex, uint8_t trackSequence, uint8_t direction, uint16_t height,
const TileElement* tileElement, JUNIOR_RC_CHAINTYPE chainType);
const TileElement* tileElement, JuniorRcChainType chainType);
void junior_rc_paint_track_right_quarter_turn_3_tiles_25_deg_up(
paint_session* session, ride_id_t rideIndex, uint8_t trackSequence, uint8_t direction, uint16_t height,
const TileElement* tileElement, JUNIOR_RC_CHAINTYPE chainType);
const TileElement* tileElement, JuniorRcChainType chainType);
void junior_rc_paint_track_right_quarter_turn_3_tiles_25_deg_down(
paint_session* session, ride_id_t rideIndex, uint8_t trackSequence, uint8_t direction, uint16_t height,
const TileElement* tileElement, JUNIOR_RC_CHAINTYPE chainType);
const TileElement* tileElement, JuniorRcChainType chainType);
void junior_rc_paint_track_diag_flat(
paint_session* session, ride_id_t rideIndex, uint8_t trackSequence, uint8_t direction, uint16_t height,
const TileElement* tileElement, JUNIOR_RC_CHAINTYPE chainType);
const TileElement* tileElement, JuniorRcChainType chainType);
void junior_rc_paint_track_diag_25_deg_up(
paint_session* session, ride_id_t rideIndex, uint8_t trackSequence, uint8_t direction, uint16_t height,
const TileElement* tileElement, JUNIOR_RC_CHAINTYPE chainType);
const TileElement* tileElement, JuniorRcChainType chainType);
void junior_rc_paint_track_diag_60_deg_up(
paint_session* session, ride_id_t rideIndex, uint8_t trackSequence, uint8_t direction, uint16_t height,
const TileElement* tileElement, JUNIOR_RC_CHAINTYPE chainType);
const TileElement* tileElement, JuniorRcChainType chainType);
void junior_rc_paint_track_diag_flat_to_25_deg_up(
paint_session* session, ride_id_t rideIndex, uint8_t trackSequence, uint8_t direction, uint16_t height,
const TileElement* tileElement, JUNIOR_RC_CHAINTYPE chainType);
const TileElement* tileElement, JuniorRcChainType chainType);
void junior_rc_paint_track_diag_flat_to_60_deg_up(
paint_session* session, ride_id_t rideIndex, uint8_t trackSequence, uint8_t direction, uint16_t height,
const TileElement* tileElement, JUNIOR_RC_CHAINTYPE chainType);
const TileElement* tileElement, JuniorRcChainType chainType);
void junior_rc_paint_track_diag_25_deg_up_to_60_deg_up(
paint_session* session, ride_id_t rideIndex, uint8_t trackSequence, uint8_t direction, uint16_t height,
const TileElement* tileElement, JUNIOR_RC_CHAINTYPE chainType);
const TileElement* tileElement, JuniorRcChainType chainType);
void junior_rc_paint_track_diag_60_deg_up_to_25_deg_up(
paint_session* session, ride_id_t rideIndex, uint8_t trackSequence, uint8_t direction, uint16_t height,
const TileElement* tileElement, JUNIOR_RC_CHAINTYPE chainType);
const TileElement* tileElement, JuniorRcChainType chainType);
void junior_rc_paint_track_diag_25_deg_up_to_flat(
paint_session* session, ride_id_t rideIndex, uint8_t trackSequence, uint8_t direction, uint16_t height,
const TileElement* tileElement, JUNIOR_RC_CHAINTYPE chainType);
const TileElement* tileElement, JuniorRcChainType chainType);
void junior_rc_paint_track_diag_60_deg_up_to_flat(
paint_session* session, ride_id_t rideIndex, uint8_t trackSequence, uint8_t direction, uint16_t height,
const TileElement* tileElement, JUNIOR_RC_CHAINTYPE chainType);
const TileElement* tileElement, JuniorRcChainType chainType);
void junior_rc_paint_track_diag_25_deg_down(
paint_session* session, ride_id_t rideIndex, uint8_t trackSequence, uint8_t direction, uint16_t height,
const TileElement* tileElement, JUNIOR_RC_CHAINTYPE chainType);
const TileElement* tileElement, JuniorRcChainType chainType);
void junior_rc_paint_track_diag_60_deg_down(
paint_session* session, ride_id_t rideIndex, uint8_t trackSequence, uint8_t direction, uint16_t height,
const TileElement* tileElement, JUNIOR_RC_CHAINTYPE chainType);
const TileElement* tileElement, JuniorRcChainType chainType);
void junior_rc_paint_track_diag_flat_to_25_deg_down(
paint_session* session, ride_id_t rideIndex, uint8_t trackSequence, uint8_t direction, uint16_t height,
const TileElement* tileElement, JUNIOR_RC_CHAINTYPE chainType);
const TileElement* tileElement, JuniorRcChainType chainType);
void junior_rc_paint_track_diag_flat_to_60_deg_down(
paint_session* session, ride_id_t rideIndex, uint8_t trackSequence, uint8_t direction, uint16_t height,
const TileElement* tileElement, JUNIOR_RC_CHAINTYPE chainType);
const TileElement* tileElement, JuniorRcChainType chainType);
void junior_rc_paint_track_diag_25_deg_down_to_60_deg_down(
paint_session* session, ride_id_t rideIndex, uint8_t trackSequence, uint8_t direction, uint16_t height,
const TileElement* tileElement, JUNIOR_RC_CHAINTYPE chainType);
const TileElement* tileElement, JuniorRcChainType chainType);
void junior_rc_paint_track_diag_60_deg_down_to_25_deg_down(
paint_session* session, ride_id_t rideIndex, uint8_t trackSequence, uint8_t direction, uint16_t height,
const TileElement* tileElement, JUNIOR_RC_CHAINTYPE chainType);
const TileElement* tileElement, JuniorRcChainType chainType);
void junior_rc_paint_track_diag_25_deg_down_to_flat(
paint_session* session, ride_id_t rideIndex, uint8_t trackSequence, uint8_t direction, uint16_t height,
const TileElement* tileElement, JUNIOR_RC_CHAINTYPE chainType);
const TileElement* tileElement, JuniorRcChainType chainType);
void junior_rc_paint_track_diag_60_deg_down_to_flat(
paint_session* session, ride_id_t rideIndex, uint8_t trackSequence, uint8_t direction, uint16_t height,
const TileElement* tileElement, JUNIOR_RC_CHAINTYPE chainType);
const TileElement* tileElement, JuniorRcChainType chainType);
#endif // _JUNIOR_ROLLER_COASTER_H

View File

@@ -19,7 +19,7 @@ static void water_rc_track_flat(
bool isChained = tileElement->AsTrack()->HasChain();
junior_rc_paint_track_flat(
session, rideIndex, trackSequence, direction, height, tileElement,
isChained ? JUNIOR_RC_CHAIN_CHAIN_LIFT : JUNIOR_RC_CHAIN_NONE);
isChained ? JuniorRcChainType::ChainLift : JuniorRcChainType::None);
}
static void water_rc_track_25_deg_up(
@@ -29,7 +29,7 @@ static void water_rc_track_25_deg_up(
bool isChained = tileElement->AsTrack()->HasChain();
junior_rc_paint_track_25_deg_up(
session, rideIndex, trackSequence, direction, height, tileElement,
isChained ? JUNIOR_RC_CHAIN_CHAIN_LIFT : JUNIOR_RC_CHAIN_NONE);
isChained ? JuniorRcChainType::ChainLift : JuniorRcChainType::None);
}
static void water_rc_track_flat_to_25_deg_up(
@@ -39,7 +39,7 @@ static void water_rc_track_flat_to_25_deg_up(
bool isChained = tileElement->AsTrack()->HasChain();
junior_rc_paint_track_flat_to_25_deg_up(
session, rideIndex, trackSequence, direction, height, tileElement,
isChained ? JUNIOR_RC_CHAIN_CHAIN_LIFT : JUNIOR_RC_CHAIN_NONE);
isChained ? JuniorRcChainType::ChainLift : JuniorRcChainType::None);
}
static void water_rc_track_25_deg_up_to_flat(
@@ -49,7 +49,7 @@ static void water_rc_track_25_deg_up_to_flat(
bool isChained = tileElement->AsTrack()->HasChain();
junior_rc_paint_track_25_deg_up_to_flat(
session, rideIndex, trackSequence, direction, height, tileElement,
isChained ? JUNIOR_RC_CHAIN_CHAIN_LIFT : JUNIOR_RC_CHAIN_NONE);
isChained ? JuniorRcChainType::ChainLift : JuniorRcChainType::None);
}
static void water_rc_track_25_deg_down(
@@ -80,7 +80,7 @@ static void water_rc_track_diag_flat(
bool isChained = tileElement->AsTrack()->HasChain();
junior_rc_paint_track_diag_flat(
session, rideIndex, trackSequence, direction, height, tileElement,
isChained ? JUNIOR_RC_CHAIN_CHAIN_LIFT : JUNIOR_RC_CHAIN_NONE);
isChained ? JuniorRcChainType::ChainLift : JuniorRcChainType::None);
}
static void water_rc_track_diag_25_deg_up(
@@ -90,7 +90,7 @@ static void water_rc_track_diag_25_deg_up(
bool isChained = tileElement->AsTrack()->HasChain();
junior_rc_paint_track_diag_25_deg_up(
session, rideIndex, trackSequence, direction, height, tileElement,
isChained ? JUNIOR_RC_CHAIN_CHAIN_LIFT : JUNIOR_RC_CHAIN_NONE);
isChained ? JuniorRcChainType::ChainLift : JuniorRcChainType::None);
}
static void water_rc_track_diag_flat_to_25_deg_up(
@@ -100,7 +100,7 @@ static void water_rc_track_diag_flat_to_25_deg_up(
bool isChained = tileElement->AsTrack()->HasChain();
junior_rc_paint_track_diag_flat_to_25_deg_up(
session, rideIndex, trackSequence, direction, height, tileElement,
isChained ? JUNIOR_RC_CHAIN_CHAIN_LIFT : JUNIOR_RC_CHAIN_NONE);
isChained ? JuniorRcChainType::ChainLift : JuniorRcChainType::None);
}
static void water_rc_track_diag_25_deg_up_to_flat(
@@ -110,7 +110,7 @@ static void water_rc_track_diag_25_deg_up_to_flat(
bool isChained = tileElement->AsTrack()->HasChain();
junior_rc_paint_track_diag_25_deg_up_to_flat(
session, rideIndex, trackSequence, direction, height, tileElement,
isChained ? JUNIOR_RC_CHAIN_CHAIN_LIFT : JUNIOR_RC_CHAIN_NONE);
isChained ? JuniorRcChainType::ChainLift : JuniorRcChainType::None);
}
static void water_rc_track_diag_25_deg_down(
@@ -120,7 +120,7 @@ static void water_rc_track_diag_25_deg_down(
bool isChained = tileElement->AsTrack()->HasChain();
junior_rc_paint_track_diag_25_deg_down(
session, rideIndex, trackSequence, direction, height, tileElement,
isChained ? JUNIOR_RC_CHAIN_CHAIN_LIFT : JUNIOR_RC_CHAIN_NONE);
isChained ? JuniorRcChainType::ChainLift : JuniorRcChainType::None);
}
static void water_rc_track_diag_flat_to_25_deg_down(
@@ -130,7 +130,7 @@ static void water_rc_track_diag_flat_to_25_deg_down(
bool isChained = tileElement->AsTrack()->HasChain();
junior_rc_paint_track_diag_flat_to_25_deg_down(
session, rideIndex, trackSequence, direction, height, tileElement,
isChained ? JUNIOR_RC_CHAIN_CHAIN_LIFT : JUNIOR_RC_CHAIN_NONE);
isChained ? JuniorRcChainType::ChainLift : JuniorRcChainType::None);
}
static void water_rc_track_diag_25_deg_down_to_flat(
@@ -140,7 +140,7 @@ static void water_rc_track_diag_25_deg_down_to_flat(
bool isChained = tileElement->AsTrack()->HasChain();
junior_rc_paint_track_diag_25_deg_down_to_flat(
session, rideIndex, trackSequence, direction, height, tileElement,
isChained ? JUNIOR_RC_CHAIN_CHAIN_LIFT : JUNIOR_RC_CHAIN_NONE);
isChained ? JuniorRcChainType::ChainLift : JuniorRcChainType::None);
}
static void water_rc_track_station(
@@ -154,7 +154,7 @@ static void water_rc_track_60_deg_up(
paint_session* session, ride_id_t rideIndex, uint8_t trackSequence, uint8_t direction, int32_t height,
const TileElement* tileElement)
{
junior_rc_paint_track_60_deg_up(session, rideIndex, trackSequence, direction, height, tileElement, JUNIOR_RC_CHAIN_NONE);
junior_rc_paint_track_60_deg_up(session, rideIndex, trackSequence, direction, height, tileElement, JuniorRcChainType::None);
}
static void water_rc_track_25_deg_up_to_60_deg_up(
@@ -162,7 +162,7 @@ static void water_rc_track_25_deg_up_to_60_deg_up(
const TileElement* tileElement)
{
junior_rc_paint_track_25_deg_up_to_60_deg_up(
session, rideIndex, trackSequence, direction, height, tileElement, JUNIOR_RC_CHAIN_NONE);
session, rideIndex, trackSequence, direction, height, tileElement, JuniorRcChainType::None);
}
static void water_rc_track_60_deg_up_to_25_deg_up(
@@ -170,7 +170,7 @@ static void water_rc_track_60_deg_up_to_25_deg_up(
const TileElement* tileElement)
{
junior_rc_paint_track_60_deg_up_to_25_deg_up(
session, rideIndex, trackSequence, direction, height, tileElement, JUNIOR_RC_CHAIN_NONE);
session, rideIndex, trackSequence, direction, height, tileElement, JuniorRcChainType::None);
}
static void water_rc_track_60_deg_down(
@@ -201,7 +201,7 @@ static void water_rc_track_left_quarter_turn_5_tiles_25_deg_up(
const TileElement* tileElement)
{
junior_rc_paint_track_left_quarter_turn_5_tiles_25_deg_up(
session, rideIndex, trackSequence, direction, height, tileElement, JUNIOR_RC_CHAIN_NONE);
session, rideIndex, trackSequence, direction, height, tileElement, JuniorRcChainType::None);
}
static void water_rc_track_right_quarter_turn_5_tiles_25_deg_up(
@@ -209,7 +209,7 @@ static void water_rc_track_right_quarter_turn_5_tiles_25_deg_up(
const TileElement* tileElement)
{
junior_rc_paint_track_right_quarter_turn_5_tiles_25_deg_up(
session, rideIndex, trackSequence, direction, height, tileElement, JUNIOR_RC_CHAIN_NONE);
session, rideIndex, trackSequence, direction, height, tileElement, JuniorRcChainType::None);
}
static constexpr const uint8_t water_rc_left_quarter_turn_5_tiles_to_right_turn_map[] = { 6, 4, 5, 3, 1, 2, 0 };
@@ -239,7 +239,7 @@ static void water_rc_track_right_quarter_turn_3_tiles_25_deg_up(
const TileElement* tileElement)
{
junior_rc_paint_track_right_quarter_turn_3_tiles_25_deg_up(
session, rideIndex, trackSequence, direction, height, tileElement, JUNIOR_RC_CHAIN_NONE);
session, rideIndex, trackSequence, direction, height, tileElement, JuniorRcChainType::None);
}
static void water_rc_track_right_quarter_turn_3_tiles_25_deg_down(
@@ -247,7 +247,7 @@ static void water_rc_track_right_quarter_turn_3_tiles_25_deg_down(
const TileElement* tileElement)
{
junior_rc_paint_track_right_quarter_turn_3_tiles_25_deg_down(
session, rideIndex, trackSequence, direction, height, tileElement, JUNIOR_RC_CHAIN_NONE);
session, rideIndex, trackSequence, direction, height, tileElement, JuniorRcChainType::None);
}
static constexpr const uint8_t water_rc_left_quarter_turn_3_tiles_to_right_turn_map[] = { 3, 1, 2, 0 };
@@ -275,7 +275,7 @@ static void water_rc_track_diag_60_deg_up(
const TileElement* tileElement)
{
junior_rc_paint_track_diag_60_deg_up(
session, rideIndex, trackSequence, direction, height, tileElement, JUNIOR_RC_CHAIN_NONE);
session, rideIndex, trackSequence, direction, height, tileElement, JuniorRcChainType::None);
}
static void water_rc_track_diag_25_deg_up_to_60_deg_up(
@@ -283,7 +283,7 @@ static void water_rc_track_diag_25_deg_up_to_60_deg_up(
const TileElement* tileElement)
{
junior_rc_paint_track_diag_25_deg_up_to_60_deg_up(
session, rideIndex, trackSequence, direction, height, tileElement, JUNIOR_RC_CHAIN_NONE);
session, rideIndex, trackSequence, direction, height, tileElement, JuniorRcChainType::None);
}
static void water_rc_track_diag_60_deg_up_to_25_deg_up(
@@ -291,7 +291,7 @@ static void water_rc_track_diag_60_deg_up_to_25_deg_up(
const TileElement* tileElement)
{
junior_rc_paint_track_diag_60_deg_up_to_25_deg_up(
session, rideIndex, trackSequence, direction, height, tileElement, JUNIOR_RC_CHAIN_NONE);
session, rideIndex, trackSequence, direction, height, tileElement, JuniorRcChainType::None);
}
static void water_rc_track_diag_60_deg_down(
@@ -299,7 +299,7 @@ static void water_rc_track_diag_60_deg_down(
const TileElement* tileElement)
{
junior_rc_paint_track_diag_60_deg_down(
session, rideIndex, trackSequence, direction, height, tileElement, JUNIOR_RC_CHAIN_NONE);
session, rideIndex, trackSequence, direction, height, tileElement, JuniorRcChainType::None);
}
static void water_rc_track_diag_25_deg_down_to_60_deg_down(
@@ -307,7 +307,7 @@ static void water_rc_track_diag_25_deg_down_to_60_deg_down(
const TileElement* tileElement)
{
junior_rc_paint_track_diag_25_deg_down_to_60_deg_down(
session, rideIndex, trackSequence, direction, height, tileElement, JUNIOR_RC_CHAIN_NONE);
session, rideIndex, trackSequence, direction, height, tileElement, JuniorRcChainType::None);
}
static void water_rc_track_diag_60_deg_down_to_25_deg_down(
@@ -315,7 +315,7 @@ static void water_rc_track_diag_60_deg_down_to_25_deg_down(
const TileElement* tileElement)
{
junior_rc_paint_track_diag_60_deg_down_to_25_deg_down(
session, rideIndex, trackSequence, direction, height, tileElement, JUNIOR_RC_CHAIN_NONE);
session, rideIndex, trackSequence, direction, height, tileElement, JuniorRcChainType::None);
}
TRACK_PAINT_FUNCTION get_track_paint_function_water_rc(int32_t trackType)