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;
 	}
 }