Clean up window_map_paint_hud_rectangle

This commit is contained in:
Adrian Wielgosik 2015-02-15 16:22:27 +01:00
parent 13359d4220
commit baa7703451
1 changed files with 65 additions and 107 deletions

View File

@ -726,29 +726,9 @@ static void window_map_paint_train_overlay(rct_drawpixelinfo *dpi)
} }
/** /**
* * The call to gfx_fill_rect was originally wrapped in sub_68DABD which made sure that top<bottom and left<right,
* rct2: 0x0068DABD * but it doesn't look like it's ever necessary here so the call was removed.
*/ *
static void sub_68DABD(sint16 left, sint16 top, sint16 right, sint16 bottom, rct_drawpixelinfo *dpi){
sint16 temp = right;
right = top;
top = temp;
if (left >= right) {
temp = left;
left = right;
right = temp;
}
if (top >= bottom) {
temp = top;
top = bottom;
bottom = temp;
}
gfx_fill_rect(dpi, left, top, right, bottom, 0x38);
}
/**
*
* rct2: 0x0068D8CE * rct2: 0x0068D8CE
*/ */
static void window_map_paint_hud_rectangle(rct_window *w, rct_drawpixelinfo *dpi) static void window_map_paint_hud_rectangle(rct_window *w, rct_drawpixelinfo *dpi)
@ -756,10 +736,10 @@ static void window_map_paint_hud_rectangle(rct_window *w, rct_drawpixelinfo *dpi
//RCT2_CALLPROC_X(0x68D8CE, 0, 0, 0, 0, (int)w, (int)dpi, 0); //RCT2_CALLPROC_X(0x68D8CE, 0, 0, 0, 0, (int)w, (int)dpi, 0);
//return; //return;
static sint16 tab_x[4] = { 0xF8, 0x1F, 0xF8, 0xFFF8 }; static const sint16 offsets_x[4] = { 0xF8, 0x1F8, 0xF8, 0xFFF8 };
static sint16 tab_y[4] = { 0, 0x100, 0x200, 0x100 }; static const sint16 offsets_y[4] = { 0, 0x100, 0x200, 0x100 };
sint16 ax, bx, cx, dx; sint16 left, top;
rct_window *main_window = window_get_main(); rct_window *main_window = window_get_main();
if (main_window == NULL) if (main_window == NULL)
@ -768,103 +748,81 @@ static void window_map_paint_hud_rectangle(rct_window *w, rct_drawpixelinfo *dpi
if (viewport == NULL) if (viewport == NULL)
return; return;
int ebp = RCT2_GLOBAL(RCT2_ADDRESS_CURRENT_ROTATION, uint32); int rotation = RCT2_GLOBAL(RCT2_ADDRESS_CURRENT_ROTATION, uint32);
sint16 offset_x = offsets_x[rotation];
sint16 offset_y = offsets_y[rotation];
// top horizontal // top horizontal
ax = viewport->view_x; left = viewport->view_x;
bx = viewport->view_y; top = viewport->view_y;
ax >>= 5; left >>= 5;
bx >>= 4; top >>= 4;
ax += tab_x[ebp]; left += offset_x;
bx += tab_y[ebp]; top += offset_y;
cx = ax, dx = bx; gfx_fill_rect(dpi, left, top, left + 3, top, 0x38);
cx += 3;
sub_68DABD(ax, cx, bx, dx, dpi);
ax = viewport->view_x; left = viewport->view_x + viewport->view_width;
bx = viewport->view_y; top = viewport->view_y;
ax += viewport->view_width; left >>= 5;
ax >>= 5; top >>= 4;
bx >>= 4; left += offset_x;
ax += tab_x[ebp]; top += offset_y;
bx += tab_y[ebp]; gfx_fill_rect(dpi, left - 3, top, left, top, 0x38);
cx = ax, dx = bx;
ax -= 3;
sub_68DABD(ax, cx, bx, dx, dpi);
// left vertical // left vertical
ax = viewport->view_x; left = viewport->view_x;
bx = viewport->view_y; top = viewport->view_y;
ax >>= 5; left >>= 5;
bx >>= 4; top >>= 4;
ax += tab_x[ebp]; left += offset_x;
bx += tab_y[ebp]; top += offset_y;
cx = ax, dx = bx; gfx_fill_rect(dpi, left, top, left, top + 3, 0x38);
dx += 3;
sub_68DABD(ax, cx, bx, dx, dpi);
ax = viewport->view_x; left = viewport->view_x;
bx = viewport->view_y; top = viewport->view_y + viewport->view_height;
bx += viewport->view_height; left >>= 5;
ax >>= 5; top >>= 4;
bx >>= 4; left += offset_x;
ax += tab_x[ebp]; top += offset_y;
bx += tab_y[ebp]; gfx_fill_rect(dpi, left, top - 3, left, top, 0x38);
cx = ax, dx = bx;
bx -= 3;
sub_68DABD(ax, cx, bx, dx, dpi);
//bottom horizontal //bottom horizontal
ax = viewport->view_x; left = viewport->view_x;
bx = viewport->view_y; top = viewport->view_y + viewport->view_height;
bx += viewport->view_height; left >>= 5;
ax >>= 5; top >>= 4;
bx >>= 4; left += offset_x;
ax += tab_x[ebp]; top += offset_y;
bx += tab_y[ebp]; gfx_fill_rect(dpi, left, top, left + 3, top, 0x38);
cx = ax, dx = bx;
cx += 3;
sub_68DABD(ax, cx, bx, dx, dpi);
ax = viewport->view_x; left = viewport->view_x + viewport->view_width;
bx = viewport->view_y; top = viewport->view_y + viewport->view_height;
ax += viewport->view_width; left >>= 5;
bx += viewport->view_height; top >>= 4;
ax >>= 5; left += offset_x;
bx >>= 4; top += offset_y;
ax += tab_x[ebp]; gfx_fill_rect(dpi, left - 3, top, left, top, 0x38);
bx += tab_y[ebp];
cx = ax, dx = bx;
ax -= 3;
sub_68DABD(ax, cx, bx, dx, dpi);
// right vertical // right vertical
ax = viewport->view_x; left = viewport->view_x + viewport->view_width;
bx = viewport->view_y; top = viewport->view_y;
ax += viewport->view_width; left >>= 5;
ax >>= 5; top >>= 4;
bx >>= 4; left += offset_x;
ax += tab_x[ebp]; top += offset_y;
bx += tab_y[ebp]; gfx_fill_rect(dpi, left, top, left, top + 3, 0x38);
cx = ax, dx = bx;
dx += 3;
sub_68DABD(ax, cx, bx, dx, dpi);
ax = viewport->view_x; left = viewport->view_x + viewport->view_width;
bx = viewport->view_y; top = viewport->view_y + viewport->view_height;
ax += viewport->view_width; left >>= 5;
bx += viewport->view_height; top >>= 4;
ax >>= 5; left += offset_x;
bx >>= 4; top += offset_y;
ax += tab_x[ebp]; gfx_fill_rect(dpi, left, top - 3, left, top, 0x38);
bx += tab_y[ebp];
cx = ax, dx = bx;
bx -= 3;
sub_68DABD(ax, cx, bx, dx, dpi);
} }
/** /**