AzerothCore 3.3.5a
OpenSource WoW Emulator
Loading...
Searching...
No Matches
Corpse Class Reference

#include "Corpse.h"

Inheritance diagram for Corpse:
WorldObject GridObject< Corpse > Object WorldLocation Position

Public Member Functions

 Corpse (CorpseType type=CORPSE_BONES)
 
 ~Corpse () override
 
void AddToWorld () override
 
void RemoveFromWorld () override
 
void BuildValuesUpdate (uint8 updateType, ByteBuffer *data, Player *target) override
 
bool Create (ObjectGuid::LowType guidlow)
 
bool Create (ObjectGuid::LowType guidlow, Player *owner)
 
void SaveToDB ()
 
bool LoadCorpseFromDB (ObjectGuid::LowType guid, Field *fields)
 
void DeleteFromDB (CharacterDatabaseTransaction trans)
 
uint32 GetFaction () const override
 
ObjectGuid GetOwnerGUID () const override
 
time_t const & GetGhostTime () const
 
void ResetGhostTime ()
 
CorpseType GetType () const
 
CellCoord const & GetCellCoord () const
 
void SetCellCoord (CellCoord const &cellCoord)
 
bool IsExpired (time_t t) const
 
- Public Member Functions inherited from WorldObject
 ~WorldObject () override
 
virtual void Update (uint32 diff)
 
void _Create (ObjectGuid::LowType guidlow, HighGuid guidhigh, uint32 phaseMask)
 
void AddToWorld () override
 
void RemoveFromWorld () override
 
void GetNearPoint2D (WorldObject const *searcher, float &x, float &y, float distance, float absAngle, Position const *startPos=nullptr) const
 
void GetNearPoint2D (float &x, float &y, float distance, float absAngle, Position const *startPos=nullptr) const
 
void GetNearPoint (WorldObject const *searcher, float &x, float &y, float &z, float searcher_size, float distance2d, float absAngle, float controlZ=0, Position const *startPos=nullptr) const
 
void GetVoidClosePoint (float &x, float &y, float &z, float size, float distance2d=0, float relAngle=0, float controlZ=0) const
 
bool GetClosePoint (float &x, float &y, float &z, float size, float distance2d=0, float angle=0, WorldObject const *forWho=nullptr, bool force=false) const
 
void MovePosition (Position &pos, float dist, float angle)
 
Position GetNearPosition (float dist, float angle)
 
void MovePositionToFirstCollision (Position &pos, float dist, float angle)
 
Position GetFirstCollisionPosition (float startX, float startY, float startZ, float destX, float destY)
 
Position GetFirstCollisionPosition (float destX, float destY, float destZ)
 
Position GetFirstCollisionPosition (float dist, float angle)
 
Position GetRandomNearPosition (float radius)
 
void GetContactPoint (WorldObject const *obj, float &x, float &y, float &z, float distance2d=CONTACT_DISTANCE) const
 
void GetChargeContactPoint (WorldObject const *obj, float &x, float &y, float &z, float distance2d=CONTACT_DISTANCE) const
 
float GetObjectSize () const
 
virtual float GetCombatReach () const
 
void UpdateGroundPositionZ (float x, float y, float &z) const
 
void UpdateAllowedPositionZ (float x, float y, float &z, float *groundZ=nullptr) const
 
void GetRandomPoint (Position const &srcPos, float distance, float &rand_x, float &rand_y, float &rand_z) const
 
Position GetRandomPoint (Position const &srcPos, float distance) const
 
uint32 GetInstanceId () const
 
virtual void SetPhaseMask (uint32 newPhaseMask, bool update)
 
uint32 GetPhaseMask () const
 
bool InSamePhase (WorldObject const *obj) const
 
bool InSamePhase (uint32 phasemask) const
 
uint32 GetZoneId () const
 
uint32 GetAreaId () const
 
void GetZoneAndAreaId (uint32 &zoneid, uint32 &areaid) const
 
bool IsOutdoors () const
 
LiquidData const & GetLiquidData () const
 
InstanceScript * GetInstanceScript () const
 
std::string const & GetName () const
 
void SetName (std::string const &newname)
 
virtual std::string const & GetNameForLocaleIdx (LocaleConstant) const
 
float GetDistance (WorldObject const *obj) const
 
float GetDistance (Position const &pos) const
 
float GetDistance (float x, float y, float z) const
 
float GetDistance2d (WorldObject const *obj) const
 
float GetDistance2d (float x, float y) const
 
float GetDistanceZ (WorldObject const *obj) const
 
bool IsSelfOrInSameMap (WorldObject const *obj) const
 
bool IsInMap (WorldObject const *obj) const
 
bool IsWithinDist3d (float x, float y, float z, float dist) const
 
bool IsWithinDist3d (Position const *pos, float dist) const
 
bool IsWithinDist2d (float x, float y, float dist) const
 
bool IsWithinDist2d (Position const *pos, float dist) const
 
virtual bool IsWithinSightRange (Position const &pos, float dist) const
 
bool IsWithinDist (WorldObject const *obj, float dist2compare, bool is3D=true, bool incOwnRadius=true, bool incTargetRadius=true) const
 
bool IsWithinDistInMap (WorldObject const *obj, float dist2compare, bool is3D=true, bool incOwnRadius=true, bool incTargetRadius=true) const
 
bool IsWithinLOS (float x, float y, float z, VMAP::ModelIgnoreFlags ignoreFlags=VMAP::ModelIgnoreFlags::Nothing, LineOfSightChecks checks=LINEOFSIGHT_ALL_CHECKS) const
 
bool IsWithinLOSInMap (WorldObject const *obj, VMAP::ModelIgnoreFlags ignoreFlags=VMAP::ModelIgnoreFlags::Nothing, LineOfSightChecks checks=LINEOFSIGHT_ALL_CHECKS, Optional< float > collisionHeight={ }, Optional< float > combatReach={ }) const
 
Position GetHitSpherePointFor (Position const &dest, Optional< float > collisionHeight={ }, Optional< float > combatReach={ }) const
 
void GetHitSpherePointFor (Position const &dest, float &x, float &y, float &z, Optional< float > collisionHeight={ }, Optional< float > combatReach={ }) const
 
bool GetDistanceOrder (WorldObject const *obj1, WorldObject const *obj2, bool is3D=true) const
 
bool IsInRange (WorldObject const *obj, float minRange, float maxRange, bool is3D=true) const
 
bool IsInRange2d (float x, float y, float minRange, float maxRange) const
 
bool IsInRange3d (float x, float y, float z, float minRange, float maxRange) const
 
bool isInFront (WorldObject const *target, float arc=M_PI) const
 
bool isInBack (WorldObject const *target, float arc=M_PI) const
 
bool IsInBetween (WorldObject const *obj1, WorldObject const *obj2, float size=0) const
 
