1
0
mirror of https://github.com/OpenRCT2/OpenRCT2 synced 2026-01-21 14:02:59 +01:00
Files
OpenRCT2/src/openrct2/ride/TrackData.cpp
Simon Jarrett 088db4a7c3 Fix incorrect const names of long base pieces
- Fix function names referring to that of the renamed consts
- Fix incorrect mirror of TrackType::FlatToDown60Long in TrackData
2020-10-01 19:57:52 +01:00

7072 lines
385 KiB
C++

/*****************************************************************************
* Copyright (c) 2014-2020 OpenRCT2 developers
*
* For a complete list of all authors, please refer to contributors.md
* Interested in contributing? Visit https://github.com/OpenRCT2/OpenRCT2
*
* OpenRCT2 is licensed under the GNU General Public License version 3.
*****************************************************************************/
#include "TrackData.h"
#include "Track.h"
#include "TrackPaint.h"
#include <iterator>
// clang-format off
const rct_track_coordinates FlatTrackCoordinates[TrackElemType::Count] = {
{ 0, 0, 0, 0, 0, 0 },
{ 0, 0, 0, 0, 0, 0 },
{ 0, 0, 0, 0, 0, 0 },
{ 0, 0, 0, 0, 0, 0 },
{ 0, 0, 0, 16, 0, 0 },
{ 0, 0, 0, 64, 0, 0 },
{ 0, 0, 0, 8, 0, 0 },
{ 0, 0, 0, 32, 0, 0 },
{ 0, 0, 0, 32, 0, 0 },
{ 0, 0, 0, 8, 0, 0 },
{ 0, 0, 16, 0, 0, 0 },
{ 0, 0, 64, 0, 0, 0 },
{ 0, 0, 8, 0, 0, 0 },
{ 0, 0, 32, 0, 0, 0 },
{ 0, 0, 32, 0, 0, 0 },
{ 0, 0, 8, 0, 0, 0 },
{ 0, 3, 0, 0, -64, -64 },
{ 0, 1, 0, 0, -64, 64 },
{ 0, 0, 0, 0, 0, 0 },
{ 0, 0, 0, 0, 0, 0 },
{ 0, 0, 0, 0, 0, 0 },
{ 0, 0, 0, 0, 0, 0 },
{ 0, 3, 0, 0, -64, -64 },
{ 0, 1, 0, 0, -64, 64 },
{ 0, 0, 0, 8, 0, 0 },
{ 0, 0, 0, 8, 0, 0 },
{ 0, 0, 0, 8, 0, 0 },
{ 0, 0, 0, 8, 0, 0 },
{ 0, 0, 8, 0, 0, 0 },
{ 0, 0, 8, 0, 0, 0 },
{ 0, 0, 8, 0, 0, 0 },
{ 0, 0, 8, 0, 0, 0 },
{ 0, 0, 0, 0, 0, 0 },
{ 0, 0, 0, 0, 0, 0 },
{ 0, 3, 0, 64, -64, -64 },
{ 0, 1, 0, 64, -64, 64 },
{ 0, 3, 64, 0, -64, -64 },
{ 0, 1, 64, 0, -64, 64 },
{ 0, 0, 0, 0, -64, -32 },
{ 0, 0, 0, 0, -64, 32 },
{ 0, 0, 0, 0, -32, -32 },
{ 0, 0, 0, 0, -32, 32 },
{ 0, 3, 0, 0, -32, -32 },
{ 0, 1, 0, 0, -32, 32 },
{ 0, 3, 0, 0, -32, -32 },
{ 0, 1, 0, 0, -32, 32 },
{ 0, 3, 0, 32, -32, -32 },
{ 0, 1, 0, 32, -32, 32 },
{ 0, 3, 32, 0, -32, -32 },
{ 0, 1, 32, 0, -32, 32 },
{ 0, 3, 0, 0, 0, 0 },
{ 0, 1, 0, 0, 0, 0 },
{ 0, 0, 0, 16, -64, 0 },
{ 0, 0, 0, 16, -64, 0 },
{ 0, 0, 0, -16, -64, 0 },
{ 0, 0, 0, -16, -64, 0 },
{ 0, 2, 0, 152, -32, 0 },
{ 0, 2, 0, -152, 32, 0 },
{ 0, 3, 0, 80, -32, -32 },
{ 0, 1, 0, 80, -32, 32 },
{ 0, 3, 0, -80, -32, -32 },
{ 0, 1, 0, -80, -32, 32 },
{ 0, 0, 0, 24, 0, 0 },
{ 0, 0, 0, 24, 0, 0 },
{ 0, 0, 24, 0, 0, 0 },
{ 0, 0, 24, 0, 0, 0 },
{ 0, 0, 0, 96, 32, 0 },
{ 0, 0, 0, 32, 32, 0 },
{ 0, 0, 0, 0, 0, 0 },
{ 0, 0, 0, 16, 0, 0 },
{ 0, 0, 0, 64, 0, 0 },
{ 0, 0, 0, 8, 0, 0 },
{ 0, 0, 0, 32, 0, 0 },
{ 0, 0, 0, 32, 0, 0 },
{ 0, 0, 0, 8, 0, 0 },
{ 0, 0, 16, 0, 0, 0 },
{ 0, 0, 64, 0, 0, 0 },
{ 0, 0, 8, 0, 0, 0 },
{ 0, 0, 32, 0, 0, 0 },
{ 0, 0, 32, 0, 0, 0 },
{ 0, 0, 8, 0, 0, 0 },
{ 0, 3, 0, 0, -64, -64 },
{ 0, 1, 0, 0, -64, 64 },
{ 0, 0, 0, 0, -64, -32 },
{ 0, 0, 0, 0, -64, 32 },
{ 0, 3, 0, 0, -32, -32 },
{ 0, 1, 0, 0, -32, 32 },
{ 0, 2, 0, 16, 0, -96 },
{ 0, 2, 0, 16, 0, 96 },
{ 0, 2, 16, 0, 0, -96 },
{ 0, 2, 16, 0, 0, 96 },
{ 0, 2, 0, 16, 0, -160 },
{ 0, 2, 0, 16, 0, 160 },
{ 0, 2, 16, 0, 0, -160 },
{ 0, 2, 16, 0, 0, 160 },
{ 0, 2, 0, 0, 0, 32 }, // FLAT_TRACK_ELEM_1_X_4_A
{ 0, 1, 0, 64, 0, 0 },
{ 0, 3, 64, 0, 0, 0 },
{ 0, 1, 64, 0, 0, 0 },
{ 0, 0, 0, 0, 0, 0 },
{ 0, 0, 0, 0, 0, 0 },
{ 0, 0, 0, 0, 0, 0 },
{ 0, 3, 0, 16, -64, -64 },
{ 0, 1, 0, 16, -64, 64 },
{ 0, 3, 16, 0, -64, -64 },
{ 0, 1, 16, 0, -64, 64 },
{ 0, 3, 0, 16, -64, -64 },
{ 0, 1, 0, 16, -64, 64 },
{ 0, 3, 16, 0, -64, -64 },
{ 0, 1, 16, 0, -64, 64 },
{ 0, 2, 0, 0, 0, 32 }, // FLAT_TRACK_ELEM_2_X_2
{ 0, 2, 0, 0, 0, 32 }, // FLAT_TRACK_ELEM_4_X_4
{ 0, 0, 0, 0, 0, 0 },
{ 0, 0, 0, 0, 0, 0 },
{ 0, 0, 0, 0, 0, 0 },
{ 0, 2, 0, 0, 0, 32 }, // ???
{ 0, 2, 0, 0, 0, 32 }, // FLAT_TRACK_ELEM_1_X_5
{ 0, 0, 16, 16, -128, 0 },
{ 0, 2, 0, 0, 0, 32 }, // FLAT_TRACK_ELEM_1_X_1_A
{ 0, 2, 0, 0, 0, 32 }, // FLAT_TRACK_ELEM_1_X_4_B
{ 0, 0, 0, 0, 0, 0 },
{ 0, 2, 0, 0, 0, 32 }, // FLAT_TRACK_ELEM_1_X_1_B
{ 0, 2, 0, 0, 0, 32 }, // FLAT_TRACK_ELEM_1_X_4_C
{ 0, 0, 0, 96, 32, 0 }, // FLAT_TRACK_ELEM_3_X_3
{ 0, 0, 0, 240, -160, 0 },
{ 0, 0, 0, 80, 32, 0 },
{ 0, 0, 0, 32, 32, 0 },
{ 0, 0, 32, 0, 32, 0 },
{ 0, 0, 0, 56, 32, 0 },
{ 0, 0, 56, 0, 0, 0 },
{ 0, 0, 0, 56, 0, 0 },
{ 0, 0, 56, 0, 32, 0 },
{ 0, 0, 24, 0, 0, 0 },
{ 0, 7, 0, 0, -64, -32 },
{ 0, 4, 0, 0, -64, 32 },
{ 4, 0, 0, 0, -64, 32 },
{ 4, 1, 0, 0, -32, 64 },
{ 0, 7, 0, 0, -64, -32 },
{ 0, 4, 0, 0, -64, 32 },
{ 4, 0, 0, 0, -64, 32 },
{ 4, 1, 0, 0, -32, 64 },
{ 4, 4, 0, 0, -32, 32 },
{ 4, 4, 0, 16, -32, 32 },
{ 4, 4, 0, 64, -32, 32 },
{ 4, 4, 0, 8, -32, 32 },
{ 4, 4, 0, 32, -32, 32 },
{ 4, 4, 0, 32, -32, 32 },
{ 4, 4, 0, 8, -32, 32 },
{ 4, 4, 16, 0, -32, 32 },
{ 4, 4, 64, 0, -32, 32 },
{ 4, 4, 8, 0, -32, 32 },
{ 4, 4, 32, 0, -32, 32 },
{ 4, 4, 32, 0, -32, 32 },
{ 4, 4, 8, 0, -32, 32 },
{ 4, 4, 0, 24, -32, 32 },
{ 4, 4, 0, 24, -32, 32 },
{ 4, 4, 24, 0, -32, 32 },
{ 4, 4, 24, 0, -32, 32 },
{ 4, 4, 0, 0, -32, 32 },
{ 4, 4, 0, 0, -32, 32 },
{ 4, 4, 0, 0, -32, 32 },
{ 4, 4, 0, 0, -32, 32 },
{ 4, 4, 0, 8, -32, 32 },
{ 4, 4, 0, 8, -32, 32 },
{ 4, 4, 0, 8, -32, 32 },
{ 4, 4, 0, 8, -32, 32 },
{ 4, 4, 8, 0, -32, 32 },
{ 4, 4, 8, 0, -32, 32 },
{ 4, 4, 8, 0, -32, 32 },
{ 4, 4, 8, 0, -32, 32 },
{ 4, 4, 0, 0, -32, 32 },
{ 4, 4, 0, 0, -32, 32 },
{ 0, 0, 0, 0, 0, 0 },
{ 0, 0, 0, 0, 0, 0 },
{ 0, 0, 0, 32, -64, 0 },
{ 0, 0, 0, 32, -64, 0 },
{ 0, 0, 0, -32, -64, 0 },
{ 0, 0, 0, -32, -64, 0 },
{ 0, 3, 0, 24, -32, -32 },
{ 0, 1, 0, 24, -32, 32 },
{ 0, 3, 24, 0, -32, -32 },
{ 0, 1, 24, 0, -32, 32 },
{ 0, 0, 0, 16, 0, 0 },
{ 0, 2, 0, 280, -64, -32 },
{ 0, 2, 0, 280, -64, 32 },
{ 0, 2, 0, -280, 64, -32 },
{ 0, 2, 0, -280, 64, 32 },
{ 0, 0, 0, -16, -64, 0 },
{ 0, 0, 0, -16, -64, 0 },
{ 0, 0, 0, 16, -64, 0 },
{ 0, 0, 0, 16, -64, 0 },
{ 0, 2, 0, 120, -32, 0 },
{ 0, 2, 0, -120, 32, 0 },
{ 0, 3, 0, 48, -32, -32 },
{ 0, 1, 0, 48, -32, 32 },
{ 0, 3, 0, -48, -32, -32 },
{ 0, 1, 0, -48, -32, 32 },
{ 0, 2, 0, 32, 0, 0 },
{ 0, 2, 0, -32, 0, 0 },
{ 0, 0, 0, 0, -160, 0 },
{ 0, 0, 0, 0, -160, 0 },
{ 0, 0, 0, 0, -32, 0 },
{ 0, 0, 0, 0, -32, 0 },
{ 0, 0, 0, 0, -32, 0 },
{ 0, 1, 0, 0, -32, 32 },
{ 0, 3, 0, 0, -32, -32 },
{ 0, 0, 0, 0, -32, 0 }, // ???
{ 0, 0, 0, 0, -32, 0 }, // ???
{ 0, 0, 0, 0, -32, 0 }, // ???
{ 0, 3, 0, 16, -32, -32 },
{ 0, 1, 0, 16, -32, 32 },
{ 0, 0, 0, 0, -64, 0 },
{ 0, 0, 0, 0, -64, 0 },
{ 0, 0, 0, 0, -32, 0 },
{ 0, 0, 80, 0, 32, 0 },
{ 0, 0, 240, 0, -160, 0 },
{ 0, 0, 0, 0, 0, 0 },
{ 0, 3, 0, 32, -32, -32 },
{ 0, 1, 0, 32, -32, 32 },
{ 0, 3, 32, 0, -32, -32 },
{ 0, 1, 32, 0, -32, 32 },
{ 0, 3, 0, 64, -64, -64 },
{ 0, 1, 0, 64, -64, 64 },
{ 0, 3, 64, 0, -64, -64 },
{ 0, 1, 64, 0, -64, 64 },
{ 0, 0, 0, 16, 0, 0 },
{ 0, 0, 0, 16, 0, 0 },
{ 0, 0, 0, 16, 0, 0 },
{ 0, 0, 0, 16, 0, 0 },
{ 0, 0, 16, 0, 0, 0 },
{ 0, 0, 16, 0, 0, 0 },
{ 0, 0, 16, 0, 0, 0 },
{ 0, 0, 16, 0, 0, 0 },
{ 0, 0, 0, 8, 0, 0 },
{ 0, 0, 0, 8, 0, 0 },
{ 0, 0, 0, 8, 0, 0 },
{ 0, 0, 0, 8, 0, 0 },
{ 0, 0, 8, 0, 0, 0 },
{ 0, 0, 8, 0, 0, 0 },
{ 0, 0, 8, 0, 0, 0 },
{ 0, 0, 8, 0, 0, 0 },
{ 0, 0, 0, 8, 0, 0 },
{ 0, 0, 0, 8, 0, 0 },
{ 0, 0, 0, 8, 0, 0 },
{ 0, 0, 0, 8, 0, 0 },
{ 0, 0, 8, 0, 0, 0 },
{ 0, 0, 8, 0, 0, 0 },
{ 0, 0, 8, 0, 0, 0 },
{ 0, 0, 8, 0, 0, 0 },
{ 0, 3, 0, 96, 0, 32 },
{ 0, 1, 0, 96, 0, -32 },
{ 0, 3, 96, 0, 0, 32 },
{ 0, 1, 96, 0, 0, -32 },
};
const rct_track_coordinates TrackCoordinates[TrackElemType::Count] = {
{ 0, 0, 0, 0, 0, 0 }, // ELEM_FLAT
{ 0, 0, 0, 0, 0, 0 }, // ELEM_END_STATION
{ 0, 0, 0, 0, 0, 0 }, // ELEM_BEGIN_STATION
{ 0, 0, 0, 0, 0, 0 }, // ELEM_MIDDLE_STATION
{ 0, 0, 0, 16, 0, 0 }, // ELEM_25_DEG_UP
{ 0, 0, 0, 64, 0, 0 }, // ELEM_60_DEG_UP
{ 0, 0, 0, 8, 0, 0 }, // ELEM_FLAT_TO_25_DEG_UP
{ 0, 0, 0, 32, 0, 0 }, // ELEM_25_DEG_UP_TO_60_DEG_UP
{ 0, 0, 0, 32, 0, 0 }, // ELEM_60_DEG_UP_TO_25_DEG_UP
{ 0, 0, 0, 8, 0, 0 }, // ELEM_25_DEG_UP_TO_FLAT
{ 0, 0, 16, 0, 0, 0 }, // ELEM_25_DEG_DOWN
{ 0, 0, 64, 0, 0, 0 }, // ELEM_60_DEG_DOWN
{ 0, 0, 8, 0, 0, 0 }, // ELEM_FLAT_TO_25_DEG_DOWN
{ 0, 0, 32, 0, 0, 0 }, // ELEM_25_DEG_DOWN_TO_60_DEG_DOWN
{ 0, 0, 32, 0, 0, 0 }, // ELEM_60_DEG_DOWN_TO_25_DEG_DOWN
{ 0, 0, 8, 0, 0, 0 }, // ELEM_25_DEG_DOWN_TO_FLAT
{ 0, 3, 0, 0, -64, -64 }, // ELEM_LEFT_QUARTER_TURN_5_TILES
{ 0, 1, 0, 0, -64, 64 }, // ELEM_RIGHT_QUARTER_TURN_5_TILES
{ 0, 0, 0, 0, 0, 0 }, // ELEM_FLAT_TO_LEFT_BANK
{ 0, 0, 0, 0, 0, 0 }, // ELEM_FLAT_TO_RIGHT_BANK
{ 0, 0, 0, 0, 0, 0 }, // ELEM_LEFT_BANK_TO_FLAT
{ 0, 0, 0, 0, 0, 0 }, // ELEM_RIGHT_BANK_TO_FLAT
{ 0, 3, 0, 0, -64, -64 }, // ELEM_BANKED_LEFT_QUARTER_TURN_5_TILES
{ 0, 1, 0, 0, -64, 64 }, // ELEM_BANKED_RIGHT_QUARTER_TURN_5_TILES
{ 0, 0, 0, 8, 0, 0 }, // ELEM_LEFT_BANK_TO_25_DEG_UP
{ 0, 0, 0, 8, 0, 0 }, // ELEM_RIGHT_BANK_TO_25_DEG_UP
{ 0, 0, 0, 8, 0, 0 }, // ELEM_25_DEG_UP_TO_LEFT_BANK
{ 0, 0, 0, 8, 0, 0 }, // ELEM_25_DEG_UP_TO_RIGHT_BANK
{ 0, 0, 8, 0, 0, 0 }, // ELEM_LEFT_BANK_TO_25_DEG_DOWN
{ 0, 0, 8, 0, 0, 0 }, // ELEM_RIGHT_BANK_TO_25_DEG_DOWN
{ 0, 0, 8, 0, 0, 0 }, // ELEM_25_DEG_DOWN_TO_LEFT_BANK
{ 0, 0, 8, 0, 0, 0 }, // ELEM_25_DEG_DOWN_TO_RIGHT_BANK
{ 0, 0, 0, 0, 0, 0 }, // ELEM_LEFT_BANK
{ 0, 0, 0, 0, 0, 0 }, // ELEM_RIGHT_BANK
{ 0, 3, 0, 64, -64, -64 }, // ELEM_LEFT_QUARTER_TURN_5_TILES_25_DEG_UP
{ 0, 1, 0, 64, -64, 64 }, // ELEM_RIGHT_QUARTER_TURN_5_TILES_25_DEG_UP
{ 0, 3, 64, 0, -64, -64 }, // ELEM_LEFT_QUARTER_TURN_5_TILES_25_DEG_DOWN
{ 0, 1, 64, 0, -64, 64 }, // ELEM_RIGHT_QUARTER_TURN_5_TILES_25_DEG_DOWN
{ 0, 0, 0, 0, -64, -32 }, // ELEM_S_BEND_LEFT
{ 0, 0, 0, 0, -64, 32 }, // ELEM_S_BEND_RIGHT
{ 0, 0, 0, 0, -32, -32 }, // ELEM_LEFT_VERTICAL_LOOP
{ 0, 0, 0, 0, -32, 32 }, // ELEM_RIGHT_VERTICAL_LOOP
{ 0, 3, 0, 0, -32, -32 }, // ELEM_LEFT_QUARTER_TURN_3_TILES
{ 0, 1, 0, 0, -32, 32 }, // ELEM_RIGHT_QUARTER_TURN_3_TILES
{ 0, 3, 0, 0, -32, -32 }, // ELEM_LEFT_QUARTER_TURN_3_TILES_BANK
{ 0, 1, 0, 0, -32, 32 }, // ELEM_RIGHT_QUARTER_TURN_3_TILES_BANK
{ 0, 3, 0, 32, -32, -32 }, // ELEM_LEFT_QUARTER_TURN_3_TILES_25_DEG_UP
{ 0, 1, 0, 32, -32, 32 }, // ELEM_RIGHT_QUARTER_TURN_3_TILES_25_DEG_UP
{ 0, 3, 32, 0, -32, -32 }, // ELEM_LEFT_QUARTER_TURN_3_TILES_25_DEG_DOWN
{ 0, 1, 32, 0, -32, 32 }, // ELEM_RIGHT_QUARTER_TURN_3_TILES_25_DEG_DOWN
{ 0, 3, 0, 0, 0, 0 }, // ELEM_LEFT_QUARTER_TURN_1_TILE
{ 0, 1, 0, 0, 0, 0 }, // ELEM_RIGHT_QUARTER_TURN_1_TILE
{ 0, 0, 0, 16, -64, 0 }, // ELEM_LEFT_TWIST_DOWN_TO_UP
{ 0, 0, 0, 16, -64, 0 }, // ELEM_RIGHT_TWIST_DOWN_TO_UP
{ 0, 0, 0, -16, -64, 0 }, // ELEM_LEFT_TWIST_UP_TO_DOWN
{ 0, 0, 0, -16, -64, 0 }, // ELEM_RIGHT_TWIST_UP_TO_DOWN
{ 0, 2, 0, 152, -32, 0 }, // ELEM_HALF_LOOP_UP
{ 0, 2, 0, -152, 32, 0 }, // ELEM_HALF_LOOP_DOWN
{ 0, 3, 0, 80, -32, -32 }, // ELEM_LEFT_CORKSCREW_UP
{ 0, 1, 0, 80, -32, 32 }, // ELEM_RIGHT_CORKSCREW_UP
{ 0, 3, 0, -80, -32, -32 }, // ELEM_LEFT_CORKSCREW_DOWN
{ 0, 1, 0, -80, -32, 32 }, // ELEM_RIGHT_CORKSCREW_DOWN
{ 0, 0, 0, 24, 0, 0 }, // ELEM_FLAT_TO_60_DEG_UP
{ 0, 0, 0, 24, 0, 0 }, // ELEM_60_DEG_UP_TO_FLAT
{ 0, 0, 24, 0, 0, 0 }, // ELEM_FLAT_TO_60_DEG_DOWN
{ 0, 0, 24, 0, 0, 0 }, // ELEM_60_DEG_DOWN_TO_FLAT
{ 0, 0, 0, 96, 32, 0 }, // ELEM_TOWER_BASE
{ 0, 0, 0, 32, 32, 0 }, // ELEM_TOWER_SECTION
{ 0, 0, 0, 0, 0, 0 }, // ELEM_FLAT_COVERED
{ 0, 0, 0, 16, 0, 0 }, // ELEM_25_DEG_UP_COVERED
{ 0, 0, 0, 64, 0, 0 }, // ELEM_60_DEG_UP_COVERED
{ 0, 0, 0, 8, 0, 0 }, // ELEM_FLAT_TO_25_DEG_UP_COVERED
{ 0, 0, 0, 32, 0, 0 }, // ELEM_25_DEG_UP_TO_60_DEG_UP_COVERED
{ 0, 0, 0, 32, 0, 0 }, // ELEM_60_DEG_UP_TO_25_DEG_UP_COVERED
{ 0, 0, 0, 8, 0, 0 }, // ELEM_25_DEG_UP_TO_FLAT_COVERED
{ 0, 0, 16, 0, 0, 0 }, // ELEM_25_DEG_DOWN_COVERED
{ 0, 0, 64, 0, 0, 0 }, // ELEM_60_DEG_DOWN_COVERED
{ 0, 0, 8, 0, 0, 0 }, // ELEM_FLAT_TO_25_DEG_DOWN_COVERED
{ 0, 0, 32, 0, 0, 0 }, // ELEM_25_DEG_DOWN_TO_60_DEG_DOWN_COVERED
{ 0, 0, 32, 0, 0, 0 }, // ELEM_60_DEG_DOWN_TO_25_DEG_DOWN_COVERED
{ 0, 0, 8, 0, 0, 0 }, // ELEM_25_DEG_DOWN_TO_FLAT_COVERED
{ 0, 3, 0, 0, -64, -64 }, // ELEM_LEFT_QUARTER_TURN_5_TILES_COVERED
{ 0, 1, 0, 0, -64, 64 }, // ELEM_RIGHT_QUARTER_TURN_5_TILES_COVERED
{ 0, 0, 0, 0, -64, -32 }, // ELEM_S_BEND_LEFT_COVERED
{ 0, 0, 0, 0, -64, 32 }, // ELEM_S_BEND_RIGHT_COVERED
{ 0, 3, 0, 0, -32, -32 }, // ELEM_LEFT_QUARTER_TURN_3_TILES_COVERED
{ 0, 1, 0, 0, -32, 32 }, // ELEM_RIGHT_QUARTER_TURN_3_TILES_COVERED
{ 0, 2, 0, 16, 0, -96 }, // ELEM_LEFT_HALF_BANKED_HELIX_UP_SMALL
{ 0, 2, 0, 16, 0, 96 }, // ELEM_RIGHT_HALF_BANKED_HELIX_UP_SMALL
{ 0, 2, 16, 0, 0, -96 }, // ELEM_LEFT_HALF_BANKED_HELIX_DOWN_SMALL
{ 0, 2, 16, 0, 0, 96 }, // ELEM_RIGHT_HALF_BANKED_HELIX_DOWN_SMALL
{ 0, 2, 0, 16, 0, -160 }, // ELEM_LEFT_HALF_BANKED_HELIX_UP_LARGE
{ 0, 2, 0, 16, 0, 160 }, // ELEM_RIGHT_HALF_BANKED_HELIX_UP_LARGE
{ 0, 2, 16, 0, 0, -160 }, // ELEM_LEFT_HALF_BANKED_HELIX_DOWN_LARGE
{ 0, 2, 16, 0, 0, 160 }, // ELEM_RIGHT_HALF_BANKED_HELIX_DOWN_LARGE
{ 0, 3, 0, 64, 0, 0 }, // ELEM_LEFT_QUARTER_TURN_1_TILE_60_DEG_UP
{ 0, 1, 0, 64, 0, 0 }, // ELEM_RIGHT_QUARTER_TURN_1_TILE_60_DEG_UP
{ 0, 3, 64, 0, 0, 0 }, // ELEM_LEFT_QUARTER_TURN_1_TILE_60_DEG_DOWN
{ 0, 1, 64, 0, 0, 0 }, // ELEM_RIGHT_QUARTER_TURN_1_TILE_60_DEG_DOWN
{ 0, 0, 0, 0, 0, 0 }, // ELEM_BRAKES
{ 0, 0, 0, 0, 0, 0 }, // ELEM_ROTATION_CONTROL_TOGGLE
{ 0, 0, 0, 0, 0, 0 }, // ELEM_INVERTED_90_DEG_UP_TO_FLAT_QUARTER_LOOP
{ 0, 3, 0, 16, -64, -64 }, // ELEM_LEFT_QUARTER_BANKED_HELIX_LARGE_UP
{ 0, 1, 0, 16, -64, 64 }, // ELEM_RIGHT_QUARTER_BANKED_HELIX_LARGE_UP
{ 0, 3, 16, 0, -64, -64 }, // ELEM_LEFT_QUARTER_BANKED_HELIX_LARGE_DOWN
{ 0, 1, 16, 0, -64, 64 }, // ELEM_RIGHT_QUARTER_BANKED_HELIX_LARGE_DOWN
{ 0, 3, 0, 16, -64, -64 }, // ELEM_LEFT_QUARTER_HELIX_LARGE_UP
{ 0, 1, 0, 16, -64, 64 }, // ELEM_RIGHT_QUARTER_HELIX_LARGE_UP
{ 0, 3, 16, 0, -64, -64 }, // ELEM_LEFT_QUARTER_HELIX_LARGE_DOWN
{ 0, 1, 16, 0, -64, 64 }, // ELEM_RIGHT_QUARTER_HELIX_LARGE_DOWN
{ 0, 0, 0, 16, 0, 0 }, // ELEM_25_DEG_UP_LEFT_BANKED
{ 0, 0, 0, 16, 0, 0 }, // ELEM_25_DEG_UP_RIGHT_BANKED
{ 0, 0, 0, 0, 0, 0 }, // ELEM_WATERFALL
{ 0, 0, 0, 0, 0, 0 }, // ELEM_RAPIDS
{ 0, 0, 0, 0, 0, 0 }, // ELEM_ON_RIDE_PHOTO
{ 0, 0, 16, 0, 0, 0 }, // ELEM_25_DEG_DOWN_LEFT_BANKED
{ 0, 0, 16, 0, 0, 0 }, // ELEM_25_DEG_DOWN_RIGHT_BANKED
{ 0, 0, 16, 16, -128, 0 }, // ELEM_WATER_SPLASH
{ 0, 0, 0, 88, -96, 0 }, // ELEM_FLAT_TO_60_DEG_UP_LONG_BASE
{ 0, 0, 0, 88, -96, 0 }, // ELEM_60_DEG_UP_TO_FLAT_LONG_BASE
{ 0, 0, 0, 0, 0, 0 }, // ELEM_WHIRLPOOL
{ 0, 0, 88, 0, -96, 0 }, // ELEM_60_DEG_DOWN_TO_FLAT_LONG_BASE
{ 0, 0, 88, 0, -96, 0 }, // ELEM_FLAT_TO_60_DEG_DOWN_LONG_BASE
{ 0, 0, 0, -96, -96, 0 }, // ELEM_CABLE_LIFT_HILL
{ 0, 0, 0, 240, -160, 0 }, // ELEM_REVERSE_FREEFALL_SLOPE
{ 0, 0, 0, 80, 32, 0 }, // ELEM_REVERSE_FREEFALL_VERTICAL
{ 0, 0, 0, 32, 32, 0 }, // ELEM_90_DEG_UP
{ 0, 0, 32, 0, 32, 0 }, // ELEM_90_DEG_DOWN
{ 0, 0, 0, 56, 32, 0 }, // ELEM_60_DEG_UP_TO_90_DEG_UP
{ 0, 0, 56, 0, 0, 0 }, // ELEM_90_DEG_DOWN_TO_60_DEG_DOWN
{ 0, 0, 0, 56, 0, 0 }, // ELEM_90_DEG_UP_TO_60_DEG_UP
{ 0, 0, 56, 0, 32, 0 }, // ELEM_60_DEG_DOWN_TO_90_DEG_DOWN
{ 0, 0, 24, 0, 0, 0 }, // ELEM_BRAKE_FOR_DROP
{ 0, 7, 0, 0, -64, -32 }, // ELEM_LEFT_EIGHTH_TO_DIAG
{ 0, 4, 0, 0, -64, 32 }, // ELEM_RIGHT_EIGHTH_TO_DIAG
{ 4, 0, 0, 0, -64, 32 }, // ELEM_LEFT_EIGHTH_TO_ORTHOGONAL
{ 4, 1, 0, 0, -32, 64 }, // ELEM_RIGHT_EIGHTH_TO_ORTHOGONAL
{ 0, 7, 0, 0, -64, -32 }, // ELEM_LEFT_EIGHTH_BANK_TO_DIAG
{ 0, 4, 0, 0, -64, 32 }, // ELEM_RIGHT_EIGHTH_BANK_TO_DIAG
{ 4, 0, 0, 0, -64, 32 }, // ELEM_LEFT_EIGHTH_BANK_TO_ORTHOGONAL
{ 4, 1, 0, 0, -32, 64 }, // ELEM_RIGHT_EIGHTH_BANK_TO_ORTHOGONAL
{ 4, 4, 0, 0, -32, 32 }, // ELEM_DIAG_FLAT
{ 4, 4, 0, 16, -32, 32 }, // ELEM_DIAG_25_DEG_UP
{ 4, 4, 0, 64, -32, 32 }, // ELEM_DIAG_60_DEG_UP
{ 4, 4, 0, 8, -32, 32 }, // ELEM_DIAG_FLAT_TO_25_DEG_UP
{ 4, 4, 0, 32, -32, 32 }, // ELEM_DIAG_25_DEG_UP_TO_60_DEG_UP
{ 4, 4, 0, 32, -32, 32 }, // ELEM_DIAG_60_DEG_UP_TO_25_DEG_UP
{ 4, 4, 0, 8, -32, 32 }, // ELEM_DIAG_25_DEG_UP_TO_FLAT
{ 4, 4, 16, 0, -32, 32 }, // ELEM_DIAG_25_DEG_DOWN
{ 4, 4, 64, 0, -32, 32 }, // ELEM_DIAG_60_DEG_DOWN
{ 4, 4, 8, 0, -32, 32 }, // ELEM_DIAG_FLAT_TO_25_DEG_DOWN
{ 4, 4, 32, 0, -32, 32 }, // ELEM_DIAG_25_DEG_DOWN_TO_60_DEG_DOWN
{ 4, 4, 32, 0, -32, 32 }, // ELEM_DIAG_60_DEG_DOWN_TO_25_DEG_DOWN
{ 4, 4, 8, 0, -32, 32 }, // ELEM_DIAG_25_DEG_DOWN_TO_FLAT
{ 4, 4, 0, 24, -32, 32 }, // ELEM_DIAG_FLAT_TO_60_DEG_UP
{ 4, 4, 0, 24, -32, 32 }, // ELEM_DIAG_60_DEG_UP_TO_FLAT
{ 4, 4, 24, 0, -32, 32 }, // ELEM_DIAG_FLAT_TO_60_DEG_DOWN
{ 4, 4, 24, 0, -32, 32 }, // ELEM_DIAG_60_DEG_DOWN_TO_FLAT
{ 4, 4, 0, 0, -32, 32 }, // ELEM_DIAG_FLAT_TO_LEFT_BANK
{ 4, 4, 0, 0, -32, 32 }, // ELEM_DIAG_FLAT_TO_RIGHT_BANK
{ 4, 4, 0, 0, -32, 32 }, // ELEM_DIAG_LEFT_BANK_TO_FLAT
{ 4, 4, 0, 0, -32, 32 }, // ELEM_DIAG_RIGHT_BANK_TO_FLAT
{ 4, 4, 0, 8, -32, 32 }, // ELEM_DIAG_LEFT_BANK_TO_25_DEG_UP
{ 4, 4, 0, 8, -32, 32 }, // ELEM_DIAG_RIGHT_BANK_TO_25_DEG_UP
{ 4, 4, 0, 8, -32, 32 }, // ELEM_DIAG_25_DEG_UP_TO_LEFT_BANK
{ 4, 4, 0, 8, -32, 32 }, // ELEM_DIAG_25_DEG_UP_TO_RIGHT_BANK
{ 4, 4, 8, 0, -32, 32 }, // ELEM_DIAG_LEFT_BANK_TO_25_DEG_DOWN
{ 4, 4, 8, 0, -32, 32 }, // ELEM_DIAG_RIGHT_BANK_TO_25_DEG_DOWN
{ 4, 4, 8, 0, -32, 32 }, // ELEM_DIAG_25_DEG_DOWN_TO_LEFT_BANK
{ 4, 4, 8, 0, -32, 32 }, // ELEM_DIAG_25_DEG_DOWN_TO_RIGHT_BANK
{ 4, 4, 0, 0, -32, 32 }, // ELEM_DIAG_LEFT_BANK
{ 4, 4, 0, 0, -32, 32 }, // ELEM_DIAG_RIGHT_BANK
{ 0, 0, 0, 0, 0, 0 }, // ELEM_LOG_FLUME_REVERSER
{ 0, 0, 0, 0, 0, 0 }, // ELEM_SPINNING_TUNNEL
{ 0, 0, 0, 32, -64, 0 }, // ELEM_LEFT_BARREL_ROLL_UP_TO_DOWN
{ 0, 0, 0, 32, -64, 0 }, // ELEM_RIGHT_BARREL_ROLL_UP_TO_DOWN
{ 0, 0, 0, -32, -64, 0 }, // ELEM_LEFT_BARREL_ROLL_DOWN_TO_UP
{ 0, 0, 0, -32, -64, 0 }, // ELEM_RIGHT_BARREL_ROLL_DOWN_TO_UP
{ 0, 3, 0, 24, -32, -32 }, // ELEM_LEFT_BANK_TO_LEFT_QUARTER_TURN_3_TILES_25_DEG_UP
{ 0, 1, 0, 24, -32, 32 }, // ELEM_RIGHT_BANK_TO_RIGHT_QUARTER_TURN_3_TILES_25_DEG_UP
{ 0, 3, 24, 0, -32, -32 }, // ELEM_LEFT_QUARTER_TURN_3_TILES_25_DEG_DOWN_TO_LEFT_BANK
{ 0, 1, 24, 0, -32, 32 }, // ELEM_RIGHT_QUARTER_TURN_3_TILES_25_DEG_DOWN_TO_RIGHT_BANK
{ 0, 0, 0, 16, 0, 0 }, // ELEM_POWERED_LIFT
{ 0, 2, 0, 280, -64, -32 }, // ELEM_LEFT_LARGE_HALF_LOOP_UP
{ 0, 2, 0, 280, -64, 32 }, // ELEM_RIGHT_LARGE_HALF_LOOP_UP
{ 0, 2, 0, -280, 64, -32 }, // ELEM_RIGHT_LARGE_HALF_LOOP_DOWN
{ 0, 2, 0, -280, 64, 32 }, // ELEM_LEFT_LARGE_HALF_LOOP_DOWN
{ 0, 0, 0, -16, -64, 0 }, // ELEM_LEFT_FLYER_TWIST_UP_TO_DOWN
{ 0, 0, 0, -16, -64, 0 }, // ELEM_RIGHT_FLYER_TWIST_UP_TO_DOWN
{ 0, 0, 0, 16, -64, 0 }, // ELEM_LEFT_FLYER_TWIST_DOWN_TO_UP
{ 0, 0, 0, 16, -64, 0 }, // ELEM_RIGHT_FLYER_TWIST_DOWN_TO_UP
{ 0, 2, 0, 120, -32, 0 }, // ELEM_FLYER_HALF_LOOP_UP
{ 0, 2, 0, -120, 32, 0 }, // ELEM_FLYER_HALF_LOOP_DOWN
{ 0, 3, 0, 48, -32, -32 }, // ELEM_LEFT_FLY_CORKSCREW_UP_TO_DOWN
{ 0, 1, 0, 48, -32, 32 }, // ELEM_RIGHT_FLY_CORKSCREW_UP_TO_DOWN
{ 0, 3, 0, -48, -32, -32 }, // ELEM_LEFT_FLY_CORKSCREW_DOWN_TO_UP
{ 0, 1, 0, -48, -32, 32 }, // ELEM_RIGHT_FLY_CORKSCREW_DOWN_TO_UP
{ 0, 2, 0, 32, 0, 0 }, // ELEM_HEARTLINE_TRANSFER_UP
{ 0, 2, 0, -32, 0, 0 }, // ELEM_HEARTLINE_TRANSFER_DOWN
{ 0, 0, 0, 0, -160, 0 }, // ELEM_LEFT_HEARTLINE_ROLL
{ 0, 0, 0, 0, -160, 0 }, // ELEM_RIGHT_HEARTLINE_ROLL
{ 0, 0, 0, 0, -32, 0 }, // ELEM_MINI_GOLF_HOLE_A
{ 0, 0, 0, 0, -32, 0 }, // ELEM_MINI_GOLF_HOLE_B
{ 0, 0, 0, 0, -32, 0 }, // ELEM_MINI_GOLF_HOLE_C
{ 0, 1, 0, 0, -32, 32 }, // ELEM_MINI_GOLF_HOLE_D
{ 0, 3, 0, 0, -32, -32 }, // ELEM_MINI_GOLF_HOLE_E
{ 0, 2, 0, -96, -96, 0 }, // ELEM_INVERTED_FLAT_TO_90_DEG_DOWN_QUARTER_LOOP
{ 0, 2, 0, 128, 64, 0 }, // ELEM_90_DEG_UP_QUARTER_LOOP_TO_INVERTED
{ 0, 2, 0, -128, -96, 0 }, // ELEM_QUARTER_LOOP_INVERT_TO_90_DEG_DOWN
{ 0, 3, 0, 16, -32, -32 }, // ELEM_LEFT_CURVED_LIFT_HILL
{ 0, 1, 0, 16, -32, 32 }, // ELEM_RIGHT_CURVED_LIFT_HILL
{ 0, 0, 0, 0, -64, 0 }, // ELEM_LEFT_REVERSER
{ 0, 0, 0, 0, -64, 0 }, // ELEM_RIGHT_REVERSER
{ 0, 0, 0, 0, -32, 0 }, // ELEM_AIR_THRUST_TOP_CAP
{ 0, 0, 80, 0, 32, 0 }, // ELEM_AIR_THRUST_VERTICAL_DOWN
{ 0, 0, 240, 0, -160, 0 }, // ELEM_AIR_THRUST_VERTICAL_DOWN_TO_LEVEL
{ 0, 0, 0, 0, 0, 0 }, // ELEM_BLOCK_BRAKES
{ 0, 3, 0, 32, -32, -32 }, // ELEM_BANKED_LEFT_QUARTER_TURN_3_TILES_25_DEG_UP
{ 0, 1, 0, 32, -32, 32 }, // ELEM_BANKED_RIGHT_QUARTER_TURN_3_TILES_25_DEG_UP
{ 0, 3, 32, 0, -32, -32 },
{ 0, 1, 32, 0, -32, 32 },
{ 0, 3, 0, 64, -64, -64 },
{ 0, 1, 0, 64, -64, 64 },
{ 0, 3, 64, 0, -64, -64 },
{ 0, 1, 64, 0, -64, 64 },
{ 0, 0, 0, 16, 0, 0 },
{ 0, 0, 0, 16, 0, 0 },
{ 0, 0, 0, 16, 0, 0 },
{ 0, 0, 0, 16, 0, 0 },
{ 0, 0, 16, 0, 0, 0 },
{ 0, 0, 16, 0, 0, 0 },
{ 0, 0, 16, 0, 0, 0 },
{ 0, 0, 16, 0, 0, 0 },
{ 0, 0, 0, 8, 0, 0 },
{ 0, 0, 0, 8, 0, 0 },
{ 0, 0, 0, 8, 0, 0 },
{ 0, 0, 0, 8, 0, 0 },
{ 0, 0, 8, 0, 0, 0 },
{ 0, 0, 8, 0, 0, 0 },
{ 0, 0, 8, 0, 0, 0 },
{ 0, 0, 8, 0, 0, 0 },
{ 0, 0, 0, 8, 0, 0 },
{ 0, 0, 0, 8, 0, 0 },
{ 0, 0, 0, 8, 0, 0 },
{ 0, 0, 0, 8, 0, 0 },
{ 0, 0, 8, 0, 0, 0 },
{ 0, 0, 8, 0, 0, 0 },
{ 0, 0, 8, 0, 0, 0 },
{ 0, 0, 8, 0, 0, 0 },
{ 0, 3, 0, 96, 0, 32 },
{ 0, 1, 0, 96, 0, -32 },
{ 0, 3, 96, 0, 0, 32 },
{ 0, 1, 96, 0, 0, -32 },
{ 0, 2, 0, 96, 64, 0 },
{ 0, 2, 0, -128, -96, 0 },
{ 0, 2, 0, 128, 64, 0 }
};
/** rct2: 0x0099BA64 */
const uint8_t TrackSequenceProperties[][16] = {
{ 0 },
/* TrackElemType::EndStation */ { TRACK_SEQUENCE_FLAG_DIRECTION_1 | TRACK_SEQUENCE_FLAG_DIRECTION_3 | TRACK_SEQUENCE_FLAG_ORIGIN | TRACK_SEQUENCE_FLAG_DISALLOW_DOORS, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
/* TrackElemType::BeginStation */ { TRACK_SEQUENCE_FLAG_DIRECTION_1 | TRACK_SEQUENCE_FLAG_DIRECTION_3 | TRACK_SEQUENCE_FLAG_ORIGIN | TRACK_SEQUENCE_FLAG_DISALLOW_DOORS, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
/* TrackElemType::MiddleStation */ { TRACK_SEQUENCE_FLAG_DIRECTION_1 | TRACK_SEQUENCE_FLAG_DIRECTION_3 | TRACK_SEQUENCE_FLAG_ORIGIN | TRACK_SEQUENCE_FLAG_DISALLOW_DOORS, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
/* TrackElemType::TowerBase */ { TRACK_SEQUENCE_FLAG_ORIGIN, TRACK_SEQUENCE_FLAG_DIRECTION_0 | TRACK_SEQUENCE_FLAG_DIRECTION_3, TRACK_SEQUENCE_FLAG_DIRECTION_0, TRACK_SEQUENCE_FLAG_DIRECTION_0 | TRACK_SEQUENCE_FLAG_DIRECTION_1, TRACK_SEQUENCE_FLAG_DIRECTION_3, TRACK_SEQUENCE_FLAG_DIRECTION_1, TRACK_SEQUENCE_FLAG_DIRECTION_2 | TRACK_SEQUENCE_FLAG_DIRECTION_3, TRACK_SEQUENCE_FLAG_DIRECTION_1 | TRACK_SEQUENCE_FLAG_DIRECTION_2, TRACK_SEQUENCE_FLAG_DIRECTION_2, 0, 0, 0, 0, 0, 0, 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
/* TrackElemType::Maze */ { TRACK_SEQUENCE_FLAG_DIRECTION_0 | TRACK_SEQUENCE_FLAG_DIRECTION_1 | TRACK_SEQUENCE_FLAG_DIRECTION_2 | TRACK_SEQUENCE_FLAG_DIRECTION_3 | TRACK_SEQUENCE_FLAG_ORIGIN, TRACK_SEQUENCE_FLAG_DIRECTION_0 | TRACK_SEQUENCE_FLAG_DIRECTION_1 | TRACK_SEQUENCE_FLAG_DIRECTION_2 | TRACK_SEQUENCE_FLAG_DIRECTION_3 | TRACK_SEQUENCE_FLAG_ORIGIN, TRACK_SEQUENCE_FLAG_DIRECTION_0 | TRACK_SEQUENCE_FLAG_DIRECTION_1 | TRACK_SEQUENCE_FLAG_DIRECTION_2 | TRACK_SEQUENCE_FLAG_DIRECTION_3 | TRACK_SEQUENCE_FLAG_ORIGIN, TRACK_SEQUENCE_FLAG_DIRECTION_0 | TRACK_SEQUENCE_FLAG_DIRECTION_1 | TRACK_SEQUENCE_FLAG_DIRECTION_2 | TRACK_SEQUENCE_FLAG_DIRECTION_3 | TRACK_SEQUENCE_FLAG_ORIGIN, TRACK_SEQUENCE_FLAG_DIRECTION_0 | TRACK_SEQUENCE_FLAG_DIRECTION_1 | TRACK_SEQUENCE_FLAG_DIRECTION_2 | TRACK_SEQUENCE_FLAG_DIRECTION_3 | TRACK_SEQUENCE_FLAG_ORIGIN, TRACK_SEQUENCE_FLAG_DIRECTION_0 | TRACK_SEQUENCE_FLAG_DIRECTION_1 | TRACK_SEQUENCE_FLAG_DIRECTION_2 | TRACK_SEQUENCE_FLAG_DIRECTION_3 | TRACK_SEQUENCE_FLAG_ORIGIN, TRACK_SEQUENCE_FLAG_DIRECTION_0 | TRACK_SEQUENCE_FLAG_DIRECTION_1 | TRACK_SEQUENCE_FLAG_DIRECTION_2 | TRACK_SEQUENCE_FLAG_DIRECTION_3 | TRACK_SEQUENCE_FLAG_ORIGIN, TRACK_SEQUENCE_FLAG_DIRECTION_0 | TRACK_SEQUENCE_FLAG_DIRECTION_1 | TRACK_SEQUENCE_FLAG_DIRECTION_2 | TRACK_SEQUENCE_FLAG_DIRECTION_3 | TRACK_SEQUENCE_FLAG_ORIGIN, TRACK_SEQUENCE_FLAG_DIRECTION_0 | TRACK_SEQUENCE_FLAG_DIRECTION_1 | TRACK_SEQUENCE_FLAG_DIRECTION_2 | TRACK_SEQUENCE_FLAG_DIRECTION_3 | TRACK_SEQUENCE_FLAG_ORIGIN, TRACK_SEQUENCE_FLAG_DIRECTION_0 | TRACK_SEQUENCE_FLAG_DIRECTION_1 | TRACK_SEQUENCE_FLAG_DIRECTION_2 | TRACK_SEQUENCE_FLAG_DIRECTION_3 | TRACK_SEQUENCE_FLAG_ORIGIN, TRACK_SEQUENCE_FLAG_DIRECTION_0 | TRACK_SEQUENCE_FLAG_DIRECTION_1 | TRACK_SEQUENCE_FLAG_DIRECTION_2 | TRACK_SEQUENCE_FLAG_DIRECTION_3 | TRACK_SEQUENCE_FLAG_ORIGIN, TRACK_SEQUENCE_FLAG_DIRECTION_0 | TRACK_SEQUENCE_FLAG_DIRECTION_1 | TRACK_SEQUENCE_FLAG_DIRECTION_2 | TRACK_SEQUENCE_FLAG_DIRECTION_3 | TRACK_SEQUENCE_FLAG_ORIGIN, TRACK_SEQUENCE_FLAG_DIRECTION_0 | TRACK_SEQUENCE_FLAG_DIRECTION_1 | TRACK_SEQUENCE_FLAG_DIRECTION_2 | TRACK_SEQUENCE_FLAG_DIRECTION_3 | TRACK_SEQUENCE_FLAG_ORIGIN, TRACK_SEQUENCE_FLAG_DIRECTION_0 | TRACK_SEQUENCE_FLAG_DIRECTION_1 | TRACK_SEQUENCE_FLAG_DIRECTION_2 | TRACK_SEQUENCE_FLAG_DIRECTION_3 | TRACK_SEQUENCE_FLAG_ORIGIN, TRACK_SEQUENCE_FLAG_DIRECTION_0 | TRACK_SEQUENCE_FLAG_DIRECTION_1 | TRACK_SEQUENCE_FLAG_DIRECTION_2 | TRACK_SEQUENCE_FLAG_DIRECTION_3 | TRACK_SEQUENCE_FLAG_ORIGIN, TRACK_SEQUENCE_FLAG_DIRECTION_0 | TRACK_SEQUENCE_FLAG_DIRECTION_1 | TRACK_SEQUENCE_FLAG_DIRECTION_2 | TRACK_SEQUENCE_FLAG_DIRECTION_3 | TRACK_SEQUENCE_FLAG_ORIGIN },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
/* TrackElemType::SpinningTunnel */ { TRACK_SEQUENCE_FLAG_DISALLOW_DOORS, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
};
/** rct2: 0x0099CA64 */
const uint8_t FlatRideTrackSequenceProperties[][16] = {
{ 0 },
/* 1 */ { TRACK_SEQUENCE_FLAG_DIRECTION_1 | TRACK_SEQUENCE_FLAG_DIRECTION_3 | TRACK_SEQUENCE_FLAG_ORIGIN, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
/* 2 */ { TRACK_SEQUENCE_FLAG_DIRECTION_1 | TRACK_SEQUENCE_FLAG_DIRECTION_3 | TRACK_SEQUENCE_FLAG_ORIGIN, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
/* 3 */ { TRACK_SEQUENCE_FLAG_DIRECTION_1 | TRACK_SEQUENCE_FLAG_DIRECTION_3 | TRACK_SEQUENCE_FLAG_ORIGIN, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
/* 66 */ { TRACK_SEQUENCE_FLAG_ORIGIN, TRACK_SEQUENCE_FLAG_DIRECTION_0 | TRACK_SEQUENCE_FLAG_DIRECTION_3, TRACK_SEQUENCE_FLAG_DIRECTION_0, TRACK_SEQUENCE_FLAG_DIRECTION_0 | TRACK_SEQUENCE_FLAG_DIRECTION_1, TRACK_SEQUENCE_FLAG_DIRECTION_3, TRACK_SEQUENCE_FLAG_DIRECTION_1, TRACK_SEQUENCE_FLAG_DIRECTION_2 | TRACK_SEQUENCE_FLAG_DIRECTION_3, TRACK_SEQUENCE_FLAG_DIRECTION_1 | TRACK_SEQUENCE_FLAG_DIRECTION_2, TRACK_SEQUENCE_FLAG_DIRECTION_2, 0, 0, 0, 0, 0, 0, 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
/* FLAT_TRACK_ELEM_1_X_4_A */ { TRACK_SEQUENCE_FLAG_DIRECTION_1 | TRACK_SEQUENCE_FLAG_DIRECTION_3 | TRACK_SEQUENCE_FLAG_ORIGIN, 0, TRACK_SEQUENCE_FLAG_DIRECTION_1 | TRACK_SEQUENCE_FLAG_DIRECTION_3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
/* 101 */ { TRACK_SEQUENCE_FLAG_DIRECTION_0 | TRACK_SEQUENCE_FLAG_DIRECTION_1 | TRACK_SEQUENCE_FLAG_DIRECTION_2 | TRACK_SEQUENCE_FLAG_DIRECTION_3 | TRACK_SEQUENCE_FLAG_ORIGIN, TRACK_SEQUENCE_FLAG_DIRECTION_0 | TRACK_SEQUENCE_FLAG_DIRECTION_1 | TRACK_SEQUENCE_FLAG_DIRECTION_2 | TRACK_SEQUENCE_FLAG_DIRECTION_3 | TRACK_SEQUENCE_FLAG_ORIGIN, TRACK_SEQUENCE_FLAG_DIRECTION_0 | TRACK_SEQUENCE_FLAG_DIRECTION_1 | TRACK_SEQUENCE_FLAG_DIRECTION_2 | TRACK_SEQUENCE_FLAG_DIRECTION_3 | TRACK_SEQUENCE_FLAG_ORIGIN, TRACK_SEQUENCE_FLAG_DIRECTION_0 | TRACK_SEQUENCE_FLAG_DIRECTION_1 | TRACK_SEQUENCE_FLAG_DIRECTION_2 | TRACK_SEQUENCE_FLAG_DIRECTION_3 | TRACK_SEQUENCE_FLAG_ORIGIN, TRACK_SEQUENCE_FLAG_DIRECTION_0 | TRACK_SEQUENCE_FLAG_DIRECTION_1 | TRACK_SEQUENCE_FLAG_DIRECTION_2 | TRACK_SEQUENCE_FLAG_DIRECTION_3 | TRACK_SEQUENCE_FLAG_ORIGIN, TRACK_SEQUENCE_FLAG_DIRECTION_0 | TRACK_SEQUENCE_FLAG_DIRECTION_1 | TRACK_SEQUENCE_FLAG_DIRECTION_2 | TRACK_SEQUENCE_FLAG_DIRECTION_3 | TRACK_SEQUENCE_FLAG_ORIGIN, TRACK_SEQUENCE_FLAG_DIRECTION_0 | TRACK_SEQUENCE_FLAG_DIRECTION_1 | TRACK_SEQUENCE_FLAG_DIRECTION_2 | TRACK_SEQUENCE_FLAG_DIRECTION_3 | TRACK_SEQUENCE_FLAG_ORIGIN, TRACK_SEQUENCE_FLAG_DIRECTION_0 | TRACK_SEQUENCE_FLAG_DIRECTION_1 | TRACK_SEQUENCE_FLAG_DIRECTION_2 | TRACK_SEQUENCE_FLAG_DIRECTION_3 | TRACK_SEQUENCE_FLAG_ORIGIN, TRACK_SEQUENCE_FLAG_DIRECTION_0 | TRACK_SEQUENCE_FLAG_DIRECTION_1 | TRACK_SEQUENCE_FLAG_DIRECTION_2 | TRACK_SEQUENCE_FLAG_DIRECTION_3 | TRACK_SEQUENCE_FLAG_ORIGIN, TRACK_SEQUENCE_FLAG_DIRECTION_0 | TRACK_SEQUENCE_FLAG_DIRECTION_1 | TRACK_SEQUENCE_FLAG_DIRECTION_2 | TRACK_SEQUENCE_FLAG_DIRECTION_3 | TRACK_SEQUENCE_FLAG_ORIGIN, TRACK_SEQUENCE_FLAG_DIRECTION_0 | TRACK_SEQUENCE_FLAG_DIRECTION_1 | TRACK_SEQUENCE_FLAG_DIRECTION_2 | TRACK_SEQUENCE_FLAG_DIRECTION_3 | TRACK_SEQUENCE_FLAG_ORIGIN, TRACK_SEQUENCE_FLAG_DIRECTION_0 | TRACK_SEQUENCE_FLAG_DIRECTION_1 | TRACK_SEQUENCE_FLAG_DIRECTION_2 | TRACK_SEQUENCE_FLAG_DIRECTION_3 | TRACK_SEQUENCE_FLAG_ORIGIN, TRACK_SEQUENCE_FLAG_DIRECTION_0 | TRACK_SEQUENCE_FLAG_DIRECTION_1 | TRACK_SEQUENCE_FLAG_DIRECTION_2 | TRACK_SEQUENCE_FLAG_DIRECTION_3 | TRACK_SEQUENCE_FLAG_ORIGIN, TRACK_SEQUENCE_FLAG_DIRECTION_0 | TRACK_SEQUENCE_FLAG_DIRECTION_1 | TRACK_SEQUENCE_FLAG_DIRECTION_2 | TRACK_SEQUENCE_FLAG_DIRECTION_3 | TRACK_SEQUENCE_FLAG_ORIGIN, TRACK_SEQUENCE_FLAG_DIRECTION_0 | TRACK_SEQUENCE_FLAG_DIRECTION_1 | TRACK_SEQUENCE_FLAG_DIRECTION_2 | TRACK_SEQUENCE_FLAG_DIRECTION_3 | TRACK_SEQUENCE_FLAG_ORIGIN, TRACK_SEQUENCE_FLAG_DIRECTION_0 | TRACK_SEQUENCE_FLAG_DIRECTION_1 | TRACK_SEQUENCE_FLAG_DIRECTION_2 | TRACK_SEQUENCE_FLAG_DIRECTION_3 | TRACK_SEQUENCE_FLAG_ORIGIN },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
/* FLAT_TRACK_ELEM_2_X_2 */ { TRACK_SEQUENCE_FLAG_DIRECTION_0 | TRACK_SEQUENCE_FLAG_DIRECTION_3 | TRACK_SEQUENCE_FLAG_ORIGIN, TRACK_SEQUENCE_FLAG_DIRECTION_0 | TRACK_SEQUENCE_FLAG_DIRECTION_1, TRACK_SEQUENCE_FLAG_DIRECTION_2 | TRACK_SEQUENCE_FLAG_DIRECTION_3, TRACK_SEQUENCE_FLAG_DIRECTION_1 | TRACK_SEQUENCE_FLAG_DIRECTION_2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
/* FLAT_TRACK_ELEM_4_X_4 */ { TRACK_SEQUENCE_FLAG_DIRECTION_0 | TRACK_SEQUENCE_FLAG_DIRECTION_3 | TRACK_SEQUENCE_FLAG_ORIGIN, TRACK_SEQUENCE_FLAG_DIRECTION_0, TRACK_SEQUENCE_FLAG_DIRECTION_0, TRACK_SEQUENCE_FLAG_DIRECTION_0 | TRACK_SEQUENCE_FLAG_DIRECTION_1, TRACK_SEQUENCE_FLAG_DIRECTION_3, 0, 0, TRACK_SEQUENCE_FLAG_DIRECTION_1, TRACK_SEQUENCE_FLAG_DIRECTION_3, 0, 0, TRACK_SEQUENCE_FLAG_DIRECTION_1, TRACK_SEQUENCE_FLAG_DIRECTION_2 | TRACK_SEQUENCE_FLAG_DIRECTION_3, TRACK_SEQUENCE_FLAG_DIRECTION_2, TRACK_SEQUENCE_FLAG_DIRECTION_2, TRACK_SEQUENCE_FLAG_DIRECTION_1 | TRACK_SEQUENCE_FLAG_DIRECTION_2 },
{ 0 },
{ 0 },
{ 0 },
/* 115 */ { TRACK_SEQUENCE_FLAG_DIRECTION_0 | TRACK_SEQUENCE_FLAG_DIRECTION_3 | TRACK_SEQUENCE_FLAG_ORIGIN, TRACK_SEQUENCE_FLAG_DIRECTION_0, TRACK_SEQUENCE_FLAG_DIRECTION_0, TRACK_SEQUENCE_FLAG_DIRECTION_0 | TRACK_SEQUENCE_FLAG_DIRECTION_1, TRACK_SEQUENCE_FLAG_DIRECTION_2 | TRACK_SEQUENCE_FLAG_DIRECTION_3, TRACK_SEQUENCE_FLAG_DIRECTION_2, TRACK_SEQUENCE_FLAG_DIRECTION_2, TRACK_SEQUENCE_FLAG_DIRECTION_1 | TRACK_SEQUENCE_FLAG_DIRECTION_2, 0, 0, 0, 0, 0, 0, 0, 0 },
/* FLAT_TRACK_ELEM_1_X_5 */ { TRACK_SEQUENCE_FLAG_DIRECTION_1 | TRACK_SEQUENCE_FLAG_DIRECTION_3 | TRACK_SEQUENCE_FLAG_ORIGIN, 0, TRACK_SEQUENCE_FLAG_DIRECTION_1 | TRACK_SEQUENCE_FLAG_DIRECTION_3, TRACK_SEQUENCE_FLAG_DIRECTION_1 | TRACK_SEQUENCE_FLAG_DIRECTION_3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0 },
/* FLAT_TRACK_ELEM_1_X_1_A */ { TRACK_SEQUENCE_FLAG_DIRECTION_0 | TRACK_SEQUENCE_FLAG_ORIGIN | TRACK_SEQUENCE_FLAG_CONNECTS_TO_PATH, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
/* FLAT_TRACK_ELEM_1_X_4_B */ { TRACK_SEQUENCE_FLAG_DIRECTION_1 | TRACK_SEQUENCE_FLAG_ORIGIN, 0, TRACK_SEQUENCE_FLAG_DIRECTION_1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0 },
/* FLAT_TRACK_ELEM_1_X_1_B */ { TRACK_SEQUENCE_FLAG_DIRECTION_0 | TRACK_SEQUENCE_FLAG_DIRECTION_1 | TRACK_SEQUENCE_FLAG_DIRECTION_2 | TRACK_SEQUENCE_FLAG_DIRECTION_3 | TRACK_SEQUENCE_FLAG_ORIGIN | TRACK_SEQUENCE_FLAG_CONNECTS_TO_PATH, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
/* FLAT_TRACK_ELEM_1_X_4_C */ { TRACK_SEQUENCE_FLAG_DIRECTION_1 | TRACK_SEQUENCE_FLAG_DIRECTION_3 | TRACK_SEQUENCE_FLAG_ORIGIN, TRACK_SEQUENCE_FLAG_DIRECTION_0 | TRACK_SEQUENCE_FLAG_DIRECTION_1 | TRACK_SEQUENCE_FLAG_DIRECTION_3, TRACK_SEQUENCE_FLAG_DIRECTION_1 | TRACK_SEQUENCE_FLAG_DIRECTION_3, TRACK_SEQUENCE_FLAG_DIRECTION_1 | TRACK_SEQUENCE_FLAG_DIRECTION_2 | TRACK_SEQUENCE_FLAG_DIRECTION_3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
/* FLAT_TRACK_ELEM_3_X_3 */ { TRACK_SEQUENCE_FLAG_ORIGIN, TRACK_SEQUENCE_FLAG_DIRECTION_0 | TRACK_SEQUENCE_FLAG_DIRECTION_3, TRACK_SEQUENCE_FLAG_DIRECTION_0, TRACK_SEQUENCE_FLAG_DIRECTION_0 | TRACK_SEQUENCE_FLAG_DIRECTION_1, TRACK_SEQUENCE_FLAG_DIRECTION_3, TRACK_SEQUENCE_FLAG_DIRECTION_1, TRACK_SEQUENCE_FLAG_DIRECTION_2 | TRACK_SEQUENCE_FLAG_DIRECTION_3, TRACK_SEQUENCE_FLAG_DIRECTION_1 | TRACK_SEQUENCE_FLAG_DIRECTION_2, TRACK_SEQUENCE_FLAG_DIRECTION_2, 0, 0, 0, 0, 0, 0, 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
};
#define TRACK_BLOCK_END { 255, 255, 255, 255, 255, {255, 255}, 255 }
static constexpr const rct_preview_track TrackBlocks000[] = {
{ 0, 0, 0, 0, 0, { 0b1111, 0 }, 0 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks001[] = {
{ 0, 0, 0, 0, 0,{ 0b1111, 0 }, 0 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks002[] = {
{ 0, 0, 0, 0, 0, { 0b1111, 0 }, 0 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks003[] = {
{ 0, 0, 0, 0, 0, { 0b1111, 0 }, 0 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks004[] = {
{ 0, 0, 0, 0, 16, { 0b1111, 0b1100 }, 0 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks005[] = {
{ 0, 0, 0, 0, 64, { 0b1111, 0b1100 }, 0 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks006[] = {
{ 0, 0, 0, 0, 8, { 0b1111, 0 }, 0 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks007[] = {
{ 0, 0, 0, 0, 32, { 0b1111, 0b1100 }, 0 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks008[] = {
{ 0, 0, 0, 0, 32, { 0b1111, 0b1100 }, 0 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks009[] = {
{ 0, 0, 0, 0, 8, { 0b1111, 0b1100 }, 0 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks010[] = {
{ 0, 0, 0, 0, 16, { 0b1111, 0b0011 }, 0 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks011[] = {
{ 0, 0, 0, 0, 64, { 0b1111, 0b0011 }, 0 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks012[] = {
{ 0, 0, 0, 0, 8, { 0b1111, 0b0011 }, 0 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks013[] = {
{ 0, 0, 0, 0, 32, { 0b1111, 0b0011 }, 0 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks014[] = {
{ 0, 0, 0, 0, 32, { 0b1111, 0b0011 }, 0 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks015[] = {
{ 0, 0, 0, 0, 8, { 0b1111, 0 }, 0 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks016[] = {
{ 0, 0, 0, 0, 0, { 0b1111, 0 }, 0 },
{ 1, 0, -32, 0, 0, { 0b1000, 0 }, RCT_PREVIEW_TRACK_FLAG_0 },
{ 2, -32, 0, 0, 0, { 0b0111, 0 }, 0 },
{ 3, -32, -32, 0, 0, { 0b1101, 0 }, 0 },
{ 4, -32, -64, 0, 0, { 0b1000, 0 }, RCT_PREVIEW_TRACK_FLAG_0 },
{ 5, -64, -32, 0, 0, { 0b0111, 0 }, 0 },
{ 6, -64, -64, 0, 0, { 0b1111, 0 }, 0 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks017[] = {
{ 0, 0, 0, 0, 0, { 0b1111, 0 }, 0 },
{ 1, 0, 32, 0, 0, { 0b0100, 0 }, RCT_PREVIEW_TRACK_FLAG_0 },
{ 2, -32, 0, 0, 0, { 0b1011, 0 }, 0 },
{ 3, -32, 32, 0, 0, { 0b1110, 0 }, 0 },
{ 4, -32, 64, 0, 0, { 0b0100, 0 }, RCT_PREVIEW_TRACK_FLAG_0 },
{ 5, -64, 32, 0, 0, { 0b1011, 0 }, 0 },
{ 6, -64, 64, 0, 0, { 0b1111, 0 }, 0 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks018[] = {
{ 0, 0, 0, 0, 0, { 0b1111, 0 }, 0 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks019[] = {
{ 0, 0, 0, 0, 0, { 0b1111, 0 }, 0 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks020[] = {
{ 0, 0, 0, 0, 0, { 0b1111, 0 }, 0 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks021[] = {
{ 0, 0, 0, 0, 0, { 0b1111, 0 }, 0 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks022[] = {
{ 0, 0, 0, 0, 0, { 0b1111, 0 }, 0 },
{ 1, 0, -32, 0, 0, { 0b1000, 0 }, RCT_PREVIEW_TRACK_FLAG_0 },
{ 2, -32, 0, 0, 0, { 0b0111, 0 }, 0 },
{ 3, -32, -32, 0, 0, { 0b1101, 0 }, 0 },
{ 4, -32, -64, 0, 0, { 0b1000, 0 }, RCT_PREVIEW_TRACK_FLAG_0 },
{ 5, -64, -32, 0, 0, { 0b0111, 0 }, 0 },
{ 6, -64, -64, 0, 0, { 0b1111, 0 }, 0 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks023[] = {
{ 0, 0, 0, 0, 0, { 0b1111, 0 }, 0 },
{ 1, 0, 32, 0, 0, { 0b0100, 0 }, RCT_PREVIEW_TRACK_FLAG_0 },
{ 2, -32, 0, 0, 0, { 0b1011, 0 }, 0 },
{ 3, -32, 32, 0, 0, { 0b1110, 0 }, 0 },
{ 4, -32, 64, 0, 0, { 0b0100, 0 }, RCT_PREVIEW_TRACK_FLAG_0 },
{ 5, -64, 32, 0, 0, { 0b1011, 0 }, 0 },
{ 6, -64, 64, 0, 0, { 0b1111, 0 }, 0 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks024[] = {
{ 0, 0, 0, 0, 8, { 0b1111, 0 }, 0 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks025[] = {
{ 0, 0, 0, 0, 8, { 0b1111, 0 }, 0 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks026[] = {
{ 0, 0, 0, 0, 8, { 0b1111, 0b1100 }, 0 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks027[] = {
{ 0, 0, 0, 0, 8, { 0b1111, 0b1100 }, 0 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks028[] = {
{ 0, 0, 0, 0, 8, { 0b1111, 0b0011 }, 0 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks029[] = {
{ 0, 0, 0, 0, 8, { 0b1111, 0b0011 }, 0 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks030[] = {
{ 0, 0, 0, 0, 8, { 0b1111, 0 }, 0 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks031[] = {
{ 0, 0, 0, 0, 8, { 0b1111, 0 }, 0 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks032[] = {
{ 0, 0, 0, 0, 0, { 0b1111, 0 }, 0 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks033[] = {
{ 0, 0, 0, 0, 0, { 0b1111, 0 }, 0 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks034[] = {
{ 0, 0, 0, 0, 16, { 0b1111, 0b1100 }, 0 },
{ 1, 0, -32, 16, 0, { 0b1000, 0 }, RCT_PREVIEW_TRACK_FLAG_0 },
{ 2, -32, 0, 16, 16, { 0b0111, 0b0100 }, 0 },
{ 3, -32, -32, 24, 16, { 0b1101, 0 }, 0 },
{ 4, -32, -64, 48, 0, { 0b1000, 0 }, RCT_PREVIEW_TRACK_FLAG_0 },
{ 5, -64, -32, 32, 16, { 0b0111, 0b0100 }, 0 },
{ 6, -64, -64, 48, 16, { 0b1111, 0b0110 }, 0 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks035[] = {
{ 0, 0, 0, 0, 16, { 0b1111, 0b1100 }, 0 },
{ 1, 0, 32, 16, 0, { 0b0100, 0 }, RCT_PREVIEW_TRACK_FLAG_0 },
{ 2, -32, 0, 16, 16, { 0b1011, 0b1000 }, 0 },
{ 3, -32, 32, 24, 16, { 0b1110, 0 }, 0 },
{ 4, -32, 64, 48, 0, { 0b0100, 0 }, RCT_PREVIEW_TRACK_FLAG_0 },
{ 5, -64, 32, 32, 16, { 0b1011, 0b1000 }, 0 },
{ 6, -64, 64, 48, 16, { 0b1111, 0b1001 }, 0 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks036[] = {
{ 0, 0, 0, 48, 16, { 0b1111, 0b0011 }, 0 },
{ 1, 0, -32, 48, 0, { 0b1000, 0 }, RCT_PREVIEW_TRACK_FLAG_0 },
{ 2, -32, 0, 32, 16, { 0b0111, 0b0001 }, 0 },
{ 3, -32, -32, 24, 16, { 0b1101, 0 }, 0 },
{ 4, -32, -64, 16, 0, { 0b1000, 0 }, RCT_PREVIEW_TRACK_FLAG_0 },
{ 5, -64, -32, 16, 16, { 0b0111, 0b0001 }, 0 },
{ 6, -64, -64, 0, 16, { 0b1111, 0b1001 }, 0 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks037[] = {
{ 0, 0, 0, 48, 16, { 0b1111, 0b0011 }, 0 },
{ 1, 0, 32, 48, 0, { 0b0100, 0 }, RCT_PREVIEW_TRACK_FLAG_0 },
{ 2, -32, 0, 32, 16, { 0b1011, 0b0010 }, 0 },
{ 3, -32, 32, 24, 16, { 0b1110, 0 }, 0 },
{ 4, -32, 64, 16, 0, { 0b0100, 0 }, RCT_PREVIEW_TRACK_FLAG_0 },
{ 5, -64, 32, 16, 16, { 0b1011, 0b0010 }, 0 },
{ 6, -64, 64, 0, 16, { 0b1111, 0b0110 }, 0 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks038[] = {
{ 0, 0, 0, 0, 0, { 0b1111, 0 }, 0 },
{ 1, -32, 0, 0, 0, { 0b0111, 0 }, 0 },
{ 2, -32, -32, 0, 0, { 0b1101, 0 }, 0 },
{ 3, -64, -32, 0, 0, { 0b1111, 0 }, 0 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks039[] = {
{ 0, 0, 0, 0, 0, { 0b1111, 0 }, 0 },
{ 1, -32, 0, 0, 0, { 0b1011, 0 }, 0 },
{ 2, -32, 32, 0, 0, { 0b1110, 0 }, 0 },
{ 3, -64, 32, 0, 0, { 0b1111, 0 }, 0 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks040[] = {
{ 0, 0, 0, 0, 16, { 0b1111, 0b1100 }, 0 },
{ 1, -32, 0, 16, 16, { 0b1111, 0b1100 }, 0 },
{ 2, -64, 0, 32, 96, { 0b0010, 0 }, 0 },
{ 3, -32, 0, 120, 16, { 0b0110, 0 }, 0 },
{ 4, -32, -32, 120, 0, { 0b0001, 0 }, 0 },
{ 5, 0, 0, 120, 0, { 0b0100, 0 }, 0 },
{ 6, 0, -32, 120, 16, { 0b1001, 0 }, 0 },
{ 7, 32, -32, 32, 96, { 0b1000, 0 }, 0 },
{ 8, 0, -32, 16, 16, { 0b1111, 0b0011 }, 0 },
{ 9, -32, -32, 0, 16, { 0b1111, 0b0011 }, 0 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks041[] = {
{ 0, 0, 0, 0, 16, { 0b1111, 0b1100 }, 0 },
{ 1, -32, 0, 16, 16, { 0b1111, 0b1100 }, 0 },
{ 2, -64, 0, 32, 96, { 0b0001, 0 }, 0 },
{ 3, -32, 0, 120, 16, { 0b1001, 0 }, 0 },
{ 4, -32, 32, 120, 0, { 0b0010, 0 }, 0 },
{ 5, 0, 0, 120, 0, { 0b1000, 0 }, 0 },
{ 6, 0, 32, 120, 16, { 0b0110, 0 }, 0 },
{ 7, 32, 32, 32, 96, { 0b0100, 0 }, 0 },
{ 8, 0, 32, 16, 16, { 0b1111, 0b0011 }, 0 },
{ 9, -32, 32, 0, 16, { 0b1111, 0b0011 }, 0 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks042[] = {
{ 0, 0, 0, 0, 0, { 0b0111, 0 }, 0 },
{ 1, 0, -32, 0, 0, { 0b1000, 0 }, RCT_PREVIEW_TRACK_FLAG_0 },
{ 2, -32, 0, 0, 0, { 0b0010, 0 }, 0 },
{ 3, -32, -32, 0, 0, { 0b0111, 0 }, 0 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks043[] = {
{ 0, 0, 0, 0, 0, { 0b1011, 0 }, 0 },
{ 1, 0, 32, 0, 0, { 0b0100, 0 }, RCT_PREVIEW_TRACK_FLAG_0 },
{ 2, -32, 0, 0, 0, { 0b0001, 0 }, 0 },
{ 3, -32, 32, 0, 0, { 0b1011, 0 }, 0 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks044[] = {
{ 0, 0, 0, 0, 0, { 0b0111, 0 }, 0 },
{ 1, 0, -32, 0, 0, { 0b1000, 0 }, RCT_PREVIEW_TRACK_FLAG_0 },
{ 2, -32, 0, 0, 0, { 0b0010, 0 }, 0 },
{ 3, -32, -32, 0, 0, { 0b0111, 0 }, 0 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks045[] = {
{ 0, 0, 0, 0, 0, { 0b1011, 0 }, 0 },
{ 1, 0, 32, 0, 0, { 0b0100, 0 }, RCT_PREVIEW_TRACK_FLAG_0 },
{ 2, -32, 0, 0, 0, { 0b0001, 0 }, 0 },
{ 3, -32, 32, 0, 0, { 0b1011, 0 }, 0 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks046[] = {
{ 0, 0, 0, 0, 16, { 0b0111, 0b0100 }, 0 },
{ 1, 0, -32, 16, 0, { 0b1000, 0 }, RCT_PREVIEW_TRACK_FLAG_0 },
{ 2, -32, 0, 16, 0, { 0b0010, 0 }, 0 },
{ 3, -32, -32, 16, 16,{ 0b0111, 0b0110 }, 0 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks047[] = {
{ 0, 0, 0, 0, 16, { 0b1011, 0b1000 }, 0 },
{ 1, 0, 32, 16, 0, { 0b0100, 0 }, RCT_PREVIEW_TRACK_FLAG_0 },
{ 2, -32, 0, 16, 0, { 0b0001, 0 }, 0 },
{ 3, -32, 32, 16, 16,{ 0b1011, 0b1001 }, 0 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks048[] = {
{ 0, 0, 0, 16, 16,{ 0b0111, 0b0011 }, 0 },
{ 1, 0, -32, 16, 0, { 0b1000, 0 }, RCT_PREVIEW_TRACK_FLAG_0 },
{ 2, -32, 0, 16, 0, { 0b0010, 0 }, 0 },
{ 3, -32, -32, 0, 16, { 0b0111, 0b0001 }, 0 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks049[] = {
{ 0, 0, 0, 16, 16, { 0b1011, 0b0011 }, 0 },
{ 1, 0, 32, 16, 0, { 0b0100, 0 }, RCT_PREVIEW_TRACK_FLAG_0 },
{ 2, -32, 0, 16, 0, { 0b0001, 0 }, 0 },
{ 3, -32, 32, 0, 16, { 0b1011, 0b0010 }, 0 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks050[] = {
{ 0, 0, 0, 0, 0, { 0b0111, 0 }, 0 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks051[] = {
{ 0, 0, 0, 0, 0, { 0b1011, 0 }, 0 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks052[] = {
{ 0, 0, 0, 0, 0, { 0b1111, 0 }, 0 },
{ 1, -32, 0, 0, 16, { 0b1111, 0 }, 0 },
{ 2, -64, 0, 16, 0, { 0b1111, 0 }, 0 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks053[] = {
{ 0, 0, 0, 0, 0, { 0b1111, 0 }, 0 },
{ 1, -32, 0, 0, 16, { 0b1111, 0 }, 0 },
{ 2, -64, 0, 16, 0, { 0b1111, 0 }, 0 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks054[] = {
{ 0, 0, 0, 0, 0, { 0b1111, 0 }, 0 },
{ 1, -32, 0, -16, 16, { 0b1111, 0 }, 0 },
{ 2, -64, 0, -16, 0, { 0b1111, 0 }, 0 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks055[] = {
{ 0, 0, 0, 0, 0, { 0b1111, 0 }, 0 },
{ 1, -32, 0, -16, 16, { 0b1111, 0 }, 0 },
{ 2, -64, 0, -16, 0, { 0b1111, 0 }, 0 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks056[] = {
{ 0, 0, 0, 0, 32, { 0b1111, 0b1100 }, 0 },
{ 1, -32, 0, 16, 16, { 0b1111, 0b1100 }, 0 },
{ 2, -64, 0, 32, 96,{ 0b0011, 0 }, 0 },
{ 3, -32, 0, 120, 16, { 0b1111, 0 }, 0 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks057[] = {
{ 0, 0, 0, -32, 32, { 0b1111, 0 }, 0 },
{ 1, -32, 0, -120, 96,{ 0b0011, 0 }, 0 },
{ 2, 0, 0, -136, 16, { 0b1111, 0b1100 }, 0 },
{ 3, 32, 0, -152, 16, { 0b1111, 0b1100 }, 0 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks058[] = {
{ 0, 0, 0, 0, 16, { 0b1111, 0 }, 0 },
{ 1, -32, 0, 24, 32, { 0b0111, 0 }, 0 },
{ 2, -32, -32, 48, 16, { 0b1111, 0 }, 0 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks059[] = {
{ 0, 0, 0, 0, 16, { 0b1111, 0 }, 0 },
{ 1, -32, 0, 24, 32, { 0b1011, 0 }, 0 },
{ 2, -32, 32, 48, 16, { 0b1111, 0 }, 0 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks060[] = {
{ 0, 0, 0, -32, 16, { 0b1111, 0 }, 0 },
{ 1, -32, 0, -56, 32, { 0b0111, 0 }, 0 },
{ 2, -32, -32, -80, 16, { 0b1111, 0 }, 0 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks061[] = {
{ 0, 0, 0, -32, 16, { 0b1111, 0 }, 0 },
{ 1, -32, 0, -56, 32, { 0b1011, 0 }, 0 },
{ 2, -32, 32, -80, 16, { 0b1111, 0 }, 0 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks062[] = {
{ 0, 0, 0, 0, 24, { 0b1111, 0 }, 0 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks063[] = {
{ 0, 0, 0, 0, 24, { 0b1111, 0b1100 }, 0 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks064[] = {
{ 0, 0, 0, 0, 24, { 0b1111, 0b0011 }, 0 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks065[] = {
{ 0, 0, 0, 0, 24, { 0b1111, 0 }, 0 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks066[] = {
{ 0, 0, 0, 0, 64, { 0b1111, 0 }, 0 },
{ 1, -32, -32, 0, 0, { 0b1111, 0 }, 0 },
{ 2, -32, 0, 0, 0, { 0b1111, 0 }, 0 },
{ 3, -32, 32, 0, 0, { 0b1111, 0 }, 0 },
{ 4, 0, -32, 0, 0, { 0b1111, 0 }, 0 },
{ 5, 0, 32, 0, 0, { 0b1111, 0 }, 0 },
{ 6, 32, -32, 0, 0, { 0b1111, 0 }, 0 },
{ 7, 32, 32, 0, 0, { 0b1111, 0 }, 0 },
{ 8, 32, 0, 0, 0, { 0b1111, 0 }, RCT_PREVIEW_TRACK_FLAG_1 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks067[] = {
{ 0, 0, 0, 0, 0, { 0b1111, 0 }, 0 },
{ 1, 32, 0, 0, 0, { 0b0000, 0 }, RCT_PREVIEW_TRACK_FLAG_0 | RCT_PREVIEW_TRACK_FLAG_1 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks068[] = {
{ 0, 0, 0, 0, 0, { 0b1111, 0 }, 0 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks069[] = {
{ 0, 0, 0, 0, 16, { 0b1111, 0b1100 }, 0 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks070[] = {
{ 0, 0, 0, 0, 64, { 0b1111, 0b1100 }, 0 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks071[] = {
{ 0, 0, 0, 0, 8, { 0b1111, 0 }, 0 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks072[] = {
{ 0, 0, 0, 0, 32, { 0b1111, 0b1100 }, 0 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks073[] = {
{ 0, 0, 0, 0, 32, { 0b1111, 0b1100 }, 0 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks074[] = {
{ 0, 0, 0, 0, 8, { 0b1111, 0b1100 }, 0 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks075[] = {
{ 0, 0, 0, 0, 16, { 0b1111, 0b0011 }, 0 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks076[] = {
{ 0, 0, 0, 0, 64, { 0b1111, 0b0011 }, 0 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks077[] = {
{ 0, 0, 0, 0, 8, { 0b1111, 0b0011 }, 0 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks078[] = {
{ 0, 0, 0, 0, 32, { 0b1111, 0b0011 }, 0 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks079[] = {
{ 0, 0, 0, 0, 32, { 0b1111, 0b0011 }, 0 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks080[] = {
{ 0, 0, 0, 0, 8, { 0b1111, 0 }, 0 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks081[] = {
{ 0, 0, 0, 0, 0, { 0b1111, 0 }, 0 },
{ 1, 0, -32, 0, 0, { 0b1000, 0 }, RCT_PREVIEW_TRACK_FLAG_0 },
{ 2, -32, 0, 0, 0, { 0b0111, 0 }, 0 },
{ 3, -32, -32, 0, 0, { 0b1101, 0 }, 0 },
{ 4, -32, -64, 0, 0, { 0b1000, 0 }, RCT_PREVIEW_TRACK_FLAG_0 },
{ 5, -64, -32, 0, 0, { 0b0111, 0 }, 0 },
{ 6, -64, -64, 0, 0, { 0b1111, 0 }, 0 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks082[] = {
{ 0, 0, 0, 0, 0, { 0b1111, 0 }, 0 },
{ 1, 0, 32, 0, 0, { 0b0100, 0 }, RCT_PREVIEW_TRACK_FLAG_0 },
{ 2, -32, 0, 0, 0, { 0b1011, 0 }, 0 },
{ 3, -32, 32, 0, 0, { 0b1110, 0 }, 0 },
{ 4, -32, 64, 0, 0, { 0b0100, 0 }, RCT_PREVIEW_TRACK_FLAG_0 },
{ 5, -64, 32, 0, 0, { 0b1011, 0 }, 0 },
{ 6, -64, 64, 0, 0, { 0b1111, 0 }, 0 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks083[] = {
{ 0, 0, 0, 0, 0, { 0b1111, 0 }, 0 },
{ 1, -32, 0, 0, 0, { 0b0111, 0 }, 0 },
{ 2, -32, -32, 0, 0, { 0b1101, 0 }, 0 },
{ 3, -64, -32, 0, 0, { 0b1111, 0 }, 0 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks084[] = {
{ 0, 0, 0, 0, 0, { 0b1111, 0 }, 0 },
{ 1, -32, 0, 0, 0, { 0b1011, 0 }, 0 },
{ 2, -32, 32, 0, 0, { 0b1110, 0 }, 0 },
{ 3, -64, 32, 0, 0, { 0b1111, 0 }, 0 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks085[] = {
{ 0, 0, 0, 0, 0, { 0b0111, 0 }, 0 },
{ 1, 0, -32, 0, 0, { 0b1000, 0 }, RCT_PREVIEW_TRACK_FLAG_0 },
{ 2, -32, 0, 0, 0, { 0b0010, 0 }, 0 },
{ 3, -32, -32, 0, 0, { 0b0111, 0 }, 0 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks086[] = {
{ 0, 0, 0, 0, 0, { 0b1011, 0 }, 0 },
{ 1, 0, 32, 0, 0, { 0b0100, 0 }, RCT_PREVIEW_TRACK_FLAG_0 },
{ 2, -32, 0, 0, 0, { 0b0001, 0 }, 0 },
{ 3, -32, 32, 0, 0, { 0b1011, 0 }, 0 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks087[] = {
{ 0, 0, 0, 0, 0, { 0b0111, 0 }, 0 },
{ 1, 0, -32, 0, 0, { 0b1000, 0 }, RCT_PREVIEW_TRACK_FLAG_0 },
{ 2, -32, 0, 0, 4, { 0b0010, 0 }, 0 },
{ 3, -32, -32, 0, 4, { 0b0111, 0 }, 0 },
{ 4, -32, -64, 8, 0, { 0b1011, 0 }, 0 },
{ 5, 0, -64, 8, 0, { 0b0100, 0b0000 }, RCT_PREVIEW_TRACK_FLAG_0 },
{ 6, -32, -96, 8, 4, { 0b0001, 0 }, 0 },
{ 7, 0, -96, 8, 4, { 0b1011, 0 }, 0 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks088[] = {
{ 0, 0, 0, 0, 0, { 0b1011, 0 }, 0 },
{ 1, 0, 32, 0, 0, { 0b0100, 0b0000 }, RCT_PREVIEW_TRACK_FLAG_0 },
{ 2, -32, 0, 0, 4, { 0b0001, 0 }, 0 },
{ 3, -32, 32, 0, 4, { 0b1011, 0 }, 0 },
{ 4, -32, 64, 8, 0, { 0b0111, 0 }, 0 },
{ 5, 0, 64, 8, 0, { 0b1000, 0 }, RCT_PREVIEW_TRACK_FLAG_0 },
{ 6, -32, 96, 8, 4, { 0b0010, 0 }, 0 },
{ 7, 0, 96, 8, 4, { 0b0111, 0 }, 0 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks089[] = {
{ 0, 0, 0, 8, 4, { 0b0111, 0 }, 0 },
{ 1, 0, -32, 8, 4, { 0b1000, 0 }, RCT_PREVIEW_TRACK_FLAG_0 },
{ 2, -32, 0, 8, 0, { 0b0010, 0 }, 0 },
{ 3, -32, -32, 8, 0, { 0b0111, 0 }, 0 },
{ 4, -32, -64, 0, 4, { 0b1011, 0 }, 0 },
{ 5, 0, -64, 0, 4, { 0b0100, 0 }, RCT_PREVIEW_TRACK_FLAG_0 },
{ 6, -32, -96, 0, 0, { 0b0001, 0 }, 0 },
{ 7, 0, -96, 0, 0, { 0b1011, 0 }, 0 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks090[] = {
{ 0, 0, 0, 8, 4, { 0b1011, 0 }, 0 },
{ 1, 0, 32, 8, 4, { 0b0100, 0 }, RCT_PREVIEW_TRACK_FLAG_0 },
{ 2, -32, 0, 8, 0, { 0b0001, 0 }, 0 },
{ 3, -32, 32, 8, 0, { 0b1011, 0 }, 0 },
{ 4, -32, 64, 0, 4, { 0b0111, 0 }, 0 },
{ 5, 0, 64, 0, 4, { 0b1000, 0 }, RCT_PREVIEW_TRACK_FLAG_0 },
{ 6, -32, 96, 0, 0, { 0b0010, 0 }, 0 },
{ 7, 0, 96, 0, 0, { 0b0111, 0 }, 0 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks091[] = {
{ 0, 0, 0, 0, 0, { 0b1111, 0 }, 0 },
{ 1, 0, -32, 0, 0, { 0b1000, 0 }, RCT_PREVIEW_TRACK_FLAG_0 },
{ 2, -32, 0, 0, 0, { 0b0111, 0 }, 0 },
{ 3, -32, -32, 0, 0, { 0b1101, 0 }, 0 },
{ 4, -32, -64, 0, 4, { 0b1000, 0 }, RCT_PREVIEW_TRACK_FLAG_0 },
{ 5, -64, -32, 0, 4, { 0b0111, 0 }, 0 },
{ 6, -64, -64, 0, 4, { 0b1111, 0 }, 0 },
{ 7, -64, -96, 8, 0, { 0b1111, 0 }, 0 },
{ 8, -32, -96, 8, 0, { 0b0100, 0 }, RCT_PREVIEW_TRACK_FLAG_0 },
{ 9, -64, -128, 8, 0, { 0b1011, 0 }, 0 },
{ 10, -32, -128, 8, 0, { 0b1110, 0 }, 0 },
{ 11, 0, -128, 8, 4, { 0b0100, 0 }, RCT_PREVIEW_TRACK_FLAG_0 },
{ 12, -32, -160, 8, 4, { 0b1011, 0 }, 0 },
{ 13, 0, -160, 8, 4, { 0b1111, 0 }, 0 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks092[] = {
{ 0, 0, 0, 0, 0, { 0b1111, 0 }, 0 },
{ 1, 0, 32, 0, 0, { 0b0100, 0 }, RCT_PREVIEW_TRACK_FLAG_0 },
{ 2, -32, 0, 0, 0, { 0b1011, 0 }, 0 },
{ 3, -32, 32, 0, 0, { 0b1110, 0 }, 0 },
{ 4, -32, 64, 0, 4, { 0b0100, 0 }, RCT_PREVIEW_TRACK_FLAG_0 },
{ 5, -64, 32, 0, 4, { 0b1011, 0 }, 0 },
{ 6, -64, 64, 0, 4, { 0b1111, 0 }, 0 },
{ 7, -64, 96, 8, 0, { 0b1111, 0 }, 0 },
{ 8, -32, 96, 8, 0, { 0b1000, 0 }, RCT_PREVIEW_TRACK_FLAG_0 },
{ 9, -64, 128, 8, 0, { 0b0111, 0 }, 0 },
{ 10, -32, 128, 8, 0, { 0b1101, 0 }, 0 },
{ 11, 0, 128, 8, 4, { 0b1000, 0 }, RCT_PREVIEW_TRACK_FLAG_0 },
{ 12, -32, 160, 8, 4, { 0b0111, 0 }, 0 },
{ 13, 0, 160, 8, 4, { 0b1111, 0 }, 0 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks093[] = {
{ 0, 0, 0, 8, 4, { 0b1111, 0 }, 0 },
{ 1, 0, -32, 8, 4, { 0b1000, 0 }, RCT_PREVIEW_TRACK_FLAG_0 },
{ 2, -32, 0, 8, 4, { 0b0111, 0 }, 0 },
{ 3, -32, -32, 8, 0, { 0b1101, 0 }, 0 },
{ 4, -32, -64, 8, 0, { 0b1000, 0 }, RCT_PREVIEW_TRACK_FLAG_0 },
{ 5, -64, -32, 8, 0, { 0b0111, 0 }, 0 },
{ 6, -64, -64, 8, 0, { 0b1111, 0 }, 0 },
{ 7, -64, -96, 0, 4, { 0b1111, 0 }, 0 },
{ 8, -32, -96, 0, 4, { 0b0100, 0 }, RCT_PREVIEW_TRACK_FLAG_0 },
{ 9, -64, -128, 0, 4, { 0b1011, 0 }, 0 },
{ 10, -32, -128, 0, 0, { 0b1110, 0 }, 0 },
{ 11, 0, -128, 0, 0, { 0b0100, 0b0000 }, RCT_PREVIEW_TRACK_FLAG_0 },
{ 12, -32, -160, 0, 0, { 0b1011, 0 }, 0 },
{ 13, 0, -160, 0, 0, { 0b1111, 0 }, 0 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks094[] = {
{ 0, 0, 0, 8, 4, { 0b1111, 0 }, 0 },
{ 1, 0, 32, 8, 4, { 0b0100, 0 }, RCT_PREVIEW_TRACK_FLAG_0 },
{ 2, -32, 0, 8, 4, { 0b1011, 0 }, 0 },
{ 3, -32, 32, 8, 0, { 0b1110, 0 }, 0 },
{ 4, -32, 64, 8, 0, { 0b0100, 0 }, RCT_PREVIEW_TRACK_FLAG_0 },
{ 5, -64, 32, 8, 0, { 0b1011, 0 }, 0 },
{ 6, -64, 64, 8, 0, { 0b1111, 0 }, 0 },
{ 7, -64, 96, 0, 4, { 0b1111, 0 }, 0 },
{ 8, -32, 96, 0, 4, { 0b1000, 0 }, RCT_PREVIEW_TRACK_FLAG_0 },
{ 9, -64, 128, 0, 4, { 0b0111, 0 }, 0 },
{ 10, -32, 128, 0, 0, { 0b1101, 0 }, 0 },
{ 11, 0, 128, 0, 0, { 0b1000, 0 }, RCT_PREVIEW_TRACK_FLAG_0 },
{ 12, -32, 160, 0, 0, { 0b0111, 0 }, 0 },
{ 13, 0, 160, 0, 0, { 0b1111, 0 }, 0 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks095[] = {
{ 0, 0, 0, 0, 64, { 0b1111, 0 }, 0 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks096[] = {
{ 0, 0, 0, 0, 64, { 0b1111, 0 }, 0 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks097[] = {
{ 0, 0, 0, 0, 64, { 0b1111, 0 }, 0 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks098[] = {
{ 0, 0, 0, 0, 64, { 0b1111, 0 }, 0 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks099[] = {
{ 0, 0, 0, 0, 0, { 0b1111, 0 }, 0 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks100[] = {
{ 0, 0, 0, 0, 0, { 0b1111, 0 }, 0 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks101[] = {
{ 0, 0, 0, 0, 0, { 0b1111, 0 }, 0 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks102[] = {
{ 0, 0, 0, 0, 0, { 0b1111, 0 }, 0 },
{ 1, 0, -32, 0, 0, { 0b1000, 0 }, RCT_PREVIEW_TRACK_FLAG_0 },
{ 2, -32, 0, 0, 0, { 0b0111, 0 }, 0 },
{ 3, -32, -32, 0, 0, { 0b1101, 0 }, 0 },
{ 4, -32, -64, 0, 12, { 0b1000, 0 }, RCT_PREVIEW_TRACK_FLAG_0 },
{ 5, -64, -32, 0, 12, { 0b0111, 0 }, 0 },
{ 6, -64, -64, 0, 12, { 0b1111, 0 }, 0 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks103[] = {
{ 0, 0, 0, 0, 0, { 0b1111, 0 }, 0 },
{ 1, 0, 32, 0, 0, { 0b0100, 0 }, RCT_PREVIEW_TRACK_FLAG_0 },
{ 2, -32, 0, 0, 0, { 0b1011, 0 }, 0 },
{ 3, -32, 32, 0, 0, { 0b1110, 0 }, 0 },
{ 4, -32, 64, 0, 12, { 0b0100, 0 }, RCT_PREVIEW_TRACK_FLAG_0 },
{ 5, -64, 32, 0, 12, { 0b1011, 0 }, 0 },
{ 6, -64, 64, 0, 12, { 0b1111, 0 }, 0 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks104[] = {
{ 0, 0, 0, 0, 12, { 0b1111, 0 }, 0 },
{ 1, 0, -32, 0, 12, { 0b1000, 0 }, RCT_PREVIEW_TRACK_FLAG_0 },
{ 2, -32, 0, 0, 12, { 0b0111, 0 }, 0 },
{ 3, -32, -32, 0, 0, { 0b1101, 0 }, 0 },
{ 4, -32, -64, 0, 0, { 0b1000, 0 }, RCT_PREVIEW_TRACK_FLAG_0 },
{ 5, -64, -32, 0, 0, { 0b0111, 0 }, 0 },
{ 6, -64, -64, 0, 0, { 0b1111, 0 }, 0 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks105[] = {
{ 0, 0, 0, 0, 12, { 0b1111, 0 }, 0 },
{ 1, 0, 32, 0, 12, { 0b0100, 0 }, RCT_PREVIEW_TRACK_FLAG_0 },
{ 2, -32, 0, 0, 12, { 0b1011, 0 }, 0 },
{ 3, -32, 32, 0, 0, { 0b1110, 0 }, 0 },
{ 4, -32, 64, 0, 0, { 0b0100, 0 }, RCT_PREVIEW_TRACK_FLAG_0 },
{ 5, -64, 32, 0, 0, { 0b1011, 0 }, 0 },
{ 6, -64, 64, 0, 0, { 0b1111, 0 }, 0 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks106[] = {
{ 0, 0, 0, 0, 0, { 0b1111, 0 }, 0 },
{ 1, 0, -32, 0, 0, { 0b1000, 0 }, RCT_PREVIEW_TRACK_FLAG_0 },
{ 2, -32, 0, 0, 0, { 0b0111, 0 }, 0 },
{ 3, -32, -32, 0, 0, { 0b1101, 0 }, 0 },
{ 4, -32, -64, 0, 12, { 0b1000, 0 }, RCT_PREVIEW_TRACK_FLAG_0 },
{ 5, -64, -32, 0, 12, { 0b0111, 0 }, 0 },
{ 6, -64, -64, 0, 12, { 0b1111, 0 }, 0 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks107[] = {
{ 0, 0, 0, 0, 0, { 0b1111, 0 }, 0 },
{ 1, 0, 32, 0, 0, { 0b0100, 0 }, RCT_PREVIEW_TRACK_FLAG_0 },
{ 2, -32, 0, 0, 0, { 0b1011, 0 }, 0 },
{ 3, -32, 32, 0, 0, { 0b1110, 0 }, 0 },
{ 4, -32, 64, 0, 12, { 0b0100, 0 }, RCT_PREVIEW_TRACK_FLAG_0 },
{ 5, -64, 32, 0, 12, { 0b1011, 0 }, 0 },
{ 6, -64, 64, 0, 12, { 0b1111, 0 }, 0 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks108[] = {
{ 0, 0, 0, 0, 12, { 0b1111, 0 }, 0 },
{ 1, 0, -32, 0, 12, { 0b1000, 0 }, RCT_PREVIEW_TRACK_FLAG_0 },
{ 2, -32, 0, 0, 12, { 0b0111, 0 }, 0 },
{ 3, -32, -32, 0, 0, { 0b1101, 0 }, 0 },
{ 4, -32, -64, 0, 0, { 0b1000, 0 }, RCT_PREVIEW_TRACK_FLAG_0 },
{ 5, -64, -32, 0, 0, { 0b0111, 0 }, 0 },
{ 6, -64, -64, 0, 0, { 0b1111, 0 }, 0 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks109[] = {
{ 0, 0, 0, 0, 12, { 0b1111, 0 }, 0 },
{ 1, 0, 32, 0, 12, { 0b0100, 0 }, RCT_PREVIEW_TRACK_FLAG_0 },
{ 2, -32, 0, 0, 12, { 0b1011, 0 }, 0 },
{ 3, -32, 32, 0, 0, { 0b1110, 0 }, 0 },
{ 4, -32, 64, 0, 0, { 0b0100, 0 }, RCT_PREVIEW_TRACK_FLAG_0 },
{ 5, -64, 32, 0, 0, { 0b1011, 0 }, 0 },
{ 6, -64, 64, 0, 0, { 0b1111, 0 }, 0 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks110[] = {
{ 0, 0, 0, 0, 16, { 0b1111, 0b1100 }, 0 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks111[] = {
{ 0, 0, 0, 0, 16, { 0b1111, 0b1100 }, 0 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks112[] = {
{ 0, 0, 0, 0, 16, { 0b1111, 0 }, 0 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks113[] = {
{ 0, 0, 0, 0, 0, { 0b1111, 0 }, 0 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks114[] = {
{ 0, 0, 0, 0, 16, { 0b1111, 0 }, 0 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks115[] = {
{ 0, 0, 0, 0, 16, { 0b1111, 0b0011 }, 0 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks116[] = {
{ 0, 0, 0, 0, 16, { 0b1111, 0b0011 }, 0 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks117[] = {
{ 0, 0, 0, 0, 16, { 0b1111, 0 }, 0 },
{ 1, -32, 0, 0, 16, { 0b1111, 0 }, 0 },
{ 2, -64, 0, 0, 16, { 0b1111, 0 }, 0 },
{ 3, -96, 0, 0, 16, { 0b1111, 0 }, 0 },
{ 4, -128, 0, 0, 16, { 0b1111, 0 }, 0 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks118[] = {
{ 0, 0, 0, 0, 8, { 0b1111, 0 }, 0 },
{ 1, -32, 0, 0, 16, { 0b1111, 0 }, 0 },
{ 2, -64, 0, 16, 24, { 0b1111, 0 }, 0 },
{ 3, -96, 0, 40, 48, { 0b1111, 0 }, 0 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks119[] = {
{ 0, 0, 0, 0, 48, { 0b1111, 0 }, 0 },
{ 1, -32, 0, 40, 48, { 0b1111, 0 }, 0 },
{ 2, -64, 0, 64, 24, { 0b1111, 0 }, 0 },
{ 3, -96, 0, 80, 8, { 0b1111, 0 }, 0 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks120[] = {
{ 0, 0, 0, 0, 0, { 0b1111, 0 }, 0 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks121[] = {
{ 0, 0, 0, 40, 48, { 0b1111, 0 }, 0 },
{ 1, -32, 0, 16, 24, { 0b1111, 0 }, 0 },
{ 2, -64, 0, 0, 16, { 0b1111, 0 }, 0 },
{ 3, -96, 0, 0, 8, { 0b1111, 0 }, 0 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks122[] = {
{ 0, 0, 0, 80, 8, { 0b1111, 0 }, 0 },
{ 1, -32, 0, 64, 24, { 0b1111, 0 }, 0 },
{ 2, -64, 0, 40, 48, { 0b1111, 0 }, 0 },
{ 3, -96, 0, 0, 48, { 0b1111, 0 }, 0 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks123[] = {
{ 0, 0, 0, 0, 8, { 0b1111, 0b1100 }, 0 },
{ 1, -32, 0, 0, 8, { 0b1111, 0b0011 }, 0 },
{ 2, -64, 0, -32, 32, { 0b1111, 0b0011 }, 0 },
{ 3, -96, 0, -96, 64, { 0b1111, 0b0011 }, 0 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks124[] = {
{ 0, 0, 0, 0, 16, { 0b1111, 0 }, 0 },
{ 1, -32, 0, 0, 32, { 0b1111, 0 }, 0 },
{ 2, -64, 0, 0, 48, { 0b1111, 0 }, 0 },
{ 3, -96, 0, 0, 80, { 0b1111, 0 }, 0 },
{ 4, -128, 0, 0, 160, { 0b1111, 0 }, 0 },
{ 5, -192, 0, 0, 208, { 0b1111, 0 }, 0 },
{ 6, -160, 0, 0, 208, { 0b1111, 0 }, 0 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks125[] = {
{ 0, 0, 0, 0, 48, { 0b1111, 0 }, 0 },
{ 1, 32, 0, 0, 48, { 0b1111, 0 }, 0 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks126[] = {
{ 0, 0, 0, 0, 8, { 0b1111, 0 }, RCT_PREVIEW_TRACK_FLAG_IS_VERTICAL },
{ 1, 32, 0, 0, 0, { 0b0000, 0 }, RCT_PREVIEW_TRACK_FLAG_0 | RCT_PREVIEW_TRACK_FLAG_IS_VERTICAL },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks127[] = {
{ 0, 0, 0, 0, 8, { 0b1111, 0 }, RCT_PREVIEW_TRACK_FLAG_IS_VERTICAL },
{ 1, 32, 0, 0, 0, { 0b0000, 0 }, RCT_PREVIEW_TRACK_FLAG_0 | RCT_PREVIEW_TRACK_FLAG_IS_VERTICAL },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks128[] = {
{ 0, 0, 0, 0, 32, { 0b1111, 0b1100 }, RCT_PREVIEW_TRACK_FLAG_IS_VERTICAL },
{ 1, 32, 0, 0, 0, { 0b0000, 0 }, RCT_PREVIEW_TRACK_FLAG_0 | RCT_PREVIEW_TRACK_FLAG_IS_VERTICAL },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks129[] = {
{ 0, 0, 0, 0, 32, { 0b1111, 0b0011 }, RCT_PREVIEW_TRACK_FLAG_IS_VERTICAL },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks130[] = {
{ 0, 0, 0, 0, 56, { 0b1111, 0 }, RCT_PREVIEW_TRACK_FLAG_IS_VERTICAL },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks131[] = {
{ 0, 0, 0, 0, 56, { 0b1111, 0 }, RCT_PREVIEW_TRACK_FLAG_IS_VERTICAL },
{ 1, 32, 0, 0, 0, { 0b0000, 0 }, RCT_PREVIEW_TRACK_FLAG_0 | RCT_PREVIEW_TRACK_FLAG_IS_VERTICAL },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks132[] = {
{ 0, 0, 0, 0, 24, { 0b1111, 0b0011 }, 0 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks133[] = {
{ 0, 0, 0, 0, 0, { 0b1111, 0 }, 0 },
{ 1, -32, 0, 0, 0, { 0b1111, 0 }, 0 },
{ 2, -32, -32, 0, 0, { 0b1000, 0 }, 0 },
{ 3, -64, 0, 0, 0, { 0b0010, 0 }, RCT_PREVIEW_TRACK_FLAG_0 },
{ 4, -64, -32, 0, 0, { 0b0001, 0 }, 0 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks134[] = {
{ 0, 0, 0, 0, 0, { 0b1111, 0 }, 0 },
{ 1, -32, 0, 0, 0, { 0b1111, 0 }, 0 },
{ 2, -32, 32, 0, 0, { 0b0100, 0 }, 0 },
{ 3, -64, 0, 0, 0, { 0b0001, 0 }, RCT_PREVIEW_TRACK_FLAG_0 },
{ 4, -64, 32, 0, 0, { 0b0010, 0 }, 0 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks135[] = {
{ 0, 0, 0, 0, 0, { 0b1101, 0 }, 0 },
{ 1, -32, 0, 0, 0, { 0b0001, 0 }, 0 },
{ 2, 0, 32, 0, 0, { 0b0100, 0 }, RCT_PREVIEW_TRACK_FLAG_0 },
{ 3, -32, 32, 0, 0, { 0b1111, 0 }, 0 },
{ 4, -64, 32, 0, 0, { 0b1111, 0 }, 0 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks136[] = {
{ 0, 0, 0, 0, 0, { 0b1101, 0 }, 0 },
{ 1, 0, 32, 0, 0, { 0b0100, 0 }, 0 },
{ 2, -32, 0, 0, 0, { 0b0001, 0 }, RCT_PREVIEW_TRACK_FLAG_0 },
{ 3, -32, 32, 0, 0, { 0b1111, 0 }, 0 },
{ 4, -32, 64, 0, 0, { 0b1111, 0 }, 0 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks137[] = {
{ 0, 0, 0, 0, 0, { 0b1111, 0 }, 0 },
{ 1, -32, 0, 0, 0, { 0b1111, 0 }, 0 },
{ 2, -32, -32, 0, 0, { 0b1000, 0 }, 0 },
{ 3, -64, 0, 0, 0, { 0b0010, 0 }, RCT_PREVIEW_TRACK_FLAG_0 },
{ 4, -64, -32, 0, 0, { 0b0001, 0 }, 0 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks138[] = {
{ 0, 0, 0, 0, 0, { 0b1111, 0 }, 0 },
{ 1, -32, 0, 0, 0, { 0b1111, 0 }, 0 },
{ 2, -32, 32, 0, 0, { 0b0100, 0 }, 0 },
{ 3, -64, 0, 0, 0, { 0b0001, 0 }, RCT_PREVIEW_TRACK_FLAG_0 },
{ 4, -64, 32, 0, 0, { 0b0010, 0 }, 0 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks139[] = {
{ 0, 0, 0, 0, 0, { 0b1101, 0 }, 0 },
{ 1, -32, 0, 0, 0, { 0b0001, 0 }, 0 },
{ 2, 0, 32, 0, 0, { 0b0100, 0 }, RCT_PREVIEW_TRACK_FLAG_0 },
{ 3, -32, 32, 0, 0, { 0b1111, 0 }, 0 },
{ 4, -64, 32, 0, 0, { 0b1111, 0 }, 0 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks140[] = {
{ 0, 0, 0, 0, 0, { 0b1101, 0 }, 0 },
{ 1, 0, 32, 0, 0, { 0b0100, 0 }, 0 },
{ 2, -32, 0, 0, 0, { 0b0001, 0 }, RCT_PREVIEW_TRACK_FLAG_0 },
{ 3, -32, 32, 0, 0, { 0b1111, 0 }, 0 },
{ 4, -32, 64, 0, 0, { 0b1111, 0 }, 0 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks141[] = {
{ 0, 0, 0, 0, 0, { 0b1101, 0 }, 0 },
{ 1, 0, 32, 0, 0, { 0b0100, 0 }, RCT_PREVIEW_TRACK_FLAG_0 },
{ 2, -32, 0, 0, 0, { 0b0001, 0 }, RCT_PREVIEW_TRACK_FLAG_0 },
{ 3, -32, 32, 0, 0, { 0b0010, 0 }, 0 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks142[] = {
{ 0, 0, 0, 0, 16, { 0b1101, 0 }, 0 },
{ 1, 0, 32, 0, 16, { 0b0100, 0 }, RCT_PREVIEW_TRACK_FLAG_0 },
{ 2, -32, 0, 0, 16, { 0b0001, 0 }, RCT_PREVIEW_TRACK_FLAG_0 },
{ 3, -32, 32, 0, 16, { 0b0010, 0 }, 0 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks143[] = {
{ 0, 0, 0, 0, 64, { 0b1101, 0 }, 0 },
{ 1, 0, 32, 0, 64, { 0b0100, 0 }, RCT_PREVIEW_TRACK_FLAG_0 },
{ 2, -32, 0, 0, 64, { 0b0001, 0 }, RCT_PREVIEW_TRACK_FLAG_0 },
{ 3, -32, 32, 0, 64, { 0b0010, 0 }, 0 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks144[] = {
{ 0, 0, 0, 0, 8, { 0b1101, 0 }, 0 },
{ 1, 0, 32, 0, 8, { 0b0100, 0 }, RCT_PREVIEW_TRACK_FLAG_0 },
{ 2, -32, 0, 0, 8, { 0b0001, 0 }, RCT_PREVIEW_TRACK_FLAG_0 },
{ 3, -32, 32, 0, 8, { 0b0010, 0 }, 0 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks145[] = {
{ 0, 0, 0, 0, 32, { 0b1101, 0 }, 0 },
{ 1, 0, 32, 0, 32, { 0b0100, 0 }, RCT_PREVIEW_TRACK_FLAG_0 },
{ 2, -32, 0, 0, 32, { 0b0001, 0 }, RCT_PREVIEW_TRACK_FLAG_0 },
{ 3, -32, 32, 0, 32, { 0b0010, 0 }, 0 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks146[] = {
{ 0, 0, 0, 0, 32, { 0b1101, 0 }, 0 },
{ 1, 0, 32, 0, 32, { 0b0100, 0 }, RCT_PREVIEW_TRACK_FLAG_0 },
{ 2, -32, 0, 0, 32, { 0b0001, 0 }, RCT_PREVIEW_TRACK_FLAG_0 },
{ 3, -32, 32, 0, 32, { 0b0010, 0 }, 0 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks147[] = {
{ 0, 0, 0, 0, 8, { 0b1101, 0 }, 0 },
{ 1, 0, 32, 0, 8, { 0b0100, 0 }, RCT_PREVIEW_TRACK_FLAG_0 },
{ 2, -32, 0, 0, 8, { 0b0001, 0 }, RCT_PREVIEW_TRACK_FLAG_0 },
{ 3, -32, 32, 0, 8, { 0b0010, 0 }, 0 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks148[] = {
{ 0, 0, 0, 0, 16, { 0b1101, 0 }, 0 },
{ 1, 0, 32, 0, 16, { 0b0100, 0 }, RCT_PREVIEW_TRACK_FLAG_0 },
{ 2, -32, 0, 0, 16, { 0b0001, 0 }, RCT_PREVIEW_TRACK_FLAG_0 },
{ 3, -32, 32, 0, 16, { 0b0010, 0 }, 0 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks149[] = {
{ 0, 0, 0, 0, 64, { 0b1101, 0 }, 0 },
{ 1, 0, 32, 0, 64, { 0b0100, 0 }, RCT_PREVIEW_TRACK_FLAG_0 },
{ 2, -32, 0, 0, 64, { 0b0001, 0 }, RCT_PREVIEW_TRACK_FLAG_0 },
{ 3, -32, 32, 0, 64, { 0b0010, 0 }, 0 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks150[] = {
{ 0, 0, 0, 0, 8, { 0b1101, 0 }, 0 },
{ 1, 0, 32, 0, 8, { 0b0100, 0 }, RCT_PREVIEW_TRACK_FLAG_0 },
{ 2, -32, 0, 0, 8, { 0b0001, 0 }, RCT_PREVIEW_TRACK_FLAG_0 },
{ 3, -32, 32, 0, 8, { 0b0010, 0 }, 0 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks151[] = {
{ 0, 0, 0, 0, 32, { 0b1101, 0 }, 0 },
{ 1, 0, 32, 0, 32, { 0b0100, 0 }, RCT_PREVIEW_TRACK_FLAG_0 },
{ 2, -32, 0, 0, 32, { 0b0001, 0 }, RCT_PREVIEW_TRACK_FLAG_0 },
{ 3, -32, 32, 0, 32, { 0b0010, 0 }, 0 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks152[] = {
{ 0, 0, 0, 0, 32, { 0b1101, 0 }, 0 },
{ 1, 0, 32, 0, 32, { 0b0100, 0 }, RCT_PREVIEW_TRACK_FLAG_0 },
{ 2, -32, 0, 0, 32, { 0b0001, 0 }, RCT_PREVIEW_TRACK_FLAG_0 },
{ 3, -32, 32, 0, 32, { 0b0010, 0 }, 0 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks153[] = {
{ 0, 0, 0, 0, 8, { 0b1101, 0 }, 0 },
{ 1, 0, 32, 0, 8, { 0b0100, 0 }, RCT_PREVIEW_TRACK_FLAG_0 },
{ 2, -32, 0, 0, 8, { 0b0001, 0 }, RCT_PREVIEW_TRACK_FLAG_0 },
{ 3, -32, 32, 0, 8, { 0b0010, 0 }, 0 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks154[] = {
{ 0, 0, 0, 0, 24, { 0b1101, 0 }, 0 },
{ 1, 0, 32, 0, 24, { 0b0100, 0 }, RCT_PREVIEW_TRACK_FLAG_0 },
{ 2, -32, 0, 0, 24, { 0b0001, 0 }, RCT_PREVIEW_TRACK_FLAG_0 },
{ 3, -32, 32, 0, 24, { 0b0010, 0 }, 0 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks155[] = {
{ 0, 0, 0, 0, 24, { 0b1101, 0 }, 0 },
{ 1, 0, 32, 0, 24, { 0b0100, 0 }, RCT_PREVIEW_TRACK_FLAG_0 },
{ 2, -32, 0, 0, 24, { 0b0001, 0 }, RCT_PREVIEW_TRACK_FLAG_0 },
{ 3, -32, 32, 0, 24, { 0b0010, 0 }, 0 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks156[] = {
{ 0, 0, 0, 0, 24, { 0b1101, 0 }, 0 },
{ 1, 0, 32, 0, 24, { 0b0100, 0 }, RCT_PREVIEW_TRACK_FLAG_0 },
{ 2, -32, 0, 0, 24, { 0b0001, 0 }, RCT_PREVIEW_TRACK_FLAG_0 },
{ 3, -32, 32, 0, 24, { 0b0010, 0 }, 0 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks157[] = {
{ 0, 0, 0, 0, 24, { 0b1101, 0 }, 0 },
{ 1, 0, 32, 0, 24, { 0b0100, 0 }, RCT_PREVIEW_TRACK_FLAG_0 },
{ 2, -32, 0, 0, 24, { 0b0001, 0 }, RCT_PREVIEW_TRACK_FLAG_0 },
{ 3, -32, 32, 0, 24, { 0b0010, 0 }, 0 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks158[] = {
{ 0, 0, 0, 0, 0, { 0b1101, 0 }, 0 },
{ 1, 0, 32, 0, 0, { 0b0100, 0 }, RCT_PREVIEW_TRACK_FLAG_0 },
{ 2, -32, 0, 0, 0, { 0b0001, 0 }, RCT_PREVIEW_TRACK_FLAG_0 },
{ 3, -32, 32, 0, 0, { 0b0010, 0 }, 0 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks159[] = {
{ 0, 0, 0, 0, 0, { 0b1101, 0 }, 0 },
{ 1, 0, 32, 0, 0, { 0b0100, 0 }, RCT_PREVIEW_TRACK_FLAG_0 },
{ 2, -32, 0, 0, 0, { 0b0001, 0 }, RCT_PREVIEW_TRACK_FLAG_0 },
{ 3, -32, 32, 0, 0, { 0b0010, 0 }, 0 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks160[] = {
{ 0, 0, 0, 0, 0, { 0b1101, 0 }, 0 },
{ 1, 0, 32, 0, 0, { 0b0100, 0 }, RCT_PREVIEW_TRACK_FLAG_0 },
{ 2, -32, 0, 0, 0, { 0b0001, 0 }, RCT_PREVIEW_TRACK_FLAG_0 },
{ 3, -32, 32, 0, 0, { 0b0010, 0 }, 0 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks161[] = {
{ 0, 0, 0, 0, 0, { 0b1101, 0 }, 0 },
{ 1, 0, 32, 0, 0, { 0b0100, 0 }, RCT_PREVIEW_TRACK_FLAG_0 },
{ 2, -32, 0, 0, 0, { 0b0001, 0 }, RCT_PREVIEW_TRACK_FLAG_0 },
{ 3, -32, 32, 0, 0, { 0b0010, 0 }, 0 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks162[] = {
{ 0, 0, 0, 0, 8, { 0b1101, 0 }, 0 },
{ 1, 0, 32, 0, 8, { 0b0100, 0 }, RCT_PREVIEW_TRACK_FLAG_0 },
{ 2, -32, 0, 0, 8, { 0b0001, 0 }, RCT_PREVIEW_TRACK_FLAG_0 },
{ 3, -32, 32, 0, 8, { 0b0010, 0 }, 0 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks163[] = {
{ 0, 0, 0, 0, 8, { 0b1101, 0 }, 0 },
{ 1, 0, 32, 0, 8, { 0b0100, 0 }, RCT_PREVIEW_TRACK_FLAG_0 },
{ 2, -32, 0, 0, 8, { 0b0001, 0 }, RCT_PREVIEW_TRACK_FLAG_0 },
{ 3, -32, 32, 0, 8, { 0b0010, 0 }, 0 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks164[] = {
{ 0, 0, 0, 0, 8, { 0b1101, 0 }, 0 },
{ 1, 0, 32, 0, 8, { 0b0100, 0 }, RCT_PREVIEW_TRACK_FLAG_0 },
{ 2, -32, 0, 0, 8, { 0b0001, 0 }, RCT_PREVIEW_TRACK_FLAG_0 },
{ 3, -32, 32, 0, 8, { 0b0010, 0 }, 0 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks165[] = {
{ 0, 0, 0, 0, 8, { 0b1101, 0 }, 0 },
{ 1, 0, 32, 0, 8, { 0b0100, 0 }, RCT_PREVIEW_TRACK_FLAG_0 },
{ 2, -32, 0, 0, 8, { 0b0001, 0 }, RCT_PREVIEW_TRACK_FLAG_0 },
{ 3, -32, 32, 0, 8, { 0b0010, 0 }, 0 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks166[] = {
{ 0, 0, 0, 0, 8, { 0b1101, 0 }, 0 },
{ 1, 0, 32, 0, 8, { 0b0100, 0 }, RCT_PREVIEW_TRACK_FLAG_0 },
{ 2, -32, 0, 0, 8, { 0b0001, 0 }, RCT_PREVIEW_TRACK_FLAG_0 },
{ 3, -32, 32, 0, 8, { 0b0010, 0 }, 0 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks167[] = {
{ 0, 0, 0, 0, 8, { 0b1101, 0 }, 0 },
{ 1, 0, 32, 0, 8, { 0b0100, 0 }, RCT_PREVIEW_TRACK_FLAG_0 },
{ 2, -32, 0, 0, 8, { 0b0001, 0 }, RCT_PREVIEW_TRACK_FLAG_0 },
{ 3, -32, 32, 0, 8, { 0b0010, 0 }, 0 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks168[] = {
{ 0, 0, 0, 0, 8, { 0b1101, 0 }, 0 },
{ 1, 0, 32, 0, 8, { 0b0100, 0 }, RCT_PREVIEW_TRACK_FLAG_0 },
{ 2, -32, 0, 0, 8, { 0b0001, 0 }, RCT_PREVIEW_TRACK_FLAG_0 },
{ 3, -32, 32, 0, 8, { 0b0010, 0 }, 0 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks169[] = {
{ 0, 0, 0, 0, 8, { 0b1101, 0 }, 0 },
{ 1, 0, 32, 0, 8, { 0b0100, 0 }, RCT_PREVIEW_TRACK_FLAG_0 },
{ 2, -32, 0, 0, 8, { 0b0001, 0 }, RCT_PREVIEW_TRACK_FLAG_0 },
{ 3, -32, 32, 0, 8, { 0b0010, 0 }, 0 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks170[] = {
{ 0, 0, 0, 0, 0, { 0b1101, 0 }, 0 },
{ 1, 0, 32, 0, 0, { 0b0100, 0 }, RCT_PREVIEW_TRACK_FLAG_0 },
{ 2, -32, 0, 0, 0, { 0b0001, 0 }, RCT_PREVIEW_TRACK_FLAG_0 },
{ 3, -32, 32, 0, 0, { 0b0010, 0 }, 0 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks171[] = {
{ 0, 0, 0, 0, 0, { 0b1101, 0 }, 0 },
{ 1, 0, 32, 0, 0, { 0b0100, 0 }, RCT_PREVIEW_TRACK_FLAG_0 },
{ 2, -32, 0, 0, 0, { 0b0001, 0 }, RCT_PREVIEW_TRACK_FLAG_0 },
{ 3, -32, 32, 0, 0, { 0b0010, 0 }, 0 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks172[] = {
{ 0, 0, 0, 0, 0, { 0b1111, 0 }, 0 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks173[] = {
{ 0, 0, 0, 0, 0, { 0b1111, 0 }, 0 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks174[] = {
{ 0, 0, 0, 0, 0, { 0b1111, 0 }, 0 },
{ 1, -32, 0, 0, 16, { 0b1111, 0 }, 0 },
{ 2, -64, 0, 0, 16, { 0b1111, 0 }, 0 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks175[] = {
{ 0, 0, 0, 0, 0, { 0b1111, 0 }, 0 },
{ 1, -32, 0, 0, 16, { 0b1111, 0 }, 0 },
{ 2, -64, 0, 0, 16, { 0b1111, 0 }, 0 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks176[] = {
{ 0, 0, 0, -32, 16, { 0b1111, 0 }, 0 },
{ 1, -32, 0, -32, 16, { 0b1111, 0 }, 0 },
{ 2, -64, 0, -32, 0, { 0b1111, 0 }, 0 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks177[] = {
{ 0, 0, 0, -32, 16, { 0b1111, 0 }, 0 },
{ 1, -32, 0, -32, 16, { 0b1111, 0 }, 0 },
{ 2, -64, 0, -32, 0, { 0b1111, 0 }, 0 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks178[] = {
{ 0, 0, 0, 0, 0, { 0b0111, 0b0100 }, 0 },
{ 1, 0, -32, 0, 16, { 0b1000, 0 }, RCT_PREVIEW_TRACK_FLAG_0 },
{ 2, -32, 0, 0, 16, { 0b0010, 0 }, 0 },
{ 3, -32, -32, 16, 16,{ 0b0111, 0b0110 }, 0 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks179[] = {
{ 0, 0, 0, 0, 16, { 0b1011, 0b1000 }, 0 },
{ 1, 0, 32, 0, 16, { 0b0100, 0 }, RCT_PREVIEW_TRACK_FLAG_0 },
{ 2, -32, 0, 0, 16, { 0b0001, 0 }, 0 },
{ 3, -32, 32, 16, 16,{ 0b1011, 0b1001 }, 0 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks180[] = {
{ 0, 0, 0, 16, 16,{ 0b0111, 0b0011 }, 0 },
{ 1, 0, -32, 0, 16, { 0b1000, 0 }, RCT_PREVIEW_TRACK_FLAG_0 },
{ 2, -32, 0, 0, 16, { 0b0010, 0 }, 0 },
{ 3, -32, -32, 0, 0, { 0b0111, 0b0001 }, 0 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks181[] = {
{ 0, 0, 0, 16, 16, { 0b1011, 0b0011 }, 0 },
{ 1, 0, 32, 0, 16, { 0b0100, 0 }, RCT_PREVIEW_TRACK_FLAG_0 },
{ 2, -32, 0, 0, 16, { 0b0001, 0 }, 0 },
{ 3, -32, 32, 0, 0, { 0b1011, 0b0010 }, 0 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks182[] = {
{ 0, 0, 0, 0, 16, { 0b1111, 0b1100 }, 0 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks183[] = {
{ 0, 0, 0, 0, 24, { 0b1111, 0b1100 }, 0 },
{ 1, -32, 0, 16, 40, { 0b1111, 0b1100 }, 0 },
{ 2, -64, 0, 32, 56, { 0b1111, 0 }, 0 },
{ 3, -96, 0, 64, 192, { 0b1111, 0 }, 0 },
{ 4, -128, -32, 120, 96, { 0b1111, 0 }, 0 },
{ 5, -96, -32, 64, 192, { 0b1111, 0 }, 0 },
{ 6, -64, -32, 248, 16, { 0b1111, 0 }, 0 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks184[] = {
{ 0, 0, 0, 0, 24, { 0b1111, 0b1100 }, 0 },
{ 1, -32, 0, 16, 40, { 0b1111, 0b1100 }, 0 },
{ 2, -64, 0, 32, 56, { 0b1111, 0 }, 0 },
{ 3, -96, 0, 64, 192, { 0b1111, 0 }, 0 },
{ 4, -128, 32, 120, 96, { 0b1111, 0 }, 0 },
{ 5, -96, 32, 64, 192, { 0b1111, 0 }, 0 },
{ 6, -64, 32, 248, 16, { 0b1111, 0 }, 0 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks185[] = {
{ 0, 0, 0, -32, 24, { 0b1111, 0 }, 0 },
{ 1, -32, 0, -216, 192, { 0b1111, 0 }, 0 },
{ 2, -64, 0, -160, 96, { 0b1111, 0 }, 0 },
{ 3, -32, -32, -216, 192, { 0b1111, 0 }, 0 },
{ 4, 0, -32, -248, 56, { 0b1111, 0 }, 0 },
{ 5, 32, -32, -264, 40, { 0b1111, 0b1100 }, 0 },
{ 6, 64, -32, -280, 24, { 0b1111, 0b1100 }, 0 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks186[] = {
{ 0, 0, 0, -32, 24, { 0b1111, 0 }, 0 },
{ 1, -32, 0, -216, 192, { 0b1111, 0 }, 0 },
{ 2, -64, 0, -160, 96, { 0b1111, 0 }, 0 },
{ 3, -32, 32, -216, 192, { 0b1111, 0 }, 0 },
{ 4, 0, 32, -248, 56, { 0b1111, 0 }, 0 },
{ 5, 32, 32, -264, 40, { 0b1111, 0b1100 }, 0 },
{ 6, 64, 32, -280, 24, { 0b1111, 0b1100 }, 0 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks187[] = {
{ 0, 0, 0, 0, 0, { 0b1111, 0 }, 0 },
{ 1, -32, 0, -16, 16, { 0b1111, 0 }, 0 },
{ 2, -64, 0, -16, 16, { 0b1111, 0 }, 0 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks188[] = {
{ 0, 0, 0, 0, 0, { 0b1111, 0 }, 0 },
{ 1, -32, 0, -16, 16, { 0b1111, 0 }, 0 },
{ 2, -64, 0, -16, 16, { 0b1111, 0 }, 0 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks189[] = {
{ 0, 0, 0, 0, 16, { 0b1111, 0 }, 0 },
{ 1, -32, 0, 0, 16, { 0b1111, 0 }, 0 },
{ 2, -64, 0, 16, 0, { 0b1111, 0 }, 0 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks190[] = {
{ 0, 0, 0, 0, 16, { 0b1111, 0 }, 0 },
{ 1, -32, 0, 0, 16, { 0b1111, 0 }, 0 },
{ 2, -64, 0, 16, 0, { 0b1111, 0 }, 0 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks191[] = {
{ 0, 0, 0, 0, 32, { 0b1111, 0b1100 }, 0 },
{ 1, -32, 0, 16, 16, { 0b1111, 0b1100 }, 0 },
{ 2, -64, 0, 32, 96,{ 0b0011, 0 }, 0 },
{ 3, -32, 0, 120, 16, { 0b1111, 0 }, 0 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks192[] = {
{ 0, 0, 0, 0, 32, { 0b1111, 0 }, 0 },
{ 1, -32, 0, -88, 96,{ 0b0011, 0 }, 0 },
{ 2, 0, 0, -104, 16, { 0b1111, 0b1100 }, 0 },
{ 3, 32, 0, -120, 16, { 0b1111, 0b1100 }, 0 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks193[] = {
{ 0, 0, 0, 0, 16, { 0b1111, 0 }, 0 },
{ 1, -32, 0, 24, 32, { 0b0111, 0 }, 0 },
{ 2, -32, -32, 48, 16, { 0b1111, 0 }, 0 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks194[] = {
{ 0, 0, 0, 0, 16, { 0b1111, 0 }, 0 },
{ 1, -32, 0, 24, 32, { 0b1011, 0 }, 0 },
{ 2, -32, 32, 48, 16, { 0b1111, 0 }, 0 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks195[] = {
{ 0, 0, 0, 0, 16, { 0b1111, 0 }, 0 },
{ 1, -32, 0, -24, 32, { 0b0111, 0 }, 0 },
{ 2, -32, -32, -48, 16, { 0b1111, 0 }, 0 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks196[] = {
{ 0, 0, 0, 0, 16, { 0b1111, 0 }, 0 },
{ 1, -32, 0, -24, 32, { 0b1011, 0 }, 0 },
{ 2, -32, 32, -48, 16, { 0b1111, 0 }, 0 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks197[] = {
{ 0, 0, 0, 0, 0, { 0b1111, 0 }, 0 },
{ 1, -32, 0, 0, 32, { 0b1111, 0 }, 0 },
{ 2, -64, 0, 16, 0, { 0b1111, 0 }, 0 },
{ 3, 0, 0, 32, 0, { 0b1111, 0 }, 0 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks198[] = {
{ 0, 0, 0, 0, 0, { 0b1111, 0 }, 0 },
{ 1, -32, 0, -32, 32, { 0b1111, 0 }, 0 },
{ 2, -64, 0, -16, 0, { 0b1111, 0 }, 0 },
{ 3, 0, 0, -32, 0, { 0b1111, 0 }, 0 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks199[] = {
{ 0, 0, 0, 0, 0, { 0b1111, 0 }, 0 },
{ 1, -32, 0, 0, 0, { 0b1111, 0 }, 0 },
{ 2, -64, 0, 0, 0, { 0b1111, 0 }, 0 },
{ 3, -96, 0, 0, 0, { 0b1111, 0 }, 0 },
{ 4, -128, 0, 0, 0, { 0b1111, 0 }, 0 },
{ 5, -160, 0, 0, 0, { 0b1111, 0 }, 0 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks200[] = {
{ 0, 0, 0, 0, 0, { 0b1111, 0 }, 0 },
{ 1, -32, 0, 0, 0, { 0b1111, 0 }, 0 },
{ 2, -64, 0, 0, 0, { 0b1111, 0 }, 0 },
{ 3, -96, 0, 0, 0, { 0b1111, 0 }, 0 },
{ 4, -128, 0, 0, 0, { 0b1111, 0 }, 0 },
{ 5, -160, 0, 0, 0, { 0b1111, 0 }, 0 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks201[] = {
{ 0, 0, 0, 0, 0, { 0b1111, 0 }, 0 },
{ 1, -32, 0, 0, 0, { 0b1111, 0 }, 0 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks202[] = {
{ 0, 0, 0, 0, 0, { 0b1111, 0 }, 0 },
{ 1, -32, 0, 0, 0, { 0b1111, 0 }, 0 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks203[] = {
{ 0, 0, 0, 0, 0, { 0b1111, 0 }, 0 },
{ 1, -32, 0, 0, 0, { 0b1111, 0 }, 0 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks204[] = {
{ 0, 0, 0, 0, 0, { 0b1111, 0 }, 0 },
{ 1, -32, 0, 0, 0, { 0b1111, 0 }, 0 },
{ 2, -32, 32, 0, 0, { 0b1111, 0 }, 0 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks205[] = {
{ 0, 0, 0, 0, 0, { 0b1111, 0 }, 0 },
{ 1, -32, 0, 0, 0, { 0b1111, 0 }, 0 },
{ 2, -32, -32, 0, 0, { 0b1111, 0 }, 0 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks206[] = {
{ 0, 0, 0, 0, 16, { 0b1111, 0 }, RCT_PREVIEW_TRACK_FLAG_IS_VERTICAL },
{ 1, -32, 0, -40, 32, { 0b1111, 0 }, RCT_PREVIEW_TRACK_FLAG_IS_VERTICAL },
{ 2, -64, 0, -96, 56, { 0b1111, 0 }, RCT_PREVIEW_TRACK_FLAG_IS_VERTICAL },
{ 3, -96, 0, -96, 0, { 0b0000, 0 }, RCT_PREVIEW_TRACK_FLAG_0 | RCT_PREVIEW_TRACK_FLAG_IS_VERTICAL },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks207[] = {
{ 0, 0, 0, 0, 56, { 0b1111, 0 }, RCT_PREVIEW_TRACK_FLAG_IS_VERTICAL },
{ 1, 32, 0, 56, 32, { 0b1111, 0 }, RCT_PREVIEW_TRACK_FLAG_IS_VERTICAL },
{ 2, 64, 0, 96, 16, { 0b1111, 0 }, RCT_PREVIEW_TRACK_FLAG_IS_VERTICAL },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks208[] = {
{ 0, 0, 0, -32, 16, { 0b1111, 0 }, RCT_PREVIEW_TRACK_FLAG_IS_VERTICAL },
{ 1, -32, 0, -72, 32, { 0b1111, 0 }, RCT_PREVIEW_TRACK_FLAG_IS_VERTICAL },
{ 2, -64, 0, -128, 56, { 0b1111, 0 }, RCT_PREVIEW_TRACK_FLAG_IS_VERTICAL },
{ 3, -96, 0, -128, 0, { 0b0000, 0 }, RCT_PREVIEW_TRACK_FLAG_0 | RCT_PREVIEW_TRACK_FLAG_IS_VERTICAL },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks209[] = {
{ 0, 0, 0, 0, 0, { 0b0111, 0 }, 0 },
{ 1, 0, -32, 0, 0, { 0b1000, 0 }, RCT_PREVIEW_TRACK_FLAG_0 },
{ 2, -32, 0, 0, 8, { 0b0010, 0 }, 0 },
{ 3, -32, -32, 0, 8, { 0b0111, 0 }, 0 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks210[] = {
{ 0, 0, 0, 0, 0, { 0b1011, 0 }, 0 },
{ 1, 0, 32, 0, 0, { 0b0100, 0 }, RCT_PREVIEW_TRACK_FLAG_0 },
{ 2, -32, 0, 0, 8, { 0b0001, 0 }, 0 },
{ 3, -32, 32, 0, 8, { 0b1011, 0 }, 0 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks211[] = {
{ 0, 0, 0, 0, 0, { 0b1111, 0 }, 0 },
{ 1, 0, -32, 0, 0, { 0b1111, 0 }, 0 },
{ 2, -32, -32, 0, 0, { 0b1111, 0 }, 0 },
{ 3, -64, -32, 0, 0, { 0b1111, 0 }, 0 },
{ 4, -32, 0, 0, 0, { 0b1111, 0 }, 0 },
{ 5, -64, 0, 0, 0, { 0b1111, 0 }, 0 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks212[] = {
{ 0, 0, 0, 0, 0, { 0b1111, 0 }, 0 },
{ 1, 0, 32, 0, 0, { 0b1111, 0 }, 0 },
{ 2, -32, 32, 0, 0, { 0b1111, 0 }, 0 },
{ 3, -64, 32, 0, 0, { 0b1111, 0 }, 0 },
{ 4, -32, 0, 0, 0, { 0b1111, 0 }, 0 },
{ 5, -64, 0, 0, 0, { 0b1111, 0 }, 0 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks213[] = {
{ 0, 0, 0, 0, 32, { 0b1111, 0 }, 0 },
{ 1, 32, 0, 0, 32, { 0b1111, 0 }, 0 },
{ 2, -64, 0, 0, 32, { 0b1111, 0 }, 0 },
{ 3, -32, 0, 0, 32, { 0b1111, 0 }, 0 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks214[] = {
{ 0, 0, 0, 0, 48, { 0b1111, 0 }, 0 },
{ 1, 32, 0, 0, 48, { 0b1111, 0 }, 0 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks215[] = {
{ 0, 0, 0, 0, 208, { 0b1111, 0 }, 0 },
{ 1, 32, 0, 0, 208, { 0b1111, 0 }, 0 },
{ 2, -32, 0, 0, 160, { 0b1111, 0 }, 0 },
{ 3, -64, 0, 0, 80, { 0b1111, 0 }, 0 },
{ 4, -96, 0, 0, 48, { 0b1111, 0 }, 0 },
{ 5, -128, 0, 0, 32, { 0b1111, 0 }, 0 },
{ 6, -160, 0, 0, 16, { 0b1111, 0 }, 0 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks216[] = {
{ 0, 0, 0, 0, 0, { 0b1111, 0 }, 0 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks217[] = {
{ 0, 0, 0, 0, 16, { 0b0111, 0b0100 }, 0 },
{ 1, 0, -32, 16, 0, { 0b1000, 0 }, RCT_PREVIEW_TRACK_FLAG_0 },
{ 2, -32, 0, 16, 0, { 0b0010, 0 }, 0 },
{ 3, -32, -32, 16, 16,{ 0b0111, 0b0110 }, 0 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks218[] = {
{ 0, 0, 0, 0, 16, { 0b1011, 0b1000 }, 0 },
{ 1, 0, 32, 16, 0, { 0b0100, 0 }, RCT_PREVIEW_TRACK_FLAG_0 },
{ 2, -32, 0, 16, 0, { 0b0001, 0 }, 0 },
{ 3, -32, 32, 16, 16,{ 0b1011, 0b1001 }, 0 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks219[] = {
{ 0, 0, 0, 16, 16,{ 0b0111, 0b0011 }, 0 },
{ 1, 0, -32, 16, 0, { 0b1000, 0 }, RCT_PREVIEW_TRACK_FLAG_0 },
{ 2, -32, 0, 16, 0, { 0b0010, 0 }, 0 },
{ 3, -32, -32, 0, 16, { 0b0111, 0b0001 }, 0 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks220[] = {
{ 0, 0, 0, 16, 16, { 0b1011, 0b0011 }, 0 },
{ 1, 0, 32, 16, 0, { 0b0100, 0 }, RCT_PREVIEW_TRACK_FLAG_0 },
{ 2, -32, 0, 16, 0, { 0b0001, 0 }, 0 },
{ 3, -32, 32, 0, 16, { 0b1011, 0b0010 }, 0 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks221[] = {
{ 0, 0, 0, 0, 16, { 0b1111, 0b1100 }, 0 },
{ 1, 0, -32, 16, 0, { 0b1000, 0 }, RCT_PREVIEW_TRACK_FLAG_0 },
{ 2, -32, 0, 16, 16, { 0b0111, 0b0100 }, 0 },
{ 3, -32, -32, 24, 16, { 0b1101, 0 }, 0 },
{ 4, -32, -64, 48, 0, { 0b1000, 0 }, RCT_PREVIEW_TRACK_FLAG_0 },
{ 5, -64, -32, 32, 16, { 0b0111, 0b0100 }, 0 },
{ 6, -64, -64, 48, 16, { 0b1111, 0b0110 }, 0 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks222[] = {
{ 0, 0, 0, 0, 16, { 0b1111, 0b1100 }, 0 },
{ 1, 0, 32, 16, 0, { 0b0100, 0 }, RCT_PREVIEW_TRACK_FLAG_0 },
{ 2, -32, 0, 16, 16, { 0b1011, 0b1000 }, 0 },
{ 3, -32, 32, 24, 16, { 0b1110, 0 }, 0 },
{ 4, -32, 64, 48, 0, { 0b0100, 0 }, RCT_PREVIEW_TRACK_FLAG_0 },
{ 5, -64, 32, 32, 16, { 0b1011, 0b1000 }, 0 },
{ 6, -64, 64, 48, 16, { 0b1111, 0b1001 }, 0 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks223[] = {
{ 0, 0, 0, 48, 16, { 0b1111, 0b0011 }, 0 },
{ 1, 0, -32, 48, 0, { 0b1000, 0 }, RCT_PREVIEW_TRACK_FLAG_0 },
{ 2, -32, 0, 32, 16, { 0b0111, 0b0001 }, 0 },
{ 3, -32, -32, 24, 16, { 0b1101, 0 }, 0 },
{ 4, -32, -64, 16, 0, { 0b1000, 0 }, RCT_PREVIEW_TRACK_FLAG_0 },
{ 5, -64, -32, 16, 16, { 0b0111, 0b0001 }, 0 },
{ 6, -64, -64, 0, 16, { 0b1111, 0b1001 }, 0 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks224[] = {
{ 0, 0, 0, 48, 16, { 0b1111, 0b0011 }, 0 },
{ 1, 0, 32, 48, 0, { 0b0100, 0 }, RCT_PREVIEW_TRACK_FLAG_0 },
{ 2, -32, 0, 32, 16, { 0b1011, 0b0010 }, 0 },
{ 3, -32, 32, 24, 16, { 0b1110, 0 }, 0 },
{ 4, -32, 64, 16, 0, { 0b0100, 0 }, RCT_PREVIEW_TRACK_FLAG_0 },
{ 5, -64, 32, 16, 16, { 0b1011, 0b0010 }, 0 },
{ 6, -64, 64, 0, 16, { 0b1111, 0b0110 }, 0 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks225[] = {
{ 0, 0, 0, 0, 16, { 0b1111, 0b1100 }, 0 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks226[] = {
{ 0, 0, 0, 0, 16, { 0b1111, 0b1100 }, 0 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks227[] = {
{ 0, 0, 0, 0, 16, { 0b1111, 0b1100 }, 0 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks228[] = {
{ 0, 0, 0, 0, 16, { 0b1111, 0b1100 }, 0 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks229[] = {
{ 0, 0, 0, 0, 16, { 0b1111, 0b0011 }, 0 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks230[] = {
{ 0, 0, 0, 0, 16, { 0b1111, 0b0011 }, 0 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks231[] = {
{ 0, 0, 0, 0, 16, { 0b1111, 0b0011 }, 0 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks232[] = {
{ 0, 0, 0, 0, 16, { 0b1111, 0b0011 }, 0 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks233[] = {
{ 0, 0, 0, 0, 8, { 0b1111, 0 }, 0 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks234[] = {
{ 0, 0, 0, 0, 8, { 0b1111, 0 }, 0 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks235[] = {
{ 0, 0, 0, 0, 8, { 0b1111, 0b1100 }, 0 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks236[] = {
{ 0, 0, 0, 0, 8, { 0b1111, 0b1100 }, 0 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks237[] = {
{ 0, 0, 0, 0, 8, { 0b1111, 0b0011 }, 0 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks238[] = {
{ 0, 0, 0, 0, 8, { 0b1111, 0b0011 }, 0 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks239[] = {
{ 0, 0, 0, 0, 8, { 0b1111, 0 }, 0 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks240[] = {
{ 0, 0, 0, 0, 8, { 0b1111, 0 }, 0 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks241[] = {
{ 0, 0, 0, 0, 8, { 0b1111, 0 }, 0 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks242[] = {
{ 0, 0, 0, 0, 8, { 0b1111, 0 }, 0 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks243[] = {
{ 0, 0, 0, 0, 8, { 0b1111, 0b1100 }, 0 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks244[] = {
{ 0, 0, 0, 0, 8, { 0b1111, 0b1100 }, 0 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks245[] = {
{ 0, 0, 0, 0, 8, { 0b1111, 0b0011 }, 0 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks246[] = {
{ 0, 0, 0, 0, 8, { 0b1111, 0b0011 }, 0 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks247[] = {
{ 0, 0, 0, 0, 8, { 0b1111, 0 }, 0 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks248[] = {
{ 0, 0, 0, 0, 8, { 0b1111, 0 }, 0 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks249[] = {
{ 0, 0, 0, 0, 72, { 0b1111, 0 }, RCT_PREVIEW_TRACK_FLAG_IS_VERTICAL },
{ 1, 0, 32, 0, 0, { 0b0000, 0 }, RCT_PREVIEW_TRACK_FLAG_0 | RCT_PREVIEW_TRACK_FLAG_IS_VERTICAL },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks250[] = {
{ 0, 0, 0, 0, 72, { 0b1111, 0 }, RCT_PREVIEW_TRACK_FLAG_IS_VERTICAL },
{ 1, 0, -32, 0, 0, { 0b0000, 0 }, RCT_PREVIEW_TRACK_FLAG_0 | RCT_PREVIEW_TRACK_FLAG_IS_VERTICAL },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks251[] = {
{ 0, 0, 0, 0, 72, { 0b1111, 0 }, RCT_PREVIEW_TRACK_FLAG_IS_VERTICAL },
{ 1, 0, 32, 0, 0, { 0b0000, 0 }, RCT_PREVIEW_TRACK_FLAG_0 | RCT_PREVIEW_TRACK_FLAG_IS_VERTICAL },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks252[] = {
{ 0, 0, 0, 0, 72, { 0b1111, 0 }, RCT_PREVIEW_TRACK_FLAG_IS_VERTICAL },
{ 1, 0, -32, 0, 0, { 0b0000, 0 }, RCT_PREVIEW_TRACK_FLAG_0 | RCT_PREVIEW_TRACK_FLAG_IS_VERTICAL },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks253[] = {
{ 0, 0, 0, 0, 56, { 0b1111, 0 }, RCT_PREVIEW_TRACK_FLAG_IS_VERTICAL },
{ 1, 32, 0, 56, 32, { 0b1111, 0 }, RCT_PREVIEW_TRACK_FLAG_IS_VERTICAL },
{ 2, 64, 0, 96, 16, { 0b1111, 0 }, RCT_PREVIEW_TRACK_FLAG_IS_VERTICAL },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks254[] = {
{ 0, 0, 0, -32, 16, { 0b1111, 0 }, RCT_PREVIEW_TRACK_FLAG_IS_VERTICAL },
{ 1, -32, 0, -72, 32, { 0b1111, 0 }, RCT_PREVIEW_TRACK_FLAG_IS_VERTICAL },
{ 2, -64, 0, -128, 56, { 0b1111, 0 }, RCT_PREVIEW_TRACK_FLAG_IS_VERTICAL },
{ 3, -96, 0, -128, 0, { 0b0000, 0 }, RCT_PREVIEW_TRACK_FLAG_0 | RCT_PREVIEW_TRACK_FLAG_IS_VERTICAL },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track TrackBlocks255[] = {
{ 0, 0, 0, 32, 56, { 0b1111, 0 }, RCT_PREVIEW_TRACK_FLAG_IS_VERTICAL },
{ 1, 32, 0, 88, 32, { 0b1111, 0 }, RCT_PREVIEW_TRACK_FLAG_IS_VERTICAL },
{ 2, 64, 0, 128, 16, { 0b1111, 0 }, RCT_PREVIEW_TRACK_FLAG_IS_VERTICAL },
TRACK_BLOCK_END
};
// rct2: 0x00994638
const rct_preview_track *TrackBlocks[TrackElemType::Count] = {
TrackBlocks000,
TrackBlocks001,
TrackBlocks002,
TrackBlocks003,
TrackBlocks004,
TrackBlocks005,
TrackBlocks006,
TrackBlocks007,
TrackBlocks008,
TrackBlocks009,
TrackBlocks010,
TrackBlocks011,
TrackBlocks012,
TrackBlocks013,
TrackBlocks014,
TrackBlocks015,
TrackBlocks016,
TrackBlocks017,
TrackBlocks018,
TrackBlocks019,
TrackBlocks020,
TrackBlocks021,
TrackBlocks022,
TrackBlocks023,
TrackBlocks024,
TrackBlocks025,
TrackBlocks026,
TrackBlocks027,
TrackBlocks028,
TrackBlocks029,
TrackBlocks030,
TrackBlocks031,
TrackBlocks032,
TrackBlocks033,
TrackBlocks034,
TrackBlocks035,
TrackBlocks036,
TrackBlocks037,
TrackBlocks038,
TrackBlocks039,
TrackBlocks040,
TrackBlocks041,
TrackBlocks042,
TrackBlocks043,
TrackBlocks044,
TrackBlocks045,
TrackBlocks046,
TrackBlocks047,
TrackBlocks048,
TrackBlocks049,
TrackBlocks050,
TrackBlocks051,
TrackBlocks052,
TrackBlocks053,
TrackBlocks054,
TrackBlocks055,
TrackBlocks056,
TrackBlocks057,
TrackBlocks058,
TrackBlocks059,
TrackBlocks060,
TrackBlocks061,
TrackBlocks062,
TrackBlocks063,
TrackBlocks064,
TrackBlocks065,
TrackBlocks066,
TrackBlocks067,
TrackBlocks068,
TrackBlocks069,
TrackBlocks070,
TrackBlocks071,
TrackBlocks072,
TrackBlocks073,
TrackBlocks074,
TrackBlocks075,
TrackBlocks076,
TrackBlocks077,
TrackBlocks078,
TrackBlocks079,
TrackBlocks080,
TrackBlocks081,
TrackBlocks082,
TrackBlocks083,
TrackBlocks084,
TrackBlocks085,
TrackBlocks086,
TrackBlocks087,
TrackBlocks088,
TrackBlocks089,
TrackBlocks090,
TrackBlocks091,
TrackBlocks092,
TrackBlocks093,
TrackBlocks094,
TrackBlocks095,
TrackBlocks096,
TrackBlocks097,
TrackBlocks098,
TrackBlocks099,
TrackBlocks100,
TrackBlocks101,
TrackBlocks102,
TrackBlocks103,
TrackBlocks104,
TrackBlocks105,
TrackBlocks106,
TrackBlocks107,
TrackBlocks108,
TrackBlocks109,
TrackBlocks110,
TrackBlocks111,
TrackBlocks112,
TrackBlocks113,
TrackBlocks114,
TrackBlocks115,
TrackBlocks116,
TrackBlocks117,
TrackBlocks118,
TrackBlocks119,
TrackBlocks120,
TrackBlocks121,
TrackBlocks122,
TrackBlocks123,
TrackBlocks124,
TrackBlocks125,
TrackBlocks126,
TrackBlocks127,
TrackBlocks128,
TrackBlocks129,
TrackBlocks130,
TrackBlocks131,
TrackBlocks132,
TrackBlocks133,
TrackBlocks134,
TrackBlocks135,
TrackBlocks136,
TrackBlocks137,
TrackBlocks138,
TrackBlocks139,
TrackBlocks140,
TrackBlocks141,
TrackBlocks142,
TrackBlocks143,
TrackBlocks144,
TrackBlocks145,
TrackBlocks146,
TrackBlocks147,
TrackBlocks148,
TrackBlocks149,
TrackBlocks150,
TrackBlocks151,
TrackBlocks152,
TrackBlocks153,
TrackBlocks154,
TrackBlocks155,
TrackBlocks156,
TrackBlocks157,
TrackBlocks158,
TrackBlocks159,
TrackBlocks160,
TrackBlocks161,
TrackBlocks162,
TrackBlocks163,
TrackBlocks164,
TrackBlocks165,
TrackBlocks166,
TrackBlocks167,
TrackBlocks168,
TrackBlocks169,
TrackBlocks170,
TrackBlocks171,
TrackBlocks172,
TrackBlocks173,
TrackBlocks174,
TrackBlocks175,
TrackBlocks176,
TrackBlocks177,
TrackBlocks178,
TrackBlocks179,
TrackBlocks180,
TrackBlocks181,
TrackBlocks182,
TrackBlocks183,
TrackBlocks184,
TrackBlocks185,
TrackBlocks186,
TrackBlocks187,
TrackBlocks188,
TrackBlocks189,
TrackBlocks190,
TrackBlocks191,
TrackBlocks192,
TrackBlocks193,
TrackBlocks194,
TrackBlocks195,
TrackBlocks196,
TrackBlocks197,
TrackBlocks198,
TrackBlocks199,
TrackBlocks200,
TrackBlocks201,
TrackBlocks202,
TrackBlocks203,
TrackBlocks204,
TrackBlocks205,
TrackBlocks206,
TrackBlocks207,
TrackBlocks208,
TrackBlocks209,
TrackBlocks210,
TrackBlocks211,
TrackBlocks212,
TrackBlocks213,
TrackBlocks214,
TrackBlocks215,
TrackBlocks216,
TrackBlocks217,
TrackBlocks218,
TrackBlocks219,
TrackBlocks220,
TrackBlocks221,
TrackBlocks222,
TrackBlocks223,
TrackBlocks224,
TrackBlocks225,
TrackBlocks226,
TrackBlocks227,
TrackBlocks228,
TrackBlocks229,
TrackBlocks230,
TrackBlocks231,
TrackBlocks232,
TrackBlocks233,
TrackBlocks234,
TrackBlocks235,
TrackBlocks236,
TrackBlocks237,
TrackBlocks238,
TrackBlocks239,
TrackBlocks240,
TrackBlocks241,
TrackBlocks242,
TrackBlocks243,
TrackBlocks244,
TrackBlocks245,
TrackBlocks246,
TrackBlocks247,
TrackBlocks248,
TrackBlocks249,
TrackBlocks250,
TrackBlocks251,
TrackBlocks252,
TrackBlocks253,
TrackBlocks254,
TrackBlocks255
};
static constexpr const rct_preview_track FlatRideTrackBlocks095[] = {
{ 0, 0, 0, 0, 0, { 0b1111, 0 }, 0 },
{ 1, -64, 0, 0, 0, { 0b1111, 0 }, 0 },
{ 2, -32, 0, 0, 0, { 0b1111, 0 }, 0 },
{ 3, 32, 0, 0, 0, { 0b1111, 0 }, RCT_PREVIEW_TRACK_FLAG_1 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track FlatRideTrackBlocks110[] = {
{ 0, 0, 0, 0, 0, { 0b1111, 0 }, 0 },
{ 1, 0, 32, 0, 0, { 0b1111, 0 }, 0 },
{ 2, 32, 0, 0, 0, { 0b1111, 0 }, 0 },
{ 3, 32, 32, 0, 0, { 0b1111, 0 }, 0 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track FlatRideTrackBlocks111[] = {
{ 0, 0, 0, 0, 0, { 0b1111, 0 }, 0 },
{ 1, 0, 32, 0, 0, { 0b1111, 0 }, 0 },
{ 2, 0, 64, 0, 0, { 0b1111, 0 }, 0 },
{ 3, 0, 96, 0, 0, { 0b1111, 0 }, 0 },
{ 4, 32, 0, 0, 0, { 0b1111, 0 }, 0 },
{ 5, 32, 32, 0, 0, { 0b1111, 0 }, 0 },
{ 6, 32, 64, 0, 0, { 0b1111, 0 }, 0 },
{ 7, 32, 96, 0, 0, { 0b1111, 0 }, 0 },
{ 8, 64, 0, 0, 0, { 0b1111, 0 }, 0 },
{ 9, 64, 32, 0, 0, { 0b1111, 0 }, 0 },
{ 10, 64, 64, 0, 0, { 0b1111, 0 }, 0 },
{ 11, 64, 96, 0, 0, { 0b1111, 0 }, 0 },
{ 12, 96, 0, 0, 0, { 0b1111, 0 }, 0 },
{ 13, 96, 32, 0, 0, { 0b1111, 0 }, 0 },
{ 14, 96, 64, 0, 0, { 0b1111, 0 }, 0 },
{ 15, 96, 96, 0, 0, { 0b1111, 0 }, 0 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track FlatRideTrackBlocks115[] = {
{ 0, 0, 0, 0, 0, { 0b1111, 0 }, 0 },
{ 1, 0, 32, 0, 0, { 0b1111, 0 }, 0 },
{ 2, 0, 64, 0, 0, { 0b1111, 0 }, 0 },
{ 3, 0, 96, 0, 0, { 0b1111, 0 }, 0 },
{ 4, 32, 0, 0, 0, { 0b1111, 0 }, 0 },
{ 5, 32, 32, 0, 0, { 0b1111, 0 }, 0 },
{ 6, 32, 64, 0, 0, { 0b1111, 0 }, 0 },
{ 7, 32, 96, 0, 0, { 0b1111, 0 }, RCT_PREVIEW_TRACK_FLAG_1 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track FlatRideTrackBlocks116[] = {
{ 0, 0, 0, 0, 0, { 0b1111, 0 }, 0 },
{ 1, -64, 0, 0, 0, { 0b1111, 0 }, 0 },
{ 2, -32, 0, 0, 0, { 0b1111, 0 }, 0 },
{ 3, 32, 0, 0, 0, { 0b1111, 0 }, 0 },
{ 4, 64, 0, 0, 0, { 0b1111, 0 }, RCT_PREVIEW_TRACK_FLAG_1 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track FlatRideTrackBlocks118[] = {
{ 0, 0, 0, 0, 0, { 0b1111, 0 }, 0 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track FlatRideTrackBlocks119[] = {
{ 0, 0, 0, 0, 0, { 0b1111, 0 }, 0 },
{ 1, -64, 0, 0, 0, { 0b1111, 0 }, 0 },
{ 2, -32, 0, 0, 0, { 0b1111, 0 }, 0 },
{ 3, 32, 0, 0, 0, { 0b1111, 0 }, RCT_PREVIEW_TRACK_FLAG_1 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track FlatRideTrackBlocks121[] = {
{ 0, 0, 0, 0, 0, { 0b1111, 0 }, 0 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track FlatRideTrackBlocks122[] = {
{ 0, 0, 0, 0, 0, { 0b1111, 0 }, 0 },
{ 1, -64, 0, 0, 0, { 0b1111, 0 }, 0 },
{ 2, -32, 0, 0, 0, { 0b1111, 0 }, 0 },
{ 3, 32, 0, 0, 0, { 0b1111, 0 }, RCT_PREVIEW_TRACK_FLAG_1 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track FlatRideTrackBlocks123[] = {
{ 0, 0, 0, 0, 0, { 0b1111, 0 }, 0 },
{ 1, -32, -32, 0, 0, { 0b1111, 0 }, 0 },
{ 2, -32, 0, 0, 0, { 0b1111, 0 }, 0 },
{ 3, -32, 32, 0, 0, { 0b1111, 0 }, 0 },
{ 4, 0, -32, 0, 0, { 0b1111, 0 }, 0 },
{ 5, 0, 32, 0, 0, { 0b1111, 0 }, 0 },
{ 6, 32, -32, 0, 0, { 0b1111, 0 }, 0 },
{ 7, 32, 32, 0, 0, { 0b1111, 0 }, 0 },
{ 8, 32, 0, 0, 0, { 0b1111, 0 }, RCT_PREVIEW_TRACK_FLAG_1 },
TRACK_BLOCK_END
};
static constexpr const rct_preview_track FlatRideTrackBlocks255[] = {
TRACK_BLOCK_END
};
// rct2: 0x00994A38
const rct_preview_track *FlatRideTrackBlocks[TrackElemType::Count] = {
TrackBlocks000,
TrackBlocks001,
TrackBlocks002,
TrackBlocks003,
TrackBlocks004,
TrackBlocks005,
TrackBlocks006,
TrackBlocks007,
TrackBlocks008,
TrackBlocks009,
TrackBlocks010,
TrackBlocks011,
TrackBlocks012,
TrackBlocks013,
TrackBlocks014,
TrackBlocks015,
TrackBlocks016,
TrackBlocks017,
TrackBlocks018,
TrackBlocks019,
TrackBlocks020,
TrackBlocks021,
TrackBlocks022,
TrackBlocks023,
TrackBlocks024,
TrackBlocks025,
TrackBlocks026,
TrackBlocks027,
TrackBlocks028,
TrackBlocks029,
TrackBlocks030,
TrackBlocks031,
TrackBlocks032,
TrackBlocks033,
TrackBlocks034,
TrackBlocks035,
TrackBlocks036,
TrackBlocks037,
TrackBlocks038,
TrackBlocks039,
TrackBlocks040,
TrackBlocks041,
TrackBlocks042,
TrackBlocks043,
TrackBlocks044,
TrackBlocks045,
TrackBlocks046,
TrackBlocks047,
TrackBlocks048,
TrackBlocks049,
TrackBlocks050,
TrackBlocks051,
TrackBlocks052,
TrackBlocks053,
TrackBlocks054,
TrackBlocks055,
TrackBlocks056,
TrackBlocks057,
TrackBlocks058,
TrackBlocks059,
TrackBlocks060,
TrackBlocks061,
TrackBlocks062,
TrackBlocks063,
TrackBlocks064,
TrackBlocks065,
TrackBlocks066,
TrackBlocks067,
TrackBlocks068,
TrackBlocks069,
TrackBlocks070,
TrackBlocks071,
TrackBlocks072,
TrackBlocks073,
TrackBlocks074,
TrackBlocks075,
TrackBlocks076,
TrackBlocks077,
TrackBlocks078,
TrackBlocks079,
TrackBlocks080,
TrackBlocks081,
TrackBlocks082,
TrackBlocks083,
TrackBlocks084,
TrackBlocks085,
TrackBlocks086,
TrackBlocks087,
TrackBlocks088,
TrackBlocks089,
TrackBlocks090,
TrackBlocks091,
TrackBlocks092,
TrackBlocks093,
TrackBlocks094,
FlatRideTrackBlocks095,
TrackBlocks096,
TrackBlocks097,
TrackBlocks098,
TrackBlocks099,
TrackBlocks100,
TrackBlocks101,
TrackBlocks102,
TrackBlocks103,
TrackBlocks104,
TrackBlocks105,
TrackBlocks106,
TrackBlocks107,
TrackBlocks108,
TrackBlocks109,
FlatRideTrackBlocks110,
FlatRideTrackBlocks111,
TrackBlocks112,
TrackBlocks113,
TrackBlocks114,
FlatRideTrackBlocks115,
FlatRideTrackBlocks116,
TrackBlocks117,
FlatRideTrackBlocks118,
FlatRideTrackBlocks119,
TrackBlocks120,
FlatRideTrackBlocks121,
FlatRideTrackBlocks122,
FlatRideTrackBlocks123,
TrackBlocks124,
TrackBlocks125,
TrackBlocks126,
TrackBlocks127,
TrackBlocks128,
TrackBlocks129,
TrackBlocks130,
TrackBlocks131,
TrackBlocks132,
TrackBlocks133,
TrackBlocks134,
TrackBlocks135,
TrackBlocks136,
TrackBlocks137,
TrackBlocks138,
TrackBlocks139,
TrackBlocks140,
TrackBlocks141,
TrackBlocks142,
TrackBlocks143,
TrackBlocks144,
TrackBlocks145,
TrackBlocks146,
TrackBlocks147,
TrackBlocks148,
TrackBlocks149,
TrackBlocks150,
TrackBlocks151,
TrackBlocks152,
TrackBlocks153,
TrackBlocks154,
TrackBlocks155,
TrackBlocks156,
TrackBlocks157,
TrackBlocks158,
TrackBlocks159,
TrackBlocks160,
TrackBlocks161,
TrackBlocks162,
TrackBlocks163,
TrackBlocks164,
TrackBlocks165,
TrackBlocks166,
TrackBlocks167,
TrackBlocks168,
TrackBlocks169,
TrackBlocks170,
TrackBlocks171,
TrackBlocks172,
TrackBlocks173,
TrackBlocks174,
TrackBlocks175,
TrackBlocks176,
TrackBlocks177,
TrackBlocks178,
TrackBlocks179,
TrackBlocks180,
TrackBlocks181,
TrackBlocks182,
TrackBlocks183,
TrackBlocks184,
TrackBlocks185,
TrackBlocks186,
TrackBlocks187,
TrackBlocks188,
TrackBlocks189,
TrackBlocks190,
TrackBlocks191,
TrackBlocks192,
TrackBlocks193,
TrackBlocks194,
TrackBlocks195,
TrackBlocks196,
TrackBlocks197,
TrackBlocks198,
TrackBlocks199,
TrackBlocks200,
TrackBlocks201,
TrackBlocks202,
TrackBlocks203,
TrackBlocks204,
TrackBlocks205,
TrackBlocks206,
TrackBlocks207,
TrackBlocks208,
TrackBlocks209,
TrackBlocks210,
TrackBlocks211,
TrackBlocks212,
TrackBlocks213,
TrackBlocks214,
TrackBlocks215,
TrackBlocks216,
TrackBlocks217,
TrackBlocks218,
TrackBlocks219,
TrackBlocks220,
TrackBlocks221,
TrackBlocks222,
TrackBlocks223,
TrackBlocks224,
TrackBlocks225,
TrackBlocks226,
TrackBlocks227,
TrackBlocks228,
TrackBlocks229,
TrackBlocks230,
TrackBlocks231,
TrackBlocks232,
TrackBlocks233,
TrackBlocks234,
TrackBlocks235,
TrackBlocks236,
TrackBlocks237,
TrackBlocks238,
TrackBlocks239,
TrackBlocks240,
TrackBlocks241,
TrackBlocks242,
TrackBlocks243,
TrackBlocks244,
TrackBlocks245,
TrackBlocks246,
TrackBlocks247,
TrackBlocks248,
TrackBlocks249,
TrackBlocks250,
TrackBlocks251,
TrackBlocks252,
TrackBlocks253,
TrackBlocks254,
FlatRideTrackBlocks255
};
const uint8_t TrackPieceLengths[TrackElemType::Count] = {
32, // TrackElemType::Flat
32, // TrackElemType::EndStation
32, // TrackElemType::BeginStation
32, // TrackElemType::MiddleStation
33, // TrackElemType::Up25
40, // TrackElemType::Up60
32, // TrackElemType::FlatToUp25
34, // TrackElemType::Up25ToUp60
34, // TrackElemType::Up60ToUp25
32, // TrackElemType::Up25ToFlat
33, // TrackElemType::Down25
40, // TrackElemType::Down60
32, // TrackElemType::FlatToDown25
34, // TrackElemType::Down25ToDown60
34, // TrackElemType::Down60ToDown25
32, // TrackElemType::Down25ToFlat
124, // TrackElemType::LeftQuarterTurn5Tiles
124, // TrackElemType::RightQuarterTurn5Tiles
32, // TrackElemType::FlatToLeftBank
32, // TrackElemType::FlatToRightBank
32, // TrackElemType::LeftBankToFlat
32, // TrackElemType::RightBankToFlat
124, // TrackElemType::BankedLeftQuarterTurn5Tiles
124, // TrackElemType::BankedRightQuarterTurn5Tiles
32, // TrackElemType::LeftBankToUp25
32, // TrackElemType::RightBankToUp25
32, // TrackElemType::Up25ToLeftBank
32, // TrackElemType::Up25ToRightBank
32, // TrackElemType::LeftBankToDown25
32, // TrackElemType::RightBankToDown25
32, // TrackElemType::Down25ToLeftBank
32, // TrackElemType::Down25ToRightBank
32, // TrackElemType::LeftBank
32, // TrackElemType::RightBank
130, // TrackElemType::LeftQuarterTurn5TilesUp25
130, // TrackElemType::RightQuarterTurn5TilesUp25
130, // TrackElemType::LeftQuarterTurn5TilesDown25
130, // TrackElemType::RightQuarterTurn5TilesDown25
96, // TrackElemType::SBendLeft
96, // TrackElemType::SBendRight
120, // TrackElemType::LeftVerticalLoop
120, // TrackElemType::RightVerticalLoop
75, // TrackElemType::LeftQuarterTurn3Tiles
75, // TrackElemType::RightQuarterTurn3Tiles
75, // TrackElemType::LeftBankedQuarterTurn3Tiles
75, // TrackElemType::RightBankedQuarterTurn3Tiles
77, // TrackElemType::LeftQuarterTurn3TilesUp25
77, // TrackElemType::RightQuarterTurn3TilesUp25
77, // TrackElemType::LeftQuarterTurn3TilesDown25
77, // TrackElemType::RightQuarterTurn3TilesDown25
24, // TrackElemType::LeftQuarterTurn1Tile
24, // TrackElemType::RightQuarterTurn1Tile
96, // TrackElemType::LeftTwistDownToUp
96, // TrackElemType::RightTwistDownToUp
96, // TrackElemType::LeftTwistUpToDown
96, // TrackElemType::RightTwistUpToDown
60, // TrackElemType::HalfLoopUp
60, // TrackElemType::HalfLoopDown
55, // TrackElemType::LeftCorkscrewUp
55, // TrackElemType::RightCorkscrewUp
55, // TrackElemType::LeftCorkscrewDown
55, // TrackElemType::RightCorkscrewDown
36, // TrackElemType::FlatToUp60
36, // TrackElemType::Up60ToFlat
36, // TrackElemType::FlatToDown60
36, // TrackElemType::Down60ToFlat
32, // TrackElemType::TowerBase
32, // TrackElemType::TowerSection
32, // TrackElemType::FlatCovered
33, // TrackElemType::Up25Covered
40, // TrackElemType::Up60Covered
32, // TrackElemType::FlatToUp25Covered
34, // TrackElemType::Up25ToUp60Covered
34, // TrackElemType::Up60ToUp25Covered
32, // TrackElemType::Up25ToFlatCovered
33, // TrackElemType::Down25Covered
40, // TrackElemType::Down60Covered
32, // TrackElemType::FlatToDown25Covered
34, // TrackElemType::Down25ToDown60Covered
34, // TrackElemType::Down60ToDown25Covered
32, // TrackElemType::Down25ToFlatCovered
124, // TrackElemType::LeftQuarterTurn5TilesCovered
124, // TrackElemType::RightQuarterTurn5TilesCovered
96, // TrackElemType::SBendLeftCovered
96, // TrackElemType::SBendRightCovered
75, // TrackElemType::LeftQuarterTurn3TilesCovered
75, // TrackElemType::RightQuarterTurn3TilesCovered
150, // TrackElemType::LeftHalfBankedHelixUpSmall
150, // TrackElemType::RightHalfBankedHelixUpSmall
150, // TrackElemType::LeftHalfBankedHelixDownSmall
150, // TrackElemType::RightHalfBankedHelixDownSmall
248, // TrackElemType::LeftHalfBankedHelixUpLarge
248, // TrackElemType::RightHalfBankedHelixUpLarge
248, // TrackElemType::LeftHalfBankedHelixDownLarge
248, // TrackElemType::RightHalfBankedHelixDownLarge
64, // TrackElemType::LeftQuarterTurn1TileUp60
64, // TrackElemType::RightQuarterTurn1TileUp60
64, // TrackElemType::LeftQuarterTurn1TileDown60
64, // TrackElemType::RightQuarterTurn1TileDown60
32, // TrackElemType::Brakes
32, // TrackElemType::RotationControlToggle
32, // TrackElemType::InvertedUp90ToFlatQuarterLoopAlias / Maze
124, // TrackElemType::LeftQuarterBankedHelixLargeUp
124, // TrackElemType::RightQuarterBankedHelixLargeUp
124, // TrackElemType::LeftQuarterBankedHelixLargeDown
124, // TrackElemType::RightQuarterBankedHelixLargeDown
124, // TrackElemType::LeftQuarterHelixLargeUp
124, // TrackElemType::RightQuarterHelixLargeUp
124, // TrackElemType::LeftQuarterHelixLargeDown
124, // TrackElemType::RightQuarterHelixLargeDown
33, // TrackElemType::Up25LeftBanked
33, // TrackElemType::Up25RightBanked
32, // TrackElemType::Waterfall
32, // TrackElemType::Rapids
32, // TrackElemType::OnRidePhoto
33, // TrackElemType::Down25LeftBanked
33, // TrackElemType::Down25RightBanked
128, // TrackElemType::Watersplash
165, // TrackElemType::FlatToUp60LongBase
165, // TrackElemType::Up60ToFlatLongBase
32, // TrackElemType::Whirlpool
165, // TrackElemType::Down60ToFlatLongBase
165, // TrackElemType::FlatToDown60LongBase
138, // TrackElemType::CableLiftHill
32, // TrackElemType::ReverseFreefallSlope
32, // TrackElemType::ReverseFreefallVertical
32, // TrackElemType::Up90
32, // TrackElemType::Down90
32, // TrackElemType::Up60ToUp90
32, // TrackElemType::Down90ToDown60
32, // TrackElemType::Up90ToUp60
32, // TrackElemType::Down60ToDown90
32, // TrackElemType::BrakeForDrop
87, // TrackElemType::LeftEighthToDiag
87, // TrackElemType::RightEighthToDiag
87, // TrackElemType::LeftEighthToOrthogonal
87, // TrackElemType::RightEighthToOrthogonal
87, // TrackElemType::LeftEighthBankToDiag
87, // TrackElemType::RightEighthBankToDiag
87, // TrackElemType::LeftEighthBankToOrthogonal
87, // TrackElemType::RightEighthBankToOrthogonal
45, // TrackElemType::DiagFlat
45, // TrackElemType::DiagUp25
45, // TrackElemType::DiagUp60
45, // TrackElemType::DiagFlatToUp25
45, // TrackElemType::DiagUp25ToUp60
45, // TrackElemType::DiagUp60ToUp25
45, // TrackElemType::DiagUp25ToFlat
45, // TrackElemType::DiagDown25
45, // TrackElemType::DiagDown60
45, // TrackElemType::DiagFlatToDown25
45, // TrackElemType::DiagDown25ToDown60
45, // TrackElemType::DiagDown60ToDown25
45, // TrackElemType::DiagDown25ToFlat
45, // TrackElemType::DiagFlatToUp60
45, // TrackElemType::DiagUp60ToFlat
45, // TrackElemType::DiagFlatToDown60
45, // TrackElemType::DiagDown60ToFlat
45, // TrackElemType::DiagFlatToLeftBank
45, // TrackElemType::DiagFlatToRightBank
45, // TrackElemType::DiagLeftBankToFlat
45, // TrackElemType::DiagRightBankToFlat
45, // TrackElemType::DiagLeftBankToUp25
45, // TrackElemType::DiagRightBankToUp25
45, // TrackElemType::DiagUp25ToLeftBank
45, // TrackElemType::DiagUp25ToRightBank
45, // TrackElemType::DiagLeftBankToDown25
45, // TrackElemType::DiagRightBankToDown25
45, // TrackElemType::DiagDown25ToLeftBank
45, // TrackElemType::DiagDown25ToRightBank
45, // TrackElemType::DiagLeftBank
45, // TrackElemType::DiagRightBank
16, // TrackElemType::LogFlumeReverser
32, // TrackElemType::SpinningTunnel
96, // TrackElemType::LeftBarrelRollUpToDown
96, // TrackElemType::RightBarrelRollUpToDown
96, // TrackElemType::LeftBarrelRollDownToUp
96, // TrackElemType::RightBarrelRollDownToUp
64, // TrackElemType::LeftBankToLeftQuarterTurn3TilesUp25
64, // TrackElemType::RightBankToRightQuarterTurn3TilesUp25
64, // TrackElemType::LeftQuarterTurn3TilesDown25ToLeftBank
64, // TrackElemType::RightQuarterTurn3TilesDown25ToRightBank
32, // TrackElemType::PoweredLift
100, // TrackElemType::LeftLargeHalfLoopUp
100, // TrackElemType::RightLargeHalfLoopUp
100, // TrackElemType::RightLargeHalfLoopDown
100, // TrackElemType::LeftLargeHalfLoopDown
96, //
96, //
96, //
96, //
64, //
64, //
64, //
64, //
64, //
64, //
16, //
16, //
64, //
64, //
32, //
32, //
32, //
32, //
32, //
80, //
80, //
80, //
64, //
64, //
32, //
32, //
32, //
32, //
32, //
32, //
32, //
32, //
32, //
32, //
32, //
32, //
32, //
32, //
32, //
32, //
32, //
32, //
32, //
32, //
32, //
32, //
32, //
32, //
32, //
32, //
32, //
32, //
32, //
32, //
32, //
32, //
32, //
32, //
32, //
32, //
32, //
32, //
32, //
32, //
32, //
32, //
80, //
80, //
80, //
};
// rct2: 0x00998C95
const track_curve_chain gTrackCurveChain[TrackElemType::Count] = {
{ TRACK_CURVE_NONE, TRACK_CURVE_NONE },
{ RideConstructionSpecialPieceSelected | TrackElemType::EndStation, RideConstructionSpecialPieceSelected | TrackElemType::EndStation },
{ RideConstructionSpecialPieceSelected | TrackElemType::EndStation, RideConstructionSpecialPieceSelected | TrackElemType::EndStation },
{ RideConstructionSpecialPieceSelected | TrackElemType::EndStation, RideConstructionSpecialPieceSelected | TrackElemType::EndStation },
{ TRACK_CURVE_NONE, TRACK_CURVE_NONE },
{ TRACK_CURVE_NONE, TRACK_CURVE_NONE },
{ TRACK_CURVE_NONE, TRACK_CURVE_NONE },
{ TRACK_CURVE_NONE, TRACK_CURVE_NONE },
{ TRACK_CURVE_NONE, TRACK_CURVE_NONE },
{ TRACK_CURVE_NONE, TRACK_CURVE_NONE },
{ TRACK_CURVE_NONE, TRACK_CURVE_NONE },
{ TRACK_CURVE_NONE, TRACK_CURVE_NONE },
{ TRACK_CURVE_NONE, TRACK_CURVE_NONE },
{ TRACK_CURVE_NONE, TRACK_CURVE_NONE },
{ TRACK_CURVE_NONE, TRACK_CURVE_NONE },
{ TRACK_CURVE_NONE, TRACK_CURVE_NONE },
{ TRACK_CURVE_LEFT, TRACK_CURVE_LEFT },
{ TRACK_CURVE_RIGHT, TRACK_CURVE_RIGHT },
{ TRACK_CURVE_LEFT, TRACK_CURVE_NONE },
{ TRACK_CURVE_RIGHT, TRACK_CURVE_NONE },
{ TRACK_CURVE_NONE, TRACK_CURVE_LEFT },
{ TRACK_CURVE_NONE, TRACK_CURVE_RIGHT },
{ TRACK_CURVE_LEFT, TRACK_CURVE_LEFT },
{ TRACK_CURVE_RIGHT, TRACK_CURVE_RIGHT },
{ TRACK_CURVE_NONE, TRACK_CURVE_LEFT },
{ TRACK_CURVE_NONE, TRACK_CURVE_RIGHT },
{ TRACK_CURVE_LEFT, TRACK_CURVE_NONE },
{ TRACK_CURVE_RIGHT, TRACK_CURVE_NONE },
{ TRACK_CURVE_NONE, TRACK_CURVE_LEFT },
{ TRACK_CURVE_NONE, TRACK_CURVE_RIGHT },
{ TRACK_CURVE_LEFT, TRACK_CURVE_NONE },
{ TRACK_CURVE_RIGHT, TRACK_CURVE_NONE },
{ TRACK_CURVE_LEFT, TRACK_CURVE_LEFT },
{ TRACK_CURVE_RIGHT, TRACK_CURVE_RIGHT },
{ TRACK_CURVE_LEFT, TRACK_CURVE_LEFT },
{ TRACK_CURVE_RIGHT, TRACK_CURVE_RIGHT },
{ TRACK_CURVE_LEFT, TRACK_CURVE_LEFT },
{ TRACK_CURVE_RIGHT, TRACK_CURVE_RIGHT },
{ TRACK_CURVE_NONE, TRACK_CURVE_NONE },
{ TRACK_CURVE_NONE, TRACK_CURVE_NONE },
{ TRACK_CURVE_NONE, TRACK_CURVE_NONE },
{ TRACK_CURVE_NONE, TRACK_CURVE_NONE },
{ TRACK_CURVE_LEFT_SMALL, TRACK_CURVE_LEFT_SMALL },
{ TRACK_CURVE_RIGHT_SMALL, TRACK_CURVE_RIGHT_SMALL },
{ TRACK_CURVE_LEFT_SMALL, TRACK_CURVE_LEFT_SMALL },
{ TRACK_CURVE_RIGHT_SMALL, TRACK_CURVE_RIGHT_SMALL },
{ TRACK_CURVE_LEFT_SMALL, TRACK_CURVE_LEFT_SMALL },
{ TRACK_CURVE_RIGHT_SMALL, TRACK_CURVE_RIGHT_SMALL },
{ TRACK_CURVE_LEFT_SMALL, TRACK_CURVE_LEFT_SMALL },
{ TRACK_CURVE_RIGHT_SMALL, TRACK_CURVE_RIGHT_SMALL },
{ TRACK_CURVE_LEFT_VERY_SMALL, TRACK_CURVE_LEFT_VERY_SMALL },
{ TRACK_CURVE_RIGHT_VERY_SMALL, TRACK_CURVE_RIGHT_VERY_SMALL },
{ RideConstructionSpecialPieceSelected | TrackElemType::LeftTwistUpToDown, TRACK_CURVE_NONE },
{ RideConstructionSpecialPieceSelected | TrackElemType::RightTwistUpToDown, TRACK_CURVE_NONE },
{ TRACK_CURVE_NONE, RideConstructionSpecialPieceSelected | TrackElemType::LeftTwistDownToUp },
{ TRACK_CURVE_NONE, RideConstructionSpecialPieceSelected | TrackElemType::RightTwistDownToUp },
{ RideConstructionSpecialPieceSelected | TrackElemType::HalfLoopDown, TRACK_CURVE_NONE },
{ TRACK_CURVE_NONE, RideConstructionSpecialPieceSelected | TrackElemType::HalfLoopUp },
{ RideConstructionSpecialPieceSelected | TrackElemType::RightCorkscrewDown, TRACK_CURVE_NONE },
{ RideConstructionSpecialPieceSelected | TrackElemType::LeftCorkscrewDown, TRACK_CURVE_NONE },
{ TRACK_CURVE_NONE, RideConstructionSpecialPieceSelected | TrackElemType::RightCorkscrewUp },
{ TRACK_CURVE_NONE, RideConstructionSpecialPieceSelected | TrackElemType::LeftCorkscrewUp },
{ TRACK_CURVE_NONE, TRACK_CURVE_NONE },
{ TRACK_CURVE_NONE, TRACK_CURVE_NONE },
{ TRACK_CURVE_NONE, TRACK_CURVE_NONE },
{ TRACK_CURVE_NONE, TRACK_CURVE_NONE },
{ RideConstructionSpecialPieceSelected | TrackElemType::TowerSection, TRACK_CURVE_NONE },
{ RideConstructionSpecialPieceSelected | TrackElemType::TowerSection, TRACK_CURVE_NONE },
{ TRACK_CURVE_NONE, TRACK_CURVE_NONE },
{ TRACK_CURVE_NONE, TRACK_CURVE_NONE },
{ TRACK_CURVE_NONE, TRACK_CURVE_NONE },
{ TRACK_CURVE_NONE, TRACK_CURVE_NONE },
{ TRACK_CURVE_NONE, TRACK_CURVE_NONE },
{ TRACK_CURVE_NONE, TRACK_CURVE_NONE },
{ TRACK_CURVE_NONE, TRACK_CURVE_NONE },
{ TRACK_CURVE_NONE, TRACK_CURVE_NONE },
{ TRACK_CURVE_NONE, TRACK_CURVE_NONE },
{ TRACK_CURVE_NONE, TRACK_CURVE_NONE },
{ TRACK_CURVE_NONE, TRACK_CURVE_NONE },
{ TRACK_CURVE_NONE, TRACK_CURVE_NONE },
{ TRACK_CURVE_NONE, TRACK_CURVE_NONE },
{ TRACK_CURVE_LEFT, TRACK_CURVE_LEFT },
{ TRACK_CURVE_RIGHT, TRACK_CURVE_RIGHT },
{ TRACK_CURVE_NONE, TRACK_CURVE_NONE },
{ TRACK_CURVE_NONE, TRACK_CURVE_NONE },
{ TRACK_CURVE_LEFT_SMALL, TRACK_CURVE_LEFT_SMALL },
{ TRACK_CURVE_RIGHT_SMALL, TRACK_CURVE_RIGHT_SMALL },
{ RideConstructionSpecialPieceSelected | TrackElemType::LeftHalfBankedHelixUpSmall, RideConstructionSpecialPieceSelected | TrackElemType::LeftHalfBankedHelixUpSmall },
{ RideConstructionSpecialPieceSelected | TrackElemType::RightHalfBankedHelixUpSmall, RideConstructionSpecialPieceSelected | TrackElemType::RightHalfBankedHelixUpSmall },
{ RideConstructionSpecialPieceSelected | TrackElemType::LeftHalfBankedHelixDownSmall, RideConstructionSpecialPieceSelected | TrackElemType::LeftHalfBankedHelixDownSmall },
{ RideConstructionSpecialPieceSelected | TrackElemType::RightHalfBankedHelixDownSmall, RideConstructionSpecialPieceSelected | TrackElemType::RightHalfBankedHelixDownSmall },
{ RideConstructionSpecialPieceSelected | TrackElemType::LeftHalfBankedHelixUpLarge, RideConstructionSpecialPieceSelected | TrackElemType::LeftHalfBankedHelixUpLarge },
{ RideConstructionSpecialPieceSelected | TrackElemType::RightHalfBankedHelixUpLarge, RideConstructionSpecialPieceSelected | TrackElemType::RightHalfBankedHelixUpLarge },
{ RideConstructionSpecialPieceSelected | TrackElemType::LeftHalfBankedHelixDownLarge, RideConstructionSpecialPieceSelected | TrackElemType::LeftHalfBankedHelixDownLarge },
{ RideConstructionSpecialPieceSelected | TrackElemType::RightHalfBankedHelixDownLarge, RideConstructionSpecialPieceSelected | TrackElemType::RightHalfBankedHelixDownLarge },
{ TRACK_CURVE_LEFT_SMALL, TRACK_CURVE_LEFT_SMALL },
{ TRACK_CURVE_RIGHT_SMALL, TRACK_CURVE_RIGHT_SMALL },
{ TRACK_CURVE_LEFT_SMALL, TRACK_CURVE_LEFT_SMALL },
{ TRACK_CURVE_RIGHT_SMALL, TRACK_CURVE_RIGHT_SMALL },
{ RideConstructionSpecialPieceSelected | TrackElemType::Brakes, RideConstructionSpecialPieceSelected | TrackElemType::Brakes },
{ TRACK_CURVE_NONE, TRACK_CURVE_NONE },
{ TRACK_CURVE_NONE, TRACK_CURVE_NONE },
{ RideConstructionSpecialPieceSelected | TrackElemType::LeftQuarterBankedHelixLargeUp, RideConstructionSpecialPieceSelected | TrackElemType::LeftQuarterBankedHelixLargeUp },
{ RideConstructionSpecialPieceSelected | TrackElemType::RightQuarterBankedHelixLargeUp, RideConstructionSpecialPieceSelected | TrackElemType::RightQuarterBankedHelixLargeUp },
{ RideConstructionSpecialPieceSelected | TrackElemType::LeftQuarterBankedHelixLargeDown, RideConstructionSpecialPieceSelected | TrackElemType::LeftQuarterBankedHelixLargeDown },
{ RideConstructionSpecialPieceSelected | TrackElemType::RightQuarterBankedHelixLargeDown, RideConstructionSpecialPieceSelected | TrackElemType::RightQuarterBankedHelixLargeDown },
{ RideConstructionSpecialPieceSelected | TrackElemType::LeftQuarterHelixLargeUp, RideConstructionSpecialPieceSelected | TrackElemType::LeftQuarterHelixLargeUp },
{ RideConstructionSpecialPieceSelected | TrackElemType::RightQuarterHelixLargeUp, RideConstructionSpecialPieceSelected | TrackElemType::RightQuarterHelixLargeUp },
{ RideConstructionSpecialPieceSelected | TrackElemType::LeftQuarterHelixLargeDown, RideConstructionSpecialPieceSelected | TrackElemType::LeftQuarterHelixLargeDown },
{ RideConstructionSpecialPieceSelected | TrackElemType::RightQuarterHelixLargeDown, RideConstructionSpecialPieceSelected | TrackElemType::RightQuarterHelixLargeDown },
{ TRACK_CURVE_LEFT, TRACK_CURVE_LEFT },
{ TRACK_CURVE_RIGHT, TRACK_CURVE_RIGHT },
{ RideConstructionSpecialPieceSelected | TrackElemType::Waterfall, RideConstructionSpecialPieceSelected | TrackElemType::Waterfall },
{ RideConstructionSpecialPieceSelected | TrackElemType::Rapids, RideConstructionSpecialPieceSelected | TrackElemType::Rapids },
{ TRACK_CURVE_NONE, TRACK_CURVE_NONE },
{ TRACK_CURVE_LEFT, TRACK_CURVE_LEFT },
{ TRACK_CURVE_RIGHT, TRACK_CURVE_RIGHT },
{ TRACK_CURVE_NONE, TRACK_CURVE_NONE },
{ TRACK_CURVE_NONE, TRACK_CURVE_NONE },
{ TRACK_CURVE_NONE, TRACK_CURVE_NONE },
{ TRACK_CURVE_NONE, TRACK_CURVE_NONE },
{ TRACK_CURVE_NONE, TRACK_CURVE_NONE },
{ TRACK_CURVE_NONE, TRACK_CURVE_NONE },
{ TRACK_CURVE_NONE, TRACK_CURVE_NONE },
{ RideConstructionSpecialPieceSelected | TrackElemType::ReverseFreefallVertical, TRACK_CURVE_NONE },
{ RideConstructionSpecialPieceSelected | TrackElemType::ReverseFreefallVertical, RideConstructionSpecialPieceSelected | TrackElemType::ReverseFreefallVertical },
{ TRACK_CURVE_NONE, TRACK_CURVE_NONE },
{ TRACK_CURVE_NONE, TRACK_CURVE_NONE },
{ TRACK_CURVE_NONE, TRACK_CURVE_NONE },
{ TRACK_CURVE_NONE, TRACK_CURVE_NONE },
{ TRACK_CURVE_NONE, TRACK_CURVE_NONE },
{ TRACK_CURVE_NONE, TRACK_CURVE_NONE },
{ TRACK_CURVE_NONE, TRACK_CURVE_NONE },
{ TRACK_CURVE_LEFT_LARGE, TRACK_CURVE_LEFT_LARGE },
{ TRACK_CURVE_RIGHT_LARGE, TRACK_CURVE_RIGHT_LARGE },
{ TRACK_CURVE_LEFT_LARGE, TRACK_CURVE_LEFT_LARGE },
{ TRACK_CURVE_RIGHT_LARGE, TRACK_CURVE_RIGHT_LARGE },
{ TRACK_CURVE_LEFT_LARGE, TRACK_CURVE_LEFT_LARGE },
{ TRACK_CURVE_RIGHT_LARGE, TRACK_CURVE_RIGHT_LARGE },
{ TRACK_CURVE_LEFT_LARGE, TRACK_CURVE_LEFT_LARGE },
{ TRACK_CURVE_RIGHT_LARGE, TRACK_CURVE_RIGHT_LARGE },
{ TRACK_CURVE_NONE, TRACK_CURVE_NONE },
{ TRACK_CURVE_NONE, TRACK_CURVE_NONE },
{ TRACK_CURVE_NONE, TRACK_CURVE_NONE },
{ TRACK_CURVE_NONE, TRACK_CURVE_NONE },
{ TRACK_CURVE_NONE, TRACK_CURVE_NONE },
{ TRACK_CURVE_NONE, TRACK_CURVE_NONE },
{ TRACK_CURVE_NONE, TRACK_CURVE_NONE },
{ TRACK_CURVE_NONE, TRACK_CURVE_NONE },
{ TRACK_CURVE_NONE, TRACK_CURVE_NONE },
{ TRACK_CURVE_NONE, TRACK_CURVE_NONE },
{ TRACK_CURVE_NONE, TRACK_CURVE_NONE },
{ TRACK_CURVE_NONE, TRACK_CURVE_NONE },
{ TRACK_CURVE_NONE, TRACK_CURVE_NONE },
{ TRACK_CURVE_NONE, TRACK_CURVE_NONE },
{ TRACK_CURVE_NONE, TRACK_CURVE_NONE },
{ TRACK_CURVE_NONE, TRACK_CURVE_NONE },
{ TRACK_CURVE_NONE, TRACK_CURVE_NONE },
{ TRACK_CURVE_LEFT_LARGE, TRACK_CURVE_NONE },
{ TRACK_CURVE_RIGHT_LARGE, TRACK_CURVE_NONE },
{ TRACK_CURVE_NONE, TRACK_CURVE_LEFT_LARGE },
{ TRACK_CURVE_NONE, TRACK_CURVE_RIGHT_LARGE },
{ TRACK_CURVE_NONE, TRACK_CURVE_LEFT_LARGE },
{ TRACK_CURVE_NONE, TRACK_CURVE_RIGHT_LARGE },
{ TRACK_CURVE_LEFT_LARGE, TRACK_CURVE_NONE },
{ TRACK_CURVE_RIGHT_LARGE, TRACK_CURVE_NONE },
{ TRACK_CURVE_NONE, TRACK_CURVE_LEFT_LARGE },
{ TRACK_CURVE_NONE, TRACK_CURVE_RIGHT_LARGE },
{ TRACK_CURVE_LEFT_LARGE, TRACK_CURVE_NONE },
{ TRACK_CURVE_RIGHT_LARGE, TRACK_CURVE_NONE },
{ TRACK_CURVE_LEFT_LARGE, TRACK_CURVE_LEFT_LARGE },
{ TRACK_CURVE_RIGHT_LARGE, TRACK_CURVE_RIGHT_LARGE },
{ TRACK_CURVE_NONE, TRACK_CURVE_NONE },
{ TRACK_CURVE_NONE, TRACK_CURVE_NONE },
{ RideConstructionSpecialPieceSelected | TrackElemType::LeftBarrelRollDownToUp, TRACK_CURVE_NONE },
{ RideConstructionSpecialPieceSelected | TrackElemType::RightBarrelRollDownToUp, TRACK_CURVE_NONE },
{ TRACK_CURVE_NONE, RideConstructionSpecialPieceSelected | TrackElemType::LeftBarrelRollUpToDown },
{ TRACK_CURVE_NONE, RideConstructionSpecialPieceSelected | TrackElemType::RightBarrelRollUpToDown },
{ TRACK_CURVE_LEFT_SMALL, TRACK_CURVE_LEFT_SMALL },
{ TRACK_CURVE_RIGHT_SMALL, TRACK_CURVE_RIGHT_SMALL },
{ TRACK_CURVE_LEFT_SMALL, TRACK_CURVE_LEFT_SMALL },
{ TRACK_CURVE_RIGHT_SMALL, TRACK_CURVE_RIGHT_SMALL },
{ RideConstructionSpecialPieceSelected | TrackElemType::PoweredLift, RideConstructionSpecialPieceSelected | TrackElemType::PoweredLift },
{ RideConstructionSpecialPieceSelected | TrackElemType::LeftLargeHalfLoopDown, TRACK_CURVE_NONE },
{ RideConstructionSpecialPieceSelected | TrackElemType::RightLargeHalfLoopDown, TRACK_CURVE_NONE },
{ TRACK_CURVE_NONE, RideConstructionSpecialPieceSelected | TrackElemType::RightLargeHalfLoopUp },
{ TRACK_CURVE_NONE, RideConstructionSpecialPieceSelected | TrackElemType::LeftLargeHalfLoopUp },
{ TRACK_CURVE_NONE, TRACK_CURVE_NONE },
{ TRACK_CURVE_NONE, TRACK_CURVE_NONE },
{ TRACK_CURVE_NONE, TRACK_CURVE_NONE },
{ TRACK_CURVE_NONE, TRACK_CURVE_NONE },
{ TRACK_CURVE_NONE, TRACK_CURVE_NONE },
{ TRACK_CURVE_NONE, TRACK_CURVE_NONE },
{ TRACK_CURVE_NONE, TRACK_CURVE_NONE },
{ TRACK_CURVE_NONE, TRACK_CURVE_NONE },
{ TRACK_CURVE_NONE, TRACK_CURVE_NONE },
{ TRACK_CURVE_NONE, TRACK_CURVE_NONE },
{ TRACK_CURVE_NONE, TRACK_CURVE_NONE },
{ TRACK_CURVE_NONE, TRACK_CURVE_NONE },
{ TRACK_CURVE_NONE, TRACK_CURVE_NONE },
{ TRACK_CURVE_NONE, TRACK_CURVE_NONE },
{ TRACK_CURVE_NONE, TRACK_CURVE_NONE },
{ TRACK_CURVE_NONE, TRACK_CURVE_NONE },
{ TRACK_CURVE_NONE, TRACK_CURVE_NONE },
{ TRACK_CURVE_NONE, TRACK_CURVE_NONE },
{ TRACK_CURVE_NONE, TRACK_CURVE_NONE },
{ TRACK_CURVE_NONE, TRACK_CURVE_NONE },
{ RideConstructionSpecialPieceSelected | TrackElemType::InvertedFlatToDown90QuarterLoop, TRACK_CURVE_NONE },
{ TRACK_CURVE_NONE, RideConstructionSpecialPieceSelected | TrackElemType::Up90ToInvertedFlatQuarterLoop },
{ RideConstructionSpecialPieceSelected | TrackElemType::LeftCurvedLiftHill, RideConstructionSpecialPieceSelected | TrackElemType::LeftCurvedLiftHill },
{ RideConstructionSpecialPieceSelected | TrackElemType::RightCurvedLiftHill, RideConstructionSpecialPieceSelected | TrackElemType::RightCurvedLiftHill },
{ TRACK_CURVE_NONE, TRACK_CURVE_NONE },
{ TRACK_CURVE_NONE, TRACK_CURVE_NONE },
{ RideConstructionSpecialPieceSelected | TrackElemType::AirThrustVerticalDown, RideConstructionSpecialPieceSelected | TrackElemType::ReverseFreefallVertical },
{ RideConstructionSpecialPieceSelected | TrackElemType::AirThrustVerticalDown, RideConstructionSpecialPieceSelected | TrackElemType::AirThrustVerticalDown },
{ TRACK_CURVE_NONE, RideConstructionSpecialPieceSelected | TrackElemType::AirThrustVerticalDown },
{ TRACK_CURVE_NONE, TRACK_CURVE_NONE },
{ TRACK_CURVE_LEFT_SMALL, TRACK_CURVE_LEFT_SMALL },
{ TRACK_CURVE_RIGHT_SMALL, TRACK_CURVE_RIGHT_SMALL },
{ TRACK_CURVE_LEFT_SMALL, TRACK_CURVE_LEFT_SMALL },
{ TRACK_CURVE_RIGHT_SMALL, TRACK_CURVE_RIGHT_SMALL },
{ TRACK_CURVE_LEFT, TRACK_CURVE_LEFT },
{ TRACK_CURVE_RIGHT, TRACK_CURVE_RIGHT },
{ TRACK_CURVE_LEFT, TRACK_CURVE_LEFT },
{ TRACK_CURVE_RIGHT, TRACK_CURVE_RIGHT },
{ TRACK_CURVE_LEFT, TRACK_CURVE_NONE },
{ TRACK_CURVE_RIGHT, TRACK_CURVE_NONE },
{ TRACK_CURVE_NONE, TRACK_CURVE_LEFT },
{ TRACK_CURVE_NONE, TRACK_CURVE_RIGHT },
{ TRACK_CURVE_LEFT, TRACK_CURVE_NONE },
{ TRACK_CURVE_RIGHT, TRACK_CURVE_NONE },
{ TRACK_CURVE_NONE, TRACK_CURVE_LEFT },
{ TRACK_CURVE_NONE, TRACK_CURVE_RIGHT },
{ TRACK_CURVE_LEFT, TRACK_CURVE_LEFT },
{ TRACK_CURVE_RIGHT, TRACK_CURVE_RIGHT },
{ TRACK_CURVE_LEFT, TRACK_CURVE_LEFT },
{ TRACK_CURVE_RIGHT, TRACK_CURVE_RIGHT },
{ TRACK_CURVE_LEFT, TRACK_CURVE_LEFT },
{ TRACK_CURVE_RIGHT, TRACK_CURVE_RIGHT },
{ TRACK_CURVE_LEFT, TRACK_CURVE_LEFT },
{ TRACK_CURVE_RIGHT, TRACK_CURVE_RIGHT },
{ TRACK_CURVE_LEFT, TRACK_CURVE_NONE },
{ TRACK_CURVE_RIGHT, TRACK_CURVE_NONE },
{ TRACK_CURVE_NONE, TRACK_CURVE_LEFT },
{ TRACK_CURVE_NONE, TRACK_CURVE_RIGHT },
{ TRACK_CURVE_LEFT, TRACK_CURVE_NONE },
{ TRACK_CURVE_RIGHT, TRACK_CURVE_NONE },
{ TRACK_CURVE_NONE, TRACK_CURVE_LEFT },
{ TRACK_CURVE_NONE, TRACK_CURVE_RIGHT },
{ TRACK_CURVE_LEFT_SMALL, TRACK_CURVE_LEFT_SMALL },
{ TRACK_CURVE_RIGHT_SMALL, TRACK_CURVE_RIGHT_SMALL },
{ TRACK_CURVE_LEFT_SMALL, TRACK_CURVE_LEFT_SMALL },
{ TRACK_CURVE_RIGHT_SMALL, TRACK_CURVE_RIGHT_SMALL },
{ TRACK_CURVE_NONE, TRACK_CURVE_NONE },
{ TRACK_CURVE_NONE, TRACK_CURVE_NONE },
{ TRACK_CURVE_NONE, TRACK_CURVE_NONE },
};
// rct2: 0x00999095
const track_curve_chain gFlatRideTrackCurveChain[TrackElemType::Count] = {
{ 0, 0 },
{ 257, 257 },
{ 257, 257 },
{ 257, 257 },
{ 0, 0 },
{ 0, 0 },
{ 0, 0 },
{ 0, 0 },
{ 0, 0 },
{ 0, 0 },
{ 0, 0 },
{ 0, 0 },
{ 0, 0 },
{ 0, 0 },
{ 0, 0 },
{ 0, 0 },
{ 1, 1 },
{ 2, 2 },
{ 1, 0 },
{ 2, 0 },
{ 0, 1 },
{ 0, 2 },
{ 1, 1 },
{ 2, 2 },
{ 0, 1 },
{ 0, 2 },
{ 1, 0 },
{ 2, 0 },
{ 0, 1 },
{ 0, 2 },
{ 1, 0 },
{ 2, 0 },
{ 1, 1 },
{ 2, 2 },
{ 1, 1 },
{ 2, 2 },
{ 1, 1 },
{ 2, 2 },
{ 0, 0 },
{ 0, 0 },
{ 0, 0 },
{ 0, 0 },
{ 3, 3 },
{ 4, 4 },
{ 3, 3 },
{ 4, 4 },
{ 3, 3 },
{ 4, 4 },
{ 3, 3 },
{ 4, 4 },
{ 5, 5 },
{ 6, 6 },
{ 310, 0 },
{ 311, 0 },
{ 0, 308 },
{ 0, 309 },
{ 313, 0 },
{ 0, 312 },
{ 317, 0 },
{ 316, 0 },
{ 0, 315 },
{ 0, 314 },
{ 0, 0 },
{ 0, 0 },
{ 0, 0 },
{ 0, 0 },
{ 323, 0 },
{ 323, 0 },
{ 0, 0 },
{ 0, 0 },
{ 0, 0 },
{ 0, 0 },
{ 0, 0 },
{ 0, 0 },
{ 0, 0 },
{ 0, 0 },
{ 0, 0 },
{ 0, 0 },
{ 0, 0 },
{ 0, 0 },
{ 0, 0 },
{ 1, 1 },
{ 2, 2 },
{ 0, 0 },
{ 0, 0 },
{ 3, 3 },
{ 4, 4 },
{ 343, 343 },
{ 344, 344 },
{ 345, 345 },
{ 346, 346 },
{ 347, 347 },
{ 348, 348 },
{ 349, 349 },
{ 350, 350 },
{ 65535, 65535 },
{ 4, 4 },
{ 3, 3 },
{ 4, 4 },
{ 355, 355 },
{ 0, 0 },
{ 0, 0 },
{ 358, 358 },
{ 359, 359 },
{ 360, 360 },
{ 361, 361 },
{ 362, 362 },
{ 363, 363 },
{ 364, 364 },
{ 365, 365 },
{ 65535, 65535 },
{ 65535, 65535 },
{ 368, 368 },
{ 369, 369 },
{ 0, 0 },
{ 65535, 65535 },
{ 65535, 65535 },
{ 0, 0 },
{ 65535, 65535 },
{ 65535, 65535 },
{ 0, 0 },
{ 65535, 65535 },
{ 65535, 65535 },
{ 65535, 65535 },
{ 381, 0 },
{ 381, 381 },
{ 0, 0 },
{ 0, 0 },
{ 0, 0 },
{ 0, 0 },
{ 0, 0 },
{ 0, 0 },
{ 0, 0 },
{ 7, 7 },
{ 8, 8 },
{ 7, 7 },
{ 8, 8 },
{ 7, 7 },
{ 8, 8 },
{ 7, 7 },
{ 8, 8 },
{ 0, 0 },
{ 0, 0 },
{ 0, 0 },
{ 0, 0 },
{ 0, 0 },
{ 0, 0 },
{ 0, 0 },
{ 0, 0 },
{ 0, 0 },
{ 0, 0 },
{ 0, 0 },
{ 0, 0 },
{ 0, 0 },
{ 0, 0 },
{ 0, 0 },
{ 0, 0 },
{ 0, 0 },
{ 7, 0 },
{ 8, 0 },
{ 0, 7 },
{ 0, 8 },
{ 0, 7 },
{ 0, 8 },
{ 7, 0 },
{ 8, 0 },
{ 0, 7 },
{ 0, 8 },
{ 7, 0 },
{ 8, 0 },
{ 7, 7 },
{ 8, 8 },
{ 0, 0 },
{ 0, 0 },
{ 432, 0 },
{ 433, 0 },
{ 0, 430 },
{ 0, 431 },
{ 3, 3 },
{ 4, 4 },
{ 3, 3 },
{ 4, 4 },
{ 438, 190 },
{ 442, 0 },
{ 441, 0 },
{ 0, 440 },
{ 0, 439 },
{ 0, 0 },
{ 0, 0 },
{ 0, 0 },
{ 0, 0 },
{ 0, 0 },
{ 0, 0 },
{ 0, 0 },
{ 0, 0 },
{ 0, 0 },
{ 0, 0 },
{ 0, 0 },
{ 0, 0 },
{ 0, 0 },
{ 0, 0 },
{ 0, 0 },
{ 0, 0 },
{ 0, 0 },
{ 0, 0 },
{ 0, 0 },
{ 0, 0 },
{ 0, 0 },
{ 0, 0 },
{ 465, 465 },
{ 466, 466 },
{ 0, 0 },
{ 0, 0 },
{ 470, 381 },
{ 470, 470 },
{ 0, 470 },
{ 0, 0 },
{ 3, 3 },
{ 4, 4 },
{ 3, 3 },
{ 4, 4 },
{ 1, 1 },
{ 2, 2 },
{ 1, 1 },
{ 2, 2 },
{ 1, 0 },
{ 2, 0 },
{ 0, 1 },
{ 0, 1 },
{ 1, 0 },
{ 2, 0 },
{ 0, 1 },
{ 0, 2 },
{ 1, 1 },
{ 2, 2 },
{ 1, 1 },
{ 2, 2 },
{ 1, 1 },
{ 2, 2 },
{ 1, 1 },
{ 2, 2 },
{ 1, 0 },
{ 2, 0 },
{ 0, 1 },
{ 0, 2 },
{ 1, 0 },
{ 2, 0 },
{ 0, 1 },
{ 0, 2 },
{ 3, 3 },
{ 4, 4 },
{ 3, 3 },
{ 4, 4 },
{ 0, 0 },
{ 0, 0 },
{ 0, 57088 },
};
const track_descriptor gTrackDescriptors[142] = {
{ true, TRACK_SLOPE_DOWN_60, TRACK_BANK_NONE, TRACK_CURVE_NONE, TRACK_SLOPE_DOWN_60, TRACK_BANK_NONE, TrackElemType::DiagDown60 },
{ true, TRACK_SLOPE_DOWN_60, TRACK_BANK_NONE, TRACK_CURVE_NONE, TRACK_SLOPE_DOWN_25, TRACK_BANK_NONE, TrackElemType::DiagDown60ToDown25 },
{ true, TRACK_SLOPE_DOWN_60, TRACK_BANK_NONE, TRACK_CURVE_NONE, TRACK_SLOPE_NONE, TRACK_BANK_NONE, TrackElemType::DiagDown60ToFlat },
{ true, TRACK_SLOPE_DOWN_25, TRACK_BANK_NONE, TRACK_CURVE_NONE, TRACK_SLOPE_DOWN_60, TRACK_BANK_NONE, TrackElemType::DiagDown25ToDown60 },
{ true, TRACK_SLOPE_DOWN_25, TRACK_BANK_NONE, TRACK_CURVE_NONE, TRACK_SLOPE_DOWN_25, TRACK_BANK_NONE, TrackElemType::DiagDown25 },
{ true, TRACK_SLOPE_DOWN_25, TRACK_BANK_NONE, TRACK_CURVE_NONE, TRACK_SLOPE_NONE, TRACK_BANK_LEFT, TrackElemType::DiagDown25ToLeftBank },
{ true, TRACK_SLOPE_DOWN_25, TRACK_BANK_NONE, TRACK_CURVE_NONE, TRACK_SLOPE_NONE, TRACK_BANK_NONE, TrackElemType::DiagDown25ToFlat },
{ true, TRACK_SLOPE_DOWN_25, TRACK_BANK_NONE, TRACK_CURVE_NONE, TRACK_SLOPE_NONE, TRACK_BANK_RIGHT, TrackElemType::DiagDown25ToRightBank },
{ true, TRACK_SLOPE_NONE, TRACK_BANK_LEFT, TRACK_CURVE_LEFT_LARGE, TRACK_SLOPE_NONE, TRACK_BANK_LEFT, TrackElemType::LeftEighthBankToOrthogonal },
{ true, TRACK_SLOPE_NONE, TRACK_BANK_LEFT, TRACK_CURVE_NONE, TRACK_SLOPE_DOWN_25, TRACK_BANK_NONE, TrackElemType::DiagLeftBankToDown25 },
{ true, TRACK_SLOPE_NONE, TRACK_BANK_LEFT, TRACK_CURVE_NONE, TRACK_SLOPE_NONE, TRACK_BANK_LEFT, TrackElemType::DiagLeftBank },
{ true, TRACK_SLOPE_NONE, TRACK_BANK_LEFT, TRACK_CURVE_NONE, TRACK_SLOPE_NONE, TRACK_BANK_NONE, TrackElemType::DiagLeftBankToFlat },
{ true, TRACK_SLOPE_NONE, TRACK_BANK_LEFT, TRACK_CURVE_NONE, TRACK_SLOPE_UP_25, TRACK_BANK_NONE, TrackElemType::DiagLeftBankToUp25 },
{ true, TRACK_SLOPE_NONE, TRACK_BANK_NONE, TRACK_CURVE_LEFT_LARGE, TRACK_SLOPE_NONE, TRACK_BANK_NONE, TrackElemType::LeftEighthToOrthogonal },
{ true, TRACK_SLOPE_NONE, TRACK_BANK_NONE, TRACK_CURVE_NONE, TRACK_SLOPE_DOWN_60, TRACK_BANK_NONE, TrackElemType::DiagFlatToDown60 },
{ true, TRACK_SLOPE_NONE, TRACK_BANK_NONE, TRACK_CURVE_NONE, TRACK_SLOPE_DOWN_25, TRACK_BANK_NONE, TrackElemType::DiagFlatToDown25 },
{ true, TRACK_SLOPE_NONE, TRACK_BANK_NONE, TRACK_CURVE_NONE, TRACK_SLOPE_NONE, TRACK_BANK_LEFT, TrackElemType::DiagFlatToLeftBank },
{ true, TRACK_SLOPE_NONE, TRACK_BANK_NONE, TRACK_CURVE_NONE, TRACK_SLOPE_NONE, TRACK_BANK_NONE, TrackElemType::DiagFlat },
{ true, TRACK_SLOPE_NONE, TRACK_BANK_NONE, TRACK_CURVE_NONE, TRACK_SLOPE_NONE, TRACK_BANK_RIGHT, TrackElemType::DiagFlatToRightBank },
{ true, TRACK_SLOPE_NONE, TRACK_BANK_NONE, TRACK_CURVE_NONE, TRACK_SLOPE_UP_25, TRACK_BANK_NONE, TrackElemType::DiagFlatToUp25 },
{ true, TRACK_SLOPE_NONE, TRACK_BANK_NONE, TRACK_CURVE_NONE, TRACK_SLOPE_UP_60, TRACK_BANK_NONE, TrackElemType::DiagFlatToUp60 },
{ true, TRACK_SLOPE_NONE, TRACK_BANK_NONE, TRACK_CURVE_RIGHT_LARGE, TRACK_SLOPE_NONE, TRACK_BANK_NONE, TrackElemType::RightEighthToOrthogonal },
{ true, TRACK_SLOPE_NONE, TRACK_BANK_RIGHT, TRACK_CURVE_NONE, TRACK_SLOPE_DOWN_25, TRACK_BANK_NONE, TrackElemType::DiagRightBankToDown25 },
{ true, TRACK_SLOPE_NONE, TRACK_BANK_RIGHT, TRACK_CURVE_NONE, TRACK_SLOPE_NONE, TRACK_BANK_NONE, TrackElemType::DiagRightBankToFlat },
{ true, TRACK_SLOPE_NONE, TRACK_BANK_RIGHT, TRACK_CURVE_NONE, TRACK_SLOPE_NONE, TRACK_BANK_RIGHT, TrackElemType::DiagRightBank },
{ true, TRACK_SLOPE_NONE, TRACK_BANK_RIGHT, TRACK_CURVE_NONE, TRACK_SLOPE_UP_25, TRACK_BANK_NONE, TrackElemType::DiagRightBankToUp25 },
{ true, TRACK_SLOPE_NONE, TRACK_BANK_RIGHT, TRACK_CURVE_RIGHT_LARGE, TRACK_SLOPE_NONE, TRACK_BANK_RIGHT, TrackElemType::RightEighthBankToOrthogonal },
{ true, TRACK_SLOPE_UP_25, TRACK_BANK_NONE, TRACK_CURVE_NONE, TRACK_SLOPE_NONE, TRACK_BANK_LEFT, TrackElemType::DiagUp25ToLeftBank },
{ true, TRACK_SLOPE_UP_25, TRACK_BANK_NONE, TRACK_CURVE_NONE, TRACK_SLOPE_NONE, TRACK_BANK_NONE, TrackElemType::DiagUp25ToFlat },
{ true, TRACK_SLOPE_UP_25, TRACK_BANK_NONE, TRACK_CURVE_NONE, TRACK_SLOPE_NONE, TRACK_BANK_RIGHT, TrackElemType::DiagUp25ToRightBank },
{ true, TRACK_SLOPE_UP_25, TRACK_BANK_NONE, TRACK_CURVE_NONE, TRACK_SLOPE_UP_25, TRACK_BANK_NONE, TrackElemType::DiagUp25 },
{ true, TRACK_SLOPE_UP_25, TRACK_BANK_NONE, TRACK_CURVE_NONE, TRACK_SLOPE_UP_60, TRACK_BANK_NONE, TrackElemType::DiagUp25ToUp60 },
{ true, TRACK_SLOPE_UP_60, TRACK_BANK_NONE, TRACK_CURVE_NONE, TRACK_SLOPE_NONE, TRACK_BANK_NONE, TrackElemType::DiagUp60ToFlat },
{ true, TRACK_SLOPE_UP_60, TRACK_BANK_NONE, TRACK_CURVE_NONE, TRACK_SLOPE_UP_25, TRACK_BANK_NONE, TrackElemType::DiagUp60ToUp25 },
{ true, TRACK_SLOPE_UP_60, TRACK_BANK_NONE, TRACK_CURVE_NONE, TRACK_SLOPE_UP_60, TRACK_BANK_NONE, TrackElemType::DiagUp60 },
{ false, TRACK_SLOPE_DOWN_90, TRACK_BANK_NONE, TRACK_CURVE_LEFT_SMALL, TRACK_SLOPE_DOWN_90, TRACK_BANK_NONE, TrackElemType::LeftQuarterTurn1TileDown90 },
{ false, TRACK_SLOPE_DOWN_90, TRACK_BANK_NONE, TRACK_CURVE_NONE, TRACK_SLOPE_DOWN_90, TRACK_BANK_NONE, TrackElemType::Down90 },
{ false, TRACK_SLOPE_DOWN_90, TRACK_BANK_NONE, TRACK_CURVE_NONE, TRACK_SLOPE_DOWN_60, TRACK_BANK_NONE, TrackElemType::Down90ToDown60 },
{ false, TRACK_SLOPE_DOWN_90, TRACK_BANK_NONE, TRACK_CURVE_RIGHT_SMALL, TRACK_SLOPE_DOWN_90, TRACK_BANK_NONE, TrackElemType::RightQuarterTurn1TileDown90 },
{ false, TRACK_SLOPE_DOWN_60, TRACK_BANK_NONE, TRACK_CURVE_LEFT_SMALL, TRACK_SLOPE_DOWN_60, TRACK_BANK_NONE, TrackElemType::LeftQuarterTurn1TileDown60 },
{ false, TRACK_SLOPE_DOWN_60, TRACK_BANK_NONE, TRACK_CURVE_NONE, TRACK_SLOPE_DOWN_90, TRACK_BANK_NONE, TrackElemType::Down60ToDown90 },
{ false, TRACK_SLOPE_DOWN_60, TRACK_BANK_NONE, TRACK_CURVE_NONE, TRACK_SLOPE_DOWN_60, TRACK_BANK_NONE, TrackElemType::Down60 },
{ false, TRACK_SLOPE_DOWN_60, TRACK_BANK_NONE, TRACK_CURVE_NONE, TRACK_SLOPE_DOWN_25, TRACK_BANK_NONE, TrackElemType::Down60ToDown25 },
{ false, TRACK_SLOPE_DOWN_60, TRACK_BANK_NONE, TRACK_CURVE_NONE, TRACK_SLOPE_NONE, TRACK_BANK_NONE, TrackElemType::Down60ToFlat },
{ false, TRACK_SLOPE_DOWN_60, TRACK_BANK_NONE, TRACK_CURVE_RIGHT_SMALL, TRACK_SLOPE_DOWN_60, TRACK_BANK_NONE, TrackElemType::RightQuarterTurn1TileDown60 },
{ false, TRACK_SLOPE_DOWN_25, TRACK_BANK_LEFT, TRACK_CURVE_LEFT_SMALL, TRACK_SLOPE_DOWN_25, TRACK_BANK_LEFT, TrackElemType::LeftBankedQuarterTurn3TileDown25 },
{ false, TRACK_SLOPE_DOWN_25, TRACK_BANK_LEFT, TRACK_CURVE_LEFT, TRACK_SLOPE_DOWN_25, TRACK_BANK_LEFT, TrackElemType::LeftBankedQuarterTurn5TileDown25 },
{ false, TRACK_SLOPE_DOWN_25, TRACK_BANK_LEFT, TRACK_CURVE_NONE, TRACK_SLOPE_DOWN_25, TRACK_BANK_LEFT, TrackElemType::Down25LeftBanked },
{ false, TRACK_SLOPE_DOWN_25, TRACK_BANK_LEFT, TRACK_CURVE_NONE, TRACK_SLOPE_DOWN_25, TRACK_BANK_NONE, TrackElemType::LeftBankedDown25ToDown25 },
{ false, TRACK_SLOPE_DOWN_25, TRACK_BANK_LEFT, TRACK_CURVE_NONE, TRACK_SLOPE_NONE, TRACK_BANK_LEFT, TrackElemType::LeftBankedDown25ToLeftBankedFlat },
{ false, TRACK_SLOPE_DOWN_25, TRACK_BANK_LEFT, TRACK_CURVE_NONE, TRACK_SLOPE_NONE, TRACK_BANK_NONE, TrackElemType::LeftBankedDown25ToFlat },
{ false, TRACK_SLOPE_DOWN_25, TRACK_BANK_NONE, TRACK_CURVE_LEFT_SMALL, TRACK_SLOPE_DOWN_25, TRACK_BANK_NONE, TrackElemType::LeftQuarterTurn3TilesDown25 },
{ false, TRACK_SLOPE_DOWN_25, TRACK_BANK_NONE, TRACK_CURVE_LEFT_SMALL, TRACK_SLOPE_NONE, TRACK_BANK_LEFT, TrackElemType::LeftQuarterTurn3TilesDown25ToLeftBank },
{ false, TRACK_SLOPE_DOWN_25, TRACK_BANK_NONE, TRACK_CURVE_LEFT, TRACK_SLOPE_DOWN_25, TRACK_BANK_NONE, TrackElemType::LeftQuarterTurn5TilesDown25 },
{ false, TRACK_SLOPE_DOWN_25, TRACK_BANK_NONE, TRACK_CURVE_NONE, TRACK_SLOPE_DOWN_60, TRACK_BANK_NONE, TrackElemType::Down25ToDown60 },
{ false, TRACK_SLOPE_DOWN_25, TRACK_BANK_NONE, TRACK_CURVE_NONE, TRACK_SLOPE_DOWN_25, TRACK_BANK_LEFT, TrackElemType::Down25ToLeftBankedDown25 },
{ false, TRACK_SLOPE_DOWN_25, TRACK_BANK_NONE, TRACK_CURVE_NONE, TRACK_SLOPE_DOWN_25, TRACK_BANK_NONE, TrackElemType::Down25 },
{ false, TRACK_SLOPE_DOWN_25, TRACK_BANK_NONE, TRACK_CURVE_NONE, TRACK_SLOPE_DOWN_25, TRACK_BANK_RIGHT, TrackElemType::Down25ToRightBankedDown25 },
{ false, TRACK_SLOPE_DOWN_25, TRACK_BANK_NONE, TRACK_CURVE_NONE, TRACK_SLOPE_NONE, TRACK_BANK_LEFT, TrackElemType::Down25ToLeftBank },
{ false, TRACK_SLOPE_DOWN_25, TRACK_BANK_NONE, TRACK_CURVE_NONE, TRACK_SLOPE_NONE, TRACK_BANK_NONE, TrackElemType::Down25ToFlat },
{ false, TRACK_SLOPE_DOWN_25, TRACK_BANK_NONE, TRACK_CURVE_NONE, TRACK_SLOPE_NONE, TRACK_BANK_RIGHT, TrackElemType::Down25ToRightBank },
{ false, TRACK_SLOPE_DOWN_25, TRACK_BANK_NONE, TRACK_CURVE_RIGHT, TRACK_SLOPE_DOWN_25, TRACK_BANK_NONE, TrackElemType::RightQuarterTurn5TilesDown25 },
{ false, TRACK_SLOPE_DOWN_25, TRACK_BANK_NONE, TRACK_CURVE_RIGHT_SMALL, TRACK_SLOPE_NONE, TRACK_BANK_RIGHT, TrackElemType::RightQuarterTurn3TilesDown25ToRightBank },
{ false, TRACK_SLOPE_DOWN_25, TRACK_BANK_NONE, TRACK_CURVE_RIGHT_SMALL, TRACK_SLOPE_DOWN_25, TRACK_BANK_NONE, TrackElemType::RightQuarterTurn3TilesDown25 },
{ false, TRACK_SLOPE_DOWN_25, TRACK_BANK_RIGHT, TRACK_CURVE_NONE, TRACK_SLOPE_DOWN_25, TRACK_BANK_NONE, TrackElemType::RightBankedDown25ToDown25 },
{ false, TRACK_SLOPE_DOWN_25, TRACK_BANK_RIGHT, TRACK_CURVE_NONE, TRACK_SLOPE_DOWN_25, TRACK_BANK_RIGHT, TrackElemType::Down25RightBanked },
{ false, TRACK_SLOPE_DOWN_25, TRACK_BANK_RIGHT, TRACK_CURVE_NONE, TRACK_SLOPE_NONE, TRACK_BANK_NONE, TrackElemType::RightBankedDown25ToFlat },
{ false, TRACK_SLOPE_DOWN_25, TRACK_BANK_RIGHT, TRACK_CURVE_NONE, TRACK_SLOPE_NONE, TRACK_BANK_RIGHT, TrackElemType::RightBankedDown25ToRightBankedFlat },
{ false, TRACK_SLOPE_DOWN_25, TRACK_BANK_RIGHT, TRACK_CURVE_RIGHT, TRACK_SLOPE_DOWN_25, TRACK_BANK_RIGHT, TrackElemType::RightBankedQuarterTurn5TileDown25 },
{ false, TRACK_SLOPE_DOWN_25, TRACK_BANK_RIGHT, TRACK_CURVE_RIGHT_SMALL, TRACK_SLOPE_DOWN_25, TRACK_BANK_RIGHT, TrackElemType::RightBankedQuarterTurn3TileDown25 },
{ false, TRACK_SLOPE_NONE, TRACK_BANK_LEFT, TRACK_CURVE_LEFT_SMALL, TRACK_SLOPE_NONE, TRACK_BANK_LEFT, TrackElemType::LeftBankedQuarterTurn3Tiles },
{ false, TRACK_SLOPE_NONE, TRACK_BANK_LEFT, TRACK_CURVE_LEFT_SMALL, TRACK_SLOPE_UP_25, TRACK_BANK_NONE, TrackElemType::LeftBankToLeftQuarterTurn3TilesUp25 },
{ false, TRACK_SLOPE_NONE, TRACK_BANK_LEFT, TRACK_CURVE_LEFT, TRACK_SLOPE_NONE, TRACK_BANK_LEFT, TrackElemType::BankedLeftQuarterTurn5Tiles },
{ false, TRACK_SLOPE_NONE, TRACK_BANK_LEFT, TRACK_CURVE_LEFT_LARGE, TRACK_SLOPE_NONE, TRACK_BANK_LEFT, TrackElemType::LeftEighthBankToDiag },
{ false, TRACK_SLOPE_NONE, TRACK_BANK_LEFT, TRACK_CURVE_NONE, TRACK_SLOPE_DOWN_25, TRACK_BANK_LEFT, TrackElemType::LeftBankedFlatToLeftBankedDown25 },
{ false, TRACK_SLOPE_NONE, TRACK_BANK_LEFT, TRACK_CURVE_NONE, TRACK_SLOPE_DOWN_25, TRACK_BANK_NONE, TrackElemType::LeftBankToDown25 },
{ false, TRACK_SLOPE_NONE, TRACK_BANK_LEFT, TRACK_CURVE_NONE, TRACK_SLOPE_NONE, TRACK_BANK_LEFT, TrackElemType::LeftBank },
{ false, TRACK_SLOPE_NONE, TRACK_BANK_LEFT, TRACK_CURVE_NONE, TRACK_SLOPE_NONE, TRACK_BANK_NONE, TrackElemType::LeftBankToFlat },
{ false, TRACK_SLOPE_NONE, TRACK_BANK_LEFT, TRACK_CURVE_NONE, TRACK_SLOPE_UP_25, TRACK_BANK_LEFT, TrackElemType::LeftBankedFlatToLeftBankedUp25 },
{ false, TRACK_SLOPE_NONE, TRACK_BANK_LEFT, TRACK_CURVE_NONE, TRACK_SLOPE_UP_25, TRACK_BANK_NONE, TrackElemType::LeftBankToUp25 },
{ false, TRACK_SLOPE_NONE, TRACK_BANK_NONE, TRACK_CURVE_LEFT_SMALL, TRACK_SLOPE_NONE, TRACK_BANK_NONE, TrackElemType::LeftQuarterTurn3Tiles },
{ false, TRACK_SLOPE_NONE, TRACK_BANK_NONE, TRACK_CURVE_LEFT, TRACK_SLOPE_NONE, TRACK_BANK_NONE, TrackElemType::LeftQuarterTurn5Tiles },
{ false, TRACK_SLOPE_NONE, TRACK_BANK_NONE, TRACK_CURVE_LEFT_LARGE, TRACK_SLOPE_NONE, TRACK_BANK_NONE, TrackElemType::LeftEighthToDiag },
{ false, TRACK_SLOPE_NONE, TRACK_BANK_NONE, TRACK_CURVE_NONE, TRACK_SLOPE_DOWN_60, TRACK_BANK_NONE, TrackElemType::FlatToDown60 },
{ false, TRACK_SLOPE_NONE, TRACK_BANK_NONE, TRACK_CURVE_NONE, TRACK_SLOPE_DOWN_25, TRACK_BANK_LEFT, TrackElemType::FlatToLeftBankedDown25 },
{ false, TRACK_SLOPE_NONE, TRACK_BANK_NONE, TRACK_CURVE_NONE, TRACK_SLOPE_DOWN_25, TRACK_BANK_NONE, TrackElemType::FlatToDown25 },
{ false, TRACK_SLOPE_NONE, TRACK_BANK_NONE, TRACK_CURVE_NONE, TRACK_SLOPE_DOWN_25, TRACK_BANK_RIGHT, TrackElemType::FlatToRightBankedDown25 },
{ false, TRACK_SLOPE_NONE, TRACK_BANK_NONE, TRACK_CURVE_NONE, TRACK_SLOPE_NONE, TRACK_BANK_LEFT, TrackElemType::FlatToLeftBank },
{ false, TRACK_SLOPE_NONE, TRACK_BANK_NONE, TRACK_CURVE_NONE, TRACK_SLOPE_NONE, TRACK_BANK_NONE, TrackElemType::Flat },
{ false, TRACK_SLOPE_NONE, TRACK_BANK_NONE, TRACK_CURVE_LEFT_VERY_SMALL, TRACK_SLOPE_NONE, TRACK_BANK_NONE, TrackElemType::LeftQuarterTurn1Tile },
{ false, TRACK_SLOPE_NONE, TRACK_BANK_NONE, TRACK_CURVE_RIGHT_VERY_SMALL, TRACK_SLOPE_NONE, TRACK_BANK_NONE, TrackElemType::RightQuarterTurn1Tile },
{ false, TRACK_SLOPE_NONE, TRACK_BANK_NONE, TRACK_CURVE_NONE, TRACK_SLOPE_NONE, TRACK_BANK_RIGHT, TrackElemType::FlatToRightBank },
{ false, TRACK_SLOPE_NONE, TRACK_BANK_NONE, TRACK_CURVE_NONE, TRACK_SLOPE_UP_25, TRACK_BANK_LEFT, TrackElemType::FlatToLeftBankedUp25 },
{ false, TRACK_SLOPE_NONE, TRACK_BANK_NONE, TRACK_CURVE_NONE, TRACK_SLOPE_UP_25, TRACK_BANK_NONE, TrackElemType::FlatToUp25 },
{ false, TRACK_SLOPE_NONE, TRACK_BANK_NONE, TRACK_CURVE_NONE, TRACK_SLOPE_UP_25, TRACK_BANK_RIGHT, TrackElemType::FlatToRightBankedUp25 },
{ false, TRACK_SLOPE_NONE, TRACK_BANK_NONE, TRACK_CURVE_NONE, TRACK_SLOPE_UP_60, TRACK_BANK_NONE, TrackElemType::FlatToUp60 },
{ false, TRACK_SLOPE_NONE, TRACK_BANK_NONE, TRACK_CURVE_RIGHT_LARGE, TRACK_SLOPE_NONE, TRACK_BANK_NONE, TrackElemType::RightEighthToDiag },
{ false, TRACK_SLOPE_NONE, TRACK_BANK_NONE, TRACK_CURVE_RIGHT, TRACK_SLOPE_NONE, TRACK_BANK_NONE, TrackElemType::RightQuarterTurn5Tiles },
{ false, TRACK_SLOPE_NONE, TRACK_BANK_NONE, TRACK_CURVE_RIGHT_SMALL, TRACK_SLOPE_NONE, TRACK_BANK_NONE, TrackElemType::RightQuarterTurn3Tiles },
{ false, TRACK_SLOPE_NONE, TRACK_BANK_RIGHT, TRACK_CURVE_NONE, TRACK_SLOPE_DOWN_25, TRACK_BANK_NONE, TrackElemType::RightBankToDown25 },
{ false, TRACK_SLOPE_NONE, TRACK_BANK_RIGHT, TRACK_CURVE_NONE, TRACK_SLOPE_DOWN_25, TRACK_BANK_RIGHT, TrackElemType::RightBankedFlatToRightBankedDown25 },
{ false, TRACK_SLOPE_NONE, TRACK_BANK_RIGHT, TRACK_CURVE_NONE, TRACK_SLOPE_NONE, TRACK_BANK_NONE, TrackElemType::RightBankToFlat },
{ false, TRACK_SLOPE_NONE, TRACK_BANK_RIGHT, TRACK_CURVE_NONE, TRACK_SLOPE_NONE, TRACK_BANK_RIGHT, TrackElemType::RightBank },
{ false, TRACK_SLOPE_NONE, TRACK_BANK_RIGHT, TRACK_CURVE_NONE, TRACK_SLOPE_UP_25, TRACK_BANK_NONE, TrackElemType::RightBankToUp25 },
{ false, TRACK_SLOPE_NONE, TRACK_BANK_RIGHT, TRACK_CURVE_NONE, TRACK_SLOPE_UP_25, TRACK_BANK_RIGHT, TrackElemType::RightBankedFlatToRightBankedUp25 },
{ false, TRACK_SLOPE_NONE, TRACK_BANK_RIGHT, TRACK_CURVE_RIGHT_LARGE, TRACK_SLOPE_NONE, TRACK_BANK_RIGHT, TrackElemType::RightEighthBankToDiag },
{ false, TRACK_SLOPE_NONE, TRACK_BANK_RIGHT, TRACK_CURVE_RIGHT, TRACK_SLOPE_NONE, TRACK_BANK_RIGHT, TrackElemType::BankedRightQuarterTurn5Tiles },
{ false, TRACK_SLOPE_NONE, TRACK_BANK_RIGHT, TRACK_CURVE_RIGHT_SMALL, TRACK_SLOPE_NONE, TRACK_BANK_RIGHT, TrackElemType::RightBankedQuarterTurn3Tiles },
{ false, TRACK_SLOPE_NONE, TRACK_BANK_RIGHT, TRACK_CURVE_RIGHT_SMALL, TRACK_SLOPE_UP_25, TRACK_BANK_NONE, TrackElemType::RightBankToRightQuarterTurn3TilesUp25 },
{ false, TRACK_SLOPE_UP_25, TRACK_BANK_LEFT, TRACK_CURVE_LEFT_SMALL, TRACK_SLOPE_UP_25, TRACK_BANK_LEFT, TrackElemType::LeftBankedQuarterTurn3TileUp25 },
{ false, TRACK_SLOPE_UP_25, TRACK_BANK_LEFT, TRACK_CURVE_LEFT, TRACK_SLOPE_UP_25, TRACK_BANK_LEFT, TrackElemType::LeftBankedQuarterTurn5TileUp25 },
{ false, TRACK_SLOPE_UP_25, TRACK_BANK_LEFT, TRACK_CURVE_NONE, TRACK_SLOPE_NONE, TRACK_BANK_LEFT, TrackElemType::LeftBankedUp25ToLeftBankedFlat },
{ false, TRACK_SLOPE_UP_25, TRACK_BANK_LEFT, TRACK_CURVE_NONE, TRACK_SLOPE_NONE, TRACK_BANK_NONE, TrackElemType::LeftBankedUp25ToFlat },
{ false, TRACK_SLOPE_UP_25, TRACK_BANK_LEFT, TRACK_CURVE_NONE, TRACK_SLOPE_UP_25, TRACK_BANK_LEFT, TrackElemType::Up25LeftBanked },
{ false, TRACK_SLOPE_UP_25, TRACK_BANK_LEFT, TRACK_CURVE_NONE, TRACK_SLOPE_UP_25, TRACK_BANK_NONE, TrackElemType::LeftBankedUp25ToUp25 },
{ false, TRACK_SLOPE_UP_25, TRACK_BANK_NONE, TRACK_CURVE_LEFT_SMALL, TRACK_SLOPE_UP_25, TRACK_BANK_NONE, TrackElemType::LeftQuarterTurn3TilesUp25 },
{ false, TRACK_SLOPE_UP_25, TRACK_BANK_NONE, TRACK_CURVE_LEFT, TRACK_SLOPE_UP_25, TRACK_BANK_NONE, TrackElemType::LeftQuarterTurn5TilesUp25 },
{ false, TRACK_SLOPE_UP_25, TRACK_BANK_NONE, TRACK_CURVE_NONE, TRACK_SLOPE_NONE, TRACK_BANK_LEFT, TrackElemType::Up25ToLeftBank },
{ false, TRACK_SLOPE_UP_25, TRACK_BANK_NONE, TRACK_CURVE_NONE, TRACK_SLOPE_NONE, TRACK_BANK_NONE, TrackElemType::Up25ToFlat },
{ false, TRACK_SLOPE_UP_25, TRACK_BANK_NONE, TRACK_CURVE_NONE, TRACK_SLOPE_NONE, TRACK_BANK_RIGHT, TrackElemType::Up25ToRightBank },
{ false, TRACK_SLOPE_UP_25, TRACK_BANK_NONE, TRACK_CURVE_NONE, TRACK_SLOPE_UP_25, TRACK_BANK_LEFT, TrackElemType::Up25ToLeftBankedUp25 },
{ false, TRACK_SLOPE_UP_25, TRACK_BANK_NONE, TRACK_CURVE_NONE, TRACK_SLOPE_UP_25, TRACK_BANK_NONE, TrackElemType::Up25 },
{ false, TRACK_SLOPE_UP_25, TRACK_BANK_NONE, TRACK_CURVE_NONE, TRACK_SLOPE_UP_25, TRACK_BANK_RIGHT, TrackElemType::Up25ToRightBankedUp25 },
{ false, TRACK_SLOPE_UP_25, TRACK_BANK_NONE, TRACK_CURVE_NONE, TRACK_SLOPE_UP_60, TRACK_BANK_NONE, TrackElemType::Up25ToUp60 },
{ false, TRACK_SLOPE_UP_25, TRACK_BANK_NONE, TRACK_CURVE_RIGHT, TRACK_SLOPE_UP_25, TRACK_BANK_NONE, TrackElemType::RightQuarterTurn5TilesUp25 },
{ false, TRACK_SLOPE_UP_25, TRACK_BANK_NONE, TRACK_CURVE_RIGHT_SMALL, TRACK_SLOPE_UP_25, TRACK_BANK_NONE, TrackElemType::RightQuarterTurn3TilesUp25 },
{ false, TRACK_SLOPE_UP_25, TRACK_BANK_RIGHT, TRACK_CURVE_NONE, TRACK_SLOPE_NONE, TRACK_BANK_NONE, TrackElemType::RightBankedUp25ToFlat },
{ false, TRACK_SLOPE_UP_25, TRACK_BANK_RIGHT, TRACK_CURVE_NONE, TRACK_SLOPE_NONE, TRACK_BANK_RIGHT, TrackElemType::RightBankedUp25ToRightBankedFlat },
{ false, TRACK_SLOPE_UP_25, TRACK_BANK_RIGHT, TRACK_CURVE_NONE, TRACK_SLOPE_UP_25, TRACK_BANK_NONE, TrackElemType::RightBankedUp25ToUp25 },
{ false, TRACK_SLOPE_UP_25, TRACK_BANK_RIGHT, TRACK_CURVE_NONE, TRACK_SLOPE_UP_25, TRACK_BANK_RIGHT, TrackElemType::Up25RightBanked },
{ false, TRACK_SLOPE_UP_25, TRACK_BANK_RIGHT, TRACK_CURVE_RIGHT, TRACK_SLOPE_UP_25, TRACK_BANK_RIGHT, TrackElemType::RightBankedQuarterTurn5TileUp25 },
{ false, TRACK_SLOPE_UP_25, TRACK_BANK_RIGHT, TRACK_CURVE_RIGHT_SMALL, TRACK_SLOPE_UP_25, TRACK_BANK_RIGHT, TrackElemType::RightBankedQuarterTurn3TileUp25 },
{ false, TRACK_SLOPE_UP_60, TRACK_BANK_NONE, TRACK_CURVE_LEFT_SMALL, TRACK_SLOPE_UP_60, TRACK_BANK_NONE, TrackElemType::LeftQuarterTurn1TileUp60 },
{ false, TRACK_SLOPE_UP_60, TRACK_BANK_NONE, TRACK_CURVE_NONE, TRACK_SLOPE_NONE, TRACK_BANK_NONE, TrackElemType::Up60ToFlat },
{ false, TRACK_SLOPE_UP_60, TRACK_BANK_NONE, TRACK_CURVE_NONE, TRACK_SLOPE_UP_25, TRACK_BANK_NONE, TrackElemType::Up60ToUp25 },
{ false, TRACK_SLOPE_UP_60, TRACK_BANK_NONE, TRACK_CURVE_NONE, TRACK_SLOPE_UP_60, TRACK_BANK_NONE, TrackElemType::Up60 },
{ false, TRACK_SLOPE_UP_60, TRACK_BANK_NONE, TRACK_CURVE_NONE, TRACK_SLOPE_UP_90, TRACK_BANK_NONE, TrackElemType::Up60ToUp90 },
{ false, TRACK_SLOPE_UP_60, TRACK_BANK_NONE, TRACK_CURVE_RIGHT_SMALL, TRACK_SLOPE_UP_60, TRACK_BANK_NONE, TrackElemType::RightQuarterTurn1TileUp60 },
{ false, TRACK_SLOPE_UP_90, TRACK_BANK_NONE, TRACK_CURVE_LEFT_SMALL, TRACK_SLOPE_UP_90, TRACK_BANK_NONE, TrackElemType::LeftQuarterTurn1TileUp90 },
{ false, TRACK_SLOPE_UP_90, TRACK_BANK_NONE, TRACK_CURVE_NONE, TRACK_SLOPE_UP_60, TRACK_BANK_NONE, TrackElemType::Up90ToUp60 },
{ false, TRACK_SLOPE_UP_90, TRACK_BANK_NONE, TRACK_CURVE_NONE, TRACK_SLOPE_UP_90, TRACK_BANK_NONE, TrackElemType::Up90 },
{ false, TRACK_SLOPE_UP_90, TRACK_BANK_NONE, TRACK_CURVE_RIGHT_SMALL, TRACK_SLOPE_UP_90, TRACK_BANK_NONE, TrackElemType::RightQuarterTurn1TileUp90 },
};
/** rct2: 0x00993D1C */
const int16_t AlternativeTrackTypes[TrackElemType::Count] = {
TrackElemType::FlatCovered, // TrackElemType::Flat
-1,
-1,
-1,
TrackElemType::Up25Covered, // TrackElemType::Up25
TrackElemType::Up60Covered, // TrackElemType::Up60
TrackElemType::FlatToUp25Covered, // TrackElemType::FlatToUp25
TrackElemType::Up25ToUp60Covered, // TrackElemType::Up25ToUp60
TrackElemType::Up60ToUp25Covered, // TrackElemType::Up60ToUp25
TrackElemType::Up25ToFlatCovered, // TrackElemType::Up25ToFlat
TrackElemType::Down25Covered, // TrackElemType::Down25
TrackElemType::Down60Covered, // TrackElemType::Down60
TrackElemType::FlatToDown25Covered, // TrackElemType::FlatToDown25
TrackElemType::Down25ToDown60Covered, // TrackElemType::Down25ToDown60
TrackElemType::Down60ToDown25Covered, // TrackElemType::Down60ToDown25
TrackElemType::Down25ToFlatCovered, // TrackElemType::Down25ToFlat
TrackElemType::LeftQuarterTurn5TilesCovered, // TrackElemType::LeftQuarterTurn5Tiles
TrackElemType::RightQuarterTurn5TilesCovered, // TrackElemType::RightQuarterTurn5Tiles
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
TrackElemType::SBendLeftCovered, // TrackElemType::SBendLeft
TrackElemType::SBendRightCovered, // TrackElemType::SBendRight
-1,
-1,
TrackElemType::LeftQuarterTurn3TilesCovered, // TrackElemType::LeftQuarterTurn3Tiles
TrackElemType::RightQuarterTurn3TilesCovered, // TrackElemType::RightQuarterTurn3Tiles
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
};
/** rct2: 0x0099DA34 */
const money32 TrackPricing[] = {
65536, // TrackElemType::Flat
98304, // TrackElemType::EndStation
98304, // TrackElemType::BeginStation
98304, // TrackElemType::MiddleStation
79872, // TrackElemType::Up25
114688, // TrackElemType::Up60
73728, // TrackElemType::FlatToUp25
96256, // TrackElemType::Up25ToUp60
96256, // TrackElemType::Up60ToUp25
73728, // TrackElemType::Up25ToFlat
79872, // TrackElemType::Down25
114688, // TrackElemType::Down60
73728, // TrackElemType::FlatToDown25
96256, // TrackElemType::Down25ToDown60
96256, // TrackElemType::Down60ToDown25
73728, // TrackElemType::Down25ToFlat
257359, // TrackElemType::LeftQuarterTurn5Tiles
257359, // TrackElemType::RightQuarterTurn5Tiles
69632, // TrackElemType::FlatToLeftBank
69632, // TrackElemType::FlatToRightBank
69632, // TrackElemType::LeftBankToFlat
69632, // TrackElemType::RightBankToFlat
273443, // TrackElemType::BankedLeftQuarterTurn5Tiles
273443, // TrackElemType::BankedRightQuarterTurn5Tiles
78336, // TrackElemType::LeftBankToUp25
78336, // TrackElemType::RightBankToUp25
78336, // TrackElemType::Up25ToLeftBank
78336, // TrackElemType::Up25ToRightBank
78336, // TrackElemType::LeftBankToDown25
78336, // TrackElemType::RightBankToDown25
78336, // TrackElemType::Down25ToLeftBank
78336, // TrackElemType::Down25ToRightBank
69632, // TrackElemType::LeftBank
69632, // TrackElemType::RightBank
313656, // TrackElemType::LeftQuarterTurn5TilesUp25
313656, // TrackElemType::RightQuarterTurn5TilesUp25
313656, // TrackElemType::LeftQuarterTurn5TilesDown25
313656, // TrackElemType::RightQuarterTurn5TilesDown25
229376, // TrackElemType::SBendLeft
229376, // TrackElemType::SBendRight
491520, // TrackElemType::LeftVerticalLoop
491520, // TrackElemType::RightVerticalLoop
154415, // TrackElemType::LeftQuarterTurn3Tiles
154415, // TrackElemType::RightQuarterTurn3Tiles
164065, // TrackElemType::LeftBankedQuarterTurn3Tiles
164065, // TrackElemType::RightBankedQuarterTurn3Tiles
270226, // TrackElemType::LeftQuarterTurn3TilesUp25
270226, // TrackElemType::RightQuarterTurn3TilesUp25
270226, // TrackElemType::LeftQuarterTurn3TilesDown25
270226, // TrackElemType::RightQuarterTurn3TilesDown25
51471, // TrackElemType::LeftQuarterTurn1Tile
51471, // TrackElemType::RightQuarterTurn1Tile
212992, // TrackElemType::LeftTwistDownToUp
212992, // TrackElemType::RightTwistDownToUp
212992, // TrackElemType::LeftTwistUpToDown
212992, // TrackElemType::RightTwistUpToDown
294912, // TrackElemType::HalfLoopUp
294912, // TrackElemType::HalfLoopDown
229376, // TrackElemType::LeftCorkscrewUp
229376, // TrackElemType::RightCorkscrewUp
229376, // TrackElemType::LeftCorkscrewDown
229376, // TrackElemType::RightCorkscrewDown
98304, // TrackElemType::FlatToUp60
98304, // TrackElemType::Up60ToFlat
98304, // TrackElemType::FlatToDown60
98304, // TrackElemType::Down60ToFlat
524288, // TrackElemType::TowerBase
65536, // TrackElemType::TowerSection
69632, // TrackElemType::FlatCovered
83968, // TrackElemType::Up25Covered
118784, // TrackElemType::Up60Covered
77824, // TrackElemType::FlatToUp25Covered
100352, // TrackElemType::Up25ToUp60Covered
100352, // TrackElemType::Up60ToUp25Covered
77824, // TrackElemType::Up25ToFlatCovered
83968, // TrackElemType::Down25Covered
118784, // TrackElemType::Down60Covered
77824, // TrackElemType::FlatToDown25Covered
100352, // TrackElemType::Down25ToDown60Covered
100352, // TrackElemType::Down60ToDown25Covered
77824, // TrackElemType::Down25ToFlatCovered
261455, // TrackElemType::LeftQuarterTurn5TilesCovered
261455, // TrackElemType::RightQuarterTurn5TilesCovered
233472, // TrackElemType::SBendLeftCovered
233472, // TrackElemType::SBendRightCovered
158511, // TrackElemType::LeftQuarterTurn3TilesCovered
158511, // TrackElemType::RightQuarterTurn3TilesCovered
328192, // TrackElemType::LeftHalfBankedHelixUpSmall
328192, // TrackElemType::RightHalfBankedHelixUpSmall
328192, // TrackElemType::LeftHalfBankedHelixDownSmall
328192, // TrackElemType::RightHalfBankedHelixDownSmall
547072, // TrackElemType::LeftHalfBankedHelixUpLarge
547072, // TrackElemType::RightHalfBankedHelixUpLarge
547072, // TrackElemType::LeftHalfBankedHelixDownLarge
547072, // TrackElemType::RightHalfBankedHelixDownLarge
126976, // TrackElemType::LeftQuarterTurn1TileUp60
126976, // TrackElemType::RightQuarterTurn1TileUp60
126976, // TrackElemType::LeftQuarterTurn1TileDown60
126976, // TrackElemType::RightQuarterTurn1TileDown60
90112, // TrackElemType::Brakes
77824, // TrackElemType::RotationControlToggle
65536, // TrackElemType::InvertedUp90ToFlatQuarterLoopAlias / Maze
273539, // TrackElemType::LeftQuarterBankedHelixLargeUp
273539, // TrackElemType::RightQuarterBankedHelixLargeUp
273539, // TrackElemType::LeftQuarterBankedHelixLargeDown
273539, // TrackElemType::RightQuarterBankedHelixLargeDown
273539, // TrackElemType::LeftQuarterHelixLargeUp
273539, // TrackElemType::RightQuarterHelixLargeUp
273539, // TrackElemType::LeftQuarterHelixLargeDown
273539, // TrackElemType::RightQuarterHelixLargeDown
83968, // TrackElemType::Up25LeftBanked
83968, // TrackElemType::Up25RightBanked
143360, // TrackElemType::Waterfall
118784, // TrackElemType::Rapids
196608, // TrackElemType::OnRidePhoto
83968, // TrackElemType::Down25LeftBanked
83968, // TrackElemType::Down25RightBanked
393216, // TrackElemType::Watersplash
376832, // TrackElemType::FlatToUp60LongBase
376832, // TrackElemType::Up60ToFlatLongBase
126976, // TrackElemType::Whirlpool
376832, // TrackElemType::Down60ToFlatLongBase
376832, // TrackElemType::FlatToDown60LongBase
643072, // TrackElemType::CableLiftHill
491520, // TrackElemType::ReverseFreefallSlope
65536, // TrackElemType::ReverseFreefallVertical
69632, // TrackElemType::Up90
69632, // TrackElemType::Down90
114688, // TrackElemType::Up60ToUp90
114688, // TrackElemType::Down90ToDown60
114688, // TrackElemType::Up90ToUp60
114688, // TrackElemType::Down60ToDown90
147456, // TrackElemType::BrakeForDrop
180151, // TrackElemType::LeftEighthToDiag
180151, // TrackElemType::RightEighthToDiag
180151, // TrackElemType::LeftEighthToOrthogonal
180151, // TrackElemType::RightEighthToOrthogonal
190960, // TrackElemType::LeftEighthBankToDiag
190960, // TrackElemType::RightEighthBankToDiag
190960, // TrackElemType::LeftEighthBankToOrthogonal
190960, // TrackElemType::RightEighthBankToOrthogonal
92681, // TrackElemType::DiagFlat
111820, // TrackElemType::DiagUp25
147456, // TrackElemType::DiagUp60
102400, // TrackElemType::DiagFlatToUp25
129024, // TrackElemType::DiagUp25ToUp60
129024, // TrackElemType::DiagUp60ToUp25
102400, // TrackElemType::DiagUp25ToFlat
111820, // TrackElemType::DiagDown25
147456, // TrackElemType::DiagDown60
102400, // TrackElemType::DiagFlatToDown25
129024, // TrackElemType::DiagDown25ToDown60
129024, // TrackElemType::DiagDown60ToDown25
102400, // TrackElemType::DiagDown25ToFlat
107008, // TrackElemType::DiagFlatToUp60
107008, // TrackElemType::DiagUp60ToFlat
107008, // TrackElemType::DiagFlatToDown60
107008, // TrackElemType::DiagDown60ToFlat
96777, // TrackElemType::DiagFlatToLeftBank
96777, // TrackElemType::DiagFlatToRightBank
96777, // TrackElemType::DiagLeftBankToFlat
96777, // TrackElemType::DiagRightBankToFlat
106496, // TrackElemType::DiagLeftBankToUp25
106496, // TrackElemType::DiagRightBankToUp25
106496, // TrackElemType::DiagUp25ToLeftBank
106496, // TrackElemType::DiagUp25ToRightBank
106496, // TrackElemType::DiagLeftBankToDown25
106496, // TrackElemType::DiagRightBankToDown25
106496, // TrackElemType::DiagDown25ToLeftBank
106496, // TrackElemType::DiagDown25ToRightBank
96777, // TrackElemType::DiagLeftBank
96777, // TrackElemType::DiagRightBank
282624, // TrackElemType::LogFlumeReverser
217088, // TrackElemType::SpinningTunnel
221184, // TrackElemType::LeftBarrelRollUpToDown
221184, // TrackElemType::RightBarrelRollUpToDown
221184, // TrackElemType::LeftBarrelRollDownToUp
221184, // TrackElemType::RightBarrelRollDownToUp
270226, // TrackElemType::LeftBankToLeftQuarterTurn3TilesUp25
270226, // TrackElemType::RightBankToRightQuarterTurn3TilesUp25
270226, // TrackElemType::LeftQuarterTurn3TilesDown25ToLeftBank
270226, // TrackElemType::RightQuarterTurn3TilesDown25ToRightBank
96384, // TrackElemType::PoweredLift
884736, // TrackElemType::LeftLargeHalfLoopUp
884736, // TrackElemType::RightLargeHalfLoopUp
884736, // TrackElemType::RightLargeHalfLoopDown
884736, // TrackElemType::LeftLargeHalfLoopDown
221184, // TrackElemType::LeftFlyerTwistUp
221184, // TrackElemType::RightFlyerTwistUp
221184, // TrackElemType::LeftFlyerTwistDown
221184, // TrackElemType::RightFlyerTwistDown
294912, // TrackElemType::FlyerHalfLoopUp
294912, // TrackElemType::FlyerHalfLoopDown
229376, // TrackElemType::LeftFlyerCorkscrewUp
229376, // TrackElemType::RightFlyerCorkscrewUp
229376, // TrackElemType::LeftFlyerCorkscrewDown
229376, // TrackElemType::RightFlyerCorkscrewDown
294912, // TrackElemType::HeartLineTransferUp
294912, // TrackElemType::HeartLineTransferDown
417792, // TrackElemType::LeftHeartLineRoll
417792, // TrackElemType::RightHeartLineRoll
159744, // TrackElemType::MinigolfHoleA
167936, // TrackElemType::MinigolfHoleB
172032, // TrackElemType::MinigolfHoleC
184320, // TrackElemType::MinigolfHoleD
184320, // TrackElemType::MinigolfHoleE
360448, // TrackElemType::MultiDimInvertedFlatToDown90QuarterLoop
360448, // TrackElemType::Up90ToInvertedFlatQuarterLoop
360448, // TrackElemType::InvertedFlatToDown90QuarterLoop
270226, // TrackElemType::LeftCurvedLiftHill
270226, // TrackElemType::RightCurvedLiftHill
393216, // TrackElemType::LeftReverser
393216, // TrackElemType::RightReverser
65536, // TrackElemType::AirThrustTopCap
65536, // TrackElemType::AirThrustVerticalDown
491520, // TrackElemType::AirThrustVerticalDownToLevel
94208, // TrackElemType::BlockBrakes
287115, // TrackElemType::LeftBankedQuarterTurn3TileUp25
287115, // TrackElemType::RightBankedQuarterTurn3TileUp25
287115, // TrackElemType::LeftBankedQuarterTurn3TileDown25
287115, // TrackElemType::RightBankedQuarterTurn3TileDown25
333259, // TrackElemType::LeftBankedQuarterTurn5TileUp25
333259, // TrackElemType::RightBankedQuarterTurn5TileUp25
333259, // TrackElemType::LeftBankedQuarterTurn5TileDown25
333259, // TrackElemType::RightBankedQuarterTurn5TileDown25
83968, // TrackElemType::Up25ToLeftBankedUp25
83968, // TrackElemType::Up25ToRightBankedUp25
83968, // TrackElemType::LeftBankedUp25ToUp25
83968, // TrackElemType::RightBankedUp25ToUp25
83968, // TrackElemType::Down25ToLeftBankedDown25
83968, // TrackElemType::Down25ToRightBankedDown25
83968, // TrackElemType::LeftBankedDown25ToDown25
83968, // TrackElemType::RightBankedDown25ToDown25
77824, // TrackElemType::LeftBankedFlatToLeftBankedUp25
77824, // TrackElemType::RightBankedFlatToRightBankedUp25
77824, // TrackElemType::LeftBankedUp25ToLeftBankedFlat
77824, // TrackElemType::RightBankedUp25ToRightBankedFlat
77824, // TrackElemType::LeftBankedFlatToLeftBankedDown25
77824, // TrackElemType::RightBankedFlatToRightBankedDown25
77824, // TrackElemType::LeftBankedDown25ToLeftBankedFlat
77824, // TrackElemType::RightBankedDown25ToRightBankedFlat
77824, // TrackElemType::FlatToLeftBankedUp25
77824, // TrackElemType::FlatToRightBankedUp25
77824, // TrackElemType::LeftBankedUp25ToFlat
77824, // TrackElemType::RightBankedUp25ToFlat
77824, // TrackElemType::FlatToLeftBankedDown25
77824, // TrackElemType::FlatToRightBankedDown25
77824, // TrackElemType::LeftBankedDown25ToFlat
77824, // TrackElemType::RightBankedDown25ToFlat
151552, // TrackElemType::LeftQuarterTurn1TileUp90
151552, // TrackElemType::RightQuarterTurn1TileUp90
151552, // TrackElemType::LeftQuarterTurn1TileDown90
151552, // TrackElemType::RightQuarterTurn1TileDown90
360448, // TrackElemType::MultiDimUp90ToInvertedFlatQuarterLoop
360448, // TrackElemType::MultiDimFlatToDown90QuarterLoop
360448, //
};
/** rct2: 0x0099DE34 */
const money32 FlatRideTrackPricing[] = {
65536,
98304,
98304,
98304,
79872,
114688,
73728,
96256,
96256,
73728,
79872,
114688,
73728,
96256,
96256,
73728,
257359,
257359,
69632,
69632,
69632,
69632,
273443,
273443,
78336,
78336,
78336,
78336,
78336,
78336,
78336,
78336,
69632,
69632,
313656,
313656,
313656,
313656,
229376,
229376,
491520,
491520,
154415,
154415,
164065,
164065,
270226,
270226,
270226,
270226,
51471,
51471,
212992,
212992,
212992,
212992,
294912,
294912,
229376,
229376,
229376,
229376,
98304,
98304,
98304,
98304,
524288,
65536,
69632,
83968,
118784,
77824,
100352,
100352,
77824,
83968,
118784,
77824,
100352,
100352,
77824,
261455,
261455,
233472,
233472,
158511,
158511,
328192,
328192,
328192,
328192,
547072,
547072,
547072,
547072,
262144, // FLAT_TRACK_ELEM_1_X_4_A
126976,
126976,
126976,
90112,
77824,
65536,
273539,
273539,
273539,
273539,
273539,
273539,
273539,
273539,
262144, // FLAT_TRACK_ELEM_2_X_2
1048576, // FLAT_TRACK_ELEM_4_X_4
143360,
118784,
196608,
524288,
327680, // FLAT_TRACK_ELEM_1_X_5
393216,
65536, // FLAT_TRACK_ELEM_1_X_1_A
262144, // FLAT_TRACK_ELEM_1_X_4_B
126976,
65536, // FLAT_TRACK_ELEM_1_X_1_B
262144, // FLAT_TRACK_ELEM_1_X_4_C
524288, // FLAT_TRACK_ELEM_3_X_3
491520,
65536,
69632,
69632,
114688,
114688,
114688,
114688,
147456,
180151,
180151,
180151,
180151,
190960,
190960,
190960,
190960,
92681,
111820,
147456,
102400,
129024,
129024,
102400,
111820,
147456,
102400,
129024,
129024,
102400,
107008,
107008,
107008,
107008,
96777,
96777,
96777,
96777,
106496,
106496,
106496,
106496,
106496,
106496,
106496,
106496,
96777,
96777,
282624,
217088,
221184,
221184,
221184,
221184,
270226,
270226,
270226,
270226,
96384,
884736,
884736,
884736,
884736,
221184,
221184,
221184,
221184,
294912,
294912,
229376,
229376,
229376,
229376,
294912,
294912,
417792,
417792,
159744,
167936,
172032,
184320,
184320,
159744,
159744,
159744,
270226,
270226,
393216,
393216,
65536,
65536,
491520,
94208,
287115,
287115,
287115,
287115,
333259,
333259,
333259,
333259,
83968,
83968,
83968,
83968,
83968,
83968,
83968,
83968,
77824,
77824,
77824,
77824,
77824,
77824,
77824,
77824,
77824,
77824,
77824,
77824,
77824,
77824,
77824,
77824,
151552,
151552,
151552,
151552,
};
/** rct2: 0x0099E228, 0x0099E229, 0x0099E22A, 0x0099E22B */
const dodgems_track_size DodgemsTrackSize[] = {
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 4, 4, 59, 59 }, // FLAT_TRACK_ELEM_2_X_2
{ 4, 4, 123, 123 }, // FLAT_TRACK_ELEM_4_X_4
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 4, 4, 59, 123 }, // 115
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
{ 0, 0, 0, 0 },
};
/** rct2: 0x0099EA1C */
const uint8_t TrackElementMirrorMap[] = {
TrackElemType::Flat,
TrackElemType::EndStation,
TrackElemType::BeginStation,
TrackElemType::MiddleStation,
TrackElemType::Up25,
TrackElemType::Up60,
TrackElemType::FlatToUp25,
TrackElemType::Up25ToUp60,
TrackElemType::Up60ToUp25,
TrackElemType::Up25ToFlat,
TrackElemType::Down25,
TrackElemType::Down60,
TrackElemType::FlatToDown25,
TrackElemType::Down25ToDown60,
TrackElemType::Down60ToDown25,
TrackElemType::Down25ToFlat,
TrackElemType::RightQuarterTurn5Tiles, // TrackElemType::LeftQuarterTurn5Tiles
TrackElemType::LeftQuarterTurn5Tiles, // TrackElemType::RightQuarterTurn5Tiles
TrackElemType::FlatToRightBank, // TrackElemType::FlatToLeftBank
TrackElemType::FlatToLeftBank, // TrackElemType::FlatToRightBank
TrackElemType::RightBankToFlat, // TrackElemType::LeftBankToFlat
TrackElemType::LeftBankToFlat, // TrackElemType::RightBankToFlat
TrackElemType::BankedRightQuarterTurn5Tiles, // TrackElemType::BankedLeftQuarterTurn5Tiles
TrackElemType::BankedLeftQuarterTurn5Tiles, // TrackElemType::BankedRightQuarterTurn5Tiles
TrackElemType::RightBankToUp25, // TrackElemType::LeftBankToUp25
TrackElemType::LeftBankToUp25, // TrackElemType::RightBankToUp25
TrackElemType::Up25ToRightBank, // TrackElemType::Up25ToLeftBank
TrackElemType::Up25ToLeftBank, // TrackElemType::Up25ToRightBank
TrackElemType::RightBankToDown25, // TrackElemType::LeftBankToDown25
TrackElemType::LeftBankToDown25, // TrackElemType::RightBankToDown25
TrackElemType::Down25ToRightBank, // TrackElemType::Down25ToLeftBank
TrackElemType::Down25ToLeftBank, // TrackElemType::Down25ToRightBank
TrackElemType::RightBank, // TrackElemType::LeftBank
TrackElemType::LeftBank, // TrackElemType::RightBank
TrackElemType::RightQuarterTurn5TilesUp25, // TrackElemType::LeftQuarterTurn5TilesUp25
TrackElemType::LeftQuarterTurn5TilesUp25, // TrackElemType::RightQuarterTurn5TilesUp25
TrackElemType::RightQuarterTurn5TilesDown25, // TrackElemType::LeftQuarterTurn5TilesDown25
TrackElemType::LeftQuarterTurn5TilesDown25, // TrackElemType::RightQuarterTurn5TilesDown25
TrackElemType::SBendRight, // TrackElemType::SBendLeft
TrackElemType::SBendLeft, // TrackElemType::SBendRight
TrackElemType::RightVerticalLoop, // TrackElemType::LeftVerticalLoop
TrackElemType::LeftVerticalLoop, // TrackElemType::RightVerticalLoop
TrackElemType::RightQuarterTurn3Tiles, // TrackElemType::LeftQuarterTurn3Tiles
TrackElemType::LeftQuarterTurn3Tiles, // TrackElemType::RightQuarterTurn3Tiles
TrackElemType::RightBankedQuarterTurn3Tiles, // TrackElemType::LeftBankedQuarterTurn3Tiles
TrackElemType::LeftBankedQuarterTurn3Tiles, // TrackElemType::RightBankedQuarterTurn3Tiles
TrackElemType::RightQuarterTurn3TilesUp25, // TrackElemType::LeftQuarterTurn3TilesUp25
TrackElemType::LeftQuarterTurn3TilesUp25, // TrackElemType::RightQuarterTurn3TilesUp25
TrackElemType::RightQuarterTurn3TilesDown25, // TrackElemType::LeftQuarterTurn3TilesDown25
TrackElemType::LeftQuarterTurn3TilesDown25, // TrackElemType::RightQuarterTurn3TilesDown25
TrackElemType::RightQuarterTurn1Tile, // TrackElemType::LeftQuarterTurn1Tile
TrackElemType::LeftQuarterTurn1Tile, // TrackElemType::RightQuarterTurn1Tile
TrackElemType::RightTwistDownToUp, // TrackElemType::LeftTwistDownToUp
TrackElemType::LeftTwistDownToUp, // TrackElemType::RightTwistDownToUp
TrackElemType::RightTwistUpToDown, // TrackElemType::LeftTwistUpToDown
TrackElemType::LeftTwistUpToDown, // TrackElemType::RightTwistUpToDown
TrackElemType::HalfLoopUp,
TrackElemType::HalfLoopDown,
TrackElemType::RightCorkscrewUp, // TrackElemType::LeftCorkscrewUp
TrackElemType::LeftCorkscrewUp, // TrackElemType::RightCorkscrewUp
TrackElemType::RightCorkscrewDown, // TrackElemType::LeftCorkscrewDown
TrackElemType::LeftCorkscrewDown, // TrackElemType::RightCorkscrewDown
TrackElemType::FlatToUp60,
TrackElemType::Up60ToFlat,
TrackElemType::FlatToDown60,
TrackElemType::Down60ToFlat,
TrackElemType::TowerBase,
TrackElemType::TowerSection,
TrackElemType::FlatCovered,
TrackElemType::Up25Covered,
TrackElemType::Up60Covered,
TrackElemType::FlatToUp25Covered,
TrackElemType::Up25ToUp60Covered,
TrackElemType::Up60ToUp25Covered,
TrackElemType::Up25ToFlatCovered,
TrackElemType::Down25Covered,
TrackElemType::Down60Covered,
TrackElemType::FlatToDown25Covered,
TrackElemType::Down25ToDown60Covered,
TrackElemType::Down60ToDown25Covered,
TrackElemType::Down25ToFlatCovered,
TrackElemType::RightQuarterTurn5TilesCovered, // TrackElemType::LeftQuarterTurn5TilesCovered
TrackElemType::LeftQuarterTurn5TilesCovered, // TrackElemType::RightQuarterTurn5TilesCovered
TrackElemType::SBendRightCovered, // TrackElemType::SBendLeftCovered
TrackElemType::SBendLeftCovered, // TrackElemType::SBendRightCovered
TrackElemType::RightQuarterTurn3TilesCovered, // TrackElemType::LeftQuarterTurn3TilesCovered
TrackElemType::LeftQuarterTurn3TilesCovered, // TrackElemType::RightQuarterTurn3TilesCovered
TrackElemType::RightHalfBankedHelixUpSmall, // TrackElemType::LeftHalfBankedHelixUpSmall
TrackElemType::LeftHalfBankedHelixUpSmall, // TrackElemType::RightHalfBankedHelixUpSmall
TrackElemType::RightHalfBankedHelixDownSmall, // TrackElemType::LeftHalfBankedHelixDownSmall
TrackElemType::LeftHalfBankedHelixDownSmall, // TrackElemType::RightHalfBankedHelixDownSmall
TrackElemType::RightHalfBankedHelixUpLarge, // TrackElemType::LeftHalfBankedHelixUpLarge
TrackElemType::LeftHalfBankedHelixUpLarge, // TrackElemType::RightHalfBankedHelixUpLarge
TrackElemType::RightHalfBankedHelixDownLarge, // TrackElemType::LeftHalfBankedHelixDownLarge
TrackElemType::LeftHalfBankedHelixDownLarge, // TrackElemType::RightHalfBankedHelixDownLarge
TrackElemType::RightQuarterTurn1TileUp60, // TrackElemType::LeftQuarterTurn1TileUp60
TrackElemType::LeftQuarterTurn1TileUp60, // TrackElemType::RightQuarterTurn1TileUp60
TrackElemType::RightQuarterTurn1TileDown60, // TrackElemType::LeftQuarterTurn1TileDown60
TrackElemType::LeftQuarterTurn1TileDown60, // TrackElemType::RightQuarterTurn1TileDown60
TrackElemType::Brakes,
TrackElemType::RotationControlToggle,
TrackElemType::Maze,
TrackElemType::RightQuarterBankedHelixLargeUp, // TrackElemType::LeftQuarterBankedHelixLargeUp
TrackElemType::LeftQuarterBankedHelixLargeUp, // TrackElemType::RightQuarterBankedHelixLargeUp
TrackElemType::RightQuarterBankedHelixLargeDown, // TrackElemType::LeftQuarterBankedHelixLargeDown
TrackElemType::LeftQuarterBankedHelixLargeDown, // TrackElemType::RightQuarterBankedHelixLargeDown
TrackElemType::RightQuarterHelixLargeUp, // TrackElemType::LeftQuarterHelixLargeUp
TrackElemType::LeftQuarterHelixLargeUp, // TrackElemType::RightQuarterHelixLargeUp
TrackElemType::RightQuarterHelixLargeDown, // TrackElemType::LeftQuarterHelixLargeDown
TrackElemType::LeftQuarterHelixLargeDown, // TrackElemType::RightQuarterHelixLargeDown
TrackElemType::Up25RightBanked, // TrackElemType::Up25LeftBanked
TrackElemType::Up25LeftBanked, // TrackElemType::Up25RightBanked
TrackElemType::Waterfall,
TrackElemType::Rapids,
TrackElemType::OnRidePhoto,
TrackElemType::Down25RightBanked, // TrackElemType::Down25LeftBanked
TrackElemType::Down25LeftBanked, // TrackElemType::Down25RightBanked
TrackElemType::Watersplash,
TrackElemType::FlatToUp60LongBase,
TrackElemType::Up60ToFlatLongBase,
TrackElemType::Whirlpool,
TrackElemType::Down60ToFlatLongBase,
TrackElemType::FlatToDown60LongBase,
TrackElemType::CableLiftHill,
TrackElemType::ReverseFreefallSlope,
TrackElemType::ReverseFreefallVertical,
TrackElemType::Up90,
TrackElemType::Down90,
TrackElemType::Up60ToUp90,
TrackElemType::Down90ToDown60,
TrackElemType::Up90ToUp60,
TrackElemType::Down60ToDown90,
TrackElemType::BrakeForDrop,
TrackElemType::RightEighthToDiag, // TrackElemType::LeftEighthToDiag
TrackElemType::LeftEighthToDiag, // TrackElemType::RightEighthToDiag
TrackElemType::RightEighthToOrthogonal, // TrackElemType::LeftEighthToOrthogonal
TrackElemType::LeftEighthToOrthogonal, // TrackElemType::RightEighthToOrthogonal
TrackElemType::RightEighthBankToDiag, // TrackElemType::LeftEighthBankToDiag
TrackElemType::LeftEighthBankToDiag, // TrackElemType::RightEighthBankToDiag
TrackElemType::RightEighthBankToOrthogonal, // TrackElemType::LeftEighthBankToOrthogonal
TrackElemType::LeftEighthBankToOrthogonal, // TrackElemType::RightEighthBankToOrthogonal
TrackElemType::DiagFlat,
TrackElemType::DiagUp25,
TrackElemType::DiagUp60,
TrackElemType::DiagFlatToUp25,
TrackElemType::DiagUp25ToUp60,
TrackElemType::DiagUp60ToUp25,
TrackElemType::DiagUp25ToFlat,
TrackElemType::DiagDown25,
TrackElemType::DiagDown60,
TrackElemType::DiagFlatToDown25,
TrackElemType::DiagDown25ToDown60,
TrackElemType::DiagDown60ToDown25,
TrackElemType::DiagDown25ToFlat,
TrackElemType::DiagFlatToUp60,
TrackElemType::DiagUp60ToFlat,
TrackElemType::DiagFlatToDown60,
TrackElemType::DiagDown60ToFlat,
TrackElemType::DiagFlatToRightBank, // TrackElemType::DiagFlatToLeftBank
TrackElemType::DiagFlatToLeftBank, // TrackElemType::DiagFlatToRightBank
TrackElemType::DiagRightBankToFlat, // TrackElemType::DiagLeftBankToFlat
TrackElemType::DiagLeftBankToFlat, // TrackElemType::DiagRightBankToFlat
TrackElemType::DiagRightBankToUp25, // TrackElemType::DiagLeftBankToUp25
TrackElemType::DiagLeftBankToUp25, // TrackElemType::DiagRightBankToUp25
TrackElemType::DiagUp25ToRightBank, // TrackElemType::DiagUp25ToLeftBank
TrackElemType::DiagUp25ToLeftBank, // TrackElemType::DiagUp25ToRightBank
TrackElemType::DiagRightBankToDown25, // TrackElemType::DiagLeftBankToDown25
TrackElemType::DiagLeftBankToDown25, // TrackElemType::DiagRightBankToDown25
TrackElemType::DiagDown25ToRightBank, // TrackElemType::DiagDown25ToLeftBank
TrackElemType::DiagDown25ToLeftBank, // TrackElemType::DiagDown25ToRightBank
TrackElemType::DiagRightBank, // TrackElemType::DiagLeftBank
TrackElemType::DiagLeftBank, // TrackElemType::DiagRightBank
TrackElemType::LogFlumeReverser,
TrackElemType::SpinningTunnel,
TrackElemType::RightBarrelRollUpToDown, // TrackElemType::LeftBarrelRollUpToDown
TrackElemType::LeftBarrelRollUpToDown, // TrackElemType::RightBarrelRollUpToDown
TrackElemType::RightBarrelRollDownToUp, // TrackElemType::LeftBarrelRollDownToUp
TrackElemType::LeftBarrelRollDownToUp, // TrackElemType::RightBarrelRollDownToUp
TrackElemType::RightBankToRightQuarterTurn3TilesUp25, // TrackElemType::LeftBankToLeftQuarterTurn3TilesUp25
TrackElemType::LeftBankToLeftQuarterTurn3TilesUp25, // TrackElemType::RightBankToRightQuarterTurn3TilesUp25
TrackElemType::RightQuarterTurn3TilesDown25ToRightBank, // TrackElemType::LeftQuarterTurn3TilesDown25ToLeftBank
TrackElemType::LeftQuarterTurn3TilesDown25ToLeftBank, // TrackElemType::RightQuarterTurn3TilesDown25ToRightBank
TrackElemType::PoweredLift,
TrackElemType::RightLargeHalfLoopUp, // TrackElemType::LeftLargeHalfLoopUp
TrackElemType::LeftLargeHalfLoopUp, // TrackElemType::RightLargeHalfLoopUp
TrackElemType::LeftLargeHalfLoopDown, // TrackElemType::RightLargeHalfLoopDown
TrackElemType::RightLargeHalfLoopDown, // TrackElemType::LeftLargeHalfLoopDown
TrackElemType::RightFlyerTwistUp, // TrackElemType::LeftFlyerTwistUp
TrackElemType::LeftFlyerTwistUp, // TrackElemType::RightFlyerTwistUp
TrackElemType::RightFlyerTwistDown, // TrackElemType::LeftFlyerTwistDown
TrackElemType::LeftFlyerTwistDown, // TrackElemType::RightFlyerTwistDown
TrackElemType::FlyerHalfLoopUp,
TrackElemType::FlyerHalfLoopDown,
TrackElemType::RightFlyerCorkscrewUp, // TrackElemType::LeftFlyerCorkscrewUp
TrackElemType::LeftFlyerCorkscrewUp, // TrackElemType::RightFlyerCorkscrewUp
TrackElemType::RightFlyerCorkscrewDown, // TrackElemType::LeftFlyerCorkscrewDown
TrackElemType::LeftFlyerCorkscrewDown, // TrackElemType::RightFlyerCorkscrewDown
TrackElemType::HeartLineTransferUp,
TrackElemType::HeartLineTransferDown,
TrackElemType::RightHeartLineRoll, // TrackElemType::LeftHeartLineRoll
TrackElemType::LeftHeartLineRoll, // TrackElemType::RightHeartLineRoll
TrackElemType::MinigolfHoleA,
TrackElemType::MinigolfHoleB,
TrackElemType::MinigolfHoleC,
TrackElemType::MinigolfHoleE, // TrackElemType::MinigolfHoleD
TrackElemType::MinigolfHoleD, // TrackElemType::MinigolfHoleE
TrackElemType::MultiDimInvertedFlatToDown90QuarterLoop,
TrackElemType::Up90ToInvertedFlatQuarterLoop,
TrackElemType::InvertedFlatToDown90QuarterLoop,
TrackElemType::RightCurvedLiftHill, // TrackElemType::LeftCurvedLiftHill
TrackElemType::LeftCurvedLiftHill, // TrackElemType::RightCurvedLiftHill
TrackElemType::RightReverser, // TrackElemType::LeftReverser
TrackElemType::LeftReverser, // TrackElemType::RightReverser
TrackElemType::AirThrustTopCap,
TrackElemType::AirThrustVerticalDown,
TrackElemType::AirThrustVerticalDownToLevel,
TrackElemType::BlockBrakes,
TrackElemType::RightBankedQuarterTurn3TileUp25, // TrackElemType::LeftBankedQuarterTurn3TileUp25
TrackElemType::LeftBankedQuarterTurn3TileUp25, // TrackElemType::RightBankedQuarterTurn3TileUp25
TrackElemType::RightBankedQuarterTurn3TileDown25, // TrackElemType::LeftBankedQuarterTurn3TileDown25
TrackElemType::LeftBankedQuarterTurn3TileDown25, // TrackElemType::RightBankedQuarterTurn3TileDown25
TrackElemType::RightBankedQuarterTurn5TileUp25, // TrackElemType::LeftBankedQuarterTurn5TileUp25
TrackElemType::LeftBankedQuarterTurn5TileUp25, // TrackElemType::RightBankedQuarterTurn5TileUp25
TrackElemType::RightBankedQuarterTurn5TileDown25, // TrackElemType::LeftBankedQuarterTurn5TileDown25
TrackElemType::LeftBankedQuarterTurn5TileDown25, // TrackElemType::RightBankedQuarterTurn5TileDown25
TrackElemType::Up25ToRightBankedUp25, // TrackElemType::Up25ToLeftBankedUp25
TrackElemType::Up25ToLeftBankedUp25, // TrackElemType::Up25ToRightBankedUp25
TrackElemType::RightBankedUp25ToUp25, // TrackElemType::LeftBankedUp25ToUp25
TrackElemType::LeftBankedUp25ToUp25, // TrackElemType::RightBankedUp25ToUp25
TrackElemType::Down25ToRightBankedDown25, // TrackElemType::Down25ToLeftBankedDown25
TrackElemType::Down25ToLeftBankedDown25, // TrackElemType::Down25ToRightBankedDown25
TrackElemType::RightBankedDown25ToDown25, // TrackElemType::LeftBankedDown25ToDown25
TrackElemType::LeftBankedDown25ToDown25, // TrackElemType::RightBankedDown25ToDown25
TrackElemType::RightBankedFlatToRightBankedUp25, // TrackElemType::LeftBankedFlatToLeftBankedUp25
TrackElemType::LeftBankedFlatToLeftBankedUp25, // TrackElemType::RightBankedFlatToRightBankedUp25
TrackElemType::RightBankedUp25ToRightBankedFlat, // TrackElemType::LeftBankedUp25ToLeftBankedFlat
TrackElemType::LeftBankedUp25ToLeftBankedFlat, // TrackElemType::RightBankedUp25ToRightBankedFlat
TrackElemType::RightBankedFlatToRightBankedDown25, // TrackElemType::LeftBankedFlatToLeftBankedDown25
TrackElemType::LeftBankedFlatToLeftBankedDown25, // TrackElemType::RightBankedFlatToRightBankedDown25
TrackElemType::RightBankedDown25ToRightBankedFlat, // TrackElemType::LeftBankedDown25ToLeftBankedFlat
TrackElemType::LeftBankedDown25ToLeftBankedFlat, // TrackElemType::RightBankedDown25ToRightBankedFlat
TrackElemType::FlatToRightBankedUp25, // TrackElemType::FlatToLeftBankedUp25
TrackElemType::FlatToLeftBankedUp25, // TrackElemType::FlatToRightBankedUp25
TrackElemType::RightBankedUp25ToFlat, // TrackElemType::LeftBankedUp25ToFlat
TrackElemType::LeftBankedUp25ToFlat, // TrackElemType::RightBankedUp25ToFlat
TrackElemType::FlatToRightBankedDown25, // TrackElemType::FlatToLeftBankedDown25
TrackElemType::FlatToLeftBankedDown25, // TrackElemType::FlatToRightBankedDown25
TrackElemType::RightBankedDown25ToFlat, // TrackElemType::LeftBankedDown25ToFlat
TrackElemType::LeftBankedDown25ToFlat, // TrackElemType::RightBankedDown25ToFlat
TrackElemType::RightQuarterTurn1TileUp90, // TrackElemType::LeftQuarterTurn1TileUp90
TrackElemType::LeftQuarterTurn1TileUp90, // TrackElemType::RightQuarterTurn1TileUp90
TrackElemType::RightQuarterTurn1TileDown90, // TrackElemType::LeftQuarterTurn1TileDown90
TrackElemType::LeftQuarterTurn1TileDown90, // TrackElemType::RightQuarterTurn1TileDown90
TrackElemType::MultiDimUp90ToInvertedFlatQuarterLoop,
TrackElemType::MultiDimFlatToDown90QuarterLoop,
255,
};
/** rct2: 0x00999694 */
const uint32_t TrackHeightMarkerPositions[TrackElemType::Count] = {
(1 << 0), // TrackElemType::Flat
(1 << 0), // TrackElemType::EndStation
(1 << 0), // TrackElemType::BeginStation
(1 << 0), // TrackElemType::MiddleStation
(1 << 0), // TrackElemType::Up25
(1 << 0), // TrackElemType::Up60
(1 << 0), // TrackElemType::FlatToUp25
(1 << 0), // TrackElemType::Up25ToUp60
(1 << 0), // TrackElemType::Up60ToUp25
(1 << 0), // TrackElemType::Up25ToFlat
(1 << 0), // TrackElemType::Down25
(1 << 0), // TrackElemType::Down60
(1 << 0), // TrackElemType::FlatToDown25
(1 << 0), // TrackElemType::Down25ToDown60
(1 << 0), // TrackElemType::Down60ToDown25
(1 << 0), // TrackElemType::Down25ToFlat
(1 << 0) | (1 << 6), // TrackElemType::LeftQuarterTurn5Tiles
(1 << 0) | (1 << 6), // TrackElemType::RightQuarterTurn5Tiles
(1 << 0), // TrackElemType::FlatToLeftBank
(1 << 0), // TrackElemType::FlatToRightBank
(1 << 0), // TrackElemType::LeftBankToFlat
(1 << 0), // TrackElemType::RightBankToFlat
(1 << 0) | (1 << 6), // TrackElemType::BankedLeftQuarterTurn5Tiles
(1 << 0) | (1 << 6), // TrackElemType::BankedRightQuarterTurn5Tiles
(1 << 0), // TrackElemType::LeftBankToUp25
(1 << 0), // TrackElemType::RightBankToUp25
(1 << 0), // TrackElemType::Up25ToLeftBank
(1 << 0), // TrackElemType::Up25ToRightBank
(1 << 0), // TrackElemType::LeftBankToDown25
(1 << 0), // TrackElemType::RightBankToDown25
(1 << 0), // TrackElemType::Down25ToLeftBank
(1 << 0), // TrackElemType::Down25ToRightBank
(1 << 0), // TrackElemType::LeftBank
(1 << 0), // TrackElemType::RightBank
(1 << 0) | (1 << 6), // TrackElemType::LeftQuarterTurn5TilesUp25
(1 << 0) | (1 << 6), // TrackElemType::RightQuarterTurn5TilesUp25
(1 << 0) | (1 << 6), // TrackElemType::LeftQuarterTurn5TilesDown25
(1 << 0) | (1 << 6), // TrackElemType::RightQuarterTurn5TilesDown25
(1 << 0) | (1 << 3), // TrackElemType::SBendLeft
(1 << 0) | (1 << 3), // TrackElemType::SBendRight
(1 << 0) | (1 << 9), // TrackElemType::LeftVerticalLoop
(1 << 0) | (1 << 9), // TrackElemType::RightVerticalLoop
(1 << 0) | (1 << 3), // TrackElemType::LeftQuarterTurn3Tiles
(1 << 0) | (1 << 3), // TrackElemType::RightQuarterTurn3Tiles
(1 << 0) | (1 << 3), // TrackElemType::LeftBankedQuarterTurn3Tiles
(1 << 0) | (1 << 3), // TrackElemType::RightBankedQuarterTurn3Tiles
(1 << 0) | (1 << 3), // TrackElemType::LeftQuarterTurn3TilesUp25
(1 << 0) | (1 << 3), // TrackElemType::RightQuarterTurn3TilesUp25
(1 << 0) | (1 << 3), // TrackElemType::LeftQuarterTurn3TilesDown25
(1 << 0) | (1 << 3), // TrackElemType::RightQuarterTurn3TilesDown25
(1 << 0), // TrackElemType::LeftQuarterTurn1Tile
(1 << 0), // TrackElemType::RightQuarterTurn1Tile
(1 << 0) | (1 << 2), // TrackElemType::LeftTwistDownToUp
(1 << 0) | (1 << 2), // TrackElemType::RightTwistDownToUp
(1 << 0) | (1 << 2), // TrackElemType::LeftTwistUpToDown
(1 << 0) | (1 << 2), // TrackElemType::RightTwistUpToDown
(1 << 0) | (1 << 3), // TrackElemType::HalfLoopUp
(1 << 0) | (1 << 3), // TrackElemType::HalfLoopDown
(1 << 0) | (1 << 2), // TrackElemType::LeftCorkscrewUp
(1 << 0) | (1 << 2), // TrackElemType::RightCorkscrewUp
(1 << 0) | (1 << 2), // TrackElemType::LeftCorkscrewDown
(1 << 0) | (1 << 2), // TrackElemType::RightCorkscrewDown
(1 << 0), // TrackElemType::FlatToUp60
(1 << 0), // TrackElemType::Up60ToFlat
(1 << 0), // TrackElemType::FlatToDown60
(1 << 0), // TrackElemType::Down60ToFlat
(1 << 1) | (1 << 3) | (1 << 6) | (1 << 7), // TrackElemType::TowerBase
(1 << 0), // TrackElemType::TowerSection
(1 << 0), // TrackElemType::FlatCovered
(1 << 0), // TrackElemType::Up25Covered
(1 << 0), // TrackElemType::Up60Covered
(1 << 0), // TrackElemType::FlatToUp25Covered
(1 << 0), // TrackElemType::Up25ToUp60Covered
(1 << 0), // TrackElemType::Up60ToUp25Covered
(1 << 0), // TrackElemType::Up25ToFlatCovered
(1 << 0), // TrackElemType::Down25Covered
(1 << 0), // TrackElemType::Down60Covered
(1 << 0), // TrackElemType::FlatToDown25Covered
(1 << 0), // TrackElemType::Down25ToDown60Covered
(1 << 0), // TrackElemType::Down60ToDown25Covered
(1 << 0), // TrackElemType::Down25ToFlatCovered
(1 << 0) | (1 << 6), // TrackElemType::LeftQuarterTurn5TilesCovered
(1 << 0) | (1 << 6), // TrackElemType::RightQuarterTurn5TilesCovered
(1 << 0) | (1 << 3), // TrackElemType::SBendLeftCovered
(1 << 0) | (1 << 3), // TrackElemType::SBendRightCovered
(1 << 0) | (1 << 3), // TrackElemType::LeftQuarterTurn3TilesCovered
(1 << 0) | (1 << 3), // TrackElemType::RightQuarterTurn3TilesCovered
(1 << 0) | (1 << 7), // TrackElemType::LeftHalfBankedHelixUpSmall
(1 << 0) | (1 << 7), // TrackElemType::RightHalfBankedHelixUpSmall
(1 << 0) | (1 << 7), // TrackElemType::LeftHalfBankedHelixDownSmall
(1 << 0) | (1 << 7), // TrackElemType::RightHalfBankedHelixDownSmall
(1 << 0) | (1 << 13), // TrackElemType::LeftHalfBankedHelixUpLarge
(1 << 0) | (1 << 13), // TrackElemType::RightHalfBankedHelixUpLarge
(1 << 0) | (1 << 13), // TrackElemType::LeftHalfBankedHelixDownLarge
(1 << 0) | (1 << 13), // TrackElemType::RightHalfBankedHelixDownLarge
(1 << 0), // TrackElemType::LeftQuarterTurn1TileUp60
(1 << 0), // TrackElemType::RightQuarterTurn1TileUp60
(1 << 0), // TrackElemType::LeftQuarterTurn1TileDown60
(1 << 0), // TrackElemType::RightQuarterTurn1TileDown60
(1 << 0), // TrackElemType::Brakes
(1 << 0), // TrackElemType::RotationControlToggle
(1 << 0) | (1 << 1) | (1 << 2) | (1 << 3) | (1 << 4) | (1 << 5) | (1 << 6) | (1 << 7) | (1 << 8) | (1 << 9) | (1 << 10) | (1 << 11) | (1 << 12) | (1 << 13) | (1 << 14) | (1 << 15), // TrackElemType::InvertedUp90ToFlatQuarterLoopAlias / Maze
(1 << 0) | (1 << 6), // TrackElemType::LeftQuarterBankedHelixLargeUp
(1 << 0) | (1 << 6), // TrackElemType::RightQuarterBankedHelixLargeUp
(1 << 0) | (1 << 6), // TrackElemType::LeftQuarterBankedHelixLargeDown
(1 << 0) | (1 << 6), // TrackElemType::RightQuarterBankedHelixLargeDown
(1 << 0) | (1 << 6), // TrackElemType::LeftQuarterHelixLargeUp
(1 << 0) | (1 << 6), // TrackElemType::RightQuarterHelixLargeUp
(1 << 0) | (1 << 6), // TrackElemType::LeftQuarterHelixLargeDown
(1 << 0) | (1 << 6), // TrackElemType::RightQuarterHelixLargeDown
(1 << 0), // TrackElemType::Up25LeftBanked
(1 << 0) | (1 << 3) | (1 << 12) | (1 << 15), // TrackElemType::Up25RightBanked
(1 << 0), // TrackElemType::Waterfall
(1 << 0), // TrackElemType::Rapids
(1 << 0), // TrackElemType::OnRidePhoto
(1 << 0) | (1 << 7), // TrackElemType::Down25LeftBanked
(1 << 0), // TrackElemType::Down25RightBanked
(1 << 0) | (1 << 4), // TrackElemType::Watersplash
(1 << 0) | (1 << 3), // TrackElemType::FlatToUp60LongBase
(1 << 0) | (1 << 3), // TrackElemType::Up60ToFlatLongBase
(1 << 0), // TrackElemType::Whirlpool
(1 << 0) | (1 << 3), // TrackElemType::Down60ToFlatLongBase
(1 << 0) | (1 << 3), // TrackElemType::FlatToUp60LongBase
(1 << 0) | (1 << 3), // TrackElemType::CableLiftHill
(1 << 0) | (1 << 5), // TrackElemType::ReverseFreefallSlope
(1 << 0), // TrackElemType::ReverseFreefallVertical
(1 << 0), // TrackElemType::Up90
(1 << 0), // TrackElemType::Down90
(1 << 0), // TrackElemType::Up60ToUp90
(1 << 0), // TrackElemType::Down90ToDown60
(1 << 0), // TrackElemType::Up90ToUp60
(1 << 0), // TrackElemType::Down60ToDown90
(1 << 0), // TrackElemType::BrakeForDrop
(1 << 0) | (1 << 4), // TrackElemType::LeftEighthToDiag
(1 << 0) | (1 << 4), // TrackElemType::RightEighthToDiag
(1 << 0) | (1 << 4), // TrackElemType::LeftEighthToOrthogonal
(1 << 0) | (1 << 4), // TrackElemType::RightEighthToOrthogonal
(1 << 0) | (1 << 4), // TrackElemType::LeftEighthBankToDiag
(1 << 0) | (1 << 4), // TrackElemType::RightEighthBankToDiag
(1 << 0) | (1 << 4), // TrackElemType::LeftEighthBankToOrthogonal
(1 << 0) | (1 << 4), // TrackElemType::RightEighthBankToOrthogonal
(1 << 0), // TrackElemType::DiagFlat
(1 << 0), // TrackElemType::DiagUp25
(1 << 0), // TrackElemType::DiagUp60
(1 << 0), // TrackElemType::DiagFlatToUp25
(1 << 0), // TrackElemType::DiagUp25ToUp60
(1 << 0), // TrackElemType::DiagUp60ToUp25
(1 << 0), // TrackElemType::DiagUp25ToFlat
(1 << 3), // TrackElemType::DiagDown25
(1 << 3), // TrackElemType::DiagDown60
(1 << 3), // TrackElemType::DiagFlatToDown25
(1 << 3), // TrackElemType::DiagDown25ToDown60
(1 << 3), // TrackElemType::DiagDown60ToDown25
(1 << 3), // TrackElemType::DiagDown25ToFlat
(1 << 0), // TrackElemType::DiagFlatToUp60
(1 << 0), // TrackElemType::DiagUp60ToFlat
(1 << 3), // TrackElemType::DiagFlatToDown60
(1 << 3), // TrackElemType::DiagDown60ToFlat
(1 << 0), // TrackElemType::DiagFlatToLeftBank
(1 << 0), // TrackElemType::DiagFlatToRightBank
(1 << 0), // TrackElemType::DiagLeftBankToFlat
(1 << 0), // TrackElemType::DiagRightBankToFlat
(1 << 0), // TrackElemType::DiagLeftBankToUp25
(1 << 0), // TrackElemType::DiagRightBankToUp25
(1 << 0), // TrackElemType::DiagUp25ToLeftBank
(1 << 0), // TrackElemType::DiagUp25ToRightBank
(1 << 3), // TrackElemType::DiagLeftBankToDown25
(1 << 3), // TrackElemType::DiagRightBankToDown25
(1 << 3), // TrackElemType::DiagDown25ToLeftBank
(1 << 3), // TrackElemType::DiagDown25ToRightBank
(1 << 0), // TrackElemType::DiagLeftBank
(1 << 0), // TrackElemType::DiagRightBank
(1 << 0), // TrackElemType::LogFlumeReverser
(1 << 0), // TrackElemType::SpinningTunnel
(1 << 0) | (1 << 2), // TrackElemType::LeftBarrelRollUpToDown
(1 << 0) | (1 << 2), // TrackElemType::RightBarrelRollUpToDown
(1 << 0) | (1 << 2), // TrackElemType::LeftBarrelRollDownToUp
(1 << 0) | (1 << 2), // TrackElemType::RightBarrelRollDownToUp
(1 << 0) | (1 << 3), // TrackElemType::LeftBankToLeftQuarterTurn3TilesUp25
(1 << 0) | (1 << 3), // TrackElemType::RightBankToRightQuarterTurn3TilesUp25
(1 << 0) | (1 << 3), // TrackElemType::LeftQuarterTurn3TilesDown25ToLeftBank
(1 << 0) | (1 << 3), // TrackElemType::RightQuarterTurn3TilesDown25ToRightBank
(1 << 0), // TrackElemType::PoweredLift
(1 << 0) | (1 << 6), // TrackElemType::LeftLargeHalfLoopUp
(1 << 0) | (1 << 6), // TrackElemType::RightLargeHalfLoopUp
(1 << 0) | (1 << 6), // TrackElemType::RightLargeHalfLoopDown
(1 << 0) | (1 << 6), // TrackElemType::LeftLargeHalfLoopDown
(1 << 0) | (1 << 2), // TrackElemType::LeftFlyerTwistUp
(1 << 0) | (1 << 2), // TrackElemType::RightFlyerTwistUp
(1 << 0) | (1 << 2), // TrackElemType::LeftFlyerTwistDown
(1 << 0) | (1 << 2), // TrackElemType::RightFlyerTwistDown
(1 << 0) | (1 << 3), // TrackElemType::FlyerHalfLoopUp
(1 << 0) | (1 << 3), // TrackElemType::FlyerHalfLoopDown
(1 << 0) | (1 << 2), // TrackElemType::LeftFlyerCorkscrewUp
(1 << 0) | (1 << 2), // TrackElemType::RightFlyerCorkscrewUp
(1 << 0) | (1 << 2), // TrackElemType::LeftFlyerCorkscrewDown
(1 << 0) | (1 << 2), // TrackElemType::RightFlyerCorkscrewDown
(1 << 0) | (1 << 3), // TrackElemType::HeartLineTransferUp
(1 << 0) | (1 << 3), // TrackElemType::HeartLineTransferDown
(1 << 0) | (1 << 5), // TrackElemType::LeftHeartLineRoll
(1 << 0) | (1 << 5), // TrackElemType::RightHeartLineRoll
(1 << 0) | (1 << 1), // TrackElemType::MinigolfHoleA
(1 << 0) | (1 << 1), // TrackElemType::MinigolfHoleB
(1 << 0) | (1 << 1), // TrackElemType::MinigolfHoleC
(1 << 0) | (1 << 2), // TrackElemType::MinigolfHoleD
(1 << 0) | (1 << 2), // TrackElemType::MinigolfHoleE
(1 << 0) | (1 << 2), // TrackElemType::MultiDimInvertedFlatToDown90QuarterLoop
(1 << 0) | (1 << 2), // TrackElemType::Up90ToInvertedFlatQuarterLoop
(1 << 0) | (1 << 2), // TrackElemType::InvertedFlatToDown90QuarterLoop
(1 << 0) | (1 << 3), // TrackElemType::LeftCurvedLiftHill
(1 << 0) | (1 << 3), // TrackElemType::RightCurvedLiftHill
(1 << 0) | (1 << 5), // TrackElemType::LeftReverser
(1 << 0) | (1 << 5), // TrackElemType::RightReverser
(1 << 0) | (1 << 3), // TrackElemType::AirThrustTopCap
(1 << 0), // TrackElemType::AirThrustVerticalDown
(1 << 0) | (1 << 5), // TrackElemType::AirThrustVerticalDownToLevel
(1 << 0), // TrackElemType::BlockBrakes
(1 << 0) | (1 << 3), // TrackElemType::LeftBankedQuarterTurn3TileUp25
(1 << 0) | (1 << 3), // TrackElemType::RightBankedQuarterTurn3TileUp25
(1 << 0) | (1 << 3), // TrackElemType::LeftBankedQuarterTurn3TileDown25
(1 << 0) | (1 << 3), // TrackElemType::RightBankedQuarterTurn3TileDown25
(1 << 0) | (1 << 6), // TrackElemType::LeftBankedQuarterTurn5TileUp25
(1 << 0) | (1 << 6), // TrackElemType::RightBankedQuarterTurn5TileUp25
(1 << 0) | (1 << 6), // TrackElemType::LeftBankedQuarterTurn5TileDown25
(1 << 0) | (1 << 6), // TrackElemType::RightBankedQuarterTurn5TileDown25
(1 << 0), // TrackElemType::Up25ToLeftBankedUp25
(1 << 0), // TrackElemType::Up25ToRightBankedUp25
(1 << 0), // TrackElemType::LeftBankedUp25ToUp25
(1 << 0), // TrackElemType::RightBankedUp25ToUp25
(1 << 0), // TrackElemType::Down25ToLeftBankedDown25
(1 << 0), // TrackElemType::Down25ToRightBankedDown25
(1 << 0), // TrackElemType::LeftBankedDown25ToDown25
(1 << 0), // TrackElemType::RightBankedDown25ToDown25
(1 << 0), // TrackElemType::LeftBankedFlatToLeftBankedUp25
(1 << 0), // TrackElemType::RightBankedFlatToRightBankedUp25
(1 << 0), // TrackElemType::LeftBankedUp25ToLeftBankedFlat
(1 << 0), // TrackElemType::RightBankedUp25ToRightBankedFlat
(1 << 0), // TrackElemType::LeftBankedFlatToLeftBankedDown25
(1 << 0), // TrackElemType::RightBankedFlatToRightBankedDown25
(1 << 0), // TrackElemType::LeftBankedDown25ToLeftBankedFlat
(1 << 0), // TrackElemType::RightBankedDown25ToRightBankedFlat
(1 << 0), // TrackElemType::FlatToLeftBankedUp25
(1 << 0), // TrackElemType::FlatToRightBankedUp25
(1 << 0), // TrackElemType::LeftBankedUp25ToFlat
(1 << 0), // TrackElemType::RightBankedUp25ToFlat
(1 << 0), // TrackElemType::FlatToLeftBankedDown25
(1 << 0), // TrackElemType::FlatToRightBankedDown25
(1 << 0), // TrackElemType::LeftBankedDown25ToFlat
(1 << 0), // TrackElemType::RightBankedDown25ToFlat
(1 << 0), // TrackElemType::LeftQuarterTurn1TileUp90
(1 << 0), // TrackElemType::RightQuarterTurn1TileUp90
(1 << 0), // TrackElemType::LeftQuarterTurn1TileDown90
(1 << 0), // TrackElemType::RightQuarterTurn1TileDown90
(1 << 0) | (1 << 2), // TrackElemType::MultiDimUp90ToInvertedFlatQuarterLoop
(1 << 0) | (1 << 2), // TrackElemType::MultiDimFlatToDown90QuarterLoop
(1 << 0) | (1 << 2), // 255
};
/** rct2: 0x00999A94 */
const uint8_t TrackSequenceElementAllowedWallEdges[][16] = {
{ 0b1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::Flat
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::EndStation
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::BeginStation
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::MiddleStation
{ 0b1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::Up25
{ 0b1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::Up60
{ 0b1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::FlatToUp25
{ 0b1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::Up25ToUp60
{ 0b1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::Up60ToUp25
{ 0b1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::Up25ToFlat
{ 0b1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::Down25
{ 0b1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::Down60
{ 0b1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::FlatToDown25
{ 0b1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::Down25ToDown60
{ 0b1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::Down60ToDown25
{ 0b1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::Down25ToFlat
{ 0b0010, 0b1100, 0b0011, 0, 0b1100, 0b0011, 0b0001, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::LeftQuarterTurn5Tiles
{ 0b1000, 0b0110, 0b1001, 0, 0b0110, 0b1001, 0b0001, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::RightQuarterTurn5Tiles
{ 0b1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::FlatToLeftBank
{ 0b1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::FlatToRightBank
{ 0b1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::LeftBankToFlat
{ 0b1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::RightBankToFlat
{ 0b0010, 0b1100, 0b0011, 0, 0b1100, 0b0011, 0b0001, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::BankedLeftQuarterTurn5Tiles
{ 0b1000, 0b0110, 0b1001, 0, 0b0110, 0b1001, 0b0001, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::BankedRightQuarterTurn5Tiles
{ 0b1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::LeftBankToUp25
{ 0b1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::RightBankToUp25
{ 0b1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::Up25ToLeftBank
{ 0b1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::Up25ToRightBank
{ 0b1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::LeftBankToDown25
{ 0b1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::RightBankToDown25
{ 0b1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::Down25ToLeftBank
{ 0b1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::Down25ToRightBank
{ 0b1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::LeftBank
{ 0b1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::RightBank
{ 0b0010, 0b1100, 0b0011, 0, 0b1100, 0b0011, 0b0001, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::LeftQuarterTurn5TilesUp25
{ 0b1000, 0b0110, 0b1001, 0, 0b0110, 0b1001, 0b0001, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::RightQuarterTurn5TilesUp25
{ 0b0010, 0b1100, 0b0011, 0, 0b1100, 0b0011, 0b0001, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::LeftQuarterTurn5TilesDown25
{ 0b1000, 0b0110, 0b1001, 0, 0b0110, 0b1001, 0b0001, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::RightQuarterTurn5TilesDown25
{ 0b1010, 0b0011, 0b1100, 0b1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::SBendLeft
{ 0b1010, 0b1001, 0b0110, 0b1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::SBendRight
{ 0b0010, 0b0010, 0b0011, 0, 0, 0, 0, 0b1100, 0b1000, 0b1000, 0, 0, 0, 0, 0, 0 }, // TrackElemType::LeftVerticalLoop
{ 0b1000, 0b1000, 0b1001, 0, 0, 0, 0, 0b0110, 0b0010, 0b0010, 0, 0, 0, 0, 0, 0 }, // TrackElemType::RightVerticalLoop
{ 0b0010, 0b1100, 0b0011, 0b0001, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::LeftQuarterTurn3Tiles
{ 0b1000, 0b0110, 0b1001, 0b0001, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::RightQuarterTurn3Tiles
{ 0b0010, 0b1100, 0b0011, 0b0001, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::LeftBankedQuarterTurn3Tiles
{ 0b1000, 0b0110, 0b1001, 0b0001, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::RightBankedQuarterTurn3Tiles
{ 0b0010, 0b1100, 0b0011, 0b0001, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::LeftQuarterTurn3TilesUp25
{ 0b1000, 0b0110, 0b1001, 0b0001, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::RightQuarterTurn3TilesUp25
{ 0b0010, 0b1100, 0b0011, 0b0001, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::LeftQuarterTurn3TilesDown25
{ 0b1000, 0b0110, 0b1001, 0b0001, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::RightQuarterTurn3TilesDown25
{ 0b0011, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::LeftQuarterTurn1Tile
{ 0b1001, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::RightQuarterTurn1Tile
{ 0b1010, 0b1010, 0b1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::LeftTwistDownToUp
{ 0b1010, 0b1010, 0b1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::RightTwistDownToUp
{ 0b1010, 0b1010, 0b1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::LeftTwistUpToDown
{ 0b1010, 0b1010, 0b1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::RightTwistUpToDown
{ 0b1010, 0b1010, 0b1011, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::HalfLoopUp
{ 0, 0b1011, 0b1010, 0b1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::HalfLoopDown
{ 0b1010, 0b0011, 0b0101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::LeftCorkscrewUp
{ 0b1010, 0b1001, 0b0101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::RightCorkscrewUp
{ 0b1010, 0b0011, 0b0101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::LeftCorkscrewDown
{ 0b1010, 0b1001, 0b0101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::RightCorkscrewDown
{ 0b1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::FlatToUp60
{ 0b1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::Up60ToFlat
{ 0b1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::FlatToDown60
{ 0b1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::Down60ToFlat
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::TowerBase
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::TowerSection
{ 0b1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::FlatCovered
{ 0b1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::Up25Covered
{ 0b1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::Up60Covered
{ 0b1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::FlatToUp25Covered
{ 0b1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::Up25ToUp60Covered
{ 0b1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::Up60ToUp25Covered
{ 0b1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::Up25ToFlatCovered
{ 0b1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::Down25Covered
{ 0b1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::Down60Covered
{ 0b1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::FlatToDown25Covered
{ 0b1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::Down25ToDown60Covered
{ 0b1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::Down60ToDown25Covered
{ 0b1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::Down25ToFlatCovered
{ 0b0010, 0b1100, 0b0011, 0, 0b1100, 0b0011, 0b0001, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::LeftQuarterTurn5TilesCovered
{ 0b1000, 0b0110, 0b1001, 0, 0b0110, 0b1001, 0b0001, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::RightQuarterTurn5TilesCovered
{ 0b1010, 0b0011, 0b1100, 0b1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::SBendLeftCovered
{ 0b1010, 0b1001, 0b0110, 0b1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::SBendRightCovered
{ 0b0010, 0b1100, 0b0011, 0b0001, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::LeftQuarterTurn3TilesCovered
{ 0b1000, 0b0110, 0b1001, 0b0001, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::RightQuarterTurn3TilesCovered
{ 0b0010, 0b1100, 0b0011, 0b0001, 0b0001, 0b0110, 0b1001, 0b1000, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::LeftHalfBankedHelixUpSmall
{ 0b1000, 0b0110, 0b1001, 0b0001, 0b0001, 0b1100, 0b0011, 0b0010, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::RightHalfBankedHelixUpSmall
{ 0b0010, 0b1100, 0b0011, 0b0001, 0b0001, 0b0110, 0b1001, 0b1000, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::LeftHalfBankedHelixDownSmall
{ 0b1000, 0b0110, 0b1001, 0b0001, 0b0001, 0b1100, 0b0011, 0b0010, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::RightHalfBankedHelixDownSmall
{ 0b0010, 0b1100, 0b0011, 0, 0b1100, 0b0011, 0b0001, 0b0001, 0b0110, 0b1001, 0, 0b0110, 0b1001, 0b1000, 0, 0 }, // TrackElemType::LeftHalfBankedHelixUpLarge
{ 0b1000, 0b0110, 0b1001, 0, 0b0110, 0b1001, 0b0001, 0b0001, 0b1100, 0b0011, 0, 0b1100, 0b0011, 0b0010, 0, 0 }, // TrackElemType::RightHalfBankedHelixUpLarge
{ 0b0010, 0b1100, 0b0011, 0, 0b1100, 0b0011, 0b0001, 0b0001, 0b0110, 0b1001, 0, 0b0110, 0b1001, 0b1000, 0, 0 }, // TrackElemType::LeftHalfBankedHelixDownLarge
{ 0b1000, 0b0110, 0b1001, 0, 0b0110, 0b1001, 0b0001, 0b0001, 0b1100, 0b0011, 0, 0b1100, 0b0011, 0b0010, 0, 0 }, // TrackElemType::RightHalfBankedHelixDownLarge
{ 0b0011, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::LeftQuarterTurn1TileUp60
{ 0b1001, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::RightQuarterTurn1TileUp60
{ 0b0011, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::LeftQuarterTurn1TileDown60
{ 0b1001, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::RightQuarterTurn1TileDown60
{ 0b1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::Brakes
{ 0b1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::RotationControlToggle
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::InvertedUp90ToFlatQuarterLoopAlias / Maze
{ 0b0010, 0b1100, 0b0011, 0, 0b1100, 0b0011, 0b0001, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::LeftQuarterBankedHelixLargeUp
{ 0b1000, 0b0110, 0b1001, 0, 0b0110, 0b1001, 0b0001, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::RightQuarterBankedHelixLargeUp
{ 0b0010, 0b1100, 0b0011, 0, 0b1100, 0b0011, 0b0001, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::LeftQuarterBankedHelixLargeDown
{ 0b1000, 0b0110, 0b1001, 0, 0b0110, 0b1001, 0b0001, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::RightQuarterBankedHelixLargeDown
{ 0b0010, 0b1100, 0b0011, 0, 0b1100, 0b0011, 0b0001, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::LeftQuarterHelixLargeUp
{ 0b1000, 0b0110, 0b1001, 0, 0b0110, 0b1001, 0b0001, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::RightQuarterHelixLargeUp
{ 0b0010, 0b1100, 0b0011, 0, 0b1100, 0b0011, 0b0001, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::LeftQuarterHelixLargeDown
{ 0b1000, 0b0110, 0b1001, 0, 0b0110, 0b1001, 0b0001, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::RightQuarterHelixLargeDown
{ 0b1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::Up25LeftBanked
{ 0b1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::Up25RightBanked
{ 0b1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::Waterfall
{ 0b1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::Rapids
{ 0b1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::OnRidePhoto
{ 0b1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::Down25LeftBanked
{ 0b1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::Down25RightBanked
{ 0b1010, 0b1010, 0b1010, 0b1010, 0b1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::Watersplash
{ 0b1010, 0b1010, 0b1010, 0b1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::FlatToUp60LongBase
{ 0b1010, 0b1010, 0b1010, 0b1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::Up60ToFlatLongBase
{ 0b1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::Whirlpool
{ 0b1010, 0b1010, 0b1010, 0b1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::Down60ToFlatLongBase
{ 0b1010, 0b1010, 0b1010, 0b1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::FlatToDown60LongBase
{ 0b1010, 0b1010, 0b1010, 0b1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::CableLiftHill
{ 0b1010, 0b1010, 0b1010, 0b1010, 0b1010, 0b1011, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::ReverseFreefallSlope
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::ReverseFreefallVertical
{ 0b1111, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::Up90
{ 0b1111, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::Down90
{ 0b1011, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::Up60ToUp90
{ 0b1110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::Down90ToDown60
{ 0b1011, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::Up90ToUp60
{ 0b1110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::Down60ToDown90
{ 0b1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::BrakeForDrop
{ 0b0010, 0b0010, 0b1000, 0b0011, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::LeftEighthToDiag
{ 0b1000, 0b1000, 0b0010, 0b1001, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::RightEighthToDiag
{ 0, 0b1000, 0b0110, 0b0010, 0b0010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::LeftEighthToOrthogonal
{ 0, 0b0100, 0b1001, 0b0001, 0b0001, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::RightEighthToOrthogonal
{ 0b0010, 0b0010, 0b1000, 0b0011, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::LeftEighthBankToDiag
{ 0b1000, 0b1000, 0b0010, 0b1001, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::RightEighthBankToDiag
{ 0, 0b1000, 0b0110, 0b0010, 0b0010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::LeftEighthBankToOrthogonal
{ 0, 0b0100, 0b1001, 0b0001, 0b0001, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::RightEighthBankToOrthogonal
{ 0, 0b0110, 0b1001, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::DiagFlat
{ 0, 0b0110, 0b1001, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::DiagUp25
{ 0, 0b0110, 0b1001, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::DiagUp60
{ 0, 0b0110, 0b1001, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::DiagFlatToUp25
{ 0, 0b0110, 0b1001, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::DiagUp25ToUp60
{ 0, 0b0110, 0b1001, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::DiagUp60ToUp25
{ 0, 0b0110, 0b1001, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::DiagUp25ToFlat
{ 0, 0b0110, 0b1001, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::DiagDown25
{ 0, 0b0110, 0b1001, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::DiagDown60
{ 0, 0b0110, 0b1001, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::DiagFlatToDown25
{ 0, 0b0110, 0b1001, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::DiagDown25ToDown60
{ 0, 0b0110, 0b1001, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::DiagDown60ToDown25
{ 0, 0b0110, 0b1001, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::DiagDown25ToFlat
{ 0, 0b0110, 0b1001, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::DiagFlatToUp60
{ 0, 0b0110, 0b1001, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::DiagUp60ToFlat
{ 0, 0b0110, 0b1001, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::DiagFlatToDown60
{ 0, 0b0110, 0b1001, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::DiagDown60ToFlat
{ 0, 0b0110, 0b1001, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::DiagFlatToLeftBank
{ 0, 0b0110, 0b1001, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::DiagFlatToRightBank
{ 0, 0b0110, 0b1001, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::DiagLeftBankToFlat
{ 0, 0b0110, 0b1001, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::DiagRightBankToFlat
{ 0, 0b0110, 0b1001, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::DiagLeftBankToUp25
{ 0, 0b0110, 0b1001, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::DiagRightBankToUp25
{ 0, 0b0110, 0b1001, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::DiagUp25ToLeftBank
{ 0, 0b0110, 0b1001, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::DiagUp25ToRightBank
{ 0, 0b0110, 0b1001, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::DiagLeftBankToDown25
{ 0, 0b0110, 0b1001, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::DiagRightBankToDown25
{ 0, 0b0110, 0b1001, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::DiagDown25ToLeftBank
{ 0, 0b0110, 0b1001, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::DiagDown25ToRightBank
{ 0, 0b0110, 0b1001, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::DiagLeftBank
{ 0, 0b0110, 0b1001, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::DiagRightBank
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::LogFlumeReverser
{ 0b1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::SpinningTunnel
{ 0b1010, 0b1010, 0b1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::LeftBarrelRollUpToDown
{ 0b1010, 0b1010, 0b1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::RightBarrelRollUpToDown
{ 0b1010, 0b1010, 0b1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::LeftBarrelRollDownToUp
{ 0b1010, 0b1010, 0b1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::RightBarrelRollDownToUp
{ 0b0010, 0b1100, 0b0011, 0b0001, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::LeftBankToLeftQuarterTurn3TilesUp25
{ 0b1000, 0b0110, 0b1001, 0b0001, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::RightBankToRightQuarterTurn3TilesUp25
{ 0b0010, 0b1100, 0b0011, 0b0001, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::LeftQuarterTurn3TilesDown25ToLeftBank
{ 0b1000, 0b0110, 0b1001, 0b0001, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::RightQuarterTurn3TilesDown25ToRightBank
{ 0b1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::PoweredLift
{ 0b1010, 0b1010, 0b0010, 0b0011, 0b1001, 0b1000, 0b1000, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::LeftLargeHalfLoopUp
{ 0b1010, 0b1010, 0b1000, 0b1001, 0b0011, 0b0010, 0b0010, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::RightLargeHalfLoopUp
{ 0b0010, 0b0010, 0b0011, 0b1001, 0b1000, 0b1010, 0b1010, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::RightLargeHalfLoopDown
{ 0b1000, 0b1000, 0b1001, 0b0011, 0b0010, 0b1010, 0b1010, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::LeftLargeHalfLoopDown
{ 0b1010, 0b1010, 0b1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::LeftFlyerTwistUp
{ 0b1010, 0b1010, 0b1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::RightFlyerTwistUp
{ 0b1010, 0b1010, 0b1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::LeftFlyerTwistDown
{ 0b1010, 0b1010, 0b1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::RightFlyerTwistDown
{ 0b1010, 0b1010, 0b1011, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::FlyerHalfLoopUp
{ 0, 0b1011, 0b1010, 0b1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::FlyerHalfLoopDown
{ 0b1010, 0b0011, 0b0101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::LeftFlyerCorkscrewUp
{ 0b1010, 0b1001, 0b0101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::RightFlyerCorkscrewUp
{ 0b1010, 0b0011, 0b0101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::LeftFlyerCorkscrewDown
{ 0b1010, 0b1001, 0b0101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::RightFlyerCorkscrewDown
{ 0b1010, 0b1010, 0b1010, 0b1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::HeartLineTransferUp
{ 0b1010, 0b1010, 0b1010, 0b1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::HeartLineTransferDown
{ 0b1010, 0b1010, 0b1010, 0b1010, 0b1010, 0b1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::LeftHeartLineRoll
{ 0b1010, 0b1010, 0b1010, 0b1010, 0b1010, 0b1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::RightHeartLineRoll
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::MinigolfHoleA
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::MinigolfHoleB
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::MinigolfHoleC
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::MinigolfHoleD
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::MinigolfHoleE
{ 0b1010, 0b1010, 0b1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::MultiDimInvertedFlatToDown90QuarterLoop
{ 0b1010, 0b1010, 0b1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::Up90ToInvertedFlatQuarterLoop
{ 0b1010, 0b1010, 0b1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::InvertedFlatToDown90QuarterLoop
{ 0b0010, 0b1100, 0b0011, 0b0001, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::LeftCurvedLiftHill
{ 0b1000, 0b0110, 0b1001, 0b0001, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::RightCurvedLiftHill
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::LeftReverser
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::RightReverser
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::AirThrustTopCap
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::AirThrustVerticalDown
{ 0b1010, 0b1010, 0b1010, 0b1010, 0b1010, 0b1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::AirThrustVerticalDownToLevel
{ 0b1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::BlockBrakes
{ 0b0010, 0b1100, 0b0011, 0b0001, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::LeftBankedQuarterTurn3TileUp25
{ 0b1000, 0b0110, 0b1001, 0b0001, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::RightBankedQuarterTurn3TileUp25
{ 0b0010, 0b1100, 0b0011, 0b0001, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::LeftBankedQuarterTurn3TileDown25
{ 0b1000, 0b0110, 0b1001, 0b0001, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::RightBankedQuarterTurn3TileDown25
{ 0b0010, 0b1100, 0b0011, 0, 0b1100, 0b0011, 0b0001, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::LeftBankedQuarterTurn5TileUp25
{ 0b1000, 0b0110, 0b1001, 0, 0b0110, 0b1001, 0b0001, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::RightBankedQuarterTurn5TileUp25
{ 0b0010, 0b1100, 0b0011, 0, 0b1100, 0b0011, 0b0001, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::LeftBankedQuarterTurn5TileDown25
{ 0b1000, 0b0110, 0b1001, 0, 0b0110, 0b1001, 0b0001, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::RightBankedQuarterTurn5TileDown25
{ 0b1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::Up25ToLeftBankedUp25
{ 0b1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::Up25ToRightBankedUp25
{ 0b1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::LeftBankedUp25ToUp25
{ 0b1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::RightBankedUp25ToUp25
{ 0b1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::Down25ToLeftBankedDown25
{ 0b1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::Down25ToRightBankedDown25
{ 0b1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::LeftBankedDown25ToDown25
{ 0b1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::RightBankedDown25ToDown25
{ 0b1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::LeftBankedFlatToLeftBankedUp25
{ 0b1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::RightBankedFlatToRightBankedUp25
{ 0b1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::LeftBankedUp25ToLeftBankedFlat
{ 0b1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::RightBankedUp25ToRightBankedFlat
{ 0b1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::LeftBankedFlatToLeftBankedDown25
{ 0b1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::RightBankedFlatToRightBankedDown25
{ 0b1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::LeftBankedDown25ToLeftBankedFlat
{ 0b1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::RightBankedDown25ToRightBankedFlat
{ 0b1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::FlatToLeftBankedUp25
{ 0b1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::FlatToRightBankedUp25
{ 0b1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::LeftBankedUp25ToFlat
{ 0b1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::RightBankedUp25ToFlat
{ 0b1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::FlatToLeftBankedDown25
{ 0b1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::FlatToRightBankedDown25
{ 0b1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::LeftBankedDown25ToFlat
{ 0b1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::RightBankedDown25ToFlat
{ 0b1111, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::LeftQuarterTurn1TileUp90
{ 0b1111, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::RightQuarterTurn1TileUp90
{ 0b1111, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::LeftQuarterTurn1TileDown90
{ 0b1111, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::RightQuarterTurn1TileDown90
{ 0b1010, 0b1010, 0b1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::MultiDimUp90ToInvertedFlatQuarterLoop
{ 0b1010, 0b1010, 0b1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::MultiDimFlatToDown90QuarterLoop
{ 0b1010, 0b1010, 0b1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // 255
};
/** rct2: 0x0099AA94 */
const uint8_t FlatRideTrackSequenceElementAllowedWallEdges[][16] = {
{ 0b1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0b1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0b1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0b1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0b1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0b1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0b1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0b1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0b1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0b1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0b1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0b1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0b1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0b0010, 0b1100, 0b0011, 0, 0b1100, 0b0011, 0b0001, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0b1000, 0b0110, 0b1001, 0, 0b0110, 0b1001, 0b0001, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0b1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0b1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0b1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0b1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0b0010, 0b1100, 0b0011, 0, 0b1100, 0b0011, 0b0001, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0b1000, 0b0110, 0b1001, 0, 0b0110, 0b1001, 0b0001, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0b1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0b1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0b1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0b1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0b1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0b1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0b1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0b1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0b1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0b1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0b0010, 0b1100, 0b0011, 0, 0b1100, 0b0011, 0b0001, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0b1000, 0b0110, 0b1001, 0, 0b0110, 0b1001, 0b0001, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0b0010, 0b1100, 0b0011, 0, 0b1100, 0b0011, 0b0001, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0b1000, 0b0110, 0b1001, 0, 0b0110, 0b1001, 0b0001, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0b1010, 0b0011, 0b1100, 0b1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0b1010, 0b1001, 0b0110, 0b1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0b0010, 0b0010, 0b0011, 0, 0, 0, 0, 0b1100, 0b1000, 0b1000, 0, 0, 0, 0, 0, 0 },
{ 0b1000, 0b1000, 0b1001, 0, 0, 0, 0, 0b0110, 0b0010, 0b0010, 0, 0, 0, 0, 0, 0 },
{ 0b0010, 0b1100, 0b0011, 0b0001, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0b1000, 0b0110, 0b1001, 0b0001, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0b0010, 0b1100, 0b0011, 0b0001, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0b1000, 0b0110, 0b1001, 0b0001, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0b0010, 0b1100, 0b0011, 0b0001, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0b1000, 0b0110, 0b1001, 0b0001, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0b0010, 0b1100, 0b0011, 0b0001, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0b1000, 0b0110, 0b1001, 0b0001, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0b0011, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0b1001, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0b1010, 0b1010, 0b1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0b1010, 0b1010, 0b1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0b1010, 0b1010, 0b1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0b1010, 0b1010, 0b1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0b1010, 0b1010, 0b1011, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0, 0b1011, 0b1010, 0b1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0b1010, 0b0011, 0b0101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0b1010, 0b1001, 0b0101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0b1010, 0b0011, 0b0101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0b1010, 0b1001, 0b0101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0b1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0b1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0b1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0b1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0b1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0b1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0b1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0b1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0b1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0b1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0b1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0b1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0b1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0b1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0b1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0b1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0b1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0b0010, 0b1100, 0b0011, 0, 0b1100, 0b0011, 0b0001, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0b1000, 0b0110, 0b1001, 0, 0b0110, 0b1001, 0b0001, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0b1010, 0b0011, 0b1100, 0b1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0b1010, 0b1001, 0b0110, 0b1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0b0010, 0b1100, 0b0011, 0b0001, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0b1000, 0b0110, 0b1001, 0b0001, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0b0010, 0b1100, 0b0011, 0b0001, 0b0001, 0b0110, 0b1001, 0b1000, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0b1000, 0b0110, 0b1001, 0b0001, 0b0001, 0b1100, 0b0011, 0b0010, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0b0010, 0b1100, 0b0011, 0b0001, 0b0001, 0b0110, 0b1001, 0b1000, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0b1000, 0b0110, 0b1001, 0b0001, 0b0001, 0b1100, 0b0011, 0b0010, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0b0010, 0b1100, 0b0011, 0, 0b1100, 0b0011, 0b0001, 0b0001, 0b0110, 0b1001, 0, 0b0110, 0b1001, 0b1000, 0, 0 },
{ 0b1000, 0b0110, 0b1001, 0, 0b0110, 0b1001, 0b0001, 0b0001, 0b1100, 0b0011, 0, 0b1100, 0b0011, 0b0010, 0, 0 },
{ 0b0010, 0b1100, 0b0011, 0, 0b1100, 0b0011, 0b0001, 0b0001, 0b0110, 0b1001, 0, 0b0110, 0b1001, 0b1000, 0, 0 },
{ 0b1000, 0b0110, 0b1001, 0, 0b0110, 0b1001, 0b0001, 0b0001, 0b1100, 0b0011, 0, 0b1100, 0b0011, 0b0010, 0, 0 },
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // FLAT_TRACK_ELEM_1_X_4_A
{ 0b1001, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0b0011, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0b1001, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0b1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0b1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0b0010, 0b1100, 0b0011, 0, 0b1100, 0b0011, 0b0001, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0b1000, 0b0110, 0b1001, 0, 0b0110, 0b1001, 0b0001, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0b0010, 0b1100, 0b0011, 0, 0b1100, 0b0011, 0b0001, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0b1000, 0b0110, 0b1001, 0, 0b0110, 0b1001, 0b0001, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0b0010, 0b1100, 0b0011, 0, 0b1100, 0b0011, 0b0001, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0b1000, 0b0110, 0b1001, 0, 0b0110, 0b1001, 0b0001, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0b0010, 0b1100, 0b0011, 0, 0b1100, 0b0011, 0b0001, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0b1000, 0b0110, 0b1001, 0, 0b0110, 0b1001, 0b0001, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // FLAT_TRACK_ELEM_2_X_2
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // FLAT_TRACK_ELEM_4_X_4
{ 0b1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0b1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0b1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // FLAT_TRACK_ELEM_1_X_5
{ 0b1010, 0b1010, 0b1010, 0b1010, 0b1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // FLAT_TRACK_ELEM_1_X_1_A
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // FLAT_TRACK_ELEM_1_X_4_B
{ 0b1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // FLAT_TRACK_ELEM_1_X_1_B
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // FLAT_TRACK_ELEM_1_X_4_C
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // FLAT_TRACK_ELEM_3_X_3
{ 0b1010, 0b1010, 0b1010, 0b1010, 0b1010, 0b1011, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0b1111, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0b1111, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0b1011, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0b1110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0b1011, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0b1110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0b1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0b0010, 0b0010, 0b1000, 0b0011, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0b1000, 0b1000, 0b0010, 0b1001, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0, 0b1000, 0b0110, 0b0010, 0b0010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0, 0b0100, 0b1001, 0b0001, 0b0001, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0b0010, 0b0010, 0b1000, 0b0011, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0b1000, 0b1000, 0b0010, 0b1001, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0, 0b1000, 0b0110, 0b0010, 0b0010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0, 0b0100, 0b1001, 0b0001, 0b0001, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0, 0b0110, 0b1001, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0, 0b0110, 0b1001, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0, 0b0110, 0b1001, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0, 0b0110, 0b1001, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0, 0b0110, 0b1001, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0, 0b0110, 0b1001, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0, 0b0110, 0b1001, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0, 0b0110, 0b1001, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0, 0b0110, 0b1001, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0, 0b0110, 0b1001, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0, 0b0110, 0b1001, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0, 0b0110, 0b1001, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0, 0b0110, 0b1001, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0, 0b0110, 0b1001, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0, 0b0110, 0b1001, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0, 0b0110, 0b1001, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0, 0b0110, 0b1001, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0, 0b0110, 0b1001, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0, 0b0110, 0b1001, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0, 0b0110, 0b1001, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0, 0b0110, 0b1001, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0, 0b0110, 0b1001, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0, 0b0110, 0b1001, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0, 0b0110, 0b1001, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0, 0b0110, 0b1001, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0, 0b0110, 0b1001, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0, 0b0110, 0b1001, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0, 0b0110, 0b1001, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0, 0b0110, 0b1001, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0, 0b0110, 0b1001, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0, 0b0110, 0b1001, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0b1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0b1010, 0b1010, 0b1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0b1010, 0b1010, 0b1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0b1010, 0b1010, 0b1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0b1010, 0b1010, 0b1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0b0010, 0b1100, 0b0011, 0b0001, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0b1000, 0b0110, 0b1001, 0b0001, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0b0010, 0b1100, 0b0011, 0b0001, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0b1000, 0b0110, 0b1001, 0b0001, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0b1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0b1010, 0b1010, 0b0010, 0b0011, 0b1001, 0b1000, 0b1000, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0b1010, 0b1010, 0b1000, 0b1001, 0b0011, 0b0010, 0b0010, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0b0010, 0b0010, 0b0011, 0b1001, 0b1000, 0b1010, 0b1010, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0b1000, 0b1000, 0b1001, 0b0011, 0b0010, 0b1010, 0b1010, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0b1010, 0b1010, 0b1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0b1010, 0b1010, 0b1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0b1010, 0b1010, 0b1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0b1010, 0b1010, 0b1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0b1010, 0b1010, 0b1011, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0, 0b1011, 0b1010, 0b1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0b1010, 0b0011, 0b0101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0b1010, 0b1001, 0b0101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0b1010, 0b0011, 0b0101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0b1010, 0b1001, 0b0101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0b1010, 0b1010, 0b1010, 0b1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0b1010, 0b1010, 0b1010, 0b1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0b1010, 0b1010, 0b1010, 0b1010, 0b1010, 0b1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0b1010, 0b1010, 0b1010, 0b1010, 0b1010, 0b1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0b0010, 0b1100, 0b0011, 0b0001, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0b1000, 0b0110, 0b1001, 0b0001, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0b1010, 0b1010, 0b1010, 0b1010, 0b1010, 0b1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0b1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0b0010, 0b1100, 0b0011, 0b0001, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0b1000, 0b0110, 0b1001, 0b0001, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0b0010, 0b1100, 0b0011, 0b0001, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0b1000, 0b0110, 0b1001, 0b0001, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0b0010, 0b1100, 0b0011, 0, 0b1100, 0b0011, 0b0001, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0b1000, 0b0110, 0b1001, 0, 0b0110, 0b1001, 0b0001, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0b0010, 0b1100, 0b0011, 0, 0b1100, 0b0011, 0b0001, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0b1000, 0b0110, 0b1001, 0, 0b0110, 0b1001, 0b0001, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0b1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0b1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0b1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0b1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0b1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0b1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0b1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0b1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0b1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0b1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0b1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0b1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0b1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0b1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0b1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0b1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0b1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0b1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0b1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0b1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0b1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0b1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0b1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0b1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0b1111, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0b1111, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0b1111, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0b1111, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
};
/** rct2: 0x0099443C */
const uint16_t FlatTrackFlags[] = {
/* */ TRACK_ELEM_FLAG_ALLOW_LIFT_HILL,
/* */ 0,
/* */ 0,
/* */ 0,
/* */ TRACK_ELEM_FLAG_UP | TRACK_ELEM_FLAG_STARTS_AT_HALF_HEIGHT | TRACK_ELEM_FLAG_ALLOW_LIFT_HILL,
/* */ TRACK_ELEM_FLAG_UP | TRACK_ELEM_FLAG_STARTS_AT_HALF_HEIGHT | TRACK_ELEM_FLAG_IS_STEEP_UP | TRACK_ELEM_FLAG_ALLOW_LIFT_HILL,
/* */ TRACK_ELEM_FLAG_UP | TRACK_ELEM_FLAG_ALLOW_LIFT_HILL,
/* */ TRACK_ELEM_FLAG_UP | TRACK_ELEM_FLAG_STARTS_AT_HALF_HEIGHT | TRACK_ELEM_FLAG_IS_STEEP_UP | TRACK_ELEM_FLAG_ALLOW_LIFT_HILL,
/* */ TRACK_ELEM_FLAG_UP | TRACK_ELEM_FLAG_STARTS_AT_HALF_HEIGHT | TRACK_ELEM_FLAG_IS_STEEP_UP | TRACK_ELEM_FLAG_ALLOW_LIFT_HILL,
/* */ TRACK_ELEM_FLAG_UP | TRACK_ELEM_FLAG_STARTS_AT_HALF_HEIGHT | TRACK_ELEM_FLAG_ALLOW_LIFT_HILL,
/* */ TRACK_ELEM_FLAG_DOWN | TRACK_ELEM_FLAG_STARTS_AT_HALF_HEIGHT | TRACK_ELEM_FLAG_ALLOW_LIFT_HILL,
/* */ TRACK_ELEM_FLAG_DOWN | TRACK_ELEM_FLAG_STARTS_AT_HALF_HEIGHT | TRACK_ELEM_FLAG_ALLOW_LIFT_HILL,
/* */ TRACK_ELEM_FLAG_DOWN | TRACK_ELEM_FLAG_STARTS_AT_HALF_HEIGHT | TRACK_ELEM_FLAG_ALLOW_LIFT_HILL,
/* */ TRACK_ELEM_FLAG_DOWN | TRACK_ELEM_FLAG_STARTS_AT_HALF_HEIGHT | TRACK_ELEM_FLAG_ALLOW_LIFT_HILL,
/* */ TRACK_ELEM_FLAG_DOWN | TRACK_ELEM_FLAG_STARTS_AT_HALF_HEIGHT | TRACK_ELEM_FLAG_ALLOW_LIFT_HILL,
/* */ TRACK_ELEM_FLAG_DOWN | TRACK_ELEM_FLAG_ALLOW_LIFT_HILL,
/* */ TRACK_ELEM_FLAG_TURN_LEFT,
/* */ TRACK_ELEM_FLAG_TURN_RIGHT,
/* */ TRACK_ELEM_FLAG_BANKED,
/* */ TRACK_ELEM_FLAG_BANKED,
/* */ TRACK_ELEM_FLAG_BANKED,
/* */ TRACK_ELEM_FLAG_BANKED,
/* */ TRACK_ELEM_FLAG_TURN_LEFT | TRACK_ELEM_FLAG_TURN_BANKED | TRACK_ELEM_FLAG_BANKED,
/* */ TRACK_ELEM_FLAG_TURN_RIGHT | TRACK_ELEM_FLAG_TURN_BANKED | TRACK_ELEM_FLAG_BANKED,
/* */ TRACK_ELEM_FLAG_UP | TRACK_ELEM_FLAG_BANKED,
/* */ TRACK_ELEM_FLAG_UP | TRACK_ELEM_FLAG_BANKED,
/* */ TRACK_ELEM_FLAG_UP | TRACK_ELEM_FLAG_STARTS_AT_HALF_HEIGHT | TRACK_ELEM_FLAG_BANKED,
/* */ TRACK_ELEM_FLAG_UP | TRACK_ELEM_FLAG_STARTS_AT_HALF_HEIGHT | TRACK_ELEM_FLAG_BANKED,
/* */ TRACK_ELEM_FLAG_DOWN | TRACK_ELEM_FLAG_STARTS_AT_HALF_HEIGHT | TRACK_ELEM_FLAG_BANKED,
/* */ TRACK_ELEM_FLAG_DOWN | TRACK_ELEM_FLAG_STARTS_AT_HALF_HEIGHT | TRACK_ELEM_FLAG_BANKED,
/* */ TRACK_ELEM_FLAG_DOWN | TRACK_ELEM_FLAG_BANKED,
/* */ TRACK_ELEM_FLAG_DOWN | TRACK_ELEM_FLAG_BANKED,
/* */ TRACK_ELEM_FLAG_BANKED,
/* */ TRACK_ELEM_FLAG_BANKED,
/* */ TRACK_ELEM_FLAG_TURN_LEFT | TRACK_ELEM_FLAG_TURN_SLOPED | TRACK_ELEM_FLAG_UP | TRACK_ELEM_FLAG_STARTS_AT_HALF_HEIGHT | TRACK_ELEM_FLAG_ALLOW_LIFT_HILL | TRACK_ELEM_FLAG_CURVE_ALLOWS_LIFT,
/* */ TRACK_ELEM_FLAG_TURN_RIGHT | TRACK_ELEM_FLAG_TURN_SLOPED | TRACK_ELEM_FLAG_UP | TRACK_ELEM_FLAG_STARTS_AT_HALF_HEIGHT | TRACK_ELEM_FLAG_ALLOW_LIFT_HILL | TRACK_ELEM_FLAG_CURVE_ALLOWS_LIFT,
/* */ TRACK_ELEM_FLAG_TURN_LEFT | TRACK_ELEM_FLAG_TURN_SLOPED | TRACK_ELEM_FLAG_DOWN | TRACK_ELEM_FLAG_STARTS_AT_HALF_HEIGHT | TRACK_ELEM_FLAG_ALLOW_LIFT_HILL | TRACK_ELEM_FLAG_CURVE_ALLOWS_LIFT,
/* */ TRACK_ELEM_FLAG_TURN_RIGHT | TRACK_ELEM_FLAG_TURN_SLOPED | TRACK_ELEM_FLAG_DOWN | TRACK_ELEM_FLAG_STARTS_AT_HALF_HEIGHT | TRACK_ELEM_FLAG_ALLOW_LIFT_HILL | TRACK_ELEM_FLAG_CURVE_ALLOWS_LIFT,
/* */ 0,
/* */ 0,
/* */ TRACK_ELEM_FLAG_NORMAL_TO_INVERSION | TRACK_ELEM_FLAG_STARTS_AT_HALF_HEIGHT | TRACK_ELEM_FLAG_INVERSION_TO_NORMAL,
/* */ TRACK_ELEM_FLAG_NORMAL_TO_INVERSION | TRACK_ELEM_FLAG_STARTS_AT_HALF_HEIGHT | TRACK_ELEM_FLAG_INVERSION_TO_NORMAL,
/* */ TRACK_ELEM_FLAG_TURN_LEFT,
/* */ TRACK_ELEM_FLAG_TURN_RIGHT,
/* */ TRACK_ELEM_FLAG_TURN_LEFT | TRACK_ELEM_FLAG_TURN_BANKED | TRACK_ELEM_FLAG_BANKED,
/* */ TRACK_ELEM_FLAG_TURN_RIGHT | TRACK_ELEM_FLAG_TURN_BANKED | TRACK_ELEM_FLAG_BANKED,
/* */ TRACK_ELEM_FLAG_TURN_LEFT | TRACK_ELEM_FLAG_TURN_SLOPED | TRACK_ELEM_FLAG_UP | TRACK_ELEM_FLAG_STARTS_AT_HALF_HEIGHT | TRACK_ELEM_FLAG_ALLOW_LIFT_HILL | TRACK_ELEM_FLAG_CURVE_ALLOWS_LIFT,
/* */ TRACK_ELEM_FLAG_TURN_RIGHT | TRACK_ELEM_FLAG_TURN_SLOPED | TRACK_ELEM_FLAG_UP | TRACK_ELEM_FLAG_STARTS_AT_HALF_HEIGHT | TRACK_ELEM_FLAG_ALLOW_LIFT_HILL | TRACK_ELEM_FLAG_CURVE_ALLOWS_LIFT,
/* */ TRACK_ELEM_FLAG_TURN_LEFT | TRACK_ELEM_FLAG_TURN_SLOPED | TRACK_ELEM_FLAG_DOWN | TRACK_ELEM_FLAG_STARTS_AT_HALF_HEIGHT | TRACK_ELEM_FLAG_ALLOW_LIFT_HILL | TRACK_ELEM_FLAG_CURVE_ALLOWS_LIFT,
/* */ TRACK_ELEM_FLAG_TURN_RIGHT | TRACK_ELEM_FLAG_TURN_SLOPED | TRACK_ELEM_FLAG_DOWN | TRACK_ELEM_FLAG_STARTS_AT_HALF_HEIGHT | TRACK_ELEM_FLAG_ALLOW_LIFT_HILL | TRACK_ELEM_FLAG_CURVE_ALLOWS_LIFT,
/* */ TRACK_ELEM_FLAG_TURN_LEFT,
/* */ TRACK_ELEM_FLAG_TURN_RIGHT,
/* */ TRACK_ELEM_FLAG_NORMAL_TO_INVERSION | TRACK_ELEM_FLAG_INVERSION_TO_NORMAL,
/* */ TRACK_ELEM_FLAG_NORMAL_TO_INVERSION | TRACK_ELEM_FLAG_INVERSION_TO_NORMAL,
/* */ TRACK_ELEM_FLAG_INVERSION_TO_NORMAL,
/* */ TRACK_ELEM_FLAG_INVERSION_TO_NORMAL,
/* */ TRACK_ELEM_FLAG_UP | TRACK_ELEM_FLAG_NORMAL_TO_INVERSION | TRACK_ELEM_FLAG_STARTS_AT_HALF_HEIGHT | TRACK_ELEM_FLAG_INVERSION_TO_NORMAL,
/* */ TRACK_ELEM_FLAG_DOWN | TRACK_ELEM_FLAG_INVERSION_TO_NORMAL,
/* */ TRACK_ELEM_FLAG_UP | TRACK_ELEM_FLAG_NORMAL_TO_INVERSION | TRACK_ELEM_FLAG_INVERSION_TO_NORMAL,
/* */ TRACK_ELEM_FLAG_UP | TRACK_ELEM_FLAG_NORMAL_TO_INVERSION | TRACK_ELEM_FLAG_INVERSION_TO_NORMAL,
/* */ TRACK_ELEM_FLAG_DOWN | TRACK_ELEM_FLAG_INVERSION_TO_NORMAL,
/* */ TRACK_ELEM_FLAG_DOWN | TRACK_ELEM_FLAG_INVERSION_TO_NORMAL,
/* */ TRACK_ELEM_FLAG_UP | TRACK_ELEM_FLAG_IS_STEEP_UP | TRACK_ELEM_FLAG_ALLOW_LIFT_HILL,
/* */ TRACK_ELEM_FLAG_UP | TRACK_ELEM_FLAG_STARTS_AT_HALF_HEIGHT | TRACK_ELEM_FLAG_IS_STEEP_UP | TRACK_ELEM_FLAG_ALLOW_LIFT_HILL,
/* */ TRACK_ELEM_FLAG_DOWN | TRACK_ELEM_FLAG_STARTS_AT_HALF_HEIGHT | TRACK_ELEM_FLAG_ALLOW_LIFT_HILL,
/* */ TRACK_ELEM_FLAG_DOWN | TRACK_ELEM_FLAG_ALLOW_LIFT_HILL,
/* */ 0,
/* */ 0,
/* */ 0,
/* */ TRACK_ELEM_FLAG_UP | TRACK_ELEM_FLAG_STARTS_AT_HALF_HEIGHT,
/* */ TRACK_ELEM_FLAG_UP | TRACK_ELEM_FLAG_STARTS_AT_HALF_HEIGHT,
/* */ TRACK_ELEM_FLAG_UP,
/* */ TRACK_ELEM_FLAG_UP | TRACK_ELEM_FLAG_STARTS_AT_HALF_HEIGHT,
/* */ TRACK_ELEM_FLAG_UP | TRACK_ELEM_FLAG_STARTS_AT_HALF_HEIGHT,
/* */ TRACK_ELEM_FLAG_UP | TRACK_ELEM_FLAG_STARTS_AT_HALF_HEIGHT,
/* */ TRACK_ELEM_FLAG_DOWN | TRACK_ELEM_FLAG_STARTS_AT_HALF_HEIGHT,
/* */ TRACK_ELEM_FLAG_DOWN | TRACK_ELEM_FLAG_STARTS_AT_HALF_HEIGHT,
/* */ TRACK_ELEM_FLAG_DOWN | TRACK_ELEM_FLAG_STARTS_AT_HALF_HEIGHT,
/* */ TRACK_ELEM_FLAG_DOWN | TRACK_ELEM_FLAG_STARTS_AT_HALF_HEIGHT,
/* */ TRACK_ELEM_FLAG_DOWN | TRACK_ELEM_FLAG_STARTS_AT_HALF_HEIGHT,
/* */ TRACK_ELEM_FLAG_DOWN,
/* */ TRACK_ELEM_FLAG_TURN_LEFT,
/* */ TRACK_ELEM_FLAG_TURN_RIGHT,
/* */ 0,
/* */ 0,
/* */ TRACK_ELEM_FLAG_TURN_LEFT,
/* */ TRACK_ELEM_FLAG_TURN_RIGHT,
/* */ TRACK_ELEM_FLAG_TURN_LEFT | TRACK_ELEM_FLAG_HELIX | TRACK_ELEM_FLAG_BANKED,
/* */ TRACK_ELEM_FLAG_TURN_RIGHT | TRACK_ELEM_FLAG_HELIX | TRACK_ELEM_FLAG_BANKED,
/* */ TRACK_ELEM_FLAG_TURN_LEFT | TRACK_ELEM_FLAG_HELIX | TRACK_ELEM_FLAG_BANKED,
/* */ TRACK_ELEM_FLAG_TURN_RIGHT | TRACK_ELEM_FLAG_HELIX | TRACK_ELEM_FLAG_BANKED,
/* */ TRACK_ELEM_FLAG_TURN_LEFT | TRACK_ELEM_FLAG_HELIX | TRACK_ELEM_FLAG_BANKED,
/* */ TRACK_ELEM_FLAG_TURN_RIGHT | TRACK_ELEM_FLAG_HELIX | TRACK_ELEM_FLAG_BANKED,
/* */ TRACK_ELEM_FLAG_TURN_LEFT | TRACK_ELEM_FLAG_HELIX | TRACK_ELEM_FLAG_BANKED,
/* */ TRACK_ELEM_FLAG_TURN_RIGHT | TRACK_ELEM_FLAG_HELIX | TRACK_ELEM_FLAG_BANKED,
/* FLAT_TRACK_ELEM_1_X_4_A */ 0,
/* */ TRACK_ELEM_FLAG_TURN_RIGHT | TRACK_ELEM_FLAG_TURN_SLOPED | TRACK_ELEM_FLAG_UP | TRACK_ELEM_FLAG_STARTS_AT_HALF_HEIGHT,
/* */ TRACK_ELEM_FLAG_TURN_LEFT | TRACK_ELEM_FLAG_TURN_SLOPED | TRACK_ELEM_FLAG_DOWN | TRACK_ELEM_FLAG_STARTS_AT_HALF_HEIGHT,
/* */ TRACK_ELEM_FLAG_TURN_RIGHT | TRACK_ELEM_FLAG_TURN_SLOPED | TRACK_ELEM_FLAG_DOWN | TRACK_ELEM_FLAG_STARTS_AT_HALF_HEIGHT,
/* */ 0,
/* */ 0,
/* */ TRACK_ELEM_FLAG_ONLY_ABOVE_GROUND,
/* */ TRACK_ELEM_FLAG_TURN_LEFT | TRACK_ELEM_FLAG_HELIX | TRACK_ELEM_FLAG_BANKED,
/* */ TRACK_ELEM_FLAG_TURN_RIGHT | TRACK_ELEM_FLAG_HELIX | TRACK_ELEM_FLAG_BANKED,
/* */ TRACK_ELEM_FLAG_TURN_LEFT | TRACK_ELEM_FLAG_HELIX | TRACK_ELEM_FLAG_BANKED,
/* */ TRACK_ELEM_FLAG_TURN_RIGHT | TRACK_ELEM_FLAG_HELIX | TRACK_ELEM_FLAG_BANKED,
/* */ TRACK_ELEM_FLAG_TURN_LEFT | TRACK_ELEM_FLAG_HELIX,
/* */ TRACK_ELEM_FLAG_TURN_RIGHT | TRACK_ELEM_FLAG_HELIX,
/* */ TRACK_ELEM_FLAG_TURN_LEFT | TRACK_ELEM_FLAG_HELIX,
/* */ TRACK_ELEM_FLAG_TURN_RIGHT | TRACK_ELEM_FLAG_HELIX,
/* FLAT_TRACK_ELEM_2_X_2 */ 0,
/* FLAT_TRACK_ELEM_4_X_4 */ 0,
/* */ 0,
/* */ 0,
/* */ TRACK_ELEM_FLAG_ONLY_ABOVE_GROUND,
/* ??? */ TRACK_ELEM_FLAG_ONLY_ABOVE_GROUND,
/* FLAT_TRACK_ELEM_1_X_5 */ 0,
/* */ 0,
/* FLAT_TRACK_ELEM_1_X_1_A */ 0,
/* FLAT_TRACK_ELEM_1_X_4_B */ 0,
/* */ 0,
/* FLAT_TRACK_ELEM_1_X_1_B */ 0,
/* FLAT_TRACK_ELEM_1_X_4_C */ 0,
/* FLAT_TRACK_ELEM_3_X_3 */ 0,
/* */ TRACK_ELEM_FLAG_UP,
/* */ TRACK_ELEM_FLAG_UP,
/* */ TRACK_ELEM_FLAG_UP,
/* ??? */ TRACK_ELEM_FLAG_DOWN,
/* */ TRACK_ELEM_FLAG_UP | TRACK_ELEM_FLAG_STARTS_AT_HALF_HEIGHT,
/* ??? */ TRACK_ELEM_FLAG_DOWN | TRACK_ELEM_FLAG_STARTS_AT_HALF_HEIGHT,
/* */ TRACK_ELEM_FLAG_UP,
/* */ TRACK_ELEM_FLAG_DOWN,
/* */ TRACK_ELEM_FLAG_DOWN | TRACK_ELEM_FLAG_STARTS_AT_HALF_HEIGHT,
/* */ TRACK_ELEM_FLAG_TURN_LEFT,
/* */ TRACK_ELEM_FLAG_TURN_RIGHT,
/* */ TRACK_ELEM_FLAG_TURN_LEFT,
/* */ TRACK_ELEM_FLAG_TURN_RIGHT,
/* */ TRACK_ELEM_FLAG_TURN_LEFT | TRACK_ELEM_FLAG_TURN_BANKED | TRACK_ELEM_FLAG_BANKED,
/* */ TRACK_ELEM_FLAG_TURN_RIGHT | TRACK_ELEM_FLAG_TURN_BANKED | TRACK_ELEM_FLAG_BANKED,
/* */ TRACK_ELEM_FLAG_TURN_LEFT | TRACK_ELEM_FLAG_TURN_BANKED | TRACK_ELEM_FLAG_BANKED,
/* */ TRACK_ELEM_FLAG_TURN_RIGHT | TRACK_ELEM_FLAG_TURN_BANKED | TRACK_ELEM_FLAG_BANKED,
/* */ TRACK_ELEM_FLAG_ALLOW_LIFT_HILL,
/* */ TRACK_ELEM_FLAG_UP | TRACK_ELEM_FLAG_STARTS_AT_HALF_HEIGHT | TRACK_ELEM_FLAG_ALLOW_LIFT_HILL,
/* */ TRACK_ELEM_FLAG_UP | TRACK_ELEM_FLAG_STARTS_AT_HALF_HEIGHT | TRACK_ELEM_FLAG_IS_STEEP_UP | TRACK_ELEM_FLAG_ALLOW_LIFT_HILL,
/* */ TRACK_ELEM_FLAG_UP | TRACK_ELEM_FLAG_ALLOW_LIFT_HILL,
/* */ TRACK_ELEM_FLAG_UP | TRACK_ELEM_FLAG_STARTS_AT_HALF_HEIGHT | TRACK_ELEM_FLAG_IS_STEEP_UP | TRACK_ELEM_FLAG_ALLOW_LIFT_HILL,
/* */ TRACK_ELEM_FLAG_UP | TRACK_ELEM_FLAG_STARTS_AT_HALF_HEIGHT | TRACK_ELEM_FLAG_IS_STEEP_UP | TRACK_ELEM_FLAG_ALLOW_LIFT_HILL,
/* */ TRACK_ELEM_FLAG_UP | TRACK_ELEM_FLAG_STARTS_AT_HALF_HEIGHT | TRACK_ELEM_FLAG_ALLOW_LIFT_HILL,
/* */ TRACK_ELEM_FLAG_DOWN | TRACK_ELEM_FLAG_STARTS_AT_HALF_HEIGHT | TRACK_ELEM_FLAG_ALLOW_LIFT_HILL,
/* */ TRACK_ELEM_FLAG_DOWN | TRACK_ELEM_FLAG_STARTS_AT_HALF_HEIGHT | TRACK_ELEM_FLAG_ALLOW_LIFT_HILL,
/* */ TRACK_ELEM_FLAG_DOWN | TRACK_ELEM_FLAG_STARTS_AT_HALF_HEIGHT | TRACK_ELEM_FLAG_ALLOW_LIFT_HILL,
/* */ TRACK_ELEM_FLAG_DOWN | TRACK_ELEM_FLAG_STARTS_AT_HALF_HEIGHT | TRACK_ELEM_FLAG_ALLOW_LIFT_HILL,
/* */ TRACK_ELEM_FLAG_DOWN | TRACK_ELEM_FLAG_STARTS_AT_HALF_HEIGHT | TRACK_ELEM_FLAG_ALLOW_LIFT_HILL,
/* */ TRACK_ELEM_FLAG_DOWN | TRACK_ELEM_FLAG_ALLOW_LIFT_HILL,
/* */ TRACK_ELEM_FLAG_UP | TRACK_ELEM_FLAG_IS_STEEP_UP | TRACK_ELEM_FLAG_ALLOW_LIFT_HILL,
/* */ TRACK_ELEM_FLAG_UP | TRACK_ELEM_FLAG_STARTS_AT_HALF_HEIGHT | TRACK_ELEM_FLAG_IS_STEEP_UP | TRACK_ELEM_FLAG_ALLOW_LIFT_HILL,
/* */ TRACK_ELEM_FLAG_DOWN | TRACK_ELEM_FLAG_STARTS_AT_HALF_HEIGHT | TRACK_ELEM_FLAG_ALLOW_LIFT_HILL,
/* */ TRACK_ELEM_FLAG_DOWN | TRACK_ELEM_FLAG_ALLOW_LIFT_HILL,
/* */ TRACK_ELEM_FLAG_BANKED,
/* */ TRACK_ELEM_FLAG_BANKED,
/* */ TRACK_ELEM_FLAG_BANKED,
/* */ TRACK_ELEM_FLAG_BANKED,
/* */ TRACK_ELEM_FLAG_UP | TRACK_ELEM_FLAG_BANKED,
/* */ TRACK_ELEM_FLAG_UP | TRACK_ELEM_FLAG_BANKED,
/* */ TRACK_ELEM_FLAG_UP | TRACK_ELEM_FLAG_STARTS_AT_HALF_HEIGHT | TRACK_ELEM_FLAG_BANKED,
/* */ TRACK_ELEM_FLAG_UP | TRACK_ELEM_FLAG_STARTS_AT_HALF_HEIGHT | TRACK_ELEM_FLAG_BANKED,
/* */ TRACK_ELEM_FLAG_DOWN | TRACK_ELEM_FLAG_STARTS_AT_HALF_HEIGHT | TRACK_ELEM_FLAG_BANKED,
/* */ TRACK_ELEM_FLAG_DOWN | TRACK_ELEM_FLAG_STARTS_AT_HALF_HEIGHT | TRACK_ELEM_FLAG_BANKED,
/* */ TRACK_ELEM_FLAG_DOWN,
/* */ TRACK_ELEM_FLAG_DOWN,
/* */ TRACK_ELEM_FLAG_BANKED,
/* */ TRACK_ELEM_FLAG_BANKED,
/* */ TRACK_ELEM_FLAG_BANKED,
/* */ TRACK_ELEM_FLAG_BANKED,
/* */ TRACK_ELEM_FLAG_NORMAL_TO_INVERSION | TRACK_ELEM_FLAG_INVERSION_TO_NORMAL,
/* */ TRACK_ELEM_FLAG_NORMAL_TO_INVERSION | TRACK_ELEM_FLAG_INVERSION_TO_NORMAL,
/* */ TRACK_ELEM_FLAG_INVERSION_TO_NORMAL,
/* */ TRACK_ELEM_FLAG_INVERSION_TO_NORMAL,
/* */ TRACK_ELEM_FLAG_TURN_LEFT | TRACK_ELEM_FLAG_TURN_SLOPED | TRACK_ELEM_FLAG_UP | TRACK_ELEM_FLAG_BANKED,
/* */ TRACK_ELEM_FLAG_TURN_RIGHT | TRACK_ELEM_FLAG_TURN_SLOPED | TRACK_ELEM_FLAG_UP | TRACK_ELEM_FLAG_BANKED,
/* */ TRACK_ELEM_FLAG_TURN_LEFT | TRACK_ELEM_FLAG_TURN_SLOPED | TRACK_ELEM_FLAG_DOWN | TRACK_ELEM_FLAG_BANKED,
/* */ TRACK_ELEM_FLAG_TURN_RIGHT | TRACK_ELEM_FLAG_TURN_SLOPED | TRACK_ELEM_FLAG_DOWN | TRACK_ELEM_FLAG_BANKED,
/* */ TRACK_ELEM_FLAG_UP | TRACK_ELEM_FLAG_STARTS_AT_HALF_HEIGHT,
/* */ TRACK_ELEM_FLAG_UP | TRACK_ELEM_FLAG_NORMAL_TO_INVERSION | TRACK_ELEM_FLAG_STARTS_AT_HALF_HEIGHT | TRACK_ELEM_FLAG_INVERSION_TO_NORMAL,
/* */ TRACK_ELEM_FLAG_UP | TRACK_ELEM_FLAG_NORMAL_TO_INVERSION | TRACK_ELEM_FLAG_STARTS_AT_HALF_HEIGHT | TRACK_ELEM_FLAG_INVERSION_TO_NORMAL,
/* */ TRACK_ELEM_FLAG_DOWN | TRACK_ELEM_FLAG_INVERSION_TO_NORMAL,
/* */ TRACK_ELEM_FLAG_DOWN | TRACK_ELEM_FLAG_INVERSION_TO_NORMAL,
/* */ TRACK_ELEM_FLAG_NORMAL_TO_INVERSION | TRACK_ELEM_FLAG_INVERSION_TO_NORMAL,
/* */ TRACK_ELEM_FLAG_NORMAL_TO_INVERSION | TRACK_ELEM_FLAG_INVERSION_TO_NORMAL,
/* */ TRACK_ELEM_FLAG_INVERSION_TO_NORMAL,
/* */ TRACK_ELEM_FLAG_INVERSION_TO_NORMAL,
/* */ TRACK_ELEM_FLAG_UP | TRACK_ELEM_FLAG_NORMAL_TO_INVERSION | TRACK_ELEM_FLAG_STARTS_AT_HALF_HEIGHT | TRACK_ELEM_FLAG_INVERSION_TO_NORMAL,
/* */ TRACK_ELEM_FLAG_DOWN | TRACK_ELEM_FLAG_INVERSION_TO_NORMAL,
/* */ TRACK_ELEM_FLAG_UP | TRACK_ELEM_FLAG_NORMAL_TO_INVERSION | TRACK_ELEM_FLAG_INVERSION_TO_NORMAL,
/* */ TRACK_ELEM_FLAG_UP | TRACK_ELEM_FLAG_NORMAL_TO_INVERSION | TRACK_ELEM_FLAG_INVERSION_TO_NORMAL,
/* */ TRACK_ELEM_FLAG_DOWN | TRACK_ELEM_FLAG_INVERSION_TO_NORMAL,
/* */ TRACK_ELEM_FLAG_DOWN | TRACK_ELEM_FLAG_INVERSION_TO_NORMAL,
/* */ 0,
/* */ 0,
/* */ TRACK_ELEM_FLAG_NORMAL_TO_INVERSION | TRACK_ELEM_FLAG_INVERSION_TO_NORMAL,
/* */ TRACK_ELEM_FLAG_NORMAL_TO_INVERSION | TRACK_ELEM_FLAG_INVERSION_TO_NORMAL,
/* */ TRACK_ELEM_FLAG_NORMAL_TO_INVERSION,
/* */ TRACK_ELEM_FLAG_NORMAL_TO_INVERSION,
/* */ TRACK_ELEM_FLAG_NORMAL_TO_INVERSION,
/* */ TRACK_ELEM_FLAG_NORMAL_TO_INVERSION,
/* */ TRACK_ELEM_FLAG_NORMAL_TO_INVERSION,
/* ??? */ TRACK_ELEM_FLAG_NORMAL_TO_INVERSION,
/* ??? */ TRACK_ELEM_FLAG_NORMAL_TO_INVERSION,
/* ??? */ TRACK_ELEM_FLAG_NORMAL_TO_INVERSION,
/* */ TRACK_ELEM_FLAG_TURN_LEFT | TRACK_ELEM_FLAG_UP,
/* */ TRACK_ELEM_FLAG_TURN_RIGHT | TRACK_ELEM_FLAG_UP,
/* */ 0,
/* */ 0,
/* */ 0,
/* */ TRACK_ELEM_FLAG_DOWN,
/* */ TRACK_ELEM_FLAG_DOWN,
/* */ 0,
/* */ TRACK_ELEM_FLAG_TURN_LEFT | TRACK_ELEM_FLAG_TURN_SLOPED | TRACK_ELEM_FLAG_UP | TRACK_ELEM_FLAG_STARTS_AT_HALF_HEIGHT | TRACK_ELEM_FLAG_BANKED,
/* */ TRACK_ELEM_FLAG_TURN_RIGHT | TRACK_ELEM_FLAG_TURN_SLOPED | TRACK_ELEM_FLAG_UP | TRACK_ELEM_FLAG_STARTS_AT_HALF_HEIGHT | TRACK_ELEM_FLAG_BANKED,
/* */ TRACK_ELEM_FLAG_TURN_LEFT | TRACK_ELEM_FLAG_TURN_SLOPED | TRACK_ELEM_FLAG_DOWN | TRACK_ELEM_FLAG_STARTS_AT_HALF_HEIGHT | TRACK_ELEM_FLAG_BANKED,
/* */ TRACK_ELEM_FLAG_TURN_RIGHT | TRACK_ELEM_FLAG_TURN_SLOPED | TRACK_ELEM_FLAG_DOWN | TRACK_ELEM_FLAG_STARTS_AT_HALF_HEIGHT | TRACK_ELEM_FLAG_BANKED,
/* */ TRACK_ELEM_FLAG_TURN_LEFT | TRACK_ELEM_FLAG_TURN_SLOPED | TRACK_ELEM_FLAG_UP | TRACK_ELEM_FLAG_STARTS_AT_HALF_HEIGHT | TRACK_ELEM_FLAG_BANKED,
/* */ TRACK_ELEM_FLAG_TURN_RIGHT | TRACK_ELEM_FLAG_TURN_SLOPED | TRACK_ELEM_FLAG_UP | TRACK_ELEM_FLAG_STARTS_AT_HALF_HEIGHT | TRACK_ELEM_FLAG_BANKED,
/* */ TRACK_ELEM_FLAG_TURN_LEFT | TRACK_ELEM_FLAG_TURN_SLOPED | TRACK_ELEM_FLAG_DOWN | TRACK_ELEM_FLAG_STARTS_AT_HALF_HEIGHT | TRACK_ELEM_FLAG_BANKED,
/* */ TRACK_ELEM_FLAG_TURN_RIGHT | TRACK_ELEM_FLAG_TURN_SLOPED | TRACK_ELEM_FLAG_DOWN | TRACK_ELEM_FLAG_STARTS_AT_HALF_HEIGHT | TRACK_ELEM_FLAG_BANKED,
/* */ TRACK_ELEM_FLAG_UP | TRACK_ELEM_FLAG_STARTS_AT_HALF_HEIGHT | TRACK_ELEM_FLAG_BANKED,
/* */ TRACK_ELEM_FLAG_UP | TRACK_ELEM_FLAG_STARTS_AT_HALF_HEIGHT | TRACK_ELEM_FLAG_BANKED,
/* */ TRACK_ELEM_FLAG_UP | TRACK_ELEM_FLAG_STARTS_AT_HALF_HEIGHT | TRACK_ELEM_FLAG_BANKED,
/* */ TRACK_ELEM_FLAG_UP | TRACK_ELEM_FLAG_STARTS_AT_HALF_HEIGHT | TRACK_ELEM_FLAG_BANKED,
/* */ TRACK_ELEM_FLAG_DOWN | TRACK_ELEM_FLAG_STARTS_AT_HALF_HEIGHT | TRACK_ELEM_FLAG_BANKED,
/* */ TRACK_ELEM_FLAG_DOWN | TRACK_ELEM_FLAG_STARTS_AT_HALF_HEIGHT | TRACK_ELEM_FLAG_BANKED,
/* */ TRACK_ELEM_FLAG_DOWN | TRACK_ELEM_FLAG_STARTS_AT_HALF_HEIGHT | TRACK_ELEM_FLAG_BANKED,
/* */ TRACK_ELEM_FLAG_DOWN | TRACK_ELEM_FLAG_STARTS_AT_HALF_HEIGHT | TRACK_ELEM_FLAG_BANKED,
/* */ TRACK_ELEM_FLAG_UP | TRACK_ELEM_FLAG_BANKED,
/* */ TRACK_ELEM_FLAG_UP | TRACK_ELEM_FLAG_BANKED,
/* */ TRACK_ELEM_FLAG_UP | TRACK_ELEM_FLAG_STARTS_AT_HALF_HEIGHT | TRACK_ELEM_FLAG_BANKED,
/* */ TRACK_ELEM_FLAG_UP | TRACK_ELEM_FLAG_STARTS_AT_HALF_HEIGHT | TRACK_ELEM_FLAG_BANKED,
/* */ TRACK_ELEM_FLAG_DOWN | TRACK_ELEM_FLAG_STARTS_AT_HALF_HEIGHT | TRACK_ELEM_FLAG_BANKED,
/* */ TRACK_ELEM_FLAG_DOWN | TRACK_ELEM_FLAG_STARTS_AT_HALF_HEIGHT | TRACK_ELEM_FLAG_BANKED,
/* */ TRACK_ELEM_FLAG_DOWN | TRACK_ELEM_FLAG_BANKED,
/* */ TRACK_ELEM_FLAG_DOWN | TRACK_ELEM_FLAG_BANKED,
/* */ TRACK_ELEM_FLAG_UP | TRACK_ELEM_FLAG_BANKED,
/* */ TRACK_ELEM_FLAG_UP | TRACK_ELEM_FLAG_BANKED,
/* */ TRACK_ELEM_FLAG_UP | TRACK_ELEM_FLAG_STARTS_AT_HALF_HEIGHT | TRACK_ELEM_FLAG_BANKED,
/* */ TRACK_ELEM_FLAG_UP | TRACK_ELEM_FLAG_STARTS_AT_HALF_HEIGHT | TRACK_ELEM_FLAG_BANKED,
/* */ TRACK_ELEM_FLAG_DOWN | TRACK_ELEM_FLAG_STARTS_AT_HALF_HEIGHT | TRACK_ELEM_FLAG_BANKED,
/* */ TRACK_ELEM_FLAG_DOWN | TRACK_ELEM_FLAG_STARTS_AT_HALF_HEIGHT | TRACK_ELEM_FLAG_BANKED,
/* */ TRACK_ELEM_FLAG_DOWN | TRACK_ELEM_FLAG_BANKED,
/* */ TRACK_ELEM_FLAG_DOWN | TRACK_ELEM_FLAG_BANKED,
/* */ TRACK_ELEM_FLAG_TURN_LEFT | TRACK_ELEM_FLAG_TURN_SLOPED | TRACK_ELEM_FLAG_UP,
/* */ TRACK_ELEM_FLAG_TURN_RIGHT | TRACK_ELEM_FLAG_TURN_SLOPED | TRACK_ELEM_FLAG_UP,
/* */ TRACK_ELEM_FLAG_TURN_LEFT | TRACK_ELEM_FLAG_TURN_SLOPED | TRACK_ELEM_FLAG_DOWN,
/* */ TRACK_ELEM_FLAG_TURN_RIGHT | TRACK_ELEM_FLAG_TURN_SLOPED | TRACK_ELEM_FLAG_DOWN,
/* ??? */ 0,
};
/** rct2: 0x0099423C */
const uint16_t TrackFlags[] = {
/* TrackElemType::Flat */ TRACK_ELEM_FLAG_ALLOW_LIFT_HILL,
/* TrackElemType::EndStation */ 0,
/* TrackElemType::BeginStation */ 0,
/* TrackElemType::MiddleStation */ 0,
/* TrackElemType::Up25 */ TRACK_ELEM_FLAG_UP | TRACK_ELEM_FLAG_STARTS_AT_HALF_HEIGHT | TRACK_ELEM_FLAG_ALLOW_LIFT_HILL,
/* TrackElemType::Up60 */ TRACK_ELEM_FLAG_UP | TRACK_ELEM_FLAG_STARTS_AT_HALF_HEIGHT | TRACK_ELEM_FLAG_IS_STEEP_UP | TRACK_ELEM_FLAG_ALLOW_LIFT_HILL,
/* TrackElemType::FlatToUp25 */ TRACK_ELEM_FLAG_UP | TRACK_ELEM_FLAG_ALLOW_LIFT_HILL,
/* TrackElemType::Up25ToUp60 */ TRACK_ELEM_FLAG_UP | TRACK_ELEM_FLAG_STARTS_AT_HALF_HEIGHT | TRACK_ELEM_FLAG_IS_STEEP_UP | TRACK_ELEM_FLAG_ALLOW_LIFT_HILL,
/* TrackElemType::Up60ToUp25 */ TRACK_ELEM_FLAG_UP | TRACK_ELEM_FLAG_STARTS_AT_HALF_HEIGHT | TRACK_ELEM_FLAG_IS_STEEP_UP | TRACK_ELEM_FLAG_ALLOW_LIFT_HILL,
/* TrackElemType::Up25ToFlat */ TRACK_ELEM_FLAG_UP | TRACK_ELEM_FLAG_STARTS_AT_HALF_HEIGHT | TRACK_ELEM_FLAG_ALLOW_LIFT_HILL,
/* TrackElemType::Down25 */ TRACK_ELEM_FLAG_DOWN | TRACK_ELEM_FLAG_STARTS_AT_HALF_HEIGHT | TRACK_ELEM_FLAG_ALLOW_LIFT_HILL,
/* TrackElemType::Down60 */ TRACK_ELEM_FLAG_DOWN | TRACK_ELEM_FLAG_STARTS_AT_HALF_HEIGHT | TRACK_ELEM_FLAG_ALLOW_LIFT_HILL,
/* TrackElemType::FlatToDown25 */ TRACK_ELEM_FLAG_DOWN | TRACK_ELEM_FLAG_STARTS_AT_HALF_HEIGHT | TRACK_ELEM_FLAG_ALLOW_LIFT_HILL,
/* TrackElemType::Down25ToDown60 */ TRACK_ELEM_FLAG_DOWN | TRACK_ELEM_FLAG_STARTS_AT_HALF_HEIGHT | TRACK_ELEM_FLAG_ALLOW_LIFT_HILL,
/* TrackElemType::Down60ToDown25 */ TRACK_ELEM_FLAG_DOWN | TRACK_ELEM_FLAG_STARTS_AT_HALF_HEIGHT | TRACK_ELEM_FLAG_ALLOW_LIFT_HILL,
/* TrackElemType::Down25ToFlat */ TRACK_ELEM_FLAG_DOWN | TRACK_ELEM_FLAG_ALLOW_LIFT_HILL,
/* TrackElemType::LeftQuarterTurn5Tiles */ TRACK_ELEM_FLAG_TURN_LEFT,
/* TrackElemType::RightQuarterTurn5Tiles */ TRACK_ELEM_FLAG_TURN_RIGHT,
/* TrackElemType::FlatToLeftBank */ TRACK_ELEM_FLAG_BANKED,
/* TrackElemType::FlatToRightBank */ TRACK_ELEM_FLAG_BANKED,
/* TrackElemType::LeftBankToFlat */ TRACK_ELEM_FLAG_BANKED,
/* TrackElemType::RightBankToFlat */ TRACK_ELEM_FLAG_BANKED,
/* TrackElemType::BankedLeftQuarterTurn5Tiles */ TRACK_ELEM_FLAG_TURN_LEFT | TRACK_ELEM_FLAG_TURN_BANKED | TRACK_ELEM_FLAG_BANKED,
/* TrackElemType::BankedRightQuarterTurn5Tiles */ TRACK_ELEM_FLAG_TURN_RIGHT | TRACK_ELEM_FLAG_TURN_BANKED | TRACK_ELEM_FLAG_BANKED,
/* TrackElemType::LeftBankToUp25 */ TRACK_ELEM_FLAG_UP | TRACK_ELEM_FLAG_BANKED,
/* TrackElemType::RightBankToUp25 */ TRACK_ELEM_FLAG_UP | TRACK_ELEM_FLAG_BANKED,
/* TrackElemType::Up25ToLeftBank */ TRACK_ELEM_FLAG_UP | TRACK_ELEM_FLAG_STARTS_AT_HALF_HEIGHT | TRACK_ELEM_FLAG_BANKED,
/* TrackElemType::Up25ToRightBank */ TRACK_ELEM_FLAG_UP | TRACK_ELEM_FLAG_STARTS_AT_HALF_HEIGHT | TRACK_ELEM_FLAG_BANKED,
/* TrackElemType::LeftBankToDown25 */ TRACK_ELEM_FLAG_DOWN | TRACK_ELEM_FLAG_STARTS_AT_HALF_HEIGHT | TRACK_ELEM_FLAG_BANKED,
/* TrackElemType::RightBankToDown25 */ TRACK_ELEM_FLAG_DOWN | TRACK_ELEM_FLAG_STARTS_AT_HALF_HEIGHT | TRACK_ELEM_FLAG_BANKED,
/* TrackElemType::Down25ToLeftBank */ TRACK_ELEM_FLAG_DOWN | TRACK_ELEM_FLAG_BANKED,
/* TrackElemType::Down25ToRightBank */ TRACK_ELEM_FLAG_DOWN | TRACK_ELEM_FLAG_BANKED,
/* TrackElemType::LeftBank */ TRACK_ELEM_FLAG_BANKED,
/* TrackElemType::RightBank */ TRACK_ELEM_FLAG_BANKED,
/* TrackElemType::LeftQuarterTurn5TilesUp25 */ TRACK_ELEM_FLAG_TURN_LEFT | TRACK_ELEM_FLAG_TURN_SLOPED | TRACK_ELEM_FLAG_UP | TRACK_ELEM_FLAG_STARTS_AT_HALF_HEIGHT | TRACK_ELEM_FLAG_ALLOW_LIFT_HILL | TRACK_ELEM_FLAG_CURVE_ALLOWS_LIFT,
/* TrackElemType::RightQuarterTurn5TilesUp25 */ TRACK_ELEM_FLAG_TURN_RIGHT | TRACK_ELEM_FLAG_TURN_SLOPED | TRACK_ELEM_FLAG_UP | TRACK_ELEM_FLAG_STARTS_AT_HALF_HEIGHT | TRACK_ELEM_FLAG_ALLOW_LIFT_HILL | TRACK_ELEM_FLAG_CURVE_ALLOWS_LIFT,
/* TrackElemType::LeftQuarterTurn5TilesDown25 */ TRACK_ELEM_FLAG_TURN_LEFT | TRACK_ELEM_FLAG_TURN_SLOPED | TRACK_ELEM_FLAG_DOWN | TRACK_ELEM_FLAG_STARTS_AT_HALF_HEIGHT | TRACK_ELEM_FLAG_ALLOW_LIFT_HILL | TRACK_ELEM_FLAG_CURVE_ALLOWS_LIFT,
/* TrackElemType::RightQuarterTurn5TilesDown25 */ TRACK_ELEM_FLAG_TURN_RIGHT | TRACK_ELEM_FLAG_TURN_SLOPED | TRACK_ELEM_FLAG_DOWN | TRACK_ELEM_FLAG_STARTS_AT_HALF_HEIGHT | TRACK_ELEM_FLAG_ALLOW_LIFT_HILL | TRACK_ELEM_FLAG_CURVE_ALLOWS_LIFT,
/* TrackElemType::SBendLeft */ 0,
/* TrackElemType::SBendRight */ 0,
/* TrackElemType::LeftVerticalLoop */ TRACK_ELEM_FLAG_NORMAL_TO_INVERSION | TRACK_ELEM_FLAG_STARTS_AT_HALF_HEIGHT | TRACK_ELEM_FLAG_INVERSION_TO_NORMAL,
/* TrackElemType::RightVerticalLoop */ TRACK_ELEM_FLAG_NORMAL_TO_INVERSION | TRACK_ELEM_FLAG_STARTS_AT_HALF_HEIGHT | TRACK_ELEM_FLAG_INVERSION_TO_NORMAL,
/* TrackElemType::LeftQuarterTurn3Tiles */ TRACK_ELEM_FLAG_TURN_LEFT,
/* TrackElemType::RightQuarterTurn3Tiles */ TRACK_ELEM_FLAG_TURN_RIGHT,
/* TrackElemType::LeftBankedQuarterTurn3Tiles */ TRACK_ELEM_FLAG_TURN_LEFT | TRACK_ELEM_FLAG_TURN_BANKED | TRACK_ELEM_FLAG_BANKED,
/* TrackElemType::RightBankedQuarterTurn3Tiles */ TRACK_ELEM_FLAG_TURN_RIGHT | TRACK_ELEM_FLAG_TURN_BANKED | TRACK_ELEM_FLAG_BANKED,
/* TrackElemType::LeftQuarterTurn3TilesUp25 */ TRACK_ELEM_FLAG_TURN_LEFT | TRACK_ELEM_FLAG_TURN_SLOPED | TRACK_ELEM_FLAG_UP | TRACK_ELEM_FLAG_STARTS_AT_HALF_HEIGHT | TRACK_ELEM_FLAG_ALLOW_LIFT_HILL | TRACK_ELEM_FLAG_CURVE_ALLOWS_LIFT,
/* TrackElemType::RightQuarterTurn3TilesUp25 */ TRACK_ELEM_FLAG_TURN_RIGHT | TRACK_ELEM_FLAG_TURN_SLOPED | TRACK_ELEM_FLAG_UP | TRACK_ELEM_FLAG_STARTS_AT_HALF_HEIGHT | TRACK_ELEM_FLAG_ALLOW_LIFT_HILL | TRACK_ELEM_FLAG_CURVE_ALLOWS_LIFT,
/* TrackElemType::LeftQuarterTurn3TilesDown25 */ TRACK_ELEM_FLAG_TURN_LEFT | TRACK_ELEM_FLAG_TURN_SLOPED | TRACK_ELEM_FLAG_DOWN | TRACK_ELEM_FLAG_STARTS_AT_HALF_HEIGHT | TRACK_ELEM_FLAG_ALLOW_LIFT_HILL | TRACK_ELEM_FLAG_CURVE_ALLOWS_LIFT,
/* TrackElemType::RightQuarterTurn3TilesDown25 */ TRACK_ELEM_FLAG_TURN_RIGHT | TRACK_ELEM_FLAG_TURN_SLOPED | TRACK_ELEM_FLAG_DOWN | TRACK_ELEM_FLAG_STARTS_AT_HALF_HEIGHT | TRACK_ELEM_FLAG_ALLOW_LIFT_HILL | TRACK_ELEM_FLAG_CURVE_ALLOWS_LIFT,
/* TrackElemType::LeftQuarterTurn1Tile */ TRACK_ELEM_FLAG_TURN_LEFT,
/* TrackElemType::RightQuarterTurn1Tile */ TRACK_ELEM_FLAG_TURN_RIGHT,
/* TrackElemType::LeftTwistDownToUp */ TRACK_ELEM_FLAG_NORMAL_TO_INVERSION | TRACK_ELEM_FLAG_INVERSION_TO_NORMAL,
/* TrackElemType::RightTwistDownToUp */ TRACK_ELEM_FLAG_NORMAL_TO_INVERSION | TRACK_ELEM_FLAG_INVERSION_TO_NORMAL,
/* TrackElemType::LeftTwistUpToDown */ TRACK_ELEM_FLAG_INVERSION_TO_NORMAL,
/* TrackElemType::RightTwistUpToDown */ TRACK_ELEM_FLAG_INVERSION_TO_NORMAL,
/* TrackElemType::HalfLoopUp */ TRACK_ELEM_FLAG_UP | TRACK_ELEM_FLAG_NORMAL_TO_INVERSION | TRACK_ELEM_FLAG_STARTS_AT_HALF_HEIGHT | TRACK_ELEM_FLAG_INVERSION_TO_NORMAL,
/* TrackElemType::HalfLoopDown */ TRACK_ELEM_FLAG_DOWN | TRACK_ELEM_FLAG_INVERSION_TO_NORMAL,
/* TrackElemType::LeftCorkscrewUp */ TRACK_ELEM_FLAG_UP | TRACK_ELEM_FLAG_NORMAL_TO_INVERSION | TRACK_ELEM_FLAG_INVERSION_TO_NORMAL,
/* TrackElemType::RightCorkscrewUp */ TRACK_ELEM_FLAG_UP | TRACK_ELEM_FLAG_NORMAL_TO_INVERSION | TRACK_ELEM_FLAG_INVERSION_TO_NORMAL,
/* TrackElemType::LeftCorkscrewDown */ TRACK_ELEM_FLAG_DOWN | TRACK_ELEM_FLAG_INVERSION_TO_NORMAL,
/* TrackElemType::RightCorkscrewDown */ TRACK_ELEM_FLAG_DOWN | TRACK_ELEM_FLAG_INVERSION_TO_NORMAL,
/* TrackElemType::FlatToUp60 */ TRACK_ELEM_FLAG_UP | TRACK_ELEM_FLAG_IS_STEEP_UP | TRACK_ELEM_FLAG_ALLOW_LIFT_HILL,
/* TrackElemType::Up60ToFlat */ TRACK_ELEM_FLAG_UP | TRACK_ELEM_FLAG_STARTS_AT_HALF_HEIGHT | TRACK_ELEM_FLAG_IS_STEEP_UP | TRACK_ELEM_FLAG_ALLOW_LIFT_HILL,
/* TrackElemType::FlatToDown60 */ TRACK_ELEM_FLAG_DOWN | TRACK_ELEM_FLAG_STARTS_AT_HALF_HEIGHT | TRACK_ELEM_FLAG_ALLOW_LIFT_HILL,
/* TrackElemType::Down60ToFlat */ TRACK_ELEM_FLAG_DOWN | TRACK_ELEM_FLAG_ALLOW_LIFT_HILL,
/* TrackElemType::TowerBase */ 0,
/* TrackElemType::TowerSection */ 0,
/* TrackElemType::FlatCovered */ 0,
/* TrackElemType::Up25Covered */ TRACK_ELEM_FLAG_UP | TRACK_ELEM_FLAG_STARTS_AT_HALF_HEIGHT,
/* TrackElemType::Up60Covered */ TRACK_ELEM_FLAG_UP | TRACK_ELEM_FLAG_STARTS_AT_HALF_HEIGHT,
/* TrackElemType::FlatToUp25Covered */ TRACK_ELEM_FLAG_UP,
/* TrackElemType::Up25ToUp60Covered */ TRACK_ELEM_FLAG_UP | TRACK_ELEM_FLAG_STARTS_AT_HALF_HEIGHT,
/* TrackElemType::Up60ToUp25Covered */ TRACK_ELEM_FLAG_UP | TRACK_ELEM_FLAG_STARTS_AT_HALF_HEIGHT,
/* TrackElemType::Up25ToFlatCovered */ TRACK_ELEM_FLAG_UP | TRACK_ELEM_FLAG_STARTS_AT_HALF_HEIGHT,
/* TrackElemType::Down25Covered */ TRACK_ELEM_FLAG_DOWN | TRACK_ELEM_FLAG_STARTS_AT_HALF_HEIGHT,
/* TrackElemType::Down60Covered */ TRACK_ELEM_FLAG_DOWN | TRACK_ELEM_FLAG_STARTS_AT_HALF_HEIGHT,
/* TrackElemType::FlatToDown25Covered */ TRACK_ELEM_FLAG_DOWN | TRACK_ELEM_FLAG_STARTS_AT_HALF_HEIGHT,
/* TrackElemType::Down25ToDown60Covered */ TRACK_ELEM_FLAG_DOWN | TRACK_ELEM_FLAG_STARTS_AT_HALF_HEIGHT,
/* TrackElemType::Down60ToDown25Covered */ TRACK_ELEM_FLAG_DOWN | TRACK_ELEM_FLAG_STARTS_AT_HALF_HEIGHT,
/* TrackElemType::Down25ToFlatCovered */ TRACK_ELEM_FLAG_DOWN,
/* TrackElemType::LeftQuarterTurn5TilesCovered */ TRACK_ELEM_FLAG_TURN_LEFT,
/* TrackElemType::RightQuarterTurn5TilesCovered */ TRACK_ELEM_FLAG_TURN_RIGHT,
/* TrackElemType::SBendLeftCovered */ 0,
/* TrackElemType::SBendRightCovered */ 0,
/* TrackElemType::LeftQuarterTurn3TilesCovered */ TRACK_ELEM_FLAG_TURN_LEFT,
/* TrackElemType::RightQuarterTurn3TilesCovered */ TRACK_ELEM_FLAG_TURN_RIGHT,
/* TrackElemType::LeftHalfBankedHelixUpSmall */ TRACK_ELEM_FLAG_TURN_LEFT | TRACK_ELEM_FLAG_HELIX | TRACK_ELEM_FLAG_BANKED,
/* TrackElemType::RightHalfBankedHelixUpSmall */ TRACK_ELEM_FLAG_TURN_RIGHT | TRACK_ELEM_FLAG_HELIX | TRACK_ELEM_FLAG_BANKED,
/* TrackElemType::LeftHalfBankedHelixDownSmall */ TRACK_ELEM_FLAG_TURN_LEFT | TRACK_ELEM_FLAG_HELIX | TRACK_ELEM_FLAG_BANKED,
/* TrackElemType::RightHalfBankedHelixDownSmall */ TRACK_ELEM_FLAG_TURN_RIGHT | TRACK_ELEM_FLAG_HELIX | TRACK_ELEM_FLAG_BANKED,
/* TrackElemType::LeftHalfBankedHelixUpLarge */ TRACK_ELEM_FLAG_TURN_LEFT | TRACK_ELEM_FLAG_HELIX | TRACK_ELEM_FLAG_BANKED,
/* TrackElemType::RightHalfBankedHelixUpLarge */ TRACK_ELEM_FLAG_TURN_RIGHT | TRACK_ELEM_FLAG_HELIX | TRACK_ELEM_FLAG_BANKED,
/* TrackElemType::LeftHalfBankedHelixDownLarge */ TRACK_ELEM_FLAG_TURN_LEFT | TRACK_ELEM_FLAG_HELIX | TRACK_ELEM_FLAG_BANKED,
/* TrackElemType::RightHalfBankedHelixDownLarge */ TRACK_ELEM_FLAG_TURN_RIGHT | TRACK_ELEM_FLAG_HELIX | TRACK_ELEM_FLAG_BANKED,
/* TrackElemType::LeftQuarterTurn1TileUp60 */ TRACK_ELEM_FLAG_TURN_LEFT | TRACK_ELEM_FLAG_TURN_SLOPED | TRACK_ELEM_FLAG_UP | TRACK_ELEM_FLAG_STARTS_AT_HALF_HEIGHT,
/* TrackElemType::RightQuarterTurn1TileUp60 */ TRACK_ELEM_FLAG_TURN_RIGHT | TRACK_ELEM_FLAG_TURN_SLOPED | TRACK_ELEM_FLAG_UP | TRACK_ELEM_FLAG_STARTS_AT_HALF_HEIGHT,
/* TrackElemType::LeftQuarterTurn1TileDown60 */ TRACK_ELEM_FLAG_TURN_LEFT | TRACK_ELEM_FLAG_TURN_SLOPED | TRACK_ELEM_FLAG_DOWN | TRACK_ELEM_FLAG_STARTS_AT_HALF_HEIGHT,
/* TrackElemType::RightQuarterTurn1TileDown60 */ TRACK_ELEM_FLAG_TURN_RIGHT | TRACK_ELEM_FLAG_TURN_SLOPED | TRACK_ELEM_FLAG_DOWN | TRACK_ELEM_FLAG_STARTS_AT_HALF_HEIGHT,
/* TrackElemType::Brakes */ 0,
/* TrackElemType::RotationControlToggle */ 0,
/* TrackElemType::InvertedUp90ToFlatQuarterLoopAlias / Maze */ TRACK_ELEM_FLAG_ONLY_ABOVE_GROUND,
/* TrackElemType::LeftQuarterBankedHelixLargeUp */ TRACK_ELEM_FLAG_TURN_LEFT | TRACK_ELEM_FLAG_HELIX | TRACK_ELEM_FLAG_BANKED,
/* TrackElemType::RightQuarterBankedHelixLargeUp */ TRACK_ELEM_FLAG_TURN_RIGHT | TRACK_ELEM_FLAG_HELIX | TRACK_ELEM_FLAG_BANKED,
/* TrackElemType::LeftQuarterBankedHelixLargeDown */ TRACK_ELEM_FLAG_TURN_LEFT | TRACK_ELEM_FLAG_HELIX | TRACK_ELEM_FLAG_BANKED,
/* TrackElemType::RightQuarterBankedHelixLargeDown */ TRACK_ELEM_FLAG_TURN_RIGHT | TRACK_ELEM_FLAG_HELIX | TRACK_ELEM_FLAG_BANKED,
/* TrackElemType::LeftQuarterHelixLargeUp */ TRACK_ELEM_FLAG_TURN_LEFT | TRACK_ELEM_FLAG_HELIX,
/* TrackElemType::RightQuarterHelixLargeUp */ TRACK_ELEM_FLAG_TURN_RIGHT | TRACK_ELEM_FLAG_HELIX,
/* TrackElemType::LeftQuarterHelixLargeDown */ TRACK_ELEM_FLAG_TURN_LEFT | TRACK_ELEM_FLAG_HELIX,
/* TrackElemType::RightQuarterHelixLargeDown */ TRACK_ELEM_FLAG_TURN_RIGHT | TRACK_ELEM_FLAG_HELIX,
/* TrackElemType::Up25LeftBanked */ TRACK_ELEM_FLAG_UP | TRACK_ELEM_FLAG_STARTS_AT_HALF_HEIGHT | TRACK_ELEM_FLAG_BANKED,
/* TrackElemType::Up25RightBanked */ TRACK_ELEM_FLAG_UP | TRACK_ELEM_FLAG_STARTS_AT_HALF_HEIGHT | TRACK_ELEM_FLAG_BANKED,
/* TrackElemType::Waterfall */ 0,
/* TrackElemType::Rapids */ 0,
/* TrackElemType::OnRidePhoto */ 0,
/* TrackElemType::Down25LeftBanked */ TRACK_ELEM_FLAG_DOWN | TRACK_ELEM_FLAG_STARTS_AT_HALF_HEIGHT | TRACK_ELEM_FLAG_BANKED,
/* TrackElemType::Down25RightBanked */ TRACK_ELEM_FLAG_DOWN | TRACK_ELEM_FLAG_STARTS_AT_HALF_HEIGHT | TRACK_ELEM_FLAG_BANKED,
/* TrackElemType::Watersplash */ 0,
/* TrackElemType::FlatToUp60LongBase */ TRACK_ELEM_FLAG_UP,
/* TrackElemType::Up60ToFlatLongBase */ TRACK_ELEM_FLAG_UP | TRACK_ELEM_FLAG_STARTS_AT_HALF_HEIGHT,
/* TrackElemType::Whirlpool */ 0,
/* TrackElemType::Down60ToFlatLongBase */ TRACK_ELEM_FLAG_DOWN,
/* TrackElemType::FlatToDown60LongBase */ TRACK_ELEM_FLAG_DOWN | TRACK_ELEM_FLAG_STARTS_AT_HALF_HEIGHT,
/* TrackElemType::CableLiftHill */ TRACK_ELEM_FLAG_DOWN | TRACK_ELEM_FLAG_STARTS_AT_HALF_HEIGHT,
/* TrackElemType::ReverseFreefallSlope */ TRACK_ELEM_FLAG_UP,
/* TrackElemType::ReverseFreefallVertical */ TRACK_ELEM_FLAG_UP,
/* TrackElemType::Up90 */ TRACK_ELEM_FLAG_UP,
/* TrackElemType::Down90 */ TRACK_ELEM_FLAG_DOWN | TRACK_ELEM_FLAG_ALLOW_LIFT_HILL,
/* TrackElemType::Up60ToUp90 */ TRACK_ELEM_FLAG_UP | TRACK_ELEM_FLAG_STARTS_AT_HALF_HEIGHT,
/* TrackElemType::Down90ToDown60 */ TRACK_ELEM_FLAG_DOWN | TRACK_ELEM_FLAG_STARTS_AT_HALF_HEIGHT | TRACK_ELEM_FLAG_ALLOW_LIFT_HILL,
/* TrackElemType::Up90ToUp60 */ TRACK_ELEM_FLAG_UP,
/* TrackElemType::Down60ToDown90 */ TRACK_ELEM_FLAG_DOWN,
/* TrackElemType::BrakeForDrop */ TRACK_ELEM_FLAG_DOWN | TRACK_ELEM_FLAG_STARTS_AT_HALF_HEIGHT,
/* TrackElemType::LeftEighthToDiag */ TRACK_ELEM_FLAG_TURN_LEFT,
/* TrackElemType::RightEighthToDiag */ TRACK_ELEM_FLAG_TURN_RIGHT,
/* TrackElemType::LeftEighthToOrthogonal */ TRACK_ELEM_FLAG_TURN_LEFT,
/* TrackElemType::RightEighthToOrthogonal */ TRACK_ELEM_FLAG_TURN_RIGHT,
/* TrackElemType::LeftEighthBankToDiag */ TRACK_ELEM_FLAG_TURN_LEFT | TRACK_ELEM_FLAG_TURN_BANKED | TRACK_ELEM_FLAG_BANKED,
/* TrackElemType::RightEighthBankToDiag */ TRACK_ELEM_FLAG_TURN_RIGHT | TRACK_ELEM_FLAG_TURN_BANKED | TRACK_ELEM_FLAG_BANKED,
/* TrackElemType::LeftEighthBankToOrthogonal */ TRACK_ELEM_FLAG_TURN_LEFT | TRACK_ELEM_FLAG_TURN_BANKED | TRACK_ELEM_FLAG_BANKED,
/* TrackElemType::RightEighthBankToOrthogonal */ TRACK_ELEM_FLAG_TURN_RIGHT | TRACK_ELEM_FLAG_TURN_BANKED | TRACK_ELEM_FLAG_BANKED,
/* TrackElemType::DiagFlat */ TRACK_ELEM_FLAG_ALLOW_LIFT_HILL,
/* TrackElemType::DiagUp25 */ TRACK_ELEM_FLAG_UP | TRACK_ELEM_FLAG_STARTS_AT_HALF_HEIGHT | TRACK_ELEM_FLAG_ALLOW_LIFT_HILL,
/* TrackElemType::DiagUp60 */ TRACK_ELEM_FLAG_UP | TRACK_ELEM_FLAG_STARTS_AT_HALF_HEIGHT | TRACK_ELEM_FLAG_IS_STEEP_UP | TRACK_ELEM_FLAG_ALLOW_LIFT_HILL,
/* TrackElemType::DiagFlatToUp25 */ TRACK_ELEM_FLAG_UP | TRACK_ELEM_FLAG_ALLOW_LIFT_HILL,
/* TrackElemType::DiagUp25ToUp60 */ TRACK_ELEM_FLAG_UP | TRACK_ELEM_FLAG_STARTS_AT_HALF_HEIGHT | TRACK_ELEM_FLAG_IS_STEEP_UP | TRACK_ELEM_FLAG_ALLOW_LIFT_HILL,
/* TrackElemType::DiagUp60ToUp25 */ TRACK_ELEM_FLAG_UP | TRACK_ELEM_FLAG_STARTS_AT_HALF_HEIGHT | TRACK_ELEM_FLAG_IS_STEEP_UP | TRACK_ELEM_FLAG_ALLOW_LIFT_HILL,
/* TrackElemType::DiagUp25ToFlat */ TRACK_ELEM_FLAG_UP | TRACK_ELEM_FLAG_STARTS_AT_HALF_HEIGHT | TRACK_ELEM_FLAG_ALLOW_LIFT_HILL,
/* TrackElemType::DiagDown25 */ TRACK_ELEM_FLAG_DOWN | TRACK_ELEM_FLAG_STARTS_AT_HALF_HEIGHT | TRACK_ELEM_FLAG_ALLOW_LIFT_HILL,
/* TrackElemType::DiagDown60 */ TRACK_ELEM_FLAG_DOWN | TRACK_ELEM_FLAG_STARTS_AT_HALF_HEIGHT | TRACK_ELEM_FLAG_ALLOW_LIFT_HILL,
/* TrackElemType::DiagFlatToDown25 */ TRACK_ELEM_FLAG_DOWN | TRACK_ELEM_FLAG_STARTS_AT_HALF_HEIGHT | TRACK_ELEM_FLAG_ALLOW_LIFT_HILL,
/* TrackElemType::DiagDown25ToDown60 */ TRACK_ELEM_FLAG_DOWN | TRACK_ELEM_FLAG_STARTS_AT_HALF_HEIGHT | TRACK_ELEM_FLAG_ALLOW_LIFT_HILL,
/* TrackElemType::DiagDown60ToDown25 */ TRACK_ELEM_FLAG_DOWN | TRACK_ELEM_FLAG_STARTS_AT_HALF_HEIGHT | TRACK_ELEM_FLAG_ALLOW_LIFT_HILL,
/* TrackElemType::DiagDown25ToFlat */ TRACK_ELEM_FLAG_DOWN | TRACK_ELEM_FLAG_ALLOW_LIFT_HILL,
/* TrackElemType::DiagFlatToUp60 */ TRACK_ELEM_FLAG_UP | TRACK_ELEM_FLAG_IS_STEEP_UP | TRACK_ELEM_FLAG_ALLOW_LIFT_HILL,
/* TrackElemType::DiagUp60ToFlat */ TRACK_ELEM_FLAG_UP | TRACK_ELEM_FLAG_STARTS_AT_HALF_HEIGHT | TRACK_ELEM_FLAG_IS_STEEP_UP | TRACK_ELEM_FLAG_ALLOW_LIFT_HILL,
/* TrackElemType::DiagFlatToDown60 */ TRACK_ELEM_FLAG_DOWN | TRACK_ELEM_FLAG_STARTS_AT_HALF_HEIGHT | TRACK_ELEM_FLAG_ALLOW_LIFT_HILL,
/* TrackElemType::DiagDown60ToFlat */ TRACK_ELEM_FLAG_DOWN | TRACK_ELEM_FLAG_ALLOW_LIFT_HILL,
/* TrackElemType::DiagFlatToLeftBank */ TRACK_ELEM_FLAG_BANKED,
/* TrackElemType::DiagFlatToRightBank */ TRACK_ELEM_FLAG_BANKED,
/* TrackElemType::DiagLeftBankToFlat */ TRACK_ELEM_FLAG_BANKED,
/* TrackElemType::DiagRightBankToFlat */ TRACK_ELEM_FLAG_BANKED,
/* TrackElemType::DiagLeftBankToUp25 */ TRACK_ELEM_FLAG_UP | TRACK_ELEM_FLAG_BANKED,
/* TrackElemType::DiagRightBankToUp25 */ TRACK_ELEM_FLAG_UP | TRACK_ELEM_FLAG_BANKED,
/* TrackElemType::DiagUp25ToLeftBank */ TRACK_ELEM_FLAG_UP | TRACK_ELEM_FLAG_STARTS_AT_HALF_HEIGHT | TRACK_ELEM_FLAG_BANKED,
/* TrackElemType::DiagUp25ToRightBank */ TRACK_ELEM_FLAG_UP | TRACK_ELEM_FLAG_STARTS_AT_HALF_HEIGHT | TRACK_ELEM_FLAG_BANKED,
/* TrackElemType::DiagLeftBankToDown25 */ TRACK_ELEM_FLAG_DOWN | TRACK_ELEM_FLAG_STARTS_AT_HALF_HEIGHT | TRACK_ELEM_FLAG_BANKED,
/* TrackElemType::DiagRightBankToDown25 */ TRACK_ELEM_FLAG_DOWN | TRACK_ELEM_FLAG_STARTS_AT_HALF_HEIGHT | TRACK_ELEM_FLAG_BANKED,
/* TrackElemType::DiagDown25ToLeftBank */ TRACK_ELEM_FLAG_DOWN,
/* TrackElemType::DiagDown25ToRightBank */ TRACK_ELEM_FLAG_DOWN,
/* TrackElemType::DiagLeftBank */ TRACK_ELEM_FLAG_BANKED,
/* TrackElemType::DiagRightBank */ TRACK_ELEM_FLAG_BANKED,
/* TrackElemType::LogFlumeReverser */ TRACK_ELEM_FLAG_BANKED,
/* TrackElemType::SpinningTunnel */ TRACK_ELEM_FLAG_BANKED,
/* TrackElemType::LeftBarrelRollUpToDown */ TRACK_ELEM_FLAG_NORMAL_TO_INVERSION | TRACK_ELEM_FLAG_INVERSION_TO_NORMAL,
/* TrackElemType::RightBarrelRollUpToDown */ TRACK_ELEM_FLAG_NORMAL_TO_INVERSION | TRACK_ELEM_FLAG_INVERSION_TO_NORMAL,
/* TrackElemType::LeftBarrelRollDownToUp */ TRACK_ELEM_FLAG_INVERSION_TO_NORMAL,
/* TrackElemType::RightBarrelRollDownToUp */ TRACK_ELEM_FLAG_INVERSION_TO_NORMAL,
/* TrackElemType::LeftBankToLeftQuarterTurn3TilesUp25 */ TRACK_ELEM_FLAG_TURN_LEFT | TRACK_ELEM_FLAG_TURN_SLOPED | TRACK_ELEM_FLAG_UP | TRACK_ELEM_FLAG_BANKED,
/* TrackElemType::RightBankToRightQuarterTurn3TilesUp25 */ TRACK_ELEM_FLAG_TURN_RIGHT | TRACK_ELEM_FLAG_TURN_SLOPED | TRACK_ELEM_FLAG_UP | TRACK_ELEM_FLAG_BANKED,
/* TrackElemType::LeftQuarterTurn3TilesDown25ToLeftBank */ TRACK_ELEM_FLAG_TURN_LEFT | TRACK_ELEM_FLAG_TURN_SLOPED | TRACK_ELEM_FLAG_DOWN | TRACK_ELEM_FLAG_BANKED,
/* TrackElemType::RightQuarterTurn3TilesDown25ToRightBank */ TRACK_ELEM_FLAG_TURN_RIGHT | TRACK_ELEM_FLAG_TURN_SLOPED | TRACK_ELEM_FLAG_DOWN | TRACK_ELEM_FLAG_BANKED,
/* TrackElemType::PoweredLift */ TRACK_ELEM_FLAG_UP | TRACK_ELEM_FLAG_STARTS_AT_HALF_HEIGHT,
/* TrackElemType::LeftLargeHalfLoopUp */ TRACK_ELEM_FLAG_UP | TRACK_ELEM_FLAG_NORMAL_TO_INVERSION | TRACK_ELEM_FLAG_STARTS_AT_HALF_HEIGHT | TRACK_ELEM_FLAG_INVERSION_TO_NORMAL,
/* TrackElemType::RightLargeHalfLoopUp */ TRACK_ELEM_FLAG_UP | TRACK_ELEM_FLAG_NORMAL_TO_INVERSION | TRACK_ELEM_FLAG_STARTS_AT_HALF_HEIGHT | TRACK_ELEM_FLAG_INVERSION_TO_NORMAL,
/* TrackElemType::RightLargeHalfLoopDown */ TRACK_ELEM_FLAG_DOWN | TRACK_ELEM_FLAG_INVERSION_TO_NORMAL,
/* TrackElemType::LeftLargeHalfLoopDown */ TRACK_ELEM_FLAG_DOWN | TRACK_ELEM_FLAG_INVERSION_TO_NORMAL,
/* TrackElemType::LeftFlyerTwistUp */ TRACK_ELEM_FLAG_NORMAL_TO_INVERSION | TRACK_ELEM_FLAG_INVERSION_TO_NORMAL,
/* TrackElemType::RightFlyerTwistUp */ TRACK_ELEM_FLAG_NORMAL_TO_INVERSION | TRACK_ELEM_FLAG_INVERSION_TO_NORMAL,
/* TrackElemType::LeftFlyerTwistDown */ TRACK_ELEM_FLAG_INVERSION_TO_NORMAL,
/* TrackElemType::RightFlyerTwistDown */ TRACK_ELEM_FLAG_INVERSION_TO_NORMAL,
/* TrackElemType::FlyerHalfLoopUp */ TRACK_ELEM_FLAG_UP | TRACK_ELEM_FLAG_NORMAL_TO_INVERSION | TRACK_ELEM_FLAG_STARTS_AT_HALF_HEIGHT | TRACK_ELEM_FLAG_INVERSION_TO_NORMAL,
/* TrackElemType::FlyerHalfLoopDown */ TRACK_ELEM_FLAG_DOWN | TRACK_ELEM_FLAG_INVERSION_TO_NORMAL,
/* TrackElemType::LeftFlyerCorkscrewUp */ TRACK_ELEM_FLAG_UP | TRACK_ELEM_FLAG_NORMAL_TO_INVERSION | TRACK_ELEM_FLAG_INVERSION_TO_NORMAL,
/* TrackElemType::RightFlyerCorkscrewUp */ TRACK_ELEM_FLAG_UP | TRACK_ELEM_FLAG_NORMAL_TO_INVERSION | TRACK_ELEM_FLAG_INVERSION_TO_NORMAL,
/* TrackElemType::LeftFlyerCorkscrewDown */ TRACK_ELEM_FLAG_DOWN | TRACK_ELEM_FLAG_INVERSION_TO_NORMAL,
/* TrackElemType::RightFlyerCorkscrewDown */ TRACK_ELEM_FLAG_DOWN | TRACK_ELEM_FLAG_INVERSION_TO_NORMAL,
/* TrackElemType::HeartLineTransferUp */ 0,
/* TrackElemType::HeartLineTransferDown */ 0,
/* TrackElemType::LeftHeartLineRoll */ TRACK_ELEM_FLAG_NORMAL_TO_INVERSION | TRACK_ELEM_FLAG_INVERSION_TO_NORMAL,
/* TrackElemType::RightHeartLineRoll */ TRACK_ELEM_FLAG_NORMAL_TO_INVERSION | TRACK_ELEM_FLAG_INVERSION_TO_NORMAL,
/* TrackElemType::MinigolfHoleA */ TRACK_ELEM_FLAG_IS_GOLF_HOLE,
/* TrackElemType::MinigolfHoleB */ TRACK_ELEM_FLAG_IS_GOLF_HOLE,
/* TrackElemType::MinigolfHoleC */ TRACK_ELEM_FLAG_IS_GOLF_HOLE,
/* TrackElemType::MinigolfHoleD */ TRACK_ELEM_FLAG_IS_GOLF_HOLE,
/* TrackElemType::MinigolfHoleE */ TRACK_ELEM_FLAG_IS_GOLF_HOLE,
/* TrackElemType::MultiDimInvertedFlatToDown90QuarterLoop */ TRACK_ELEM_FLAG_DOWN | TRACK_ELEM_FLAG_INVERSION_TO_NORMAL,
/* TrackElemType::Up90ToInvertedFlatQuarterLoop */ TRACK_ELEM_FLAG_UP | TRACK_ELEM_FLAG_NORMAL_TO_INVERSION | TRACK_ELEM_FLAG_INVERSION_TO_NORMAL,
/* TrackElemType::InvertedFlatToDown90QuarterLoop */ TRACK_ELEM_FLAG_DOWN | TRACK_ELEM_FLAG_INVERSION_TO_NORMAL,
/* TrackElemType::LeftCurvedLiftHill */ TRACK_ELEM_FLAG_TURN_LEFT | TRACK_ELEM_FLAG_UP,
/* TrackElemType::RightCurvedLiftHill */ TRACK_ELEM_FLAG_TURN_RIGHT | TRACK_ELEM_FLAG_UP,
/* TrackElemType::LeftReverser */ 0,
/* TrackElemType::RightReverser */ 0,
/* TrackElemType::AirThrustTopCap */ 0,
/* TrackElemType::AirThrustVerticalDown */ TRACK_ELEM_FLAG_DOWN,
/* TrackElemType::AirThrustVerticalDownToLevel */ TRACK_ELEM_FLAG_DOWN,
/* TrackElemType::BlockBrakes */ 0,
/* TrackElemType::LeftBankedQuarterTurn3TileUp25 */ TRACK_ELEM_FLAG_TURN_LEFT | TRACK_ELEM_FLAG_TURN_SLOPED | TRACK_ELEM_FLAG_UP | TRACK_ELEM_FLAG_STARTS_AT_HALF_HEIGHT | TRACK_ELEM_FLAG_BANKED,
/* TrackElemType::RightBankedQuarterTurn3TileUp25 */ TRACK_ELEM_FLAG_TURN_RIGHT | TRACK_ELEM_FLAG_TURN_SLOPED | TRACK_ELEM_FLAG_UP | TRACK_ELEM_FLAG_STARTS_AT_HALF_HEIGHT | TRACK_ELEM_FLAG_BANKED,
/* TrackElemType::LeftBankedQuarterTurn3TileDown25 */ TRACK_ELEM_FLAG_TURN_LEFT | TRACK_ELEM_FLAG_TURN_SLOPED | TRACK_ELEM_FLAG_DOWN | TRACK_ELEM_FLAG_STARTS_AT_HALF_HEIGHT | TRACK_ELEM_FLAG_BANKED,
/* TrackElemType::RightBankedQuarterTurn3TileDown25 */ TRACK_ELEM_FLAG_TURN_RIGHT | TRACK_ELEM_FLAG_TURN_SLOPED | TRACK_ELEM_FLAG_DOWN | TRACK_ELEM_FLAG_STARTS_AT_HALF_HEIGHT | TRACK_ELEM_FLAG_BANKED,
/* TrackElemType::LeftBankedQuarterTurn5TileUp25 */ TRACK_ELEM_FLAG_TURN_LEFT | TRACK_ELEM_FLAG_TURN_SLOPED | TRACK_ELEM_FLAG_UP | TRACK_ELEM_FLAG_STARTS_AT_HALF_HEIGHT | TRACK_ELEM_FLAG_BANKED,
/* TrackElemType::RightBankedQuarterTurn5TileUp25 */ TRACK_ELEM_FLAG_TURN_RIGHT | TRACK_ELEM_FLAG_TURN_SLOPED | TRACK_ELEM_FLAG_UP | TRACK_ELEM_FLAG_STARTS_AT_HALF_HEIGHT | TRACK_ELEM_FLAG_BANKED,
/* TrackElemType::LeftBankedQuarterTurn5TileDown25 */ TRACK_ELEM_FLAG_TURN_LEFT | TRACK_ELEM_FLAG_TURN_SLOPED | TRACK_ELEM_FLAG_DOWN | TRACK_ELEM_FLAG_STARTS_AT_HALF_HEIGHT | TRACK_ELEM_FLAG_BANKED,
/* TrackElemType::RightBankedQuarterTurn5TileDown25 */ TRACK_ELEM_FLAG_TURN_RIGHT | TRACK_ELEM_FLAG_TURN_SLOPED | TRACK_ELEM_FLAG_DOWN | TRACK_ELEM_FLAG_STARTS_AT_HALF_HEIGHT | TRACK_ELEM_FLAG_BANKED,
/* TrackElemType::Up25ToLeftBankedUp25 */ TRACK_ELEM_FLAG_UP | TRACK_ELEM_FLAG_STARTS_AT_HALF_HEIGHT | TRACK_ELEM_FLAG_BANKED,
/* TrackElemType::Up25ToRightBankedUp25 */ TRACK_ELEM_FLAG_UP | TRACK_ELEM_FLAG_STARTS_AT_HALF_HEIGHT | TRACK_ELEM_FLAG_BANKED,
/* TrackElemType::LeftBankedUp25ToUp25 */ TRACK_ELEM_FLAG_UP | TRACK_ELEM_FLAG_STARTS_AT_HALF_HEIGHT | TRACK_ELEM_FLAG_BANKED,
/* TrackElemType::RightBankedUp25ToUp25 */ TRACK_ELEM_FLAG_UP | TRACK_ELEM_FLAG_STARTS_AT_HALF_HEIGHT | TRACK_ELEM_FLAG_BANKED,
/* TrackElemType::Down25ToLeftBankedDown25 */ TRACK_ELEM_FLAG_DOWN | TRACK_ELEM_FLAG_STARTS_AT_HALF_HEIGHT | TRACK_ELEM_FLAG_BANKED,
/* TrackElemType::Down25ToRightBankedDown25 */ TRACK_ELEM_FLAG_DOWN | TRACK_ELEM_FLAG_STARTS_AT_HALF_HEIGHT | TRACK_ELEM_FLAG_BANKED,
/* TrackElemType::LeftBankedDown25ToDown25 */ TRACK_ELEM_FLAG_DOWN | TRACK_ELEM_FLAG_STARTS_AT_HALF_HEIGHT | TRACK_ELEM_FLAG_BANKED,
/* TrackElemType::RightBankedDown25ToDown25 */ TRACK_ELEM_FLAG_DOWN | TRACK_ELEM_FLAG_STARTS_AT_HALF_HEIGHT | TRACK_ELEM_FLAG_BANKED,
/* TrackElemType::LeftBankedFlatToLeftBankedUp25 */ TRACK_ELEM_FLAG_UP | TRACK_ELEM_FLAG_BANKED,
/* TrackElemType::RightBankedFlatToRightBankedUp25 */ TRACK_ELEM_FLAG_UP | TRACK_ELEM_FLAG_BANKED,
/* TrackElemType::LeftBankedUp25ToLeftBankedFlat */ TRACK_ELEM_FLAG_UP | TRACK_ELEM_FLAG_STARTS_AT_HALF_HEIGHT | TRACK_ELEM_FLAG_BANKED,
/* TrackElemType::RightBankedUp25ToRightBankedFlat */ TRACK_ELEM_FLAG_UP | TRACK_ELEM_FLAG_STARTS_AT_HALF_HEIGHT | TRACK_ELEM_FLAG_BANKED,
/* TrackElemType::LeftBankedFlatToLeftBankedDown25 */ TRACK_ELEM_FLAG_DOWN | TRACK_ELEM_FLAG_STARTS_AT_HALF_HEIGHT | TRACK_ELEM_FLAG_BANKED,
/* TrackElemType::RightBankedFlatToRightBankedDown25 */ TRACK_ELEM_FLAG_DOWN | TRACK_ELEM_FLAG_STARTS_AT_HALF_HEIGHT | TRACK_ELEM_FLAG_BANKED,
/* TrackElemType::LeftBankedDown25ToLeftBankedFlat */ TRACK_ELEM_FLAG_DOWN | TRACK_ELEM_FLAG_BANKED,
/* TrackElemType::RightBankedDown25ToRightBankedFlat */ TRACK_ELEM_FLAG_DOWN | TRACK_ELEM_FLAG_BANKED,
/* TrackElemType::FlatToLeftBankedUp25 */ TRACK_ELEM_FLAG_UP | TRACK_ELEM_FLAG_BANKED,
/* TrackElemType::FlatToRightBankedUp25 */ TRACK_ELEM_FLAG_UP | TRACK_ELEM_FLAG_BANKED,
/* TrackElemType::LeftBankedUp25ToFlat */ TRACK_ELEM_FLAG_UP | TRACK_ELEM_FLAG_STARTS_AT_HALF_HEIGHT | TRACK_ELEM_FLAG_BANKED,
/* TrackElemType::RightBankedUp25ToFlat */ TRACK_ELEM_FLAG_UP | TRACK_ELEM_FLAG_STARTS_AT_HALF_HEIGHT | TRACK_ELEM_FLAG_BANKED,
/* TrackElemType::FlatToLeftBankedDown25 */ TRACK_ELEM_FLAG_DOWN | TRACK_ELEM_FLAG_STARTS_AT_HALF_HEIGHT | TRACK_ELEM_FLAG_BANKED,
/* TrackElemType::FlatToRightBankedDown25 */ TRACK_ELEM_FLAG_DOWN | TRACK_ELEM_FLAG_STARTS_AT_HALF_HEIGHT | TRACK_ELEM_FLAG_BANKED,
/* TrackElemType::LeftBankedDown25ToFlat */ TRACK_ELEM_FLAG_DOWN | TRACK_ELEM_FLAG_BANKED,
/* TrackElemType::RightBankedDown25ToFlat */ TRACK_ELEM_FLAG_DOWN | TRACK_ELEM_FLAG_BANKED,
/* TrackElemType::LeftQuarterTurn1TileUp90 */ TRACK_ELEM_FLAG_TURN_LEFT | TRACK_ELEM_FLAG_TURN_SLOPED | TRACK_ELEM_FLAG_UP,
/* TrackElemType::RightQuarterTurn1TileUp90 */ TRACK_ELEM_FLAG_TURN_RIGHT | TRACK_ELEM_FLAG_TURN_SLOPED | TRACK_ELEM_FLAG_UP,
/* TrackElemType::LeftQuarterTurn1TileDown90 */ TRACK_ELEM_FLAG_TURN_LEFT | TRACK_ELEM_FLAG_TURN_SLOPED | TRACK_ELEM_FLAG_DOWN,
/* TrackElemType::RightQuarterTurn1TileDown90 */ TRACK_ELEM_FLAG_TURN_RIGHT | TRACK_ELEM_FLAG_TURN_SLOPED | TRACK_ELEM_FLAG_DOWN,
/* TrackElemType::MultiDimUp90ToInvertedFlatQuarterLoop */ TRACK_ELEM_FLAG_UP | TRACK_ELEM_FLAG_NORMAL_TO_INVERSION | TRACK_ELEM_FLAG_INVERSION_TO_NORMAL,
/* TrackElemType::MultiDimFlatToDown90QuarterLoop */ TRACK_ELEM_FLAG_DOWN | TRACK_ELEM_FLAG_INVERSION_TO_NORMAL,
/* */ TRACK_ELEM_FLAG_UP | TRACK_ELEM_FLAG_NORMAL_TO_INVERSION | TRACK_ELEM_FLAG_INVERSION_TO_NORMAL,
};
// clang-format on