diff --git a/src/game/g_console.pas b/src/game/g_console.pas
index 21616113c92c9571a8a44e6e088c6203c81552c9..4866ea19371efc68ff3588db5eefb35ebcfb008a 100644 (file)
--- a/src/game/g_console.pas
+++ b/src/game/g_console.pas
'hidekeyboard':
g_Touch_ShowKeyboard(False);
'togglemenu':
+ if gConsoleShow then
+ begin
+ g_Console_Switch;
+ menu_toggled := True
+ end
+ else
begin
- // this is HACK
KeyPress(VK_ESCAPE);
menu_toggled := True
end;
end;
'togglechat':
begin
- g_Console_Chat_Switch;
+ if not gConsoleShow and (g_ActiveWindow = nil) then
+ g_Console_Chat_Switch;
gSkipFirstChar := not g_Console_Interactive()
end;
'toggleteamchat':
if gGameSettings.GameMode in [GM_TDM, GM_CTF] then
begin
- g_Console_Chat_Switch(True);
+ if not gConsoleShow and (g_ActiveWindow = nil) then
+ g_Console_Chat_Switch(True);
gSkipFirstChar := not g_Console_Interactive()
end;
end
if g_Console_MatchBind(K, 'togglemenu') then
begin
+ menu_toggled := True;
if gChatShow then
g_Console_Chat_Switch
else if gConsoleShow then
procedure g_Console_ProcessBind (key: Integer; down: Boolean);
var i: Integer;
begin
- if (not g_GUIGrabInput) and (not gChatShow) and (not gConsoleShow) and (key >= 0) and (key < e_MaxInputKeys) and ((gInputBinds[key].down <> nil) or (gInputBinds[key].up <> nil)) then
+ if (not g_GUIGrabInput) and (key >= 0) and (key < e_MaxInputKeys) and ((gInputBinds[key].down <> nil) or (gInputBinds[key].up <> nil)) then
begin
if down then
- for i := 0 to High(gInputBinds[key].down) do
- g_Console_Process(gInputBinds[key].down[i], True)
+ begin
+ if not gChatShow then
+ for i := 0 to High(gInputBinds[key].down) do
+ g_Console_Process(gInputBinds[key].down[i], True);
+ end
else
for i := 0 to High(gInputBinds[key].up) do
g_Console_Process(gInputBinds[key].up[i], True)
g_Console_BindKey(e_JoyButtonToKey(i, 10), 'togglemenu');
end;
- // HACK: VK_ESCAPE always used as togglemenu, so don't touch it!
- // VK_CONSOLE
+ g_Console_BindKey(VK_ESCAPE, 'togglemenu');
g_Console_BindKey(VK_LSTRAFE, '+moveleft; +strafe', '-moveleft; -strafe');
g_Console_BindKey(VK_RSTRAFE, '+moveright; +strafe', '-moveright; -strafe');
g_Console_BindKey(VK_LEFT, '+moveleft', '-moveleft');