summary | shortlog | log | commit | commitdiff | tree
raw | patch | inline | side by side (parent: 84fa2f8)
raw | patch | inline | side by side (parent: 84fa2f8)
author | DeaDDooMER <deaddoomer@deadsoftware.ru> | |
Sun, 7 Apr 2019 14:22:31 +0000 (17:22 +0300) | ||
committer | DeaDDooMER <deaddoomer@deadsoftware.ru> | |
Sun, 7 Apr 2019 14:22:31 +0000 (17:22 +0300) |
src/game/g_console.pas | patch | blob | history |
diff --git a/src/game/g_console.pas b/src/game/g_console.pas
index e3cc3b3efbafbfef3b53aa8c06e8bbcf6cae4e78..59174bf3b66b96ae71fbc637e92b984657e93662 100644 (file)
--- a/src/game/g_console.pas
+++ b/src/game/g_console.pas
pp^ := 0;
end;
+function GetCommandString (p: SSArray): AnsiString;
+ var i: Integer;
+begin
+ result := '';
+ if Length(p) >= 1 then
+ begin
+ result := p[0];
+ for i := 1 to High(p) do
+ result := result + '; ' + p[i]
+ end
+end;
+
procedure BindCommands (p: SSArray);
- var cmd, key, act: AnsiString; i, j: Integer;
+ var cmd, key: AnsiString; i: Integer;
begin
cmd := LowerCase(p[0]);
case cmd of
'bind':
- // bind <key> <down> [up]
- if Length(p) >= 3 then
+ // bind <key> [down [up]]
+ if Length(p) >= 2 then
begin
i := 0;
key := LowerCase(p[1]);
- if Length(p) = 4 then act := p[3] else act := '';
while (i < e_MaxInputKeys) and (key <> LowerCase(e_KeyNames[i])) do inc(i);
if i < e_MaxInputKeys then
- g_Console_BindKey(i, p[2], act)
+ begin
+ if Length(p) = 2 then
+ g_Console_Add('"' + e_KeyNames[i] + '" = "' + GetCommandString(gInputBinds[i].down) + '" "' + GetCommandString(gInputBinds[i].up) + '"')
+ else if Length(p) >= 4 then
+ g_Console_BindKey(i, p[2], p[3])
+ else
+ g_Console_BindKey(i, p[2], '')
+ end
end
else
g_Console_Add('bind <key> <down action> [up action]');
'bindlist':
for i := 0 to e_MaxInputKeys - 1 do
- begin
if (gInputBinds[i].down <> nil) or (gInputBinds[i].up <> nil) then
- begin
- act := e_KeyNames[i] + ' "';
- if (gInputBinds[i].down <> nil) then
- begin
- act := act + gInputBinds[i].down[0];
- for j := 1 to High(gInputBinds[i].down) - 1 do
- act := act + '; ' + gInputBinds[i].down[j];
- end;
- act := act + '" "';
- if (gInputBinds[i].up <> nil) then
- begin
- act := act + gInputBinds[i].up[0];
- for j := 1 to High(gInputBinds[i].up) do
- act := act + '; ' + gInputBinds[i].up[j];
- end;
- act := act + '"';
- g_Console_Add(act)
- end
- end;
+ g_Console_Add(e_KeyNames[i] + ' "' + GetCommandString(gInputBinds[i].down) + '" "' + GetCommandString(gInputBinds[i].up) + '"');
'unbind':
// unbind <key>
if Length(p) = 2 then
WriteLn(f, '// generated by doom2d, do not modify');
WriteLn(f, 'unbindall');
for i := 0 to e_MaxInputKeys - 1 do
- begin
if (Length(gInputBinds[i].down) > 0) or (Length(gInputBinds[i].up) > 0) then
- begin
- Write(f, 'bind ', e_KeyNames[i], ' "');
- if Length(gInputBinds[i].down) > 0 then
- begin
- Write(f, gInputBinds[i].down[0]);
- for j := 1 to High(gInputBinds[i].down) do
- Write(f, '; ', gInputBinds[i].down[j])
- end;
- Write(f, '"');
- if Length(gInputBinds[i].up) > 0 then
- begin
- Write(f, ' "', gInputBinds[i].up[0]);
- for j := 1 to High(gInputBinds[i].up) do
- Write(f, '; ', gInputBinds[i].up[j]);
- Write(f, '"')
- end;
- WriteLn(f)
- end
- end;
+ WriteLn(f, 'bind ', e_KeyNames[i], ' "', GetCommandString(gInputBinds[i].down), '" "', GetCommandString(gInputBinds[i].up), '"');
for i := 0 to High(commands) do
begin
if not commands[i].cheat then