virtual void CleanupsBeforeDelete (bool finalCleanup=true)
 
virtual void SendMessageToSet (WorldPacket const *data, bool self) const
 
virtual void SendMessageToSetInRange (WorldPacket const *data, float dist, bool self) const
 
virtual void SendMessageToSet (WorldPacket const *data, Player const *skipped_rcvr) const
 
virtual uint8 getLevelForTarget (WorldObject const *) const
 
void PlayDistanceSound (uint32 sound_id, Player *target=nullptr)
 
void PlayDirectSound (uint32 sound_id, Player *target=nullptr)
 
void PlayRadiusSound (uint32 sound_id, float radius)
 
void PlayDirectMusic (uint32 music_id, Player *target=nullptr)
 
void PlayRadiusMusic (uint32 music_id, float radius)
 
template<typename Worker >
void DoForAllVisiblePlayers (Worker &&worker)
 
template<typename Worker >
void DoForAllVisibleWorldObjects (Worker &&worker)
 
void DestroyForVisiblePlayers ()
 
void SendObjectDeSpawnAnim (ObjectGuid guid)
 
virtual void SaveRespawnTime ()
 
void AddObjectToRemoveList ()
 
float GetGridActivationRange () const
 
float GetVisibilityRange () const
 
virtual float GetSightRange (WorldObject const *target=nullptr) const
 
float GetLeewayBonusRange (Unit const *target) const
 
float GetLeewayBonusRadius () const
 
bool CanSeeOrDetect (WorldObject const *obj, bool ignoreStealth=false, bool distanceCheck=false, bool checkAlert=false) const
 
void SendPlayMusic (uint32 Music, bool OnlySelf)
 
virtual void SetMap (Map *map)
 
virtual void ResetMap ()
 
Map * GetMap () const
 
Map * FindMap () const
 
void SetZoneScript ()
 
void ClearZoneScript ()
 
ZoneScript * GetZoneScript () const
 
TempSummon * SummonCreature (uint32 id, Position const &pos, TempSummonType spwtype=TEMPSUMMON_MANUAL_DESPAWN, uint32 despwtime=0, uint32 vehId=0, SummonPropertiesEntry const *properties=nullptr, bool visibleBySummonerOnly=false) const
 
TempSummon * SummonCreature (uint32 id, float x, float y, float z, float ang=0, TempSummonType spwtype=TEMPSUMMON_MANUAL_DESPAWN, uint32 despwtime=0, SummonPropertiesEntry const *properties=nullptr, bool visibleBySummonerOnly=false)
 
GameObject * SummonGameObject (uint32 entry, float x, float y, float z, float ang, float rotation0, float rotation1, float rotation2, float rotation3, uint32 respawnTime, bool checkTransport=true, GOSummonType summonType=GO_SUMMON_TIMED_OR_CORPSE_DESPAWN)
 
Creature * SummonTrigger (float x, float y, float z, float ang, uint32 dur, bool setLevel=false, CreatureAI *(*GetAI)(Creature *)=nullptr)
 
void SummonCreatureGroup (uint8 group, std::list< TempSummon * > *list=nullptr)
 
void SummonGameObjectGroup (uint8 group, std::list< GameObject * > *list=nullptr)
 
Creature * FindNearestCreature (uint32 entry, float range, bool alive=true) const
 
GameObject * FindNearestGameObject (uint32 entry, float range, bool onlySpawned=false) const
 
GameObject * FindNearestGameObjectOfType (GameobjectTypes type, float range) const
 
Player * SelectNearestPlayer (float distance=0) const
 
void GetGameObjectListWithEntryInGrid (std::list< GameObject * > &lList, uint32 uiEntry, float fMaxSearchRange) const
 
void GetGameObjectListWithEntryInGrid (std::list< GameObject * > &gameobjectList, std::vector< uint32 > const &entries, float maxSearchRange) const
 
void GetCreatureListWithEntryInGrid (std::list< Creature * > &lList, uint32 uiEntry, float fMaxSearchRange) const
 
void GetCreatureListWithEntryInGrid (std::list< Creature * > &creatureList, std::vector< uint32 > const &entries, float maxSearchRange) const
 
void GetDeadCreatureListInGrid (std::list< Creature * > &lList, float maxSearchRange, bool alive=false) const
 
virtual void UpdateObjectVisibility (bool forced=true, bool fromUpdate=false)
 
virtual void UpdateObjectVisibilityOnCreate ()
 
void BuildUpdate (UpdateDataMapType &data_map) override
 
void GetCreaturesWithEntryInRange (std::list< Creature * > &creatureList, float radius, uint32 entry)
 
void SetPositionDataUpdate ()
 
void UpdatePositionData ()
 
bool IsPositionDataUpdatePending () const
 
void AddToObjectUpdate () override
 
void RemoveFromObjectUpdate () override
 
void AddToNotify (uint16 f)
 
void RemoveFromNotify (uint16 f)
 
bool isNeedNotify (uint16 f) const
 
uint16 GetNotifyFlags () const
 
bool NotifyExecuted (uint16 f) const
 
void SetNotified (uint16 f)
 
void ResetAllNotifies ()
 
bool isActiveObject () const
 
void setActive (bool isActiveObject)
 
VisibilityDistanceType GetVisibilityOverrideType () const
 
bool IsVisibilityOverridden () const
 
bool IsZoneWideVisible () const
 
bool IsFarVisible () const
 
float GetVisibilityOverrideDistance () const
 
void SetVisibilityDistanceOverride (VisibilityDistanceType type)
 
bool IsInWintergrasp () const
 
Transport * GetTransport () const
 
float GetTransOffsetX () const
 
float GetTransOffsetY () const
 
float GetTransOffsetZ () const
 
float GetTransOffsetO () const
 
uint32 GetTransTime () const
 
int8 GetTransSeat () const
 
virtual ObjectGuid GetTransGUID () const
 
void SetTransport (Transport *t)
 
virtual float GetStationaryX () const
 
virtual float GetStationaryY () const
 
virtual float GetStationaryZ () const
 
virtual float GetStationaryO () const
 
float GetMapWaterOrGroundLevel (Position pos, float *ground=nullptr) const
 
float GetMapWaterOrGroundLevel (float x, float y, float z, float *ground=nullptr) const
 
float GetMapHeight (float x, float y, float z, bool vmap=true, float distanceToSearch=50.0f) const
 
float GetFloorZ () const
 
float GetMinHeightInWater () const
 Get the minimum height of a object that should be in water to start floating/swim.
 
virtual float GetCollisionHeight () const
 
virtual float GetCollisionWidth () const
 
virtual float GetCollisionRadius () const
 
void AddAllowedLooter (ObjectGuid guid)
 
void ResetAllowedLooters ()
 
void SetAllowedLooters (GuidUnorderedSet const looters)
 
