cmd cleanups
This commit is contained in:
parent
e21ae2bdbc
commit
d9ad51fc9b
|
@ -8,6 +8,32 @@ stead = {
|
||||||
cctx = { txt = nil, self = nil },
|
cctx = { txt = nil, self = nil },
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function stead.getcmd(str)
|
||||||
|
local a = {}
|
||||||
|
local n = 1
|
||||||
|
local cmd;
|
||||||
|
local i,k = stead.string.find(str,'[a-zA-Z0-9_]+', k);
|
||||||
|
if not i or not k then
|
||||||
|
cmd = str;
|
||||||
|
else
|
||||||
|
cmd = stead.string.sub(str, i, k);
|
||||||
|
end
|
||||||
|
if cmd == 'load' or cmd == 'save' then
|
||||||
|
a[1] = strip(stead.string.sub(str, k + 1));
|
||||||
|
return cmd, a
|
||||||
|
end
|
||||||
|
while i do
|
||||||
|
k = k + 1;
|
||||||
|
i,k = stead.string.find(str,'[^,]+', k);
|
||||||
|
if not i then
|
||||||
|
break
|
||||||
|
end
|
||||||
|
a[n] = strip(stead.string.sub(str, i, k));
|
||||||
|
n = n + 1;
|
||||||
|
end
|
||||||
|
return cmd, a
|
||||||
|
end
|
||||||
|
|
||||||
function cctx()
|
function cctx()
|
||||||
return stead.cctx[stead.call_top];
|
return stead.cctx[stead.call_top];
|
||||||
end
|
end
|
||||||
|
@ -1563,31 +1589,18 @@ iface = {
|
||||||
end
|
end
|
||||||
end,
|
end,
|
||||||
cmd = function(self, inp)
|
cmd = function(self, inp)
|
||||||
local r, v, vv, i, k, cmd;
|
local r, v, vv, l;
|
||||||
local scene = false;
|
|
||||||
local st = false;
|
|
||||||
local l;
|
|
||||||
i,k = stead.string.find(inp,'[a-zA-Z0-9_]+', k);
|
|
||||||
if not i or not k then
|
|
||||||
cmd = inp
|
|
||||||
else
|
|
||||||
cmd = stead.string.sub(inp, i, k);
|
|
||||||
end
|
|
||||||
local a = { };
|
|
||||||
local n = 1;
|
|
||||||
while i do
|
|
||||||
k = k + 1;
|
|
||||||
i,k = stead.string.find(inp,'[^,]+', k);
|
|
||||||
if not i then
|
|
||||||
break
|
|
||||||
end
|
|
||||||
a[n] = strip(stead.string.sub(inp, i, k));
|
|
||||||
n = n + 1;
|
|
||||||
end
|
|
||||||
v = false
|
v = false
|
||||||
|
local scene = false;
|
||||||
|
local st = false; -- changed state
|
||||||
|
local a = { };
|
||||||
|
local cmd;
|
||||||
|
|
||||||
|
cmd,a,n = stead.getcmd(inp);
|
||||||
-- me():tag();
|
-- me():tag();
|
||||||
local oldloc = here();
|
local oldloc = here();
|
||||||
local look = false;
|
local look = false;
|
||||||
|
|
||||||
if cmd == 'look' or cmd == '' then
|
if cmd == 'look' or cmd == '' then
|
||||||
r,v = me():look();
|
r,v = me():look();
|
||||||
st = true;
|
st = true;
|
||||||
|
@ -1621,7 +1634,7 @@ iface = {
|
||||||
return r;
|
return r;
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
r,v = me():action(strip(inp));
|
r,v = me():action(cmd, unpack(a));
|
||||||
st = true;
|
st = true;
|
||||||
end
|
end
|
||||||
-- here r is action result, v - ret code value
|
-- here r is action result, v - ret code value
|
||||||
|
|
Loading…
Reference in a new issue