41 if (item->IsInWorld())
43 TC_LOG_FATAL(
"entities.player.items",
"Item {} (slot {}, bag slot {}) in bag {} (slot {}, bag slot {}, m_bagslot {}) is to be deleted but is still in world.",
44 item->GetEntry(), (
uint32)item->GetSlot(), (
uint32)item->GetBagSlot(),
46 item->RemoveFromWorld();
188 std::size_t sizePos = data->
wpos();
200 std::size_t sizePos = data->
wpos();
221 if (requestedObjectMask.IsAnySet())
226 if (itemMask.IsAnySet())
229 if (requestedContainerMask.IsAnySet())
233 std::size_t sizePos = buffer.
wpos();
238 m_objectData->WriteUpdate(buffer, requestedObjectMask,
true,
this, target);
241 m_itemData->WriteUpdate(buffer, itemMask,
true,
this, target);
244 m_containerData->WriteUpdate(buffer, requestedContainerMask,
true,
this, target);
298 std::stringstream sstr;
Item * GetItemInBag(Bag const *bag, uint8 slot)
SQLTransaction< CharacterDatabaseConnection > CharacterDatabaseTransaction
#define TC_LOG_FATAL(filterType__,...)
uint32 GetBagSize() const
void AddToWorld() override
void StoreItem(uint8 slot, Item *pItem, bool update)
void RemoveFromWorld() override
UF::UpdateField< UF::ContainerData, 0, TYPEID_CONTAINER > m_containerData
void SaveToDB(CharacterDatabaseTransaction trans) override
void BuildValuesUpdate(ByteBuffer *data, Player const *target) const override
void ClearUpdateMask(bool remove) override
void BuildValuesUpdateForPlayerWithMask(UpdateData *data, UF::ObjectData::Mask const &requestedObjectMask, UF::ItemData::Mask const &requestedItemMask, UF::ContainerData::Mask const &requestedContainerMask, Player const *target) const
void BuildCreateUpdateBlockForPlayer(UpdateData *data, Player *target) const override
void SetSlot(uint32 slot, ObjectGuid guid)
void SetBagSize(uint32 numSlots)
Item * GetItemByPos(uint8 slot) const
std::string GetDebugInfo() const override
void RemoveItem(uint8 slot, bool update)
void DeleteFromDB(CharacterDatabaseTransaction trans) override
bool Create(ObjectGuid::LowType guidlow, uint32 itemid, ItemContext context, Player const *owner) override
Item * m_bagslot[MAX_BAG_SIZE]
uint32 GetFreeSlots() const
uint8 GetSlotByItemGUID(ObjectGuid guid) const
bool LoadFromDB(ObjectGuid::LowType guid, ObjectGuid owner_guid, Field *fields, uint32 entry) override
void BuildValuesCreate(ByteBuffer *data, Player const *target) const override
void put(std::size_t pos, T value)
Class used to access individual fields of database query result.
std::string GetDebugInfo() const override
virtual void SaveToDB(CharacterDatabaseTransaction trans)
void SetContext(ItemContext context)
void SetCount(uint32 value)
void SetDurability(uint32 durability)
ItemTemplate const * GetTemplate() const
void ClearUpdateMask(bool remove) override
ObjectGuid GetOwnerGUID() const
void SetContainedIn(ObjectGuid guid)
virtual bool LoadFromDB(ObjectGuid::LowType guid, ObjectGuid ownerGuid, Field *fields, uint32 entry)
void SetOwnerGUID(ObjectGuid guid)
void SetContainer(Bag *container)
UF::UpdateFieldFlag GetUpdateFieldFlagsFor(Player const *target) const override
static void DeleteFromDB(CharacterDatabaseTransaction trans, ObjectGuid::LowType itemGuid)
UF::UpdateField< UF::ItemData, 0, TYPEID_ITEM > m_itemData
static ObjectGuid const Empty
ObjectGuid const & GetGUID() const
UF::UpdateField< UF::ObjectData, 0, TYPEID_OBJECT > m_objectData
virtual void BuildCreateUpdateBlockForPlayer(UpdateData *data, Player *target) const
void SetUpdateFieldValue(UF::UpdateFieldSetter< T > setter, typename UF::UpdateFieldSetter< T >::value_type value)
UF::UpdateFieldHolder m_values
void _Create(ObjectGuid const &guid)
ByteBuffer & PrepareValuesUpdateBuffer(UpdateData *data) const
virtual void AddToWorld()
virtual void RemoveFromWorld()
static ObjectGuid GetGUID(Object const *o)
void SetEntry(uint32 entry)
virtual void SetObjectScale(float scale)
void SendDirectMessage(WorldPacket const *data) const
Mask const & GetChangesMask() const
MutableFieldReference< T, false > ModifyValue(UpdateField< T, BlockBit, Bit >(Derived::*field))
void ClearChangesMask(UpdateField< T, BlockBit, Bit >(Derived::*field))
bool HasChanged(uint32 index) const
uint32 GetChangedObjectTypeMask() const
bool BuildPacket(WorldPacket *packet)
uint32 GetBlock(uint32 index) const
constexpr uint32 GetMapId() const
UF::ObjectData::Base ObjectMask
void operator()(Player const *player) const
UF::ContainerData::Base ContainerMask
UF::ItemData::Base ItemMask
void Initialize(ItemTemplate const *proto)
uint32 GetContainerSlots() const
UpdateField< uint32, 0, 11 > MaxDurability