diff --git a/src/game/g_console.pas b/src/game/g_console.pas
index 9db9e79273ebc64c28d7c789b1ac37a88fa58c55..20f7c8395ead0237e99d0a4f044176573021a570 100644 (file)
--- a/src/game/g_console.pas
+++ b/src/game/g_console.pas
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);
implementation
uses
- g_textures, g_main, 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}
+ {$IFNDEF HEADLESS}
+ g_touch,
+ {$ENDIF}
+ g_textures, e_input, g_game, g_gfx, 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
rep: Boolean;
down, up: SSArray;
end;
+
menu_toggled: BOOLEAN; (* hack for menu controls *)
procedure g_Console_Switch;
gChatShow := False;
gConsoleShow := not gConsoleShow;
InputReady := False;
- g_Touch_ShowKeyboard(gConsoleShow or gChatShow);
+ {$IFNDEF HEADLESS}
+ g_Touch_ShowKeyboard(gConsoleShow or gChatShow);
+ {$ENDIF}
end;
procedure g_Console_Chat_Switch (Team: Boolean = False);
InputReady := False;
Line := '';
CPos := 1;
- g_Touch_ShowKeyboard(gConsoleShow or gChatShow);
+ {$IFNDEF HEADLESS}
+ g_Touch_ShowKeyboard(gConsoleShow or gChatShow);
+ {$ENDIF}
end;
// poor man's floating literal parser; i'm sorry, but `StrToFloat()` sux cocks
'unbindall':
for i := 0 to e_MaxInputKeys - 1 do
g_Console_BindKey(i, '');
+{$IFNDEF HEADLESS}
'showkeyboard':
g_Touch_ShowKeyboard(True);
'hidekeyboard':
g_Touch_ShowKeyboard(False);
+{$ENDIF}
'togglemenu':
begin
if gConsoleShow then
else if gChatShow then
g_Console_Chat_Switch
else
+ begin
KeyPress(VK_ESCAPE);
+ end;
menu_toggled := True
end;
'toggleconsole':
end
end;
-procedure g_Console_SysInit;
+procedure g_Console_Initialize;
var a: Integer;
begin
gConsoleShow := False;
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]));
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
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
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;
end;
begin
+ // e_LogWritefln('g_Console_WriteConfig: %s', [filename]);
AssignFile(f, filename);
Rewrite(f);
WriteLn(f, '// ' + configComment);