diff options
author | Naios <naios-dev@live.de> | 2016-03-11 17:11:05 +0100 |
---|---|---|
committer | Naios <naios-dev@live.de> | 2016-03-11 18:35:49 +0100 |
commit | 329225b40d110bed634f8cd0a1ab5c6dc7bbbdd1 (patch) | |
tree | 5cf3f149429e6821660cdc9c04ef3210ac374e4b /src | |
parent | a8fe7f6eb7195368bbb4d0256927405f5e5c6f87 (diff) |
Core/Game: Move singleton instances into compilation units
* Fixes issues when building shared libraries
(prevents gcc and clang from providing several instance)
Diffstat (limited to 'src')
74 files changed, 279 insertions, 195 deletions
diff --git a/src/server/game/AI/SmartScripts/SmartScriptMgr.cpp b/src/server/game/AI/SmartScripts/SmartScriptMgr.cpp index b02906a7164..d249bf8c42c 100644 --- a/src/server/game/AI/SmartScripts/SmartScriptMgr.cpp +++ b/src/server/game/AI/SmartScripts/SmartScriptMgr.cpp @@ -28,6 +28,12 @@ #include "SmartScriptMgr.h" +SmartWaypointMgr* SmartWaypointMgr::instance() +{ + static SmartWaypointMgr instance; + return &instance; +} + void SmartWaypointMgr::LoadFromDB() { uint32 oldMSTime = getMSTime(); @@ -99,6 +105,12 @@ SmartWaypointMgr::~SmartWaypointMgr() } } +SmartAIMgr* SmartAIMgr::instance() +{ + static SmartAIMgr instance; + return &instance; +} + void SmartAIMgr::LoadSmartAIFromDB() { LoadHelperStores(); diff --git a/src/server/game/AI/SmartScripts/SmartScriptMgr.h b/src/server/game/AI/SmartScripts/SmartScriptMgr.h index 00d3e97e19f..5f627e4021d 100644 --- a/src/server/game/AI/SmartScripts/SmartScriptMgr.h +++ b/src/server/game/AI/SmartScripts/SmartScriptMgr.h @@ -1442,11 +1442,7 @@ class SmartWaypointMgr ~SmartWaypointMgr(); public: - static SmartWaypointMgr* instance() - { - static SmartWaypointMgr instance; - return &instance; - } + static SmartWaypointMgr* instance(); void LoadFromDB(); @@ -1478,11 +1474,7 @@ class SmartAIMgr ~SmartAIMgr() { } public: - static SmartAIMgr* instance() - { - static SmartAIMgr instance; - return &instance; - } + static SmartAIMgr* instance(); void LoadSmartAIFromDB(); diff --git a/src/server/game/Accounts/AccountMgr.cpp b/src/server/game/Accounts/AccountMgr.cpp index d5d62908e53..81d071881fe 100644 --- a/src/server/game/Accounts/AccountMgr.cpp +++ b/src/server/game/Accounts/AccountMgr.cpp @@ -33,6 +33,12 @@ AccountMgr::~AccountMgr() ClearRBAC(); } +AccountMgr* AccountMgr::instance() +{ + static AccountMgr instance; + return &instance; +} + AccountOpResult AccountMgr::CreateAccount(std::string username, std::string password, std::string email /*= ""*/, uint32 bnetAccountId /*= 0*/, uint8 bnetIndex /*= 0*/) { if (utf8length(username) > MAX_ACCOUNT_STR) diff --git a/src/server/game/Accounts/AccountMgr.h b/src/server/game/Accounts/AccountMgr.h index 1addf82e986..09ab140d07c 100644 --- a/src/server/game/Accounts/AccountMgr.h +++ b/src/server/game/Accounts/AccountMgr.h @@ -57,11 +57,7 @@ class AccountMgr ~AccountMgr(); public: - static AccountMgr* instance() - { - static AccountMgr instance; - return &instance; - } + static AccountMgr* instance(); AccountOpResult CreateAccount(std::string username, std::string password, std::string email = "", uint32 bnetAccountId = 0, uint8 bnetIndex = 0); static AccountOpResult DeleteAccount(uint32 accountId); diff --git a/src/server/game/Achievements/AchievementMgr.cpp b/src/server/game/Achievements/AchievementMgr.cpp index 6462c89a694..7a70b23077f 100644 --- a/src/server/game/Achievements/AchievementMgr.cpp +++ b/src/server/game/Achievements/AchievementMgr.cpp @@ -2890,6 +2890,12 @@ char const* AchievementGlobalMgr::GetCriteriaTypeString(AchievementCriteriaTypes template class AchievementMgr<Guild>; template class AchievementMgr<Player>; +AchievementGlobalMgr* AchievementGlobalMgr::instance() +{ + static AchievementGlobalMgr instance; + return &instance; +} + //========================================================== AchievementGlobalMgr::~AchievementGlobalMgr() { diff --git a/src/server/game/Achievements/AchievementMgr.h b/src/server/game/Achievements/AchievementMgr.h index 60c563683fb..5ee8574559a 100644 --- a/src/server/game/Achievements/AchievementMgr.h +++ b/src/server/game/Achievements/AchievementMgr.h @@ -344,11 +344,7 @@ class AchievementGlobalMgr static char const* GetCriteriaTypeString(AchievementCriteriaTypes type); static char const* GetCriteriaTypeString(uint32 type); - static AchievementGlobalMgr* instance() - { - static AchievementGlobalMgr instance; - return &instance; - } + static AchievementGlobalMgr* instance(); AchievementCriteriaTreeList const* GetAchievementCriteriaTreesByCriteria(uint32 criteriaId) const { diff --git a/src/server/game/AuctionHouse/AuctionHouseMgr.cpp b/src/server/game/AuctionHouse/AuctionHouseMgr.cpp index b86f00e3295..9939b372513 100644 --- a/src/server/game/AuctionHouse/AuctionHouseMgr.cpp +++ b/src/server/game/AuctionHouse/AuctionHouseMgr.cpp @@ -45,6 +45,12 @@ AuctionHouseMgr::~AuctionHouseMgr() delete itr->second; } +AuctionHouseMgr* AuctionHouseMgr::instance() +{ + static AuctionHouseMgr instance; + return &instance; +} + AuctionHouseObject* AuctionHouseMgr::GetAuctionsMap(uint32 factionTemplateId) { if (sWorld->getBoolConfig(CONFIG_ALLOW_TWO_SIDE_INTERACTION_AUCTION)) diff --git a/src/server/game/AuctionHouse/AuctionHouseMgr.h b/src/server/game/AuctionHouse/AuctionHouseMgr.h index 3f747608d9e..b5ae7d26514 100644 --- a/src/server/game/AuctionHouse/AuctionHouseMgr.h +++ b/src/server/game/AuctionHouse/AuctionHouseMgr.h @@ -140,11 +140,7 @@ class AuctionHouseMgr ~AuctionHouseMgr(); public: - static AuctionHouseMgr* instance() - { - static AuctionHouseMgr instance; - return &instance; - } + static AuctionHouseMgr* instance(); typedef std::unordered_map<ObjectGuid::LowType, Item*> ItemMap; diff --git a/src/server/game/AuctionHouseBot/AuctionHouseBot.cpp b/src/server/game/AuctionHouseBot/AuctionHouseBot.cpp index eb00798ed54..80b1c6cf8ac 100644 --- a/src/server/game/AuctionHouseBot/AuctionHouseBot.cpp +++ b/src/server/game/AuctionHouseBot/AuctionHouseBot.cpp @@ -24,6 +24,12 @@ #include "AuctionHouseBotBuyer.h" #include "AuctionHouseBotSeller.h" +AuctionBotConfig* AuctionBotConfig::instance() +{ + static AuctionBotConfig instance; + return &instance; +} + bool AuctionBotConfig::Initialize() { GetConfigFromFile(); @@ -410,6 +416,12 @@ void AuctionHouseBot::Rebuild(bool all) } } +AuctionHouseBot* AuctionHouseBot::instance() +{ + static AuctionHouseBot instance; + return &instance; +} + void AuctionHouseBot::Update() { // nothing do... diff --git a/src/server/game/AuctionHouseBot/AuctionHouseBot.h b/src/server/game/AuctionHouseBot/AuctionHouseBot.h index 63641fc7da2..a4b5976e85a 100644 --- a/src/server/game/AuctionHouseBot/AuctionHouseBot.h +++ b/src/server/game/AuctionHouseBot/AuctionHouseBot.h @@ -190,11 +190,7 @@ private: AuctionBotConfig& operator=(const AuctionBotConfig&); public: - static AuctionBotConfig* instance() - { - static AuctionBotConfig instance; - return &instance; - } + static AuctionBotConfig* instance(); bool Initialize(); const std::string& GetAHBotIncludes() const { return _AHBotIncludes; } @@ -268,11 +264,7 @@ private: AuctionHouseBot& operator=(const AuctionHouseBot&); public: - static AuctionHouseBot* instance() - { - static AuctionHouseBot instance; - return &instance; - } + static AuctionHouseBot* instance(); void Update(); void Initialize(); diff --git a/src/server/game/Battlefield/BattlefieldMgr.cpp b/src/server/game/Battlefield/BattlefieldMgr.cpp index 8e105f95604..b92b2e64318 100644 --- a/src/server/game/Battlefield/BattlefieldMgr.cpp +++ b/src/server/game/Battlefield/BattlefieldMgr.cpp @@ -32,6 +32,12 @@ BattlefieldMgr::~BattlefieldMgr() _battlefieldMap.clear(); } +BattlefieldMgr* BattlefieldMgr::instance() +{ + static BattlefieldMgr instance; + return &instance; +} + void BattlefieldMgr::InitBattlefield() { Battlefield* wg = new BattlefieldWG(); diff --git a/src/server/game/Battlefield/BattlefieldMgr.h b/src/server/game/Battlefield/BattlefieldMgr.h index b68e4df46f7..2d3b9d06470 100644 --- a/src/server/game/Battlefield/BattlefieldMgr.h +++ b/src/server/game/Battlefield/BattlefieldMgr.h @@ -27,11 +27,7 @@ class ZoneScript; class BattlefieldMgr { public: - static BattlefieldMgr* instance() - { - static BattlefieldMgr instance; - return &instance; - } + static BattlefieldMgr* instance(); // create battlefield events void InitBattlefield(); diff --git a/src/server/game/Battlegrounds/ArenaTeamMgr.cpp b/src/server/game/Battlegrounds/ArenaTeamMgr.cpp index 3f3502b9aa6..ecf0ae6c6d1 100644 --- a/src/server/game/Battlegrounds/ArenaTeamMgr.cpp +++ b/src/server/game/Battlegrounds/ArenaTeamMgr.cpp @@ -33,6 +33,12 @@ ArenaTeamMgr::~ArenaTeamMgr() delete itr->second; } +ArenaTeamMgr* ArenaTeamMgr::instance() +{ + static ArenaTeamMgr instance; + return &instance; +} + // Arena teams collection ArenaTeam* ArenaTeamMgr::GetArenaTeamById(uint32 arenaTeamId) const { diff --git a/src/server/game/Battlegrounds/ArenaTeamMgr.h b/src/server/game/Battlegrounds/ArenaTeamMgr.h index 8a36dfa7324..23197ad869f 100644 --- a/src/server/game/Battlegrounds/ArenaTeamMgr.h +++ b/src/server/game/Battlegrounds/ArenaTeamMgr.h @@ -27,11 +27,7 @@ private: ~ArenaTeamMgr(); public: - static ArenaTeamMgr* instance() - { - static ArenaTeamMgr instance; - return &instance; - } + static ArenaTeamMgr* instance(); typedef std::unordered_map<uint32, ArenaTeam*> ArenaTeamContainer; diff --git a/src/server/game/Battlegrounds/BattlegroundMgr.cpp b/src/server/game/Battlegrounds/BattlegroundMgr.cpp index 57f61c0e195..514242011b3 100644 --- a/src/server/game/Battlegrounds/BattlegroundMgr.cpp +++ b/src/server/game/Battlegrounds/BattlegroundMgr.cpp @@ -75,6 +75,12 @@ void BattlegroundMgr::DeleteAllBattlegrounds() bgDataStore.clear(); } +BattlegroundMgr* BattlegroundMgr::instance() +{ + static BattlegroundMgr instance; + return &instance; +} + // used to update running battlegrounds, and delete finished ones void BattlegroundMgr::Update(uint32 diff) { diff --git a/src/server/game/Battlegrounds/BattlegroundMgr.h b/src/server/game/Battlegrounds/BattlegroundMgr.h index 354f37b8cd8..85a2358c9d1 100644 --- a/src/server/game/Battlegrounds/BattlegroundMgr.h +++ b/src/server/game/Battlegrounds/BattlegroundMgr.h @@ -74,11 +74,7 @@ class BattlegroundMgr ~BattlegroundMgr(); public: - static BattlegroundMgr* instance() - { - static BattlegroundMgr instance; - return &instance; - } + static BattlegroundMgr* instance(); void Update(uint32 diff); diff --git a/src/server/game/Calendar/CalendarMgr.cpp b/src/server/game/Calendar/CalendarMgr.cpp index 83bcdf733e2..92df0ea6ea2 100644 --- a/src/server/game/Calendar/CalendarMgr.cpp +++ b/src/server/game/Calendar/CalendarMgr.cpp @@ -46,6 +46,12 @@ CalendarMgr::~CalendarMgr() delete *itr2; } +CalendarMgr* CalendarMgr::instance() +{ + static CalendarMgr instance; + return &instance; +} + void CalendarMgr::LoadFromDB() { uint32 count = 0; diff --git a/src/server/game/Calendar/CalendarMgr.h b/src/server/game/Calendar/CalendarMgr.h index e22482323c7..3eae74a02b5 100644 --- a/src/server/game/Calendar/CalendarMgr.h +++ b/src/server/game/Calendar/CalendarMgr.h @@ -283,11 +283,7 @@ class CalendarMgr uint64 _maxInviteId; public: - static CalendarMgr* instance() - { - static CalendarMgr instance; - return &instance; - } + static CalendarMgr* instance(); void LoadFromDB(); diff --git a/src/server/game/Conditions/ConditionMgr.cpp b/src/server/game/Conditions/ConditionMgr.cpp index 3dfbb2a12e1..c0c4c7c485c 100644 --- a/src/server/game/Conditions/ConditionMgr.cpp +++ b/src/server/game/Conditions/ConditionMgr.cpp @@ -926,6 +926,12 @@ bool ConditionMgr::IsObjectMeetingVendorItemConditions(uint32 creatureId, uint32 return true; } +ConditionMgr* ConditionMgr::instance() +{ + static ConditionMgr instance; + return &instance; +} + void ConditionMgr::LoadConditions(bool isReload) { uint32 oldMSTime = getMSTime(); diff --git a/src/server/game/Conditions/ConditionMgr.h b/src/server/game/Conditions/ConditionMgr.h index 601dc8dbda9..e973d56dade 100644 --- a/src/server/game/Conditions/ConditionMgr.h +++ b/src/server/game/Conditions/ConditionMgr.h @@ -250,11 +250,7 @@ class ConditionMgr ~ConditionMgr(); public: - static ConditionMgr* instance() - { - static ConditionMgr instance; - return &instance; - } + static ConditionMgr* instance(); void LoadConditions(bool isReload = false); bool isConditionTypeValid(Condition* cond) const; diff --git a/src/server/game/DataStores/DB2Stores.cpp b/src/server/game/DataStores/DB2Stores.cpp index 91f770d3c13..09799921258 100644 --- a/src/server/game/DataStores/DB2Stores.cpp +++ b/src/server/game/DataStores/DB2Stores.cpp @@ -187,6 +187,12 @@ inline void LoadDB2(uint32& availableDb2Locales, DB2StoreProblemList& errlist, D stores[storage->GetHash()] = storage; } +DB2Manager& DB2Manager::Instance() +{ + static DB2Manager instance; + return instance; +} + void DB2Manager::LoadStores(std::string const& dataPath, uint32 defaultLocale) { uint32 oldMSTime = getMSTime(); diff --git a/src/server/game/DataStores/DB2Stores.h b/src/server/game/DataStores/DB2Stores.h index 5c7c4128137..aec278e7675 100644 --- a/src/server/game/DataStores/DB2Stores.h +++ b/src/server/game/DataStores/DB2Stores.h @@ -162,11 +162,7 @@ public: typedef std::unordered_map<uint32, std::unordered_map<uint32, std::vector<SpellPowerEntry const*>>> SpellPowerDifficultyContainer; typedef std::unordered_set<uint32> ToyItemIdsContainer; - static DB2Manager& Instance() - { - static DB2Manager instance; - return instance; - } + static DB2Manager& Instance(); void LoadStores(std::string const& dataPath, uint32 defaultLocale); DB2StorageBase const* GetStorage(uint32 type) const; diff --git a/src/server/game/DungeonFinding/LFGMgr.cpp b/src/server/game/DungeonFinding/LFGMgr.cpp index 0bf31636697..e328732c0c5 100644 --- a/src/server/game/DungeonFinding/LFGMgr.cpp +++ b/src/server/game/DungeonFinding/LFGMgr.cpp @@ -258,6 +258,12 @@ void LFGMgr::LoadLFGDungeons(bool reload /* = false */) CachedDungeonMapStore.clear(); } +LFGMgr* LFGMgr::instance() +{ + static LFGMgr instance; + return &instance; +} + void LFGMgr::Update(uint32 diff) { if (!isOptionEnabled(LFG_OPTION_ENABLE_DUNGEON_FINDER | LFG_OPTION_ENABLE_RAID_BROWSER)) diff --git a/src/server/game/DungeonFinding/LFGMgr.h b/src/server/game/DungeonFinding/LFGMgr.h index e092cbdee02..813be0afa4f 100644 --- a/src/server/game/DungeonFinding/LFGMgr.h +++ b/src/server/game/DungeonFinding/LFGMgr.h @@ -302,11 +302,7 @@ class LFGMgr ~LFGMgr(); public: - static LFGMgr* instance() - { - static LFGMgr instance; - return &instance; - } + static LFGMgr* instance(); // Functions used outside lfg namespace void Update(uint32 diff); diff --git a/src/server/game/Entities/Creature/CreatureGroups.cpp b/src/server/game/Entities/Creature/CreatureGroups.cpp index 666ee0a82d0..b33777eb1fa 100644 --- a/src/server/game/Entities/Creature/CreatureGroups.cpp +++ b/src/server/game/Entities/Creature/CreatureGroups.cpp @@ -30,6 +30,12 @@ FormationMgr::~FormationMgr() delete itr->second; } +FormationMgr* FormationMgr::instance() +{ + static FormationMgr instance; + return &instance; +} + void FormationMgr::AddCreatureToGroup(ObjectGuid::LowType leaderGuid, Creature* creature) { Map* map = creature->FindMap(); diff --git a/src/server/game/Entities/Creature/CreatureGroups.h b/src/server/game/Entities/Creature/CreatureGroups.h index ca0aea431d8..207cf6c2c95 100644 --- a/src/server/game/Entities/Creature/CreatureGroups.h +++ b/src/server/game/Entities/Creature/CreatureGroups.h @@ -45,11 +45,7 @@ class FormationMgr ~FormationMgr(); public: - static FormationMgr* instance() - { - static FormationMgr instance; - return &instance; - } + static FormationMgr* instance(); void AddCreatureToGroup(ObjectGuid::LowType leaderGuid, Creature* creature); void RemoveCreatureFromGroup(CreatureGroup* group, Creature* creature); diff --git a/src/server/game/Entities/Player/SocialMgr.cpp b/src/server/game/Entities/Player/SocialMgr.cpp index 6244475c458..7870c754ffc 100644 --- a/src/server/game/Entities/Player/SocialMgr.cpp +++ b/src/server/game/Entities/Player/SocialMgr.cpp @@ -161,6 +161,12 @@ bool PlayerSocial::HasIgnore(ObjectGuid const& ignoreGuid) return _HasContact(ignoreGuid, SOCIAL_FLAG_IGNORED); } +SocialMgr* SocialMgr::instance() +{ + static SocialMgr instance; + return &instance; +} + void SocialMgr::GetFriendInfo(Player* player, ObjectGuid const& friendGUID, FriendInfo& friendInfo) { if (!player) diff --git a/src/server/game/Entities/Player/SocialMgr.h b/src/server/game/Entities/Player/SocialMgr.h index d2237e328a7..aa022d383d9 100644 --- a/src/server/game/Entities/Player/SocialMgr.h +++ b/src/server/game/Entities/Player/SocialMgr.h @@ -138,11 +138,7 @@ class SocialMgr ~SocialMgr() { } public: - static SocialMgr* instance() - { - static SocialMgr instance; - return &instance; - } + static SocialMgr* instance(); // Misc void RemovePlayerSocial(ObjectGuid const& guid) { _socialMap.erase(guid); } diff --git a/src/server/game/Entities/Taxi/TaxiPathGraph.cpp b/src/server/game/Entities/Taxi/TaxiPathGraph.cpp index 5fe2db46fa5..6617267be6a 100644 --- a/src/server/game/Entities/Taxi/TaxiPathGraph.cpp +++ b/src/server/game/Entities/Taxi/TaxiPathGraph.cpp @@ -25,6 +25,12 @@ #include <boost/graph/dijkstra_shortest_paths.hpp> #include <boost/property_map/transform_value_property_map.hpp> +TaxiPathGraph& TaxiPathGraph::Instance() +{ + static TaxiPathGraph instance; + return instance; +} + void TaxiPathGraph::Initialize() { if (GetVertexCount() > 0) diff --git a/src/server/game/Entities/Taxi/TaxiPathGraph.h b/src/server/game/Entities/Taxi/TaxiPathGraph.h index 0da1090ef8f..434440acaef 100644 --- a/src/server/game/Entities/Taxi/TaxiPathGraph.h +++ b/src/server/game/Entities/Taxi/TaxiPathGraph.h @@ -28,11 +28,7 @@ struct TaxiNodesEntry; class TaxiPathGraph { public: - static TaxiPathGraph& Instance() - { - static TaxiPathGraph instance; - return instance; - } + static TaxiPathGraph& Instance(); void Initialize(); std::size_t GetCompleteNodeRoute(TaxiNodesEntry const* from, TaxiNodesEntry const* to, Player const* player, std::vector<uint32>& shortestPath); diff --git a/src/server/game/Events/GameEventMgr.cpp b/src/server/game/Events/GameEventMgr.cpp index 89d2a53c071..879e5032b73 100644 --- a/src/server/game/Events/GameEventMgr.cpp +++ b/src/server/game/Events/GameEventMgr.cpp @@ -29,6 +29,12 @@ #include "GameObjectAI.h" #include "WorldStatePackets.h" +GameEventMgr* GameEventMgr::instance() +{ + static GameEventMgr instance; + return &instance; +} + bool GameEventMgr::CheckOneGameEvent(uint16 entry) const { switch (mGameEvent[entry].state) diff --git a/src/server/game/Events/GameEventMgr.h b/src/server/game/Events/GameEventMgr.h index aaff9c3700f..a01d361fc68 100644 --- a/src/server/game/Events/GameEventMgr.h +++ b/src/server/game/Events/GameEventMgr.h @@ -101,11 +101,7 @@ class GameEventMgr ~GameEventMgr() { } public: - static GameEventMgr* instance() - { - static GameEventMgr instance; - return &instance; - } + static GameEventMgr* instance(); typedef std::set<uint16> ActiveEvents; typedef std::vector<GameEventData> GameEventDataMap; diff --git a/src/server/game/Garrison/GarrisonMgr.cpp b/src/server/game/Garrison/GarrisonMgr.cpp index 9be49fec2ad..5c9bef62fc3 100644 --- a/src/server/game/Garrison/GarrisonMgr.cpp +++ b/src/server/game/Garrison/GarrisonMgr.cpp @@ -24,6 +24,12 @@ #include "GameObject.h" #include "ObjectMgr.h" +GarrisonMgr& GarrisonMgr::Instance() +{ + static GarrisonMgr instance; + return instance; +} + void GarrisonMgr::Initialize() { for (GarrSiteLevelPlotInstEntry const* plotInstance : sGarrSiteLevelPlotInstStore) diff --git a/src/server/game/Garrison/GarrisonMgr.h b/src/server/game/Garrison/GarrisonMgr.h index 91c133af0cd..d09cb9c0930 100644 --- a/src/server/game/Garrison/GarrisonMgr.h +++ b/src/server/game/Garrison/GarrisonMgr.h @@ -41,11 +41,7 @@ struct GarrAbilities class GarrisonMgr { public: - static GarrisonMgr& Instance() - { - static GarrisonMgr instance; - return instance; - } + static GarrisonMgr& Instance(); void Initialize(); diff --git a/src/server/game/Globals/ObjectMgr.cpp b/src/server/game/Globals/ObjectMgr.cpp index 2efcc71ae75..85adc2764ab 100644 --- a/src/server/game/Globals/ObjectMgr.cpp +++ b/src/server/game/Globals/ObjectMgr.cpp @@ -251,6 +251,12 @@ ObjectMgr::ObjectMgr(): _playerInfo[j][i] = NULL; } +ObjectMgr* ObjectMgr::instance() +{ + static ObjectMgr instance; + return &instance; +} + ObjectMgr::~ObjectMgr() { for (QuestMap::iterator i = _questTemplates.begin(); i != _questTemplates.end(); ++i) diff --git a/src/server/game/Globals/ObjectMgr.h b/src/server/game/Globals/ObjectMgr.h index 7fb35c15504..3bbbb2e7b19 100644 --- a/src/server/game/Globals/ObjectMgr.h +++ b/src/server/game/Globals/ObjectMgr.h @@ -708,11 +708,13 @@ class ObjectMgr ~ObjectMgr(); public: - static ObjectMgr* instance() - { - static ObjectMgr instance; - return &instance; - } + ObjectMgr(ObjectMgr const&) = delete; + ObjectMgr(ObjectMgr&&) = delete; + + ObjectMgr& operator= (ObjectMgr const&) = delete; + ObjectMgr& operator= (ObjectMgr&&) = delete; + + static ObjectMgr* instance(); typedef std::unordered_map<uint32, Item*> ItemMap; diff --git a/src/server/game/Groups/GroupMgr.cpp b/src/server/game/Groups/GroupMgr.cpp index 24d4983a1e0..c6046c3a9aa 100644 --- a/src/server/game/Groups/GroupMgr.cpp +++ b/src/server/game/Groups/GroupMgr.cpp @@ -92,6 +92,12 @@ ObjectGuid::LowType GroupMgr::GenerateGroupId() return NextGroupId++; } +GroupMgr* GroupMgr::instance() +{ + static GroupMgr instance; + return &instance; +} + Group* GroupMgr::GetGroupByGUID(ObjectGuid const& groupId) const { GroupContainer::const_iterator itr = GroupStore.find(groupId.GetCounter()); diff --git a/src/server/game/Groups/GroupMgr.h b/src/server/game/Groups/GroupMgr.h index 25dd1275908..d9f39c1fbd9 100644 --- a/src/server/game/Groups/GroupMgr.h +++ b/src/server/game/Groups/GroupMgr.h @@ -27,11 +27,7 @@ private: ~GroupMgr(); public: - static GroupMgr* instance() - { - static GroupMgr instance; - return &instance; - } + static GroupMgr* instance(); typedef std::map<ObjectGuid::LowType, Group*> GroupContainer; typedef std::vector<Group*> GroupDbContainer; diff --git a/src/server/game/Guilds/GuildFinderMgr.cpp b/src/server/game/Guilds/GuildFinderMgr.cpp index de355712be4..961827c9d3b 100644 --- a/src/server/game/Guilds/GuildFinderMgr.cpp +++ b/src/server/game/Guilds/GuildFinderMgr.cpp @@ -339,3 +339,9 @@ void GuildFinderMgr::SendMembershipRequestListUpdate(Player* player) { player->SendDirectMessage(WorldPackets::GuildFinder::LFGuildApplicationsListChanged().Write()); } + +GuildFinderMgr* GuildFinderMgr::instance() +{ + static GuildFinderMgr instance; + return &instance; +} diff --git a/src/server/game/Guilds/GuildFinderMgr.h b/src/server/game/Guilds/GuildFinderMgr.h index 6a705a5b4ef..d0cd29b0bee 100644 --- a/src/server/game/Guilds/GuildFinderMgr.h +++ b/src/server/game/Guilds/GuildFinderMgr.h @@ -265,11 +265,7 @@ class GuildFinderMgr static void SendApplicantListUpdate(Guild* guild); static void SendMembershipRequestListUpdate(Player* player); - static GuildFinderMgr* instance() - { - static GuildFinderMgr instance; - return &instance; - } + static GuildFinderMgr* instance(); }; #define sGuildFinderMgr GuildFinderMgr::instance() diff --git a/src/server/game/Guilds/GuildMgr.cpp b/src/server/game/Guilds/GuildMgr.cpp index d8969d73e72..8cafc8cdd2f 100644 --- a/src/server/game/Guilds/GuildMgr.cpp +++ b/src/server/game/Guilds/GuildMgr.cpp @@ -96,6 +96,12 @@ std::string GuildMgr::GetGuildNameById(ObjectGuid::LowType guildId) const return ""; } +GuildMgr* GuildMgr::instance() +{ + static GuildMgr instance; + return &instance; +} + Guild* GuildMgr::GetGuildByLeader(ObjectGuid guid) const { for (GuildContainer::const_iterator itr = GuildStore.begin(); itr != GuildStore.end(); ++itr) diff --git a/src/server/game/Guilds/GuildMgr.h b/src/server/game/Guilds/GuildMgr.h index 069f4e165eb..16786757a6d 100644 --- a/src/server/game/Guilds/GuildMgr.h +++ b/src/server/game/Guilds/GuildMgr.h @@ -27,11 +27,7 @@ private: ~GuildMgr(); public: - static GuildMgr* instance() - { - static GuildMgr instance; - return &instance; - } + static GuildMgr* instance(); Guild* GetGuildByLeader(ObjectGuid guid) const; Guild* GetGuildById(ObjectGuid::LowType guildId) const; diff --git a/src/server/game/Instances/InstanceSaveMgr.cpp b/src/server/game/Instances/InstanceSaveMgr.cpp index 7d0c9241a51..fc65a1da82f 100644 --- a/src/server/game/Instances/InstanceSaveMgr.cpp +++ b/src/server/game/Instances/InstanceSaveMgr.cpp @@ -38,6 +38,12 @@ InstanceSaveManager::~InstanceSaveManager() { } +InstanceSaveManager* InstanceSaveManager::instance() +{ + static InstanceSaveManager instance; + return &instance; +} + void InstanceSaveManager::Unload() { lock_instLists = true; diff --git a/src/server/game/Instances/InstanceSaveMgr.h b/src/server/game/Instances/InstanceSaveMgr.h index a09325e9ce7..699b6aec574 100644 --- a/src/server/game/Instances/InstanceSaveMgr.h +++ b/src/server/game/Instances/InstanceSaveMgr.h @@ -158,11 +158,7 @@ class InstanceSaveManager public: typedef std::unordered_map<uint32 /*InstanceId*/, InstanceSave*> InstanceSaveHashMap; - static InstanceSaveManager* instance() - { - static InstanceSaveManager instance; - return &instance; - } + static InstanceSaveManager* instance(); void Unload(); diff --git a/src/server/game/Maps/MapManager.cpp b/src/server/game/Maps/MapManager.cpp index bed31834842..81302671762 100644 --- a/src/server/game/Maps/MapManager.cpp +++ b/src/server/game/Maps/MapManager.cpp @@ -62,6 +62,12 @@ void MapManager::InitializeVisibilityDistanceInfo() (*iter).second->InitVisibilityDistance(); } +MapManager* MapManager::instance() +{ + static MapManager instance; + return &instance; +} + Map* MapManager::CreateBaseMap(uint32 id) { Map* map = FindBaseMap(id); diff --git a/src/server/game/Maps/MapManager.h b/src/server/game/Maps/MapManager.h index c0811e7fecc..24cbbf4ef4d 100644 --- a/src/server/game/Maps/MapManager.h +++ b/src/server/game/Maps/MapManager.h @@ -31,11 +31,7 @@ struct TransportCreatureProto; class MapManager { public: - static MapManager* instance() - { - static MapManager instance; - return &instance; - } + static MapManager* instance(); Map* CreateBaseMap(uint32 mapId); Map* FindBaseNonInstanceMap(uint32 mapId) const; diff --git a/src/server/game/Maps/TransportMgr.cpp b/src/server/game/Maps/TransportMgr.cpp index 028a58f53c0..5de0133c342 100644 --- a/src/server/game/Maps/TransportMgr.cpp +++ b/src/server/game/Maps/TransportMgr.cpp @@ -35,6 +35,12 @@ TransportMgr::TransportMgr() { } TransportMgr::~TransportMgr() { } +TransportMgr* TransportMgr::instance() +{ + static TransportMgr instance; + return &instance; +} + void TransportMgr::Unload() { _transportTemplates.clear(); diff --git a/src/server/game/Maps/TransportMgr.h b/src/server/game/Maps/TransportMgr.h index d73f284138a..b034751a6b4 100644 --- a/src/server/game/Maps/TransportMgr.h +++ b/src/server/game/Maps/TransportMgr.h @@ -102,11 +102,7 @@ class TransportMgr friend void DB2Manager::LoadStores(std::string const&, uint32); public: - static TransportMgr* instance() - { - static TransportMgr instance; - return &instance; - } + static TransportMgr* instance(); void Unload(); diff --git a/src/server/game/Movement/Waypoints/WaypointManager.cpp b/src/server/game/Movement/Waypoints/WaypointManager.cpp index e0639e38e77..dc935263927 100644 --- a/src/server/game/Movement/Waypoints/WaypointManager.cpp +++ b/src/server/game/Movement/Waypoints/WaypointManager.cpp @@ -94,6 +94,12 @@ void WaypointMgr::Load() TC_LOG_INFO("server.loading", ">> Loaded %u waypoints in %u ms", count, GetMSTimeDiffToNow(oldMSTime)); } +WaypointMgr* WaypointMgr::instance() +{ + static WaypointMgr instance; + return &instance; +} + void WaypointMgr::ReloadPath(uint32 id) { WaypointPathContainer::iterator itr = _waypointStore.find(id); diff --git a/src/server/game/Movement/Waypoints/WaypointManager.h b/src/server/game/Movement/Waypoints/WaypointManager.h index d519eee4793..a1f98c52b0b 100644 --- a/src/server/game/Movement/Waypoints/WaypointManager.h +++ b/src/server/game/Movement/Waypoints/WaypointManager.h @@ -47,11 +47,7 @@ typedef std::unordered_map<uint32, WaypointPath> WaypointPathContainer; class WaypointMgr { public: - static WaypointMgr* instance() - { - static WaypointMgr instance; - return &instance; - } + static WaypointMgr* instance(); // Attempts to reload a single path from database void ReloadPath(uint32 id); diff --git a/src/server/game/OutdoorPvP/OutdoorPvPMgr.cpp b/src/server/game/OutdoorPvP/OutdoorPvPMgr.cpp index 55fc8602c99..4081652cac7 100644 --- a/src/server/game/OutdoorPvP/OutdoorPvPMgr.cpp +++ b/src/server/game/OutdoorPvP/OutdoorPvPMgr.cpp @@ -37,6 +37,12 @@ void OutdoorPvPMgr::Die() delete itr->second; } +OutdoorPvPMgr* OutdoorPvPMgr::instance() +{ + static OutdoorPvPMgr instance; + return &instance; +} + void OutdoorPvPMgr::InitOutdoorPvP() { uint32 oldMSTime = getMSTime(); diff --git a/src/server/game/OutdoorPvP/OutdoorPvPMgr.h b/src/server/game/OutdoorPvP/OutdoorPvPMgr.h index 8a113987882..b1158075c57 100644 --- a/src/server/game/OutdoorPvP/OutdoorPvPMgr.h +++ b/src/server/game/OutdoorPvP/OutdoorPvPMgr.h @@ -42,11 +42,7 @@ class OutdoorPvPMgr ~OutdoorPvPMgr() { }; public: - static OutdoorPvPMgr* instance() - { - static OutdoorPvPMgr instance; - return &instance; - } + static OutdoorPvPMgr* instance(); // create outdoor pvp events void InitOutdoorPvP(); diff --git a/src/server/game/Pools/PoolMgr.cpp b/src/server/game/Pools/PoolMgr.cpp index 006ce9c52f7..3461813f7c4 100644 --- a/src/server/game/Pools/PoolMgr.cpp +++ b/src/server/game/Pools/PoolMgr.cpp @@ -570,6 +570,12 @@ void PoolMgr::Initialize() mCreatureSearchMap.clear(); } +PoolMgr* PoolMgr::instance() +{ + static PoolMgr instance; + return &instance; +} + void PoolMgr::LoadFromDB() { // Pool templates diff --git a/src/server/game/Pools/PoolMgr.h b/src/server/game/Pools/PoolMgr.h index 59cbee83094..5491d7d2069 100644 --- a/src/server/game/Pools/PoolMgr.h +++ b/src/server/game/Pools/PoolMgr.h @@ -108,11 +108,7 @@ class PoolMgr ~PoolMgr() { }; public: - static PoolMgr* instance() - { - static PoolMgr instance; - return &instance; - } + static PoolMgr* instance(); void LoadFromDB(); void LoadQuestPools(); diff --git a/src/server/game/Scripting/ScriptMgr.cpp b/src/server/game/Scripting/ScriptMgr.cpp index 38ca4911a21..5502dbfc686 100644 --- a/src/server/game/Scripting/ScriptMgr.cpp +++ b/src/server/game/Scripting/ScriptMgr.cpp @@ -246,6 +246,12 @@ ScriptMgr::ScriptMgr() : _scriptCount(0), _scheduledScripts(0) ScriptMgr::~ScriptMgr() { } +ScriptMgr* ScriptMgr::instance() +{ + static ScriptMgr instance; + return &instance; +} + void ScriptMgr::Initialize() { uint32 oldMSTime = getMSTime(); diff --git a/src/server/game/Scripting/ScriptMgr.h b/src/server/game/Scripting/ScriptMgr.h index aac2cdeabfa..ffc50a51e06 100644 --- a/src/server/game/Scripting/ScriptMgr.h +++ b/src/server/game/Scripting/ScriptMgr.h @@ -856,11 +856,7 @@ class ScriptMgr virtual ~ScriptMgr(); public: /* Initialization */ - static ScriptMgr* instance() - { - static ScriptMgr instance; - return &instance; - } + static ScriptMgr* instance(); void Initialize(); void LoadDatabase(); diff --git a/src/server/game/Scripting/ScriptSystem.cpp b/src/server/game/Scripting/ScriptSystem.cpp index e828830ec0f..309838a919e 100644 --- a/src/server/game/Scripting/ScriptSystem.cpp +++ b/src/server/game/Scripting/ScriptSystem.cpp @@ -23,6 +23,12 @@ ScriptPointVector const SystemMgr::_empty; +SystemMgr* SystemMgr::instance() +{ + static SystemMgr instance; + return &instance; +} + void SystemMgr::LoadScriptWaypoints() { uint32 oldMSTime = getMSTime(); diff --git a/src/server/game/Scripting/ScriptSystem.h b/src/server/game/Scripting/ScriptSystem.h index aebfbf85502..99eb1610991 100644 --- a/src/server/game/Scripting/ScriptSystem.h +++ b/src/server/game/Scripting/ScriptSystem.h @@ -66,11 +66,7 @@ class SystemMgr ~SystemMgr() { } public: - static SystemMgr* instance() - { - static SystemMgr instance; - return &instance; - } + static SystemMgr* instance(); typedef std::unordered_map<uint32, ScriptPointVector> PointMoveMap; diff --git a/src/server/game/Server/BattlenetServerManager.cpp b/src/server/game/Server/BattlenetServerManager.cpp index 5da0d81161a..1256943e565 100644 --- a/src/server/game/Server/BattlenetServerManager.cpp +++ b/src/server/game/Server/BattlenetServerManager.cpp @@ -35,6 +35,12 @@ void IPC::BattlenetComm::ServerManager::CloseConnection() _socket = nullptr; } +IPC::BattlenetComm::ServerManager& IPC::BattlenetComm::ServerManager::Instance() +{ + static ServerManager instance; + return instance; +} + IPC::BattlenetComm::Header IPC::BattlenetComm::ServerManager::CreateHeader(BnetCommands command) { Header header; diff --git a/src/server/game/Server/BattlenetServerManager.h b/src/server/game/Server/BattlenetServerManager.h index 4d426c96eb1..3892ac5040f 100644 --- a/src/server/game/Server/BattlenetServerManager.h +++ b/src/server/game/Server/BattlenetServerManager.h @@ -39,11 +39,7 @@ namespace IPC void InitializeConnection(); void CloseConnection(); - static ServerManager& Instance() - { - static ServerManager instance; - return instance; - } + static ServerManager& Instance(); void SendChangeToonOnlineState(uint32 battlenetAccountId, uint32 gameAccountId, ObjectGuid guid, std::string const& name, bool online); diff --git a/src/server/game/Server/Protocol/PacketLog.cpp b/src/server/game/Server/Protocol/PacketLog.cpp index c780c27ccf0..2d088606023 100644 --- a/src/server/game/Server/Protocol/PacketLog.cpp +++ b/src/server/game/Server/Protocol/PacketLog.cpp @@ -70,6 +70,12 @@ PacketLog::~PacketLog() _file = NULL; } +PacketLog* PacketLog::instance() +{ + static PacketLog instance; + return &instance; +} + void PacketLog::Initialize() { std::string logsDir = sConfigMgr->GetStringDefault("LogsDir", ""); diff --git a/src/server/game/Server/Protocol/PacketLog.h b/src/server/game/Server/Protocol/PacketLog.h index f7c8652bd66..5bfac184e61 100644 --- a/src/server/game/Server/Protocol/PacketLog.h +++ b/src/server/game/Server/Protocol/PacketLog.h @@ -41,11 +41,7 @@ class PacketLog std::once_flag _initializeFlag; public: - static PacketLog* instance() - { - static PacketLog instance; - return &instance; - } + static PacketLog* instance(); void Initialize(); bool CanLogPacket() const { return (_file != NULL); } diff --git a/src/server/game/Server/WorldSocketMgr.cpp b/src/server/game/Server/WorldSocketMgr.cpp index 4f42e943245..53a22a80449 100644 --- a/src/server/game/Server/WorldSocketMgr.cpp +++ b/src/server/game/Server/WorldSocketMgr.cpp @@ -52,6 +52,12 @@ WorldSocketMgr::~WorldSocketMgr() ASSERT(!_instanceAcceptor, "StopNetwork must be called prior to WorldSocketMgr destruction"); } +WorldSocketMgr& WorldSocketMgr::Instance() +{ + static WorldSocketMgr instance; + return instance; +} + bool WorldSocketMgr::StartNetwork(boost::asio::io_service& service, std::string const& bindIp, uint16 port) { _tcpNoDelay = sConfigMgr->GetBoolDefault("Network.TcpNodelay", true); diff --git a/src/server/game/Server/WorldSocketMgr.h b/src/server/game/Server/WorldSocketMgr.h index 2079b62d14f..c6d5e4e6ef3 100644 --- a/src/server/game/Server/WorldSocketMgr.h +++ b/src/server/game/Server/WorldSocketMgr.h @@ -37,11 +37,7 @@ class WorldSocketMgr : public SocketMgr<WorldSocket> public: ~WorldSocketMgr(); - static WorldSocketMgr& Instance() - { - static WorldSocketMgr instance; - return instance; - } + static WorldSocketMgr& Instance(); /// Start network, listen at address:port . bool StartNetwork(boost::asio::io_service& service, std::string const& bindIp, uint16 port) override; diff --git a/src/server/game/Spells/SpellMgr.cpp b/src/server/game/Spells/SpellMgr.cpp index a628e934465..92a039a1a6c 100644 --- a/src/server/game/Spells/SpellMgr.cpp +++ b/src/server/game/Spells/SpellMgr.cpp @@ -472,6 +472,12 @@ SpellMgr::~SpellMgr() UnloadSpellInfoStore(); } +SpellMgr* SpellMgr::instance() +{ + static SpellMgr instance; + return &instance; +} + /// Some checks for spells, to prevent adding deprecated/broken spells for trainers, spell book, etc bool SpellMgr::IsSpellValid(SpellInfo const* spellInfo, Player* player, bool msg) { diff --git a/src/server/game/Spells/SpellMgr.h b/src/server/game/Spells/SpellMgr.h index e058ed84407..38dc65c5421 100644 --- a/src/server/game/Spells/SpellMgr.h +++ b/src/server/game/Spells/SpellMgr.h @@ -606,11 +606,7 @@ class SpellMgr // Accessors (const or static functions) public: - static SpellMgr* instance() - { - static SpellMgr instance; - return &instance; - } + static SpellMgr* instance(); // Spell correctness for client using static bool IsSpellValid(SpellInfo const* spellInfo, Player* player = NULL, bool msg = true); diff --git a/src/server/game/Support/SupportMgr.cpp b/src/server/game/Support/SupportMgr.cpp index 7caccfd7cb2..142904fcae3 100644 --- a/src/server/game/Support/SupportMgr.cpp +++ b/src/server/game/Support/SupportMgr.cpp @@ -362,6 +362,12 @@ SupportMgr::~SupportMgr() delete s.second; } +SupportMgr* SupportMgr::instance() +{ + static SupportMgr instance; + return &instance; +} + void SupportMgr::Initialize() { SetSupportSystemStatus(sWorld->getBoolConfig(CONFIG_SUPPORT_ENABLED)); diff --git a/src/server/game/Support/SupportMgr.h b/src/server/game/Support/SupportMgr.h index f79f71e7b2f..86f5b223a86 100644 --- a/src/server/game/Support/SupportMgr.h +++ b/src/server/game/Support/SupportMgr.h @@ -211,11 +211,7 @@ private: ~SupportMgr(); public: - static SupportMgr* instance() - { - static SupportMgr instance; - return &instance; - } + static SupportMgr* instance(); template<typename T> T* GetTicket(uint32 ticketId); diff --git a/src/server/game/Texts/CreatureTextMgr.cpp b/src/server/game/Texts/CreatureTextMgr.cpp index edc9b5a67e6..f4bc3f7fcba 100644 --- a/src/server/game/Texts/CreatureTextMgr.cpp +++ b/src/server/game/Texts/CreatureTextMgr.cpp @@ -76,6 +76,12 @@ class PlayerTextBuilder WorldObject const* _target; }; +CreatureTextMgr* CreatureTextMgr::instance() +{ + static CreatureTextMgr instance; + return &instance; +} + void CreatureTextMgr::LoadCreatureTexts() { uint32 oldMSTime = getMSTime(); diff --git a/src/server/game/Texts/CreatureTextMgr.h b/src/server/game/Texts/CreatureTextMgr.h index d0004ec51d3..0feacd47539 100644 --- a/src/server/game/Texts/CreatureTextMgr.h +++ b/src/server/game/Texts/CreatureTextMgr.h @@ -83,11 +83,7 @@ class CreatureTextMgr ~CreatureTextMgr() { } public: - static CreatureTextMgr* instance() - { - static CreatureTextMgr instance; - return &instance; - } + static CreatureTextMgr* instance(); void LoadCreatureTexts(); void LoadCreatureTextLocales(); diff --git a/src/server/game/Warden/WardenCheckMgr.cpp b/src/server/game/Warden/WardenCheckMgr.cpp index 5c4b0fc05b7..13ddae012fe 100644 --- a/src/server/game/Warden/WardenCheckMgr.cpp +++ b/src/server/game/Warden/WardenCheckMgr.cpp @@ -189,6 +189,12 @@ void WardenCheckMgr::LoadWardenOverrides() TC_LOG_INFO("server.loading", ">> Loaded %u warden action overrides.", count); } +WardenCheckMgr* WardenCheckMgr::instance() +{ + static WardenCheckMgr instance; + return &instance; +} + WardenCheck* WardenCheckMgr::GetWardenDataById(uint16 Id) { if (Id < CheckStore.size()) diff --git a/src/server/game/Warden/WardenCheckMgr.h b/src/server/game/Warden/WardenCheckMgr.h index 4107ccc3aff..a09dc3a6dbb 100644 --- a/src/server/game/Warden/WardenCheckMgr.h +++ b/src/server/game/Warden/WardenCheckMgr.h @@ -55,11 +55,7 @@ class WardenCheckMgr ~WardenCheckMgr(); public: - static WardenCheckMgr* instance() - { - static WardenCheckMgr instance; - return &instance; - } + static WardenCheckMgr* instance(); // We have a linear key without any gaps, so we use vector for fast access typedef std::vector<WardenCheck*> CheckContainer; diff --git a/src/server/game/World/World.cpp b/src/server/game/World/World.cpp index f2668cb874a..cd65fdd2bbd 100644 --- a/src/server/game/World/World.cpp +++ b/src/server/game/World/World.cpp @@ -148,6 +148,12 @@ World::~World() /// @todo free addSessQueue } +World* World::instance() +{ + static World instance; + return &instance; +} + /// Find a player in a specified zone Player* World::FindPlayerInZone(uint32 zone) { diff --git a/src/server/game/World/World.h b/src/server/game/World/World.h index 0f9a27c733f..3710a5596a0 100644 --- a/src/server/game/World/World.h +++ b/src/server/game/World/World.h @@ -558,11 +558,7 @@ struct CharacterInfo class World { public: - static World* instance() - { - static World instance; - return &instance; - } + static World* instance(); static std::atomic<uint32> m_worldLoopCounter; |