DEADSOFTWARE

Holmes now optional at compile-time
authorDeaDDooMER <deaddoomer@deadsoftware.ru>
Sat, 23 Jun 2018 08:14:49 +0000 (11:14 +0300)
committerDeaDDooMER <deaddoomer@deadsoftware.ru>
Sat, 23 Jun 2018 22:29:31 +0000 (01:29 +0300)
README
src/game/Doom2DF.lpr
src/game/g_game.pas
src/game/g_main.pas
src/game/g_player.pas
src/game/g_window.pas

diff --git a/README b/README
index 2b86f9d82433a1fda94ff6449c349caf84705b54..7cedece869ad86196a84b09b7356cedbd0b9078d 100644 (file)
--- a/README
+++ b/README
@@ -20,6 +20,7 @@ fpc -O3 -Fi../lib/vampimg -Fi../lib/vampimg/JpegLib -Fi../lib/vampimg/ZLib -Fu..
 
 If you want SDL_mixer instead of FMOD, add -dUSE_SDLMIXER.
 If you want the server to be able to forward ports via UPNP, add -dUSE_MINIUPNPC.
+If you want to debug game with Holmes, add -dENABLE_HOLMES.
 To build a headless (no video/audio, for dedicated servers) executable, add -dHEADLESS.
 Replace -O3 with -g -gl to enable debugging features. Run the game with --gdb when using a debugger to
 prevent it from eating exceptions.
index 0b62430ad3d7c369f4dcf485b6f4fbb65f8e1f67..91fd3a6276cf4a7778f5322d5616a1107ea3124a 100644 (file)
@@ -96,7 +96,6 @@ uses
   g_triggers in 'g_triggers.pas',
   g_weapons in 'g_weapons.pas',
   g_window in 'g_window.pas',
-  g_holmes in 'g_holmes.pas',
   SysUtils,
 {$IFDEF USE_FMOD}
   fmod in '../lib/FMOD/fmod.pas',
@@ -115,6 +114,9 @@ uses
   g_panel in 'g_panel.pas',
   g_language in 'g_language.pas',
 
+{$IFDEF ENABLE_HOLMES}
+  g_holmes in 'g_holmes.pas',
+
   sdlcarcass in '../flexui/sdlcarcass.pas',
   //sdlstandalone in '../flexui/sdlstandalone.pas',
 
@@ -125,6 +127,7 @@ uses
   fui_style in '../flexui/fui_style.pas',
   fui_flexlay in '../flexui/fui_flexlay.pas',
   fui_ctls in '../flexui/fui_ctls.pas',
+{$ENDIF}
 
   ImagingTypes,
   Imaging,
index 4414740e5ddc0f1345ca5eb9703932dd3071a634..83da6868652f16de51be42ce2b2026d4e117e383 100644 (file)
@@ -358,6 +358,9 @@ uses
   nanoGL,
 {$ELSE}
   GL, GLExt,
+{$ENDIF}
+{$IFDEF ENABLE_HOLMES}
+  g_holmes,
 {$ENDIF}
   e_texture, g_textures, g_main, g_window, g_menu,
   e_input, e_log, g_console, g_items, g_map, g_panel,
@@ -365,7 +368,7 @@ uses
   g_triggers, g_monsters, e_sound, CONFIG,
   g_language, g_net,
   ENet, e_msg, g_netmsg, g_netmaster,
-  sfs, wadreader, g_holmes;
+  sfs, wadreader;
 
 
 var
@@ -3393,11 +3396,13 @@ begin
   p.viewPortW := sWidth;
   p.viewPortH := sHeight;
 
+{$IFDEF ENABLE_HOLMES}
   if (p = gPlayer1) then
   begin
     g_Holmes_plrViewPos(sX, sY);
     g_Holmes_plrViewSize(sWidth, sHeight);
   end;
+{$ENDIF}
 
   renderMapInternal(-c, -d, true);
 
@@ -3587,8 +3592,10 @@ begin
         e_DrawLine(2, 0, gScreenHeight div 2, gScreenWidth, gScreenHeight div 2, 0, 0, 0);
     end;
 
+{$IFDEF ENABLE_HOLMES}
     // draw inspector
     if (g_holmes_enabled) then g_Holmes_Draw();
+{$ENDIF}
 
     if MessageText <> '' then
     begin
@@ -3800,7 +3807,9 @@ begin
 
   if gGameOn then drawProfilers();
 
+{$IFDEF ENABLE_HOLMES}
   g_Holmes_DrawUI();
+{$ENDIF}
 
   g_Touch_Draw;
 end;
@@ -7596,7 +7605,9 @@ begin
   conRegVar('los_enabled', @gmon_dbg_los_enabled, 'enable/disable monster LOS calculations', 'monster LOS', true);
   conRegVar('mon_think', @gmon_debug_think, 'enable/disable monster thinking', 'monster thinking', true);
 
