Project SkyFire Core
SkyFire 5.4.8 server core API documentation
Toggle main menu visibility
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
14
enum class
CorpseType
15
{
16
CORPSE_BONES
= 0,
17
CORPSE_RESURRECTABLE_PVE
= 1,
18
CORPSE_RESURRECTABLE_PVP
= 2,
19
MAX_CORPSE_TYPE
= 3
20
};
21
22
// Value equal client resurrection dialog show radius.
23
#define CORPSE_RECLAIM_RADIUS 39
24
25
enum
CorpseFlags
26
{
27
CORPSE_FLAG_NONE
= 0x00,
28
CORPSE_FLAG_BONES
= 0x01,
29
CORPSE_FLAG_UNK1
= 0x02,
30
CORPSE_FLAG_UNK2
= 0x04,
31
CORPSE_FLAG_HIDE_HELM
= 0x08,
32
CORPSE_FLAG_HIDE_CLOAK
= 0x10,
33
CORPSE_FLAG_LOOTABLE
= 0x20
34
};
35
36
class
Corpse
:
public
WorldObject
,
public
GridObject
<Corpse>
37
{
38
public
:
39
explicit
Corpse
(
CorpseType
type =
CorpseType::CORPSE_BONES
);
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
51
void
DeleteBonesFromWorld
();
52
void
DeleteFromDB
(
SQLTransaction
& trans);
53
54
uint64
GetOwnerGUID
()
const
{
return
GetUInt64Value
(
CORPSE_FIELD_OWNER
); }
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
64
Player
*
lootRecipient
;
65
bool
lootForBody
;
66
bool
IsExpired
(time_t t)
const
;
67
68
private
:
69
CorpseType
m_type
;
70
time_t
m_time
;
71
GridCoord
_gridCoord
;
// gride for corpse position for fast search
72
};
73
#endif
CorpseType
CorpseType
Definition
Corpse.h:15
CorpseType::CORPSE_RESURRECTABLE_PVP
@ CORPSE_RESURRECTABLE_PVP
Definition
Corpse.h:18
CorpseType::MAX_CORPSE_TYPE
@ MAX_CORPSE_TYPE
Definition
Corpse.h:19
CorpseType::CORPSE_BONES
@ CORPSE_BONES
Definition
Corpse.h:16
CorpseType::CORPSE_RESURRECTABLE_PVE
@ CORPSE_RESURRECTABLE_PVE
Definition
Corpse.h:17
CorpseFlags
CorpseFlags
Definition
Corpse.h:26
CORPSE_FLAG_UNK1
@ CORPSE_FLAG_UNK1
Definition
Corpse.h:29
CORPSE_FLAG_HIDE_CLOAK
@ CORPSE_FLAG_HIDE_CLOAK
Definition
Corpse.h:32
CORPSE_FLAG_NONE
@ CORPSE_FLAG_NONE
Definition
Corpse.h:27
CORPSE_FLAG_BONES
@ CORPSE_FLAG_BONES
Definition
Corpse.h:28
CORPSE_FLAG_UNK2
@ CORPSE_FLAG_UNK2
Definition
Corpse.h:30
CORPSE_FLAG_HIDE_HELM
@ CORPSE_FLAG_HIDE_HELM
Definition
Corpse.h:31
CORPSE_FLAG_LOOTABLE
@ CORPSE_FLAG_LOOTABLE
Definition
Corpse.h:33
DatabaseEnv.h
uint32
std::uint32_t uint32
Definition
Define.h:77
uint64
std::uint64_t uint64
Definition
Define.h:76
GridDefines.h
GridCoord
CoordPair< MAX_NUMBER_OF_GRIDS > GridCoord
Definition
GridDefines.h:157
LootMgr.h
Object.h
SQLTransaction
Skyfire::AutoPtr< Transaction, Skyfire::Mutex > SQLTransaction
Definition
Transaction.h:42
CORPSE_FIELD_OWNER
@ CORPSE_FIELD_OWNER
Definition
UpdateFields.h:271
Corpse::IsExpired
bool IsExpired(time_t t) const
Definition
Corpse.cpp:184
Corpse::AddToWorld
void AddToWorld()
Definition
Corpse.cpp:26
Corpse::SaveToDB
void SaveToDB()
Definition
Corpse.cpp:78
Corpse::ResetGhostTime
void ResetGhostTime()
Definition
Corpse.h:57
Corpse::RemoveFromWorld
void RemoveFromWorld()
Definition
Corpse.cpp:35
Corpse::LoadCorpseFromDB
bool LoadCorpseFromDB(uint32 guid, Field *fields)
Definition
Corpse.cpp:140
Corpse::DeleteFromDB
void DeleteFromDB(SQLTransaction &trans)
Definition
Corpse.cpp:122
Corpse::Corpse
Corpse(CorpseType type=CorpseType::CORPSE_BONES)
Definition
Corpse.cpp:16
Corpse::SetGridCoord
void SetGridCoord(GridCoord const &gridCoord)
Definition
Corpse.h:61
Corpse::lootRecipient
Player * lootRecipient
Definition
Corpse.h:64
Corpse::m_type
CorpseType m_type
Definition
Corpse.h:69
Corpse::_gridCoord
GridCoord _gridCoord
Definition
Corpse.h:71
Corpse::loot
Loot loot
Definition
Corpse.h:63
Corpse::GetGhostTime
time_t const & GetGhostTime() const
Definition
Corpse.h:56
Corpse::Create
bool Create(uint32 guidlow, Map *map)
Definition
Corpse.cpp:44
Corpse::m_time
time_t m_time
Definition
Corpse.h:70
Corpse::~Corpse
~Corpse()
Definition
Corpse.h:40
Corpse::DeleteBonesFromWorld
void DeleteBonesFromWorld()
Definition
Corpse.cpp:108
Corpse::GetOwnerGUID
uint64 GetOwnerGUID() const
Definition
Corpse.h:54
Corpse::GetType
CorpseType GetType() const
Definition
Corpse.h:58
Corpse::lootForBody
bool lootForBody
Definition
Corpse.h:65
Corpse::GetGridCoord
GridCoord const & GetGridCoord() const
Definition
Corpse.h:60
Field
Definition
Field.h:16
GridObject
Definition
Object.h:553
Map
Definition
Map.h:238
Object::GetUInt64Value
uint64 GetUInt64Value(uint16 index) const
Definition
Object.cpp:331
Player
Definition
Player.h:1289
WorldObject::WorldObject
WorldObject(bool isWorldObject)
Definition
Object.cpp:1514
Loot
Definition
LootMgr.h:277
src
server
game
Entities
Corpse
Corpse.h
Generated on
for Project SkyFire Core by
1.17.0