18#ifndef TRINITYCORE_CORPSE_H
19#define TRINITYCORE_CORPSE_H
35#define MAX_CORPSE_TYPE 3
38#define CORPSE_RECLAIM_RADIUS 39
78 void operator()(
Player const* player)
const;
129 std::span<UF::ChrCustomizationChoice const>
GetCustomizations()
const {
return { m_corpseData->Customizations.begin(), m_corpseData->Customizations.end() }; }
138 void ResetGhostTime();
146 bool IsExpired(time_t t)
const;
@ CORPSE_RESURRECTABLE_PVE
@ CORPSE_RESURRECTABLE_PVP
SQLTransaction< CharacterDatabaseConnection > CharacterDatabaseTransaction
#define DEFINE_ENUM_FLAG(enumType)
static void SaveToDB(QuestPool const &pool, CharacterDatabaseTransaction trans)
void SetUpdateFieldValue(UF::UpdateFieldPrivateSetter< T > setter, typename UF::UpdateFieldPrivateSetter< T >::value_type value)
void SetUpdateFieldFlagValue(UF::UpdateFieldPrivateSetter< T > setter, typename UF::UpdateFieldPrivateSetter< T >::value_type flag)
void ClearDynamicUpdateFieldValues(UF::DynamicUpdateFieldSetter< T > setter)
UF::DynamicUpdateFieldSetter< T >::insert_result AddDynamicUpdateFieldValue(UF::DynamicUpdateFieldSetter< T > setter)
void RemoveUpdateFieldFlagValue(UF::UpdateFieldPrivateSetter< T > setter, typename UF::UpdateFieldPrivateSetter< T >::value_type flag)
uint32 GetDisplayId() const
void SetFaction(uint32 faction) override
ObjectGuid GetPartyGUID() const
void SetClass(uint8 playerClass)
bool HasCorpseDynamicFlag(CorpseDynFlags flags) const
Loot * GetLootForPlayer(Player const *) const override
bool HasCorpseFlag(CorpseFlags flags) const
ObjectGuid GetGuildGUID() const
void SetGuildGUID(ObjectGuid guildGuid)
void SetDisplayId(uint32 displayId)
void SetCorpseFlag(CorpseFlags flags)
void RemoveCorpseDynamicFlag(CorpseDynFlags dynamicFlags)
CorpseDynFlags GetCorpseDynamicFlags() const
void ReplaceAllCorpseFlags(CorpseFlags flags)
void SetFactionTemplate(int32 factionTemplate)
void SetOwnerGUID(ObjectGuid owner)
void SetCorpseDynamicFlag(CorpseDynFlags dynamicFlags)
void SetPartyGUID(ObjectGuid partyGuid)
UF::UpdateField< UF::CorpseData, int32(WowCS::EntityFragment::CGObject), TYPEID_CORPSE > m_corpseData
uint32 GetFaction() const override
std::unique_ptr< Loot > m_loot
ObjectGuid GetCreatorGUID() const override
time_t const & GetGhostTime() const
void ReplaceAllCorpseDynamicFlags(CorpseDynFlags dynamicFlags)
uint32 GetItem(uint32 slot) const
CorpseFlags GetCorpseFlags() const
ObjectGuid GetOwnerGUID() const override
void RemoveCorpseFlag(CorpseFlags flags)
std::span< UF::ChrCustomizationChoice const > GetCustomizations() const
void SetCustomizations(std::span< UF::ChrCustomizationChoice const > customizations)
uint32 GetFactionTemplate() const
CorpseType GetType() const
void SetItem(uint32 slot, uint32 item)
Class used to access individual fields of database query result.
virtual void BuildValuesCreate(UF::UpdateFieldFlag flags, ByteBuffer &data, Player const *target) const =0
virtual void BuildValuesUpdate(UF::UpdateFieldFlag flags, ByteBuffer &data, Player const *target) const =0
virtual void ClearValuesChangesMask()
void AddToWorld() override
void RemoveFromWorld() override
virtual void Update(uint32 diff)
ValuesUpdateForPlayerWithMaskSender(Corpse const *owner)
UF::ObjectData::Base ObjectMask
UF::CorpseData::Base CorpseMask
bool IgnoreNestedChangesMask
UpdateFieldArray< uint32, 19, 13, 14 > Items
UpdateField< uint32, 0, 6 > DisplayID
UpdateField< uint8, 0, 7 > RaceID
UpdateField< uint8, 0, 9 > Class
DynamicUpdateField< UF::ChrCustomizationChoice, 0, 1 > Customizations
UpdateField< uint32, 0, 10 > Flags
UpdateField< ObjectGuid, 0, 4 > PartyGUID
UpdateField< ObjectGuid, 0, 3 > Owner
UpdateField< uint8, 0, 8 > Sex
UpdateField< int32, 0, 11 > FactionTemplate
UpdateField< uint32, 0, 2 > DynamicFlags
UpdateField< ObjectGuid, 0, 5 > GuildGUID