X-Git-Url: https://deadsoftware.ru/gitweb?a=blobdiff_plain;f=src%2Fgame%2Fg_game.pas;h=02a46f2c4ab9cb90ae13a484b6b08ca7a590770f;hb=d1fb1fce0a216ed61503c6ad592154eaf2885d1c;hp=99e1a3d8ce26a22509465542a792278615d3ce9a;hpb=c185246bfc49a2ae31fc79ef7c73dc6bcc1073e2;p=d2df-sdl.git diff --git a/src/game/g_game.pas b/src/game/g_game.pas index 99e1a3d..02a46f2 100644 --- a/src/game/g_game.pas +++ b/src/game/g_game.pas @@ -316,12 +316,12 @@ var g_profile_los: Boolean = false; g_profile_history_size: Integer = 1000; - postdrawMouse: procedure = nil; procedure g_ResetDynlights (); procedure g_AddDynLight (x, y, radius: Integer; r, g, b, a: Single); procedure g_DynLightExplosion (x, y, radius: Integer; r, g, b: Single); + implementation uses @@ -331,7 +331,7 @@ uses g_triggers, MAPDEF, g_monsters, e_sound, CONFIG, BinEditor, g_language, g_net, SDL, ENet, e_msg, g_netmsg, g_netmaster, GL, GLExt, - utils, sfs; + utils, sfs, g_holmes; // ////////////////////////////////////////////////////////////////////////// // @@ -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 @@ -3254,6 +3270,9 @@ begin g_ActiveWindow.Draw(); end; + // draw inspector + if (g_holmes_enabled) then g_Holmes_Draw(); + g_Console_Draw(); if g_debug_Sounds and gGameOn then @@ -3274,8 +3293,6 @@ begin Format('%d:%.2d:%.2d', [gTime div 1000 div 3600, (gTime div 1000 div 60) mod 60, gTime div 1000 mod 60]), gStdFont); - if gGameOn and assigned(postdrawMouse) then postdrawMouse(); - if gGameOn then drawProfilers(); end; @@ -4990,7 +5007,12 @@ begin if (cmd = 'pr_enabled') then begin binaryFlag(gpart_dbg_enabled, 'particles'); exit; end; if (cmd = 'pr_phys_enabled') then begin binaryFlag(gpart_dbg_phys_enabled, 'particle physics'); exit; end; if (cmd = 'los_enabled') then begin binaryFlag(gmon_dbg_los_enabled, 'LOS calculations'); exit; end; + + if (not gGameOn) or (not gCheats) or ((gGameSettings.GameType <> GT_SINGLE) and + (gGameSettings.GameMode <> GM_COOP) and (not gDebugMode)) or g_Game_IsNet then exit; + if (cmd = 'mon_think') then begin binaryFlag(gmon_debug_think, 'monster thinking'); exit; end; + if (cmd = 'dbg_holmes') then begin binaryFlag(g_holmes_enabled, 'Holmes'); exit; end; end;