1
0
mirror of https://github.com/OpenRCT2/OpenRCT2 synced 2025-12-24 00:03:11 +01:00

Prevent map corners from being cut off (original bug)

This commit is contained in:
Aaron van Geffen
2024-05-07 13:56:06 +02:00
parent 0d3c9909b6
commit aeef004710

View File

@@ -818,8 +818,6 @@ static Widget window_map_widgets[] = {
g1temp.offset = _mapImageData.data(); g1temp.offset = _mapImageData.data();
g1temp.width = getMiniMapWidth(); g1temp.width = getMiniMapWidth();
g1temp.height = getMiniMapWidth(); g1temp.height = getMiniMapWidth();
g1temp.x_offset = -8;
g1temp.y_offset = -8;
GfxSetG1Element(SPR_TEMP, &g1temp); GfxSetG1Element(SPR_TEMP, &g1temp);
DrawingEngineInvalidateImage(SPR_TEMP); DrawingEngineInvalidateImage(SPR_TEMP);
GfxDrawSprite(dpi, ImageId(SPR_TEMP), { 0, 0 }); GfxDrawSprite(dpi, ImageId(SPR_TEMP), { 0, 0 });
@@ -1050,7 +1048,7 @@ static Widget window_map_widgets[] = {
cx = ((mainWindow->viewport->view_width >> 1) + mainWindow->viewport->viewPos.x) >> 5; cx = ((mainWindow->viewport->view_width >> 1) + mainWindow->viewport->viewPos.x) >> 5;
dx = ((mainWindow->viewport->view_height >> 1) + mainWindow->viewport->viewPos.y) >> 4; dx = ((mainWindow->viewport->view_height >> 1) + mainWindow->viewport->viewPos.y) >> 4;
cx += offset.x * getTechnicalMapSize() - 8; cx += offset.x * getTechnicalMapSize();
dx += offset.y * getTechnicalMapSize(); dx += offset.y * getTechnicalMapSize();
// calculate width and height of minimap // calculate width and height of minimap
@@ -1361,11 +1359,14 @@ static Widget window_map_widgets[] = {
return; return;
auto offset = MiniMapOffsetFactors[GetCurrentRotation()]; auto offset = MiniMapOffsetFactors[GetCurrentRotation()];
auto leftTop = ScreenCoordsXY{ (mainViewport->viewPos.x >> 5) + offset.x * getTechnicalMapSize() - 8, offset.x *= getTechnicalMapSize();
(mainViewport->viewPos.y >> 4) + offset.y * getTechnicalMapSize() }; offset.y *= getTechnicalMapSize();
auto leftTop = ScreenCoordsXY{ (mainViewport->viewPos.x >> 5) + offset.x,
(mainViewport->viewPos.y >> 4) + offset.y };
auto rightBottom = ScreenCoordsXY{ auto rightBottom = ScreenCoordsXY{
((mainViewport->viewPos.x + mainViewport->view_width) >> 5) + offset.x * getTechnicalMapSize() - 8, ((mainViewport->viewPos.x + mainViewport->view_width) >> 5) + offset.x,
((mainViewport->viewPos.y + mainViewport->view_height) >> 4) + offset.y * getTechnicalMapSize() ((mainViewport->viewPos.y + mainViewport->view_height) >> 4) + offset.y
}; };
auto rightTop = ScreenCoordsXY{ rightBottom.x, leftTop.y }; auto rightTop = ScreenCoordsXY{ rightBottom.x, leftTop.y };
auto leftBottom = ScreenCoordsXY{ leftTop.x, rightBottom.y }; auto leftBottom = ScreenCoordsXY{ leftTop.x, rightBottom.y };
@@ -1497,7 +1498,7 @@ static Widget window_map_widgets[] = {
x /= 32; x /= 32;
y /= 32; y /= 32;
return { -x + y + getTechnicalMapSize() - 8, x + y - 8 }; return { -x + y + getTechnicalMapSize(), x + y };
} }
void ResizeMap() void ResizeMap()