DEADSOFTWARE

gl: implement d_health
[d2df-sdl.git] / src / game / g_console.pas
index fee51960c149868ffe4c969c24c04e7c1513af66..2e3b6838e6f0bf7d51f8e1e863e49d5340031bb6 100644 (file)
@@ -102,9 +102,27 @@ var
 implementation
 
 uses
-  g_textures, e_input, g_game, g_gfx, g_player, g_items,
-  SysUtils, g_basic, g_options, Math, g_touch, e_res,
-  g_menu, g_gui, g_language, g_net, g_netmsg, e_log, conbuf, g_weapons,
+  {$IFDEF ENABLE_MENU}
+    g_gui, g_menu,
+  {$ENDIF}
+  {$IFDEF ENABLE_TOUCH}
+    g_system,
+  {$ENDIF}
+  {$IFDEF ENABLE_GFX}
+    g_gfx,
+  {$ENDIF}
+  {$IFDEF ENABLE_GIBS}
+    g_gibs,
+  {$ENDIF}
+  {$IFDEF ENABLE_SHELLS}
+    g_shells,
+  {$ENDIF}
+  {$IFDEF ENABLE_CORPSES}
+    g_corpses,
+  {$ENDIF}
+  e_input, g_game, g_player, g_items,
+  SysUtils, g_basic, g_options, Math, e_res,
+  g_language, g_net, g_netmsg, e_log, conbuf, g_weapons,
   Keyboard;
 
 const
@@ -154,6 +172,7 @@ var
     rep: Boolean;
     down, up: SSArray;
   end;
+
   menu_toggled: BOOLEAN; (* hack for menu controls *)
   ConsoleStdIn: Boolean;
 
@@ -162,7 +181,9 @@ begin
   gChatShow := False;
   gConsoleShow := not gConsoleShow;
   InputReady := False;
-  g_Touch_ShowKeyboard(gConsoleShow or gChatShow);
+  {$IFDEF ENABLE_TOUCH}
+    sys_ShowKeyboard(gConsoleShow or gChatShow);
+  {$ENDIF}
 end;
 
 procedure g_Console_Chat_Switch (Team: Boolean = False);
@@ -174,7 +195,9 @@ begin
   InputReady := False;
   Line := '';
   CPos := 1;
-  g_Touch_ShowKeyboard(gConsoleShow or gChatShow);
+  {$IFDEF ENABLE_TOUCH}
+    sys_ShowKeyboard(gConsoleShow or gChatShow);
+  {$ENDIF}
 end;
 
 // poor man's floating literal parser; i'm sorry, but `StrToFloat()` sux cocks
@@ -868,10 +891,12 @@ begin
   'unbindall':
     for i := 0 to e_MaxInputKeys - 1 do
       g_Console_BindKey(i, '');
+{$IFDEF ENABLE_TOUCH}
   'showkeyboard':
-    g_Touch_ShowKeyboard(True);
+    sys_ShowKeyboard(True);
   'hidekeyboard':
-    g_Touch_ShowKeyboard(False);
+    sys_ShowKeyboard(False);
+{$ENDIF}
   'togglemenu':
     begin
       if gConsoleShow then
@@ -879,7 +904,9 @@ begin
       else if gChatShow then
         g_Console_Chat_Switch
       else
+      begin
         KeyPress(VK_ESCAPE);
+      end;
       menu_toggled := True
     end;
   'toggleconsole':
@@ -1022,13 +1049,10 @@ begin
   AddCommand('version', ConsoleCommands);
 
   AddCommand('d_window', DebugCommands);
-  AddCommand('d_sounds', DebugCommands);
-  AddCommand('d_frames', DebugCommands);
   AddCommand('d_winmsg', DebugCommands);
   AddCommand('d_monoff', DebugCommands);
   AddCommand('d_botoff', DebugCommands);
   AddCommand('d_monster', DebugCommands);
