scene_use bug
This commit is contained in:
parent
7c9ad19469
commit
6ab2bc8106
|
@ -1012,34 +1012,35 @@ end
|
||||||
|
|
||||||
function player_use(self, what, onwhat)
|
function player_use(self, what, onwhat)
|
||||||
local obj, obj2, v, vv, r;
|
local obj, obj2, v, vv, r;
|
||||||
local scene_use_mode
|
local scene_use_mode = false
|
||||||
obj = self:srch(what);
|
|
||||||
if not obj then
|
obj = self:srch(what); -- in inv?
|
||||||
obj = ref(self.where):srch(what);
|
if not obj then -- no
|
||||||
if not obj then
|
obj = ref(self.where):srch(what); -- in scene?
|
||||||
|
if not obj then -- no!
|
||||||
return game.err, false;
|
return game.err, false;
|
||||||
end
|
end
|
||||||
scene_use_mode = true
|
scene_use_mode = true -- scene_use_mode!
|
||||||
end
|
end
|
||||||
if onwhat == nil then
|
if onwhat == nil then -- only one?
|
||||||
if scene_use_mode then
|
if scene_use_mode then
|
||||||
return self:action(what);
|
return self:action(what); -- call act
|
||||||
else
|
else
|
||||||
v, r = call(ref(obj),'inv');
|
v, r = call(ref(obj),'inv'); -- call inv
|
||||||
end
|
end
|
||||||
if not v and r ~= true then
|
if not v and r ~= true then
|
||||||
v, r = call(game, 'inv', obj);
|
v, r = call(game, 'inv', obj);
|
||||||
end
|
end
|
||||||
return v, r;
|
return v, r;
|
||||||
end
|
end
|
||||||
obj2 = ref(self.where):srch(onwhat);
|
obj2 = ref(self.where):srch(onwhat); -- in scene?
|
||||||
if not obj2 then
|
if not obj2 then
|
||||||
obj2 = self:srch(onwhat);
|
obj2 = self:srch(onwhat); -- in inv?
|
||||||
end
|
end
|
||||||
if not obj2 or obj2 == obj then
|
if not obj2 or obj2 == obj then
|
||||||
return game.err, false;
|
return game.err, false;
|
||||||
end
|
end
|
||||||
if not use_mode or isSceneUse(obj) then
|
if not scene_use_mode or isSceneUse(ref(obj)) then
|
||||||
v, r = call(ref(obj), 'use', obj2);
|
v, r = call(ref(obj), 'use', obj2);
|
||||||
if r ~= false then
|
if r ~= false then
|
||||||
vv = call(ref(obj2), 'used', obj);
|
vv = call(ref(obj2), 'used', obj);
|
||||||
|
|
Reference in a new issue