mirror of https://github.com/OpenRCT2/OpenRCT2.git
Remove tunnel globals
This commit is contained in:
parent
eb7b1e7b7e
commit
6c1d1c43e5
|
@ -37,11 +37,6 @@ uint8 g141E9DB;
|
|||
uint16 gUnk141E9DC;
|
||||
bool gDidPassSurface;
|
||||
rct_map_element * gSurfaceElement;
|
||||
tunnel_entry gLeftTunnels[TUNNEL_MAX_COUNT];
|
||||
uint8 gLeftTunnelCount;
|
||||
tunnel_entry gRightTunnels[TUNNEL_MAX_COUNT];
|
||||
uint8 gRightTunnelCount;
|
||||
uint8 gVerticalTunnelHeight;
|
||||
#endif
|
||||
|
||||
#ifdef __TESTPAINT__
|
||||
|
@ -149,12 +144,12 @@ static void sub_68B3FB(sint32 x, sint32 y)
|
|||
{
|
||||
rct_drawpixelinfo *dpi = gPaintSession.Unk140E9A8;
|
||||
|
||||
gLeftTunnelCount = 0;
|
||||
gRightTunnelCount = 0;
|
||||
gLeftTunnels[0] = (tunnel_entry){0xFF, 0xFF};
|
||||
gRightTunnels[0] = (tunnel_entry){0xFF, 0xFF};
|
||||
gPaintSession.LeftTunnelCount = 0;
|
||||
gPaintSession.RightTunnelCount = 0;
|
||||
gPaintSession.LeftTunnels[0] = (tunnel_entry){0xFF, 0xFF};
|
||||
gPaintSession.RightTunnels[0] = (tunnel_entry){0xFF, 0xFF};
|
||||
|
||||
gVerticalTunnelHeight = 0xFF;
|
||||
gPaintSession.VerticalTunnelHeight = 0xFF;
|
||||
|
||||
#ifndef NO_RCT2
|
||||
RCT2_GLOBAL(0x009DE56A, uint16) = x;
|
||||
|
@ -336,19 +331,19 @@ static void sub_68B3FB(sint32 x, sint32 y)
|
|||
|
||||
void paint_util_push_tunnel_left(uint16 height, uint8 type)
|
||||
{
|
||||
gLeftTunnels[gLeftTunnelCount] = (tunnel_entry){.height = (height / 16), .type = type};
|
||||
if (gLeftTunnelCount < TUNNEL_MAX_COUNT - 1) {
|
||||
gLeftTunnels[gLeftTunnelCount + 1] = (tunnel_entry) {0xFF, 0xFF};
|
||||
gLeftTunnelCount++;
|
||||
gPaintSession.LeftTunnels[gPaintSession.LeftTunnelCount] = (tunnel_entry){.height = (height / 16), .type = type};
|
||||
if (gPaintSession.LeftTunnelCount < TUNNEL_MAX_COUNT - 1) {
|
||||
gPaintSession.LeftTunnels[gPaintSession.LeftTunnelCount + 1] = (tunnel_entry) {0xFF, 0xFF};
|
||||
gPaintSession.LeftTunnelCount++;
|
||||
}
|
||||
}
|
||||
|
||||
void paint_util_push_tunnel_right(uint16 height, uint8 type)
|
||||
{
|
||||
gRightTunnels[gRightTunnelCount] = (tunnel_entry){.height = (height / 16), .type = type};
|
||||
if (gRightTunnelCount < TUNNEL_MAX_COUNT - 1) {
|
||||
gRightTunnels[gRightTunnelCount + 1] = (tunnel_entry) {0xFF, 0xFF};
|
||||
gRightTunnelCount++;
|
||||
gPaintSession.RightTunnels[gPaintSession.RightTunnelCount] = (tunnel_entry){.height = (height / 16), .type = type};
|
||||
if (gPaintSession.RightTunnelCount < TUNNEL_MAX_COUNT - 1) {
|
||||
gPaintSession.RightTunnels[gPaintSession.RightTunnelCount + 1] = (tunnel_entry) {0xFF, 0xFF};
|
||||
gPaintSession.RightTunnelCount++;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -357,7 +352,7 @@ void paint_util_set_vertical_tunnel(uint16 height)
|
|||
#ifdef __TESTPAINT__
|
||||
testPaintVerticalTunnelHeight = height;
|
||||
#endif
|
||||
gVerticalTunnelHeight = height / 16;
|
||||
gPaintSession.VerticalTunnelHeight = height / 16;
|
||||
}
|
||||
|
||||
void paint_util_set_general_support_height(sint16 height, uint8 slope)
|
||||
|
|
|
@ -69,39 +69,22 @@ enum
|
|||
TUNNEL_15 = 0x0F,
|
||||
};
|
||||
|
||||
typedef struct tunnel_entry {
|
||||
uint8 height;
|
||||
uint8 type;
|
||||
} tunnel_entry;
|
||||
|
||||
enum
|
||||
{
|
||||
G141E9DB_FLAG_1 = 1,
|
||||
G141E9DB_FLAG_2 = 2,
|
||||
};
|
||||
|
||||
#define TUNNEL_MAX_COUNT 65
|
||||
|
||||
#ifdef NO_RCT2
|
||||
extern uint8 g141E9DB;
|
||||
extern uint16 gUnk141E9DC;
|
||||
extern bool gDidPassSurface;
|
||||
extern rct_map_element * gSurfaceElement;
|
||||
extern tunnel_entry gLeftTunnels[TUNNEL_MAX_COUNT];
|
||||
extern uint8 gLeftTunnelCount;
|
||||
extern tunnel_entry gRightTunnels[TUNNEL_MAX_COUNT];
|
||||
extern uint8 gRightTunnelCount;
|
||||
extern uint8 gVerticalTunnelHeight;
|
||||
#else
|
||||
#define g141E9DB RCT2_GLOBAL(0x0141E9DB, uint8)
|
||||
#define gUnk141E9DC RCT2_GLOBAL(0x0141E9DC, uint16)
|
||||
#define gDidPassSurface RCT2_GLOBAL(0x009DE57C, bool)
|
||||
#define gSurfaceElement RCT2_GLOBAL(0x009E3250, rct_map_element *)
|
||||
#define gLeftTunnels RCT2_ADDRESS(0x009E3138, tunnel_entry)
|
||||
#define gLeftTunnelCount RCT2_GLOBAL(0x0141F56A, uint8)
|
||||
#define gRightTunnels RCT2_ADDRESS(0x009E30B6, tunnel_entry)
|
||||
#define gRightTunnelCount RCT2_GLOBAL(0x0141F56B, uint8)
|
||||
#define gVerticalTunnelHeight RCT2_GLOBAL(0x009E323C, uint8)
|
||||
#endif
|
||||
|
||||
#ifdef __TESTPAINT__
|
||||
|
|
|
@ -577,7 +577,7 @@ static void viewport_surface_draw_land_side_bottom(enum edge_t edge, uint8 heigh
|
|||
tunnelBounds.x = 32;
|
||||
tunnelTopBoundBoxOffset.y = 31;
|
||||
|
||||
tunnelArray = gLeftTunnels;
|
||||
tunnelArray = gPaintSession.LeftTunnels;
|
||||
break;
|
||||
|
||||
case EDGE_BOTTOMRIGHT:
|
||||
|
@ -592,7 +592,7 @@ static void viewport_surface_draw_land_side_bottom(enum edge_t edge, uint8 heigh
|
|||
tunnelBounds.y = 32;
|
||||
tunnelTopBoundBoxOffset.x = 31;
|
||||
|
||||
tunnelArray = gRightTunnels;
|
||||
tunnelArray = gPaintSession.RightTunnels;
|
||||
break;
|
||||
|
||||
default:
|
||||
|
@ -839,7 +839,7 @@ static void viewport_surface_draw_water_side_bottom(enum edge_t edge, uint8 heig
|
|||
tunnelBounds.x = 32;
|
||||
tunnelTopBoundBoxOffset.y = 31;
|
||||
|
||||
tunnelArray = gLeftTunnels;
|
||||
tunnelArray = gPaintSession.LeftTunnels;
|
||||
break;
|
||||
|
||||
case EDGE_BOTTOMRIGHT:
|
||||
|
@ -854,7 +854,7 @@ static void viewport_surface_draw_water_side_bottom(enum edge_t edge, uint8 heig
|
|||
tunnelBounds.y = 32;
|
||||
tunnelTopBoundBoxOffset.x = 31;
|
||||
|
||||
tunnelArray = gRightTunnels;
|
||||
tunnelArray = gPaintSession.RightTunnels;
|
||||
break;
|
||||
|
||||
default:
|
||||
|
@ -1065,7 +1065,7 @@ void surface_paint(uint8 direction, uint16 height, rct_map_element * mapElement)
|
|||
|
||||
|
||||
bool has_surface = false;
|
||||
if (gVerticalTunnelHeight * 16 == height) {
|
||||
if (gPaintSession.VerticalTunnelHeight * 16 == height) {
|
||||
// Vertical tunnels
|
||||
sub_98197C(1575, 0, 0, 1, 30, 39, height, -2, 1, height - 40, rotation);
|
||||
sub_98197C(1576, 0, 0, 30, 1, 0, height, 1, 31, height, rotation);
|
||||
|
@ -1344,12 +1344,12 @@ void surface_paint(uint8 direction, uint16 height, rct_map_element * mapElement)
|
|||
#ifdef __MINGW32__
|
||||
// The other code crashes mingw 4.8.2, as available on Travis
|
||||
for (sint32 i = 0; i < TUNNEL_MAX_COUNT; i++) {
|
||||
backupLeftTunnels[i] = gLeftTunnels[i];
|
||||
backupRightTunnels[i] = gRightTunnels[i];
|
||||
backupLeftTunnels[i] = gPaintSession.LeftTunnels[i];
|
||||
backupRightTunnels[i] = gPaintSession.RightTunnels[i];
|
||||
}
|
||||
#else
|
||||
memcpy(backupLeftTunnels, gLeftTunnels, sizeof(tunnel_entry) * TUNNEL_MAX_COUNT);
|
||||
memcpy(backupRightTunnels, gRightTunnels, sizeof(tunnel_entry) * TUNNEL_MAX_COUNT);
|
||||
memcpy(backupLeftTunnels, gPaintSession.LeftTunnels, sizeof(tunnel_entry) * TUNNEL_MAX_COUNT);
|
||||
memcpy(backupRightTunnels, gPaintSession.RightTunnels, sizeof(tunnel_entry) * TUNNEL_MAX_COUNT);
|
||||
#endif
|
||||
|
||||
viewport_surface_draw_land_side_top(EDGE_TOPLEFT, height / 16, eax / 32, tileDescriptors[0], tileDescriptors[3]);
|
||||
|
@ -1361,12 +1361,12 @@ void surface_paint(uint8 direction, uint16 height, rct_map_element * mapElement)
|
|||
#ifdef __MINGW32__
|
||||
// The other code crashes mingw 4.8.2, as available on Travis
|
||||
for (sint32 i = 0; i < TUNNEL_MAX_COUNT; i++) {
|
||||
gLeftTunnels[i] = backupLeftTunnels[i];
|
||||
gRightTunnels[i] = backupRightTunnels[i];
|
||||
gPaintSession.LeftTunnels[i] = backupLeftTunnels[i];
|
||||
gPaintSession.RightTunnels[i] = backupRightTunnels[i];
|
||||
}
|
||||
#else
|
||||
memcpy(gLeftTunnels, backupLeftTunnels, sizeof(tunnel_entry) * TUNNEL_MAX_COUNT);
|
||||
memcpy(gRightTunnels, backupRightTunnels, sizeof(tunnel_entry) * TUNNEL_MAX_COUNT);
|
||||
memcpy(gPaintSession.LeftTunnels, backupLeftTunnels, sizeof(tunnel_entry) * TUNNEL_MAX_COUNT);
|
||||
memcpy(gPaintSession.RightTunnels, backupRightTunnels, sizeof(tunnel_entry) * TUNNEL_MAX_COUNT);
|
||||
#endif
|
||||
}
|
||||
|
||||
|
|
|
@ -130,7 +130,13 @@ typedef struct support_height {
|
|||
uint8 pad;
|
||||
} support_height;
|
||||
|
||||
typedef struct tunnel_entry {
|
||||
uint8 height;
|
||||
uint8 type;
|
||||
} tunnel_entry;
|
||||
|
||||
#define MAX_PAINT_QUADRANTS 512
|
||||
#define TUNNEL_MAX_COUNT 65
|
||||
|
||||
typedef struct paint_session
|
||||
{
|
||||
|
@ -153,6 +159,11 @@ typedef struct paint_session
|
|||
paint_string_struct * LastPSString;
|
||||
paint_struct * WoodenSupportsPrependTo;
|
||||
rct_xy16 MapPosition;
|
||||
tunnel_entry LeftTunnels[TUNNEL_MAX_COUNT];
|
||||
uint8 LeftTunnelCount;
|
||||
tunnel_entry RightTunnels[TUNNEL_MAX_COUNT];
|
||||
uint8 RightTunnelCount;
|
||||
uint8 VerticalTunnelHeight;
|
||||
} paint_session;
|
||||
|
||||
extern paint_session gPaintSession;
|
||||
|
@ -167,6 +178,11 @@ extern paint_session gPaintSession;
|
|||
#define gSupport RCT2_GLOBAL(RCT2_ADDRESS_CURRENT_PAINT_TILE_MAX_HEIGHT, support_height)
|
||||
#define gWoodenSupportsPrependTo RCT2_GLOBAL(0x009DEA58, paint_struct *)
|
||||
#define gPaintMapPosition RCT2_GLOBAL(0x009DE574, rct_xy16)
|
||||
#define gLeftTunnels RCT2_ADDRESS(0x009E3138, tunnel_entry)
|
||||
#define gLeftTunnelCount RCT2_GLOBAL(0x0141F56A, uint8)
|
||||
#define gRightTunnels RCT2_ADDRESS(0x009E30B6, tunnel_entry)
|
||||
#define gRightTunnelCount RCT2_GLOBAL(0x0141F56B, uint8)
|
||||
#define gVerticalTunnelHeight RCT2_GLOBAL(0x009E323C, uint8)
|
||||
#endif
|
||||
|
||||
/** rct2: 0x00993CC4 */
|
||||
|
|
Loading…
Reference in New Issue