74 bool needSave =
false;
125 return power->AzeritePowerID == azeritePowerId && power->Class == playerClass;
128 return (*azeritePowerItr)->Tier;
182 Player const* target,
bool ignoreNestedChangesMask)
const
186 if (requestedObjectMask.IsAnySet())
191 if (itemMask.IsAnySet())
194 if (requestedAzeriteEmpoweredItemMask.IsAnySet())
198 std::size_t sizePos = buffer.
wpos();
204 m_objectData->WriteUpdate(requestedObjectMask, buffer, target,
this, ignoreNestedChangesMask);
207 m_itemData->WriteUpdate(itemMask, buffer, target,
this, ignoreNestedChangesMask);
@ CHAR_INS_ITEM_INSTANCE_AZERITE_EMPOWERED
@ CHAR_DEL_ITEM_INSTANCE_AZERITE_EMPOWERED
@ CHAR_UPD_ITEM_INSTANCE_AZERITE_EMPOWERED
DB2Storage< AzeritePowerEntry > sAzeritePowerStore("AzeritePower.db2", &AzeritePowerLoadInfo::Instance)
#define MAX_AZERITE_EMPOWERED_TIER
@ CURVE_ID_AZERITE_EMPOWERED_ITEM_RESPEC_COST
SQLTransaction< CharacterDatabaseConnection > CharacterDatabaseTransaction
DatabaseWorkerPool< CharacterDatabaseConnection > CharacterDatabase
Accessor to the character database.
@ TYPEID_AZERITE_EMPOWERED_ITEM
constexpr uint64 MAX_MONEY_AMOUNT
int32 GetTierForAzeritePower(Classes playerClass, int32 azeritePowerId) const
void InitAzeritePowerData()
void BuildValuesUpdateForPlayerWithMask(UpdateData *data, UF::ObjectData::Mask const &requestedObjectMask, UF::ItemData::Mask const &requestedItemMask, UF::AzeriteEmpoweredItemData::Mask const &requestedAzeriteEmpoweredItemMask, Player const *target, bool ignoreNestedChangesMask) const
uint32 GetRequiredAzeriteLevelForTier(uint32 tier) const
UF::UpdateField< UF::AzeriteEmpoweredItemData, int32(WowCS::EntityFragment::CGObject), TYPEID_AZERITE_EMPOWERED_ITEM > m_azeriteEmpoweredItemData
void LoadAzeriteEmpoweredItemData(Player const *owner, AzeriteEmpoweredItemData &azeriteEmpoweredItem)
bool Create(ObjectGuid::LowType guidlow, uint32 itemId, ItemContext context, Player const *owner) override
void ClearSelectedAzeritePowers()
int64 GetRespecCost() const
static void DeleteFromDB(CharacterDatabaseTransaction trans, ObjectGuid::LowType itemGuid)
void BuildValuesCreate(UF::UpdateFieldFlag flags, ByteBuffer &data, Player const *target) const override
void SaveToDB(CharacterDatabaseTransaction trans) override
std::vector< AzeritePowerSetMemberEntry const * > const * m_azeritePowers
void SetSelectedAzeritePower(int32 tier, int32 azeritePowerId)
void BuildValuesUpdate(UF::UpdateFieldFlag flags, ByteBuffer &data, Player const *target) const override
void ClearValuesChangesMask() override
ObjectGuid const & GetGUID() const
void SetUpdateFieldValue(UF::UpdateFieldPrivateSetter< T > setter, typename UF::UpdateFieldPrivateSetter< T >::value_type value)
WowCS::EntityFragmentsHolder m_entityFragments
UF::UpdateFieldHolder m_values
ByteBuffer & PrepareValuesUpdateBuffer(UpdateData *data) const
void put(std::size_t pos, T value)
virtual void SaveToDB(CharacterDatabaseTransaction trans)
void ClearValuesChangesMask() override
ItemTemplate const * GetTemplate() const
UF::UpdateField< UF::ItemData, uint32(WowCS::EntityFragment::CGObject), TYPEID_ITEM > m_itemData
std::vector< int32 > const & GetBonusListIDs() const
ItemContext GetContext() const
ItemUpdateState GetState() const
virtual bool Create(ObjectGuid::LowType guidlow, uint32 itemId, ItemContext context, Player const *owner)
Player * GetOwner() const
UF::UpdateFieldFlag GetUpdateFieldFlagsFor(Player const *target) const final
static void DeleteFromDB(CharacterDatabaseTransaction trans, ObjectGuid::LowType itemGuid)
void BuildEntityFragmentsForValuesUpdateForPlayerWithMask(ByteBuffer &data, EnumFlag< UF::UpdateFieldFlag > flags) const
UF::UpdateField< UF::ObjectData, int32(WowCS::EntityFragment::CGObject), TYPEID_OBJECT > m_objectData
void SendDirectMessage(WorldPacket const *data) const
void setUInt64(uint8 index, uint64 value)
void setInt32(uint8 index, int32 value)
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)
constexpr uint32 GetBlock(uint32 index) const
constexpr void Set(uint32 index)
constexpr uint32 GetMapId() const
@ Tag_AzeriteEmpoweredItem
std::array< int32, MAX_AZERITE_EMPOWERED_TIER > SelectedAzeritePowers
void operator()(Player const *player) const
AzeriteEmpoweredItem const * Owner
UF::ObjectData::Base ObjectMask
UF::AzeriteEmpoweredItemData::Base AzeriteEmpoweredItemMask
bool IgnoreNestedChangesMask
UF::ItemData::Base ItemMask
void AddBonusList(uint32 bonusListId)
int32 AzeriteTierUnlockSetId
void Initialize(ItemTemplate const *proto)
UpdateFieldArray< int32, 5, 0, 1 > Selections
static void FilterDisallowedFieldsMaskForFlag(Mask &changesMask, EnumFlag< UpdateFieldFlag > fieldVisibilityFlags)
void Add(EntityFragment fragment, bool update, void const *data=nullptr)