From 34e046df41cacbdfa0cb51f8a4fe9be411881918 Mon Sep 17 00:00:00 2001 From: Marijn van der Werf Date: Fri, 12 Aug 2016 21:22:25 +0200 Subject: [PATCH] Include TrackHeightMarkerPositions --- src/ride/track_data.c | 260 +++++++++++++++++++++++++++++++++++++++++ src/ride/track_data.h | 2 + src/ride/track_paint.c | 2 +- 3 files changed, 263 insertions(+), 1 deletion(-) diff --git a/src/ride/track_data.c b/src/ride/track_data.c index 3f0aa46864..01b224bcb2 100644 --- a/src/ride/track_data.c +++ b/src/ride/track_data.c @@ -31473,3 +31473,263 @@ const uint8 TrackElementMirrorMap[] = { TRACK_ELEM_MULTIDIM_FLAT_TO_90_DEG_DOWN_QUARTER_LOOP, 255, }; + +/** rct2: 0x00999694 */ +const uint32 TrackHeightMarkerPositions[256] = { + (1 << 0), // TRACK_ELEM_FLAT + (1 << 0), // TRACK_ELEM_END_STATION + (1 << 0), // TRACK_ELEM_BEGIN_STATION + (1 << 0), // TRACK_ELEM_MIDDLE_STATION + (1 << 0), // TRACK_ELEM_25_DEG_UP + (1 << 0), // TRACK_ELEM_60_DEG_UP + (1 << 0), // TRACK_ELEM_FLAT_TO_25_DEG_UP + (1 << 0), // TRACK_ELEM_25_DEG_UP_TO_60_DEG_UP + (1 << 0), // TRACK_ELEM_60_DEG_UP_TO_25_DEG_UP + (1 << 0), // TRACK_ELEM_25_DEG_UP_TO_FLAT + (1 << 0), // TRACK_ELEM_25_DEG_DOWN + (1 << 0), // TRACK_ELEM_60_DEG_DOWN + (1 << 0), // TRACK_ELEM_FLAT_TO_25_DEG_DOWN + (1 << 0), // TRACK_ELEM_25_DEG_DOWN_TO_60_DEG_DOWN + (1 << 0), // TRACK_ELEM_60_DEG_DOWN_TO_25_DEG_DOWN + (1 << 0), // TRACK_ELEM_25_DEG_DOWN_TO_FLAT + (1 << 0) | (1 << 6), // TRACK_ELEM_LEFT_QUARTER_TURN_5_TILES + (1 << 0) | (1 << 6), // TRACK_ELEM_RIGHT_QUARTER_TURN_5_TILES + (1 << 0), // TRACK_ELEM_FLAT_TO_LEFT_BANK + (1 << 0), // TRACK_ELEM_FLAT_TO_RIGHT_BANK + (1 << 0), // TRACK_ELEM_LEFT_BANK_TO_FLAT + (1 << 0), // TRACK_ELEM_RIGHT_BANK_TO_FLAT + (1 << 0) | (1 << 6), // TRACK_ELEM_BANKED_LEFT_QUARTER_TURN_5_TILES + (1 << 0) | (1 << 6), // TRACK_ELEM_BANKED_RIGHT_QUARTER_TURN_5_TILES + (1 << 0), // TRACK_ELEM_LEFT_BANK_TO_25_DEG_UP + (1 << 0), // TRACK_ELEM_RIGHT_BANK_TO_25_DEG_UP + (1 << 0), // TRACK_ELEM_25_DEG_UP_TO_LEFT_BANK + (1 << 0), // TRACK_ELEM_25_DEG_UP_TO_RIGHT_BANK + (1 << 0), // TRACK_ELEM_LEFT_BANK_TO_25_DEG_DOWN + (1 << 0), // TRACK_ELEM_RIGHT_BANK_TO_25_DEG_DOWN + (1 << 0), // TRACK_ELEM_25_DEG_DOWN_TO_LEFT_BANK + (1 << 0), // TRACK_ELEM_25_DEG_DOWN_TO_RIGHT_BANK + (1 << 0), // TRACK_ELEM_LEFT_BANK + (1 << 0), // TRACK_ELEM_RIGHT_BANK + (1 << 0) | (1 << 6), // TRACK_ELEM_LEFT_QUARTER_TURN_5_TILES_25_DEG_UP + (1 << 0) | (1 << 6), // TRACK_ELEM_RIGHT_QUARTER_TURN_5_TILES_25_DEG_UP + (1 << 0) | (1 << 6), // TRACK_ELEM_LEFT_QUARTER_TURN_5_TILES_25_DEG_DOWN + (1 << 0) | (1 << 6), // TRACK_ELEM_RIGHT_QUARTER_TURN_5_TILES_25_DEG_DOWN + (1 << 0) | (1 << 3), // TRACK_ELEM_S_BEND_LEFT + (1 << 0) | (1 << 3), // TRACK_ELEM_S_BEND_RIGHT + (1 << 0) | (1 << 9), // TRACK_ELEM_LEFT_VERTICAL_LOOP + (1 << 0) | (1 << 9), // TRACK_ELEM_RIGHT_VERTICAL_LOOP + (1 << 0) | (1 << 3), // TRACK_ELEM_LEFT_QUARTER_TURN_3_TILES + (1 << 0) | (1 << 3), // TRACK_ELEM_RIGHT_QUARTER_TURN_3_TILES + (1 << 0) | (1 << 3), // TRACK_ELEM_LEFT_QUARTER_TURN_3_TILES_BANK + (1 << 0) | (1 << 3), // TRACK_ELEM_RIGHT_QUARTER_TURN_3_TILES_BANK + (1 << 0) | (1 << 3), // TRACK_ELEM_LEFT_QUARTER_TURN_3_TILES_25_DEG_UP + (1 << 0) | (1 << 3), // TRACK_ELEM_RIGHT_QUARTER_TURN_3_TILES_25_DEG_UP + (1 << 0) | (1 << 3), // TRACK_ELEM_LEFT_QUARTER_TURN_3_TILES_25_DEG_DOWN + (1 << 0) | (1 << 3), // TRACK_ELEM_RIGHT_QUARTER_TURN_3_TILES_25_DEG_DOWN + (1 << 0), // TRACK_ELEM_LEFT_QUARTER_TURN_1_TILE + (1 << 0), // TRACK_ELEM_RIGHT_QUARTER_TURN_1_TILE + (1 << 0) | (1 << 2), // TRACK_ELEM_LEFT_TWIST_DOWN_TO_UP + (1 << 0) | (1 << 2), // TRACK_ELEM_RIGHT_TWIST_DOWN_TO_UP + (1 << 0) | (1 << 2), // TRACK_ELEM_LEFT_TWIST_UP_TO_DOWN + (1 << 0) | (1 << 2), // TRACK_ELEM_RIGHT_TWIST_UP_TO_DOWN + (1 << 0) | (1 << 3), // TRACK_ELEM_HALF_LOOP_UP + (1 << 0) | (1 << 3), // TRACK_ELEM_HALF_LOOP_DOWN + (1 << 0) | (1 << 2), // TRACK_ELEM_LEFT_CORKSCREW_UP + (1 << 0) | (1 << 2), // TRACK_ELEM_RIGHT_CORKSCREW_UP + (1 << 0) | (1 << 2), // TRACK_ELEM_LEFT_CORKSCREW_DOWN + (1 << 0) | (1 << 2), // TRACK_ELEM_RIGHT_CORKSCREW_DOWN + (1 << 0), // TRACK_ELEM_FLAT_TO_60_DEG_UP + (1 << 0), // TRACK_ELEM_60_DEG_UP_TO_FLAT + (1 << 0), // TRACK_ELEM_FLAT_TO_60_DEG_DOWN + (1 << 0), // TRACK_ELEM_60_DEG_DOWN_TO_FLAT + (1 << 1) | (1 << 3) | (1 << 6) | (1 << 7), // TRACK_ELEM_TOWER_BASE + (1 << 0), // TRACK_ELEM_TOWER_SECTION + (1 << 0), // TRACK_ELEM_FLAT_COVERED + (1 << 0), // TRACK_ELEM_25_DEG_UP_COVERED + (1 << 0), // TRACK_ELEM_60_DEG_UP_COVERED + (1 << 0), // TRACK_ELEM_FLAT_TO_25_DEG_UP_COVERED + (1 << 0), // TRACK_ELEM_25_DEG_UP_TO_60_DEG_UP_COVERED + (1 << 0), // TRACK_ELEM_60_DEG_UP_TO_25_DEG_UP_COVERED + (1 << 0), // TRACK_ELEM_25_DEG_UP_TO_FLAT_COVERED + (1 << 0), // TRACK_ELEM_25_DEG_DOWN_COVERED + (1 << 0), // TRACK_ELEM_60_DEG_DOWN_COVERED + (1 << 0), // TRACK_ELEM_FLAT_TO_25_DEG_DOWN_COVERED + (1 << 0), // TRACK_ELEM_25_DEG_DOWN_TO_60_DEG_DOWN_COVERED + (1 << 0), // TRACK_ELEM_60_DEG_DOWN_TO_25_DEG_DOWN_COVERED + (1 << 0), // TRACK_ELEM_25_DEG_DOWN_TO_FLAT_COVERED + (1 << 0) | (1 << 6), // TRACK_ELEM_LEFT_QUARTER_TURN_5_TILES_COVERED + (1 << 0) | (1 << 6), // TRACK_ELEM_RIGHT_QUARTER_TURN_5_TILES_COVERED + (1 << 0) | (1 << 3), // TRACK_ELEM_S_BEND_LEFT_COVERED + (1 << 0) | (1 << 3), // TRACK_ELEM_S_BEND_RIGHT_COVERED + (1 << 0) | (1 << 3), // TRACK_ELEM_LEFT_QUARTER_TURN_3_TILES_COVERED + (1 << 0) | (1 << 3), // TRACK_ELEM_RIGHT_QUARTER_TURN_3_TILES_COVERED + (1 << 0) | (1 << 7), // TRACK_ELEM_LEFT_HALF_BANKED_HELIX_UP_SMALL + (1 << 0) | (1 << 7), // TRACK_ELEM_RIGHT_HALF_BANKED_HELIX_UP_SMALL + (1 << 0) | (1 << 7), // TRACK_ELEM_LEFT_HALF_BANKED_HELIX_DOWN_SMALL + (1 << 0) | (1 << 7), // TRACK_ELEM_RIGHT_HALF_BANKED_HELIX_DOWN_SMALL + (1 << 0) | (1 << 13), // TRACK_ELEM_LEFT_HALF_BANKED_HELIX_UP_LARGE + (1 << 0) | (1 << 13), // TRACK_ELEM_RIGHT_HALF_BANKED_HELIX_UP_LARGE + (1 << 0) | (1 << 13), // TRACK_ELEM_LEFT_HALF_BANKED_HELIX_DOWN_LARGE + (1 << 0) | (1 << 13), // TRACK_ELEM_RIGHT_HALF_BANKED_HELIX_DOWN_LARGE + (1 << 0), // TRACK_ELEM_LEFT_QUARTER_TURN_1_TILE_60_DEG_UP + (1 << 0), // TRACK_ELEM_RIGHT_QUARTER_TURN_1_TILE_60_DEG_UP + (1 << 0), // TRACK_ELEM_LEFT_QUARTER_TURN_1_TILE_60_DEG_DOWN + (1 << 0), // TRACK_ELEM_RIGHT_QUARTER_TURN_1_TILE_60_DEG_DOWN + (1 << 0), // TRACK_ELEM_BRAKES + (1 << 0), // TRACK_ELEM_ROTATION_CONTROL_TOGGLE + (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), // TRACK_ELEM_INVERTED_90_DEG_UP_TO_FLAT_QUARTER_LOOP + (1 << 0) | (1 << 6), // TRACK_ELEM_LEFT_QUARTER_BANKED_HELIX_LARGE_UP + (1 << 0) | (1 << 6), // TRACK_ELEM_RIGHT_QUARTER_BANKED_HELIX_LARGE_UP + (1 << 0) | (1 << 6), // TRACK_ELEM_LEFT_QUARTER_BANKED_HELIX_LARGE_DOWN + (1 << 0) | (1 << 6), // TRACK_ELEM_RIGHT_QUARTER_BANKED_HELIX_LARGE_DOWN + (1 << 0) | (1 << 6), // TRACK_ELEM_LEFT_QUARTER_HELIX_LARGE_UP + (1 << 0) | (1 << 6), // TRACK_ELEM_RIGHT_QUARTER_HELIX_LARGE_UP + (1 << 0) | (1 << 6), // TRACK_ELEM_LEFT_QUARTER_HELIX_LARGE_DOWN + (1 << 0) | (1 << 6), // TRACK_ELEM_RIGHT_QUARTER_HELIX_LARGE_DOWN + (1 << 0), // TRACK_ELEM_25_DEG_UP_LEFT_BANKED + (1 << 0) | (1 << 3) | (1 << 12) | (1 << 15), // TRACK_ELEM_25_DEG_UP_RIGHT_BANKED + (1 << 0), // TRACK_ELEM_WATERFALL + (1 << 0), // TRACK_ELEM_RAPIDS + (1 << 0), // TRACK_ELEM_ON_RIDE_PHOTO + (1 << 0) | (1 << 7), // TRACK_ELEM_25_DEG_DOWN_LEFT_BANKED + (1 << 0), // TRACK_ELEM_25_DEG_DOWN_RIGHT_BANKED + (1 << 0) | (1 << 4), // TRACK_ELEM_WATER_SPLASH + (1 << 0) | (1 << 3), // TRACK_ELEM_FLAT_TO_60_DEG_UP_LONG_BASE + (1 << 0) | (1 << 3), // TRACK_ELEM_60_DEG_UP_TO_FLAT_LONG_BASE + (1 << 0), // TRACK_ELEM_WHIRLPOOL + (1 << 0) | (1 << 3), // TRACK_ELEM_FLAT_TO_60_DEG_DOWN_LONG_BASE + (1 << 0) | (1 << 3), // TRACK_ELEM_60_DEG_UP_TO_FLAT_LONG_BASE_122 + (1 << 0) | (1 << 3), // TRACK_ELEM_CABLE_LIFT_HILL + (1 << 0) | (1 << 5), // TRACK_ELEM_REVERSE_WHOA_BELLY_SLOPE + (1 << 0), // TRACK_ELEM_REVERSE_WHOA_BELLY_VERTICAL + (1 << 0), // TRACK_ELEM_90_DEG_UP + (1 << 0), // TRACK_ELEM_90_DEG_DOWN + (1 << 0), // TRACK_ELEM_60_DEG_UP_TO_90_DEG_UP + (1 << 0), // TRACK_ELEM_90_DEG_DOWN_TO_60_DEG_DOWN + (1 << 0), // TRACK_ELEM_90_DEG_UP_TO_60_DEG_UP + (1 << 0), // TRACK_ELEM_60_DEG_DOWN_TO_90_DEG_DOWN + (1 << 0), // TRACK_ELEM_BRAKE_FOR_DROP + (1 << 0) | (1 << 4), // TRACK_ELEM_LEFT_EIGHTH_TO_DIAG + (1 << 0) | (1 << 4), // TRACK_ELEM_RIGHT_EIGHTH_TO_DIAG + (1 << 0) | (1 << 4), // TRACK_ELEM_LEFT_EIGHTH_TO_ORTHOGONAL + (1 << 0) | (1 << 4), // TRACK_ELEM_RIGHT_EIGHTH_TO_ORTHOGONAL + (1 << 0) | (1 << 4), // TRACK_ELEM_LEFT_EIGHTH_BANK_TO_DIAG + (1 << 0) | (1 << 4), // TRACK_ELEM_RIGHT_EIGHTH_BANK_TO_DIAG + (1 << 0) | (1 << 4), // TRACK_ELEM_LEFT_EIGHTH_BANK_TO_ORTHOGONAL + (1 << 0) | (1 << 4), // TRACK_ELEM_RIGHT_EIGHTH_BANK_TO_ORTHOGONAL + (1 << 0), // TRACK_ELEM_DIAG_FLAT + (1 << 0), // TRACK_ELEM_DIAG_25_DEG_UP + (1 << 0), // TRACK_ELEM_DIAG_60_DEG_UP + (1 << 0), // TRACK_ELEM_DIAG_FLAT_TO_25_DEG_UP + (1 << 0), // TRACK_ELEM_DIAG_25_DEG_UP_TO_60_DEG_UP + (1 << 0), // TRACK_ELEM_DIAG_60_DEG_UP_TO_25_DEG_UP + (1 << 0), // TRACK_ELEM_DIAG_25_DEG_UP_TO_FLAT + (1 << 3), // TRACK_ELEM_DIAG_25_DEG_DOWN + (1 << 3), // TRACK_ELEM_DIAG_60_DEG_DOWN + (1 << 3), // TRACK_ELEM_DIAG_FLAT_TO_25_DEG_DOWN + (1 << 3), // TRACK_ELEM_DIAG_25_DEG_DOWN_TO_60_DEG_DOWN + (1 << 3), // TRACK_ELEM_DIAG_60_DEG_DOWN_TO_25_DEG_DOWN + (1 << 3), // TRACK_ELEM_DIAG_25_DEG_DOWN_TO_FLAT + (1 << 0), // TRACK_ELEM_DIAG_FLAT_TO_60_DEG_UP + (1 << 0), // TRACK_ELEM_DIAG_60_DEG_UP_TO_FLAT + (1 << 3), // TRACK_ELEM_DIAG_FLAT_TO_60_DEG_DOWN + (1 << 3), // TRACK_ELEM_DIAG_60_DEG_DOWN_TO_FLAT + (1 << 0), // TRACK_ELEM_DIAG_FLAT_TO_LEFT_BANK + (1 << 0), // TRACK_ELEM_DIAG_FLAT_TO_RIGHT_BANK + (1 << 0), // TRACK_ELEM_DIAG_LEFT_BANK_TO_FLAT + (1 << 0), // TRACK_ELEM_DIAG_RIGHT_BANK_TO_FLAT + (1 << 0), // TRACK_ELEM_DIAG_LEFT_BANK_TO_25_DEG_UP + (1 << 0), // TRACK_ELEM_DIAG_RIGHT_BANK_TO_25_DEG_UP + (1 << 0), // TRACK_ELEM_DIAG_25_DEG_UP_TO_LEFT_BANK + (1 << 0), // TRACK_ELEM_DIAG_25_DEG_UP_TO_RIGHT_BANK + (1 << 3), // TRACK_ELEM_DIAG_LEFT_BANK_TO_25_DEG_DOWN + (1 << 3), // TRACK_ELEM_DIAG_RIGHT_BANK_TO_25_DEG_DOWN + (1 << 3), // TRACK_ELEM_DIAG_25_DEG_DOWN_TO_LEFT_BANK + (1 << 3), // TRACK_ELEM_DIAG_25_DEG_DOWN_TO_RIGHT_BANK + (1 << 0), // TRACK_ELEM_DIAG_LEFT_BANK + (1 << 0), // TRACK_ELEM_DIAG_RIGHT_BANK + (1 << 0), // TRACK_ELEM_LOG_FLUME_REVERSER + (1 << 0), // TRACK_ELEM_SPINNING_TUNNEL + (1 << 0) | (1 << 2), // TRACK_ELEM_LEFT_BARREL_ROLL_UP_TO_DOWN + (1 << 0) | (1 << 2), // TRACK_ELEM_RIGHT_BARREL_ROLL_UP_TO_DOWN + (1 << 0) | (1 << 2), // TRACK_ELEM_LEFT_BARREL_ROLL_DOWN_TO_UP + (1 << 0) | (1 << 2), // TRACK_ELEM_RIGHT_BARREL_ROLL_DOWN_TO_UP + (1 << 0) | (1 << 3), // TRACK_ELEM_LEFT_BANK_TO_LEFT_QUARTER_TURN_3_TILES_25_DEG_UP + (1 << 0) | (1 << 3), // TRACK_ELEM_RIGHT_BANK_TO_RIGHT_QUARTER_TURN_3_TILES_25_DEG_UP + (1 << 0) | (1 << 3), // TRACK_ELEM_LEFT_QUARTER_TURN_3_TILES_25_DEG_DOWN_TO_LEFT_BANK + (1 << 0) | (1 << 3), // TRACK_ELEM_RIGHT_QUARTER_TURN_3_TILES_25_DEG_DOWN_TO_RIGHT_BANK + (1 << 0), // TRACK_ELEM_POWERED_LIFT + (1 << 0) | (1 << 6), // TRACK_ELEM_LEFT_LARGE_HALF_LOOP_UP + (1 << 0) | (1 << 6), // TRACK_ELEM_RIGHT_LARGE_HALF_LOOP_UP + (1 << 0) | (1 << 6), // TRACK_ELEM_RIGHT_LARGE_HALF_LOOP_DOWN + (1 << 0) | (1 << 6), // TRACK_ELEM_LEFT_LARGE_HALF_LOOP_DOWN + (1 << 0) | (1 << 2), // TRACK_ELEM_LEFT_FLYER_TWIST_UP + (1 << 0) | (1 << 2), // TRACK_ELEM_RIGHT_FLYER_TWIST_UP + (1 << 0) | (1 << 2), // TRACK_ELEM_LEFT_FLYER_TWIST_DOWN + (1 << 0) | (1 << 2), // TRACK_ELEM_RIGHT_FLYER_TWIST_DOWN + (1 << 0) | (1 << 3), // TRACK_ELEM_FLYER_HALF_LOOP_UP + (1 << 0) | (1 << 3), // TRACK_ELEM_FLYER_HALF_LOOP_DOWN + (1 << 0) | (1 << 2), // TRACK_ELEM_LEFT_FLYER_CORKSCREW_UP + (1 << 0) | (1 << 2), // TRACK_ELEM_RIGHT_FLYER_CORKSCREW_UP + (1 << 0) | (1 << 2), // TRACK_ELEM_LEFT_FLYER_CORKSCREW_DOWN + (1 << 0) | (1 << 2), // TRACK_ELEM_RIGHT_FLYER_CORKSCREW_DOWN + (1 << 0) | (1 << 3), // TRACK_ELEM_HEARTLINE_TRANSFER_UP + (1 << 0) | (1 << 3), // TRACK_ELEM_HEARTLINE_TRANSFER_DOWN + (1 << 0) | (1 << 5), // TRACK_ELEM_LEFT_HEARTLINE_ROLL + (1 << 0) | (1 << 5), // TRACK_ELEM_RIGHT_HEARTLINE_ROLL + (1 << 0) | (1 << 1), // TRACK_ELEM_MINI_GOLF_HOLE_A + (1 << 0) | (1 << 1), // TRACK_ELEM_MINI_GOLF_HOLE_B + (1 << 0) | (1 << 1), // TRACK_ELEM_MINI_GOLF_HOLE_C + (1 << 0) | (1 << 2), // TRACK_ELEM_MINI_GOLF_HOLE_D + (1 << 0) | (1 << 2), // TRACK_ELEM_MINI_GOLF_HOLE_E + (1 << 0) | (1 << 2), // TRACK_ELEM_MULTIDIM_INVERTED_FLAT_TO_90_DEG_QUARTER_LOOP_DOWN + (1 << 0) | (1 << 2), // TRACK_ELEM_90_DEG_TO_INVERTED_FLAT_QUARTER_LOOP_UP + (1 << 0) | (1 << 2), // TRACK_ELEM_INVERTED_FLAT_TO_90_DEG_QUARTER_LOOP_DOWN + (1 << 0) | (1 << 3), // TRACK_ELEM_LEFT_CURVED_LIFT_HILL + (1 << 0) | (1 << 3), // TRACK_ELEM_RIGHT_CURVED_LIFT_HILL + (1 << 0) | (1 << 5), // TRACK_ELEM_LEFT_REVERSER + (1 << 0) | (1 << 5), // TRACK_ELEM_RIGHT_REVERSER + (1 << 0) | (1 << 3), // TRACK_ELEM_AIR_THRUST_TOP_CAP + (1 << 0), // TRACK_ELEM_AIR_THRUST_VERTICAL_DOWN + (1 << 0) | (1 << 5), // TRACK_ELEM_AIR_THRUST_VERTICAL_DOWN_TO_LEVEL + (1 << 0), // TRACK_ELEM_BLOCK_BRAKES + (1 << 0) | (1 << 3), // TRACK_ELEM_LEFT_BANKED_QUARTER_TURN_3_TILE_25_DEG_UP + (1 << 0) | (1 << 3), // TRACK_ELEM_RIGHT_BANKED_QUARTER_TURN_3_TILE_25_DEG_UP + (1 << 0) | (1 << 3), // TRACK_ELEM_LEFT_BANKED_QUARTER_TURN_3_TILE_25_DEG_DOWN + (1 << 0) | (1 << 3), // TRACK_ELEM_RIGHT_BANKED_QUARTER_TURN_3_TILE_25_DEG_DOWN + (1 << 0) | (1 << 6), // TRACK_ELEM_LEFT_BANKED_QUARTER_TURN_5_TILE_25_DEG_UP + (1 << 0) | (1 << 6), // TRACK_ELEM_RIGHT_BANKED_QUARTER_TURN_5_TILE_25_DEG_UP + (1 << 0) | (1 << 6), // TRACK_ELEM_LEFT_BANKED_QUARTER_TURN_5_TILE_25_DEG_DOWN + (1 << 0) | (1 << 6), // TRACK_ELEM_RIGHT_BANKED_QUARTER_TURN_5_TILE_25_DEG_DOWN + (1 << 0), // TRACK_ELEM_25_DEG_UP_TO_LEFT_BANKED_25_DEG_UP + (1 << 0), // TRACK_ELEM_25_DEG_UP_TO_RIGHT_BANKED_25_DEG_UP + (1 << 0), // TRACK_ELEM_LEFT_BANKED_25_DEG_UP_TO_25_DEG_UP + (1 << 0), // TRACK_ELEM_RIGHT_BANKED_25_DEG_UP_TO_25_DEG_UP + (1 << 0), // TRACK_ELEM_25_DEG_DOWN_TO_LEFT_BANKED_25_DEG_DOWN + (1 << 0), // TRACK_ELEM_25_DEG_DOWN_TO_RIGHT_BANKED_25_DEG_DOWN + (1 << 0), // TRACK_ELEM_LEFT_BANKED_25_DEG_DOWN_TO_25_DEG_DOWN + (1 << 0), // TRACK_ELEM_RIGHT_BANKED_25_DEG_DOWN_TO_25_DEG_DOWN + (1 << 0), // TRACK_ELEM_LEFT_BANKED_FLAT_TO_LEFT_BANKED_25_DEG_UP + (1 << 0), // TRACK_ELEM_RIGHT_BANKED_FLAT_TO_RIGHT_BANKED_25_DEG_UP + (1 << 0), // TRACK_ELEM_LEFT_BANKED_25_DEG_UP_TO_LEFT_BANKED_FLAT + (1 << 0), // TRACK_ELEM_RIGHT_BANKED_25_DEG_UP_TO_RIGHT_BANKED_FLAT + (1 << 0), // TRACK_ELEM_LEFT_BANKED_FLAT_TO_LEFT_BANKED_25_DEG_DOWN + (1 << 0), // TRACK_ELEM_RIGHT_BANKED_FLAT_TO_RIGHT_BANKED_25_DEG_DOWN + (1 << 0), // TRACK_ELEM_LEFT_BANKED_25_DEG_DOWN_TO_LEFT_BANKED_FLAT + (1 << 0), // TRACK_ELEM_RIGHT_BANKED_25_DEG_DOWN_TO_RIGHT_BANKED_FLAT + (1 << 0), // TRACK_ELEM_FLAT_TO_LEFT_BANKED_25_DEG_UP + (1 << 0), // TRACK_ELEM_FLAT_TO_RIGHT_BANKED_25_DEG_UP + (1 << 0), // TRACK_ELEM_LEFT_BANKED_25_DEG_UP_TO_FLAT + (1 << 0), // TRACK_ELEM_RIGHT_BANKED_25_DEG_UP_TO_FLAT + (1 << 0), // TRACK_ELEM_FLAT_TO_LEFT_BANKED_25_DEG_DOWN + (1 << 0), // TRACK_ELEM_FLAT_TO_RIGHT_BANKED_25_DEG_DOWN + (1 << 0), // TRACK_ELEM_LEFT_BANKED_25_DEG_DOWN_TO_FLAT + (1 << 0), // TRACK_ELEM_RIGHT_BANKED_25_DEG_DOWN_TO_FLAT + (1 << 0), // TRACK_ELEM_LEFT_QUARTER_TURN_1_TILE_90_DEG_UP + (1 << 0), // TRACK_ELEM_RIGHT_QUARTER_TURN_1_TILE_90_DEG_UP + (1 << 0), // TRACK_ELEM_LEFT_QUARTER_TURN_1_TILE_90_DEG_DOWN + (1 << 0), // TRACK_ELEM_RIGHT_QUARTER_TURN_1_TILE_90_DEG_DOWN + (1 << 0) | (1 << 2), // TRACK_ELEM_MULTIDIM_90_DEG_UP_TO_INVERTED_FLAT_QUARTER_LOOP + (1 << 0) | (1 << 2), // TRACK_ELEM_MULTIDIM_FLAT_TO_90_DEG_DOWN_QUARTER_LOOP + (1 << 0) | (1 << 2), // 255 +}; diff --git a/src/ride/track_data.h b/src/ride/track_data.h index 4383535178..21a44c244c 100644 --- a/src/ride/track_data.h +++ b/src/ride/track_data.h @@ -74,3 +74,5 @@ typedef struct dodgems_track_size { extern const dodgems_track_size DodgemsTrackSize[256]; extern const uint8 TrackElementMirrorMap[256]; + +extern const uint32 TrackHeightMarkerPositions[256]; diff --git a/src/ride/track_paint.c b/src/ride/track_paint.c index d8c913da69..f12f822b35 100644 --- a/src/ride/track_paint.c +++ b/src/ride/track_paint.c @@ -1234,7 +1234,7 @@ void track_paint(uint8 direction, int height, rct_map_element *mapElement) if ((gCurrentViewportFlags & VIEWPORT_FLAG_TRACK_HEIGHTS) && dpi->zoom_level == 0) { gPaintInteractionType = VIEWPORT_INTERACTION_ITEM_NONE; - if (RCT2_ADDRESS(0x00999694, uint32)[trackType] & (1 << trackSequence)) { + if (TrackHeightMarkerPositions[trackType] & (1 << trackSequence)) { uint16 ax = RideData5[ride->type].z_offset; uint32 ebx = 0x20381689 + (height + 8) / 16; ebx += RCT2_GLOBAL(RCT2_ADDRESS_CONFIG_HEIGHT_MARKERS, uint16);