aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/server/game/Guilds/Guild.cpp19
-rw-r--r--src/server/game/Guilds/Guild.h14
-rw-r--r--src/server/game/Guilds/GuildMgr.cpp3
-rw-r--r--src/server/game/Handlers/InspectHandler.cpp1
-rw-r--r--src/server/game/Handlers/MiscHandler.cpp3
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>