diff --git a/source/ItemGrid.cpp b/source/ItemGrid.cpp index a977a9b6d..e9b86173e 100644 --- a/source/ItemGrid.cpp +++ b/source/ItemGrid.cpp @@ -213,7 +213,7 @@ void cItemGrid::Clear(void) -int cItemGrid::HowManyCanFit(const cItem & a_ItemStack) +int cItemGrid::HowManyCanFit(const cItem & a_ItemStack, bool a_AllowNewStacks) { char NumLeft = a_ItemStack.m_ItemCount; int MaxStack = ItemHandler(a_ItemStack.m_ItemType)->GetMaxStackSize(); @@ -221,7 +221,10 @@ int cItemGrid::HowManyCanFit(const cItem & a_ItemStack) { if (m_Slots[i].IsEmpty()) { - NumLeft -= MaxStack; + if (a_AllowNewStacks) + { + NumLeft -= MaxStack; + } } else if (m_Slots[i].IsStackableWith(a_ItemStack)) { diff --git a/source/ItemGrid.h b/source/ItemGrid.h index 9eba5b452..a4af523cf 100644 --- a/source/ItemGrid.h +++ b/source/ItemGrid.h @@ -72,7 +72,7 @@ public: void Clear(void); /// Returns number of items out of a_ItemStack that can fit in the storage - int HowManyCanFit(const cItem & a_ItemStack); + int HowManyCanFit(const cItem & a_ItemStack, bool a_AllowNewStacks = true); /** Adds as many items out of a_ItemStack as can fit. If a_AllowNewStacks is set to false, only existing stacks can be topped up;