aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Spells
diff options
context:
space:
mode:
authorShinDarth <borzifrancesco@gmail.com>2015-10-01 23:21:49 +0200
committerShinDarth <borzifrancesco@gmail.com>2015-10-05 15:57:53 +0200
commit24b41a52114ebf90428b372b197cfeaed2332d01 (patch)
tree4bb52c5d3f40a49429d29b7541fd746e5ab6f469 /src/server/game/Spells
parentba009ea2e2d13c0aa8a76df5bfead6f757ccddc3 (diff)
Core/Player: implement ResetCoolDownAfterDuel configurable feature
Diffstat (limited to 'src/server/game/Spells')
-rw-r--r--src/server/game/Spells/SpellHistory.cpp17
-rw-r--r--src/server/game/Spells/SpellHistory.h1
2 files changed, 18 insertions, 0 deletions
diff --git a/src/server/game/Spells/SpellHistory.cpp b/src/server/game/Spells/SpellHistory.cpp
index 09e3be690b1..208b4cf7ed9 100644
--- a/src/server/game/Spells/SpellHistory.cpp
+++ b/src/server/game/Spells/SpellHistory.cpp
@@ -637,6 +637,23 @@ void SpellHistory::BuildCooldownPacket(WorldPacket& data, uint8 flags, PacketCoo
}
}
+uint16 SpellHistory::GetArenaCooldownsSize()
+{
+ uint16 count = 0;
+
+ for (auto itr = _spellCooldowns.begin(); itr != _spellCooldowns.end();)
+ {
+ SpellInfo const* spellInfo = sSpellMgr->EnsureSpellInfo(itr->first);
+
+ if (spellInfo->RecoveryTime < 10 * MINUTE * IN_MILLISECONDS &&
+ spellInfo->CategoryRecoveryTime < 10 * MINUTE * IN_MILLISECONDS)
+ ++count;
+ ++itr;
+ }
+
+ return count;
+}
+
template void SpellHistory::LoadFromDB<Player>(PreparedQueryResult cooldownsResult);
template void SpellHistory::LoadFromDB<Pet>(PreparedQueryResult cooldownsResult);
template void SpellHistory::SaveToDB<Player>(SQLTransaction& trans);
diff --git a/src/server/game/Spells/SpellHistory.h b/src/server/game/Spells/SpellHistory.h
index f1533d57aef..4d0642d644e 100644
--- a/src/server/game/Spells/SpellHistory.h
+++ b/src/server/game/Spells/SpellHistory.h
@@ -117,6 +117,7 @@ public:
void BuildCooldownPacket(WorldPacket& data, uint8 flags, uint32 spellId, uint32 cooldown) const;
CooldownStorageType::size_type GetCooldownsSizeForPacket() const { return _spellCooldowns.size(); }
+ uint16 GetArenaCooldownsSize();
private:
Player* GetPlayerOwner() const;