disp, go fixes

This commit is contained in:
p.kosyh 2010-07-12 07:28:09 +00:00
parent 46962390ff
commit 1056fc1ef1
2 changed files with 43 additions and 2 deletions

View file

@ -49,7 +49,8 @@ go = function (self, where, back, forceenter)
self.where = deref(where);
end
if not jump and (not back or forceenter) then
if not jump and (not back or forceenter or
not isDialog(ref(was)) or isDialog(ref(where))) then
v, r = call(ref(where), 'enter', ref(was));
if r == false then
self.where = was;
@ -149,7 +150,9 @@ iface.fmt = function(self, cmd, st, moved, r, av, objs, pv) -- st -- changed sta
if st then
av = txtem(av);
pv = txtem(pv);
r = txtem(r)
if not PLAYER_MOVED then
r = txtem(r)
end
if isForcedsc(here()) or NEED_SCENE then
l = here():scene();
end

View file

@ -164,6 +164,44 @@ function list_concat(self, other, pos)
end
end
function list_str(self)
local i, v, vv, o;
for i,o in opairs(self) do
o = ref(o);
if isObject(o) and not isDisabled(o) then
vv = call(o, 'disp');
if type(vv) ~= 'string' then
vv = call(o, 'nam');
end
vv = xref(vv, o);
v = stead.par(',', v, vv);
end
end
return v;
end
function obj_str(self)
local i, v, vv, o;
if not isObject(self) then
return
end
if isDisabled(self) then
return
end
for i,o in opairs(self.obj) do
o = ref(o);
if isObject(o) and not isDisabled(o) then
vv = call(o, 'disp');
if type(vv) ~= 'string' then
vv = call(o, 'nam');
end
vv = xref(vv, o);
v = stead.par(',', v, vv, obj_str(o));
end
end
return v;
end
function path(w, wh) -- search in way, disabled too
if not wh then
wh = here();