diff options
| author | Shauren <shauren.trinity@gmail.com> | 2016-05-07 01:16:29 +0200 |
|---|---|---|
| committer | Shauren <shauren.trinity@gmail.com> | 2016-05-07 01:16:29 +0200 |
| commit | c75fcbe20b07fd7518be58bf02ba30d903133449 (patch) | |
| tree | 747a9ecc6a91ffc04d394090c0a3d2e588f630b4 /src/server/game/Guilds | |
| parent | 44962fe3a9551f183ee9003c8947d5f433cfee16 (diff) | |
Core/Achievements: AchievementMgr refactoring
* Extracted base CriteriaHandler class that deals with criteria only and will be reused for future scenario implementation
* Fixed players earning guild achievements
Diffstat (limited to 'src/server/game/Guilds')
| -rw-r--r-- | src/server/game/Guilds/Guild.cpp | 12 | ||||
| -rw-r--r-- | src/server/game/Guilds/Guild.h | 8 | ||||
| -rw-r--r-- | src/server/game/Guilds/GuildMgr.cpp | 2 |
3 files changed, 11 insertions, 11 deletions
diff --git a/src/server/game/Guilds/Guild.cpp b/src/server/game/Guilds/Guild.cpp index 586af65ae5a..86a59f04f23 100644 --- a/src/server/game/Guilds/Guild.cpp +++ b/src/server/game/Guilds/Guild.cpp @@ -1391,11 +1391,11 @@ void Guild::HandleSetAchievementTracking(WorldSession* session, std::set<uint32> for (uint32 achievementId : achievementIds) { - if (AchievementEntry const* achievement = sAchievementMgr->GetAchievement(achievementId)) + if (AchievementEntry const* achievement = sAchievementStore.LookupEntry(achievementId)) { - if (AchievementCriteriaTree const* tree = sAchievementMgr->GetAchievementCriteriaTree(achievement->CriteriaTree)) + if (CriteriaTree const* tree = sCriteriaMgr->GetCriteriaTree(achievement->CriteriaTree)) { - sAchievementMgr->WalkCriteriaTree(tree, [&criteriaIds](AchievementCriteriaTree const* node) + CriteriaMgr::WalkCriteriaTree(tree, [&criteriaIds](CriteriaTree const* node) { if (node->Criteria) criteriaIds.insert(node->Criteria->ID); @@ -2162,7 +2162,7 @@ void Guild::SendLoginInfo(WorldSession* session) if (entry->GuildLevel <= GetLevel()) player->LearnSpell(entry->SpellID, true); - m_achievementMgr.SendAllAchievementData(player); + m_achievementMgr.SendAllData(player); WorldPackets::Guild::GuildMemberDailyReset packet; // tells the client to request bank withdrawal limit player->GetSession()->SendPacket(packet.Write()); @@ -3384,9 +3384,9 @@ bool Guild::HasAchieved(uint32 achievementId) const return m_achievementMgr.HasAchieved(achievementId); } -void Guild::UpdateAchievementCriteria(AchievementCriteriaTypes type, uint64 miscValue1, uint64 miscValue2, uint64 miscValue3, Unit* unit, Player* player) +void Guild::UpdateCriteria(CriteriaTypes type, uint64 miscValue1, uint64 miscValue2, uint64 miscValue3, Unit* unit, Player* player) { - m_achievementMgr.UpdateAchievementCriteria(type, miscValue1, miscValue2, miscValue3, unit, player); + m_achievementMgr.UpdateCriteria(type, miscValue1, miscValue2, miscValue3, unit, player); } void Guild::HandleNewsSetSticky(WorldSession* session, uint32 newsId, bool sticky) diff --git a/src/server/game/Guilds/Guild.h b/src/server/game/Guilds/Guild.h index d41a4f7c726..db20f48c3e7 100644 --- a/src/server/game/Guilds/Guild.h +++ b/src/server/game/Guilds/Guild.h @@ -865,8 +865,8 @@ public: // Bank tabs void SetBankTabText(uint8 tabId, std::string const& text); - AchievementMgr<Guild>& GetAchievementMgr() { return m_achievementMgr; } - AchievementMgr<Guild> const& GetAchievementMgr() const { return m_achievementMgr; } + GuildAchievementMgr& GetAchievementMgr() { return m_achievementMgr; } + GuildAchievementMgr const& GetAchievementMgr() const { return m_achievementMgr; } // Guild leveling uint8 GetLevel() const { return _level; } @@ -877,7 +877,7 @@ public: void ResetTimes(bool weekly); bool HasAchieved(uint32 achievementId) const; - void UpdateAchievementCriteria(AchievementCriteriaTypes type, uint64 miscValue1, uint64 miscValue2, uint64 miscValue3, Unit* unit, Player* player); + void UpdateCriteria(CriteriaTypes type, uint64 miscValue1, uint64 miscValue2, uint64 miscValue3, Unit* unit, Player* player); protected: ObjectGuid::LowType m_id; @@ -899,7 +899,7 @@ protected: LogHolder* m_eventLog; LogHolder* m_bankEventLog[GUILD_BANK_MAX_TABS + 1]; LogHolder* m_newsLog; - AchievementMgr<Guild> m_achievementMgr; + GuildAchievementMgr m_achievementMgr; uint8 _level; diff --git a/src/server/game/Guilds/GuildMgr.cpp b/src/server/game/Guilds/GuildMgr.cpp index 8cafc8cdd2f..6af809dcedb 100644 --- a/src/server/game/Guilds/GuildMgr.cpp +++ b/src/server/game/Guilds/GuildMgr.cpp @@ -511,7 +511,7 @@ void GuildMgr::LoadGuildRewards() uint32 requiredAchievementId = fields[0].GetUInt32(); - if (!sAchievementMgr->GetAchievement(requiredAchievementId)) + if (!sAchievementStore.LookupEntry(requiredAchievementId)) { TC_LOG_ERROR("server.loading", "Guild rewards constains not existing achievement entry %u", requiredAchievementId); continue; |
