mirror of
https://github.com/OpenRCT2/OpenRCT2
synced 2026-01-27 16:54:52 +01:00
* Rename large half loops in TrackElemType namespace * Fix large half loop positions in DropdownOrder * Fix comments for medium loops * Fix medium half loop order in gTrackCurveChain Wrong piece was auto-suggested when building backwards. * Swap names of painting functions * Rename TrackElemType for Flying Coaster * Swap names of Flying Coaster painting functions * Swap Flying Coaster VehicleSubpositionData names * Swap FlyingCoaster TrackBlock names * Fix Flying Coaster track elem flags and comments * Fix ZeroGRoll comments in TrackData.cpp * Update changelog.txt * Bump network version
8008 lines
514 KiB
C++
8008 lines
514 KiB
C++
/*****************************************************************************
|
||
* Copyright (c) 2014-2023 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 "../localisation/StringIds.h"
|
||
#include "Track.h"
|
||
#include "TrackPaint.h"
|
||
|
||
#include <cstdint>
|
||
#include <iterator>
|
||
|
||
// clang-format off
|
||
static constexpr TrackCoordinates _trackCoordinates[] = {
|
||
{ 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 },
|
||
{ 0, 0, 0, 0, 0, 0 },
|
||
{ 0, 2, 0, 0, 0, 32 }, // TrackElemType::FlatTrack1x4A
|
||
{ 0, 2, 0, 0, 0, 32 }, // TrackElemType::FlatTrack2x2
|
||
{ 0, 2, 0, 0, 0, 32 }, // TrackElemType::FlatTrack4x4
|
||
{ 0, 2, 0, 0, 0, 32 }, // TrackElemType::FlatTrack2x4
|
||
{ 0, 2, 0, 0, 0, 32 }, // TrackElemType::FlatTrack1x5
|
||
{ 0, 2, 0, 0, 0, 32 }, // TrackElemType::FlatTrack1x1A
|
||
{ 0, 2, 0, 0, 0, 32 }, // TrackElemType::FlatTrack1x4B
|
||
{ 0, 2, 0, 0, 0, 32 }, // TrackElemType::FlatTrack1x1B
|
||
{ 0, 2, 0, 0, 0, 32 }, // TrackElemType::FlatTrack1x4C
|
||
{ 0, 0, 0, 96, 32, 0 }, // TrackElemType::FlatTrack3x3
|
||
{ 0, 3, 0, 112, -64, -64 }, // TrackElemType::LeftCorkscrewUp
|
||
{ 0, 1, 0, 112, -64, 64 }, // TrackElemType::RightCorkscrewUp
|
||
{ 0, 3, 0, -112, -64, -64 }, // TrackElemType::LeftCorkscrewDown
|
||
{ 0, 1, 0, -112, -64, 64 }, // TrackElemType::RightCorkscrewDown
|
||
{ 0, 2, 0, 216, -32, -32 }, // TrackElemType::LeftMediumHalfLoopUp
|
||
{ 0, 2, 0, 216, -32, 32 }, // TrackElemType::RightMediumHalfLoopUp
|
||
{ 0, 2, 0, -216, 32, -32 }, // TrackElemType::LeftMediumHalfLoopDown
|
||
{ 0, 2, 0, -216, 32, 32 }, // TrackElemType::RightMediumHalfLoopDown
|
||
{ 0, 0, 0, 56, -64, 0 }, // TrackElemType::LeftZeroGRollUp
|
||
{ 0, 0, 0, 56, -64, 0 }, // TrackElemType::RightZeroGRollUp
|
||
{ 0, 0, 0, -56,-64, 0 }, // TrackElemType::LeftZeroGRollDown
|
||
{ 0, 0, 0, -56,-64, 0 }, // TrackElemType::RightZeroGRollDown
|
||
{ 0, 0, 0, 152, -96, 0 }, // TrackElemType::LeftLargeZeroGRollUp
|
||
{ 0, 0, 0, 152, -96, 0 }, // TrackElemType::RightLargeZeroGRollUp
|
||
{ 0, 0, 0, -152,-96, 0 }, // TrackElemType::LeftLargeZeroGRollDown
|
||
{ 0, 0, 0, -152,-96, 0 }, // TrackElemType::RightLargeZeroGRollDown
|
||
{ 0, 2, 0, 248, -64, -32 }, // TrackElemType::LeftFlyerLargeHalfLoopUninvertedUp
|
||
{ 0, 2, 0, 248, -64, 32 }, // TrackElemType::RightFlyerLargeHalfLoopUninvertedUp
|
||
{ 0, 2, 0, -248, 64, -32 }, // TrackElemType::LeftFlyerLargeHalfLoopInvertedDown
|
||
{ 0, 2, 0, -248, 64, 32 }, // TrackElemType::RightFlyerLargeHalfLoopInvertedDown
|
||
{ 0, 2, 0, 280, -64, -32 }, // TrackElemType::LeftFlyerLargeHalfLoopInvertedUp
|
||
{ 0, 2, 0, 280, -64, 32 }, // TrackElemType::RightFlyerLargeHalfLoopInvertedUp
|
||
{ 0, 2, 0, -280, 64, -32 }, // TrackElemType::LeftFlyerLargeHalfLoopUninvertedDown
|
||
{ 0, 2, 0, -280, 64, 32 }, // TrackElemType::RightFlyerLargeHalfLoopUninvertedDown
|
||
{ 0, 2, 0, 152, -32, 0 }, // TrackElemType::FlyerHalfLoopInvertedUp
|
||
{ 0, 2, 0, -152, 32, 0 }, // TrackElemType::FlyerHalfLoopUninvertedDown
|
||
{ 0, 7, 0, 48, -64, -32 }, // TrackElemType::LeftEighthToDiagUp25
|
||
{ 0, 4, 0, 48, -64, 32 }, // TrackElemType::RightEighthToDiagUp25
|
||
{ 0, 7, 0,-48, -64, -32 }, // TrackElemType::LeftEighthToDiagDown25
|
||
{ 0, 4, 0,-48, -64, 32 }, // TrackElemType::RightEighthToDiagDown25
|
||
{ 4, 0, 0, 48, -64, 32 }, // TrackElemType::LeftEighthToOrthogonalUp25
|
||
{ 4, 1, 0, 48, -32, 64 }, // TrackElemType::RightEighthToOrthogonalUp25
|
||
{ 4, 0, 0,-48, -64, 32 }, // TrackElemType::LeftEighthToOrthogonalDown25
|
||
{ 4, 1, 0,-48, -32, 64 }, // TrackElemType::RightEighthToOrthogonalDown25
|
||
{ 4, 4, 0, 16, -32, 32 }, // TrackElemType::DiagUp25ToLeftBankedUp25
|
||
{ 4, 4, 0, 16, -32, 32 }, // TrackElemType::DiagUp25ToRightBankedUp25
|
||
{ 4, 4, 0, 16, -32, 32 }, // TrackElemType::DiagLeftBankedUp25ToUp25
|
||
{ 4, 4, 0, 16, -32, 32 }, // TrackElemType::DiagRightBankedUp25ToUp25
|
||
{ 4, 4, 16, 0, -32, 32 }, // TrackElemType::DiagDown25ToLeftBankedDown25
|
||
{ 4, 4, 16, 0, -32, 32 }, // TrackElemType::DiagDown25ToRightBankedDown25
|
||
{ 4, 4, 16, 0, -32, 32 }, // TrackElemType::DiagLeftBankedDown25ToDown25
|
||
{ 4, 4, 16, 0, -32, 32 }, // TrackElemType::DiagRightBankedDown25ToDown25
|
||
{ 4, 4, 0, 8, -32, 32 }, // TrackElemType::DiagLeftBankedFlatToLeftBankedUp25
|
||
{ 4, 4, 0, 8, -32, 32 }, // TrackElemType::DiagRightBankedFlatToRightBankedUp25
|
||
{ 4, 4, 0, 8, -32, 32 }, // TrackElemType::DiagLeftBankedUp25ToLeftBankedFlat
|
||
{ 4, 4, 0, 8, -32, 32 }, // TrackElemType::DiagRightBankedUp25ToRightBankedFlat
|
||
{ 4, 4, 8, 0, -32, 32 }, // TrackElemType::DiagLeftBankedFlatToLeftBankedDown25
|
||
{ 4, 4, 8, 0, -32, 32 }, // TrackElemType::DiagRightBankedFlatToRightBankedDown25
|
||
{ 4, 4, 8, 0, -32, 32 }, // TrackElemType::DiagLeftBankedDown25ToLeftBankedFlat
|
||
{ 4, 4, 8, 0, -32, 32 }, // TrackElemType::DiagRightBankedDown25ToRightBankedFlat
|
||
{ 4, 4, 0, 8, -32, 32 }, // TrackElemType::DiagFlatToLeftBankedUp25
|
||
{ 4, 4, 0, 8, -32, 32 }, // TrackElemType::DiagFlatToRightBankedUp25
|
||
{ 4, 4, 0, 8, -32, 32 }, // TrackElemType::DiagLeftBankedUp25ToFlat
|
||
{ 4, 4, 0, 8, -32, 32 }, // TrackElemType::DiagRightBankedUp25ToFlat
|
||
{ 4, 4, 8, 0, -32, 32 }, // TrackElemType::DiagFlatToLeftBankedDown25
|
||
{ 4, 4, 8, 0, -32, 32 }, // TrackElemType::DiagFlatToRightBankedDown25
|
||
{ 4, 4, 8, 0, -32, 32 }, // TrackElemType::DiagLeftBankedDown25ToFlat
|
||
{ 4, 4, 8, 0, -32, 32 }, // TrackElemType::DiagRightBankedDown25ToFlat
|
||
{ 4, 4, 0, 16, -32, 32 }, // TrackElemType::DiagUp25LeftBanked
|
||
{ 4, 4, 0, 16, -32, 32 }, // TrackElemType::DiagUp25RightBanked
|
||
{ 4, 4, 16, 0, -32, 32 }, // TrackElemType::DiagDown25LeftBanked
|
||
{ 4, 4, 16, 0, -32, 32 }, // TrackElemType::DiagDown25RightBanked
|
||
{ 0, 7, 0, 48, -64, -32 }, // TrackElemType::LeftEighthBankToDiagUp25
|
||
{ 0, 4, 0, 48, -64, 32 }, // TrackElemType::RightEighthBankToDiagUp25
|
||
{ 0, 7, 0,-48, -64, -32 }, // TrackElemType::LeftEighthBankToDiagDown25
|
||
{ 0, 4, 0,-48, -64, 32 }, // TrackElemType::RightEighthBankToDiagDown25
|
||
{ 4, 0, 0, 48, -64, 32 }, // TrackElemType::LeftEighthBankToOrthogonalUp25
|
||
{ 4, 1, 0, 48, -32, 64 }, // TrackElemType::RightEighthBankToOrthogonalUp25
|
||
{ 4, 0, 0,-48, -64, 32 }, // TrackElemType::LeftEighthBankToOrthogonalDown25
|
||
{ 4, 1, 0,-48, -32, 64 }, // TrackElemType::RightEighthBankToOrthogonalDown25
|
||
};
|
||
static_assert(std::size(_trackCoordinates) == TrackElemType::Count);
|
||
|
||
/** rct2: 0x0099BA64 */
|
||
static constexpr uint8_t TrackSequenceProperties[][MaxSequencesPerPiece] = {
|
||
{ 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 },
|
||
{ 0 },
|
||
/* TrackElemType::FlatTrack1x4A */ { 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 },
|
||
/* TrackElemType::FlatTrack2x2 */ { 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 },
|
||
/* TrackElemType::FlatTrack4x4 */ { 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 },
|
||
/* TrackElemType::FlatTrack2x4 */ { 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 },
|
||
/* TrackElemType::FlatTrack1x5 */ { 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 },
|
||
/* TrackElemType::FlatTrack1x1A */ { 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 },
|
||
/* TrackElemType::FlatTrack1x4B */ { 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 },
|
||
/* TrackElemType::FlatTrack1x1B */ { 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 },
|
||
/* TrackElemType::FlatTrack1x4C */ { 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 },
|
||
/* TrackElemType::FlatTrack3x3 */ { 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 }, // TrackElemType::LeftCorkscrewUp
|
||
{ 0 }, // TrackElemType::RightCorkscrewUp
|
||
{ 0 }, // TrackElemType::LeftCorkscrewDown
|
||
{ 0 }, // TrackElemType::RightCorkscrewDown
|
||
{ 0 }, // TrackElemType::LeftMediumHalfLoopUp
|
||
{ 0 }, // TrackElemType::RightMediumHalfLoopUp
|
||
{ 0 }, // TrackElemType::LeftMediumHalfLoopDown
|
||
{ 0 }, // TrackElemType::RightMediumHalfLoopDown
|
||
{ 0 }, // TrackElemType::LeftZeroGRollUp
|
||
{ 0 }, // TrackElemType::RightZeroGRollUp
|
||
{ 0 }, // TrackElemType::LeftZeroGRollDown
|
||
{ 0 }, // TrackElemType::RightZeroGRollDown
|
||
{ 0 }, // TrackElemType::LeftLargeZeroGRollUp
|
||
{ 0 }, // TrackElemType::RightLargeZeroGRollUp
|
||
{ 0 }, // TrackElemType::LeftLargeZeroGRollDown
|
||
{ 0 }, // TrackElemType::RightLargeZeroGRollDown
|
||
|
||
/* LeftFlyerLargeHalfLoopUninvertedUp */ { 0 },
|
||
/* RightFlyerLargeHalfLoopUninvertedUp */ { 0 },
|
||
/* LeftFlyerLargeHalfLoopInvertedDown */ { 0 },
|
||
/* RightFlyerLargeHalfLoopInvertedDown */ { 0 },
|
||
/* LeftFlyerLargeHalfLoopInvertedUp */ { 0 },
|
||
/* RightFlyerLargeHalfLoopInvertedUp */ { 0 },
|
||
/* LeftFlyerLargeHalfLoopUninvertedDown */ { 0 },
|
||
/* RightFlyerLargeHalfLoopUninvertedDown */ { 0 },
|
||
/* FlyerHalfLoopInvertedUp */ { 0 },
|
||
/* FlyerHalfLoopUninvertedUp */ { 0 },
|
||
{ 0 }, // TrackElemType::LeftEighthToDiagUp25
|
||
{ 0 }, // TrackElemType::RightEighthToDiagUp25
|
||
{ 0 }, // TrackElemType::LeftEighthToDiagDown25
|
||
{ 0 }, // TrackElemType::RightEighthToDiagDown25
|
||
{ 0 }, // TrackElemType::LeftEighthToOrthogonalUp25
|
||
{ 0 }, // TrackElemType::RightEighthToOrthogonalUp25
|
||
{ 0 }, // TrackElemType::LeftEighthToOrthogonalDown25
|
||
{ 0 }, // TrackElemType::RightEighthToOrthogonalDown25
|
||
{ 0 }, // TrackElemType::DiagUp25ToLeftBankedUp25
|
||
{ 0 }, // TrackElemType::DiagUp25ToRightBankedUp25
|
||
{ 0 }, // TrackElemType::DiagLeftBankedUp25ToUp25
|
||
{ 0 }, // TrackElemType::DiagRightBankedUp25ToUp25
|
||
{ 0 }, // TrackElemType::DiagDown25ToLeftBankedDown25
|
||
{ 0 }, // TrackElemType::DiagDown25ToRightBankedDown25
|
||
{ 0 }, // TrackElemType::DiagLeftBankedDown25ToDown25
|
||
{ 0 }, // TrackElemType::DiagRightBankedDown25ToDown25
|
||
{ 0 }, // TrackElemType::DiagLeftBankedFlatToLeftBankedUp25
|
||
{ 0 }, // TrackElemType::DiagRightBankedFlatToRightBankedUp25
|
||
{ 0 }, // TrackElemType::DiagLeftBankedUp25ToLeftBankedFlat
|
||
{ 0 }, // TrackElemType::DiagRightBankedUp25ToRightBankedFlat
|
||
{ 0 }, // TrackElemType::DiagLeftBankedFlatToLeftBankedDown25
|
||
{ 0 }, // TrackElemType::DiagRightBankedFlatToRightBankedDown25
|
||
{ 0 }, // TrackElemType::DiagLeftBankedDown25ToLeftBankedFlat
|
||
{ 0 }, // TrackElemType::DiagRightBankedDown25ToRightBankedFlat
|
||
{ 0 }, // TrackElemType::DiagFlatToLeftBankedUp25
|
||
{ 0 }, // TrackElemType::DiagFlatToRightBankedUp25
|
||
{ 0 }, // TrackElemType::DiagLeftBankedUp25ToFlat
|
||
{ 0 }, // TrackElemType::DiagRightBankedUp25ToFlat
|
||
{ 0 }, // TrackElemType::DiagFlatToLeftBankedDown25
|
||
{ 0 }, // TrackElemType::DiagFlatToRightBankedDown25
|
||
{ 0 }, // TrackElemType::DiagLeftBankedDown25ToFlat
|
||
{ 0 }, // TrackElemType::DiagRightBankedDown25ToFlat
|
||
{ 0 }, // TrackElemType::DiagUp25LeftBanked
|
||
{ 0 }, // TrackElemType::DiagUp25RightBanked
|
||
{ 0 }, // TrackElemType::DiagDown25LeftBanked
|
||
{ 0 }, // TrackElemType::DiagDown25RightBanked
|
||
{ 0 }, // TrackElemType::LeftEighthBankToDiagUp25
|
||
{ 0 }, // TrackElemType::RightEighthBankToDiagUp25
|
||
{ 0 }, // TrackElemType::LeftEighthBankToDiagDown25
|
||
{ 0 }, // TrackElemType::RightEighthBankToDiagDown25
|
||
{ 0 }, // TrackElemType::LeftEighthBankToOrthogonalUp25
|
||
{ 0 }, // TrackElemType::RightEighthBankToOrthogonalUp25
|
||
{ 0 }, // TrackElemType::LeftEighthBankToOrthogonalDown25
|
||
{ 0 }, // TrackElemType::RightEighthBankToOrthogonalDown25
|
||
};
|
||
static_assert(std::size(TrackSequenceProperties) == TrackElemType::Count);
|
||
|
||
#define TRACK_BLOCK_END { 255, 255, 255, 255, 255, {255, 255}, 255 }
|
||
|
||
static constexpr PreviewTrack TrackBlocks000[] = {
|
||
{ 0, 0, 0, 0, 0, { 0b1111, 0 }, 0 },
|
||
TRACK_BLOCK_END
|
||
};
|
||
|
||
static constexpr PreviewTrack TrackBlocks001[] = {
|
||
{ 0, 0, 0, 0, 0,{ 0b1111, 0 }, 0 },
|
||
TRACK_BLOCK_END
|
||
};
|
||
|
||
static constexpr PreviewTrack TrackBlocks002[] = {
|
||
{ 0, 0, 0, 0, 0, { 0b1111, 0 }, 0 },
|
||
TRACK_BLOCK_END
|
||
};
|
||
|
||
static constexpr PreviewTrack TrackBlocks003[] = {
|
||
{ 0, 0, 0, 0, 0, { 0b1111, 0 }, 0 },
|
||
TRACK_BLOCK_END
|
||
};
|
||
|
||
static constexpr PreviewTrack TrackBlocks004[] = {
|
||
{ 0, 0, 0, 0, 16, { 0b1111, 0b1100 }, 0 },
|
||
TRACK_BLOCK_END
|
||
};
|
||
|
||
static constexpr PreviewTrack TrackBlocks005[] = {
|
||
{ 0, 0, 0, 0, 64, { 0b1111, 0b1100 }, 0 },
|
||
TRACK_BLOCK_END
|
||
};
|
||
|
||
static constexpr PreviewTrack TrackBlocks006[] = {
|
||
{ 0, 0, 0, 0, 8, { 0b1111, 0 }, 0 },
|
||
TRACK_BLOCK_END
|
||
};
|
||
|
||
static constexpr PreviewTrack TrackBlocks007[] = {
|
||
{ 0, 0, 0, 0, 32, { 0b1111, 0b1100 }, 0 },
|
||
TRACK_BLOCK_END
|
||
};
|
||
|
||
static constexpr PreviewTrack TrackBlocks008[] = {
|
||
{ 0, 0, 0, 0, 32, { 0b1111, 0b1100 }, 0 },
|
||
TRACK_BLOCK_END
|
||
};
|
||
|
||
static constexpr PreviewTrack TrackBlocks009[] = {
|
||
{ 0, 0, 0, 0, 8, { 0b1111, 0b1100 }, 0 },
|
||
TRACK_BLOCK_END
|
||
};
|
||
|
||
static constexpr PreviewTrack TrackBlocks010[] = {
|
||
{ 0, 0, 0, 0, 16, { 0b1111, 0b0011 }, 0 },
|
||
TRACK_BLOCK_END
|
||
};
|
||
|
||
static constexpr PreviewTrack TrackBlocks011[] = {
|
||
{ 0, 0, 0, 0, 64, { 0b1111, 0b0011 }, 0 },
|
||
TRACK_BLOCK_END
|
||
};
|
||
|
||
static constexpr PreviewTrack TrackBlocks012[] = {
|
||
{ 0, 0, 0, 0, 8, { 0b1111, 0b0011 }, 0 },
|
||
TRACK_BLOCK_END
|
||
};
|
||
|
||
static constexpr PreviewTrack TrackBlocks013[] = {
|
||
{ 0, 0, 0, 0, 32, { 0b1111, 0b0011 }, 0 },
|
||
TRACK_BLOCK_END
|
||
};
|
||
|
||
static constexpr PreviewTrack TrackBlocks014[] = {
|
||
{ 0, 0, 0, 0, 32, { 0b1111, 0b0011 }, 0 },
|
||
TRACK_BLOCK_END
|
||
};
|
||
|
||
static constexpr PreviewTrack TrackBlocks015[] = {
|
||
{ 0, 0, 0, 0, 8, { 0b1111, 0 }, 0 },
|
||
TRACK_BLOCK_END
|
||
};
|
||
|
||
static constexpr PreviewTrack 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 PreviewTrack 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 PreviewTrack TrackBlocks018[] = {
|
||
{ 0, 0, 0, 0, 0, { 0b1111, 0 }, 0 },
|
||
TRACK_BLOCK_END
|
||
};
|
||
|
||
static constexpr PreviewTrack TrackBlocks019[] = {
|
||
{ 0, 0, 0, 0, 0, { 0b1111, 0 }, 0 },
|
||
TRACK_BLOCK_END
|
||
};
|
||
|
||
static constexpr PreviewTrack TrackBlocks020[] = {
|
||
{ 0, 0, 0, 0, 0, { 0b1111, 0 }, 0 },
|
||
TRACK_BLOCK_END
|
||
};
|
||
|
||
static constexpr PreviewTrack TrackBlocks021[] = {
|
||
{ 0, 0, 0, 0, 0, { 0b1111, 0 }, 0 },
|
||
TRACK_BLOCK_END
|
||
};
|
||
|
||
static constexpr PreviewTrack 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 PreviewTrack 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 PreviewTrack TrackBlocks024[] = {
|
||
{ 0, 0, 0, 0, 8, { 0b1111, 0 }, 0 },
|
||
TRACK_BLOCK_END
|
||
};
|
||
|
||
static constexpr PreviewTrack TrackBlocks025[] = {
|
||
{ 0, 0, 0, 0, 8, { 0b1111, 0 }, 0 },
|
||
TRACK_BLOCK_END
|
||
};
|
||
|
||
static constexpr PreviewTrack TrackBlocks026[] = {
|
||
{ 0, 0, 0, 0, 8, { 0b1111, 0b1100 }, 0 },
|
||
TRACK_BLOCK_END
|
||
};
|
||
|
||
static constexpr PreviewTrack TrackBlocks027[] = {
|
||
{ 0, 0, 0, 0, 8, { 0b1111, 0b1100 }, 0 },
|
||
TRACK_BLOCK_END
|
||
};
|
||
|
||
static constexpr PreviewTrack TrackBlocks028[] = {
|
||
{ 0, 0, 0, 0, 8, { 0b1111, 0b0011 }, 0 },
|
||
TRACK_BLOCK_END
|
||
};
|
||
|
||
static constexpr PreviewTrack TrackBlocks029[] = {
|
||
{ 0, 0, 0, 0, 8, { 0b1111, 0b0011 }, 0 },
|
||
TRACK_BLOCK_END
|
||
};
|
||
|
||
static constexpr PreviewTrack TrackBlocks030[] = {
|
||
{ 0, 0, 0, 0, 8, { 0b1111, 0 }, 0 },
|
||
TRACK_BLOCK_END
|
||
};
|
||
|
||
static constexpr PreviewTrack TrackBlocks031[] = {
|
||
{ 0, 0, 0, 0, 8, { 0b1111, 0 }, 0 },
|
||
TRACK_BLOCK_END
|
||
};
|
||
|
||
static constexpr PreviewTrack TrackBlocks032[] = {
|
||
{ 0, 0, 0, 0, 0, { 0b1111, 0 }, 0 },
|
||
TRACK_BLOCK_END
|
||
};
|
||
|
||
static constexpr PreviewTrack TrackBlocks033[] = {
|
||
{ 0, 0, 0, 0, 0, { 0b1111, 0 }, 0 },
|
||
TRACK_BLOCK_END
|
||
};
|
||
|
||
static constexpr PreviewTrack 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 PreviewTrack 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 PreviewTrack 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 PreviewTrack 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 PreviewTrack 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 PreviewTrack 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 PreviewTrack 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, { 0b0000, 0 }, 0 },
|
||
{ 5, 0, 0, 120, 0, { 0b0000, 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 PreviewTrack 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, { 0b0000, 0 }, 0 },
|
||
{ 5, 0, 0, 120, 0, { 0b0000, 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 PreviewTrack 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 PreviewTrack 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 PreviewTrack 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 PreviewTrack 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 PreviewTrack 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 PreviewTrack 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 PreviewTrack 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 PreviewTrack 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 PreviewTrack TrackBlocks050[] = {
|
||
{ 0, 0, 0, 0, 0, { 0b0111, 0 }, 0 },
|
||
TRACK_BLOCK_END
|
||
};
|
||
|
||
static constexpr PreviewTrack TrackBlocks051[] = {
|
||
{ 0, 0, 0, 0, 0, { 0b1011, 0 }, 0 },
|
||
TRACK_BLOCK_END
|
||
};
|
||
|
||
static constexpr PreviewTrack 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 PreviewTrack 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 PreviewTrack 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 PreviewTrack 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 PreviewTrack 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 PreviewTrack 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 PreviewTrack 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 PreviewTrack 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 PreviewTrack 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 PreviewTrack 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 PreviewTrack TrackBlocks062[] = {
|
||
{ 0, 0, 0, 0, 24, { 0b1111, 0 }, 0 },
|
||
TRACK_BLOCK_END
|
||
};
|
||
|
||
static constexpr PreviewTrack TrackBlocks063[] = {
|
||
{ 0, 0, 0, 0, 24, { 0b1111, 0b1100 }, 0 },
|
||
TRACK_BLOCK_END
|
||
};
|
||
|
||
static constexpr PreviewTrack TrackBlocks064[] = {
|
||
{ 0, 0, 0, 0, 24, { 0b1111, 0b0011 }, 0 },
|
||
TRACK_BLOCK_END
|
||
};
|
||
|
||
static constexpr PreviewTrack TrackBlocks065[] = {
|
||
{ 0, 0, 0, 0, 24, { 0b1111, 0 }, 0 },
|
||
TRACK_BLOCK_END
|
||
};
|
||
|
||
static constexpr PreviewTrack 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 PreviewTrack 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 PreviewTrack TrackBlocks068[] = {
|
||
{ 0, 0, 0, 0, 0, { 0b1111, 0 }, 0 },
|
||
TRACK_BLOCK_END
|
||
};
|
||
|
||
static constexpr PreviewTrack TrackBlocks069[] = {
|
||
{ 0, 0, 0, 0, 16, { 0b1111, 0b1100 }, 0 },
|
||
TRACK_BLOCK_END
|
||
};
|
||
|
||
static constexpr PreviewTrack TrackBlocks070[] = {
|
||
{ 0, 0, 0, 0, 64, { 0b1111, 0b1100 }, 0 },
|
||
TRACK_BLOCK_END
|
||
};
|
||
|
||
static constexpr PreviewTrack TrackBlocks071[] = {
|
||
{ 0, 0, 0, 0, 8, { 0b1111, 0 }, 0 },
|
||
TRACK_BLOCK_END
|
||
};
|
||
|
||
static constexpr PreviewTrack TrackBlocks072[] = {
|
||
{ 0, 0, 0, 0, 32, { 0b1111, 0b1100 }, 0 },
|
||
TRACK_BLOCK_END
|
||
};
|
||
|
||
static constexpr PreviewTrack TrackBlocks073[] = {
|
||
{ 0, 0, 0, 0, 32, { 0b1111, 0b1100 }, 0 },
|
||
TRACK_BLOCK_END
|
||
};
|
||
|
||
static constexpr PreviewTrack TrackBlocks074[] = {
|
||
{ 0, 0, 0, 0, 8, { 0b1111, 0b1100 }, 0 },
|
||
TRACK_BLOCK_END
|
||
};
|
||
|
||
static constexpr PreviewTrack TrackBlocks075[] = {
|
||
{ 0, 0, 0, 0, 16, { 0b1111, 0b0011 }, 0 },
|
||
TRACK_BLOCK_END
|
||
};
|
||
|
||
static constexpr PreviewTrack TrackBlocks076[] = {
|
||
{ 0, 0, 0, 0, 64, { 0b1111, 0b0011 }, 0 },
|
||
TRACK_BLOCK_END
|
||
};
|
||
|
||
static constexpr PreviewTrack TrackBlocks077[] = {
|
||
{ 0, 0, 0, 0, 8, { 0b1111, 0b0011 }, 0 },
|
||
TRACK_BLOCK_END
|
||
};
|
||
|
||
static constexpr PreviewTrack TrackBlocks078[] = {
|
||
{ 0, 0, 0, 0, 32, { 0b1111, 0b0011 }, 0 },
|
||
TRACK_BLOCK_END
|
||
};
|
||
|
||
static constexpr PreviewTrack TrackBlocks079[] = {
|
||
{ 0, 0, 0, 0, 32, { 0b1111, 0b0011 }, 0 },
|
||
TRACK_BLOCK_END
|
||
};
|
||
|
||
static constexpr PreviewTrack TrackBlocks080[] = {
|
||
{ 0, 0, 0, 0, 8, { 0b1111, 0 }, 0 },
|
||
TRACK_BLOCK_END
|
||
};
|
||
|
||
static constexpr PreviewTrack 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 PreviewTrack 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 PreviewTrack 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 PreviewTrack 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 PreviewTrack 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 PreviewTrack 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 PreviewTrack 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 PreviewTrack 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 PreviewTrack 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 PreviewTrack 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 PreviewTrack 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 PreviewTrack 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 PreviewTrack 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 PreviewTrack 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 PreviewTrack TrackBlocks095[] = {
|
||
{ 0, 0, 0, 0, 64, { 0b1111, 0 }, 0 },
|
||
TRACK_BLOCK_END
|
||
};
|
||
|
||
static constexpr PreviewTrack TrackBlocks096[] = {
|
||
{ 0, 0, 0, 0, 64, { 0b1111, 0 }, 0 },
|
||
TRACK_BLOCK_END
|
||
};
|
||
|
||
static constexpr PreviewTrack TrackBlocks097[] = {
|
||
{ 0, 0, 0, 0, 64, { 0b1111, 0 }, 0 },
|
||
TRACK_BLOCK_END
|
||
};
|
||
|
||
static constexpr PreviewTrack TrackBlocks098[] = {
|
||
{ 0, 0, 0, 0, 64, { 0b1111, 0 }, 0 },
|
||
TRACK_BLOCK_END
|
||
};
|
||
|
||
static constexpr PreviewTrack TrackBlocks099[] = {
|
||
{ 0, 0, 0, 0, 0, { 0b1111, 0 }, 0 },
|
||
TRACK_BLOCK_END
|
||
};
|
||
|
||
static constexpr PreviewTrack TrackBlocks100[] = {
|
||
{ 0, 0, 0, 0, 0, { 0b1111, 0 }, 0 },
|
||
TRACK_BLOCK_END
|
||
};
|
||
|
||
static constexpr PreviewTrack TrackBlocks101[] = {
|
||
{ 0, 0, 0, 0, 0, { 0b1111, 0 }, 0 },
|
||
TRACK_BLOCK_END
|
||
};
|
||
|
||
static constexpr PreviewTrack 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 PreviewTrack 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 PreviewTrack 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 PreviewTrack 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 PreviewTrack 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 PreviewTrack 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 PreviewTrack 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 PreviewTrack 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 PreviewTrack TrackBlocks110[] = {
|
||
{ 0, 0, 0, 0, 16, { 0b1111, 0b1100 }, 0 },
|
||
TRACK_BLOCK_END
|
||
};
|
||
|
||
static constexpr PreviewTrack TrackBlocks111[] = {
|
||
{ 0, 0, 0, 0, 16, { 0b1111, 0b1100 }, 0 },
|
||
TRACK_BLOCK_END
|
||
};
|
||
|
||
static constexpr PreviewTrack TrackBlocks112[] = {
|
||
{ 0, 0, 0, 0, 16, { 0b1111, 0 }, 0 },
|
||
TRACK_BLOCK_END
|
||
};
|
||
|
||
static constexpr PreviewTrack TrackBlocks113[] = {
|
||
{ 0, 0, 0, 0, 0, { 0b1111, 0 }, 0 },
|
||
TRACK_BLOCK_END
|
||
};
|
||
|
||
static constexpr PreviewTrack TrackBlocks114[] = {
|
||
{ 0, 0, 0, 0, 16, { 0b1111, 0 }, 0 },
|
||
TRACK_BLOCK_END
|
||
};
|
||
|
||
static constexpr PreviewTrack TrackBlocks115[] = {
|
||
{ 0, 0, 0, 0, 16, { 0b1111, 0b0011 }, 0 },
|
||
TRACK_BLOCK_END
|
||
};
|
||
|
||
static constexpr PreviewTrack TrackBlocks116[] = {
|
||
{ 0, 0, 0, 0, 16, { 0b1111, 0b0011 }, 0 },
|
||
TRACK_BLOCK_END
|
||
};
|
||
|
||
static constexpr PreviewTrack 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 PreviewTrack 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 PreviewTrack 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 PreviewTrack TrackBlocks120[] = {
|
||
{ 0, 0, 0, 0, 0, { 0b1111, 0 }, 0 },
|
||
TRACK_BLOCK_END
|
||
};
|
||
|
||
static constexpr PreviewTrack 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 PreviewTrack 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 PreviewTrack 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 PreviewTrack 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 PreviewTrack TrackBlocks125[] = {
|
||
{ 0, 0, 0, 0, 48, { 0b1111, 0 }, 0 },
|
||
{ 1, 32, 0, 0, 48, { 0b1111, 0 }, 0 },
|
||
TRACK_BLOCK_END
|
||
};
|
||
|
||
static constexpr PreviewTrack 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 PreviewTrack 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 PreviewTrack 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 PreviewTrack TrackBlocks129[] = {
|
||
{ 0, 0, 0, 0, 32, { 0b1111, 0b0011 }, RCT_PREVIEW_TRACK_FLAG_IS_VERTICAL },
|
||
TRACK_BLOCK_END
|
||
};
|
||
|
||
static constexpr PreviewTrack TrackBlocks130[] = {
|
||
{ 0, 0, 0, 0, 56, { 0b1111, 0 }, RCT_PREVIEW_TRACK_FLAG_IS_VERTICAL },
|
||
TRACK_BLOCK_END
|
||
};
|
||
|
||
static constexpr PreviewTrack 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 PreviewTrack TrackBlocks132[] = {
|
||
{ 0, 0, 0, 0, 24, { 0b1111, 0b0011 }, 0 },
|
||
TRACK_BLOCK_END
|
||
};
|
||
|
||
static constexpr PreviewTrack 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 PreviewTrack 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 PreviewTrack 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 PreviewTrack 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 PreviewTrack 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 PreviewTrack 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 PreviewTrack 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 PreviewTrack 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 PreviewTrack 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 PreviewTrack 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 PreviewTrack 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 PreviewTrack 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 PreviewTrack 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 PreviewTrack 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 PreviewTrack 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 PreviewTrack 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 PreviewTrack 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 PreviewTrack 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 PreviewTrack 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 PreviewTrack 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 PreviewTrack 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 PreviewTrack 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 PreviewTrack 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 PreviewTrack 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 PreviewTrack 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 PreviewTrack 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 PreviewTrack 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 PreviewTrack 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 PreviewTrack 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 PreviewTrack 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 PreviewTrack 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 PreviewTrack 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 PreviewTrack 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 PreviewTrack 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 PreviewTrack 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 PreviewTrack 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 PreviewTrack 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 PreviewTrack 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 PreviewTrack 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 PreviewTrack TrackBlocks172[] = {
|
||
{ 0, 0, 0, 0, 0, { 0b1111, 0 }, 0 },
|
||
TRACK_BLOCK_END
|
||
};
|
||
|
||
static constexpr PreviewTrack TrackBlocks173[] = {
|
||
{ 0, 0, 0, 0, 0, { 0b1111, 0 }, 0 },
|
||
TRACK_BLOCK_END
|
||
};
|
||
|
||
static constexpr PreviewTrack 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 PreviewTrack 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 PreviewTrack 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 PreviewTrack 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 PreviewTrack 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 PreviewTrack 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 PreviewTrack 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 PreviewTrack 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 PreviewTrack TrackBlocks182[] = {
|
||
{ 0, 0, 0, 0, 16, { 0b1111, 0b1100 }, 0 },
|
||
TRACK_BLOCK_END
|
||
};
|
||
|
||
static constexpr PreviewTrack 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 PreviewTrack 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 PreviewTrack 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 PreviewTrack 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 PreviewTrack 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 PreviewTrack 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 PreviewTrack 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 PreviewTrack 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 PreviewTrack 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 PreviewTrack 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 PreviewTrack 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 PreviewTrack 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 PreviewTrack 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 PreviewTrack 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 PreviewTrack 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 PreviewTrack 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 PreviewTrack 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 PreviewTrack 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 PreviewTrack TrackBlocks201[] = {
|
||
{ 0, 0, 0, 0, 0, { 0b1111, 0 }, 0 },
|
||
{ 1, -32, 0, 0, 0, { 0b1111, 0 }, 0 },
|
||
TRACK_BLOCK_END
|
||
};
|
||
|
||
static constexpr PreviewTrack TrackBlocks202[] = {
|
||
{ 0, 0, 0, 0, 0, { 0b1111, 0 }, 0 },
|
||
{ 1, -32, 0, 0, 0, { 0b1111, 0 }, 0 },
|
||
TRACK_BLOCK_END
|
||
};
|
||
|
||
static constexpr PreviewTrack TrackBlocks203[] = {
|
||
{ 0, 0, 0, 0, 0, { 0b1111, 0 }, 0 },
|
||
{ 1, -32, 0, 0, 0, { 0b1111, 0 }, 0 },
|
||
TRACK_BLOCK_END
|
||
};
|
||
|
||
static constexpr PreviewTrack 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 PreviewTrack 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 PreviewTrack 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 PreviewTrack 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 PreviewTrack 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 PreviewTrack 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 PreviewTrack 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 PreviewTrack 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 PreviewTrack 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 PreviewTrack 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 PreviewTrack TrackBlocks214[] = {
|
||
{ 0, 0, 0, 0, 48, { 0b1111, 0 }, 0 },
|
||
{ 1, 32, 0, 0, 48, { 0b1111, 0 }, 0 },
|
||
TRACK_BLOCK_END
|
||
};
|
||
|
||
static constexpr PreviewTrack 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 PreviewTrack TrackBlocks216[] = {
|
||
{ 0, 0, 0, 0, 0, { 0b1111, 0 }, 0 },
|
||
TRACK_BLOCK_END
|
||
};
|
||
|
||
static constexpr PreviewTrack 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 PreviewTrack 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 PreviewTrack 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 PreviewTrack 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 PreviewTrack 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 PreviewTrack 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 PreviewTrack 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 PreviewTrack 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 PreviewTrack TrackBlocks225[] = {
|
||
{ 0, 0, 0, 0, 16, { 0b1111, 0b1100 }, 0 },
|
||
TRACK_BLOCK_END
|
||
};
|
||
|
||
static constexpr PreviewTrack TrackBlocks226[] = {
|
||
{ 0, 0, 0, 0, 16, { 0b1111, 0b1100 }, 0 },
|
||
TRACK_BLOCK_END
|
||
};
|
||
|
||
static constexpr PreviewTrack TrackBlocks227[] = {
|
||
{ 0, 0, 0, 0, 16, { 0b1111, 0b1100 }, 0 },
|
||
TRACK_BLOCK_END
|
||
};
|
||
|
||
static constexpr PreviewTrack TrackBlocks228[] = {
|
||
{ 0, 0, 0, 0, 16, { 0b1111, 0b1100 }, 0 },
|
||
TRACK_BLOCK_END
|
||
};
|
||
|
||
static constexpr PreviewTrack TrackBlocks229[] = {
|
||
{ 0, 0, 0, 0, 16, { 0b1111, 0b0011 }, 0 },
|
||
TRACK_BLOCK_END
|
||
};
|
||
|
||
static constexpr PreviewTrack TrackBlocks230[] = {
|
||
{ 0, 0, 0, 0, 16, { 0b1111, 0b0011 }, 0 },
|
||
TRACK_BLOCK_END
|
||
};
|
||
|
||
static constexpr PreviewTrack TrackBlocks231[] = {
|
||
{ 0, 0, 0, 0, 16, { 0b1111, 0b0011 }, 0 },
|
||
TRACK_BLOCK_END
|
||
};
|
||
|
||
static constexpr PreviewTrack TrackBlocks232[] = {
|
||
{ 0, 0, 0, 0, 16, { 0b1111, 0b0011 }, 0 },
|
||
TRACK_BLOCK_END
|
||
};
|
||
|
||
static constexpr PreviewTrack TrackBlocks233[] = {
|
||
{ 0, 0, 0, 0, 8, { 0b1111, 0 }, 0 },
|
||
TRACK_BLOCK_END
|
||
};
|
||
|
||
static constexpr PreviewTrack TrackBlocks234[] = {
|
||
{ 0, 0, 0, 0, 8, { 0b1111, 0 }, 0 },
|
||
TRACK_BLOCK_END
|
||
};
|
||
|
||
static constexpr PreviewTrack TrackBlocks235[] = {
|
||
{ 0, 0, 0, 0, 8, { 0b1111, 0b1100 }, 0 },
|
||
TRACK_BLOCK_END
|
||
};
|
||
|
||
static constexpr PreviewTrack TrackBlocks236[] = {
|
||
{ 0, 0, 0, 0, 8, { 0b1111, 0b1100 }, 0 },
|
||
TRACK_BLOCK_END
|
||
};
|
||
|
||
static constexpr PreviewTrack TrackBlocks237[] = {
|
||
{ 0, 0, 0, 0, 8, { 0b1111, 0b0011 }, 0 },
|
||
TRACK_BLOCK_END
|
||
};
|
||
|
||
static constexpr PreviewTrack TrackBlocks238[] = {
|
||
{ 0, 0, 0, 0, 8, { 0b1111, 0b0011 }, 0 },
|
||
TRACK_BLOCK_END
|
||
};
|
||
|
||
static constexpr PreviewTrack TrackBlocks239[] = {
|
||
{ 0, 0, 0, 0, 8, { 0b1111, 0 }, 0 },
|
||
TRACK_BLOCK_END
|
||
};
|
||
|
||
static constexpr PreviewTrack TrackBlocks240[] = {
|
||
{ 0, 0, 0, 0, 8, { 0b1111, 0 }, 0 },
|
||
TRACK_BLOCK_END
|
||
};
|
||
|
||
static constexpr PreviewTrack TrackBlocks241[] = {
|
||
{ 0, 0, 0, 0, 8, { 0b1111, 0 }, 0 },
|
||
TRACK_BLOCK_END
|
||
};
|
||
|
||
static constexpr PreviewTrack TrackBlocks242[] = {
|
||
{ 0, 0, 0, 0, 8, { 0b1111, 0 }, 0 },
|
||
TRACK_BLOCK_END
|
||
};
|
||
|
||
static constexpr PreviewTrack TrackBlocks243[] = {
|
||
{ 0, 0, 0, 0, 8, { 0b1111, 0b1100 }, 0 },
|
||
TRACK_BLOCK_END
|
||
};
|
||
|
||
static constexpr PreviewTrack TrackBlocks244[] = {
|
||
{ 0, 0, 0, 0, 8, { 0b1111, 0b1100 }, 0 },
|
||
TRACK_BLOCK_END
|
||
};
|
||
|
||
static constexpr PreviewTrack TrackBlocks245[] = {
|
||
{ 0, 0, 0, 0, 8, { 0b1111, 0b0011 }, 0 },
|
||
TRACK_BLOCK_END
|
||
};
|
||
|
||
static constexpr PreviewTrack TrackBlocks246[] = {
|
||
{ 0, 0, 0, 0, 8, { 0b1111, 0b0011 }, 0 },
|
||
TRACK_BLOCK_END
|
||
};
|
||
|
||
static constexpr PreviewTrack TrackBlocks247[] = {
|
||
{ 0, 0, 0, 0, 8, { 0b1111, 0 }, 0 },
|
||
TRACK_BLOCK_END
|
||
};
|
||
|
||
static constexpr PreviewTrack TrackBlocks248[] = {
|
||
{ 0, 0, 0, 0, 8, { 0b1111, 0 }, 0 },
|
||
TRACK_BLOCK_END
|
||
};
|
||
|
||
static constexpr PreviewTrack 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 PreviewTrack 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 PreviewTrack 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 PreviewTrack 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 PreviewTrack 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 PreviewTrack 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 PreviewTrack 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
|
||
};
|
||
|
||
static constexpr PreviewTrack TrackBlocksRotationControlToggle[] = {
|
||
{ 0, 0, 0, 0, 0, { 0b1111, 0b1100 }, 0 },
|
||
TRACK_BLOCK_END
|
||
};
|
||
|
||
static constexpr PreviewTrack TrackBlocksFlatTrack1x4A[] = {
|
||
{ 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 PreviewTrack TrackBlocksFlatTrack2x2[] = {
|
||
{ 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 PreviewTrack TrackBlocksFlatTrack4x4[] = {
|
||
{ 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 PreviewTrack TrackBlocksFlatTrack2x4[] = {
|
||
{ 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 PreviewTrack TrackBlocksFlatTrack1x5[] = {
|
||
{ 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 PreviewTrack TrackBlocksFlatTrack1x1A[] = {
|
||
{ 0, 0, 0, 0, 0, { 0b1111, 0 }, 0 },
|
||
TRACK_BLOCK_END
|
||
};
|
||
|
||
static constexpr PreviewTrack TrackBlocksFlatTrack1x4B[] = {
|
||
{ 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 PreviewTrack TrackBlocksFlatTrack1x1B[] = {
|
||
{ 0, 0, 0, 0, 0, { 0b1111, 0 }, 0 },
|
||
TRACK_BLOCK_END
|
||
};
|
||
|
||
static constexpr PreviewTrack TrackBlocksFlatTrack1x4C[] = {
|
||
{ 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 PreviewTrack TrackBlocksFlatTrack3x3[] = {
|
||
{ 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 PreviewTrack TrackBlocksLeftLargeCorkscrewUp[] = {
|
||
{ 0, 0, 0, 0, 16, { 0b1111, 0 }, 0 },
|
||
{ 1, -32, 0, 8, 32, { 0b1111, 0 }, 0 },
|
||
{ 2, -64, 0, 32, 24, { 0b0111, 0 }, 0 },
|
||
{ 3, -32, -32, 32, 24, { 0b1000, 0 }, 0 },
|
||
{ 4, -64, -32, 48, 40, { 0b1111, 0 }, 0 },
|
||
{ 5, -64, -64, 72, 24, { 0b1111, 0 }, 0 },
|
||
TRACK_BLOCK_END
|
||
};
|
||
|
||
static constexpr PreviewTrack TrackBlocksRightLargeCorkscrewUp[] = {
|
||
{ 0, 0, 0 , 0, 16, { 0b1111, 0 }, 0 },
|
||
{ 1, -32, 0, 8, 32, { 0b1111, 0 }, 0 },
|
||
{ 2, -64, 0, 32, 24, { 0b1011, 0 }, 0 },
|
||
{ 3, -32, 32, 32, 24, { 0b0100, 0 }, 0 },
|
||
{ 4, -64, 32, 48, 40, { 0b1111, 0 }, 0 },
|
||
{ 5, -64, 64, 72, 24, { 0b1111, 0 }, 0 },
|
||
TRACK_BLOCK_END
|
||
};
|
||
|
||
static constexpr PreviewTrack TrackBlocksLeftLargeCorkscrewDown[] = {
|
||
{ 0, 0, 0 , -40, 24, { 0b1111, 0 }, 0 },
|
||
{ 1, -32, 0, -64, 40, { 0b1111, 0 }, 0 },
|
||
{ 2, -32, -32, -80, 24, { 0b1000, 0 }, 0 },
|
||
{ 3, -64, 0, -80, 24, { 0b0111, 0 }, 0 },
|
||
{ 4, -64, -32, -104, 32, { 0b1111, 0 }, 0 },
|
||
{ 5, -64, -64, -112, 16, { 0b1111, 0 }, 0 },
|
||
TRACK_BLOCK_END
|
||
};
|
||
|
||
static constexpr PreviewTrack TrackBlocksRightLargeCorkscrewDown[] = {
|
||
{ 0, 0, 0 , -40, 24, { 0b1111, 0 }, 0 },
|
||
{ 1, -32, 0, -64, 40, { 0b1111, 0 }, 0 },
|
||
{ 2, -32, 32, -80, 24, { 0b0100, 0 }, 0 },
|
||
{ 3, -64, 0, -80, 24, { 0b1011, 0 }, 0 },
|
||
{ 4, -64, 32, -104, 32, { 0b1111, 0 }, 0 },
|
||
{ 5, -64, 64, -112, 16, { 0b1111, 0 }, 0 },
|
||
TRACK_BLOCK_END
|
||
};
|
||
|
||
static constexpr PreviewTrack TrackBlocksLeftMediumHalfLoopUp[] = {
|
||
{ 0, 0, 0, 0, 24, { 0b1111, 0 }, 0 },
|
||
{ 1, -32, 0, 16, 48, { 0b1111, 0 }, 0 },
|
||
{ 2, -64, 0, 56,120, { 0b1111, 0 }, 0 },
|
||
{ 3, -64, -32, 56,120, { 0b1111, 0 }, 0 },
|
||
{ 4, -32, -32,168, 24, { 0b1111, 0 }, 0 },
|
||
TRACK_BLOCK_END
|
||
};
|
||
|
||
static constexpr PreviewTrack TrackBlocksRightMediumHalfLoopUp[] = {
|
||
{ 0, 0, 0, 0, 24, { 0b1111, 0 }, 0 },
|
||
{ 1, -32, 0, 16, 48, { 0b1111, 0 }, 0 },
|
||
{ 2, -64, 0, 56,120, { 0b1111, 0 }, 0 },
|
||
{ 3, -64, 32, 56,120, { 0b1111, 0 }, 0 },
|
||
{ 4, -32, 32,168, 24, { 0b1111, 0 }, 0 },
|
||
TRACK_BLOCK_END
|
||
};
|
||
|
||
static constexpr PreviewTrack TrackBlocksLeftMediumHalfLoopDown[] = {
|
||
{ 0, 0, 0, -48, 24, { 0b1111, 0 }, 0 },
|
||
{ 1, -32, 0, -160,120, { 0b1111, 0 }, 0 },
|
||
{ 2, -32, -32, -160,120, { 0b1111, 0 }, 0 },
|
||
{ 3, 0, -32, -200, 48, { 0b1111, 0 }, 0 },
|
||
{ 4, 32, -32, -216, 24, { 0b1111, 0 }, 0 },
|
||
TRACK_BLOCK_END
|
||
};
|
||
|
||
static constexpr PreviewTrack TrackBlocksRightMediumHalfLoopDown[] = {
|
||
{ 0, 0, 0 , -48, 24, { 0b1111, 0 }, 0 },
|
||
{ 1, -32, 0, -160, 120, { 0b1111, 0 }, 0 },
|
||
{ 2, -32, 32, -160, 120, { 0b1111, 0 }, 0 },
|
||
{ 3, 0, 32, -200, 48, { 0b1111, 0 }, 0 },
|
||
{ 4, 32, 32, -216, 24, { 0b1111, 0 }, 0 },
|
||
TRACK_BLOCK_END
|
||
};
|
||
|
||
static constexpr PreviewTrack TrackBlocksLeftZeroGRollUp[] = {
|
||
{ 0, 0, 0, 0, 16, { 0b1111, 0 }, 0 },
|
||
{ 1, -32, 0, 8, 24, { 0b1111, 0 }, 0 },
|
||
{ 2, -64, 0, 24, 16, { 0b1111, 0 }, 0 },
|
||
TRACK_BLOCK_END
|
||
};
|
||
|
||
static constexpr PreviewTrack TrackBlocksRightZeroGRollUp[] = {
|
||
{ 0, 0, 0, 0, 16, { 0b1111, 0 }, 0 },
|
||
{ 1, -32, 0, 8, 24, { 0b1111, 0 }, 0 },
|
||
{ 2, -64, 0, 24, 16, { 0b1111, 0 }, 0 },
|
||
TRACK_BLOCK_END
|
||
};
|
||
|
||
static constexpr PreviewTrack TrackBlocksLeftZeroGRollDown[] = {
|
||
{ 0, 0, 0, -32, 16, { 0b1111, 0 }, 0 },
|
||
{ 1, -32, 0, -48, 24, { 0b1111, 0 }, 0 },
|
||
{ 2, -64, 0, -56, 16, { 0b1111, 0 }, 0 },
|
||
TRACK_BLOCK_END
|
||
};
|
||
|
||
static constexpr PreviewTrack TrackBlocksRightZeroGRollDown[] = {
|
||
{ 0, 0, 0 ,-32, 16, { 0b1111, 0 }, 0 },
|
||
{ 1, -32, 0, -48, 24, { 0b1111, 0 }, 0 },
|
||
{ 2, -64, 0, -56, 16, { 0b1111, 0 }, 0 },
|
||
TRACK_BLOCK_END
|
||
};
|
||
|
||
|
||
static constexpr PreviewTrack TrackBlocksLeftLargeZeroGRollUp[] = {
|
||
{ 0, 0, 0, 0, 64, { 0b1111, 0 }, 0 },
|
||
{ 1, -32, 0, 56, 48, { 0b1111, 0 }, 0 },
|
||
{ 2, -64, 0, 96, 40, { 0b1111, 0 }, 0 },
|
||
{ 3, -96, 0,120, 16, { 0b1111, 0 }, 0 },
|
||
TRACK_BLOCK_END
|
||
};
|
||
|
||
static constexpr PreviewTrack TrackBlocksRightLargeZeroGRollUp[] = {
|
||
{ 0, 0, 0, 0, 64, { 0b1111, 0 }, 0 },
|
||
{ 1, -32, 0, 56, 48, { 0b1111, 0 }, 0 },
|
||
{ 2, -64, 0, 96, 40, { 0b1111, 0 }, 0 },
|
||
{ 3, -96, 0, 120, 16, { 0b1111, 0 }, 0 },
|
||
TRACK_BLOCK_END
|
||
};
|
||
|
||
static constexpr PreviewTrack TrackBlocksLeftLargeZeroGRollDown[] = {
|
||
{ 0, 0, 0, -32, 16, { 0b1111, 0 }, 0 },
|
||
{ 1, -32, 0, -56, 40, { 0b1111, 0 }, 0 },
|
||
{ 2, -64, 0, -96, 48, { 0b1111, 0 }, 0 },
|
||
{ 3, -96, 0, -152, 64, { 0b1111, 0 }, 0 },
|
||
TRACK_BLOCK_END
|
||
};
|
||
|
||
static constexpr PreviewTrack TrackBlocksRightLargeZeroGRollDown[] = {
|
||
{ 0, 0, 0 , -32, 16, { 0b1111, 0 }, 0 },
|
||
{ 1, -32, 0, -56, 40, { 0b1111, 0 }, 0 },
|
||
{ 2, -64, 0, -96, 48, { 0b1111, 0 }, 0 },
|
||
{ 3, -96, 0, -152, 64, { 0b1111, 0 }, 0 },
|
||
TRACK_BLOCK_END
|
||
};
|
||
|
||
static constexpr PreviewTrack TrackBlocksLeftFlyerLargeHalfLoopUninvertedUp[] = {
|
||
{ 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 PreviewTrack TrackBlocksRightFlyerLargeHalfLoopUninvertedUp[] = {
|
||
{ 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 PreviewTrack TrackBlocksLeftFlyerLargeHalfLoopInvertedDown[] = {
|
||
{ 0, 0, 0, 0, 24, { 0b1111, 0 }, 0 },
|
||
{ 1, -32, 0, -184, 192, { 0b1111, 0 }, 0 },
|
||
{ 2, -64, 0, -128, 96, { 0b1111, 0 }, 0 },
|
||
{ 3, -32, -32, -184, 192, { 0b1111, 0 }, 0 },
|
||
{ 4, 0, -32, -216, 56, { 0b1111, 0 }, 0 },
|
||
{ 5, 32, -32, -232, 40, { 0b1111, 0b1100 }, 0 },
|
||
{ 6, 64, -32, -248, 24, { 0b1111, 0b1100 }, 0 },
|
||
TRACK_BLOCK_END
|
||
};
|
||
|
||
static constexpr PreviewTrack TrackBlocksRightFlyerLargeHalfLoopInvertedDown[] = {
|
||
{ 0, 0, 0, 0, 24, { 0b1111, 0 }, 0 },
|
||
{ 1, -32, 0, -184, 192, { 0b1111, 0 }, 0 },
|
||
{ 2, -64, 0, -128, 96, { 0b1111, 0 }, 0 },
|
||
{ 3, -32, 32, -184, 192, { 0b1111, 0 }, 0 },
|
||
{ 4, 0, 32, -216, 56, { 0b1111, 0 }, 0 },
|
||
{ 5, 32, 32, -232, 40, { 0b1111, 0b1100 }, 0 },
|
||
{ 6, 64, 32, -248, 24, { 0b1111, 0b1100 }, 0 },
|
||
TRACK_BLOCK_END
|
||
};
|
||
|
||
static constexpr PreviewTrack TrackBlocksLeftFlyerLargeHalfLoopInvertedUp[] = {
|
||
{ 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, 32, { 0b1111, 0 }, 0 },
|
||
TRACK_BLOCK_END
|
||
};
|
||
|
||
static constexpr PreviewTrack TrackBlocksRightFlyerLargeHalfLoopInvertedUp[] = {
|
||
{ 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, 32, { 0b1111, 0 }, 0 },
|
||
TRACK_BLOCK_END
|
||
};
|
||
|
||
static constexpr PreviewTrack TrackBlocksLeftFlyerLargeHalfLoopUninvertedDown[] = {
|
||
{ 0, 0, 0, -32, 40, { 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 PreviewTrack TrackBlocksRightFlyerLargeHalfLoopUninvertedDown[] = {
|
||
{ 0, 0, 0, -32, 40, { 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 PreviewTrack TrackBlocksFlyerHalfLoopUpInverted[] = {
|
||
{ 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, 32, { 0b1111, 0 }, 0 },
|
||
TRACK_BLOCK_END
|
||
};
|
||
|
||
static constexpr PreviewTrack TrackBlocksFlyerHalfLoopDownUpright[] = {
|
||
{ 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 PreviewTrack TrackBlocksLeftEighthToDiagUp25[] = {
|
||
{ 0, 0, 0, 0, 16, { 0b1111, 0 }, 0 },
|
||
{ 1, -32, 0, 16, 32, { 0b1111, 0 }, 0 },
|
||
{ 2, -32, -32, 32, 16, { 0b1000, 0 }, 0 },
|
||
{ 3, -64, 0, 32, 16, { 0b0010, 0 }, RCT_PREVIEW_TRACK_FLAG_0 },
|
||
{ 4, -64, -32, 32, 24, { 0b0001, 0 }, 0 },
|
||
TRACK_BLOCK_END
|
||
};
|
||
|
||
static constexpr PreviewTrack TrackBlocksRightEighthToDiagUp25[] = {
|
||
{ 0, 0, 0, 0, 16, { 0b1111, 0 }, 0 },
|
||
{ 1, -32, 0, 16, 32, { 0b1111, 0 }, 0 },
|
||
{ 2, -32, 32, 32, 16, { 0b0100, 0 }, 0 },
|
||
{ 3, -64, 0, 32, 16, { 0b0001, 0 }, RCT_PREVIEW_TRACK_FLAG_0 },
|
||
{ 4, -64, 32, 32, 24, { 0b0010, 0 }, 0 },
|
||
TRACK_BLOCK_END
|
||
};
|
||
|
||
static constexpr PreviewTrack TrackBlocksLeftEighthToDiagDown25[] = {
|
||
{ 0, 0, 0, -16, 16, { 0b1111, 0 }, 0 },
|
||
{ 1, -32, 0, -32, 16, { 0b1111, 0 }, 0 },
|
||
{ 2, -32, -32, -48, 16, { 0b1000, 0 }, 0 },
|
||
{ 3, -64, 0, -48, 16, { 0b0010, 0 }, RCT_PREVIEW_TRACK_FLAG_0 },
|
||
{ 4, -64, -32, -48, 16, { 0b0001, 0 }, 0 },
|
||
TRACK_BLOCK_END
|
||
};
|
||
|
||
static constexpr PreviewTrack TrackBlocksRightEighthToDiagDown25[] = {
|
||
{ 0, 0, 0, -16, 16, { 0b1111, 0 }, 0 },
|
||
{ 1, -32, 0, -32, 16, { 0b1111, 0 }, 0 },
|
||
{ 2, -32, 32, -48, 16, { 0b0100, 0 }, 0 },
|
||
{ 3, -64, 0, -48, 16, { 0b0001, 0 }, RCT_PREVIEW_TRACK_FLAG_0 },
|
||
{ 4, -64, 32, -48, 16, { 0b0010, 0 }, 0 },
|
||
TRACK_BLOCK_END
|
||
};
|
||
|
||
static constexpr PreviewTrack TrackBlocksLeftEighthToOrthogonalUp25[] = {
|
||
{ 0, 0, 0, 0, 16, { 0b1101, 0 }, 0 },
|
||
{ 1, -32, 0, 0, 16, { 0b0001, 0 }, 0 },
|
||
{ 2, 0, 32, 0, 16, { 0b0100, 0 }, RCT_PREVIEW_TRACK_FLAG_0 },
|
||
{ 3, -32, 32, 16, 16, { 0b1111, 0 }, 0 },
|
||
{ 4, -64, 32, 32, 16, { 0b1111, 0 }, 0 },
|
||
TRACK_BLOCK_END
|
||
};
|
||
|
||
static constexpr PreviewTrack TrackBlocksRightEighthToOrthogonalUp25[] = {
|
||
{ 0, 0, 0, 0, 16, { 0b1101, 0 }, 0 },
|
||
{ 1, 0, 32, 0, 16, { 0b0100, 0 }, 0 },
|
||
{ 2, -32, 0, 0, 16, { 0b0001, 0 }, RCT_PREVIEW_TRACK_FLAG_0 },
|
||
{ 3, -32, 32, 16, 16, { 0b1111, 0 }, 0 },
|
||
{ 4, -32, 64, 32, 16, { 0b1111, 0 }, 0 },
|
||
TRACK_BLOCK_END
|
||
};
|
||
|
||
static constexpr PreviewTrack TrackBlocksLeftEighthToOrthogonalDown25[] = {
|
||
{ 0, 0, 0, -16, 24, { 0b1101, 0 }, 0 },
|
||
{ 1, -32, 0, -16, 16, { 0b0001, 0 }, 0 },
|
||
{ 2, 0, 32, -16, 16, { 0b0100, 0 }, RCT_PREVIEW_TRACK_FLAG_0 },
|
||
{ 3, -32, 32, -32, 32, { 0b1111, 0 }, 0 },
|
||
{ 4, -64, 32, -48, 16, { 0b1111, 0 }, 0 },
|
||
TRACK_BLOCK_END
|
||
};
|
||
|
||
static constexpr PreviewTrack TrackBlocksRightEighthToOrthogonalDown25[] = {
|
||
{ 0, 0, 0, -16, 24, { 0b1101, 0 }, 0 },
|
||
{ 1, 0, 32, -16, 16,{ 0b0100, 0 }, 0 },
|
||
{ 2, -32, 0, -16, 16,{ 0b0001, 0 }, RCT_PREVIEW_TRACK_FLAG_0 },
|
||
{ 3, -32, 32, -32, 32,{ 0b1111, 0 }, 0 },
|
||
{ 4, -32, 64, -48, 16,{ 0b1111, 0 }, 0 },
|
||
TRACK_BLOCK_END
|
||
};
|
||
|
||
|
||
// rct2: 0x00994638
|
||
static constexpr std::array<const PreviewTrack*, TrackElemType::Count> TrackBlocks = {
|
||
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,
|
||
TrackBlocksRotationControlToggle,
|
||
|
||
TrackBlocksFlatTrack1x4A,
|
||
TrackBlocksFlatTrack2x2,
|
||
TrackBlocksFlatTrack4x4,
|
||
TrackBlocksFlatTrack2x4,
|
||
TrackBlocksFlatTrack1x5,
|
||
TrackBlocksFlatTrack1x1A,
|
||
TrackBlocksFlatTrack1x4B,
|
||
TrackBlocksFlatTrack1x1B,
|
||
TrackBlocksFlatTrack1x4C,
|
||
TrackBlocksFlatTrack3x3,
|
||
TrackBlocksLeftLargeCorkscrewUp,
|
||
TrackBlocksRightLargeCorkscrewUp,
|
||
TrackBlocksLeftLargeCorkscrewDown,
|
||
TrackBlocksRightLargeCorkscrewDown,
|
||
TrackBlocksLeftMediumHalfLoopUp,
|
||
TrackBlocksRightMediumHalfLoopUp,
|
||
TrackBlocksLeftMediumHalfLoopDown,
|
||
TrackBlocksRightMediumHalfLoopDown,
|
||
TrackBlocksLeftZeroGRollUp,
|
||
TrackBlocksRightZeroGRollUp,
|
||
TrackBlocksLeftZeroGRollDown,
|
||
TrackBlocksRightZeroGRollDown,
|
||
TrackBlocksLeftLargeZeroGRollUp,
|
||
TrackBlocksRightLargeZeroGRollUp,
|
||
TrackBlocksLeftLargeZeroGRollDown,
|
||
TrackBlocksRightLargeZeroGRollDown,
|
||
|
||
TrackBlocksLeftFlyerLargeHalfLoopUninvertedUp, // LeftFlyerLargeHalfLoopUninvertedUp
|
||
TrackBlocksRightFlyerLargeHalfLoopUninvertedUp, // RightFlyerLargeHalfLoopUninvertedUp
|
||
TrackBlocksLeftFlyerLargeHalfLoopInvertedDown, // LeftFlyerLargeHalfLoopInvertedDown
|
||
TrackBlocksRightFlyerLargeHalfLoopInvertedDown, // RightFlyerLargeHalfLoopInvertedDown
|
||
TrackBlocksLeftFlyerLargeHalfLoopInvertedUp, // TrackElemType::LeftFlyerLargeHalfLoopInvertedUp
|
||
TrackBlocksRightFlyerLargeHalfLoopInvertedUp, // TrackElemType::RightFlyerLargeHalfLoopInvertedUp
|
||
TrackBlocksLeftFlyerLargeHalfLoopUninvertedDown, // TrackElemType::LeftFlyerLargeHalfLoopUninvertedDown
|
||
TrackBlocksRightFlyerLargeHalfLoopUninvertedDown, // TrackElemType::RightFlyerLargeHalfLoopUninvertedDown
|
||
TrackBlocksFlyerHalfLoopUpInverted, // TrackElemType::FlyerHalfLoopInvertedUp
|
||
TrackBlocksFlyerHalfLoopDownUpright, // TrackElemType::FlyerHalfLoopUninvertedDown
|
||
TrackBlocksLeftEighthToDiagUp25, // TrackElemType::LeftEighthToDiagUp25
|
||
TrackBlocksRightEighthToDiagUp25, // TrackElemType::RightEighthToDiagUp25
|
||
TrackBlocksLeftEighthToDiagDown25, // TrackElemType::LeftEighthToDiagDown25
|
||
TrackBlocksRightEighthToDiagDown25, // TrackElemType::RightEighthToDiagDown25
|
||
TrackBlocksLeftEighthToOrthogonalUp25, // TrackElemType::LeftEighthToOrthogonalUp25
|
||
TrackBlocksRightEighthToOrthogonalUp25, // TrackElemType::RightEighthToOrthogonalUp25
|
||
TrackBlocksLeftEighthToOrthogonalDown25, // TrackElemType::LeftEighthToOrthogonalDown25
|
||
TrackBlocksRightEighthToOrthogonalDown25, // TrackElemType::RightEighthToOrthogonalDown25
|
||
TrackBlocks142, // TrackElemType::DiagUp25ToLeftBankedUp25
|
||
TrackBlocks142, // TrackElemType::DiagUp25ToRightBankedUp25
|
||
TrackBlocks142, // TrackElemType::DiagLeftBankedUp25ToUp25
|
||
TrackBlocks142, // TrackElemType::DiagRightBankedUp25ToUp25
|
||
TrackBlocks148, // TrackElemType::DiagDown25ToLeftBankedDown25
|
||
TrackBlocks148, // TrackElemType::DiagDown25ToRightBankedDown25
|
||
TrackBlocks148, // TrackElemType::DiagLeftBankedDown25ToDown25
|
||
TrackBlocks148, // TrackElemType::DiagRightBankedDown25ToDown25
|
||
TrackBlocks144, // TrackElemType::DiagLeftBankedFlatToLeftBankedUp25
|
||
TrackBlocks144, // TrackElemType::DiagRightBankedFlatToRightBankedUp25
|
||
TrackBlocks147, // TrackElemType::DiagLeftBankedUp25ToLeftBankedFlat
|
||
TrackBlocks147, // TrackElemType::DiagRightBankedUp25ToRightBankedFlat
|
||
TrackBlocks150, // TrackElemType::DiagLeftBankedFlatToLeftBankedDown25
|
||
TrackBlocks150, // TrackElemType::DiagRightBankedFlatToRightBankedDown25
|
||
TrackBlocks153, // TrackElemType::DiagLeftBankedDown25ToLeftBankedFlat
|
||
TrackBlocks153, // TrackElemType::DiagRightBankedDown25ToRightBankedFlat
|
||
TrackBlocks144, // TrackElemType::DiagFlatToLeftBankedUp25
|
||
TrackBlocks144, // TrackElemType::DiagFlatToRightBankedUp25
|
||
TrackBlocks147, // TrackElemType::DiagLeftBankedUp25ToFlat
|
||
TrackBlocks147, // TrackElemType::DiagRightBankedUp25ToFlat
|
||
TrackBlocks150, // TrackElemType::DiagFlatToLeftBankedDown25
|
||
TrackBlocks150, // TrackElemType::DiagFlatToRightBankedDown25
|
||
TrackBlocks153, // TrackElemType::DiagLeftBankedDown25ToFlat
|
||
TrackBlocks153, // TrackElemType::DiagRightBankedDown25ToFlat
|
||
TrackBlocks142, // TrackElemType::DiagUp25LeftBanked
|
||
TrackBlocks142, // TrackElemType::DiagUp25RightBanked
|
||
TrackBlocks148, // TrackElemType::DiagDown25LeftBanked
|
||
TrackBlocks148, // TrackElemType::DiagDown25RightBanked
|
||
TrackBlocksLeftEighthToDiagUp25, // TrackElemType::LeftEighthBankToDiagUp25
|
||
TrackBlocksRightEighthToDiagUp25, // TrackElemType::RightEighthBankToDiagUp25
|
||
TrackBlocksLeftEighthToDiagDown25, // TrackElemType::LeftEighthBankToDiagDown25
|
||
TrackBlocksRightEighthToDiagDown25, // TrackElemType::RightEighthBankToDiagDown25
|
||
TrackBlocksLeftEighthToOrthogonalUp25, // TrackElemType::LeftEighthBankToOrthogonalUp25
|
||
TrackBlocksRightEighthToOrthogonalUp25, // TrackElemType::RightEighthBankToOrthogonalUp25
|
||
TrackBlocksLeftEighthToOrthogonalDown25, // TrackElemType::LeftEighthBankToOrthogonalDown25
|
||
TrackBlocksRightEighthToOrthogonalDown25, // TrackElemType::RightEighthBankToOrthogonalDown25
|
||
};
|
||
|
||
static constexpr uint8_t TrackPieceLengths[] = {
|
||
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::Booster
|
||
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::LeftLargeHalfLoopDown
|
||
100, // TrackElemType::RightLargeHalfLoopDown
|
||
96, // TrackElemType::LeftFlyerTwistUp
|
||
96, // TrackElemType::RightFlyerTwistUp
|
||
96, // TrackElemType::LeftFlyerTwistDown
|
||
96, // TrackElemType::RightFlyerTwistDown
|
||
64, // TrackElemType::FlyerHalfLoopUninvertedUp
|
||
64, // TrackElemType::FlyerHalfLoopInvertedDown
|
||
64, // TrackElemType::LeftFlyerCorkscrewUp
|
||
64, // TrackElemType::RightFlyerCorkscrewUp
|
||
64, // TrackElemType::LeftFlyerCorkscrewDown
|
||
64, // TrackElemType::RightFlyerCorkscrewDown
|
||
16, // TrackElemType::HeartLineTransferUp
|
||
16, // TrackElemType::HeartLineTransferDown
|
||
64, // TrackElemType::LeftHeartLineRoll
|
||
64, // TrackElemType::RightHeartLineRoll
|
||
32, // TrackElemType::MinigolfHoleA
|
||
32, // TrackElemType::MinigolfHoleB
|
||
32, // TrackElemType::MinigolfHoleC
|
||
32, // TrackElemType::MinigolfHoleD
|
||
32, // TrackElemType::MinigolfHoleE
|
||
80, // TrackElemType::MultiDimInvertedFlatToDown90QuarterLoop
|
||
80, // TrackElemType::Up90ToInvertedFlatQuarterLoop
|
||
80, // TrackElemType::InvertedFlatToDown90QuarterLoop
|
||
64, // TrackElemType::LeftCurvedLiftHill
|
||
64, // TrackElemType::RightCurvedLiftHill
|
||
32, // TrackElemType::LeftReverser
|
||
32, // TrackElemType::RightReverser
|
||
32, // TrackElemType::AirThrustTopCap
|
||
32, // TrackElemType::AirThrustVerticalDown
|
||
32, // TrackElemType::AirThrustVerticalDownToLevel
|
||
32, // TrackElemType::BlockBrakes
|
||
32, // TrackElemType::LeftBankedQuarterTurn3TileUp25
|
||
32, // TrackElemType::RightBankedQuarterTurn3TileUp25
|
||
32, // TrackElemType::LeftBankedQuarterTurn3TileDown25
|
||
32, // TrackElemType::RightBankedQuarterTurn3TileDown25
|
||
32, // TrackElemType::LeftBankedQuarterTurn5TileUp25
|
||
32, // TrackElemType::RightBankedQuarterTurn5TileUp25
|
||
32, // TrackElemType::LeftBankedQuarterTurn5TileDown25
|
||
32, // TrackElemType::RightBankedQuarterTurn5TileDown25
|
||
32, // TrackElemType::Up25ToLeftBankedUp25
|
||
32, // TrackElemType::Up25ToRightBankedUp25
|
||
32, // TrackElemType::LeftBankedUp25ToUp25
|
||
32, // TrackElemType::RightBankedUp25ToUp25
|
||
32, // TrackElemType::Down25ToLeftBankedDown25
|
||
32, // TrackElemType::Down25ToRightBankedDown25
|
||
32, // TrackElemType::LeftBankedDown25ToDown25
|
||
32, // TrackElemType::RightBankedDown25ToDown25
|
||
32, // TrackElemType::LeftBankedFlatToLeftBankedUp25
|
||
32, // TrackElemType::RightBankedFlatToRightBankedUp25
|
||
32, // TrackElemType::LeftBankedUp25ToLeftBankedFlat
|
||
32, // TrackElemType::RightBankedUp25ToRightBankedFlat
|
||
32, // TrackElemType::LeftBankedFlatToLeftBankedDown25
|
||
32, // TrackElemType::RightBankedFlatToRightBankedDown25
|
||
32, // TrackElemType::LeftBankedDown25ToLeftBankedFlat
|
||
32, // TrackElemType::RightBankedDown25ToRightBankedFlat
|
||
32, // TrackElemType::FlatToLeftBankedUp25
|
||
32, // TrackElemType::FlatToRightBankedUp25
|
||
32, // TrackElemType::LeftBankedUp25ToFlat
|
||
32, // TrackElemType::RightBankedUp25ToFlat
|
||
32, // TrackElemType::FlatToLeftBankedDown25
|
||
32, // TrackElemType::FlatToRightBankedDown25
|
||
32, // TrackElemType::LeftBankedDown25ToFlat
|
||
32, // TrackElemType::RightBankedDown25ToFlat
|
||
32, // TrackElemType::LeftQuarterTurn1TileUp90
|
||
32, // TrackElemType::RightQuarterTurn1TileUp90
|
||
32, // TrackElemType::LeftQuarterTurn1TileDown90
|
||
32, // TrackElemType::RightQuarterTurn1TileDown90
|
||
80, // TrackElemType::MultiDimUp90ToInvertedFlatQuarterLoop
|
||
80, // TrackElemType::MultiDimFlatToDown90QuarterLoop
|
||
80, // TrackElemType::MultiDimInvertedUp90ToFlatQuarterLoop
|
||
32, // TrackElemType::RotationControlToggle
|
||
0, // TrackElemType::FlatTrack1x4A
|
||
0, // TrackElemType::FlatTrack2x2
|
||
0, // TrackElemType::FlatTrack4x4
|
||
0, // TrackElemType::FlatTrack2x4
|
||
0, // TrackElemType::FlatTrack1x5
|
||
0, // TrackElemType::FlatTrack1x1A
|
||
0, // TrackElemType::FlatTrack1x4B
|
||
0, // TrackElemType::FlatTrack1x1B
|
||
0, // TrackElemType::FlatTrack1x4C
|
||
0, // TrackElemType::FlatTrack3x3
|
||
96, // TrackElemType::LeftCorkscrewUp
|
||
96, // TrackElemType::RightCorkscrewUp
|
||
96, // TrackElemType::LeftCorkscrewDown
|
||
96, // TrackElemType::RightCorkscrewDown
|
||
80, // TrackElemType::LeftMediumHalfLoopUp
|
||
80, // TrackElemType::RightMediumHalfLoopUp
|
||
80, // TrackElemType::LeftMediumHalfLoopDown
|
||
80, // TrackElemType::RightMediumHalfLoopDown
|
||
96, // TrackElemType::LeftZeroGRollUp
|
||
96, // TrackElemType::RightZeroGRollUp
|
||
96, // TrackElemType::LeftZeroGRollDown
|
||
96, // TrackElemType::RightZeroGRollDown
|
||
165, // TrackElemType::LeftLargeZeroGRollUp
|
||
165, // TrackElemType::RightLargeZeroGRollUp
|
||
165, // TrackElemType::LeftLargeZeroGRollDown
|
||
165, // TrackElemType::RightLargeZeroGRollDown
|
||
100, // TrackElemType::LeftFlyerLargeHalfLoopUninvertedUp
|
||
100, // TrackElemType::RightFlyerLargeHalfLoopUninvertedUp
|
||
100, // TrackElemType::LeftFlyerLargeHalfLoopInvertedDown
|
||
100, // TrackElemType::RightFlyerLargeHalfLoopInvertedDown
|
||
100, // TrackElemType::LeftFlyerLargeHalfLoopInvertedUp
|
||
100, // TrackElemType::RightFlyerLargeHalfLoopInvertedUp
|
||
100, // TrackElemType::LeftFlyerLargeHalfLoopUninvertedDown
|
||
100, // TrackElemType::RightFlyerLargeHalfLoopUninvertedDown
|
||
64, // TrackElemType::FlyerHalfLoopInvertedUp
|
||
64, // TrackElemType::FlyerHalfLoopUninvertedDown
|
||
64, // TrackElemType::LeftEighthToDiagUp25
|
||
64, // TrackElemType::RightEighthToDiagUp25
|
||
64, // TrackElemType::LeftEighthToDiagDown25
|
||
64, // TrackElemType::RightEighthToDiagDown25
|
||
64, // TrackElemType::LeftEighthToOrthogonalUp25
|
||
64, // TrackElemType::RightEighthToOrthogonalUp25
|
||
64, // TrackElemType::LeftEighthToOrthogonalDown25
|
||
64, // TrackElemType::RightEighthToOrthogonalDown25
|
||
64, // TrackElemType::DiagUp25ToLeftBankedUp25
|
||
64, // TrackElemType::DiagUp25ToRightBankedUp25
|
||
64, // TrackElemType::DiagLeftBankedUp25ToUp25
|
||
64, // TrackElemType::DiagRightBankedUp25ToUp25
|
||
64, // TrackElemType::DiagDown25ToLeftBankedDown25
|
||
64, // TrackElemType::DiagDown25ToRightBankedDown25
|
||
64, // TrackElemType::DiagLeftBankedDown25ToDown25
|
||
64, // TrackElemType::DiagRightBankedDown25ToDown25
|
||
64, // TrackElemType::DiagLeftBankedFlatToLeftBankedUp25
|
||
64, // TrackElemType::DiagRightBankedFlatToRightBankedUp25
|
||
64, // TrackElemType::DiagLeftBankedUp25ToLeftBankedFlat
|
||
64, // TrackElemType::DiagRightBankedUp25ToRightBankedFlat
|
||
64, // TrackElemType::DiagLeftBankedFlatToLeftBankedDown25
|
||
64, // TrackElemType::DiagRightBankedFlatToRightBankedDown25
|
||
64, // TrackElemType::DiagLeftBankedDown25ToLeftBankedFlat
|
||
64, // TrackElemType::DiagRightBankedDown25ToRightBankedFlat
|
||
64, // TrackElemType::DiagFlatToLeftBankedUp25
|
||
64, // TrackElemType::DiagFlatToRightBankedUp25
|
||
64, // TrackElemType::DiagLeftBankedUp25ToFlat
|
||
64, // TrackElemType::DiagRightBankedUp25ToFlat
|
||
64, // TrackElemType::DiagFlatToLeftBankedDown25
|
||
64, // TrackElemType::DiagFlatToRightBankedDown25
|
||
64, // TrackElemType::DiagLeftBankedDown25ToFlat
|
||
64, // TrackElemType::DiagRightBankedDown25ToFlat
|
||
64, // TrackElemType::DiagUp25LeftBanked
|
||
64, // TrackElemType::DiagUp25RightBanked
|
||
64, // TrackElemType::DiagDown25LeftBanked
|
||
64, // TrackElemType::DiagDown25RightBanked
|
||
64, // TrackElemType::LeftEighthBankToDiagUp25
|
||
64, // TrackElemType::RightEighthBankToDiagUp25
|
||
64, // TrackElemType::LeftEighthBankToDiagDown25
|
||
64, // TrackElemType::RightEighthBankToDiagDown25
|
||
64, // TrackElemType::LeftEighthBankToOrthogonalUp25
|
||
64, // TrackElemType::RightEighthBankToOrthogonalUp25
|
||
64, // TrackElemType::LeftEighthBankToOrthogonalDown25
|
||
64, // TrackElemType::RightEighthBankToOrthogonalDown25
|
||
};
|
||
static_assert(std::size(TrackPieceLengths) == TrackElemType::Count);
|
||
|
||
// rct2: 0x00998C95
|
||
static constexpr TrackCurveChain gTrackCurveChain[] = {
|
||
{ 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 },
|
||
{ RideConstructionSpecialPieceSelected | TrackElemType::Booster, RideConstructionSpecialPieceSelected | TrackElemType::Booster },
|
||
{ 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::RightLargeHalfLoopDown, TRACK_CURVE_NONE },
|
||
{ RideConstructionSpecialPieceSelected | TrackElemType::LeftLargeHalfLoopDown, 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 },
|
||
{ TRACK_CURVE_NONE, TRACK_CURVE_NONE },
|
||
{ 65535, 65535 }, // TrackElemType::FlatTrack1x4A
|
||
{ TRACK_CURVE_NONE, TRACK_CURVE_NONE }, // TrackElemType::FlatTrack2x2
|
||
{ TRACK_CURVE_NONE, TRACK_CURVE_NONE }, // TrackElemType::FlatTrack4x4
|
||
{ 65535, 65535 }, // TrackElemType::FlatTrack2x4
|
||
{ 65535, 65535 }, // TrackElemType::FlatTrack1x5
|
||
{ 65535, 65535 }, // TrackElemType::FlatTrack1x1A
|
||
{ 65535, 65535 }, // TrackElemType::FlatTrack1x4B
|
||
{ 65535, 65535 }, // TrackElemType::FlatTrack1x1B
|
||
{ 65535, 65535 }, // TrackElemType::FlatTrack1x4C
|
||
{ 65535, 65535 }, // TrackElemType::FlatTrack3x3
|
||
{ RideConstructionSpecialPieceSelected | TrackElemType::RightLargeCorkscrewDown, TRACK_CURVE_NONE }, // TrackElemType::LeftLargeCorkscrewUp
|
||
{ RideConstructionSpecialPieceSelected | TrackElemType::LeftLargeCorkscrewDown, TRACK_CURVE_NONE }, // TrackElemType::RightLargeCorkscrewUp
|
||
{ TRACK_CURVE_NONE, RideConstructionSpecialPieceSelected | TrackElemType::RightLargeCorkscrewUp }, // TrackElemType::LeftLargeCorkscrewDown
|
||
{ TRACK_CURVE_NONE, RideConstructionSpecialPieceSelected | TrackElemType::LeftLargeCorkscrewUp }, // TrackElemType::RightCorkscrewDown
|
||
{ RideConstructionSpecialPieceSelected | TrackElemType::RightMediumHalfLoopDown, TRACK_CURVE_NONE }, // TrackElemType::LeftMediumHalfLoopUp
|
||
{ RideConstructionSpecialPieceSelected | TrackElemType::LeftMediumHalfLoopDown, TRACK_CURVE_NONE }, // TrackElemType::RightMediumHalfLoopUp
|
||
{ TRACK_CURVE_NONE, RideConstructionSpecialPieceSelected | TrackElemType::RightMediumHalfLoopUp }, // TrackElemType::LeftMediumHalfLoopDown
|
||
{ TRACK_CURVE_NONE, RideConstructionSpecialPieceSelected | TrackElemType::LeftMediumHalfLoopUp }, // TrackElemType::RightMediumHalfLoopDown
|
||
{ RideConstructionSpecialPieceSelected | TrackElemType::LeftZeroGRollDown, TRACK_CURVE_NONE }, // TrackElemType::LeftZeroGRollUp
|
||
{ RideConstructionSpecialPieceSelected | TrackElemType::RightZeroGRollDown, TRACK_CURVE_NONE }, // TrackElemType::RightZeroGRollUp
|
||
{ TRACK_CURVE_NONE, RideConstructionSpecialPieceSelected | TrackElemType::LeftZeroGRollUp }, // TrackElemType::LeftZeroGRollDown
|
||
{ TRACK_CURVE_NONE, RideConstructionSpecialPieceSelected | TrackElemType::RightZeroGRollUp }, // TrackElemType::RightZeroGRollDown
|
||
{ RideConstructionSpecialPieceSelected | TrackElemType::LeftLargeZeroGRollDown, TRACK_CURVE_NONE }, // TrackElemType::LeftLargeZeroGRollUp
|
||
{ RideConstructionSpecialPieceSelected | TrackElemType::RightLargeZeroGRollDown, TRACK_CURVE_NONE }, // TrackElemType::RightLargeZeroGRollUp
|
||
{ TRACK_CURVE_NONE, RideConstructionSpecialPieceSelected | TrackElemType::LeftLargeZeroGRollUp }, // TrackElemType::LeftLargeZeroGRollDown
|
||
{ TRACK_CURVE_NONE, RideConstructionSpecialPieceSelected | TrackElemType::RightLargeZeroGRollUp }, // TrackElemType::RightLargeZeroGRollDown
|
||
{ RideConstructionSpecialPieceSelected | TrackElemType::RightFlyerLargeHalfLoopInvertedDown, TRACK_CURVE_NONE }, // LeftFlyerLargeHalfLoopUninvertedUp
|
||
{ RideConstructionSpecialPieceSelected | TrackElemType::LeftFlyerLargeHalfLoopInvertedDown, TRACK_CURVE_NONE }, // RightFlyerLargeHalfLoopUninvertedUp
|
||
{ TRACK_CURVE_NONE, RideConstructionSpecialPieceSelected | TrackElemType::RightFlyerLargeHalfLoopUninvertedUp }, // LeftFlyerLargeHalfLoopInvertedDown
|
||
{ TRACK_CURVE_NONE, RideConstructionSpecialPieceSelected | TrackElemType::LeftFlyerLargeHalfLoopUninvertedUp }, // RightFlyerLargeHalfLoopInvertedDown
|
||
{ RideConstructionSpecialPieceSelected | TrackElemType::RightFlyerLargeHalfLoopUninvertedDown, TRACK_CURVE_NONE}, // LeftFlyerLargeHalfLoopInvertedUp
|
||
{ RideConstructionSpecialPieceSelected | TrackElemType::LeftFlyerLargeHalfLoopUninvertedDown, TRACK_CURVE_NONE }, // RightFlyerLargeHalfLoopInvertedUp
|
||
{ TRACK_CURVE_NONE, RideConstructionSpecialPieceSelected | TrackElemType::RightFlyerLargeHalfLoopInvertedUp }, // LeftFlyerLargeHalfLoopUninvertedDown
|
||
{ TRACK_CURVE_NONE, RideConstructionSpecialPieceSelected | TrackElemType::LeftFlyerLargeHalfLoopInvertedUp }, // RightFlyerLargeHalfLoopUninvertedDown
|
||
{ TRACK_CURVE_NONE, TRACK_CURVE_NONE }, // FlyerHalfLoopInvertedUp
|
||
{ TRACK_CURVE_NONE, TRACK_CURVE_NONE }, // FlyerHalfLoopUninvertedUp
|
||
{ TRACK_CURVE_LEFT_LARGE, TRACK_CURVE_LEFT_LARGE }, // TrackElemType::LeftEighthToDiagUp25
|
||
{ TRACK_CURVE_RIGHT_LARGE, TRACK_CURVE_RIGHT_LARGE }, // TrackElemType::RightEighthToDiagUp25
|
||
{ TRACK_CURVE_LEFT_LARGE, TRACK_CURVE_LEFT_LARGE }, // TrackElemType::LeftEighthToDiagDown25
|
||
{ TRACK_CURVE_RIGHT_LARGE, TRACK_CURVE_RIGHT_LARGE }, // TrackElemType::RightEighthToDiagDown25
|
||
{ TRACK_CURVE_LEFT_LARGE, TRACK_CURVE_LEFT_LARGE }, // TrackElemType::LeftEighthToOrthogonalUp25
|
||
{ TRACK_CURVE_RIGHT_LARGE, TRACK_CURVE_RIGHT_LARGE }, // TrackElemType::RightEighthToOrthogonalUp25
|
||
{ TRACK_CURVE_LEFT_LARGE, TRACK_CURVE_LEFT_LARGE }, // TrackElemType::LeftEighthToOrthogonalDown25
|
||
{ TRACK_CURVE_RIGHT_LARGE, TRACK_CURVE_RIGHT_LARGE }, // TrackElemType::RightEighthToOrthogonalDown25
|
||
{ TRACK_CURVE_LEFT_LARGE, TRACK_CURVE_LEFT_LARGE }, // TrackElemType::DiagUp25ToLeftBankedUp25
|
||
{ TRACK_CURVE_RIGHT_LARGE, TRACK_CURVE_RIGHT_LARGE }, // TrackElemType::DiagUp25ToRightBankedUp25
|
||
{ TRACK_CURVE_NONE, TRACK_CURVE_NONE }, // TrackElemType::DiagLeftBankedUp25ToUp25
|
||
{ TRACK_CURVE_NONE, TRACK_CURVE_NONE }, // TrackElemType::DiagRightBankedUp25ToUp25
|
||
{ TRACK_CURVE_LEFT_LARGE, TRACK_CURVE_LEFT_LARGE }, // TrackElemType::DiagDown25ToLeftBankedDown25
|
||
{ TRACK_CURVE_RIGHT_LARGE, TRACK_CURVE_RIGHT_LARGE }, // TrackElemType::DiagDown25ToRightBankedDown25
|
||
{ TRACK_CURVE_NONE, TRACK_CURVE_NONE }, // TrackElemType::DiagLeftBankedDown25ToDown25
|
||
{ TRACK_CURVE_NONE, TRACK_CURVE_NONE }, // TrackElemType::DiagRightBankedDown25ToDown25
|
||
{ TRACK_CURVE_LEFT_LARGE, TRACK_CURVE_LEFT_LARGE }, // TrackElemType::DiagLeftBankedFlatToLeftBankedUp25
|
||
{ TRACK_CURVE_RIGHT_LARGE, TRACK_CURVE_RIGHT_LARGE }, // TrackElemType::DiagRightBankedFlatToRightBankedUp25
|
||
{ TRACK_CURVE_LEFT_LARGE, TRACK_CURVE_LEFT_LARGE }, // TrackElemType::DiagLeftBankedUp25ToLeftBankedFlat
|
||
{ TRACK_CURVE_RIGHT_LARGE, TRACK_CURVE_RIGHT_LARGE }, // TrackElemType::DiagRightBankedUp25ToRightBankedFlat
|
||
{ TRACK_CURVE_LEFT_LARGE, TRACK_CURVE_LEFT_LARGE }, // TrackElemType::DiagLeftBankedFlatToLeftBankedDown25
|
||
{ TRACK_CURVE_RIGHT_LARGE, TRACK_CURVE_RIGHT_LARGE }, // TrackElemType::DiagRightBankedFlatToRightBankedDown25
|
||
{ TRACK_CURVE_LEFT_LARGE, TRACK_CURVE_LEFT_LARGE }, // TrackElemType::DiagLeftBankedDown25ToLeftBankedFlat
|
||
{ TRACK_CURVE_RIGHT_LARGE, TRACK_CURVE_RIGHT_LARGE }, // TrackElemType::DiagRightBankedDown25ToRightBankedFlat
|
||
{ TRACK_CURVE_LEFT_LARGE, TRACK_CURVE_LEFT_LARGE }, // TrackElemType::DiagFlatToLeftBankedUp25
|
||
{ TRACK_CURVE_RIGHT_LARGE, TRACK_CURVE_RIGHT_LARGE }, // TrackElemType::DiagFlatToRightBankedUp25
|
||
{ TRACK_CURVE_NONE, TRACK_CURVE_NONE }, // TrackElemType::DiagLeftBankedUp25ToFlat
|
||
{ TRACK_CURVE_NONE, TRACK_CURVE_NONE }, // TrackElemType::DiagRightBankedUp25ToFlat
|
||
{ TRACK_CURVE_LEFT_LARGE, TRACK_CURVE_LEFT_LARGE }, // TrackElemType::DiagFlatToLeftBankedDown25
|
||
{ TRACK_CURVE_RIGHT_LARGE, TRACK_CURVE_RIGHT_LARGE }, // TrackElemType::DiagFlatToRightBankedDown25
|
||
{ TRACK_CURVE_NONE, TRACK_CURVE_NONE }, // TrackElemType::DiagLeftBankedDown25ToFlat
|
||
{ TRACK_CURVE_NONE, TRACK_CURVE_NONE }, // TrackElemType::DiagRightBankedDown25ToFlat
|
||
{ TRACK_CURVE_LEFT_LARGE, TRACK_CURVE_LEFT_LARGE }, // TrackElemType::DiagUp25LeftBanked
|
||
{ TRACK_CURVE_RIGHT_LARGE, TRACK_CURVE_RIGHT_LARGE }, // TrackElemType::DiagUp25RightBanked
|
||
{ TRACK_CURVE_LEFT_LARGE, TRACK_CURVE_LEFT_LARGE }, // TrackElemType::DiagDown25LeftBanked
|
||
{ TRACK_CURVE_RIGHT_LARGE, TRACK_CURVE_RIGHT_LARGE }, // TrackElemType::DiagDown25RightBanked
|
||
{ TRACK_CURVE_LEFT_LARGE, TRACK_CURVE_LEFT_LARGE }, // TrackElemType::LeftEighthBankToDiagUp25
|
||
{ TRACK_CURVE_RIGHT_LARGE, TRACK_CURVE_RIGHT_LARGE }, // TrackElemType::RightEighthBankToDiagUp25
|
||
{ TRACK_CURVE_LEFT_LARGE, TRACK_CURVE_LEFT_LARGE }, // TrackElemType::LeftEighthBankToDiagDown25
|
||
{ TRACK_CURVE_RIGHT_LARGE, TRACK_CURVE_RIGHT_LARGE }, // TrackElemType::RightEighthBankToDiagDown25
|
||
{ TRACK_CURVE_LEFT_LARGE, TRACK_CURVE_LEFT_LARGE }, // TrackElemType::LeftEighthBankToOrthogonalUp25
|
||
{ TRACK_CURVE_RIGHT_LARGE, TRACK_CURVE_RIGHT_LARGE }, // TrackElemType::RightEighthBankToOrthogonalUp25
|
||
{ TRACK_CURVE_LEFT_LARGE, TRACK_CURVE_LEFT_LARGE }, // TrackElemType::LeftEighthBankToOrthogonalDown25
|
||
{ TRACK_CURVE_RIGHT_LARGE, TRACK_CURVE_RIGHT_LARGE }, // TrackElemType::RightEighthBankToOrthogonalDown25
|
||
};
|
||
static_assert(std::size(gTrackCurveChain) == TrackElemType::Count);
|
||
|
||
const TrackDescriptor gTrackDescriptors[186] = {
|
||
{ 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 },
|
||
{ false, TRACK_SLOPE_UP_25, TRACK_BANK_NONE, TRACK_CURVE_LEFT_LARGE, TRACK_SLOPE_UP_25, TRACK_BANK_NONE, TrackElemType::LeftEighthToDiagUp25 }, // TrackElemType::LeftEighthToDiagUp25
|
||
{ false, TRACK_SLOPE_UP_25, TRACK_BANK_NONE, TRACK_CURVE_RIGHT_LARGE, TRACK_SLOPE_UP_25, TRACK_BANK_NONE, TrackElemType::RightEighthToDiagUp25 }, // TrackElemType::RightEighthToDiagUp25
|
||
{ false, TRACK_SLOPE_DOWN_25, TRACK_BANK_NONE, TRACK_CURVE_LEFT_LARGE, TRACK_SLOPE_DOWN_25, TRACK_BANK_NONE, TrackElemType::LeftEighthToDiagDown25 }, // TrackElemType::LeftEighthToDiagDown25
|
||
{ false, TRACK_SLOPE_DOWN_25, TRACK_BANK_NONE, TRACK_CURVE_RIGHT_LARGE, TRACK_SLOPE_DOWN_25, TRACK_BANK_NONE, TrackElemType::RightEighthToDiagDown25 }, // TrackElemType::RightEighthToDiagDown25
|
||
{ true, TRACK_SLOPE_UP_25, TRACK_BANK_NONE, TRACK_CURVE_LEFT_LARGE, TRACK_SLOPE_UP_25, TRACK_BANK_NONE, TrackElemType::LeftEighthToOrthogonalUp25 }, // TrackElemType::LeftEighthToOrthogonalUp25
|
||
{ true, TRACK_SLOPE_UP_25, TRACK_BANK_NONE, TRACK_CURVE_RIGHT_LARGE, TRACK_SLOPE_UP_25, TRACK_BANK_NONE, TrackElemType::RightEighthToOrthogonalUp25 }, // TrackElemType::RightEighthToOrthogonalUp25
|
||
{ true, TRACK_SLOPE_DOWN_25, TRACK_BANK_NONE, TRACK_CURVE_LEFT_LARGE, TRACK_SLOPE_DOWN_25, TRACK_BANK_NONE, TrackElemType::LeftEighthToOrthogonalDown25 }, // TrackElemType::LeftEighthToOrthogonalDown25
|
||
{ true, TRACK_SLOPE_DOWN_25, TRACK_BANK_NONE, TRACK_CURVE_RIGHT_LARGE, TRACK_SLOPE_DOWN_25, TRACK_BANK_NONE, TrackElemType::RightEighthToOrthogonalDown25 }, // TrackElemType::RightEighthToOrthogonalDown25
|
||
{ true, TRACK_SLOPE_UP_25, TRACK_BANK_NONE, TRACK_CURVE_NONE, TRACK_SLOPE_UP_25, TRACK_BANK_LEFT, TrackElemType::DiagUp25ToLeftBankedUp25 }, // TrackElemType::DiagUp25ToLeftBankedUp25
|
||
{ true, TRACK_SLOPE_UP_25, TRACK_BANK_NONE, TRACK_CURVE_NONE, TRACK_SLOPE_UP_25, TRACK_BANK_RIGHT, TrackElemType::DiagUp25ToRightBankedUp25 }, // TrackElemType::DiagUp25ToRightBankedUp25
|
||
{ true, TRACK_SLOPE_UP_25, TRACK_BANK_LEFT, TRACK_CURVE_NONE, TRACK_SLOPE_UP_25, TRACK_BANK_NONE, TrackElemType::DiagLeftBankedUp25ToUp25 }, // TrackElemType::DiagLeftBankedUp25ToUp25
|
||
{ true, TRACK_SLOPE_UP_25, TRACK_BANK_RIGHT, TRACK_CURVE_NONE, TRACK_SLOPE_UP_25, TRACK_BANK_NONE, TrackElemType::DiagRightBankedUp25ToUp25 }, // TrackElemType::DiagRightBankedUp25ToUp25
|
||
{ true, TRACK_SLOPE_DOWN_25, TRACK_BANK_NONE, TRACK_CURVE_NONE, TRACK_SLOPE_DOWN_25, TRACK_BANK_LEFT, TrackElemType::DiagDown25ToLeftBankedDown25 }, // TrackElemType::DiagDown25ToLeftBankedDown25
|
||
{ true, TRACK_SLOPE_DOWN_25, TRACK_BANK_NONE, TRACK_CURVE_NONE, TRACK_SLOPE_DOWN_25, TRACK_BANK_RIGHT, TrackElemType::DiagDown25ToRightBankedDown25 }, // TrackElemType::DiagDown25ToRightBankedDown25
|
||
{ true, TRACK_SLOPE_DOWN_25, TRACK_BANK_LEFT, TRACK_CURVE_NONE, TRACK_SLOPE_DOWN_25, TRACK_BANK_NONE, TrackElemType::DiagLeftBankedDown25ToDown25 }, // TrackElemType::DiagLeftBankedDown25ToDown25
|
||
{ true, TRACK_SLOPE_DOWN_25, TRACK_BANK_RIGHT, TRACK_CURVE_NONE, TRACK_SLOPE_DOWN_25, TRACK_BANK_NONE, TrackElemType::DiagRightBankedDown25ToDown25 }, // TrackElemType::DiagRightBankedDown25ToDown25
|
||
{ true, TRACK_SLOPE_NONE, TRACK_BANK_LEFT, TRACK_CURVE_NONE, TRACK_SLOPE_UP_25, TRACK_BANK_LEFT, TrackElemType::DiagLeftBankedFlatToLeftBankedUp25 }, // TrackElemType::DiagLeftBankedFlatToLeftBankedUp25
|
||
{ true, TRACK_SLOPE_NONE, TRACK_BANK_RIGHT, TRACK_CURVE_NONE, TRACK_SLOPE_UP_25, TRACK_BANK_RIGHT, TrackElemType::DiagRightBankedFlatToRightBankedUp25 }, // TrackElemType::DiagRightBankedFlatToRightBankedUp25
|
||
{ true, TRACK_SLOPE_UP_25, TRACK_BANK_LEFT, TRACK_CURVE_NONE, TRACK_SLOPE_NONE, TRACK_BANK_LEFT, TrackElemType::DiagLeftBankedUp25ToLeftBankedFlat }, // TrackElemType::DiagLeftBankedUp25ToLeftBankedFlat
|
||
{ true, TRACK_SLOPE_UP_25, TRACK_BANK_RIGHT, TRACK_CURVE_NONE, TRACK_SLOPE_NONE, TRACK_BANK_RIGHT, TrackElemType::DiagRightBankedUp25ToRightBankedFlat }, // TrackElemType::DiagRightBankedUp25ToRightBankedFlat
|
||
{ true, TRACK_SLOPE_NONE, TRACK_BANK_LEFT, TRACK_CURVE_NONE, TRACK_SLOPE_DOWN_25, TRACK_BANK_LEFT, TrackElemType::DiagLeftBankedFlatToLeftBankedDown25 }, // TrackElemType::DiagLeftBankedFlatToLeftBankedDown25
|
||
{ true, TRACK_SLOPE_NONE, TRACK_BANK_RIGHT, TRACK_CURVE_NONE, TRACK_SLOPE_DOWN_25, TRACK_BANK_RIGHT, TrackElemType::DiagRightBankedFlatToRightBankedDown25 }, // TrackElemType::DiagRightBankedFlatToRightBankedDown25
|
||
{ true, TRACK_SLOPE_DOWN_25, TRACK_BANK_LEFT, TRACK_CURVE_NONE, TRACK_SLOPE_NONE, TRACK_BANK_LEFT, TrackElemType::DiagLeftBankedDown25ToLeftBankedFlat }, // TrackElemType::DiagLeftBankedDown25ToLeftBankedFlat
|
||
{ true, TRACK_SLOPE_DOWN_25, TRACK_BANK_RIGHT, TRACK_CURVE_NONE, TRACK_SLOPE_NONE, TRACK_BANK_RIGHT, TrackElemType::DiagRightBankedDown25ToRightBankedFlat }, // TrackElemType::DiagRightBankedDown25ToRightBankedFlat
|
||
{ true, TRACK_SLOPE_NONE, TRACK_BANK_NONE, TRACK_CURVE_NONE, TRACK_SLOPE_UP_25, TRACK_BANK_LEFT, TrackElemType::DiagFlatToLeftBankedUp25 }, // TrackElemType::DiagFlatToLeftBankedUp25
|
||
{ true, TRACK_SLOPE_NONE, TRACK_BANK_NONE, TRACK_CURVE_NONE, TRACK_SLOPE_UP_25, TRACK_BANK_RIGHT, TrackElemType::DiagFlatToRightBankedUp25 }, // TrackElemType::DiagFlatToRightBankedUp25
|
||
{ true, TRACK_SLOPE_UP_25, TRACK_BANK_LEFT, TRACK_CURVE_NONE, TRACK_SLOPE_NONE, TRACK_BANK_NONE, TrackElemType::DiagLeftBankedUp25ToFlat }, // TrackElemType::DiagLeftBankedUp25ToFlat
|
||
{ true, TRACK_SLOPE_UP_25, TRACK_BANK_RIGHT, TRACK_CURVE_NONE, TRACK_SLOPE_NONE, TRACK_BANK_NONE, TrackElemType::DiagRightBankedUp25ToFlat }, // TrackElemType::DiagRightBankedUp25ToFlat
|
||
{ true, TRACK_SLOPE_NONE, TRACK_BANK_NONE, TRACK_CURVE_NONE, TRACK_SLOPE_DOWN_25, TRACK_BANK_LEFT, TrackElemType::DiagFlatToLeftBankedDown25 }, // TrackElemType::DiagFlatToLeftBankedDown25
|
||
{ true, TRACK_SLOPE_NONE, TRACK_BANK_NONE, TRACK_CURVE_NONE, TRACK_SLOPE_DOWN_25, TRACK_BANK_RIGHT, TrackElemType::DiagFlatToRightBankedDown25 }, // TrackElemType::DiagFlatToRightBankedDown25
|
||
{ true, TRACK_SLOPE_DOWN_25, TRACK_BANK_LEFT, TRACK_CURVE_NONE, TRACK_SLOPE_NONE, TRACK_BANK_NONE, TrackElemType::DiagLeftBankedDown25ToFlat }, // TrackElemType::DiagLeftBankedDown25ToFlat
|
||
{ true, TRACK_SLOPE_DOWN_25, TRACK_BANK_RIGHT, TRACK_CURVE_NONE, TRACK_SLOPE_NONE, TRACK_BANK_NONE, TrackElemType::DiagRightBankedDown25ToFlat }, // TrackElemType::DiagRightBankedDown25ToFlat
|
||
{ true, TRACK_SLOPE_UP_25, TRACK_BANK_LEFT, TRACK_CURVE_NONE, TRACK_SLOPE_UP_25, TRACK_BANK_LEFT, TrackElemType::DiagUp25LeftBanked }, // TrackElemType::Up25LeftBanked
|
||
{ true, TRACK_SLOPE_UP_25, TRACK_BANK_RIGHT, TRACK_CURVE_NONE, TRACK_SLOPE_UP_25, TRACK_BANK_RIGHT, TrackElemType::DiagUp25RightBanked }, // TrackElemType::Up25RightBanked
|
||
{ true, TRACK_SLOPE_DOWN_25, TRACK_BANK_LEFT, TRACK_CURVE_NONE, TRACK_SLOPE_DOWN_25, TRACK_BANK_LEFT, TrackElemType::DiagDown25LeftBanked }, // TrackElemType::Down25LeftBanked
|
||
{ true, TRACK_SLOPE_DOWN_25, TRACK_BANK_RIGHT, TRACK_CURVE_NONE, TRACK_SLOPE_DOWN_25, TRACK_BANK_RIGHT, TrackElemType::DiagDown25RightBanked }, // TrackElemType::Down25RightBanked
|
||
{ false, TRACK_SLOPE_UP_25, TRACK_BANK_LEFT, TRACK_CURVE_LEFT_LARGE, TRACK_SLOPE_UP_25, TRACK_BANK_LEFT, TrackElemType::LeftEighthBankToDiagUp25 }, // TrackElemType::LeftEighthBankToDiagUp25
|
||
{ false, TRACK_SLOPE_UP_25, TRACK_BANK_RIGHT, TRACK_CURVE_RIGHT_LARGE, TRACK_SLOPE_UP_25, TRACK_BANK_RIGHT, TrackElemType::RightEighthBankToDiagUp25 }, // TrackElemType::RightEighthBankToDiagUp25
|
||
{ false, TRACK_SLOPE_DOWN_25, TRACK_BANK_LEFT, TRACK_CURVE_LEFT_LARGE, TRACK_SLOPE_DOWN_25, TRACK_BANK_LEFT, TrackElemType::LeftEighthBankToDiagDown25 }, // TrackElemType::LeftEighthBankToDiagDown25
|
||
{ false, TRACK_SLOPE_DOWN_25, TRACK_BANK_RIGHT, TRACK_CURVE_RIGHT_LARGE, TRACK_SLOPE_DOWN_25, TRACK_BANK_RIGHT, TrackElemType::RightEighthBankToDiagDown25 }, // TrackElemType::RightEighthBankToDiagDown25
|
||
{ true, TRACK_SLOPE_UP_25, TRACK_BANK_LEFT, TRACK_CURVE_LEFT_LARGE, TRACK_SLOPE_UP_25, TRACK_BANK_LEFT, TrackElemType::LeftEighthBankToOrthogonalUp25 }, // TrackElemType::LeftEighthBankToOrthogonalUp25
|
||
{ true, TRACK_SLOPE_UP_25, TRACK_BANK_RIGHT, TRACK_CURVE_RIGHT_LARGE, TRACK_SLOPE_UP_25, TRACK_BANK_RIGHT, TrackElemType::RightEighthBankToOrthogonalUp25 }, // TrackElemType::RightEighthBankToOrthogonalUp25
|
||
{ true, TRACK_SLOPE_DOWN_25, TRACK_BANK_LEFT, TRACK_CURVE_LEFT_LARGE, TRACK_SLOPE_DOWN_25, TRACK_BANK_LEFT, TrackElemType::LeftEighthBankToOrthogonalDown25 }, // TrackElemType::LeftEighthBankToOrthogonalDown25
|
||
{ true, TRACK_SLOPE_DOWN_25, TRACK_BANK_RIGHT, TRACK_CURVE_RIGHT_LARGE, TRACK_SLOPE_DOWN_25, TRACK_BANK_RIGHT, TrackElemType::RightEighthBankToOrthogonalDown25 }, // TrackElemType::RightEighthBankToOrthogonalDown25
|
||
};
|
||
|
||
/** rct2: 0x00993D1C */
|
||
static constexpr track_type_t AlternativeTrackTypes[] = {
|
||
TrackElemType::FlatCovered, // TrackElemType::Flat
|
||
TrackElemType::None,
|
||
TrackElemType::None,
|
||
TrackElemType::None,
|
||
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
|
||
TrackElemType::None,
|
||
TrackElemType::None,
|
||
TrackElemType::None,
|
||
TrackElemType::None,
|
||
TrackElemType::None,
|
||
TrackElemType::None,
|
||
TrackElemType::None,
|
||
TrackElemType::None,
|
||
TrackElemType::None,
|
||
TrackElemType::None,
|
||
TrackElemType::None,
|
||
TrackElemType::None,
|
||
TrackElemType::None,
|
||
TrackElemType::None,
|
||
TrackElemType::None,
|
||
TrackElemType::None,
|
||
TrackElemType::None,
|
||
TrackElemType::None,
|
||
TrackElemType::None,
|
||
TrackElemType::None,
|
||
TrackElemType::SBendLeftCovered, // TrackElemType::SBendLeft
|
||
TrackElemType::SBendRightCovered, // TrackElemType::SBendRight
|
||
TrackElemType::None,
|
||
TrackElemType::None,
|
||
TrackElemType::LeftQuarterTurn3TilesCovered, // TrackElemType::LeftQuarterTurn3Tiles
|
||
TrackElemType::RightQuarterTurn3TilesCovered, // TrackElemType::RightQuarterTurn3Tiles
|
||
TrackElemType::None,
|
||
TrackElemType::None,
|
||
TrackElemType::None,
|
||
TrackElemType::None,
|
||
TrackElemType::None,
|
||
TrackElemType::None,
|
||
TrackElemType::None,
|
||
TrackElemType::None,
|
||
TrackElemType::None,
|
||
TrackElemType::None,
|
||
TrackElemType::None,
|
||
TrackElemType::None,
|
||
TrackElemType::None,
|
||
TrackElemType::None,
|
||
TrackElemType::None,
|
||
TrackElemType::None,
|
||
TrackElemType::None,
|
||
TrackElemType::None,
|
||
TrackElemType::None,
|
||
TrackElemType::None,
|
||
TrackElemType::None,
|
||
TrackElemType::None,
|
||
TrackElemType::None,
|
||
TrackElemType::None,
|
||
TrackElemType::None,
|
||
TrackElemType::None,
|
||
TrackElemType::None,
|
||
TrackElemType::None,
|
||
TrackElemType::None,
|
||
TrackElemType::None,
|
||
TrackElemType::None,
|
||
TrackElemType::None,
|
||
TrackElemType::None,
|
||
TrackElemType::None,
|
||
TrackElemType::None,
|
||
TrackElemType::None,
|
||
TrackElemType::None,
|
||
TrackElemType::None,
|
||
TrackElemType::None,
|
||
TrackElemType::None,
|
||
TrackElemType::None,
|
||
TrackElemType::None,
|
||
TrackElemType::None,
|
||
TrackElemType::None,
|
||
TrackElemType::None,
|
||
TrackElemType::None,
|
||
TrackElemType::None,
|
||
TrackElemType::None,
|
||
TrackElemType::None,
|
||
TrackElemType::None,
|
||
TrackElemType::None,
|
||
TrackElemType::None,
|
||
TrackElemType::None,
|
||
TrackElemType::None,
|
||
TrackElemType::None,
|
||
TrackElemType::None,
|
||
TrackElemType::None,
|
||
TrackElemType::None,
|
||
TrackElemType::None,
|
||
TrackElemType::None,
|
||
TrackElemType::None,
|
||
TrackElemType::None,
|
||
TrackElemType::None,
|
||
TrackElemType::None,
|
||
TrackElemType::None,
|
||
TrackElemType::None,
|
||
TrackElemType::None,
|
||
TrackElemType::None,
|
||
TrackElemType::None,
|
||
TrackElemType::None,
|
||
TrackElemType::None,
|
||
TrackElemType::None,
|
||
TrackElemType::None,
|
||
TrackElemType::None,
|
||
TrackElemType::None,
|
||
TrackElemType::None,
|
||
TrackElemType::None,
|
||
TrackElemType::None,
|
||
TrackElemType::None,
|
||
TrackElemType::None,
|
||
TrackElemType::None,
|
||
TrackElemType::None,
|
||
TrackElemType::None,
|
||
TrackElemType::None,
|
||
TrackElemType::None,
|
||
TrackElemType::None,
|
||
TrackElemType::None,
|
||
TrackElemType::None,
|
||
TrackElemType::None,
|
||
TrackElemType::None,
|
||
TrackElemType::None,
|
||
TrackElemType::None,
|
||
TrackElemType::None,
|
||
TrackElemType::None,
|
||
TrackElemType::None,
|
||
TrackElemType::None,
|
||
TrackElemType::None,
|
||
TrackElemType::None,
|
||
TrackElemType::None,
|
||
TrackElemType::None,
|
||
TrackElemType::None,
|
||
TrackElemType::None,
|
||
TrackElemType::None,
|
||
TrackElemType::None,
|
||
TrackElemType::None,
|
||
TrackElemType::None,
|
||
TrackElemType::None,
|
||
TrackElemType::None,
|
||
TrackElemType::None,
|
||
TrackElemType::None,
|
||
TrackElemType::None,
|
||
TrackElemType::None,
|
||
TrackElemType::None,
|
||
TrackElemType::None,
|
||
TrackElemType::None,
|
||
TrackElemType::None,
|
||
TrackElemType::None,
|
||
TrackElemType::None,
|
||
TrackElemType::None,
|
||
TrackElemType::None,
|
||
TrackElemType::None,
|
||
TrackElemType::None,
|
||
TrackElemType::None,
|
||
TrackElemType::None,
|
||
TrackElemType::None,
|
||
TrackElemType::None,
|
||
TrackElemType::None,
|
||
TrackElemType::None,
|
||
TrackElemType::None,
|
||
TrackElemType::None,
|
||
TrackElemType::None,
|
||
TrackElemType::None,
|
||
TrackElemType::None,
|
||
TrackElemType::None,
|
||
TrackElemType::None,
|
||
TrackElemType::None,
|
||
TrackElemType::None,
|
||
TrackElemType::None,
|
||
TrackElemType::None,
|
||
TrackElemType::None,
|
||
TrackElemType::None,
|
||
TrackElemType::None,
|
||
TrackElemType::None,
|
||
TrackElemType::None,
|
||
TrackElemType::None,
|
||
TrackElemType::None,
|
||
TrackElemType::None,
|
||
TrackElemType::None,
|
||
TrackElemType::None,
|
||
TrackElemType::None,
|
||
TrackElemType::None,
|
||
TrackElemType::None,
|
||
TrackElemType::None,
|
||
TrackElemType::None,
|
||
TrackElemType::None,
|
||
TrackElemType::None,
|
||
TrackElemType::None,
|
||
TrackElemType::None,
|
||
TrackElemType::None,
|
||
TrackElemType::None,
|
||
TrackElemType::None,
|
||
TrackElemType::None,
|
||
TrackElemType::None,
|
||
TrackElemType::None,
|
||
TrackElemType::None,
|
||
TrackElemType::None,
|
||
TrackElemType::None,
|
||
TrackElemType::None,
|
||
TrackElemType::None,
|
||
TrackElemType::None,
|
||
TrackElemType::None,
|
||
TrackElemType::None,
|
||
TrackElemType::None,
|
||
TrackElemType::None,
|
||
TrackElemType::None,
|
||
TrackElemType::None,
|
||
TrackElemType::None,
|
||
TrackElemType::None,
|
||
TrackElemType::None,
|
||
TrackElemType::None,
|
||
TrackElemType::None,
|
||
TrackElemType::None,
|
||
TrackElemType::None,
|
||
TrackElemType::None,
|
||
TrackElemType::None,
|
||
TrackElemType::None,
|
||
TrackElemType::None,
|
||
TrackElemType::None,
|
||
TrackElemType::None,
|
||
TrackElemType::None,
|
||
TrackElemType::None,
|
||
TrackElemType::None,
|
||
TrackElemType::None,
|
||
TrackElemType::None,
|
||
TrackElemType::None,
|
||
TrackElemType::None,
|
||
TrackElemType::None,
|
||
TrackElemType::None,
|
||
TrackElemType::None,
|
||
TrackElemType::None,
|
||
TrackElemType::None,
|
||
TrackElemType::None,
|
||
TrackElemType::None,
|
||
TrackElemType::None,
|
||
TrackElemType::None,
|
||
TrackElemType::None,
|
||
TrackElemType::None,
|
||
TrackElemType::None,
|
||
TrackElemType::None,
|
||
TrackElemType::None,
|
||
TrackElemType::None,
|
||
TrackElemType::None,
|
||
TrackElemType::None,
|
||
TrackElemType::None,
|
||
TrackElemType::None,
|
||
TrackElemType::None,
|
||
TrackElemType::None,
|
||
TrackElemType::None, // TrackElemType::FlatTrack1x4A
|
||
TrackElemType::None, // TrackElemType::FlatTrack2x2
|
||
TrackElemType::None, // TrackElemType::FlatTrack4x4
|
||
TrackElemType::None, // TrackElemType::FlatTrack2x4
|
||
TrackElemType::None, // TrackElemType::FlatTrack1x5
|
||
TrackElemType::None, // TrackElemType::FlatTrack1x1A
|
||
TrackElemType::None, // TrackElemType::FlatTrack1x4B
|
||
TrackElemType::None, // TrackElemType::FlatTrack1x1B
|
||
TrackElemType::None, // TrackElemType::FlatTrack1x4C
|
||
TrackElemType::None, // TrackElemType::FlatTrack3x3
|
||
TrackElemType::None, // TrackElemType::LeftLargeCorkscrewUp
|
||
TrackElemType::None, // TrackElemType::RightLargeCorkscrewUp
|
||
TrackElemType::None, // TrackElemType::LeftLargeCorkscrewDown
|
||
TrackElemType::None, // TrackElemType::RightCorkscrewDown
|
||
TrackElemType::None, // TrackElemType::LeftMediumHalfLoopUp
|
||
TrackElemType::None, // TrackElemType::RightMediumHalfLoopUp
|
||
TrackElemType::None, // TrackElemType::LeftMediumHalfLoopDown
|
||
TrackElemType::None, // TrackElemType::RightMediumHalfLoopDown
|
||
TrackElemType::None, // TrackElemType::LeftZeroGRollUp
|
||
TrackElemType::None, // TrackElemType::RightZeroGRollUp
|
||
TrackElemType::None, // TrackElemType::LeftZeroGRollDown
|
||
TrackElemType::None, // TrackElemType::RightZeroGRollDown
|
||
TrackElemType::None, // TrackElemType::LeftLargeZeroGRollUp
|
||
TrackElemType::None, // TrackElemType::RightLargeZeroGRollUp
|
||
TrackElemType::None, // TrackElemType::LeftLargeZeroGRollDown
|
||
TrackElemType::None, // TrackElemType::RightLargeZeroGRollDown
|
||
TrackElemType::None, // LeftFlyerLargeHalfLoopUninvertedUp
|
||
TrackElemType::None, // RightFlyerLargeHalfLoopUninvertedUp
|
||
TrackElemType::None, // LeftFlyerLargeHalfLoopInvertedDown
|
||
TrackElemType::None, // RightFlyerLargeHalfLoopInvertedDown
|
||
TrackElemType::None, // FlyerHalfLoopInvertedUp
|
||
TrackElemType::None, // FlyerHalfLoopUninvertedDown
|
||
TrackElemType::None, // TrackElemType::LeftEighthToDiagUp25
|
||
TrackElemType::None, // TrackElemType::RightEighthToDiagUp25
|
||
TrackElemType::None, // TrackElemType::LeftEighthToDiagDown25
|
||
TrackElemType::None, // TrackElemType::RightEighthToDiagDown25
|
||
TrackElemType::None, // TrackElemType::LeftEighthToOrthogonalUp25
|
||
TrackElemType::None, // TrackElemType::RightEighthToOrthogonalUp25
|
||
TrackElemType::None, // TrackElemType::LeftEighthToOrthogonalDown25
|
||
TrackElemType::None, // TrackElemType::RightEighthToOrthogonalDown25
|
||
TrackElemType::None, // TrackElemType::DiagUp25ToLeftBankedUp25
|
||
TrackElemType::None, // TrackElemType::DiagUp25ToRightBankedUp25
|
||
TrackElemType::None, // TrackElemType::DiagLeftBankedUp25ToUp25
|
||
TrackElemType::None, // TrackElemType::DiagRightBankedUp25ToUp25
|
||
TrackElemType::None, // TrackElemType::DiagDown25ToLeftBankedDown25
|
||
TrackElemType::None, // TrackElemType::DiagDown25ToRightBankedDown25
|
||
TrackElemType::None, // TrackElemType::DiagLeftBankedDown25ToDown25
|
||
TrackElemType::None, // TrackElemType::DiagRightBankedDown25ToDown25
|
||
TrackElemType::None, // TrackElemType::DiagLeftBankedFlatToLeftBankedUp25
|
||
TrackElemType::None, // TrackElemType::DiagRightBankedFlatToRightBankedUp25
|
||
TrackElemType::None, // TrackElemType::DiagLeftBankedUp25ToLeftBankedFlat
|
||
TrackElemType::None, // TrackElemType::DiagRightBankedUp25ToRightBankedFlat
|
||
TrackElemType::None, // TrackElemType::DiagLeftBankedFlatToLeftBankedDown25
|
||
TrackElemType::None, // TrackElemType::DiagRightBankedFlatToRightBankedDown25
|
||
TrackElemType::None, // TrackElemType::DiagLeftBankedDown25ToLeftBankedFlat
|
||
TrackElemType::None, // TrackElemType::DiagRightBankedDown25ToRightBankedFlat
|
||
TrackElemType::None, // TrackElemType::DiagFlatToLeftBankedUp25
|
||
TrackElemType::None, // TrackElemType::DiagFlatToRightBankedUp25
|
||
TrackElemType::None, // TrackElemType::DiagLeftBankedUp25ToFlat
|
||
TrackElemType::None, // TrackElemType::DiagRightBankedUp25ToFlat
|
||
TrackElemType::None, // TrackElemType::DiagFlatToLeftBankedDown25
|
||
TrackElemType::None, // TrackElemType::DiagFlatToRightBankedDown25
|
||
TrackElemType::None, // TrackElemType::DiagLeftBankedDown25ToFlat
|
||
TrackElemType::None, // TrackElemType::DiagRightBankedDown25ToFlat
|
||
TrackElemType::None, // TrackElemType::DiagUp25LeftBanked
|
||
TrackElemType::None, // TrackElemType::DiagUp25RightBanked
|
||
TrackElemType::None, // TrackElemType::DiagDown25LeftBanked
|
||
TrackElemType::None, // TrackElemType::DiagDown25RightBanked
|
||
TrackElemType::None, // TrackElemType::LeftEighthBankToDiagUp25
|
||
TrackElemType::None, // TrackElemType::RightEighthBankToDiagUp25
|
||
TrackElemType::None, // TrackElemType::LeftEighthBankToDiagDown25
|
||
TrackElemType::None, // TrackElemType::RightEighthBankToDiagDown25
|
||
TrackElemType::None, // TrackElemType::LeftEighthBankToOrthogonalUp25
|
||
TrackElemType::None, // TrackElemType::RightEighthBankToOrthogonalUp25
|
||
TrackElemType::None, // TrackElemType::LeftEighthBankToOrthogonalDown25
|
||
TrackElemType::None, // TrackElemType::RightEighthBankToOrthogonalDown25
|
||
};
|
||
static_assert(std::size(AlternativeTrackTypes) == TrackElemType::Count);
|
||
|
||
/** rct2: 0x0099DA34 */
|
||
static constexpr money64 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::Booster
|
||
65536, // TrackElemType::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::LeftLargeHalfLoopDown
|
||
884736, // TrackElemType::RightLargeHalfLoopDown
|
||
221184, // TrackElemType::LeftFlyerTwistUp
|
||
221184, // TrackElemType::RightFlyerTwistUp
|
||
221184, // TrackElemType::LeftFlyerTwistDown
|
||
221184, // TrackElemType::RightFlyerTwistDown
|
||
294912, // TrackElemType::FlyerHalfLoopUninvertedUp
|
||
294912, // TrackElemType::FlyerHalfLoopInvertedDown
|
||
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, // TrackElemType::MultiDimInvertedUp90ToFlatQuarterLoop
|
||
77824, // TrackElemType::RotationControlToggle
|
||
262144, // TrackElemType::FlatTrack1x4A
|
||
262144, // TrackElemType::FlatTrack2x2
|
||
1048576,// TrackElemType::FlatTrack4x4
|
||
524288, // TrackElemType::FlatTrack2x4
|
||
327680, // TrackElemType::FlatTrack1x5
|
||
65536, // TrackElemType::FlatTrack1x1A
|
||
262144, // TrackElemType::FlatTrack1x4B
|
||
65536, // TrackElemType::FlatTrack1x1B
|
||
262144, // TrackElemType::FlatTrack1x4C
|
||
524288, // TrackElemType::FlatTrack3x3
|
||
360448, // TrackElemType::LeftLargeCorkscrewUp
|
||
360448, // TrackElemType::RightLargeCorkscrewUp
|
||
360448, // TrackElemType::LeftLargeCorkscrewDown
|
||
360448, // TrackElemType::RightCorkscrewDown
|
||
589824, // TrackElemType::LeftMediumHalfLoopUp
|
||
589824, // TrackElemType::RightMediumHalfLoopUp
|
||
589824, // TrackElemType::LeftMediumHalfLoopDown
|
||
589824, // TrackElemType::RightMediumHalfLoopDown
|
||
229376, // TrackElemType::LeftZeroGRollUp
|
||
229376, // TrackElemType::RightZeroGRollUp
|
||
229376, // TrackElemType::LeftZeroGRollDown
|
||
229376, // TrackElemType::RightZeroGRollDown
|
||
425984, // TrackElemType::LeftLargeZeroGRollUp
|
||
425984, // TrackElemType::RightLargeZeroGRollUp
|
||
425984, // TrackElemType::LeftLargeZeroGRollDown
|
||
425984, // TrackElemType::RightLargeZeroGRollDown
|
||
884736, // TrackElemType::LeftFlyerLargeHalfLoopUninvertedUp
|
||
884736, // TrackElemType::RightFlyerLargeHalfLoopUninvertedUp
|
||
884736, // TrackElemType::LeftFlyerLargeHalfLoopInvertedDown
|
||
884736, // TrackElemType::RightFlyerLargeHalfLoopInvertedDown
|
||
884736, // TrackElemType::LeftFlyerLargeHalfLoopInvertedUp
|
||
884736, // TrackElemType::RightFlyerLargeHalfLoopInvertedUp
|
||
884736, // TrackElemType::LeftFlyerLargeHalfLoopUninvertedDown
|
||
884736, // TrackElemType::RightFlyerLargeHalfLoopUninvertedDown
|
||
294912, // TrackElemType::FlyerHalfLoopInvertedUp
|
||
294912, // TrackElemType::FlyerHalfLoopUninvertedDown
|
||
294912, // TrackElemType::LeftEighthToDiagUp25
|
||
294912, // TrackElemType::RightEighthToDiagUp25
|
||
294912, // TrackElemType::LeftEighthToDiagDown25
|
||
294912, // TrackElemType::RightEighthToDiagDown25
|
||
294912, // TrackElemType::LeftEighthToOrthogonalUp25
|
||
294912, // TrackElemType::RightEighthToOrthogonalUp25
|
||
294912, // TrackElemType::LeftEighthToOrthogonalDown25
|
||
294912, // TrackElemType::RightEighthToOrthogonalDown25
|
||
294912, // TrackElemType::DiagUp25ToLeftBankedUp25
|
||
294912, // TrackElemType::DiagUp25ToRightBankedUp25
|
||
294912, // TrackElemType::DiagLeftBankedUp25ToUp25
|
||
294912, // TrackElemType::DiagRightBankedUp25ToUp25
|
||
294912, // TrackElemType::DiagDown25ToLeftBankedDown25
|
||
294912, // TrackElemType::DiagDown25ToRightBankedDown25
|
||
294912, // TrackElemType::DiagLeftBankedDown25ToDown25
|
||
294912, // TrackElemType::DiagRightBankedDown25ToDown25
|
||
294912, // TrackElemType::DiagLeftBankedFlatToLeftBankedUp25
|
||
294912, // TrackElemType::DiagRightBankedFlatToRightBankedUp25
|
||
294912, // TrackElemType::DiagLeftBankedUp25ToLeftBankedFlat
|
||
294912, // TrackElemType::DiagRightBankedUp25ToRightBankedFlat
|
||
294912, // TrackElemType::DiagLeftBankedFlatToLeftBankedDown25
|
||
294912, // TrackElemType::DiagRightBankedFlatToRightBankedDown25
|
||
294912, // TrackElemType::DiagLeftBankedDown25ToLeftBankedFlat
|
||
294912, // TrackElemType::DiagRightBankedDown25ToRightBankedFlat
|
||
294912, // TrackElemType::DiagFlatToLeftBankedUp25
|
||
294912, // TrackElemType::DiagFlatToRightBankedUp25
|
||
294912, // TrackElemType::DiagLeftBankedUp25ToFlat
|
||
294912, // TrackElemType::DiagRightBankedUp25ToFlat
|
||
294912, // TrackElemType::DiagFlatToLeftBankedDown25
|
||
294912, // TrackElemType::DiagFlatToRightBankedDown25
|
||
294912, // TrackElemType::DiagLeftBankedDown25ToFlat
|
||
294912, // TrackElemType::DiagRightBankedDown25ToFlat
|
||
294912, // TrackElemType::DiagUp25LeftBanked
|
||
294912, // TrackElemType::DiagUp25RightBanked
|
||
294912, // TrackElemType::DiagDown25LeftBanked
|
||
294912, // TrackElemType::DiagDown25RightBanked
|
||
294912, // TrackElemType::LeftEighthBankToDiagUp25
|
||
294912, // TrackElemType::RightEighthBankToDiagUp25
|
||
294912, // TrackElemType::LeftEighthBankToDiagDown25
|
||
294912, // TrackElemType::RightEighthBankToDiagDown25
|
||
294912, // TrackElemType::LeftEighthBankToOrthogonalUp25
|
||
294912, // TrackElemType::RightEighthBankToOrthogonalUp25
|
||
294912, // TrackElemType::LeftEighthBankToOrthogonalDown25
|
||
294912, // TrackElemType::RightEighthBankToOrthogonalDown25
|
||
};
|
||
static_assert(std::size(TrackPricing) == TrackElemType::Count);
|
||
|
||
/** rct2: 0x0099EA1C */
|
||
static constexpr track_type_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::Booster,
|
||
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::RightLargeHalfLoopDown, // TrackElemType::LeftLargeHalfLoopDown
|
||
TrackElemType::LeftLargeHalfLoopDown, // TrackElemType::RightLargeHalfLoopDown
|
||
TrackElemType::RightFlyerTwistUp, // TrackElemType::LeftFlyerTwistUp
|
||
TrackElemType::LeftFlyerTwistUp, // TrackElemType::RightFlyerTwistUp
|
||
TrackElemType::RightFlyerTwistDown, // TrackElemType::LeftFlyerTwistDown
|
||
TrackElemType::LeftFlyerTwistDown, // TrackElemType::RightFlyerTwistDown
|
||
TrackElemType::FlyerHalfLoopUninvertedUp,
|
||
TrackElemType::FlyerHalfLoopInvertedDown,
|
||
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,
|
||
TrackElemType::MultiDimInvertedUp90ToFlatQuarterLoop,
|
||
TrackElemType::RotationControlToggle,
|
||
TrackElemType::FlatTrack1x4A, // TrackElemType::FlatTrack1x4A
|
||
TrackElemType::FlatTrack2x2, // TrackElemType::FlatTrack2x2
|
||
TrackElemType::FlatTrack4x4, // TrackElemType::FlatTrack4x4
|
||
TrackElemType::FlatTrack2x4, // TrackElemType::FlatTrack2x4
|
||
TrackElemType::FlatTrack1x5, // TrackElemType::FlatTrack1x5
|
||
TrackElemType::FlatTrack1x1A, // TrackElemType::FlatTrack1x1A
|
||
TrackElemType::FlatTrack1x4B, // TrackElemType::FlatTrack1x4B
|
||
TrackElemType::FlatTrack1x1B, // TrackElemType::FlatTrack1x1B
|
||
TrackElemType::FlatTrack1x4C, // TrackElemType::FlatTrack1x4C
|
||
TrackElemType::FlatTrack3x3, // TrackElemType::FlatTrack3x3
|
||
TrackElemType::RightLargeCorkscrewUp, // TrackElemType::LeftLargeCorkscrewUp
|
||
TrackElemType::LeftLargeCorkscrewUp, // TrackElemType::RightLargeCorkscrewUp
|
||
TrackElemType::RightLargeCorkscrewDown, // TrackElemType::LeftLargeCorkscrewDown
|
||
TrackElemType::LeftLargeCorkscrewDown, // TrackElemType::RightLargeCorkscrewDown
|
||
TrackElemType::RightMediumHalfLoopUp, // TrackElemType::LeftMediumHalfLoopUp
|
||
TrackElemType::LeftMediumHalfLoopUp, // TrackElemType::RightMediumHalfLoopUp
|
||
TrackElemType::RightMediumHalfLoopDown, // TrackElemType::LeftMediumHalfLoopDown
|
||
TrackElemType::LeftMediumHalfLoopDown, // TrackElemType::RightMediumHalfLoopDown
|
||
TrackElemType::RightZeroGRollUp, // TrackElemType::LeftZeroGRollUp
|
||
TrackElemType::LeftZeroGRollUp, // TrackElemType::RightZeroGRollUp
|
||
TrackElemType::RightZeroGRollDown, // TrackElemType::LeftZeroGRollDown
|
||
TrackElemType::LeftZeroGRollDown, // TrackElemType::RightZeroGRollDown
|
||
TrackElemType::RightLargeZeroGRollUp, // TrackElemType::LeftLargeZeroGRollUp
|
||
TrackElemType::LeftLargeZeroGRollUp, // TrackElemType::RightLargeZeroGRollUp
|
||
TrackElemType::RightLargeZeroGRollDown, // TrackElemType::LeftLargeZeroGRollDown
|
||
TrackElemType::LeftLargeZeroGRollDown, // TrackElemType::RightLargeZeroGRollDown
|
||
TrackElemType::RightFlyerLargeHalfLoopUninvertedUp, // TrackElemType::LeftFlyerLargeHalfLoopUninvertedUp
|
||
TrackElemType::LeftFlyerLargeHalfLoopUninvertedUp, // TrackElemType::RightFlyerLargeHalfLoopUninvertedUp
|
||
TrackElemType::RightFlyerLargeHalfLoopInvertedDown, // TrackElemType::LeftFlyerLargeHalfLoopInvertedDown
|
||
TrackElemType::LeftFlyerLargeHalfLoopInvertedDown, // TrackElemType::RightFlyerLargeHalfLoopInvertedDown
|
||
TrackElemType::RightFlyerLargeHalfLoopInvertedUp, // TrackElemType::LeftFlyerLargeHalfLoopInvertedUp
|
||
TrackElemType::LeftFlyerLargeHalfLoopInvertedUp, // TrackElemType::RightFlyerLargeHalfLoopInvertedUp
|
||
TrackElemType::RightFlyerLargeHalfLoopUninvertedDown, // TrackElemType::LeftFlyerLargeHalfLoopUninvertedDown
|
||
TrackElemType::LeftFlyerLargeHalfLoopUninvertedDown, // TrackElemType::RightFlyerLargeHalfLoopUninvertedDown
|
||
TrackElemType::FlyerHalfLoopInvertedUp,
|
||
TrackElemType::FlyerHalfLoopUninvertedDown,
|
||
TrackElemType::RightEighthToDiagUp25, // TrackElemType::LeftEighthToDiagUp25
|
||
TrackElemType::LeftEighthToDiagUp25, // TrackElemType::RightEighthToDiagUp25
|
||
TrackElemType::RightEighthToDiagDown25, // TrackElemType::LeftEighthToDiagDown25
|
||
TrackElemType::LeftEighthToDiagDown25, // TrackElemType::RightEighthToDiagDown25
|
||
TrackElemType::RightEighthToOrthogonalUp25, // TrackElemType::LeftEighthToOrthogonalUp25
|
||
TrackElemType::LeftEighthToOrthogonalUp25, // TrackElemType::RightEighthToOrthogonalUp25
|
||
TrackElemType::RightEighthToOrthogonalDown25, // TrackElemType::LeftEighthToOrthogonalDown25
|
||
TrackElemType::LeftEighthToOrthogonalDown25, // TrackElemType::RightEighthToOrthogonalDown25
|
||
TrackElemType::DiagUp25ToRightBankedUp25, // TrackElemType::DiagUp25ToRightBankedUp25
|
||
TrackElemType::DiagUp25ToLeftBankedUp25, // TrackElemType::DiagUp25ToLeftBankedUp25
|
||
TrackElemType::DiagRightBankedUp25ToUp25, // TrackElemType::DiagRightBankedUp25ToUp25
|
||
TrackElemType::DiagLeftBankedUp25ToUp25, // TrackElemType::DiagLeftBankedUp25ToUp25
|
||
TrackElemType::DiagDown25ToRightBankedDown25, // TrackElemType::DiagDown25ToRightBankedDown25
|
||
TrackElemType::DiagDown25ToLeftBankedDown25, // TrackElemType::DiagDown25ToLeftBankedDown25
|
||
TrackElemType::DiagRightBankedDown25ToDown25, // TrackElemType::DiagRightBankedDown25ToDown25
|
||
TrackElemType::DiagLeftBankedDown25ToDown25, // TrackElemType::DiagLeftBankedDown25ToDown25
|
||
TrackElemType::DiagRightBankedFlatToRightBankedUp25, // TrackElemType::DiagRightBankedFlatToRightBankedUp25
|
||
TrackElemType::DiagLeftBankedFlatToLeftBankedUp25, // TrackElemType::DiagLeftBankedFlatToLeftBankedUp25
|
||
TrackElemType::DiagRightBankedUp25ToRightBankedFlat, // TrackElemType::DiagRightBankedUp25ToRightBankedFlat
|
||
TrackElemType::DiagLeftBankedUp25ToLeftBankedFlat, // TrackElemType::DiagLeftBankedUp25ToLeftBankedFlat
|
||
TrackElemType::DiagRightBankedFlatToRightBankedDown25,// TrackElemType::DiagRightBankedFlatToRightBankedDown25
|
||
TrackElemType::DiagLeftBankedFlatToLeftBankedDown25, // TrackElemType::DiagLeftBankedFlatToLeftBankedDown25
|
||
TrackElemType::DiagRightBankedDown25ToRightBankedFlat,// TrackElemType::DiagRightBankedDown25ToRightBankedFlat
|
||
TrackElemType::DiagLeftBankedDown25ToLeftBankedFlat, // TrackElemType::DiagLeftBankedDown25ToLeftBankedFlat
|
||
TrackElemType::DiagFlatToRightBankedUp25, // TrackElemType::DiagFlatToRightBankedUp25
|
||
TrackElemType::DiagFlatToLeftBankedUp25, // TrackElemType::DiagFlatToLeftBankedUp25
|
||
TrackElemType::DiagRightBankedUp25ToFlat, // TrackElemType::DiagRightBankedUp25ToFlat
|
||
TrackElemType::DiagLeftBankedUp25ToFlat, // TrackElemType::DiagLeftBankedUp25ToFlat
|
||
TrackElemType::DiagFlatToRightBankedDown25, // TrackElemType::DiagFlatToRightBankedDown25
|
||
TrackElemType::DiagFlatToLeftBankedDown25, // TrackElemType::DiagFlatToLeftBankedDown25
|
||
TrackElemType::DiagRightBankedDown25ToFlat, // TrackElemType::DiagRightBankedDown25ToFlat
|
||
TrackElemType::DiagLeftBankedDown25ToFlat, // TrackElemType::DiagLeftBankedDown25ToFlat
|
||
TrackElemType::DiagUp25RightBanked, // TrackElemType::DiagUp25RightBanked
|
||
TrackElemType::DiagUp25LeftBanked, // TrackElemType::DiagUp25LeftBanked
|
||
TrackElemType::DiagDown25RightBanked, // TrackElemType::DiagDown25RightBanked
|
||
TrackElemType::DiagDown25LeftBanked, // TrackElemType::DiagDown25LeftBanked
|
||
TrackElemType::RightEighthBankToDiagUp25, // TrackElemType::RightEighthBankToDiagUp25
|
||
TrackElemType::LeftEighthBankToDiagUp25, // TrackElemType::LeftEighthBankToDiagUp25
|
||
TrackElemType::RightEighthBankToDiagDown25, // TrackElemType::RightEighthBankToDiagDown25
|
||
TrackElemType::LeftEighthBankToDiagDown25, // TrackElemType::LeftEighthBankToDiagDown25
|
||
TrackElemType::RightEighthBankToOrthogonalUp25, // TrackElemType::RightEighthBankToOrthogonalUp25
|
||
TrackElemType::LeftEighthBankToOrthogonalUp25, // TrackElemType::LeftEighthBankToOrthogonalUp25
|
||
TrackElemType::RightEighthBankToOrthogonalDown25, // TrackElemType::RightEighthBankToOrthogonalDown25
|
||
TrackElemType::LeftEighthBankToOrthogonalDown25, // TrackElemType::LeftEighthBankToOrthogonalDown25
|
||
};
|
||
static_assert(std::size(TrackElementMirrorMap) == TrackElemType::Count);
|
||
|
||
/** rct2: 0x00999694 */
|
||
static constexpr uint32_t TrackHeightMarkerPositions[] = {
|
||
(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::Booster
|
||
(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), // 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::LeftLargeHalfLoopDown
|
||
(1 << 0) | (1 << 6), // TrackElemType::RightLargeHalfLoopDown
|
||
(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::FlyerHalfLoopUninvertedUp
|
||
(1 << 0) | (1 << 3), // TrackElemType::FlyerHalfLoopInvertedDown
|
||
(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), // TrackElemType::MultiDimInvertedUp90ToFlatQuarterLoop
|
||
(1 << 0), // TrackElemType::RotationControlToggle
|
||
(1 << 0), // TrackElemType::FlatTrack1x4A
|
||
(1 << 0), // TrackElemType::FlatTrack2x2
|
||
(1 << 0), // TrackElemType::FlatTrack4x4
|
||
(1 << 0), // TrackElemType::FlatTrack2x4
|
||
(1 << 0), // TrackElemType::FlatTrack1x5
|
||
(1 << 0), // TrackElemType::FlatTrack1x1A
|
||
(1 << 0), // TrackElemType::FlatTrack1x4B
|
||
(1 << 0), // TrackElemType::FlatTrack1x1B
|
||
(1 << 0), // TrackElemType::FlatTrack1x4C
|
||
(1 << 0), // TrackElemType::FlatTrack3x3
|
||
(1 << 0) | (1 << 5), // TrackElemType::LeftLargeCorkscrewUp
|
||
(1 << 0) | (1 << 5), // TrackElemType::RightLargeCorkscrewUp
|
||
(1 << 0) | (1 << 5), // TrackElemType::LeftLargeCorkscrewDown
|
||
(1 << 0) | (1 << 5), // TrackElemType::RightLargeCorkscrewDown
|
||
(1 << 0) | (1 << 4), // TrackElemType::LeftMediumHalfLoopUp
|
||
(1 << 0) | (1 << 4), // TrackElemType::RightMediumHalfLoopUp
|
||
(1 << 0) | (1 << 4), // TrackElemType::LeftMediumHalfLoopDown
|
||
(1 << 0) | (1 << 4), // TrackElemType::RightMediumHalfLoopDown
|
||
(1 << 0) | (1 << 2), // TrackElemType::LeftZeroGRollUp
|
||
(1 << 0) | (1 << 2), // TrackElemType::RightZeroGRollUp
|
||
(1 << 0) | (1 << 2), // TrackElemType::LeftZeroGRollDown
|
||
(1 << 0) | (1 << 2), // TrackElemType::RightZeroGRollDown
|
||
(1 << 0) | (1 << 3), // TrackElemType::LeftLargeZeroGRollUp
|
||
(1 << 0) | (1 << 3), // TrackElemType::RightLargeZeroGRollUp
|
||
(1 << 0) | (1 << 3), // TrackElemType::LeftLargeZeroGRollDown
|
||
(1 << 0) | (1 << 3), // TrackElemType::RightLargeZeroGRollDown
|
||
(1 << 0) | (1 << 6), // TrackElemType::LeftFlyerLargeHalfLoopUninvertedUp
|
||
(1 << 0) | (1 << 6), // TrackElemType::RightFlyerLargeHalfLoopUninvertedUp
|
||
(1 << 0) | (1 << 6), // TrackElemType::LeftFlyerLargeHalfLoopInvertedDown
|
||
(1 << 0) | (1 << 6), // TrackElemType::RightFlyerLargeHalfLoopInvertedDown
|
||
(1 << 0) | (1 << 6), // TrackElemType::LeftFlyerLargeHalfLoopInvertedUp
|
||
(1 << 0) | (1 << 6), // TrackElemType::RightFlyerLargeHalfLoopInvertedUp
|
||
(1 << 0) | (1 << 6), // TrackElemType::LeftFlyerLargeHalfLoopUninvertedDown
|
||
(1 << 0) | (1 << 6), // TrackElemType::RightFlyerLargeHalfLoopUninvertedDown
|
||
(1 << 0) | (1 << 3), // TrackElemType::FlyerHalfLoopInvertedUp
|
||
(1 << 0) | (1 << 3), // TrackElemType::FlyerHalfLoopUninvertedDown
|
||
(1 << 0), // TrackElemType::LeftEighthToDiagUp25
|
||
(1 << 0), // TrackElemType::RightEighthToDiagUp25
|
||
(1 << 0), // TrackElemType::LeftEighthToDiagDown25
|
||
(1 << 0), // TrackElemType::RightEighthToDiagDown25
|
||
(1 << 0), // TrackElemType::LeftEighthToOrthogonalUp25
|
||
(1 << 0), // TrackElemType::RightEighthToOrthogonalUp25
|
||
(1 << 0), // TrackElemType::LeftEighthToOrthogonalDown25
|
||
(1 << 0), // TrackElemType::RightEighthToOrthogonalDown25
|
||
(1 << 0), // TrackElemType::DiagUp25ToRightBankedUp25
|
||
(1 << 0), // TrackElemType::DiagUp25ToLeftBankedUp25
|
||
(1 << 0), // TrackElemType::DiagRightBankedUp25ToUp25
|
||
(1 << 0), // TrackElemType::DiagLeftBankedUp25ToUp25
|
||
(1 << 0), // TrackElemType::DiagDown25ToRightBankedDown25
|
||
(1 << 0), // TrackElemType::DiagDown25ToLeftBankedDown25
|
||
(1 << 0), // TrackElemType::DiagRightBankedDown25ToDown25
|
||
(1 << 0), // TrackElemType::DiagLeftBankedDown25ToDown25
|
||
(1 << 0), // TrackElemType::DiagRightBankedFlatToRightBankedUp25
|
||
(1 << 0), // TrackElemType::DiagLeftBankedFlatToLeftBankedUp25
|
||
(1 << 0), // TrackElemType::DiagRightBankedUp25ToRightBankedFlat
|
||
(1 << 0), // TrackElemType::DiagLeftBankedUp25ToLeftBankedFlat
|
||
(1 << 0), // TrackElemType::DiagRightBankedFlatToRightBankedDown25
|
||
(1 << 0), // TrackElemType::DiagLeftBankedFlatToLeftBankedDown25
|
||
(1 << 0), // TrackElemType::DiagRightBankedDown25ToRightBankedFlat
|
||
(1 << 0), // TrackElemType::DiagLeftBankedDown25ToLeftBankedFlat
|
||
(1 << 0), // TrackElemType::DiagFlatToRightBankedUp25
|
||
(1 << 0), // TrackElemType::DiagFlatToLeftBankedUp25
|
||
(1 << 0), // TrackElemType::DiagRightBankedUp25ToFlat
|
||
(1 << 0), // TrackElemType::DiagLeftBankedUp25ToFlat
|
||
(1 << 0), // TrackElemType::DiagFlatToRightBankedDown25
|
||
(1 << 0), // TrackElemType::DiagFlatToLeftBankedDown25
|
||
(1 << 0), // TrackElemType::DiagRightBankedDown25ToFlat
|
||
(1 << 0), // TrackElemType::DiagLeftBankedDown25ToFlat
|
||
(1 << 0), // TrackElemType::DiagUp25RightBanked
|
||
(1 << 0), // TrackElemType::DiagUp25LeftBanked
|
||
(1 << 0), // TrackElemType::DiagDown25RightBanked
|
||
(1 << 0), // TrackElemType::DiagDown25LeftBanked
|
||
(1 << 0), // TrackElemType::RightEighthBankToDiagUp25
|
||
(1 << 0), // TrackElemType::LeftEighthBankToDiagUp25
|
||
(1 << 0), // TrackElemType::RightEighthBankToDiagDown25
|
||
(1 << 0), // TrackElemType::LeftEighthBankToDiagDown25
|
||
(1 << 0), // TrackElemType::RightEighthBankToOrthogonalUp25
|
||
(1 << 0), // TrackElemType::LeftEighthBankToOrthogonalUp25
|
||
(1 << 0), // TrackElemType::RightEighthBankToOrthogonalDown25
|
||
(1 << 0), // TrackElemType::LeftEighthBankToOrthogonalDown25
|
||
};
|
||
static_assert(std::size(TrackHeightMarkerPositions) == TrackElemType::Count);
|
||
|
||
/** rct2: 0x00999A94 */
|
||
static constexpr uint8_t TrackSequenceElementAllowedWallEdges[][MaxSequencesPerPiece] = {
|
||
{ 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::Booster
|
||
{ 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::LeftLargeHalfLoopDown
|
||
{ 0b1000, 0b1000, 0b1001, 0b0011, 0b0010, 0b1010, 0b1010, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::RightLargeHalfLoopDown
|
||
{ 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::FlyerHalfLoopUninvertedUp
|
||
{ 0, 0b1011, 0b1010, 0b1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::FlyerHalfLoopInvertedDown
|
||
{ 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 }, // TrackElemType::MultiDimInvertedUp90ToFlatQuarterLoop
|
||
{ 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::FlatTrack1x4A
|
||
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::FlatTrack2x2
|
||
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::FlatTrack4x4
|
||
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::FlatTrack2x4
|
||
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::FlatTrack1x5
|
||
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::FlatTrack1x1A
|
||
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::FlatTrack1x4B
|
||
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::FlatTrack1x1B
|
||
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::FlatTrack1x4C
|
||
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::FlatTrack3x3
|
||
{ 0b1010, 0b0010, 0b0011, 0b1100, 0b0001, 0b0101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::LeftLargeCorkscrewUp
|
||
{ 0b1010, 0b1000, 0b1001, 0b0110, 0b0001, 0b0101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::RightLargeCorkscrewUp
|
||
{ 0b1010, 0b0010, 0b1100, 0b0011, 0b0001, 0b0101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::LeftLargeCorkscrewDown
|
||
{ 0b1010, 0b1000, 0b0110, 0b1001, 0b0001, 0b0101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::RightLargeCorkscrewDown
|
||
{ 0b1010, 0b0010, 0b0011, 0b1001, 0b1000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::LeftMediumHalfLoopUp
|
||
{ 0b1010, 0b1000, 0b1001, 0b0011, 0b0010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::RightMediumHalfLoopUp
|
||
{ 0b0010, 0b0011, 0b1001, 0b1000, 0b1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::LeftMediumHalfLoopDown
|
||
{ 0b1000, 0b1001, 0b0011, 0b0010, 0b1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::RightMediumHalfLoopDown
|
||
{ 0b1010, 0b1010, 0b1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::LeftZeroGRollUp
|
||
{ 0b1010, 0b1010, 0b1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::RightZeroGRollUp
|
||
{ 0b1010, 0b1010, 0b1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::LeftZeroGRollDown
|
||
{ 0b1010, 0b1010, 0b1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::RightZeroGRollDown
|
||
{ 0b1010, 0b1010, 0b1010, 0b1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::LeftLargeZeroGRollUp
|
||
{ 0b1010, 0b1010, 0b1010, 0b1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::RightLargeZeroGRollUp
|
||
{ 0b1010, 0b1010, 0b1010, 0b1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::LeftLargeZeroGRollDown
|
||
{ 0b1010, 0b1010, 0b1010, 0b1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::RightLargeZeroGRollDown
|
||
|
||
{ 0b1010, 0b1010, 0b0010, 0b0011, 0b1001, 0b1000, 0b1000, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::LeftFlyerLargeHalfLoopUninvertedUp
|
||
{ 0b1010, 0b1010, 0b1000, 0b1001, 0b0011, 0b0010, 0b0010, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::RightFlyerLargeHalfLoopUninvertedUp
|
||
{ 0b0010, 0b0010, 0b0011, 0b1001, 0b1000, 0b1010, 0b1010, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::LeftFlyerLargeHalfLoopInvertedDown
|
||
{ 0b1000, 0b1000, 0b1001, 0b0011, 0b0010, 0b1010, 0b1010, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::RightFlyerLargeHalfLoopInvertedDown
|
||
{ 0b1010, 0b1010, 0b0010, 0b0011, 0b1001, 0b1000, 0b1000, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::LeftFlyerLargeHalfLoopInvertedUp
|
||
{ 0b1010, 0b1010, 0b1000, 0b1001, 0b0011, 0b0010, 0b0010, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::RightFlyerLargeHalfLoopInvertedUp
|
||
{ 0b0010, 0b0010, 0b0011, 0b1001, 0b1000, 0b1010, 0b1010, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::LeftFlyerLargeHalfLoopUninvertedDown
|
||
{ 0b1000, 0b1000, 0b1001, 0b0011, 0b0010, 0b1010, 0b1010, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::RightFlyerLargeHalfLoopUninvertedDown
|
||
{ 0b1010, 0b1010, 0b1011, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::FlyerHalfLoopInvertedUp
|
||
{ 0, 0b1011, 0b1010, 0b1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::FlyerHalfLoopUninvertedDown
|
||
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::LeftEighthToDiagUp25
|
||
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::RightEighthToDiagUp25
|
||
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::LeftEighthToDiagDown25
|
||
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::RightEighthToDiagDown25
|
||
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::LeftEighthToOrthogonalUp25
|
||
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::RightEighthToOrthogonalUp25
|
||
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::LeftEighthToOrthogonalDown25
|
||
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::RightEighthToOrthogonalDown25
|
||
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::DiagUp25ToRightBankedUp25
|
||
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::DiagUp25ToLeftBankedUp25
|
||
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::DiagRightBankedUp25ToUp25
|
||
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::DiagLeftBankedUp25ToUp25
|
||
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::DiagDown25ToRightBankedDown25
|
||
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::DiagDown25ToLeftBankedDown25
|
||
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::DiagRightBankedDown25ToDown25
|
||
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::DiagLeftBankedDown25ToDown25
|
||
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::DiagRightBankedFlatToRightBankedUp25
|
||
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::DiagLeftBankedFlatToLeftBankedUp25
|
||
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::DiagRightBankedUp25ToRightBankedFlat
|
||
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::DiagLeftBankedUp25ToLeftBankedFlat
|
||
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::DiagRightBankedFlatToRightBankedDown25
|
||
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::DiagLeftBankedFlatToLeftBankedDown25
|
||
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::DiagRightBankedDown25ToRightBankedFlat
|
||
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::DiagLeftBankedDown25ToLeftBankedFlat
|
||
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::DiagFlatToRightBankedUp25
|
||
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::DiagFlatToLeftBankedUp25
|
||
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::DiagRightBankedUp25ToFlat
|
||
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::DiagLeftBankedUp25ToFlat
|
||
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::DiagFlatToRightBankedDown25
|
||
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::DiagFlatToLeftBankedDown25
|
||
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::DiagRightBankedDown25ToFlat
|
||
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::DiagLeftBankedDown25ToFlat
|
||
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::DiagUp25RightBanked
|
||
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::DiagUp25LeftBanked
|
||
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::DiagDown25RightBanked
|
||
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::DiagDown25LeftBanked
|
||
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::RightEighthBankToDiagUp25
|
||
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::LeftEighthBankToDiagUp25
|
||
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::RightEighthBankToDiagDown25
|
||
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::LeftEighthBankToDiagDown25
|
||
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::RightEighthBankToOrthogonalUp25
|
||
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::LeftEighthBankToOrthogonalUp25
|
||
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::RightEighthBankToOrthogonalDown25
|
||
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::LeftEighthBankToOrthogonalDown25
|
||
};
|
||
static_assert(std::size(TrackSequenceElementAllowedWallEdges) == TrackElemType::Count);
|
||
|
||
/** rct2: 0x0099423C */
|
||
static constexpr 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::Booster */ 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::LeftLargeHalfLoopDown */ TRACK_ELEM_FLAG_DOWN | TRACK_ELEM_FLAG_INVERSION_TO_NORMAL,
|
||
/* TrackElemType::RightLargeHalfLoopDown */ 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::FlyerHalfLoopUninvertedUp */ TRACK_ELEM_FLAG_UP | TRACK_ELEM_FLAG_NORMAL_TO_INVERSION | TRACK_ELEM_FLAG_STARTS_AT_HALF_HEIGHT | TRACK_ELEM_FLAG_INVERSION_TO_NORMAL,
|
||
/* TrackElemType::FlyerHalfLoopInvertedDown */ 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,
|
||
/* TrackElemType::MultiDimInvertedUp90ToFlatQuarterLoop */ TRACK_ELEM_FLAG_UP | TRACK_ELEM_FLAG_NORMAL_TO_INVERSION | TRACK_ELEM_FLAG_INVERSION_TO_NORMAL,
|
||
/* TrackElemType::RotationControlToggle */ 0,
|
||
/* TrackElemType::FlatTrack1x4A */ 0,
|
||
/* TrackElemType::FlatTrack2x2 */ 0,
|
||
/* TrackElemType::FlatTrack4x4 */ 0,
|
||
/* TrackElemType::FlatTrack2x4 */ TRACK_ELEM_FLAG_ONLY_ABOVE_GROUND,
|
||
/* TrackElemType::FlatTrack1x5 */ 0,
|
||
/* TrackElemType::FlatTrack1x1A */ 0,
|
||
/* TrackElemType::FlatTrack1x4B */ 0,
|
||
/* TrackElemType::FlatTrack1x1B */ 0,
|
||
/* TrackElemType::FlatTrack1x4C */ 0,
|
||
/* TrackElemType::FlatTrack3x3 */ 0,
|
||
/* TrackElemType::LeftLargeCorkscrewUp */ TRACK_ELEM_FLAG_UP | TRACK_ELEM_FLAG_NORMAL_TO_INVERSION | TRACK_ELEM_FLAG_INVERSION_TO_NORMAL,
|
||
/* TrackElemType::RightLargeCorkscrewUp */ TRACK_ELEM_FLAG_UP | TRACK_ELEM_FLAG_NORMAL_TO_INVERSION | TRACK_ELEM_FLAG_INVERSION_TO_NORMAL,
|
||
/* TrackElemType::LeftLargeCorkscrewDown */ TRACK_ELEM_FLAG_DOWN | TRACK_ELEM_FLAG_INVERSION_TO_NORMAL,
|
||
/* TrackElemType::RightLargeCorkscrewDown */ TRACK_ELEM_FLAG_DOWN | TRACK_ELEM_FLAG_INVERSION_TO_NORMAL,
|
||
/* TrackElemType::LeftMediumHalfLoopUp */ TRACK_ELEM_FLAG_UP | TRACK_ELEM_FLAG_NORMAL_TO_INVERSION | TRACK_ELEM_FLAG_STARTS_AT_HALF_HEIGHT | TRACK_ELEM_FLAG_INVERSION_TO_NORMAL,
|
||
/* TrackElemType::RightMediumHalfLoopUp */ TRACK_ELEM_FLAG_UP | TRACK_ELEM_FLAG_NORMAL_TO_INVERSION | TRACK_ELEM_FLAG_STARTS_AT_HALF_HEIGHT | TRACK_ELEM_FLAG_INVERSION_TO_NORMAL,
|
||
/* TrackElemType::LeftMediumHalfLoopDown */ TRACK_ELEM_FLAG_DOWN | TRACK_ELEM_FLAG_INVERSION_TO_NORMAL,
|
||
/* TrackElemType::RightMediumHalfLoopDown */ TRACK_ELEM_FLAG_DOWN | TRACK_ELEM_FLAG_INVERSION_TO_NORMAL,
|
||
/* TrackElemType::LeftZeroGRollUp */ TRACK_ELEM_FLAG_UP | TRACK_ELEM_FLAG_NORMAL_TO_INVERSION | TRACK_ELEM_FLAG_STARTS_AT_HALF_HEIGHT | TRACK_ELEM_FLAG_INVERSION_TO_NORMAL,
|
||
/* TrackElemType::RightZeroGRollUp */ TRACK_ELEM_FLAG_UP | TRACK_ELEM_FLAG_NORMAL_TO_INVERSION | TRACK_ELEM_FLAG_STARTS_AT_HALF_HEIGHT | TRACK_ELEM_FLAG_INVERSION_TO_NORMAL,
|
||
/* TrackElemType::LeftZeroGRollDown */ TRACK_ELEM_FLAG_DOWN | TRACK_ELEM_FLAG_INVERSION_TO_NORMAL,
|
||
/* TrackElemType::RightZeroGRollDown */ TRACK_ELEM_FLAG_DOWN | TRACK_ELEM_FLAG_INVERSION_TO_NORMAL,
|
||
/* TrackElemType::LeftLargeZeroGRollUp */ TRACK_ELEM_FLAG_UP | TRACK_ELEM_FLAG_NORMAL_TO_INVERSION | TRACK_ELEM_FLAG_STARTS_AT_HALF_HEIGHT | TRACK_ELEM_FLAG_INVERSION_TO_NORMAL,
|
||
/* TrackElemType::RightLargeZeroGRollUp */ TRACK_ELEM_FLAG_UP | TRACK_ELEM_FLAG_NORMAL_TO_INVERSION | TRACK_ELEM_FLAG_STARTS_AT_HALF_HEIGHT | TRACK_ELEM_FLAG_INVERSION_TO_NORMAL,
|
||
/* TrackElemType::LeftLargeZeroGRollDown */ TRACK_ELEM_FLAG_DOWN | TRACK_ELEM_FLAG_INVERSION_TO_NORMAL,
|
||
/* TrackElemType::RightLargeZeroGRollDown */ TRACK_ELEM_FLAG_DOWN | TRACK_ELEM_FLAG_INVERSION_TO_NORMAL,
|
||
/* TrackElemType::LeftFlyerLargeHalfLoopUninvertedUp */ TRACK_ELEM_FLAG_UP | TRACK_ELEM_FLAG_NORMAL_TO_INVERSION | TRACK_ELEM_FLAG_STARTS_AT_HALF_HEIGHT,
|
||
/* TrackElemType::RightFlyerLargeHalfLoopUninvertedUp */ TRACK_ELEM_FLAG_UP | TRACK_ELEM_FLAG_NORMAL_TO_INVERSION | TRACK_ELEM_FLAG_STARTS_AT_HALF_HEIGHT,
|
||
/* TrackElemType::LeftFlyerLargeHalfLoopInvertedDown */ TRACK_ELEM_FLAG_DOWN | TRACK_ELEM_FLAG_INVERSION_TO_NORMAL,
|
||
/* TrackElemType::RightFlyerLargeHalfLoopInvertedDown */ TRACK_ELEM_FLAG_DOWN | TRACK_ELEM_FLAG_INVERSION_TO_NORMAL,
|
||
/* TrackElemType::LeftFlyerLargeHalfLoopInvertedUp */ TRACK_ELEM_FLAG_UP | TRACK_ELEM_FLAG_INVERSION_TO_NORMAL | TRACK_ELEM_FLAG_STARTS_AT_HALF_HEIGHT,
|
||
/* TrackElemType::RightFlyerLargeHalfLoopInvertedUp */ TRACK_ELEM_FLAG_UP | TRACK_ELEM_FLAG_INVERSION_TO_NORMAL | TRACK_ELEM_FLAG_STARTS_AT_HALF_HEIGHT,
|
||
/* TrackElemType::LeftFlyerLargeHalfLoopUninvertedDown */ TRACK_ELEM_FLAG_DOWN | TRACK_ELEM_FLAG_NORMAL_TO_INVERSION,
|
||
/* TrackElemType::RightFlyerLargeHalfLoopUninvertedDown */ TRACK_ELEM_FLAG_DOWN | TRACK_ELEM_FLAG_NORMAL_TO_INVERSION,
|
||
/* TrackElemType::FlyerHalfLoopInvertedUp */ TRACK_ELEM_FLAG_UP | TRACK_ELEM_FLAG_INVERSION_TO_NORMAL | TRACK_ELEM_FLAG_STARTS_AT_HALF_HEIGHT,
|
||
/* TrackElemType::FlyerHalfLoopUnivertedDown */ TRACK_ELEM_FLAG_DOWN | TRACK_ELEM_FLAG_NORMAL_TO_INVERSION,
|
||
/* TrackElemType::LeftEighthToDiagUp25 */ 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::RightEighthToDiagUp25 */ 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::LeftEighthToDiagDown25 */ 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::RightEighthToDiagDown25 */ 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::LeftEighthToOrthogonalUp25 */ 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::RightEighthToOrthogonalUp25 */ 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::LeftEighthToOrthogonalDown25 */ 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::RightEighthToOrthogonalDown25 */ 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::DiagUp25ToLeftBankedUp25 */ TRACK_ELEM_FLAG_UP | TRACK_ELEM_FLAG_BANKED | TRACK_ELEM_FLAG_STARTS_AT_HALF_HEIGHT,
|
||
/* TrackElemType::DiagUp25ToRightBankedUp25 */ TRACK_ELEM_FLAG_UP | TRACK_ELEM_FLAG_BANKED | TRACK_ELEM_FLAG_STARTS_AT_HALF_HEIGHT,
|
||
/* TrackElemType::DiagLeftBankedUp25ToUp25 */ TRACK_ELEM_FLAG_UP | TRACK_ELEM_FLAG_BANKED | TRACK_ELEM_FLAG_STARTS_AT_HALF_HEIGHT,
|
||
/* TrackElemType::DiagRightBankedUp25ToUp25 */ TRACK_ELEM_FLAG_UP | TRACK_ELEM_FLAG_BANKED | TRACK_ELEM_FLAG_STARTS_AT_HALF_HEIGHT,
|
||
/* TrackElemType::DiagDown25ToLeftBankedDown25 */ TRACK_ELEM_FLAG_DOWN | TRACK_ELEM_FLAG_BANKED | TRACK_ELEM_FLAG_STARTS_AT_HALF_HEIGHT,
|
||
/* TrackElemType::DiagDown25ToRightBankedDown25 */ TRACK_ELEM_FLAG_DOWN | TRACK_ELEM_FLAG_BANKED | TRACK_ELEM_FLAG_STARTS_AT_HALF_HEIGHT,
|
||
/* TrackElemType::DiagLeftBankedDown25ToDown25 */ TRACK_ELEM_FLAG_DOWN | TRACK_ELEM_FLAG_BANKED | TRACK_ELEM_FLAG_STARTS_AT_HALF_HEIGHT,
|
||
/* TrackElemType::DiagRightBankedDown25ToDown25 */ TRACK_ELEM_FLAG_DOWN | TRACK_ELEM_FLAG_BANKED | TRACK_ELEM_FLAG_STARTS_AT_HALF_HEIGHT,
|
||
/* TrackElemType::DiagLeftBankedFlatToLeftBankedUp25 */ TRACK_ELEM_FLAG_UP | TRACK_ELEM_FLAG_BANKED,
|
||
/* TrackElemType::DiagRightBankedFlatToRightBankedUp25 */ TRACK_ELEM_FLAG_UP | TRACK_ELEM_FLAG_BANKED,
|
||
/* TrackElemType::DiagLeftBankedUp25ToLeftBankedFlat */ TRACK_ELEM_FLAG_UP | TRACK_ELEM_FLAG_BANKED | TRACK_ELEM_FLAG_STARTS_AT_HALF_HEIGHT,
|
||
/* TrackElemType::DiagRightBankedUp25ToRightBankedFlat */ TRACK_ELEM_FLAG_UP | TRACK_ELEM_FLAG_BANKED | TRACK_ELEM_FLAG_STARTS_AT_HALF_HEIGHT,
|
||
/* TrackElemType::DiagLeftBankedFlatToLeftBankedDown25 */ TRACK_ELEM_FLAG_DOWN | TRACK_ELEM_FLAG_BANKED | TRACK_ELEM_FLAG_STARTS_AT_HALF_HEIGHT,
|
||
/* TrackElemType::DiagRightBankedFlatToRightBankedDown25 */ TRACK_ELEM_FLAG_DOWN | TRACK_ELEM_FLAG_BANKED | TRACK_ELEM_FLAG_STARTS_AT_HALF_HEIGHT,
|
||
/* TrackElemType::DiagLeftBankedDown25ToLeftBankedFlat */ TRACK_ELEM_FLAG_DOWN | TRACK_ELEM_FLAG_BANKED,
|
||
/* TrackElemType::DiagRightBankedDown25ToRightBankedFlat */ TRACK_ELEM_FLAG_DOWN | TRACK_ELEM_FLAG_BANKED,
|
||
/* TrackElemType::DiagFlatToLeftBankedUp25 */ TRACK_ELEM_FLAG_UP | TRACK_ELEM_FLAG_BANKED,
|
||
/* TrackElemType::DiagFlatToRightBankedUp25 */ TRACK_ELEM_FLAG_UP | TRACK_ELEM_FLAG_BANKED,
|
||
/* TrackElemType::DiagLeftBankedUp25ToFlat */ TRACK_ELEM_FLAG_UP | TRACK_ELEM_FLAG_BANKED | TRACK_ELEM_FLAG_STARTS_AT_HALF_HEIGHT,
|
||
/* TrackElemType::DiagRightBankedUp25ToFlat */ TRACK_ELEM_FLAG_UP | TRACK_ELEM_FLAG_BANKED | TRACK_ELEM_FLAG_STARTS_AT_HALF_HEIGHT,
|
||
/* TrackElemType::DiagFlatToLeftBankedDown25 */ TRACK_ELEM_FLAG_DOWN | TRACK_ELEM_FLAG_BANKED | TRACK_ELEM_FLAG_STARTS_AT_HALF_HEIGHT,
|
||
/* TrackElemType::DiagFlatToRightBankedDown25 */ TRACK_ELEM_FLAG_DOWN | TRACK_ELEM_FLAG_BANKED | TRACK_ELEM_FLAG_STARTS_AT_HALF_HEIGHT,
|
||
/* TrackElemType::DiagLeftBankedDown25ToFlat */ TRACK_ELEM_FLAG_DOWN | TRACK_ELEM_FLAG_BANKED,
|
||
/* TrackElemType::DiagRightBankedDown25ToFlat */ TRACK_ELEM_FLAG_DOWN | TRACK_ELEM_FLAG_BANKED,
|
||
/* TrackElemType::Up25LeftBanked */ TRACK_ELEM_FLAG_UP | TRACK_ELEM_FLAG_BANKED | TRACK_ELEM_FLAG_STARTS_AT_HALF_HEIGHT,
|
||
/* TrackElemType::Up25RightBanked */ TRACK_ELEM_FLAG_UP | TRACK_ELEM_FLAG_BANKED | TRACK_ELEM_FLAG_STARTS_AT_HALF_HEIGHT,
|
||
/* TrackElemType::Down25LeftBanked */ TRACK_ELEM_FLAG_DOWN | TRACK_ELEM_FLAG_BANKED | TRACK_ELEM_FLAG_STARTS_AT_HALF_HEIGHT,
|
||
/* TrackElemType::Down25RightBanked */ TRACK_ELEM_FLAG_DOWN | TRACK_ELEM_FLAG_BANKED | TRACK_ELEM_FLAG_STARTS_AT_HALF_HEIGHT,
|
||
/* TrackElemType::LeftEighthBankToDiagUp25 */ 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::RightEighthBankToDiagUp25 */ 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::LeftEighthBankToDiagDown25 */ 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::RightEighthBankToDiagDown25 */ 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::LeftEighthBankToOrthogonalUp25 */ 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::RightEighthBankToOrthogonalUp25 */ 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::LeftEighthBankToOrthogonalDown25 */ 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::RightEighthBankToOrthogonalDown25 */ 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,
|
||
};
|
||
static_assert(std::size(TrackFlags) == TrackElemType::Count);
|
||
// clang-format on
|
||
|
||
/** rct2: 0x00997C9D */
|
||
// clang-format off
|
||
static constexpr TrackDefinition TrackDefinitions[] =
|
||
{
|
||
// TYPE VANGLE END VANGLE START BANK END BANK START PREVIEW Z OFFSET
|
||
{ TRACK_FLAT, TRACK_SLOPE_NONE, TRACK_SLOPE_NONE, TRACK_BANK_NONE, TRACK_BANK_NONE, 0 }, // ELEM_FLAT
|
||
{ TRACK_STATION_END, TRACK_SLOPE_NONE, TRACK_SLOPE_NONE, TRACK_BANK_NONE, TRACK_BANK_NONE, 0 }, // ELEM_END_STATION
|
||
{ TRACK_FLAT, TRACK_SLOPE_NONE, TRACK_SLOPE_NONE, TRACK_BANK_NONE, TRACK_BANK_NONE, 0 }, // ELEM_BEGIN_STATION
|
||
{ TRACK_FLAT, TRACK_SLOPE_NONE, TRACK_SLOPE_NONE, TRACK_BANK_NONE, TRACK_BANK_NONE, 0 }, // ELEM_MIDDLE_STATION
|
||
{ TRACK_FLAT, TRACK_SLOPE_UP_25, TRACK_SLOPE_UP_25, TRACK_BANK_NONE, TRACK_BANK_NONE, 0 }, // ELEM_25_DEG_UP
|
||
{ TRACK_FLAT, TRACK_SLOPE_UP_60, TRACK_SLOPE_UP_60, TRACK_BANK_NONE, TRACK_BANK_NONE, 0 }, // ELEM_60_DEG_UP
|
||
{ TRACK_FLAT, TRACK_SLOPE_UP_25, TRACK_SLOPE_NONE, TRACK_BANK_NONE, TRACK_BANK_NONE, 0 }, // ELEM_FLAT_TO_25_DEG_UP
|
||
{ TRACK_FLAT, TRACK_SLOPE_UP_60, TRACK_SLOPE_UP_25, TRACK_BANK_NONE, TRACK_BANK_NONE, 0 }, // ELEM_25_DEG_UP_TO_60_DEG_UP
|
||
{ TRACK_FLAT, TRACK_SLOPE_UP_25, TRACK_SLOPE_UP_60, TRACK_BANK_NONE, TRACK_BANK_NONE, 0 }, // ELEM_60_DEG_UP_TO_25_DEG_UP
|
||
{ TRACK_FLAT, TRACK_SLOPE_NONE, TRACK_SLOPE_UP_25, TRACK_BANK_NONE, TRACK_BANK_NONE, 0 }, // ELEM_25_DEG_UP_TO_FLAT
|
||
{ TRACK_FLAT, TRACK_SLOPE_DOWN_25, TRACK_SLOPE_DOWN_25, TRACK_BANK_NONE, TRACK_BANK_NONE, 0 }, // ELEM_25_DEG_DOWN
|
||
{ TRACK_FLAT, TRACK_SLOPE_DOWN_60, TRACK_SLOPE_DOWN_60, TRACK_BANK_NONE, TRACK_BANK_NONE, 0 }, // ELEM_60_DEG_DOWN
|
||
{ TRACK_FLAT, TRACK_SLOPE_DOWN_25, TRACK_SLOPE_NONE, TRACK_BANK_NONE, TRACK_BANK_NONE, 0 }, // ELEM_FLAT_TO_25_DEG_DOWN
|
||
{ TRACK_FLAT, TRACK_SLOPE_DOWN_60, TRACK_SLOPE_DOWN_25, TRACK_BANK_NONE, TRACK_BANK_NONE, 0 }, // ELEM_25_DEG_DOWN_TO_60_DEG_DOWN
|
||
{ TRACK_FLAT, TRACK_SLOPE_DOWN_25, TRACK_SLOPE_DOWN_60, TRACK_BANK_NONE, TRACK_BANK_NONE, 0 }, // ELEM_60_DEG_DOWN_TO_25_DEG_DOWN
|
||
{ TRACK_FLAT, TRACK_SLOPE_NONE, TRACK_SLOPE_DOWN_25, TRACK_BANK_NONE, TRACK_BANK_NONE, 0 }, // ELEM_25_DEG_DOWN_TO_FLAT
|
||
{ TRACK_FLAT, TRACK_SLOPE_NONE, TRACK_SLOPE_NONE, TRACK_BANK_NONE, TRACK_BANK_NONE, 0 }, // ELEM_LEFT_QUARTER_TURN_5_TILES
|
||
{ TRACK_FLAT, TRACK_SLOPE_NONE, TRACK_SLOPE_NONE, TRACK_BANK_NONE, TRACK_BANK_NONE, 0 }, // ELEM_RIGHT_QUARTER_TURN_5_TILES
|
||
{ TRACK_FLAT, TRACK_SLOPE_NONE, TRACK_SLOPE_NONE, TRACK_BANK_LEFT, TRACK_BANK_NONE, 0 }, // ELEM_FLAT_TO_LEFT_BANK
|
||
{ TRACK_FLAT, TRACK_SLOPE_NONE, TRACK_SLOPE_NONE, TRACK_BANK_RIGHT, TRACK_BANK_NONE, 0 }, // ELEM_FLAT_TO_RIGHT_BANK
|
||
{ TRACK_FLAT, TRACK_SLOPE_NONE, TRACK_SLOPE_NONE, TRACK_BANK_NONE, TRACK_BANK_LEFT, 0 }, // ELEM_LEFT_BANK_TO_FLAT
|
||
{ TRACK_FLAT, TRACK_SLOPE_NONE, TRACK_SLOPE_NONE, TRACK_BANK_NONE, TRACK_BANK_RIGHT, 0 }, // ELEM_RIGHT_BANK_TO_FLAT
|
||
{ TRACK_FLAT, TRACK_SLOPE_NONE, TRACK_SLOPE_NONE, TRACK_BANK_LEFT, TRACK_BANK_LEFT, 0 }, // ELEM_BANKED_LEFT_QUARTER_TURN_5_TILES
|
||
{ TRACK_FLAT, TRACK_SLOPE_NONE, TRACK_SLOPE_NONE, TRACK_BANK_RIGHT, TRACK_BANK_RIGHT, 0 }, // ELEM_BANKED_RIGHT_QUARTER_TURN_5_TILES
|
||
{ TRACK_FLAT, TRACK_SLOPE_UP_25, TRACK_SLOPE_NONE, TRACK_BANK_NONE, TRACK_BANK_LEFT, 0 }, // ELEM_LEFT_BANK_TO_25_DEG_UP
|
||
{ TRACK_FLAT, TRACK_SLOPE_UP_25, TRACK_SLOPE_NONE, TRACK_BANK_NONE, TRACK_BANK_RIGHT, 0 }, // ELEM_RIGHT_BANK_TO_25_DEG_UP
|
||
{ TRACK_FLAT, TRACK_SLOPE_NONE, TRACK_SLOPE_UP_25, TRACK_BANK_LEFT, TRACK_BANK_NONE, 0 }, // ELEM_25_DEG_UP_TO_LEFT_BANK
|
||
{ TRACK_FLAT, TRACK_SLOPE_NONE, TRACK_SLOPE_UP_25, TRACK_BANK_RIGHT, TRACK_BANK_NONE, 0 }, // ELEM_25_DEG_UP_TO_RIGHT_BANK
|
||
{ TRACK_FLAT, TRACK_SLOPE_DOWN_25, TRACK_SLOPE_NONE, TRACK_BANK_NONE, TRACK_BANK_LEFT, 0 }, // ELEM_LEFT_BANK_TO_25_DEG_DOWN
|
||
{ TRACK_FLAT, TRACK_SLOPE_DOWN_25, TRACK_SLOPE_NONE, TRACK_BANK_NONE, TRACK_BANK_RIGHT, 0 }, // ELEM_RIGHT_BANK_TO_25_DEG_DOWN
|
||
{ TRACK_FLAT, TRACK_SLOPE_NONE, TRACK_SLOPE_DOWN_25, TRACK_BANK_LEFT, TRACK_BANK_NONE, 0 }, // ELEM_25_DEG_DOWN_TO_LEFT_BANK
|
||
{ TRACK_FLAT, TRACK_SLOPE_NONE, TRACK_SLOPE_DOWN_25, TRACK_BANK_RIGHT, TRACK_BANK_NONE, 0 }, // ELEM_25_DEG_DOWN_TO_RIGHT_BANK
|
||
{ TRACK_FLAT, TRACK_SLOPE_NONE, TRACK_SLOPE_NONE, TRACK_BANK_LEFT, TRACK_BANK_LEFT, 0 }, // ELEM_LEFT_BANK
|
||
{ TRACK_FLAT, TRACK_SLOPE_NONE, TRACK_SLOPE_NONE, TRACK_BANK_RIGHT, TRACK_BANK_RIGHT, 0 }, // ELEM_RIGHT_BANK
|
||
{ TRACK_FLAT, TRACK_SLOPE_UP_25, TRACK_SLOPE_UP_25, TRACK_BANK_NONE, TRACK_BANK_NONE, 0 }, // ELEM_LEFT_QUARTER_TURN_5_TILES_25_DEG_UP
|
||
{ TRACK_FLAT, TRACK_SLOPE_UP_25, TRACK_SLOPE_UP_25, TRACK_BANK_NONE, TRACK_BANK_NONE, 0 }, // ELEM_RIGHT_QUARTER_TURN_5_TILES_25_DEG_UP
|
||
{ TRACK_FLAT, TRACK_SLOPE_DOWN_25, TRACK_SLOPE_DOWN_25, TRACK_BANK_NONE, TRACK_BANK_NONE, 0 }, // ELEM_LEFT_QUARTER_TURN_5_TILES_25_DEG_DOWN
|
||
{ TRACK_FLAT, TRACK_SLOPE_DOWN_25, TRACK_SLOPE_DOWN_25, TRACK_BANK_NONE, TRACK_BANK_NONE, 0 }, // ELEM_RIGHT_QUARTER_TURN_5_TILES_25_DEG_DOWN
|
||
{ TRACK_S_BEND, TRACK_SLOPE_NONE, TRACK_SLOPE_NONE, TRACK_BANK_NONE, TRACK_BANK_NONE, 0 }, // ELEM_S_BEND_LEFT
|
||
{ TRACK_S_BEND, TRACK_SLOPE_NONE, TRACK_SLOPE_NONE, TRACK_BANK_NONE, TRACK_BANK_NONE, 0 }, // ELEM_S_BEND_RIGHT
|
||
{ TRACK_VERTICAL_LOOP, TRACK_SLOPE_DOWN_25, TRACK_SLOPE_UP_25, TRACK_BANK_NONE, TRACK_BANK_NONE, -48 }, // ELEM_LEFT_VERTICAL_LOOP
|
||
{ TRACK_VERTICAL_LOOP, TRACK_SLOPE_DOWN_25, TRACK_SLOPE_UP_25, TRACK_BANK_NONE, TRACK_BANK_NONE, -48 }, // ELEM_RIGHT_VERTICAL_LOOP
|
||
{ TRACK_FLAT, TRACK_SLOPE_NONE, TRACK_SLOPE_NONE, TRACK_BANK_NONE, TRACK_BANK_NONE, 0 }, // ELEM_LEFT_QUARTER_TURN_3_TILES
|
||
{ TRACK_FLAT, TRACK_SLOPE_NONE, TRACK_SLOPE_NONE, TRACK_BANK_NONE, TRACK_BANK_NONE, 0 }, // ELEM_RIGHT_QUARTER_TURN_3_TILES
|
||
{ TRACK_FLAT, TRACK_SLOPE_NONE, TRACK_SLOPE_NONE, TRACK_BANK_LEFT, TRACK_BANK_LEFT, 0 }, // ELEM_LEFT_QUARTER_TURN_3_TILES_BANK
|
||
{ TRACK_FLAT, TRACK_SLOPE_NONE, TRACK_SLOPE_NONE, TRACK_BANK_RIGHT, TRACK_BANK_RIGHT, 0 }, // ELEM_RIGHT_QUARTER_TURN_3_TILES_BANK
|
||
{ TRACK_FLAT, TRACK_SLOPE_UP_25, TRACK_SLOPE_UP_25, TRACK_BANK_NONE, TRACK_BANK_NONE, 0 }, // ELEM_LEFT_QUARTER_TURN_3_TILES_25_DEG_UP
|
||
{ TRACK_FLAT, TRACK_SLOPE_UP_25, TRACK_SLOPE_UP_25, TRACK_BANK_NONE, TRACK_BANK_NONE, 0 }, // ELEM_RIGHT_QUARTER_TURN_3_TILES_25_DEG_UP
|
||
{ TRACK_FLAT, TRACK_SLOPE_DOWN_25, TRACK_SLOPE_DOWN_25, TRACK_BANK_NONE, TRACK_BANK_NONE, 0 }, // ELEM_LEFT_QUARTER_TURN_3_TILES_25_DEG_DOWN
|
||
{ TRACK_FLAT, TRACK_SLOPE_DOWN_25, TRACK_SLOPE_DOWN_25, TRACK_BANK_NONE, TRACK_BANK_NONE, 0 }, // ELEM_RIGHT_QUARTER_TURN_3_TILES_25_DEG_DOWN
|
||
{ TRACK_FLAT, TRACK_SLOPE_NONE, TRACK_SLOPE_NONE, TRACK_BANK_NONE, TRACK_BANK_NONE, 0 }, // ELEM_LEFT_QUARTER_TURN_1_TILE
|
||
{ TRACK_FLAT, TRACK_SLOPE_NONE, TRACK_SLOPE_NONE, TRACK_BANK_NONE, TRACK_BANK_NONE, 0 }, // ELEM_RIGHT_QUARTER_TURN_1_TILE
|
||
{ TRACK_TWIST, TRACK_SLOPE_NONE, TRACK_SLOPE_NONE, TRACK_BANK_UPSIDE_DOWN, TRACK_BANK_NONE, 0 }, // ELEM_LEFT_TWIST_DOWN_TO_UP
|
||
{ TRACK_TWIST, TRACK_SLOPE_NONE, TRACK_SLOPE_NONE, TRACK_BANK_UPSIDE_DOWN, TRACK_BANK_NONE, 0 }, // ELEM_RIGHT_TWIST_DOWN_TO_UP
|
||
{ TRACK_TWIST, TRACK_SLOPE_NONE, TRACK_SLOPE_NONE, TRACK_BANK_NONE, TRACK_BANK_UPSIDE_DOWN, 0 }, // ELEM_LEFT_TWIST_UP_TO_DOWN
|
||
{ TRACK_TWIST, TRACK_SLOPE_NONE, TRACK_SLOPE_NONE, TRACK_BANK_NONE, TRACK_BANK_UPSIDE_DOWN, 0 }, // ELEM_RIGHT_TWIST_UP_TO_DOWN
|
||
{ TRACK_HALF_LOOP, TRACK_SLOPE_NONE, TRACK_SLOPE_UP_25, TRACK_BANK_UPSIDE_DOWN, TRACK_BANK_NONE, 64 }, // ELEM_HALF_LOOP_UP
|
||
{ TRACK_HALF_LOOP, TRACK_SLOPE_DOWN_25, TRACK_SLOPE_NONE, TRACK_BANK_NONE, TRACK_BANK_UPSIDE_DOWN, -64 }, // ELEM_HALF_LOOP_DOWN
|
||
{ TRACK_CORKSCREW, TRACK_SLOPE_NONE, TRACK_SLOPE_NONE, TRACK_BANK_UPSIDE_DOWN, TRACK_BANK_NONE, 0 }, // ELEM_LEFT_CORKSCREW_UP
|
||
{ TRACK_CORKSCREW, TRACK_SLOPE_NONE, TRACK_SLOPE_NONE, TRACK_BANK_UPSIDE_DOWN, TRACK_BANK_NONE, 0 }, // ELEM_RIGHT_CORKSCREW_UP
|
||
{ TRACK_CORKSCREW, TRACK_SLOPE_NONE, TRACK_SLOPE_NONE, TRACK_BANK_NONE, TRACK_BANK_UPSIDE_DOWN, -32 }, // ELEM_LEFT_CORKSCREW_DOWN
|
||
{ TRACK_CORKSCREW, TRACK_SLOPE_NONE, TRACK_SLOPE_NONE, TRACK_BANK_NONE, TRACK_BANK_UPSIDE_DOWN, -32 }, // ELEM_RIGHT_CORKSCREW_DOWN
|
||
{ TRACK_FLAT, TRACK_SLOPE_UP_60, TRACK_SLOPE_NONE, TRACK_BANK_NONE, TRACK_BANK_NONE, 0 }, // ELEM_FLAT_TO_60_DEG_UP
|
||
{ TRACK_FLAT, TRACK_SLOPE_NONE, TRACK_SLOPE_UP_60, TRACK_BANK_NONE, TRACK_BANK_NONE, 0 }, // ELEM_60_DEG_UP_TO_FLAT
|
||
{ TRACK_FLAT, TRACK_SLOPE_DOWN_60, TRACK_SLOPE_NONE, TRACK_BANK_NONE, TRACK_BANK_NONE, 0 }, // ELEM_FLAT_TO_60_DEG_DOWN
|
||
{ TRACK_FLAT, TRACK_SLOPE_NONE, TRACK_SLOPE_DOWN_60, TRACK_BANK_NONE, TRACK_BANK_NONE, 0 }, // ELEM_60_DEG_DOWN_TO_FLAT
|
||
{ TRACK_TOWER_BASE, TRACK_VANGLE_TOWER, TRACK_VANGLE_TOWER, TRACK_BANK_NONE, TRACK_BANK_NONE, 0 }, // ELEM_TOWER_BASE
|
||
{ TRACK_TOWER_BASE, TRACK_VANGLE_TOWER, TRACK_VANGLE_TOWER, TRACK_BANK_NONE, TRACK_BANK_NONE, 0 }, // ELEM_TOWER_SECTION
|
||
{ TRACK_FLAT, TRACK_SLOPE_NONE, TRACK_SLOPE_NONE, TRACK_BANK_NONE, TRACK_BANK_NONE, 0 }, // ELEM_FLAT_COVERED
|
||
{ TRACK_FLAT, TRACK_SLOPE_UP_25, TRACK_SLOPE_UP_25, TRACK_BANK_NONE, TRACK_BANK_NONE, 0 }, // ELEM_25_DEG_UP_COVERED
|
||
{ TRACK_FLAT, TRACK_SLOPE_UP_60, TRACK_SLOPE_UP_60, TRACK_BANK_NONE, TRACK_BANK_NONE, 0 }, // ELEM_60_DEG_UP_COVERED
|
||
{ TRACK_FLAT, TRACK_SLOPE_UP_25, TRACK_SLOPE_NONE, TRACK_BANK_NONE, TRACK_BANK_NONE, 0 }, // ELEM_FLAT_TO_25_DEG_UP_COVERED
|
||
{ TRACK_FLAT, TRACK_SLOPE_UP_60, TRACK_SLOPE_UP_25, TRACK_BANK_NONE, TRACK_BANK_NONE, 0 }, // ELEM_25_DEG_UP_TO_60_DEG_UP_COVERED
|
||
{ TRACK_FLAT, TRACK_SLOPE_UP_25, TRACK_SLOPE_UP_60, TRACK_BANK_NONE, TRACK_BANK_NONE, 0 }, // ELEM_60_DEG_UP_TO_25_DEG_UP_COVERED
|
||
{ TRACK_FLAT, TRACK_SLOPE_NONE, TRACK_SLOPE_UP_25, TRACK_BANK_NONE, TRACK_BANK_NONE, 0 }, // ELEM_25_DEG_UP_TO_FLAT_COVERED
|
||
{ TRACK_FLAT, TRACK_SLOPE_DOWN_25, TRACK_SLOPE_DOWN_25, TRACK_BANK_NONE, TRACK_BANK_NONE, 0 }, // ELEM_25_DEG_DOWN_COVERED
|
||
{ TRACK_FLAT, TRACK_SLOPE_DOWN_60, TRACK_SLOPE_DOWN_60, TRACK_BANK_NONE, TRACK_BANK_NONE, 0 }, // ELEM_60_DEG_DOWN_COVERED
|
||
{ TRACK_FLAT, TRACK_SLOPE_DOWN_25, TRACK_SLOPE_NONE, TRACK_BANK_NONE, TRACK_BANK_NONE, 0 }, // ELEM_FLAT_TO_25_DEG_DOWN_COVERED
|
||
{ TRACK_FLAT, TRACK_SLOPE_DOWN_60, TRACK_SLOPE_DOWN_25, TRACK_BANK_NONE, TRACK_BANK_NONE, 0 }, // ELEM_25_DEG_DOWN_TO_60_DEG_DOWN_COVERED
|
||
{ TRACK_FLAT, TRACK_SLOPE_DOWN_25, TRACK_SLOPE_DOWN_60, TRACK_BANK_NONE, TRACK_BANK_NONE, 0 }, // ELEM_60_DEG_DOWN_TO_25_DEG_DOWN_COVERED
|
||
{ TRACK_FLAT, TRACK_SLOPE_NONE, TRACK_SLOPE_DOWN_25, TRACK_BANK_NONE, TRACK_BANK_NONE, 0 }, // ELEM_25_DEG_DOWN_TO_FLAT_COVERED
|
||
{ TRACK_FLAT, TRACK_SLOPE_NONE, TRACK_SLOPE_NONE, TRACK_BANK_NONE, TRACK_BANK_NONE, 0 }, // ELEM_LEFT_QUARTER_TURN_5_TILES_COVERED
|
||
{ TRACK_FLAT, TRACK_SLOPE_NONE, TRACK_SLOPE_NONE, TRACK_BANK_NONE, TRACK_BANK_NONE, 0 }, // ELEM_RIGHT_QUARTER_TURN_5_TILES_COVERED
|
||
{ TRACK_FLAT, TRACK_SLOPE_NONE, TRACK_SLOPE_NONE, TRACK_BANK_NONE, TRACK_BANK_NONE, 0 }, // ELEM_S_BEND_LEFT_COVERED
|
||
{ TRACK_FLAT, TRACK_SLOPE_NONE, TRACK_SLOPE_NONE, TRACK_BANK_NONE, TRACK_BANK_NONE, 0 }, // ELEM_S_BEND_RIGHT_COVERED
|
||
{ TRACK_FLAT, TRACK_SLOPE_NONE, TRACK_SLOPE_NONE, TRACK_BANK_NONE, TRACK_BANK_NONE, 0 }, // ELEM_LEFT_QUARTER_TURN_3_TILES_COVERED
|
||
{ TRACK_FLAT, TRACK_SLOPE_NONE, TRACK_SLOPE_NONE, TRACK_BANK_NONE, TRACK_BANK_NONE, 0 }, // ELEM_RIGHT_QUARTER_TURN_3_TILES_COVERED
|
||
{ TRACK_HELIX_UP_BANKED_HALF, TRACK_SLOPE_NONE, TRACK_SLOPE_NONE, TRACK_BANK_LEFT, TRACK_BANK_LEFT, 0 }, // ELEM_LEFT_HALF_BANKED_HELIX_UP_SMALL
|
||
{ TRACK_HELIX_UP_BANKED_HALF, TRACK_SLOPE_NONE, TRACK_SLOPE_NONE, TRACK_BANK_RIGHT, TRACK_BANK_RIGHT, 0 }, // ELEM_RIGHT_HALF_BANKED_HELIX_UP_SMALL
|
||
{ TRACK_HELIX_DOWN_BANKED_HALF, TRACK_SLOPE_NONE, TRACK_SLOPE_NONE, TRACK_BANK_LEFT, TRACK_BANK_LEFT, 0 }, // ELEM_LEFT_HALF_BANKED_HELIX_DOWN_SMALL
|
||
{ TRACK_HELIX_DOWN_BANKED_HALF, TRACK_SLOPE_NONE, TRACK_SLOPE_NONE, TRACK_BANK_RIGHT, TRACK_BANK_RIGHT, 0 }, // ELEM_RIGHT_HALF_BANKED_HELIX_DOWN_SMALL
|
||
{ TRACK_HELIX_UP_BANKED_HALF, TRACK_SLOPE_NONE, TRACK_SLOPE_NONE, TRACK_BANK_LEFT, TRACK_BANK_LEFT, 0 }, // ELEM_LEFT_HALF_BANKED_HELIX_UP_LARGE
|
||
{ TRACK_HELIX_UP_BANKED_HALF, TRACK_SLOPE_NONE, TRACK_SLOPE_NONE, TRACK_BANK_RIGHT, TRACK_BANK_RIGHT, 0 }, // ELEM_RIGHT_HALF_BANKED_HELIX_UP_LARGE
|
||
{ TRACK_HELIX_DOWN_BANKED_HALF, TRACK_SLOPE_NONE, TRACK_SLOPE_NONE, TRACK_BANK_LEFT, TRACK_BANK_LEFT, 0 }, // ELEM_LEFT_HALF_BANKED_HELIX_DOWN_LARGE
|
||
{ TRACK_HELIX_DOWN_BANKED_HALF, TRACK_SLOPE_NONE, TRACK_SLOPE_NONE, TRACK_BANK_RIGHT, TRACK_BANK_RIGHT, 0 }, // ELEM_RIGHT_HALF_BANKED_HELIX_DOWN_LARGE
|
||
{ TRACK_FLAT, TRACK_SLOPE_UP_60, TRACK_SLOPE_UP_60, TRACK_BANK_NONE, TRACK_BANK_NONE, 0 }, // ELEM_LEFT_QUARTER_TURN_1_TILE_60_DEG_UP
|
||
{ TRACK_FLAT, TRACK_SLOPE_UP_60, TRACK_SLOPE_UP_60, TRACK_BANK_NONE, TRACK_BANK_NONE, 0 }, // ELEM_RIGHT_QUARTER_TURN_1_TILE_60_DEG_UP
|
||
{ TRACK_FLAT, TRACK_SLOPE_DOWN_60, TRACK_SLOPE_DOWN_60, TRACK_BANK_NONE, TRACK_BANK_NONE, 0 }, // ELEM_LEFT_QUARTER_TURN_1_TILE_60_DEG_DOWN
|
||
{ TRACK_FLAT, TRACK_SLOPE_DOWN_60, TRACK_SLOPE_DOWN_60, TRACK_BANK_NONE, TRACK_BANK_NONE, 0 }, // ELEM_RIGHT_QUARTER_TURN_1_TILE_60_DEG_DOWN
|
||
{ TRACK_BRAKES, TRACK_SLOPE_NONE, TRACK_SLOPE_NONE, TRACK_BANK_NONE, TRACK_BANK_NONE, 0 }, // ELEM_BRAKES
|
||
{ TRACK_BOOSTER, TRACK_SLOPE_NONE, TRACK_SLOPE_NONE, TRACK_BANK_NONE, TRACK_BANK_NONE, 0 }, // ELEM_BOOSTER
|
||
{ TRACK_FLAT, TRACK_SLOPE_NONE, TRACK_SLOPE_NONE, TRACK_BANK_NONE, TRACK_BANK_NONE, 0 }, // TrackElemType::Maze
|
||
{ TRACK_HELIX_UP_BANKED_QUARTER, TRACK_SLOPE_NONE, TRACK_SLOPE_NONE, TRACK_BANK_LEFT, TRACK_BANK_LEFT, 0 }, // ELEM_LEFT_QUARTER_BANKED_HELIX_LARGE_UP
|
||
{ TRACK_HELIX_UP_BANKED_QUARTER, TRACK_SLOPE_NONE, TRACK_SLOPE_NONE, TRACK_BANK_RIGHT, TRACK_BANK_RIGHT, 0 }, // ELEM_RIGHT_QUARTER_BANKED_HELIX_LARGE_UP
|
||
{ TRACK_HELIX_DOWN_BANKED_QUARTER, TRACK_SLOPE_NONE, TRACK_SLOPE_NONE, TRACK_BANK_LEFT, TRACK_BANK_LEFT, 0 }, // ELEM_LEFT_QUARTER_BANKED_HELIX_LARGE_DOWN
|
||
{ TRACK_HELIX_DOWN_BANKED_QUARTER, TRACK_SLOPE_NONE, TRACK_SLOPE_NONE, TRACK_BANK_RIGHT, TRACK_BANK_RIGHT, 0 }, // ELEM_RIGHT_QUARTER_BANKED_HELIX_LARGE_DOWN
|
||
{ TRACK_HELIX_UP_UNBANKED_QUARTER, TRACK_SLOPE_NONE, TRACK_SLOPE_NONE, TRACK_BANK_NONE, TRACK_BANK_NONE, 0 }, // ELEM_LEFT_QUARTER_HELIX_LARGE_UP
|
||
{ TRACK_HELIX_UP_UNBANKED_QUARTER, TRACK_SLOPE_NONE, TRACK_SLOPE_NONE, TRACK_BANK_NONE, TRACK_BANK_NONE, 0 }, // ELEM_RIGHT_QUARTER_HELIX_LARGE_UP
|
||
{ TRACK_HELIX_DOWN_UNBANKED_QUARTER, TRACK_SLOPE_NONE, TRACK_SLOPE_NONE, TRACK_BANK_NONE, TRACK_BANK_NONE, 0 }, // ELEM_LEFT_QUARTER_HELIX_LARGE_DOWN
|
||
{ TRACK_HELIX_DOWN_UNBANKED_QUARTER, TRACK_SLOPE_NONE, TRACK_SLOPE_NONE, TRACK_BANK_NONE, TRACK_BANK_NONE, 0 }, // ELEM_RIGHT_QUARTER_HELIX_LARGE_DOWN
|
||
{ TRACK_FLAT, TRACK_SLOPE_UP_25, TRACK_SLOPE_UP_25, TRACK_BANK_LEFT, TRACK_BANK_LEFT, 0 }, // ELEM_25_DEG_UP_LEFT_BANKED
|
||
{ TRACK_FLAT, TRACK_SLOPE_UP_25, TRACK_SLOPE_UP_25, TRACK_BANK_RIGHT, TRACK_BANK_RIGHT, 0 }, // ELEM_25_DEG_UP_RIGHT_BANKED
|
||
{ TRACK_WATERFALL, TRACK_SLOPE_NONE, TRACK_SLOPE_NONE, TRACK_BANK_NONE, TRACK_BANK_NONE, 0 }, // ELEM_WATERFALL
|
||
{ TRACK_RAPIDS, TRACK_SLOPE_NONE, TRACK_SLOPE_NONE, TRACK_BANK_NONE, TRACK_BANK_NONE, 0 }, // ELEM_RAPIDS
|
||
{ TRACK_ON_RIDE_PHOTO, TRACK_SLOPE_NONE, TRACK_SLOPE_NONE, TRACK_BANK_NONE, TRACK_BANK_NONE, 0 }, // ELEM_ON_RIDE_PHOTO
|
||
{ TRACK_FLAT, TRACK_SLOPE_DOWN_25, TRACK_SLOPE_DOWN_25, TRACK_BANK_LEFT, TRACK_BANK_LEFT, 0 }, // ELEM_25_DEG_DOWN_LEFT_BANKED
|
||
{ TRACK_FLAT, TRACK_SLOPE_DOWN_25, TRACK_SLOPE_DOWN_25, TRACK_BANK_RIGHT, TRACK_BANK_RIGHT, 0 }, // ELEM_25_DEG_DOWN_RIGHT_BANKED
|
||
{ TRACK_WATER_SPLASH, TRACK_SLOPE_NONE, TRACK_SLOPE_NONE, TRACK_BANK_NONE, TRACK_BANK_NONE, 0 }, // ELEM_WATER_SPLASH
|
||
{ TRACK_FLAT, TRACK_SLOPE_UP_60, TRACK_SLOPE_NONE, TRACK_BANK_NONE, TRACK_BANK_NONE, 0 }, // ELEM_FLAT_TO_60_DEG_UP_LONG_BASE
|
||
{ TRACK_FLAT, TRACK_SLOPE_NONE, TRACK_SLOPE_UP_60, TRACK_BANK_NONE, TRACK_BANK_NONE, 0 }, // ELEM_60_DEG_UP_TO_FLAT_LONG_BASE
|
||
{ TRACK_WHIRLPOOL, TRACK_SLOPE_NONE, TRACK_SLOPE_NONE, TRACK_BANK_NONE, TRACK_BANK_NONE, 0 }, // ELEM_WHIRLPOOL
|
||
{ TRACK_FLAT, TRACK_SLOPE_NONE, TRACK_SLOPE_DOWN_60, TRACK_BANK_NONE, TRACK_BANK_NONE, 0 }, // ELEM_FLAT_TO_60_DEG_DOWN_LONG_BASE
|
||
{ TRACK_FLAT, TRACK_SLOPE_DOWN_60, TRACK_SLOPE_NONE, TRACK_BANK_NONE, TRACK_BANK_NONE, 0 }, // ELEM_60_DEG_UP_TO_FLAT_LONG_BASE_122
|
||
{ TRACK_LIFT_HILL_CABLE, TRACK_SLOPE_DOWN_60, TRACK_SLOPE_UP_25, TRACK_BANK_NONE, TRACK_BANK_NONE, 0 }, // ELEM_CABLE_LIFT_HILL
|
||
{ TRACK_REVERSE_FREEFALL, TRACK_VANGLE_REVERSE_FREEFALL, TRACK_SLOPE_NONE, TRACK_BANK_NONE, TRACK_BANK_NONE, 0 }, // ELEM_REVERSE_FREEFALL_SLOPE
|
||
{ TRACK_REVERSE_FREEFALL, TRACK_VANGLE_REVERSE_FREEFALL, TRACK_VANGLE_REVERSE_FREEFALL, TRACK_BANK_NONE,TRACK_BANK_NONE, 0 }, // ELEM_REVERSE_FREEFALL_VERTICAL
|
||
{ TRACK_FLAT, TRACK_SLOPE_UP_90, TRACK_SLOPE_UP_90, TRACK_BANK_NONE, TRACK_BANK_NONE, 0 }, // ELEM_90_DEG_UP
|
||
{ TRACK_FLAT, TRACK_SLOPE_DOWN_90, TRACK_SLOPE_DOWN_90, TRACK_BANK_NONE, TRACK_BANK_NONE, 0 }, // ELEM_90_DEG_DOWN
|
||
{ TRACK_FLAT, TRACK_SLOPE_UP_90, TRACK_SLOPE_UP_60, TRACK_BANK_NONE, TRACK_BANK_NONE, 0 }, // ELEM_60_DEG_UP_TO_90_DEG_UP
|
||
{ TRACK_FLAT, TRACK_SLOPE_DOWN_60, TRACK_SLOPE_DOWN_90, TRACK_BANK_NONE, TRACK_BANK_NONE, 0 }, // ELEM_90_DEG_DOWN_TO_60_DEG_DOWN
|
||
{ TRACK_FLAT, TRACK_SLOPE_UP_60, TRACK_SLOPE_UP_90, TRACK_BANK_NONE, TRACK_BANK_NONE, 0 }, // ELEM_90_DEG_UP_TO_60_DEG_UP
|
||
{ TRACK_FLAT, TRACK_SLOPE_DOWN_90, TRACK_SLOPE_DOWN_60, TRACK_BANK_NONE, TRACK_BANK_NONE, 0 }, // ELEM_60_DEG_DOWN_TO_90_DEG_DOWN
|
||
{ TRACK_BRAKE_FOR_DROP, TRACK_SLOPE_DOWN_60, TRACK_SLOPE_NONE, TRACK_BANK_NONE, TRACK_BANK_NONE, 0 }, // ELEM_BRAKE_FOR_DROP
|
||
{ TRACK_FLAT, TRACK_SLOPE_NONE, TRACK_SLOPE_NONE, TRACK_BANK_NONE, TRACK_BANK_NONE, 0 }, // ELEM_LEFT_EIGHTH_TO_DIAG
|
||
{ TRACK_FLAT, TRACK_SLOPE_NONE, TRACK_SLOPE_NONE, TRACK_BANK_NONE, TRACK_BANK_NONE, 0 }, // ELEM_RIGHT_EIGHTH_TO_DIAG
|
||
{ TRACK_FLAT, TRACK_SLOPE_NONE, TRACK_SLOPE_NONE, TRACK_BANK_NONE, TRACK_BANK_NONE, 0 }, // ELEM_LEFT_EIGHTH_TO_ORTHOGONAL
|
||
{ TRACK_FLAT, TRACK_SLOPE_NONE, TRACK_SLOPE_NONE, TRACK_BANK_NONE, TRACK_BANK_NONE, 0 }, // ELEM_RIGHT_EIGHTH_TO_ORTHOGONAL
|
||
{ TRACK_FLAT, TRACK_SLOPE_NONE, TRACK_SLOPE_NONE, TRACK_BANK_LEFT, TRACK_BANK_LEFT, 0 }, // ELEM_LEFT_EIGHTH_BANK_TO_DIAG
|
||
{ TRACK_FLAT, TRACK_SLOPE_NONE, TRACK_SLOPE_NONE, TRACK_BANK_RIGHT, TRACK_BANK_RIGHT, 0 }, // ELEM_RIGHT_EIGHTH_BANK_TO_DIAG
|
||
{ TRACK_FLAT, TRACK_SLOPE_NONE, TRACK_SLOPE_NONE, TRACK_BANK_LEFT, TRACK_BANK_LEFT, 0 }, // ELEM_LEFT_EIGHTH_BANK_TO_ORTHOGONAL
|
||
{ TRACK_FLAT, TRACK_SLOPE_NONE, TRACK_SLOPE_NONE, TRACK_BANK_RIGHT, TRACK_BANK_RIGHT, 0 }, // ELEM_RIGHT_EIGHTH_BANK_TO_ORTHOGONAL
|
||
{ TRACK_FLAT, TRACK_SLOPE_NONE, TRACK_SLOPE_NONE, TRACK_BANK_NONE, TRACK_BANK_NONE, 0 }, // ELEM_DIAG_FLAT
|
||
{ TRACK_FLAT, TRACK_SLOPE_UP_25, TRACK_SLOPE_UP_25, TRACK_BANK_NONE, TRACK_BANK_NONE, 0 }, // ELEM_DIAG_25_DEG_UP
|
||
{ TRACK_FLAT, TRACK_SLOPE_UP_60, TRACK_SLOPE_UP_60, TRACK_BANK_NONE, TRACK_BANK_NONE, 0 }, // ELEM_DIAG_60_DEG_UP
|
||
{ TRACK_FLAT, TRACK_SLOPE_UP_25, TRACK_SLOPE_NONE, TRACK_BANK_NONE, TRACK_BANK_NONE, 0 }, // ELEM_DIAG_FLAT_TO_25_DEG_UP
|
||
{ TRACK_FLAT, TRACK_SLOPE_UP_60, TRACK_SLOPE_UP_25, TRACK_BANK_NONE, TRACK_BANK_NONE, 0 }, // ELEM_DIAG_25_DEG_UP_TO_60_DEG_UP
|
||
{ TRACK_FLAT, TRACK_SLOPE_UP_25, TRACK_SLOPE_UP_60, TRACK_BANK_NONE, TRACK_BANK_NONE, 0 }, // ELEM_DIAG_60_DEG_UP_TO_25_DEG_UP
|
||
{ TRACK_FLAT, TRACK_SLOPE_NONE, TRACK_SLOPE_UP_25, TRACK_BANK_NONE, TRACK_BANK_NONE, 0 }, // ELEM_DIAG_25_DEG_UP_TO_FLAT
|
||
{ TRACK_FLAT, TRACK_SLOPE_DOWN_25, TRACK_SLOPE_DOWN_25, TRACK_BANK_NONE, TRACK_BANK_NONE, 0 }, // ELEM_DIAG_25_DEG_DOWN
|
||
{ TRACK_FLAT, TRACK_SLOPE_DOWN_60, TRACK_SLOPE_DOWN_60, TRACK_BANK_NONE, TRACK_BANK_NONE, 0 }, // ELEM_DIAG_60_DEG_DOWN
|
||
{ TRACK_FLAT, TRACK_SLOPE_DOWN_25, TRACK_SLOPE_NONE, TRACK_BANK_NONE, TRACK_BANK_NONE, 0 }, // ELEM_DIAG_FLAT_TO_25_DEG_DOWN
|
||
{ TRACK_FLAT, TRACK_SLOPE_DOWN_60, TRACK_SLOPE_DOWN_25, TRACK_BANK_NONE, TRACK_BANK_NONE, 0 }, // ELEM_DIAG_25_DEG_DOWN_TO_60_DEG_DOWN
|
||
{ TRACK_FLAT, TRACK_SLOPE_DOWN_25, TRACK_SLOPE_DOWN_60, TRACK_BANK_NONE, TRACK_BANK_NONE, 0 }, // ELEM_DIAG_60_DEG_DOWN_TO_25_DEG_DOWN
|
||
{ TRACK_FLAT, TRACK_SLOPE_NONE, TRACK_SLOPE_DOWN_25, TRACK_BANK_NONE, TRACK_BANK_NONE, 0 }, // ELEM_DIAG_25_DEG_DOWN_TO_FLAT
|
||
{ TRACK_FLAT, TRACK_SLOPE_UP_60, TRACK_SLOPE_NONE, TRACK_BANK_NONE, TRACK_BANK_NONE, 0 }, // ELEM_DIAG_FLAT_TO_60_DEG_UP
|
||
{ TRACK_FLAT, TRACK_SLOPE_NONE, TRACK_SLOPE_UP_60, TRACK_BANK_NONE, TRACK_BANK_NONE, 0 }, // ELEM_DIAG_60_DEG_UP_TO_FLAT
|
||
{ TRACK_FLAT, TRACK_SLOPE_DOWN_60, TRACK_SLOPE_NONE, TRACK_BANK_NONE, TRACK_BANK_NONE, 0 }, // ELEM_DIAG_FLAT_TO_60_DEG_DOWN
|
||
{ TRACK_FLAT, TRACK_SLOPE_NONE, TRACK_SLOPE_DOWN_60, TRACK_BANK_NONE, TRACK_BANK_NONE, 0 }, // ELEM_DIAG_60_DEG_DOWN_TO_FLAT
|
||
{ TRACK_FLAT, TRACK_SLOPE_NONE, TRACK_SLOPE_NONE, TRACK_BANK_LEFT, TRACK_BANK_NONE, 0 }, // ELEM_DIAG_FLAT_TO_LEFT_BANK
|
||
{ TRACK_FLAT, TRACK_SLOPE_NONE, TRACK_SLOPE_NONE, TRACK_BANK_RIGHT, TRACK_BANK_NONE, 0 }, // ELEM_DIAG_FLAT_TO_RIGHT_BANK
|
||
{ TRACK_FLAT, TRACK_SLOPE_NONE, TRACK_SLOPE_NONE, TRACK_BANK_NONE, TRACK_BANK_LEFT, 0 }, // ELEM_DIAG_LEFT_BANK_TO_FLAT
|
||
{ TRACK_FLAT, TRACK_SLOPE_NONE, TRACK_SLOPE_NONE, TRACK_BANK_NONE, TRACK_BANK_RIGHT, 0 }, // ELEM_DIAG_RIGHT_BANK_TO_FLAT
|
||
{ TRACK_FLAT, TRACK_SLOPE_UP_25, TRACK_SLOPE_NONE, TRACK_BANK_NONE, TRACK_BANK_LEFT, 0 }, // ELEM_DIAG_LEFT_BANK_TO_25_DEG_UP
|
||
{ TRACK_FLAT, TRACK_SLOPE_UP_25, TRACK_SLOPE_NONE, TRACK_BANK_NONE, TRACK_BANK_RIGHT, 0 }, // ELEM_DIAG_RIGHT_BANK_TO_25_DEG_UP
|
||
{ TRACK_FLAT, TRACK_SLOPE_NONE, TRACK_SLOPE_UP_25, TRACK_BANK_LEFT, TRACK_BANK_NONE, 0 }, // ELEM_DIAG_25_DEG_UP_TO_LEFT_BANK
|
||
{ TRACK_FLAT, TRACK_SLOPE_NONE, TRACK_SLOPE_UP_25, TRACK_BANK_RIGHT, TRACK_BANK_NONE, 0 }, // ELEM_DIAG_25_DEG_UP_TO_RIGHT_BANK
|
||
{ TRACK_FLAT, TRACK_SLOPE_DOWN_25, TRACK_SLOPE_NONE, TRACK_BANK_NONE, TRACK_BANK_LEFT, 0 }, // ELEM_DIAG_LEFT_BANK_TO_25_DEG_DOWN
|
||
{ TRACK_FLAT, TRACK_SLOPE_DOWN_25, TRACK_SLOPE_NONE, TRACK_BANK_NONE, TRACK_BANK_RIGHT, 0 }, // ELEM_DIAG_RIGHT_BANK_TO_25_DEG_DOWN
|
||
{ TRACK_FLAT, TRACK_SLOPE_NONE, TRACK_SLOPE_DOWN_25, TRACK_BANK_LEFT, TRACK_BANK_NONE, 0 }, // ELEM_DIAG_25_DEG_DOWN_TO_LEFT_BANK
|
||
{ TRACK_FLAT, TRACK_SLOPE_NONE, TRACK_SLOPE_DOWN_25, TRACK_BANK_RIGHT, TRACK_BANK_NONE, 0 }, // ELEM_DIAG_25_DEG_DOWN_TO_RIGHT_BANK
|
||
{ TRACK_FLAT, TRACK_SLOPE_NONE, TRACK_SLOPE_NONE, TRACK_BANK_LEFT, TRACK_BANK_LEFT, 0 }, // ELEM_DIAG_LEFT_BANK
|
||
{ TRACK_FLAT, TRACK_SLOPE_NONE, TRACK_SLOPE_NONE, TRACK_BANK_RIGHT, TRACK_BANK_RIGHT, 0 }, // ELEM_DIAG_RIGHT_BANK
|
||
{ TRACK_LOG_FLUME_REVERSER, TRACK_SLOPE_NONE, TRACK_SLOPE_NONE, TRACK_BANK_NONE, TRACK_BANK_NONE, 0 }, // ELEM_LOG_FLUME_REVERSER
|
||
{ TRACK_SPINNING_TUNNEL, TRACK_SLOPE_NONE, TRACK_SLOPE_NONE, TRACK_BANK_NONE, TRACK_BANK_NONE, 0 }, // ELEM_SPINNING_TUNNEL
|
||
{ TRACK_BARREL_ROLL, TRACK_SLOPE_NONE, TRACK_SLOPE_NONE, TRACK_BANK_UPSIDE_DOWN, TRACK_BANK_NONE, 0 }, // ELEM_LEFT_BARREL_ROLL_UP_TO_DOWN
|
||
{ TRACK_BARREL_ROLL, TRACK_SLOPE_NONE, TRACK_SLOPE_NONE, TRACK_BANK_UPSIDE_DOWN, TRACK_BANK_NONE, 0 }, // ELEM_RIGHT_BARREL_ROLL_UP_TO_DOWN
|
||
{ TRACK_BARREL_ROLL, TRACK_SLOPE_NONE, TRACK_SLOPE_NONE, TRACK_BANK_NONE, TRACK_BANK_UPSIDE_DOWN, 0 }, // ELEM_LEFT_BARREL_ROLL_DOWN_TO_UP
|
||
{ TRACK_BARREL_ROLL, TRACK_SLOPE_NONE, TRACK_SLOPE_NONE, TRACK_BANK_NONE, TRACK_BANK_UPSIDE_DOWN, 0 }, // ELEM_RIGHT_BARREL_ROLL_DOWN_TO_UP
|
||
{ TRACK_FLAT, TRACK_SLOPE_UP_25, TRACK_SLOPE_NONE, TRACK_BANK_NONE, TRACK_BANK_LEFT, 0 }, // ELEM_LEFT_BANK_TO_LEFT_QUARTER_TURN_3_TILES_25_DEG_UP
|
||
{ TRACK_FLAT, TRACK_SLOPE_UP_25, TRACK_SLOPE_NONE, TRACK_BANK_NONE, TRACK_BANK_RIGHT, 0 }, // ELEM_RIGHT_BANK_TO_RIGHT_QUARTER_TURN_3_TILES_25_DEG_UP
|
||
{ TRACK_FLAT, TRACK_SLOPE_NONE, TRACK_SLOPE_DOWN_25, TRACK_BANK_LEFT, TRACK_BANK_NONE, 0 }, // ELEM_LEFT_QUARTER_TURN_3_TILES_25_DEG_DOWN_TO_LEFT_BANK
|
||
{ TRACK_FLAT, TRACK_SLOPE_NONE, TRACK_SLOPE_DOWN_25, TRACK_BANK_RIGHT, TRACK_BANK_NONE, 0 }, // ELEM_RIGHT_QUARTER_TURN_3_TILES_25_DEG_DOWN_TO_RIGHT_BANK
|
||
{ TRACK_POWERED_LIFT, TRACK_SLOPE_UP_25, TRACK_SLOPE_UP_25, TRACK_BANK_NONE, TRACK_BANK_NONE, 0 }, // ELEM_POWERED_LIFT
|
||
{TRACK_HALF_LOOP_LARGE, TRACK_SLOPE_NONE, TRACK_SLOPE_UP_25, TRACK_BANK_UPSIDE_DOWN, TRACK_BANK_NONE, 64 }, // ELEM_LEFT_LARGE_HALF_LOOP_UP
|
||
{TRACK_HALF_LOOP_LARGE, TRACK_SLOPE_NONE, TRACK_SLOPE_UP_25, TRACK_BANK_UPSIDE_DOWN, TRACK_BANK_NONE, 64 }, // ELEM_RIGHT_LARGE_HALF_LOOP_UP
|
||
{TRACK_HALF_LOOP_LARGE, TRACK_SLOPE_DOWN_25, TRACK_SLOPE_NONE, TRACK_BANK_NONE, TRACK_BANK_UPSIDE_DOWN, -64 }, // ELEM_RIGHT_LARGE_HALF_LOOP_DOWN
|
||
{TRACK_HALF_LOOP_LARGE, TRACK_SLOPE_DOWN_25, TRACK_SLOPE_NONE, TRACK_BANK_NONE, TRACK_BANK_UPSIDE_DOWN, -64 }, // ELEM_LEFT_LARGE_HALF_LOOP_DOWN
|
||
{TRACK_INLINE_TWIST_UNINVERTED, TRACK_SLOPE_NONE, TRACK_SLOPE_NONE, TRACK_BANK_UPSIDE_DOWN, TRACK_BANK_NONE, 0 }, // ELEM_LEFT_FLYER_TWIST_UP
|
||
{TRACK_INLINE_TWIST_UNINVERTED, TRACK_SLOPE_NONE, TRACK_SLOPE_NONE, TRACK_BANK_UPSIDE_DOWN, TRACK_BANK_NONE, 0 }, // ELEM_RIGHT_FLYER_TWIST_UP
|
||
{TRACK_INLINE_TWIST_INVERTED, TRACK_SLOPE_NONE, TRACK_SLOPE_NONE, TRACK_BANK_UPSIDE_DOWN, TRACK_BANK_NONE, 0 }, // ELEM_LEFT_FLYER_TWIST_DOWN
|
||
{TRACK_INLINE_TWIST_INVERTED, TRACK_SLOPE_NONE, TRACK_SLOPE_NONE, TRACK_BANK_UPSIDE_DOWN, TRACK_BANK_NONE, 0 }, // ELEM_RIGHT_FLYER_TWIST_DOWN
|
||
{TRACK_FLYING_HALF_LOOP_UNINVERTED_UP, TRACK_SLOPE_NONE, TRACK_SLOPE_UP_25, TRACK_BANK_UPSIDE_DOWN, TRACK_BANK_NONE, 64 }, // ELEM_FLYER_HALF_LOOP_UP
|
||
{TRACK_FLYING_HALF_LOOP_INVERTED_DOWN, TRACK_SLOPE_DOWN_25, TRACK_SLOPE_NONE, TRACK_BANK_UPSIDE_DOWN, TRACK_BANK_NONE, -64 }, // ELEM_FLYER_HALF_LOOP_DOWN
|
||
{TRACK_CORKSCREW_UNINVERTED, TRACK_SLOPE_NONE, TRACK_SLOPE_NONE, TRACK_BANK_UPSIDE_DOWN, TRACK_BANK_NONE, 0 }, // ELEM_LEFT_FLYER_CORKSCREW_UP
|
||
{TRACK_CORKSCREW_UNINVERTED, TRACK_SLOPE_NONE, TRACK_SLOPE_NONE, TRACK_BANK_UPSIDE_DOWN, TRACK_BANK_NONE, 0 }, // ELEM_RIGHT_FLYER_CORKSCREW_UP
|
||
{TRACK_CORKSCREW_INVERTED, TRACK_SLOPE_NONE, TRACK_SLOPE_NONE, TRACK_BANK_UPSIDE_DOWN, TRACK_BANK_NONE, -32 }, // ELEM_LEFT_FLYER_CORKSCREW_DOWN
|
||
{TRACK_CORKSCREW_INVERTED, TRACK_SLOPE_NONE, TRACK_SLOPE_NONE, TRACK_BANK_UPSIDE_DOWN, TRACK_BANK_NONE, -32 }, // ELEM_RIGHT_FLYER_CORKSCREW_DOWN
|
||
{TRACK_HEARTLINE_TRANSFER, TRACK_SLOPE_NONE, TRACK_SLOPE_NONE, TRACK_BANK_NONE, TRACK_BANK_NONE, 0 }, // ELEM_HEARTLINE_TRANSFER_UP
|
||
{TRACK_HEARTLINE_TRANSFER, TRACK_SLOPE_NONE, TRACK_SLOPE_NONE, TRACK_BANK_NONE, TRACK_BANK_NONE, 0 }, // ELEM_HEARTLINE_TRANSFER_DOWN
|
||
{TRACK_HEARTLINE_ROLL, TRACK_SLOPE_NONE, TRACK_SLOPE_NONE, TRACK_BANK_NONE, TRACK_BANK_NONE, 0 }, // ELEM_LEFT_HEARTLINE_ROLL
|
||
{TRACK_HEARTLINE_ROLL, TRACK_SLOPE_NONE, TRACK_SLOPE_NONE, TRACK_BANK_NONE, TRACK_BANK_NONE, 0 }, // ELEM_RIGHT_HEARTLINE_ROLL
|
||
{TRACK_MINI_GOLF_HOLE, TRACK_SLOPE_NONE, TRACK_SLOPE_NONE, TRACK_BANK_NONE, TRACK_BANK_NONE, 0 }, // ELEM_MINI_GOLF_HOLE_A
|
||
{TRACK_MINI_GOLF_HOLE, TRACK_SLOPE_NONE, TRACK_SLOPE_NONE, TRACK_BANK_NONE, TRACK_BANK_NONE, 0 }, // ELEM_MINI_GOLF_HOLE_B
|
||
{TRACK_MINI_GOLF_HOLE, TRACK_SLOPE_NONE, TRACK_SLOPE_NONE, TRACK_BANK_NONE, TRACK_BANK_NONE, 0 }, // ELEM_MINI_GOLF_HOLE_C
|
||
{TRACK_MINI_GOLF_HOLE, TRACK_SLOPE_NONE, TRACK_SLOPE_NONE, TRACK_BANK_NONE, TRACK_BANK_NONE, 0 }, // ELEM_MINI_GOLF_HOLE_D
|
||
{TRACK_MINI_GOLF_HOLE, TRACK_SLOPE_NONE, TRACK_SLOPE_NONE, TRACK_BANK_NONE, TRACK_BANK_NONE, 0 }, // ELEM_MINI_GOLF_HOLE_E
|
||
{ TRACK_QUARTER_LOOP_INVERTED_DOWN, TRACK_SLOPE_DOWN_90, TRACK_SLOPE_NONE, TRACK_BANK_UPSIDE_DOWN, TRACK_BANK_NONE, 0 }, // ELEM_MULTIDIM_INVERTED_FLAT_TO_90_DEG_QUARTER_LOOP_DOWN
|
||
{ TRACK_QUARTER_LOOP, TRACK_SLOPE_NONE, TRACK_SLOPE_UP_90, TRACK_BANK_UPSIDE_DOWN, TRACK_BANK_NONE, 0 }, // ELEM_90_DEG_TO_INVERTED_FLAT_QUARTER_LOOP_UP
|
||
{ TRACK_QUARTER_LOOP, TRACK_SLOPE_DOWN_90, TRACK_SLOPE_NONE, TRACK_BANK_NONE, TRACK_BANK_UPSIDE_DOWN, 0 }, // ELEM_INVERTED_FLAT_TO_90_DEG_QUARTER_LOOP_DOWN
|
||
{ TRACK_LIFT_HILL_CURVED, TRACK_SLOPE_NONE, TRACK_SLOPE_NONE, TRACK_BANK_NONE, TRACK_BANK_NONE, 0 }, // ELEM_LEFT_CURVED_LIFT_HILL
|
||
{ TRACK_LIFT_HILL_CURVED, TRACK_SLOPE_NONE, TRACK_SLOPE_NONE, TRACK_BANK_NONE, TRACK_BANK_NONE, 0 }, // ELEM_RIGHT_CURVED_LIFT_HILL
|
||
{ TRACK_REVERSER, TRACK_SLOPE_NONE, TRACK_SLOPE_NONE, TRACK_BANK_NONE, TRACK_BANK_NONE, 0 }, // ELEM_LEFT_REVERSER
|
||
{ TRACK_REVERSER, TRACK_SLOPE_NONE, TRACK_SLOPE_NONE, TRACK_BANK_NONE, TRACK_BANK_NONE, 0 }, // ELEM_RIGHT_REVERSER
|
||
{ TRACK_SLOPE_TO_FLAT, TRACK_SLOPE_DOWN_90, TRACK_SLOPE_UP_90, TRACK_BANK_NONE, TRACK_BANK_NONE, 0 }, // ELEM_AIR_THRUST_TOP_CAP
|
||
{ TRACK_SLOPE_TO_FLAT, TRACK_SLOPE_DOWN_90, TRACK_SLOPE_DOWN_90, TRACK_BANK_NONE, TRACK_BANK_NONE, 0 }, // ELEM_AIR_THRUST_VERTICAL_DOWN
|
||
{ TRACK_SLOPE_TO_FLAT, TRACK_SLOPE_NONE, TRACK_SLOPE_DOWN_90, TRACK_BANK_NONE, TRACK_BANK_NONE, 0 }, // ELEM_AIR_THRUST_VERTICAL_DOWN_TO_LEVEL
|
||
{ TRACK_BLOCK_BRAKES, TRACK_SLOPE_NONE, TRACK_SLOPE_NONE, TRACK_BANK_NONE, TRACK_BANK_NONE, 0 }, // ELEM_BLOCK_BRAKES
|
||
{ TRACK_FLAT, TRACK_SLOPE_UP_25, TRACK_SLOPE_UP_25, TRACK_BANK_LEFT, TRACK_BANK_LEFT, 0 }, // ELEM_LEFT_BANKED_QUARTER_TURN_3_TILE_25_DEG_UP
|
||
{ TRACK_FLAT, TRACK_SLOPE_UP_25, TRACK_SLOPE_UP_25, TRACK_BANK_RIGHT, TRACK_BANK_RIGHT, 0 }, // ELEM_RIGHT_BANKED_QUARTER_TURN_3_TILE_25_DEG_UP
|
||
{ TRACK_FLAT, TRACK_SLOPE_DOWN_25, TRACK_SLOPE_DOWN_25, TRACK_BANK_LEFT, TRACK_BANK_LEFT, 0 }, // ELEM_LEFT_BANKED_QUARTER_TURN_3_TILE_25_DEG_DOWN
|
||
{ TRACK_FLAT, TRACK_SLOPE_DOWN_25, TRACK_SLOPE_DOWN_25, TRACK_BANK_RIGHT, TRACK_BANK_RIGHT, 0 }, // ELEM_RIGHT_BANKED_QUARTER_TURN_3_TILE_25_DEG_DOWN
|
||
{ TRACK_FLAT, TRACK_SLOPE_UP_25, TRACK_SLOPE_UP_25, TRACK_BANK_LEFT, TRACK_BANK_LEFT, 0 }, // ELEM_LEFT_BANKED_QUARTER_TURN_5_TILE_25_DEG_UP
|
||
{ TRACK_FLAT, TRACK_SLOPE_UP_25, TRACK_SLOPE_UP_25, TRACK_BANK_RIGHT, TRACK_BANK_RIGHT, 0 }, // ELEM_RIGHT_BANKED_QUARTER_TURN_5_TILE_25_DEG_UP
|
||
{ TRACK_FLAT, TRACK_SLOPE_DOWN_25, TRACK_SLOPE_DOWN_25, TRACK_BANK_LEFT, TRACK_BANK_LEFT, 0 }, // ELEM_LEFT_BANKED_QUARTER_TURN_5_TILE_25_DEG_DOWN
|
||
{ TRACK_FLAT, TRACK_SLOPE_DOWN_25, TRACK_SLOPE_DOWN_25, TRACK_BANK_RIGHT, TRACK_BANK_RIGHT, 0 }, // ELEM_RIGHT_BANKED_QUARTER_TURN_5_TILE_25_DEG_DOWN
|
||
{ TRACK_FLAT, TRACK_SLOPE_UP_25, TRACK_SLOPE_UP_25, TRACK_BANK_LEFT, TRACK_BANK_NONE, 0 }, // ELEM_25_DEG_UP_TO_LEFT_BANKED_25_DEG_UP
|
||
{ TRACK_FLAT, TRACK_SLOPE_UP_25, TRACK_SLOPE_UP_25, TRACK_BANK_RIGHT, TRACK_BANK_NONE, 0 }, // ELEM_25_DEG_UP_TO_RIGHT_BANKED_25_DEG_UP
|
||
{ TRACK_FLAT, TRACK_SLOPE_UP_25, TRACK_SLOPE_UP_25, TRACK_BANK_NONE, TRACK_BANK_LEFT, 0 }, // ELEM_LEFT_BANKED_25_DEG_UP_TO_25_DEG_UP
|
||
{ TRACK_FLAT, TRACK_SLOPE_UP_25, TRACK_SLOPE_UP_25, TRACK_BANK_NONE, TRACK_BANK_RIGHT, 0 }, // ELEM_RIGHT_BANKED_25_DEG_UP_TO_25_DEG_UP
|
||
{ TRACK_FLAT, TRACK_SLOPE_DOWN_25, TRACK_SLOPE_DOWN_25, TRACK_BANK_LEFT, TRACK_BANK_NONE, 0 }, // ELEM_25_DEG_DOWN_TO_LEFT_BANKED_25_DEG_DOWN
|
||
{ TRACK_FLAT, TRACK_SLOPE_DOWN_25, TRACK_SLOPE_DOWN_25, TRACK_BANK_RIGHT, TRACK_BANK_NONE, 0 }, // ELEM_25_DEG_DOWN_TO_RIGHT_BANKED_25_DEG_DOWN
|
||
{ TRACK_FLAT, TRACK_SLOPE_DOWN_25, TRACK_SLOPE_DOWN_25, TRACK_BANK_NONE, TRACK_BANK_LEFT, 0 }, // ELEM_LEFT_BANKED_25_DEG_DOWN_TO_25_DEG_DOWN
|
||
{ TRACK_FLAT, TRACK_SLOPE_DOWN_25, TRACK_SLOPE_DOWN_25, TRACK_BANK_NONE, TRACK_BANK_RIGHT, 0 }, // ELEM_RIGHT_BANKED_25_DEG_DOWN_TO_25_DEG_DOWN
|
||
{ TRACK_FLAT, TRACK_SLOPE_UP_25, TRACK_SLOPE_NONE, TRACK_BANK_LEFT, TRACK_BANK_LEFT, 0 }, // ELEM_LEFT_BANKED_FLAT_TO_LEFT_BANKED_25_DEG_UP
|
||
{ TRACK_FLAT, TRACK_SLOPE_UP_25, TRACK_SLOPE_NONE, TRACK_BANK_RIGHT, TRACK_BANK_RIGHT, 0 }, // ELEM_RIGHT_BANKED_FLAT_TO_RIGHT_BANKED_25_DEG_UP
|
||
{ TRACK_FLAT, TRACK_SLOPE_NONE, TRACK_SLOPE_UP_25, TRACK_BANK_LEFT, TRACK_BANK_LEFT, 0 }, // ELEM_LEFT_BANKED_25_DEG_UP_TO_LEFT_BANKED_FLAT
|
||
{ TRACK_FLAT, TRACK_SLOPE_NONE, TRACK_SLOPE_UP_25, TRACK_BANK_RIGHT, TRACK_BANK_RIGHT, 0 }, // ELEM_RIGHT_BANKED_25_DEG_UP_TO_RIGHT_BANKED_FLAT
|
||
{ TRACK_FLAT, TRACK_SLOPE_DOWN_25, TRACK_SLOPE_NONE, TRACK_BANK_LEFT, TRACK_BANK_LEFT, 0 }, // ELEM_LEFT_BANKED_FLAT_TO_LEFT_BANKED_25_DEG_DOWN
|
||
{ TRACK_FLAT, TRACK_SLOPE_DOWN_25, TRACK_SLOPE_NONE, TRACK_BANK_RIGHT, TRACK_BANK_RIGHT, 0 }, // ELEM_RIGHT_BANKED_FLAT_TO_RIGHT_BANKED_25_DEG_DOWN
|
||
{ TRACK_FLAT, TRACK_SLOPE_NONE, TRACK_SLOPE_DOWN_25, TRACK_BANK_LEFT, TRACK_BANK_LEFT, 0 }, // ELEM_LEFT_BANKED_25_DEG_DOWN_TO_LEFT_BANKED_FLAT
|
||
{ TRACK_FLAT, TRACK_SLOPE_NONE, TRACK_SLOPE_DOWN_25, TRACK_BANK_RIGHT, TRACK_BANK_RIGHT, 0 }, // ELEM_RIGHT_BANKED_25_DEG_DOWN_TO_RIGHT_BANKED_FLAT
|
||
{ TRACK_FLAT, TRACK_SLOPE_UP_25, TRACK_SLOPE_NONE, TRACK_BANK_LEFT, TRACK_BANK_NONE, 0 }, // ELEM_FLAT_TO_LEFT_BANKED_25_DEG_UP
|
||
{ TRACK_FLAT, TRACK_SLOPE_UP_25, TRACK_SLOPE_NONE, TRACK_BANK_RIGHT, TRACK_BANK_NONE, 0 }, // ELEM_FLAT_TO_RIGHT_BANKED_25_DEG_UP
|
||
{ TRACK_FLAT, TRACK_SLOPE_NONE, TRACK_SLOPE_UP_25, TRACK_BANK_NONE, TRACK_BANK_LEFT, 0 }, // ELEM_LEFT_BANKED_25_DEG_UP_TO_FLAT
|
||
{ TRACK_FLAT, TRACK_SLOPE_NONE, TRACK_SLOPE_UP_25, TRACK_BANK_NONE, TRACK_BANK_RIGHT, 0 }, // ELEM_RIGHT_BANKED_25_DEG_UP_TO_FLAT
|
||
{ TRACK_FLAT, TRACK_SLOPE_DOWN_25, TRACK_SLOPE_NONE, TRACK_BANK_LEFT, TRACK_BANK_NONE, 0 }, // ELEM_FLAT_TO_LEFT_BANKED_25_DEG_DOWN
|
||
{ TRACK_FLAT, TRACK_SLOPE_DOWN_25, TRACK_SLOPE_NONE, TRACK_BANK_RIGHT, TRACK_BANK_NONE, 0 }, // ELEM_FLAT_TO_RIGHT_BANKED_25_DEG_DOWN
|
||
{ TRACK_FLAT, TRACK_SLOPE_NONE, TRACK_SLOPE_DOWN_25, TRACK_BANK_NONE, TRACK_BANK_LEFT, 0 }, // ELEM_LEFT_BANKED_25_DEG_DOWN_TO_FLAT
|
||
{ TRACK_FLAT, TRACK_SLOPE_NONE, TRACK_SLOPE_DOWN_25, TRACK_BANK_NONE, TRACK_BANK_RIGHT, 0 }, // ELEM_RIGHT_BANKED_25_DEG_DOWN_TO_FLAT
|
||
{ TRACK_FLAT, TRACK_SLOPE_UP_90, TRACK_SLOPE_UP_90, TRACK_BANK_NONE, TRACK_BANK_NONE, 0 }, // ELEM_LEFT_QUARTER_TURN_1_TILE_90_DEG_UP
|
||
{ TRACK_FLAT, TRACK_SLOPE_UP_90, TRACK_SLOPE_UP_90, TRACK_BANK_NONE, TRACK_BANK_NONE, 0 }, // ELEM_RIGHT_QUARTER_TURN_1_TILE_90_DEG_UP
|
||
{ TRACK_FLAT, TRACK_SLOPE_DOWN_90, TRACK_SLOPE_DOWN_90, TRACK_BANK_NONE, TRACK_BANK_NONE, 0 }, // ELEM_LEFT_QUARTER_TURN_1_TILE_90_DEG_DOWN
|
||
{ TRACK_FLAT, TRACK_SLOPE_DOWN_90, TRACK_SLOPE_DOWN_90, TRACK_BANK_NONE, TRACK_BANK_NONE, 0 }, // ELEM_RIGHT_QUARTER_TURN_1_TILE_90_DEG_DOWN
|
||
{ TRACK_QUARTER_LOOP_UNINVERTED_UP, TRACK_SLOPE_NONE, TRACK_SLOPE_UP_90, TRACK_BANK_UPSIDE_DOWN, TRACK_BANK_NONE, 0 }, // ELEM_MULTIDIM_90_DEG_UP_TO_INVERTED_FLAT_QUARTER_LOOP
|
||
{ TRACK_QUARTER_LOOP_UNINVERTED_DOWN, TRACK_SLOPE_DOWN_90, TRACK_SLOPE_NONE, TRACK_BANK_UPSIDE_DOWN, TRACK_BANK_NONE, 0 }, // ELEM_MULTIDIM_FLAT_TO_90_DEG_DOWN_QUARTER_LOOP
|
||
{ TRACK_QUARTER_LOOP_INVERTED_UP, TRACK_SLOPE_NONE, TRACK_SLOPE_UP_90, TRACK_BANK_UPSIDE_DOWN, TRACK_BANK_NONE, 0 }, // ELEM_MULTIDIM_INVERTED_FLAT_TO_90_DEG_UP_QUARTER_LOOP
|
||
{ TRACK_ROTATION_CONTROL_TOGGLE,TRACK_SLOPE_NONE, TRACK_SLOPE_NONE, TRACK_BANK_NONE, TRACK_BANK_NONE, 0 }, // ELEM_ROTATION_CONTROL_TOGGLE
|
||
{ TRACK_FLAT_RIDE_BASE, TRACK_SLOPE_NONE, TRACK_SLOPE_NONE, TRACK_BANK_NONE, TRACK_BANK_NONE, 0 }, // TrackElemType::FlatTrack1x4A
|
||
{ TRACK_FLAT_RIDE_BASE, TRACK_SLOPE_NONE, TRACK_SLOPE_NONE, TRACK_BANK_NONE, TRACK_BANK_NONE, 0 }, // TrackElemType::FlatTrack2x2
|
||
{ TRACK_FLAT_RIDE_BASE, TRACK_SLOPE_NONE, TRACK_SLOPE_NONE, TRACK_BANK_NONE, TRACK_BANK_NONE, 0 }, // TrackElemType::FlatTrack4x4
|
||
{ TRACK_FLAT_RIDE_BASE, TRACK_SLOPE_NONE, TRACK_SLOPE_NONE, TRACK_BANK_NONE, TRACK_BANK_NONE, 0 }, // TrackElemType::FlatTrack2x4
|
||
{ TRACK_FLAT_RIDE_BASE, TRACK_SLOPE_NONE, TRACK_SLOPE_NONE, TRACK_BANK_NONE, TRACK_BANK_NONE, 0 }, // TrackElemType::FlatTrack1x5
|
||
{ TRACK_FLAT_RIDE_BASE, TRACK_SLOPE_NONE, TRACK_SLOPE_NONE, TRACK_BANK_NONE, TRACK_BANK_NONE, 0 }, // TrackElemType::FlatTrack1x1A
|
||
{ TRACK_FLAT_RIDE_BASE, TRACK_SLOPE_NONE, TRACK_SLOPE_NONE, TRACK_BANK_NONE, TRACK_BANK_NONE, 0 }, // TrackElemType::FlatTrack1x4B
|
||
{ TRACK_FLAT_RIDE_BASE, TRACK_SLOPE_NONE, TRACK_SLOPE_NONE, TRACK_BANK_NONE, TRACK_BANK_NONE, 0 }, // TrackElemType::FlatTrack1x1B
|
||
{ TRACK_FLAT_RIDE_BASE, TRACK_SLOPE_NONE, TRACK_SLOPE_NONE, TRACK_BANK_NONE, TRACK_BANK_NONE, -40 }, // TrackElemType::FlatTrack1x4C
|
||
{ TRACK_FLAT_RIDE_BASE, TRACK_SLOPE_NONE, TRACK_SLOPE_NONE, TRACK_BANK_NONE, TRACK_BANK_NONE, 0 }, // TrackElemType::FlatTrack3x3
|
||
{ TRACK_CORKSCREW_LARGE, TRACK_SLOPE_NONE, TRACK_SLOPE_NONE, TRACK_BANK_UPSIDE_DOWN, TRACK_BANK_NONE, 0 }, // TrackElemType::LeftLargeCorkscrewUp
|
||
{ TRACK_CORKSCREW_LARGE, TRACK_SLOPE_NONE, TRACK_SLOPE_NONE, TRACK_BANK_UPSIDE_DOWN, TRACK_BANK_NONE, 0 }, // TrackElemType::RightLargeCorkscrewUp
|
||
{ TRACK_CORKSCREW_LARGE, TRACK_SLOPE_NONE, TRACK_SLOPE_NONE, TRACK_BANK_NONE, TRACK_BANK_UPSIDE_DOWN, -32 }, // TrackElemType::LeftLargeCorkscrewDown
|
||
{ TRACK_CORKSCREW_LARGE, TRACK_SLOPE_NONE, TRACK_SLOPE_NONE, TRACK_BANK_NONE, TRACK_BANK_UPSIDE_DOWN, -32 }, // TrackElemType::RightLargeCorkscrewDown
|
||
{ TRACK_HALF_LOOP_MEDIUM, TRACK_SLOPE_NONE, TRACK_SLOPE_UP_25, TRACK_BANK_UPSIDE_DOWN, TRACK_BANK_NONE, 64 }, // TrackElemType::LeftMediumHalfLoopUp
|
||
{ TRACK_HALF_LOOP_MEDIUM, TRACK_SLOPE_NONE, TRACK_SLOPE_UP_25, TRACK_BANK_UPSIDE_DOWN, TRACK_BANK_NONE, 64 }, // TrackElemType::RightMediumHalfLoopUp
|
||
{ TRACK_HALF_LOOP_MEDIUM, TRACK_SLOPE_DOWN_25, TRACK_SLOPE_NONE, TRACK_BANK_NONE, TRACK_BANK_UPSIDE_DOWN, -64 }, // TrackElemType::LeftMediumHalfLoopDown
|
||
{ TRACK_HALF_LOOP_MEDIUM, TRACK_SLOPE_DOWN_25, TRACK_SLOPE_NONE, TRACK_BANK_NONE, TRACK_BANK_UPSIDE_DOWN, -64 }, // TrackElemType::RightMediumHalfLoopDown
|
||
{ TRACK_ZERO_G_ROLL, TRACK_SLOPE_NONE, TRACK_SLOPE_UP_25, TRACK_BANK_UPSIDE_DOWN, TRACK_BANK_NONE, 0 }, // TrackElemType::LeftZeroGRollUp
|
||
{ TRACK_ZERO_G_ROLL, TRACK_SLOPE_NONE, TRACK_SLOPE_UP_25, TRACK_BANK_UPSIDE_DOWN, TRACK_BANK_NONE, 0 }, // TrackElemType::RightZeroGRollUp
|
||
{ TRACK_ZERO_G_ROLL, TRACK_SLOPE_DOWN_25, TRACK_SLOPE_NONE, TRACK_BANK_NONE, TRACK_BANK_UPSIDE_DOWN, 0 }, // TrackElemType::LeftZeroGRollDown
|
||
{ TRACK_ZERO_G_ROLL, TRACK_SLOPE_DOWN_25, TRACK_SLOPE_NONE, TRACK_BANK_NONE, TRACK_BANK_UPSIDE_DOWN, 0 }, // TrackElemType::RightZeroGRollDown
|
||
{ TRACK_ZERO_G_ROLL_LARGE, TRACK_SLOPE_NONE, TRACK_SLOPE_UP_60, TRACK_BANK_UPSIDE_DOWN, TRACK_BANK_NONE, 0 }, // TrackElemType::LeftLargeZeroGRollUp
|
||
{ TRACK_ZERO_G_ROLL_LARGE, TRACK_SLOPE_NONE, TRACK_SLOPE_UP_60, TRACK_BANK_UPSIDE_DOWN, TRACK_BANK_NONE, 0 }, // TrackElemType::RightLargeZeroGRollUp
|
||
{ TRACK_ZERO_G_ROLL_LARGE, TRACK_SLOPE_DOWN_60, TRACK_SLOPE_NONE, TRACK_BANK_NONE, TRACK_BANK_UPSIDE_DOWN, 0 }, // TrackElemType::LeftLargeZeroGRollDown
|
||
{ TRACK_ZERO_G_ROLL_LARGE, TRACK_SLOPE_DOWN_60, TRACK_SLOPE_NONE, TRACK_BANK_NONE, TRACK_BANK_UPSIDE_DOWN, 0 }, // TrackElemType::RightLargeZeroGRollDown
|
||
{ TRACK_FLYING_LARGE_HALF_LOOP_UNINVERTED_UP, TRACK_SLOPE_NONE, TRACK_SLOPE_UP_25, TRACK_BANK_UPSIDE_DOWN, TRACK_BANK_NONE, 64 }, // TrackElemType::LeftFlyerLargeHalfLoopUninvertedUp
|
||
{ TRACK_FLYING_LARGE_HALF_LOOP_UNINVERTED_UP, TRACK_SLOPE_NONE, TRACK_SLOPE_UP_25, TRACK_BANK_UPSIDE_DOWN, TRACK_BANK_NONE, 64 }, // TrackElemType::RightFlyerLargeHalfLoopUninvertedUp
|
||
{ TRACK_FLYING_LARGE_HALF_LOOP_INVERTED_DOWN, TRACK_SLOPE_DOWN_25, TRACK_SLOPE_NONE, TRACK_BANK_UPSIDE_DOWN, TRACK_BANK_NONE, -64 }, // TrackElemType::LeftFlyerLargeHalfLoopInvertedDown
|
||
{ TRACK_FLYING_LARGE_HALF_LOOP_INVERTED_DOWN, TRACK_SLOPE_DOWN_25, TRACK_SLOPE_NONE, TRACK_BANK_UPSIDE_DOWN, TRACK_BANK_NONE, -64 }, // TrackElemType::RightFlyerLargeHalfLoopInvertedDown
|
||
{ TRACK_FLYING_LARGE_HALF_LOOP_INVERTED_UP, TRACK_SLOPE_NONE, TRACK_SLOPE_UP_25, TRACK_BANK_UPSIDE_DOWN, TRACK_BANK_NONE, 64 }, // TrackElemType::LeftFlyerLargeHalfLoopInvertedUp
|
||
{ TRACK_FLYING_LARGE_HALF_LOOP_INVERTED_UP, TRACK_SLOPE_NONE, TRACK_SLOPE_UP_25, TRACK_BANK_UPSIDE_DOWN, TRACK_BANK_NONE, 64 }, // TrackElemType::RightFlyerLargeHalfLoopInvertedUp
|
||
{ TRACK_FLYING_LARGE_HALF_LOOP_UNINVERTED_DOWN, TRACK_SLOPE_DOWN_25, TRACK_SLOPE_NONE, TRACK_BANK_UPSIDE_DOWN, TRACK_BANK_NONE, -64 }, // TrackElemType::LeftFlyerLargeHalfLoopUninvertedDown
|
||
{ TRACK_FLYING_LARGE_HALF_LOOP_UNINVERTED_DOWN, TRACK_SLOPE_DOWN_25, TRACK_SLOPE_NONE, TRACK_BANK_UPSIDE_DOWN, TRACK_BANK_NONE, -64 }, // TrackElemType::RightFlyerLargeHalfLoopUninvertedDown
|
||
{ TRACK_FLYING_HALF_LOOP_INVERTED_UP, TRACK_SLOPE_NONE, TRACK_SLOPE_UP_25, TRACK_BANK_UPSIDE_DOWN, TRACK_BANK_NONE, 64 }, // TrackElemType::FlyerHalfLoopInvertedUp
|
||
{ TRACK_FLYING_HALF_LOOP_UNINVERTED_DOWN, TRACK_SLOPE_DOWN_25, TRACK_SLOPE_NONE, TRACK_BANK_UPSIDE_DOWN, TRACK_BANK_NONE, -64 }, // TrackElemType::FlyerHalfLoopUninvertedDown
|
||
{ TRACK_SLOPE_CURVE_LARGE, TRACK_SLOPE_UP_25, TRACK_SLOPE_UP_25, TRACK_BANK_NONE, TRACK_BANK_NONE, 0 }, // TrackElemType::LeftEighthToDiagUp25
|
||
{ TRACK_SLOPE_CURVE_LARGE, TRACK_SLOPE_UP_25, TRACK_SLOPE_UP_25, TRACK_BANK_NONE, TRACK_BANK_NONE, 0 }, // TrackElemType::RightEighthToDiagUp25
|
||
{ TRACK_SLOPE_CURVE_LARGE, TRACK_SLOPE_DOWN_25, TRACK_SLOPE_DOWN_25, TRACK_BANK_NONE, TRACK_BANK_NONE, 0 }, // TrackElemType::LeftEighthToDiagDown25
|
||
{ TRACK_SLOPE_CURVE_LARGE, TRACK_SLOPE_DOWN_25, TRACK_SLOPE_DOWN_25, TRACK_BANK_NONE, TRACK_BANK_NONE, 0 }, // TrackElemType::RightEighthToDiagDown25
|
||
{ TRACK_SLOPE_CURVE_LARGE, TRACK_SLOPE_UP_25, TRACK_SLOPE_UP_25, TRACK_BANK_NONE, TRACK_BANK_NONE, 0 }, // TrackElemType::LeftEighthToOrthogonalUp25
|
||
{ TRACK_SLOPE_CURVE_LARGE, TRACK_SLOPE_UP_25, TRACK_SLOPE_UP_25, TRACK_BANK_NONE, TRACK_BANK_NONE, 0 }, // TrackElemType::RightEighthToOrthogonalUp25
|
||
{ TRACK_SLOPE_CURVE_LARGE, TRACK_SLOPE_DOWN_25, TRACK_SLOPE_DOWN_25, TRACK_BANK_NONE, TRACK_BANK_NONE, 0 }, // TrackElemType::LeftEighthToOrthogonalDown25
|
||
{ TRACK_SLOPE_CURVE_LARGE, TRACK_SLOPE_DOWN_25, TRACK_SLOPE_DOWN_25, TRACK_BANK_NONE, TRACK_BANK_NONE, 0 }, // TrackElemType::RightEighthToOrthogonalDown25
|
||
{ TRACK_SLOPE_CURVE_LARGE_BANKED, TRACK_SLOPE_UP_25, TRACK_SLOPE_UP_25, TRACK_BANK_LEFT, TRACK_BANK_NONE, 0 }, // TrackElemType::DiagUp25ToLeftBankedUp25
|
||
{ TRACK_SLOPE_CURVE_LARGE_BANKED, TRACK_SLOPE_UP_25, TRACK_SLOPE_UP_25, TRACK_BANK_RIGHT, TRACK_BANK_NONE, 0 }, // TrackElemType::DiagUp25ToRightBankedUp25
|
||
{ TRACK_SLOPE_CURVE_LARGE_BANKED, TRACK_SLOPE_UP_25, TRACK_SLOPE_UP_25, TRACK_BANK_NONE, TRACK_BANK_LEFT, 0 }, // TrackElemType::DiagLeftBankedUp25ToUp25
|
||
{ TRACK_SLOPE_CURVE_LARGE_BANKED, TRACK_SLOPE_UP_25, TRACK_SLOPE_UP_25, TRACK_BANK_NONE, TRACK_BANK_RIGHT, 0 }, // TrackElemType::DiagRightBankedUp25ToUp25
|
||
{ TRACK_SLOPE_CURVE_LARGE_BANKED, TRACK_SLOPE_DOWN_25, TRACK_SLOPE_DOWN_25, TRACK_BANK_LEFT, TRACK_BANK_NONE, 0 }, // TrackElemType::DiagDown25ToLeftBankedDown25
|
||
{ TRACK_SLOPE_CURVE_LARGE_BANKED, TRACK_SLOPE_DOWN_25, TRACK_SLOPE_DOWN_25, TRACK_BANK_RIGHT, TRACK_BANK_NONE, 0 }, // TrackElemType::DiagDown25ToRightBankedDown25
|
||
{ TRACK_SLOPE_CURVE_LARGE_BANKED, TRACK_SLOPE_DOWN_25, TRACK_SLOPE_DOWN_25, TRACK_BANK_NONE, TRACK_BANK_LEFT, 0 }, // TrackElemType::DiagLeftBankedDown25ToDown25
|
||
{ TRACK_SLOPE_CURVE_LARGE_BANKED, TRACK_SLOPE_DOWN_25, TRACK_SLOPE_DOWN_25, TRACK_BANK_NONE, TRACK_BANK_RIGHT, 0 }, // TrackElemType::DiagRightBankedDown25ToDown25
|
||
{ TRACK_SLOPE_CURVE_LARGE_BANKED, TRACK_SLOPE_UP_25, TRACK_SLOPE_NONE, TRACK_BANK_LEFT, TRACK_BANK_LEFT, 0 }, // TrackElemType::DiagLeftBankedFlatToLeftBankedUp25
|
||
{ TRACK_SLOPE_CURVE_LARGE_BANKED, TRACK_SLOPE_UP_25, TRACK_SLOPE_NONE, TRACK_BANK_RIGHT, TRACK_BANK_RIGHT, 0 }, // TrackElemType::DiagRightBankedFlatToRightBankedUp25
|
||
{ TRACK_SLOPE_CURVE_LARGE_BANKED, TRACK_SLOPE_NONE, TRACK_SLOPE_UP_25, TRACK_BANK_LEFT, TRACK_BANK_LEFT, 0 }, // TrackElemType::DiagLeftBankedUp25ToLeftBankedFlat
|
||
{ TRACK_SLOPE_CURVE_LARGE_BANKED, TRACK_SLOPE_NONE, TRACK_SLOPE_UP_25, TRACK_BANK_RIGHT, TRACK_BANK_RIGHT, 0 }, // TrackElemType::DiagRightBankedUp25ToRightBankedFlat
|
||
{ TRACK_SLOPE_CURVE_LARGE_BANKED, TRACK_SLOPE_DOWN_25, TRACK_SLOPE_NONE, TRACK_BANK_LEFT, TRACK_BANK_LEFT, 0 }, // TrackElemType::DiagLeftBankedFlatToLeftBankedDown25
|
||
{ TRACK_SLOPE_CURVE_LARGE_BANKED, TRACK_SLOPE_DOWN_25, TRACK_SLOPE_NONE, TRACK_BANK_RIGHT, TRACK_BANK_RIGHT, 0 }, // TrackElemType::DiagRightBankedFlatToRightBankedDown25
|
||
{ TRACK_SLOPE_CURVE_LARGE_BANKED, TRACK_SLOPE_NONE, TRACK_SLOPE_DOWN_25, TRACK_BANK_LEFT, TRACK_BANK_LEFT, 0 }, // TrackElemType::DiagLeftBankedDown25ToLeftBankedFlat
|
||
{ TRACK_SLOPE_CURVE_LARGE_BANKED, TRACK_SLOPE_NONE, TRACK_SLOPE_DOWN_25, TRACK_BANK_RIGHT, TRACK_BANK_RIGHT, 0 }, // TrackElemType::DiagRightBankedDown25ToRightBankedFlat
|
||
{ TRACK_SLOPE_CURVE_LARGE_BANKED, TRACK_SLOPE_UP_25, TRACK_SLOPE_NONE, TRACK_BANK_LEFT, TRACK_BANK_NONE, 0 }, // TrackElemType::DiagFlatToLeftBankedUp25
|
||
{ TRACK_SLOPE_CURVE_LARGE_BANKED, TRACK_SLOPE_UP_25, TRACK_SLOPE_NONE, TRACK_BANK_RIGHT, TRACK_BANK_NONE, 0 }, // TrackElemType::DiagFlatToRightBankedUp25
|
||
{ TRACK_SLOPE_CURVE_LARGE_BANKED, TRACK_SLOPE_NONE, TRACK_SLOPE_UP_25, TRACK_BANK_NONE, TRACK_BANK_LEFT, 0 }, // TrackElemType::DiagLeftBankedUp25ToFlat
|
||
{ TRACK_SLOPE_CURVE_LARGE_BANKED, TRACK_SLOPE_NONE, TRACK_SLOPE_UP_25, TRACK_BANK_NONE, TRACK_BANK_RIGHT, 0 }, // TrackElemType::DiagRightBankedUp25ToFlat
|
||
{ TRACK_SLOPE_CURVE_LARGE_BANKED, TRACK_SLOPE_DOWN_25, TRACK_SLOPE_NONE, TRACK_BANK_LEFT, TRACK_BANK_NONE, 0 }, // TrackElemType::DiagFlatToLeftBankedDown25
|
||
{ TRACK_SLOPE_CURVE_LARGE_BANKED, TRACK_SLOPE_DOWN_25, TRACK_SLOPE_NONE, TRACK_BANK_RIGHT, TRACK_BANK_NONE, 0 }, // TrackElemType::DiagFlatToRightBankedDown25
|
||
{ TRACK_SLOPE_CURVE_LARGE_BANKED, TRACK_SLOPE_NONE, TRACK_SLOPE_DOWN_25, TRACK_BANK_NONE, TRACK_BANK_LEFT, 0 }, // TrackElemType::DiagLeftBankedDown25ToFlat
|
||
{ TRACK_SLOPE_CURVE_LARGE_BANKED, TRACK_SLOPE_NONE, TRACK_SLOPE_DOWN_25, TRACK_BANK_NONE, TRACK_BANK_RIGHT, 0 }, // TrackElemType::DiagRightBankedDown25ToFlat
|
||
{ TRACK_SLOPE_CURVE_LARGE_BANKED, TRACK_SLOPE_UP_25, TRACK_SLOPE_UP_25, TRACK_BANK_LEFT, TRACK_BANK_LEFT, 0 }, // TrackElemType::Up25LeftBanked
|
||
{ TRACK_SLOPE_CURVE_LARGE_BANKED, TRACK_SLOPE_UP_25, TRACK_SLOPE_UP_25, TRACK_BANK_RIGHT, TRACK_BANK_RIGHT, 0 }, // TrackElemType::Up25RightBanked
|
||
{ TRACK_SLOPE_CURVE_LARGE_BANKED, TRACK_SLOPE_DOWN_25, TRACK_SLOPE_DOWN_25, TRACK_BANK_LEFT, TRACK_BANK_LEFT, 0 }, // TrackElemType::Down25LeftBanked
|
||
{ TRACK_SLOPE_CURVE_LARGE_BANKED, TRACK_SLOPE_DOWN_25, TRACK_SLOPE_DOWN_25, TRACK_BANK_RIGHT, TRACK_BANK_RIGHT, 0 }, // TrackElemType::Down25RightBanked
|
||
{ TRACK_SLOPE_CURVE_LARGE_BANKED, TRACK_SLOPE_UP_25, TRACK_SLOPE_UP_25, TRACK_BANK_LEFT, TRACK_BANK_LEFT, 0 }, // TrackElemType::LeftEighthBankToDiagUp25
|
||
{ TRACK_SLOPE_CURVE_LARGE_BANKED, TRACK_SLOPE_UP_25, TRACK_SLOPE_UP_25, TRACK_BANK_RIGHT, TRACK_BANK_RIGHT, 0 }, // TrackElemType::RightEighthBankToDiagUp25
|
||
{ TRACK_SLOPE_CURVE_LARGE_BANKED, TRACK_SLOPE_DOWN_25, TRACK_SLOPE_DOWN_25, TRACK_BANK_LEFT, TRACK_BANK_LEFT, 0 }, // TrackElemType::LeftEighthBankToDiagDown25
|
||
{ TRACK_SLOPE_CURVE_LARGE_BANKED, TRACK_SLOPE_DOWN_25, TRACK_SLOPE_DOWN_25, TRACK_BANK_RIGHT, TRACK_BANK_RIGHT, 0 }, // TrackElemType::RightEighthBankToDiagDown25
|
||
{ TRACK_SLOPE_CURVE_LARGE_BANKED, TRACK_SLOPE_UP_25, TRACK_SLOPE_UP_25, TRACK_BANK_LEFT, TRACK_BANK_LEFT, 0 }, // TrackElemType::LeftEighthBankToOrthogonalUp25
|
||
{ TRACK_SLOPE_CURVE_LARGE_BANKED, TRACK_SLOPE_UP_25, TRACK_SLOPE_UP_25, TRACK_BANK_RIGHT, TRACK_BANK_RIGHT, 0 }, // TrackElemType::RightEighthBankToOrthogonalUp25
|
||
{ TRACK_SLOPE_CURVE_LARGE_BANKED, TRACK_SLOPE_DOWN_25, TRACK_SLOPE_DOWN_25, TRACK_BANK_LEFT, TRACK_BANK_LEFT, 0 }, // TrackElemType::LeftEighthBankToOrthogonalDown25
|
||
{ TRACK_SLOPE_CURVE_LARGE_BANKED, TRACK_SLOPE_DOWN_25, TRACK_SLOPE_DOWN_25, TRACK_BANK_RIGHT, TRACK_BANK_RIGHT, 0 }, // TrackElemType::RightEighthBankToOrthogonalDown25
|
||
};
|
||
static_assert(std::size(TrackDefinitions) == TrackElemType::Count);
|
||
|
||
// clang-format on
|
||
|
||
constexpr static uint8_t TrackTypeToSpinFunction[] = {
|
||
NO_SPIN, NO_SPIN, NO_SPIN, NO_SPIN, NO_SPIN, NO_SPIN, NO_SPIN, NO_SPIN, NO_SPIN, NO_SPIN, NO_SPIN, NO_SPIN, NO_SPIN,
|
||
NO_SPIN, NO_SPIN, NO_SPIN, L8_SPIN, R8_SPIN, NO_SPIN, NO_SPIN, NO_SPIN, NO_SPIN, L8_SPIN, R8_SPIN, NO_SPIN, NO_SPIN,
|
||
NO_SPIN, NO_SPIN, NO_SPIN, NO_SPIN, NO_SPIN, NO_SPIN, NO_SPIN, NO_SPIN, L8_SPIN, R8_SPIN, L8_SPIN, R8_SPIN, LR_SPIN,
|
||
RL_SPIN, NO_SPIN, NO_SPIN, L7_SPIN, R7_SPIN, L7_SPIN, R7_SPIN, L7_SPIN, R7_SPIN, L7_SPIN, R7_SPIN, L5_SPIN, R5_SPIN,
|
||
NO_SPIN, NO_SPIN, NO_SPIN, NO_SPIN, NO_SPIN, NO_SPIN, NO_SPIN, NO_SPIN, NO_SPIN, NO_SPIN, NO_SPIN, NO_SPIN, NO_SPIN,
|
||
NO_SPIN, NO_SPIN, NO_SPIN, NO_SPIN, NO_SPIN, NO_SPIN, NO_SPIN, NO_SPIN, NO_SPIN, NO_SPIN, NO_SPIN, NO_SPIN, NO_SPIN,
|
||
NO_SPIN, NO_SPIN, NO_SPIN, L8_SPIN, R8_SPIN, LR_SPIN, RL_SPIN, L7_SPIN, R7_SPIN, L7_SPIN, R7_SPIN, L7_SPIN, R7_SPIN,
|
||
L8_SPIN, R8_SPIN, L8_SPIN, R8_SPIN, L5_SPIN, R5_SPIN, L5_SPIN, R5_SPIN, NO_SPIN, RC_SPIN, NO_SPIN, L8_SPIN, R8_SPIN,
|
||
L8_SPIN, R8_SPIN, L8_SPIN, R8_SPIN, L8_SPIN, R8_SPIN, NO_SPIN, NO_SPIN, NO_SPIN, SP_SPIN, NO_SPIN, NO_SPIN, NO_SPIN,
|
||
NO_SPIN, NO_SPIN, NO_SPIN, R5_SPIN, NO_SPIN, NO_SPIN, NO_SPIN, NO_SPIN, NO_SPIN, NO_SPIN, NO_SPIN, NO_SPIN, NO_SPIN,
|
||
NO_SPIN, NO_SPIN, NO_SPIN, L9_SPIN, R9_SPIN, L9_SPIN, R9_SPIN, L9_SPIN, R9_SPIN, L9_SPIN, R9_SPIN, NO_SPIN, NO_SPIN,
|
||
NO_SPIN, NO_SPIN, NO_SPIN, NO_SPIN, NO_SPIN, NO_SPIN, NO_SPIN, NO_SPIN, NO_SPIN, NO_SPIN, NO_SPIN, NO_SPIN, NO_SPIN,
|
||
NO_SPIN, NO_SPIN, NO_SPIN, NO_SPIN, NO_SPIN, NO_SPIN, NO_SPIN, NO_SPIN, NO_SPIN, NO_SPIN, NO_SPIN, NO_SPIN, NO_SPIN,
|
||
NO_SPIN, NO_SPIN, NO_SPIN, NO_SPIN, NO_SPIN, NO_SPIN, NO_SPIN, NO_SPIN, NO_SPIN, L7_SPIN, R7_SPIN, L7_SPIN, R7_SPIN,
|
||
NO_SPIN, NO_SPIN, NO_SPIN, NO_SPIN, NO_SPIN, NO_SPIN, NO_SPIN, NO_SPIN, NO_SPIN, NO_SPIN, NO_SPIN, NO_SPIN, NO_SPIN,
|
||
NO_SPIN, NO_SPIN, NO_SPIN, NO_SPIN, NO_SPIN, NO_SPIN, NO_SPIN, NO_SPIN, NO_SPIN, NO_SPIN, NO_SPIN, NO_SPIN, NO_SPIN,
|
||
NO_SPIN, L7_SPIN, R7_SPIN, NO_SPIN, NO_SPIN, NO_SPIN, NO_SPIN, NO_SPIN, NO_SPIN, L7_SPIN, R7_SPIN, L7_SPIN, R7_SPIN,
|
||
L8_SPIN, R8_SPIN, L8_SPIN, R8_SPIN, NO_SPIN, NO_SPIN, NO_SPIN, NO_SPIN, NO_SPIN, NO_SPIN, NO_SPIN, NO_SPIN, NO_SPIN,
|
||
NO_SPIN, NO_SPIN, NO_SPIN, NO_SPIN, NO_SPIN, NO_SPIN, NO_SPIN, NO_SPIN, NO_SPIN, NO_SPIN, NO_SPIN, NO_SPIN, NO_SPIN,
|
||
NO_SPIN, NO_SPIN, NO_SPIN, NO_SPIN, NO_SPIN, NO_SPIN, NO_SPIN, NO_SPIN, NO_SPIN, NO_SPIN, NO_SPIN, NO_SPIN, NO_SPIN,
|
||
NO_SPIN, NO_SPIN, NO_SPIN, NO_SPIN, NO_SPIN, NO_SPIN, NO_SPIN, NO_SPIN, NO_SPIN, NO_SPIN, NO_SPIN, NO_SPIN, NO_SPIN,
|
||
NO_SPIN, NO_SPIN, NO_SPIN, NO_SPIN, NO_SPIN, NO_SPIN, NO_SPIN, NO_SPIN, NO_SPIN, NO_SPIN, NO_SPIN, NO_SPIN, NO_SPIN,
|
||
NO_SPIN, NO_SPIN, NO_SPIN, NO_SPIN, NO_SPIN, NO_SPIN, NO_SPIN, NO_SPIN, NO_SPIN, NO_SPIN, NO_SPIN, NO_SPIN, NO_SPIN,
|
||
NO_SPIN, NO_SPIN, NO_SPIN, NO_SPIN, NO_SPIN, NO_SPIN, NO_SPIN, NO_SPIN, NO_SPIN, NO_SPIN, NO_SPIN, NO_SPIN, NO_SPIN,
|
||
NO_SPIN, NO_SPIN, NO_SPIN, NO_SPIN, NO_SPIN, NO_SPIN, NO_SPIN, NO_SPIN, NO_SPIN, NO_SPIN, NO_SPIN, NO_SPIN, NO_SPIN,
|
||
NO_SPIN, NO_SPIN, NO_SPIN, NO_SPIN, NO_SPIN, NO_SPIN, NO_SPIN, NO_SPIN, NO_SPIN, NO_SPIN, NO_SPIN, NO_SPIN,
|
||
};
|
||
static_assert(std::size(TrackTypeToSpinFunction) == TrackElemType::Count);
|
||
|
||
template<int32_t TConstant> static int32_t EvaluatorConst(const int16_t)
|
||
{
|
||
return TConstant;
|
||
}
|
||
|
||
static int32_t EvaluatorVerticalLoop(const int16_t progress)
|
||
{
|
||
return (abs(progress - 155) / 2) + 28;
|
||
}
|
||
|
||
static int32_t EvaluatorHalfLoopUp(const int16_t progress)
|
||
{
|
||
return ((static_cast<uint16_t>(-(progress - 155))) / 2) + 28;
|
||
}
|
||
|
||
static int32_t EvaluatorHalfLoopDown(const int16_t progress)
|
||
{
|
||
return (progress / 2) + 28;
|
||
}
|
||
|
||
static int32_t EvaluatorLargeZeroGRollUp(const int16_t progress)
|
||
{
|
||
if (progress > 114)
|
||
return (371 - 2 * progress);
|
||
return 0;
|
||
}
|
||
|
||
static int32_t EvaluatorLargeZeroGRollDown(const int16_t progress)
|
||
{
|
||
if (progress < 38)
|
||
return 67 + 2 * progress;
|
||
return 0;
|
||
}
|
||
|
||
static int32_t EvaluatorLargeZeroGRollUpLeft(const int16_t progress)
|
||
{
|
||
return 387 - 2 * progress;
|
||
}
|
||
|
||
static int32_t EvaluatorLargeZeroGRollUpRight(const int16_t progress)
|
||
{
|
||
return 2 * progress - 387;
|
||
}
|
||
|
||
static int32_t EvaluatorLargeZeroGRollDownLeft(const int16_t progress)
|
||
{
|
||
return 83 + 2 * progress;
|
||
}
|
||
|
||
static int32_t EvaluatorLargeZeroGRollDownRight(const int16_t progress)
|
||
{
|
||
return -(83 + 2 * progress);
|
||
}
|
||
|
||
static int32_t EvaluatorZeroGRollUpLeft(const int16_t progress)
|
||
{
|
||
return 174 - progress;
|
||
}
|
||
|
||
static int32_t EvaluatorZeroGRollUpRight(const int16_t progress)
|
||
{
|
||
return progress - 174;
|
||
}
|
||
|
||
static int32_t EvaluatorZeroGRollDownLeft(const int16_t progress)
|
||
{
|
||
return 73 + progress;
|
||
}
|
||
|
||
static int32_t EvaluatorZeroGRollDownRight(const int16_t progress)
|
||
{
|
||
return -(73 + progress);
|
||
}
|
||
|
||
static int32_t EvaluatorWaterSplash(const int16_t progress)
|
||
{
|
||
if (progress < 32)
|
||
return -150;
|
||
if (progress < 64)
|
||
return 150;
|
||
if (progress < 96)
|
||
return 0;
|
||
if (progress < 128)
|
||
return 150;
|
||
return -150;
|
||
}
|
||
|
||
static int32_t EvaluatorQuarterTurn3Tiles(const int16_t progress)
|
||
{
|
||
return -(progress / 2) + 134;
|
||
}
|
||
|
||
static int32_t EvaluatorMediumHalfLoopUp(const int16_t progress)
|
||
{
|
||
return (244 - progress) / 4 + 51;
|
||
}
|
||
|
||
static int32_t EvaluatorMediumHalfLoopDown(const int16_t progress)
|
||
{
|
||
return (progress / 4) + 51;
|
||
}
|
||
|
||
static int32_t EvaluatorLargeHalfLoopUp(const int16_t progress)
|
||
{
|
||
return ((static_cast<uint16_t>(-(progress - 311))) / 4) + 46;
|
||
}
|
||
|
||
static int32_t EvaluatorLargeHalfLoopDown(const int16_t progress)
|
||
{
|
||
return (progress / 4) + 46;
|
||
}
|
||
|
||
static int32_t EvaluatorHeartLineTransferUp(const int16_t progress)
|
||
{
|
||
if (progress < 32)
|
||
return 103;
|
||
if (progress < 64)
|
||
return -103;
|
||
if (progress < 96)
|
||
return 0;
|
||
if (progress < 128)
|
||
return 103;
|
||
return -103;
|
||
}
|
||
|
||
static int32_t EvaluatorHeartLineTransferDown(const int16_t progress)
|
||
{
|
||
if (progress < 32)
|
||
return -103;
|
||
if (progress < 64)
|
||
return 103;
|
||
if (progress < 96)
|
||
return 0;
|
||
if (progress < 128)
|
||
return -103;
|
||
return 103;
|
||
}
|
||
|
||
static int32_t EvaluatorDown90QuarterLoop(const int16_t progress)
|
||
{
|
||
return (progress / 4) + 55;
|
||
}
|
||
|
||
static int32_t EvaluatorUp90QuarterLoop(const int16_t progress)
|
||
{
|
||
return ((static_cast<uint16_t>(-(progress - 137))) / 4) + 55;
|
||
}
|
||
|
||
static int32_t EvaluatorSBendLeft(const int16_t progress)
|
||
{
|
||
return (progress < 48) ? 98 : -98;
|
||
}
|
||
|
||
static int32_t EvaluatorSBendRight(const int16_t progress)
|
||
{
|
||
return (progress < 48) ? -98 : 98;
|
||
}
|
||
|
||
static constexpr TrackComputeFunction GetLateralFunction(const uint16_t type)
|
||
{
|
||
switch (type)
|
||
{
|
||
case TrackElemType::Flat:
|
||
case TrackElemType::EndStation:
|
||
case TrackElemType::BeginStation:
|
||
case TrackElemType::MiddleStation:
|
||
case TrackElemType::Up25:
|
||
case TrackElemType::Up60: //
|
||
case TrackElemType::Down25:
|
||
case TrackElemType::Down60: //
|
||
case TrackElemType::FlatToLeftBank:
|
||
case TrackElemType::FlatToRightBank:
|
||
case TrackElemType::LeftBankToFlat:
|
||
case TrackElemType::RightBankToFlat: //
|
||
case TrackElemType::LeftBank:
|
||
case TrackElemType::RightBank:
|
||
case TrackElemType::TowerBase:
|
||
case TrackElemType::TowerSection:
|
||
case TrackElemType::FlatCovered:
|
||
case TrackElemType::Up25Covered:
|
||
case TrackElemType::Up60Covered:
|
||
case TrackElemType::Down25Covered:
|
||
case TrackElemType::Down60Covered:
|
||
case TrackElemType::Brakes:
|
||
case TrackElemType::RotationControlToggle:
|
||
case TrackElemType::Maze:
|
||
case TrackElemType::Up25LeftBanked:
|
||
case TrackElemType::Up25RightBanked:
|
||
case TrackElemType::Waterfall:
|
||
case TrackElemType::Rapids:
|
||
case TrackElemType::OnRidePhoto:
|
||
case TrackElemType::Down25LeftBanked:
|
||
case TrackElemType::Down25RightBanked:
|
||
case TrackElemType::Whirlpool:
|
||
case TrackElemType::ReverseFreefallVertical:
|
||
case TrackElemType::Up90:
|
||
case TrackElemType::Down90:
|
||
case TrackElemType::DiagFlat:
|
||
case TrackElemType::DiagUp25:
|
||
case TrackElemType::DiagUp60:
|
||
case TrackElemType::DiagDown25:
|
||
case TrackElemType::DiagDown60:
|
||
case TrackElemType::DiagFlatToLeftBank:
|
||
case TrackElemType::DiagFlatToRightBank:
|
||
case TrackElemType::DiagLeftBankToFlat:
|
||
case TrackElemType::DiagRightBankToFlat:
|
||
case TrackElemType::DiagLeftBank:
|
||
case TrackElemType::DiagRightBank:
|
||
case TrackElemType::LogFlumeReverser:
|
||
case TrackElemType::SpinningTunnel:
|
||
case TrackElemType::PoweredLift:
|
||
case TrackElemType::MinigolfHoleA:
|
||
case TrackElemType::MinigolfHoleB:
|
||
case TrackElemType::MinigolfHoleC:
|
||
case TrackElemType::MinigolfHoleD:
|
||
case TrackElemType::MinigolfHoleE:
|
||
case TrackElemType::LeftReverser:
|
||
case TrackElemType::RightReverser:
|
||
case TrackElemType::AirThrustVerticalDown:
|
||
case TrackElemType::BlockBrakes:
|
||
case TrackElemType::Up25ToLeftBankedUp25:
|
||
case TrackElemType::Up25ToRightBankedUp25:
|
||
case TrackElemType::LeftBankedUp25ToUp25:
|
||
case TrackElemType::RightBankedUp25ToUp25:
|
||
case TrackElemType::Down25ToLeftBankedDown25:
|
||
case TrackElemType::Down25ToRightBankedDown25:
|
||
case TrackElemType::LeftBankedDown25ToDown25:
|
||
case TrackElemType::RightBankedDown25ToDown25:
|
||
case TrackElemType::LeftQuarterTurn1TileUp90:
|
||
case TrackElemType::RightQuarterTurn1TileUp90:
|
||
case TrackElemType::LeftQuarterTurn1TileDown90:
|
||
case TrackElemType::RightQuarterTurn1TileDown90:
|
||
return EvaluatorConst<0>;
|
||
case TrackElemType::FlatToUp25: //
|
||
case TrackElemType::Down25ToFlat: //
|
||
case TrackElemType::LeftBankToUp25:
|
||
case TrackElemType::RightBankToUp25:
|
||
case TrackElemType::Down25ToLeftBank:
|
||
case TrackElemType::Down25ToRightBank:
|
||
case TrackElemType::FlatToUp25Covered:
|
||
case TrackElemType::Down25ToFlatCovered:
|
||
case TrackElemType::LeftBankedFlatToLeftBankedUp25:
|
||
case TrackElemType::RightBankedFlatToRightBankedUp25:
|
||
case TrackElemType::LeftBankedDown25ToLeftBankedFlat:
|
||
case TrackElemType::RightBankedDown25ToRightBankedFlat:
|
||
case TrackElemType::FlatToLeftBankedUp25:
|
||
case TrackElemType::FlatToRightBankedUp25:
|
||
case TrackElemType::LeftBankedDown25ToFlat:
|
||
case TrackElemType::RightBankedDown25ToFlat:
|
||
case TrackElemType::DiagUp25ToLeftBankedUp25:
|
||
case TrackElemType::DiagUp25ToRightBankedUp25:
|
||
case TrackElemType::DiagLeftBankedUp25ToUp25:
|
||
case TrackElemType::DiagRightBankedUp25ToUp25:
|
||
case TrackElemType::DiagDown25ToLeftBankedDown25:
|
||
case TrackElemType::DiagDown25ToRightBankedDown25:
|
||
case TrackElemType::DiagLeftBankedDown25ToDown25:
|
||
case TrackElemType::DiagRightBankedDown25ToDown25:
|
||
case TrackElemType::DiagLeftBankedFlatToLeftBankedUp25:
|
||
case TrackElemType::DiagRightBankedFlatToRightBankedUp25:
|
||
case TrackElemType::DiagLeftBankedUp25ToLeftBankedFlat:
|
||
case TrackElemType::DiagRightBankedUp25ToRightBankedFlat:
|
||
case TrackElemType::DiagLeftBankedFlatToLeftBankedDown25:
|
||
case TrackElemType::DiagRightBankedFlatToRightBankedDown25:
|
||
case TrackElemType::DiagLeftBankedDown25ToLeftBankedFlat:
|
||
case TrackElemType::DiagRightBankedDown25ToRightBankedFlat:
|
||
case TrackElemType::DiagFlatToLeftBankedUp25:
|
||
case TrackElemType::DiagFlatToRightBankedUp25:
|
||
case TrackElemType::DiagLeftBankedUp25ToFlat:
|
||
case TrackElemType::DiagRightBankedUp25ToFlat:
|
||
case TrackElemType::DiagFlatToLeftBankedDown25:
|
||
case TrackElemType::DiagFlatToRightBankedDown25:
|
||
case TrackElemType::DiagLeftBankedDown25ToFlat:
|
||
case TrackElemType::DiagRightBankedDown25ToFlat:
|
||
case TrackElemType::DiagUp25LeftBanked:
|
||
case TrackElemType::DiagUp25RightBanked:
|
||
case TrackElemType::DiagDown25LeftBanked:
|
||
case TrackElemType::DiagDown25RightBanked:
|
||
return EvaluatorConst<0>;
|
||
case TrackElemType::Up25ToFlat: //
|
||
case TrackElemType::FlatToDown25: //
|
||
case TrackElemType::Up25ToLeftBank:
|
||
case TrackElemType::Up25ToRightBank:
|
||
case TrackElemType::LeftBankToDown25:
|
||
case TrackElemType::RightBankToDown25:
|
||
case TrackElemType::Up25ToFlatCovered:
|
||
case TrackElemType::FlatToDown25Covered:
|
||
case TrackElemType::CableLiftHill:
|
||
case TrackElemType::LeftBankedUp25ToLeftBankedFlat:
|
||
case TrackElemType::RightBankedUp25ToRightBankedFlat:
|
||
case TrackElemType::LeftBankedFlatToLeftBankedDown25:
|
||
case TrackElemType::RightBankedFlatToRightBankedDown25:
|
||
case TrackElemType::LeftBankedUp25ToFlat:
|
||
case TrackElemType::RightBankedUp25ToFlat:
|
||
case TrackElemType::FlatToLeftBankedDown25:
|
||
case TrackElemType::FlatToRightBankedDown25:
|
||
return EvaluatorConst<0>;
|
||
case TrackElemType::Up25ToUp60: //
|
||
case TrackElemType::Down60ToDown25: //
|
||
case TrackElemType::Up25ToUp60Covered:
|
||
case TrackElemType::Down60ToDown25Covered:
|
||
return EvaluatorConst<0>;
|
||
case TrackElemType::Up60ToUp25: //
|
||
case TrackElemType::Down25ToDown60: //
|
||
case TrackElemType::Up60ToUp25Covered:
|
||
case TrackElemType::Down25ToDown60Covered:
|
||
return EvaluatorConst<0>;
|
||
case TrackElemType::LeftQuarterTurn5Tiles: //
|
||
case TrackElemType::LeftQuarterTurn5TilesUp25:
|
||
case TrackElemType::LeftQuarterTurn5TilesDown25:
|
||
case TrackElemType::LeftTwistDownToUp:
|
||
case TrackElemType::LeftTwistUpToDown:
|
||
case TrackElemType::LeftQuarterTurn5TilesCovered:
|
||
case TrackElemType::LeftQuarterHelixLargeUp:
|
||
case TrackElemType::LeftQuarterHelixLargeDown:
|
||
case TrackElemType::LeftFlyerTwistUp:
|
||
case TrackElemType::LeftFlyerTwistDown:
|
||
case TrackElemType::LeftHeartLineRoll:
|
||
return EvaluatorConst<98>;
|
||
case TrackElemType::RightQuarterTurn5Tiles: //
|
||
case TrackElemType::RightQuarterTurn5TilesUp25:
|
||
case TrackElemType::RightQuarterTurn5TilesDown25:
|
||
case TrackElemType::RightTwistDownToUp:
|
||
case TrackElemType::RightTwistUpToDown:
|
||
case TrackElemType::RightQuarterTurn5TilesCovered:
|
||
case TrackElemType::RightQuarterHelixLargeUp:
|
||
case TrackElemType::RightQuarterHelixLargeDown:
|
||
case TrackElemType::RightFlyerTwistUp:
|
||
case TrackElemType::RightFlyerTwistDown:
|
||
case TrackElemType::RightHeartLineRoll:
|
||
return EvaluatorConst<-98>;
|
||
case TrackElemType::BankedLeftQuarterTurn5Tiles:
|
||
case TrackElemType::LeftHalfBankedHelixUpLarge:
|
||
case TrackElemType::LeftHalfBankedHelixDownLarge:
|
||
case TrackElemType::LeftQuarterBankedHelixLargeUp:
|
||
case TrackElemType::LeftQuarterBankedHelixLargeDown:
|
||
return EvaluatorConst<160>;
|
||
case TrackElemType::BankedRightQuarterTurn5Tiles:
|
||
case TrackElemType::RightHalfBankedHelixUpLarge:
|
||
case TrackElemType::RightHalfBankedHelixDownLarge:
|
||
case TrackElemType::RightQuarterBankedHelixLargeUp:
|
||
case TrackElemType::RightQuarterBankedHelixLargeDown:
|
||
return EvaluatorConst<-160>;
|
||
case TrackElemType::SBendLeft:
|
||
case TrackElemType::SBendLeftCovered:
|
||
return EvaluatorSBendLeft;
|
||
case TrackElemType::SBendRight:
|
||
case TrackElemType::SBendRightCovered:
|
||
return EvaluatorSBendRight;
|
||
case TrackElemType::LeftVerticalLoop:
|
||
case TrackElemType::RightVerticalLoop:
|
||
return EvaluatorConst<0>;
|
||
case TrackElemType::LeftQuarterTurn3Tiles:
|
||
case TrackElemType::LeftQuarterTurn3TilesUp25:
|
||
case TrackElemType::LeftQuarterTurn3TilesDown25:
|
||
case TrackElemType::LeftQuarterTurn3TilesCovered:
|
||
case TrackElemType::LeftCurvedLiftHill:
|
||
return EvaluatorConst<59>;
|
||
case TrackElemType::RightQuarterTurn3Tiles:
|
||
case TrackElemType::RightQuarterTurn3TilesUp25:
|
||
case TrackElemType::RightQuarterTurn3TilesDown25:
|
||
case TrackElemType::RightQuarterTurn3TilesCovered:
|
||
case TrackElemType::RightCurvedLiftHill:
|
||
return EvaluatorConst<-59>;
|
||
case TrackElemType::LeftBankedQuarterTurn3Tiles:
|
||
case TrackElemType::LeftHalfBankedHelixUpSmall:
|
||
case TrackElemType::LeftHalfBankedHelixDownSmall:
|
||
return EvaluatorConst<100>;
|
||
case TrackElemType::RightBankedQuarterTurn3Tiles:
|
||
case TrackElemType::RightHalfBankedHelixUpSmall:
|
||
case TrackElemType::RightHalfBankedHelixDownSmall:
|
||
return EvaluatorConst<-100>;
|
||
case TrackElemType::LeftQuarterTurn1Tile:
|
||
return EvaluatorConst<45>;
|
||
case TrackElemType::RightQuarterTurn1Tile:
|
||
return EvaluatorConst<-45>;
|
||
case TrackElemType::HalfLoopUp:
|
||
case TrackElemType::FlyerHalfLoopUninvertedUp:
|
||
case TrackElemType::FlyerHalfLoopInvertedUp:
|
||
return EvaluatorConst<0>;
|
||
case TrackElemType::HalfLoopDown:
|
||
case TrackElemType::FlyerHalfLoopInvertedDown:
|
||
case TrackElemType::FlyerHalfLoopUninvertedDown:
|
||
return EvaluatorConst<0>;
|
||
case TrackElemType::LeftLargeCorkscrewUp:
|
||
case TrackElemType::RightLargeCorkscrewDown:
|
||
return EvaluatorConst<117>;
|
||
case TrackElemType::RightLargeCorkscrewUp:
|
||
case TrackElemType::LeftLargeCorkscrewDown:
|
||
return EvaluatorConst<-117>;
|
||
case TrackElemType::LeftCorkscrewUp:
|
||
case TrackElemType::RightCorkscrewDown:
|
||
case TrackElemType::LeftFlyerCorkscrewUp:
|
||
case TrackElemType::RightFlyerCorkscrewDown:
|
||
return EvaluatorConst<70>;
|
||
case TrackElemType::RightCorkscrewUp:
|
||
case TrackElemType::LeftCorkscrewDown:
|
||
case TrackElemType::RightFlyerCorkscrewUp:
|
||
case TrackElemType::LeftFlyerCorkscrewDown:
|
||
return EvaluatorConst<-70>;
|
||
case TrackElemType::FlatToUp60:
|
||
case TrackElemType::Down60ToFlat:
|
||
return EvaluatorConst<0>;
|
||
case TrackElemType::Up60ToFlat:
|
||
case TrackElemType::FlatToDown60:
|
||
case TrackElemType::BrakeForDrop:
|
||
return EvaluatorConst<0>;
|
||
case TrackElemType::LeftQuarterTurn1TileUp60:
|
||
case TrackElemType::LeftQuarterTurn1TileDown60:
|
||
return EvaluatorConst<88>;
|
||
case TrackElemType::RightQuarterTurn1TileUp60:
|
||
case TrackElemType::RightQuarterTurn1TileDown60:
|
||
return EvaluatorConst<-88>;
|
||
case TrackElemType::Watersplash:
|
||
return EvaluatorConst<0>;
|
||
case TrackElemType::FlatToUp60LongBase:
|
||
case TrackElemType::Down60ToFlatLongBase:
|
||
return EvaluatorConst<0>;
|
||
case TrackElemType::Up60ToFlatLongBase:
|
||
case TrackElemType::FlatToDown60LongBase:
|
||
return EvaluatorConst<0>;
|
||
case TrackElemType::ReverseFreefallSlope:
|
||
case TrackElemType::AirThrustVerticalDownToLevel:
|
||
return EvaluatorConst<0>;
|
||
case TrackElemType::Up60ToUp90:
|
||
case TrackElemType::Down90ToDown60:
|
||
return EvaluatorConst<0>;
|
||
case TrackElemType::Up90ToUp60:
|
||
case TrackElemType::Down60ToDown90:
|
||
return EvaluatorConst<0>;
|
||
case TrackElemType::LeftEighthToDiag:
|
||
case TrackElemType::LeftEighthToOrthogonal:
|
||
case TrackElemType::LeftEighthToDiagUp25:
|
||
case TrackElemType::LeftEighthToDiagDown25:
|
||
case TrackElemType::LeftEighthToOrthogonalUp25:
|
||
case TrackElemType::LeftEighthToOrthogonalDown25:
|
||
return EvaluatorConst<137>;
|
||
case TrackElemType::RightEighthToDiag:
|
||
case TrackElemType::RightEighthToOrthogonal:
|
||
case TrackElemType::RightEighthToDiagUp25:
|
||
case TrackElemType::RightEighthToDiagDown25:
|
||
case TrackElemType::RightEighthToOrthogonalUp25:
|
||
case TrackElemType::RightEighthToOrthogonalDown25:
|
||
return EvaluatorConst<-137>;
|
||
case TrackElemType::LeftEighthBankToDiag:
|
||
case TrackElemType::LeftEighthBankToOrthogonal:
|
||
case TrackElemType::LeftEighthBankToDiagUp25:
|
||
case TrackElemType::LeftEighthBankToDiagDown25:
|
||
case TrackElemType::LeftEighthBankToOrthogonalUp25:
|
||
case TrackElemType::LeftEighthBankToOrthogonalDown25:
|
||
return EvaluatorConst<200>;
|
||
case TrackElemType::RightEighthBankToDiag:
|
||
case TrackElemType::RightEighthBankToOrthogonal:
|
||
case TrackElemType::RightEighthBankToDiagUp25:
|
||
case TrackElemType::RightEighthBankToDiagDown25:
|
||
case TrackElemType::RightEighthBankToOrthogonalUp25:
|
||
case TrackElemType::RightEighthBankToOrthogonalDown25:
|
||
return EvaluatorConst<-200>;
|
||
case TrackElemType::DiagFlatToUp25:
|
||
case TrackElemType::DiagDown25ToFlat:
|
||
case TrackElemType::DiagLeftBankToUp25:
|
||
case TrackElemType::DiagRightBankToUp25:
|
||
case TrackElemType::DiagDown25ToLeftBank:
|
||
case TrackElemType::DiagDown25ToRightBank:
|
||
return EvaluatorConst<0>;
|
||
case TrackElemType::DiagUp25ToFlat:
|
||
case TrackElemType::DiagFlatToDown25:
|
||
case TrackElemType::DiagUp25ToLeftBank:
|
||
case TrackElemType::DiagUp25ToRightBank:
|
||
case TrackElemType::DiagLeftBankToDown25:
|
||
case TrackElemType::DiagRightBankToDown25:
|
||
return EvaluatorConst<0>;
|
||
case TrackElemType::DiagUp25ToUp60:
|
||
case TrackElemType::DiagDown60ToDown25:
|
||
return EvaluatorConst<0>;
|
||
case TrackElemType::DiagUp60ToUp25:
|
||
case TrackElemType::DiagDown25ToDown60:
|
||
return EvaluatorConst<0>;
|
||
case TrackElemType::DiagFlatToUp60:
|
||
case TrackElemType::DiagDown60ToFlat:
|
||
return EvaluatorConst<0>;
|
||
case TrackElemType::DiagUp60ToFlat:
|
||
case TrackElemType::DiagFlatToDown60:
|
||
return EvaluatorConst<0>;
|
||
case TrackElemType::LeftBarrelRollUpToDown:
|
||
case TrackElemType::LeftBarrelRollDownToUp:
|
||
return EvaluatorConst<115>;
|
||
case TrackElemType::RightBarrelRollUpToDown:
|
||
case TrackElemType::RightBarrelRollDownToUp:
|
||
return EvaluatorConst<-115>;
|
||
case TrackElemType::LeftZeroGRollUp:
|
||
return EvaluatorZeroGRollUpLeft;
|
||
case TrackElemType::RightZeroGRollUp:
|
||
return EvaluatorZeroGRollUpRight;
|
||
case TrackElemType::LeftZeroGRollDown:
|
||
return EvaluatorZeroGRollDownLeft;
|
||
case TrackElemType::RightZeroGRollDown:
|
||
return EvaluatorZeroGRollDownRight;
|
||
case TrackElemType::LeftLargeZeroGRollUp:
|
||
return EvaluatorLargeZeroGRollUpLeft;
|
||
case TrackElemType::RightLargeZeroGRollUp:
|
||
return EvaluatorLargeZeroGRollUpRight;
|
||
case TrackElemType::LeftLargeZeroGRollDown:
|
||
return EvaluatorLargeZeroGRollDownLeft;
|
||
case TrackElemType::RightLargeZeroGRollDown:
|
||
return EvaluatorLargeZeroGRollDownRight;
|
||
case TrackElemType::LeftBankToLeftQuarterTurn3TilesUp25:
|
||
return EvaluatorConst<90>;
|
||
case TrackElemType::RightBankToRightQuarterTurn3TilesUp25:
|
||
return EvaluatorConst<-90>;
|
||
case TrackElemType::LeftQuarterTurn3TilesDown25ToLeftBank:
|
||
return EvaluatorConst<90>;
|
||
case TrackElemType::RightQuarterTurn3TilesDown25ToRightBank:
|
||
return EvaluatorConst<-90>;
|
||
case TrackElemType::LeftLargeHalfLoopUp:
|
||
case TrackElemType::RightLargeHalfLoopUp:
|
||
return EvaluatorConst<0>;
|
||
case TrackElemType::LeftLargeHalfLoopDown:
|
||
case TrackElemType::RightLargeHalfLoopDown:
|
||
return EvaluatorConst<0>;
|
||
case TrackElemType::HeartLineTransferUp:
|
||
return EvaluatorConst<0>;
|
||
case TrackElemType::HeartLineTransferDown:
|
||
return EvaluatorConst<0>;
|
||
case TrackElemType::MultiDimInvertedFlatToDown90QuarterLoop:
|
||
case TrackElemType::InvertedFlatToDown90QuarterLoop:
|
||
case TrackElemType::MultiDimFlatToDown90QuarterLoop:
|
||
return EvaluatorConst<0>;
|
||
case TrackElemType::Up90ToInvertedFlatQuarterLoop:
|
||
case TrackElemType::MultiDimUp90ToInvertedFlatQuarterLoop:
|
||
case TrackElemType::MultiDimInvertedUp90ToFlatQuarterLoop:
|
||
return EvaluatorConst<0>;
|
||
case TrackElemType::AirThrustTopCap:
|
||
return EvaluatorConst<0>;
|
||
case TrackElemType::LeftBankedQuarterTurn3TileUp25:
|
||
case TrackElemType::LeftBankedQuarterTurn3TileDown25:
|
||
return EvaluatorConst<100>;
|
||
case TrackElemType::RightBankedQuarterTurn3TileUp25:
|
||
case TrackElemType::RightBankedQuarterTurn3TileDown25:
|
||
return EvaluatorConst<-100>;
|
||
case TrackElemType::LeftBankedQuarterTurn5TileUp25:
|
||
case TrackElemType::LeftBankedQuarterTurn5TileDown25:
|
||
return EvaluatorConst<160>;
|
||
case TrackElemType::RightBankedQuarterTurn5TileUp25:
|
||
case TrackElemType::RightBankedQuarterTurn5TileDown25:
|
||
return EvaluatorConst<-160>;
|
||
default:
|
||
return EvaluatorConst<0>;
|
||
}
|
||
}
|
||
|
||
static constexpr TrackComputeFunction GetVerticalFunction(const uint16_t type)
|
||
{
|
||
switch (type)
|
||
{
|
||
case TrackElemType::Flat:
|
||
case TrackElemType::EndStation:
|
||
case TrackElemType::BeginStation:
|
||
case TrackElemType::MiddleStation:
|
||
case TrackElemType::Up25:
|
||
case TrackElemType::Up60: //
|
||
case TrackElemType::Down25:
|
||
case TrackElemType::Down60: //
|
||
case TrackElemType::FlatToLeftBank:
|
||
case TrackElemType::FlatToRightBank:
|
||
case TrackElemType::LeftBankToFlat:
|
||
case TrackElemType::RightBankToFlat: //
|
||
case TrackElemType::LeftBank:
|
||
case TrackElemType::RightBank:
|
||
case TrackElemType::TowerBase:
|
||
case TrackElemType::TowerSection:
|
||
case TrackElemType::FlatCovered:
|
||
case TrackElemType::Up25Covered:
|
||
case TrackElemType::Up60Covered:
|
||
case TrackElemType::Down25Covered:
|
||
case TrackElemType::Down60Covered:
|
||
case TrackElemType::Brakes:
|
||
case TrackElemType::RotationControlToggle:
|
||
case TrackElemType::Maze:
|
||
case TrackElemType::Up25LeftBanked:
|
||
case TrackElemType::Up25RightBanked:
|
||
case TrackElemType::Waterfall:
|
||
case TrackElemType::Rapids:
|
||
case TrackElemType::OnRidePhoto:
|
||
case TrackElemType::Down25LeftBanked:
|
||
case TrackElemType::Down25RightBanked:
|
||
case TrackElemType::Whirlpool:
|
||
case TrackElemType::ReverseFreefallVertical:
|
||
case TrackElemType::Up90:
|
||
case TrackElemType::Down90:
|
||
case TrackElemType::DiagFlat:
|
||
case TrackElemType::DiagUp25:
|
||
case TrackElemType::DiagUp60:
|
||
case TrackElemType::DiagDown25:
|
||
case TrackElemType::DiagDown60:
|
||
case TrackElemType::DiagFlatToLeftBank:
|
||
case TrackElemType::DiagFlatToRightBank:
|
||
case TrackElemType::DiagLeftBankToFlat:
|
||
case TrackElemType::DiagRightBankToFlat:
|
||
case TrackElemType::DiagLeftBank:
|
||
case TrackElemType::DiagRightBank:
|
||
case TrackElemType::LogFlumeReverser:
|
||
case TrackElemType::SpinningTunnel:
|
||
case TrackElemType::PoweredLift:
|
||
case TrackElemType::MinigolfHoleA:
|
||
case TrackElemType::MinigolfHoleB:
|
||
case TrackElemType::MinigolfHoleC:
|
||
case TrackElemType::MinigolfHoleD:
|
||
case TrackElemType::MinigolfHoleE:
|
||
case TrackElemType::LeftReverser:
|
||
case TrackElemType::RightReverser:
|
||
case TrackElemType::AirThrustVerticalDown:
|
||
case TrackElemType::BlockBrakes:
|
||
case TrackElemType::Up25ToLeftBankedUp25:
|
||
case TrackElemType::Up25ToRightBankedUp25:
|
||
case TrackElemType::LeftBankedUp25ToUp25:
|
||
case TrackElemType::RightBankedUp25ToUp25:
|
||
case TrackElemType::Down25ToLeftBankedDown25:
|
||
case TrackElemType::Down25ToRightBankedDown25:
|
||
case TrackElemType::LeftBankedDown25ToDown25:
|
||
case TrackElemType::RightBankedDown25ToDown25:
|
||
case TrackElemType::LeftQuarterTurn1TileUp90:
|
||
case TrackElemType::RightQuarterTurn1TileUp90:
|
||
case TrackElemType::LeftQuarterTurn1TileDown90:
|
||
case TrackElemType::RightQuarterTurn1TileDown90:
|
||
case TrackElemType::LeftEighthToDiagUp25:
|
||
case TrackElemType::RightEighthToDiagUp25:
|
||
case TrackElemType::LeftEighthToDiagDown25:
|
||
case TrackElemType::RightEighthToDiagDown25:
|
||
case TrackElemType::LeftEighthToOrthogonalUp25:
|
||
case TrackElemType::RightEighthToOrthogonalUp25:
|
||
case TrackElemType::LeftEighthToOrthogonalDown25:
|
||
case TrackElemType::RightEighthToOrthogonalDown25:
|
||
case TrackElemType::DiagUp25ToLeftBankedUp25:
|
||
case TrackElemType::DiagUp25ToRightBankedUp25:
|
||
case TrackElemType::DiagLeftBankedUp25ToUp25:
|
||
case TrackElemType::DiagRightBankedUp25ToUp25:
|
||
case TrackElemType::DiagDown25ToLeftBankedDown25:
|
||
case TrackElemType::DiagDown25ToRightBankedDown25:
|
||
case TrackElemType::DiagLeftBankedDown25ToDown25:
|
||
case TrackElemType::DiagRightBankedDown25ToDown25:
|
||
case TrackElemType::DiagUp25LeftBanked:
|
||
case TrackElemType::DiagUp25RightBanked:
|
||
case TrackElemType::DiagDown25LeftBanked:
|
||
case TrackElemType::DiagDown25RightBanked:
|
||
return EvaluatorConst<0>;
|
||
case TrackElemType::FlatToUp25: //
|
||
case TrackElemType::Down25ToFlat: //
|
||
case TrackElemType::LeftBankToUp25:
|
||
case TrackElemType::RightBankToUp25:
|
||
case TrackElemType::Down25ToLeftBank:
|
||
case TrackElemType::Down25ToRightBank:
|
||
case TrackElemType::FlatToUp25Covered:
|
||
case TrackElemType::Down25ToFlatCovered:
|
||
case TrackElemType::LeftBankedFlatToLeftBankedUp25:
|
||
case TrackElemType::RightBankedFlatToRightBankedUp25:
|
||
case TrackElemType::LeftBankedDown25ToLeftBankedFlat:
|
||
case TrackElemType::RightBankedDown25ToRightBankedFlat:
|
||
case TrackElemType::FlatToLeftBankedUp25:
|
||
case TrackElemType::FlatToRightBankedUp25:
|
||
case TrackElemType::LeftBankedDown25ToFlat:
|
||
case TrackElemType::RightBankedDown25ToFlat:
|
||
return EvaluatorConst<103>;
|
||
case TrackElemType::Up25ToFlat: //
|
||
case TrackElemType::FlatToDown25: //
|
||
case TrackElemType::Up25ToLeftBank:
|
||
case TrackElemType::Up25ToRightBank:
|
||
case TrackElemType::LeftBankToDown25:
|
||
case TrackElemType::RightBankToDown25:
|
||
case TrackElemType::Up25ToFlatCovered:
|
||
case TrackElemType::FlatToDown25Covered:
|
||
case TrackElemType::CableLiftHill:
|
||
case TrackElemType::LeftBankedUp25ToLeftBankedFlat:
|
||
case TrackElemType::RightBankedUp25ToRightBankedFlat:
|
||
case TrackElemType::LeftBankedFlatToLeftBankedDown25:
|
||
case TrackElemType::RightBankedFlatToRightBankedDown25:
|
||
case TrackElemType::LeftBankedUp25ToFlat:
|
||
case TrackElemType::RightBankedUp25ToFlat:
|
||
case TrackElemType::FlatToLeftBankedDown25:
|
||
case TrackElemType::FlatToRightBankedDown25:
|
||
return EvaluatorConst<-103>;
|
||
case TrackElemType::Up25ToUp60: //
|
||
case TrackElemType::Down60ToDown25: //
|
||
case TrackElemType::Up25ToUp60Covered:
|
||
case TrackElemType::Down60ToDown25Covered:
|
||
return EvaluatorConst<82>;
|
||
case TrackElemType::Up60ToUp25: //
|
||
case TrackElemType::Down25ToDown60: //
|
||
case TrackElemType::Up60ToUp25Covered:
|
||
case TrackElemType::Down25ToDown60Covered:
|
||
return EvaluatorConst<-82>;
|
||
case TrackElemType::LeftQuarterTurn5Tiles: //
|
||
case TrackElemType::LeftQuarterTurn5TilesUp25:
|
||
case TrackElemType::LeftQuarterTurn5TilesDown25:
|
||
case TrackElemType::LeftTwistDownToUp:
|
||
case TrackElemType::LeftTwistUpToDown:
|
||
case TrackElemType::LeftQuarterTurn5TilesCovered:
|
||
case TrackElemType::LeftQuarterHelixLargeUp:
|
||
case TrackElemType::LeftQuarterHelixLargeDown:
|
||
case TrackElemType::LeftFlyerTwistUp:
|
||
case TrackElemType::LeftFlyerTwistDown:
|
||
case TrackElemType::LeftHeartLineRoll:
|
||
return EvaluatorConst<0>;
|
||
case TrackElemType::RightQuarterTurn5Tiles: //
|
||
case TrackElemType::RightQuarterTurn5TilesUp25:
|
||
case TrackElemType::RightQuarterTurn5TilesDown25:
|
||
case TrackElemType::RightTwistDownToUp:
|
||
case TrackElemType::RightTwistUpToDown:
|
||
case TrackElemType::RightQuarterTurn5TilesCovered:
|
||
case TrackElemType::RightQuarterHelixLargeUp:
|
||
case TrackElemType::RightQuarterHelixLargeDown:
|
||
case TrackElemType::RightFlyerTwistUp:
|
||
case TrackElemType::RightFlyerTwistDown:
|
||
case TrackElemType::RightHeartLineRoll:
|
||
return EvaluatorConst<0>;
|
||
case TrackElemType::BankedLeftQuarterTurn5Tiles:
|
||
case TrackElemType::LeftHalfBankedHelixUpLarge:
|
||
case TrackElemType::LeftHalfBankedHelixDownLarge:
|
||
case TrackElemType::LeftQuarterBankedHelixLargeUp:
|
||
case TrackElemType::LeftQuarterBankedHelixLargeDown:
|
||
return EvaluatorConst<200>;
|
||
case TrackElemType::BankedRightQuarterTurn5Tiles:
|
||
case TrackElemType::RightHalfBankedHelixUpLarge:
|
||
case TrackElemType::RightHalfBankedHelixDownLarge:
|
||
case TrackElemType::RightQuarterBankedHelixLargeUp:
|
||
case TrackElemType::RightQuarterBankedHelixLargeDown:
|
||
return EvaluatorConst<200>;
|
||
case TrackElemType::SBendLeft:
|
||
case TrackElemType::SBendLeftCovered:
|
||
return EvaluatorConst<0>;
|
||
case TrackElemType::SBendRight:
|
||
case TrackElemType::SBendRightCovered:
|
||
return EvaluatorConst<0>;
|
||
case TrackElemType::LeftVerticalLoop:
|
||
case TrackElemType::RightVerticalLoop:
|
||
return EvaluatorVerticalLoop;
|
||
case TrackElemType::LeftQuarterTurn3Tiles:
|
||
case TrackElemType::LeftQuarterTurn3TilesUp25:
|
||
case TrackElemType::LeftQuarterTurn3TilesDown25:
|
||
case TrackElemType::LeftQuarterTurn3TilesCovered:
|
||
case TrackElemType::LeftCurvedLiftHill:
|
||
return EvaluatorConst<0>;
|
||
case TrackElemType::RightQuarterTurn3Tiles:
|
||
case TrackElemType::RightQuarterTurn3TilesUp25:
|
||
case TrackElemType::RightQuarterTurn3TilesDown25:
|
||
case TrackElemType::RightQuarterTurn3TilesCovered:
|
||
case TrackElemType::RightCurvedLiftHill:
|
||
return EvaluatorConst<0>;
|
||
case TrackElemType::LeftBankedQuarterTurn3Tiles:
|
||
case TrackElemType::LeftHalfBankedHelixUpSmall:
|
||
case TrackElemType::LeftHalfBankedHelixDownSmall:
|
||
return EvaluatorConst<100>;
|
||
case TrackElemType::RightBankedQuarterTurn3Tiles:
|
||
case TrackElemType::RightHalfBankedHelixUpSmall:
|
||
case TrackElemType::RightHalfBankedHelixDownSmall:
|
||
return EvaluatorConst<100>;
|
||
case TrackElemType::LeftQuarterTurn1Tile:
|
||
return EvaluatorConst<0>;
|
||
case TrackElemType::RightQuarterTurn1Tile:
|
||
return EvaluatorConst<0>;
|
||
case TrackElemType::HalfLoopUp:
|
||
case TrackElemType::FlyerHalfLoopUninvertedUp:
|
||
case TrackElemType::FlyerHalfLoopInvertedUp:
|
||
return EvaluatorHalfLoopUp;
|
||
case TrackElemType::HalfLoopDown:
|
||
case TrackElemType::FlyerHalfLoopInvertedDown:
|
||
case TrackElemType::FlyerHalfLoopUninvertedDown:
|
||
return EvaluatorHalfLoopDown;
|
||
case TrackElemType::LeftLargeCorkscrewUp:
|
||
case TrackElemType::RightLargeCorkscrewDown:
|
||
return EvaluatorConst<89>;
|
||
case TrackElemType::RightLargeCorkscrewUp:
|
||
case TrackElemType::LeftLargeCorkscrewDown:
|
||
return EvaluatorConst<89>;
|
||
case TrackElemType::LeftCorkscrewUp:
|
||
case TrackElemType::RightCorkscrewDown:
|
||
case TrackElemType::LeftFlyerCorkscrewUp:
|
||
case TrackElemType::RightFlyerCorkscrewDown:
|
||
return EvaluatorConst<52>;
|
||
case TrackElemType::RightCorkscrewUp:
|
||
case TrackElemType::LeftCorkscrewDown:
|
||
case TrackElemType::RightFlyerCorkscrewUp:
|
||
case TrackElemType::LeftFlyerCorkscrewDown:
|
||
return EvaluatorConst<52>;
|
||
case TrackElemType::FlatToUp60:
|
||
case TrackElemType::Down60ToFlat:
|
||
return EvaluatorConst<56>;
|
||
case TrackElemType::Up60ToFlat:
|
||
case TrackElemType::FlatToDown60:
|
||
case TrackElemType::BrakeForDrop:
|
||
return EvaluatorConst<-56>;
|
||
case TrackElemType::LeftQuarterTurn1TileUp60:
|
||
case TrackElemType::LeftQuarterTurn1TileDown60:
|
||
return EvaluatorConst<0>;
|
||
case TrackElemType::RightQuarterTurn1TileUp60:
|
||
case TrackElemType::RightQuarterTurn1TileDown60:
|
||
return EvaluatorConst<0>;
|
||
case TrackElemType::Watersplash:
|
||
return EvaluatorWaterSplash;
|
||
case TrackElemType::FlatToUp60LongBase:
|
||
case TrackElemType::Down60ToFlatLongBase:
|
||
return EvaluatorConst<160>;
|
||
case TrackElemType::Up60ToFlatLongBase:
|
||
case TrackElemType::FlatToDown60LongBase:
|
||
return EvaluatorConst<-160>;
|
||
case TrackElemType::ReverseFreefallSlope:
|
||
case TrackElemType::AirThrustVerticalDownToLevel:
|
||
return EvaluatorConst<120>;
|
||
case TrackElemType::Up60ToUp90:
|
||
case TrackElemType::Down90ToDown60:
|
||
return EvaluatorConst<110>;
|
||
case TrackElemType::Up90ToUp60:
|
||
case TrackElemType::Down60ToDown90:
|
||
return EvaluatorConst<-110>;
|
||
case TrackElemType::LeftEighthToDiag:
|
||
case TrackElemType::LeftEighthToOrthogonal:
|
||
return EvaluatorConst<0>;
|
||
case TrackElemType::RightEighthToDiag:
|
||
case TrackElemType::RightEighthToOrthogonal:
|
||
return EvaluatorConst<0>;
|
||
case TrackElemType::LeftEighthBankToDiag:
|
||
case TrackElemType::LeftEighthBankToOrthogonal:
|
||
case TrackElemType::LeftEighthBankToDiagUp25:
|
||
case TrackElemType::LeftEighthBankToDiagDown25:
|
||
case TrackElemType::LeftEighthBankToOrthogonalUp25:
|
||
case TrackElemType::LeftEighthBankToOrthogonalDown25:
|
||
return EvaluatorConst<270>;
|
||
case TrackElemType::RightEighthBankToDiag:
|
||
case TrackElemType::RightEighthBankToOrthogonal:
|
||
case TrackElemType::RightEighthBankToDiagUp25:
|
||
case TrackElemType::RightEighthBankToDiagDown25:
|
||
case TrackElemType::RightEighthBankToOrthogonalUp25:
|
||
case TrackElemType::RightEighthBankToOrthogonalDown25:
|
||
return EvaluatorConst<270>;
|
||
case TrackElemType::DiagFlatToUp25:
|
||
case TrackElemType::DiagDown25ToFlat:
|
||
case TrackElemType::DiagLeftBankToUp25:
|
||
case TrackElemType::DiagRightBankToUp25:
|
||
case TrackElemType::DiagDown25ToLeftBank:
|
||
case TrackElemType::DiagDown25ToRightBank:
|
||
case TrackElemType::DiagLeftBankedFlatToLeftBankedUp25:
|
||
case TrackElemType::DiagRightBankedFlatToRightBankedUp25:
|
||
case TrackElemType::DiagLeftBankedDown25ToLeftBankedFlat:
|
||
case TrackElemType::DiagRightBankedDown25ToRightBankedFlat:
|
||
case TrackElemType::DiagFlatToLeftBankedUp25:
|
||
case TrackElemType::DiagFlatToRightBankedUp25:
|
||
case TrackElemType::DiagLeftBankedDown25ToFlat:
|
||
case TrackElemType::DiagRightBankedDown25ToFlat:
|
||
return EvaluatorConst<113>;
|
||
case TrackElemType::DiagUp25ToFlat:
|
||
case TrackElemType::DiagFlatToDown25:
|
||
case TrackElemType::DiagUp25ToLeftBank:
|
||
case TrackElemType::DiagUp25ToRightBank:
|
||
case TrackElemType::DiagLeftBankToDown25:
|
||
case TrackElemType::DiagRightBankToDown25:
|
||
case TrackElemType::DiagLeftBankedUp25ToLeftBankedFlat:
|
||
case TrackElemType::DiagRightBankedUp25ToRightBankedFlat:
|
||
case TrackElemType::DiagLeftBankedFlatToLeftBankedDown25:
|
||
case TrackElemType::DiagRightBankedFlatToRightBankedDown25:
|
||
case TrackElemType::DiagLeftBankedUp25ToFlat:
|
||
case TrackElemType::DiagRightBankedUp25ToFlat:
|
||
case TrackElemType::DiagFlatToLeftBankedDown25:
|
||
case TrackElemType::DiagFlatToRightBankedDown25:
|
||
return EvaluatorConst<-113>;
|
||
case TrackElemType::DiagUp25ToUp60:
|
||
case TrackElemType::DiagDown60ToDown25:
|
||
return EvaluatorConst<95>;
|
||
case TrackElemType::DiagUp60ToUp25:
|
||
case TrackElemType::DiagDown25ToDown60:
|
||
return EvaluatorConst<-95>;
|
||
case TrackElemType::DiagFlatToUp60:
|
||
case TrackElemType::DiagDown60ToFlat:
|
||
return EvaluatorConst<60>;
|
||
case TrackElemType::DiagUp60ToFlat:
|
||
case TrackElemType::DiagFlatToDown60:
|
||
return EvaluatorConst<-60>;
|
||
case TrackElemType::LeftBarrelRollUpToDown:
|
||
case TrackElemType::LeftBarrelRollDownToUp:
|
||
return EvaluatorConst<170>;
|
||
case TrackElemType::RightBarrelRollUpToDown:
|
||
case TrackElemType::RightBarrelRollDownToUp:
|
||
return EvaluatorConst<170>;
|
||
case TrackElemType::LeftZeroGRollUp:
|
||
case TrackElemType::RightZeroGRollUp:
|
||
return EvaluatorConst<250>;
|
||
case TrackElemType::LeftZeroGRollDown:
|
||
case TrackElemType::RightZeroGRollDown:
|
||
return EvaluatorConst<250>;
|
||
case TrackElemType::LeftLargeZeroGRollUp:
|
||
case TrackElemType::RightLargeZeroGRollUp:
|
||
return EvaluatorLargeZeroGRollUp;
|
||
case TrackElemType::LeftLargeZeroGRollDown:
|
||
case TrackElemType::RightLargeZeroGRollDown:
|
||
return EvaluatorLargeZeroGRollDown;
|
||
case TrackElemType::LeftBankToLeftQuarterTurn3TilesUp25:
|
||
case TrackElemType::RightBankToRightQuarterTurn3TilesUp25:
|
||
case TrackElemType::LeftQuarterTurn3TilesDown25ToLeftBank:
|
||
case TrackElemType::RightQuarterTurn3TilesDown25ToRightBank:
|
||
return EvaluatorQuarterTurn3Tiles;
|
||
case TrackElemType::LeftMediumHalfLoopUp:
|
||
case TrackElemType::RightMediumHalfLoopUp:
|
||
return EvaluatorMediumHalfLoopUp;
|
||
case TrackElemType::RightMediumHalfLoopDown:
|
||
case TrackElemType::LeftMediumHalfLoopDown:
|
||
return EvaluatorMediumHalfLoopDown;
|
||
case TrackElemType::LeftLargeHalfLoopUp:
|
||
case TrackElemType::RightLargeHalfLoopUp:
|
||
case TrackElemType::LeftFlyerLargeHalfLoopUninvertedUp:
|
||
case TrackElemType::RightFlyerLargeHalfLoopUninvertedUp:
|
||
case TrackElemType::LeftFlyerLargeHalfLoopInvertedUp:
|
||
case TrackElemType::RightFlyerLargeHalfLoopInvertedUp:
|
||
return EvaluatorLargeHalfLoopUp;
|
||
case TrackElemType::LeftLargeHalfLoopDown:
|
||
case TrackElemType::RightLargeHalfLoopDown:
|
||
case TrackElemType::LeftFlyerLargeHalfLoopInvertedDown:
|
||
case TrackElemType::RightFlyerLargeHalfLoopInvertedDown:
|
||
case TrackElemType::LeftFlyerLargeHalfLoopUninvertedDown:
|
||
case TrackElemType::RightFlyerLargeHalfLoopUninvertedDown:
|
||
return EvaluatorLargeHalfLoopDown;
|
||
case TrackElemType::HeartLineTransferUp:
|
||
return EvaluatorHeartLineTransferUp;
|
||
case TrackElemType::HeartLineTransferDown:
|
||
return EvaluatorHeartLineTransferDown;
|
||
case TrackElemType::MultiDimInvertedFlatToDown90QuarterLoop:
|
||
case TrackElemType::InvertedFlatToDown90QuarterLoop:
|
||
case TrackElemType::MultiDimFlatToDown90QuarterLoop:
|
||
return EvaluatorDown90QuarterLoop;
|
||
case TrackElemType::Up90ToInvertedFlatQuarterLoop:
|
||
case TrackElemType::MultiDimUp90ToInvertedFlatQuarterLoop:
|
||
case TrackElemType::MultiDimInvertedUp90ToFlatQuarterLoop:
|
||
return EvaluatorUp90QuarterLoop;
|
||
case TrackElemType::AirThrustTopCap:
|
||
return EvaluatorConst<-60>;
|
||
case TrackElemType::LeftBankedQuarterTurn3TileUp25:
|
||
case TrackElemType::LeftBankedQuarterTurn3TileDown25:
|
||
return EvaluatorConst<200>;
|
||
case TrackElemType::RightBankedQuarterTurn3TileUp25:
|
||
case TrackElemType::RightBankedQuarterTurn3TileDown25:
|
||
return EvaluatorConst<200>;
|
||
case TrackElemType::LeftBankedQuarterTurn5TileUp25:
|
||
case TrackElemType::LeftBankedQuarterTurn5TileDown25:
|
||
return EvaluatorConst<200>;
|
||
case TrackElemType::RightBankedQuarterTurn5TileUp25:
|
||
case TrackElemType::RightBankedQuarterTurn5TileDown25:
|
||
return EvaluatorConst<200>;
|
||
default:
|
||
return EvaluatorConst<0>;
|
||
}
|
||
}
|
||
|
||
static constexpr StringId RideConfigurationStringIds[] = {
|
||
STR_EMPTY, // 0
|
||
STR_STATION_PLATFORM, // 1
|
||
STR_EMPTY, // 2
|
||
STR_EMPTY, // 3
|
||
STR_EMPTY, // 4
|
||
STR_EMPTY, // 5
|
||
STR_EMPTY, // 6
|
||
STR_EMPTY, // 7
|
||
STR_EMPTY, // 8
|
||
STR_EMPTY, // 9
|
||
STR_EMPTY, // 10
|
||
STR_EMPTY, // 11
|
||
STR_EMPTY, // 12
|
||
STR_EMPTY, // 13
|
||
STR_EMPTY, // 14
|
||
STR_EMPTY, // 15
|
||
STR_EMPTY, // 16
|
||
STR_EMPTY, // 17
|
||
STR_EMPTY, // 18
|
||
STR_EMPTY, // 19
|
||
STR_EMPTY, // 20
|
||
STR_EMPTY, // 21
|
||
STR_EMPTY, // 22
|
||
STR_EMPTY, // 23
|
||
STR_EMPTY, // 24
|
||
STR_EMPTY, // 25
|
||
STR_EMPTY, // 26
|
||
STR_EMPTY, // 27
|
||
STR_EMPTY, // 28
|
||
STR_EMPTY, // 29
|
||
STR_EMPTY, // 30
|
||
STR_EMPTY, // 31
|
||
STR_EMPTY, // 32
|
||
STR_EMPTY, // 33
|
||
STR_EMPTY, // 34
|
||
STR_EMPTY, // 35
|
||
STR_EMPTY, // 36
|
||
STR_EMPTY, // 37
|
||
STR_S_BEND_LEFT, // 38
|
||
STR_S_BEND_RIGHT, // 39
|
||
STR_VERTICAL_LOOP_LEFT, // 40
|
||
STR_VERTICAL_LOOP_RIGHT, // 41
|
||
STR_EMPTY, // 42
|
||
STR_EMPTY, // 43
|
||
STR_EMPTY, // 44
|
||
STR_EMPTY, // 45
|
||
STR_EMPTY, // 46
|
||
STR_EMPTY, // 47
|
||
STR_EMPTY, // 48
|
||
STR_EMPTY, // 49
|
||
STR_EMPTY, // 50
|
||
STR_EMPTY, // 51
|
||
STR_IN_LINE_TWIST_LEFT, // 52
|
||
STR_IN_LINE_TWIST_RIGHT, // 53
|
||
STR_IN_LINE_TWIST_LEFT, // 54
|
||
STR_IN_LINE_TWIST_RIGHT, // 55
|
||
STR_HALF_LOOP, // 56
|
||
STR_HALF_LOOP, // 57
|
||
STR_HALF_CORKSCREW_LEFT, // 58
|
||
STR_HALF_CORKSCREW_RIGHT, // 59
|
||
STR_HALF_CORKSCREW_LEFT, // 60
|
||
STR_HALF_CORKSCREW_RIGHT, // 61
|
||
STR_EMPTY, // 62
|
||
STR_EMPTY, // 63
|
||
STR_EMPTY, // 64
|
||
STR_EMPTY, // 65
|
||
STR_ENTRY_EXIT_PLATFORM, // 66
|
||
STR_VERTICAL_TOWER, // 67
|
||
STR_EMPTY, // 68
|
||
STR_EMPTY, // 69
|
||
STR_EMPTY, // 70
|
||
STR_EMPTY, // 71
|
||
STR_EMPTY, // 72
|
||
STR_EMPTY, // 73
|
||
STR_EMPTY, // 74
|
||
STR_EMPTY, // 75
|
||
STR_EMPTY, // 76
|
||
STR_EMPTY, // 77
|
||
STR_EMPTY, // 78
|
||
STR_EMPTY, // 79
|
||
STR_EMPTY, // 80
|
||
STR_EMPTY, // 81
|
||
STR_EMPTY, // 82
|
||
STR_S_BEND_LEFT, // 83
|
||
STR_S_BEND_RIGHT, // 84
|
||
STR_EMPTY, // 85
|
||
STR_EMPTY, // 86
|
||
STR_HELIX_UP_SMALL, // 87
|
||
STR_HELIX_UP_SMALL, // 88
|
||
STR_HELIX_DOWN_SMALL, // 89
|
||
STR_HELIX_DOWN_SMALL, // 90
|
||
STR_HELIX_UP_LARGE, // 91
|
||
STR_HELIX_UP_LARGE, // 92
|
||
STR_HELIX_DOWN_LARGE, // 93
|
||
STR_HELIX_DOWN_LARGE, // 94
|
||
STR_EMPTY, // 95
|
||
STR_EMPTY, // 96
|
||
STR_EMPTY, // 97
|
||
STR_EMPTY, // 98
|
||
STR_BRAKES, // 99
|
||
STR_BOOSTER, // 100
|
||
STR_EMPTY, // 101
|
||
STR_HELIX_UP_LARGE, // 102
|
||
STR_HELIX_UP_LARGE, // 103
|
||
STR_HELIX_DOWN_LARGE, // 104
|
||
STR_HELIX_DOWN_LARGE, // 105
|
||
STR_HELIX_UP_LEFT, // 106
|
||
STR_HELIX_UP_RIGHT, // 107
|
||
STR_HELIX_DOWN_LEFT, // 108
|
||
STR_HELIX_DOWN_RIGHT, // 109
|
||
STR_EMPTY, // TrackElemType::Up25LeftBanked
|
||
STR_EMPTY, // TrackElemType::Up25RighBanked
|
||
STR_WATERFALLS, // 112
|
||
STR_RAPIDS, // 113
|
||
STR_ON_RIDE_PHOTO_SECTION, // 114
|
||
STR_EMPTY, // TrackElemType::Down25LeftBanked
|
||
STR_EMPTY, // TrackElemType::Down25RightBanked
|
||
STR_WATER_SPLASH, // 117
|
||
STR_EMPTY, // 118
|
||
STR_EMPTY, // 119
|
||
STR_WHIRLPOOL, // 120
|
||
STR_EMPTY, // 121
|
||
STR_EMPTY, // 122
|
||
STR_CABLE_LIFT_HILL, // 123
|
||
STR_SLOPE_UP_TO_VERTICAL, // 124
|
||
STR_VERTICAL_TRACK, // 125
|
||
STR_EMPTY, // 126
|
||
STR_EMPTY, // 127
|
||
STR_EMPTY, // 128
|
||
STR_EMPTY, // 129
|
||
STR_EMPTY, // 130
|
||
STR_EMPTY, // 131
|
||
STR_HOLDING_BRAKE_FOR_DROP, // 132
|
||
STR_EMPTY, // 133
|
||
STR_EMPTY, // 134
|
||
STR_EMPTY, // 135
|
||
STR_EMPTY, // 136
|
||
STR_EMPTY, // 137
|
||
STR_EMPTY, // 138
|
||
STR_EMPTY, // 139
|
||
STR_EMPTY, // 140
|
||
STR_EMPTY, // 141
|
||
STR_EMPTY, // 142
|
||
STR_EMPTY, // 143
|
||
STR_EMPTY, // 144
|
||
STR_EMPTY, // 145
|
||
STR_EMPTY, // 146
|
||
STR_EMPTY, // 147
|
||
STR_EMPTY, // 148
|
||
STR_EMPTY, // 149
|
||
STR_EMPTY, // 150
|
||
STR_EMPTY, // 151
|
||
STR_EMPTY, // 152
|
||
STR_EMPTY, // 153
|
||
STR_EMPTY, // 154
|
||
STR_EMPTY, // 155
|
||
STR_EMPTY, // 156
|
||
STR_EMPTY, // 157
|
||
STR_EMPTY, // 158
|
||
STR_EMPTY, // 159
|
||
STR_EMPTY, // 160
|
||
STR_EMPTY, // 161
|
||
STR_EMPTY, // 162
|
||
STR_EMPTY, // 163
|
||
STR_EMPTY, // 164
|
||
STR_EMPTY, // 165
|
||
STR_EMPTY, // 166
|
||
STR_EMPTY, // 167
|
||
STR_EMPTY, // 168
|
||
STR_EMPTY, // 169
|
||
STR_EMPTY, // 170
|
||
STR_EMPTY, // 171
|
||
STR_REVERSER_TURNTABLE, // 172
|
||
STR_SPINNING_TUNNEL, // 173
|
||
STR_BARREL_ROLL_LEFT, // 174
|
||
STR_BARREL_ROLL_RIGHT, // 175
|
||
STR_BARREL_ROLL_LEFT, // 176
|
||
STR_BARREL_ROLL_RIGHT, // 177
|
||
STR_EMPTY, // 178
|
||
STR_EMPTY, // 179
|
||
STR_EMPTY, // 180
|
||
STR_EMPTY, // 181
|
||
STR_LAUNCHED_LIFT_HILL, // 182
|
||
STR_LARGE_HALF_LOOP_LEFT, // 183
|
||
STR_LARGE_HALF_LOOP_RIGHT, // 184
|
||
STR_LARGE_HALF_LOOP_LEFT, // 185
|
||
STR_LARGE_HALF_LOOP_RIGHT, // 186
|
||
STR_IN_LINE_TWIST_LEFT, // 187
|
||
STR_IN_LINE_TWIST_RIGHT, // 188
|
||
STR_IN_LINE_TWIST_LEFT, // 189
|
||
STR_IN_LINE_TWIST_RIGHT, // 190
|
||
STR_HALF_LOOP, // 191
|
||
STR_HALF_LOOP, // 192
|
||
STR_HALF_CORKSCREW_LEFT, // 193
|
||
STR_HALF_CORKSCREW_RIGHT, // 194
|
||
STR_HALF_CORKSCREW_LEFT, // 195
|
||
STR_HALF_CORKSCREW_RIGHT, // 196
|
||
STR_UPPER_TRANSFER, // 197
|
||
STR_LOWER_TRANSFER, // 198
|
||
STR_HEARTLINE_ROLL_LEFT, // 199
|
||
STR_HEARTLINE_ROLL_RIGHT, // 200
|
||
STR_GOLF_HOLE_A, // 201
|
||
STR_GOLF_HOLE_B, // 202
|
||
STR_GOLF_HOLE_C, // 203
|
||
STR_GOLF_HOLE_D, // 204
|
||
STR_GOLF_HOLE_E, // 205
|
||
STR_QUARTER_LOOP, // 206
|
||
STR_QUARTER_LOOP, // 207
|
||
STR_QUARTER_LOOP, // 208
|
||
STR_CURVED_LIFT_HILL_LEFT, // 209
|
||
STR_CURVED_LIFT_HILL_RIGHT, // 210
|
||
STR_REVERSER_LEFT, // 211
|
||
STR_REVERSER_RIGHT, // 212
|
||
STR_TOP_SECTION, // 213
|
||
STR_VERTICAL_TRACK, // 214
|
||
STR_SLOPE_TO_LEVEL, // 215
|
||
STR_BLOCK_BRAKES, // 216
|
||
STR_EMPTY, // 217
|
||
STR_EMPTY, // 218
|
||
STR_EMPTY, // 219
|
||
STR_EMPTY, // 220
|
||
STR_EMPTY, // 221
|
||
STR_EMPTY, // 222
|
||
STR_EMPTY, // 223
|
||
STR_EMPTY, // 224
|
||
STR_EMPTY, // 225
|
||
STR_EMPTY, // 226
|
||
STR_EMPTY, // 227
|
||
STR_EMPTY, // 228
|
||
STR_EMPTY, // 229
|
||
STR_EMPTY, // 230
|
||
STR_EMPTY, // 231
|
||
STR_EMPTY, // 232
|
||
STR_EMPTY, // 233
|
||
STR_EMPTY, // 234
|
||
STR_EMPTY, // 235
|
||
STR_EMPTY, // 236
|
||
STR_EMPTY, // 237
|
||
STR_EMPTY, // 238
|
||
STR_EMPTY, // 239
|
||
STR_EMPTY, // 240
|
||
STR_EMPTY, // 241
|
||
STR_EMPTY, // 242
|
||
STR_EMPTY, // 243
|
||
STR_EMPTY, // 244
|
||
STR_EMPTY, // 245
|
||
STR_EMPTY, // 246
|
||
STR_EMPTY, // 247
|
||
STR_EMPTY, // 248
|
||
STR_EMPTY, // 249
|
||
STR_EMPTY, // 250
|
||
STR_EMPTY, // 251
|
||
STR_EMPTY, // 252
|
||
STR_QUARTER_LOOP, // 253
|
||
STR_QUARTER_LOOP, // 254
|
||
STR_QUARTER_LOOP, // 255
|
||
STR_SPINNING_CONTROL_TOGGLE_TRACK, // 256
|
||
STR_EMPTY, // TrackElemType::FlatTrack1x4A
|
||
STR_BASE_SIZE_2_X_2, // TrackElemType::FlatTrack2x2
|
||
STR_BASE_SIZE_4_X_4, // TrackElemType::FlatTrack4x4
|
||
STR_BASE_SIZE_2_X_4, // TrackElemType::FlatTrack2x4
|
||
STR_BASE_SIZE_5_X_1, // TrackElemType::FlatTrack1x5
|
||
STR_EMPTY, // TrackElemType::FlatTrack1x1A
|
||
STR_EMPTY, // TrackElemType::FlatTrack1x4B
|
||
STR_EMPTY, // TrackElemType::FlatTrack1x1B
|
||
STR_EMPTY, // TrackElemType::FlatTrack1x4C
|
||
STR_EMPTY, // TrackElemType::FlatTrack3x3
|
||
STR_LARGE_HALF_CORKSCREW_LEFT, // TrackElemType::LeftCorkscrewUp
|
||
STR_LARGE_HALF_CORKSCREW_RIGHT, // TrackElemType::RightCorkscrewUp
|
||
STR_LARGE_HALF_CORKSCREW_LEFT, // TrackElemType::LeftCorkscrewDown
|
||
STR_LARGE_HALF_CORKSCREW_RIGHT, // TrackElemType::RightCorkscrewDown
|
||
STR_MEDIUM_HALF_LOOP_LEFT, // TrackElemType::LeftMediumHalfLoopUp
|
||
STR_MEDIUM_HALF_LOOP_RIGHT, // TrackElemType::RightMediumHalfLoopUp
|
||
STR_MEDIUM_HALF_LOOP_LEFT, // TrackElemType::LeftMediumHalfLoopDown
|
||
STR_MEDIUM_HALF_LOOP_RIGHT, // TrackElemType::RightMediumHalfLoopDown
|
||
STR_ZERO_G_ROLL_LEFT, // TrackElemType::LeftZeroGRollUp
|
||
STR_ZERO_G_ROLL_RIGHT, // TrackElemType::RightZeroGRollUp
|
||
STR_ZERO_G_ROLL_LEFT, // TrackElemType::LeftZeroGRollDown
|
||
STR_ZERO_G_ROLL_RIGHT, // TrackElemType::RightZeroGRollDown
|
||
STR_LARGE_ZERO_G_ROLL_LEFT, // TrackElemType::LeftLargeZeroGRollUp
|
||
STR_LARGE_ZERO_G_ROLL_RIGHT, // TrackElemType::RightLargeZeroGRollUp
|
||
STR_LARGE_ZERO_G_ROLL_LEFT, // TrackElemType::LeftLargeZeroGRollDown
|
||
STR_LARGE_ZERO_G_ROLL_RIGHT, // TrackElemType::RightLargeZeroGRollDown
|
||
STR_LARGE_HALF_LOOP_LEFT, // TrackElemType::LeftFlyerLargeHalfLoopUninvertedUp
|
||
STR_LARGE_HALF_LOOP_RIGHT, // TrackElemType::RightFlyerLargeHalfLoopUninvertedUp
|
||
STR_LARGE_HALF_LOOP_LEFT, // TrackElemType::LeftFlyerLargeHalfLoopInvertedDown
|
||
STR_LARGE_HALF_LOOP_RIGHT, // TrackElemType::RightFlyerLargeHalfLoopInvertedDown
|
||
STR_LARGE_HALF_LOOP_LEFT, // TrackElemType::LeftFlyerLargeHalfLoopInvertedUp
|
||
STR_LARGE_HALF_LOOP_RIGHT, // TrackElemType::RightFlyerLargeHalfLoopInvertedUp
|
||
STR_LARGE_HALF_LOOP_LEFT, // TrackElemType::LeftFlyerLargeHalfLoopUninvertedDown
|
||
STR_LARGE_HALF_LOOP_RIGHT, // TrackElemType::RightFlyerLargeHalfLoopUninvertedDown
|
||
STR_HALF_LOOP, // TrackElemType::FlyerHalfLoopInvertedUp
|
||
STR_HALF_LOOP, // TrackElemType::FlyerHalfLoopUninvertedDown
|
||
STR_EMPTY, // TrackElemType::LeftEighthToDiagUp25
|
||
STR_EMPTY, // TrackElemType::RightEighthToDiagUp25
|
||
STR_EMPTY, // TrackElemType::LeftEighthToDiagDown25
|
||
STR_EMPTY, // TrackElemType::RightEighthToDiagDown25
|
||
STR_EMPTY, // TrackElemType::LeftEighthToOrthogonalUp25
|
||
STR_EMPTY, // TrackElemType::RightEighthToOrthogonalUp25
|
||
STR_EMPTY, // TrackElemType::LeftEighthToOrthogonalDown25
|
||
STR_EMPTY, // TrackElemType::RightEighthToOrthogonalDown25
|
||
STR_EMPTY, // TrackElemType::DiagUp25ToLeftBankedUp25
|
||
STR_EMPTY, // TrackElemType::DiagUp25ToRightBankedUp25
|
||
STR_EMPTY, // TrackElemType::DiagLeftBankedUp25ToUp25
|
||
STR_EMPTY, // TrackElemType::DiagRightBankedUp25ToUp25
|
||
STR_EMPTY, // TrackElemType::DiagDown25ToLeftBankedDown25
|
||
STR_EMPTY, // TrackElemType::DiagDown25ToRightBankedDown25
|
||
STR_EMPTY, // TrackElemType::DiagLeftBankedDown25ToDown25
|
||
STR_EMPTY, // TrackElemType::DiagRightBankedDown25ToDown25
|
||
STR_EMPTY, // TrackElemType::DiagLeftBankedFlatToLeftBankedUp25
|
||
STR_EMPTY, // TrackElemType::DiagRightBankedFlatToRightBankedUp25
|
||
STR_EMPTY, // TrackElemType::DiagLeftBankedUp25ToLeftBankedFlat
|
||
STR_EMPTY, // TrackElemType::DiagRightBankedUp25ToRightBankedFlat
|
||
STR_EMPTY, // TrackElemType::DiagLeftBankedFlatToLeftBankedDown25
|
||
STR_EMPTY, // TrackElemType::DiagRightBankedFlatToRightBankedDown25
|
||
STR_EMPTY, // TrackElemType::DiagLeftBankedDown25ToLeftBankedFlat
|
||
STR_EMPTY, // TrackElemType::DiagRightBankedDown25ToRightBankedFlat
|
||
STR_EMPTY, // TrackElemType::DiagFlatToLeftBankedUp25
|
||
STR_EMPTY, // TrackElemType::DiagFlatToRightBankedUp25
|
||
STR_EMPTY, // TrackElemType::DiagLeftBankedUp25ToFlat
|
||
STR_EMPTY, // TrackElemType::DiagRightBankedUp25ToFlat
|
||
STR_EMPTY, // TrackElemType::DiagFlatToLeftBankedDown25
|
||
STR_EMPTY, // TrackElemType::DiagFlatToRightBankedDown25
|
||
STR_EMPTY, // TrackElemType::DiagLeftBankedDown25ToFlat
|
||
STR_EMPTY, // TrackElemType::DiagRightBankedDown25ToFlat
|
||
STR_EMPTY, // TrackElemType::Up25LeftBanked
|
||
STR_EMPTY, // TrackElemType::Up25RightBanked
|
||
STR_EMPTY, // TrackElemType::Down25LeftBanked
|
||
STR_EMPTY, // TrackElemType::Down25RightBanked
|
||
STR_EMPTY, // TrackElemType::LeftEighthBankToDiagUp25
|
||
STR_EMPTY, // TrackElemType::RightEighthBankToDiagUp25
|
||
STR_EMPTY, // TrackElemType::LeftEighthBankToDiagDown25
|
||
STR_EMPTY, // TrackElemType::RightEighthBankToDiagDown25
|
||
STR_EMPTY, // TrackElemType::LeftEighthBankToOrthogonalUp25
|
||
STR_EMPTY, // TrackElemType::RightEighthBankToOrthogonalUp25
|
||
STR_EMPTY, // TrackElemType::LeftEighthBankToOrthogonalDown25
|
||
STR_EMPTY, // TrackElemType::RightEighthBankToOrthogonalDown25
|
||
};
|
||
static_assert(std::size(RideConfigurationStringIds) == TrackElemType::Count);
|
||
|
||
namespace OpenRCT2
|
||
{
|
||
namespace TrackMetaData
|
||
{
|
||
static constexpr auto BuildDescriptorTable()
|
||
{
|
||
std::array<TrackElementDescriptor, TrackElemType::Count> res{};
|
||
|
||
for (int i = 0; i < TrackElemType::Count; i++)
|
||
{
|
||
TrackElementDescriptor& desc = res[i];
|
||
desc.Description = RideConfigurationStringIds[i];
|
||
desc.AlternativeType = AlternativeTrackTypes[i];
|
||
desc.Block = const_cast<PreviewTrack*>(TrackBlocks[i]);
|
||
desc.Coordinates = _trackCoordinates[i];
|
||
desc.CurveChain = gTrackCurveChain[i];
|
||
desc.Flags = TrackFlags[i];
|
||
desc.HeightMarkerPositions = TrackHeightMarkerPositions[i];
|
||
desc.MirrorElement = TrackElementMirrorMap[i];
|
||
desc.PieceLength = TrackPieceLengths[i];
|
||
desc.PriceModifier = TrackPricing[i];
|
||
desc.Definition = TrackDefinitions[i];
|
||
desc.SpinFunction = TrackTypeToSpinFunction[i];
|
||
desc.VerticalFactor = GetVerticalFunction(i);
|
||
desc.LateralFactor = GetLateralFunction(i);
|
||
|
||
for (uint8_t j = 0; j < MaxSequencesPerPiece; j++)
|
||
{
|
||
desc.SequenceElementAllowedWallEdges[j] = TrackSequenceElementAllowedWallEdges[i][j];
|
||
desc.SequenceProperties[j] = TrackSequenceProperties[i][j];
|
||
}
|
||
}
|
||
|
||
return res;
|
||
}
|
||
|
||
static constexpr auto _trackElementDescriptors = BuildDescriptorTable();
|
||
|
||
const TrackElementDescriptor& GetTrackElementDescriptor(const uint32_t type)
|
||
{
|
||
if (type >= _trackElementDescriptors.size())
|
||
return _trackElementDescriptors[0];
|
||
return _trackElementDescriptors[type];
|
||
}
|
||
|
||
} // namespace TrackMetaData
|
||
} // namespace OpenRCT2
|
||
|
||
const PreviewTrack* TrackElementDescriptor::GetBlockForSequence(uint8_t sequenceIndex) const
|
||
{
|
||
const auto* trackBlock = Block;
|
||
if (trackBlock == nullptr)
|
||
return nullptr;
|
||
|
||
// The sequence index may be higher than the amount of sequences actually present.
|
||
// We don’t know the amount of sequences present in the block upfront, but there is an end marker consisting of all 255s.
|
||
for (auto i = 0; i < sequenceIndex; i++)
|
||
{
|
||
trackBlock++;
|
||
|
||
if (trackBlock == nullptr || trackBlock->index == 255)
|
||
return nullptr;
|
||
}
|
||
|
||
return trackBlock;
|
||
}
|