diff options
Diffstat (limited to 'src/server')
| -rw-r--r-- | src/server/game/Entities/Player/Player.cpp | 7 | ||||
| -rw-r--r-- | src/server/game/Spells/SpellHistory.h | 4 | 
2 files changed, 7 insertions, 4 deletions
| diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp index 46061504908..0a6bb78d393 100644 --- a/src/server/game/Entities/Player/Player.cpp +++ b/src/server/game/Entities/Player/Player.cpp @@ -3127,8 +3127,11 @@ void Player::RemoveArenaSpellCooldowns(bool removeActivePetCooldowns)      GetSpellHistory()->ResetCooldowns([](SpellHistory::CooldownStorageType::iterator itr)      {          SpellInfo const* spellInfo = sSpellMgr->AssertSpellInfo(itr->first, DIFFICULTY_NONE); -        return spellInfo->RecoveryTime < 10 * MINUTE * IN_MILLISECONDS -            && spellInfo->CategoryRecoveryTime < 10 * MINUTE * IN_MILLISECONDS +        SpellHistory::Duration cooldown = 0s; +        SpellHistory::Duration categoryCooldown = 0s; +        SpellHistory::GetCooldownDurations(spellInfo, itr->second.ItemId, &cooldown, nullptr, &categoryCooldown); +        return cooldown < 10min +            && categoryCooldown < 10min              && !spellInfo->HasAttribute(SPELL_ATTR6_DO_NOT_RESET_COOLDOWN_IN_ARENA);      }, true); diff --git a/src/server/game/Spells/SpellHistory.h b/src/server/game/Spells/SpellHistory.h index f46bbd0c941..25c8a53788e 100644 --- a/src/server/game/Spells/SpellHistory.h +++ b/src/server/game/Spells/SpellHistory.h @@ -178,6 +178,8 @@ public:      void PauseCooldowns();      void ResumeCooldowns(); +    static void GetCooldownDurations(SpellInfo const* spellInfo, uint32 itemId, Duration* cooldown, uint32* categoryId, Duration* categoryCooldown); +      void SaveCooldownStateBeforeDuel();      void RestoreCooldownStateAfterDuel(); @@ -195,8 +197,6 @@ private:      void SendSetSpellCharges(uint32 chargeCategoryId, ChargeEntryCollection const& chargeCollection); -    static void GetCooldownDurations(SpellInfo const* spellInfo, uint32 itemId, Duration* cooldown, uint32* categoryId, Duration* categoryCooldown); -      Unit* _owner;      CooldownStorageType _spellCooldowns;      CooldownStorageType _spellCooldownsBeforeDuel; | 