bool HasAllowedLooter (ObjectGuid guid) const
 
GuidUnorderedSet const & GetAllowedLooters () const
 
void RemoveAllowedLooter (ObjectGuid guid)
 
virtual bool IsUpdateNeeded ()
 
bool CanBeAddedToMapUpdateList ()
 
std::string GetDebugInfo () const override
 
ObjectVisibilityContainer & GetObjectVisibilityContainer ()
 
ObjectVisibilityContainer const & GetObjectVisibilityContainer () const
 
SpellCastResult CastSpell (CastSpellTargetArg const &targets, uint32 spellId, CastSpellExtraArgs const &args={})
 
SpellCastResult CastSpell (CastSpellTargetArg const &targets, SpellInfo const *info, CastSpellExtraArgs const &args={})
 
virtual ObjectGuid GetCharmerOrOwnerGUID () const
 
Unit * GetOwnerUnit () const
 
Unit * GetCharmerOrOwnerUnit () const
 
Unit * GetCharmerOrOwnerOrSelfUnit () const
 
Player * GetCharmerOrOwnerPlayerOrPlayerItself () const
 
Player * GetAffectingPlayer () const
 
virtual Player * GetSpellModOwner () const
 
FactionTemplateEntry const * GetFactionTemplateEntry () const
 
ReputationRank GetReactionTo (WorldObject const *target) const
 
bool IsHostileTo (WorldObject const *target) const
 
bool IsFriendlyTo (WorldObject const *target) const
 
float GetSpellMaxRangeForTarget (Unit const *target, SpellInfo const *spellInfo) const
 
float GetSpellMinRangeForTarget (Unit const *target, SpellInfo const *spellInfo) const
 
bool IsValidAttackTarget (WorldObject const *target, SpellInfo const *bySpell=nullptr) const
 
bool IsValidAssistTarget (WorldObject const *target, SpellInfo const *bySpell=nullptr) const
 
Unit * GetMagicHitRedirectTarget (Unit *victim, SpellInfo const *spellInfo)
 
Unit * GetMeleeHitRedirectTarget (Unit *victim, SpellInfo const *spellInfo)
 
int32 CalculateSpellDamage (Unit const *target, SpellInfo const *spellProto, uint8 effect_index, int32 const *basePoints=nullptr) const
 
int32 CalcSpellDuration (SpellInfo const *spellProto) const
 
int32 ModSpellDuration (SpellInfo const *spellProto, Unit const *target, int32 duration, bool positive, uint32 effectMask) const
 
void ModSpellCastTime (SpellInfo const *spellProto, int32 &castTime, Spell *spell=nullptr) const
 
virtual SpellMissInfo MeleeSpellHitResult (Unit *, SpellInfo const *)
 
SpellMissInfo MagicSpellHitResult (Unit *victim, SpellInfo const *spellInfo)
 
SpellMissInfo SpellHitResult (Unit *victim, SpellInfo const *spellInfo, bool canReflect=false)
 
SpellMissInfo SpellHitResult (Unit *victim, Spell const *spell, bool canReflect=false)
 
void SendSpellMiss (Unit *target, uint32 spellID, SpellMissInfo missInfo)
 
void SendSpellNonMeleeDamageLog (Unit *target, SpellInfo const *spellInfo, uint32 damage, SpellSchoolMask schoolMask, uint32 absorb, uint32 resist)
 
- Public Member Functions inherited from Object
virtual ~Object ()
 
bool IsInWorld () const
 
ObjectGuid GetGUID () const
 
PackedGuid const & GetPackGUID () const
 
uint32 GetEntry () const
 
void SetEntry (uint32 entry)
 
float GetObjectScale () const
 
virtual void SetObjectScale (float scale)
 
virtual uint32 GetDynamicFlags () const
 
bool HasDynamicFlag (uint32 flag) const
 
virtual void SetDynamicFlag (uint32 flag)
 
virtual void RemoveDynamicFlag (uint32 flag)
 
virtual void ReplaceAllDynamicFlags (uint32 flag)
 
TypeID GetTypeId () const
 
bool isType (uint16 mask) const
 
virtual void BuildCreateUpdateBlockForPlayer (UpdateData *data, Player *target)
 
void SendUpdateToPlayer (Player *player)
 
void BuildValuesUpdateBlockForPlayer (UpdateData *data, Player *target)
 
void BuildOutOfRangeUpdateBlock (UpdateData *data) const
 
void BuildMovementUpdateBlock (UpdateData *data, uint32 flags=0) const
 
virtual void DestroyForPlayer (Player *target, bool onDeath=false) const
 
int32 GetInt32Value (uint16 index) const
 
uint32 GetUInt32Value (uint16 index) const
 
uint64 GetUInt64Value (uint16 index) const
 
float GetFloatValue (uint16 index) const
 
uint8 GetByteValue (uint16 index, uint8 offset) const
 
uint16 GetUInt16Value (uint16 index, uint8 offset) const
 
ObjectGuid GetGuidValue (uint16 index) const
 
void SetInt32Value (uint16 index, int32 value)
 
void SetUInt32Value (uint16 index, uint32 value)
 
void UpdateUInt32Value (uint16 index, uint32 value)
 
void SetUInt64Value (uint16 index, uint64 value)
 
void SetFloatValue (uint16 index, float value)
 
void SetByteValue (uint16 index, uint8 offset, uint8 value)
 
void SetUInt16Value (uint16 index, uint8 offset, uint16 value)
 
void SetInt16Value (uint16 index, uint8 offset, int16 value)
 
void SetGuidValue (uint16 index, ObjectGuid value)
 
void SetStatFloatValue (uint16 index, float value)
 
void SetStatInt32Value (uint16 index, int32 value)
 
bool AddGuidValue (uint16 index, ObjectGuid value)
 
bool RemoveGuidValue (uint16 index, ObjectGuid value)
 
void ApplyModUInt32Value (uint16 index, int32 val, bool apply)
 
void ApplyModInt32Value (uint16 index, int32 val, bool apply)
 
void ApplyModUInt64Value (uint16 index, int32 val, bool apply)
 
void ApplyModPositiveFloatValue (uint16 index, float val, bool apply)
 
void ApplyModSignedFloatValue (uint16 index, float val, bool apply)
 
void SetFlag (uint16 index, uint32 newFlag)
 
void RemoveFlag (uint16 index, uint32 oldFlag)
 
void ToggleFlag (uint16 index, uint32 flag)
 
bool HasFlag (uint16 index, uint32 flag) const
 
void ApplyModFlag (uint16 index, uint32 flag, bool apply)
 
void SetByteFlag (uint16 index, uint8 offset, uint8 newFlag)
 
void RemoveByteFlag (uint16 index, uint8 offset, uint8 newFlag)
 
bool HasByteFlag (uint16 index, uint8 offset, uint8 flag) const
 
