diff options
| author | QAston <none@none> | 2009-07-30 17:16:56 +0200 |
|---|---|---|
| committer | QAston <none@none> | 2009-07-30 17:16:56 +0200 |
| commit | 13758fcae186644b84837f4d28f9b72f101bdf5e (patch) | |
| tree | e60a5446f5d6c0009b3d6a0815d132b7774474ce /src/game/Unit.h | |
| parent | 2095daca858d75348e3e111cf874bb3e9e4de9f3 (diff) | |
*Fix per-caster aura state based on [8218] (Author: VladimirMangos;almost nothing left from original patch):
*Fixes all per caster aurastates instead of only conflagrate
*Adds a holder for aura state auras for speedup search
*Save some memory space by removing m_auraStateMask from aura class.
--HG--
branch : trunk
Diffstat (limited to 'src/game/Unit.h')
| -rw-r--r-- | src/game/Unit.h | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/src/game/Unit.h b/src/game/Unit.h index 85f2ed154dd..5a09d0f8c0e 100644 --- a/src/game/Unit.h +++ b/src/game/Unit.h @@ -1023,6 +1023,7 @@ class TRINITY_DLL_SPEC Unit : public WorldObject typedef std::set<Unit*> ControlList; typedef std::pair<uint32, uint8> spellEffectPair; typedef std::multimap<uint32, Aura*> AuraMap; + typedef std::multimap<AuraState, Aura*> AuraStateAurasMap; typedef std::list<AuraEffect *> AuraEffectList; typedef std::list<Aura *> AuraList; typedef std::list<DiminishingReturn> Diminishing; @@ -1658,6 +1659,7 @@ class TRINITY_DLL_SPEC Unit : public WorldObject uint32 CalculateDamage(WeaponAttackType attType, bool normalized); float GetAPMultiplier(WeaponAttackType attType, bool normalized); void ModifyAuraState(AuraState flag, bool apply); + uint32 BuildAuraStateUpdateForTarget(Unit * target) const; bool HasAuraState(AuraState flag, SpellEntry const *spellProto = NULL, Unit * Caster = NULL) const ; void UnsummonAllTotems(); Unit* SelectMagnetTarget(Unit *victim, SpellEntry const *spellInfo = NULL); @@ -1855,12 +1857,12 @@ class TRINITY_DLL_SPEC Unit : public WorldObject AuraList m_scAuras; // casted singlecast auras AuraList m_interruptableAuras; AuraList m_removedAuras; + AuraStateAurasMap m_auraStateAuras; // Used for improve performance of aura state checks on aura apply/remove uint32 m_interruptMask; float m_auraModifiersGroup[UNIT_MOD_END][MODIFIER_TYPE_END]; float m_weaponDamage[MAX_ATTACK][2]; bool m_canModifyStats; - //std::list< spellEffectPair > AuraSpells[TOTAL_AURAS]; // TODO: use this if ok for mem VisibleAuraMap m_visibleAuras; float m_speed_rate[MAX_MOVE_TYPE]; |
