diff options
author | Shauren <shauren.trinity@gmail.com> | 2022-02-11 22:14:18 +0100 |
---|---|---|
committer | Shauren <shauren.trinity@gmail.com> | 2022-02-11 22:14:18 +0100 |
commit | 32c6c764763a57ef06c97bd659ebc5b2d1a390c3 (patch) | |
tree | c8f3581a9e8c1445232700e78e095a7867343dfd /src/server | |
parent | 3fca1dad20a69257504fea1d143bce42296f647c (diff) |
Core/Guilds: Forward declare GuildAchievementMgr
Diffstat (limited to 'src/server')
-rw-r--r-- | src/server/game/Guilds/Guild.cpp | 19 | ||||
-rw-r--r-- | src/server/game/Guilds/Guild.h | 14 | ||||
-rw-r--r-- | src/server/game/Guilds/GuildMgr.cpp | 3 | ||||
-rw-r--r-- | src/server/game/Handlers/InspectHandler.cpp | 1 | ||||
-rw-r--r-- | src/server/game/Handlers/MiscHandler.cpp | 3 |
5 files changed, 22 insertions, 18 deletions
diff --git a/src/server/game/Guilds/Guild.cpp b/src/server/game/Guilds/Guild.cpp index d1747ad5c55..10dc3e31c5b 100644 --- a/src/server/game/Guilds/Guild.cpp +++ b/src/server/game/Guilds/Guild.cpp @@ -17,6 +17,7 @@ #include "Guild.h" #include "AccountMgr.h" +#include "AchievementMgr.h" #include "Bag.h" #include "CalendarMgr.h" #include "CalendarPackets.h" @@ -1106,7 +1107,7 @@ Guild::Guild(): m_createdDate(0), m_accountsNumber(0), m_bankMoney(0), - m_achievementMgr(this) + m_achievementMgr(std::make_unique<GuildAchievementMgr>(this)) { } @@ -1234,7 +1235,7 @@ void Guild::SaveToDB() { CharacterDatabaseTransaction trans = CharacterDatabase.BeginTransaction(); - m_achievementMgr.SaveToDB(trans); + GetAchievementMgr().SaveToDB(trans); CharacterDatabase.CommitTransaction(trans); } @@ -1405,7 +1406,7 @@ void Guild::HandleSetAchievementTracking(WorldSession* session, uint32 const* ac uint32 achievementId = *achievementIdItr; if (AchievementEntry const* achievement = sAchievementStore.LookupEntry(achievementId)) { - if (!(achievement->Flags & ACHIEVEMENT_FLAG_GUILD) || m_achievementMgr.HasAchieved(achievementId)) + if (!(achievement->Flags & ACHIEVEMENT_FLAG_GUILD) || GetAchievementMgr().HasAchieved(achievementId)) continue; if (CriteriaTree const* tree = sCriteriaMgr->GetCriteriaTree(achievement->CriteriaTree)) @@ -1420,13 +1421,13 @@ void Guild::HandleSetAchievementTracking(WorldSession* session, uint32 const* ac } member->SetTrackedCriteriaIds(std::move(criteriaIds)); - m_achievementMgr.SendAllTrackedCriterias(player, member->GetTrackedCriteriaIds()); + GetAchievementMgr().SendAllTrackedCriterias(player, member->GetTrackedCriteriaIds()); } } void Guild::HandleGetAchievementMembers(WorldSession* session, uint32 achievementId) const { - m_achievementMgr.SendAchievementMembers(session->GetPlayer(), achievementId); + GetAchievementMgr().SendAchievementMembers(session->GetPlayer(), achievementId); } void Guild::HandleSetMOTD(WorldSession* session, std::string_view motd) @@ -2284,7 +2285,7 @@ void Guild::SendLoginInfo(WorldSession* session) for (GuildPerkSpellsEntry const* entry : sGuildPerkSpellsStore) player->LearnSpell(entry->SpellID, true); - m_achievementMgr.SendAllData(player); + GetAchievementMgr().SendAllData(player); WorldPackets::Guild::GuildMemberDailyReset packet; // tells the client to request bank withdrawal limit player->GetSession()->SendPacket(packet.Write()); @@ -3588,12 +3589,12 @@ void Guild::AddGuildNews(uint8 type, ObjectGuid guid, uint32 flags, uint32 value bool Guild::HasAchieved(uint32 achievementId) const { - return m_achievementMgr.HasAchieved(achievementId); + return GetAchievementMgr().HasAchieved(achievementId); } -void Guild::UpdateCriteria(CriteriaType type, uint64 miscValue1, uint64 miscValue2, uint64 miscValue3, WorldObject* ref, Player* player) +void Guild::UpdateCriteria(CriteriaType type, uint64 miscValue1, uint64 miscValue2, uint64 miscValue3, WorldObject const* ref, Player* player) { - m_achievementMgr.UpdateCriteria(type, miscValue1, miscValue2, miscValue3, ref, player); + GetAchievementMgr().UpdateCriteria(type, miscValue1, miscValue2, miscValue3, ref, 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 2e7f8c223e8..794d5aad8c1 100644 --- a/src/server/game/Guilds/Guild.h +++ b/src/server/game/Guilds/Guild.h @@ -18,18 +18,20 @@ #ifndef TRINITYCORE_GUILD_H #define TRINITYCORE_GUILD_H -#include "AchievementMgr.h" +#include "Common.h" #include "DatabaseEnvFwd.h" +#include "DBCEnums.h" #include "ObjectGuid.h" #include "Optional.h" #include "RaceMask.h" #include "SharedDefines.h" #include <set> #include <unordered_map> -#include <unordered_set> +class GuildAchievementMgr; class Item; class Player; +class WorldObject; class WorldPacket; class WorldSession; struct ItemPosCount; @@ -830,8 +832,8 @@ class TC_GAME_API Guild // Bank tabs void SetBankTabText(uint8 tabId, std::string_view text); - GuildAchievementMgr& GetAchievementMgr() { return m_achievementMgr; } - GuildAchievementMgr const& GetAchievementMgr() const { return m_achievementMgr; } + GuildAchievementMgr& GetAchievementMgr() { return *m_achievementMgr; } + GuildAchievementMgr const& GetAchievementMgr() const { return *m_achievementMgr; } // Pre-6.x guild leveling uint8 GetLevel() const { return GUILD_OLD_MAX_LEVEL; } @@ -842,7 +844,7 @@ class TC_GAME_API Guild void ResetTimes(bool weekly); bool HasAchieved(uint32 achievementId) const; - void UpdateCriteria(CriteriaType type, uint64 miscValue1, uint64 miscValue2, uint64 miscValue3, WorldObject* ref, Player* player); + void UpdateCriteria(CriteriaType type, uint64 miscValue1, uint64 miscValue2, uint64 miscValue3, WorldObject const* ref, Player* player); protected: ObjectGuid::LowType m_id; @@ -864,7 +866,7 @@ class TC_GAME_API Guild LogHolder<EventLogEntry> m_eventLog; std::array<LogHolder<BankEventLogEntry>, GUILD_BANK_MAX_TABS + 1> m_bankEventLog = {}; LogHolder<NewsLogEntry> m_newsLog; - GuildAchievementMgr m_achievementMgr; + std::unique_ptr<GuildAchievementMgr> m_achievementMgr; private: inline uint8 _GetRanksSize() const { return uint8(m_ranks.size()); } diff --git a/src/server/game/Guilds/GuildMgr.cpp b/src/server/game/Guilds/GuildMgr.cpp index aa113f369e4..b40b572086d 100644 --- a/src/server/game/Guilds/GuildMgr.cpp +++ b/src/server/game/Guilds/GuildMgr.cpp @@ -16,8 +16,9 @@ */ #include "GuildMgr.h" -#include "DB2Stores.h" +#include "AchievementMgr.h" #include "DatabaseEnv.h" +#include "DB2Stores.h" #include "Guild.h" #include "Log.h" #include "ObjectMgr.h" diff --git a/src/server/game/Handlers/InspectHandler.cpp b/src/server/game/Handlers/InspectHandler.cpp index f57d5128f1f..684fc2c7541 100644 --- a/src/server/game/Handlers/InspectHandler.cpp +++ b/src/server/game/Handlers/InspectHandler.cpp @@ -16,6 +16,7 @@ */ #include "WorldSession.h" +#include "AchievementMgr.h" #include "AzeriteItem.h" #include "Guild.h" #include "GuildMgr.h" diff --git a/src/server/game/Handlers/MiscHandler.cpp b/src/server/game/Handlers/MiscHandler.cpp index 8eec81420f7..facc120c789 100644 --- a/src/server/game/Handlers/MiscHandler.cpp +++ b/src/server/game/Handlers/MiscHandler.cpp @@ -17,6 +17,7 @@ #include "WorldSession.h" #include "AccountMgr.h" +#include "AchievementMgr.h" #include "AchievementPackets.h" #include "AreaTriggerPackets.h" #include "Battleground.h" @@ -43,7 +44,6 @@ #include "Object.h" #include "ObjectAccessor.h" #include "ObjectMgr.h" -#include "Opcodes.h" #include "OutdoorPvP.h" #include "Player.h" #include "RestMgr.h" @@ -53,7 +53,6 @@ #include "WhoListStorage.h" #include "WhoPackets.h" #include "World.h" -#include "WorldPacket.h" #include <cstdarg> #include <zlib.h> |