From 86de3d98a2fe4eb9ae4f9e97178437088a01e5a6 Mon Sep 17 00:00:00 2001 From: NotAdam Date: Sat, 25 Aug 2018 00:37:21 +1000 Subject: [PATCH] correctly update items and select slot --- src/servers/sapphire_zone/Actor/PlayerInventory.cpp | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/servers/sapphire_zone/Actor/PlayerInventory.cpp b/src/servers/sapphire_zone/Actor/PlayerInventory.cpp index 8013f5f4..2eb5d6f4 100644 --- a/src/servers/sapphire_zone/Actor/PlayerInventory.cpp +++ b/src/servers/sapphire_zone/Actor/PlayerInventory.cpp @@ -536,6 +536,7 @@ Core::ItemPtr Core::Entity::Player::addItem( uint32_t catalogId, uint32_t quanti } item->setStackSize( newStackSize ); + writeItem( item ); auto slotUpdate = boost::make_shared< UpdateInventorySlotPacket >( getId(), slot, bag, *item ); queuePacket( slotUpdate ); @@ -544,14 +545,17 @@ Core::ItemPtr Core::Entity::Player::addItem( uint32_t catalogId, uint32_t quanti // return existing stack if we have no overflow - items fit into a preexisting stack if( quantity == 0 ) + { + queuePacket( boost::make_shared< ActorControlPacket143 >( getId(), ItemObtainIcon, catalogId, originalQuantity ) ); + return item; + } + } else if( !item && !foundFreeSlot ) { freeBagSlot = { bag, slot }; foundFreeSlot = true; - - break; } } }