summary | shortlog | log | commit | commitdiff | tree
raw | patch | inline | side by side (parent: e2b934c)
raw | patch | inline | side by side (parent: e2b934c)
author | DeaDDooMER <deaddoomer@deadsoftware.ru> | |
Tue, 7 Feb 2023 15:10:55 +0000 (18:10 +0300) | ||
committer | DeaDDooMER <deaddoomer@deadsoftware.ru> | |
Tue, 7 Feb 2023 15:10:55 +0000 (18:10 +0300) |
src/game/g_console.pas | patch | blob | history | |
src/game/g_gui.pas | patch | blob | history |
diff --git a/src/game/g_console.pas b/src/game/g_console.pas
index 64b08642029b320c93a0377ae8a56526b94eb821..b2194ba719e6e5127995bd8dc9453628556a1356 100644 (file)
--- a/src/game/g_console.pas
+++ b/src/game/g_console.pas
i := 0;
while (n >= 1) and (i < e_MaxInputKeys) do
begin
- if g_Console_MatchBind(i, down, up) then
+ if (i < VK_FIRSTKEY) or (i > VK_LASTKEY) then (* never show virtual keys in gui *)
begin
- result := i;
- dec(n)
+ if g_Console_MatchBind(i, down, up) then
+ begin
+ result := i;
+ dec(n)
+ end;
end;
inc(i)
end;
diff --git a/src/game/g_gui.pas b/src/game/g_gui.pas
index 3181e6969102e55d77b1be621b7e46ab32158a79..415d7efebe416edef48d18c1868876c1c9885d72 100644 (file)
--- a/src/game/g_gui.pas
+++ b/src/game/g_gui.pas
with Msg do
case Msg of
WM_KEYDOWN:
- case wParam of
- VK_ESCAPE:
- begin
- if FIsQuery then actDefCtl();
- FIsQuery := False;
- end;
- IK_RETURN, IK_KPRETURN, VK_FIRE, VK_OPEN, JOY0_ATTACK, JOY1_ATTACK, JOY2_ATTACK, JOY3_ATTACK:
- begin
- if not FIsQuery then
- begin
- with FWindow do
- if FActiveControl <> Self then
- SetActive(Self);
-
- FIsQuery := True;
- end
- else if (wParam < VK_FIRSTKEY) and (wParam > VK_LASTKEY) then
- begin
- // FKey := IK_ENTER; // <Enter>
- FKey := wParam;
- FIsQuery := False;
- actDefCtl();
- end;
- end;
- IK_BACKSPACE: // clear keybinding if we aren't waiting for a key
- begin
- if not FIsQuery then
+ if not FIsQuery then
+ begin
+ case wParam of
+ IK_RETURN, IK_KPRETURN, VK_FIRE, VK_OPEN, JOY0_ATTACK, JOY1_ATTACK, JOY2_ATTACK, JOY3_ATTACK:
+ begin
+ with FWindow do
+ if FActiveControl <> Self then
+ SetActive(Self);
+ FIsQuery := True;
+ end;
+ IK_BACKSPACE: // clear keybinding if we aren't waiting for a key
begin
FKey := 0;
actDefCtl();
end;
- end;
- end;
-
- MESSAGE_DIKEY:
+ else
+ FIsQuery := False;
+ actDefCtl();
+ end;
+ end
+ else
begin
- if not FIsQuery and (wParam = IK_BACKSPACE) then
- begin
- FKey := 0;
+ case wParam of
+ VK_FIRSTKEY..VK_LASTKEY: // do not allow to bind virtual keys
+ begin
+ FIsQuery := False;
+ actDefCtl();
+ end;
+ else
+ if e_KeyNames[wParam] <> '' then
+ FKey := wParam;
+ FIsQuery := False;
actDefCtl();
end
- else if FIsQuery then
- begin
- case wParam of
- IK_ENTER, IK_KPRETURN, VK_FIRSTKEY..VK_LASTKEY (*, JOY0_ATTACK, JOY1_ATTACK, JOY2_ATTACK, JOY3_ATTACK*): // Not <Enter
- else
- if e_KeyNames[wParam] <> '' then
- FKey := wParam;
- FIsQuery := False;
- actDefCtl();
- end
- end;
end;
end;
with Msg do
case Msg of
WM_KEYDOWN:
- case wParam of
- VK_ESCAPE:
- begin
- if FIsQuery then actDefCtl();
- FIsQuery := False;
- end;
- IK_RETURN, IK_KPRETURN, VK_FIRE, VK_OPEN, JOY0_ATTACK, JOY1_ATTACK, JOY2_ATTACK, JOY3_ATTACK:
- begin
- if not FIsQuery then
- begin
- with FWindow do
- if FActiveControl <> Self then
- SetActive(Self);
-
- FIsQuery := True;
- end
- else if (wParam < VK_FIRSTKEY) and (wParam > VK_LASTKEY) then
- begin
- // if (FKeyIdx = 0) then FKey0 := IK_ENTER else FKey1 := IK_ENTER; // <Enter>
- if (FKeyIdx = 0) then FKey0 := wParam else FKey1 := wParam;
- FIsQuery := False;
- actDefCtl();
- end;
- end;
- IK_BACKSPACE: // clear keybinding if we aren't waiting for a key
- begin
- if not FIsQuery then
+ if not FIsQuery then
+ begin
+ case wParam of
+ IK_RETURN, IK_KPRETURN, VK_FIRE, VK_OPEN, JOY0_ATTACK, JOY1_ATTACK, JOY2_ATTACK, JOY3_ATTACK:
+ begin
+ with FWindow do
+ if FActiveControl <> Self then
+ SetActive(Self);
+ FIsQuery := True;
+ end;
+ IK_BACKSPACE: // clear keybinding if we aren't waiting for a key
begin
if (FKeyIdx = 0) then FKey0 := 0 else FKey1 := 0;
actDefCtl();
end;
- end;
- IK_LEFT, IK_KPLEFT, VK_LEFT, JOY0_LEFT, JOY1_LEFT, JOY2_LEFT, JOY3_LEFT:
- if not FIsQuery then
- begin
- FKeyIdx := 0;
- actDefCtl();
- end;
- IK_RIGHT, IK_KPRIGHT, VK_RIGHT, JOY0_RIGHT, JOY1_RIGHT, JOY2_RIGHT, JOY3_RIGHT:
- if not FIsQuery then
- begin
- FKeyIdx := 1;
- actDefCtl();
- end;
- end;
-
- MESSAGE_DIKEY:
- begin
- if not FIsQuery and (wParam = IK_BACKSPACE) then
- begin
- if (FKeyIdx = 0) then FKey0 := 0 else FKey1 := 0;
- actDefCtl();
- end
- else if FIsQuery then
- begin
- case wParam of
- IK_ENTER, IK_KPRETURN, VK_FIRSTKEY..VK_LASTKEY (*, JOY0_ATTACK, JOY1_ATTACK, JOY2_ATTACK, JOY3_ATTACK*): // Not <Enter
- else
- if e_KeyNames[wParam] <> '' then
+ IK_LEFT, IK_KPLEFT, VK_LEFT, JOY0_LEFT, JOY1_LEFT, JOY2_LEFT, JOY3_LEFT:
begin
- if (FKeyIdx = 0) then FKey0 := wParam else FKey1 := wParam;
+ FKeyIdx := 0;
+ actDefCtl();
+ end;
+ IK_RIGHT, IK_KPRIGHT, VK_RIGHT, JOY0_RIGHT, JOY1_RIGHT, JOY2_RIGHT, JOY3_RIGHT:
+ begin
+ FKeyIdx := 1;
+ actDefCtl();
end;
- FIsQuery := False;
- actDefCtl()
- end
+ else
+ FIsQuery := False;
+ actDefCtl();
end;
+ end
+ else
+ begin
+ case wParam of
+ VK_FIRSTKEY..VK_LASTKEY: // do not allow to bind virtual keys
+ begin
+ FIsQuery := False;
+ actDefCtl();
+ end;
+ else
+ if e_KeyNames[wParam] <> '' then
+ begin
+ if (FKeyIdx = 0) then FKey0 := wParam else FKey1 := wParam;
+ end;
+ FIsQuery := False;
+ actDefCtl()
+ end
end;
end;