mirror of https://github.com/OpenRCT2/OpenRCT2.git
Started decompiling viewport_paint
This commit is contained in:
parent
e3b7adfa04
commit
e63c169664
|
@ -264,6 +264,48 @@ void viewport_render(rct_drawpixelinfo *dpi, rct_viewport *viewport, int left, i
|
|||
* ebp: bottom
|
||||
*/
|
||||
void viewport_paint(rct_viewport* viewport, rct_drawpixelinfo* dpi, int left, int top, int right, int bottom){
|
||||
RCT2_GLOBAL(0x141E9E4, uint16) = viewport->flags;
|
||||
RCT2_GLOBAL(0x9AC126, uint16) = viewport->zoom;//cx
|
||||
|
||||
//dx
|
||||
int x = right - left;
|
||||
//bp
|
||||
int y = bottom - top;
|
||||
int bitmask = 0xFFFF << viewport->zoom;
|
||||
|
||||
x &= bitmask;
|
||||
y &= bitmask;
|
||||
left &= bitmask;
|
||||
top &= bitmask;
|
||||
|
||||
RCT2_GLOBAL(0x9AC11C, uint16) = left;
|
||||
RCT2_GLOBAL(0x9AC11E, uint16) = top;
|
||||
|
||||
left -= viewport->view_x & bitmask;
|
||||
top -= viewport->view_y & bitmask;
|
||||
|
||||
RCT2_GLOBAL(0x9AC120, uint16) = x;
|
||||
RCT2_GLOBAL(0x9AC122, uint16) = y;
|
||||
|
||||
left >>= viewport->zoom;
|
||||
top >>= viewport->zoom;
|
||||
x >>= viewport->zoom;
|
||||
|
||||
x = (viewport->view_x + viewport->view_width) - x;
|
||||
RCT2_GLOBAL(0x9AC124, uint16) = x;
|
||||
|
||||
left += viewport->x;
|
||||
top += viewport->y;
|
||||
uint8* bits_pointer = left - dpi->x + (top - dpi->y)*(dpi->width + dpi->pitch) + dpi->bits;
|
||||
RCT2_GLOBAL(0x9AC118, uint8*) = bits_pointer;
|
||||
|
||||
rct_drawpixelinfo* dpi2 = RCT2_ADDRESS(0x9AC128, rct_drawpixelinfo);
|
||||
dpi2->y = RCT2_GLOBAL(0x9AC11E, uint16);
|
||||
dpi2->height = RCT2_GLOBAL(0x9AC122, uint16);
|
||||
dpi2->zoom_level = RCT2_GLOBAL(0x9AC126, uint16);
|
||||
|
||||
int ecx = RCT2_GLOBAL(0x9AC11C, uint16) & 0xFFFFFFE0;
|
||||
|
||||
RCT2_CALLPROC_X(0x00685CBF, left, top, 0, right, (int)viewport, (int)dpi, bottom);
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue