index 6b54fa3a4273f1fd738451366082640d45f38eee..c9a4d3370393095ea4e2f363027b357ea1c13b0e 100644 (file)
procedure r_Map_Update;
- procedure r_Map_Draw (x, y, w, h, camx, camy: Integer; player: TPlayer);
+ procedure r_Map_Draw (x, y, w, h, camx, camy: Integer; player: TPlayer; out acx, acy: Integer);
implementation
glEnable(GL_BLEND);
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
+ r_Draw_SetColor(255, 255, 255, 255);
glBegin(GL_POINTS);
for i := 0 to High(Particles) do
begin
end;
end;
glEnd;
+ r_Draw_SetColor(0, 0, 0, 255);
glDisable(GL_BLEND);
end;
end;
end;
- procedure r_Map_Draw (x, y, w, h, camx, camy: Integer; player: TPlayer);
+ procedure r_Map_Draw (x, y, w, h, camx, camy: Integer; player: TPlayer; out acx, acy: Integer);
var iter: TPanelGrid.Iter; p: PPanel; cx, cy, cw, ch, xx, yy, ww, hh, ml, mt, mr, mb, mcx, mcy: Integer; sx, sy, sw, sh: LongInt; l, t, r, b: Integer;
begin
r_Draw_GetRect(l, t, r, b);
(* camera bounds *)
if g_dbg_ignore_bounds = false then
begin
- if cx + cw > gMapInfo.Width then
- cx := gMapInfo.Width - cw;
- if cy + ch > gMapInfo.Height then
- cy := gMapInfo.Height - ch;
- if cx < 0 then
+ if w > gMapInfo.Width then
+ cx := gMapInfo.Width div 2 - w div 2
+ else if cx + cw > gMapInfo.Width then
+ cx := gMapInfo.Width - cw
+ else if cx < 0 then
cx := 0;
- if cy < 0 then
+
+ if h > gMapInfo.Height then
+ cy := gMapInfo.Height div 2 - h div 2
+ else if cy + ch > gMapInfo.Height then
+ cy := gMapInfo.Height - ch
+ else if cy < 0 then
cy := 0;
end;
+ acx := cx;
+ acy := cy;
+
(* map bounds *)
xx := cx;
yy := cy;
r_Map_DrawPanelType(PANEL_FORE);
// TODO draw monsters health bar
// TODO draw players health bar
+
+ r_Draw_SetRect(x, y, x + w, y + h);
+
if gGameSettings.GameMode <> GM_SINGLE then
r_Map_DrawPlayerIndicators(player, cx, cy, cw, ch);
if DebugCameraScale <> 1.0 then