From 5829f44fe6e207efca20ad354145992dd07d3049 Mon Sep 17 00:00:00 2001 From: zsilencer Date: Wed, 18 May 2016 13:59:48 -0600 Subject: [PATCH] Review changes --- src/paint/map_element/scenery.c | 214 ++++++++++---------------------- src/ride/track_design_save.c | 1 + 2 files changed, 67 insertions(+), 148 deletions(-) diff --git a/src/paint/map_element/scenery.c b/src/paint/map_element/scenery.c index 3de4950651..695ede0285 100644 --- a/src/paint/map_element/scenery.c +++ b/src/paint/map_element/scenery.c @@ -16,6 +16,7 @@ #include "map_element.h" #include "../../addresses.h" +#include "../../config.h" #include "../../game.h" #include "../../interface/viewport.h" #include "../../paint/paint.h" @@ -23,43 +24,43 @@ #include "../../world/map.h" #include "../../world/scenery.h" +/** + * + * rct2: 0x006DFF47 + */ void scenery_paint(uint8 direction, int height, rct_map_element* mapElement) { //RCT2_CALLPROC_X(0x6DFF47, 0, 0, direction, height, (int)mapElement, 0, 0); return; RCT2_GLOBAL(RCT2_ADDRESS_PAINT_SETUP_CURRENT_TYPE, uint8_t) = VIEWPORT_INTERACTION_ITEM_SCENERY; - RCT2_GLOBAL(0x009DEA52, sint16) = 0; - RCT2_GLOBAL(0x009DEA54, sint16) = 0; - int ebx = 0; + rct_xyz16 boxlength; + rct_xyz16 boxoffset; + boxoffset.x = 0; + boxoffset.y = 0; + boxoffset.z = height; + int baseImageid = 0; if (RCT2_GLOBAL(0x009DEA6F, uint8) & 1) { - rct_map_element *mapElement2 = RCT2_GLOBAL(0x00F63674, rct_map_element*); - while (mapElement2 != mapElement) { - mapElement2++; - if ((mapElement2 - 1) != (rct_map_element*)0xFFFFFFFF) { - continue; - } - ebx = 0x21700000; - break; + if (track_design_save_contains_map_element(mapElement)) { + baseImageid = 0x21700000; } } if (mapElement->flags & MAP_ELEMENT_FLAG_GHOST) { RCT2_GLOBAL(RCT2_ADDRESS_PAINT_SETUP_CURRENT_TYPE, uint8_t) = VIEWPORT_INTERACTION_ITEM_NONE; - ebx = RCT2_ADDRESS(0x993CC4, uint32_t)[RCT2_GLOBAL(RCT2_ADDRESS_CONFIG_CONSTRUCTION_MARKER, uint8)]; + baseImageid = RCT2_ADDRESS(0x993CC4, uint32_t)[gConfigGeneral.construction_marker_colour]; } - uint32 dword_F64EB0 = ebx; + uint32 dword_F64EB0 = baseImageid; - rct_scenery_entry *entry = (rct_scenery_entry*)gSmallSceneryEntries[mapElement->properties.scenery.type];; - ebx = entry->image + direction; - RCT2_GLOBAL(0x00F64ED6, uint16) = 2; - RCT2_GLOBAL(0x00F64ED8, uint16) = 2; - int ecx; + rct_scenery_entry *entry = get_small_scenery_entry(mapElement->properties.scenery.type); + baseImageid = entry->image + direction; + boxlength.x = 2; + boxlength.y = 2; sint8 x_offset = 0; sint8 y_offset = 0; if (entry->small_scenery.flags & SMALL_SCENERY_FLAG_FULL_TILE) { if (entry->small_scenery.flags & SMALL_SCENERY_FLAG24) { // 6DFFE3: - RCT2_GLOBAL(0x009DEA52, sint16) = RCT2_ADDRESS(0x009A3E7C, uint16)[direction * 4]; - RCT2_GLOBAL(0x009DEA54, sint16) = RCT2_ADDRESS(0x009A3E7E, uint16)[direction * 4]; - RCT2_GLOBAL(0x00F64ED6, uint16) = RCT2_ADDRESS(0x009A3E8C, uint16)[direction * 4]; - RCT2_GLOBAL(0x00F64ED8, uint16) = RCT2_ADDRESS(0x009A3E8E, uint16)[direction * 4]; + boxoffset.x = RCT2_ADDRESS(0x009A3E7C, uint16)[direction * 4]; + boxoffset.y = RCT2_ADDRESS(0x009A3E7E, uint16)[direction * 4]; + boxlength.x = RCT2_ADDRESS(0x009A3E8C, uint16)[direction * 4]; + boxlength.y = RCT2_ADDRESS(0x009A3E8E, uint16)[direction * 4]; x_offset = 3; y_offset = 3; } else { @@ -68,56 +69,55 @@ void scenery_paint(uint8 direction, int height, rct_map_element* mapElement) { if (entry->small_scenery.flags & SMALL_SCENERY_FLAG_VOFFSET_CENTRE) { x_offset = 3; y_offset = 3; - RCT2_GLOBAL(0x00F64ED6, uint16) = 26; - RCT2_GLOBAL(0x00F64ED8, uint16) = 26; + boxlength.x = 26; + boxlength.y = 26; if (entry->small_scenery.flags & SMALL_SCENERY_FLAG_ALLOW_WALLS) { x_offset = 1; y_offset = 1; - RCT2_GLOBAL(0x00F64ED6, uint16) = 30; - RCT2_GLOBAL(0x00F64ED8, uint16) = 30; + boxlength.x = 30; + boxlength.y = 30; } } } } else { // 6DFFC2: - ecx = ((mapElement->type >> 6) + get_current_rotation()) & 3; + uint32 ecx = ((mapElement->type >> 6) + get_current_rotation()) & 3; x_offset = RCT2_ADDRESS(0x009A3E74, sint8)[ecx * 2]; y_offset = RCT2_ADDRESS(0x009A3E75, sint8)[ecx * 2]; } // 6E0074: - RCT2_GLOBAL(0x009DEA52, sint16) = x_offset; - RCT2_GLOBAL(0x009DEA54, sint16) = y_offset; - RCT2_GLOBAL(0x009DEA56, sint16) = height; - uint8 bblz = entry->small_scenery.height - 4; - if (bblz > 0x80) { - bblz = 0x80; + boxoffset.x = x_offset; + boxoffset.y = y_offset; + boxlength.z = entry->small_scenery.height - 4; + if (boxlength.z > 0x80) { + boxlength.z = 0x80; } if (entry->small_scenery.flags & SMALL_SCENERY_FLAG6) { if (mapElement->properties.scenery.age >= 40) { - ebx += 4; + baseImageid += 4; } if (mapElement->properties.scenery.age >= 55) { - ebx += 4; + baseImageid += 4; } } if (entry->small_scenery.flags & SMALL_SCENERY_FLAG_HAS_PRIMARY_COLOUR) { - ebx |= ((mapElement->properties.scenery.colour_1 & 0x1F) << 19) | 0x20000000; + baseImageid |= ((mapElement->properties.scenery.colour_1 & 0x1F) << 19) | 0x20000000; if (entry->small_scenery.flags & SMALL_SCENERY_FLAG_HAS_SECONDARY_COLOUR) { - ebx |= ((mapElement->properties.scenery.colour_2 & 0x1F) << 24) | 0x80000000; + baseImageid |= ((mapElement->properties.scenery.colour_2 & 0x1F) << 24) | 0x80000000; } } if (dword_F64EB0 != 0) { - ebx = (ebx & 0x7FFFF) | dword_F64EB0; + baseImageid = (baseImageid & 0x7FFFF) | dword_F64EB0; } if (!(entry->small_scenery.flags & SMALL_SCENERY_FLAG21)) { - sub_98197C(ebx, x_offset, y_offset, RCT2_GLOBAL(0x00F64ED6, uint16), RCT2_GLOBAL(0x00F64ED8, uint16), bblz - 1, height, RCT2_GLOBAL(0x009DEA52, sint16), RCT2_GLOBAL(0x009DEA54, sint16), height, get_current_rotation()); + sub_98197C(baseImageid, x_offset, y_offset, boxlength.x, boxlength.y, boxlength.z - 1, height, boxoffset.x, boxoffset.y, boxoffset.z, get_current_rotation()); } if (entry->small_scenery.flags & SMALL_SCENERY_FLAG10) { if (dword_F64EB0 == 0) { - // Draw transparent overlay: - int image_id = (ebx & 0x7FFFF) + (((mapElement->properties.scenery.colour_1 & 0x1F) + 112) << 19) + 0x40000004; - sub_98199C(image_id, x_offset, y_offset, RCT2_GLOBAL(0x00F64ED6, uint16), RCT2_GLOBAL(0x00F64ED8, uint16), bblz - 1, height, RCT2_GLOBAL(0x009DEA52, sint16), RCT2_GLOBAL(0x009DEA54, sint16), height, get_current_rotation()); + // Draw translucent overlay: + int image_id = (baseImageid & 0x7FFFF) + (((mapElement->properties.scenery.colour_1 & 0x1F) + 112) << 19) + 0x40000004; + sub_98199C(image_id, x_offset, y_offset, boxlength.x, boxlength.y, boxlength.z - 1, height, boxoffset.x, boxoffset.y, boxoffset.z, get_current_rotation()); } } @@ -131,7 +131,7 @@ void scenery_paint(uint8 direction, int height, rct_map_element* mapElement) { if (dword_F64EB0 != 0) { image_id = (image_id & 0x7FFFF) | dword_F64EB0; } - sub_98199C(image_id, x_offset, y_offset, RCT2_GLOBAL(0x00F64ED6, uint16), RCT2_GLOBAL(0x00F64ED8, uint16), bblz - 1, height, RCT2_GLOBAL(0x009DEA52, sint16), RCT2_GLOBAL(0x009DEA54, sint16), height, get_current_rotation()); + sub_98199C(image_id, x_offset, y_offset, boxlength.x, boxlength.y, boxlength.z - 1, height, boxoffset.x, boxoffset.y, boxoffset.z, get_current_rotation()); } else if (entry->small_scenery.flags & SMALL_SCENERY_FLAG13) { // 6E043B: @@ -139,19 +139,19 @@ void scenery_paint(uint8 direction, int height, rct_map_element* mapElement) { if (dword_F64EB0 != 0) { image_id = (image_id & 0x7FFFF) | dword_F64EB0; } - sub_98199C(image_id, x_offset, y_offset, RCT2_GLOBAL(0x00F64ED6, uint16), RCT2_GLOBAL(0x00F64ED8, uint16), bblz - 1, height, RCT2_GLOBAL(0x009DEA52, sint16), RCT2_GLOBAL(0x009DEA54, sint16), height, get_current_rotation()); + sub_98199C(image_id, x_offset, y_offset, boxlength.x, boxlength.y, boxlength.z - 1, height, boxoffset.x, boxoffset.y, boxoffset.z, get_current_rotation()); image_id = direction + entry->image + 4; if (dword_F64EB0 != 0) { image_id = (image_id & 0x7FFFF) | dword_F64EB0; } - sub_98199C(image_id, x_offset, y_offset, RCT2_GLOBAL(0x00F64ED6, uint16), RCT2_GLOBAL(0x00F64ED8, uint16), bblz - 1, height, RCT2_GLOBAL(0x009DEA52, sint16), RCT2_GLOBAL(0x009DEA54, sint16), height, get_current_rotation()); + sub_98199C(image_id, x_offset, y_offset, boxlength.x, boxlength.y, boxlength.z - 1, height, boxoffset.x, boxoffset.y, boxoffset.z, get_current_rotation()); image_id = ((gCurrentTicks / 2) & 0xF) + entry->image + 24; if (dword_F64EB0 != 0) { image_id = (image_id & 0x7FFFF) | dword_F64EB0; } - sub_98199C(image_id, x_offset, y_offset, RCT2_GLOBAL(0x00F64ED6, uint16), RCT2_GLOBAL(0x00F64ED8, uint16), bblz - 1, height, RCT2_GLOBAL(0x009DEA52, sint16), RCT2_GLOBAL(0x009DEA54, sint16), height, get_current_rotation()); + sub_98199C(image_id, x_offset, y_offset, boxlength.x, boxlength.y, boxlength.z - 1, height, boxoffset.x, boxoffset.y, boxoffset.z, get_current_rotation()); } else if (entry->small_scenery.flags & SMALL_SCENERY_FLAG_IS_CLOCK) { // 6E035C: @@ -173,7 +173,7 @@ void scenery_paint(uint8 direction, int height, rct_map_element* mapElement) { if (dword_F64EB0 != 0) { image_id = (image_id & 0x7FFFF) | dword_F64EB0; } - sub_98199C(image_id, x_offset, y_offset, RCT2_GLOBAL(0x00F64ED6, uint16), RCT2_GLOBAL(0x00F64ED8, uint16), bblz - 1, height, RCT2_GLOBAL(0x009DEA52, sint16), RCT2_GLOBAL(0x009DEA54, sint16), height, get_current_rotation()); + sub_98199C(image_id, x_offset, y_offset, boxlength.x, boxlength.y, boxlength.z - 1, height, boxoffset.x, boxoffset.y, boxoffset.z, get_current_rotation()); image_id = RCT2_GLOBAL(RCT2_ADDRESS_OS_TIME_MINUTE, uint16) + (direction * 15); if (image_id >= 60) { @@ -183,7 +183,7 @@ void scenery_paint(uint8 direction, int height, rct_map_element* mapElement) { if (dword_F64EB0 != 0) { image_id = (image_id & 0x7FFFF) | dword_F64EB0; } - sub_98199C(image_id, x_offset, y_offset, RCT2_GLOBAL(0x00F64ED6, uint16), RCT2_GLOBAL(0x00F64ED8, uint16), bblz - 1, height, RCT2_GLOBAL(0x009DEA52, sint16), RCT2_GLOBAL(0x009DEA54, sint16), height, get_current_rotation()); + sub_98199C(image_id, x_offset, y_offset, boxlength.x, boxlength.y, boxlength.z - 1, height, boxoffset.x, boxoffset.y, boxoffset.z, get_current_rotation()); } else if (entry->small_scenery.flags & SMALL_SCENERY_FLAG15) { // 6E02F6: @@ -191,7 +191,7 @@ void scenery_paint(uint8 direction, int height, rct_map_element* mapElement) { if (dword_F64EB0 != 0) { image_id = (image_id & 0x7FFFF) | dword_F64EB0; } - sub_98199C(image_id, x_offset, y_offset, RCT2_GLOBAL(0x00F64ED6, uint16), RCT2_GLOBAL(0x00F64ED8, uint16), bblz - 1, height, RCT2_GLOBAL(0x009DEA52, sint16), RCT2_GLOBAL(0x009DEA54, sint16), height, get_current_rotation()); + sub_98199C(image_id, x_offset, y_offset, boxlength.x, boxlength.y, boxlength.z - 1, height, boxoffset.x, boxoffset.y, boxoffset.z, get_current_rotation()); } else { if (entry->small_scenery.flags & SMALL_SCENERY_FLAG16) { // nothing @@ -225,9 +225,9 @@ void scenery_paint(uint8 direction, int height, rct_map_element* mapElement) { image_id = (image_id & 0x7FFFF) | dword_F64EB0; } if (entry->small_scenery.flags & SMALL_SCENERY_FLAG21) { - sub_98197C(image_id, x_offset, y_offset, RCT2_GLOBAL(0x00F64ED6, uint16), RCT2_GLOBAL(0x00F64ED8, uint16), bblz - 1, height, RCT2_GLOBAL(0x009DEA52, sint16), RCT2_GLOBAL(0x009DEA54, sint16), height, get_current_rotation()); + sub_98197C(image_id, x_offset, y_offset, boxlength.x, boxlength.y, boxlength.z - 1, height, boxoffset.x, boxoffset.y, boxoffset.z, get_current_rotation()); } else { - sub_98199C(image_id, x_offset, y_offset, RCT2_GLOBAL(0x00F64ED6, uint16), RCT2_GLOBAL(0x00F64ED8, uint16), bblz - 1, height, RCT2_GLOBAL(0x009DEA52, sint16), RCT2_GLOBAL(0x009DEA54, sint16), height, get_current_rotation()); + sub_98199C(image_id, x_offset, y_offset, boxlength.x, boxlength.y, boxlength.z - 1, height, boxoffset.x, boxoffset.y, boxoffset.z, get_current_rotation()); } } } @@ -236,22 +236,22 @@ void scenery_paint(uint8 direction, int height, rct_map_element* mapElement) { if (mapElement->properties.scenery.colour_1 & 0x20) { if (!(entry->small_scenery.flags & SMALL_SCENERY_FLAG20)) { int ax = 0; - int edx = height; - if (edx & 0xF) { - edx &= 0xFFFFFFF0; + int supportHeight = height; + if (supportHeight & 0xF) { + supportHeight &= 0xFFFFFFF0; ax = 49; } - int ebp = 0x20000000; + uint32 supportImageColourFlags = 0x20000000; if (entry->small_scenery.flags & SMALL_SCENERY_FLAG26) { - ebp = ((mapElement->properties.scenery.colour_1 & 0x1F) << 19) | 0x20000000; + supportImageColourFlags = ((mapElement->properties.scenery.colour_1 & 0x1F) << 19) | 0x20000000; } if (dword_F64EB0 != 0) { - ebp = dword_F64EB0; + supportImageColourFlags = dword_F64EB0; } if (direction & 1) { - wooden_b_supports_paint_setup(1, ax, edx, ebp); + wooden_b_supports_paint_setup(1, ax, supportHeight, supportImageColourFlags); } else { - wooden_b_supports_paint_setup(0, ax, edx, ebp); + wooden_b_supports_paint_setup(0, ax, supportHeight, supportImageColourFlags); } } } @@ -260,117 +260,35 @@ void scenery_paint(uint8 direction, int height, rct_map_element* mapElement) { uint16 word_F64F2A = height; height += 7; height &= 0xFFF8; - if (RCT2_GLOBAL(RCT2_ADDRESS_CURRENT_PAINT_TILE_MAX_HEIGHT, sint16) < height) { - RCT2_GLOBAL(RCT2_ADDRESS_CURRENT_PAINT_TILE_MAX_HEIGHT, sint16) = height; - RCT2_GLOBAL(0x141E9DA, uint8) = 0x20; - } + paint_util_set_general_support_height(height, 0x20); // 6E05FF: if (entry->small_scenery.flags & SMALL_SCENERY_FLAG23) { height = word_F64F2A; if (entry->small_scenery.flags & SMALL_SCENERY_FLAG_FULL_TILE) { // 6E0825: - RCT2_GLOBAL(0x141E9C4, uint16) = height; - RCT2_GLOBAL(0x141E9C6, uint8) = 0x20; + paint_util_set_segment_support_height(SEGMENT_C4, height, 0x20); if (entry->small_scenery.flags & SMALL_SCENERY_FLAG_VOFFSET_CENTRE) { - RCT2_GLOBAL(0x141E9D0, uint16) = height; - RCT2_GLOBAL(0x141E9D2, uint8) = 0x20; - RCT2_GLOBAL(0x141E9D4, uint16) = height; - RCT2_GLOBAL(0x141E9D6, uint8) = 0x20; - RCT2_GLOBAL(0x141E9C8, uint16) = height; - RCT2_GLOBAL(0x141E9CA, uint8) = 0x20; - RCT2_GLOBAL(0x141E9CC, uint16) = height; - RCT2_GLOBAL(0x141E9CE, uint8) = 0x20; - RCT2_GLOBAL(0x141E9B8, uint16) = height; - RCT2_GLOBAL(0x141E9BA, uint8) = 0x20; - RCT2_GLOBAL(0x141E9BC, uint16) = height; - RCT2_GLOBAL(0x141E9BE, uint8) = 0x20; - RCT2_GLOBAL(0x141E9B4, uint16) = height; - RCT2_GLOBAL(0x141E9B6, uint8) = 0x20; - RCT2_GLOBAL(0x141E9C0, uint16) = height; - RCT2_GLOBAL(0x141E9C2, uint8) = 0x20; + paint_util_set_segment_support_height(SEGMENTS_ALL & ~SEGMENT_C4, height, 0x20); } return; } if (!(entry->small_scenery.flags & SMALL_SCENERY_FLAG_VOFFSET_CENTRE)) { return; } - int cl = ((mapElement->type >> 6) + get_current_rotation()) & 3; // 6E075C: - switch (cl) { - case 0: - RCT2_GLOBAL(0x141E9B4, uint16) = height; - RCT2_GLOBAL(0x141E9B6, uint8) = 0x20; - RCT2_GLOBAL(0x141E9C8, uint16) = height; - RCT2_GLOBAL(0x141E9CA, uint8) = 0x20; - RCT2_GLOBAL(0x141E9CC, uint16) = height; - RCT2_GLOBAL(0x141E9CE, uint8) = 0x20; - break; - case 1: - RCT2_GLOBAL(0x141E9BC, uint16) = height; - RCT2_GLOBAL(0x141E9BE, uint8) = 0x20; - RCT2_GLOBAL(0x141E9CC, uint16) = height; - RCT2_GLOBAL(0x141E9CE, uint8) = 0x20; - RCT2_GLOBAL(0x141E9D4, uint16) = height; - RCT2_GLOBAL(0x141E9D6, uint8) = 0x20; - break; - case 2: - RCT2_GLOBAL(0x141E9C0, uint16) = height; - RCT2_GLOBAL(0x141E9C2, uint8) = 0x20; - RCT2_GLOBAL(0x141E9D0, uint16) = height; - RCT2_GLOBAL(0x141E9D2, uint8) = 0x20; - RCT2_GLOBAL(0x141E9D4, uint16) = height; - RCT2_GLOBAL(0x141E9D6, uint8) = 0x20; - break; - case 3: - RCT2_GLOBAL(0x141E9B8, uint16) = height; - RCT2_GLOBAL(0x141E9BA, uint8) = 0x20; - RCT2_GLOBAL(0x141E9D0, uint16) = height; - RCT2_GLOBAL(0x141E9D2, uint8) = 0x20; - RCT2_GLOBAL(0x141E9C8, uint16) = height; - RCT2_GLOBAL(0x141E9CA, uint8) = 0x20; - break; - } + paint_util_set_segment_support_height(paint_util_rotate_segments(SEGMENT_B4 | SEGMENT_C8 | SEGMENT_CC, get_current_rotation()), height, 0x20); return; } if (entry->small_scenery.flags & (SMALL_SCENERY_FLAG27 | SMALL_SCENERY_FLAG_FULL_TILE)) { - RCT2_GLOBAL(0x141E9C4, uint16) = 0xFFFF; + paint_util_set_segment_support_height(SEGMENT_C4, 0xFFFF, 0); if (entry->small_scenery.flags & SMALL_SCENERY_FLAG_VOFFSET_CENTRE) { - RCT2_GLOBAL(0x141E9D0, uint16) = 0xFFFF; - RCT2_GLOBAL(0x141E9D4, uint16) = 0xFFFF; - RCT2_GLOBAL(0x141E9C8, uint16) = 0xFFFF; - RCT2_GLOBAL(0x141E9CC, uint16) = 0xFFFF; - RCT2_GLOBAL(0x141E9B8, uint16) = 0xFFFF; - RCT2_GLOBAL(0x141E9BC, uint16) = 0xFFFF; - RCT2_GLOBAL(0x141E9B4, uint16) = 0xFFFF; - RCT2_GLOBAL(0x141E9C0, uint16) = 0xFFFF; + paint_util_set_segment_support_height(SEGMENTS_ALL & ~SEGMENT_C4, 0xFFFF, 0); } return; } if (!(entry->small_scenery.flags & SMALL_SCENERY_FLAG_VOFFSET_CENTRE)) { return; } - int cl = ((mapElement->type >> 6) + get_current_rotation()) & 3; - switch (cl) { - case 0: - RCT2_GLOBAL(0x141E9B4, uint16) = 0xFFFF; - RCT2_GLOBAL(0x141E9C8, uint16) = 0xFFFF; - RCT2_GLOBAL(0x141E9CC, uint16) = 0xFFFF; - break; - case 1: - RCT2_GLOBAL(0x141E9BC, uint16) = 0xFFFF; - RCT2_GLOBAL(0x141E9CC, uint16) = 0xFFFF; - RCT2_GLOBAL(0x141E9D4, uint16) = 0xFFFF; - break; - case 2: - RCT2_GLOBAL(0x141E9C0, uint16) = 0xFFFF; - RCT2_GLOBAL(0x141E9D0, uint16) = 0xFFFF; - RCT2_GLOBAL(0x141E9D4, uint16) = 0xFFFF; - break; - case 3: - RCT2_GLOBAL(0x141E9B8, uint16) = 0xFFFF; - RCT2_GLOBAL(0x141E9D0, uint16) = 0xFFFF; - RCT2_GLOBAL(0x141E9C8, uint16) = 0xFFFF; - break; - } + paint_util_set_segment_support_height(paint_util_rotate_segments(SEGMENT_B4 | SEGMENT_C8 | SEGMENT_CC, get_current_rotation()), 0xFFFF, 0); return; } diff --git a/src/ride/track_design_save.c b/src/ride/track_design_save.c index d9f728dd51..d6b5c1c16b 100644 --- a/src/ride/track_design_save.c +++ b/src/ride/track_design_save.c @@ -44,6 +44,7 @@ static uint8 _trackSaveDirection; static bool track_design_save_should_select_scenery_around(int rideIndex, rct_map_element *mapElement); static void track_design_save_select_nearby_scenery_for_tile(int rideIndex, int cx, int cy); +bool track_design_save_contains_map_element(rct_map_element *mapElement); static bool track_design_save_add_map_element(int interactionType, int x, int y, rct_map_element *mapElement); static void track_design_save_remove_map_element(int interactionType, int x, int y, rct_map_element *mapElement); static bool track_design_save_copy_scenery_to_td6(rct_track_td6 *td6);