diff --git a/src/paint/map_element/banner.c b/src/paint/map_element/banner.c index 6bd569a213..efbcea21e9 100644 --- a/src/paint/map_element/banner.c +++ b/src/paint/map_element/banner.c @@ -24,6 +24,14 @@ #include "../../world/banner.h" #include "../../world/scenery.h" +/** rct2: 0x0098D884 */ +const rct_xy16 BannerBoundBoxes[][2] = { + {{ 1, 2}, { 1, 29}}, + {{ 2, 32}, {29, 32}}, + {{32, 2}, {32, 29}}, + {{ 2, 1}, {29, 1}}, +}; + /** * * rct2: 0x006B9CC4 @@ -44,8 +52,8 @@ void banner_paint(uint8 direction, int height, rct_map_element* map_element) direction += map_element->properties.banner.position; direction &= 3; - boundBoxOffsetX = RCT2_ADDRESS(0x98D884, uint16)[direction * 4]; - boundBoxOffsetY = RCT2_ADDRESS(0x98D884 + 2, uint16)[direction * 4]; + boundBoxOffsetX = BannerBoundBoxes[direction][0].x; + boundBoxOffsetY = BannerBoundBoxes[direction][0].y; boundBoxOffsetZ = height + 2; uint32 base_id = (direction << 1) + banner_scenery->image; @@ -63,8 +71,8 @@ void banner_paint(uint8 direction, int height, rct_map_element* map_element) } sub_98197C(image_id, 0, 0, 1, 1, 0x15, height, boundBoxOffsetX, boundBoxOffsetY, boundBoxOffsetZ, get_current_rotation()); - boundBoxOffsetX = RCT2_ADDRESS(0x98D888, uint16)[direction * 4]; - boundBoxOffsetY = RCT2_ADDRESS(0x98D888 + 2, uint16)[direction * 4]; + boundBoxOffsetX = BannerBoundBoxes[direction][1].x; + boundBoxOffsetY = BannerBoundBoxes[direction][1].y; image_id++; sub_98197C(image_id, 0, 0, 1, 1, 0x15, height, boundBoxOffsetX, boundBoxOffsetY, boundBoxOffsetZ, get_current_rotation()); diff --git a/src/paint/map_element/map_element.h b/src/paint/map_element/map_element.h index 14ac83edd0..c0fc2d4380 100644 --- a/src/paint/map_element/map_element.h +++ b/src/paint/map_element/map_element.h @@ -98,6 +98,8 @@ extern uint8 gVerticalTunnelHeight; extern bool gShowSupportSegmentHeights; +extern const rct_xy16 BannerBoundBoxes[][2]; + void paint_util_push_tunnel_left(uint16 height, uint8 type); void paint_util_push_tunnel_right(uint16 height, uint8 type); void paint_util_set_vertical_tunnel(uint16 height); diff --git a/src/paint/map_element/path.c b/src/paint/map_element/path.c index 9d786662a0..3e8aacad5e 100644 --- a/src/paint/map_element/path.c +++ b/src/paint/map_element/path.c @@ -366,8 +366,8 @@ static void sub_6A4101(rct_map_element * map_element, uint16 height, uint32 ebp, direction &= 3; rct_xyz16 boundBoxOffsets = { - .x = RCT2_ADDRESS(0x0098D884, sint16)[direction * 4], - .y = RCT2_ADDRESS(0x0098D884 + 2, sint16)[direction * 4], + .x = BannerBoundBoxes[direction][0].x, + .y = BannerBoundBoxes[direction][0].y, .z = height + 2 }; @@ -375,8 +375,8 @@ static void sub_6A4101(rct_map_element * map_element, uint16 height, uint32 ebp, sub_98197C(imageId, 0, 0, 1, 1, 21, height, boundBoxOffsets.x, boundBoxOffsets.y, boundBoxOffsets.z, get_current_rotation()); - boundBoxOffsets.x = RCT2_ADDRESS(0x98D888, sint16)[direction * 4]; - boundBoxOffsets.y = RCT2_ADDRESS(0x98D888 + 2, sint16)[direction * 4]; + boundBoxOffsets.x = BannerBoundBoxes[direction][1].x; + boundBoxOffsets.y = BannerBoundBoxes[direction][1].y; imageId++; sub_98197C(imageId, 0, 0, 1, 1, 21, height, boundBoxOffsets.x, boundBoxOffsets.y, boundBoxOffsets.z, get_current_rotation());