DEADSOFTWARE

forcing centering of small maps (BlackDoomer request)
[d2df-sdl.git] / src / game / g_game.pas
index 129370db0db8b867a81199199808fa13d86c8572..02a46f2c4ab9cb90ae13a484b6b08ca7a590770f 100644 (file)
@@ -2855,8 +2855,19 @@ begin
   if px > gMapInfo.Width-(gPlayerScreenSize.X div 2) then a := -gMapInfo.Width+gPlayerScreenSize.X;
   if py > gMapInfo.Height-(gPlayerScreenSize.Y div 2) then b := -gMapInfo.Height+gPlayerScreenSize.Y;
 
-  if gMapInfo.Width <= gPlayerScreenSize.X then a := 0;
-  if gMapInfo.Height <= gPlayerScreenSize.Y then b := 0;
+       if (gMapInfo.Width = gPlayerScreenSize.X) then a := 0
+  else if (gMapInfo.Width < gPlayerScreenSize.X) then
+  begin
+    // hcenter
+    a := (gPlayerScreenSize.X-gMapInfo.Width) div 2;
+  end;
+
+       if (gMapInfo.Height = gPlayerScreenSize.Y) then b := 0
+  else if (gMapInfo.Height < gPlayerScreenSize.Y) then
+  begin
+    // vcenter
+    b := (gPlayerScreenSize.Y-gMapInfo.Height) div 2;
+  end;
 
   if p.IncCam <> 0 then
   begin
@@ -2907,6 +2918,11 @@ begin
   p.viewPortW := sWidth;
   p.viewPortH := sHeight;
 
+  if (p = gPlayer1) then
+  begin
+    g_Holmes_plrView(p.viewPortX, p.viewPortY, p.viewPortW, p.viewPortH);
+  end;
+
   renderMapInternal(-c, -d, a, b+p.IncCam, true);
 
   if p.FSpectator then