Project SkyFire Core
SkyFire 5.4.8 server core API documentation
Toggle main menu visibility
Loading...
Searching...
No Matches
UnitEvents.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 SF_UNITEVENTS
7
#define SF_UNITEVENTS
8
9
#include "
Common.h
"
10
11
class
ThreatContainer
;
12
class
ThreatManager
;
13
class
HostileReference
;
14
15
//==============================================================
16
//==============================================================
17
18
enum
UNIT_EVENT_TYPE
19
{
20
// Player/Pet changed on/offline status
21
UEV_THREAT_REF_ONLINE_STATUS
= 1 << 0,
22
23
// Threat for Player/Pet changed
24
UEV_THREAT_REF_THREAT_CHANGE
= 1 << 1,
25
26
// Player/Pet will be removed from list (dead) [for internal use]
27
UEV_THREAT_REF_REMOVE_FROM_LIST
= 1 << 2,
28
29
// Player/Pet entered/left water or some other place where it is/was not accessible for the creature
30
UEV_THREAT_REF_ASSECCIBLE_STATUS
= 1 << 3,
31
32
// Threat list is going to be sorted (if dirty flag is set)
33
UEV_THREAT_SORT_LIST
= 1 << 4,
34
35
// New target should be fetched, could tbe the current target as well
36
UEV_THREAT_SET_NEXT_TARGET
= 1 << 5,
37
38
// A new victim (target) was set. Could be NULL
39
UEV_THREAT_VICTIM_CHANGED
= 1 << 6
40
41
// Future use
42
//UEV_UNIT_KILLED = 1<<7,
43
44
//Future use
45
//UEV_UNIT_HEALTH_CHANGE = 1<<8,
46
};
47
48
#define UEV_THREAT_REF_EVENT_MASK (UEV_THREAT_REF_ONLINE_STATUS | UEV_THREAT_REF_THREAT_CHANGE | UEV_THREAT_REF_REMOVE_FROM_LIST | UEV_THREAT_REF_ASSECCIBLE_STATUS)
49
#define UEV_THREAT_MANAGER_EVENT_MASK (UEV_THREAT_SORT_LIST | UEV_THREAT_SET_NEXT_TARGET | UEV_THREAT_VICTIM_CHANGED)
50
#define UEV_ALL_EVENT_MASK (0xffffffff)
51
52
// Future use
53
//#define UEV_UNIT_EVENT_MASK (UEV_UNIT_KILLED | UEV_UNIT_HEALTH_CHANGE)
54
55
//==============================================================
56
57
class
UnitBaseEvent
58
{
59
private
:
60
uint32
iType
;
61
public
:
62
UnitBaseEvent
(
uint32
pType) {
iType
= pType; }
63
uint32
getType
()
const
{
return
iType
; }
64
bool
matchesTypeMask
(
uint32
pMask)
const
{
return
iType
& pMask; }
65
66
void
setType
(
uint32
pType) {
iType
= pType; }
67
};
68
69
//==============================================================
70
71
class
ThreatRefStatusChangeEvent
:
public
UnitBaseEvent
72
{
73
private
:
74
HostileReference
*
iHostileReference
;
75
ThreatManager
*
iThreatManager
;
76
float
iFValue
;
77
78
public
:
79
ThreatRefStatusChangeEvent
(
uint32
pType) :
80
UnitBaseEvent
(pType),
iThreatManager
(NULL),
iHostileReference
(NULL),
iFValue
(0.0f) { }
81
82
ThreatRefStatusChangeEvent
(
uint32
pType,
HostileReference
* pHostileReference) :
83
UnitBaseEvent
(pType),
iThreatManager
(NULL),
iHostileReference
(pHostileReference),
iFValue
(0.0f) { }
84
85
ThreatRefStatusChangeEvent
(
uint32
pType,
HostileReference
* pHostileReference,
float
pValue) :
86
UnitBaseEvent
(pType),
iThreatManager
(NULL),
iHostileReference
(pHostileReference),
iFValue
(pValue) { }
87
88
float
getFValue
()
const
{
return
iFValue
; }
89
90
HostileReference
*
getReference
()
const
{
return
iHostileReference
; }
91
92
void
setThreatManager
(
ThreatManager
* pThreatManager) {
iThreatManager
= pThreatManager; }
93
94
ThreatManager
*
getThreatManager
()
const
{
return
iThreatManager
; }
95
};
96
97
//==============================================================
98
99
class
ThreatManagerEvent
:
public
ThreatRefStatusChangeEvent
100
{
101
private
:
102
ThreatContainer
*
iThreatContainer
;
103
public
:
104
ThreatManagerEvent
(
uint32
pType) :
ThreatRefStatusChangeEvent
(pType),
iThreatContainer
(NULL) { }
105
ThreatManagerEvent
(
uint32
pType,
HostileReference
* pHostileReference) :
ThreatRefStatusChangeEvent
(pType, pHostileReference),
iThreatContainer
(NULL) { }
106
107
void
setThreatContainer
(
ThreatContainer
* pThreatContainer) {
iThreatContainer
= pThreatContainer; }
108
109
ThreatContainer
*
getThreatContainer
()
const
{
return
iThreatContainer
; }
110
};
111
112
//==============================================================
113
#endif
Common.h
uint32
std::uint32_t uint32
Definition
Define.h:77
UNIT_EVENT_TYPE
UNIT_EVENT_TYPE
Definition
UnitEvents.h:19
UEV_THREAT_REF_THREAT_CHANGE
@ UEV_THREAT_REF_THREAT_CHANGE
Definition
UnitEvents.h:24
UEV_THREAT_SORT_LIST
@ UEV_THREAT_SORT_LIST
Definition
UnitEvents.h:33
UEV_THREAT_REF_ONLINE_STATUS
@ UEV_THREAT_REF_ONLINE_STATUS
Definition
UnitEvents.h:21
UEV_THREAT_REF_REMOVE_FROM_LIST
@ UEV_THREAT_REF_REMOVE_FROM_LIST
Definition
UnitEvents.h:27
UEV_THREAT_REF_ASSECCIBLE_STATUS
@ UEV_THREAT_REF_ASSECCIBLE_STATUS
Definition
UnitEvents.h:30
UEV_THREAT_SET_NEXT_TARGET
@ UEV_THREAT_SET_NEXT_TARGET
Definition
UnitEvents.h:36
UEV_THREAT_VICTIM_CHANGED
@ UEV_THREAT_VICTIM_CHANGED
Definition
UnitEvents.h:39
HostileReference
Definition
ThreatManager.h:28
ThreatContainer
Definition
ThreatManager.h:123
ThreatManagerEvent::setThreatContainer
void setThreatContainer(ThreatContainer *pThreatContainer)
Definition
UnitEvents.h:107
ThreatManagerEvent::ThreatManagerEvent
ThreatManagerEvent(uint32 pType, HostileReference *pHostileReference)
Definition
UnitEvents.h:105
ThreatManagerEvent::iThreatContainer
ThreatContainer * iThreatContainer
Definition
UnitEvents.h:102
ThreatManagerEvent::getThreatContainer
ThreatContainer * getThreatContainer() const
Definition
UnitEvents.h:109
ThreatManagerEvent::ThreatManagerEvent
ThreatManagerEvent(uint32 pType)
Definition
UnitEvents.h:104
ThreatManager
Definition
ThreatManager.h:180
ThreatRefStatusChangeEvent::iFValue
float iFValue
Definition
UnitEvents.h:76
ThreatRefStatusChangeEvent::setThreatManager
void setThreatManager(ThreatManager *pThreatManager)
Definition
UnitEvents.h:92
ThreatRefStatusChangeEvent::ThreatRefStatusChangeEvent
ThreatRefStatusChangeEvent(uint32 pType, HostileReference *pHostileReference)
Definition
UnitEvents.h:82
ThreatRefStatusChangeEvent::getFValue
float getFValue() const
Definition
UnitEvents.h:88
ThreatRefStatusChangeEvent::ThreatRefStatusChangeEvent
ThreatRefStatusChangeEvent(uint32 pType)
Definition
UnitEvents.h:79
ThreatRefStatusChangeEvent::iHostileReference
HostileReference * iHostileReference
Definition
UnitEvents.h:74
ThreatRefStatusChangeEvent::ThreatRefStatusChangeEvent
ThreatRefStatusChangeEvent(uint32 pType, HostileReference *pHostileReference, float pValue)
Definition
UnitEvents.h:85
ThreatRefStatusChangeEvent::iThreatManager
ThreatManager * iThreatManager
Definition
UnitEvents.h:75
ThreatRefStatusChangeEvent::getReference
HostileReference * getReference() const
Definition
UnitEvents.h:90
ThreatRefStatusChangeEvent::getThreatManager
ThreatManager * getThreatManager() const
Definition
UnitEvents.h:94
UnitBaseEvent::matchesTypeMask
bool matchesTypeMask(uint32 pMask) const
Definition
UnitEvents.h:64
UnitBaseEvent::setType
void setType(uint32 pType)
Definition
UnitEvents.h:66
UnitBaseEvent::UnitBaseEvent
UnitBaseEvent(uint32 pType)
Definition
UnitEvents.h:62
UnitBaseEvent::iType
uint32 iType
Definition
UnitEvents.h:60
UnitBaseEvent::getType
uint32 getType() const
Definition
UnitEvents.h:63
src
server
game
Combat
UnitEvents.h
Generated on
for Project SkyFire Core by
1.17.0