DEADSOFTWARE

turned on "SCOPEDENUMS" fpc option
[d2df-sdl.git] / src / game / g_holmes.pas
index 96e86c97a5f93a15cc525122a79fcc2a3ed111a7..165b8480f804c131577f6d0f3c3d52bd1f93d32a 100644 (file)
@@ -19,6 +19,7 @@ unit g_holmes;
 interface
 
 uses
+  mempool,
   e_log, e_input,
   g_textures, g_basic, e_graphics, g_phys, g_grid, g_player, g_monsters,
   g_window, g_map, g_triggers, g_items, g_game, g_panel, g_console, g_gfx,
@@ -625,7 +626,7 @@ end;
 // ////////////////////////////////////////////////////////////////////////// //
 procedure g_Holmes_VidModeChanged ();
 begin
-  e_WriteLog(Format('Holmes: videomode changed: %dx%d', [gScreenWidth, gScreenHeight]), MSG_NOTIFY);
+  e_WriteLog(Format('Holmes: videomode changed: %dx%d', [gScreenWidth, gScreenHeight]), TMsgType.Notify);
   // texture space is possibly lost here, idc
   curtexid := 0;
   font6texid := 0;
@@ -1274,6 +1275,7 @@ function g_Holmes_MouseEvent (var ev: THMouseEvent): Boolean;
 var
   he: THMouseEvent;
 begin
+  if g_Game_IsNet then begin result := false; exit; end;
   holmesInitCommands();
   holmesInitBinds();
   result := true;
@@ -1303,6 +1305,7 @@ var
   end;
 
 begin
+  if g_Game_IsNet then begin result := false; exit; end;
   holmesInitCommands();
   holmesInitBinds();
   result := false;
@@ -1353,6 +1356,7 @@ end;
 // ////////////////////////////////////////////////////////////////////////// //
 procedure g_Holmes_Draw ();
 begin
+  if g_Game_IsNet then exit;
   {$IF not DEFINED(HEADLESS)}
   holmesInitCommands();
   holmesInitBinds();
@@ -1363,10 +1367,7 @@ begin
   glDisable(GL_SCISSOR_TEST);
   glDisable(GL_TEXTURE_2D);
 
-  if gGameOn then
-  begin
-    plrDebugDraw();
-  end;
+  if gGameOn then plrDebugDraw();
   {$ENDIF}
 
   laserSet := false;
@@ -1375,6 +1376,7 @@ end;
 
 procedure g_Holmes_DrawUI ();
 begin
+  if g_Game_IsNet then exit;
   {$IF not DEFINED(HEADLESS)}
   glPushMatrix();
   glScalef(g_holmes_ui_scale, g_holmes_ui_scale, 1.0);
@@ -1437,11 +1439,13 @@ end;
 
 procedure dbgToggleTraceBox (arg: Integer=-1); begin if (arg < 0) then showTraceBox := not showTraceBox else showTraceBox := (arg > 0); end;
 
+procedure dbgToggleHolmesPause (arg: Integer=-1); begin if (arg < 0) then g_Game_HolmesPause(not gPauseHolmes) else g_Game_HolmesPause(arg > 0); end;
+
 procedure cbAtcurSelectMonster ();
   function monsAtDump (mon: TMonster; tag: Integer): Boolean;
   begin
     result := true; // stop
-    e_WriteLog(Format('monster #%d (UID:%u) (proxyid:%d)', [mon.arrIdx, mon.UID, mon.proxyId]), MSG_NOTIFY);
+    e_WriteLog(Format('monster #%d (UID:%u) (proxyid:%d)', [mon.arrIdx, mon.UID, mon.proxyId]), TMsgType.Notify);
     monMarkedUID := mon.UID;
     dumpPublishedProperties(mon);
   end;
@@ -1471,12 +1475,12 @@ procedure cbAtcurDumpMonsters ();
   function monsAtDump (mon: TMonster; tag: Integer): Boolean;
   begin
     result := false; // don't stop
-    e_WriteLog(Format('monster #%d (UID:%u) (proxyid:%d)', [mon.arrIdx, mon.UID, mon.proxyId]), MSG_NOTIFY);
+    e_WriteLog(Format('monster #%d (UID:%u) (proxyid:%d)', [mon.arrIdx, mon.UID, mon.proxyId]), TMsgType.Notify);
   end;
 begin
-  e_WriteLog('===========================', MSG_NOTIFY);
+  e_WriteLog('===========================', TMsgType.Notify);
   monsGrid.forEachAtPoint(pmsCurMapX, pmsCurMapY, monsAtDump);
-  e_WriteLog('---------------------------', MSG_NOTIFY);
+  e_WriteLog('---------------------------', TMsgType.Notify);
 end;
 
 procedure cbAtcurDumpWalls ();
@@ -1493,9 +1497,9 @@ var
   trig: PTrigger;
 begin
   platMarkedGUID := -1;
-  e_WriteLog('=== TOGGLE WALL ===', MSG_NOTIFY);
+  e_WriteLog('=== TOGGLE WALL ===', TMsgType.Notify);
   mapGrid.forEachAtPoint(pmsCurMapX, pmsCurMapY, wallToggle, (GridTagWall or GridTagDoor));
-  e_WriteLog('--- toggle wall ---', MSG_NOTIFY);
+  e_WriteLog('--- toggle wall ---', TMsgType.Notify);
   if showTriggers then
   begin
     for f := 0 to High(gTriggers) do
@@ -1557,6 +1561,8 @@ begin
   cmdAdd('atcur_disable_walls', cbAtcurToggleWalls, 'disable walls', 'wall control');
 
   cmdAdd('dbg_tracebox', dbgToggleTraceBox, 'test traceBox()', 'player control');
+
+  cmdAdd('hlm_pause', dbgToggleHolmesPause, '"Holmes" pause mode', 'game control');
 end;
 
 
@@ -1595,6 +1601,8 @@ begin
 
     keybindAdd('C-1', 'mon_spawn zombie');
 
+    keybindAdd('C-S-P', 'hlm_pause');
+
     // mouse
     msbindAdd('LMB', 'atcur_select_monster');
     msbindAdd('M-LMB', 'atcur_dump_monsters');