Added ItemPlaceCount in SlotArea
Thanks to Howaner for helping
This commit is contained in:
@@ -135,6 +135,12 @@ void cSlotArea::Clicked(cPlayer & a_Player, int a_SlotNum, eClickAction a_ClickA
|
||||
cItem tmp(DraggingItem);
|
||||
DraggingItem = Slot;
|
||||
Slot = tmp;
|
||||
int ItemPlaceCount = GetItemPlaceCount(Slot);
|
||||
if (Slot.m_ItemCount > ItemPlaceCount)
|
||||
{
|
||||
DraggingItem.m_ItemCount += Slot.m_ItemCount - ItemPlaceCount;
|
||||
Slot.m_ItemCount = ItemPlaceCount;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -147,6 +153,13 @@ void cSlotArea::Clicked(cPlayer & a_Player, int a_SlotNum, eClickAction a_ClickA
|
||||
FreeSlots = 0;
|
||||
}
|
||||
int Filling = (FreeSlots > DraggingItem.m_ItemCount) ? DraggingItem.m_ItemCount : FreeSlots;
|
||||
|
||||
int ItemPlaceCount = GetItemPlaceCount(DraggingItem);
|
||||
if (Filling > ItemPlaceCount)
|
||||
{
|
||||
Filling = ItemPlaceCount;
|
||||
}
|
||||
|
||||
Slot.m_ItemCount += (char)Filling;
|
||||
DraggingItem.m_ItemCount -= (char)Filling;
|
||||
if (DraggingItem.m_ItemCount <= 0)
|
||||
@@ -315,6 +328,16 @@ bool cSlotArea::CollectItemsToHand(cItem & a_Dragging, cPlayer & a_Player, bool
|
||||
|
||||
|
||||
|
||||
int cSlotArea::GetItemPlaceCount(cItem & a_Item)
|
||||
{
|
||||
cItemHandler * Handler = ItemHandler(a_Item.m_ItemType);
|
||||
return Handler->GetMaxStackSize();
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// cSlotAreaChest:
|
||||
|
||||
@@ -718,6 +741,15 @@ void cSlotAreaEnchanting::ShiftClickedSlot(cPlayer & a_Player)
|
||||
|
||||
|
||||
|
||||
int cSlotAreaEnchanting::GetItemPlaceCount(cItem & a_Item)
|
||||
{
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// cSlotAreaEnderChest:
|
||||
|
||||
|
||||
Reference in New Issue
Block a user