/***************************************************************************** * Copyright (c) 2014-2019 OpenRCT2 developers * * For a complete list of all authors, please refer to contributors.md * Interested in contributing? Visit https://github.com/OpenRCT2/OpenRCT2 * * OpenRCT2 is licensed under the GNU General Public License version 3. *****************************************************************************/ #include "../../src/openrct2/ride/Ride.h" #include /** rct2: 0x008A42F4 */ // clang-format off static constexpr const uint32_t _OldSpiralRollerCoasterTrackPaintFunctions[256] = { 0x008A4ABC, // TrackElemType::Flat 0x008A4D0C, // TrackElemType::EndStation 0x008A4D1C, // TrackElemType::BeginStation 0x008A4D2C, // TrackElemType::MiddleStation 0x008A4ACC, // TrackElemType::Up25 0x008A4ADC, // TrackElemType::Up60 0x008A4AEC, // TrackElemType::FlatToUp25 0x008A4AFC, // TrackElemType::Up25ToUp60 0x008A4B0C, // TrackElemType::Up60ToUp25 0x008A4B1C, // TrackElemType::Up25ToFlat 0x008A4B2C, // TrackElemType::Down25 0x008A4B3C, // TrackElemType::Down60 0x008A4B4C, // TrackElemType::FlatToDown25 0x008A4B5C, // TrackElemType::Down25ToDown60 0x008A4B6C, // TrackElemType::Down60ToDown25 0x008A4B7C, // TrackElemType::Down25ToFlat 0x008A4B8C, // TrackElemType::LeftQuarterTurn5Tiles 0x008A4B9C, // TrackElemType::RightQuarterTurn5Tiles 0x008A4BAC, // TrackElemType::FlatToLeftBank 0x008A4BBC, // TrackElemType::FlatToRightBank 0x008A4BCC, // TrackElemType::LeftBankToFlat 0x008A4BDC, // TrackElemType::RightBankToFlat 0x008A4BEC, // TrackElemType::BankedLeftQuarterTurn5Tiles 0x008A4BFC, // TrackElemType::BankedRightQuarterTurn5Tiles 0x008A4C0C, // TrackElemType::LeftBankToUp25 0x008A4C1C, // TrackElemType::RightBankToUp25 0x008A4C2C, // TrackElemType::Up25ToLeftBank 0x008A4C3C, // TrackElemType::Up25ToRightBank 0x008A4C4C, // TrackElemType::LeftBankToDown25 0x008A4C5C, // TrackElemType::RightBankToDown25 0x008A4C6C, // TrackElemType::Down25ToLeftBank 0x008A4C7C, // TrackElemType::Down25ToRightBank 0x008A4C8C, // TrackElemType::LeftBank 0x008A4C9C, // TrackElemType::RightBank 0x008A4CAC, // TrackElemType::LeftQuarterTurn5TilesUp25 0x008A4CBC, // TrackElemType::RightQuarterTurn5TilesUp25 0x008A4CCC, // TrackElemType::LeftQuarterTurn5TilesDown25 0x008A4CDC, // TrackElemType::RightQuarterTurn5TilesDown25 0x008A4CEC, // TrackElemType::SBendLeft 0x008A4CFC, // TrackElemType::SBendRight 0, 0, 0x008A4D3C, // TrackElemType::LeftQuarterTurn3Tiles 0x008A4D4C, // TrackElemType::RightQuarterTurn3Tiles 0x008A4D5C, // TrackElemType::LeftBankedQuarterTurn3Tiles 0x008A4D6C, // TrackElemType::RightBankedQuarterTurn3Tiles 0x008A4D7C, // TrackElemType::LeftQuarterTurn3TilesUp25 0x008A4D8C, // TrackElemType::RightQuarterTurn3TilesUp25 0x008A4D9C, // TrackElemType::LeftQuarterTurn3TilesDown25 0x008A4DAC, // TrackElemType::RightQuarterTurn3TilesDown25 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x008A4DBC, // TrackElemType::LeftHalfBankedHelixUpSmall 0x008A4DCC, // TrackElemType::RightHalfBankedHelixUpSmall 0x008A4DDC, // TrackElemType::LeftHalfBankedHelixDownSmall 0x008A4DEC, // TrackElemType::RightHalfBankedHelixDownSmall 0x008A4DFC, // TrackElemType::LeftHalfBankedHelixUpLarge 0x008A4E0C, // TrackElemType::RightHalfBankedHelixUpLarge 0x008A4E1C, // TrackElemType::LeftHalfBankedHelixDownLarge 0x008A4E2C, // TrackElemType::RightHalfBankedHelixDownLarge 0x008A4E5C, // TrackElemType::LeftQuarterTurn1TileUp60 0x008A4E3C, // TrackElemType::RightQuarterTurn1TileUp60 0x008A4E4C, // TrackElemType::LeftQuarterTurn1TileDown60 0x008A4E6C, // TrackElemType::RightQuarterTurn1TileDown60 0x008A4E7C, // TrackElemType::Brakes 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x008A50CC, // TrackElemType::Up25LeftBanked 0x008A50DC, // TrackElemType::Up25RightBanked 0, 0, 0x008A4E8C, // TrackElemType::OnRidePhoto 0x008A50EC, // TrackElemType::Down25LeftBanked 0x008A50FC, // TrackElemType::Down25RightBanked 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x008A4EAC, // TrackElemType::LeftEighthToDiag 0x008A4EBC, // TrackElemType::RightEighthToDiag 0x008A4ECC, // TrackElemType::LeftEighthToOrthogonal 0x008A4EDC, // TrackElemType::RightEighthToOrthogonal 0x008A4EEC, // TrackElemType::LeftEighthBankToDiag 0x008A4EFC, // TrackElemType::RightEighthBankToDiag 0x008A4F0C, // TrackElemType::LeftEighthBankToOrthogonal 0x008A4F1C, // TrackElemType::RightEighthBankToOrthogonal 0x008A4E9C, // TrackElemType::DiagFlat 0x008A4F4C, // TrackElemType::DiagUp25 0x008A4FAC, // TrackElemType::DiagUp60 0x008A4F2C, // TrackElemType::DiagFlatToUp25 0x008A4F8C, // TrackElemType::DiagUp25ToUp60 0x008A4F9C, // TrackElemType::DiagUp60ToUp25 0x008A4F3C, // TrackElemType::DiagUp25ToFlat 0x008A4F7C, // TrackElemType::DiagDown25 0x008A4FDC, // TrackElemType::DiagDown60 0x008A4F5C, // TrackElemType::DiagFlatToDown25 0x008A4FBC, // TrackElemType::DiagDown25ToDown60 0x008A4FCC, // TrackElemType::DiagDown60ToDown25 0x008A4F6C, // TrackElemType::DiagDown25ToFlat 0, 0, 0, 0, 0x008A500C, // TrackElemType::DiagFlatToLeftBank 0x008A501C, // TrackElemType::DiagFlatToRightBank 0x008A502C, // TrackElemType::DiagLeftBankToFlat 0x008A503C, // TrackElemType::DiagRightBankToFlat 0x008A506C, // TrackElemType::DiagLeftBankToUp25 0x008A507C, // TrackElemType::DiagRightBankToUp25 0x008A504C, // TrackElemType::DiagUp25ToLeftBank 0x008A505C, // TrackElemType::DiagUp25ToRightBank 0x008A508C, // TrackElemType::DiagLeftBankToDown25 0x008A509C, // TrackElemType::DiagRightBankToDown25 0x008A50AC, // TrackElemType::DiagDown25ToLeftBank 0x008A50BC, // TrackElemType::DiagDown25ToRightBank 0x008A4FEC, // TrackElemType::DiagLeftBank 0x008A4FFC, // TrackElemType::DiagRightBank 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x008A531C, // TrackElemType::LeftCurvedLiftHill 0x008A532C, // TrackElemType::RightCurvedLiftHill 0, 0, 0, 0, 0, 0x008A530C, // TrackElemType::BlockBrakes 0x008A510C, // TrackElemType::LeftBankedQuarterTurn3TileUp25 0x008A511C, // TrackElemType::RightBankedQuarterTurn3TileUp25 0x008A512C, // TrackElemType::LeftBankedQuarterTurn3TileDown25 0x008A513C, // TrackElemType::RightBankedQuarterTurn3TileDown25 0x008A514C, // TrackElemType::LeftBankedQuarterTurn5TileUp25 0x008A515C, // TrackElemType::RightBankedQuarterTurn5TileUp25 0x008A516C, // TrackElemType::LeftBankedQuarterTurn5TileDown25 0x008A517C, // TrackElemType::RightBankedQuarterTurn5TileDown25 0x008A518C, // TrackElemType::Up25ToLeftBankedUp25 0x008A519C, // TrackElemType::Up25ToRightBankedUp25 0x008A51AC, // TrackElemType::LeftBankedUp25ToUp25 0x008A51BC, // TrackElemType::RightBankedUp25ToUp25 0x008A51CC, // TrackElemType::Down25ToLeftBankedDown25 0x008A51DC, // TrackElemType::Down25ToRightBankedDown25 0x008A51EC, // TrackElemType::LeftBankedDown25ToDown25 0x008A51FC, // TrackElemType::RightBankedDown25ToDown25 0x008A520C, // TrackElemType::LeftBankedFlatToLeftBankedUp25 0x008A521C, // TrackElemType::RightBankedFlatToRightBankedUp25 0x008A524C, // TrackElemType::LeftBankedUp25ToLeftBankedFlat 0x008A525C, // TrackElemType::RightBankedUp25ToRightBankedFlat 0x008A526C, // TrackElemType::LeftBankedFlatToLeftBankedDown25 0x008A527C, // TrackElemType::RightBankedFlatToRightBankedDown25 0x008A522C, // TrackElemType::LeftBankedDown25ToLeftBankedFlat 0x008A523C, // TrackElemType::RightBankedDown25ToRightBankedFlat 0x008A528C, // TrackElemType::FlatToLeftBankedUp25 0x008A529C, // TrackElemType::FlatToRightBankedUp25 0x008A52AC, // TrackElemType::LeftBankedUp25ToFlat 0x008A52BC, // TrackElemType::RightBankedUp25ToFlat 0x008A52CC, // TrackElemType::FlatToLeftBankedDown25 0x008A52DC, // TrackElemType::FlatToRightBankedDown25 0x008A52EC, // TrackElemType::LeftBankedDown25ToFlat 0x008A52FC, // TrackElemType::RightBankedDown25ToFlat 0, 0, 0, 0, 0, 0, 0, }; /** rct2: 0x008A6DB0 */ static constexpr const uint32_t _OldStandUpRollerCoasterTrackPaintFunctions[256] = { 0x008A7114, // TrackElemType::Flat 0x008A7384, // TrackElemType::EndStation 0x008A7394, // TrackElemType::BeginStation 0x008A73A4, // TrackElemType::MiddleStation 0x008A7124, // TrackElemType::Up25 0x008A7134, // TrackElemType::Up60 0x008A7144, // TrackElemType::FlatToUp25 0x008A7154, // TrackElemType::Up25ToUp60 0x008A7164, // TrackElemType::Up60ToUp25 0x008A7174, // TrackElemType::Up25ToFlat 0x008A7184, // TrackElemType::Down25 0x008A7194, // TrackElemType::Down60 0x008A71A4, // TrackElemType::FlatToDown25 0x008A71B4, // TrackElemType::Down25ToDown60 0x008A71C4, // TrackElemType::Down60ToDown25 0x008A71D4, // TrackElemType::Down25ToFlat 0x008A71E4, // TrackElemType::LeftQuarterTurn5Tiles 0x008A71F4, // TrackElemType::RightQuarterTurn5Tiles 0x008A7204, // TrackElemType::FlatToLeftBank 0x008A7214, // TrackElemType::FlatToRightBank 0x008A7224, // TrackElemType::LeftBankToFlat 0x008A7234, // TrackElemType::RightBankToFlat 0x008A7244, // TrackElemType::BankedLeftQuarterTurn5Tiles 0x008A7254, // TrackElemType::BankedRightQuarterTurn5Tiles 0x008A7264, // TrackElemType::LeftBankToUp25 0x008A7274, // TrackElemType::RightBankToUp25 0x008A7284, // TrackElemType::Up25ToLeftBank 0x008A7294, // TrackElemType::Up25ToRightBank 0x008A72A4, // TrackElemType::LeftBankToDown25 0x008A72B4, // TrackElemType::RightBankToDown25 0x008A72C4, // TrackElemType::Down25ToLeftBank 0x008A72D4, // TrackElemType::Down25ToRightBank 0x008A72E4, // TrackElemType::LeftBank 0x008A72F4, // TrackElemType::RightBank 0x008A7304, // TrackElemType::LeftQuarterTurn5TilesUp25 0x008A7314, // TrackElemType::RightQuarterTurn5TilesUp25 0x008A7324, // TrackElemType::LeftQuarterTurn5TilesDown25 0x008A7334, // TrackElemType::RightQuarterTurn5TilesDown25 0x008A7344, // TrackElemType::SBendLeft 0x008A7354, // TrackElemType::SBendRight 0x008A7364, // TrackElemType::LeftVerticalLoop 0x008A7374, // TrackElemType::RightVerticalLoop 0x008A73B4, // TrackElemType::LeftQuarterTurn3Tiles 0x008A73C4, // TrackElemType::RightQuarterTurn3Tiles 0x008A73D4, // TrackElemType::LeftBankedQuarterTurn3Tiles 0x008A73E4, // TrackElemType::RightBankedQuarterTurn3Tiles 0x008A73F4, // TrackElemType::LeftQuarterTurn3TilesUp25 0x008A7404, // TrackElemType::RightQuarterTurn3TilesUp25 0x008A7414, // TrackElemType::LeftQuarterTurn3TilesDown25 0x008A7424, // TrackElemType::RightQuarterTurn3TilesDown25 0, 0, 0, 0, 0, 0, 0x008A7434, // TrackElemType::HalfLoopUp 0x008A7444, // TrackElemType::HalfLoopDown 0x008A7454, // TrackElemType::LeftCorkscrewUp 0x008A7464, // TrackElemType::RightCorkscrewUp 0x008A7474, // TrackElemType::LeftCorkscrewDown 0x008A7484, // TrackElemType::RightCorkscrewDown 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x008A7734, // TrackElemType::LeftHalfBankedHelixUpSmall 0x008A7744, // TrackElemType::RightHalfBankedHelixUpSmall 0x008A7754, // TrackElemType::LeftHalfBankedHelixDownSmall 0x008A7764, // TrackElemType::RightHalfBankedHelixDownSmall 0x008A76F4, // TrackElemType::LeftHalfBankedHelixUpLarge 0x008A7704, // TrackElemType::RightHalfBankedHelixUpLarge 0x008A7714, // TrackElemType::LeftHalfBankedHelixDownLarge 0x008A7724, // TrackElemType::RightHalfBankedHelixDownLarge 0, 0, 0, 0, 0x008A7494, // TrackElemType::Brakes 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x008A74A4, // TrackElemType::OnRidePhoto 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x008A74B4, // TrackElemType::LeftEighthToDiag 0x008A74C4, // TrackElemType::RightEighthToDiag 0x008A74D4, // TrackElemType::LeftEighthToOrthogonal 0x008A74E4, // TrackElemType::RightEighthToOrthogonal 0x008A76A4, // TrackElemType::LeftEighthBankToDiag 0x008A76B4, // TrackElemType::RightEighthBankToDiag 0x008A76C4, // TrackElemType::LeftEighthBankToOrthogonal 0x008A76D4, // TrackElemType::RightEighthBankToOrthogonal 0x008A74F4, // TrackElemType::DiagFlat 0x008A7524, // TrackElemType::DiagUp25 0x008A7584, // TrackElemType::DiagUp60 0x008A7504, // TrackElemType::DiagFlatToUp25 0x008A7564, // TrackElemType::DiagUp25ToUp60 0x008A7574, // TrackElemType::DiagUp60ToUp25 0x008A7514, // TrackElemType::DiagUp25ToFlat 0x008A7554, // TrackElemType::DiagDown25 0x008A75B4, // TrackElemType::DiagDown60 0x008A7534, // TrackElemType::DiagFlatToDown25 0x008A7594, // TrackElemType::DiagDown25ToDown60 0x008A75A4, // TrackElemType::DiagDown60ToDown25 0x008A7544, // TrackElemType::DiagDown25ToFlat 0, 0, 0, 0, 0x008A75E4, // TrackElemType::DiagFlatToLeftBank 0x008A75F4, // TrackElemType::DiagFlatToRightBank 0x008A7604, // TrackElemType::DiagLeftBankToFlat 0x008A7614, // TrackElemType::DiagRightBankToFlat 0x008A7644, // TrackElemType::DiagLeftBankToUp25 0x008A7654, // TrackElemType::DiagRightBankToUp25 0x008A7624, // TrackElemType::DiagUp25ToLeftBank 0x008A7634, // TrackElemType::DiagUp25ToRightBank 0x008A7664, // TrackElemType::DiagLeftBankToDown25 0x008A7674, // TrackElemType::DiagRightBankToDown25 0x008A7684, // TrackElemType::DiagDown25ToLeftBank 0x008A7694, // TrackElemType::DiagDown25ToRightBank 0x008A75C4, // TrackElemType::DiagLeftBank 0x008A75D4, // TrackElemType::DiagRightBank 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x008A76E4, // TrackElemType::BlockBrakes 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }; /** rct2: 0x008A85E4 */ static constexpr const uint32_t _OldSuspendedSwingingCoasterTrackPaintFunctions[256] = { 0x008A8958, // TrackElemType::Flat 0x008A8AA8, // TrackElemType::EndStation 0x008A8AB8, // TrackElemType::BeginStation 0x008A8AC8, // TrackElemType::MiddleStation 0x008A8968, // TrackElemType::Up25 0x008A8978, // TrackElemType::Up60 0x008A8988, // TrackElemType::FlatToUp25 0x008A8998, // TrackElemType::Up25ToUp60 0x008A89A8, // TrackElemType::Up60ToUp25 0x008A89B8, // TrackElemType::Up25ToFlat 0x008A89C8, // TrackElemType::Down25 0x008A89D8, // TrackElemType::Down60 0x008A89E8, // TrackElemType::FlatToDown25 0x008A89F8, // TrackElemType::Down25ToDown60 0x008A8A08, // TrackElemType::Down60ToDown25 0x008A8A18, // TrackElemType::Down25ToFlat 0x008A8A28, // TrackElemType::LeftQuarterTurn5Tiles 0x008A8A38, // TrackElemType::RightQuarterTurn5Tiles 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x008A8A48, // TrackElemType::LeftQuarterTurn5TilesUp25 0x008A8A58, // TrackElemType::RightQuarterTurn5TilesUp25 0x008A8A68, // TrackElemType::LeftQuarterTurn5TilesDown25 0x008A8A78, // TrackElemType::RightQuarterTurn5TilesDown25 0x008A8A88, // TrackElemType::SBendLeft 0x008A8A98, // TrackElemType::SBendRight 0, 0, 0x008A8AD8, // TrackElemType::LeftQuarterTurn3Tiles 0x008A8AE8, // TrackElemType::RightQuarterTurn3Tiles 0, 0, 0x008A8AF8, // TrackElemType::LeftQuarterTurn3TilesUp25 0x008A8B08, // TrackElemType::RightQuarterTurn3TilesUp25 0x008A8B18, // TrackElemType::LeftQuarterTurn3TilesDown25 0x008A8B28, // TrackElemType::RightQuarterTurn3TilesDown25 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x008A8B38, // TrackElemType::Brakes 0, 0, 0, 0, 0, 0, 0x008A8B48, // TrackElemType::LeftQuarterHelixLargeUp 0x008A8B58, // TrackElemType::RightQuarterHelixLargeUp 0x008A8B68, // TrackElemType::LeftQuarterHelixLargeDown 0x008A8B78, // TrackElemType::RightQuarterHelixLargeDown 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x008A8B88, // TrackElemType::LeftEighthToDiag 0x008A8B98, // TrackElemType::RightEighthToDiag 0x008A8BA8, // TrackElemType::LeftEighthToOrthogonal 0x008A8BB8, // TrackElemType::RightEighthToOrthogonal 0, 0, 0, 0, 0x008A8BC8, // TrackElemType::DiagFlat 0x008A8BF8, // TrackElemType::DiagUp25 0x008A8C58, // TrackElemType::DiagUp60 0x008A8BD8, // TrackElemType::DiagFlatToUp25 0x008A8C38, // TrackElemType::DiagUp25ToUp60 0x008A8C48, // TrackElemType::DiagUp60ToUp25 0x008A8BE8, // TrackElemType::DiagUp25ToFlat 0x008A8C28, // TrackElemType::DiagDown25 0x008A8C88, // TrackElemType::DiagDown60 0x008A8C08, // TrackElemType::DiagFlatToDown25 0x008A8C68, // TrackElemType::DiagDown25ToDown60 0x008A8C78, // TrackElemType::DiagDown60ToDown25 0x008A8C18, // TrackElemType::DiagDown25ToFlat 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x008A8B38, // TrackElemType::BlockBrakes 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }; /** rct2: 0x008A8EE4 */ static constexpr const uint32_t _OldInvertedRollerCoasterTrackPaintFunctions[256] = { 0x008A92E8, // TrackElemType::Flat 0x008A9558, // TrackElemType::EndStation 0x008A9568, // TrackElemType::BeginStation 0x008A9578, // TrackElemType::MiddleStation 0x008A92F8, // TrackElemType::Up25 0x008A9308, // TrackElemType::Up60 0x008A9318, // TrackElemType::FlatToUp25 0x008A9328, // TrackElemType::Up25ToUp60 0x008A9338, // TrackElemType::Up60ToUp25 0x008A9348, // TrackElemType::Up25ToFlat 0x008A9358, // TrackElemType::Down25 0x008A9368, // TrackElemType::Down60 0x008A9378, // TrackElemType::FlatToDown25 0x008A9388, // TrackElemType::Down25ToDown60 0x008A9398, // TrackElemType::Down60ToDown25 0x008A93A8, // TrackElemType::Down25ToFlat 0x008A93B8, // TrackElemType::LeftQuarterTurn5Tiles 0x008A93C8, // TrackElemType::RightQuarterTurn5Tiles 0x008A93D8, // TrackElemType::FlatToLeftBank 0x008A93E8, // TrackElemType::FlatToRightBank 0x008A93F8, // TrackElemType::LeftBankToFlat 0x008A9408, // TrackElemType::RightBankToFlat 0x008A9418, // TrackElemType::BankedLeftQuarterTurn5Tiles 0x008A9428, // TrackElemType::BankedRightQuarterTurn5Tiles 0x008A9438, // TrackElemType::LeftBankToUp25 0x008A9448, // TrackElemType::RightBankToUp25 0x008A9458, // TrackElemType::Up25ToLeftBank 0x008A9468, // TrackElemType::Up25ToRightBank 0x008A9478, // TrackElemType::LeftBankToDown25 0x008A9488, // TrackElemType::RightBankToDown25 0x008A9498, // TrackElemType::Down25ToLeftBank 0x008A94A8, // TrackElemType::Down25ToRightBank 0x008A94B8, // TrackElemType::LeftBank 0x008A94C8, // TrackElemType::RightBank 0x008A94D8, // TrackElemType::LeftQuarterTurn5TilesUp25 0x008A94E8, // TrackElemType::RightQuarterTurn5TilesUp25 0x008A94F8, // TrackElemType::LeftQuarterTurn5TilesDown25 0x008A9508, // TrackElemType::RightQuarterTurn5TilesDown25 0x008A9518, // TrackElemType::SBendLeft 0x008A9528, // TrackElemType::SBendRight 0x008A9538, // TrackElemType::LeftVerticalLoop 0x008A9548, // TrackElemType::RightVerticalLoop 0x008A9588, // TrackElemType::LeftQuarterTurn3Tiles 0x008A9598, // TrackElemType::RightQuarterTurn3Tiles 0x008A95A8, // TrackElemType::LeftBankedQuarterTurn3Tiles 0x008A95B8, // TrackElemType::RightBankedQuarterTurn3Tiles 0x008A95C8, // TrackElemType::LeftQuarterTurn3TilesUp25 0x008A95D8, // TrackElemType::RightQuarterTurn3TilesUp25 0x008A95E8, // TrackElemType::LeftQuarterTurn3TilesDown25 0x008A95F8, // TrackElemType::RightQuarterTurn3TilesDown25 0, 0, 0x008A9608, // TrackElemType::LeftTwistDownToUp 0x008A9618, // TrackElemType::RightTwistDownToUp 0x008A9628, // TrackElemType::LeftTwistUpToDown 0x008A9638, // TrackElemType::RightTwistUpToDown 0x008A9648, // TrackElemType::HalfLoopUp 0x008A9658, // TrackElemType::HalfLoopDown 0x008A9668, // TrackElemType::LeftCorkscrewUp 0x008A9678, // TrackElemType::RightCorkscrewUp 0x008A9688, // TrackElemType::LeftCorkscrewDown 0x008A9698, // TrackElemType::RightCorkscrewDown 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x008A96D8, // TrackElemType::LeftQuarterTurn1TileUp60 0x008A96B8, // TrackElemType::RightQuarterTurn1TileUp60 0x008A96C8, // TrackElemType::LeftQuarterTurn1TileDown60 0x008A96E8, // TrackElemType::RightQuarterTurn1TileDown60 0x008A96A8, // TrackElemType::Brakes 0, 0, 0x008A96F8, // TrackElemType::LeftQuarterBankedHelixLargeUp 0x008A9708, // TrackElemType::RightQuarterBankedHelixLargeUp 0x008A9718, // TrackElemType::LeftQuarterBankedHelixLargeDown 0x008A9728, // TrackElemType::RightQuarterBankedHelixLargeDown 0, 0, 0, 0, 0x008A9A38, // TrackElemType::Up25LeftBanked 0x008A9A48, // TrackElemType::Up25RightBanked 0, 0, 0x008A9738, // TrackElemType::OnRidePhoto 0x008A9A58, // TrackElemType::Down25LeftBanked 0x008A9A68, // TrackElemType::Down25RightBanked 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x008A9748, // TrackElemType::LeftEighthToDiag 0x008A9758, // TrackElemType::RightEighthToDiag 0x008A9768, // TrackElemType::LeftEighthToOrthogonal 0x008A9778, // TrackElemType::RightEighthToOrthogonal 0x008A9938, // TrackElemType::LeftEighthBankToDiag 0x008A9948, // TrackElemType::RightEighthBankToDiag 0x008A9958, // TrackElemType::LeftEighthBankToOrthogonal 0x008A9968, // TrackElemType::RightEighthBankToOrthogonal 0x008A9788, // TrackElemType::DiagFlat 0x008A97B8, // TrackElemType::DiagUp25 0x008A9818, // TrackElemType::DiagUp60 0x008A9798, // TrackElemType::DiagFlatToUp25 0x008A97F8, // TrackElemType::DiagUp25ToUp60 0x008A9808, // TrackElemType::DiagUp60ToUp25 0x008A97A8, // TrackElemType::DiagUp25ToFlat 0x008A97E8, // TrackElemType::DiagDown25 0x008A9848, // TrackElemType::DiagDown60 0x008A97C8, // TrackElemType::DiagFlatToDown25 0x008A9828, // TrackElemType::DiagDown25ToDown60 0x008A9838, // TrackElemType::DiagDown60ToDown25 0x008A97D8, // TrackElemType::DiagDown25ToFlat 0, 0, 0, 0, 0x008A9878, // TrackElemType::DiagFlatToLeftBank 0x008A9888, // TrackElemType::DiagFlatToRightBank 0x008A9898, // TrackElemType::DiagLeftBankToFlat 0x008A98A8, // TrackElemType::DiagRightBankToFlat 0x008A98D8, // TrackElemType::DiagLeftBankToUp25 0x008A98E8, // TrackElemType::DiagRightBankToUp25 0x008A98B8, // TrackElemType::DiagUp25ToLeftBank 0x008A98C8, // TrackElemType::DiagUp25ToRightBank 0x008A98F8, // TrackElemType::DiagLeftBankToDown25 0x008A9908, // TrackElemType::DiagRightBankToDown25 0x008A9918, // TrackElemType::DiagDown25ToLeftBank 0x008A9928, // TrackElemType::DiagDown25ToRightBank 0x008A9858, // TrackElemType::DiagLeftBank 0x008A9868, // TrackElemType::DiagRightBank 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x008A9978, // TrackElemType::LeftLargeHalfLoopUp 0x008A9988, // TrackElemType::RightLargeHalfLoopUp 0x008A9998, // TrackElemType::RightLargeHalfLoopDown 0x008A99A8, // TrackElemType::LeftLargeHalfLoopDown 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x008A96A8, // TrackElemType::BlockBrakes 0x008A9A78, // TrackElemType::LeftBankedQuarterTurn3TileUp25 0x008A9A88, // TrackElemType::RightBankedQuarterTurn3TileUp25 0x008A9A98, // TrackElemType::LeftBankedQuarterTurn3TileDown25 0x008A9AA8, // TrackElemType::RightBankedQuarterTurn3TileDown25 0x008A9BB8, // TrackElemType::LeftBankedQuarterTurn5TileUp25 0x008A9BC8, // TrackElemType::RightBankedQuarterTurn5TileUp25 0x008A9BD8, // TrackElemType::LeftBankedQuarterTurn5TileDown25 0x008A9BE8, // TrackElemType::RightBankedQuarterTurn5TileDown25 0x008A9AB8, // TrackElemType::Up25ToLeftBankedUp25 0x008A9AC8, // TrackElemType::Up25ToRightBankedUp25 0x008A9AD8, // TrackElemType::LeftBankedUp25ToUp25 0x008A9AE8, // TrackElemType::RightBankedUp25ToUp25 0x008A9AF8, // TrackElemType::Down25ToLeftBankedDown25 0x008A9B08, // TrackElemType::Down25ToRightBankedDown25 0x008A9B18, // TrackElemType::LeftBankedDown25ToDown25 0x008A9B28, // TrackElemType::RightBankedDown25ToDown25 0x008A9B38, // TrackElemType::LeftBankedFlatToLeftBankedUp25 0x008A9B48, // TrackElemType::RightBankedFlatToRightBankedUp25 0x008A9B58, // TrackElemType::LeftBankedUp25ToLeftBankedFlat 0x008A9B68, // TrackElemType::RightBankedUp25ToRightBankedFlat 0x008A9B78, // TrackElemType::LeftBankedFlatToLeftBankedDown25 0x008A9B88, // TrackElemType::RightBankedFlatToRightBankedDown25 0x008A9B98, // TrackElemType::LeftBankedDown25ToLeftBankedFlat 0x008A9BA8, // TrackElemType::RightBankedDown25ToRightBankedFlat 0x008A99B8, // TrackElemType::FlatToLeftBankedUp25 0x008A99C8, // TrackElemType::FlatToRightBankedUp25 0x008A99D8, // TrackElemType::LeftBankedUp25ToFlat 0x008A99E8, // TrackElemType::RightBankedUp25ToFlat 0x008A99F8, // TrackElemType::FlatToLeftBankedDown25 0x008A9A08, // TrackElemType::FlatToRightBankedDown25 0x008A9A18, // TrackElemType::LeftBankedDown25ToFlat 0x008A9A28, // TrackElemType::RightBankedDown25ToFlat 0, 0, 0, 0, 0, 0, 0, }; /** rct2: 0x008AAA0C */ static constexpr const uint32_t _OldJuniorRollerCoasterTrackPaintFunctions[256] = { 0x008AAD80, // TrackElemType::Flat 0x008AAE70, // TrackElemType::EndStation 0x008AAE80, // TrackElemType::BeginStation 0x008AAE90, // TrackElemType::MiddleStation 0x008AAD90, // TrackElemType::Up25 0, 0x008AADA0, // TrackElemType::FlatToUp25 0, 0, 0x008AADB0, // TrackElemType::Up25ToFlat 0x008AADC0, // TrackElemType::Down25 0, 0x008AADD0, // TrackElemType::FlatToDown25 0, 0, 0x008AADE0, // TrackElemType::Down25ToFlat 0x008AADF0, // TrackElemType::LeftQuarterTurn5Tiles 0x008AAE00, // TrackElemType::RightQuarterTurn5Tiles 0x008AAFC0, // TrackElemType::FlatToLeftBank 0x008AAFD0, // TrackElemType::FlatToRightBank 0x008AAFE0, // TrackElemType::LeftBankToFlat 0x008AAFF0, // TrackElemType::RightBankToFlat 0x008AB000, // TrackElemType::BankedLeftQuarterTurn5Tiles 0x008AB010, // TrackElemType::BankedRightQuarterTurn5Tiles 0x008AB020, // TrackElemType::LeftBankToUp25 0x008AB030, // TrackElemType::RightBankToUp25 0x008AB040, // TrackElemType::Up25ToLeftBank 0x008AB050, // TrackElemType::Up25ToRightBank 0x008AB060, // TrackElemType::LeftBankToDown25 0x008AB070, // TrackElemType::RightBankToDown25 0x008AB080, // TrackElemType::Down25ToLeftBank 0x008AB090, // TrackElemType::Down25ToRightBank 0x008AB0A0, // TrackElemType::LeftBank 0x008AB0B0, // TrackElemType::RightBank 0x008AAE10, // TrackElemType::LeftQuarterTurn5TilesUp25 0x008AAE20, // TrackElemType::RightQuarterTurn5TilesUp25 0x008AAE30, // TrackElemType::LeftQuarterTurn5TilesDown25 0x008AAE40, // TrackElemType::RightQuarterTurn5TilesDown25 0x008AAE50, // TrackElemType::SBendLeft 0x008AAE60, // TrackElemType::SBendRight 0, 0, 0x008AAEA0, // TrackElemType::LeftQuarterTurn3Tiles 0x008AAEB0, // TrackElemType::RightQuarterTurn3Tiles 0x008AB0C0, // TrackElemType::LeftBankedQuarterTurn3Tiles 0x008AB0D0, // TrackElemType::RightBankedQuarterTurn3Tiles 0x008AAEC0, // TrackElemType::LeftQuarterTurn3TilesUp25 0x008AAED0, // TrackElemType::RightQuarterTurn3TilesUp25 0x008AAEE0, // TrackElemType::LeftQuarterTurn3TilesDown25 0x008AAEF0, // TrackElemType::RightQuarterTurn3TilesDown25 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x008AB0E0, // TrackElemType::LeftHalfBankedHelixUpSmall 0x008AB0F0, // TrackElemType::RightHalfBankedHelixUpSmall 0x008AB100, // TrackElemType::LeftHalfBankedHelixDownSmall 0x008AB110, // TrackElemType::RightHalfBankedHelixDownSmall 0x008AB120, // TrackElemType::LeftHalfBankedHelixUpLarge 0x008AB130, // TrackElemType::RightHalfBankedHelixUpLarge 0x008AB140, // TrackElemType::LeftHalfBankedHelixDownLarge 0x008AB150, // TrackElemType::RightHalfBankedHelixDownLarge 0, 0, 0, 0, 0x008AAF00, // TrackElemType::Brakes 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x008AAF80, // TrackElemType::LeftEighthToDiag 0x008AAF90, // TrackElemType::RightEighthToDiag 0x008AAFA0, // TrackElemType::LeftEighthToOrthogonal 0x008AAFB0, // TrackElemType::RightEighthToOrthogonal 0x008AB160, // TrackElemType::LeftEighthBankToDiag 0x008AB170, // TrackElemType::RightEighthBankToDiag 0x008AB180, // TrackElemType::LeftEighthBankToOrthogonal 0x008AB190, // TrackElemType::RightEighthBankToOrthogonal 0x008AAF10, // TrackElemType::DiagFlat 0x008AAF40, // TrackElemType::DiagUp25 0, 0x008AAF20, // TrackElemType::DiagFlatToUp25 0, 0, 0x008AAF30, // TrackElemType::DiagUp25ToFlat 0x008AAF70, // TrackElemType::DiagDown25 0, 0x008AAF50, // TrackElemType::DiagFlatToDown25 0, 0, 0x008AAF60, // TrackElemType::DiagDown25ToFlat 0, 0, 0, 0, 0x008AB1C0, // TrackElemType::DiagFlatToLeftBank 0x008AB1D0, // TrackElemType::DiagFlatToRightBank 0x008AB1E0, // TrackElemType::DiagLeftBankToFlat 0x008AB1F0, // TrackElemType::DiagRightBankToFlat 0x008AB220, // TrackElemType::DiagLeftBankToUp25 0x008AB230, // TrackElemType::DiagRightBankToUp25 0x008AB200, // TrackElemType::DiagUp25ToLeftBank 0x008AB210, // TrackElemType::DiagUp25ToRightBank 0x008AB240, // TrackElemType::DiagLeftBankToDown25 0x008AB250, // TrackElemType::DiagRightBankToDown25 0x008AB260, // TrackElemType::DiagDown25ToLeftBank 0x008AB270, // TrackElemType::DiagDown25ToRightBank 0x008AB1A0, // TrackElemType::DiagLeftBank 0x008AB1B0, // TrackElemType::DiagRightBank 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x008AB280, // TrackElemType::BlockBrakes 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }; /** rct2: 0x008ACE48 */ static constexpr const uint32_t _OldMiniatureRailwayTrackPaintFunctions[256] = { 0x008AD0C0, // TrackElemType::Flat 0x008AD170, // TrackElemType::EndStation 0x008AD180, // TrackElemType::BeginStation 0x008AD190, // TrackElemType::MiddleStation 0x008AD0D0, // TrackElemType::Up25 0, 0x008AD0E0, // TrackElemType::FlatToUp25 0, 0, 0x008AD0F0, // TrackElemType::Up25ToFlat 0x008AD100, // TrackElemType::Down25 0, 0x008AD110, // TrackElemType::FlatToDown25 0, 0, 0x008AD120, // TrackElemType::Down25ToFlat 0x008AD130, // TrackElemType::LeftQuarterTurn5Tiles 0x008AD140, // TrackElemType::RightQuarterTurn5Tiles 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x008AD150, // TrackElemType::SBendLeft 0x008AD160, // TrackElemType::SBendRight 0, 0, 0x008AD1A0, // TrackElemType::LeftQuarterTurn3Tiles 0x008AD1B0, // TrackElemType::RightQuarterTurn3Tiles 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x008AD1C0, // TrackElemType::LeftEighthToDiag 0x008AD1D0, // TrackElemType::RightEighthToDiag 0x008AD1E0, // TrackElemType::LeftEighthToOrthogonal 0x008AD1F0, // TrackElemType::RightEighthToOrthogonal 0, 0, 0, 0, 0x008AD200, // TrackElemType::DiagFlat 0x008AD230, // TrackElemType::DiagUp25 0, 0x008AD210, // TrackElemType::DiagFlatToUp25 0, 0, 0x008AD220, // TrackElemType::DiagUp25ToFlat 0x008AD260, // TrackElemType::DiagDown25 0, 0x008AD240, // TrackElemType::DiagFlatToDown25 0, 0, 0x008AD250, // TrackElemType::DiagDown25ToFlat 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }; /** rct2: 0x008ADF34 */ static constexpr const uint32_t _OldMonorailTrackPaintFunctions[256] = { 0x008AE1AC, // TrackElemType::Flat 0x008AE25C, // TrackElemType::EndStation 0x008AE26C, // TrackElemType::BeginStation 0x008AE27C, // TrackElemType::MiddleStation 0x008AE1BC, // TrackElemType::Up25 0, 0x008AE1CC, // TrackElemType::FlatToUp25 0, 0, 0x008AE1DC, // TrackElemType::Up25ToFlat 0x008AE1EC, // TrackElemType::Down25 0, 0x008AE1FC, // TrackElemType::FlatToDown25 0, 0, 0x008AE20C, // TrackElemType::Down25ToFlat 0x008AE21C, // TrackElemType::LeftQuarterTurn5Tiles 0x008AE22C, // TrackElemType::RightQuarterTurn5Tiles 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x008AE23C, // TrackElemType::SBendLeft 0x008AE24C, // TrackElemType::SBendRight 0, 0, 0x008AE28C, // TrackElemType::LeftQuarterTurn3Tiles 0x008AE29C, // TrackElemType::RightQuarterTurn3Tiles 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x008AE31C, // TrackElemType::LeftEighthToDiag 0x008AE32C, // TrackElemType::RightEighthToDiag 0x008AE33C, // TrackElemType::LeftEighthToOrthogonal 0x008AE34C, // TrackElemType::RightEighthToOrthogonal 0, 0, 0, 0, 0x008AE2AC, // TrackElemType::DiagFlat 0x008AE2DC, // TrackElemType::DiagUp25 0, 0x008AE2BC, // TrackElemType::DiagFlatToUp25 0, 0, 0x008AE2CC, // TrackElemType::DiagUp25ToFlat 0x008AE30C, // TrackElemType::DiagDown25 0, 0x008AE2EC, // TrackElemType::DiagFlatToDown25 0, 0, 0x008AE2FC, // TrackElemType::DiagDown25ToFlat 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }; /** rct2: 0x008AFC24 */ static constexpr const uint32_t _OldMiniSuspendedCoasterTrackPaintFunctions[256] = { 0x008AFE9C, // TrackElemType::Flat 0x008AFF4C, // TrackElemType::EndStation 0x008AFF5C, // TrackElemType::BeginStation 0x008AFF6C, // TrackElemType::MiddleStation 0x008AFEAC, // TrackElemType::Up25 0, 0x008AFEBC, // TrackElemType::FlatToUp25 0, 0, 0x008AFECC, // TrackElemType::Up25ToFlat 0x008AFEDC, // TrackElemType::Down25 0, 0x008AFEEC, // TrackElemType::FlatToDown25 0, 0, 0x008AFEFC, // TrackElemType::Down25ToFlat 0x008AFF0C, // TrackElemType::LeftQuarterTurn5Tiles 0x008AFF1C, // TrackElemType::RightQuarterTurn5Tiles 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x008AFF2C, // TrackElemType::SBendLeft 0x008AFF3C, // TrackElemType::SBendRight 0, 0, 0x008AFF7C, // TrackElemType::LeftQuarterTurn3Tiles 0x008AFF8C, // TrackElemType::RightQuarterTurn3Tiles 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x008AFFAC, // TrackElemType::LeftEighthToDiag 0x008AFFBC, // TrackElemType::RightEighthToDiag 0x008AFFCC, // TrackElemType::LeftEighthToOrthogonal 0x008AFFDC, // TrackElemType::RightEighthToOrthogonal 0, 0, 0, 0, 0x008AFF9C, // TrackElemType::DiagFlat 0x008B000C, // TrackElemType::DiagUp25 0, 0x008AFFEC, // TrackElemType::DiagFlatToUp25 0, 0, 0x008AFFFC, // TrackElemType::DiagUp25ToFlat 0x008B003C, // TrackElemType::DiagDown25 0, 0x008B001C, // TrackElemType::DiagFlatToDown25 0, 0, 0x008B002C, // TrackElemType::DiagDown25ToFlat 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }; /** rct2: 0x008B0D60 */ static constexpr const uint32_t _OldBoatHireTrackPaintFunctions[256] = { 0x008B0E40, // TrackElemType::Flat 0x008B0E50, // TrackElemType::EndStation 0x008B0E60, // TrackElemType::BeginStation 0x008B0E70, // TrackElemType::MiddleStation 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x008B0E80, // TrackElemType::LeftQuarterTurn1Tile 0x008B0E90, // TrackElemType::RightQuarterTurn1Tile 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }; /** rct2: 0x008A534C */ static constexpr const uint32_t _OldWoodenWildMouseTrackPaintFunctions[256] = { 0x008A5464, // TrackElemType::Flat 0x008A5534, // TrackElemType::EndStation 0x008A5544, // TrackElemType::BeginStation 0x008A5554, // TrackElemType::MiddleStation 0x008A5474, // TrackElemType::Up25 0x008A5484, // TrackElemType::Up60 0x008A5494, // TrackElemType::FlatToUp25 0x008A54A4, // TrackElemType::Up25ToUp60 0x008A54B4, // TrackElemType::Up60ToUp25 0x008A54C4, // TrackElemType::Up25ToFlat 0x008A54D4, // TrackElemType::Down25 0x008A54E4, // TrackElemType::Down60 0x008A54F4, // TrackElemType::FlatToDown25 0x008A5504, // TrackElemType::Down25ToDown60 0x008A5514, // TrackElemType::Down60ToDown25 0x008A5524, // TrackElemType::Down25ToFlat 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x008A5564, // TrackElemType::LeftQuarterTurn3Tiles 0x008A5574, // TrackElemType::RightQuarterTurn3Tiles 0, 0, 0x008A5584, // TrackElemType::LeftQuarterTurn3TilesUp25 0x008A5594, // TrackElemType::RightQuarterTurn3TilesUp25 0x008A55A4, // TrackElemType::LeftQuarterTurn3TilesDown25 0x008A55B4, // TrackElemType::RightQuarterTurn3TilesDown25 0x008A55C4, // TrackElemType::LeftQuarterTurn1Tile 0x008A55D4, // TrackElemType::RightQuarterTurn1Tile 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x008A55E4, // TrackElemType::FlatToUp60 0x008A55F4, // TrackElemType::Up60ToFlat 0x008A5604, // TrackElemType::FlatToDown60 0x008A5614, // TrackElemType::Down60ToFlat 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }; /** rct2: 0x008A5634 */ static constexpr const uint32_t _OldSteeplechaseTrackPaintFunctions[256] = { 0x008A59A8, // TrackElemType::Flat 0x008A5A58, // TrackElemType::EndStation 0x008A5A68, // TrackElemType::BeginStation 0x008A5A78, // TrackElemType::MiddleStation 0x008A59B8, // TrackElemType::Up25 0, 0x008A59C8, // TrackElemType::FlatToUp25 0, 0, 0x008A59D8, // TrackElemType::Up25ToFlat 0x008A59E8, // TrackElemType::Down25 0, 0x008A59F8, // TrackElemType::FlatToDown25 0, 0, 0x008A5A08, // TrackElemType::Down25ToFlat 0x008A5A18, // TrackElemType::LeftQuarterTurn5Tiles 0x008A5A28, // TrackElemType::RightQuarterTurn5Tiles 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x008A5A38, // TrackElemType::SBendLeft 0x008A5A48, // TrackElemType::SBendRight 0, 0, 0x008A5A88, // TrackElemType::LeftQuarterTurn3Tiles 0x008A5A98, // TrackElemType::RightQuarterTurn3Tiles 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x008A5AA8, // TrackElemType::Brakes 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x008A5AD8, // TrackElemType::LeftEighthToDiag 0x008A5AE8, // TrackElemType::RightEighthToDiag 0x008A5AF8, // TrackElemType::LeftEighthToOrthogonal 0x008A5B08, // TrackElemType::RightEighthToOrthogonal 0, 0, 0, 0, 0x008A5AC8, // TrackElemType::DiagFlat 0x008A5B38, // TrackElemType::DiagUp25 0, 0x008A5B18, // TrackElemType::DiagFlatToUp25 0, 0, 0x008A5B28, // TrackElemType::DiagUp25ToFlat 0x008A5B68, // TrackElemType::DiagDown25 0, 0x008A5B48, // TrackElemType::DiagFlatToDown25 0, 0, 0x008A5B58, // TrackElemType::DiagDown25ToFlat 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x008A5AB8, // TrackElemType::BlockBrakes 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }; /** rct2: 0x006F7000 */ static constexpr const uint32_t _OldCarRideTrackPaintFunctions[256] = { 0x006F72C8, // TrackElemType::Flat 0x006F7338, // TrackElemType::EndStation 0x006F7348, // TrackElemType::BeginStation 0x006F7358, // TrackElemType::MiddleStation 0x006F72D8, // TrackElemType::Up25 0x006F73B8, // TrackElemType::Up60 0x006F72E8, // TrackElemType::FlatToUp25 0x006F73C8, // TrackElemType::Up25ToUp60 0x006F73D8, // TrackElemType::Up60ToUp25 0x006F72F8, // TrackElemType::Up25ToFlat 0x006F7308, // TrackElemType::Down25 0x006F73E8, // TrackElemType::Down60 0x006F7318, // TrackElemType::FlatToDown25 0x006F73F8, // TrackElemType::Down25ToDown60 0x006F7408, // TrackElemType::Down60ToDown25 0x006F7328, // TrackElemType::Down25ToFlat 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x006F7368, // TrackElemType::LeftQuarterTurn3Tiles 0x006F7378, // TrackElemType::RightQuarterTurn3Tiles 0, 0, 0, 0, 0, 0, 0x006F7388, // TrackElemType::LeftQuarterTurn1Tile 0x006F7398, // TrackElemType::RightQuarterTurn1Tile 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x006F7418, // TrackElemType::Rapids 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x006F73A8, // TrackElemType::SpinningTunnel 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }; /** rct2: 0x006FD0E8 */ static constexpr const uint32_t _OldLaunchedFreefallTrackPaintFunctions[256] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x006FD1F8, // TrackElemType::TowerBase 0x006FD208, // TrackElemType::TowerSection 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }; /** rct2: 0x006FE240 */ static constexpr const uint32_t _OldBobsleighCoasterTrackPaintFunctions[256] = { 0x006FE5B4, // TrackElemType::Flat 0x006FE764, // TrackElemType::EndStation 0x006FE774, // TrackElemType::BeginStation 0x006FE784, // TrackElemType::MiddleStation 0x006FE5C4, // TrackElemType::Up25 0, 0x006FE5D4, // TrackElemType::FlatToUp25 0, 0, 0x006FE5E4, // TrackElemType::Up25ToFlat 0x006FE5F4, // TrackElemType::Down25 0, 0x006FE604, // TrackElemType::FlatToDown25 0, 0, 0x006FE614, // TrackElemType::Down25ToFlat 0x006FE624, // TrackElemType::LeftQuarterTurn5Tiles 0x006FE634, // TrackElemType::RightQuarterTurn5Tiles 0x006FE644, // TrackElemType::FlatToLeftBank 0x006FE654, // TrackElemType::FlatToRightBank 0x006FE664, // TrackElemType::LeftBankToFlat 0x006FE674, // TrackElemType::RightBankToFlat 0x006FE684, // TrackElemType::BankedLeftQuarterTurn5Tiles 0x006FE694, // TrackElemType::BankedRightQuarterTurn5Tiles 0x006FE6A4, // TrackElemType::LeftBankToUp25 0x006FE6B4, // TrackElemType::RightBankToUp25 0x006FE6C4, // TrackElemType::Up25ToLeftBank 0x006FE6D4, // TrackElemType::Up25ToRightBank 0x006FE6E4, // TrackElemType::LeftBankToDown25 0x006FE6F4, // TrackElemType::RightBankToDown25 0x006FE704, // TrackElemType::Down25ToLeftBank 0x006FE714, // TrackElemType::Down25ToRightBank 0x006FE724, // TrackElemType::LeftBank 0x006FE734, // TrackElemType::RightBank 0, 0, 0, 0, 0x006FE744, // TrackElemType::SBendLeft 0x006FE754, // TrackElemType::SBendRight 0, 0, 0x006FE794, // TrackElemType::LeftQuarterTurn3Tiles 0x006FE7A4, // TrackElemType::RightQuarterTurn3Tiles 0x006FE7B4, // TrackElemType::LeftBankedQuarterTurn3Tiles 0x006FE7C4, // TrackElemType::RightBankedQuarterTurn3Tiles 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x006FE7D4, // TrackElemType::LeftHalfBankedHelixUpSmall 0x006FE7E4, // TrackElemType::RightHalfBankedHelixUpSmall 0x006FE7F4, // TrackElemType::LeftHalfBankedHelixDownSmall 0x006FE804, // TrackElemType::RightHalfBankedHelixDownSmall 0x006FE814, // TrackElemType::LeftHalfBankedHelixUpLarge 0x006FE824, // TrackElemType::RightHalfBankedHelixUpLarge 0x006FE834, // TrackElemType::LeftHalfBankedHelixDownLarge 0x006FE844, // TrackElemType::RightHalfBankedHelixDownLarge 0, 0, 0, 0, 0x006FE854, // TrackElemType::Brakes 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x006FE864, // TrackElemType::BlockBrakes 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }; /** rct2: 0x0070DC5C */ static constexpr const uint32_t _OldObservationTowerTrackPaintFunctions[256] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x0070DD6C, // TrackElemType::TowerBase 0x0070DD7C, // TrackElemType::TowerSection 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }; /** rct2: 0x008A5B88 */ static constexpr const uint32_t _OldLoopingRollerCoasterTrackPaintFunctions[256] = { 0x008A6370, // TrackElemType::Flat 0x008A6600, // TrackElemType::EndStation 0x008A6610, // TrackElemType::BeginStation 0x008A6620, // TrackElemType::MiddleStation 0x008A6380, // TrackElemType::Up25 0x008A6390, // TrackElemType::Up60 0x008A63A0, // TrackElemType::FlatToUp25 0x008A63B0, // TrackElemType::Up25ToUp60 0x008A63C0, // TrackElemType::Up60ToUp25 0x008A63D0, // TrackElemType::Up25ToFlat 0x008A63E0, // TrackElemType::Down25 0x008A63F0, // TrackElemType::Down60 0x008A6400, // TrackElemType::FlatToDown25 0x008A6410, // TrackElemType::Down25ToDown60 0x008A6420, // TrackElemType::Down60ToDown25 0x008A6430, // TrackElemType::Down25ToFlat 0x008A6440, // TrackElemType::LeftQuarterTurn5Tiles 0x008A6450, // TrackElemType::RightQuarterTurn5Tiles 0x008A6460, // TrackElemType::FlatToLeftBank 0x008A6470, // TrackElemType::FlatToRightBank 0x008A6480, // TrackElemType::LeftBankToFlat 0x008A6490, // TrackElemType::RightBankToFlat 0x008A64A0, // TrackElemType::BankedLeftQuarterTurn5Tiles 0x008A64B0, // TrackElemType::BankedRightQuarterTurn5Tiles 0x008A64C0, // TrackElemType::LeftBankToUp25 0x008A64D0, // TrackElemType::RightBankToUp25 0x008A64E0, // TrackElemType::Up25ToLeftBank 0x008A64F0, // TrackElemType::Up25ToRightBank 0x008A6500, // TrackElemType::LeftBankToDown25 0x008A6510, // TrackElemType::RightBankToDown25 0x008A6520, // TrackElemType::Down25ToLeftBank 0x008A6530, // TrackElemType::Down25ToRightBank 0x008A6540, // TrackElemType::LeftBank 0x008A6550, // TrackElemType::RightBank 0x008A6560, // TrackElemType::LeftQuarterTurn5TilesUp25 0x008A6570, // TrackElemType::RightQuarterTurn5TilesUp25 0x008A6580, // TrackElemType::LeftQuarterTurn5TilesDown25 0x008A6590, // TrackElemType::RightQuarterTurn5TilesDown25 0x008A65A0, // TrackElemType::SBendLeft 0x008A65B0, // TrackElemType::SBendRight 0x008A65C0, // TrackElemType::LeftVerticalLoop 0x008A65D0, // TrackElemType::RightVerticalLoop 0x008A6630, // TrackElemType::LeftQuarterTurn3Tiles 0x008A6640, // TrackElemType::RightQuarterTurn3Tiles 0x008A6650, // TrackElemType::LeftBankedQuarterTurn3Tiles 0x008A6660, // TrackElemType::RightBankedQuarterTurn3Tiles 0x008A6670, // TrackElemType::LeftQuarterTurn3TilesUp25 0x008A6680, // TrackElemType::RightQuarterTurn3TilesUp25 0x008A6690, // TrackElemType::LeftQuarterTurn3TilesDown25 0x008A66A0, // TrackElemType::RightQuarterTurn3TilesDown25 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x008A66B0, // TrackElemType::LeftHalfBankedHelixUpSmall 0x008A66C0, // TrackElemType::RightHalfBankedHelixUpSmall 0x008A66D0, // TrackElemType::LeftHalfBankedHelixDownSmall 0x008A66E0, // TrackElemType::RightHalfBankedHelixDownSmall 0x008A66F0, // TrackElemType::LeftHalfBankedHelixUpLarge 0x008A6700, // TrackElemType::RightHalfBankedHelixUpLarge 0x008A6710, // TrackElemType::LeftHalfBankedHelixDownLarge 0x008A6720, // TrackElemType::RightHalfBankedHelixDownLarge 0x008A6750, // TrackElemType::LeftQuarterTurn1TileUp60 0x008A6730, // TrackElemType::RightQuarterTurn1TileUp60 0x008A6740, // TrackElemType::LeftQuarterTurn1TileDown60 0x008A6760, // TrackElemType::RightQuarterTurn1TileDown60 0x008A6770, // TrackElemType::Brakes 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x008A6A40, // TrackElemType::Up25LeftBanked 0x008A6A50, // TrackElemType::Up25RightBanked 0, 0, 0x008A6780, // TrackElemType::OnRidePhoto 0x008A6A60, // TrackElemType::Down25LeftBanked 0x008A6A70, // TrackElemType::Down25RightBanked 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x008A6860, // TrackElemType::LeftEighthToDiag 0x008A6870, // TrackElemType::RightEighthToDiag 0x008A6880, // TrackElemType::LeftEighthToOrthogonal 0x008A6890, // TrackElemType::RightEighthToOrthogonal 0x008A68A0, // TrackElemType::LeftEighthBankToDiag 0x008A68B0, // TrackElemType::RightEighthBankToDiag 0x008A68C0, // TrackElemType::LeftEighthBankToOrthogonal 0x008A68D0, // TrackElemType::RightEighthBankToOrthogonal 0x008A6790, // TrackElemType::DiagFlat 0x008A67C0, // TrackElemType::DiagUp25 0x008A67F0, // TrackElemType::DiagUp60 0x008A67A0, // TrackElemType::DiagFlatToUp25 0x008A67D0, // TrackElemType::DiagUp25ToUp60 0x008A67E0, // TrackElemType::DiagUp60ToUp25 0x008A67B0, // TrackElemType::DiagUp25ToFlat 0x008A6820, // TrackElemType::DiagDown25 0x008A6850, // TrackElemType::DiagDown60 0x008A6800, // TrackElemType::DiagFlatToDown25 0x008A6830, // TrackElemType::DiagDown25ToDown60 0x008A6840, // TrackElemType::DiagDown60ToDown25 0x008A6810, // TrackElemType::DiagDown25ToFlat 0, 0, 0, 0, 0x008A6900, // TrackElemType::DiagFlatToLeftBank 0x008A6910, // TrackElemType::DiagFlatToRightBank 0x008A6920, // TrackElemType::DiagLeftBankToFlat 0x008A6930, // TrackElemType::DiagRightBankToFlat 0x008A6960, // TrackElemType::DiagLeftBankToUp25 0x008A6970, // TrackElemType::DiagRightBankToUp25 0x008A6940, // TrackElemType::DiagUp25ToLeftBank 0x008A6950, // TrackElemType::DiagUp25ToRightBank 0x008A6980, // TrackElemType::DiagLeftBankToDown25 0x008A6990, // TrackElemType::DiagRightBankToDown25 0x008A69A0, // TrackElemType::DiagDown25ToLeftBank 0x008A69B0, // TrackElemType::DiagDown25ToRightBank 0x008A68E0, // TrackElemType::DiagLeftBank 0x008A68F0, // TrackElemType::DiagRightBank 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x008A6C00, // TrackElemType::BlockBrakes 0x008A6BC0, // TrackElemType::LeftBankedQuarterTurn3TileUp25 0x008A6BD0, // TrackElemType::RightBankedQuarterTurn3TileUp25 0x008A6BE0, // TrackElemType::LeftBankedQuarterTurn3TileDown25 0x008A6BF0, // TrackElemType::RightBankedQuarterTurn3TileDown25 0x008A6B80, // TrackElemType::LeftBankedQuarterTurn5TileUp25 0x008A6B90, // TrackElemType::RightBankedQuarterTurn5TileUp25 0x008A6BA0, // TrackElemType::LeftBankedQuarterTurn5TileDown25 0x008A6BB0, // TrackElemType::RightBankedQuarterTurn5TileDown25 0x008A6A80, // TrackElemType::Up25ToLeftBankedUp25 0x008A6A90, // TrackElemType::Up25ToRightBankedUp25 0x008A6AA0, // TrackElemType::LeftBankedUp25ToUp25 0x008A6AB0, // TrackElemType::RightBankedUp25ToUp25 0x008A6AC0, // TrackElemType::Down25ToLeftBankedDown25 0x008A6AD0, // TrackElemType::Down25ToRightBankedDown25 0x008A6AE0, // TrackElemType::LeftBankedDown25ToDown25 0x008A6AF0, // TrackElemType::RightBankedDown25ToDown25 0x008A6B00, // TrackElemType::LeftBankedFlatToLeftBankedUp25 0x008A6B10, // TrackElemType::RightBankedFlatToRightBankedUp25 0x008A6B40, // TrackElemType::LeftBankedUp25ToLeftBankedFlat 0x008A6B50, // TrackElemType::RightBankedUp25ToRightBankedFlat 0x008A6B60, // TrackElemType::LeftBankedFlatToLeftBankedDown25 0x008A6B70, // TrackElemType::RightBankedFlatToRightBankedDown25 0x008A6B20, // TrackElemType::LeftBankedDown25ToLeftBankedFlat 0x008A6B30, // TrackElemType::RightBankedDown25ToRightBankedFlat 0x008A69C0, // TrackElemType::FlatToLeftBankedUp25 0x008A69D0, // TrackElemType::FlatToRightBankedUp25 0x008A69E0, // TrackElemType::LeftBankedUp25ToFlat 0x008A69F0, // TrackElemType::RightBankedUp25ToFlat 0x008A6A00, // TrackElemType::FlatToLeftBankedDown25 0x008A6A10, // TrackElemType::FlatToRightBankedDown25 0x008A6A20, // TrackElemType::LeftBankedDown25ToFlat 0x008A6A30, // TrackElemType::RightBankedDown25ToFlat 0, 0, 0, 0, 0, 0, 0, }; /** rct2: 0x0070EDB4 */ static constexpr const uint32_t _OldDinghySlideTrackPaintFunctions[256] = { 0x0070EF20, // TrackElemType::Flat 0x0070F030, // TrackElemType::EndStation 0x0070F040, // TrackElemType::BeginStation 0x0070F050, // TrackElemType::MiddleStation 0x0070EF30, // TrackElemType::Up25 0x0070EFD0, // TrackElemType::Up60 0x0070EF40, // TrackElemType::FlatToUp25 0x0070EF90, // TrackElemType::Up25ToUp60 0x0070EFA0, // TrackElemType::Up60ToUp25 0x0070EF50, // TrackElemType::Up25ToFlat 0x0070EF60, // TrackElemType::Down25 0x0070EFE0, // TrackElemType::Down60 0x0070EF70, // TrackElemType::FlatToDown25 0x0070EFB0, // TrackElemType::Down25ToDown60 0x0070EFC0, // TrackElemType::Down60ToDown25 0x0070EF80, // TrackElemType::Down25ToFlat 0x0070EFF0, // TrackElemType::LeftQuarterTurn5Tiles 0x0070F000, // TrackElemType::RightQuarterTurn5Tiles 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x0070F010, // TrackElemType::SBendLeft 0x0070F020, // TrackElemType::SBendRight 0, 0, 0x0070F060, // TrackElemType::LeftQuarterTurn3Tiles 0x0070F070, // TrackElemType::RightQuarterTurn3Tiles 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x0070F080, // TrackElemType::FlatCovered 0x0070F090, // TrackElemType::Up25Covered 0x0070F130, // TrackElemType::Up60Covered 0x0070F0A0, // TrackElemType::FlatToUp25Covered 0x0070F0F0, // TrackElemType::Up25ToUp60Covered 0x0070F100, // TrackElemType::Up60ToUp25Covered 0x0070F0B0, // TrackElemType::Up25ToFlatCovered 0x0070F0C0, // TrackElemType::Down25Covered 0x0070F140, // TrackElemType::Down60Covered 0x0070F0D0, // TrackElemType::FlatToDown25Covered 0x0070F110, // TrackElemType::Down25ToDown60Covered 0x0070F120, // TrackElemType::Down60ToDown25Covered 0x0070F0E0, // TrackElemType::Down25ToFlatCovered 0x0070F150, // TrackElemType::LeftQuarterTurn5TilesCovered 0x0070F160, // TrackElemType::RightQuarterTurn5TilesCovered 0x0070F190, // TrackElemType::SBendLeftCovered 0x0070F1A0, // TrackElemType::SBendRightCovered 0x0070F170, // TrackElemType::LeftQuarterTurn3TilesCovered 0x0070F180, // TrackElemType::RightQuarterTurn3TilesCovered 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }; /** rct2: 0x0071BC40 */ static constexpr const uint32_t _OldMineTrainCoasterTrackPaintFunctions[256] = { 0x0071BFA4, // TrackElemType::Flat 0x0071C154, // TrackElemType::EndStation 0x0071C164, // TrackElemType::BeginStation 0x0071C174, // TrackElemType::MiddleStation 0x0071BFB4, // TrackElemType::Up25 0x0071BFC4, // TrackElemType::Up60 0x0071BFD4, // TrackElemType::FlatToUp25 0x0071BFE4, // TrackElemType::Up25ToUp60 0x0071BFF4, // TrackElemType::Up60ToUp25 0x0071C004, // TrackElemType::Up25ToFlat 0x0071C014, // TrackElemType::Down25 0x0071C024, // TrackElemType::Down60 0x0071C034, // TrackElemType::FlatToDown25 0x0071C044, // TrackElemType::Down25ToDown60 0x0071C054, // TrackElemType::Down60ToDown25 0x0071C064, // TrackElemType::Down25ToFlat 0x0071C0B4, // TrackElemType::LeftQuarterTurn5Tiles 0x0071C0C4, // TrackElemType::RightQuarterTurn5Tiles 0x0071C074, // TrackElemType::FlatToLeftBank 0x0071C084, // TrackElemType::FlatToRightBank 0x0071C094, // TrackElemType::LeftBankToFlat 0x0071C0A4, // TrackElemType::RightBankToFlat 0x0071C0D4, // TrackElemType::BankedLeftQuarterTurn5Tiles 0x0071C0E4, // TrackElemType::BankedRightQuarterTurn5Tiles 0x0071C204, // TrackElemType::LeftBankToUp25 0x0071C214, // TrackElemType::RightBankToUp25 0x0071C224, // TrackElemType::Up25ToLeftBank 0x0071C234, // TrackElemType::Up25ToRightBank 0x0071C244, // TrackElemType::LeftBankToDown25 0x0071C254, // TrackElemType::RightBankToDown25 0x0071C264, // TrackElemType::Down25ToLeftBank 0x0071C274, // TrackElemType::Down25ToRightBank 0x0071C304, // TrackElemType::LeftBank 0x0071C314, // TrackElemType::RightBank 0x0071C0F4, // TrackElemType::LeftQuarterTurn5TilesUp25 0x0071C104, // TrackElemType::RightQuarterTurn5TilesUp25 0x0071C114, // TrackElemType::LeftQuarterTurn5TilesDown25 0x0071C124, // TrackElemType::RightQuarterTurn5TilesDown25 0x0071C134, // TrackElemType::SBendLeft 0x0071C144, // TrackElemType::SBendRight 0, 0, 0x0071C184, // TrackElemType::LeftQuarterTurn3Tiles 0x0071C194, // TrackElemType::RightQuarterTurn3Tiles 0x0071C1A4, // TrackElemType::LeftBankedQuarterTurn3Tiles 0x0071C1B4, // TrackElemType::RightBankedQuarterTurn3Tiles 0x0071C1C4, // TrackElemType::LeftQuarterTurn3TilesUp25 0x0071C1D4, // TrackElemType::RightQuarterTurn3TilesUp25 0x0071C1E4, // TrackElemType::LeftQuarterTurn3TilesDown25 0x0071C1F4, // TrackElemType::RightQuarterTurn3TilesDown25 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x0071C284, // TrackElemType::LeftHalfBankedHelixUpSmall 0x0071C294, // TrackElemType::RightHalfBankedHelixUpSmall 0x0071C2A4, // TrackElemType::LeftHalfBankedHelixDownSmall 0x0071C2B4, // TrackElemType::RightHalfBankedHelixDownSmall 0x0071C2C4, // TrackElemType::LeftHalfBankedHelixUpLarge 0x0071C2D4, // TrackElemType::RightHalfBankedHelixUpLarge 0x0071C2E4, // TrackElemType::LeftHalfBankedHelixDownLarge 0x0071C2F4, // TrackElemType::RightHalfBankedHelixDownLarge 0, 0, 0, 0, 0x0071C324, // TrackElemType::Brakes 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x0071C334, // TrackElemType::OnRidePhoto 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x0071C354, // TrackElemType::LeftEighthToDiag 0x0071C364, // TrackElemType::RightEighthToDiag 0x0071C374, // TrackElemType::LeftEighthToOrthogonal 0x0071C384, // TrackElemType::RightEighthToOrthogonal 0x0071C394, // TrackElemType::LeftEighthBankToDiag 0x0071C3A4, // TrackElemType::RightEighthBankToDiag 0x0071C3B4, // TrackElemType::LeftEighthBankToOrthogonal 0x0071C3C4, // TrackElemType::RightEighthBankToOrthogonal 0x0071C344, // TrackElemType::DiagFlat 0x0071C414, // TrackElemType::DiagUp25 0x0071C474, // TrackElemType::DiagUp60 0x0071C3F4, // TrackElemType::DiagFlatToUp25 0x0071C454, // TrackElemType::DiagUp25ToUp60 0x0071C464, // TrackElemType::DiagUp60ToUp25 0x0071C404, // TrackElemType::DiagUp25ToFlat 0x0071C444, // TrackElemType::DiagDown25 0x0071C4A4, // TrackElemType::DiagDown60 0x0071C424, // TrackElemType::DiagFlatToDown25 0x0071C484, // TrackElemType::DiagDown25ToDown60 0x0071C494, // TrackElemType::DiagDown60ToDown25 0x0071C434, // TrackElemType::DiagDown25ToFlat 0, 0, 0, 0, 0x0071C4D4, // TrackElemType::DiagFlatToLeftBank 0x0071C4B4, // TrackElemType::DiagFlatToRightBank 0x0071C4C4, // TrackElemType::DiagLeftBankToFlat 0x0071C4E4, // TrackElemType::DiagRightBankToFlat 0x0071C514, // TrackElemType::DiagLeftBankToUp25 0x0071C524, // TrackElemType::DiagRightBankToUp25 0x0071C4F4, // TrackElemType::DiagUp25ToLeftBank 0x0071C504, // TrackElemType::DiagUp25ToRightBank 0x0071C534, // TrackElemType::DiagLeftBankToDown25 0x0071C544, // TrackElemType::DiagRightBankToDown25 0x0071C554, // TrackElemType::DiagDown25ToLeftBank 0x0071C564, // TrackElemType::DiagDown25ToRightBank 0x0071C3D4, // TrackElemType::DiagLeftBank 0x0071C3E4, // TrackElemType::DiagRightBank 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x0071C574, // TrackElemType::BlockBrakes 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }; /** rct2: 0x00743EC8 */ static constexpr const uint32_t _OldChairliftTrackPaintFunctions[256] = { 0x00743FC8, // TrackElemType::Flat 0x00743F98, // TrackElemType::EndStation 0x00743FA8, // TrackElemType::BeginStation 0x00743FB8, // TrackElemType::MiddleStation 0x00743FD8, // TrackElemType::Up25 0, 0x00743FE8, // TrackElemType::FlatToUp25 0, 0, 0x00743FF8, // TrackElemType::Up25ToFlat 0x00744008, // TrackElemType::Down25 0, 0x00744018, // TrackElemType::FlatToDown25 0, 0, 0x00744028, // TrackElemType::Down25ToFlat 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x00744038, // TrackElemType::LeftQuarterTurn1Tile 0x00744048, // TrackElemType::RightQuarterTurn1Tile 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }; /** rct2: 0x008A7784 */ static constexpr const uint32_t _OldCorkscrewRollerCoasterTrackPaintFunctions[256] = { 0x008A7AF8, // TrackElemType::Flat 0x008A7D68, // TrackElemType::EndStation 0x008A7D78, // TrackElemType::BeginStation 0x008A7D88, // TrackElemType::MiddleStation 0x008A7B08, // TrackElemType::Up25 0x008A7B18, // TrackElemType::Up60 0x008A7B28, // TrackElemType::FlatToUp25 0x008A7B38, // TrackElemType::Up25ToUp60 0x008A7B48, // TrackElemType::Up60ToUp25 0x008A7B58, // TrackElemType::Up25ToFlat 0x008A7B68, // TrackElemType::Down25 0x008A7B78, // TrackElemType::Down60 0x008A7B88, // TrackElemType::FlatToDown25 0x008A7B98, // TrackElemType::Down25ToDown60 0x008A7BA8, // TrackElemType::Down60ToDown25 0x008A7BB8, // TrackElemType::Down25ToFlat 0x008A7BC8, // TrackElemType::LeftQuarterTurn5Tiles 0x008A7BD8, // TrackElemType::RightQuarterTurn5Tiles 0x008A7BE8, // TrackElemType::FlatToLeftBank 0x008A7BF8, // TrackElemType::FlatToRightBank 0x008A7C08, // TrackElemType::LeftBankToFlat 0x008A7C18, // TrackElemType::RightBankToFlat 0x008A7C28, // TrackElemType::BankedLeftQuarterTurn5Tiles 0x008A7C38, // TrackElemType::BankedRightQuarterTurn5Tiles 0x008A7C48, // TrackElemType::LeftBankToUp25 0x008A7C58, // TrackElemType::RightBankToUp25 0x008A7C68, // TrackElemType::Up25ToLeftBank 0x008A7C78, // TrackElemType::Up25ToRightBank 0x008A7C88, // TrackElemType::LeftBankToDown25 0x008A7C98, // TrackElemType::RightBankToDown25 0x008A7CA8, // TrackElemType::Down25ToLeftBank 0x008A7CB8, // TrackElemType::Down25ToRightBank 0x008A7CC8, // TrackElemType::LeftBank 0x008A7CD8, // TrackElemType::RightBank 0x008A7CE8, // TrackElemType::LeftQuarterTurn5TilesUp25 0x008A7CF8, // TrackElemType::RightQuarterTurn5TilesUp25 0x008A7D08, // TrackElemType::LeftQuarterTurn5TilesDown25 0x008A7D18, // TrackElemType::RightQuarterTurn5TilesDown25 0x008A7D28, // TrackElemType::SBendLeft 0x008A7D38, // TrackElemType::SBendRight 0x008A7D48, // TrackElemType::LeftVerticalLoop 0x008A7D58, // TrackElemType::RightVerticalLoop 0x008A7D98, // TrackElemType::LeftQuarterTurn3Tiles 0x008A7DA8, // TrackElemType::RightQuarterTurn3Tiles 0x008A7DB8, // TrackElemType::LeftBankedQuarterTurn3Tiles 0x008A7DC8, // TrackElemType::RightBankedQuarterTurn3Tiles 0x008A7DD8, // TrackElemType::LeftQuarterTurn3TilesUp25 0x008A7DE8, // TrackElemType::RightQuarterTurn3TilesUp25 0x008A7DF8, // TrackElemType::LeftQuarterTurn3TilesDown25 0x008A7E08, // TrackElemType::RightQuarterTurn3TilesDown25 0, 0, 0, 0, 0, 0, 0x008A7E18, // TrackElemType::HalfLoopUp 0x008A7E28, // TrackElemType::HalfLoopDown 0x008A7E38, // TrackElemType::LeftCorkscrewUp 0x008A7E48, // TrackElemType::RightCorkscrewUp 0x008A7E58, // TrackElemType::LeftCorkscrewDown 0x008A7E68, // TrackElemType::RightCorkscrewDown 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x008A7E78, // TrackElemType::LeftHalfBankedHelixUpSmall 0x008A7E88, // TrackElemType::RightHalfBankedHelixUpSmall 0x008A7E98, // TrackElemType::LeftHalfBankedHelixDownSmall 0x008A7EA8, // TrackElemType::RightHalfBankedHelixDownSmall 0x008A7EB8, // TrackElemType::LeftHalfBankedHelixUpLarge 0x008A7EC8, // TrackElemType::RightHalfBankedHelixUpLarge 0x008A7ED8, // TrackElemType::LeftHalfBankedHelixDownLarge 0x008A7EE8, // TrackElemType::RightHalfBankedHelixDownLarge 0x008A7F18, // TrackElemType::LeftQuarterTurn1TileUp60 0x008A7EF8, // TrackElemType::RightQuarterTurn1TileUp60 0x008A7F08, // TrackElemType::LeftQuarterTurn1TileDown60 0x008A7F28, // TrackElemType::RightQuarterTurn1TileDown60 0x008A7F38, // TrackElemType::Brakes 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x008A7F48, // TrackElemType::OnRidePhoto 0, 0, 0, 0x008A8198, // TrackElemType::FlatToUp60LongBase 0x008A81A8, // TrackElemType::Up60ToFlatLongBase 0, 0x008A81B8, // TrackElemType::Down60ToFlatLongBase 0x008A81C8, // TrackElemType::FlatToDown60LongBase 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x008A7F68, // TrackElemType::LeftEighthToDiag 0x008A7F78, // TrackElemType::RightEighthToDiag 0x008A7F88, // TrackElemType::LeftEighthToOrthogonal 0x008A7F98, // TrackElemType::RightEighthToOrthogonal 0x008A7FA8, // TrackElemType::LeftEighthBankToDiag 0x008A7FB8, // TrackElemType::RightEighthBankToDiag 0x008A7FC8, // TrackElemType::LeftEighthBankToOrthogonal 0x008A7FD8, // TrackElemType::RightEighthBankToOrthogonal 0x008A7F58, // TrackElemType::DiagFlat 0x008A8008, // TrackElemType::DiagUp25 0x008A8068, // TrackElemType::DiagUp60 0x008A7FE8, // TrackElemType::DiagFlatToUp25 0x008A8048, // TrackElemType::DiagUp25ToUp60 0x008A8058, // TrackElemType::DiagUp60ToUp25 0x008A7FF8, // TrackElemType::DiagUp25ToFlat 0x008A8038, // TrackElemType::DiagDown25 0x008A8098, // TrackElemType::DiagDown60 0x008A8018, // TrackElemType::DiagFlatToDown25 0x008A8078, // TrackElemType::DiagDown25ToDown60 0x008A8088, // TrackElemType::DiagDown60ToDown25 0x008A8028, // TrackElemType::DiagDown25ToFlat 0, 0, 0, 0, 0x008A80C8, // TrackElemType::DiagFlatToLeftBank 0x008A80D8, // TrackElemType::DiagFlatToRightBank 0x008A80E8, // TrackElemType::DiagLeftBankToFlat 0x008A80F8, // TrackElemType::DiagRightBankToFlat 0x008A8128, // TrackElemType::DiagLeftBankToUp25 0x008A8138, // TrackElemType::DiagRightBankToUp25 0x008A8108, // TrackElemType::DiagUp25ToLeftBank 0x008A8118, // TrackElemType::DiagUp25ToRightBank 0x008A8148, // TrackElemType::DiagLeftBankToDown25 0x008A8158, // TrackElemType::DiagRightBankToDown25 0x008A8168, // TrackElemType::DiagDown25ToLeftBank 0x008A8178, // TrackElemType::DiagDown25ToRightBank 0x008A80A8, // TrackElemType::DiagLeftBank 0x008A80B8, // TrackElemType::DiagRightBank 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x008A8188, // TrackElemType::BlockBrakes 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }; /** rct2: 0x008A81E8 */ static constexpr const uint32_t _OldMazeTrackPaintFunctions[256] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x008A8380, // TrackElemType::InvertedUp90ToFlatQuarterLoopAlias 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }; /** rct2: 0x0074840C */ static constexpr const uint32_t _OldSpiralSlideTrackPaintFunctions[256] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x007485C8, // 110 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }; /** rct2: 0x0074A668 */ static constexpr const uint32_t _OldGoKartsTrackPaintFunctions[256] = { 0x0074A748, // TrackElemType::Flat 0x0074A7B8, // TrackElemType::EndStation 0x0074A7C8, // TrackElemType::BeginStation 0x0074A7D8, // TrackElemType::MiddleStation 0x0074A758, // TrackElemType::Up25 0, 0x0074A768, // TrackElemType::FlatToUp25 0, 0, 0x0074A778, // TrackElemType::Up25ToFlat 0x0074A788, // TrackElemType::Down25 0, 0x0074A798, // TrackElemType::FlatToDown25 0, 0, 0x0074A7A8, // TrackElemType::Down25ToFlat 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x0074A7E8, // TrackElemType::LeftQuarterTurn1Tile 0x0074A7F8, // TrackElemType::RightQuarterTurn1Tile 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }; /** rct2: 0x0074DDEC */ static constexpr const uint32_t _OldLogFlumeTrackPaintFunctions[256] = { 0x0074E0B0, // TrackElemType::Flat 0x0074E140, // TrackElemType::EndStation 0x0074E150, // TrackElemType::BeginStation 0x0074E160, // TrackElemType::MiddleStation 0x0074E0C0, // TrackElemType::Up25 0, 0x0074E0D0, // TrackElemType::FlatToUp25 0, 0, 0x0074E0E0, // TrackElemType::Up25ToFlat 0x0074E0F0, // TrackElemType::Down25 0, 0x0074E100, // TrackElemType::FlatToDown25 0, 0, 0x0074E110, // TrackElemType::Down25ToFlat 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x0074E120, // TrackElemType::SBendLeft 0x0074E130, // TrackElemType::SBendRight 0, 0, 0x0074E170, // TrackElemType::LeftQuarterTurn3Tiles 0x0074E180, // TrackElemType::RightQuarterTurn3Tiles 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x0074E1A0, // TrackElemType::OnRidePhoto 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x0074E190, // TrackElemType::LogFlumeReverser 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }; /** rct2: 0x0075745C */ static constexpr const uint32_t _OldRiverRapidsTrackPaintFunctions[256] = { 0x00757650, // TrackElemType::Flat 0x007576C0, // TrackElemType::EndStation 0x007576D0, // TrackElemType::BeginStation 0x007576E0, // TrackElemType::MiddleStation 0x00757660, // TrackElemType::Up25 0, 0x00757670, // TrackElemType::FlatToUp25 0, 0, 0x00757680, // TrackElemType::Up25ToFlat 0x00757690, // TrackElemType::Down25 0, 0x007576A0, // TrackElemType::FlatToDown25 0, 0, 0x007576B0, // TrackElemType::Down25ToFlat 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x007576F0, // TrackElemType::LeftQuarterTurn1Tile 0x00757700, // TrackElemType::RightQuarterTurn1Tile 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x00757710, // TrackElemType::Waterfall 0x00757720, // TrackElemType::Rapids 0x00757740, // TrackElemType::OnRidePhoto 0, 0, 0, 0, 0, 0x00757730, // TrackElemType::Whirlpool 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }; /** rct2: 0x0075C9D0 */ static constexpr const uint32_t _OldDodgemsTrackPaintFunctions[256] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x0075CBA0, // 111 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }; /** rct2: 0x008A83E0 */ static constexpr const uint32_t _OldSwingingShipTrackPaintFunctions[256] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x008A85C4, // 116 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }; /** rct2: 0x00760070 */ static constexpr const uint32_t _OldSwingingInverterShipTrackPaintFunctions[256] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x00760260, // 119 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }; /** * FoodStall, 1D, DrinkStall, 1F, Shop, 22, InformationKiosk, CashMachine, 50, 52, 53, 54 * * rct2: 0x00761160 */ static constexpr const uint32_t _OldShopTrackPaintFunctions[256] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x00761358, // 118 0, 0, 0x00761358, // 121 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }; /** rct2: 0x0076190C */ static constexpr const uint32_t _OldMerryGoRoundTrackPaintFunctions[256] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x00761B0C, // 123 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }; /** * Toilets, FirstAid * * rct2: 0x00762D44 */ static constexpr const uint32_t _OldFacilityTrackPaintFunctions[256] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x00762F30, // 118 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }; /** rct2: 0x008A8CC8 */ static constexpr const uint32_t _OldFerrisWheelTrackPaintFunctions[256] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x008A8EC4, // 122 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }; /** rct2: 0x00763520 */ static constexpr const uint32_t _OldMotionSimulatorTrackPaintFunctions[256] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x007636EC, // 110 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }; /** rct2: 0x0076554C */ static constexpr const uint32_t _Old3DCinemaTrackPaintFunctions[256] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x0076574C, // 123 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }; /** rct2: 0x0076659C */ static constexpr const uint32_t _OldTopSpinTrackPaintFunctions[256] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x0076679C, // 123 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }; /** rct2: 0x00767A40 */ static constexpr const uint32_t _OldSpaceRingsTrackPaintFunctions[256] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x00767C40, // 123 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }; /** rct2: 0x00768BAC */ static constexpr const uint32_t _OldReverseFreefallCoasterTrackPaintFunctions[256] = { 0x00768DB4, // TrackElemType::Flat 0x00768DC4, // TrackElemType::EndStation 0x00768DD4, // TrackElemType::BeginStation 0x00768DE4, // TrackElemType::MiddleStation 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x00768DF4, // TrackElemType::ReverseFreefallSlope 0x00768E04, // TrackElemType::ReverseFreefallVertical 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }; /** rct2: 0x0076C5BC */ static constexpr const uint32_t _OldLiftTrackPaintFunctions[256] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x0076C6CC, // TrackElemType::TowerBase 0x0076C6DC, // TrackElemType::TowerSection 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }; /** rct2: 0x008A9C08 */ static constexpr const uint32_t _OldVerticalDropRollerCoasterTrackPaintFunctions[256] = { 0x008AA00C, // TrackElemType::Flat 0x008AA25C, // TrackElemType::EndStation 0x008AA26C, // TrackElemType::BeginStation 0x008AA27C, // TrackElemType::MiddleStation 0x008AA01C, // TrackElemType::Up25 0x008AA02C, // TrackElemType::Up60 0x008AA03C, // TrackElemType::FlatToUp25 0x008AA04C, // TrackElemType::Up25ToUp60 0x008AA05C, // TrackElemType::Up60ToUp25 0x008AA06C, // TrackElemType::Up25ToFlat 0x008AA07C, // TrackElemType::Down25 0x008AA08C, // TrackElemType::Down60 0x008AA09C, // TrackElemType::FlatToDown25 0x008AA0AC, // TrackElemType::Down25ToDown60 0x008AA0BC, // TrackElemType::Down60ToDown25 0x008AA0CC, // TrackElemType::Down25ToFlat 0x008AA0DC, // TrackElemType::LeftQuarterTurn5Tiles 0x008AA0EC, // TrackElemType::RightQuarterTurn5Tiles 0x008AA0FC, // TrackElemType::FlatToLeftBank 0x008AA10C, // TrackElemType::FlatToRightBank 0x008AA11C, // TrackElemType::LeftBankToFlat 0x008AA12C, // TrackElemType::RightBankToFlat 0x008AA13C, // TrackElemType::BankedLeftQuarterTurn5Tiles 0x008AA14C, // TrackElemType::BankedRightQuarterTurn5Tiles 0x008AA15C, // TrackElemType::LeftBankToUp25 0x008AA16C, // TrackElemType::RightBankToUp25 0x008AA17C, // TrackElemType::Up25ToLeftBank 0x008AA18C, // TrackElemType::Up25ToRightBank 0x008AA19C, // TrackElemType::LeftBankToDown25 0x008AA1AC, // TrackElemType::RightBankToDown25 0x008AA1BC, // TrackElemType::Down25ToLeftBank 0x008AA1CC, // TrackElemType::Down25ToRightBank 0x008AA1DC, // TrackElemType::LeftBank 0x008AA1EC, // TrackElemType::RightBank 0x008AA1FC, // TrackElemType::LeftQuarterTurn5TilesUp25 0x008AA20C, // TrackElemType::RightQuarterTurn5TilesUp25 0x008AA21C, // TrackElemType::LeftQuarterTurn5TilesDown25 0x008AA22C, // TrackElemType::RightQuarterTurn5TilesDown25 0x008AA23C, // TrackElemType::SBendLeft 0x008AA24C, // TrackElemType::SBendRight 0x008AA49C, // TrackElemType::LeftVerticalLoop 0x008AA4AC, // TrackElemType::RightVerticalLoop 0x008AA28C, // TrackElemType::LeftQuarterTurn3Tiles 0x008AA29C, // TrackElemType::RightQuarterTurn3Tiles 0x008AA2AC, // TrackElemType::LeftBankedQuarterTurn3Tiles 0x008AA2BC, // TrackElemType::RightBankedQuarterTurn3Tiles 0x008AA2CC, // TrackElemType::LeftQuarterTurn3TilesUp25 0x008AA2DC, // TrackElemType::RightQuarterTurn3TilesUp25 0x008AA2EC, // TrackElemType::LeftQuarterTurn3TilesDown25 0x008AA2FC, // TrackElemType::RightQuarterTurn3TilesDown25 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x008AA3CC, // TrackElemType::FlatToUp60 0x008AA3DC, // TrackElemType::Up60ToFlat 0x008AA3EC, // TrackElemType::FlatToDown60 0x008AA3FC, // TrackElemType::Down60ToFlat 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x008AA30C, // TrackElemType::LeftHalfBankedHelixUpSmall 0x008AA31C, // TrackElemType::RightHalfBankedHelixUpSmall 0x008AA32C, // TrackElemType::LeftHalfBankedHelixDownSmall 0x008AA33C, // TrackElemType::RightHalfBankedHelixDownSmall 0x008AA34C, // TrackElemType::LeftHalfBankedHelixUpLarge 0x008AA35C, // TrackElemType::RightHalfBankedHelixUpLarge 0x008AA36C, // TrackElemType::LeftHalfBankedHelixDownLarge 0x008AA37C, // TrackElemType::RightHalfBankedHelixDownLarge 0x008AA3AC, // TrackElemType::LeftQuarterTurn1TileUp60 0x008AA38C, // TrackElemType::RightQuarterTurn1TileUp60 0x008AA39C, // TrackElemType::LeftQuarterTurn1TileDown60 0x008AA3BC, // TrackElemType::RightQuarterTurn1TileDown60 0x008AA40C, // TrackElemType::Brakes 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x008AA7EC, // TrackElemType::Up25LeftBanked 0x008AA7FC, // TrackElemType::Up25RightBanked 0, 0, 0x008AA41C, // TrackElemType::OnRidePhoto 0x008AA80C, // TrackElemType::Down25LeftBanked 0x008AA81C, // TrackElemType::Down25RightBanked 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x008AA42C, // TrackElemType::Up90 0x008AA43C, // TrackElemType::Down90 0x008AA44C, // TrackElemType::Up60ToUp90 0x008AA45C, // TrackElemType::Down90ToDown60 0x008AA46C, // TrackElemType::Up90ToUp60 0x008AA47C, // TrackElemType::Down60ToDown90 0x008AA48C, // TrackElemType::BrakeForDrop 0x008AA4CC, // TrackElemType::LeftEighthToDiag 0x008AA4DC, // TrackElemType::RightEighthToDiag 0x008AA4EC, // TrackElemType::LeftEighthToOrthogonal 0x008AA4FC, // TrackElemType::RightEighthToOrthogonal 0x008AA50C, // TrackElemType::LeftEighthBankToDiag 0x008AA51C, // TrackElemType::RightEighthBankToDiag 0x008AA52C, // TrackElemType::LeftEighthBankToOrthogonal 0x008AA53C, // TrackElemType::RightEighthBankToOrthogonal 0x008AA4BC, // TrackElemType::DiagFlat 0x008AA56C, // TrackElemType::DiagUp25 0x008AA5CC, // TrackElemType::DiagUp60 0x008AA54C, // TrackElemType::DiagFlatToUp25 0x008AA5AC, // TrackElemType::DiagUp25ToUp60 0x008AA5BC, // TrackElemType::DiagUp60ToUp25 0x008AA55C, // TrackElemType::DiagUp25ToFlat 0x008AA59C, // TrackElemType::DiagDown25 0x008AA5FC, // TrackElemType::DiagDown60 0x008AA57C, // TrackElemType::DiagFlatToDown25 0x008AA5DC, // TrackElemType::DiagDown25ToDown60 0x008AA5EC, // TrackElemType::DiagDown60ToDown25 0x008AA58C, // TrackElemType::DiagDown25ToFlat 0x008AA6EC, // TrackElemType::DiagFlatToUp60 0x008AA6FC, // TrackElemType::DiagUp60ToFlat 0x008AA70C, // TrackElemType::DiagFlatToDown60 0x008AA71C, // TrackElemType::DiagDown60ToFlat 0x008AA62C, // TrackElemType::DiagFlatToLeftBank 0x008AA63C, // TrackElemType::DiagFlatToRightBank 0x008AA64C, // TrackElemType::DiagLeftBankToFlat 0x008AA65C, // TrackElemType::DiagRightBankToFlat 0x008AA68C, // TrackElemType::DiagLeftBankToUp25 0x008AA69C, // TrackElemType::DiagRightBankToUp25 0x008AA66C, // TrackElemType::DiagUp25ToLeftBank 0x008AA67C, // TrackElemType::DiagUp25ToRightBank 0x008AA6AC, // TrackElemType::DiagLeftBankToDown25 0x008AA6BC, // TrackElemType::DiagRightBankToDown25 0x008AA6CC, // TrackElemType::DiagDown25ToLeftBank 0x008AA6DC, // TrackElemType::DiagDown25ToRightBank 0x008AA60C, // TrackElemType::DiagLeftBank 0x008AA61C, // TrackElemType::DiagRightBank 0, 0, 0, 0, 0, 0, 0x008AA72C, // TrackElemType::LeftBankToLeftQuarterTurn3TilesUp25 0x008AA73C, // TrackElemType::RightBankToRightQuarterTurn3TilesUp25 0x008AA74C, // TrackElemType::LeftQuarterTurn3TilesDown25ToLeftBank 0x008AA75C, // TrackElemType::RightQuarterTurn3TilesDown25ToRightBank 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x008AA9EC, // TrackElemType::BlockBrakes 0x008AA96C, // TrackElemType::LeftBankedQuarterTurn3TileUp25 0x008AA97C, // TrackElemType::RightBankedQuarterTurn3TileUp25 0x008AA98C, // TrackElemType::LeftBankedQuarterTurn3TileDown25 0x008AA99C, // TrackElemType::RightBankedQuarterTurn3TileDown25 0x008AA8AC, // TrackElemType::LeftBankedQuarterTurn5TileUp25 0x008AA8BC, // TrackElemType::RightBankedQuarterTurn5TileUp25 0x008AA8CC, // TrackElemType::LeftBankedQuarterTurn5TileDown25 0x008AA8DC, // TrackElemType::RightBankedQuarterTurn5TileDown25 0x008AA82C, // TrackElemType::Up25ToLeftBankedUp25 0x008AA83C, // TrackElemType::Up25ToRightBankedUp25 0x008AA84C, // TrackElemType::LeftBankedUp25ToUp25 0x008AA85C, // TrackElemType::RightBankedUp25ToUp25 0x008AA86C, // TrackElemType::Down25ToLeftBankedDown25 0x008AA87C, // TrackElemType::Down25ToRightBankedDown25 0x008AA88C, // TrackElemType::LeftBankedDown25ToDown25 0x008AA89C, // TrackElemType::RightBankedDown25ToDown25 0x008AA8EC, // TrackElemType::LeftBankedFlatToLeftBankedUp25 0x008AA8FC, // TrackElemType::RightBankedFlatToRightBankedUp25 0x008AA92C, // TrackElemType::LeftBankedUp25ToLeftBankedFlat 0x008AA93C, // TrackElemType::RightBankedUp25ToRightBankedFlat 0x008AA94C, // TrackElemType::LeftBankedFlatToLeftBankedDown25 0x008AA95C, // TrackElemType::RightBankedFlatToRightBankedDown25 0x008AA90C, // TrackElemType::LeftBankedDown25ToLeftBankedFlat 0x008AA91C, // TrackElemType::RightBankedDown25ToRightBankedFlat 0x008AA76C, // TrackElemType::FlatToLeftBankedUp25 0x008AA77C, // TrackElemType::FlatToRightBankedUp25 0x008AA78C, // TrackElemType::LeftBankedUp25ToFlat 0x008AA79C, // TrackElemType::RightBankedUp25ToFlat 0x008AA7AC, // TrackElemType::FlatToLeftBankedDown25 0x008AA7BC, // TrackElemType::FlatToRightBankedDown25 0x008AA7CC, // TrackElemType::LeftBankedDown25ToFlat 0x008AA7DC, // TrackElemType::RightBankedDown25ToFlat 0x008AA9AC, // TrackElemType::LeftQuarterTurn1TileUp90 0x008AA9BC, // TrackElemType::RightQuarterTurn1TileUp90 0x008AA9CC, // TrackElemType::LeftQuarterTurn1TileDown90 0x008AA9DC, // TrackElemType::RightQuarterTurn1TileDown90 0, 0, 0, }; /** rct2: 0x0076D658 */ static constexpr const uint32_t _OldTwistTrackPaintFunctions[256] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x0076D858, // 123 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }; /** rct2: 0x0076E7B0 */ static constexpr const uint32_t _OldHauntedHouseTrackPaintFunctions[256] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x0076E9B0, // 123 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }; /** rct2: 0x0076F8D4 */ static constexpr const uint32_t _OldCircusTrackPaintFunctions[256] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x0076FAD4, // 123 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }; /** rct2: 0x00770924 */ static constexpr const uint32_t _OldGhostTrainTrackPaintFunctions[256] = { 0x00770BEC, // TrackElemType::Flat 0x00770C5C, // TrackElemType::EndStation 0x00770C6C, // TrackElemType::BeginStation 0x00770C7C, // TrackElemType::MiddleStation 0x00770BFC, // TrackElemType::Up25 0, 0x00770C0C, // TrackElemType::FlatToUp25 0, 0, 0x00770C1C, // TrackElemType::Up25ToFlat 0x00770C2C, // TrackElemType::Down25 0, 0x00770C3C, // TrackElemType::FlatToDown25 0, 0, 0x00770C4C, // TrackElemType::Down25ToFlat 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x00770C8C, // TrackElemType::LeftQuarterTurn3Tiles 0x00770C9C, // TrackElemType::RightQuarterTurn3Tiles 0, 0, 0, 0, 0, 0, 0x00770CAC, // TrackElemType::LeftQuarterTurn1Tile 0x00770CBC, // TrackElemType::RightQuarterTurn1Tile 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x00770CDC, // TrackElemType::Brakes 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x00770CCC, // TrackElemType::SpinningTunnel 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }; /** rct2: 0x008AB2A0 */ static constexpr const uint32_t _OldTwisterRollerCoasterTrackPaintFunctions[256] = { 0x008AB6A4, // TrackElemType::Flat 0x008AB8F4, // TrackElemType::EndStation 0x008AB904, // TrackElemType::BeginStation 0x008AB914, // TrackElemType::MiddleStation 0x008AB6B4, // TrackElemType::Up25 0x008AB6C4, // TrackElemType::Up60 0x008AB6D4, // TrackElemType::FlatToUp25 0x008AB6E4, // TrackElemType::Up25ToUp60 0x008AB6F4, // TrackElemType::Up60ToUp25 0x008AB704, // TrackElemType::Up25ToFlat 0x008AB714, // TrackElemType::Down25 0x008AB724, // TrackElemType::Down60 0x008AB734, // TrackElemType::FlatToDown25 0x008AB744, // TrackElemType::Down25ToDown60 0x008AB754, // TrackElemType::Down60ToDown25 0x008AB764, // TrackElemType::Down25ToFlat 0x008AB774, // TrackElemType::LeftQuarterTurn5Tiles 0x008AB784, // TrackElemType::RightQuarterTurn5Tiles 0x008AB794, // TrackElemType::FlatToLeftBank 0x008AB7A4, // TrackElemType::FlatToRightBank 0x008AB7B4, // TrackElemType::LeftBankToFlat 0x008AB7C4, // TrackElemType::RightBankToFlat 0x008AB7D4, // TrackElemType::BankedLeftQuarterTurn5Tiles 0x008AB7E4, // TrackElemType::BankedRightQuarterTurn5Tiles 0x008AB7F4, // TrackElemType::LeftBankToUp25 0x008AB804, // TrackElemType::RightBankToUp25 0x008AB814, // TrackElemType::Up25ToLeftBank 0x008AB824, // TrackElemType::Up25ToRightBank 0x008AB834, // TrackElemType::LeftBankToDown25 0x008AB844, // TrackElemType::RightBankToDown25 0x008AB854, // TrackElemType::Down25ToLeftBank 0x008AB864, // TrackElemType::Down25ToRightBank 0x008AB874, // TrackElemType::LeftBank 0x008AB884, // TrackElemType::RightBank 0x008AB894, // TrackElemType::LeftQuarterTurn5TilesUp25 0x008AB8A4, // TrackElemType::RightQuarterTurn5TilesUp25 0x008AB8B4, // TrackElemType::LeftQuarterTurn5TilesDown25 0x008AB8C4, // TrackElemType::RightQuarterTurn5TilesDown25 0x008AB8D4, // TrackElemType::SBendLeft 0x008AB8E4, // TrackElemType::SBendRight 0x008ABA84, // TrackElemType::LeftVerticalLoop 0x008ABA94, // TrackElemType::RightVerticalLoop 0x008AB924, // TrackElemType::LeftQuarterTurn3Tiles 0x008AB934, // TrackElemType::RightQuarterTurn3Tiles 0x008AB944, // TrackElemType::LeftBankedQuarterTurn3Tiles 0x008AB954, // TrackElemType::RightBankedQuarterTurn3Tiles 0x008AB964, // TrackElemType::LeftQuarterTurn3TilesUp25 0x008AB974, // TrackElemType::RightQuarterTurn3TilesUp25 0x008AB984, // TrackElemType::LeftQuarterTurn3TilesDown25 0x008AB994, // TrackElemType::RightQuarterTurn3TilesDown25 0, 0, 0, 0, 0, 0, 0x008ABCD4, // TrackElemType::HalfLoopUp 0x008ABCE4, // TrackElemType::HalfLoopDown 0x008ABD34, // TrackElemType::LeftCorkscrewUp 0x008ABD44, // TrackElemType::RightCorkscrewUp 0x008ABD54, // TrackElemType::LeftCorkscrewDown 0x008ABD64, // TrackElemType::RightCorkscrewDown 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x008AB9A4, // TrackElemType::LeftHalfBankedHelixUpSmall 0x008AB9B4, // TrackElemType::RightHalfBankedHelixUpSmall 0x008AB9C4, // TrackElemType::LeftHalfBankedHelixDownSmall 0x008AB9D4, // TrackElemType::RightHalfBankedHelixDownSmall 0x008AB9E4, // TrackElemType::LeftHalfBankedHelixUpLarge 0x008AB9F4, // TrackElemType::RightHalfBankedHelixUpLarge 0x008ABA04, // TrackElemType::LeftHalfBankedHelixDownLarge 0x008ABA14, // TrackElemType::RightHalfBankedHelixDownLarge 0x008ABA44, // TrackElemType::LeftQuarterTurn1TileUp60 0x008ABA24, // TrackElemType::RightQuarterTurn1TileUp60 0x008ABA34, // TrackElemType::LeftQuarterTurn1TileDown60 0x008ABA54, // TrackElemType::RightQuarterTurn1TileDown60 0x008ABA64, // TrackElemType::Brakes 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x008ABE04, // TrackElemType::Up25LeftBanked 0x008ABE14, // TrackElemType::Up25RightBanked 0, 0, 0x008ABA74, // TrackElemType::OnRidePhoto 0x008ABE24, // TrackElemType::Down25LeftBanked 0x008ABE34, // TrackElemType::Down25RightBanked 0, 0x008AC0F4, // TrackElemType::FlatToUp60LongBase 0x008AC104, // TrackElemType::Up60ToFlatLongBase 0, 0x008AC114, // TrackElemType::Down60ToFlatLongBase 0x008AC124, // TrackElemType::FlatToDown60LongBase 0, 0, 0, 0x008ABE44, // TrackElemType::Up90 0x008ABE54, // TrackElemType::Down90 0x008ABE64, // TrackElemType::Up60ToUp90 0x008ABE74, // TrackElemType::Down90ToDown60 0x008ABE84, // TrackElemType::Up90ToUp60 0x008ABE94, // TrackElemType::Down60ToDown90 0, 0x008ABAB4, // TrackElemType::LeftEighthToDiag 0x008ABAC4, // TrackElemType::RightEighthToDiag 0x008ABAD4, // TrackElemType::LeftEighthToOrthogonal 0x008ABAE4, // TrackElemType::RightEighthToOrthogonal 0x008ABAF4, // TrackElemType::LeftEighthBankToDiag 0x008ABB04, // TrackElemType::RightEighthBankToDiag 0x008ABB14, // TrackElemType::LeftEighthBankToOrthogonal 0x008ABB24, // TrackElemType::RightEighthBankToOrthogonal 0x008ABAA4, // TrackElemType::DiagFlat 0x008ABB54, // TrackElemType::DiagUp25 0x008ABBB4, // TrackElemType::DiagUp60 0x008ABB34, // TrackElemType::DiagFlatToUp25 0x008ABB94, // TrackElemType::DiagUp25ToUp60 0x008ABBA4, // TrackElemType::DiagUp60ToUp25 0x008ABB44, // TrackElemType::DiagUp25ToFlat 0x008ABB84, // TrackElemType::DiagDown25 0x008ABBE4, // TrackElemType::DiagDown60 0x008ABB64, // TrackElemType::DiagFlatToDown25 0x008ABBC4, // TrackElemType::DiagDown25ToDown60 0x008ABBD4, // TrackElemType::DiagDown60ToDown25 0x008ABB74, // TrackElemType::DiagDown25ToFlat 0, 0, 0, 0, 0x008ABC14, // TrackElemType::DiagFlatToLeftBank 0x008ABC24, // TrackElemType::DiagFlatToRightBank 0x008ABC34, // TrackElemType::DiagLeftBankToFlat 0x008ABC44, // TrackElemType::DiagRightBankToFlat 0x008ABC74, // TrackElemType::DiagLeftBankToUp25 0x008ABC84, // TrackElemType::DiagRightBankToUp25 0x008ABC54, // TrackElemType::DiagUp25ToLeftBank 0x008ABC64, // TrackElemType::DiagUp25ToRightBank 0x008ABC94, // TrackElemType::DiagLeftBankToDown25 0x008ABCA4, // TrackElemType::DiagRightBankToDown25 0x008ABCB4, // TrackElemType::DiagDown25ToLeftBank 0x008ABCC4, // TrackElemType::DiagDown25ToRightBank 0x008ABBF4, // TrackElemType::DiagLeftBank 0x008ABC04, // TrackElemType::DiagRightBank 0, 0, 0x008ABCF4, // TrackElemType::LeftBarrelRollUpToDown 0x008ABD04, // TrackElemType::RightBarrelRollUpToDown 0x008ABD14, // TrackElemType::LeftBarrelRollDownToUp 0x008ABD24, // TrackElemType::RightBarrelRollDownToUp 0x008ABD74, // TrackElemType::LeftBankToLeftQuarterTurn3TilesUp25 0x008ABD84, // TrackElemType::RightBankToRightQuarterTurn3TilesUp25 0x008ABD94, // TrackElemType::LeftQuarterTurn3TilesDown25ToLeftBank 0x008ABDA4, // TrackElemType::RightQuarterTurn3TilesDown25ToRightBank 0x008ABDB4, // TrackElemType::PoweredLift 0x008ABDC4, // TrackElemType::LeftLargeHalfLoopUp 0x008ABDD4, // TrackElemType::RightLargeHalfLoopUp 0x008ABDE4, // TrackElemType::RightLargeHalfLoopDown 0x008ABDF4, // TrackElemType::LeftLargeHalfLoopDown 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x008AC134, // TrackElemType::Up90ToInvertedFlatQuarterLoop 0x008AC144, // TrackElemType::InvertedFlatToDown90QuarterLoop 0, 0, 0, 0, 0, 0, 0, 0x008AC0E4, // TrackElemType::BlockBrakes 0x008ABEA4, // TrackElemType::LeftBankedQuarterTurn3TileUp25 0x008ABEB4, // TrackElemType::RightBankedQuarterTurn3TileUp25 0x008ABEC4, // TrackElemType::LeftBankedQuarterTurn3TileDown25 0x008ABED4, // TrackElemType::RightBankedQuarterTurn3TileDown25 0x008ABEE4, // TrackElemType::LeftBankedQuarterTurn5TileUp25 0x008ABEF4, // TrackElemType::RightBankedQuarterTurn5TileUp25 0x008ABF04, // TrackElemType::LeftBankedQuarterTurn5TileDown25 0x008ABF14, // TrackElemType::RightBankedQuarterTurn5TileDown25 0x008ABF24, // TrackElemType::Up25ToLeftBankedUp25 0x008ABF34, // TrackElemType::Up25ToRightBankedUp25 0x008ABF44, // TrackElemType::LeftBankedUp25ToUp25 0x008ABF54, // TrackElemType::RightBankedUp25ToUp25 0x008ABF64, // TrackElemType::Down25ToLeftBankedDown25 0x008ABF74, // TrackElemType::Down25ToRightBankedDown25 0x008ABF84, // TrackElemType::LeftBankedDown25ToDown25 0x008ABF94, // TrackElemType::RightBankedDown25ToDown25 0x008ABFA4, // TrackElemType::LeftBankedFlatToLeftBankedUp25 0x008ABFB4, // TrackElemType::RightBankedFlatToRightBankedUp25 0x008ABFE4, // TrackElemType::LeftBankedUp25ToLeftBankedFlat 0x008ABFF4, // TrackElemType::RightBankedUp25ToRightBankedFlat 0x008AC004, // TrackElemType::LeftBankedFlatToLeftBankedDown25 0x008AC014, // TrackElemType::RightBankedFlatToRightBankedDown25 0x008ABFC4, // TrackElemType::LeftBankedDown25ToLeftBankedFlat 0x008ABFD4, // TrackElemType::RightBankedDown25ToRightBankedFlat 0x008AC024, // TrackElemType::FlatToLeftBankedUp25 0x008AC034, // TrackElemType::FlatToRightBankedUp25 0x008AC044, // TrackElemType::LeftBankedUp25ToFlat 0x008AC054, // TrackElemType::RightBankedUp25ToFlat 0x008AC064, // TrackElemType::FlatToLeftBankedDown25 0x008AC074, // TrackElemType::FlatToRightBankedDown25 0x008AC084, // TrackElemType::LeftBankedDown25ToFlat 0x008AC094, // TrackElemType::RightBankedDown25ToFlat 0x008AC0A4, // TrackElemType::LeftQuarterTurn1TileUp90 0x008AC0B4, // TrackElemType::RightQuarterTurn1TileUp90 0x008AC0C4, // TrackElemType::LeftQuarterTurn1TileDown90 0x008AC0D4, // TrackElemType::RightQuarterTurn1TileDown90 0, 0, 0, }; /** rct2: 0x008AC164 */ static constexpr const uint32_t _OldWoodenRollerCoasterTrackPaintFunctions[256] = { 0x008AC568, // TrackElemType::Flat 0x008AC7B8, // TrackElemType::EndStation 0x008AC7C8, // TrackElemType::BeginStation 0x008AC7D8, // TrackElemType::MiddleStation 0x008AC578, // TrackElemType::Up25 0x008AC588, // TrackElemType::Up60 0x008AC598, // TrackElemType::FlatToUp25 0x008AC5A8, // TrackElemType::Up25ToUp60 0x008AC5B8, // TrackElemType::Up60ToUp25 0x008AC5C8, // TrackElemType::Up25ToFlat 0x008AC5D8, // TrackElemType::Down25 0x008AC5E8, // TrackElemType::Down60 0x008AC5F8, // TrackElemType::FlatToDown25 0x008AC608, // TrackElemType::Down25ToDown60 0x008AC618, // TrackElemType::Down60ToDown25 0x008AC628, // TrackElemType::Down25ToFlat 0x008AC638, // TrackElemType::LeftQuarterTurn5Tiles 0x008AC648, // TrackElemType::RightQuarterTurn5Tiles 0x008AC658, // TrackElemType::FlatToLeftBank 0x008AC668, // TrackElemType::FlatToRightBank 0x008AC678, // TrackElemType::LeftBankToFlat 0x008AC688, // TrackElemType::RightBankToFlat 0x008AC698, // TrackElemType::BankedLeftQuarterTurn5Tiles 0x008AC6A8, // TrackElemType::BankedRightQuarterTurn5Tiles 0x008AC6B8, // TrackElemType::LeftBankToUp25 0x008AC6C8, // TrackElemType::RightBankToUp25 0x008AC6D8, // TrackElemType::Up25ToLeftBank 0x008AC6E8, // TrackElemType::Up25ToRightBank 0x008AC6F8, // TrackElemType::LeftBankToDown25 0x008AC708, // TrackElemType::RightBankToDown25 0x008AC718, // TrackElemType::Down25ToLeftBank 0x008AC728, // TrackElemType::Down25ToRightBank 0x008AC738, // TrackElemType::LeftBank 0x008AC748, // TrackElemType::RightBank 0x008AC758, // TrackElemType::LeftQuarterTurn5TilesUp25 0x008AC768, // TrackElemType::RightQuarterTurn5TilesUp25 0x008AC778, // TrackElemType::LeftQuarterTurn5TilesDown25 0x008AC788, // TrackElemType::RightQuarterTurn5TilesDown25 0x008AC798, // TrackElemType::SBendLeft 0x008AC7A8, // TrackElemType::SBendRight 0x008ACE18, // TrackElemType::LeftVerticalLoop 0x008ACE28, // TrackElemType::RightVerticalLoop 0x008AC7E8, // TrackElemType::LeftQuarterTurn3Tiles 0x008AC7F8, // TrackElemType::RightQuarterTurn3Tiles 0x008AC808, // TrackElemType::LeftBankedQuarterTurn3Tiles 0x008AC818, // TrackElemType::RightBankedQuarterTurn3Tiles 0x008AC828, // TrackElemType::LeftQuarterTurn3TilesUp25 0x008AC838, // TrackElemType::RightQuarterTurn3TilesUp25 0x008AC848, // TrackElemType::LeftQuarterTurn3TilesDown25 0x008AC858, // TrackElemType::RightQuarterTurn3TilesDown25 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x008ACAB8, // TrackElemType::LeftHalfBankedHelixUpSmall 0x008ACAC8, // TrackElemType::RightHalfBankedHelixUpSmall 0x008ACAD8, // TrackElemType::LeftHalfBankedHelixDownSmall 0x008ACAE8, // TrackElemType::RightHalfBankedHelixDownSmall 0x008ACAF8, // TrackElemType::LeftHalfBankedHelixUpLarge 0x008ACB08, // TrackElemType::RightHalfBankedHelixUpLarge 0x008ACB18, // TrackElemType::LeftHalfBankedHelixDownLarge 0x008ACB28, // TrackElemType::RightHalfBankedHelixDownLarge 0x008ACB98, // TrackElemType::LeftQuarterTurn1TileUp60 0x008ACB78, // TrackElemType::RightQuarterTurn1TileUp60 0x008ACB88, // TrackElemType::LeftQuarterTurn1TileDown60 0x008ACBA8, // TrackElemType::RightQuarterTurn1TileDown60 0x008AC868, // TrackElemType::Brakes 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x008ACC78, // TrackElemType::Up25LeftBanked 0x008ACC88, // TrackElemType::Up25RightBanked 0, 0, 0x008AC878, // TrackElemType::OnRidePhoto 0x008ACC98, // TrackElemType::Down25LeftBanked 0x008ACCA8, // TrackElemType::Down25RightBanked 0x008ACE08, // TrackElemType::Watersplash 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x008AC958, // TrackElemType::LeftEighthToDiag 0x008AC968, // TrackElemType::RightEighthToDiag 0x008AC978, // TrackElemType::LeftEighthToOrthogonal 0x008AC988, // TrackElemType::RightEighthToOrthogonal 0x008AC998, // TrackElemType::LeftEighthBankToDiag 0x008AC9A8, // TrackElemType::RightEighthBankToDiag 0x008AC9B8, // TrackElemType::LeftEighthBankToOrthogonal 0x008AC9C8, // TrackElemType::RightEighthBankToOrthogonal 0x008AC888, // TrackElemType::DiagFlat 0x008AC8B8, // TrackElemType::DiagUp25 0x008AC8E8, // TrackElemType::DiagUp60 0x008AC898, // TrackElemType::DiagFlatToUp25 0x008AC8C8, // TrackElemType::DiagUp25ToUp60 0x008AC8D8, // TrackElemType::DiagUp60ToUp25 0x008AC8A8, // TrackElemType::DiagUp25ToFlat 0x008AC918, // TrackElemType::DiagDown25 0x008AC948, // TrackElemType::DiagDown60 0x008AC8F8, // TrackElemType::DiagFlatToDown25 0x008AC928, // TrackElemType::DiagDown25ToDown60 0x008AC938, // TrackElemType::DiagDown60ToDown25 0x008AC908, // TrackElemType::DiagDown25ToFlat 0, 0, 0, 0, 0x008ACA18, // TrackElemType::DiagFlatToLeftBank 0x008AC9F8, // TrackElemType::DiagFlatToRightBank 0x008ACA08, // TrackElemType::DiagLeftBankToFlat 0x008ACA28, // TrackElemType::DiagRightBankToFlat 0x008ACA58, // TrackElemType::DiagLeftBankToUp25 0x008ACA68, // TrackElemType::DiagRightBankToUp25 0x008ACA38, // TrackElemType::DiagUp25ToLeftBank 0x008ACA48, // TrackElemType::DiagUp25ToRightBank 0x008ACA78, // TrackElemType::DiagLeftBankToDown25 0x008ACA88, // TrackElemType::DiagRightBankToDown25 0x008ACA98, // TrackElemType::DiagDown25ToLeftBank 0x008ACAA8, // TrackElemType::DiagDown25ToRightBank 0x008AC9D8, // TrackElemType::DiagLeftBank 0x008AC9E8, // TrackElemType::DiagRightBank 0, 0, 0, 0, 0, 0, 0x008ACB38, // TrackElemType::LeftBankToLeftQuarterTurn3TilesUp25 0x008ACB48, // TrackElemType::RightBankToRightQuarterTurn3TilesUp25 0x008ACB58, // TrackElemType::LeftQuarterTurn3TilesDown25ToLeftBank 0x008ACB68, // TrackElemType::RightQuarterTurn3TilesDown25ToRightBank 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x008ACDF8, // TrackElemType::BlockBrakes 0x008ACCB8, // TrackElemType::LeftBankedQuarterTurn3TileUp25 0x008ACCC8, // TrackElemType::RightBankedQuarterTurn3TileUp25 0x008ACCD8, // TrackElemType::LeftBankedQuarterTurn3TileDown25 0x008ACCE8, // TrackElemType::RightBankedQuarterTurn3TileDown25 0x008ACC38, // TrackElemType::LeftBankedQuarterTurn5TileUp25 0x008ACC48, // TrackElemType::RightBankedQuarterTurn5TileUp25 0x008ACC58, // TrackElemType::LeftBankedQuarterTurn5TileDown25 0x008ACC68, // TrackElemType::RightBankedQuarterTurn5TileDown25 0x008ACCF8, // TrackElemType::Up25ToLeftBankedUp25 0x008ACD08, // TrackElemType::Up25ToRightBankedUp25 0x008ACD18, // TrackElemType::LeftBankedUp25ToUp25 0x008ACD28, // TrackElemType::RightBankedUp25ToUp25 0x008ACD38, // TrackElemType::Down25ToLeftBankedDown25 0x008ACD48, // TrackElemType::Down25ToRightBankedDown25 0x008ACD58, // TrackElemType::LeftBankedDown25ToDown25 0x008ACD68, // TrackElemType::RightBankedDown25ToDown25 0x008ACD78, // TrackElemType::LeftBankedFlatToLeftBankedUp25 0x008ACD88, // TrackElemType::RightBankedFlatToRightBankedUp25 0x008ACD98, // TrackElemType::LeftBankedUp25ToLeftBankedFlat 0x008ACDA8, // TrackElemType::RightBankedUp25ToRightBankedFlat 0x008ACDB8, // TrackElemType::LeftBankedFlatToLeftBankedDown25 0x008ACDC8, // TrackElemType::RightBankedFlatToRightBankedDown25 0x008ACDD8, // TrackElemType::LeftBankedDown25ToLeftBankedFlat 0x008ACDE8, // TrackElemType::RightBankedDown25ToRightBankedFlat 0x008ACBB8, // TrackElemType::FlatToLeftBankedUp25 0x008ACBC8, // TrackElemType::FlatToRightBankedUp25 0x008ACBD8, // TrackElemType::LeftBankedUp25ToFlat 0x008ACBE8, // TrackElemType::RightBankedUp25ToFlat 0x008ACBF8, // TrackElemType::FlatToLeftBankedDown25 0x008ACC08, // TrackElemType::FlatToRightBankedDown25 0x008ACC18, // TrackElemType::LeftBankedDown25ToFlat 0x008ACC28, // TrackElemType::RightBankedDown25ToFlat 0, 0, 0, 0, 0, 0, 0, }; /** rct2: 0x00778124 */ static constexpr const uint32_t _OldSideFrictionRollerCoasterTrackPaintFunctions[256] = { 0x0077839C, // TrackElemType::Flat 0x007784AC, // TrackElemType::EndStation 0x007784BC, // TrackElemType::BeginStation 0x007784CC, // TrackElemType::MiddleStation 0x007783AC, // TrackElemType::Up25 0, 0x007783CC, // TrackElemType::FlatToUp25 0, 0, 0x007783FC, // TrackElemType::Up25ToFlat 0x0077840C, // TrackElemType::Down25 0, 0x0077842C, // TrackElemType::FlatToDown25 0, 0, 0x0077845C, // TrackElemType::Down25ToFlat 0x0077846C, // TrackElemType::LeftQuarterTurn5Tiles 0x0077847C, // TrackElemType::RightQuarterTurn5Tiles 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x0077848C, // TrackElemType::SBendLeft 0x0077849C, // TrackElemType::SBendRight 0, 0, 0x007784DC, // TrackElemType::LeftQuarterTurn3Tiles 0x007784EC, // TrackElemType::RightQuarterTurn3Tiles 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x007784FC, // TrackElemType::Brakes 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x007785DC, // TrackElemType::LeftEighthToDiag 0x007785EC, // TrackElemType::RightEighthToDiag 0x007785FC, // TrackElemType::LeftEighthToOrthogonal 0x0077860C, // TrackElemType::RightEighthToOrthogonal 0, 0, 0, 0, 0x0077850C, // TrackElemType::DiagFlat 0x0077853C, // TrackElemType::DiagUp25 0, 0x0077851C, // TrackElemType::DiagFlatToUp25 0, 0, 0x0077852C, // TrackElemType::DiagUp25ToFlat 0x0077859C, // TrackElemType::DiagDown25 0, 0x0077857C, // TrackElemType::DiagFlatToDown25 0, 0, 0x0077858C, // TrackElemType::DiagDown25ToFlat 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }; /** rct2: 0x0078AE80 */ static constexpr const uint32_t _OldWildMouseTrackPaintFunctions[256] = { 0x0078B1E4, // TrackElemType::Flat 0x0078B2B4, // TrackElemType::EndStation 0x0078B2C4, // TrackElemType::BeginStation 0x0078B2D4, // TrackElemType::MiddleStation 0x0078B1F4, // TrackElemType::Up25 0x0078B204, // TrackElemType::Up60 0x0078B214, // TrackElemType::FlatToUp25 0x0078B224, // TrackElemType::Up25ToUp60 0x0078B234, // TrackElemType::Up60ToUp25 0x0078B244, // TrackElemType::Up25ToFlat 0x0078B254, // TrackElemType::Down25 0x0078B264, // TrackElemType::Down60 0x0078B274, // TrackElemType::FlatToDown25 0x0078B284, // TrackElemType::Down25ToDown60 0x0078B294, // TrackElemType::Down60ToDown25 0x0078B2A4, // TrackElemType::Down25ToFlat 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x0078B2E4, // TrackElemType::LeftQuarterTurn3Tiles 0x0078B2F4, // TrackElemType::RightQuarterTurn3Tiles 0, 0, 0x0078B304, // TrackElemType::LeftQuarterTurn3TilesUp25 0x0078B314, // TrackElemType::RightQuarterTurn3TilesUp25 0x0078B324, // TrackElemType::LeftQuarterTurn3TilesDown25 0x0078B334, // TrackElemType::RightQuarterTurn3TilesDown25 0x0078B394, // TrackElemType::LeftQuarterTurn1Tile 0x0078B3A4, // TrackElemType::RightQuarterTurn1Tile 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x0078B354, // TrackElemType::FlatToUp60 0x0078B364, // TrackElemType::Up60ToFlat 0x0078B374, // TrackElemType::FlatToDown60 0x0078B384, // TrackElemType::Down60ToFlat 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x0078B344, // TrackElemType::Brakes 0x0078B3C4, // TrackElemType::RotationControlToggle 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x0078B3B4, // TrackElemType::BlockBrakes 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }; /** rct2: 0x00792978 */ static constexpr const uint32_t _OldMultiDimensionRollerCoasterTrackPaintFunctions[256] = { 0x00792D88, // TrackElemType::Flat 0x00792F98, // TrackElemType::EndStation 0x00792FA8, // TrackElemType::BeginStation 0x00792FB8, // TrackElemType::MiddleStation 0x00792D98, // TrackElemType::Up25 0x00792DA8, // TrackElemType::Up60 0x00792DB8, // TrackElemType::FlatToUp25 0x00792DC8, // TrackElemType::Up25ToUp60 0x00792DD8, // TrackElemType::Up60ToUp25 0x00792DE8, // TrackElemType::Up25ToFlat 0x00792DF8, // TrackElemType::Down25 0x00792E08, // TrackElemType::Down60 0x00792E18, // TrackElemType::FlatToDown25 0x00792E28, // TrackElemType::Down25ToDown60 0x00792E38, // TrackElemType::Down60ToDown25 0x00792E48, // TrackElemType::Down25ToFlat 0x00792E58, // TrackElemType::LeftQuarterTurn5Tiles 0x00792E68, // TrackElemType::RightQuarterTurn5Tiles 0x00792E78, // TrackElemType::FlatToLeftBank 0x00792E88, // TrackElemType::FlatToRightBank 0x00792E98, // TrackElemType::LeftBankToFlat 0x00792EA8, // TrackElemType::RightBankToFlat 0x00792EB8, // TrackElemType::BankedLeftQuarterTurn5Tiles 0x00792EC8, // TrackElemType::BankedRightQuarterTurn5Tiles 0x00792ED8, // TrackElemType::LeftBankToUp25 0x00792EE8, // TrackElemType::RightBankToUp25 0x00792EF8, // TrackElemType::Up25ToLeftBank 0x00792F08, // TrackElemType::Up25ToRightBank 0x00792F18, // TrackElemType::LeftBankToDown25 0x00792F28, // TrackElemType::RightBankToDown25 0x00792F38, // TrackElemType::Down25ToLeftBank 0x00792F48, // TrackElemType::Down25ToRightBank 0x00792F58, // TrackElemType::LeftBank 0x00792F68, // TrackElemType::RightBank 0, 0, 0, 0, 0x00792F78, // TrackElemType::SBendLeft 0x00792F88, // TrackElemType::SBendRight 0, 0, 0x00792FC8, // TrackElemType::LeftQuarterTurn3Tiles 0x00792FD8, // TrackElemType::RightQuarterTurn3Tiles 0x00792FE8, // TrackElemType::LeftBankedQuarterTurn3Tiles 0x00792FF8, // TrackElemType::RightBankedQuarterTurn3Tiles 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x00793008, // TrackElemType::LeftHalfBankedHelixUpSmall 0x00793018, // TrackElemType::RightHalfBankedHelixUpSmall 0x00793028, // TrackElemType::LeftHalfBankedHelixDownSmall 0x00793038, // TrackElemType::RightHalfBankedHelixDownSmall 0x00793048, // TrackElemType::LeftHalfBankedHelixUpLarge 0x00793058, // TrackElemType::RightHalfBankedHelixUpLarge 0x00793068, // TrackElemType::LeftHalfBankedHelixDownLarge 0x00793078, // TrackElemType::RightHalfBankedHelixDownLarge 0, 0, 0, 0, 0x00793088, // TrackElemType::Brakes 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x00793098, // TrackElemType::OnRidePhoto 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x00793328, // TrackElemType::Up90 0x00793338, // TrackElemType::Down90 0x00793348, // TrackElemType::Up60ToUp90 0x00793358, // TrackElemType::Down90ToDown60 0x00793368, // TrackElemType::Up90ToUp60 0x00793378, // TrackElemType::Down60ToDown90 0, 0x007930B8, // TrackElemType::LeftEighthToDiag 0x007930C8, // TrackElemType::RightEighthToDiag 0x007930D8, // TrackElemType::LeftEighthToOrthogonal 0x007930E8, // TrackElemType::RightEighthToOrthogonal 0x007930F8, // TrackElemType::LeftEighthBankToDiag 0x00793108, // TrackElemType::RightEighthBankToDiag 0x00793118, // TrackElemType::LeftEighthBankToOrthogonal 0x00793128, // TrackElemType::RightEighthBankToOrthogonal 0x007930A8, // TrackElemType::DiagFlat 0x00793158, // TrackElemType::DiagUp25 0x007931B8, // TrackElemType::DiagUp60 0x00793138, // TrackElemType::DiagFlatToUp25 0x00793198, // TrackElemType::DiagUp25ToUp60 0x007931A8, // TrackElemType::DiagUp60ToUp25 0x00793148, // TrackElemType::DiagUp25ToFlat 0x00793188, // TrackElemType::DiagDown25 0x007931E8, // TrackElemType::DiagDown60 0x00793168, // TrackElemType::DiagFlatToDown25 0x007931C8, // TrackElemType::DiagDown25ToDown60 0x007931D8, // TrackElemType::DiagDown60ToDown25 0x00793178, // TrackElemType::DiagDown25ToFlat 0, 0, 0, 0, 0x00793218, // TrackElemType::DiagFlatToLeftBank 0x00793228, // TrackElemType::DiagFlatToRightBank 0x00793238, // TrackElemType::DiagLeftBankToFlat 0x00793248, // TrackElemType::DiagRightBankToFlat 0x00793278, // TrackElemType::DiagLeftBankToUp25 0x00793288, // TrackElemType::DiagRightBankToUp25 0x00793258, // TrackElemType::DiagUp25ToLeftBank 0x00793268, // TrackElemType::DiagUp25ToRightBank 0x00793298, // TrackElemType::DiagLeftBankToDown25 0x007932A8, // TrackElemType::DiagRightBankToDown25 0x007932B8, // TrackElemType::DiagDown25ToLeftBank 0x007932C8, // TrackElemType::DiagDown25ToRightBank 0x007931F8, // TrackElemType::DiagLeftBank 0x00793208, // TrackElemType::DiagRightBank 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x007932D8, // TrackElemType::LeftFlyerTwistUp 0x007932E8, // TrackElemType::RightFlyerTwistUp 0x007932F8, // TrackElemType::LeftFlyerTwistDown 0x00793308, // TrackElemType::RightFlyerTwistDown 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x00793398, // TrackElemType::MultiDimInvertedFlatToDown90QuarterLoop 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x00793318, // TrackElemType::BlockBrakes 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x00793388, // TrackElemType::MultiDimUp90ToInvertedFlatQuarterLoop 0x00793398, // TrackElemType::MultiDimFlatToDown90QuarterLoop 0x00793388, // (null) }; /** rct2: 0x007C6C00 */ static constexpr const uint32_t _OldFlyingRollerCoasterTrackPaintFunctions[256] = { 0x007C6FF4, // TrackElemType::Flat 0x007C7244, // TrackElemType::EndStation 0x007C7254, // TrackElemType::BeginStation 0x007C7264, // TrackElemType::MiddleStation 0x007C7004, // TrackElemType::Up25 0x007C7014, // TrackElemType::Up60 0x007C7024, // TrackElemType::FlatToUp25 0x007C7034, // TrackElemType::Up25ToUp60 0x007C7044, // TrackElemType::Up60ToUp25 0x007C7054, // TrackElemType::Up25ToFlat 0x007C7064, // TrackElemType::Down25 0x007C7074, // TrackElemType::Down60 0x007C7084, // TrackElemType::FlatToDown25 0x007C7094, // TrackElemType::Down25ToDown60 0x007C70A4, // TrackElemType::Down60ToDown25 0x007C70B4, // TrackElemType::Down25ToFlat 0x007C70C4, // TrackElemType::LeftQuarterTurn5Tiles 0x007C70D4, // TrackElemType::RightQuarterTurn5Tiles 0x007C70E4, // TrackElemType::FlatToLeftBank 0x007C70F4, // TrackElemType::FlatToRightBank 0x007C7104, // TrackElemType::LeftBankToFlat 0x007C7114, // TrackElemType::RightBankToFlat 0x007C7124, // TrackElemType::BankedLeftQuarterTurn5Tiles 0x007C7134, // TrackElemType::BankedRightQuarterTurn5Tiles 0x007C7144, // TrackElemType::LeftBankToUp25 0x007C7154, // TrackElemType::RightBankToUp25 0x007C7164, // TrackElemType::Up25ToLeftBank 0x007C7174, // TrackElemType::Up25ToRightBank 0x007C7184, // TrackElemType::LeftBankToDown25 0x007C7194, // TrackElemType::RightBankToDown25 0x007C71A4, // TrackElemType::Down25ToLeftBank 0x007C71B4, // TrackElemType::Down25ToRightBank 0x007C71C4, // TrackElemType::LeftBank 0x007C71D4, // TrackElemType::RightBank 0x007C71E4, // TrackElemType::LeftQuarterTurn5TilesUp25 0x007C71F4, // TrackElemType::RightQuarterTurn5TilesUp25 0x007C7204, // TrackElemType::LeftQuarterTurn5TilesDown25 0x007C7214, // TrackElemType::RightQuarterTurn5TilesDown25 0x007C7224, // TrackElemType::SBendLeft 0x007C7234, // TrackElemType::SBendRight 0, 0, 0x007C7274, // TrackElemType::LeftQuarterTurn3Tiles 0x007C7284, // TrackElemType::RightQuarterTurn3Tiles 0x007C7294, // TrackElemType::LeftBankedQuarterTurn3Tiles 0x007C72A4, // TrackElemType::RightBankedQuarterTurn3Tiles 0x007C72B4, // TrackElemType::LeftQuarterTurn3TilesUp25 0x007C72C4, // TrackElemType::RightQuarterTurn3TilesUp25 0x007C72D4, // TrackElemType::LeftQuarterTurn3TilesDown25 0x007C72E4, // TrackElemType::RightQuarterTurn3TilesDown25 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x007C7314, // TrackElemType::LeftHalfBankedHelixUpSmall 0x007C7324, // TrackElemType::RightHalfBankedHelixUpSmall 0x007C7334, // TrackElemType::LeftHalfBankedHelixDownSmall 0x007C7344, // TrackElemType::RightHalfBankedHelixDownSmall 0x007C7354, // TrackElemType::LeftHalfBankedHelixUpLarge 0x007C7364, // TrackElemType::RightHalfBankedHelixUpLarge 0x007C7374, // TrackElemType::LeftHalfBankedHelixDownLarge 0x007C7384, // TrackElemType::RightHalfBankedHelixDownLarge 0x007C73B4, // TrackElemType::LeftQuarterTurn1TileUp60 0x007C7394, // TrackElemType::RightQuarterTurn1TileUp60 0x007C73A4, // TrackElemType::LeftQuarterTurn1TileDown60 0x007C73C4, // TrackElemType::RightQuarterTurn1TileDown60 0x007C73D4, // TrackElemType::Brakes 0, 0, 0x007C7674, // TrackElemType::LeftQuarterBankedHelixLargeUp 0x007C7684, // TrackElemType::RightQuarterBankedHelixLargeUp 0x007C7694, // TrackElemType::LeftQuarterBankedHelixLargeDown 0x007C76A4, // TrackElemType::RightQuarterBankedHelixLargeDown 0, 0, 0, 0, 0x007C78B4, // TrackElemType::Up25LeftBanked 0x007C78C4, // TrackElemType::Up25RightBanked 0, 0, 0x007C73E4, // TrackElemType::OnRidePhoto 0x007C78D4, // TrackElemType::Down25LeftBanked 0x007C78E4, // TrackElemType::Down25RightBanked 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x007C7404, // TrackElemType::LeftEighthToDiag 0x007C7414, // TrackElemType::RightEighthToDiag 0x007C7424, // TrackElemType::LeftEighthToOrthogonal 0x007C7434, // TrackElemType::RightEighthToOrthogonal 0x007C7444, // TrackElemType::LeftEighthBankToDiag 0x007C7454, // TrackElemType::RightEighthBankToDiag 0x007C7464, // TrackElemType::LeftEighthBankToOrthogonal 0x007C7474, // TrackElemType::RightEighthBankToOrthogonal 0x007C73F4, // TrackElemType::DiagFlat 0x007C74A4, // TrackElemType::DiagUp25 0x007C7504, // TrackElemType::DiagUp60 0x007C7484, // TrackElemType::DiagFlatToUp25 0x007C74E4, // TrackElemType::DiagUp25ToUp60 0x007C74F4, // TrackElemType::DiagUp60ToUp25 0x007C7494, // TrackElemType::DiagUp25ToFlat 0x007C74D4, // TrackElemType::DiagDown25 0x007C7534, // TrackElemType::DiagDown60 0x007C74B4, // TrackElemType::DiagFlatToDown25 0x007C7514, // TrackElemType::DiagDown25ToDown60 0x007C7524, // TrackElemType::DiagDown60ToDown25 0x007C74C4, // TrackElemType::DiagDown25ToFlat 0, 0, 0, 0, 0x007C7564, // TrackElemType::DiagFlatToLeftBank 0x007C7574, // TrackElemType::DiagFlatToRightBank 0x007C7584, // TrackElemType::DiagLeftBankToFlat 0x007C7594, // TrackElemType::DiagRightBankToFlat 0x007C75C4, // TrackElemType::DiagLeftBankToUp25 0x007C75D4, // TrackElemType::DiagRightBankToUp25 0x007C75A4, // TrackElemType::DiagUp25ToLeftBank 0x007C75B4, // TrackElemType::DiagUp25ToRightBank 0x007C75E4, // TrackElemType::DiagLeftBankToDown25 0x007C75F4, // TrackElemType::DiagRightBankToDown25 0x007C7604, // TrackElemType::DiagDown25ToLeftBank 0x007C7614, // TrackElemType::DiagDown25ToRightBank 0x007C7544, // TrackElemType::DiagLeftBank 0x007C7554, // TrackElemType::DiagRightBank 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x007C7624, // TrackElemType::LeftFlyerTwistUp 0x007C7634, // TrackElemType::RightFlyerTwistUp 0x007C7644, // TrackElemType::LeftFlyerTwistDown 0x007C7654, // TrackElemType::RightFlyerTwistDown 0x007C72F4, // TrackElemType::FlyerHalfLoopUp 0x007C7304, // TrackElemType::FlyerHalfLoopDown 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x007C7664, // TrackElemType::BlockBrakes 0x007C76B4, // TrackElemType::LeftBankedQuarterTurn3TileUp25 0x007C76C4, // TrackElemType::RightBankedQuarterTurn3TileUp25 0x007C76D4, // TrackElemType::LeftBankedQuarterTurn3TileDown25 0x007C76E4, // TrackElemType::RightBankedQuarterTurn3TileDown25 0x007C76F4, // TrackElemType::LeftBankedQuarterTurn5TileUp25 0x007C7704, // TrackElemType::RightBankedQuarterTurn5TileUp25 0x007C7714, // TrackElemType::LeftBankedQuarterTurn5TileDown25 0x007C7724, // TrackElemType::RightBankedQuarterTurn5TileDown25 0x007C7734, // TrackElemType::Up25ToLeftBankedUp25 0x007C7744, // TrackElemType::Up25ToRightBankedUp25 0x007C7754, // TrackElemType::LeftBankedUp25ToUp25 0x007C7764, // TrackElemType::RightBankedUp25ToUp25 0x007C7774, // TrackElemType::Down25ToLeftBankedDown25 0x007C7784, // TrackElemType::Down25ToRightBankedDown25 0x007C7794, // TrackElemType::LeftBankedDown25ToDown25 0x007C77A4, // TrackElemType::RightBankedDown25ToDown25 0x007C77B4, // TrackElemType::LeftBankedFlatToLeftBankedUp25 0x007C77C4, // TrackElemType::RightBankedFlatToRightBankedUp25 0x007C77F4, // TrackElemType::LeftBankedUp25ToLeftBankedFlat 0x007C7804, // TrackElemType::RightBankedUp25ToRightBankedFlat 0x007C7814, // TrackElemType::LeftBankedFlatToLeftBankedDown25 0x007C7824, // TrackElemType::RightBankedFlatToRightBankedDown25 0x007C77D4, // TrackElemType::LeftBankedDown25ToLeftBankedFlat 0x007C77E4, // TrackElemType::RightBankedDown25ToRightBankedFlat 0x007C7834, // TrackElemType::FlatToLeftBankedUp25 0x007C7844, // TrackElemType::FlatToRightBankedUp25 0x007C7854, // TrackElemType::LeftBankedUp25ToFlat 0x007C7864, // TrackElemType::RightBankedUp25ToFlat 0x007C7874, // TrackElemType::FlatToLeftBankedDown25 0x007C7884, // TrackElemType::FlatToRightBankedDown25 0x007C7894, // TrackElemType::LeftBankedDown25ToFlat 0x007C78A4, // TrackElemType::RightBankedDown25ToFlat 0, 0, 0, 0, 0, 0, 0, }; /** rct2: 0x00811184 */ static constexpr const uint32_t _OldVirginiaReelTrackPaintFunctions[256] = { 0x00811264, // TrackElemType::Flat 0x008112D4, // TrackElemType::EndStation 0x008112E4, // TrackElemType::BeginStation 0x008112F4, // TrackElemType::MiddleStation 0x00811274, // TrackElemType::Up25 0, 0x00811284, // TrackElemType::FlatToUp25 0, 0, 0x00811294, // TrackElemType::Up25ToFlat 0x008112A4, // TrackElemType::Down25 0, 0x008112B4, // TrackElemType::FlatToDown25 0, 0, 0x008112C4, // TrackElemType::Down25ToFlat 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x00811304, // TrackElemType::LeftQuarterTurn3Tiles 0x00811314, // TrackElemType::RightQuarterTurn3Tiles 0, 0, 0, 0, 0, 0, 0x00811324, // TrackElemType::LeftQuarterTurn1Tile 0x00811334, // TrackElemType::RightQuarterTurn1Tile 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }; /** rct2: 0x008164AC */ static constexpr const uint32_t _OldSplashBoatsTrackPaintFunctions[256] = { 0x00816584, // TrackElemType::Flat 0x00816614, // TrackElemType::EndStation 0x00816624, // TrackElemType::BeginStation 0x00816634, // TrackElemType::MiddleStation 0x00816594, // TrackElemType::Up25 0x008166A4, // TrackElemType::Up60 0x008165A4, // TrackElemType::FlatToUp25 0x00816664, // TrackElemType::Up25ToUp60 0x00816674, // TrackElemType::Up60ToUp25 0x008165B4, // TrackElemType::Up25ToFlat 0x008165C4, // TrackElemType::Down25 0x008166B4, // TrackElemType::Down60 0x008165D4, // TrackElemType::FlatToDown25 0x00816684, // TrackElemType::Down25ToDown60 0x00816694, // TrackElemType::Down60ToDown25 0x008165E4, // TrackElemType::Down25ToFlat 0x00816644, // TrackElemType::LeftQuarterTurn5Tiles 0x00816654, // TrackElemType::RightQuarterTurn5Tiles 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x008165F4, // TrackElemType::SBendLeft 0x00816604, // TrackElemType::SBendRight 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }; /** rct2: 0x0081F268 */ static constexpr const uint32_t _OldMiniHelicoptersTrackPaintFunctions[256] = { 0x0081F348, // TrackElemType::Flat 0x0081F3B8, // TrackElemType::EndStation 0x0081F3C8, // TrackElemType::BeginStation 0x0081F3D8, // TrackElemType::MiddleStation 0x0081F358, // TrackElemType::Up25 0, 0x0081F368, // TrackElemType::FlatToUp25 0, 0, 0x0081F378, // TrackElemType::Up25ToFlat 0x0081F388, // TrackElemType::Down25 0, 0x0081F398, // TrackElemType::FlatToDown25 0, 0, 0x0081F3A8, // TrackElemType::Down25ToFlat 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x0081F3E8, // TrackElemType::LeftQuarterTurn3Tiles 0x0081F3F8, // TrackElemType::RightQuarterTurn3Tiles 0, 0, 0, 0, 0, 0, 0x0081F408, // TrackElemType::LeftQuarterTurn1Tile 0x0081F418, // TrackElemType::RightQuarterTurn1Tile 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }; /** rct2: 0x008245A8 */ static constexpr const uint32_t _OldLayDownRollerCoasterTrackPaintFunctions[256] = { 0x0082491C, // TrackElemType::Flat 0x00824B8C, // TrackElemType::EndStation 0x00824B9C, // TrackElemType::BeginStation 0x00824BAC, // TrackElemType::MiddleStation 0x0082492C, // TrackElemType::Up25 0x0082493C, // TrackElemType::Up60 0x0082494C, // TrackElemType::FlatToUp25 0x0082495C, // TrackElemType::Up25ToUp60 0x0082496C, // TrackElemType::Up60ToUp25 0x0082497C, // TrackElemType::Up25ToFlat 0x0082498C, // TrackElemType::Down25 0x0082499C, // TrackElemType::Down60 0x008249AC, // TrackElemType::FlatToDown25 0x008249BC, // TrackElemType::Down25ToDown60 0x008249CC, // TrackElemType::Down60ToDown25 0x008249DC, // TrackElemType::Down25ToFlat 0x008249EC, // TrackElemType::LeftQuarterTurn5Tiles 0x008249FC, // TrackElemType::RightQuarterTurn5Tiles 0x00824A0C, // TrackElemType::FlatToLeftBank 0x00824A1C, // TrackElemType::FlatToRightBank 0x00824A2C, // TrackElemType::LeftBankToFlat 0x00824A3C, // TrackElemType::RightBankToFlat 0x00824A4C, // TrackElemType::BankedLeftQuarterTurn5Tiles 0x00824A5C, // TrackElemType::BankedRightQuarterTurn5Tiles 0x00824A6C, // TrackElemType::LeftBankToUp25 0x00824A7C, // TrackElemType::RightBankToUp25 0x00824A8C, // TrackElemType::Up25ToLeftBank 0x00824A9C, // TrackElemType::Up25ToRightBank 0x00824AAC, // TrackElemType::LeftBankToDown25 0x00824ABC, // TrackElemType::RightBankToDown25 0x00824ACC, // TrackElemType::Down25ToLeftBank 0x00824ADC, // TrackElemType::Down25ToRightBank 0x00824AEC, // TrackElemType::LeftBank 0x00824AFC, // TrackElemType::RightBank 0x00824B0C, // TrackElemType::LeftQuarterTurn5TilesUp25 0x00824B1C, // TrackElemType::RightQuarterTurn5TilesUp25 0x00824B2C, // TrackElemType::LeftQuarterTurn5TilesDown25 0x00824B3C, // TrackElemType::RightQuarterTurn5TilesDown25 0x00824B4C, // TrackElemType::SBendLeft 0x00824B5C, // TrackElemType::SBendRight 0x00824B6C, // TrackElemType::LeftVerticalLoop 0x00824B7C, // TrackElemType::RightVerticalLoop 0x00824BBC, // TrackElemType::LeftQuarterTurn3Tiles 0x00824BCC, // TrackElemType::RightQuarterTurn3Tiles 0x00824BDC, // TrackElemType::LeftBankedQuarterTurn3Tiles 0x00824BEC, // TrackElemType::RightBankedQuarterTurn3Tiles 0x00824BFC, // TrackElemType::LeftQuarterTurn3TilesUp25 0x00824C0C, // TrackElemType::RightQuarterTurn3TilesUp25 0x00824C1C, // TrackElemType::LeftQuarterTurn3TilesDown25 0x00824C2C, // TrackElemType::RightQuarterTurn3TilesDown25 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x00824C9C, // TrackElemType::LeftHalfBankedHelixUpSmall 0x00824CAC, // TrackElemType::RightHalfBankedHelixUpSmall 0x00824CBC, // TrackElemType::LeftHalfBankedHelixDownSmall 0x00824CCC, // TrackElemType::RightHalfBankedHelixDownSmall 0x00824CDC, // TrackElemType::LeftHalfBankedHelixUpLarge 0x00824CEC, // TrackElemType::RightHalfBankedHelixUpLarge 0x00824CFC, // TrackElemType::LeftHalfBankedHelixDownLarge 0x00824D0C, // TrackElemType::RightHalfBankedHelixDownLarge 0x00824D3C, // TrackElemType::LeftQuarterTurn1TileUp60 0x00824D1C, // TrackElemType::RightQuarterTurn1TileUp60 0x00824D2C, // TrackElemType::LeftQuarterTurn1TileDown60 0x00824D4C, // TrackElemType::RightQuarterTurn1TileDown60 0x00824D5C, // TrackElemType::Brakes 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x00824D6C, // TrackElemType::OnRidePhoto 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x00824D8C, // TrackElemType::LeftEighthToDiag 0x00824D9C, // TrackElemType::RightEighthToDiag 0x00824DAC, // TrackElemType::LeftEighthToOrthogonal 0x00824DBC, // TrackElemType::RightEighthToOrthogonal 0x00824DCC, // TrackElemType::LeftEighthBankToDiag 0x00824DDC, // TrackElemType::RightEighthBankToDiag 0x00824DEC, // TrackElemType::LeftEighthBankToOrthogonal 0x00824DFC, // TrackElemType::RightEighthBankToOrthogonal 0x00824D7C, // TrackElemType::DiagFlat 0x00824E2C, // TrackElemType::DiagUp25 0x00824E8C, // TrackElemType::DiagUp60 0x00824E0C, // TrackElemType::DiagFlatToUp25 0x00824E6C, // TrackElemType::DiagUp25ToUp60 0x00824E7C, // TrackElemType::DiagUp60ToUp25 0x00824E1C, // TrackElemType::DiagUp25ToFlat 0x00824E5C, // TrackElemType::DiagDown25 0x00824EBC, // TrackElemType::DiagDown60 0x00824E3C, // TrackElemType::DiagFlatToDown25 0x00824E9C, // TrackElemType::DiagDown25ToDown60 0x00824EAC, // TrackElemType::DiagDown60ToDown25 0x00824E4C, // TrackElemType::DiagDown25ToFlat 0, 0, 0, 0, 0x00824EEC, // TrackElemType::DiagFlatToLeftBank 0x00824EFC, // TrackElemType::DiagFlatToRightBank 0x00824F0C, // TrackElemType::DiagLeftBankToFlat 0x00824F1C, // TrackElemType::DiagRightBankToFlat 0x00824F4C, // TrackElemType::DiagLeftBankToUp25 0x00824F5C, // TrackElemType::DiagRightBankToUp25 0x00824F2C, // TrackElemType::DiagUp25ToLeftBank 0x00824F3C, // TrackElemType::DiagUp25ToRightBank 0x00824F6C, // TrackElemType::DiagLeftBankToDown25 0x00824F7C, // TrackElemType::DiagRightBankToDown25 0x00824F8C, // TrackElemType::DiagDown25ToLeftBank 0x00824F9C, // TrackElemType::DiagDown25ToRightBank 0x00824ECC, // TrackElemType::DiagLeftBank 0x00824EDC, // TrackElemType::DiagRightBank 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x00824FAC, // TrackElemType::LeftFlyerTwistUp 0x00824FBC, // TrackElemType::RightFlyerTwistUp 0x00824FCC, // TrackElemType::LeftFlyerTwistDown 0x00824FDC, // TrackElemType::RightFlyerTwistDown 0x00824C3C, // TrackElemType::FlyerHalfLoopUp 0x00824C4C, // TrackElemType::FlyerHalfLoopDown 0x00824C5C, // TrackElemType::LeftFlyerCorkscrewUp 0x00824C6C, // TrackElemType::RightFlyerCorkscrewUp 0x00824C7C, // TrackElemType::LeftFlyerCorkscrewDown 0x00824C8C, // TrackElemType::RightFlyerCorkscrewDown 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x00824FEC, // TrackElemType::BlockBrakes 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }; /** rct2: 0x0086347C */ static constexpr const uint32_t _OldSuspendedMonorailTrackPaintFunctions[256] = { 0x008636F4, // TrackElemType::Flat 0x008637A4, // TrackElemType::EndStation 0x008637B4, // TrackElemType::BeginStation 0x008637C4, // TrackElemType::MiddleStation 0x00863704, // TrackElemType::Up25 0, 0x00863714, // TrackElemType::FlatToUp25 0, 0, 0x00863724, // TrackElemType::Up25ToFlat 0x00863734, // TrackElemType::Down25 0, 0x00863744, // TrackElemType::FlatToDown25 0, 0, 0x00863754, // TrackElemType::Down25ToFlat 0x00863764, // TrackElemType::LeftQuarterTurn5Tiles 0x00863774, // TrackElemType::RightQuarterTurn5Tiles 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x00863784, // TrackElemType::SBendLeft 0x00863794, // TrackElemType::SBendRight 0, 0, 0x008637D4, // TrackElemType::LeftQuarterTurn3Tiles 0x008637E4, // TrackElemType::RightQuarterTurn3Tiles 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x00863864, // TrackElemType::LeftEighthToDiag 0x00863874, // TrackElemType::RightEighthToDiag 0x00863884, // TrackElemType::LeftEighthToOrthogonal 0x00863894, // TrackElemType::RightEighthToOrthogonal 0, 0, 0, 0, 0x008637F4, // TrackElemType::DiagFlat 0x00863824, // TrackElemType::DiagUp25 0, 0x00863804, // TrackElemType::DiagFlatToUp25 0, 0, 0x00863814, // TrackElemType::DiagUp25ToFlat 0x00863854, // TrackElemType::DiagDown25 0, 0x00863834, // TrackElemType::DiagFlatToDown25 0, 0, 0x00863844, // TrackElemType::DiagDown25ToFlat 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }; /** rct2: 0x0086E2F8 */ static constexpr const uint32_t _OldReverserRollerCoasterTrackPaintFunctions[256] = { 0x0086E65C, // TrackElemType::Flat 0x0086E70C, // TrackElemType::EndStation 0x0086E71C, // TrackElemType::BeginStation 0x0086E72C, // TrackElemType::MiddleStation 0x0086E66C, // TrackElemType::Up25 0, 0x0086E67C, // TrackElemType::FlatToUp25 0, 0, 0x0086E68C, // TrackElemType::Up25ToFlat 0x0086E69C, // TrackElemType::Down25 0, 0x0086E6AC, // TrackElemType::FlatToDown25 0, 0, 0x0086E6BC, // TrackElemType::Down25ToFlat 0x0086E6CC, // TrackElemType::LeftQuarterTurn5Tiles 0x0086E6DC, // TrackElemType::RightQuarterTurn5Tiles 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x0086E6EC, // TrackElemType::SBendLeft 0x0086E6FC, // TrackElemType::SBendRight 0, 0, 0x0086E73C, // TrackElemType::LeftQuarterTurn3Tiles 0x0086E74C, // TrackElemType::RightQuarterTurn3Tiles 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x0086E75C, // TrackElemType::Brakes 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x0086E76C, // TrackElemType::LeftReverser 0x0086E77C, // TrackElemType::RightReverser 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }; /** rct2: 0x00876618 */ static constexpr const uint32_t _OldHeartlineTwisterCoasterTrackPaintFunctions[256] = { 0x0087694C, // TrackElemType::Flat 0x00876A1C, // TrackElemType::EndStation 0x00876A2C, // TrackElemType::BeginStation 0x00876A3C, // TrackElemType::MiddleStation 0x0087695C, // TrackElemType::Up25 0x008769FC, // TrackElemType::Up60 0x0087696C, // TrackElemType::FlatToUp25 0x008769BC, // TrackElemType::Up25ToUp60 0x008769CC, // TrackElemType::Up60ToUp25 0x0087697C, // TrackElemType::Up25ToFlat 0x0087698C, // TrackElemType::Down25 0x00876A0C, // TrackElemType::Down60 0x0087699C, // TrackElemType::FlatToDown25 0x008769DC, // TrackElemType::Down25ToDown60 0x008769EC, // TrackElemType::Down60ToDown25 0x008769AC, // TrackElemType::Down25ToFlat 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x00876A6C, // TrackElemType::HeartLineTransferUp 0x00876A7C, // TrackElemType::HeartLineTransferDown 0x00876A4C, // TrackElemType::LeftHeartLineRoll 0x00876A5C, // TrackElemType::RightHeartLineRoll 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }; /** rct2: 0x0087EDC4 */ static constexpr const uint32_t _OldMiniGolfTrackPaintFunctions[256] = { 0x0087F10C, // TrackElemType::Flat 0x0087F17C, // TrackElemType::EndStation 0x0087F18C, // TrackElemType::BeginStation 0x0087F19C, // TrackElemType::MiddleStation 0x0087F11C, // TrackElemType::Up25 0, 0x0087F12C, // TrackElemType::FlatToUp25 0, 0, 0x0087F13C, // TrackElemType::Up25ToFlat 0x0087F14C, // TrackElemType::Down25 0, 0x0087F15C, // TrackElemType::FlatToDown25 0, 0, 0x0087F16C, // TrackElemType::Down25ToFlat 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x0087F1AC, // TrackElemType::LeftQuarterTurn1Tile 0x0087F1BC, // TrackElemType::RightQuarterTurn1Tile 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x0087F1CC, // TrackElemType::MinigolfHoleA 0x0087F1DC, // TrackElemType::MinigolfHoleB 0x0087F1EC, // TrackElemType::MinigolfHoleC 0x0087F1FC, // TrackElemType::MinigolfHoleD 0x0087F20C, // TrackElemType::MinigolfHoleE 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }; /** rct2: 0x008AD280 */ static constexpr const uint32_t _OldGigaCoasterTrackPaintFunctions[256] = { 0x008AD674, // TrackElemType::Flat 0x008AD8C4, // TrackElemType::EndStation 0x008AD8D4, // TrackElemType::BeginStation 0x008AD8E4, // TrackElemType::MiddleStation 0x008AD684, // TrackElemType::Up25 0x008AD694, // TrackElemType::Up60 0x008AD6A4, // TrackElemType::FlatToUp25 0x008AD6B4, // TrackElemType::Up25ToUp60 0x008AD6C4, // TrackElemType::Up60ToUp25 0x008AD6D4, // TrackElemType::Up25ToFlat 0x008AD6E4, // TrackElemType::Down25 0x008AD6F4, // TrackElemType::Down60 0x008AD704, // TrackElemType::FlatToDown25 0x008AD714, // TrackElemType::Down25ToDown60 0x008AD724, // TrackElemType::Down60ToDown25 0x008AD734, // TrackElemType::Down25ToFlat 0x008AD744, // TrackElemType::LeftQuarterTurn5Tiles 0x008AD754, // TrackElemType::RightQuarterTurn5Tiles 0x008AD764, // TrackElemType::FlatToLeftBank 0x008AD774, // TrackElemType::FlatToRightBank 0x008AD784, // TrackElemType::LeftBankToFlat 0x008AD794, // TrackElemType::RightBankToFlat 0x008AD7A4, // TrackElemType::BankedLeftQuarterTurn5Tiles 0x008AD7B4, // TrackElemType::BankedRightQuarterTurn5Tiles 0x008AD7C4, // TrackElemType::LeftBankToUp25 0x008AD7D4, // TrackElemType::RightBankToUp25 0x008AD7E4, // TrackElemType::Up25ToLeftBank 0x008AD7F4, // TrackElemType::Up25ToRightBank 0x008AD804, // TrackElemType::LeftBankToDown25 0x008AD814, // TrackElemType::RightBankToDown25 0x008AD824, // TrackElemType::Down25ToLeftBank 0x008AD834, // TrackElemType::Down25ToRightBank 0x008AD844, // TrackElemType::LeftBank 0x008AD854, // TrackElemType::RightBank 0x008AD864, // TrackElemType::LeftQuarterTurn5TilesUp25 0x008AD874, // TrackElemType::RightQuarterTurn5TilesUp25 0x008AD884, // TrackElemType::LeftQuarterTurn5TilesDown25 0x008AD894, // TrackElemType::RightQuarterTurn5TilesDown25 0x008AD8A4, // TrackElemType::SBendLeft 0x008AD8B4, // TrackElemType::SBendRight 0, 0, 0x008AD8F4, // TrackElemType::LeftQuarterTurn3Tiles 0x008AD904, // TrackElemType::RightQuarterTurn3Tiles 0x008AD914, // TrackElemType::LeftBankedQuarterTurn3Tiles 0x008AD924, // TrackElemType::RightBankedQuarterTurn3Tiles 0x008AD934, // TrackElemType::LeftQuarterTurn3TilesUp25 0x008AD944, // TrackElemType::RightQuarterTurn3TilesUp25 0x008AD954, // TrackElemType::LeftQuarterTurn3TilesDown25 0x008AD964, // TrackElemType::RightQuarterTurn3TilesDown25 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x008AD974, // TrackElemType::LeftHalfBankedHelixUpSmall 0x008AD984, // TrackElemType::RightHalfBankedHelixUpSmall 0x008AD994, // TrackElemType::LeftHalfBankedHelixDownSmall 0x008AD9A4, // TrackElemType::RightHalfBankedHelixDownSmall 0x008AD9B4, // TrackElemType::LeftHalfBankedHelixUpLarge 0x008AD9C4, // TrackElemType::RightHalfBankedHelixUpLarge 0x008AD9D4, // TrackElemType::LeftHalfBankedHelixDownLarge 0x008AD9E4, // TrackElemType::RightHalfBankedHelixDownLarge 0x008ADA14, // TrackElemType::LeftQuarterTurn1TileUp60 0x008AD9F4, // TrackElemType::RightQuarterTurn1TileUp60 0x008ADA04, // TrackElemType::LeftQuarterTurn1TileDown60 0x008ADA24, // TrackElemType::RightQuarterTurn1TileDown60 0x008ADA34, // TrackElemType::Brakes 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x008ADC84, // TrackElemType::Up25LeftBanked 0x008ADC94, // TrackElemType::Up25RightBanked 0, 0, 0x008ADA44, // TrackElemType::OnRidePhoto 0x008ADCA4, // TrackElemType::Down25LeftBanked 0x008ADCB4, // TrackElemType::Down25RightBanked 0, 0x008ADED4, // TrackElemType::FlatToUp60LongBase 0x008ADEE4, // TrackElemType::Up60ToFlatLongBase 0, 0x008ADEF4, // TrackElemType::Down60ToFlatLongBase 0x008ADF04, // TrackElemType::FlatToDown60LongBase 0x008ADF14, // TrackElemType::CableLiftHill 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x008ADA64, // TrackElemType::LeftEighthToDiag 0x008ADA74, // TrackElemType::RightEighthToDiag 0x008ADA84, // TrackElemType::LeftEighthToOrthogonal 0x008ADA94, // TrackElemType::RightEighthToOrthogonal 0x008ADAA4, // TrackElemType::LeftEighthBankToDiag 0x008ADAB4, // TrackElemType::RightEighthBankToDiag 0x008ADAC4, // TrackElemType::LeftEighthBankToOrthogonal 0x008ADAD4, // TrackElemType::RightEighthBankToOrthogonal 0x008ADA54, // TrackElemType::DiagFlat 0x008ADB04, // TrackElemType::DiagUp25 0x008ADB64, // TrackElemType::DiagUp60 0x008ADAE4, // TrackElemType::DiagFlatToUp25 0x008ADB44, // TrackElemType::DiagUp25ToUp60 0x008ADB54, // TrackElemType::DiagUp60ToUp25 0x008ADAF4, // TrackElemType::DiagUp25ToFlat 0x008ADB34, // TrackElemType::DiagDown25 0x008ADB94, // TrackElemType::DiagDown60 0x008ADB14, // TrackElemType::DiagFlatToDown25 0x008ADB74, // TrackElemType::DiagDown25ToDown60 0x008ADB84, // TrackElemType::DiagDown60ToDown25 0x008ADB24, // TrackElemType::DiagDown25ToFlat 0, 0, 0, 0, 0x008ADBC4, // TrackElemType::DiagFlatToLeftBank 0x008ADBD4, // TrackElemType::DiagFlatToRightBank 0x008ADBE4, // TrackElemType::DiagLeftBankToFlat 0x008ADBF4, // TrackElemType::DiagRightBankToFlat 0x008ADC24, // TrackElemType::DiagLeftBankToUp25 0x008ADC34, // TrackElemType::DiagRightBankToUp25 0x008ADC04, // TrackElemType::DiagUp25ToLeftBank 0x008ADC14, // TrackElemType::DiagUp25ToRightBank 0x008ADC44, // TrackElemType::DiagLeftBankToDown25 0x008ADC54, // TrackElemType::DiagRightBankToDown25 0x008ADC64, // TrackElemType::DiagDown25ToLeftBank 0x008ADC74, // TrackElemType::DiagDown25ToRightBank 0x008ADBA4, // TrackElemType::DiagLeftBank 0x008ADBB4, // TrackElemType::DiagRightBank 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x008ADEC4, // TrackElemType::BlockBrakes 0x008ADCC4, // TrackElemType::LeftBankedQuarterTurn3TileUp25 0x008ADCD4, // TrackElemType::RightBankedQuarterTurn3TileUp25 0x008ADCE4, // TrackElemType::LeftBankedQuarterTurn3TileDown25 0x008ADCF4, // TrackElemType::RightBankedQuarterTurn3TileDown25 0x008ADD04, // TrackElemType::LeftBankedQuarterTurn5TileUp25 0x008ADD14, // TrackElemType::RightBankedQuarterTurn5TileUp25 0x008ADD24, // TrackElemType::LeftBankedQuarterTurn5TileDown25 0x008ADD34, // TrackElemType::RightBankedQuarterTurn5TileDown25 0x008ADD44, // TrackElemType::Up25ToLeftBankedUp25 0x008ADD54, // TrackElemType::Up25ToRightBankedUp25 0x008ADD64, // TrackElemType::LeftBankedUp25ToUp25 0x008ADD74, // TrackElemType::RightBankedUp25ToUp25 0x008ADD84, // TrackElemType::Down25ToLeftBankedDown25 0x008ADD94, // TrackElemType::Down25ToRightBankedDown25 0x008ADDA4, // TrackElemType::LeftBankedDown25ToDown25 0x008ADDB4, // TrackElemType::RightBankedDown25ToDown25 0x008ADDC4, // TrackElemType::LeftBankedFlatToLeftBankedUp25 0x008ADDD4, // TrackElemType::RightBankedFlatToRightBankedUp25 0x008ADE04, // TrackElemType::LeftBankedUp25ToLeftBankedFlat 0x008ADE14, // TrackElemType::RightBankedUp25ToRightBankedFlat 0x008ADE24, // TrackElemType::LeftBankedFlatToLeftBankedDown25 0x008ADE34, // TrackElemType::RightBankedFlatToRightBankedDown25 0x008ADDE4, // TrackElemType::LeftBankedDown25ToLeftBankedFlat 0x008ADDF4, // TrackElemType::RightBankedDown25ToRightBankedFlat 0x008ADE44, // TrackElemType::FlatToLeftBankedUp25 0x008ADE54, // TrackElemType::FlatToRightBankedUp25 0x008ADE64, // TrackElemType::LeftBankedUp25ToFlat 0x008ADE74, // TrackElemType::RightBankedUp25ToFlat 0x008ADE84, // TrackElemType::FlatToLeftBankedDown25 0x008ADE94, // TrackElemType::FlatToRightBankedDown25 0x008ADEA4, // TrackElemType::LeftBankedDown25ToFlat 0x008ADEB4, // TrackElemType::RightBankedDown25ToFlat 0, 0, 0, 0, 0, 0, 0, }; /** rct2: 0x00886074 */ static constexpr const uint32_t _OldRoToDropTrackPaintFunctions[256] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x00886194, // TrackElemType::TowerBase 0x008861A4, // TrackElemType::TowerSection 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }; /** rct2: 0x00887208 */ static constexpr const uint32_t _OldFlyingSaucersTrackPaintFunctions[256] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x008873D8, // 111 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }; /** rct2: 0x00889C28 */ static constexpr const uint32_t _OldCrookedHouseTrackPaintFunctions[256] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x00889E28, // 123 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }; /** rct2: 0x0088AC88 */ static constexpr const uint32_t _OldMonorailCyclesTrackPaintFunctions[256] = { 0x0088AD48, // TrackElemType::Flat 0x0088AD58, // TrackElemType::EndStation 0x0088AD68, // TrackElemType::BeginStation 0x0088AD78, // TrackElemType::MiddleStation 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x0088ADA8, // TrackElemType::LeftQuarterTurn5Tiles 0x0088ADB8, // TrackElemType::RightQuarterTurn5Tiles 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x0088ADC8, // TrackElemType::SBendLeft 0x0088ADD8, // TrackElemType::SBendRight 0, 0, 0x0088AD88, // TrackElemType::LeftQuarterTurn3Tiles 0x0088AD98, // TrackElemType::RightQuarterTurn3Tiles 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }; /** rct2: 0x008AE36C */ static constexpr const uint32_t _OldCompactInvertedCoasterTrackPaintFunctions[256] = { 0x008AE6E0, // TrackElemType::Flat 0x008AE950, // TrackElemType::EndStation 0x008AE960, // TrackElemType::BeginStation 0x008AE970, // TrackElemType::MiddleStation 0x008AE6F0, // TrackElemType::Up25 0x008AE700, // TrackElemType::Up60 0x008AE710, // TrackElemType::FlatToUp25 0x008AE720, // TrackElemType::Up25ToUp60 0x008AE730, // TrackElemType::Up60ToUp25 0x008AE740, // TrackElemType::Up25ToFlat 0x008AE750, // TrackElemType::Down25 0x008AE760, // TrackElemType::Down60 0x008AE770, // TrackElemType::FlatToDown25 0x008AE780, // TrackElemType::Down25ToDown60 0x008AE790, // TrackElemType::Down60ToDown25 0x008AE7A0, // TrackElemType::Down25ToFlat 0x008AE7B0, // TrackElemType::LeftQuarterTurn5Tiles 0x008AE7C0, // TrackElemType::RightQuarterTurn5Tiles 0x008AE7D0, // TrackElemType::FlatToLeftBank 0x008AE7E0, // TrackElemType::FlatToRightBank 0x008AE7F0, // TrackElemType::LeftBankToFlat 0x008AE800, // TrackElemType::RightBankToFlat 0x008AE810, // TrackElemType::BankedLeftQuarterTurn5Tiles 0x008AE820, // TrackElemType::BankedRightQuarterTurn5Tiles 0x008AE830, // TrackElemType::LeftBankToUp25 0x008AE840, // TrackElemType::RightBankToUp25 0x008AE850, // TrackElemType::Up25ToLeftBank 0x008AE860, // TrackElemType::Up25ToRightBank 0x008AE870, // TrackElemType::LeftBankToDown25 0x008AE880, // TrackElemType::RightBankToDown25 0x008AE890, // TrackElemType::Down25ToLeftBank 0x008AE8A0, // TrackElemType::Down25ToRightBank 0x008AE8B0, // TrackElemType::LeftBank 0x008AE8C0, // TrackElemType::RightBank 0x008AE8D0, // TrackElemType::LeftQuarterTurn5TilesUp25 0x008AE8E0, // TrackElemType::RightQuarterTurn5TilesUp25 0x008AE8F0, // TrackElemType::LeftQuarterTurn5TilesDown25 0x008AE900, // TrackElemType::RightQuarterTurn5TilesDown25 0x008AE910, // TrackElemType::SBendLeft 0x008AE920, // TrackElemType::SBendRight 0x008AE930, // TrackElemType::LeftVerticalLoop 0x008AE940, // TrackElemType::RightVerticalLoop 0x008AE980, // TrackElemType::LeftQuarterTurn3Tiles 0x008AE990, // TrackElemType::RightQuarterTurn3Tiles 0x008AE9A0, // TrackElemType::LeftBankedQuarterTurn3Tiles 0x008AE9B0, // TrackElemType::RightBankedQuarterTurn3Tiles 0x008AE9C0, // TrackElemType::LeftQuarterTurn3TilesUp25 0x008AE9D0, // TrackElemType::RightQuarterTurn3TilesUp25 0x008AE9E0, // TrackElemType::LeftQuarterTurn3TilesDown25 0x008AE9F0, // TrackElemType::RightQuarterTurn3TilesDown25 0, 0, 0x008AEA00, // TrackElemType::LeftTwistDownToUp 0x008AEA10, // TrackElemType::RightTwistDownToUp 0x008AEA20, // TrackElemType::LeftTwistUpToDown 0x008AEA30, // TrackElemType::RightTwistUpToDown 0x008AEA40, // TrackElemType::HalfLoopUp 0x008AEA50, // TrackElemType::HalfLoopDown 0x008AEA60, // TrackElemType::LeftCorkscrewUp 0x008AEA70, // TrackElemType::RightCorkscrewUp 0x008AEA80, // TrackElemType::LeftCorkscrewDown 0x008AEA90, // TrackElemType::RightCorkscrewDown 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x008AEAD0, // TrackElemType::LeftQuarterTurn1TileUp60 0x008AEAB0, // TrackElemType::RightQuarterTurn1TileUp60 0x008AEAC0, // TrackElemType::LeftQuarterTurn1TileDown60 0x008AEAE0, // TrackElemType::RightQuarterTurn1TileDown60 0x008AEAA0, // TrackElemType::Brakes 0, 0, 0x008AEAF0, // TrackElemType::LeftQuarterBankedHelixLargeUp 0x008AEB00, // TrackElemType::RightQuarterBankedHelixLargeUp 0x008AEB10, // TrackElemType::LeftQuarterBankedHelixLargeDown 0x008AEB20, // TrackElemType::RightQuarterBankedHelixLargeDown 0, 0, 0, 0, 0, 0, 0, 0, 0x008AEB30, // TrackElemType::OnRidePhoto 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x008AEDB0, // TrackElemType::Up90 0x008AEDC0, // TrackElemType::Down90 0x008AED70, // TrackElemType::Up60ToUp90 0x008AED80, // TrackElemType::Down90ToDown60 0x008AED90, // TrackElemType::Up90ToUp60 0x008AEDA0, // TrackElemType::Down60ToDown90 0, 0x008AEB40, // TrackElemType::LeftEighthToDiag 0x008AEB50, // TrackElemType::RightEighthToDiag 0x008AEB60, // TrackElemType::LeftEighthToOrthogonal 0x008AEB70, // TrackElemType::RightEighthToOrthogonal 0x008AED30, // TrackElemType::LeftEighthBankToDiag 0x008AED40, // TrackElemType::RightEighthBankToDiag 0x008AED50, // TrackElemType::LeftEighthBankToOrthogonal 0x008AED60, // TrackElemType::RightEighthBankToOrthogonal 0x008AEB80, // TrackElemType::DiagFlat 0x008AEBB0, // TrackElemType::DiagUp25 0x008AEC10, // TrackElemType::DiagUp60 0x008AEB90, // TrackElemType::DiagFlatToUp25 0x008AEBF0, // TrackElemType::DiagUp25ToUp60 0x008AEC00, // TrackElemType::DiagUp60ToUp25 0x008AEBA0, // TrackElemType::DiagUp25ToFlat 0x008AEBE0, // TrackElemType::DiagDown25 0x008AEC40, // TrackElemType::DiagDown60 0x008AEBC0, // TrackElemType::DiagFlatToDown25 0x008AEC20, // TrackElemType::DiagDown25ToDown60 0x008AEC30, // TrackElemType::DiagDown60ToDown25 0x008AEBD0, // TrackElemType::DiagDown25ToFlat 0, 0, 0, 0, 0x008AEC70, // TrackElemType::DiagFlatToLeftBank 0x008AEC80, // TrackElemType::DiagFlatToRightBank 0x008AEC90, // TrackElemType::DiagLeftBankToFlat 0x008AECA0, // TrackElemType::DiagRightBankToFlat 0x008AECD0, // TrackElemType::DiagLeftBankToUp25 0x008AECE0, // TrackElemType::DiagRightBankToUp25 0x008AECB0, // TrackElemType::DiagUp25ToLeftBank 0x008AECC0, // TrackElemType::DiagUp25ToRightBank 0x008AECF0, // TrackElemType::DiagLeftBankToDown25 0x008AED00, // TrackElemType::DiagRightBankToDown25 0x008AED10, // TrackElemType::DiagDown25ToLeftBank 0x008AED20, // TrackElemType::DiagDown25ToRightBank 0x008AEC50, // TrackElemType::DiagLeftBank 0x008AEC60, // TrackElemType::DiagRightBank 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x008AEAA0, // TrackElemType::BlockBrakes 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }; /** rct2: 0x008AEDE0 */ static constexpr const uint32_t _OldWaterCoasterTrackPaintFunctions[256] = { 0x008AF154, // TrackElemType::Flat 0x008AF2A4, // TrackElemType::EndStation 0x008AF2B4, // TrackElemType::BeginStation 0x008AF2C4, // TrackElemType::MiddleStation 0x008AF164, // TrackElemType::Up25 0x008AF174, // TrackElemType::Up60 0x008AF184, // TrackElemType::FlatToUp25 0x008AF194, // TrackElemType::Up25ToUp60 0x008AF1A4, // TrackElemType::Up60ToUp25 0x008AF1B4, // TrackElemType::Up25ToFlat 0x008AF1C4, // TrackElemType::Down25 0x008AF1D4, // TrackElemType::Down60 0x008AF1E4, // TrackElemType::FlatToDown25 0x008AF1F4, // TrackElemType::Down25ToDown60 0x008AF204, // TrackElemType::Down60ToDown25 0x008AF214, // TrackElemType::Down25ToFlat 0x008AF224, // TrackElemType::LeftQuarterTurn5Tiles 0x008AF234, // TrackElemType::RightQuarterTurn5Tiles 0x008AF454, // TrackElemType::FlatToLeftBank 0x008AF464, // TrackElemType::FlatToRightBank 0x008AF474, // TrackElemType::LeftBankToFlat 0x008AF484, // TrackElemType::RightBankToFlat 0x008AF494, // TrackElemType::BankedLeftQuarterTurn5Tiles 0x008AF4A4, // TrackElemType::BankedRightQuarterTurn5Tiles 0x008AF4B4, // TrackElemType::LeftBankToUp25 0x008AF4C4, // TrackElemType::RightBankToUp25 0x008AF4D4, // TrackElemType::Up25ToLeftBank 0x008AF4E4, // TrackElemType::Up25ToRightBank 0x008AF4F4, // TrackElemType::LeftBankToDown25 0x008AF504, // TrackElemType::RightBankToDown25 0x008AF514, // TrackElemType::Down25ToLeftBank 0x008AF524, // TrackElemType::Down25ToRightBank 0x008AF534, // TrackElemType::LeftBank 0x008AF544, // TrackElemType::RightBank 0x008AF244, // TrackElemType::LeftQuarterTurn5TilesUp25 0x008AF254, // TrackElemType::RightQuarterTurn5TilesUp25 0x008AF264, // TrackElemType::LeftQuarterTurn5TilesDown25 0x008AF274, // TrackElemType::RightQuarterTurn5TilesDown25 0x008AF284, // TrackElemType::SBendLeft 0x008AF294, // TrackElemType::SBendRight 0, 0, 0x008AF2D4, // TrackElemType::LeftQuarterTurn3Tiles 0x008AF2E4, // TrackElemType::RightQuarterTurn3Tiles 0x008AF554, // TrackElemType::LeftBankedQuarterTurn3Tiles 0x008AF564, // TrackElemType::RightBankedQuarterTurn3Tiles 0x008AF2F4, // TrackElemType::LeftQuarterTurn3TilesUp25 0x008AF304, // TrackElemType::RightQuarterTurn3TilesUp25 0x008AF314, // TrackElemType::LeftQuarterTurn3TilesDown25 0x008AF324, // TrackElemType::RightQuarterTurn3TilesDown25 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x008AF714, // TrackElemType::FlatCovered 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x008AF724, // TrackElemType::LeftQuarterTurn5TilesCovered 0x008AF734, // TrackElemType::RightQuarterTurn5TilesCovered 0, 0, 0, 0, 0x008AF574, // TrackElemType::LeftHalfBankedHelixUpSmall 0x008AF584, // TrackElemType::RightHalfBankedHelixUpSmall 0x008AF594, // TrackElemType::LeftHalfBankedHelixDownSmall 0x008AF5A4, // TrackElemType::RightHalfBankedHelixDownSmall 0x008AF5B4, // TrackElemType::LeftHalfBankedHelixUpLarge 0x008AF5C4, // TrackElemType::RightHalfBankedHelixUpLarge 0x008AF5D4, // TrackElemType::LeftHalfBankedHelixDownLarge 0x008AF5E4, // TrackElemType::RightHalfBankedHelixDownLarge 0, 0, 0, 0, 0x008AF334, // TrackElemType::Brakes 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x008AF414, // TrackElemType::LeftEighthToDiag 0x008AF424, // TrackElemType::RightEighthToDiag 0x008AF434, // TrackElemType::LeftEighthToOrthogonal 0x008AF444, // TrackElemType::RightEighthToOrthogonal 0x008AF5F4, // TrackElemType::LeftEighthBankToDiag 0x008AF604, // TrackElemType::RightEighthBankToDiag 0x008AF614, // TrackElemType::LeftEighthBankToOrthogonal 0x008AF624, // TrackElemType::RightEighthBankToOrthogonal 0x008AF344, // TrackElemType::DiagFlat 0x008AF374, // TrackElemType::DiagUp25 0x008AF3A4, // TrackElemType::DiagUp60 0x008AF354, // TrackElemType::DiagFlatToUp25 0x008AF384, // TrackElemType::DiagUp25ToUp60 0x008AF394, // TrackElemType::DiagUp60ToUp25 0x008AF364, // TrackElemType::DiagUp25ToFlat 0x008AF3D4, // TrackElemType::DiagDown25 0x008AF404, // TrackElemType::DiagDown60 0x008AF3B4, // TrackElemType::DiagFlatToDown25 0x008AF3E4, // TrackElemType::DiagDown25ToDown60 0x008AF3F4, // TrackElemType::DiagDown60ToDown25 0x008AF3C4, // TrackElemType::DiagDown25ToFlat 0, 0, 0, 0, 0x008AF654, // TrackElemType::DiagFlatToLeftBank 0x008AF664, // TrackElemType::DiagFlatToRightBank 0x008AF674, // TrackElemType::DiagLeftBankToFlat 0x008AF684, // TrackElemType::DiagRightBankToFlat 0x008AF6B4, // TrackElemType::DiagLeftBankToUp25 0x008AF6C4, // TrackElemType::DiagRightBankToUp25 0x008AF694, // TrackElemType::DiagUp25ToLeftBank 0x008AF6A4, // TrackElemType::DiagUp25ToRightBank 0x008AF6D4, // TrackElemType::DiagLeftBankToDown25 0x008AF6E4, // TrackElemType::DiagRightBankToDown25 0x008AF6F4, // TrackElemType::DiagDown25ToLeftBank 0x008AF704, // TrackElemType::DiagDown25ToRightBank 0x008AF634, // TrackElemType::DiagLeftBank 0x008AF644, // TrackElemType::DiagRightBank 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x008AF744, // TrackElemType::BlockBrakes 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }; /** rct2: 0x008AF764 */ static constexpr const uint32_t _OldAirPoweredVerticalCoasterTrackPaintFunctions[256] = { 0x008AFAD4, // TrackElemType::Flat 0x008AFAE4, // TrackElemType::EndStation 0x008AFAF4, // TrackElemType::BeginStation 0x008AFB04, // TrackElemType::MiddleStation 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x008AFB54, // TrackElemType::LeftQuarterTurn5Tiles 0x008AFB64, // TrackElemType::RightQuarterTurn5Tiles 0x008AFB74, // TrackElemType::FlatToLeftBank 0x008AFB84, // TrackElemType::FlatToRightBank 0x008AFB94, // TrackElemType::LeftBankToFlat 0x008AFBA4, // TrackElemType::RightBankToFlat 0x008AFBB4, // TrackElemType::BankedLeftQuarterTurn5Tiles 0x008AFBC4, // TrackElemType::BankedRightQuarterTurn5Tiles 0, 0, 0, 0, 0, 0, 0, 0, 0x008AFBD4, // TrackElemType::LeftBank 0x008AFBE4, // TrackElemType::RightBank 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x008AFC04, // TrackElemType::Brakes 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x008AFB14, // TrackElemType::ReverseFreefallSlope 0x008AFB34, // TrackElemType::ReverseFreefallVertical 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x008AFBF4, // TrackElemType::AirThrustTopCap 0x008AFB44, // TrackElemType::AirThrustVerticalDown 0x008AFB24, // TrackElemType::AirThrustVerticalDownToLevel 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }; /** rct2: 0x00890940 */ static constexpr const uint32_t _OldInvertedHairpinCoasterTrackPaintFunctions[256] = { 0x00890CB4, // TrackElemType::Flat 0x00890D84, // TrackElemType::EndStation 0x00890D94, // TrackElemType::BeginStation 0x00890DA4, // TrackElemType::MiddleStation 0x00890CC4, // TrackElemType::Up25 0x00890CD4, // TrackElemType::Up60 0x00890CE4, // TrackElemType::FlatToUp25 0x00890CF4, // TrackElemType::Up25ToUp60 0x00890D04, // TrackElemType::Up60ToUp25 0x00890D14, // TrackElemType::Up25ToFlat 0x00890D24, // TrackElemType::Down25 0x00890D34, // TrackElemType::Down60 0x00890D44, // TrackElemType::FlatToDown25 0x00890D54, // TrackElemType::Down25ToDown60 0x00890D64, // TrackElemType::Down60ToDown25 0x00890D74, // TrackElemType::Down25ToFlat 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x00890DB4, // TrackElemType::LeftQuarterTurn3Tiles 0x00890DC4, // TrackElemType::RightQuarterTurn3Tiles 0, 0, 0x00890DD4, // TrackElemType::LeftQuarterTurn3TilesUp25 0x00890DE4, // TrackElemType::RightQuarterTurn3TilesUp25 0x00890DF4, // TrackElemType::LeftQuarterTurn3TilesDown25 0x00890E04, // TrackElemType::RightQuarterTurn3TilesDown25 0x00890E64, // TrackElemType::LeftQuarterTurn1Tile 0x00890E74, // TrackElemType::RightQuarterTurn1Tile 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x00890E24, // TrackElemType::FlatToUp60 0x00890E34, // TrackElemType::Up60ToFlat 0x00890E44, // TrackElemType::FlatToDown60 0x00890E54, // TrackElemType::Down60ToFlat 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x00890E14, // TrackElemType::Brakes 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x00890E84, // TrackElemType::BlockBrakes 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }; /** rct2: 0x00898384 */ static constexpr const uint32_t _OldMagicCarpetTrackPaintFunctions[256] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x00898514, // 95 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }; /** rct2: 0x008995D4 */ static constexpr const uint32_t _OldSubmarineRideTrackPaintFunctions[256] = { 0x008996B4, // TrackElemType::Flat 0x008996C4, // TrackElemType::EndStation 0x008996D4, // TrackElemType::BeginStation 0x008996E4, // TrackElemType::MiddleStation 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x008996F4, // TrackElemType::LeftQuarterTurn3Tiles 0x00899704, // TrackElemType::RightQuarterTurn3Tiles 0, 0, 0, 0, 0, 0, 0x00899714, // TrackElemType::LeftQuarterTurn1Tile 0x00899724, // TrackElemType::RightQuarterTurn1Tile 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }; /** rct2: 0x0089B0C0 */ static constexpr const uint32_t _OldRiverRaftsTrackPaintFunctions[256] = { 0x0089B170, // TrackElemType::Flat 0x0089B1A0, // TrackElemType::EndStation 0x0089B1B0, // TrackElemType::BeginStation 0x0089B1C0, // TrackElemType::MiddleStation 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x0089B1D0, // TrackElemType::LeftQuarterTurn5Tiles 0x0089B1E0, // TrackElemType::RightQuarterTurn5Tiles 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x0089B180, // TrackElemType::SBendLeft 0x0089B190, // TrackElemType::SBendRight 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }; /** rct2: 0x008A13B4 */ static constexpr const uint32_t _OldEnterpriseTrackPaintFunctions[256] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x008A1584, // 111 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }; /** rct2: 0x008B005C */ static constexpr const uint32_t _OldInvertedImpulseCoasterTrackPaintFunctions[256] = { 0x008B0460, // TrackElemType::Flat 0x008B0470, // TrackElemType::EndStation 0x008B0480, // TrackElemType::BeginStation 0x008B0490, // TrackElemType::MiddleStation 0x008B04A0, // TrackElemType::Up25 0x008B04B0, // TrackElemType::Up60 0x008B04C0, // TrackElemType::FlatToUp25 0x008B04D0, // TrackElemType::Up25ToUp60 0x008B04E0, // TrackElemType::Up60ToUp25 0x008B04F0, // TrackElemType::Up25ToFlat 0x008B0500, // TrackElemType::Down25 0x008B0510, // TrackElemType::Down60 0x008B0520, // TrackElemType::FlatToDown25 0x008B0530, // TrackElemType::Down25ToDown60 0x008B0540, // TrackElemType::Down60ToDown25 0x008B0550, // TrackElemType::Down25ToFlat 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x008B05A0, // TrackElemType::Up90 0x008B05B0, // TrackElemType::Down90 0x008B0560, // TrackElemType::Up60ToUp90 0x008B0570, // TrackElemType::Down90ToDown60 0x008B0580, // TrackElemType::Up90ToUp60 0x008B0590, // TrackElemType::Down60ToDown90 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x008B05C0, // TrackElemType::LeftQuarterTurn1TileUp90 0x008B05D0, // TrackElemType::RightQuarterTurn1TileUp90 0x008B05E0, // TrackElemType::LeftQuarterTurn1TileDown90 0x008B05F0, // TrackElemType::RightQuarterTurn1TileDown90 0, 0, 0, }; /** rct2: 0x008A46D8 */ static constexpr const uint32_t _OldMiniRollerCoasterTrackPaintFunctions[256] = { 0x008A4ABC, // TrackElemType::Flat 0x008A4D0C, // TrackElemType::EndStation 0x008A4D1C, // TrackElemType::BeginStation 0x008A4D2C, // TrackElemType::MiddleStation 0x008A4ACC, // TrackElemType::Up25 0x008A4ADC, // TrackElemType::Up60 0x008A4AEC, // TrackElemType::FlatToUp25 0x008A4AFC, // TrackElemType::Up25ToUp60 0x008A4B0C, // TrackElemType::Up60ToUp25 0x008A4B1C, // TrackElemType::Up25ToFlat 0x008A4B2C, // TrackElemType::Down25 0x008A4B3C, // TrackElemType::Down60 0x008A4B4C, // TrackElemType::FlatToDown25 0x008A4B5C, // TrackElemType::Down25ToDown60 0x008A4B6C, // TrackElemType::Down60ToDown25 0x008A4B7C, // TrackElemType::Down25ToFlat 0x008A4B8C, // TrackElemType::LeftQuarterTurn5Tiles 0x008A4B9C, // TrackElemType::RightQuarterTurn5Tiles 0x008A4BAC, // TrackElemType::FlatToLeftBank 0x008A4BBC, // TrackElemType::FlatToRightBank 0x008A4BCC, // TrackElemType::LeftBankToFlat 0x008A4BDC, // TrackElemType::RightBankToFlat 0x008A4BEC, // TrackElemType::BankedLeftQuarterTurn5Tiles 0x008A4BFC, // TrackElemType::BankedRightQuarterTurn5Tiles 0x008A4C0C, // TrackElemType::LeftBankToUp25 0x008A4C1C, // TrackElemType::RightBankToUp25 0x008A4C2C, // TrackElemType::Up25ToLeftBank 0x008A4C3C, // TrackElemType::Up25ToRightBank 0x008A4C4C, // TrackElemType::LeftBankToDown25 0x008A4C5C, // TrackElemType::RightBankToDown25 0x008A4C6C, // TrackElemType::Down25ToLeftBank 0x008A4C7C, // TrackElemType::Down25ToRightBank 0x008A4C8C, // TrackElemType::LeftBank 0x008A4C9C, // TrackElemType::RightBank 0x008A4CAC, // TrackElemType::LeftQuarterTurn5TilesUp25 0x008A4CBC, // TrackElemType::RightQuarterTurn5TilesUp25 0x008A4CCC, // TrackElemType::LeftQuarterTurn5TilesDown25 0x008A4CDC, // TrackElemType::RightQuarterTurn5TilesDown25 0x008A4CEC, // TrackElemType::SBendLeft 0x008A4CFC, // TrackElemType::SBendRight 0, 0, 0x008A4D3C, // TrackElemType::LeftQuarterTurn3Tiles 0x008A4D4C, // TrackElemType::RightQuarterTurn3Tiles 0x008A4D5C, // TrackElemType::LeftBankedQuarterTurn3Tiles 0x008A4D6C, // TrackElemType::RightBankedQuarterTurn3Tiles 0x008A4D7C, // TrackElemType::LeftQuarterTurn3TilesUp25 0x008A4D8C, // TrackElemType::RightQuarterTurn3TilesUp25 0x008A4D9C, // TrackElemType::LeftQuarterTurn3TilesDown25 0x008A4DAC, // TrackElemType::RightQuarterTurn3TilesDown25 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x008A4DBC, // TrackElemType::LeftHalfBankedHelixUpSmall 0x008A4DCC, // TrackElemType::RightHalfBankedHelixUpSmall 0x008A4DDC, // TrackElemType::LeftHalfBankedHelixDownSmall 0x008A4DEC, // TrackElemType::RightHalfBankedHelixDownSmall 0x008A4DFC, // TrackElemType::LeftHalfBankedHelixUpLarge 0x008A4E0C, // TrackElemType::RightHalfBankedHelixUpLarge 0x008A4E1C, // TrackElemType::LeftHalfBankedHelixDownLarge 0x008A4E2C, // TrackElemType::RightHalfBankedHelixDownLarge 0x008A4E5C, // TrackElemType::LeftQuarterTurn1TileUp60 0x008A4E3C, // TrackElemType::RightQuarterTurn1TileUp60 0x008A4E4C, // TrackElemType::LeftQuarterTurn1TileDown60 0x008A4E6C, // TrackElemType::RightQuarterTurn1TileDown60 0x008A4E7C, // TrackElemType::Brakes 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x008A50CC, // TrackElemType::Up25LeftBanked 0x008A50DC, // TrackElemType::Up25RightBanked 0, 0, 0x008A4E8C, // TrackElemType::OnRidePhoto 0x008A50EC, // TrackElemType::Down25LeftBanked 0x008A50FC, // TrackElemType::Down25RightBanked 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x008A4EAC, // TrackElemType::LeftEighthToDiag 0x008A4EBC, // TrackElemType::RightEighthToDiag 0x008A4ECC, // TrackElemType::LeftEighthToOrthogonal 0x008A4EDC, // TrackElemType::RightEighthToOrthogonal 0x008A4EEC, // TrackElemType::LeftEighthBankToDiag 0x008A4EFC, // TrackElemType::RightEighthBankToDiag 0x008A4F0C, // TrackElemType::LeftEighthBankToOrthogonal 0x008A4F1C, // TrackElemType::RightEighthBankToOrthogonal 0x008A4E9C, // TrackElemType::DiagFlat 0x008A4F4C, // TrackElemType::DiagUp25 0x008A4FAC, // TrackElemType::DiagUp60 0x008A4F2C, // TrackElemType::DiagFlatToUp25 0x008A4F8C, // TrackElemType::DiagUp25ToUp60 0x008A4F9C, // TrackElemType::DiagUp60ToUp25 0x008A4F3C, // TrackElemType::DiagUp25ToFlat 0x008A4F7C, // TrackElemType::DiagDown25 0x008A4FDC, // TrackElemType::DiagDown60 0x008A4F5C, // TrackElemType::DiagFlatToDown25 0x008A4FBC, // TrackElemType::DiagDown25ToDown60 0x008A4FCC, // TrackElemType::DiagDown60ToDown25 0x008A4F6C, // TrackElemType::DiagDown25ToFlat 0, 0, 0, 0, 0x008A500C, // TrackElemType::DiagFlatToLeftBank 0x008A501C, // TrackElemType::DiagFlatToRightBank 0x008A502C, // TrackElemType::DiagLeftBankToFlat 0x008A503C, // TrackElemType::DiagRightBankToFlat 0x008A506C, // TrackElemType::DiagLeftBankToUp25 0x008A507C, // TrackElemType::DiagRightBankToUp25 0x008A504C, // TrackElemType::DiagUp25ToLeftBank 0x008A505C, // TrackElemType::DiagUp25ToRightBank 0x008A508C, // TrackElemType::DiagLeftBankToDown25 0x008A509C, // TrackElemType::DiagRightBankToDown25 0x008A50AC, // TrackElemType::DiagDown25ToLeftBank 0x008A50BC, // TrackElemType::DiagDown25ToRightBank 0x008A4FEC, // TrackElemType::DiagLeftBank 0x008A4FFC, // TrackElemType::DiagRightBank 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x008A530C, // TrackElemType::BlockBrakes 0x008A510C, // TrackElemType::LeftBankedQuarterTurn3TileUp25 0x008A511C, // TrackElemType::RightBankedQuarterTurn3TileUp25 0x008A512C, // TrackElemType::LeftBankedQuarterTurn3TileDown25 0x008A513C, // TrackElemType::RightBankedQuarterTurn3TileDown25 0x008A514C, // TrackElemType::LeftBankedQuarterTurn5TileUp25 0x008A515C, // TrackElemType::RightBankedQuarterTurn5TileUp25 0x008A516C, // TrackElemType::LeftBankedQuarterTurn5TileDown25 0x008A517C, // TrackElemType::RightBankedQuarterTurn5TileDown25 0x008A518C, // TrackElemType::Up25ToLeftBankedUp25 0x008A519C, // TrackElemType::Up25ToRightBankedUp25 0x008A51AC, // TrackElemType::LeftBankedUp25ToUp25 0x008A51BC, // TrackElemType::RightBankedUp25ToUp25 0x008A51CC, // TrackElemType::Down25ToLeftBankedDown25 0x008A51DC, // TrackElemType::Down25ToRightBankedDown25 0x008A51EC, // TrackElemType::LeftBankedDown25ToDown25 0x008A51FC, // TrackElemType::RightBankedDown25ToDown25 0x008A520C, // TrackElemType::LeftBankedFlatToLeftBankedUp25 0x008A521C, // TrackElemType::RightBankedFlatToRightBankedUp25 0x008A524C, // TrackElemType::LeftBankedUp25ToLeftBankedFlat 0x008A525C, // TrackElemType::RightBankedUp25ToRightBankedFlat 0x008A526C, // TrackElemType::LeftBankedFlatToLeftBankedDown25 0x008A527C, // TrackElemType::RightBankedFlatToRightBankedDown25 0x008A522C, // TrackElemType::LeftBankedDown25ToLeftBankedFlat 0x008A523C, // TrackElemType::RightBankedDown25ToRightBankedFlat 0x008A528C, // TrackElemType::FlatToLeftBankedUp25 0x008A529C, // TrackElemType::FlatToRightBankedUp25 0x008A52AC, // TrackElemType::LeftBankedUp25ToFlat 0x008A52BC, // TrackElemType::RightBankedUp25ToFlat 0x008A52CC, // TrackElemType::FlatToLeftBankedDown25 0x008A52DC, // TrackElemType::FlatToRightBankedDown25 0x008A52EC, // TrackElemType::LeftBankedDown25ToFlat 0x008A52FC, // TrackElemType::RightBankedDown25ToFlat 0, 0, 0, 0, 0, 0, 0, }; /** rct2: 0x008B0610 */ static constexpr const uint32_t _OldMineRideTrackPaintFunctions[256] = { 0x008B08D0, // TrackElemType::Flat 0x008B0A80, // TrackElemType::EndStation 0x008B0A90, // TrackElemType::BeginStation 0x008B0AA0, // TrackElemType::MiddleStation 0x008B08E0, // TrackElemType::Up25 0, 0x008B08F0, // TrackElemType::FlatToUp25 0, 0, 0x008B0900, // TrackElemType::Up25ToFlat 0x008B0910, // TrackElemType::Down25 0, 0x008B0920, // TrackElemType::FlatToDown25 0, 0, 0x008B0930, // TrackElemType::Down25ToFlat 0x008B0940, // TrackElemType::LeftQuarterTurn5Tiles 0x008B0950, // TrackElemType::RightQuarterTurn5Tiles 0x008B0960, // TrackElemType::FlatToLeftBank 0x008B0970, // TrackElemType::FlatToRightBank 0x008B0980, // TrackElemType::LeftBankToFlat 0x008B0990, // TrackElemType::RightBankToFlat 0x008B09A0, // TrackElemType::BankedLeftQuarterTurn5Tiles 0x008B09B0, // TrackElemType::BankedRightQuarterTurn5Tiles 0x008B09C0, // TrackElemType::LeftBankToUp25 0x008B09D0, // TrackElemType::RightBankToUp25 0x008B09E0, // TrackElemType::Up25ToLeftBank 0x008B09F0, // TrackElemType::Up25ToRightBank 0x008B0A00, // TrackElemType::LeftBankToDown25 0x008B0A10, // TrackElemType::RightBankToDown25 0x008B0A20, // TrackElemType::Down25ToLeftBank 0x008B0A30, // TrackElemType::Down25ToRightBank 0x008B0A40, // TrackElemType::LeftBank 0x008B0A50, // TrackElemType::RightBank 0, 0, 0, 0, 0x008B0A60, // TrackElemType::SBendLeft 0x008B0A70, // TrackElemType::SBendRight 0, 0, 0x008B0AB0, // TrackElemType::LeftQuarterTurn3Tiles 0x008B0AC0, // TrackElemType::RightQuarterTurn3Tiles 0x008B0AD0, // TrackElemType::LeftBankedQuarterTurn3Tiles 0x008B0AE0, // TrackElemType::RightBankedQuarterTurn3Tiles 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x008B0AF0, // TrackElemType::LeftHalfBankedHelixUpSmall 0x008B0B00, // TrackElemType::RightHalfBankedHelixUpSmall 0x008B0B10, // TrackElemType::LeftHalfBankedHelixDownSmall 0x008B0B20, // TrackElemType::RightHalfBankedHelixDownSmall 0x008B0B30, // TrackElemType::LeftHalfBankedHelixUpLarge 0x008B0B40, // TrackElemType::RightHalfBankedHelixUpLarge 0x008B0B50, // TrackElemType::LeftHalfBankedHelixDownLarge 0x008B0B60, // TrackElemType::RightHalfBankedHelixDownLarge 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x008B0B70, // TrackElemType::OnRidePhoto 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x008B0B90, // TrackElemType::LeftEighthToDiag 0x008B0BA0, // TrackElemType::RightEighthToDiag 0x008B0BB0, // TrackElemType::LeftEighthToOrthogonal 0x008B0BC0, // TrackElemType::RightEighthToOrthogonal 0x008B0BD0, // TrackElemType::LeftEighthBankToDiag 0x008B0BE0, // TrackElemType::RightEighthBankToDiag 0x008B0BF0, // TrackElemType::LeftEighthBankToOrthogonal 0x008B0C00, // TrackElemType::RightEighthBankToOrthogonal 0x008B0B80, // TrackElemType::DiagFlat 0x008B0C30, // TrackElemType::DiagUp25 0, 0x008B0C10, // TrackElemType::DiagFlatToUp25 0, 0, 0x008B0C20, // TrackElemType::DiagUp25ToFlat 0x008B0C60, // TrackElemType::DiagDown25 0, 0x008B0C40, // TrackElemType::DiagFlatToDown25 0, 0, 0x008B0C50, // TrackElemType::DiagDown25ToFlat 0, 0, 0, 0, 0x008B0C90, // TrackElemType::DiagFlatToLeftBank 0x008B0CA0, // TrackElemType::DiagFlatToRightBank 0x008B0CB0, // TrackElemType::DiagLeftBankToFlat 0x008B0CC0, // TrackElemType::DiagRightBankToFlat 0x008B0CF0, // TrackElemType::DiagLeftBankToUp25 0x008B0D00, // TrackElemType::DiagRightBankToUp25 0x008B0CD0, // TrackElemType::DiagUp25ToLeftBank 0x008B0CE0, // TrackElemType::DiagUp25ToRightBank 0x008B0D10, // TrackElemType::DiagLeftBankToDown25 0x008B0D20, // TrackElemType::DiagRightBankToDown25 0x008B0D30, // TrackElemType::DiagDown25ToLeftBank 0x008B0D40, // TrackElemType::DiagDown25ToRightBank 0x008B0C70, // TrackElemType::DiagLeftBank 0x008B0C80, // TrackElemType::DiagRightBank 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }; /** rct2: 0x008A5F6C */ static constexpr const uint32_t _OldLimLaunchedRollerCoasterTrackPaintFunctions[256] = { 0x008A6370, // TrackElemType::Flat 0x008A6D50, // TrackElemType::EndStation 0x008A6D60, // TrackElemType::BeginStation 0x008A6D70, // TrackElemType::MiddleStation 0x008A6380, // TrackElemType::Up25 0x008A6390, // TrackElemType::Up60 0x008A63A0, // TrackElemType::FlatToUp25 0x008A63B0, // TrackElemType::Up25ToUp60 0x008A63C0, // TrackElemType::Up60ToUp25 0x008A63D0, // TrackElemType::Up25ToFlat 0x008A63E0, // TrackElemType::Down25 0x008A63F0, // TrackElemType::Down60 0x008A6400, // TrackElemType::FlatToDown25 0x008A6410, // TrackElemType::Down25ToDown60 0x008A6420, // TrackElemType::Down60ToDown25 0x008A6430, // TrackElemType::Down25ToFlat 0x008A6440, // TrackElemType::LeftQuarterTurn5Tiles 0x008A6450, // TrackElemType::RightQuarterTurn5Tiles 0x008A6460, // TrackElemType::FlatToLeftBank 0x008A6470, // TrackElemType::FlatToRightBank 0x008A6480, // TrackElemType::LeftBankToFlat 0x008A6490, // TrackElemType::RightBankToFlat 0x008A64A0, // TrackElemType::BankedLeftQuarterTurn5Tiles 0x008A64B0, // TrackElemType::BankedRightQuarterTurn5Tiles 0x008A64C0, // TrackElemType::LeftBankToUp25 0x008A64D0, // TrackElemType::RightBankToUp25 0x008A64E0, // TrackElemType::Up25ToLeftBank 0x008A64F0, // TrackElemType::Up25ToRightBank 0x008A6500, // TrackElemType::LeftBankToDown25 0x008A6510, // TrackElemType::RightBankToDown25 0x008A6520, // TrackElemType::Down25ToLeftBank 0x008A6530, // TrackElemType::Down25ToRightBank 0x008A6540, // TrackElemType::LeftBank 0x008A6550, // TrackElemType::RightBank 0x008A6560, // TrackElemType::LeftQuarterTurn5TilesUp25 0x008A6570, // TrackElemType::RightQuarterTurn5TilesUp25 0x008A6580, // TrackElemType::LeftQuarterTurn5TilesDown25 0x008A6590, // TrackElemType::RightQuarterTurn5TilesDown25 0x008A65A0, // TrackElemType::SBendLeft 0x008A65B0, // TrackElemType::SBendRight 0x008A65E0, // TrackElemType::LeftVerticalLoop 0x008A65F0, // TrackElemType::RightVerticalLoop 0x008A6630, // TrackElemType::LeftQuarterTurn3Tiles 0x008A6640, // TrackElemType::RightQuarterTurn3Tiles 0x008A6650, // TrackElemType::LeftBankedQuarterTurn3Tiles 0x008A6660, // TrackElemType::RightBankedQuarterTurn3Tiles 0x008A6670, // TrackElemType::LeftQuarterTurn3TilesUp25 0x008A6680, // TrackElemType::RightQuarterTurn3TilesUp25 0x008A6690, // TrackElemType::LeftQuarterTurn3TilesDown25 0x008A66A0, // TrackElemType::RightQuarterTurn3TilesDown25 0, 0, 0x008A6D10, // TrackElemType::LeftTwistDownToUp 0x008A6D20, // TrackElemType::RightTwistDownToUp 0x008A6D30, // TrackElemType::LeftTwistUpToDown 0x008A6D40, // TrackElemType::RightTwistUpToDown 0, 0, 0x008A6CD0, // TrackElemType::LeftCorkscrewUp 0x008A6CE0, // TrackElemType::RightCorkscrewUp 0x008A6CF0, // TrackElemType::LeftCorkscrewDown 0x008A6D00, // TrackElemType::RightCorkscrewDown 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x008A66B0, // TrackElemType::LeftHalfBankedHelixUpSmall 0x008A66C0, // TrackElemType::RightHalfBankedHelixUpSmall 0x008A66D0, // TrackElemType::LeftHalfBankedHelixDownSmall 0x008A66E0, // TrackElemType::RightHalfBankedHelixDownSmall 0x008A66F0, // TrackElemType::LeftHalfBankedHelixUpLarge 0x008A6700, // TrackElemType::RightHalfBankedHelixUpLarge 0x008A6710, // TrackElemType::LeftHalfBankedHelixDownLarge 0x008A6720, // TrackElemType::RightHalfBankedHelixDownLarge 0x008A6750, // TrackElemType::LeftQuarterTurn1TileUp60 0x008A6730, // TrackElemType::RightQuarterTurn1TileUp60 0x008A6740, // TrackElemType::LeftQuarterTurn1TileDown60 0x008A6760, // TrackElemType::RightQuarterTurn1TileDown60 0x008A6D80, // TrackElemType::Brakes 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x008A6A40, // TrackElemType::Up25LeftBanked 0x008A6A50, // TrackElemType::Up25RightBanked 0, 0, 0x008A6780, // TrackElemType::OnRidePhoto 0x008A6A60, // TrackElemType::Down25LeftBanked 0x008A6A70, // TrackElemType::Down25RightBanked 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x008A6C10, // TrackElemType::Up90 0x008A6C20, // TrackElemType::Down90 0x008A6C30, // TrackElemType::Up60ToUp90 0x008A6C40, // TrackElemType::Down90ToDown60 0x008A6C50, // TrackElemType::Up90ToUp60 0x008A6C60, // TrackElemType::Down60ToDown90 0, 0x008A6860, // TrackElemType::LeftEighthToDiag 0x008A6870, // TrackElemType::RightEighthToDiag 0x008A6880, // TrackElemType::LeftEighthToOrthogonal 0x008A6890, // TrackElemType::RightEighthToOrthogonal 0x008A68A0, // TrackElemType::LeftEighthBankToDiag 0x008A68B0, // TrackElemType::RightEighthBankToDiag 0x008A68C0, // TrackElemType::LeftEighthBankToOrthogonal 0x008A68D0, // TrackElemType::RightEighthBankToOrthogonal 0x008A6790, // TrackElemType::DiagFlat 0x008A67C0, // TrackElemType::DiagUp25 0x008A67F0, // TrackElemType::DiagUp60 0x008A67A0, // TrackElemType::DiagFlatToUp25 0x008A67D0, // TrackElemType::DiagUp25ToUp60 0x008A67E0, // TrackElemType::DiagUp60ToUp25 0x008A67B0, // TrackElemType::DiagUp25ToFlat 0x008A6820, // TrackElemType::DiagDown25 0x008A6850, // TrackElemType::DiagDown60 0x008A6800, // TrackElemType::DiagFlatToDown25 0x008A6830, // TrackElemType::DiagDown25ToDown60 0x008A6840, // TrackElemType::DiagDown60ToDown25 0x008A6810, // TrackElemType::DiagDown25ToFlat 0, 0, 0, 0, 0x008A6900, // TrackElemType::DiagFlatToLeftBank 0x008A6910, // TrackElemType::DiagFlatToRightBank 0x008A6920, // TrackElemType::DiagLeftBankToFlat 0x008A6930, // TrackElemType::DiagRightBankToFlat 0x008A6960, // TrackElemType::DiagLeftBankToUp25 0x008A6970, // TrackElemType::DiagRightBankToUp25 0x008A6940, // TrackElemType::DiagUp25ToLeftBank 0x008A6950, // TrackElemType::DiagUp25ToRightBank 0x008A6980, // TrackElemType::DiagLeftBankToDown25 0x008A6990, // TrackElemType::DiagRightBankToDown25 0x008A69A0, // TrackElemType::DiagDown25ToLeftBank 0x008A69B0, // TrackElemType::DiagDown25ToRightBank 0x008A68E0, // TrackElemType::DiagLeftBank 0x008A68F0, // TrackElemType::DiagRightBank 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x008A6C70, // TrackElemType::Up90ToInvertedFlatQuarterLoop 0x008A6C80, // TrackElemType::InvertedFlatToDown90QuarterLoop 0, 0, 0, 0, 0, 0, 0, 0x008A6D90, // TrackElemType::BlockBrakes 0x008A6BC0, // TrackElemType::LeftBankedQuarterTurn3TileUp25 0x008A6BD0, // TrackElemType::RightBankedQuarterTurn3TileUp25 0x008A6BE0, // TrackElemType::LeftBankedQuarterTurn3TileDown25 0x008A6BF0, // TrackElemType::RightBankedQuarterTurn3TileDown25 0x008A6B80, // TrackElemType::LeftBankedQuarterTurn5TileUp25 0x008A6B90, // TrackElemType::RightBankedQuarterTurn5TileUp25 0x008A6BA0, // TrackElemType::LeftBankedQuarterTurn5TileDown25 0x008A6BB0, // TrackElemType::RightBankedQuarterTurn5TileDown25 0x008A6A80, // TrackElemType::Up25ToLeftBankedUp25 0x008A6A90, // TrackElemType::Up25ToRightBankedUp25 0x008A6AA0, // TrackElemType::LeftBankedUp25ToUp25 0x008A6AB0, // TrackElemType::RightBankedUp25ToUp25 0x008A6AC0, // TrackElemType::Down25ToLeftBankedDown25 0x008A6AD0, // TrackElemType::Down25ToRightBankedDown25 0x008A6AE0, // TrackElemType::LeftBankedDown25ToDown25 0x008A6AF0, // TrackElemType::RightBankedDown25ToDown25 0x008A6B00, // TrackElemType::LeftBankedFlatToLeftBankedUp25 0x008A6B10, // TrackElemType::RightBankedFlatToRightBankedUp25 0x008A6B40, // TrackElemType::LeftBankedUp25ToLeftBankedFlat 0x008A6B50, // TrackElemType::RightBankedUp25ToRightBankedFlat 0x008A6B60, // TrackElemType::LeftBankedFlatToLeftBankedDown25 0x008A6B70, // TrackElemType::RightBankedFlatToRightBankedDown25 0x008A6B20, // TrackElemType::LeftBankedDown25ToLeftBankedFlat 0x008A6B30, // TrackElemType::RightBankedDown25ToRightBankedFlat 0x008A69C0, // TrackElemType::FlatToLeftBankedUp25 0x008A69D0, // TrackElemType::FlatToRightBankedUp25 0x008A69E0, // TrackElemType::LeftBankedUp25ToFlat 0x008A69F0, // TrackElemType::RightBankedUp25ToFlat 0x008A6A00, // TrackElemType::FlatToLeftBankedDown25 0x008A6A10, // TrackElemType::FlatToRightBankedDown25 0x008A6A20, // TrackElemType::LeftBankedDown25ToFlat 0x008A6A30, // TrackElemType::RightBankedDown25ToFlat 0x008A6C90, // TrackElemType::LeftQuarterTurn1TileUp90 0x008A6CA0, // TrackElemType::RightQuarterTurn1TileUp90 0x008A6CB0, // TrackElemType::LeftQuarterTurn1TileDown90 0x008A6CC0, // TrackElemType::RightQuarterTurn1TileDown90 0, 0, 0, }; static constexpr const uint32_t _null[256] = {0}; const uint32_t * RideTypeTrackPaintFunctionsOld[RCT2_RIDE_TYPE_COUNT] = { _OldSpiralRollerCoasterTrackPaintFunctions, // RIDE_TYPE_SPIRAL_ROLLER_COASTER _OldStandUpRollerCoasterTrackPaintFunctions, // RIDE_TYPE_STAND_UP_ROLLER_COASTER _OldSuspendedSwingingCoasterTrackPaintFunctions, // RIDE_TYPE_SUSPENDED_SWINGING_COASTER _OldInvertedRollerCoasterTrackPaintFunctions, // RIDE_TYPE_INVERTED_ROLLER_COASTER _OldJuniorRollerCoasterTrackPaintFunctions, // RIDE_TYPE_JUNIOR_ROLLER_COASTER _OldMiniatureRailwayTrackPaintFunctions, // RIDE_TYPE_MINIATURE_RAILWAY _OldMonorailTrackPaintFunctions, // RIDE_TYPE_MONORAIL _OldMiniSuspendedCoasterTrackPaintFunctions, // RIDE_TYPE_MINI_SUSPENDED_COASTER _OldBoatHireTrackPaintFunctions, // RIDE_TYPE_BOAT_HIRE _OldWoodenWildMouseTrackPaintFunctions, // RIDE_TYPE_WOODEN_WILD_MOUSE _OldSteeplechaseTrackPaintFunctions, // RIDE_TYPE_STEEPLECHASE _OldCarRideTrackPaintFunctions, // RIDE_TYPE_CAR_RIDE _OldLaunchedFreefallTrackPaintFunctions, // RIDE_TYPE_LAUNCHED_FREEFALL _OldBobsleighCoasterTrackPaintFunctions, // RIDE_TYPE_BOBSLEIGH_COASTER _OldObservationTowerTrackPaintFunctions, // RIDE_TYPE_OBSERVATION_TOWER _OldLoopingRollerCoasterTrackPaintFunctions, // RIDE_TYPE_LOOPING_ROLLER_COASTER _OldDinghySlideTrackPaintFunctions, // RIDE_TYPE_DINGHY_SLIDE _OldMineTrainCoasterTrackPaintFunctions, // RIDE_TYPE_MINE_TRAIN_COASTER _OldChairliftTrackPaintFunctions, // RIDE_TYPE_CHAIRLIFT _OldCorkscrewRollerCoasterTrackPaintFunctions, // RIDE_TYPE_CORKSCREW_ROLLER_COASTER _OldMazeTrackPaintFunctions, // RIDE_TYPE_MAZE _OldSpiralSlideTrackPaintFunctions, // RIDE_TYPE_SPIRAL_SLIDE _OldGoKartsTrackPaintFunctions, // RIDE_TYPE_GO_KARTS _OldLogFlumeTrackPaintFunctions, // RIDE_TYPE_LOG_FLUME _OldRiverRapidsTrackPaintFunctions, // RIDE_TYPE_RIVER_RAPIDS _OldDodgemsTrackPaintFunctions, // RIDE_TYPE_DODGEMS _OldSwingingShipTrackPaintFunctions, // RIDE_TYPE_SWINGING_SHIP _OldSwingingInverterShipTrackPaintFunctions, // RIDE_TYPE_SWINGING_INVERTER_SHIP _OldShopTrackPaintFunctions, // RIDE_TYPE_FOOD_STALL _OldShopTrackPaintFunctions, // RIDE_TYPE_1D _OldShopTrackPaintFunctions, // RIDE_TYPE_DRINK_STALL _OldShopTrackPaintFunctions, // RIDE_TYPE_1F _OldShopTrackPaintFunctions, // RIDE_TYPE_SHOP _OldMerryGoRoundTrackPaintFunctions, // RIDE_TYPE_MERRY_GO_ROUND _OldShopTrackPaintFunctions, // RIDE_TYPE_22 _OldShopTrackPaintFunctions, // RIDE_TYPE_INFORMATION_KIOSK _OldFacilityTrackPaintFunctions, // RIDE_TYPE_TOILETS _OldFerrisWheelTrackPaintFunctions, // RIDE_TYPE_FERRIS_WHEEL _OldMotionSimulatorTrackPaintFunctions, // RIDE_TYPE_MOTION_SIMULATOR _Old3DCinemaTrackPaintFunctions, // RIDE_TYPE_3D_CINEMA _OldTopSpinTrackPaintFunctions, // RIDE_TYPE_TOP_SPIN _OldSpaceRingsTrackPaintFunctions, // RIDE_TYPE_SPACE_RINGS _OldReverseFreefallCoasterTrackPaintFunctions, // RIDE_TYPE_REVERSE_FREEFALL_COASTER _OldLiftTrackPaintFunctions, // RIDE_TYPE_LIFT _OldVerticalDropRollerCoasterTrackPaintFunctions, // RIDE_TYPE_VERTICAL_DROP_ROLLER_COASTER _OldShopTrackPaintFunctions, // RIDE_TYPE_CASH_MACHINE _OldTwistTrackPaintFunctions, // RIDE_TYPE_TWIST _OldHauntedHouseTrackPaintFunctions, // RIDE_TYPE_HAUNTED_HOUSE _OldFacilityTrackPaintFunctions, // RIDE_TYPE_FIRST_AID _OldCircusTrackPaintFunctions, // RIDE_TYPE_CIRCUS _OldGhostTrainTrackPaintFunctions, // RIDE_TYPE_GHOST_TRAIN _OldTwisterRollerCoasterTrackPaintFunctions, // RIDE_TYPE_TWISTER_ROLLER_COASTER _OldWoodenRollerCoasterTrackPaintFunctions, // RIDE_TYPE_WOODEN_ROLLER_COASTER _OldSideFrictionRollerCoasterTrackPaintFunctions, // RIDE_TYPE_SIDE_FRICTION_ROLLER_COASTER _OldWildMouseTrackPaintFunctions, // RIDE_TYPE_STEEL_WILD_MOUSE _OldMultiDimensionRollerCoasterTrackPaintFunctions, // RIDE_TYPE_MULTI_DIMENSION_ROLLER_COASTER _OldMultiDimensionRollerCoasterTrackPaintFunctions, // RIDE_TYPE_MULTI_DIMENSION_ROLLER_COASTER_ALT _OldFlyingRollerCoasterTrackPaintFunctions, // RIDE_TYPE_FLYING_ROLLER_COASTER _OldFlyingRollerCoasterTrackPaintFunctions, // RIDE_TYPE_FLYING_ROLLER_COASTER_ALT _OldVirginiaReelTrackPaintFunctions, // RIDE_TYPE_VIRGINIA_REEL _OldSplashBoatsTrackPaintFunctions, // RIDE_TYPE_SPLASH_BOATS _OldMiniHelicoptersTrackPaintFunctions, // RIDE_TYPE_MINI_HELICOPTERS _OldLayDownRollerCoasterTrackPaintFunctions, // RIDE_TYPE_LAY_DOWN_ROLLER_COASTER _OldSuspendedMonorailTrackPaintFunctions, // RIDE_TYPE_SUSPENDED_MONORAIL _OldLayDownRollerCoasterTrackPaintFunctions, // RIDE_TYPE_LAY_DOWN_ROLLER_COASTER_ALT _OldReverserRollerCoasterTrackPaintFunctions, // RIDE_TYPE_REVERSER_ROLLER_COASTER _OldHeartlineTwisterCoasterTrackPaintFunctions, // RIDE_TYPE_HEARTLINE_TWISTER_COASTER _OldMiniGolfTrackPaintFunctions, // RIDE_TYPE_MINI_GOLF _OldGigaCoasterTrackPaintFunctions, // RIDE_TYPE_GIGA_COASTER _OldRoToDropTrackPaintFunctions, // RIDE_TYPE_ROTO_DROP _OldFlyingSaucersTrackPaintFunctions, // RIDE_TYPE_FLYING_SAUCERS _OldCrookedHouseTrackPaintFunctions, // RIDE_TYPE_CROOKED_HOUSE _OldMonorailCyclesTrackPaintFunctions, // RIDE_TYPE_MONORAIL_CYCLES _OldCompactInvertedCoasterTrackPaintFunctions, // RIDE_TYPE_COMPACT_INVERTED_COASTER _OldWaterCoasterTrackPaintFunctions, // RIDE_TYPE_WATER_COASTER _OldAirPoweredVerticalCoasterTrackPaintFunctions, // RIDE_TYPE_AIR_POWERED_VERTICAL_COASTER _OldInvertedHairpinCoasterTrackPaintFunctions, // RIDE_TYPE_INVERTED_HAIRPIN_COASTER _OldMagicCarpetTrackPaintFunctions, // RIDE_TYPE_MAGIC_CARPET _OldSubmarineRideTrackPaintFunctions, // RIDE_TYPE_SUBMARINE_RIDE _OldRiverRaftsTrackPaintFunctions, // RIDE_TYPE_RIVER_RAFTS _OldShopTrackPaintFunctions, // RIDE_TYPE_50 _OldEnterpriseTrackPaintFunctions, // RIDE_TYPE_ENTERPRISE _OldShopTrackPaintFunctions, // RIDE_TYPE_52 _OldShopTrackPaintFunctions, // RIDE_TYPE_53 _OldShopTrackPaintFunctions, // RIDE_TYPE_54 _null, // RIDE_TYPE_55 _OldInvertedImpulseCoasterTrackPaintFunctions, // RIDE_TYPE_INVERTED_IMPULSE_COASTER _OldMiniRollerCoasterTrackPaintFunctions, // RIDE_TYPE_MINI_ROLLER_COASTER _OldMineRideTrackPaintFunctions, // RIDE_TYPE_MINE_RIDE _null, // RIDE_TYPE_59 _OldLimLaunchedRollerCoasterTrackPaintFunctions, // RIDE_TYPE_LIM_LAUNCHED_ROLLER_COASTER }; //clang-format on