+{$IFDEF ENABLE_HOLMES}
   conRegVar('dbg_holmes', @g_holmes_enabled, 'enable/disable Holmes', 'Holmes', true);
+{$ENDIF}
 
   conRegVar('dbg_ignore_level_bounds', @g_dbg_ignore_bounds, 'ignore level bounds', '',  false);
 
index b564911086e54da4c1b0ad284666578146efd1e2..874907ed63c9598bfe9a9b214617787588b3cb8e 100644 (file)
@@ -41,14 +41,17 @@ uses
   nanoGL,
 {$ELSE}
   GL, GLExt,
+{$ENDIF}
+{$IFDEF ENABLE_HOLMES}
+  g_holmes, fui_wadread, fui_style, fui_gfx_gl,
 {$ENDIF}
   SDL2, wadreader, e_log, g_window,
   e_graphics, e_input, g_game, g_console, g_gui,
   e_sound, g_options, g_sound, g_player, g_basic,
   g_weapons, SysUtils, g_triggers, MAPDEF, g_map,
-  g_menu, g_language, g_net, g_holmes, g_touch,
-  utils, conbuf, envvars, fui_wadread, fui_style,
-  fui_gfx_gl, xparser;
+  g_menu, g_language, g_net, g_touch,
+  utils, conbuf, envvars,
+  xparser;
 
 
 var
@@ -124,7 +127,7 @@ begin
 {$ENDIF}
 {$ENDIF}
 
-{$IFNDEF HEADLESS}
+{$IF not DEFINED(HEADLESS) and DEFINED(ENABLE_HOLMES)}
   flexloaded := true;
   if not fuiAddWad('flexui.wad') then
   begin
index 8c64fd0423ce66f9c7717fd1353abef54bd233a9..8c626569dfe2dd1e25476321c64567ea7333f5ff 100644 (file)
@@ -592,11 +592,14 @@ uses
   nanoGL,
 {$ELSE}
   GL,
+{$ENDIF}
+{$IFDEF ENABLE_HOLMES}
+  g_holmes,
 {$ENDIF}
   e_log, g_map, g_items, g_console, g_gfx, Math,
   g_options, g_triggers, g_menu, g_game, g_grid,
   wadreader, g_main, g_monsters, CONFIG, g_language,
-  g_net, g_netmsg, g_window, g_holmes,
+  g_net, g_netmsg, g_window,
   utils, xstreams;
 
 const PLR_SAVE_VERSION = 0;
@@ -2414,10 +2417,13 @@ procedure TPlayer.DrawAim();
   var
     ex, ey: Integer;
   begin
+
+{$IFDEF ENABLE_HOLMES}
     if isValidViewPort and (self = gPlayer1) then
     begin
       g_Holmes_plrLaser(ax0, ay0, ax1, ay1);
     end;
+{$ENDIF}
 
     e_DrawLine(sz, ax0, ay0, ax1, ay1, 255, 0, 0, 96);
     if (g_Map_traceToNearestWall(ax0, ay0, ax1, ay1, @ex, @ey) <> nil) then
index ac21148efe9c6f1b24acdb0df77cca1cba3b4fee..7f542509b7b9febaf98200f072db129d08de578d 100644 (file)
@@ -55,13 +55,15 @@ uses
   nanoGL,
 {$ELSE}
   GL, GLExt,
+{$ENDIF}
+{$IFDEF ENABLE_HOLMES}
+  g_holmes, sdlcarcass, fui_ctls,
 {$ENDIF}
   SysUtils, Classes, MAPDEF,
   SDL2, e_graphics, e_log, e_texture, g_main,
   g_console, e_input, g_options, g_game,
   g_basic, g_textures, e_sound, g_sound, g_menu, ENet, g_net,
-  g_map, g_gfx, g_monsters, g_holmes, xprofiler,
-  sdlcarcass, fui_ctls,
+  g_map, g_gfx, g_monsters, xprofiler,
   g_touch;
 
 
@@ -90,7 +92,9 @@ var
 
 procedure KillGLWindow (preserveGL: Boolean);
 begin
+{$IFDEF ENABLE_HOLMES}
   if (h_GL <> nil) and (not preserveGL) then begin if (assigned(oglDeinitCB)) then oglDeinitCB(); end;
+{$ENDIF}
   if (h_Wnd <> nil) then SDL_DestroyWindow(h_Wnd);
   if (h_GL <> nil) and (not preserveGL) then
   begin
@@ -182,9 +186,12 @@ begin
       e_WriteLog('SDL: fullscreen window got invalid size: '+IntToStr(nw)+'x'+IntToStr(nh), TMsgType.Notify);
     end;
   end;
