diff --git a/src/game/g_console.pas b/src/game/g_console.pas
index b62a7e186c920d98b873e8c6eaebcd6f26d0292c..3bceba1c742bcdf4a8fbb877e38a1ebe170a9a5f 100644 (file)
--- a/src/game/g_console.pas
+++ b/src/game/g_console.pas
procedure g_Console_Chat_Switch (team: Boolean=false);
-procedure conRegVar (const conname: AnsiString; pvar: PBoolean; const ahelp: AnsiString; const amsg: AnsiString; acheat: Boolean=false); overload;
-procedure conRegVar (const conname: AnsiString; pvar: PSingle; amin, amax: Single; const ahelp: AnsiString; const amsg: AnsiString; acheat: Boolean=false); overload;
+procedure conRegVar (const conname: AnsiString; pvar: PBoolean; const ahelp: AnsiString; const amsg: AnsiString; acheat: Boolean=false; ahidden: Boolean=false); overload;
+procedure conRegVar (const conname: AnsiString; pvar: PSingle; amin, amax: Single; const ahelp: AnsiString; const amsg: AnsiString; acheat: Boolean=false; ahidden: Boolean=false); overload;
// poor man's floating literal parser; i'm sorry, but `StrToFloat()` sux cocks
function conParseFloat (var res: Single; const s: AnsiString): Boolean;
1: if not me.cheat or conIsCheatsEnabled then flag := true else begin conwriteln('not available'); exit; end;
666: if not me.cheat or conIsCheatsEnabled then flag := not flag else begin conwriteln('not available'); exit; end;
end;
- if flag then conwritefln('%s: tan', [msg]) else conwritefln('%s: ona', [msg]);
+ if (Length(msg) = 0) then msg := p[0] else msg += ':';
+ if flag then conwritefln('%s tan', [msg]) else conwritefln('%s ona', [msg]);
end;
end;
begin
end;
-procedure conRegVar (const conname: AnsiString; pvar: PBoolean; const ahelp: AnsiString; const amsg: AnsiString; acheat: Boolean=false); overload;
+procedure conRegVar (const conname: AnsiString; pvar: PBoolean; const ahelp: AnsiString; const amsg: AnsiString; acheat: Boolean=false; ahidden: Boolean=false); overload;
var
f: Integer;
cp: PCommand;
cp.proc := nil;
cp.procEx := boolVarHandler;
cp.help := ahelp;
- cp.hidden := false;
+ cp.hidden := ahidden;
cp.ptr := pvar;
cp.msg := amsg;
cp.cheat := acheat;
begin
if (Length(p) > 2) then
begin
- conwritefln('too many arguments to ''%s''', [p[0]]);
+ conwritefln('too many arguments to ''%s''', [me.cmd]);
exit;
end;
pv := PVarSingle(me.ptr);
begin
if not conParseFloat(nv, p[1]) then
begin
- conwritefln('%s: ''%s'' doesn''t look like a floating number', [p[0], p[1]]);
+ conwritefln('%s: ''%s'' doesn''t look like a floating number', [me.cmd, p[1]]);
exit;
end;
if (nv < pv.min) then nv := pv.min;
end;
end;
msg := me.msg;
- if (Length(msg) = 0) then msg := p[0] else msg += ':';
+ if (Length(msg) = 0) then msg := me.cmd else msg += ':';
conwritefln('%s %s', [msg, pv.val^]);
end;
-procedure conRegVar (const conname: AnsiString; pvar: PSingle; amin, amax: Single; const ahelp: AnsiString; const amsg: AnsiString; acheat: Boolean=false); overload;
+procedure conRegVar (const conname: AnsiString; pvar: PSingle; amin, amax: Single; const ahelp: AnsiString; const amsg: AnsiString; acheat: Boolean=false; ahidden: Boolean=false); overload;
var
f: Integer;
cp: PCommand;
cp.proc := nil;
cp.procEx := singleVarHandler;
cp.help := ahelp;
- cp.hidden := false;
+ cp.hidden := ahidden;
cp.ptr := pv;
cp.msg := amsg;
cp.cheat := acheat;
g_Console_Add('');
for i := 0 to High(commands) do
begin
- if not commands[i].hidden then
+ // hidden commands are hidden when cheats aren't enabled
+ if commands[i].hidden and not conIsCheatsEnabled then continue;
+ if (Length(commands[i].help) > 0) then
begin
- if (Length(commands[i].help) > 0) then
- begin
- g_Console_Add(' '+commands[i].cmd+' -- '+commands[i].help);
- end
- else
- begin
- g_Console_Add(' '+commands[i].cmd);
- end;
+ g_Console_Add(' '+commands[i].cmd+' -- '+commands[i].help);
+ end
+ else
+ begin
+ g_Console_Add(' '+commands[i].cmd);
end;
end;
exit;
ll := Copy(ll, 0, Length(ll)-1);
for i := 0 to High(commands) do
begin
- if commands[i].hidden then continue;
+ // hidden commands are hidden when cheats aren't enabled
+ if commands[i].hidden and not conIsCheatsEnabled then continue;
if (commands[i].cmd = ll) then
begin
if (Length(commands[i].help) > 0) then
tused := 0;
for i := 0 to High(commands) do
begin
- if commands[i].hidden then continue;
+ // hidden commands are hidden when cheats aren't enabled
+ if commands[i].hidden and not conIsCheatsEnabled then continue;
cmd := commands[i].cmd;
if (Length(cmd) >= Length(ll)) and (ll = Copy(cmd, 0, Length(ll))) then
begin