void SetFlag64 (uint16 index, uint64 newFlag)
 
void RemoveFlag64 (uint16 index, uint64 oldFlag)
 
void ToggleFlag64 (uint16 index, uint64 flag)
 
bool HasFlag64 (uint16 index, uint64 flag) const
 
void ApplyModFlag64 (uint16 index, uint64 flag, bool apply)
 
void ClearUpdateMask (bool remove)
 
uint16 GetValuesCount () const
 
virtual bool hasQuest (uint32) const
 
virtual bool hasInvolvedQuest (uint32) const
 
void BuildFieldsUpdate (Player *, UpdateDataMapType &)
 
void SetFieldNotifyFlag (uint16 flag)
 
void RemoveFieldNotifyFlag (uint16 flag)
 
void ForceValuesUpdateAtIndex (uint32)
 
bool IsPlayer () const
 
Player * ToPlayer ()
 
Player const * ToPlayer () const
 
bool IsCreature () const
 
Creature * ToCreature ()
 
Creature const * ToCreature () const
 
bool IsUnit () const
 
Unit * ToUnit ()
 
Unit const * ToUnit () const
 
bool IsGameObject () const
 
GameObject * ToGameObject ()
 
GameObject const * ToGameObject () const
 
bool IsCorpse () const
 
Corpse * ToCorpse ()
 
Corpse const * ToCorpse () const
 
bool IsDynamicObject () const
 
DynamicObject * ToDynObject ()
 
DynamicObject const * ToDynObject () const
 
bool IsItem () const
 
virtual void Heartbeat ()
 
template<typename... T>
bool EntryEquals (T... entries) const
 
- Public Member Functions inherited from WorldLocation
 WorldLocation (uint32 _mapId=MAPID_INVALID, float x=0.f, float y=0.f, float z=0.f, float o=0.f)
 
 WorldLocation (uint32 mapId, Position const &position)
 
void WorldRelocate (WorldLocation const &loc)
 
void WorldRelocate (uint32 mapId=MAPID_INVALID, float x=0.f, float y=0.f, float z=0.f, float o=0.f)
 
void SetMapId (uint32 mapId)
 
uint32 GetMapId () const
 
void GetWorldLocation (uint32 &mapId, float &x, float &y) const
 
void GetWorldLocation (uint32 &mapId, float &x, float &y, float &z) const
 
void GetWorldLocation (uint32 &mapId, float &x, float &y, float &z, float &o) const
 
void GetWorldLocation (WorldLocation *location) const
 
WorldLocation GetWorldLocation () const
 
std::string GetDebugInfo () const
 
- Public Member Functions inherited from Position
 Position (float x=0, float y=0, float z=0, float o=0)
 
 Position (Position const &loc)
 
 Position (Position &&)=default
 
Position & operator= (Position const &)=default
 
Position & operator= (Position &&)=default
 
bool operator== (Position const &a) const
 
bool operator!= (Position const &a)
 
bool operator!= (Position const &a) const
 
 operator G3D::Vector3 () const
 
void Relocate (float x, float y)
 
void Relocate (float x, float y, float z)
 
void Relocate (float x, float y, float z, float orientation)
 
void Relocate (Position const &pos)
 
void Relocate (Position const *pos)
 
void RelocatePolarOffset (float angle, float dist, float z=0.0f)
 
void RelocateOffset (Position const &offset)
 
void SetOrientation (float orientation)
 
float GetPositionX () const
 
float GetPositionY () const
 
float GetPositionZ () const
 
float GetOrientation () const
 
void GetPosition (float &x, float &y) const
 
void GetPosition (float &x, float &y, float &z) const
 
void GetPosition (float &x, float &y, float &z, float &o) const
 
Position GetPosition () const
 
Position::PositionXYZStreamer PositionXYZStream ()
 
Position::PositionXYZOStreamer PositionXYZOStream ()
 
bool IsPositionValid () const
 
float GetExactDist2dSq (const float x, const float y) const
 
float GetExactDist2dSq (Position const &pos) const
 
float GetExactDist2dSq (Position const *pos) const
 
float GetExactDist2d (const float x, const float y) const
 
float GetExactDist2d (Position const &pos) const
 
float GetExactDist2d (Position const *pos) const
 
float GetExactDistSq (float x, float y, float z) const
 
float GetExactDistSq (Position const &pos) const
 
float GetExactDistSq (Position const *pos) const
 
float GetExactDist (float x, float y, float z) const
 
float GetExactDist (Position const &pos) const
 
float GetExactDist (Position const *pos) const
 
void GetPositionOffsetTo (Position const &endPos, Position &retOffset) const
 
Position GetPositionWithOffset (Position const &offset) const
 
float GetAngle (Position const *pos) const
 
float GetAngle (float x, float y) const
 
float GetAbsoluteAngle (float x, float y) const
 
float GetAbsoluteAngle (Position const &pos) const
 
float GetAbsoluteAngle (Position const *pos) const
 
float GetRelativeAngle (Position const *pos) const
 
float GetRelativeAngle (float x, float y) const
 
float ToAbsoluteAngle (float relAngle) const
 
void GetSinCos (float x, float y, float &vsin, float &vcos) const
 
bool IsInDist2d (float x, float y, float dist) const
 
bool IsInDist2d (Position const *pos, float dist) const
 
bool IsInDist (float x, float y, float z, float dist) const
 
bool IsInDist (Position const *pos, float dist) const
 
bool IsWithinBox (Position const &center, float xradius, float yradius, float zradius) const
 
bool HasInArc (float arcangle, Position const *pos, float targetRadius=0.0f) const
 
bool HasInLine (Position const *pos, float width) const
 
bool HasInLine (Position const *pos, float objSize, float width) const
 
std::string ToString () const
 
- Public Member Functions inherited from GridObject< Corpse >
bool IsInGrid () const
 
void AddToGrid (GridRefMgr< Corpse > &m)
 
void RemoveFromGrid ()
 

Static Public Member Functions

static void DeleteFromDB (ObjectGuid const &ownerGuid, CharacterDatabaseTransaction trans)
 
- Static Public Member Functions inherited from WorldObject
static float GetLeewayBonusRangeForTargets (Player const *player, Unit const *target)
 
static ReputationRank GetFactionReactionTo (FactionTemplateEntry const *factionTemplateEntry, WorldObject const *target)
 
- Static Public Member Functions inherited from Object
static ObjectGuid GetGUID (Object const *o)
 
- Static Public Member Functions inherited from Position
static float NormalizeOrientation (float o)
 

Public Attributes

Loot loot
 
Player * lootRecipient
 
- Public Attributes inherited from WorldObject
FlaggedValuesArray32< int32, uint32, StealthType, TOTAL_STEALTH_TYPES > m_stealth
 
FlaggedValuesArray32< int32, uint32, StealthType, TOTAL_STEALTH_TYPES > m_stealthDetect
 
