From af90f225499694392df37d89a6a6146b688c240d Mon Sep 17 00:00:00 2001 From: jsalmon3 <> Date: Sun, 28 Mar 2004 22:55:08 +0000 Subject: [PATCH] Fixed off by 1 bug --- src/stratagus/mainloop.cpp | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/stratagus/mainloop.cpp b/src/stratagus/mainloop.cpp index aba3f3ca9..2a8ec2f92 100644 --- a/src/stratagus/mainloop.cpp +++ b/src/stratagus/mainloop.cpp @@ -156,9 +156,9 @@ local void MoveMapViewPointDown(int step) ++vp->MapY; } // If bottom is > Last map top, make it equal - if (vp->MapY * TileSizeY + vp->OffsetY + vp->EndY - vp->Y > TheMap.Height * TileSizeY) { - vp->MapY = (TheMap.Height * TileSizeY - (vp->EndY - vp->Y)) / TileSizeY; - vp->OffsetY = (TheMap.Height * TileSizeY - (vp->EndY - vp->Y)) % TileSizeY; + if (vp->MapY * TileSizeY + vp->OffsetY + (vp->EndY - vp->Y + 1) > TheMap.Height * TileSizeY) { + vp->MapY = (TheMap.Height * TileSizeY - (vp->EndY - vp->Y + 1)) / TileSizeY; + vp->OffsetY = (TheMap.Height * TileSizeY - (vp->EndY - vp->Y + 1)) % TileSizeY; } } @@ -179,9 +179,9 @@ local void MoveMapViewPointRight(int step) } // If right is > Last map top, make it equal - if (vp->MapX * TileSizeX + vp->OffsetX + vp->EndX - vp->X > TheMap.Width * TileSizeX) { - vp->MapX = (TheMap.Width * TileSizeX - (vp->EndX - vp->X)) / TileSizeX; - vp->OffsetX = (TheMap.Width * TileSizeX - (vp->EndX - vp->X)) % TileSizeX; + if (vp->MapX * TileSizeX + vp->OffsetX + (vp->EndX - vp->X + 1) > TheMap.Width * TileSizeX) { + vp->MapX = (TheMap.Width * TileSizeX - (vp->EndX - vp->X + 1)) / TileSizeX; + vp->OffsetX = (TheMap.Width * TileSizeX - (vp->EndX - vp->X + 1)) % TileSizeX; } }