-  AddCommand('d_health', DebugCommands);
   AddCommand('d_player', DebugCommands);
   AddCommand('d_joy', DebugCommands);
   AddCommand('d_mem', DebugCommands);
@@ -1598,12 +1622,6 @@ begin
 
   //SetLength(ConsoleHistory, Length(ConsoleHistory)+1);
   //ConsoleHistory[High(ConsoleHistory)] := L;
-
-  (*
-{$IFDEF HEADLESS}
-  e_WriteLog('CON: ' + L, MSG_NOTIFY);
-{$ENDIF}
-  *)
 end;
 
 
@@ -1842,15 +1860,23 @@ begin
 end;
 
 function BindsAllowed (key: Integer): Boolean;
+  var grab, active: Boolean;
 begin
   Result := False;
-  if (not g_GUIGrabInput) and (key >= 0) and (key < e_MaxInputKeys) and ((gInputBinds[key].down <> nil) or (gInputBinds[key].up <> nil)) then
+  {$IFDEF DISABLE_MENU}
+    grab := False;
+    active := False;
+  {$ELSE}
+    grab := g_GUIGrabInput;
+    active := g_ActiveWindow <> nil;
+  {$ENDIF}
+  if (not grab) and (key >= 0) and (key < e_MaxInputKeys) and ((gInputBinds[key].down <> nil) or (gInputBinds[key].up <> nil)) then
   begin
     if gChatShow then
       Result := g_Console_MatchBind(key, 'togglemenu') or
                 g_Console_MatchBind(key, 'showkeyboard') or
                 g_Console_MatchBind(key, 'hidekeyboard')
-    else if gConsoleShow or (g_ActiveWindow <> nil) or (gGameSettings.GameType = GT_NONE) then
+    else if gConsoleShow or active or (gGameSettings.GameType = GT_NONE) then
       Result := g_Console_MatchBind(key, 'togglemenu') or
                 g_Console_MatchBind(key, 'toggleconsole') or
                 g_Console_MatchBind(key, 'showkeyboard') or
@@ -1878,9 +1904,14 @@ begin
 end;
 
 procedure g_Console_ProcessBindRepeat (key: Integer);
-  var i: Integer;
+  var i: Integer; active: Boolean;
 begin
-  if gConsoleShow or gChatShow or (g_ActiveWindow <> nil) then
+  {$IFDEF DISABLE_MENU}
+    active := False;
+  {$ELSE}
+    active := g_ActiveWindow <> nil;
+  {$ENDIF}
+  if gConsoleShow or gChatShow or active then
   begin
     KeyPress(key); // key repeat in menus and shit
     Exit;
@@ -2056,10 +2087,18 @@ begin
   WriteLn(f, 'sv_public ', IfThen(NetUseMaster, 1, 0));
 
   // game settings
-  WriteLn(f, 'g_max_particles ', g_GFX_GetMax());
-  WriteLn(f, 'g_max_shells ', g_Shells_GetMax());
-  WriteLn(f, 'g_max_gibs ', g_Gibs_GetMax());
-  WriteLn(f, 'g_max_corpses ', g_Corpses_GetMax());
+  {$IFDEF ENABLE_GFX}
+    WriteLn(f, 'g_max_particles ', g_GFX_GetMax());
+  {$ENDIF}
+  {$IFDEF ENABLE_SHELLS}
+    WriteLn(f, 'g_max_shells ', g_Shells_GetMax());
+  {$ENDIF}
+  {$IFDEF ENABLE_GIBS}
+    WriteLn(f, 'g_max_gibs ', g_Gibs_GetMax());
+  {$ENDIF}
+  {$IFDEF ENABLE_CORPSES}
+    WriteLn(f, 'g_max_corpses ', g_Corpses_GetMax());
+  {$ENDIF}
   WriteLn(f, 'g_force_model ', g_Force_Model_Get());
   WriteLn(f, 'g_force_model_name ', g_Forced_Model_GetName());
   WriteLn(f, 'sv_intertime ', gDefInterTime);