FlaggedValuesArray32< int32, uint32, InvisibilityType, TOTAL_INVISIBILITY_TYPES > m_invisibility
 
FlaggedValuesArray32< int32, uint32, InvisibilityType, TOTAL_INVISIBILITY_TYPES > m_invisibilityDetect
 
FlaggedValuesArray32< int32, uint32, ServerSideVisibilityType, TOTAL_SERVERSIDE_VISIBILITY_TYPES > m_serverSideVisibility
 
FlaggedValuesArray32< int32, uint32, ServerSideVisibilityType, TOTAL_SERVERSIDE_VISIBILITY_TYPES > m_serverSideVisibilityDetect
 
uint32 LastUsedScriptID
 
MovementInfo m_movementInfo
 
ALEEventProcessor * ALEEvents
 
EventProcessor m_Events
 
- Public Attributes inherited from Object
DataMap CustomData
 
- Public Attributes inherited from WorldLocation
uint32 m_mapId
 
- Public Attributes inherited from Position
float m_positionX = 0
 
float m_positionY = 0
 
float m_positionZ = 0
 
float m_orientation = 0
 

Private Attributes

CorpseType m_type
 
time_t m_time
 
CellCoord _cellCoord
 

Additional Inherited Members

- Protected Member Functions inherited from WorldObject
 WorldObject ()
 
virtual void ProcessPositionDataChanged (PositionFullTerrainStatus const &data)
 
void SetLocationMapId (uint32 _mapId)
 
void SetLocationInstanceId (uint32 _instanceId)
 
virtual bool IsNeverVisible () const
 
virtual bool IsAlwaysVisibleFor (WorldObject const *) const
 
virtual bool IsInvisibleDueToDespawn () const
 
virtual bool IsAlwaysDetectableFor (WorldObject const *) const
 
- Protected Member Functions inherited from Object
 Object ()
 
void _InitValues ()
 
void _Create (ObjectGuid::LowType guidlow, uint32 entry, HighGuid guidhigh)
 
void _Create (ObjectGuid guid)
 
std::string _ConcatFields (uint16 startIndex, uint16 size) const
 
bool _LoadIntoDataField (std::string const &data, uint32 startOffset, uint32 count)
 
uint32 GetUpdateFieldData (Player const *target, uint32 *&flags) const
 
void BuildMovementUpdate (ByteBuffer *data, uint16 flags) const
 
void AddToObjectUpdateIfNeeded ()
 
- Protected Attributes inherited from WorldObject
std::string m_name
 
bool m_isActive
 
VisibilityDistanceType _visibilityDistanceOverrideType
 
ZoneScript * m_zoneScript
 
uint32 _zoneId
 
uint32 _areaId
 
float _floorZ
 
bool _outdoors
 
LiquidData _liquidData
 
bool _updatePositionData
 
Transport * m_transport
 
- Protected Attributes inherited from Object
uint16 m_objectType
 
TypeID m_objectTypeId
 
uint16 m_updateFlag
 
union { 
 
   int32 *   m_int32Values 
 
   uint32 *   m_uint32Values 
 
   float *   m_floatValues 
 
};  
 
UpdateMask _changesMask
 
uint16 m_valuesCount
 
uint16 _fieldNotifyFlags
 
bool m_objectUpdated
 

Detailed Description

Constructor & Destructor Documentation

◆ Corpse()

Corpse::Corpse ( CorpseType  type = CORPSE_BONES)
explicit
30 : WorldObject(), m_type(type)
31{
36 m_time = GameTime::GetGameTime().count();
37 lootRecipient = nullptr;
38}
@ TYPEID_CORPSE
Definition ObjectGuid.h:42
@ TYPEMASK_CORPSE
Definition ObjectGuid.h:56
@ UPDATEFLAG_POSITION
Definition UpdateData.h:47
@ UPDATEFLAG_LOWGUID
Definition UpdateData.h:43
@ UPDATEFLAG_STATIONARY_POSITION
Definition UpdateData.h:45
@ CORPSE_END
Definition UpdateFields.h:430
Player * lootRecipient
Definition Corpse.h:79
CorpseType m_type
Definition Corpse.h:84
time_t m_time
Definition Corpse.h:85
uint16 m_objectType
Definition Object.h:259
uint16 m_valuesCount
Definition Object.h:273
uint16 m_updateFlag
Definition Object.h:262
TypeID m_objectTypeId
Definition Object.h:261
WorldObject()
Definition Object.cpp:1065
Seconds GetGameTime()
Definition GameTime.cpp:38

References CORPSE_END, GameTime::GetGameTime(), lootRecipient, Object::m_objectType, Object::m_objectTypeId, m_time, Object::m_updateFlag, Object::m_valuesCount, TYPEID_CORPSE, TYPEMASK_CORPSE, UPDATEFLAG_LOWGUID, UPDATEFLAG_POSITION, and UPDATEFLAG_STATIONARY_POSITION.

◆ ~Corpse()

Corpse::~Corpse ( )
override
41{
42}

Member Function Documentation

◆ AddToWorld()

void Corpse::AddToWorld ( )
overridevirtual
  • Register the corpse for guid lookup

Reimplemented from Object.

45{
47 if (!IsInWorld())
49
51}
Definition Corpse.h:49
MapStoredObjectTypesContainer & GetObjectsStore()
Definition Map.h:358
bool IsInWorld() const
Definition Object.h:115
virtual void AddToWorld()
Definition Object.cpp:150
ObjectGuid GetGUID() const
Definition Object.h:121
bool Insert(KEY_TYPE const &handle, SPECIFIC_TYPE *obj)
Definition TypeContainer.h:177
Map * GetMap() const
Definition Object.h:637

References Object::AddToWorld(), Object::GetGUID(), WorldObject::GetMap(), Map::GetObjectsStore(), TypeUnorderedMapContainer< OBJECT_TYPES, KEY_TYPE >::Insert(), and Object::IsInWorld().

◆ BuildValuesUpdate()

void Corpse::BuildValuesUpdate ( uint8  updateType,
ByteBuffer *  data,
Player *  target 
)
overridevirtual

Reimplemented from Object.

