diff --git a/Assets/PerfectWorld/Scripts/Managers/EC_Inventory.cs b/Assets/PerfectWorld/Scripts/Managers/EC_Inventory.cs
index 7d113a8309..cb5a5fde1c 100644
--- a/Assets/PerfectWorld/Scripts/Managers/EC_Inventory.cs
+++ b/Assets/PerfectWorld/Scripts/Managers/EC_Inventory.cs
@@ -159,6 +159,7 @@ namespace BrewMonster.Scripts.Managers
return true;
}
+ /// C++ CECInventory::MergeItem: walk slots, call CECIvtrItem::MergeItem, then new slot if needed.
public bool MergeItem(int tid, int iExpireDate, int iAmount, out int piLastSlot, out int piLastAmount)
{
piLastSlot = -1;
@@ -171,16 +172,8 @@ namespace BrewMonster.Scripts.Managers
var slotItem = m_aItems[i];
if (slotItem != null)
{
- if (slotItem.GetTemplateID() != tid)
- continue;
-
- int pileLimit = Math.Max(1, EC_IvtrItem.GetPileLimit(tid));
- int canAdd = Math.Max(0, pileLimit - Math.Max(0, slotItem.GetCount()));
- if (canAdd <= 0) continue;
-
- int add = Math.Min(canAdd, iAmount);
- slotItem.AddAmount(add);
- iAmount -= add;
+ int iNumMerge = slotItem.MergeItem(tid, iAmount);
+ iAmount -= iNumMerge;
if (iAmount == 0)
{
diff --git a/Assets/PerfectWorld/Scripts/Managers/EC_InventoryUI.cs b/Assets/PerfectWorld/Scripts/Managers/EC_InventoryUI.cs
index 8a3e9d53e7..d3d90979a5 100644
--- a/Assets/PerfectWorld/Scripts/Managers/EC_InventoryUI.cs
+++ b/Assets/PerfectWorld/Scripts/Managers/EC_InventoryUI.cs
@@ -22,10 +22,15 @@ namespace BrewMonster.Scripts.Managers
{
[Header("Pack Buttons (assign in Inspector)")]
- [SerializeField] private List