diff options
Diffstat (limited to 'src/game/UnitEvents.h')
-rw-r--r-- | src/game/UnitEvents.h | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/src/game/UnitEvents.h b/src/game/UnitEvents.h index a4046ea46b8..67f8d01f0d6 100644 --- a/src/game/UnitEvents.h +++ b/src/game/UnitEvents.h @@ -17,41 +17,58 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ + #ifndef _UNITEVENTS #define _UNITEVENTS + #include "Common.h" + class ThreatContainer; class ThreatManager; class HostilReference; + //============================================================== //============================================================== + enum UNIT_EVENT_TYPE { // Player/Pet changed on/offline status UEV_THREAT_REF_ONLINE_STATUS = 1<<0, + // Threat for Player/Pet changed UEV_THREAT_REF_THREAT_CHANGE = 1<<1, + // Player/Pet will be removed from list (dead) [for internal use] UEV_THREAT_REF_REMOVE_FROM_LIST = 1<<2, + // Player/Pet entered/left water or some other place where it is/was not accessible for the creature UEV_THREAT_REF_ASSECCIBLE_STATUS = 1<<3, + // Threat list is going to be sorted (if dirty flag is set) UEV_THREAT_SORT_LIST = 1<<4, + // New target should be fetched, could tbe the current target as well UEV_THREAT_SET_NEXT_TARGET = 1<<5, + // A new victim (target) was set. Could be NULL UEV_THREAT_VICTIM_CHANGED = 1<<6, + // Future use //UEV_UNIT_KILLED = 1<<7, + //Future use //UEV_UNIT_HEALTH_CHANGE = 1<<8, }; + #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) #define UEV_THREAT_MANAGER_EVENT_MASK (UEV_THREAT_SORT_LIST | UEV_THREAT_SET_NEXT_TARGET | UEV_THREAT_VICTIM_CHANGED) #define UEV_ALL_EVENT_MASK (0xffffffff) + // Future use //#define UEV_UNIT_EVENT_MASK (UEV_UNIT_KILLED | UEV_UNIT_HEALTH_CHANGE) + //============================================================== + class TRINITY_DLL_SPEC UnitBaseEvent { private: @@ -60,9 +77,13 @@ class TRINITY_DLL_SPEC UnitBaseEvent UnitBaseEvent(uint32 pType) { iType = pType; } uint32 getType() const { return iType; } bool matchesTypeMask(uint32 pMask) const { return iType & pMask; } + void setType(uint32 pType) { iType = pType; } + }; + //============================================================== + class TRINITY_DLL_SPEC ThreatRefStatusChangeEvent : public UnitBaseEvent { private: @@ -76,18 +97,30 @@ class TRINITY_DLL_SPEC ThreatRefStatusChangeEvent : public UnitBaseEvent ThreatManager* iThreatManager; public: ThreatRefStatusChangeEvent(uint32 pType) : UnitBaseEvent(pType) { iHostilReference = NULL; } + ThreatRefStatusChangeEvent(uint32 pType, HostilReference* pHostilReference) : UnitBaseEvent(pType) { iHostilReference = pHostilReference; } + ThreatRefStatusChangeEvent(uint32 pType, HostilReference* pHostilReference, float pValue) : UnitBaseEvent(pType) { iHostilReference = pHostilReference; iFValue = pValue; } + ThreatRefStatusChangeEvent(uint32 pType, HostilReference* pHostilReference, bool pValue) : UnitBaseEvent(pType) { iHostilReference = pHostilReference; iBValue = pValue; } + int32 getIValue() const { return iIValue; } + float getFValue() const { return iFValue; } + bool getBValue() const { return iBValue; } + void setBValue(bool pValue) { iBValue = pValue; } + HostilReference* getReference() const { return iHostilReference; } + void setThreatManager(ThreatManager* pThreatManager) { iThreatManager = pThreatManager; } + ThreatManager* getThreatManager() const { return iThreatManager; } }; + //============================================================== + class TRINITY_DLL_SPEC ThreatManagerEvent : public ThreatRefStatusChangeEvent { private: @@ -95,9 +128,12 @@ class TRINITY_DLL_SPEC ThreatManagerEvent : public ThreatRefStatusChangeEvent public: ThreatManagerEvent(uint32 pType) : ThreatRefStatusChangeEvent(pType) {} ThreatManagerEvent(uint32 pType, HostilReference* pHostilReference) : ThreatRefStatusChangeEvent(pType, pHostilReference) {} + void setThreatContainer(ThreatContainer* pThreatContainer) { iThreatContainer = pThreatContainer; } + ThreatContainer* getThreatContainer() const { return iThreatContainer; } }; + //============================================================== #endif |