211{
212 if (!target)
213 return;
214
215 ByteBuffer fieldBuffer;
216 UpdateMask updateMask;
217 updateMask.SetCount(m_valuesCount);
218
219 uint32* flags = nullptr;
220 uint32 visibleFlag = GetUpdateFieldData(target, flags);
221
222 for (uint16 index = 0; index < m_valuesCount; ++index)
223 {
224 if (_fieldNotifyFlags & flags[index] || ((updateType == UPDATETYPE_VALUES ? _changesMask.GetBit(index) : m_uint32Values[index]) && (flags[index] & visibleFlag)))
225 {
226 updateMask.SetBit(index);
227
228 if (index == CORPSE_FIELD_BYTES_1 || index == CORPSE_FIELD_BYTES_2)
229 {
231 if (owner && owner != target && sWorld->getBoolConfig(CONFIG_ALLOW_TWO_SIDE_INTERACTION_GROUP) && owner->IsInRaidWith(target) && owner->GetTeamId() != target->GetTeamId())
232 {
233 uint32 playerBytes = target->GetUInt32Value(PLAYER_BYTES);
234 uint32 playerBytes2 = target->GetUInt32Value(PLAYER_BYTES_2);
235
236 uint8 race = target->getRace();
237 uint8 skin = (uint8)(playerBytes);
238 uint8 face = (uint8)(playerBytes >> 8);
239 uint8 hairstyle = (uint8)(playerBytes >> 16);
240 uint8 haircolor = (uint8)(playerBytes >> 24);
241 uint8 facialhair = (uint8)(playerBytes2);
242
243 uint32 corpseBytes1 = ((0x00) | (race << 8) | (target->GetByteValue(PLAYER_BYTES_3, 0) << 16) | (skin << 24));
244 uint32 corpseBytes2 = ((face) | (hairstyle << 8) | (haircolor << 16) | (facialhair << 24));
245
246 if (index == CORPSE_FIELD_BYTES_1)
247 {
248 fieldBuffer << corpseBytes1;
249 }
250 else
251 {
252 fieldBuffer << corpseBytes2;
253 }
254 }
255 else
256 {
257 fieldBuffer << m_uint32Values[index];
258 }
259 }
260 else
261 {
262 fieldBuffer << m_uint32Values[index];
263 }
264 }
265 }
266
267 *data << uint8(updateMask.GetBlockCount());
268 updateMask.AppendToPacket(data);
269 data->append(fieldBuffer);
270}
std::uint8_t uint8
Definition Define.h:109
std::uint32_t uint32
Definition Define.h:107
std::uint16_t uint16
Definition Define.h:108
@ UPDATETYPE_VALUES
Definition UpdateData.h:28
@ CORPSE_FIELD_BYTES_2
Definition UpdateFields.h:425
@ CORPSE_FIELD_BYTES_1
Definition UpdateFields.h:424
@ PLAYER_BYTES_3
Definition UpdateFields.h:183
@ PLAYER_BYTES_2
Definition UpdateFields.h:182
@ PLAYER_BYTES
Definition UpdateFields.h:181
@ CONFIG_ALLOW_TWO_SIDE_INTERACTION_GROUP
Definition WorldConfig.h:35
Definition ByteBuffer.h:70
void append(T value)
Definition ByteBuffer.h:129
ObjectGuid GetOwnerGUID() const override
Definition Corpse.h:69
uint8 GetByteValue(uint16 index, uint8 offset) const
Definition Object.cpp:321
uint32 GetUInt32Value(uint16 index) const
Definition Object.cpp:303
uint16 _fieldNotifyFlags
Definition Object.h:275
uint32 GetUpdateFieldData(Player const *target, uint32 *&flags) const
Definition Object.cpp:557
UpdateMask _changesMask
Definition Object.h:271
uint32 * m_uint32Values
Definition Object.h:267
Definition Player.h:1086
TeamId GetTeamId(bool original=false) const
Definition Player.h:2139
uint8 getRace(bool original=false) const
Definition Unit.cpp:16670
bool IsInRaidWith(Unit const *unit) const
Definition Unit.cpp:14681
Definition UpdateMask.h:25
uint32 GetBlockCount() const
Definition UpdateMask.h:62
bool GetBit(uint32 index) const
Definition UpdateMask.h:47
void SetCount(uint32 valuesCount)
Definition UpdateMask.h:65
void SetBit(uint32 index)
Definition UpdateMask.h:45
void AppendToPacket(ByteBuffer *data)
Definition UpdateMask.h:49
#define sWorld
Definition World.h:318
Player * GetPlayer(Map const *, ObjectGuid const &guid)
Definition ObjectAccessor.cpp:244

References Object::_changesMask, Object::_fieldNotifyFlags, ByteBuffer::append(), UpdateMask::AppendToPacket(), CONFIG_ALLOW_TWO_SIDE_INTERACTION_GROUP, CORPSE_FIELD_BYTES_1, CORPSE_FIELD_BYTES_2, UpdateMask::GetBit(), UpdateMask::GetBlockCount(), Object::GetByteValue(), GetOwnerGUID(), ObjectAccessor::GetPlayer(), Unit::getRace(), Player::GetTeamId(), Object::GetUInt32Value(), Object::GetUpdateFieldData(), Unit::IsInRaidWith(), Object::m_uint32Values, Object::m_valuesCount, PLAYER_BYTES, PLAYER_BYTES_2, PLAYER_BYTES_3, UpdateMask::SetBit(), UpdateMask::SetCount(), sWorld, and UPDATETYPE_VALUES.

◆ Create() [1/2]

bool Corpse::Create ( ObjectGuid::LowType  guidlow)
72{
74 return true;
75}
void _Create(ObjectGuid::LowType guidlow, uint32 entry, HighGuid guidhigh)
Definition Object.cpp:128

References Object::_Create(), and Corpse.

Referenced by Map::ConvertCorpseToBones(), and Player::CreateCorpse().

◆ Create() [2/2]

bool Corpse::Create ( ObjectGuid::LowType  guidlow,
Player *  owner 
)
78{
79 ASSERT(owner);
80
81 Relocate(owner->GetPositionX(), owner->GetPositionY(), owner->GetPositionZ(), owner->GetOrientation());
82
83 if (!IsPositionValid())
84 {
85 LOG_ERROR("entities.player", "Corpse (guidlow {}, owner {}) not created. Suggested coordinates isn't valid (X: {} Y: {})",
86 guidlow, owner->GetName(), owner->GetPositionX(), owner->GetPositionY());
87 return false;
88 }
89
91
94
96
97 return true;
98}
#define ASSERT
Definition Errors.h:68
#define LOG_ERROR(filterType__,...)
Definition Log.h:145
@ CORPSE_FIELD_OWNER
Definition UpdateFields.h:420
CellCoord _cellCoord
Definition Corpse.h:86
void SetGuidValue(uint16 index, ObjectGuid value)
Definition Object.cpp:721
static ObjectGuid GetGUID(Object const *o)
Definition Object.h:120
virtual void SetObjectScale(float scale)
Definition Object.h:127
uint32 GetPhaseMask() const
Definition Object.h:523
void _Create(ObjectGuid::LowType guidlow, HighGuid guidhigh, uint32 phaseMask)
Definition Object.cpp:1173
std::string const & GetName() const
Definition Object.h:535
CellCoord ComputeCellCoord(float x, float y)
Definition GridDefines.h:197
float GetPositionZ() const
Definition Position.h:123
float GetOrientation() const
Definition Position.h:124
bool IsPositionValid() const
Definition Position.cpp:183
float GetPositionX() const
Definition Position.h:121
float GetPositionY() const
Definition Position.h:122
void Relocate(float x, float y)
Definition Position.h:77

