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
TPanelGrid = specialize TBodyGridBase<TPanel>;
var
- mapGrid: TPanelGrid = nil;
+ mapGrid: TPanelGrid = nil; // DO NOT USE! public for debugging only!
implementation
if (mapY1 < gMapInfo.Height-1) then mapY1 := gMapInfo.Height-1;
mapGrid := TPanelGrid.Create(mapX0-128, mapY0-128, mapX1-mapX0+1+128*2, mapY1-mapY0+1+128*2);
+ //mapGrid := TPanelGrid.Create(0, 0, gMapInfo.Width, gMapInfo.Height);
addPanelsToGrid(gWalls);
addPanelsToGrid(gRenderBackgrounds);
TMonsterGrid = specialize TBodyGridBase<TMonster>;
var
- monsGrid: TMonsterGrid = nil;
+ monsGrid: TMonsterGrid = nil; // DO NOT USE! public for debugging only!
var