Project SkyFire Core
SkyFire 5.4.8 server core API documentation
Loading...
Searching...
No Matches
Corpse.h
Go to the documentation of this file.
1/*
2* This file is part of Project SkyFire https://www.projectskyfire.org.
3* See LICENSE.md file for Copyright information
4*/
5
6#ifndef SKYFIRESERVER_CORPSE_H
7#define SKYFIRESERVER_CORPSE_H
8
9#include "DatabaseEnv.h"
10#include "GridDefines.h"
11#include "LootMgr.h"
12#include "Object.h"
13
21
22// Value equal client resurrection dialog show radius.
23#define CORPSE_RECLAIM_RADIUS 39
24
35
36class Corpse : public WorldObject, public GridObject<Corpse>
37{
38public:
40 ~Corpse() { }
41
42 void AddToWorld();
43 void RemoveFromWorld();
44
45 bool Create(uint32 guidlow, Map* map);
46 bool Create(uint32 guidlow, Player* owner);
47
48 void SaveToDB();
49 bool LoadCorpseFromDB(uint32 guid, Field* fields);
50
52 void DeleteFromDB(SQLTransaction& trans);
53
55
56 time_t const& GetGhostTime() const { return m_time; }
57 void ResetGhostTime() { m_time = time(NULL); }
58 CorpseType GetType() const { return m_type; }
59
60 GridCoord const& GetGridCoord() const { return _gridCoord; }
61 void SetGridCoord(GridCoord const& gridCoord) { _gridCoord = gridCoord; }
62
63 Loot loot; // remove insignia ONLY at BG
66 bool IsExpired(time_t t) const;
67
68private:
70 time_t m_time;
71 GridCoord _gridCoord; // gride for corpse position for fast search
72};
73#endif
CorpseType
Definition Corpse.h:15
@ CORPSE_RESURRECTABLE_PVP
Definition Corpse.h:18
@ MAX_CORPSE_TYPE
Definition Corpse.h:19
@ CORPSE_BONES
Definition Corpse.h:16
@ CORPSE_RESURRECTABLE_PVE
Definition Corpse.h:17
CorpseFlags
Definition Corpse.h:26
@ CORPSE_FLAG_UNK1
Definition Corpse.h:29
@ CORPSE_FLAG_HIDE_CLOAK
Definition Corpse.h:32
@ CORPSE_FLAG_NONE
Definition Corpse.h:27
@ CORPSE_FLAG_BONES
Definition Corpse.h:28
@ CORPSE_FLAG_UNK2
Definition Corpse.h:30
@ CORPSE_FLAG_HIDE_HELM
Definition Corpse.h:31
@ CORPSE_FLAG_LOOTABLE
Definition Corpse.h:33
std::uint32_t uint32
Definition Define.h:77
std::uint64_t uint64
Definition Define.h:76
CoordPair< MAX_NUMBER_OF_GRIDS > GridCoord
Skyfire::AutoPtr< Transaction, Skyfire::Mutex > SQLTransaction
Definition Transaction.h:42
@ CORPSE_FIELD_OWNER
bool IsExpired(time_t t) const
Definition Corpse.cpp:184
void AddToWorld()
Definition Corpse.cpp:26
void SaveToDB()
Definition Corpse.cpp:78
void ResetGhostTime()
Definition Corpse.h:57
void RemoveFromWorld()
Definition Corpse.cpp:35
bool LoadCorpseFromDB(uint32 guid, Field *fields)
Definition Corpse.cpp:140
void DeleteFromDB(SQLTransaction &trans)
Definition Corpse.cpp:122
Corpse(CorpseType type=CorpseType::CORPSE_BONES)
Definition Corpse.cpp:16
void SetGridCoord(GridCoord const &gridCoord)
Definition Corpse.h:61
Player * lootRecipient
Definition Corpse.h:64
CorpseType m_type
Definition Corpse.h:69
GridCoord _gridCoord
Definition Corpse.h:71
Loot loot
Definition Corpse.h:63
time_t const & GetGhostTime() const
Definition Corpse.h:56
bool Create(uint32 guidlow, Map *map)
Definition Corpse.cpp:44
time_t m_time
Definition Corpse.h:70
~Corpse()
Definition Corpse.h:40
void DeleteBonesFromWorld()
Definition Corpse.cpp:108
uint64 GetOwnerGUID() const
Definition Corpse.h:54
CorpseType GetType() const
Definition Corpse.h:58
bool lootForBody
Definition Corpse.h:65
GridCoord const & GetGridCoord() const
Definition Corpse.h:60
Definition Field.h:16
Definition Map.h:238
uint64 GetUInt64Value(uint16 index) const
Definition Object.cpp:331
WorldObject(bool isWorldObject)
Definition Object.cpp:1514