aboutsummaryrefslogtreecommitdiff
path: root/src/game/Corpse.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/game/Corpse.h')
-rw-r--r--src/game/Corpse.h18
1 files changed, 18 insertions, 0 deletions
diff --git a/src/game/Corpse.h b/src/game/Corpse.h
index ca9a16d8ced..e0374a03470 100644
--- a/src/game/Corpse.h
+++ b/src/game/Corpse.h
@@ -17,12 +17,15 @@
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
+
#ifndef TRINITYCORE_CORPSE_H
#define TRINITYCORE_CORPSE_H
+
#include "Object.h"
#include "Database/DatabaseEnv.h"
#include "GridDefines.h"
#include "LootMgr.h"
+
enum CorpseType
{
CORPSE_BONES = 0,
@@ -30,8 +33,10 @@ enum CorpseType
CORPSE_RESURRECTABLE_PVP = 2
};
#define MAX_CORPSE_TYPE 3
+
// Value equal client resurrection dialog show radius.
#define CORPSE_RECLAIM_RADIUS 39
+
enum CorpseFlags
{
CORPSE_FLAG_NONE = 0x00,
@@ -42,38 +47,51 @@ enum CorpseFlags
CORPSE_FLAG_HIDE_CLOAK = 0x10,
CORPSE_FLAG_LOOTABLE = 0x20
};
+
class Corpse : public WorldObject
{
public:
explicit Corpse( CorpseType type = CORPSE_BONES );
~Corpse( );
+
void AddToWorld();
void RemoveFromWorld();
+
bool Create( uint32 guidlow, Map *map );
bool Create( uint32 guidlow, Player *owner );
+
void SaveToDB();
//bool LoadFromDB(uint32 guid, QueryResult *result, uint32 InstanceId);
bool LoadFromDB(uint32 guid, Field *fields);
+
void DeleteBonesFromWorld();
void DeleteFromDB();
+
uint64 const& GetOwnerGUID() const { return GetUInt64Value(CORPSE_FIELD_OWNER); }
+
time_t const& GetGhostTime() const { return m_time; }
void ResetGhostTime() { m_time = time(NULL); }
CorpseType GetType() const { return m_type; }
+
GridPair const& GetGrid() const { return m_grid; }
void SetGrid(GridPair const& grid) { m_grid = grid; }
+
bool isVisibleForInState(Player const* u, bool inVisibleList) const;
+
Loot loot; // remove insignia ONLY at BG
Player* lootRecipient;
bool lootForBody;
+
void Say(int32 textId, uint32 language, uint64 TargetGuid) { MonsterSay(textId,language,TargetGuid); }
void Yell(int32 textId, uint32 language, uint64 TargetGuid) { MonsterYell(textId,language,TargetGuid); }
void TextEmote(int32 textId, uint64 TargetGuid) { MonsterTextEmote(textId,TargetGuid); }
void Whisper(int32 textId,uint64 receiver) { MonsterWhisper(textId,receiver); }
void YellToZone(int32 textId, uint32 language, uint64 TargetGuid) { MonsterYellToZone(textId,language,TargetGuid); }
+
GridReference<Corpse> &GetGridRef() { return m_gridRef; }
private:
GridReference<Corpse> m_gridRef;
+
CorpseType m_type;
time_t m_time;
GridPair m_grid; // gride for corpse position for fast search