Skip to content
Snippets Groups Projects
Commit 0cea1492 authored by dg's avatar dg
Browse files

Can drop parts of a stack

git-svn-id: http://svn.net-core.org/repos/t-engine4@6125 51575b47-30f0-44d4-a5cc-537603b46e54
parent 6feafdf0
No related branches found
No related tags found
No related merge requests found
......@@ -953,7 +953,7 @@ function _M:hotkeyInventory(name)
end
end
function _M:doDrop(inven, item, on_done)
function _M:doDrop(inven, item, on_done, nb)
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
......@@ -967,7 +967,11 @@ function _M:doDrop(inven, item, on_done)
end, "Cancel", "Destroy")
return
end
self:dropFloor(inven, item, true, true)
if nb == nil or nb >= self:getInven(inven)[item]:getNumber() then
self:dropFloor(inven, item, true, true)
else
for i = 1, nb do self:dropFloor(inven, item, true) end
end
self:sortInven(inven)
self:useEnergy()
self.changed = true
......
......@@ -22,6 +22,7 @@ require "engine.ui.Dialog"
local List = require "engine.ui.List"
local Savefile = require "engine.Savefile"
local Map = require "engine.Map"
local GetQuantity = require "engine.dialogs.GetQuantity"
local PartySendItem = require "mod.dialogs.PartySendItem"
module(..., package.seeall, class.inherit(engine.ui.Dialog))
......@@ -72,7 +73,14 @@ function _M:use(item)
self.object:identify(true)
self.onuse(self.inven, self.item, self.object, false)
elseif act == "drop" then
self.actor:doDrop(self.inven, self.item, function() self.onuse(self.inven, self.item, self.object, false) end)
if self.object:getNumber() > 1 then
game:registerDialog(GetQuantity.new("Drop how many?", "1 to "..self.object:getNumber(), self.object:getNumber(), self.object:getNumber(), function(qty)
qty = util.bound(qty, 1, self.object:getNumber())
self.actor:doDrop(self.inven, self.item, function() self.onuse(self.inven, self.item, self.object, false) end, qty)
end, 1))
else
self.actor:doDrop(self.inven, self.item, function() self.onuse(self.inven, self.item, self.object, false) end)
end
elseif act == "wear" then
self.actor:doWear(self.inven, self.item, self.object)
self.onuse(self.inven, self.item, self.object, false)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment