From c8e91c66a67fd23f303cd7018eefd4a1924bb670 Mon Sep 17 00:00:00 2001 From: "p.kosyh" Date: Wed, 23 Jun 2010 06:05:25 +0000 Subject: [PATCH] fixes --- stead/goto.lua | 2 +- stead/object.lua | 15 ++++++++++++++- stead/stead.lua | 6 +++--- 3 files changed, 18 insertions(+), 5 deletions(-) diff --git a/stead/goto.lua b/stead/goto.lua index 381135c..e4632ce 100644 --- a/stead/goto.lua +++ b/stead/goto.lua @@ -91,7 +91,7 @@ end go = hook(go, function(f, ...) local r,v = f(unpack(arg)) - if type(r) == 'string' then + if type(r) == 'string' and cctx() then pr (r) end if stead.in_life_call then diff --git a/stead/object.lua b/stead/object.lua index f81208f..2f56ede 100644 --- a/stead/object.lua +++ b/stead/object.lua @@ -64,21 +64,34 @@ function vobj_used(self, ...) return call(ref(r),'used', self.nam, unpack(arg)); end +function vobj_use(self, ...) + local o, r = here():srch(self.nam); + return call(ref(r),'use', self.nam, unpack(arg)); +end + function vobj(name, dsc, w) return obj{ nam = tostring(name), + vobject_type = true, dsc = dsc, where = deref(w), act = vobj_act, used = vobj_used, + use = vobj_use, save = vobj_save }; end function vway(name, dsc, w) -- o.object_type = true; return obj{ nam = tostring(name), + vobject_type = true, dsc = dsc, act = vobj_act, where = deref(w), - used = vobj_used, + used = vobj_used, + use = vobj_use, save = vobj_save }; end + +function isVobject(v) + return (type(v) == 'table') and (v.vobject_type) +end diff --git a/stead/stead.lua b/stead/stead.lua index 2ad8e3f..e8e44d0 100644 --- a/stead/stead.lua +++ b/stead/stead.lua @@ -683,7 +683,7 @@ function call_bool(v, n, ...) end if type(v[n]) == 'function' then - callpush(v) + callpush(v, unpack(arg)) local r = v[n](v, unpack(arg)); callpop(); return r; @@ -1622,7 +1622,7 @@ function isForcedsc(v) if r then return true end - g = call_bool(game, 'forcedsc'); + g = call_bool(game, 'forcedsc', v); return g and r ~= false end @@ -1632,7 +1632,7 @@ function isSceneUse(v) if o then return true end - g = call_bool(game, 'scene_use'); + g = call_bool(game, 'scene_use', v); return g and o ~= false end