1
0
Fork 0
mirror of https://github.com/luanti-org/luanti.git synced 2025-06-27 16:36:03 +00:00

Inventory: Fix wrong stack size behaviour and item loss (#6039)

Also fix itemFits and remove constness-nonsense
This commit is contained in:
SmallJoker 2017-06-25 11:39:39 +02:00 committed by GitHub
parent cad10ce3b7
commit c08cc0533f
4 changed files with 8 additions and 13 deletions

View file

@ -254,11 +254,8 @@ std::string ItemStack::getItemString() const
}
ItemStack ItemStack::addItem(const ItemStack &newitem_,
IItemDefManager *itemdef)
ItemStack ItemStack::addItem(ItemStack newitem, IItemDefManager *itemdef)
{
ItemStack newitem = newitem_;
// If the item is empty or the position invalid, bail out
if(newitem.empty())
{
@ -267,7 +264,7 @@ ItemStack ItemStack::addItem(const ItemStack &newitem_,
// If this is an empty item, it's an easy job.
else if(empty())
{
const u16 stackMax = getStackMax(itemdef);
const u16 stackMax = newitem.getStackMax(itemdef);
*this = newitem;
@ -303,11 +300,10 @@ ItemStack ItemStack::addItem(const ItemStack &newitem_,
return newitem;
}
bool ItemStack::itemFits(const ItemStack &newitem_,
bool ItemStack::itemFits(ItemStack newitem,
ItemStack *restitem,
IItemDefManager *itemdef) const
{
ItemStack newitem = newitem_;
// If the item is empty or the position invalid, bail out
if(newitem.empty())
@ -317,7 +313,7 @@ bool ItemStack::itemFits(const ItemStack &newitem_,
// If this is an empty item, it's an easy job.
else if(empty())
{
const u16 stackMax = getStackMax(itemdef);
const u16 stackMax = newitem.getStackMax(itemdef);
// If the item fits fully, delete it
if (newitem.count <= stackMax) {