Beautify TrackData.cpp

This commit is contained in:
spacek531 2025-01-20 06:26:31 -08:00 committed by GitHub
parent 81168d57b8
commit 5bec62c540
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -1090,192 +1090,192 @@ namespace OpenRCT2::TrackMetaData
static_assert(std::size(gTrackCurveChain) == EnumValue(TrackElemType::Count));
const TrackDescriptor gTrackDescriptors[186] = {
{ true, TrackPitch::Down60, TrackRoll::None, TrackCurve::None, TrackPitch::Down60, TrackRoll::None, TrackElemType::DiagDown60 },
{ true, TrackPitch::Down60, TrackRoll::None, TrackCurve::None, TrackPitch::Down25, TrackRoll::None, TrackElemType::DiagDown60ToDown25 },
{ true, TrackPitch::Down60, TrackRoll::None, TrackCurve::None, TrackPitch::None, TrackRoll::None, TrackElemType::DiagDown60ToFlat },
{ true, TrackPitch::Down25, TrackRoll::None, TrackCurve::None, TrackPitch::Down60, TrackRoll::None, TrackElemType::DiagDown25ToDown60 },
{ true, TrackPitch::Down25, TrackRoll::None, TrackCurve::None, TrackPitch::Down25, TrackRoll::None, TrackElemType::DiagDown25 },
{ true, TrackPitch::Down25, TrackRoll::None, TrackCurve::None, TrackPitch::None, TrackRoll::Left, TrackElemType::DiagDown25ToLeftBank },
{ true, TrackPitch::Down25, TrackRoll::None, TrackCurve::None, TrackPitch::None, TrackRoll::None, TrackElemType::DiagDown25ToFlat },
{ true, TrackPitch::Down25, TrackRoll::None, TrackCurve::None, TrackPitch::None, TrackRoll::Right, TrackElemType::DiagDown25ToRightBank },
{ true, TrackPitch::None, TrackRoll::Left, TrackCurve::LeftLarge, TrackPitch::None, TrackRoll::Left, TrackElemType::LeftEighthBankToOrthogonal },
{ true, TrackPitch::None, TrackRoll::Left, TrackCurve::None, TrackPitch::Down25, TrackRoll::None, TrackElemType::DiagLeftBankToDown25 },
{ true, TrackPitch::None, TrackRoll::Left, TrackCurve::None, TrackPitch::None, TrackRoll::Left, TrackElemType::DiagLeftBank },
{ true, TrackPitch::None, TrackRoll::Left, TrackCurve::None, TrackPitch::None, TrackRoll::None, TrackElemType::DiagLeftBankToFlat },
{ true, TrackPitch::None, TrackRoll::Left, TrackCurve::None, TrackPitch::Up25, TrackRoll::None, TrackElemType::DiagLeftBankToUp25 },
{ true, TrackPitch::None, TrackRoll::None, TrackCurve::LeftLarge, TrackPitch::None, TrackRoll::None, TrackElemType::LeftEighthToOrthogonal },
{ true, TrackPitch::None, TrackRoll::None, TrackCurve::None, TrackPitch::Down60, TrackRoll::None, TrackElemType::DiagFlatToDown60 },
{ true, TrackPitch::None, TrackRoll::None, TrackCurve::None, TrackPitch::Down25, TrackRoll::None, TrackElemType::DiagFlatToDown25 },
{ true, TrackPitch::None, TrackRoll::None, TrackCurve::None, TrackPitch::None, TrackRoll::Left, TrackElemType::DiagFlatToLeftBank },
{ true, TrackPitch::None, TrackRoll::None, TrackCurve::None, TrackPitch::None, TrackRoll::None, TrackElemType::DiagFlat },
{ true, TrackPitch::None, TrackRoll::None, TrackCurve::None, TrackPitch::None, TrackRoll::Right, TrackElemType::DiagFlatToRightBank },
{ true, TrackPitch::None, TrackRoll::None, TrackCurve::None, TrackPitch::Up25, TrackRoll::None, TrackElemType::DiagFlatToUp25 },
{ true, TrackPitch::None, TrackRoll::None, TrackCurve::None, TrackPitch::Up60, TrackRoll::None, TrackElemType::DiagFlatToUp60 },
{ true, TrackPitch::None, TrackRoll::None, TrackCurve::RightLarge, TrackPitch::None, TrackRoll::None, TrackElemType::RightEighthToOrthogonal },
{ true, TrackPitch::None, TrackRoll::Right, TrackCurve::None, TrackPitch::Down25, TrackRoll::None, TrackElemType::DiagRightBankToDown25 },
{ true, TrackPitch::None, TrackRoll::Right, TrackCurve::None, TrackPitch::None, TrackRoll::None, TrackElemType::DiagRightBankToFlat },
{ true, TrackPitch::None, TrackRoll::Right, TrackCurve::None, TrackPitch::None, TrackRoll::Right, TrackElemType::DiagRightBank },
{ true, TrackPitch::None, TrackRoll::Right, TrackCurve::None, TrackPitch::Up25, TrackRoll::None, TrackElemType::DiagRightBankToUp25 },
{ true, TrackPitch::None, TrackRoll::Right, TrackCurve::RightLarge, TrackPitch::None, TrackRoll::Right, TrackElemType::RightEighthBankToOrthogonal },
{ true, TrackPitch::Up25, TrackRoll::None, TrackCurve::None, TrackPitch::None, TrackRoll::Left, TrackElemType::DiagUp25ToLeftBank },
{ true, TrackPitch::Up25, TrackRoll::None, TrackCurve::None, TrackPitch::None, TrackRoll::None, TrackElemType::DiagUp25ToFlat },
{ true, TrackPitch::Up25, TrackRoll::None, TrackCurve::None, TrackPitch::None, TrackRoll::Right, TrackElemType::DiagUp25ToRightBank },
{ true, TrackPitch::Up25, TrackRoll::None, TrackCurve::None, TrackPitch::Up25, TrackRoll::None, TrackElemType::DiagUp25 },
{ true, TrackPitch::Up25, TrackRoll::None, TrackCurve::None, TrackPitch::Up60, TrackRoll::None, TrackElemType::DiagUp25ToUp60 },
{ true, TrackPitch::Up60, TrackRoll::None, TrackCurve::None, TrackPitch::None, TrackRoll::None, TrackElemType::DiagUp60ToFlat },
{ true, TrackPitch::Up60, TrackRoll::None, TrackCurve::None, TrackPitch::Up25, TrackRoll::None, TrackElemType::DiagUp60ToUp25 },
{ true, TrackPitch::Up60, TrackRoll::None, TrackCurve::None, TrackPitch::Up60, TrackRoll::None, TrackElemType::DiagUp60 },
{ false, TrackPitch::Down90, TrackRoll::None, TrackCurve::LeftSmall, TrackPitch::Down90, TrackRoll::None, TrackElemType::LeftQuarterTurn1TileDown90 },
{ false, TrackPitch::Down90, TrackRoll::None, TrackCurve::None, TrackPitch::Down90, TrackRoll::None, TrackElemType::Down90 },
{ false, TrackPitch::Down90, TrackRoll::None, TrackCurve::None, TrackPitch::Down60, TrackRoll::None, TrackElemType::Down90ToDown60 },
{ false, TrackPitch::Down90, TrackRoll::None, TrackCurve::RightSmall, TrackPitch::Down90, TrackRoll::None, TrackElemType::RightQuarterTurn1TileDown90 },
{ false, TrackPitch::Down60, TrackRoll::None, TrackCurve::LeftSmall, TrackPitch::Down60, TrackRoll::None, TrackElemType::LeftQuarterTurn1TileDown60 },
{ false, TrackPitch::Down60, TrackRoll::None, TrackCurve::None, TrackPitch::Down90, TrackRoll::None, TrackElemType::Down60ToDown90 },
{ false, TrackPitch::Down60, TrackRoll::None, TrackCurve::None, TrackPitch::Down60, TrackRoll::None, TrackElemType::Down60 },
{ false, TrackPitch::Down60, TrackRoll::None, TrackCurve::None, TrackPitch::Down25, TrackRoll::None, TrackElemType::Down60ToDown25 },
{ false, TrackPitch::Down60, TrackRoll::None, TrackCurve::None, TrackPitch::None, TrackRoll::None, TrackElemType::Down60ToFlat },
{ false, TrackPitch::Down60, TrackRoll::None, TrackCurve::RightSmall, TrackPitch::Down60, TrackRoll::None, TrackElemType::RightQuarterTurn1TileDown60 },
{ false, TrackPitch::Down25, TrackRoll::Left, TrackCurve::LeftSmall, TrackPitch::Down25, TrackRoll::Left, TrackElemType::LeftBankedQuarterTurn3TileDown25 },
{ false, TrackPitch::Down25, TrackRoll::Left, TrackCurve::Left, TrackPitch::Down25, TrackRoll::Left, TrackElemType::LeftBankedQuarterTurn5TileDown25 },
{ false, TrackPitch::Down25, TrackRoll::Left, TrackCurve::None, TrackPitch::Down25, TrackRoll::Left, TrackElemType::Down25LeftBanked },
{ false, TrackPitch::Down25, TrackRoll::Left, TrackCurve::None, TrackPitch::Down25, TrackRoll::None, TrackElemType::LeftBankedDown25ToDown25 },
{ false, TrackPitch::Down25, TrackRoll::Left, TrackCurve::None, TrackPitch::None, TrackRoll::Left, TrackElemType::LeftBankedDown25ToLeftBankedFlat },
{ false, TrackPitch::Down25, TrackRoll::Left, TrackCurve::None, TrackPitch::None, TrackRoll::None, TrackElemType::LeftBankedDown25ToFlat },
{ false, TrackPitch::Down25, TrackRoll::None, TrackCurve::LeftSmall, TrackPitch::Down25, TrackRoll::None, TrackElemType::LeftQuarterTurn3TilesDown25 },
{ false, TrackPitch::Down25, TrackRoll::None, TrackCurve::LeftSmall, TrackPitch::None, TrackRoll::Left, TrackElemType::LeftQuarterTurn3TilesDown25ToLeftBank },
{ false, TrackPitch::Down25, TrackRoll::None, TrackCurve::Left, TrackPitch::Down25, TrackRoll::None, TrackElemType::LeftQuarterTurn5TilesDown25 },
{ false, TrackPitch::Down25, TrackRoll::None, TrackCurve::None, TrackPitch::Down60, TrackRoll::None, TrackElemType::Down25ToDown60 },
{ false, TrackPitch::Down25, TrackRoll::None, TrackCurve::None, TrackPitch::Down25, TrackRoll::Left, TrackElemType::Down25ToLeftBankedDown25 },
{ false, TrackPitch::Down25, TrackRoll::None, TrackCurve::None, TrackPitch::Down25, TrackRoll::None, TrackElemType::Down25 },
{ false, TrackPitch::Down25, TrackRoll::None, TrackCurve::None, TrackPitch::Down25, TrackRoll::Right, TrackElemType::Down25ToRightBankedDown25 },
{ false, TrackPitch::Down25, TrackRoll::None, TrackCurve::None, TrackPitch::None, TrackRoll::Left, TrackElemType::Down25ToLeftBank },
{ false, TrackPitch::Down25, TrackRoll::None, TrackCurve::None, TrackPitch::None, TrackRoll::None, TrackElemType::Down25ToFlat },
{ false, TrackPitch::Down25, TrackRoll::None, TrackCurve::None, TrackPitch::None, TrackRoll::Right, TrackElemType::Down25ToRightBank },
{ false, TrackPitch::Down25, TrackRoll::None, TrackCurve::Right, TrackPitch::Down25, TrackRoll::None, TrackElemType::RightQuarterTurn5TilesDown25 },
{ false, TrackPitch::Down25, TrackRoll::None, TrackCurve::RightSmall, TrackPitch::None, TrackRoll::Right, TrackElemType::RightQuarterTurn3TilesDown25ToRightBank },
{ false, TrackPitch::Down25, TrackRoll::None, TrackCurve::RightSmall, TrackPitch::Down25, TrackRoll::None, TrackElemType::RightQuarterTurn3TilesDown25 },
{ false, TrackPitch::Down25, TrackRoll::Right, TrackCurve::None, TrackPitch::Down25, TrackRoll::None, TrackElemType::RightBankedDown25ToDown25 },
{ false, TrackPitch::Down25, TrackRoll::Right, TrackCurve::None, TrackPitch::Down25, TrackRoll::Right, TrackElemType::Down25RightBanked },
{ false, TrackPitch::Down25, TrackRoll::Right, TrackCurve::None, TrackPitch::None, TrackRoll::None, TrackElemType::RightBankedDown25ToFlat },
{ false, TrackPitch::Down25, TrackRoll::Right, TrackCurve::None, TrackPitch::None, TrackRoll::Right, TrackElemType::RightBankedDown25ToRightBankedFlat },
{ false, TrackPitch::Down25, TrackRoll::Right, TrackCurve::Right, TrackPitch::Down25, TrackRoll::Right, TrackElemType::RightBankedQuarterTurn5TileDown25 },
{ false, TrackPitch::Down25, TrackRoll::Right, TrackCurve::RightSmall, TrackPitch::Down25, TrackRoll::Right, TrackElemType::RightBankedQuarterTurn3TileDown25 },
{ false, TrackPitch::None, TrackRoll::Left, TrackCurve::LeftSmall, TrackPitch::None, TrackRoll::Left, TrackElemType::LeftBankedQuarterTurn3Tiles },
{ false, TrackPitch::None, TrackRoll::Left, TrackCurve::LeftSmall, TrackPitch::Up25, TrackRoll::None, TrackElemType::LeftBankToLeftQuarterTurn3TilesUp25 },
{ false, TrackPitch::None, TrackRoll::Left, TrackCurve::Left, TrackPitch::None, TrackRoll::Left, TrackElemType::BankedLeftQuarterTurn5Tiles },
{ false, TrackPitch::None, TrackRoll::Left, TrackCurve::LeftLarge, TrackPitch::None, TrackRoll::Left, TrackElemType::LeftEighthBankToDiag },
{ false, TrackPitch::None, TrackRoll::Left, TrackCurve::None, TrackPitch::Down25, TrackRoll::Left, TrackElemType::LeftBankedFlatToLeftBankedDown25 },
{ false, TrackPitch::None, TrackRoll::Left, TrackCurve::None, TrackPitch::Down25, TrackRoll::None, TrackElemType::LeftBankToDown25 },
{ false, TrackPitch::None, TrackRoll::Left, TrackCurve::None, TrackPitch::None, TrackRoll::Left, TrackElemType::LeftBank },
{ false, TrackPitch::None, TrackRoll::Left, TrackCurve::None, TrackPitch::None, TrackRoll::None, TrackElemType::LeftBankToFlat },
{ false, TrackPitch::None, TrackRoll::Left, TrackCurve::None, TrackPitch::Up25, TrackRoll::Left, TrackElemType::LeftBankedFlatToLeftBankedUp25 },
{ false, TrackPitch::None, TrackRoll::Left, TrackCurve::None, TrackPitch::Up25, TrackRoll::None, TrackElemType::LeftBankToUp25 },
{ false, TrackPitch::None, TrackRoll::None, TrackCurve::LeftSmall, TrackPitch::None, TrackRoll::None, TrackElemType::LeftQuarterTurn3Tiles },
{ false, TrackPitch::None, TrackRoll::None, TrackCurve::Left, TrackPitch::None, TrackRoll::None, TrackElemType::LeftQuarterTurn5Tiles },
{ false, TrackPitch::None, TrackRoll::None, TrackCurve::LeftLarge, TrackPitch::None, TrackRoll::None, TrackElemType::LeftEighthToDiag },
{ false, TrackPitch::None, TrackRoll::None, TrackCurve::None, TrackPitch::Down60, TrackRoll::None, TrackElemType::FlatToDown60 },
{ false, TrackPitch::None, TrackRoll::None, TrackCurve::None, TrackPitch::Down25, TrackRoll::Left, TrackElemType::FlatToLeftBankedDown25 },
{ false, TrackPitch::None, TrackRoll::None, TrackCurve::None, TrackPitch::Down25, TrackRoll::None, TrackElemType::FlatToDown25 },
{ false, TrackPitch::None, TrackRoll::None, TrackCurve::None, TrackPitch::Down25, TrackRoll::Right, TrackElemType::FlatToRightBankedDown25 },
{ false, TrackPitch::None, TrackRoll::None, TrackCurve::None, TrackPitch::None, TrackRoll::Left, TrackElemType::FlatToLeftBank },
{ false, TrackPitch::None, TrackRoll::None, TrackCurve::None, TrackPitch::None, TrackRoll::None, TrackElemType::Flat },
{ false, TrackPitch::None, TrackRoll::None, TrackCurve::LeftVerySmall, TrackPitch::None, TrackRoll::None, TrackElemType::LeftQuarterTurn1Tile },
{ false, TrackPitch::None, TrackRoll::None, TrackCurve::RightVerySmall, TrackPitch::None, TrackRoll::None, TrackElemType::RightQuarterTurn1Tile },
{ false, TrackPitch::None, TrackRoll::None, TrackCurve::None, TrackPitch::None, TrackRoll::Right, TrackElemType::FlatToRightBank },
{ false, TrackPitch::None, TrackRoll::None, TrackCurve::None, TrackPitch::Up25, TrackRoll::Left, TrackElemType::FlatToLeftBankedUp25 },
{ false, TrackPitch::None, TrackRoll::None, TrackCurve::None, TrackPitch::Up25, TrackRoll::None, TrackElemType::FlatToUp25 },
{ false, TrackPitch::None, TrackRoll::None, TrackCurve::None, TrackPitch::Up25, TrackRoll::Right, TrackElemType::FlatToRightBankedUp25 },
{ false, TrackPitch::None, TrackRoll::None, TrackCurve::None, TrackPitch::Up60, TrackRoll::None, TrackElemType::FlatToUp60 },
{ false, TrackPitch::None, TrackRoll::None, TrackCurve::RightLarge, TrackPitch::None, TrackRoll::None, TrackElemType::RightEighthToDiag },
{ false, TrackPitch::None, TrackRoll::None, TrackCurve::Right, TrackPitch::None, TrackRoll::None, TrackElemType::RightQuarterTurn5Tiles },
{ false, TrackPitch::None, TrackRoll::None, TrackCurve::RightSmall, TrackPitch::None, TrackRoll::None, TrackElemType::RightQuarterTurn3Tiles },
{ false, TrackPitch::None, TrackRoll::Right, TrackCurve::None, TrackPitch::Down25, TrackRoll::None, TrackElemType::RightBankToDown25 },
{ false, TrackPitch::None, TrackRoll::Right, TrackCurve::None, TrackPitch::Down25, TrackRoll::Right, TrackElemType::RightBankedFlatToRightBankedDown25 },
{ false, TrackPitch::None, TrackRoll::Right, TrackCurve::None, TrackPitch::None, TrackRoll::None, TrackElemType::RightBankToFlat },
{ false, TrackPitch::None, TrackRoll::Right, TrackCurve::None, TrackPitch::None, TrackRoll::Right, TrackElemType::RightBank },
{ false, TrackPitch::None, TrackRoll::Right, TrackCurve::None, TrackPitch::Up25, TrackRoll::None, TrackElemType::RightBankToUp25 },
{ false, TrackPitch::None, TrackRoll::Right, TrackCurve::None, TrackPitch::Up25, TrackRoll::Right, TrackElemType::RightBankedFlatToRightBankedUp25 },
{ false, TrackPitch::None, TrackRoll::Right, TrackCurve::RightLarge, TrackPitch::None, TrackRoll::Right, TrackElemType::RightEighthBankToDiag },
{ false, TrackPitch::None, TrackRoll::Right, TrackCurve::Right, TrackPitch::None, TrackRoll::Right, TrackElemType::BankedRightQuarterTurn5Tiles },
{ false, TrackPitch::None, TrackRoll::Right, TrackCurve::RightSmall, TrackPitch::None, TrackRoll::Right, TrackElemType::RightBankedQuarterTurn3Tiles },
{ false, TrackPitch::None, TrackRoll::Right, TrackCurve::RightSmall, TrackPitch::Up25, TrackRoll::None, TrackElemType::RightBankToRightQuarterTurn3TilesUp25 },
{ false, TrackPitch::Up25, TrackRoll::Left, TrackCurve::LeftSmall, TrackPitch::Up25, TrackRoll::Left, TrackElemType::LeftBankedQuarterTurn3TileUp25 },
{ false, TrackPitch::Up25, TrackRoll::Left, TrackCurve::Left, TrackPitch::Up25, TrackRoll::Left, TrackElemType::LeftBankedQuarterTurn5TileUp25 },
{ false, TrackPitch::Up25, TrackRoll::Left, TrackCurve::None, TrackPitch::None, TrackRoll::Left, TrackElemType::LeftBankedUp25ToLeftBankedFlat },
{ false, TrackPitch::Up25, TrackRoll::Left, TrackCurve::None, TrackPitch::None, TrackRoll::None, TrackElemType::LeftBankedUp25ToFlat },
{ false, TrackPitch::Up25, TrackRoll::Left, TrackCurve::None, TrackPitch::Up25, TrackRoll::Left, TrackElemType::Up25LeftBanked },
{ false, TrackPitch::Up25, TrackRoll::Left, TrackCurve::None, TrackPitch::Up25, TrackRoll::None, TrackElemType::LeftBankedUp25ToUp25 },
{ false, TrackPitch::Up25, TrackRoll::None, TrackCurve::LeftSmall, TrackPitch::Up25, TrackRoll::None, TrackElemType::LeftQuarterTurn3TilesUp25 },
{ false, TrackPitch::Up25, TrackRoll::None, TrackCurve::Left, TrackPitch::Up25, TrackRoll::None, TrackElemType::LeftQuarterTurn5TilesUp25 },
{ false, TrackPitch::Up25, TrackRoll::None, TrackCurve::None, TrackPitch::None, TrackRoll::Left, TrackElemType::Up25ToLeftBank },
{ false, TrackPitch::Up25, TrackRoll::None, TrackCurve::None, TrackPitch::None, TrackRoll::None, TrackElemType::Up25ToFlat },
{ false, TrackPitch::Up25, TrackRoll::None, TrackCurve::None, TrackPitch::None, TrackRoll::Right, TrackElemType::Up25ToRightBank },
{ false, TrackPitch::Up25, TrackRoll::None, TrackCurve::None, TrackPitch::Up25, TrackRoll::Left, TrackElemType::Up25ToLeftBankedUp25 },
{ false, TrackPitch::Up25, TrackRoll::None, TrackCurve::None, TrackPitch::Up25, TrackRoll::None, TrackElemType::Up25 },
{ false, TrackPitch::Up25, TrackRoll::None, TrackCurve::None, TrackPitch::Up25, TrackRoll::Right, TrackElemType::Up25ToRightBankedUp25 },
{ false, TrackPitch::Up25, TrackRoll::None, TrackCurve::None, TrackPitch::Up60, TrackRoll::None, TrackElemType::Up25ToUp60 },
{ false, TrackPitch::Up25, TrackRoll::None, TrackCurve::Right, TrackPitch::Up25, TrackRoll::None, TrackElemType::RightQuarterTurn5TilesUp25 },
{ false, TrackPitch::Up25, TrackRoll::None, TrackCurve::RightSmall, TrackPitch::Up25, TrackRoll::None, TrackElemType::RightQuarterTurn3TilesUp25 },
{ false, TrackPitch::Up25, TrackRoll::Right, TrackCurve::None, TrackPitch::None, TrackRoll::None, TrackElemType::RightBankedUp25ToFlat },
{ false, TrackPitch::Up25, TrackRoll::Right, TrackCurve::None, TrackPitch::None, TrackRoll::Right, TrackElemType::RightBankedUp25ToRightBankedFlat },
{ false, TrackPitch::Up25, TrackRoll::Right, TrackCurve::None, TrackPitch::Up25, TrackRoll::None, TrackElemType::RightBankedUp25ToUp25 },
{ false, TrackPitch::Up25, TrackRoll::Right, TrackCurve::None, TrackPitch::Up25, TrackRoll::Right, TrackElemType::Up25RightBanked },
{ false, TrackPitch::Up25, TrackRoll::Right, TrackCurve::Right, TrackPitch::Up25, TrackRoll::Right, TrackElemType::RightBankedQuarterTurn5TileUp25 },
{ false, TrackPitch::Up25, TrackRoll::Right, TrackCurve::RightSmall, TrackPitch::Up25, TrackRoll::Right, TrackElemType::RightBankedQuarterTurn3TileUp25 },
{ false, TrackPitch::Up60, TrackRoll::None, TrackCurve::LeftSmall, TrackPitch::Up60, TrackRoll::None, TrackElemType::LeftQuarterTurn1TileUp60 },
{ false, TrackPitch::Up60, TrackRoll::None, TrackCurve::None, TrackPitch::None, TrackRoll::None, TrackElemType::Up60ToFlat },
{ false, TrackPitch::Up60, TrackRoll::None, TrackCurve::None, TrackPitch::Up25, TrackRoll::None, TrackElemType::Up60ToUp25 },
{ false, TrackPitch::Up60, TrackRoll::None, TrackCurve::None, TrackPitch::Up60, TrackRoll::None, TrackElemType::Up60 },
{ false, TrackPitch::Up60, TrackRoll::None, TrackCurve::None, TrackPitch::Up90, TrackRoll::None, TrackElemType::Up60ToUp90 },
{ false, TrackPitch::Up60, TrackRoll::None, TrackCurve::RightSmall, TrackPitch::Up60, TrackRoll::None, TrackElemType::RightQuarterTurn1TileUp60 },
{ false, TrackPitch::Up90, TrackRoll::None, TrackCurve::LeftSmall, TrackPitch::Up90, TrackRoll::None, TrackElemType::LeftQuarterTurn1TileUp90 },
{ false, TrackPitch::Up90, TrackRoll::None, TrackCurve::None, TrackPitch::Up60, TrackRoll::None, TrackElemType::Up90ToUp60 },
{ false, TrackPitch::Up90, TrackRoll::None, TrackCurve::None, TrackPitch::Up90, TrackRoll::None, TrackElemType::Up90 },
{ false, TrackPitch::Up90, TrackRoll::None, TrackCurve::RightSmall, TrackPitch::Up90, TrackRoll::None, TrackElemType::RightQuarterTurn1TileUp90 },
{ false, TrackPitch::Up25, TrackRoll::None, TrackCurve::LeftLarge, TrackPitch::Up25, TrackRoll::None, TrackElemType::LeftEighthToDiagUp25 }, // TrackElemType::LeftEighthToDiagUp25
{ false, TrackPitch::Up25, TrackRoll::None, TrackCurve::RightLarge, TrackPitch::Up25, TrackRoll::None, TrackElemType::RightEighthToDiagUp25 }, // TrackElemType::RightEighthToDiagUp25
{ false, TrackPitch::Down25, TrackRoll::None, TrackCurve::LeftLarge, TrackPitch::Down25, TrackRoll::None, TrackElemType::LeftEighthToDiagDown25 }, // TrackElemType::LeftEighthToDiagDown25
{ false, TrackPitch::Down25, TrackRoll::None, TrackCurve::RightLarge, TrackPitch::Down25, TrackRoll::None, TrackElemType::RightEighthToDiagDown25 }, // TrackElemType::RightEighthToDiagDown25
{ true, TrackPitch::Up25, TrackRoll::None, TrackCurve::LeftLarge, TrackPitch::Up25, TrackRoll::None, TrackElemType::LeftEighthToOrthogonalUp25 }, // TrackElemType::LeftEighthToOrthogonalUp25
{ true, TrackPitch::Up25, TrackRoll::None, TrackCurve::RightLarge, TrackPitch::Up25, TrackRoll::None, TrackElemType::RightEighthToOrthogonalUp25 }, // TrackElemType::RightEighthToOrthogonalUp25
{ true, TrackPitch::Down25, TrackRoll::None, TrackCurve::LeftLarge, TrackPitch::Down25, TrackRoll::None, TrackElemType::LeftEighthToOrthogonalDown25 }, // TrackElemType::LeftEighthToOrthogonalDown25
{ true, TrackPitch::Down25, TrackRoll::None, TrackCurve::RightLarge, TrackPitch::Down25, TrackRoll::None, TrackElemType::RightEighthToOrthogonalDown25 }, // TrackElemType::RightEighthToOrthogonalDown25
{ true, TrackPitch::Up25, TrackRoll::None, TrackCurve::None, TrackPitch::Up25, TrackRoll::Left, TrackElemType::DiagUp25ToLeftBankedUp25 }, // TrackElemType::DiagUp25ToLeftBankedUp25
{ true, TrackPitch::Up25, TrackRoll::None, TrackCurve::None, TrackPitch::Up25, TrackRoll::Right, TrackElemType::DiagUp25ToRightBankedUp25 }, // TrackElemType::DiagUp25ToRightBankedUp25
{ true, TrackPitch::Up25, TrackRoll::Left, TrackCurve::None, TrackPitch::Up25, TrackRoll::None, TrackElemType::DiagLeftBankedUp25ToUp25 }, // TrackElemType::DiagLeftBankedUp25ToUp25
{ true, TrackPitch::Up25, TrackRoll::Right, TrackCurve::None, TrackPitch::Up25, TrackRoll::None, TrackElemType::DiagRightBankedUp25ToUp25 }, // TrackElemType::DiagRightBankedUp25ToUp25
{ true, TrackPitch::Down25, TrackRoll::None, TrackCurve::None, TrackPitch::Down25, TrackRoll::Left, TrackElemType::DiagDown25ToLeftBankedDown25 }, // TrackElemType::DiagDown25ToLeftBankedDown25
{ true, TrackPitch::Down25, TrackRoll::None, TrackCurve::None, TrackPitch::Down25, TrackRoll::Right, TrackElemType::DiagDown25ToRightBankedDown25 }, // TrackElemType::DiagDown25ToRightBankedDown25
{ true, TrackPitch::Down25, TrackRoll::Left, TrackCurve::None, TrackPitch::Down25, TrackRoll::None, TrackElemType::DiagLeftBankedDown25ToDown25 }, // TrackElemType::DiagLeftBankedDown25ToDown25
{ true, TrackPitch::Down25, TrackRoll::Right, TrackCurve::None, TrackPitch::Down25, TrackRoll::None, TrackElemType::DiagRightBankedDown25ToDown25 }, // TrackElemType::DiagRightBankedDown25ToDown25
{ true, TrackPitch::None, TrackRoll::Left, TrackCurve::None, TrackPitch::Up25, TrackRoll::Left, TrackElemType::DiagLeftBankedFlatToLeftBankedUp25 }, // TrackElemType::DiagLeftBankedFlatToLeftBankedUp25
{ true, TrackPitch::None, TrackRoll::Right, TrackCurve::None, TrackPitch::Up25, TrackRoll::Right, TrackElemType::DiagRightBankedFlatToRightBankedUp25 }, // TrackElemType::DiagRightBankedFlatToRightBankedUp25
{ true, TrackPitch::Up25, TrackRoll::Left, TrackCurve::None, TrackPitch::None, TrackRoll::Left, TrackElemType::DiagLeftBankedUp25ToLeftBankedFlat }, // TrackElemType::DiagLeftBankedUp25ToLeftBankedFlat
{ true, TrackPitch::Up25, TrackRoll::Right, TrackCurve::None, TrackPitch::None, TrackRoll::Right, TrackElemType::DiagRightBankedUp25ToRightBankedFlat }, // TrackElemType::DiagRightBankedUp25ToRightBankedFlat
{ true, TrackPitch::None, TrackRoll::Left, TrackCurve::None, TrackPitch::Down25, TrackRoll::Left, TrackElemType::DiagLeftBankedFlatToLeftBankedDown25 }, // TrackElemType::DiagLeftBankedFlatToLeftBankedDown25
{ true, TrackPitch::None, TrackRoll::Right, TrackCurve::None, TrackPitch::Down25, TrackRoll::Right, TrackElemType::DiagRightBankedFlatToRightBankedDown25 }, // TrackElemType::DiagRightBankedFlatToRightBankedDown25
{ true, TrackPitch::Down25, TrackRoll::Left, TrackCurve::None, TrackPitch::None, TrackRoll::Left, TrackElemType::DiagLeftBankedDown25ToLeftBankedFlat }, // TrackElemType::DiagLeftBankedDown25ToLeftBankedFlat
{ true, TrackPitch::Down25, TrackRoll::Right, TrackCurve::None, TrackPitch::None, TrackRoll::Right, TrackElemType::DiagRightBankedDown25ToRightBankedFlat }, // TrackElemType::DiagRightBankedDown25ToRightBankedFlat
{ true, TrackPitch::None, TrackRoll::None, TrackCurve::None, TrackPitch::Up25, TrackRoll::Left, TrackElemType::DiagFlatToLeftBankedUp25 }, // TrackElemType::DiagFlatToLeftBankedUp25
{ true, TrackPitch::None, TrackRoll::None, TrackCurve::None, TrackPitch::Up25, TrackRoll::Right, TrackElemType::DiagFlatToRightBankedUp25 }, // TrackElemType::DiagFlatToRightBankedUp25
{ true, TrackPitch::Up25, TrackRoll::Left, TrackCurve::None, TrackPitch::None, TrackRoll::None, TrackElemType::DiagLeftBankedUp25ToFlat }, // TrackElemType::DiagLeftBankedUp25ToFlat
{ true, TrackPitch::Up25, TrackRoll::Right, TrackCurve::None, TrackPitch::None, TrackRoll::None, TrackElemType::DiagRightBankedUp25ToFlat }, // TrackElemType::DiagRightBankedUp25ToFlat
{ true, TrackPitch::None, TrackRoll::None, TrackCurve::None, TrackPitch::Down25, TrackRoll::Left, TrackElemType::DiagFlatToLeftBankedDown25 }, // TrackElemType::DiagFlatToLeftBankedDown25
{ true, TrackPitch::None, TrackRoll::None, TrackCurve::None, TrackPitch::Down25, TrackRoll::Right, TrackElemType::DiagFlatToRightBankedDown25 }, // TrackElemType::DiagFlatToRightBankedDown25
{ true, TrackPitch::Down25, TrackRoll::Left, TrackCurve::None, TrackPitch::None, TrackRoll::None, TrackElemType::DiagLeftBankedDown25ToFlat }, // TrackElemType::DiagLeftBankedDown25ToFlat
{ true, TrackPitch::Down25, TrackRoll::Right, TrackCurve::None, TrackPitch::None, TrackRoll::None, TrackElemType::DiagRightBankedDown25ToFlat }, // TrackElemType::DiagRightBankedDown25ToFlat
{ true, TrackPitch::Up25, TrackRoll::Left, TrackCurve::None, TrackPitch::Up25, TrackRoll::Left, TrackElemType::DiagUp25LeftBanked }, // TrackElemType::Up25LeftBanked
{ true, TrackPitch::Up25, TrackRoll::Right, TrackCurve::None, TrackPitch::Up25, TrackRoll::Right, TrackElemType::DiagUp25RightBanked }, // TrackElemType::Up25RightBanked
{ true, TrackPitch::Down25, TrackRoll::Left, TrackCurve::None, TrackPitch::Down25, TrackRoll::Left, TrackElemType::DiagDown25LeftBanked }, // TrackElemType::Down25LeftBanked
{ true, TrackPitch::Down25, TrackRoll::Right, TrackCurve::None, TrackPitch::Down25, TrackRoll::Right, TrackElemType::DiagDown25RightBanked }, // TrackElemType::Down25RightBanked
{ false, TrackPitch::Up25, TrackRoll::Left, TrackCurve::LeftLarge, TrackPitch::Up25, TrackRoll::Left, TrackElemType::LeftEighthBankToDiagUp25 }, // TrackElemType::LeftEighthBankToDiagUp25
{ false, TrackPitch::Up25, TrackRoll::Right, TrackCurve::RightLarge, TrackPitch::Up25, TrackRoll::Right, TrackElemType::RightEighthBankToDiagUp25 }, // TrackElemType::RightEighthBankToDiagUp25
{ false, TrackPitch::Down25, TrackRoll::Left, TrackCurve::LeftLarge, TrackPitch::Down25, TrackRoll::Left, TrackElemType::LeftEighthBankToDiagDown25 }, // TrackElemType::LeftEighthBankToDiagDown25
{ false, TrackPitch::Down25, TrackRoll::Right, TrackCurve::RightLarge, TrackPitch::Down25, TrackRoll::Right, TrackElemType::RightEighthBankToDiagDown25 }, // TrackElemType::RightEighthBankToDiagDown25
{ true, TrackPitch::Up25, TrackRoll::Left, TrackCurve::LeftLarge, TrackPitch::Up25, TrackRoll::Left, TrackElemType::LeftEighthBankToOrthogonalUp25 }, // TrackElemType::LeftEighthBankToOrthogonalUp25
{ true, TrackPitch::Up25, TrackRoll::Right, TrackCurve::RightLarge, TrackPitch::Up25, TrackRoll::Right, TrackElemType::RightEighthBankToOrthogonalUp25 }, // TrackElemType::RightEighthBankToOrthogonalUp25
{ true, TrackPitch::Down25, TrackRoll::Left, TrackCurve::LeftLarge, TrackPitch::Down25, TrackRoll::Left, TrackElemType::LeftEighthBankToOrthogonalDown25 }, // TrackElemType::LeftEighthBankToOrthogonalDown25
{ true, TrackPitch::Down25, TrackRoll::Right, TrackCurve::RightLarge, TrackPitch::Down25, TrackRoll::Right, TrackElemType::RightEighthBankToOrthogonalDown25 }, // TrackElemType::RightEighthBankToOrthogonalDown25
{ true, TrackPitch::Down60, TrackRoll::None, TrackCurve::None, TrackPitch::Down60, TrackRoll::None, TrackElemType::DiagDown60 },
{ true, TrackPitch::Down60, TrackRoll::None, TrackCurve::None, TrackPitch::Down25, TrackRoll::None, TrackElemType::DiagDown60ToDown25 },
{ true, TrackPitch::Down60, TrackRoll::None, TrackCurve::None, TrackPitch::None, TrackRoll::None, TrackElemType::DiagDown60ToFlat },
{ true, TrackPitch::Down25, TrackRoll::None, TrackCurve::None, TrackPitch::Down60, TrackRoll::None, TrackElemType::DiagDown25ToDown60 },
{ true, TrackPitch::Down25, TrackRoll::None, TrackCurve::None, TrackPitch::Down25, TrackRoll::None, TrackElemType::DiagDown25 },
{ true, TrackPitch::Down25, TrackRoll::None, TrackCurve::None, TrackPitch::None, TrackRoll::Left, TrackElemType::DiagDown25ToLeftBank },
{ true, TrackPitch::Down25, TrackRoll::None, TrackCurve::None, TrackPitch::None, TrackRoll::None, TrackElemType::DiagDown25ToFlat },
{ true, TrackPitch::Down25, TrackRoll::None, TrackCurve::None, TrackPitch::None, TrackRoll::Right, TrackElemType::DiagDown25ToRightBank },
{ true, TrackPitch::None, TrackRoll::Left, TrackCurve::LeftLarge, TrackPitch::None, TrackRoll::Left, TrackElemType::LeftEighthBankToOrthogonal },
{ true, TrackPitch::None, TrackRoll::Left, TrackCurve::None, TrackPitch::Down25, TrackRoll::None, TrackElemType::DiagLeftBankToDown25 },
{ true, TrackPitch::None, TrackRoll::Left, TrackCurve::None, TrackPitch::None, TrackRoll::Left, TrackElemType::DiagLeftBank },
{ true, TrackPitch::None, TrackRoll::Left, TrackCurve::None, TrackPitch::None, TrackRoll::None, TrackElemType::DiagLeftBankToFlat },
{ true, TrackPitch::None, TrackRoll::Left, TrackCurve::None, TrackPitch::Up25, TrackRoll::None, TrackElemType::DiagLeftBankToUp25 },
{ true, TrackPitch::None, TrackRoll::None, TrackCurve::LeftLarge, TrackPitch::None, TrackRoll::None, TrackElemType::LeftEighthToOrthogonal },
{ true, TrackPitch::None, TrackRoll::None, TrackCurve::None, TrackPitch::Down60, TrackRoll::None, TrackElemType::DiagFlatToDown60 },
{ true, TrackPitch::None, TrackRoll::None, TrackCurve::None, TrackPitch::Down25, TrackRoll::None, TrackElemType::DiagFlatToDown25 },
{ true, TrackPitch::None, TrackRoll::None, TrackCurve::None, TrackPitch::None, TrackRoll::Left, TrackElemType::DiagFlatToLeftBank },
{ true, TrackPitch::None, TrackRoll::None, TrackCurve::None, TrackPitch::None, TrackRoll::None, TrackElemType::DiagFlat },
{ true, TrackPitch::None, TrackRoll::None, TrackCurve::None, TrackPitch::None, TrackRoll::Right, TrackElemType::DiagFlatToRightBank },
{ true, TrackPitch::None, TrackRoll::None, TrackCurve::None, TrackPitch::Up25, TrackRoll::None, TrackElemType::DiagFlatToUp25 },
{ true, TrackPitch::None, TrackRoll::None, TrackCurve::None, TrackPitch::Up60, TrackRoll::None, TrackElemType::DiagFlatToUp60 },
{ true, TrackPitch::None, TrackRoll::None, TrackCurve::RightLarge, TrackPitch::None, TrackRoll::None, TrackElemType::RightEighthToOrthogonal },
{ true, TrackPitch::None, TrackRoll::Right, TrackCurve::None, TrackPitch::Down25, TrackRoll::None, TrackElemType::DiagRightBankToDown25 },
{ true, TrackPitch::None, TrackRoll::Right, TrackCurve::None, TrackPitch::None, TrackRoll::None, TrackElemType::DiagRightBankToFlat },
{ true, TrackPitch::None, TrackRoll::Right, TrackCurve::None, TrackPitch::None, TrackRoll::Right, TrackElemType::DiagRightBank },
{ true, TrackPitch::None, TrackRoll::Right, TrackCurve::None, TrackPitch::Up25, TrackRoll::None, TrackElemType::DiagRightBankToUp25 },
{ true, TrackPitch::None, TrackRoll::Right, TrackCurve::RightLarge, TrackPitch::None, TrackRoll::Right, TrackElemType::RightEighthBankToOrthogonal },
{ true, TrackPitch::Up25, TrackRoll::None, TrackCurve::None, TrackPitch::None, TrackRoll::Left, TrackElemType::DiagUp25ToLeftBank },
{ true, TrackPitch::Up25, TrackRoll::None, TrackCurve::None, TrackPitch::None, TrackRoll::None, TrackElemType::DiagUp25ToFlat },
{ true, TrackPitch::Up25, TrackRoll::None, TrackCurve::None, TrackPitch::None, TrackRoll::Right, TrackElemType::DiagUp25ToRightBank },
{ true, TrackPitch::Up25, TrackRoll::None, TrackCurve::None, TrackPitch::Up25, TrackRoll::None, TrackElemType::DiagUp25 },
{ true, TrackPitch::Up25, TrackRoll::None, TrackCurve::None, TrackPitch::Up60, TrackRoll::None, TrackElemType::DiagUp25ToUp60 },
{ true, TrackPitch::Up60, TrackRoll::None, TrackCurve::None, TrackPitch::None, TrackRoll::None, TrackElemType::DiagUp60ToFlat },
{ true, TrackPitch::Up60, TrackRoll::None, TrackCurve::None, TrackPitch::Up25, TrackRoll::None, TrackElemType::DiagUp60ToUp25 },
{ true, TrackPitch::Up60, TrackRoll::None, TrackCurve::None, TrackPitch::Up60, TrackRoll::None, TrackElemType::DiagUp60 },
{ false, TrackPitch::Down90, TrackRoll::None, TrackCurve::LeftSmall, TrackPitch::Down90, TrackRoll::None, TrackElemType::LeftQuarterTurn1TileDown90 },
{ false, TrackPitch::Down90, TrackRoll::None, TrackCurve::None, TrackPitch::Down90, TrackRoll::None, TrackElemType::Down90 },
{ false, TrackPitch::Down90, TrackRoll::None, TrackCurve::None, TrackPitch::Down60, TrackRoll::None, TrackElemType::Down90ToDown60 },
{ false, TrackPitch::Down90, TrackRoll::None, TrackCurve::RightSmall, TrackPitch::Down90, TrackRoll::None, TrackElemType::RightQuarterTurn1TileDown90 },
{ false, TrackPitch::Down60, TrackRoll::None, TrackCurve::LeftSmall, TrackPitch::Down60, TrackRoll::None, TrackElemType::LeftQuarterTurn1TileDown60 },
{ false, TrackPitch::Down60, TrackRoll::None, TrackCurve::None, TrackPitch::Down90, TrackRoll::None, TrackElemType::Down60ToDown90 },
{ false, TrackPitch::Down60, TrackRoll::None, TrackCurve::None, TrackPitch::Down60, TrackRoll::None, TrackElemType::Down60 },
{ false, TrackPitch::Down60, TrackRoll::None, TrackCurve::None, TrackPitch::Down25, TrackRoll::None, TrackElemType::Down60ToDown25 },
{ false, TrackPitch::Down60, TrackRoll::None, TrackCurve::None, TrackPitch::None, TrackRoll::None, TrackElemType::Down60ToFlat },
{ false, TrackPitch::Down60, TrackRoll::None, TrackCurve::RightSmall, TrackPitch::Down60, TrackRoll::None, TrackElemType::RightQuarterTurn1TileDown60 },
{ false, TrackPitch::Down25, TrackRoll::Left, TrackCurve::LeftSmall, TrackPitch::Down25, TrackRoll::Left, TrackElemType::LeftBankedQuarterTurn3TileDown25 },
{ false, TrackPitch::Down25, TrackRoll::Left, TrackCurve::Left, TrackPitch::Down25, TrackRoll::Left, TrackElemType::LeftBankedQuarterTurn5TileDown25 },
{ false, TrackPitch::Down25, TrackRoll::Left, TrackCurve::None, TrackPitch::Down25, TrackRoll::Left, TrackElemType::Down25LeftBanked },
{ false, TrackPitch::Down25, TrackRoll::Left, TrackCurve::None, TrackPitch::Down25, TrackRoll::None, TrackElemType::LeftBankedDown25ToDown25 },
{ false, TrackPitch::Down25, TrackRoll::Left, TrackCurve::None, TrackPitch::None, TrackRoll::Left, TrackElemType::LeftBankedDown25ToLeftBankedFlat },
{ false, TrackPitch::Down25, TrackRoll::Left, TrackCurve::None, TrackPitch::None, TrackRoll::None, TrackElemType::LeftBankedDown25ToFlat },
{ false, TrackPitch::Down25, TrackRoll::None, TrackCurve::LeftSmall, TrackPitch::Down25, TrackRoll::None, TrackElemType::LeftQuarterTurn3TilesDown25 },
{ false, TrackPitch::Down25, TrackRoll::None, TrackCurve::LeftSmall, TrackPitch::None, TrackRoll::Left, TrackElemType::LeftQuarterTurn3TilesDown25ToLeftBank },
{ false, TrackPitch::Down25, TrackRoll::None, TrackCurve::Left, TrackPitch::Down25, TrackRoll::None, TrackElemType::LeftQuarterTurn5TilesDown25 },
{ false, TrackPitch::Down25, TrackRoll::None, TrackCurve::None, TrackPitch::Down60, TrackRoll::None, TrackElemType::Down25ToDown60 },
{ false, TrackPitch::Down25, TrackRoll::None, TrackCurve::None, TrackPitch::Down25, TrackRoll::Left, TrackElemType::Down25ToLeftBankedDown25 },
{ false, TrackPitch::Down25, TrackRoll::None, TrackCurve::None, TrackPitch::Down25, TrackRoll::None, TrackElemType::Down25 },
{ false, TrackPitch::Down25, TrackRoll::None, TrackCurve::None, TrackPitch::Down25, TrackRoll::Right, TrackElemType::Down25ToRightBankedDown25 },
{ false, TrackPitch::Down25, TrackRoll::None, TrackCurve::None, TrackPitch::None, TrackRoll::Left, TrackElemType::Down25ToLeftBank },
{ false, TrackPitch::Down25, TrackRoll::None, TrackCurve::None, TrackPitch::None, TrackRoll::None, TrackElemType::Down25ToFlat },
{ false, TrackPitch::Down25, TrackRoll::None, TrackCurve::None, TrackPitch::None, TrackRoll::Right, TrackElemType::Down25ToRightBank },
{ false, TrackPitch::Down25, TrackRoll::None, TrackCurve::Right, TrackPitch::Down25, TrackRoll::None, TrackElemType::RightQuarterTurn5TilesDown25 },
{ false, TrackPitch::Down25, TrackRoll::None, TrackCurve::RightSmall, TrackPitch::None, TrackRoll::Right, TrackElemType::RightQuarterTurn3TilesDown25ToRightBank },
{ false, TrackPitch::Down25, TrackRoll::None, TrackCurve::RightSmall, TrackPitch::Down25, TrackRoll::None, TrackElemType::RightQuarterTurn3TilesDown25 },
{ false, TrackPitch::Down25, TrackRoll::Right, TrackCurve::None, TrackPitch::Down25, TrackRoll::None, TrackElemType::RightBankedDown25ToDown25 },
{ false, TrackPitch::Down25, TrackRoll::Right, TrackCurve::None, TrackPitch::Down25, TrackRoll::Right, TrackElemType::Down25RightBanked },
{ false, TrackPitch::Down25, TrackRoll::Right, TrackCurve::None, TrackPitch::None, TrackRoll::None, TrackElemType::RightBankedDown25ToFlat },
{ false, TrackPitch::Down25, TrackRoll::Right, TrackCurve::None, TrackPitch::None, TrackRoll::Right, TrackElemType::RightBankedDown25ToRightBankedFlat },
{ false, TrackPitch::Down25, TrackRoll::Right, TrackCurve::Right, TrackPitch::Down25, TrackRoll::Right, TrackElemType::RightBankedQuarterTurn5TileDown25 },
{ false, TrackPitch::Down25, TrackRoll::Right, TrackCurve::RightSmall, TrackPitch::Down25, TrackRoll::Right, TrackElemType::RightBankedQuarterTurn3TileDown25 },
{ false, TrackPitch::None, TrackRoll::Left, TrackCurve::LeftSmall, TrackPitch::None, TrackRoll::Left, TrackElemType::LeftBankedQuarterTurn3Tiles },
{ false, TrackPitch::None, TrackRoll::Left, TrackCurve::LeftSmall, TrackPitch::Up25, TrackRoll::None, TrackElemType::LeftBankToLeftQuarterTurn3TilesUp25 },
{ false, TrackPitch::None, TrackRoll::Left, TrackCurve::Left, TrackPitch::None, TrackRoll::Left, TrackElemType::BankedLeftQuarterTurn5Tiles },
{ false, TrackPitch::None, TrackRoll::Left, TrackCurve::LeftLarge, TrackPitch::None, TrackRoll::Left, TrackElemType::LeftEighthBankToDiag },
{ false, TrackPitch::None, TrackRoll::Left, TrackCurve::None, TrackPitch::Down25, TrackRoll::Left, TrackElemType::LeftBankedFlatToLeftBankedDown25 },
{ false, TrackPitch::None, TrackRoll::Left, TrackCurve::None, TrackPitch::Down25, TrackRoll::None, TrackElemType::LeftBankToDown25 },
{ false, TrackPitch::None, TrackRoll::Left, TrackCurve::None, TrackPitch::None, TrackRoll::Left, TrackElemType::LeftBank },
{ false, TrackPitch::None, TrackRoll::Left, TrackCurve::None, TrackPitch::None, TrackRoll::None, TrackElemType::LeftBankToFlat },
{ false, TrackPitch::None, TrackRoll::Left, TrackCurve::None, TrackPitch::Up25, TrackRoll::Left, TrackElemType::LeftBankedFlatToLeftBankedUp25 },
{ false, TrackPitch::None, TrackRoll::Left, TrackCurve::None, TrackPitch::Up25, TrackRoll::None, TrackElemType::LeftBankToUp25 },
{ false, TrackPitch::None, TrackRoll::None, TrackCurve::LeftSmall, TrackPitch::None, TrackRoll::None, TrackElemType::LeftQuarterTurn3Tiles },
{ false, TrackPitch::None, TrackRoll::None, TrackCurve::Left, TrackPitch::None, TrackRoll::None, TrackElemType::LeftQuarterTurn5Tiles },
{ false, TrackPitch::None, TrackRoll::None, TrackCurve::LeftLarge, TrackPitch::None, TrackRoll::None, TrackElemType::LeftEighthToDiag },
{ false, TrackPitch::None, TrackRoll::None, TrackCurve::None, TrackPitch::Down60, TrackRoll::None, TrackElemType::FlatToDown60 },
{ false, TrackPitch::None, TrackRoll::None, TrackCurve::None, TrackPitch::Down25, TrackRoll::Left, TrackElemType::FlatToLeftBankedDown25 },
{ false, TrackPitch::None, TrackRoll::None, TrackCurve::None, TrackPitch::Down25, TrackRoll::None, TrackElemType::FlatToDown25 },
{ false, TrackPitch::None, TrackRoll::None, TrackCurve::None, TrackPitch::Down25, TrackRoll::Right, TrackElemType::FlatToRightBankedDown25 },
{ false, TrackPitch::None, TrackRoll::None, TrackCurve::None, TrackPitch::None, TrackRoll::Left, TrackElemType::FlatToLeftBank },
{ false, TrackPitch::None, TrackRoll::None, TrackCurve::None, TrackPitch::None, TrackRoll::None, TrackElemType::Flat },
{ false, TrackPitch::None, TrackRoll::None, TrackCurve::LeftVerySmall, TrackPitch::None, TrackRoll::None, TrackElemType::LeftQuarterTurn1Tile },
{ false, TrackPitch::None, TrackRoll::None, TrackCurve::RightVerySmall, TrackPitch::None, TrackRoll::None, TrackElemType::RightQuarterTurn1Tile },
{ false, TrackPitch::None, TrackRoll::None, TrackCurve::None, TrackPitch::None, TrackRoll::Right, TrackElemType::FlatToRightBank },
{ false, TrackPitch::None, TrackRoll::None, TrackCurve::None, TrackPitch::Up25, TrackRoll::Left, TrackElemType::FlatToLeftBankedUp25 },
{ false, TrackPitch::None, TrackRoll::None, TrackCurve::None, TrackPitch::Up25, TrackRoll::None, TrackElemType::FlatToUp25 },
{ false, TrackPitch::None, TrackRoll::None, TrackCurve::None, TrackPitch::Up25, TrackRoll::Right, TrackElemType::FlatToRightBankedUp25 },
{ false, TrackPitch::None, TrackRoll::None, TrackCurve::None, TrackPitch::Up60, TrackRoll::None, TrackElemType::FlatToUp60 },
{ false, TrackPitch::None, TrackRoll::None, TrackCurve::RightLarge, TrackPitch::None, TrackRoll::None, TrackElemType::RightEighthToDiag },
{ false, TrackPitch::None, TrackRoll::None, TrackCurve::Right, TrackPitch::None, TrackRoll::None, TrackElemType::RightQuarterTurn5Tiles },
{ false, TrackPitch::None, TrackRoll::None, TrackCurve::RightSmall, TrackPitch::None, TrackRoll::None, TrackElemType::RightQuarterTurn3Tiles },
{ false, TrackPitch::None, TrackRoll::Right, TrackCurve::None, TrackPitch::Down25, TrackRoll::None, TrackElemType::RightBankToDown25 },
{ false, TrackPitch::None, TrackRoll::Right, TrackCurve::None, TrackPitch::Down25, TrackRoll::Right, TrackElemType::RightBankedFlatToRightBankedDown25 },
{ false, TrackPitch::None, TrackRoll::Right, TrackCurve::None, TrackPitch::None, TrackRoll::None, TrackElemType::RightBankToFlat },
{ false, TrackPitch::None, TrackRoll::Right, TrackCurve::None, TrackPitch::None, TrackRoll::Right, TrackElemType::RightBank },
{ false, TrackPitch::None, TrackRoll::Right, TrackCurve::None, TrackPitch::Up25, TrackRoll::None, TrackElemType::RightBankToUp25 },
{ false, TrackPitch::None, TrackRoll::Right, TrackCurve::None, TrackPitch::Up25, TrackRoll::Right, TrackElemType::RightBankedFlatToRightBankedUp25 },
{ false, TrackPitch::None, TrackRoll::Right, TrackCurve::RightLarge, TrackPitch::None, TrackRoll::Right, TrackElemType::RightEighthBankToDiag },
{ false, TrackPitch::None, TrackRoll::Right, TrackCurve::Right, TrackPitch::None, TrackRoll::Right, TrackElemType::BankedRightQuarterTurn5Tiles },
{ false, TrackPitch::None, TrackRoll::Right, TrackCurve::RightSmall, TrackPitch::None, TrackRoll::Right, TrackElemType::RightBankedQuarterTurn3Tiles },
{ false, TrackPitch::None, TrackRoll::Right, TrackCurve::RightSmall, TrackPitch::Up25, TrackRoll::None, TrackElemType::RightBankToRightQuarterTurn3TilesUp25 },
{ false, TrackPitch::Up25, TrackRoll::Left, TrackCurve::LeftSmall, TrackPitch::Up25, TrackRoll::Left, TrackElemType::LeftBankedQuarterTurn3TileUp25 },
{ false, TrackPitch::Up25, TrackRoll::Left, TrackCurve::Left, TrackPitch::Up25, TrackRoll::Left, TrackElemType::LeftBankedQuarterTurn5TileUp25 },
{ false, TrackPitch::Up25, TrackRoll::Left, TrackCurve::None, TrackPitch::None, TrackRoll::Left, TrackElemType::LeftBankedUp25ToLeftBankedFlat },
{ false, TrackPitch::Up25, TrackRoll::Left, TrackCurve::None, TrackPitch::None, TrackRoll::None, TrackElemType::LeftBankedUp25ToFlat },
{ false, TrackPitch::Up25, TrackRoll::Left, TrackCurve::None, TrackPitch::Up25, TrackRoll::Left, TrackElemType::Up25LeftBanked },
{ false, TrackPitch::Up25, TrackRoll::Left, TrackCurve::None, TrackPitch::Up25, TrackRoll::None, TrackElemType::LeftBankedUp25ToUp25 },
{ false, TrackPitch::Up25, TrackRoll::None, TrackCurve::LeftSmall, TrackPitch::Up25, TrackRoll::None, TrackElemType::LeftQuarterTurn3TilesUp25 },
{ false, TrackPitch::Up25, TrackRoll::None, TrackCurve::Left, TrackPitch::Up25, TrackRoll::None, TrackElemType::LeftQuarterTurn5TilesUp25 },
{ false, TrackPitch::Up25, TrackRoll::None, TrackCurve::None, TrackPitch::None, TrackRoll::Left, TrackElemType::Up25ToLeftBank },
{ false, TrackPitch::Up25, TrackRoll::None, TrackCurve::None, TrackPitch::None, TrackRoll::None, TrackElemType::Up25ToFlat },
{ false, TrackPitch::Up25, TrackRoll::None, TrackCurve::None, TrackPitch::None, TrackRoll::Right, TrackElemType::Up25ToRightBank },
{ false, TrackPitch::Up25, TrackRoll::None, TrackCurve::None, TrackPitch::Up25, TrackRoll::Left, TrackElemType::Up25ToLeftBankedUp25 },
{ false, TrackPitch::Up25, TrackRoll::None, TrackCurve::None, TrackPitch::Up25, TrackRoll::None, TrackElemType::Up25 },
{ false, TrackPitch::Up25, TrackRoll::None, TrackCurve::None, TrackPitch::Up25, TrackRoll::Right, TrackElemType::Up25ToRightBankedUp25 },
{ false, TrackPitch::Up25, TrackRoll::None, TrackCurve::None, TrackPitch::Up60, TrackRoll::None, TrackElemType::Up25ToUp60 },
{ false, TrackPitch::Up25, TrackRoll::None, TrackCurve::Right, TrackPitch::Up25, TrackRoll::None, TrackElemType::RightQuarterTurn5TilesUp25 },
{ false, TrackPitch::Up25, TrackRoll::None, TrackCurve::RightSmall, TrackPitch::Up25, TrackRoll::None, TrackElemType::RightQuarterTurn3TilesUp25 },
{ false, TrackPitch::Up25, TrackRoll::Right, TrackCurve::None, TrackPitch::None, TrackRoll::None, TrackElemType::RightBankedUp25ToFlat },
{ false, TrackPitch::Up25, TrackRoll::Right, TrackCurve::None, TrackPitch::None, TrackRoll::Right, TrackElemType::RightBankedUp25ToRightBankedFlat },
{ false, TrackPitch::Up25, TrackRoll::Right, TrackCurve::None, TrackPitch::Up25, TrackRoll::None, TrackElemType::RightBankedUp25ToUp25 },
{ false, TrackPitch::Up25, TrackRoll::Right, TrackCurve::None, TrackPitch::Up25, TrackRoll::Right, TrackElemType::Up25RightBanked },
{ false, TrackPitch::Up25, TrackRoll::Right, TrackCurve::Right, TrackPitch::Up25, TrackRoll::Right, TrackElemType::RightBankedQuarterTurn5TileUp25 },
{ false, TrackPitch::Up25, TrackRoll::Right, TrackCurve::RightSmall, TrackPitch::Up25, TrackRoll::Right, TrackElemType::RightBankedQuarterTurn3TileUp25 },
{ false, TrackPitch::Up60, TrackRoll::None, TrackCurve::LeftSmall, TrackPitch::Up60, TrackRoll::None, TrackElemType::LeftQuarterTurn1TileUp60 },
{ false, TrackPitch::Up60, TrackRoll::None, TrackCurve::None, TrackPitch::None, TrackRoll::None, TrackElemType::Up60ToFlat },
{ false, TrackPitch::Up60, TrackRoll::None, TrackCurve::None, TrackPitch::Up25, TrackRoll::None, TrackElemType::Up60ToUp25 },
{ false, TrackPitch::Up60, TrackRoll::None, TrackCurve::None, TrackPitch::Up60, TrackRoll::None, TrackElemType::Up60 },
{ false, TrackPitch::Up60, TrackRoll::None, TrackCurve::None, TrackPitch::Up90, TrackRoll::None, TrackElemType::Up60ToUp90 },
{ false, TrackPitch::Up60, TrackRoll::None, TrackCurve::RightSmall, TrackPitch::Up60, TrackRoll::None, TrackElemType::RightQuarterTurn1TileUp60 },
{ false, TrackPitch::Up90, TrackRoll::None, TrackCurve::LeftSmall, TrackPitch::Up90, TrackRoll::None, TrackElemType::LeftQuarterTurn1TileUp90 },
{ false, TrackPitch::Up90, TrackRoll::None, TrackCurve::None, TrackPitch::Up60, TrackRoll::None, TrackElemType::Up90ToUp60 },
{ false, TrackPitch::Up90, TrackRoll::None, TrackCurve::None, TrackPitch::Up90, TrackRoll::None, TrackElemType::Up90 },
{ false, TrackPitch::Up90, TrackRoll::None, TrackCurve::RightSmall, TrackPitch::Up90, TrackRoll::None, TrackElemType::RightQuarterTurn1TileUp90 },
{ false, TrackPitch::Up25, TrackRoll::None, TrackCurve::LeftLarge, TrackPitch::Up25, TrackRoll::None, TrackElemType::LeftEighthToDiagUp25 },
{ false, TrackPitch::Up25, TrackRoll::None, TrackCurve::RightLarge, TrackPitch::Up25, TrackRoll::None, TrackElemType::RightEighthToDiagUp25 },
{ false, TrackPitch::Down25, TrackRoll::None, TrackCurve::LeftLarge, TrackPitch::Down25, TrackRoll::None, TrackElemType::LeftEighthToDiagDown25 },
{ false, TrackPitch::Down25, TrackRoll::None, TrackCurve::RightLarge, TrackPitch::Down25, TrackRoll::None, TrackElemType::RightEighthToDiagDown25 },
{ true, TrackPitch::Up25, TrackRoll::None, TrackCurve::LeftLarge, TrackPitch::Up25, TrackRoll::None, TrackElemType::LeftEighthToOrthogonalUp25 },
{ true, TrackPitch::Up25, TrackRoll::None, TrackCurve::RightLarge, TrackPitch::Up25, TrackRoll::None, TrackElemType::RightEighthToOrthogonalUp25 },
{ true, TrackPitch::Down25, TrackRoll::None, TrackCurve::LeftLarge, TrackPitch::Down25, TrackRoll::None, TrackElemType::LeftEighthToOrthogonalDown25 },
{ true, TrackPitch::Down25, TrackRoll::None, TrackCurve::RightLarge, TrackPitch::Down25, TrackRoll::None, TrackElemType::RightEighthToOrthogonalDown25 },
{ true, TrackPitch::Up25, TrackRoll::None, TrackCurve::None, TrackPitch::Up25, TrackRoll::Left, TrackElemType::DiagUp25ToLeftBankedUp25 },
{ true, TrackPitch::Up25, TrackRoll::None, TrackCurve::None, TrackPitch::Up25, TrackRoll::Right, TrackElemType::DiagUp25ToRightBankedUp25 },
{ true, TrackPitch::Up25, TrackRoll::Left, TrackCurve::None, TrackPitch::Up25, TrackRoll::None, TrackElemType::DiagLeftBankedUp25ToUp25 },
{ true, TrackPitch::Up25, TrackRoll::Right, TrackCurve::None, TrackPitch::Up25, TrackRoll::None, TrackElemType::DiagRightBankedUp25ToUp25 },
{ true, TrackPitch::Down25, TrackRoll::None, TrackCurve::None, TrackPitch::Down25, TrackRoll::Left, TrackElemType::DiagDown25ToLeftBankedDown25 },
{ true, TrackPitch::Down25, TrackRoll::None, TrackCurve::None, TrackPitch::Down25, TrackRoll::Right, TrackElemType::DiagDown25ToRightBankedDown25 },
{ true, TrackPitch::Down25, TrackRoll::Left, TrackCurve::None, TrackPitch::Down25, TrackRoll::None, TrackElemType::DiagLeftBankedDown25ToDown25 },
{ true, TrackPitch::Down25, TrackRoll::Right, TrackCurve::None, TrackPitch::Down25, TrackRoll::None, TrackElemType::DiagRightBankedDown25ToDown25 },
{ true, TrackPitch::None, TrackRoll::Left, TrackCurve::None, TrackPitch::Up25, TrackRoll::Left, TrackElemType::DiagLeftBankedFlatToLeftBankedUp25 },
{ true, TrackPitch::None, TrackRoll::Right, TrackCurve::None, TrackPitch::Up25, TrackRoll::Right, TrackElemType::DiagRightBankedFlatToRightBankedUp25 },
{ true, TrackPitch::Up25, TrackRoll::Left, TrackCurve::None, TrackPitch::None, TrackRoll::Left, TrackElemType::DiagLeftBankedUp25ToLeftBankedFlat },
{ true, TrackPitch::Up25, TrackRoll::Right, TrackCurve::None, TrackPitch::None, TrackRoll::Right, TrackElemType::DiagRightBankedUp25ToRightBankedFlat },
{ true, TrackPitch::None, TrackRoll::Left, TrackCurve::None, TrackPitch::Down25, TrackRoll::Left, TrackElemType::DiagLeftBankedFlatToLeftBankedDown25 },
{ true, TrackPitch::None, TrackRoll::Right, TrackCurve::None, TrackPitch::Down25, TrackRoll::Right, TrackElemType::DiagRightBankedFlatToRightBankedDown25 },
{ true, TrackPitch::Down25, TrackRoll::Left, TrackCurve::None, TrackPitch::None, TrackRoll::Left, TrackElemType::DiagLeftBankedDown25ToLeftBankedFlat },
{ true, TrackPitch::Down25, TrackRoll::Right, TrackCurve::None, TrackPitch::None, TrackRoll::Right, TrackElemType::DiagRightBankedDown25ToRightBankedFlat },
{ true, TrackPitch::None, TrackRoll::None, TrackCurve::None, TrackPitch::Up25, TrackRoll::Left, TrackElemType::DiagFlatToLeftBankedUp25 },
{ true, TrackPitch::None, TrackRoll::None, TrackCurve::None, TrackPitch::Up25, TrackRoll::Right, TrackElemType::DiagFlatToRightBankedUp25 },
{ true, TrackPitch::Up25, TrackRoll::Left, TrackCurve::None, TrackPitch::None, TrackRoll::None, TrackElemType::DiagLeftBankedUp25ToFlat },
{ true, TrackPitch::Up25, TrackRoll::Right, TrackCurve::None, TrackPitch::None, TrackRoll::None, TrackElemType::DiagRightBankedUp25ToFlat },
{ true, TrackPitch::None, TrackRoll::None, TrackCurve::None, TrackPitch::Down25, TrackRoll::Left, TrackElemType::DiagFlatToLeftBankedDown25 },
{ true, TrackPitch::None, TrackRoll::None, TrackCurve::None, TrackPitch::Down25, TrackRoll::Right, TrackElemType::DiagFlatToRightBankedDown25 },
{ true, TrackPitch::Down25, TrackRoll::Left, TrackCurve::None, TrackPitch::None, TrackRoll::None, TrackElemType::DiagLeftBankedDown25ToFlat },
{ true, TrackPitch::Down25, TrackRoll::Right, TrackCurve::None, TrackPitch::None, TrackRoll::None, TrackElemType::DiagRightBankedDown25ToFlat },
{ true, TrackPitch::Up25, TrackRoll::Left, TrackCurve::None, TrackPitch::Up25, TrackRoll::Left, TrackElemType::DiagUp25LeftBanked },
{ true, TrackPitch::Up25, TrackRoll::Right, TrackCurve::None, TrackPitch::Up25, TrackRoll::Right, TrackElemType::DiagUp25RightBanked },
{ true, TrackPitch::Down25, TrackRoll::Left, TrackCurve::None, TrackPitch::Down25, TrackRoll::Left, TrackElemType::DiagDown25LeftBanked },
{ true, TrackPitch::Down25, TrackRoll::Right, TrackCurve::None, TrackPitch::Down25, TrackRoll::Right, TrackElemType::DiagDown25RightBanked },
{ false, TrackPitch::Up25, TrackRoll::Left, TrackCurve::LeftLarge, TrackPitch::Up25, TrackRoll::Left, TrackElemType::LeftEighthBankToDiagUp25 },
{ false, TrackPitch::Up25, TrackRoll::Right, TrackCurve::RightLarge, TrackPitch::Up25, TrackRoll::Right, TrackElemType::RightEighthBankToDiagUp25 },
{ false, TrackPitch::Down25, TrackRoll::Left, TrackCurve::LeftLarge, TrackPitch::Down25, TrackRoll::Left, TrackElemType::LeftEighthBankToDiagDown25 },
{ false, TrackPitch::Down25, TrackRoll::Right, TrackCurve::RightLarge, TrackPitch::Down25, TrackRoll::Right, TrackElemType::RightEighthBankToDiagDown25 },
{ true, TrackPitch::Up25, TrackRoll::Left, TrackCurve::LeftLarge, TrackPitch::Up25, TrackRoll::Left, TrackElemType::LeftEighthBankToOrthogonalUp25 },
{ true, TrackPitch::Up25, TrackRoll::Right, TrackCurve::RightLarge, TrackPitch::Up25, TrackRoll::Right, TrackElemType::RightEighthBankToOrthogonalUp25 },
{ true, TrackPitch::Down25, TrackRoll::Left, TrackCurve::LeftLarge, TrackPitch::Down25, TrackRoll::Left, TrackElemType::LeftEighthBankToOrthogonalDown25 },
{ true, TrackPitch::Down25, TrackRoll::Right, TrackCurve::RightLarge, TrackPitch::Down25, TrackRoll::Right, TrackElemType::RightEighthBankToOrthogonalDown25 },
};
/** rct2: 0x00993D1C */
@ -3057,263 +3057,263 @@ namespace OpenRCT2::TrackMetaData
static constexpr TrackDefinition TrackDefinitions[] =
{
// TYPE VANGLE END VANGLE START BANK END BANK START PREVIEW Z OFFSET
{ TrackGroup::straight, TrackPitch::None, TrackPitch::None, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::Flat
{ TrackGroup::stationEnd, TrackPitch::None, TrackPitch::None, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::EndStation
{ TrackGroup::stationEnd, TrackPitch::None, TrackPitch::None, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::BeginStation
{ TrackGroup::stationEnd, TrackPitch::None, TrackPitch::None, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::MiddleStation
{ TrackGroup::slope, TrackPitch::Up25, TrackPitch::Up25, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::Up25
{ TrackGroup::slopeSteepUp, TrackPitch::Up60, TrackPitch::Up60, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::Up60
{ TrackGroup::slope, TrackPitch::Up25, TrackPitch::None, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::FlatToUp25
{ TrackGroup::slopeSteepUp, TrackPitch::Up60, TrackPitch::Up25, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::Up25ToUp60
{ TrackGroup::slopeSteepUp, TrackPitch::Up25, TrackPitch::Up60, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::Up60ToUp25
{ TrackGroup::slope, TrackPitch::None, TrackPitch::Up25, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::Up25ToFlat
{ TrackGroup::slope, TrackPitch::Down25, TrackPitch::Down25, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::Down25
{ TrackGroup::slopeSteepDown, TrackPitch::Down60, TrackPitch::Down60, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::Down60
{ TrackGroup::slope, TrackPitch::Down25, TrackPitch::None, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::FlatToDown25
{ TrackGroup::slopeSteepDown, TrackPitch::Down60, TrackPitch::Down25, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::Down25ToDown60
{ TrackGroup::slopeSteepDown, TrackPitch::Down25, TrackPitch::Down60, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::Down60ToDown25
{ TrackGroup::slope, TrackPitch::None, TrackPitch::Down25, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::Down25ToFlat
{ TrackGroup::curve, TrackPitch::None, TrackPitch::None, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::LeftQuarterTurn5Tiles
{ TrackGroup::curve, TrackPitch::None, TrackPitch::None, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::RightQuarterTurn5Tiles
{ TrackGroup::flatRollBanking, TrackPitch::None, TrackPitch::None, TrackRoll::Left, TrackRoll::None, 0 }, // TrackElemType::FlatToLeftBank
{ TrackGroup::flatRollBanking, TrackPitch::None, TrackPitch::None, TrackRoll::Right, TrackRoll::None, 0 }, // TrackElemType::FlatToRightBank
{ TrackGroup::flatRollBanking, TrackPitch::None, TrackPitch::None, TrackRoll::None, TrackRoll::Left, 0 }, // TrackElemType::LeftBankToFlat
{ TrackGroup::flatRollBanking, TrackPitch::None, TrackPitch::None, TrackRoll::None, TrackRoll::Right, 0 }, // TrackElemType::RightBankToFlat
{ TrackGroup::flatRollBanking, TrackPitch::None, TrackPitch::None, TrackRoll::Left, TrackRoll::Left, 0 }, // TrackElemType::BankedLeftQuarterTurn5Tiles
{ TrackGroup::flatRollBanking, TrackPitch::None, TrackPitch::None, TrackRoll::Right, TrackRoll::Right, 0 }, // TrackElemType::BankedRightQuarterTurn5Tiles
{ TrackGroup::flatRollBanking, TrackPitch::Up25, TrackPitch::None, TrackRoll::None, TrackRoll::Left, 0 }, // TrackElemType::LeftBankToUp25
{ TrackGroup::flatRollBanking, TrackPitch::Up25, TrackPitch::None, TrackRoll::None, TrackRoll::Right, 0 }, // TrackElemType::RightBankToUp25
{ TrackGroup::flatRollBanking, TrackPitch::None, TrackPitch::Up25, TrackRoll::Left, TrackRoll::None, 0 }, // TrackElemType::Up25ToLeftBank
{ TrackGroup::flatRollBanking, TrackPitch::None, TrackPitch::Up25, TrackRoll::Right, TrackRoll::None, 0 }, // TrackElemType::Up25ToRightBank
{ TrackGroup::flatRollBanking, TrackPitch::Down25, TrackPitch::None, TrackRoll::None, TrackRoll::Left, 0 }, // TrackElemType::LeftBankToDown25
{ TrackGroup::flatRollBanking, TrackPitch::Down25, TrackPitch::None, TrackRoll::None, TrackRoll::Right, 0 }, // TrackElemType::RightBankToDown25
{ TrackGroup::flatRollBanking, TrackPitch::None, TrackPitch::Down25, TrackRoll::Left, TrackRoll::None, 0 }, // TrackElemType::Down25ToLeftBank
{ TrackGroup::flatRollBanking, TrackPitch::None, TrackPitch::Down25, TrackRoll::Right, TrackRoll::None, 0 }, // TrackElemType::Down25ToRightBank
{ TrackGroup::flatRollBanking, TrackPitch::None, TrackPitch::None, TrackRoll::Left, TrackRoll::Left, 0 }, // TrackElemType::LeftBank
{ TrackGroup::flatRollBanking, TrackPitch::None, TrackPitch::None, TrackRoll::Right, TrackRoll::Right, 0 }, // TrackElemType::RightBank
{ TrackGroup::slopeCurve, TrackPitch::Up25, TrackPitch::Up25, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::LeftQuarterTurn5TilesUp25
{ TrackGroup::slopeCurve, TrackPitch::Up25, TrackPitch::Up25, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::RightQuarterTurn5TilesUp25
{ TrackGroup::slopeCurve, TrackPitch::Down25, TrackPitch::Down25, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::LeftQuarterTurn5TilesDown25
{ TrackGroup::slopeCurve, TrackPitch::Down25, TrackPitch::Down25, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::RightQuarterTurn5TilesDown25
{ TrackGroup::sBend, TrackPitch::None, TrackPitch::None, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::SBendLeft
{ TrackGroup::sBend, TrackPitch::None, TrackPitch::None, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::SBendRight
{ TrackGroup::verticalLoop, TrackPitch::Down25, TrackPitch::Up25, TrackRoll::None, TrackRoll::None, -48 }, // TrackElemType::LeftVerticalLoop
{ TrackGroup::verticalLoop, TrackPitch::Down25, TrackPitch::Up25, TrackRoll::None, TrackRoll::None, -48 }, // TrackElemType::RightVerticalLoop
{ TrackGroup::curveSmall, TrackPitch::None, TrackPitch::None, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::LeftQuarterTurn3Tiles
{ TrackGroup::curveSmall, TrackPitch::None, TrackPitch::None, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::RightQuarterTurn3Tiles
{ TrackGroup::flatRollBanking, TrackPitch::None, TrackPitch::None, TrackRoll::Left, TrackRoll::Left, 0 }, // TrackElemType::LeftBankedQuarterTurn3Tiles
{ TrackGroup::flatRollBanking, TrackPitch::None, TrackPitch::None, TrackRoll::Right, TrackRoll::Right, 0 }, // TrackElemType::RightBankedQuarterTurn3Tiles
{ TrackGroup::slopeCurve, TrackPitch::Up25, TrackPitch::Up25, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::LeftQuarterTurn3TilesUp25
{ TrackGroup::slopeCurve, TrackPitch::Up25, TrackPitch::Up25, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::RightQuarterTurn3TilesUp25
{ TrackGroup::slopeCurve, TrackPitch::Down25, TrackPitch::Down25, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::LeftQuarterTurn3TilesDown25
{ TrackGroup::slopeCurve, TrackPitch::Down25, TrackPitch::Down25, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::RightQuarterTurn3TilesDown25
{ TrackGroup::curveVerySmall, TrackPitch::None, TrackPitch::None, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::LeftQuarterTurn1Tile
{ TrackGroup::curveVerySmall, TrackPitch::None, TrackPitch::None, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::RightQuarterTurn1Tile
{ TrackGroup::twist, TrackPitch::None, TrackPitch::None, TrackRoll::UpsideDown, TrackRoll::None, 0 }, // TrackElemType::LeftTwistDownToUp
{ TrackGroup::twist, TrackPitch::None, TrackPitch::None, TrackRoll::UpsideDown, TrackRoll::None, 0 }, // TrackElemType::RightTwistDownToUp
{ TrackGroup::twist, TrackPitch::None, TrackPitch::None, TrackRoll::None, TrackRoll::UpsideDown, 0 }, // TrackElemType::LeftTwistUpToDown
{ TrackGroup::twist, TrackPitch::None, TrackPitch::None, TrackRoll::None, TrackRoll::UpsideDown, 0 }, // TrackElemType::RightTwistUpToDown
{ TrackGroup::halfLoop, TrackPitch::None, TrackPitch::Up25, TrackRoll::UpsideDown, TrackRoll::None, 64 }, // TrackElemType::HalfLoopUp
{ TrackGroup::halfLoop, TrackPitch::Down25, TrackPitch::None, TrackRoll::None, TrackRoll::UpsideDown, -64 }, // TrackElemType::HalfLoopDown
{ TrackGroup::corkscrew, TrackPitch::None, TrackPitch::None, TrackRoll::UpsideDown, TrackRoll::None, 0 }, // TrackElemType::LeftCorkscrewUp
{ TrackGroup::corkscrew, TrackPitch::None, TrackPitch::None, TrackRoll::UpsideDown, TrackRoll::None, 0 }, // TrackElemType::RightCorkscrewUp
{ TrackGroup::corkscrew, TrackPitch::None, TrackPitch::None, TrackRoll::None, TrackRoll::UpsideDown, -32 }, // TrackElemType::LeftCorkscrewDown
{ TrackGroup::corkscrew, TrackPitch::None, TrackPitch::None, TrackRoll::None, TrackRoll::UpsideDown, -32 }, // TrackElemType::RightCorkscrewDown
{ TrackGroup::flatToSteepSlope, TrackPitch::Up60, TrackPitch::None, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::FlatToUp60
{ TrackGroup::flatToSteepSlope, TrackPitch::None, TrackPitch::Up60, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::Up60ToFlat
{ TrackGroup::flatToSteepSlope, TrackPitch::Down60, TrackPitch::None, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::FlatToDown60
{ TrackGroup::flatToSteepSlope, TrackPitch::None, TrackPitch::Down60, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::Down60ToFlat
{ TrackGroup::tower, TrackPitch::Tower, TrackPitch::Tower, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::TowerBase
{ TrackGroup::tower, TrackPitch::Tower, TrackPitch::Tower, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::TowerSection
{ TrackGroup::flat, TrackPitch::None, TrackPitch::None, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::FlatCovered
{ TrackGroup::flat, TrackPitch::Up25, TrackPitch::Up25, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::Up25Covered
{ TrackGroup::flat, TrackPitch::Up60, TrackPitch::Up60, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::Up60Covered
{ TrackGroup::flat, TrackPitch::Up25, TrackPitch::None, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::FlatToUp25Covered
{ TrackGroup::flat, TrackPitch::Up60, TrackPitch::Up25, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::Up25ToUp60Covered
{ TrackGroup::flat, TrackPitch::Up25, TrackPitch::Up60, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::Up60ToUp25Covered
{ TrackGroup::flat, TrackPitch::None, TrackPitch::Up25, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::Up25ToFlatCovered
{ TrackGroup::flat, TrackPitch::Down25, TrackPitch::Down25, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::Down25Covered
{ TrackGroup::flat, TrackPitch::Down60, TrackPitch::Down60, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::Down60Covered
{ TrackGroup::flat, TrackPitch::Down25, TrackPitch::None, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::FlatToDown25Covered
{ TrackGroup::flat, TrackPitch::Down60, TrackPitch::Down25, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::Down25ToDown60Covered
{ TrackGroup::flat, TrackPitch::Down25, TrackPitch::Down60, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::Down60ToDown25Covered
{ TrackGroup::flat, TrackPitch::None, TrackPitch::Down25, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::Down25ToFlatCovered
{ TrackGroup::flat, TrackPitch::None, TrackPitch::None, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::LeftQuarterTurn5TilesCovered
{ TrackGroup::flat, TrackPitch::None, TrackPitch::None, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::RightQuarterTurn5TilesCovered
{ TrackGroup::flat, TrackPitch::None, TrackPitch::None, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::SBendLeftCovered
{ TrackGroup::flat, TrackPitch::None, TrackPitch::None, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::SBendRightCovered
{ TrackGroup::flat, TrackPitch::None, TrackPitch::None, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::LeftQuarterTurn3TilesCovered
{ TrackGroup::flat, TrackPitch::None, TrackPitch::None, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::RightQuarterTurn3TilesCovered
{ TrackGroup::helixUpBankedHalf, TrackPitch::None, TrackPitch::None, TrackRoll::Left, TrackRoll::Left, 0 }, // TrackElemType::LeftHalfBankedHelixUpSmall
{ TrackGroup::helixUpBankedHalf, TrackPitch::None, TrackPitch::None, TrackRoll::Right, TrackRoll::Right, 0 }, // TrackElemType::RightHalfBankedHelixUpSmall
{ TrackGroup::helixDownBankedHalf, TrackPitch::None, TrackPitch::None, TrackRoll::Left, TrackRoll::Left, 0 }, // TrackElemType::LeftHalfBankedHelixDownSmall
{ TrackGroup::helixDownBankedHalf, TrackPitch::None, TrackPitch::None, TrackRoll::Right, TrackRoll::Right, 0 }, // TrackElemType::RightHalfBankedHelixDownSmall
{ TrackGroup::helixUpBankedHalf, TrackPitch::None, TrackPitch::None, TrackRoll::Left, TrackRoll::Left, 0 }, // TrackElemType::LeftHalfBankedHelixUpLarge
{ TrackGroup::helixUpBankedHalf, TrackPitch::None, TrackPitch::None, TrackRoll::Right, TrackRoll::Right, 0 }, // TrackElemType::RightHalfBankedHelixUpLarge
{ TrackGroup::helixDownBankedHalf, TrackPitch::None, TrackPitch::None, TrackRoll::Left, TrackRoll::Left, 0 }, // TrackElemType::LeftHalfBankedHelixDownLarge
{ TrackGroup::helixDownBankedHalf, TrackPitch::None, TrackPitch::None, TrackRoll::Right, TrackRoll::Right, 0 }, // TrackElemType::RightHalfBankedHelixDownLarge
{ TrackGroup::slopeCurveSteep, TrackPitch::Up60, TrackPitch::Up60, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::LeftQuarterTurn1TileUp60
{ TrackGroup::slopeCurveSteep, TrackPitch::Up60, TrackPitch::Up60, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::RightQuarterTurn1TileUp60
{ TrackGroup::slopeCurveSteep, TrackPitch::Down60, TrackPitch::Down60, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::LeftQuarterTurn1TileDown60
{ TrackGroup::slopeCurveSteep, TrackPitch::Down60, TrackPitch::Down60, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::RightQuarterTurn1TileDown60
{ TrackGroup::brakes, TrackPitch::None, TrackPitch::None, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::Brakes
{ TrackGroup::booster, TrackPitch::None, TrackPitch::None, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::Booster
{ TrackGroup::flat, TrackPitch::None, TrackPitch::None, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::InvertedUp90ToFlatQuarterLoopAlias / Maze
{ TrackGroup::helixUpBankedQuarter, TrackPitch::None, TrackPitch::None, TrackRoll::Left, TrackRoll::Left, 0 }, // TrackElemType::LeftQuarterBankedHelixLargeUp
{ TrackGroup::helixUpBankedQuarter, TrackPitch::None, TrackPitch::None, TrackRoll::Right, TrackRoll::Right, 0 }, // TrackElemType::RightQuarterBankedHelixLargeUp
{ TrackGroup::helixDownBankedQuarter, TrackPitch::None, TrackPitch::None, TrackRoll::Left, TrackRoll::Left, 0 }, // TrackElemType::LeftQuarterBankedHelixLargeDown
{ TrackGroup::helixDownBankedQuarter, TrackPitch::None, TrackPitch::None, TrackRoll::Right, TrackRoll::Right, 0 }, // TrackElemType::RightQuarterBankedHelixLargeDown
{ TrackGroup::helixUpUnbankedQuarter, TrackPitch::None, TrackPitch::None, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::LeftQuarterHelixLargeUp
{ TrackGroup::helixUpUnbankedQuarter, TrackPitch::None, TrackPitch::None, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::RightQuarterHelixLargeUp
{ TrackGroup::helixDownUnbankedQuarter, TrackPitch::None, TrackPitch::None, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::LeftQuarterHelixLargeDown
{ TrackGroup::helixDownUnbankedQuarter, TrackPitch::None, TrackPitch::None, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::RightQuarterHelixLargeDown
{ TrackGroup::slopeRollBanking, TrackPitch::Up25, TrackPitch::Up25, TrackRoll::Left, TrackRoll::Left, 0 }, // TrackElemType::Up25LeftBanked
{ TrackGroup::slopeRollBanking, TrackPitch::Up25, TrackPitch::Up25, TrackRoll::Right, TrackRoll::Right, 0 }, // TrackElemType::Up25RightBanked
{ TrackGroup::waterfall, TrackPitch::None, TrackPitch::None, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::Waterfall
{ TrackGroup::rapids, TrackPitch::None, TrackPitch::None, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::Rapids
{ TrackGroup::onridePhoto, TrackPitch::None, TrackPitch::None, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::OnRidePhoto
{ TrackGroup::slopeRollBanking, TrackPitch::Down25, TrackPitch::Down25, TrackRoll::Left, TrackRoll::Left, 0 }, // TrackElemType::Down25LeftBanked
{ TrackGroup::slopeRollBanking, TrackPitch::Down25, TrackPitch::Down25, TrackRoll::Right, TrackRoll::Right, 0 }, // TrackElemType::Down25RightBanked
{ TrackGroup::waterSplash, TrackPitch::None, TrackPitch::None, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::Watersplash
{ TrackGroup::slopeSteepLong, TrackPitch::Up60, TrackPitch::None, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::FlatToUp60LongBase
{ TrackGroup::slopeSteepLong, TrackPitch::None, TrackPitch::Up60, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::Up60ToFlatLongBase
{ TrackGroup::whirlpool, TrackPitch::None, TrackPitch::None, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::Whirlpool
{ TrackGroup::slopeSteepLong, TrackPitch::None, TrackPitch::Down60, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::Down60ToFlatLongBase
{ TrackGroup::slopeSteepLong, TrackPitch::Down60, TrackPitch::None, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::FlatToDown60LongBase
{ TrackGroup::liftHillCable, TrackPitch::Down60, TrackPitch::Up25, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::CableLiftHill
{ TrackGroup::reverseFreefall, TrackPitch::ReverseFreefall, TrackPitch::None, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::ReverseFreefallSlope
{ TrackGroup::reverseFreefall, TrackPitch::ReverseFreefall, TrackPitch::ReverseFreefall,TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::ReverseFreefallVertical
{ TrackGroup::flat, TrackPitch::Up90, TrackPitch::Up90, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::Up90
{ TrackGroup::flat, TrackPitch::Down90, TrackPitch::Down90, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::Down90
{ TrackGroup::flat, TrackPitch::Up90, TrackPitch::Up60, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::Up60ToUp90
{ TrackGroup::flat, TrackPitch::Down60, TrackPitch::Down90, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::Down90ToDown60
{ TrackGroup::flat, TrackPitch::Up60, TrackPitch::Up90, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::Up90ToUp60
{ TrackGroup::flat, TrackPitch::Down90, TrackPitch::Down60, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::Down60ToDown90
{ TrackGroup::brakeForDrop, TrackPitch::Down60, TrackPitch::None, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::BrakeForDrop
{ TrackGroup::flat, TrackPitch::None, TrackPitch::None, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::LeftEighthToDiag
{ TrackGroup::flat, TrackPitch::None, TrackPitch::None, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::RightEighthToDiag
{ TrackGroup::flat, TrackPitch::None, TrackPitch::None, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::LeftEighthToOrthogonal
{ TrackGroup::flat, TrackPitch::None, TrackPitch::None, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::RightEighthToOrthogonal
{ TrackGroup::flat, TrackPitch::None, TrackPitch::None, TrackRoll::Left, TrackRoll::Left, 0 }, // TrackElemType::LeftEighthBankToDiag
{ TrackGroup::flat, TrackPitch::None, TrackPitch::None, TrackRoll::Right, TrackRoll::Right, 0 }, // TrackElemType::RightEighthBankToDiag
{ TrackGroup::flat, TrackPitch::None, TrackPitch::None, TrackRoll::Left, TrackRoll::Left, 0 }, // TrackElemType::LeftEighthBankToOrthogonal
{ TrackGroup::flat, TrackPitch::None, TrackPitch::None, TrackRoll::Right, TrackRoll::Right, 0 }, // TrackElemType::RightEighthBankToOrthogonal
{ TrackGroup::flat, TrackPitch::None, TrackPitch::None, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::DiagFlat
{ TrackGroup::flat, TrackPitch::Up25, TrackPitch::Up25, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::DiagUp25
{ TrackGroup::flat, TrackPitch::Up60, TrackPitch::Up60, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::DiagUp60
{ TrackGroup::flat, TrackPitch::Up25, TrackPitch::None, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::DiagFlatToUp25
{ TrackGroup::flat, TrackPitch::Up60, TrackPitch::Up25, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::DiagUp25ToUp60
{ TrackGroup::flat, TrackPitch::Up25, TrackPitch::Up60, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::DiagUp60ToUp25
{ TrackGroup::flat, TrackPitch::None, TrackPitch::Up25, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::DiagUp25ToFlat
{ TrackGroup::flat, TrackPitch::Down25, TrackPitch::Down25, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::DiagDown25
{ TrackGroup::flat, TrackPitch::Down60, TrackPitch::Down60, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::DiagDown60
{ TrackGroup::flat, TrackPitch::Down25, TrackPitch::None, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::DiagFlatToDown25
{ TrackGroup::flat, TrackPitch::Down60, TrackPitch::Down25, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::DiagDown25ToDown60
{ TrackGroup::flat, TrackPitch::Down25, TrackPitch::Down60, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::DiagDown60ToDown25
{ TrackGroup::flat, TrackPitch::None, TrackPitch::Down25, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::DiagDown25ToFlat
{ TrackGroup::flat, TrackPitch::Up60, TrackPitch::None, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::DiagFlatToUp60
{ TrackGroup::flat, TrackPitch::None, TrackPitch::Up60, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::DiagUp60ToFlat
{ TrackGroup::flat, TrackPitch::Down60, TrackPitch::None, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::DiagFlatToDown60
{ TrackGroup::flat, TrackPitch::None, TrackPitch::Down60, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::DiagDown60ToFlat
{ TrackGroup::flat, TrackPitch::None, TrackPitch::None, TrackRoll::Left, TrackRoll::None, 0 }, // TrackElemType::DiagFlatToLeftBank
{ TrackGroup::flat, TrackPitch::None, TrackPitch::None, TrackRoll::Right, TrackRoll::None, 0 }, // TrackElemType::DiagFlatToRightBank
{ TrackGroup::flat, TrackPitch::None, TrackPitch::None, TrackRoll::None, TrackRoll::Left, 0 }, // TrackElemType::DiagLeftBankToFlat
{ TrackGroup::flat, TrackPitch::None, TrackPitch::None, TrackRoll::None, TrackRoll::Right, 0 }, // TrackElemType::DiagRightBankToFlat
{ TrackGroup::flat, TrackPitch::Up25, TrackPitch::None, TrackRoll::None, TrackRoll::Left, 0 }, // TrackElemType::DiagLeftBankToUp25
{ TrackGroup::flat, TrackPitch::Up25, TrackPitch::None, TrackRoll::None, TrackRoll::Right, 0 }, // TrackElemType::DiagRightBankToUp25
{ TrackGroup::flat, TrackPitch::None, TrackPitch::Up25, TrackRoll::Left, TrackRoll::None, 0 }, // TrackElemType::DiagUp25ToLeftBank
{ TrackGroup::flat, TrackPitch::None, TrackPitch::Up25, TrackRoll::Right, TrackRoll::None, 0 }, // TrackElemType::DiagUp25ToRightBank
{ TrackGroup::flat, TrackPitch::Down25, TrackPitch::None, TrackRoll::None, TrackRoll::Left, 0 }, // TrackElemType::DiagLeftBankToDown25
{ TrackGroup::flat, TrackPitch::Down25, TrackPitch::None, TrackRoll::None, TrackRoll::Right, 0 }, // TrackElemType::DiagRightBankToDown25
{ TrackGroup::flat, TrackPitch::None, TrackPitch::Down25, TrackRoll::Left, TrackRoll::None, 0 }, // TrackElemType::DiagDown25ToLeftBank
{ TrackGroup::flat, TrackPitch::None, TrackPitch::Down25, TrackRoll::Right, TrackRoll::None, 0 }, // TrackElemType::DiagDown25ToRightBank
{ TrackGroup::flat, TrackPitch::None, TrackPitch::None, TrackRoll::Left, TrackRoll::Left, 0 }, // TrackElemType::DiagLeftBank
{ TrackGroup::flat, TrackPitch::None, TrackPitch::None, TrackRoll::Right, TrackRoll::Right, 0 }, // TrackElemType::DiagRightBank
{ TrackGroup::logFlumeReverser, TrackPitch::None, TrackPitch::None, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::LogFlumeReverser
{ TrackGroup::spinningTunnel, TrackPitch::None, TrackPitch::None, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::SpinningTunnel
{ TrackGroup::barrelRoll, TrackPitch::None, TrackPitch::None, TrackRoll::UpsideDown, TrackRoll::None, 0 }, // TrackElemType::LeftBarrelRollUpToDown
{ TrackGroup::barrelRoll, TrackPitch::None, TrackPitch::None, TrackRoll::UpsideDown, TrackRoll::None, 0 }, // TrackElemType::RightBarrelRollUpToDown
{ TrackGroup::barrelRoll, TrackPitch::None, TrackPitch::None, TrackRoll::None, TrackRoll::UpsideDown, 0 }, // TrackElemType::LeftBarrelRollDownToUp
{ TrackGroup::barrelRoll, TrackPitch::None, TrackPitch::None, TrackRoll::None, TrackRoll::UpsideDown, 0 }, // TrackElemType::RightBarrelRollDownToUp
{ TrackGroup::flat, TrackPitch::Up25, TrackPitch::None, TrackRoll::None, TrackRoll::Left, 0 }, // TrackElemType::LeftBankToLeftQuarterTurn3TilesUp25
{ TrackGroup::flat, TrackPitch::Up25, TrackPitch::None, TrackRoll::None, TrackRoll::Right, 0 }, // TrackElemType::RightBankToRightQuarterTurn3TilesUp25
{ TrackGroup::flat, TrackPitch::None, TrackPitch::Down25, TrackRoll::Left, TrackRoll::None, 0 }, // TrackElemType::LeftQuarterTurn3TilesDown25ToLeftBank
{ TrackGroup::flat, TrackPitch::None, TrackPitch::Down25, TrackRoll::Right, TrackRoll::None, 0 }, // TrackElemType::RightQuarterTurn3TilesDown25ToRightBank
{ TrackGroup::poweredLift, TrackPitch::Up25, TrackPitch::Up25, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::PoweredLift
{TrackGroup::halfLoopLarge, TrackPitch::None, TrackPitch::Up25, TrackRoll::UpsideDown, TrackRoll::None, 64 }, // TrackElemType::LeftLargeHalfLoopUp
{TrackGroup::halfLoopLarge, TrackPitch::None, TrackPitch::Up25, TrackRoll::UpsideDown, TrackRoll::None, 64 }, // TrackElemType::RightLargeHalfLoopUp
{TrackGroup::halfLoopLarge, TrackPitch::Down25, TrackPitch::None, TrackRoll::None, TrackRoll::UpsideDown, -64 }, // TrackElemType::LeftLargeHalfLoopDown
{TrackGroup::halfLoopLarge, TrackPitch::Down25, TrackPitch::None, TrackRoll::None, TrackRoll::UpsideDown, -64 }, // TrackElemType::RightLargeHalfLoopDown
{TrackGroup::inlineTwistUninverted, TrackPitch::None, TrackPitch::None, TrackRoll::UpsideDown, TrackRoll::None, 0 }, // TrackElemType::LeftFlyerTwistUp
{TrackGroup::inlineTwistUninverted, TrackPitch::None, TrackPitch::None, TrackRoll::UpsideDown, TrackRoll::None, 0 }, // TrackElemType::RightFlyerTwistUp
{TrackGroup::inlineTwistInverted, TrackPitch::None, TrackPitch::None, TrackRoll::UpsideDown, TrackRoll::None, 0 }, // TrackElemType::LeftFlyerTwistDown
{TrackGroup::inlineTwistInverted, TrackPitch::None, TrackPitch::None, TrackRoll::UpsideDown, TrackRoll::None, 0 }, // TrackElemType::RightFlyerTwistDown
{TrackGroup::flyingHalfLoopUninvertedUp, TrackPitch::None, TrackPitch::Up25, TrackRoll::UpsideDown, TrackRoll::None, 64 }, // TrackElemType::FlyerHalfLoopUninvertedUp
{TrackGroup::flyingHalfLoopInvertedDown, TrackPitch::Down25, TrackPitch::None, TrackRoll::UpsideDown, TrackRoll::None, -64 }, // TrackElemType::FlyerHalfLoopInvertedDown
{TrackGroup::corkscrewUninverted, TrackPitch::None, TrackPitch::None, TrackRoll::UpsideDown, TrackRoll::None, 0 }, // TrackElemType::LeftFlyerCorkscrewUp
{TrackGroup::corkscrewUninverted, TrackPitch::None, TrackPitch::None, TrackRoll::UpsideDown, TrackRoll::None, 0 }, // TrackElemType::RightFlyerCorkscrewUp
{TrackGroup::corkscrewInverted, TrackPitch::None, TrackPitch::None, TrackRoll::UpsideDown, TrackRoll::None, -32 }, // TrackElemType::LeftFlyerCorkscrewDown
{TrackGroup::corkscrewInverted, TrackPitch::None, TrackPitch::None, TrackRoll::UpsideDown, TrackRoll::None, -32 }, // TrackElemType::RightFlyerCorkscrewDown
{TrackGroup::heartlineTransfer, TrackPitch::None, TrackPitch::None, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::HeartLineTransferUp
{TrackGroup::heartlineTransfer, TrackPitch::None, TrackPitch::None, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::HeartLineTransferDown
{TrackGroup::heartlineRoll, TrackPitch::None, TrackPitch::None, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::LeftHeartLineRoll
{TrackGroup::heartlineRoll, TrackPitch::None, TrackPitch::None, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::RightHeartLineRoll
{TrackGroup::miniGolfHole, TrackPitch::None, TrackPitch::None, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::MinigolfHoleA
{TrackGroup::miniGolfHole, TrackPitch::None, TrackPitch::None, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::MinigolfHoleB
{TrackGroup::miniGolfHole, TrackPitch::None, TrackPitch::None, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::MinigolfHoleC
{TrackGroup::miniGolfHole, TrackPitch::None, TrackPitch::None, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::MinigolfHoleD
{TrackGroup::miniGolfHole, TrackPitch::None, TrackPitch::None, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::MinigolfHoleE
{ TrackGroup::quarterLoopInvertedDown, TrackPitch::Down90, TrackPitch::None, TrackRoll::UpsideDown, TrackRoll::None, 0 }, // TrackElemType::MultiDimInvertedFlatToDown90QuarterLoop
{ TrackGroup::quarterLoop, TrackPitch::None, TrackPitch::Up90, TrackRoll::UpsideDown, TrackRoll::None, 0 }, // TrackElemType::Up90ToInvertedFlatQuarterLoop
{ TrackGroup::quarterLoop, TrackPitch::Down90, TrackPitch::None, TrackRoll::None, TrackRoll::UpsideDown, 0 }, // TrackElemType::InvertedFlatToDown90QuarterLoop
{ TrackGroup::liftHillCurved, TrackPitch::None, TrackPitch::None, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::LeftCurvedLiftHill
{ TrackGroup::liftHillCurved, TrackPitch::None, TrackPitch::None, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::RightCurvedLiftHill
{ TrackGroup::reverser, TrackPitch::None, TrackPitch::None, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::LeftReverser
{ TrackGroup::reverser, TrackPitch::None, TrackPitch::None, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::RightReverser
{ TrackGroup::slopeToFlat, TrackPitch::Down90, TrackPitch::Up90, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::AirThrustTopCap
{ TrackGroup::slopeToFlat, TrackPitch::Down90, TrackPitch::Down90, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::AirThrustVerticalDown
{ TrackGroup::slopeToFlat, TrackPitch::None, TrackPitch::Down90, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::AirThrustVerticalDownToLevel
{ TrackGroup::blockBrakes, TrackPitch::None, TrackPitch::None, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::BlockBrakes
{ TrackGroup::slopeCurve, TrackPitch::Up25, TrackPitch::Up25, TrackRoll::Left, TrackRoll::Left, 0 }, // TrackElemType::LeftBankedQuarterTurn3TileUp25
{ TrackGroup::slopeCurve, TrackPitch::Up25, TrackPitch::Up25, TrackRoll::Right, TrackRoll::Right, 0 }, // TrackElemType::RightBankedQuarterTurn3TileUp25
{ TrackGroup::slopeCurve, TrackPitch::Down25, TrackPitch::Down25, TrackRoll::Left, TrackRoll::Left, 0 }, // TrackElemType::LeftBankedQuarterTurn3TileDown25
{ TrackGroup::slopeCurve, TrackPitch::Down25, TrackPitch::Down25, TrackRoll::Right, TrackRoll::Right, 0 }, // TrackElemType::RightBankedQuarterTurn3TileDown25
{ TrackGroup::slopeCurve, TrackPitch::Up25, TrackPitch::Up25, TrackRoll::Left, TrackRoll::Left, 0 }, // TrackElemType::LeftBankedQuarterTurn5TileUp25
{ TrackGroup::slopeCurve, TrackPitch::Up25, TrackPitch::Up25, TrackRoll::Right, TrackRoll::Right, 0 }, // TrackElemType::RightBankedQuarterTurn5TileUp25
{ TrackGroup::slopeCurve, TrackPitch::Down25, TrackPitch::Down25, TrackRoll::Left, TrackRoll::Left, 0 }, // TrackElemType::LeftBankedQuarterTurn5TileDown25
{ TrackGroup::slopeCurve, TrackPitch::Down25, TrackPitch::Down25, TrackRoll::Right, TrackRoll::Right, 0 }, // TrackElemType::RightBankedQuarterTurn5TileDown25
{ TrackGroup::slopeRollBanking, TrackPitch::Up25, TrackPitch::Up25, TrackRoll::Left, TrackRoll::None, 0 }, // TrackElemType::Up25ToLeftBankedUp25
{ TrackGroup::slopeRollBanking, TrackPitch::Up25, TrackPitch::Up25, TrackRoll::Right, TrackRoll::None, 0 }, // TrackElemType::Up25ToRightBankedUp25
{ TrackGroup::slopeRollBanking, TrackPitch::Up25, TrackPitch::Up25, TrackRoll::None, TrackRoll::Left, 0 }, // TrackElemType::LeftBankedUp25ToUp25
{ TrackGroup::slopeRollBanking, TrackPitch::Up25, TrackPitch::Up25, TrackRoll::None, TrackRoll::Right, 0 }, // TrackElemType::RightBankedUp25ToUp25
{ TrackGroup::slopeRollBanking, TrackPitch::Down25, TrackPitch::Down25, TrackRoll::Left, TrackRoll::None, 0 }, // TrackElemType::Down25ToLeftBankedDown25
{ TrackGroup::slopeRollBanking, TrackPitch::Down25, TrackPitch::Down25, TrackRoll::Right, TrackRoll::None, 0 }, // TrackElemType::Down25ToRightBankedDown25
{ TrackGroup::slopeRollBanking, TrackPitch::Down25, TrackPitch::Down25, TrackRoll::None, TrackRoll::Left, 0 }, // TrackElemType::LeftBankedDown25ToDown25
{ TrackGroup::slopeRollBanking, TrackPitch::Down25, TrackPitch::Down25, TrackRoll::None, TrackRoll::Right, 0 }, // TrackElemType::RightBankedDown25ToDown25
{ TrackGroup::slopeRollBanking, TrackPitch::Up25, TrackPitch::None, TrackRoll::Left, TrackRoll::Left, 0 }, // TrackElemType::LeftBankedFlatToLeftBankedUp25
{ TrackGroup::slopeRollBanking, TrackPitch::Up25, TrackPitch::None, TrackRoll::Right, TrackRoll::Right, 0 }, // TrackElemType::RightBankedFlatToRightBankedUp25
{ TrackGroup::slopeRollBanking, TrackPitch::None, TrackPitch::Up25, TrackRoll::Left, TrackRoll::Left, 0 }, // TrackElemType::LeftBankedUp25ToLeftBankedFlat
{ TrackGroup::slopeRollBanking, TrackPitch::None, TrackPitch::Up25, TrackRoll::Right, TrackRoll::Right, 0 }, // TrackElemType::RightBankedUp25ToRightBankedFlat
{ TrackGroup::slopeRollBanking, TrackPitch::Down25, TrackPitch::None, TrackRoll::Left, TrackRoll::Left, 0 }, // TrackElemType::LeftBankedFlatToLeftBankedDown25
{ TrackGroup::slopeRollBanking, TrackPitch::Down25, TrackPitch::None, TrackRoll::Right, TrackRoll::Right, 0 }, // TrackElemType::RightBankedFlatToRightBankedDown25
{ TrackGroup::slopeRollBanking, TrackPitch::None, TrackPitch::Down25, TrackRoll::Left, TrackRoll::Left, 0 }, // TrackElemType::LeftBankedDown25ToLeftBankedFlat
{ TrackGroup::slopeRollBanking, TrackPitch::None, TrackPitch::Down25, TrackRoll::Right, TrackRoll::Right, 0 }, // TrackElemType::RightBankedDown25ToRightBankedFlat
{ TrackGroup::slopeRollBanking, TrackPitch::Up25, TrackPitch::None, TrackRoll::Left, TrackRoll::None, 0 }, // TrackElemType::FlatToLeftBankedUp25
{ TrackGroup::slopeRollBanking, TrackPitch::Up25, TrackPitch::None, TrackRoll::Right, TrackRoll::None, 0 }, // TrackElemType::FlatToRightBankedUp25
{ TrackGroup::slopeRollBanking, TrackPitch::None, TrackPitch::Up25, TrackRoll::None, TrackRoll::Left, 0 }, // TrackElemType::LeftBankedUp25ToFlat
{ TrackGroup::slopeRollBanking, TrackPitch::None, TrackPitch::Up25, TrackRoll::None, TrackRoll::Right, 0 }, // TrackElemType::RightBankedUp25ToFlat
{ TrackGroup::slopeRollBanking, TrackPitch::Down25, TrackPitch::None, TrackRoll::Left, TrackRoll::None, 0 }, // TrackElemType::FlatToLeftBankedDown25
{ TrackGroup::slopeRollBanking, TrackPitch::Down25, TrackPitch::None, TrackRoll::Right, TrackRoll::None, 0 }, // TrackElemType::FlatToRightBankedDown25
{ TrackGroup::slopeRollBanking, TrackPitch::None, TrackPitch::Down25, TrackRoll::None, TrackRoll::Left, 0 }, // TrackElemType::LeftBankedDown25ToFlat
{ TrackGroup::slopeRollBanking, TrackPitch::None, TrackPitch::Down25, TrackRoll::None, TrackRoll::Right, 0 }, // TrackElemType::RightBankedDown25ToFlat
{ TrackGroup::slopeCurveSteep, TrackPitch::Up90, TrackPitch::Up90, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::LeftQuarterTurn1TileUp90
{ TrackGroup::slopeCurveSteep, TrackPitch::Up90, TrackPitch::Up90, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::RightQuarterTurn1TileUp90
{ TrackGroup::slopeCurveSteep, TrackPitch::Down90, TrackPitch::Down90, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::LeftQuarterTurn1TileDown90
{ TrackGroup::slopeCurveSteep, TrackPitch::Down90, TrackPitch::Down90, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::RightQuarterTurn1TileDown90
{ TrackGroup::quarterLoopUninvertedUp, TrackPitch::None, TrackPitch::Up90, TrackRoll::UpsideDown, TrackRoll::None, 0 }, // TrackElemType::MultiDimUp90ToInvertedFlatQuarterLoop
{ TrackGroup::quarterLoopUninvertedDown, TrackPitch::Down90, TrackPitch::None, TrackRoll::UpsideDown, TrackRoll::None, 0 }, // TrackElemType::MultiDimFlatToDown90QuarterLoop
{ TrackGroup::quarterLoopInvertedUp, TrackPitch::None, TrackPitch::Up90, TrackRoll::UpsideDown, TrackRoll::None, 0 }, // TrackElemType::MultiDimInvertedUp90ToFlatQuarterLoop
{ TrackGroup::rotationControlToggle, TrackPitch::None, TrackPitch::None, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::RotationControlToggle
{ TrackGroup::straight, TrackPitch::None, TrackPitch::None, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::Flat
{ TrackGroup::stationEnd, TrackPitch::None, TrackPitch::None, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::EndStation
{ TrackGroup::stationEnd, TrackPitch::None, TrackPitch::None, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::BeginStation
{ TrackGroup::stationEnd, TrackPitch::None, TrackPitch::None, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::MiddleStation
{ TrackGroup::slope, TrackPitch::Up25, TrackPitch::Up25, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::Up25
{ TrackGroup::slopeSteepUp, TrackPitch::Up60, TrackPitch::Up60, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::Up60
{ TrackGroup::slope, TrackPitch::Up25, TrackPitch::None, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::FlatToUp25
{ TrackGroup::slopeSteepUp, TrackPitch::Up60, TrackPitch::Up25, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::Up25ToUp60
{ TrackGroup::slopeSteepUp, TrackPitch::Up25, TrackPitch::Up60, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::Up60ToUp25
{ TrackGroup::slope, TrackPitch::None, TrackPitch::Up25, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::Up25ToFlat
{ TrackGroup::slope, TrackPitch::Down25, TrackPitch::Down25, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::Down25
{ TrackGroup::slopeSteepDown, TrackPitch::Down60, TrackPitch::Down60, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::Down60
{ TrackGroup::slope, TrackPitch::Down25, TrackPitch::None, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::FlatToDown25
{ TrackGroup::slopeSteepDown, TrackPitch::Down60, TrackPitch::Down25, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::Down25ToDown60
{ TrackGroup::slopeSteepDown, TrackPitch::Down25, TrackPitch::Down60, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::Down60ToDown25
{ TrackGroup::slope, TrackPitch::None, TrackPitch::Down25, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::Down25ToFlat
{ TrackGroup::curve, TrackPitch::None, TrackPitch::None, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::LeftQuarterTurn5Tiles
{ TrackGroup::curve, TrackPitch::None, TrackPitch::None, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::RightQuarterTurn5Tiles
{ TrackGroup::flatRollBanking, TrackPitch::None, TrackPitch::None, TrackRoll::Left, TrackRoll::None, 0 }, // TrackElemType::FlatToLeftBank
{ TrackGroup::flatRollBanking, TrackPitch::None, TrackPitch::None, TrackRoll::Right, TrackRoll::None, 0 }, // TrackElemType::FlatToRightBank
{ TrackGroup::flatRollBanking, TrackPitch::None, TrackPitch::None, TrackRoll::None, TrackRoll::Left, 0 }, // TrackElemType::LeftBankToFlat
{ TrackGroup::flatRollBanking, TrackPitch::None, TrackPitch::None, TrackRoll::None, TrackRoll::Right, 0 }, // TrackElemType::RightBankToFlat
{ TrackGroup::flatRollBanking, TrackPitch::None, TrackPitch::None, TrackRoll::Left, TrackRoll::Left, 0 }, // TrackElemType::BankedLeftQuarterTurn5Tiles
{ TrackGroup::flatRollBanking, TrackPitch::None, TrackPitch::None, TrackRoll::Right, TrackRoll::Right, 0 }, // TrackElemType::BankedRightQuarterTurn5Tiles
{ TrackGroup::flatRollBanking, TrackPitch::Up25, TrackPitch::None, TrackRoll::None, TrackRoll::Left, 0 }, // TrackElemType::LeftBankToUp25
{ TrackGroup::flatRollBanking, TrackPitch::Up25, TrackPitch::None, TrackRoll::None, TrackRoll::Right, 0 }, // TrackElemType::RightBankToUp25
{ TrackGroup::flatRollBanking, TrackPitch::None, TrackPitch::Up25, TrackRoll::Left, TrackRoll::None, 0 }, // TrackElemType::Up25ToLeftBank
{ TrackGroup::flatRollBanking, TrackPitch::None, TrackPitch::Up25, TrackRoll::Right, TrackRoll::None, 0 }, // TrackElemType::Up25ToRightBank
{ TrackGroup::flatRollBanking, TrackPitch::Down25, TrackPitch::None, TrackRoll::None, TrackRoll::Left, 0 }, // TrackElemType::LeftBankToDown25
{ TrackGroup::flatRollBanking, TrackPitch::Down25, TrackPitch::None, TrackRoll::None, TrackRoll::Right, 0 }, // TrackElemType::RightBankToDown25
{ TrackGroup::flatRollBanking, TrackPitch::None, TrackPitch::Down25, TrackRoll::Left, TrackRoll::None, 0 }, // TrackElemType::Down25ToLeftBank
{ TrackGroup::flatRollBanking, TrackPitch::None, TrackPitch::Down25, TrackRoll::Right, TrackRoll::None, 0 }, // TrackElemType::Down25ToRightBank
{ TrackGroup::flatRollBanking, TrackPitch::None, TrackPitch::None, TrackRoll::Left, TrackRoll::Left, 0 }, // TrackElemType::LeftBank
{ TrackGroup::flatRollBanking, TrackPitch::None, TrackPitch::None, TrackRoll::Right, TrackRoll::Right, 0 }, // TrackElemType::RightBank
{ TrackGroup::slopeCurve, TrackPitch::Up25, TrackPitch::Up25, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::LeftQuarterTurn5TilesUp25
{ TrackGroup::slopeCurve, TrackPitch::Up25, TrackPitch::Up25, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::RightQuarterTurn5TilesUp25
{ TrackGroup::slopeCurve, TrackPitch::Down25, TrackPitch::Down25, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::LeftQuarterTurn5TilesDown25
{ TrackGroup::slopeCurve, TrackPitch::Down25, TrackPitch::Down25, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::RightQuarterTurn5TilesDown25
{ TrackGroup::sBend, TrackPitch::None, TrackPitch::None, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::SBendLeft
{ TrackGroup::sBend, TrackPitch::None, TrackPitch::None, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::SBendRight
{ TrackGroup::verticalLoop, TrackPitch::Down25, TrackPitch::Up25, TrackRoll::None, TrackRoll::None, -48 }, // TrackElemType::LeftVerticalLoop
{ TrackGroup::verticalLoop, TrackPitch::Down25, TrackPitch::Up25, TrackRoll::None, TrackRoll::None, -48 }, // TrackElemType::RightVerticalLoop
{ TrackGroup::curveSmall, TrackPitch::None, TrackPitch::None, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::LeftQuarterTurn3Tiles
{ TrackGroup::curveSmall, TrackPitch::None, TrackPitch::None, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::RightQuarterTurn3Tiles
{ TrackGroup::flatRollBanking, TrackPitch::None, TrackPitch::None, TrackRoll::Left, TrackRoll::Left, 0 }, // TrackElemType::LeftBankedQuarterTurn3Tiles
{ TrackGroup::flatRollBanking, TrackPitch::None, TrackPitch::None, TrackRoll::Right, TrackRoll::Right, 0 }, // TrackElemType::RightBankedQuarterTurn3Tiles
{ TrackGroup::slopeCurve, TrackPitch::Up25, TrackPitch::Up25, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::LeftQuarterTurn3TilesUp25
{ TrackGroup::slopeCurve, TrackPitch::Up25, TrackPitch::Up25, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::RightQuarterTurn3TilesUp25
{ TrackGroup::slopeCurve, TrackPitch::Down25, TrackPitch::Down25, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::LeftQuarterTurn3TilesDown25
{ TrackGroup::slopeCurve, TrackPitch::Down25, TrackPitch::Down25, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::RightQuarterTurn3TilesDown25
{ TrackGroup::curveVerySmall, TrackPitch::None, TrackPitch::None, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::LeftQuarterTurn1Tile
{ TrackGroup::curveVerySmall, TrackPitch::None, TrackPitch::None, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::RightQuarterTurn1Tile
{ TrackGroup::twist, TrackPitch::None, TrackPitch::None, TrackRoll::UpsideDown, TrackRoll::None, 0 }, // TrackElemType::LeftTwistDownToUp
{ TrackGroup::twist, TrackPitch::None, TrackPitch::None, TrackRoll::UpsideDown, TrackRoll::None, 0 }, // TrackElemType::RightTwistDownToUp
{ TrackGroup::twist, TrackPitch::None, TrackPitch::None, TrackRoll::None, TrackRoll::UpsideDown, 0 }, // TrackElemType::LeftTwistUpToDown
{ TrackGroup::twist, TrackPitch::None, TrackPitch::None, TrackRoll::None, TrackRoll::UpsideDown, 0 }, // TrackElemType::RightTwistUpToDown
{ TrackGroup::halfLoop, TrackPitch::None, TrackPitch::Up25, TrackRoll::UpsideDown, TrackRoll::None, 64 }, // TrackElemType::HalfLoopUp
{ TrackGroup::halfLoop, TrackPitch::Down25, TrackPitch::None, TrackRoll::None, TrackRoll::UpsideDown, -64 }, // TrackElemType::HalfLoopDown
{ TrackGroup::corkscrew, TrackPitch::None, TrackPitch::None, TrackRoll::UpsideDown, TrackRoll::None, 0 }, // TrackElemType::LeftCorkscrewUp
{ TrackGroup::corkscrew, TrackPitch::None, TrackPitch::None, TrackRoll::UpsideDown, TrackRoll::None, 0 }, // TrackElemType::RightCorkscrewUp
{ TrackGroup::corkscrew, TrackPitch::None, TrackPitch::None, TrackRoll::None, TrackRoll::UpsideDown, -32 }, // TrackElemType::LeftCorkscrewDown
{ TrackGroup::corkscrew, TrackPitch::None, TrackPitch::None, TrackRoll::None, TrackRoll::UpsideDown, -32 }, // TrackElemType::RightCorkscrewDown
{ TrackGroup::flatToSteepSlope, TrackPitch::Up60, TrackPitch::None, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::FlatToUp60
{ TrackGroup::flatToSteepSlope, TrackPitch::None, TrackPitch::Up60, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::Up60ToFlat
{ TrackGroup::flatToSteepSlope, TrackPitch::Down60, TrackPitch::None, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::FlatToDown60
{ TrackGroup::flatToSteepSlope, TrackPitch::None, TrackPitch::Down60, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::Down60ToFlat
{ TrackGroup::tower, TrackPitch::Tower, TrackPitch::Tower, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::TowerBase
{ TrackGroup::tower, TrackPitch::Tower, TrackPitch::Tower, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::TowerSection
{ TrackGroup::flat, TrackPitch::None, TrackPitch::None, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::FlatCovered
{ TrackGroup::flat, TrackPitch::Up25, TrackPitch::Up25, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::Up25Covered
{ TrackGroup::flat, TrackPitch::Up60, TrackPitch::Up60, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::Up60Covered
{ TrackGroup::flat, TrackPitch::Up25, TrackPitch::None, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::FlatToUp25Covered
{ TrackGroup::flat, TrackPitch::Up60, TrackPitch::Up25, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::Up25ToUp60Covered
{ TrackGroup::flat, TrackPitch::Up25, TrackPitch::Up60, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::Up60ToUp25Covered
{ TrackGroup::flat, TrackPitch::None, TrackPitch::Up25, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::Up25ToFlatCovered
{ TrackGroup::flat, TrackPitch::Down25, TrackPitch::Down25, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::Down25Covered
{ TrackGroup::flat, TrackPitch::Down60, TrackPitch::Down60, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::Down60Covered
{ TrackGroup::flat, TrackPitch::Down25, TrackPitch::None, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::FlatToDown25Covered
{ TrackGroup::flat, TrackPitch::Down60, TrackPitch::Down25, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::Down25ToDown60Covered
{ TrackGroup::flat, TrackPitch::Down25, TrackPitch::Down60, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::Down60ToDown25Covered
{ TrackGroup::flat, TrackPitch::None, TrackPitch::Down25, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::Down25ToFlatCovered
{ TrackGroup::flat, TrackPitch::None, TrackPitch::None, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::LeftQuarterTurn5TilesCovered
{ TrackGroup::flat, TrackPitch::None, TrackPitch::None, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::RightQuarterTurn5TilesCovered
{ TrackGroup::flat, TrackPitch::None, TrackPitch::None, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::SBendLeftCovered
{ TrackGroup::flat, TrackPitch::None, TrackPitch::None, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::SBendRightCovered
{ TrackGroup::flat, TrackPitch::None, TrackPitch::None, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::LeftQuarterTurn3TilesCovered
{ TrackGroup::flat, TrackPitch::None, TrackPitch::None, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::RightQuarterTurn3TilesCovered
{ TrackGroup::helixUpBankedHalf, TrackPitch::None, TrackPitch::None, TrackRoll::Left, TrackRoll::Left, 0 }, // TrackElemType::LeftHalfBankedHelixUpSmall
{ TrackGroup::helixUpBankedHalf, TrackPitch::None, TrackPitch::None, TrackRoll::Right, TrackRoll::Right, 0 }, // TrackElemType::RightHalfBankedHelixUpSmall
{ TrackGroup::helixDownBankedHalf, TrackPitch::None, TrackPitch::None, TrackRoll::Left, TrackRoll::Left, 0 }, // TrackElemType::LeftHalfBankedHelixDownSmall
{ TrackGroup::helixDownBankedHalf, TrackPitch::None, TrackPitch::None, TrackRoll::Right, TrackRoll::Right, 0 }, // TrackElemType::RightHalfBankedHelixDownSmall
{ TrackGroup::helixUpBankedHalf, TrackPitch::None, TrackPitch::None, TrackRoll::Left, TrackRoll::Left, 0 }, // TrackElemType::LeftHalfBankedHelixUpLarge
{ TrackGroup::helixUpBankedHalf, TrackPitch::None, TrackPitch::None, TrackRoll::Right, TrackRoll::Right, 0 }, // TrackElemType::RightHalfBankedHelixUpLarge
{ TrackGroup::helixDownBankedHalf, TrackPitch::None, TrackPitch::None, TrackRoll::Left, TrackRoll::Left, 0 }, // TrackElemType::LeftHalfBankedHelixDownLarge
{ TrackGroup::helixDownBankedHalf, TrackPitch::None, TrackPitch::None, TrackRoll::Right, TrackRoll::Right, 0 }, // TrackElemType::RightHalfBankedHelixDownLarge
{ TrackGroup::slopeCurveSteep, TrackPitch::Up60, TrackPitch::Up60, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::LeftQuarterTurn1TileUp60
{ TrackGroup::slopeCurveSteep, TrackPitch::Up60, TrackPitch::Up60, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::RightQuarterTurn1TileUp60
{ TrackGroup::slopeCurveSteep, TrackPitch::Down60, TrackPitch::Down60, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::LeftQuarterTurn1TileDown60
{ TrackGroup::slopeCurveSteep, TrackPitch::Down60, TrackPitch::Down60, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::RightQuarterTurn1TileDown60
{ TrackGroup::brakes, TrackPitch::None, TrackPitch::None, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::Brakes
{ TrackGroup::booster, TrackPitch::None, TrackPitch::None, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::Booster
{ TrackGroup::flat, TrackPitch::None, TrackPitch::None, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::Maze
{ TrackGroup::helixUpBankedQuarter, TrackPitch::None, TrackPitch::None, TrackRoll::Left, TrackRoll::Left, 0 }, // TrackElemType::LeftQuarterBankedHelixLargeUp
{ TrackGroup::helixUpBankedQuarter, TrackPitch::None, TrackPitch::None, TrackRoll::Right, TrackRoll::Right, 0 }, // TrackElemType::RightQuarterBankedHelixLargeUp
{ TrackGroup::helixDownBankedQuarter, TrackPitch::None, TrackPitch::None, TrackRoll::Left, TrackRoll::Left, 0 }, // TrackElemType::LeftQuarterBankedHelixLargeDown
{ TrackGroup::helixDownBankedQuarter, TrackPitch::None, TrackPitch::None, TrackRoll::Right, TrackRoll::Right, 0 }, // TrackElemType::RightQuarterBankedHelixLargeDown
{ TrackGroup::helixUpUnbankedQuarter, TrackPitch::None, TrackPitch::None, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::LeftQuarterHelixLargeUp
{ TrackGroup::helixUpUnbankedQuarter, TrackPitch::None, TrackPitch::None, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::RightQuarterHelixLargeUp
{ TrackGroup::helixDownUnbankedQuarter, TrackPitch::None, TrackPitch::None, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::LeftQuarterHelixLargeDown
{ TrackGroup::helixDownUnbankedQuarter, TrackPitch::None, TrackPitch::None, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::RightQuarterHelixLargeDown
{ TrackGroup::slopeRollBanking, TrackPitch::Up25, TrackPitch::Up25, TrackRoll::Left, TrackRoll::Left, 0 }, // TrackElemType::Up25LeftBanked
{ TrackGroup::slopeRollBanking, TrackPitch::Up25, TrackPitch::Up25, TrackRoll::Right, TrackRoll::Right, 0 }, // TrackElemType::Up25RightBanked
{ TrackGroup::waterfall, TrackPitch::None, TrackPitch::None, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::Waterfall
{ TrackGroup::rapids, TrackPitch::None, TrackPitch::None, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::Rapids
{ TrackGroup::onridePhoto, TrackPitch::None, TrackPitch::None, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::OnRidePhoto
{ TrackGroup::slopeRollBanking, TrackPitch::Down25, TrackPitch::Down25, TrackRoll::Left, TrackRoll::Left, 0 }, // TrackElemType::Down25LeftBanked
{ TrackGroup::slopeRollBanking, TrackPitch::Down25, TrackPitch::Down25, TrackRoll::Right, TrackRoll::Right, 0 }, // TrackElemType::Down25RightBanked
{ TrackGroup::waterSplash, TrackPitch::None, TrackPitch::None, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::Watersplash
{ TrackGroup::slopeSteepLong, TrackPitch::Up60, TrackPitch::None, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::FlatToUp60LongBase
{ TrackGroup::slopeSteepLong, TrackPitch::None, TrackPitch::Up60, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::Up60ToFlatLongBase
{ TrackGroup::whirlpool, TrackPitch::None, TrackPitch::None, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::Whirlpool
{ TrackGroup::slopeSteepLong, TrackPitch::None, TrackPitch::Down60, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::Down60ToFlatLongBase
{ TrackGroup::slopeSteepLong, TrackPitch::Down60, TrackPitch::None, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::FlatToDown60LongBase
{ TrackGroup::liftHillCable, TrackPitch::Down60, TrackPitch::Up25, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::CableLiftHill
{ TrackGroup::reverseFreefall, TrackPitch::ReverseFreefall, TrackPitch::None, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::ReverseFreefallSlope
{ TrackGroup::reverseFreefall, TrackPitch::ReverseFreefall, TrackPitch::ReverseFreefall,TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::ReverseFreefallVertical
{ TrackGroup::flat, TrackPitch::Up90, TrackPitch::Up90, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::Up90
{ TrackGroup::flat, TrackPitch::Down90, TrackPitch::Down90, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::Down90
{ TrackGroup::flat, TrackPitch::Up90, TrackPitch::Up60, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::Up60ToUp90
{ TrackGroup::flat, TrackPitch::Down60, TrackPitch::Down90, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::Down90ToDown60
{ TrackGroup::flat, TrackPitch::Up60, TrackPitch::Up90, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::Up90ToUp60
{ TrackGroup::flat, TrackPitch::Down90, TrackPitch::Down60, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::Down60ToDown90
{ TrackGroup::brakeForDrop, TrackPitch::Down60, TrackPitch::None, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::BrakeForDrop
{ TrackGroup::flat, TrackPitch::None, TrackPitch::None, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::LeftEighthToDiag
{ TrackGroup::flat, TrackPitch::None, TrackPitch::None, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::RightEighthToDiag
{ TrackGroup::flat, TrackPitch::None, TrackPitch::None, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::LeftEighthToOrthogonal
{ TrackGroup::flat, TrackPitch::None, TrackPitch::None, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::RightEighthToOrthogonal
{ TrackGroup::flat, TrackPitch::None, TrackPitch::None, TrackRoll::Left, TrackRoll::Left, 0 }, // TrackElemType::LeftEighthBankToDiag
{ TrackGroup::flat, TrackPitch::None, TrackPitch::None, TrackRoll::Right, TrackRoll::Right, 0 }, // TrackElemType::RightEighthBankToDiag
{ TrackGroup::flat, TrackPitch::None, TrackPitch::None, TrackRoll::Left, TrackRoll::Left, 0 }, // TrackElemType::LeftEighthBankToOrthogonal
{ TrackGroup::flat, TrackPitch::None, TrackPitch::None, TrackRoll::Right, TrackRoll::Right, 0 }, // TrackElemType::RightEighthBankToOrthogonal
{ TrackGroup::flat, TrackPitch::None, TrackPitch::None, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::DiagFlat
{ TrackGroup::flat, TrackPitch::Up25, TrackPitch::Up25, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::DiagUp25
{ TrackGroup::flat, TrackPitch::Up60, TrackPitch::Up60, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::DiagUp60
{ TrackGroup::flat, TrackPitch::Up25, TrackPitch::None, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::DiagFlatToUp25
{ TrackGroup::flat, TrackPitch::Up60, TrackPitch::Up25, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::DiagUp25ToUp60
{ TrackGroup::flat, TrackPitch::Up25, TrackPitch::Up60, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::DiagUp60ToUp25
{ TrackGroup::flat, TrackPitch::None, TrackPitch::Up25, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::DiagUp25ToFlat
{ TrackGroup::flat, TrackPitch::Down25, TrackPitch::Down25, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::DiagDown25
{ TrackGroup::flat, TrackPitch::Down60, TrackPitch::Down60, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::DiagDown60
{ TrackGroup::flat, TrackPitch::Down25, TrackPitch::None, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::DiagFlatToDown25
{ TrackGroup::flat, TrackPitch::Down60, TrackPitch::Down25, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::DiagDown25ToDown60
{ TrackGroup::flat, TrackPitch::Down25, TrackPitch::Down60, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::DiagDown60ToDown25
{ TrackGroup::flat, TrackPitch::None, TrackPitch::Down25, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::DiagDown25ToFlat
{ TrackGroup::flat, TrackPitch::Up60, TrackPitch::None, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::DiagFlatToUp60
{ TrackGroup::flat, TrackPitch::None, TrackPitch::Up60, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::DiagUp60ToFlat
{ TrackGroup::flat, TrackPitch::Down60, TrackPitch::None, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::DiagFlatToDown60
{ TrackGroup::flat, TrackPitch::None, TrackPitch::Down60, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::DiagDown60ToFlat
{ TrackGroup::flat, TrackPitch::None, TrackPitch::None, TrackRoll::Left, TrackRoll::None, 0 }, // TrackElemType::DiagFlatToLeftBank
{ TrackGroup::flat, TrackPitch::None, TrackPitch::None, TrackRoll::Right, TrackRoll::None, 0 }, // TrackElemType::DiagFlatToRightBank
{ TrackGroup::flat, TrackPitch::None, TrackPitch::None, TrackRoll::None, TrackRoll::Left, 0 }, // TrackElemType::DiagLeftBankToFlat
{ TrackGroup::flat, TrackPitch::None, TrackPitch::None, TrackRoll::None, TrackRoll::Right, 0 }, // TrackElemType::DiagRightBankToFlat
{ TrackGroup::flat, TrackPitch::Up25, TrackPitch::None, TrackRoll::None, TrackRoll::Left, 0 }, // TrackElemType::DiagLeftBankToUp25
{ TrackGroup::flat, TrackPitch::Up25, TrackPitch::None, TrackRoll::None, TrackRoll::Right, 0 }, // TrackElemType::DiagRightBankToUp25
{ TrackGroup::flat, TrackPitch::None, TrackPitch::Up25, TrackRoll::Left, TrackRoll::None, 0 }, // TrackElemType::DiagUp25ToLeftBank
{ TrackGroup::flat, TrackPitch::None, TrackPitch::Up25, TrackRoll::Right, TrackRoll::None, 0 }, // TrackElemType::DiagUp25ToRightBank
{ TrackGroup::flat, TrackPitch::Down25, TrackPitch::None, TrackRoll::None, TrackRoll::Left, 0 }, // TrackElemType::DiagLeftBankToDown25
{ TrackGroup::flat, TrackPitch::Down25, TrackPitch::None, TrackRoll::None, TrackRoll::Right, 0 }, // TrackElemType::DiagRightBankToDown25
{ TrackGroup::flat, TrackPitch::None, TrackPitch::Down25, TrackRoll::Left, TrackRoll::None, 0 }, // TrackElemType::DiagDown25ToLeftBank
{ TrackGroup::flat, TrackPitch::None, TrackPitch::Down25, TrackRoll::Right, TrackRoll::None, 0 }, // TrackElemType::DiagDown25ToRightBank
{ TrackGroup::flat, TrackPitch::None, TrackPitch::None, TrackRoll::Left, TrackRoll::Left, 0 }, // TrackElemType::DiagLeftBank
{ TrackGroup::flat, TrackPitch::None, TrackPitch::None, TrackRoll::Right, TrackRoll::Right, 0 }, // TrackElemType::DiagRightBank
{ TrackGroup::logFlumeReverser, TrackPitch::None, TrackPitch::None, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::LogFlumeReverser
{ TrackGroup::spinningTunnel, TrackPitch::None, TrackPitch::None, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::SpinningTunnel
{ TrackGroup::barrelRoll, TrackPitch::None, TrackPitch::None, TrackRoll::UpsideDown, TrackRoll::None, 0 }, // TrackElemType::LeftBarrelRollUpToDown
{ TrackGroup::barrelRoll, TrackPitch::None, TrackPitch::None, TrackRoll::UpsideDown, TrackRoll::None, 0 }, // TrackElemType::RightBarrelRollUpToDown
{ TrackGroup::barrelRoll, TrackPitch::None, TrackPitch::None, TrackRoll::None, TrackRoll::UpsideDown, 0 }, // TrackElemType::LeftBarrelRollDownToUp
{ TrackGroup::barrelRoll, TrackPitch::None, TrackPitch::None, TrackRoll::None, TrackRoll::UpsideDown, 0 }, // TrackElemType::RightBarrelRollDownToUp
{ TrackGroup::flat, TrackPitch::Up25, TrackPitch::None, TrackRoll::None, TrackRoll::Left, 0 }, // TrackElemType::LeftBankToLeftQuarterTurn3TilesUp25
{ TrackGroup::flat, TrackPitch::Up25, TrackPitch::None, TrackRoll::None, TrackRoll::Right, 0 }, // TrackElemType::RightBankToRightQuarterTurn3TilesUp25
{ TrackGroup::flat, TrackPitch::None, TrackPitch::Down25, TrackRoll::Left, TrackRoll::None, 0 }, // TrackElemType::LeftQuarterTurn3TilesDown25ToLeftBank
{ TrackGroup::flat, TrackPitch::None, TrackPitch::Down25, TrackRoll::Right, TrackRoll::None, 0 }, // TrackElemType::RightQuarterTurn3TilesDown25ToRightBank
{ TrackGroup::poweredLift, TrackPitch::Up25, TrackPitch::Up25, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::PoweredLift
{TrackGroup::halfLoopLarge, TrackPitch::None, TrackPitch::Up25, TrackRoll::UpsideDown, TrackRoll::None, 64 }, // TrackElemType::LeftLargeHalfLoopUp
{TrackGroup::halfLoopLarge, TrackPitch::None, TrackPitch::Up25, TrackRoll::UpsideDown, TrackRoll::None, 64 }, // TrackElemType::RightLargeHalfLoopUp
{TrackGroup::halfLoopLarge, TrackPitch::Down25, TrackPitch::None, TrackRoll::None, TrackRoll::UpsideDown, -64 }, // TrackElemType::LeftLargeHalfLoopDown
{TrackGroup::halfLoopLarge, TrackPitch::Down25, TrackPitch::None, TrackRoll::None, TrackRoll::UpsideDown, -64 }, // TrackElemType::RightLargeHalfLoopDown
{TrackGroup::inlineTwistUninverted, TrackPitch::None, TrackPitch::None, TrackRoll::UpsideDown, TrackRoll::None, 0 }, // TrackElemType::LeftFlyerTwistUp
{TrackGroup::inlineTwistUninverted, TrackPitch::None, TrackPitch::None, TrackRoll::UpsideDown, TrackRoll::None, 0 }, // TrackElemType::RightFlyerTwistUp
{TrackGroup::inlineTwistInverted, TrackPitch::None, TrackPitch::None, TrackRoll::UpsideDown, TrackRoll::None, 0 }, // TrackElemType::LeftFlyerTwistDown
{TrackGroup::inlineTwistInverted, TrackPitch::None, TrackPitch::None, TrackRoll::UpsideDown, TrackRoll::None, 0 }, // TrackElemType::RightFlyerTwistDown
{TrackGroup::flyingHalfLoopUninvertedUp, TrackPitch::None, TrackPitch::Up25, TrackRoll::UpsideDown, TrackRoll::None, 64 }, // TrackElemType::FlyerHalfLoopUninvertedUp
{TrackGroup::flyingHalfLoopInvertedDown, TrackPitch::Down25, TrackPitch::None, TrackRoll::UpsideDown, TrackRoll::None, -64 }, // TrackElemType::FlyerHalfLoopInvertedDown
{TrackGroup::corkscrewUninverted, TrackPitch::None, TrackPitch::None, TrackRoll::UpsideDown, TrackRoll::None, 0 }, // TrackElemType::LeftFlyerCorkscrewUp
{TrackGroup::corkscrewUninverted, TrackPitch::None, TrackPitch::None, TrackRoll::UpsideDown, TrackRoll::None, 0 }, // TrackElemType::RightFlyerCorkscrewUp
{TrackGroup::corkscrewInverted, TrackPitch::None, TrackPitch::None, TrackRoll::UpsideDown, TrackRoll::None, -32 }, // TrackElemType::LeftFlyerCorkscrewDown
{TrackGroup::corkscrewInverted, TrackPitch::None, TrackPitch::None, TrackRoll::UpsideDown, TrackRoll::None, -32 }, // TrackElemType::RightFlyerCorkscrewDown
{TrackGroup::heartlineTransfer, TrackPitch::None, TrackPitch::None, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::HeartLineTransferUp
{TrackGroup::heartlineTransfer, TrackPitch::None, TrackPitch::None, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::HeartLineTransferDown
{TrackGroup::heartlineRoll, TrackPitch::None, TrackPitch::None, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::LeftHeartLineRoll
{TrackGroup::heartlineRoll, TrackPitch::None, TrackPitch::None, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::RightHeartLineRoll
{TrackGroup::miniGolfHole, TrackPitch::None, TrackPitch::None, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::MinigolfHoleA
{TrackGroup::miniGolfHole, TrackPitch::None, TrackPitch::None, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::MinigolfHoleB
{TrackGroup::miniGolfHole, TrackPitch::None, TrackPitch::None, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::MinigolfHoleC
{TrackGroup::miniGolfHole, TrackPitch::None, TrackPitch::None, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::MinigolfHoleD
{TrackGroup::miniGolfHole, TrackPitch::None, TrackPitch::None, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::MinigolfHoleE
{ TrackGroup::quarterLoopInvertedDown, TrackPitch::Down90, TrackPitch::None, TrackRoll::UpsideDown, TrackRoll::None, 0 }, // TrackElemType::MultiDimInvertedFlatToDown90QuarterLoop
{ TrackGroup::quarterLoop, TrackPitch::None, TrackPitch::Up90, TrackRoll::UpsideDown, TrackRoll::None, 0 }, // TrackElemType::Up90ToInvertedFlatQuarterLoop
{ TrackGroup::quarterLoop, TrackPitch::Down90, TrackPitch::None, TrackRoll::None, TrackRoll::UpsideDown, 0 }, // TrackElemType::InvertedFlatToDown90QuarterLoop
{ TrackGroup::liftHillCurved, TrackPitch::None, TrackPitch::None, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::LeftCurvedLiftHill
{ TrackGroup::liftHillCurved, TrackPitch::None, TrackPitch::None, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::RightCurvedLiftHill
{ TrackGroup::reverser, TrackPitch::None, TrackPitch::None, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::LeftReverser
{ TrackGroup::reverser, TrackPitch::None, TrackPitch::None, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::RightReverser
{ TrackGroup::slopeToFlat, TrackPitch::Down90, TrackPitch::Up90, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::AirThrustTopCap
{ TrackGroup::slopeToFlat, TrackPitch::Down90, TrackPitch::Down90, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::AirThrustVerticalDown
{ TrackGroup::slopeToFlat, TrackPitch::None, TrackPitch::Down90, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::AirThrustVerticalDownToLevel
{ TrackGroup::blockBrakes, TrackPitch::None, TrackPitch::None, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::BlockBrakes
{ TrackGroup::slopeCurve, TrackPitch::Up25, TrackPitch::Up25, TrackRoll::Left, TrackRoll::Left, 0 }, // TrackElemType::LeftBankedQuarterTurn3TileUp25
{ TrackGroup::slopeCurve, TrackPitch::Up25, TrackPitch::Up25, TrackRoll::Right, TrackRoll::Right, 0 }, // TrackElemType::RightBankedQuarterTurn3TileUp25
{ TrackGroup::slopeCurve, TrackPitch::Down25, TrackPitch::Down25, TrackRoll::Left, TrackRoll::Left, 0 }, // TrackElemType::LeftBankedQuarterTurn3TileDown25
{ TrackGroup::slopeCurve, TrackPitch::Down25, TrackPitch::Down25, TrackRoll::Right, TrackRoll::Right, 0 }, // TrackElemType::RightBankedQuarterTurn3TileDown25
{ TrackGroup::slopeCurve, TrackPitch::Up25, TrackPitch::Up25, TrackRoll::Left, TrackRoll::Left, 0 }, // TrackElemType::LeftBankedQuarterTurn5TileUp25
{ TrackGroup::slopeCurve, TrackPitch::Up25, TrackPitch::Up25, TrackRoll::Right, TrackRoll::Right, 0 }, // TrackElemType::RightBankedQuarterTurn5TileUp25
{ TrackGroup::slopeCurve, TrackPitch::Down25, TrackPitch::Down25, TrackRoll::Left, TrackRoll::Left, 0 }, // TrackElemType::LeftBankedQuarterTurn5TileDown25
{ TrackGroup::slopeCurve, TrackPitch::Down25, TrackPitch::Down25, TrackRoll::Right, TrackRoll::Right, 0 }, // TrackElemType::RightBankedQuarterTurn5TileDown25
{ TrackGroup::slopeRollBanking, TrackPitch::Up25, TrackPitch::Up25, TrackRoll::Left, TrackRoll::None, 0 }, // TrackElemType::Up25ToLeftBankedUp25
{ TrackGroup::slopeRollBanking, TrackPitch::Up25, TrackPitch::Up25, TrackRoll::Right, TrackRoll::None, 0 }, // TrackElemType::Up25ToRightBankedUp25
{ TrackGroup::slopeRollBanking, TrackPitch::Up25, TrackPitch::Up25, TrackRoll::None, TrackRoll::Left, 0 }, // TrackElemType::LeftBankedUp25ToUp25
{ TrackGroup::slopeRollBanking, TrackPitch::Up25, TrackPitch::Up25, TrackRoll::None, TrackRoll::Right, 0 }, // TrackElemType::RightBankedUp25ToUp25
{ TrackGroup::slopeRollBanking, TrackPitch::Down25, TrackPitch::Down25, TrackRoll::Left, TrackRoll::None, 0 }, // TrackElemType::Down25ToLeftBankedDown25
{ TrackGroup::slopeRollBanking, TrackPitch::Down25, TrackPitch::Down25, TrackRoll::Right, TrackRoll::None, 0 }, // TrackElemType::Down25ToRightBankedDown25
{ TrackGroup::slopeRollBanking, TrackPitch::Down25, TrackPitch::Down25, TrackRoll::None, TrackRoll::Left, 0 }, // TrackElemType::LeftBankedDown25ToDown25
{ TrackGroup::slopeRollBanking, TrackPitch::Down25, TrackPitch::Down25, TrackRoll::None, TrackRoll::Right, 0 }, // TrackElemType::RightBankedDown25ToDown25
{ TrackGroup::slopeRollBanking, TrackPitch::Up25, TrackPitch::None, TrackRoll::Left, TrackRoll::Left, 0 }, // TrackElemType::LeftBankedFlatToLeftBankedUp25
{ TrackGroup::slopeRollBanking, TrackPitch::Up25, TrackPitch::None, TrackRoll::Right, TrackRoll::Right, 0 }, // TrackElemType::RightBankedFlatToRightBankedUp25
{ TrackGroup::slopeRollBanking, TrackPitch::None, TrackPitch::Up25, TrackRoll::Left, TrackRoll::Left, 0 }, // TrackElemType::LeftBankedUp25ToLeftBankedFlat
{ TrackGroup::slopeRollBanking, TrackPitch::None, TrackPitch::Up25, TrackRoll::Right, TrackRoll::Right, 0 }, // TrackElemType::RightBankedUp25ToRightBankedFlat
{ TrackGroup::slopeRollBanking, TrackPitch::Down25, TrackPitch::None, TrackRoll::Left, TrackRoll::Left, 0 }, // TrackElemType::LeftBankedFlatToLeftBankedDown25
{ TrackGroup::slopeRollBanking, TrackPitch::Down25, TrackPitch::None, TrackRoll::Right, TrackRoll::Right, 0 }, // TrackElemType::RightBankedFlatToRightBankedDown25
{ TrackGroup::slopeRollBanking, TrackPitch::None, TrackPitch::Down25, TrackRoll::Left, TrackRoll::Left, 0 }, // TrackElemType::LeftBankedDown25ToLeftBankedFlat
{ TrackGroup::slopeRollBanking, TrackPitch::None, TrackPitch::Down25, TrackRoll::Right, TrackRoll::Right, 0 }, // TrackElemType::RightBankedDown25ToRightBankedFlat
{ TrackGroup::slopeRollBanking, TrackPitch::Up25, TrackPitch::None, TrackRoll::Left, TrackRoll::None, 0 }, // TrackElemType::FlatToLeftBankedUp25
{ TrackGroup::slopeRollBanking, TrackPitch::Up25, TrackPitch::None, TrackRoll::Right, TrackRoll::None, 0 }, // TrackElemType::FlatToRightBankedUp25
{ TrackGroup::slopeRollBanking, TrackPitch::None, TrackPitch::Up25, TrackRoll::None, TrackRoll::Left, 0 }, // TrackElemType::LeftBankedUp25ToFlat
{ TrackGroup::slopeRollBanking, TrackPitch::None, TrackPitch::Up25, TrackRoll::None, TrackRoll::Right, 0 }, // TrackElemType::RightBankedUp25ToFlat
{ TrackGroup::slopeRollBanking, TrackPitch::Down25, TrackPitch::None, TrackRoll::Left, TrackRoll::None, 0 }, // TrackElemType::FlatToLeftBankedDown25
{ TrackGroup::slopeRollBanking, TrackPitch::Down25, TrackPitch::None, TrackRoll::Right, TrackRoll::None, 0 }, // TrackElemType::FlatToRightBankedDown25
{ TrackGroup::slopeRollBanking, TrackPitch::None, TrackPitch::Down25, TrackRoll::None, TrackRoll::Left, 0 }, // TrackElemType::LeftBankedDown25ToFlat
{ TrackGroup::slopeRollBanking, TrackPitch::None, TrackPitch::Down25, TrackRoll::None, TrackRoll::Right, 0 }, // TrackElemType::RightBankedDown25ToFlat
{ TrackGroup::slopeCurveSteep, TrackPitch::Up90, TrackPitch::Up90, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::LeftQuarterTurn1TileUp90
{ TrackGroup::slopeCurveSteep, TrackPitch::Up90, TrackPitch::Up90, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::RightQuarterTurn1TileUp90
{ TrackGroup::slopeCurveSteep, TrackPitch::Down90, TrackPitch::Down90, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::LeftQuarterTurn1TileDown90
{ TrackGroup::slopeCurveSteep, TrackPitch::Down90, TrackPitch::Down90, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::RightQuarterTurn1TileDown90
{ TrackGroup::quarterLoopUninvertedUp, TrackPitch::None, TrackPitch::Up90, TrackRoll::UpsideDown, TrackRoll::None, 0 }, // TrackElemType::MultiDimUp90ToInvertedFlatQuarterLoop
{ TrackGroup::quarterLoopUninvertedDown, TrackPitch::Down90, TrackPitch::None, TrackRoll::UpsideDown, TrackRoll::None, 0 }, // TrackElemType::MultiDimFlatToDown90QuarterLoop
{ TrackGroup::quarterLoopInvertedUp, TrackPitch::None, TrackPitch::Up90, TrackRoll::UpsideDown, TrackRoll::None, 0 }, // TrackElemType::MultiDimInvertedUp90ToFlatQuarterLoop
{ TrackGroup::rotationControlToggle, TrackPitch::None, TrackPitch::None, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::RotationControlToggle
{ TrackGroup::flatRideBase, TrackPitch::None, TrackPitch::None, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::FlatTrack1x4A
{ TrackGroup::flatRideBase, TrackPitch::None, TrackPitch::None, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::FlatTrack2x2
{ TrackGroup::flatRideBase, TrackPitch::None, TrackPitch::None, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::FlatTrack4x4
@ -3341,8 +3341,8 @@ namespace OpenRCT2::TrackMetaData
{ TrackGroup::zeroGRollLarge, TrackPitch::Down60, TrackPitch::None, TrackRoll::None, TrackRoll::UpsideDown, -64 }, // TrackElemType::LeftLargeZeroGRollDown
{ TrackGroup::zeroGRollLarge, TrackPitch::Down60, TrackPitch::None, TrackRoll::None, TrackRoll::UpsideDown, -64 }, // TrackElemType::RightLargeZeroGRollDown
{ TrackGroup::flyingLargeHalfLoopUninvertedUp, TrackPitch::None, TrackPitch::Up25, TrackRoll::UpsideDown, TrackRoll::None, 64 }, // TrackElemType::LeftFlyerLargeHalfLoopUninvertedUp
{ TrackGroup::flyingLargeHalfLoopUninvertedUp, TrackPitch::None, TrackPitch::Up25, TrackRoll::UpsideDown, TrackRoll::None, 64 }, // TrackElemType::RightFlyerLargeHalfLoopUninvertedUp
{ TrackGroup::flyingLargeHalfLoopInvertedDown, TrackPitch::Down25, TrackPitch::None, TrackRoll::UpsideDown, TrackRoll::None, -64 }, // TrackElemType::LeftFlyerLargeHalfLoopInvertedDown
{ TrackGroup::flyingLargeHalfLoopUninvertedUp, TrackPitch::None, TrackPitch::Up25, TrackRoll::UpsideDown, TrackRoll::None, 64 }, // TrackElemType::RightFlyerLargeHalfLoopUninvertedUp
{ TrackGroup::flyingLargeHalfLoopInvertedDown, TrackPitch::Down25, TrackPitch::None, TrackRoll::UpsideDown, TrackRoll::None, -64 }, // TrackElemType::LeftFlyerLargeHalfLoopInvertedDown
{ TrackGroup::flyingLargeHalfLoopInvertedDown, TrackPitch::Down25, TrackPitch::None, TrackRoll::UpsideDown, TrackRoll::None, -64 }, // TrackElemType::RightFlyerLargeHalfLoopInvertedDown
{ TrackGroup::flyingLargeHalfLoopInvertedUp, TrackPitch::None, TrackPitch::Up25, TrackRoll::UpsideDown, TrackRoll::None, 64 }, // TrackElemType::LeftFlyerLargeHalfLoopInvertedUp
{ TrackGroup::flyingLargeHalfLoopInvertedUp, TrackPitch::None, TrackPitch::Up25, TrackRoll::UpsideDown, TrackRoll::None, 64 }, // TrackElemType::RightFlyerLargeHalfLoopInvertedUp
@ -3398,10 +3398,10 @@ namespace OpenRCT2::TrackMetaData
{ TrackGroup::diagBlockBrakes, TrackPitch::None, TrackPitch::None, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::DiagBlockBrakes
{ TrackGroup::inclinedBrakes, TrackPitch::Down25, TrackPitch::Down25, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::Down25Brakes
{ TrackGroup::diagBooster, TrackPitch::None, TrackPitch::None, TrackRoll::None, TrackRoll::None, 0 }, // TrackElemType::DiagBooster
{ TrackGroup::slopeSteepLong, TrackPitch::Up60, TrackPitch::None, TrackRoll::None, TrackRoll::None, 16 }, // TrackElemType::DiagFlatToUp60LongBase,
{ TrackGroup::slopeSteepLong, TrackPitch::None, TrackPitch::Up60, TrackRoll::None, TrackRoll::None, 48 }, // TrackElemType::DiagUp60ToFlatLongBase,
{ TrackGroup::slopeSteepLong, TrackPitch::Down60, TrackPitch::None, TrackRoll::None, TrackRoll::None, -32 }, // TrackElemType::DiagFlatToDown60LongBase,
{ TrackGroup::slopeSteepLong, TrackPitch::None, TrackPitch::Down60, TrackRoll::None, TrackRoll::None, -24 }, // TrackElemType::DiagDown60ToFlatLongBase,
{ TrackGroup::slopeSteepLong, TrackPitch::Up60, TrackPitch::None, TrackRoll::None, TrackRoll::None, 16 }, // TrackElemType::DiagFlatToUp60LongBase,
{ TrackGroup::slopeSteepLong, TrackPitch::None, TrackPitch::Up60, TrackRoll::None, TrackRoll::None, 48 }, // TrackElemType::DiagUp60ToFlatLongBase,
{ TrackGroup::slopeSteepLong, TrackPitch::Down60, TrackPitch::None, TrackRoll::None, TrackRoll::None, -32 }, // TrackElemType::DiagFlatToDown60LongBase,
{ TrackGroup::slopeSteepLong, TrackPitch::None, TrackPitch::Down60, TrackRoll::None, TrackRoll::None, -24 }, // TrackElemType::DiagDown60ToFlatLongBase,
{ TrackGroup::diveLoop, TrackPitch::None, TrackPitch::Up60, TrackRoll::UpsideDown, TrackRoll::None, 56 }, // TrackElemType::LeftEighthDiveLoopUpToOrthogonal
{ TrackGroup::diveLoop, TrackPitch::None, TrackPitch::Up60, TrackRoll::UpsideDown, TrackRoll::None, 56 }, // TrackElemType::RightEighthDiveLoopUpToOrthogonal
{ TrackGroup::diveLoop, TrackPitch::Down60, TrackPitch::None, TrackRoll::None, TrackRoll::UpsideDown, -56 }, // TrackElemType::LeftEighthDiveLoopDownToDiag
@ -3474,6 +3474,8 @@ namespace OpenRCT2::TrackMetaData
};
static_assert(std::size(TrackTypeToSpinFunction) == EnumValue(TrackElemType::Count));
#pragma region GForces
template<int32_t TConstant>
static int32_t EvaluatorConst(const int16_t)
{
@ -4478,6 +4480,8 @@ namespace OpenRCT2::TrackMetaData
}
}
#pragma endregion
static constexpr StringId RideConfigurationStringIds[] = {
kStringIdEmpty, // 0
STR_STATION_PLATFORM, // 1
@ -4831,6 +4835,8 @@ namespace OpenRCT2::TrackMetaData
};
static_assert(std::size(RideConfigurationStringIds) == EnumValue(TrackElemType::Count));
#pragma region trackBlocks
static constexpr SequenceDescriptor kFlatSeq0 = {
.clearance = { 0, 0, 0, 0, { 0b1111, 0 }, 0 },
.allowedWallEdges = 0b1010,
@ -13045,6 +13051,8 @@ namespace OpenRCT2::TrackMetaData
kRightEighthDiveLoopDownToDiagSeq3, kRightEighthDiveLoopDownToDiagSeq4, kRightEighthDiveLoopDownToDiagSeq5 } },
};
#pragma endregion
static constexpr auto BuildDescriptorTable()
{
std::array<TrackElementDescriptor, EnumValue(TrackElemType::Count)> res{};