-  fuiScrWdt := gScreenWidth;
-  fuiScrHgt := gScreenHeight;
-  if (h_GL <> nil) and (not preserveGL) then begin if (assigned(oglInitCB)) then oglInitCB(); end;
+
+  {$IFDEF ENABLE_HOLMES}
+    fuiScrWdt := gScreenWidth;
+    fuiScrHgt := gScreenHeight;
+    if (h_GL <> nil) and (not preserveGL) then begin if (assigned(oglInitCB)) then oglInitCB(); end;
+  {$ENDIF}
 {$ENDIF}
 
   result := true;
@@ -231,8 +238,10 @@ begin
   gWinSizeX := gScreenWidth;
   gWinSizeY := gScreenHeight;
 {$IF not DEFINED(HEADLESS)}
-  fuiScrWdt := gScreenWidth;
-  fuiScrHgt := gScreenHeight;
+  {$IFDEF ENABLE_HOLMES}
+    fuiScrWdt := gScreenWidth;
+    fuiScrHgt := gScreenHeight;
+  {$ENDIF}
   e_ResizeWindow(gScreenWidth, gScreenHeight);
   g_Game_SetupScreenSize();
   g_Menu_Reset();
@@ -411,7 +420,9 @@ begin
 
       gWinActive := false;
 
-      if assigned(winBlurCB) then winBlurCB();
+      {$IFDEF ENABLE_HOLMES}
+        if assigned(winBlurCB) then winBlurCB();
+      {$ENDIF}
     end;
   end
   else if wActivate then
@@ -434,7 +445,10 @@ begin
       end;
 
       gWinActive := true;
-      if assigned(winFocusCB) then winFocusCB();
+
+      {$IFDEF ENABLE_HOLMES}
+        if assigned(winFocusCB) then winFocusCB();
+      {$ENDIF}
     end;
   end;
 end;
@@ -475,7 +489,7 @@ begin
         if key = SDL_SCANCODE_AC_BACK then
           key := SDL_SCANCODE_ESCAPE;
         down := (ev.type_ = SDL_KEYDOWN);
-        {$IF not DEFINED(HEADLESS)}
+        {$IF not DEFINED(HEADLESS) and DEFINED(ENABLE_HOLMES)}
         if fuiOnSDLEvent(ev) then
         begin
           // event eaten, but...
@@ -487,7 +501,7 @@ begin
         if down then KeyPress(key);
       end;
 
-    {$IF not DEFINED(HEADLESS)}
+    {$IF not DEFINED(HEADLESS) and DEFINED(ENABLE_HOLMES)}
     SDL_MOUSEBUTTONDOWN, SDL_MOUSEBUTTONUP, SDL_MOUSEWHEEL, SDL_MOUSEMOTION:
       fuiOnSDLEvent(ev);
     {$ENDIF}
@@ -538,8 +552,10 @@ begin
 {$IF not DEFINED(HEADLESS)}
   h_GL := SDL_GL_CreateContext(h_Wnd);
   if (h_GL = nil) then exit;
-  fuiScrWdt := gScreenWidth;
-  fuiScrHgt := gScreenHeight;
+  {$IFDEF ENABLE_HOLMES}
+    fuiScrWdt := gScreenWidth;
+    fuiScrHgt := gScreenHeight;
+  {$ENDIF}
   SDL_GL_MakeCurrent(h_Wnd, h_GL);
 {$IFDEF USE_NANOGL}
   if nanoGL_Init() = 0 then
@@ -549,7 +565,9 @@ begin
     exit;
   end;
 {$ENDIF}
-  if (assigned(oglInitCB)) then oglInitCB();
+  {$IFDEF ENABLE_HOLMES}
+    if (assigned(oglInitCB)) then oglInitCB();
+  {$ENDIF}
   if (h_GL <> nil) then g_SetVSync(gVSync);
 {$ENDIF}
 
@@ -875,11 +893,13 @@ begin
 {$IFDEF HEADLESS}
   e_NoGraphics := true;
 {$ELSE}
-  if (not g_holmes_imfunctional) then
-  begin
-    uiInitialize();
-    uiContext.font := 'win14';
-  end;
+  {$IFDEF ENABLE_HOLMES}
+    if (not g_holmes_imfunctional) then
+    begin
+      uiInitialize();
+      uiContext.font := 'win14';
+    end;
+  {$ENDIF}
 {$ENDIF}
 
   idx := 1;
@@ -908,6 +928,7 @@ begin
     if arg = '--aimline' then g_dbg_aimline_on := true;
     {.$ENDIF}
 
+{$IFDEF ENABLE_HOLMES}
     if arg = '--holmes' then begin g_holmes_enabled := true; g_Game_SetDebugMode(); end;
 
     if (arg = '--holmes-ui-scale') or (arg = '-holmes-ui-scale') then
@@ -942,6 +963,7 @@ begin
         Inc(idx);
       end;
     end;
+{$ENDIF}
 
     if (arg = '--game-scale') or (arg = '-game-scale') then
     begin