References _cellCoord, WorldObject::_Create(), ASSERT, Acore::ComputeCellCoord(), Corpse, CORPSE_FIELD_OWNER, Object::GetGUID(), WorldObject::GetName(), Position::GetOrientation(), WorldObject::GetPhaseMask(), Position::GetPositionX(), Position::GetPositionY(), Position::GetPositionZ(), Position::IsPositionValid(), LOG_ERROR, Position::Relocate(), Object::SetGuidValue(), and Object::SetObjectScale().

◆ DeleteFromDB() [1/2]

void Corpse::DeleteFromDB ( CharacterDatabaseTransaction  trans)
130{
131 DeleteFromDB(GetOwnerGUID(), trans);
132}
void DeleteFromDB(CharacterDatabaseTransaction trans)
Definition Corpse.cpp:129

References DeleteFromDB(), and GetOwnerGUID().

Referenced by Map::ConvertCorpseToBones(), DeleteFromDB(), Player::DeleteFromDB(), Player::OfflineResurrect(), Player::RemoveCorpse(), and SaveToDB().

◆ DeleteFromDB() [2/2]

void Corpse::DeleteFromDB ( ObjectGuid const &  ownerGuid,
CharacterDatabaseTransaction  trans 
)
static
135{
137 stmt->SetData(0, ownerGuid.GetCounter());
138 CharacterDatabase.ExecuteOrAppend(trans, stmt);
139}
@ CHAR_DEL_CORPSE
Definition CharacterDatabase.h:250
DatabaseWorkerPool< CharacterDatabaseConnection > CharacterDatabase
Accessor to the character database.
Definition DatabaseEnv.cpp:21
Acore::Types::is_default< T > SetData(const uint8 index, T value)
Definition PreparedStatement.h:77
Definition PreparedStatement.h:157

References CHAR_DEL_CORPSE, CharacterDatabase, ObjectGuid::GetCounter(), and PreparedStatementBase::SetData().

◆ GetCellCoord()

CellCoord const & Corpse::GetCellCoord ( ) const
inline
75{ return _cellCoord; }

References _cellCoord.

Referenced by Map::ConvertCorpseToBones().

◆ GetFaction()

uint32 Corpse::GetFaction ( ) const
overridevirtual

Reimplemented from WorldObject.

63{
64 // inherit faction from player race
66
67 ChrRacesEntry const* rEntry = sChrRacesStore.LookupEntry(race);
68 return rEntry ? rEntry->FactionID : 0;
69}
DBCStorage< ChrRacesEntry > sChrRacesStore(ChrRacesEntryfmt)
Definition DBCStructure.h:706
uint32 FactionID
Definition DBCStructure.h:709

References CORPSE_FIELD_BYTES_1, ChrRacesEntry::FactionID, Object::GetByteValue(), and sChrRacesStore.

◆ GetGhostTime()

time_t const & Corpse::GetGhostTime ( ) const
inline

◆ GetOwnerGUID()

ObjectGuid Corpse::GetOwnerGUID ( ) const
inlineoverridevirtual

◆ GetType()

◆ IsExpired()

bool Corpse::IsExpired ( time_t  t) const
194{
195 // Deleted character
196 if (!sCharacterCache->GetCharacterCacheByGuid(GetOwnerGUID()))
197 return true;
198
199 if (m_type == CORPSE_BONES)
200 return m_time < t - 60 * MINUTE;
201 else
202 return m_time < t - 3 * DAY;
203}
#define sCharacterCache
Definition CharacterCache.h:88
constexpr auto DAY
Definition Common.h:49
constexpr auto MINUTE
Definition Common.h:47
@ CORPSE_BONES
Definition Corpse.h:28

References CORPSE_BONES, DAY, GetOwnerGUID(), m_time, m_type, MINUTE, and sCharacterCache.

◆ LoadCorpseFromDB()

bool Corpse::LoadCorpseFromDB ( ObjectGuid::LowType  guid,
Field *  fields 
)
142{
143 ObjectGuid::LowType ownerGuid = fields[16].Get<uint32>();
144
145 // 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
146 // SELECT posX, posY, posZ, orientation, mapId, displayId, itemCache, bytes1, bytes2, guildId, flags, dynFlags, time, corpseType, instanceId, phaseMask, guid FROM corpse WHERE mapId = ? AND instanceId = ?
147 float posX = fields[0].Get<float>();
148 float posY = fields[1].Get<float>();
149 float posZ = fields[2].Get<float>();
150 float o = fields[3].Get<float>();
151 uint32 mapId = fields[4].Get<uint16>();
152
154
155 SetObjectScale(1.0f);
156 SetUInt32Value(CORPSE_FIELD_DISPLAY_ID, fields[5].Get<uint32>());
157
158 if (!_LoadIntoDataField(fields[6].Get<std::string>(), CORPSE_FIELD_ITEM, EQUIPMENT_SLOT_END))
159 {
160 LOG_ERROR("entities.player", "Corpse ({}, owner: {}) is not created, given equipment info is not valid ('{}')",
161 GetGUID().ToString(), GetOwnerGUID().ToString(), fields[6].Get<std::string>());
162 }
163
164 SetUInt32Value(CORPSE_FIELD_BYTES_1, fields[7].Get<uint32>());
165 SetUInt32Value(CORPSE_FIELD_BYTES_2, fields[8].Get<uint32>());
166 SetUInt32Value(CORPSE_FIELD_GUILD, fields[9].Get<uint32>());
167 SetUInt32Value(CORPSE_FIELD_FLAGS, fields[10].Get<uint8>());
168 SetUInt32Value(CORPSE_FIELD_DYNAMIC_FLAGS, fields[11].Get<uint8>());
169 SetGuidValue(CORPSE_FIELD_OWNER, ObjectGuid::Create<HighGuid::Player>(ownerGuid));
170
171 m_time = time_t(fields[12].Get<uint32>());
172
173 uint32 instanceId = fields[14].Get<uint32>();
174 uint32 phaseMask = fields[15].Get<uint32>();
175
176 // place
177 SetLocationInstanceId(instanceId);
178 SetLocationMapId(mapId);
179 SetPhaseMask(phaseMask, false);
180 Relocate(posX, posY, posZ, o);
181
182 if (!IsPositionValid())
183 {
184 LOG_ERROR("entities.player", "Corpse ( {}, owner: {}) is not created, given coordinates are not valid (X: {}, Y: {}, Z: {})",
185 GetGUID().ToString(), GetOwnerGUID().ToString(), posX, posY, posZ);
186 return false;
187 }
188
190 return true;
191}
@ EQUIPMENT_SLOT_END
Definition Player.h:681
@ CORPSE_FIELD_FLAGS
Definition UpdateFields.h:427
@ CORPSE_FIELD_DISPLAY_ID
Definition UpdateFields.h:422
@ CORPSE_FIELD_ITEM
Definition UpdateFields.h:423
@ CORPSE_FIELD_GUILD
Definition UpdateFields.h:426
@ CORPSE_FIELD_DYNAMIC_FLAGS
Definition UpdateFields.h:428
std::enable_if_t< std::is_arithmetic_v< T >, T > Get() const
Definition Field.h:113
uint32 LowType
Definition ObjectGuid.h:125
bool _LoadIntoDataField(std::string const &data, uint32 startOffset, uint32 count)
Definition Object.cpp:610
void SetUInt32Value(uint16 index, uint32 value)
Definition Object.cpp:648
virtual void SetPhaseMask(uint32 newPhaseMask, bool update)
Definition Object.cpp:2999
void SetLocationInstanceId(uint32 _instanceId)
Definition Object.h:819
void SetLocationMapId(uint32 _mapId)
Definition Object.h:818
std::string ToString() const
Definition Position.cpp:59

