From b84d2f2c29e277107008d2452632ab5800cd56b2 Mon Sep 17 00:00:00 2001 From: Paul Chote Date: Mon, 6 Sep 2010 20:11:39 +1200 Subject: [PATCH] Allow a small amount of over-scroll so ui doesn't get in the way --- OpenRA.Game/Graphics/Viewport.cs | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/OpenRA.Game/Graphics/Viewport.cs b/OpenRA.Game/Graphics/Viewport.cs index d878c4d5ef..642cd78c6e 100644 --- a/OpenRA.Game/Graphics/Viewport.cs +++ b/OpenRA.Game/Graphics/Viewport.cs @@ -55,14 +55,14 @@ namespace OpenRA.Graphics float2 topLeftBorder = (Game.CellSize* mapStart).ToFloat2(); float2 bottomRightBorder = (Game.CellSize* mapEnd).ToFloat2(); - if(newScrollPosition.Y < topLeftBorder.Y) - newScrollPosition.Y = topLeftBorder.Y; - if(newScrollPosition.X < topLeftBorder.X) - newScrollPosition.X = topLeftBorder.X; - if(newScrollPosition.Y > bottomRightBorder.Y-screenSize.Y) - newScrollPosition.Y = bottomRightBorder.Y-screenSize.Y; - if(newScrollPosition.X > bottomRightBorder.X-screenSize.X) - newScrollPosition.X = bottomRightBorder.X-screenSize.X; + if(newScrollPosition.Y < topLeftBorder.Y - screenSize.Y/2) + newScrollPosition.Y = topLeftBorder.Y - screenSize.Y/2; + if(newScrollPosition.X < topLeftBorder.X - screenSize.X/2) + newScrollPosition.X = topLeftBorder.X - screenSize.X/2; + if(newScrollPosition.Y > bottomRightBorder.Y - screenSize.Y/2) + newScrollPosition.Y = bottomRightBorder.Y - screenSize.Y/2; + if(newScrollPosition.X > bottomRightBorder.X - screenSize.X/2) + newScrollPosition.X = bottomRightBorder.X - screenSize.X/2; return newScrollPosition; } @@ -74,13 +74,13 @@ namespace OpenRA.Graphics ScrollDirection blockedDirections = ScrollDirection.None; - if(scrollPosition.Y <= topLeftBorder.Y) + if(scrollPosition.Y <= topLeftBorder.Y - screenSize.Y/2) blockedDirections = blockedDirections.Set(ScrollDirection.Up, true); - if(scrollPosition.X <= topLeftBorder.X) + if(scrollPosition.X <= topLeftBorder.X - screenSize.X/2) blockedDirections = blockedDirections.Set(ScrollDirection.Left, true); - if(scrollPosition.Y >= bottomRightBorder.Y - screenSize.Y) + if(scrollPosition.Y >= bottomRightBorder.Y - screenSize.Y/2) blockedDirections = blockedDirections.Set(ScrollDirection.Down, true); - if(scrollPosition.X >= bottomRightBorder.X - screenSize.X) + if(scrollPosition.X >= bottomRightBorder.X - screenSize.X/2) blockedDirections = blockedDirections.Set(ScrollDirection.Right, true); return blockedDirections;