mirror of https://github.com/OpenRCT2/OpenRCT2.git
0x006EC9CE
This commit is contained in:
parent
6628a4eace
commit
bd128402f0
|
@ -152,6 +152,75 @@ void gfx_transpose_palette(int pal, unsigned char product)
|
|||
osinterface_update_palette((char*)0x01424680, 10, 236);//Odd would have expected dest_pointer
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* rct2: 0x006EC9CE
|
||||
* @param x (ax)
|
||||
* @param y (cx)
|
||||
* @param base_height (di)
|
||||
* @param clearance_height (si)
|
||||
*/
|
||||
void gfx_invalidate_scrollingtext(int x, int y, int base_height, int clearance_height)
|
||||
{
|
||||
x += 16;
|
||||
y += 16;
|
||||
int left, top, right, bottom;
|
||||
switch (RCT2_GLOBAL(RCT2_ADDRESS_CURRENT_ROTATION, uint32)) {
|
||||
case 0:
|
||||
left = (-x + y) - 32;
|
||||
right = (-x + y) + 32;
|
||||
top = ((y + x) / 2) - 32 - clearance_height;
|
||||
bottom = ((y + x) / 2) + 32 - base_height;
|
||||
break;
|
||||
case 1:
|
||||
left = (-x - y) - 32;
|
||||
right = (-x - y) + 32;
|
||||
top = ((y - x) / 2) - 32 - clearance_height;
|
||||
bottom = ((y - x) / 2) + 32 - base_height;
|
||||
break;
|
||||
case 2:
|
||||
left = (x - y) - 32;
|
||||
right = (x - y) + 32;
|
||||
top = ((-y - x) / 2) - 32 - clearance_height;
|
||||
bottom = ((-y - x) / 2) + 32 - base_height;
|
||||
break;
|
||||
case 3:
|
||||
left = (x + y) - 32;
|
||||
right = (x + y) + 32;
|
||||
top = ((-y + x) / 2) - 32 - clearance_height;
|
||||
bottom = ((-y + x) / 2) + 32 - base_height;
|
||||
break;
|
||||
}
|
||||
rct_viewport** viewport_p = RCT2_ADDRESS(RCT2_ADDRESS_NEW_VIEWPORT_PTR, rct_viewport*);
|
||||
while (*viewport_p) {
|
||||
rct_viewport* viewport = *viewport_p;
|
||||
if (viewport->zoom < 1) {
|
||||
if (right > viewport->view_x && bottom > viewport->view_y && left < viewport->view_x + viewport->view_width) {
|
||||
if (left < viewport->view_x) {
|
||||
left = viewport->view_x;
|
||||
}
|
||||
if (right > viewport->view_x + viewport->view_width) {
|
||||
right = viewport->view_x + viewport->view_width;
|
||||
}
|
||||
if (top < viewport->view_y + viewport->view_height) {
|
||||
if (top < viewport->view_y) {
|
||||
top = viewport->view_y;
|
||||
}
|
||||
if (bottom > viewport->view_y + viewport->view_height) {
|
||||
bottom = viewport->view_y + viewport->view_height;
|
||||
}
|
||||
left = ((left - viewport->view_x) >> viewport->zoom) + viewport->x;
|
||||
top = ((top - viewport->view_y) >> viewport->zoom) + viewport->y;
|
||||
right = ((right - viewport->view_x) >> viewport->zoom) + viewport->x;
|
||||
bottom = ((bottom - viewport->view_y) >> viewport->zoom) + viewport->y;
|
||||
gfx_set_dirty_blocks(left, top, right, bottom);
|
||||
}
|
||||
}
|
||||
}
|
||||
viewport_p++;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* rct2: 0x006ED7E5
|
||||
|
|
|
@ -70,6 +70,7 @@ rct_drawpixelinfo* clip_drawpixelinfo(rct_drawpixelinfo* dpi, int left, int widt
|
|||
void gfx_set_dirty_blocks(int left, int top, int right, int bottom);
|
||||
void gfx_draw_all_dirty_blocks();
|
||||
void gfx_redraw_screen_rect(short left, short top, short right, short bottom);
|
||||
void gfx_invalidate_scrollingtext(int x, int y, int base_height, int clearance_height);
|
||||
void gfx_invalidate_screen();
|
||||
|
||||
// palette
|
||||
|
|
|
@ -141,7 +141,9 @@ typedef struct {
|
|||
uint32 var_118;
|
||||
uint8 pad_11C[0x02];
|
||||
uint8 var_11E;
|
||||
uint8 pad_11F[0x05];
|
||||
uint8 var_11F;
|
||||
sint16 var_120;
|
||||
sint16 var_122;
|
||||
sint16 var_124;
|
||||
sint16 var_126;
|
||||
sint16 var_128;
|
||||
|
@ -153,7 +155,10 @@ typedef struct {
|
|||
sint16 var_134;
|
||||
sint16 var_136;
|
||||
money16 price; // 0x138
|
||||
uint8 pad_13A[0x06];
|
||||
sint16 var_13A;
|
||||
sint16 var_13C;
|
||||
uint8 var_13E;
|
||||
uint8 var_13F;
|
||||
union {
|
||||
rating_tuple ratings; // 0x140
|
||||
struct {
|
||||
|
@ -163,7 +168,7 @@ typedef struct {
|
|||
};
|
||||
};
|
||||
uint16 reliability; // 0x146
|
||||
uint16 pad_148;
|
||||
uint16 var_148;
|
||||
uint16 var_14A;
|
||||
uint8 pad_14C;
|
||||
uint8 var_14D;
|
||||
|
@ -173,9 +178,12 @@ typedef struct {
|
|||
uint16 var_158;
|
||||
uint8 pad_15A;
|
||||
uint8 num_riders; // 0x15B
|
||||
uint8 pad_15C[2];
|
||||
uint16 maze_tiles;
|
||||
uint8 pad_160[0x20];
|
||||
uint8 var_15C;
|
||||
uint8 var_15D;
|
||||
uint16 maze_tiles; // 0x15E
|
||||
uint8 pad_160[0x16];
|
||||
uint8 var_176;
|
||||
uint8 pad_177[0x9];
|
||||
sint16 build_date; // 0x180
|
||||
money16 upkeep_cost; // 0x182
|
||||
uint16 race_winner; // 0x184
|
||||
|
|
Loading…
Reference in New Issue