References _cellCoord, Object::_Create(), Object::_LoadIntoDataField(), Acore::ComputeCellCoord(), Corpse, CORPSE_FIELD_BYTES_1, CORPSE_FIELD_BYTES_2, CORPSE_FIELD_DISPLAY_ID, CORPSE_FIELD_DYNAMIC_FLAGS, CORPSE_FIELD_FLAGS, CORPSE_FIELD_GUILD, CORPSE_FIELD_ITEM, CORPSE_FIELD_OWNER, EQUIPMENT_SLOT_END, Field::Get(), Object::GetGUID(), GetOwnerGUID(), Position::GetPositionX(), Position::GetPositionY(), Position::IsPositionValid(), LOG_ERROR, m_time, Position::Relocate(), Object::SetGuidValue(), WorldObject::SetLocationInstanceId(), WorldObject::SetLocationMapId(), Object::SetObjectScale(), WorldObject::SetPhaseMask(), Object::SetUInt32Value(), and Position::ToString().

Referenced by Map::LoadCorpseData().

◆ RemoveFromWorld()

void Corpse::RemoveFromWorld ( )
overridevirtual
  • Remove the corpse from the accessor

Reimplemented from Object.

54{
56 if (IsInWorld())
58
60}
bool Remove(KEY_TYPE const &handle)
Definition TypeContainer.h:183
void RemoveFromWorld() override
Definition Object.cpp:1233

References Object::GetGUID(), WorldObject::GetMap(), Map::GetObjectsStore(), Object::IsInWorld(), TypeUnorderedMapContainer< OBJECT_TYPES, KEY_TYPE >::Remove(), and WorldObject::RemoveFromWorld().

Referenced by Player::RemoveCorpse(), and Map::RemoveCorpse().

◆ ResetGhostTime()

void Corpse::ResetGhostTime ( )
206{
207 m_time = GameTime::GetGameTime().count();
208}

References GameTime::GetGameTime(), and m_time.

Referenced by Player::BuildPlayerRepop().

◆ SaveToDB()

void Corpse::SaveToDB ( )
101{
102 // prevent DB data inconsistence problems and duplicates
103 CharacterDatabaseTransaction trans = CharacterDatabase.BeginTransaction();
104 DeleteFromDB(trans);
105
107 stmt->SetData(0, GetOwnerGUID().GetCounter()); // guid
108 stmt->SetData (1, GetPositionX()); // posX
109 stmt->SetData (2, GetPositionY()); // posY
110 stmt->SetData (3, GetPositionZ()); // posZ
111 stmt->SetData (4, GetOrientation()); // orientation
112 stmt->SetData(5, GetMapId()); // mapId
113 stmt->SetData(6, GetUInt32Value(CORPSE_FIELD_DISPLAY_ID)); // displayId
115 stmt->SetData(8, GetUInt32Value(CORPSE_FIELD_BYTES_1)); // bytes1
116 stmt->SetData(9, GetUInt32Value(CORPSE_FIELD_BYTES_2)); // bytes2
117 stmt->SetData(10, GetUInt32Value(CORPSE_FIELD_GUILD)); // guildId
118 stmt->SetData (11, GetUInt32Value(CORPSE_FIELD_FLAGS)); // flags
119 stmt->SetData (12, GetUInt32Value(CORPSE_FIELD_DYNAMIC_FLAGS)); // dynFlags
120 stmt->SetData(13, uint32(m_time)); // time
121 stmt->SetData (14, GetType()); // corpseType
122 stmt->SetData(15, GetInstanceId()); // instanceId
123 stmt->SetData(16, GetPhaseMask()); // phaseMask
124 trans->Append(stmt);
125
126 CharacterDatabase.CommitTransaction(trans);
127}
@ CHAR_INS_CORPSE
Definition CharacterDatabase.h:249
SQLTransaction< CharacterDatabaseConnection > CharacterDatabaseTransaction
Definition DatabaseEnvFwd.h:69
CorpseType GetType() const
Definition Corpse.h:73
std::string _ConcatFields(uint16 startIndex, uint16 size) const
Definition Object.cpp:142
uint32 GetMapId() const
Definition Position.h:281
uint32 GetInstanceId() const
Definition Object.h:520

References Object::_ConcatFields(), CHAR_INS_CORPSE, CharacterDatabase, CORPSE_FIELD_BYTES_1, CORPSE_FIELD_BYTES_2, CORPSE_FIELD_DISPLAY_ID, CORPSE_FIELD_DYNAMIC_FLAGS, CORPSE_FIELD_FLAGS, CORPSE_FIELD_GUILD, CORPSE_FIELD_ITEM, DeleteFromDB(), EQUIPMENT_SLOT_END, WorldObject::GetInstanceId(), WorldLocation::GetMapId(), Position::GetOrientation(), GetOwnerGUID(), WorldObject::GetPhaseMask(), Position::GetPositionX(), Position::GetPositionY(), Position::GetPositionZ(), GetType(), Object::GetUInt32Value(), m_time, and PreparedStatementBase::SetData().

Referenced by Player::CreateCorpse().

◆ SetCellCoord()

void Corpse::SetCellCoord ( CellCoord const &  cellCoord)
inline
76{ _cellCoord = cellCoord; }

References _cellCoord.

Referenced by Map::ConvertCorpseToBones().

Member Data Documentation

◆ _cellCoord

CellCoord Corpse::_cellCoord
private

◆ loot

◆ lootRecipient

Player* Corpse::lootRecipient

◆ m_time

time_t Corpse::m_time
private

◆ m_type

CorpseType Corpse::m_type
private

Referenced by GetType(), and IsExpired().


The documentation for this class was generated from the following files: