mirror of https://github.com/OpenRCT2/OpenRCT2.git
Fix small bug in zooming. Another breaking bug still exists
This commit is contained in:
parent
66afea46bd
commit
1cbcf08925
|
@ -264,13 +264,14 @@ void viewport_render(rct_drawpixelinfo *dpi, rct_viewport *viewport, int left, i
|
||||||
* ebp: bottom
|
* ebp: bottom
|
||||||
*/
|
*/
|
||||||
void viewport_paint(rct_viewport* viewport, rct_drawpixelinfo* dpi, int left, int top, int right, int bottom){
|
void viewport_paint(rct_viewport* viewport, rct_drawpixelinfo* dpi, int left, int top, int right, int bottom){
|
||||||
|
//RCT2_CALLPROC_X(0x00685CBF, left, top, 0, right, (int)viewport, (int)dpi, bottom);
|
||||||
|
//return;
|
||||||
RCT2_GLOBAL(RCT2_ADDRESS_CURRENT_VIEWPORT_FLAGS, uint16) = viewport->flags;
|
RCT2_GLOBAL(RCT2_ADDRESS_CURRENT_VIEWPORT_FLAGS, uint16) = viewport->flags;
|
||||||
RCT2_GLOBAL(RCT2_ADDRESS_VIEWPORT_ZOOM, uint16) = viewport->zoom;
|
RCT2_GLOBAL(RCT2_ADDRESS_VIEWPORT_ZOOM, uint16) = viewport->zoom;
|
||||||
|
|
||||||
int width = right - left;
|
int width = right - left;
|
||||||
int height = bottom - top;
|
int height = bottom - top;
|
||||||
int bitmask = 0xFFFF << viewport->zoom;
|
int bitmask = 0xFFFF & (0xFFFF << viewport->zoom);
|
||||||
|
|
||||||
width &= bitmask;
|
width &= bitmask;
|
||||||
height &= bitmask;
|
height &= bitmask;
|
||||||
|
@ -286,11 +287,11 @@ void viewport_paint(rct_viewport* viewport, rct_drawpixelinfo* dpi, int left, in
|
||||||
|
|
||||||
RCT2_GLOBAL(RCT2_ADDRESS_VIEWPORT_PAINT_PITCH, uint16) = (dpi->width + dpi->pitch) - width;
|
RCT2_GLOBAL(RCT2_ADDRESS_VIEWPORT_PAINT_PITCH, uint16) = (dpi->width + dpi->pitch) - width;
|
||||||
|
|
||||||
int x = left - viewport->view_x & bitmask;
|
int x = left - (viewport->view_x & bitmask);
|
||||||
x >>= viewport->zoom;
|
x >>= viewport->zoom;
|
||||||
x += viewport->x;
|
x += viewport->x;
|
||||||
|
|
||||||
int y = top - viewport->view_y & bitmask;
|
int y = top - (viewport->view_y & bitmask);
|
||||||
y >>= viewport->zoom;
|
y >>= viewport->zoom;
|
||||||
y += viewport->y;
|
y += viewport->y;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue