DEADSOFTWARE

game: disable gibs for server
[d2df-sdl.git] / src / game / g_console.pas
index 02beb87ee76fc14509f2d5253f9c666a59d70972..9a8fd1188eb6c3269a040c4253d8000cac2082d4 100644 (file)
@@ -46,7 +46,8 @@ uses
     end;
 
 procedure g_Console_Init;
-procedure g_Console_SysInit;
+procedure g_Console_Initialize;
+procedure g_Console_Finalize;
 procedure g_Console_Update;
 procedure g_Console_Char (C: AnsiChar);
 procedure g_Console_Control (K: Word);
@@ -99,12 +100,23 @@ 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;
+  {$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}
+  g_textures, 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;
 
 const
-  autoexecScript = 'autoexec.cfg';
   configComment = 'generated by doom2d, do not modify';
 
 type
@@ -151,6 +163,7 @@ var
     rep: Boolean;
     down, up: SSArray;
   end;
+
   menu_toggled: BOOLEAN; (* hack for menu controls *)
 
 procedure g_Console_Switch;
@@ -158,7 +171,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);
@@ -170,7 +185,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
@@ -864,10 +881,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
@@ -875,7 +894,9 @@ begin
       else if gChatShow then
         g_Console_Chat_Switch
       else
+      begin
         KeyPress(VK_ESCAPE);
+      end;
       menu_toggled := True
     end;
   'toggleconsole':
@@ -944,7 +965,7 @@ begin
   end
 end;
 
-procedure g_Console_SysInit;
+procedure g_Console_Initialize;
   var a: Integer;
 begin
   gConsoleShow := False;
@@ -1158,10 +1179,17 @@ begin
 
   g_Console_ResetBinds;
   g_Console_ReadConfig(gConfigScript);
-  g_Console_ReadConfig(autoexecScript);
+//  g_Console_ReadConfig(autoexecScript);
+  g_Console_ReadConfig('autoexec.cfg');
+
   gParsingBinds := False;
 end;
 
+procedure g_Console_Finalize;
+begin
+
+end;
+
 procedure g_Console_Init;
 begin
   g_Console_Add(Format(_lc[I_CONSOLE_WELCOME], [GAME_VERSION]));
@@ -1683,7 +1711,7 @@ end;
 
 procedure g_Console_BindKey (key: Integer; down: AnsiString; up: AnsiString = '');
 begin
-  //e_LogWritefln('bind "%s" "%s" <%s>', [LowerCase(e_KeyNames[key]), cmd, key]);
+  // e_LogWritefln('bind "%s" "%s" "%s" <%s>', [LowerCase(e_KeyNames[key]), down, up, key]);
   ASSERT(key >= 0);
   ASSERT(key < e_MaxInputKeys);
   if key > 0 then
@@ -1749,15 +1777,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
@@ -1785,9 +1821,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;
@@ -1928,6 +1969,7 @@ procedure g_Console_WriteConfig (filename: String);
   end;
 
 begin
+  // e_LogWritefln('g_Console_WriteConfig: %s', [filename]);
   AssignFile(f, filename);
   Rewrite(f);
   WriteLn(f, '// ' + configComment);
@@ -1961,9 +2003,13 @@ begin
   WriteLn(f, 'sv_public ', IfThen(NetUseMaster, 1, 0));
 
   // game settings
-  WriteLn(f, 'g_max_particles ', g_GFX_GetMax());
+  {$IFDEF ENABLE_GFX}
+    WriteLn(f, 'g_max_particles ', g_GFX_GetMax());
+  {$ENDIF}
   WriteLn(f, 'g_max_shells ', g_Shells_GetMax());
-  WriteLn(f, 'g_max_gibs ', g_Gibs_GetMax());
+  {$IFDEF ENABLE_GIBS}
+    WriteLn(f, 'g_max_gibs ', g_Gibs_GetMax());
+  {$ENDIF}
   WriteLn(f, 'g_max_corpses ', g_Corpses_GetMax());
   WriteLn(f, 'sv_intertime ', gDefInterTime);