summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--source/ItemGrid.cpp7
-rw-r--r--source/ItemGrid.h2
2 files changed, 6 insertions, 3 deletions
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;