aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/common/Collision/Models/GameObjectModel.h2
-rw-r--r--src/common/Configuration/Config.cpp6
-rw-r--r--src/common/Configuration/Config.h6
-rw-r--r--src/common/Logging/Log.cpp6
-rw-r--r--src/common/Logging/Log.h6
-rw-r--r--src/common/Platform/ServiceWin32.cpp (renamed from src/server/shared/Service/ServiceWin32.cpp)1
-rw-r--r--src/common/Platform/ServiceWin32.h (renamed from src/server/shared/Service/ServiceWin32.h)1
-rw-r--r--src/server/CMakeLists.txt12
-rw-r--r--src/server/bnetserver/CMakeLists.txt4
-rw-r--r--src/server/bnetserver/Main.cpp1
-rw-r--r--src/server/database/Database/DatabaseEnv.cpp23
-rw-r--r--src/server/database/Database/DatabaseEnv.h5
-rw-r--r--src/server/database/Database/DatabaseLoader.h2
-rw-r--r--src/server/game/AI/SmartScripts/SmartScriptMgr.cpp12
-rw-r--r--src/server/game/AI/SmartScripts/SmartScriptMgr.h12
-rw-r--r--src/server/game/Accounts/AccountMgr.cpp6
-rw-r--r--src/server/game/Accounts/AccountMgr.h6
-rw-r--r--src/server/game/Achievements/AchievementMgr.cpp6
-rw-r--r--src/server/game/Achievements/AchievementMgr.h6
-rw-r--r--src/server/game/AuctionHouse/AuctionHouseMgr.cpp6
-rw-r--r--src/server/game/AuctionHouse/AuctionHouseMgr.h6
-rw-r--r--src/server/game/AuctionHouseBot/AuctionHouseBot.cpp12
-rw-r--r--src/server/game/AuctionHouseBot/AuctionHouseBot.h12
-rw-r--r--src/server/game/Battlefield/BattlefieldMgr.cpp6
-rw-r--r--src/server/game/Battlefield/BattlefieldMgr.h6
-rw-r--r--src/server/game/Battlegrounds/ArenaTeamMgr.cpp6
-rw-r--r--src/server/game/Battlegrounds/ArenaTeamMgr.h6
-rw-r--r--src/server/game/Battlegrounds/BattlegroundMgr.cpp6
-rw-r--r--src/server/game/Battlegrounds/BattlegroundMgr.h6
-rw-r--r--src/server/game/Calendar/CalendarMgr.cpp6
-rw-r--r--src/server/game/Calendar/CalendarMgr.h6
-rw-r--r--src/server/game/Conditions/ConditionMgr.cpp6
-rw-r--r--src/server/game/Conditions/ConditionMgr.h6
-rw-r--r--src/server/game/DataStores/DB2Stores.cpp6
-rw-r--r--src/server/game/DataStores/DB2Stores.h6
-rw-r--r--src/server/game/DungeonFinding/LFGMgr.cpp6
-rw-r--r--src/server/game/DungeonFinding/LFGMgr.h6
-rw-r--r--src/server/game/Entities/Creature/CreatureGroups.cpp6
-rw-r--r--src/server/game/Entities/Creature/CreatureGroups.h6
-rw-r--r--src/server/game/Entities/Player/SocialMgr.cpp6
-rw-r--r--src/server/game/Entities/Player/SocialMgr.h6
-rw-r--r--src/server/game/Entities/Taxi/TaxiPathGraph.cpp6
-rw-r--r--src/server/game/Entities/Taxi/TaxiPathGraph.h6
-rw-r--r--src/server/game/Events/GameEventMgr.cpp6
-rw-r--r--src/server/game/Events/GameEventMgr.h6
-rw-r--r--src/server/game/Garrison/GarrisonMgr.cpp6
-rw-r--r--src/server/game/Garrison/GarrisonMgr.h6
-rw-r--r--src/server/game/Globals/ObjectMgr.cpp6
-rw-r--r--src/server/game/Globals/ObjectMgr.h12
-rw-r--r--src/server/game/Groups/GroupMgr.cpp6
-rw-r--r--src/server/game/Groups/GroupMgr.h6
-rw-r--r--src/server/game/Guilds/GuildFinderMgr.cpp6
-rw-r--r--src/server/game/Guilds/GuildFinderMgr.h6
-rw-r--r--src/server/game/Guilds/GuildMgr.cpp6
-rw-r--r--src/server/game/Guilds/GuildMgr.h6
-rw-r--r--src/server/game/Instances/InstanceSaveMgr.cpp6
-rw-r--r--src/server/game/Instances/InstanceSaveMgr.h6
-rw-r--r--src/server/game/Maps/MapManager.cpp6
-rw-r--r--src/server/game/Maps/MapManager.h6
-rw-r--r--src/server/game/Maps/TransportMgr.cpp6
-rw-r--r--src/server/game/Maps/TransportMgr.h6
-rw-r--r--src/server/game/Movement/Waypoints/WaypointManager.cpp6
-rw-r--r--src/server/game/Movement/Waypoints/WaypointManager.h6
-rw-r--r--src/server/game/OutdoorPvP/OutdoorPvPMgr.cpp6
-rw-r--r--src/server/game/OutdoorPvP/OutdoorPvPMgr.h6
-rw-r--r--src/server/game/Pools/PoolMgr.cpp6
-rw-r--r--src/server/game/Pools/PoolMgr.h6
-rw-r--r--src/server/game/Scripting/ScriptMgr.cpp6
-rw-r--r--src/server/game/Scripting/ScriptMgr.h6
-rw-r--r--src/server/game/Scripting/ScriptSystem.cpp6
-rw-r--r--src/server/game/Scripting/ScriptSystem.h6
-rw-r--r--src/server/game/Server/BattlenetServerManager.cpp6
-rw-r--r--src/server/game/Server/BattlenetServerManager.h6
-rw-r--r--src/server/game/Server/Protocol/PacketLog.cpp6
-rw-r--r--src/server/game/Server/Protocol/PacketLog.h6
-rw-r--r--src/server/game/Server/WorldSocketMgr.cpp6
-rw-r--r--src/server/game/Server/WorldSocketMgr.h6
-rw-r--r--src/server/game/Spells/SpellMgr.cpp6
-rw-r--r--src/server/game/Spells/SpellMgr.h6
-rw-r--r--src/server/game/Support/SupportMgr.cpp6
-rw-r--r--src/server/game/Support/SupportMgr.h6
-rw-r--r--src/server/game/Texts/CreatureTextMgr.cpp6
-rw-r--r--src/server/game/Texts/CreatureTextMgr.h6
-rw-r--r--src/server/game/Warden/WardenCheckMgr.cpp6
-rw-r--r--src/server/game/Warden/WardenCheckMgr.h6
-rw-r--r--src/server/game/World/World.cpp11
-rw-r--r--src/server/game/World/World.h7
-rw-r--r--src/server/shared/CMakeLists.txt3
-rw-r--r--src/server/worldserver/CMakeLists.txt4
-rw-r--r--src/server/worldserver/Main.cpp6
90 files changed, 341 insertions, 227 deletions
diff --git a/src/common/Collision/Models/GameObjectModel.h b/src/common/Collision/Models/GameObjectModel.h
index 9d8687233c1..7834f53c63a 100644
--- a/src/common/Collision/Models/GameObjectModel.h
+++ b/src/common/Collision/Models/GameObjectModel.h
@@ -84,4 +84,6 @@ private:
std::unique_ptr<GameObjectModelOwnerBase> owner;
};
+void LoadGameObjectModelList(std::string const& dataPath);
+
#endif // _GAMEOBJECT_MODEL_H
diff --git a/src/common/Configuration/Config.cpp b/src/common/Configuration/Config.cpp
index 196c128532e..bc21bb47b48 100644
--- a/src/common/Configuration/Config.cpp
+++ b/src/common/Configuration/Config.cpp
@@ -57,6 +57,12 @@ bool ConfigMgr::LoadInitial(std::string const& file, std::string& error)
return true;
}
+ConfigMgr* ConfigMgr::instance()
+{
+ static ConfigMgr instance;
+ return &instance;
+}
+
bool ConfigMgr::Reload(std::string& error)
{
return LoadInitial(_filename, error);
diff --git a/src/common/Configuration/Config.h b/src/common/Configuration/Config.h
index 77150e9b436..c1c50e8f1e8 100644
--- a/src/common/Configuration/Config.h
+++ b/src/common/Configuration/Config.h
@@ -33,11 +33,7 @@ public:
/// Method used only for loading main configuration files
bool LoadInitial(std::string const& file, std::string& error);
- static ConfigMgr* instance()
- {
- static ConfigMgr instance;
- return &instance;
- }
+ static ConfigMgr* instance();
bool Reload(std::string& error);
diff --git a/src/common/Logging/Log.cpp b/src/common/Logging/Log.cpp
index dff0351d52d..b350a41b482 100644
--- a/src/common/Logging/Log.cpp
+++ b/src/common/Logging/Log.cpp
@@ -321,6 +321,12 @@ void Log::Close()
appenders.clear();
}
+Log* Log::instance()
+{
+ static Log instance;
+ return &instance;
+}
+
void Log::Initialize(boost::asio::io_service* ioService)
{
if (ioService)
diff --git a/src/common/Logging/Log.h b/src/common/Logging/Log.h
index eafd7412a94..062f14d525c 100644
--- a/src/common/Logging/Log.h
+++ b/src/common/Logging/Log.h
@@ -44,11 +44,7 @@ class Log
public:
- static Log* instance()
- {
- static Log instance;
- return &instance;
- }
+ static Log* instance();
void Initialize(boost::asio::io_service* ioService);
void SetSynchronous(); // Not threadsafe - should only be called from main() after all threads are joined
diff --git a/src/server/shared/Service/ServiceWin32.cpp b/src/common/Platform/ServiceWin32.cpp
index b6a1682993b..3c34f3e322c 100644
--- a/src/server/shared/Service/ServiceWin32.cpp
+++ b/src/common/Platform/ServiceWin32.cpp
@@ -261,4 +261,3 @@ bool WinServiceRun()
return true;
}
#endif
-
diff --git a/src/server/shared/Service/ServiceWin32.h b/src/common/Platform/ServiceWin32.h
index 3d67bfe5445..b892ba4e3b6 100644
--- a/src/server/shared/Service/ServiceWin32.h
+++ b/src/common/Platform/ServiceWin32.h
@@ -26,4 +26,3 @@ bool WinServiceRun();
#endif // _WIN32_SERVICE_
#endif // _WIN32
-
diff --git a/src/server/CMakeLists.txt b/src/server/CMakeLists.txt
index d10425db8f6..599e54d4826 100644
--- a/src/server/CMakeLists.txt
+++ b/src/server/CMakeLists.txt
@@ -16,11 +16,15 @@ if(CMAKE_COMPILER_IS_GNUCXX AND NOT MINGW)
add_definitions(-fno-delete-null-pointer-checks)
endif()
+if(WIN32)
+ set(sources_windows
+ ${CMAKE_SOURCE_DIR}/src/common/Debugging/WheatyExceptionReport.cpp
+ ${CMAKE_SOURCE_DIR}/src/common/Debugging/WheatyExceptionReport.h
+ ${CMAKE_SOURCE_DIR}/src/common/Platform/ServiceWin32.cpp
+ ${CMAKE_SOURCE_DIR}/src/common/Platform/ServiceWin32.h
+ )
+endif(WIN32)
-set(sources_windows_Debugging
- ${CMAKE_SOURCE_DIR}/src/common/Debugging/WheatyExceptionReport.cpp
- ${CMAKE_SOURCE_DIR}/src/common/Debugging/WheatyExceptionReport.h
-)
add_subdirectory(database)
add_subdirectory(shared)
add_subdirectory(game)
diff --git a/src/server/bnetserver/CMakeLists.txt b/src/server/bnetserver/CMakeLists.txt
index 6d19b9ca95e..10b8e562143 100644
--- a/src/server/bnetserver/CMakeLists.txt
+++ b/src/server/bnetserver/CMakeLists.txt
@@ -33,7 +33,7 @@ set(bnetserver_SRCS
if( WIN32 )
set(bnetserver_SRCS
${bnetserver_SRCS}
- ${sources_windows_Debugging}
+ ${sources_windows}
)
if ( MSVC )
set(bnetserver_SRCS
@@ -59,9 +59,11 @@ include_directories(
${CMAKE_SOURCE_DIR}/src/common/Logging
${CMAKE_SOURCE_DIR}/src/common/Threading
${CMAKE_SOURCE_DIR}/src/common/Utilities
+ ${CMAKE_SOURCE_DIR}/src/common/Platform
${CMAKE_SOURCE_DIR}/src/server/database
${CMAKE_SOURCE_DIR}/src/server/database/Database
${CMAKE_SOURCE_DIR}/src/server/database/Logging
+ ${CMAKE_SOURCE_DIR}/src/server/database/Updater
${CMAKE_SOURCE_DIR}/src/server/ipc
${CMAKE_SOURCE_DIR}/src/server/shared
${CMAKE_SOURCE_DIR}/src/server/shared/Networking
diff --git a/src/server/bnetserver/Main.cpp b/src/server/bnetserver/Main.cpp
index c367a1f7d40..310683dec37 100644
--- a/src/server/bnetserver/Main.cpp
+++ b/src/server/bnetserver/Main.cpp
@@ -81,7 +81,6 @@ static boost::asio::deadline_timer* _dbPingTimer;
static uint32 _dbPingInterval;
static boost::asio::deadline_timer* _banExpiryCheckTimer;
static uint32 _banExpiryCheckInterval;
-LoginDatabaseWorkerPool LoginDatabase;
int main(int argc, char** argv)
{
diff --git a/src/server/database/Database/DatabaseEnv.cpp b/src/server/database/Database/DatabaseEnv.cpp
new file mode 100644
index 00000000000..693158b7c9e
--- /dev/null
+++ b/src/server/database/Database/DatabaseEnv.cpp
@@ -0,0 +1,23 @@
+/*
+ * Copyright (C) 2008-2016 TrinityCore <http://www.trinitycore.org/>
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the
+ * Free Software Foundation; either version 2 of the License, or (at your
+ * option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ * more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include "DatabaseEnv.h"
+
+WorldDatabaseWorkerPool WorldDatabase;
+CharacterDatabaseWorkerPool CharacterDatabase;
+LoginDatabaseWorkerPool LoginDatabase;
+HotfixDatabaseWorkerPool HotfixDatabase;
diff --git a/src/server/database/Database/DatabaseEnv.h b/src/server/database/Database/DatabaseEnv.h
index 27b2bce744b..743341caf60 100644
--- a/src/server/database/Database/DatabaseEnv.h
+++ b/src/server/database/Database/DatabaseEnv.h
@@ -39,10 +39,13 @@
#include "Implementation/WorldDatabase.h"
#include "Implementation/HotfixDatabase.h"
+/// Accessor to the world database
extern WorldDatabaseWorkerPool WorldDatabase;
+/// Accessor to the character database
extern CharacterDatabaseWorkerPool CharacterDatabase;
+/// Accessor to the realm/login database
extern LoginDatabaseWorkerPool LoginDatabase;
+/// Accessor to the hotfix database
extern HotfixDatabaseWorkerPool HotfixDatabase;
#endif
-
diff --git a/src/server/database/Database/DatabaseLoader.h b/src/server/database/Database/DatabaseLoader.h
index 1b31d3691c4..e40745f8cc3 100644
--- a/src/server/database/Database/DatabaseLoader.h
+++ b/src/server/database/Database/DatabaseLoader.h
@@ -19,7 +19,7 @@
#define DatabaseLoader_h__
#include "DatabaseWorkerPool.h"
-#include "DatabaseEnv.h"
+#include "DBUpdater.h"
#include <functional>
#include <stack>
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 d2ccb025165..862352d30bd 100644
--- a/src/server/game/World/World.cpp
+++ b/src/server/game/World/World.cpp
@@ -43,6 +43,7 @@
#include "GridNotifiersImpl.h"
#include "GroupMgr.h"
#include "GuildFinderMgr.h"
+#include "GameObjectModel.h"
#include "InstanceSaveMgr.h"
#include "Language.h"
#include "LFGMgr.h"
@@ -147,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)
{
@@ -1409,8 +1416,6 @@ void World::LoadConfigSettings(bool reload)
sScriptMgr->OnConfigLoad(reload);
}
-extern void LoadGameObjectModelList(std::string const& dataPath);
-
/// Initialize the World
void World::SetInitialWorldSettings()
{
@@ -3468,6 +3473,8 @@ void World::RemoveOldCorpses()
m_timers[WUPDATE_CORPSES].SetCurrent(m_timers[WUPDATE_CORPSES].GetInterval());
}
+Realm realm;
+
uint32 GetVirtualRealmAddress()
{
return uint32(realm.Id.Region) << 24 | uint32(realm.Id.Site) << 16 | realm.Id.Realm;
diff --git a/src/server/game/World/World.h b/src/server/game/World/World.h
index 0f9a27c733f..1ccdec3e2dd 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;
@@ -902,5 +898,6 @@ extern Realm realm;
uint32 GetVirtualRealmAddress();
#define sWorld World::instance()
+
#endif
/// @}
diff --git a/src/server/shared/CMakeLists.txt b/src/server/shared/CMakeLists.txt
index fd6ff91e135..b2b9c7e5a26 100644
--- a/src/server/shared/CMakeLists.txt
+++ b/src/server/shared/CMakeLists.txt
@@ -18,9 +18,6 @@ file(GLOB_RECURSE sources_Dynamic Dynamic/*.cpp Dynamic/*.h)
file(GLOB_RECURSE sources_Networking Networking/*.cpp Networking/*.h)
file(GLOB_RECURSE sources_Packets Packets/*.cpp Packets/*.h)
file(GLOB_RECURSE sources_Realm Realm/*.cpp Realm/*.h)
-if(WIN32)
- file(GLOB_RECURSE sources_Service Service/*.cpp Service/*.h)
-endif(WIN32)
file(GLOB sources_localdir *.cpp *.h)
diff --git a/src/server/worldserver/CMakeLists.txt b/src/server/worldserver/CMakeLists.txt
index 0d1a296e68a..af30600fc09 100644
--- a/src/server/worldserver/CMakeLists.txt
+++ b/src/server/worldserver/CMakeLists.txt
@@ -29,7 +29,7 @@ set(worldserver_SRCS
if( WIN32 )
set(worldserver_SRCS
${worldserver_SRCS}
- ${sources_windows_Debugging}
+ ${sources_windows}
)
if ( MSVC )
set(worldserver_SRCS
@@ -60,10 +60,12 @@ include_directories(
${CMAKE_SOURCE_DIR}/src/common/Logging
${CMAKE_SOURCE_DIR}/src/common/Threading
${CMAKE_SOURCE_DIR}/src/common/Utilities
+ ${CMAKE_SOURCE_DIR}/src/common/Platform
${CMAKE_SOURCE_DIR}/src/server/authserver/Realms
${CMAKE_SOURCE_DIR}/src/server/database/
${CMAKE_SOURCE_DIR}/src/server/database/Database
${CMAKE_SOURCE_DIR}/src/server/database/Logging
+ ${CMAKE_SOURCE_DIR}/src/server/database/Updater
${CMAKE_SOURCE_DIR}/src/server/game
${CMAKE_SOURCE_DIR}/src/server/game/Accounts
${CMAKE_SOURCE_DIR}/src/server/game/Addons
diff --git a/src/server/worldserver/Main.cpp b/src/server/worldserver/Main.cpp
index 906937e974b..b26027e8960 100644
--- a/src/server/worldserver/Main.cpp
+++ b/src/server/worldserver/Main.cpp
@@ -80,12 +80,6 @@ uint32 _worldLoopCounter(0);
uint32 _lastChangeMsTime(0);
uint32 _maxCoreStuckTimeInMs(0);
-WorldDatabaseWorkerPool WorldDatabase; ///< Accessor to the world database
-CharacterDatabaseWorkerPool CharacterDatabase; ///< Accessor to the character database
-HotfixDatabaseWorkerPool HotfixDatabase; ///< Accessor to the hotfix database
-LoginDatabaseWorkerPool LoginDatabase; ///< Accessor to the realm/login database
-Realm realm;
-
void SignalHandler(const boost::system::error_code& error, int signalNumber);
void FreezeDetectorHandler(const boost::system::error_code& error);
AsyncAcceptor* StartRaSocketAcceptor(boost::asio::io_service& ioService);