DEADSOFTWARE

fixed cheat input
[d2df-sdl.git] / src / game / g_main.pas
index bb394f1d1b94761447c373d1b45335462118c574..df6bba16a9b77160b30f6af2a3be2c61e0f8eae7 100644 (file)
@@ -32,7 +32,7 @@ var
   MapsDir: string;
   ModelsDir: string;
   GameWAD: string;
-
+  gSkipFirstChar: Boolean; (* hack for console/chat input *)
 
 implementation
 
@@ -56,7 +56,7 @@ var
 procedure Main();
 var
   sdlflags: LongWord;
-{$IFNDEF HEADLESS}
+{$IF not DEFINED(HEADLESS) and DEFINED(ENABLE_HOLMES)}
   flexloaded: Boolean;
 {$ENDIF}
 begin
@@ -202,10 +202,12 @@ begin
   e_InitInput();
   g_Touch_Init;
 
+(*
   if (e_JoysticksAvailable > 0) then
     e_WriteLog('Input: Joysticks available.', TMsgType.Notify)
   else
     e_WriteLog('Input: No Joysticks.', TMsgType.Notify);
+*)
 
   if (not gNoSound) then
   begin
@@ -496,10 +498,19 @@ begin
 
     IK_BACKQUOTE, VK_CONSOLE: // <`/~/¨/¸>:
       begin
-        g_Console_Switch();
+        if not gChatShow then
+          g_Console_Switch()
       end;
 
-    IK_ESCAPE, VK_ESCAPE: // <Esc>:
+    IK_ESCAPE: // <Esc>:
+      begin
+        if gChatShow then
+          g_Console_Chat_Switch
+        else if gConsoleShow then
+          g_Console_Switch
+      end;
+
+    VK_ESCAPE: // <Esc>:
       begin
         if gChatShow then
         begin
@@ -514,7 +525,7 @@ begin
         else if (g_ActiveWindow <> nil) then
         begin
           Msg.Msg := WM_KEYDOWN;
-          Msg.WParam := IK_ESCAPE;
+          Msg.WParam := VK_ESCAPE;
           g_ActiveWindow.OnMessage(Msg);
           if (not g_Game_IsNet) and (g_ActiveWindow = nil) then g_Game_Pause(false); //Fn loves to do this
         end
@@ -588,11 +599,12 @@ var
   Msg: g_gui.TMessage;
   a: Integer;
 begin
-  if (not gChatShow) and ((C = '`') or (C = '~') or (C = '¸') or (C = '¨')) then Exit;
-
   if gConsoleShow or gChatShow then
   begin
-    g_Console_Char(C);
+    if gSkipFirstChar then
+      gSkipFirstChar := False
+    else
+      g_Console_Char(C)
   end
   else if (g_ActiveWindow <> nil) then
   begin