Refactor naming of paint global vars

Removed EDF81C from none viewport files this previously was used to pass image flags to the sprite renderer.
gUnkF1A4CC replaced with address reference to paint struct array to allow for non rct builds
Renamed _paint_structs to _paint_struct_quadrants. This array is used for working out which paint struct is at which quadrant and is not the main paint struct array
This commit is contained in:
duncanspumpkin 2016-09-20 18:08:45 +01:00
parent 6496895e40
commit 9840a73cc1
7 changed files with 40 additions and 45 deletions

View File

@ -1022,7 +1022,6 @@ void SoftwareDrawingContext::DrawSpriteSolid(uint32 image, sint32 x, sint32 y, u
memset(palette, colour, 256);
palette[0] = 0;
gUnkEDF81C = 0x20000000;
image &= 0x7FFFF;
gfx_draw_sprite_palette_set_software(_dpi, image | 0x20000000, x, y, palette, nullptr);
}

View File

@ -914,7 +914,6 @@ static void ttf_draw_character_sprite(rct_drawpixelinfo *dpi, int codepoint, tex
if (!(info->flags & TEXT_DRAW_FLAG_NO_DRAW)) {
unk_9ABDA4 = &info->palette;
gUnkEDF81C = IMAGE_TYPE_REMAP;
int x = info->x;
int y = info->y;

View File

@ -53,7 +53,7 @@ uint8 gSavedViewRotation;
#ifdef NO_RCT2
paint_struct *unk_EE7884;
paint_struct *unk_EE7888;
paint_struct *gNextFreePaintStruct;
uint8 gCurrentRotation;
uint32 gCurrentViewportFlags = 0;
#endif
@ -769,7 +769,7 @@ void viewport_paint(rct_viewport* viewport, rct_drawpixelinfo* dpi, int left, in
}
gfx_clear(dpi2, colour);
}
g_ps_EE7880 = &gUnkF1A4CC;
gEndOfPaintStructArray = &gPaintStructs[4000 - 1];
unk_140E9A8 = dpi2;
painter_setup();
viewport_paint_setup();
@ -1398,7 +1398,7 @@ void get_map_coordinates_from_pos(int screenX, int screenY, int flags, sint16 *x
dpi->zoom_level = _viewportDpi1.zoom_level;
dpi->x = _viewportDpi1.x;
dpi->width = 1;
g_ps_EE7880 = &gUnkF1A4CC;
gEndOfPaintStructArray = &gPaintStructs[4000 - 1];
unk_140E9A8 = dpi;
painter_setup();
viewport_paint_setup();

View File

@ -106,18 +106,16 @@ extern uint8 gSavedViewRotation;
#ifdef NO_RCT2
extern paint_struct *unk_EE7884;
extern paint_struct *unk_EE7888;
extern paint_struct *gNextFreePaintStruct;
extern uint8 gCurrentRotation;
extern uint32 gCurrentViewportFlags;
#else
#define unk_EE7884 RCT2_GLOBAL(0x00EE7884, paint_struct*)
#define unk_EE7888 RCT2_GLOBAL(0x00EE7888, paint_struct*)
#define gNextFreePaintStruct RCT2_GLOBAL(0x00EE7888, paint_struct*)
#define gCurrentRotation RCT2_GLOBAL(RCT2_ADDRESS_CURRENT_ROTATION, uint8)
#define gCurrentViewportFlags RCT2_GLOBAL(RCT2_ADDRESS_CURRENT_VIEWPORT_FLAGS, uint32)
#endif
extern uint32 gUnkEDF81C;
void viewport_init_all();
void center_2d_coordinates(int x, int y, int z, int* out_x, int* out_y, rct_viewport* viewport);
void viewport_create(rct_window *w, int x, int y, int width, int height, int zoom, int center_x, int center_y, int center_z, char flags, sint16 sprite);

View File

@ -33,12 +33,12 @@ paint_string_struct *pss1;
paint_string_struct *pss2;
#ifdef NO_RCT2
static paint_struct _unkEE788C[4000];
paint_struct gPaintStructs[4000];
uint32 _F1AD0C;
uint32 _F1AD10;
static paint_struct *_paint_structs[512];
static paint_struct *_paint_struct_quadrants[512];
void *g_currently_drawn_item;
paint_struct * g_ps_EE7880;
paint_struct * gEndOfPaintStructArray;
sint16 gUnk9DE568;
sint16 gUnk9DE56C;
paint_struct gUnkF1A4CC;
@ -47,8 +47,7 @@ support_height gSupportSegments[9] = { 0 };
support_height gSupport;
#else
#define _unkEE788C RCT2_ADDRESS(0x00EE788C, paint_struct)
#define _paint_structs (RCT2_ADDRESS(0x00F1A50C, paint_struct*))
#define _paint_struct_quadrants (RCT2_ADDRESS(0x00F1A50C, paint_struct*))
#define _F1AD0C RCT2_GLOBAL(0xF1AD0C, uint32)
#define _F1AD10 RCT2_GLOBAL(0xF1AD10, uint32)
#endif
@ -76,11 +75,11 @@ bool gPaintBoundingBoxes;
* rct2: 0x0068615B
*/
void painter_setup() {
unk_EE7888 = _unkEE788C;
gNextFreePaintStruct = gPaintStructs;
g_ps_F1AD28 = NULL;
g_aps_F1AD2C = NULL;
for (int i = 0; i < 512; i++) {
_paint_structs[i] = NULL;
_paint_struct_quadrants[i] = NULL;
}
_F1AD0C = -1;
_F1AD10 = 0;
@ -93,9 +92,9 @@ void painter_setup() {
*/
static paint_struct * sub_9819_c(uint32 image_id, rct_xyz16 offset, rct_xyz16 boundBoxSize, rct_xyz16 boundBoxOffset, uint8 rotation)
{
paint_struct * ps = unk_EE7888;
paint_struct * ps = gNextFreePaintStruct;
if (ps >= g_ps_EE7880) return NULL;
if (ps >= gEndOfPaintStructArray) return NULL;
ps->image_id = image_id;
@ -207,9 +206,9 @@ paint_struct * sub_98196C(
g_aps_F1AD2C = NULL;
//Not a paint struct but something similar
paint_struct *ps = unk_EE7888;
paint_struct *ps = gNextFreePaintStruct;
if (ps >= g_ps_EE7880) {
if (ps >= gEndOfPaintStructArray) {
return NULL;
}
@ -328,8 +327,8 @@ paint_struct * sub_98196C(
ps->var_18 = edi;
paint_struct *old_ps = _paint_structs[edi];
_paint_structs[edi] = ps;
paint_struct *old_ps = _paint_struct_quadrants[edi];
_paint_struct_quadrants[edi] = ps;
ps->next_quadrant_ps = old_ps;
if ((uint16)edi < _F1AD0C) {
@ -340,7 +339,7 @@ paint_struct * sub_98196C(
_F1AD10 = edi;
}
unk_EE7888 ++;
gNextFreePaintStruct++;
return ps;
}
@ -412,8 +411,8 @@ paint_struct * sub_98197C(
di = 511;
ps->var_18 = di;
paint_struct* old_ps = _paint_structs[di];
_paint_structs[di] = ps;
paint_struct* old_ps = _paint_struct_quadrants[di];
_paint_struct_quadrants[di] = ps;
ps->next_quadrant_ps = old_ps;
if ((uint16)di < _F1AD0C) {
@ -424,7 +423,7 @@ paint_struct * sub_98197C(
_F1AD10 = di;
}
unk_EE7888++;
gNextFreePaintStruct++;
return ps;
}
@ -469,7 +468,7 @@ paint_struct * sub_98198C(
}
g_ps_F1AD28 = ps;
unk_EE7888++;
gNextFreePaintStruct++;
return ps;
}
@ -525,7 +524,7 @@ paint_struct * sub_98199C(
old_ps->var_20 = ps;
g_ps_F1AD28 = ps;
unk_EE7888++;
gNextFreePaintStruct++;
return ps;
}
@ -543,9 +542,9 @@ bool paint_attach_to_previous_attach(uint32 image_id, uint16 x, uint16 y)
return paint_attach_to_previous_ps(image_id, x, y);
}
attached_paint_struct * ps = (attached_paint_struct *)unk_EE7888;
attached_paint_struct * ps = (attached_paint_struct *)gNextFreePaintStruct;
if ((paint_struct *)ps >= g_ps_EE7880) {
if ((paint_struct *)ps >= gEndOfPaintStructArray) {
return false;
}
@ -561,7 +560,7 @@ bool paint_attach_to_previous_attach(uint32 image_id, uint16 x, uint16 y)
g_aps_F1AD2C = ps;
unk_EE7888++;
gNextFreePaintStruct++;
return true;
}
@ -576,9 +575,9 @@ bool paint_attach_to_previous_attach(uint32 image_id, uint16 x, uint16 y)
*/
bool paint_attach_to_previous_ps(uint32 image_id, uint16 x, uint16 y)
{
attached_paint_struct * ps = (attached_paint_struct *)unk_EE7888;
attached_paint_struct * ps = (attached_paint_struct *)gNextFreePaintStruct;
if ((paint_struct *)ps >= g_ps_EE7880) {
if ((paint_struct *)ps >= gEndOfPaintStructArray) {
return false;
}
@ -592,7 +591,7 @@ bool paint_attach_to_previous_ps(uint32 image_id, uint16 x, uint16 y)
return false;
}
unk_EE7888++;
gNextFreePaintStruct++;
attached_paint_struct * oldFirstAttached = masterPs->attached_ps;
masterPs->attached_ps = ps;
@ -616,9 +615,9 @@ bool paint_attach_to_previous_ps(uint32 image_id, uint16 x, uint16 y)
*/
void sub_685EBC(money32 amount, rct_string_id string_id, sint16 y, sint16 z, sint8 y_offsets[], sint16 offset_x, uint32 rotation)
{
paint_string_struct * ps = (paint_string_struct *)unk_EE7888;
paint_string_struct * ps = (paint_string_struct *)gNextFreePaintStruct;
if ((paint_struct *)ps >= g_ps_EE7880) {
if ((paint_struct *)ps >= gEndOfPaintStructArray) {
return;
}
@ -636,7 +635,7 @@ void sub_685EBC(money32 amount, rct_string_id string_id, sint16 y, sint16 z, sin
ps->x = coord.x + offset_x;
ps->y = coord.y;
unk_EE7888++;
gNextFreePaintStruct++;
paint_string_struct * oldPs = pss2;
@ -872,9 +871,9 @@ static void sub_688217_helper(uint16 ax, uint8 flag)
*/
void sub_688217()
{
paint_struct *ps = unk_EE7888;
paint_struct *ps = gNextFreePaintStruct;
paint_struct *ps_next;
unk_EE7888++;
gNextFreePaintStruct++;
unk_EE7884 = ps;
ps->next_quadrant_ps = NULL;
uint32 edi = _F1AD0C;
@ -882,7 +881,7 @@ void sub_688217()
return;
do {
ps_next = _paint_structs[edi];
ps_next = _paint_struct_quadrants[edi];
if (ps_next != NULL) {
ps->next_quadrant_ps = ps_next;
do {

View File

@ -29,16 +29,16 @@ typedef struct paint_struct paint_struct;
#ifdef NO_RCT2
extern void *g_currently_drawn_item;
extern paint_struct * g_ps_EE7880;
extern paint_struct * gEndOfPaintStructArray;
extern sint16 gUnk9DE568;
extern sint16 gUnk9DE56C;
extern paint_struct gUnkF1A4CC;
extern paint_struct gPaintStructs[4000];
#else
#define gPaintStructs RCT2_ADDRESS(0x00EE788C, paint_struct)
#define g_currently_drawn_item RCT2_GLOBAL(0x009DE578, void*)
#define g_ps_EE7880 RCT2_GLOBAL(0x00EE7880, paint_struct *)
#define gEndOfPaintStructArray RCT2_GLOBAL(0x00EE7880, paint_struct *)
#define gUnk9DE568 RCT2_GLOBAL(0x009DE568, sint16)
#define gUnk9DE56C RCT2_GLOBAL(0x009DE56C, sint16)
#define gUnkF1A4CC RCT2_GLOBAL(0x00F1A4CC, paint_struct);
#endif
#pragma pack(push, 1)

View File

@ -2310,7 +2310,7 @@ static void sub_6CBCE2(
gCurrentViewportFlags = 0;
trackDirection &= 3;
g_ps_EE7880 = &gUnkF1A4CC;
gEndOfPaintStructArray = &gPaintStructs[4000 - 1];
painter_setup();
ride = get_ride(rideIndex);