diff --git a/game/modules/tome/class/Player.lua b/game/modules/tome/class/Player.lua index ecaf6facc9ba6dae9e7674c9652ddfc3d790e98a..09fa5b32730c5accfce176fdc3bbb9b9093eb98a 100644 --- a/game/modules/tome/class/Player.lua +++ b/game/modules/tome/class/Player.lua @@ -633,7 +633,7 @@ function _M:showEquipInven(title, filter, action) end) end -function _M:doDrop(inven, item) +function _M:doDrop(inven, item, on_done) if game.zone.wilderness then Dialog:yesnoLongPopup("Warning", "You cannot drop items on the world map.\nIf you drop it, it will be lost forever.", 300, function(ret) -- The test is reversed because the buttons are reversed, to prevent mistakes @@ -642,6 +642,7 @@ function _M:doDrop(inven, item) game.logPlayer(self, "You destroy %s.", o:getName{do_colour=true, do_count=true}) self:sortInven() self:useEnergy() + if on_done then on_done() end end end, "Cancel", "Destroy") return @@ -650,6 +651,7 @@ function _M:doDrop(inven, item) self:sortInven(inven) self:useEnergy() self.changed = true + if on_done then on_done() end end function _M:doWear(inven, item, o) diff --git a/game/modules/tome/dialogs/UseItemDialog.lua b/game/modules/tome/dialogs/UseItemDialog.lua index c35a558587c9f1e08b186b9d63f8732f615cca99..70aeda86c1e472ce622212f1fcde61d2429b0e8c 100644 --- a/game/modules/tome/dialogs/UseItemDialog.lua +++ b/game/modules/tome/dialogs/UseItemDialog.lua @@ -60,13 +60,18 @@ function _M:use(item) local act = item.action local stop = false - if act == "use" then self.actor:playerUseItem(self.object, self.item, self.inven, self.onuse) stop = true - elseif act == "drop" then self.actor:doDrop(self.inven, self.item) - elseif act == "wear" then self.actor:doWear(self.inven, self.item, self.object) - elseif act == "takeoff" then self.actor:doTakeoff(self.inven, self.item, self.object) + if act == "use" then + self.actor:playerUseItem(self.object, self.item, self.inven, self.onuse) stop = true + self.onuse(self.inven, self.item, self.object, stop) + elseif act == "drop" then + self.actor:doDrop(self.inven, self.item, function() self.onuse(self.inven, self.item, self.object, stop) end) + elseif act == "wear" then + self.actor:doWear(self.inven, self.item, self.object) + self.onuse(self.inven, self.item, self.object, stop) + elseif act == "takeoff" then + self.actor:doTakeoff(self.inven, self.item, self.object) + self.onuse(self.inven, self.item, self.object, stop) end - - self.onuse(self.inven, self.item, self.object, stop) end function _M:generateList()