aboutsummaryrefslogtreecommitdiff
path: root/src/server
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2017-05-11 22:29:51 +0200
committerShauren <shauren.trinity@gmail.com>2017-05-11 22:29:51 +0200
commit3a418a0bbc8e155e5395595c5e25c038d3c7c773 (patch)
tree45359566bd6e360dd133e7ef43bc2a42e26baf56 /src/server
parent8abc56c540b5d2c583e40ad3d302c43068778ed1 (diff)
Core/Common: Include cleanup
Diffstat (limited to 'src/server')
-rw-r--r--src/server/bnetserver/Main.cpp3
-rw-r--r--src/server/database/Database/DatabaseWorkerPool.cpp12
-rw-r--r--src/server/database/Database/DatabaseWorkerPool.h10
-rw-r--r--src/server/database/Database/Field.h3
-rw-r--r--src/server/database/Database/MySQLConnection.h1
-rw-r--r--src/server/database/Database/QueryCallback.h2
-rw-r--r--src/server/database/Database/QueryResult.h1
-rw-r--r--src/server/database/Database/Transaction.h2
-rw-r--r--src/server/database/Logging/AppenderDB.cpp3
-rw-r--r--src/server/database/Logging/AppenderDB.h2
-rw-r--r--src/server/database/Updater/DBUpdater.cpp18
-rw-r--r--src/server/database/Updater/UpdateFetcher.h1
-rw-r--r--src/server/game/Achievements/CriteriaHandler.h3
-rw-r--r--src/server/game/AuctionHouseBot/AuctionHouseBotBuyer.cpp1
-rw-r--r--src/server/game/AuctionHouseBot/AuctionHouseBotSeller.cpp1
-rw-r--r--src/server/game/Battlegrounds/BattlegroundMgr.cpp29
-rw-r--r--src/server/game/Battlegrounds/Zones/BattlegroundAB.cpp1
-rw-r--r--src/server/game/Battlegrounds/Zones/BattlegroundDS.cpp1
-rw-r--r--src/server/game/Battlegrounds/Zones/BattlegroundEY.cpp1
-rw-r--r--src/server/game/Battlegrounds/Zones/BattlegroundSA.cpp1
-rw-r--r--src/server/game/Chat/Channels/Channel.h1
-rw-r--r--src/server/game/Chat/Channels/ChannelMgr.h2
-rw-r--r--src/server/game/Chat/ChatLink.h5
-rw-r--r--src/server/game/Conditions/ConditionMgr.h4
-rw-r--r--src/server/game/DataStores/DB2Stores.cpp5
-rw-r--r--src/server/game/DataStores/DB2Stores.h7
-rw-r--r--src/server/game/DataStores/GameTables.h1
-rw-r--r--src/server/game/DungeonFinding/LFG.h1
-rw-r--r--src/server/game/Entities/AreaTrigger/AreaTriggerTemplate.h5
-rw-r--r--src/server/game/Entities/Corpse/Corpse.cpp1
-rw-r--r--src/server/game/Entities/Creature/Creature.h15
-rw-r--r--src/server/game/Entities/GameObject/GameObject.h6
-rw-r--r--src/server/game/Entities/Item/Item.cpp1
-rw-r--r--src/server/game/Entities/Item/ItemEnchantmentMgr.cpp1
-rw-r--r--src/server/game/Entities/Object/ObjectGuid.cpp11
-rw-r--r--src/server/game/Entities/Object/ObjectGuid.h11
-rw-r--r--src/server/game/Entities/Object/ObjectPosSelector.h6
-rw-r--r--src/server/game/Entities/Object/Position.cpp1
-rw-r--r--src/server/game/Entities/Player/Player.cpp2
-rw-r--r--src/server/game/Entities/Player/SceneMgr.h1
-rw-r--r--src/server/game/Entities/Player/TradeData.cpp6
-rw-r--r--src/server/game/Entities/Player/TradeData.h2
-rw-r--r--src/server/game/Entities/Transport/Transport.cpp1
-rw-r--r--src/server/game/Entities/Unit/StatSystem.cpp1
-rw-r--r--src/server/game/Events/GameEventMgr.h2
-rw-r--r--src/server/game/Garrison/GarrisonMgr.h6
-rw-r--r--src/server/game/Globals/ObjectAccessor.cpp4
-rw-r--r--src/server/game/Globals/ObjectAccessor.h31
-rw-r--r--src/server/game/Globals/ObjectMgr.cpp7
-rw-r--r--src/server/game/Globals/ObjectMgr.h8
-rw-r--r--src/server/game/Grids/NGrid.cpp29
-rw-r--r--src/server/game/Grids/NGrid.h10
-rw-r--r--src/server/game/Groups/Group.cpp2
-rw-r--r--src/server/game/Handlers/MiscHandler.cpp2
-rw-r--r--src/server/game/Handlers/NPCHandler.h2
-rw-r--r--src/server/game/Maps/Map.h1
-rwxr-xr-xsrc/server/game/Movement/MovementGenerators/ConfusedMovementGenerator.cpp1
-rw-r--r--src/server/game/Movement/MovementGenerators/RandomMovementGenerator.cpp1
-rw-r--r--src/server/game/Movement/Spline/MoveSplineInitArgs.h1
-rw-r--r--src/server/game/Movement/Spline/MovementUtil.cpp1
-rw-r--r--src/server/game/Movement/Spline/Spline.h1
-rw-r--r--src/server/game/Quests/QuestDef.h24
-rw-r--r--src/server/game/Scenarios/ScenarioMgr.h4
-rw-r--r--src/server/game/Scripting/ScriptReloadMgr.cpp1
-rw-r--r--src/server/game/Server/Packets/AreaTriggerPackets.h1
-rw-r--r--src/server/game/Server/Packets/BattlegroundPackets.h1
-rw-r--r--src/server/game/Server/Packets/BattlenetPackets.h1
-rw-r--r--src/server/game/Server/Packets/GuildFinderPackets.h1
-rw-r--r--src/server/game/Server/Packets/GuildPackets.cpp4
-rw-r--r--src/server/game/Server/Packets/HotfixPackets.h1
-rw-r--r--src/server/game/Server/Packets/ItemPackets.h1
-rw-r--r--src/server/game/Server/Packets/MovementPackets.h2
-rw-r--r--src/server/game/Server/Packets/PartyPackets.h1
-rw-r--r--src/server/game/Server/Packets/SystemPackets.h1
-rw-r--r--src/server/game/Server/Packets/TaxiPackets.h1
-rw-r--r--src/server/game/Server/Packets/TicketPackets.h1
-rw-r--r--src/server/game/Server/Protocol/Opcodes.cpp49
-rw-r--r--src/server/game/Server/Protocol/Opcodes.h49
-rw-r--r--src/server/game/Server/WorldSession.cpp1
-rw-r--r--src/server/game/Skills/SkillDiscovery.cpp1
-rw-r--r--src/server/game/Spells/SpellMgr.h1
-rw-r--r--src/server/game/Texts/CreatureTextMgr.h2
-rw-r--r--src/server/game/Warden/WardenWin.cpp1
-rw-r--r--src/server/game/Weather/Weather.cpp1
-rw-r--r--src/server/game/World/World.h2
-rw-r--r--src/server/scripts/Commands/cs_gm.cpp2
-rw-r--r--src/server/scripts/Commands/cs_misc.cpp6
-rw-r--r--src/server/scripts/Commands/cs_reset.cpp2
-rw-r--r--src/server/scripts/Spells/spell_paladin.cpp1
-rw-r--r--src/server/shared/JSON/ProtobufJSON.cpp1
-rw-r--r--src/server/shared/Packets/ByteBuffer.h80
-rw-r--r--src/server/shared/Realm/RealmList.h1
-rw-r--r--src/server/worldserver/Main.cpp2
93 files changed, 313 insertions, 236 deletions
diff --git a/src/server/bnetserver/Main.cpp b/src/server/bnetserver/Main.cpp
index ccee80e058a..25e45b81cef 100644
--- a/src/server/bnetserver/Main.cpp
+++ b/src/server/bnetserver/Main.cpp
@@ -25,6 +25,7 @@
#include "SessionManager.h"
#include "AppenderDB.h"
+#include "Config.h"
#include "ProcessPriority.h"
#include "RealmList.h"
#include "GitRevision.h"
@@ -188,7 +189,7 @@ int main(int argc, char** argv)
signals.async_wait(std::bind(&SignalHandler, std::weak_ptr<boost::asio::io_service>(ioService), std::placeholders::_1, std::placeholders::_2));
// Set process priority according to configuration settings
- SetProcessPriority("server.bnetserver");
+ SetProcessPriority("server.bnetserver", sConfigMgr->GetIntDefault(CONFIG_PROCESSOR_AFFINITY, 0), sConfigMgr->GetBoolDefault(CONFIG_HIGH_PRIORITY, false));
// Enabled a timed callback for handling the database keep alive ping
int32 dbPingInterval = sConfigMgr->GetIntDefault("MaxPingTime", 30);
diff --git a/src/server/database/Database/DatabaseWorkerPool.cpp b/src/server/database/Database/DatabaseWorkerPool.cpp
index e680ed834a3..aba2c573c4c 100644
--- a/src/server/database/Database/DatabaseWorkerPool.cpp
+++ b/src/server/database/Database/DatabaseWorkerPool.cpp
@@ -34,6 +34,12 @@ DatabaseWorkerPool<T>::DatabaseWorkerPool()
}
template <class T>
+DatabaseWorkerPool<T>::~DatabaseWorkerPool()
+{
+ _queue->Cancel();
+}
+
+template <class T>
void DatabaseWorkerPool<T>::SetConnectionInfo(std::string const& infoString,
uint8 const asyncThreads, uint8 const synchThreads)
{
@@ -177,6 +183,12 @@ QueryResultHolderFuture DatabaseWorkerPool<T>::DelayQueryHolder(SQLQueryHolder*
}
template <class T>
+SQLTransaction DatabaseWorkerPool<T>::BeginTransaction()
+{
+ return std::make_shared<Transaction>();
+}
+
+template <class T>
void DatabaseWorkerPool<T>::CommitTransaction(SQLTransaction transaction)
{
#ifdef TRINITY_DEBUG
diff --git a/src/server/database/Database/DatabaseWorkerPool.h b/src/server/database/Database/DatabaseWorkerPool.h
index 6e5f25ff297..adca6b3f836 100644
--- a/src/server/database/Database/DatabaseWorkerPool.h
+++ b/src/server/database/Database/DatabaseWorkerPool.h
@@ -60,10 +60,7 @@ class DatabaseWorkerPool
/* Activity state */
DatabaseWorkerPool();
- ~DatabaseWorkerPool()
- {
- _queue->Cancel();
- }
+ ~DatabaseWorkerPool();
void SetConnectionInfo(std::string const& infoString, uint8 const asyncThreads, uint8 const synchThreads);
@@ -211,10 +208,7 @@ class DatabaseWorkerPool
*/
//! Begins an automanaged transaction pointer that will automatically rollback if not commited. (Autocommit=0)
- SQLTransaction BeginTransaction()
- {
- return SQLTransaction(new Transaction);
- }
+ SQLTransaction BeginTransaction();
//! Enqueues a collection of one-way SQL operations (can be both adhoc and prepared). The order in which these operations
//! were appended to the transaction will be respected during execution.
diff --git a/src/server/database/Database/Field.h b/src/server/database/Database/Field.h
index 4daa447e481..8035dd16869 100644
--- a/src/server/database/Database/Field.h
+++ b/src/server/database/Database/Field.h
@@ -21,6 +21,9 @@
#include "Common.h"
#include "Log.h"
+#ifdef _WIN32
+#include <winsock2.h>
+#endif
#include <mysql.h>
/**
diff --git a/src/server/database/Database/MySQLConnection.h b/src/server/database/Database/MySQLConnection.h
index 0a9b136386d..42fb976c729 100644
--- a/src/server/database/Database/MySQLConnection.h
+++ b/src/server/database/Database/MySQLConnection.h
@@ -19,6 +19,7 @@
#include "Transaction.h"
#include "Util.h"
#include "ProducerConsumerQueue.h"
+#include <map>
#ifndef _MYSQLCONNECTION_H
#define _MYSQLCONNECTION_H
diff --git a/src/server/database/Database/QueryCallback.h b/src/server/database/Database/QueryCallback.h
index f9c93000da7..8258da37afb 100644
--- a/src/server/database/Database/QueryCallback.h
+++ b/src/server/database/Database/QueryCallback.h
@@ -20,6 +20,8 @@
#include "QueryResult.h"
#include <future>
+#include <list>
+#include <queue>
class TC_DATABASE_API QueryCallback
{
diff --git a/src/server/database/Database/QueryResult.h b/src/server/database/Database/QueryResult.h
index 2df5d3a4f70..5d2cc425ae8 100644
--- a/src/server/database/Database/QueryResult.h
+++ b/src/server/database/Database/QueryResult.h
@@ -20,6 +20,7 @@
#define QUERYRESULT_H
#include <memory>
+#include "Errors.h"
#include "Field.h"
#ifdef _WIN32
diff --git a/src/server/database/Database/Transaction.h b/src/server/database/Database/Transaction.h
index 6e6d68302f5..fbb96c053ce 100644
--- a/src/server/database/Database/Transaction.h
+++ b/src/server/database/Database/Transaction.h
@@ -20,6 +20,8 @@
#include "SQLOperation.h"
#include "StringFormat.h"
+#include <list>
+#include <mutex>
//- Forward declare (don't include header to prevent circular includes)
class PreparedStatement;
diff --git a/src/server/database/Logging/AppenderDB.cpp b/src/server/database/Logging/AppenderDB.cpp
index 1a6e11209e9..f14bb04ddea 100644
--- a/src/server/database/Logging/AppenderDB.cpp
+++ b/src/server/database/Logging/AppenderDB.cpp
@@ -17,8 +17,9 @@
#include "AppenderDB.h"
#include "Database/DatabaseEnv.h"
+#include "LogMessage.h"
-AppenderDB::AppenderDB(uint8 id, std::string const& name, LogLevel level, AppenderFlags /*flags*/, ExtraAppenderArgs /*extraArgs*/)
+AppenderDB::AppenderDB(uint8 id, std::string const& name, LogLevel level, AppenderFlags /*flags*/, std::vector<char const*> /*extraArgs*/)
: Appender(id, name, level), realmId(0), enabled(false) { }
AppenderDB::~AppenderDB() { }
diff --git a/src/server/database/Logging/AppenderDB.h b/src/server/database/Logging/AppenderDB.h
index 56f5fc13b94..3f53a33210a 100644
--- a/src/server/database/Logging/AppenderDB.h
+++ b/src/server/database/Logging/AppenderDB.h
@@ -25,7 +25,7 @@ class TC_DATABASE_API AppenderDB: public Appender
public:
typedef std::integral_constant<AppenderType, APPENDER_DB>::type TypeIndex;
- AppenderDB(uint8 id, std::string const& name, LogLevel level, AppenderFlags flags, ExtraAppenderArgs extraArgs);
+ AppenderDB(uint8 id, std::string const& name, LogLevel level, AppenderFlags flags, std::vector<char const*> extraArgs);
~AppenderDB();
void setRealmId(uint32 realmId) override;
diff --git a/src/server/database/Updater/DBUpdater.cpp b/src/server/database/Updater/DBUpdater.cpp
index 63257571177..117c3097478 100644
--- a/src/server/database/Updater/DBUpdater.cpp
+++ b/src/server/database/Updater/DBUpdater.cpp
@@ -41,18 +41,12 @@ bool DBUpdaterUtil::CheckExecutable()
boost::filesystem::path exe(GetCorrectedMySQLExecutable());
if (!exists(exe))
{
- exe.clear();
-
- if (auto path = Trinity::SearchExecutableInPath("mysql"))
+ exe = Trinity::SearchExecutableInPath("mysql");
+ if (!exe.empty() && exists(exe))
{
- exe = std::move(*path);
-
- if (!exe.empty() && exists(exe))
- {
- // Correct the path to the cli
- corrected_path() = absolute(exe).generic_string();
- return true;
- }
+ // Correct the path to the cli
+ corrected_path() = absolute(exe).generic_string();
+ return true;
}
TC_LOG_FATAL("sql.updates", "Didn't find any executable MySQL binary at \'%s\' or in path, correct the path in the *.conf (\"MySQLExecutable\").",
@@ -347,7 +341,7 @@ bool DBUpdater<T>::Populate(DatabaseWorkerPool<T>& pool)
template<class T>
QueryResult DBUpdater<T>::Retrieve(DatabaseWorkerPool<T>& pool, std::string const& query)
{
- return pool.PQuery(query.c_str());
+ return pool.Query(query.c_str());
}
template<class T>
diff --git a/src/server/database/Updater/UpdateFetcher.h b/src/server/database/Updater/UpdateFetcher.h
index 51f735e797f..0ca18f43886 100644
--- a/src/server/database/Updater/UpdateFetcher.h
+++ b/src/server/database/Updater/UpdateFetcher.h
@@ -23,6 +23,7 @@
#include <functional>
#include <string>
#include <memory>
+#include <set>
#include <vector>
class TC_DATABASE_API UpdateFetcher
diff --git a/src/server/game/Achievements/CriteriaHandler.h b/src/server/game/Achievements/CriteriaHandler.h
index ab5625b0742..8959997041c 100644
--- a/src/server/game/Achievements/CriteriaHandler.h
+++ b/src/server/game/Achievements/CriteriaHandler.h
@@ -22,6 +22,9 @@
#include "ObjectGuid.h"
#include "Transaction.h"
#include "Common.h"
+#include <map>
+#include <unordered_map>
+#include <vector>
class Player;
class Unit;
diff --git a/src/server/game/AuctionHouseBot/AuctionHouseBotBuyer.cpp b/src/server/game/AuctionHouseBot/AuctionHouseBotBuyer.cpp
index 1c34fc49abb..5bcaa084950 100644
--- a/src/server/game/AuctionHouseBot/AuctionHouseBotBuyer.cpp
+++ b/src/server/game/AuctionHouseBot/AuctionHouseBotBuyer.cpp
@@ -19,6 +19,7 @@
#include "Item.h"
#include "ItemTemplate.h"
#include "AuctionHouseBotBuyer.h"
+#include "Random.h"
AuctionBotBuyer::AuctionBotBuyer() : _checkInterval(20 * MINUTE)
{
diff --git a/src/server/game/AuctionHouseBot/AuctionHouseBotSeller.cpp b/src/server/game/AuctionHouseBot/AuctionHouseBotSeller.cpp
index ae05c53dace..4c74727a03e 100644
--- a/src/server/game/AuctionHouseBot/AuctionHouseBotSeller.cpp
+++ b/src/server/game/AuctionHouseBot/AuctionHouseBotSeller.cpp
@@ -19,6 +19,7 @@
#include "ObjectMgr.h"
#include "AuctionHouseMgr.h"
#include "AuctionHouseBotSeller.h"
+#include "Random.h"
AuctionBotSeller::AuctionBotSeller()
{
diff --git a/src/server/game/Battlegrounds/BattlegroundMgr.cpp b/src/server/game/Battlegrounds/BattlegroundMgr.cpp
index f7405c0337e..aedce2d6f51 100644
--- a/src/server/game/Battlegrounds/BattlegroundMgr.cpp
+++ b/src/server/game/Battlegrounds/BattlegroundMgr.cpp
@@ -43,6 +43,7 @@
#include "SharedDefines.h"
#include "DisableMgr.h"
#include "Opcodes.h"
+#include "Containers.h"
/*********************************************************/
/*** BATTLEGROUND MANAGER ***/
@@ -866,9 +867,11 @@ BattlegroundTypeId BattlegroundMgr::GetRandomBG(BattlegroundTypeId bgTypeId)
{
if (BattlegroundTemplate const* bgTemplate = GetBattlegroundTemplateByTypeId(bgTypeId))
{
- uint32 weight = 0;
BattlegroundSelectionWeightMap selectionWeights;
-
+ std::vector<BattlegroundTypeId> ids;
+ ids.reserve(16);
+ std::vector<double> weights;
+ weights.reserve(16);
for (int32 mapId : bgTemplate->BattlemasterEntry->MapID)
{
if (mapId == -1)
@@ -876,28 +879,12 @@ BattlegroundTypeId BattlegroundMgr::GetRandomBG(BattlegroundTypeId bgTypeId)
if (BattlegroundTemplate const* bg = GetBattlegroundTemplateByMapId(mapId))
{
- weight += bg->Weight;
- selectionWeights[bg->Id] = bg->Weight;
+ ids.push_back(bg->Id);
+ weights.push_back(bg->Weight);
}
}
- // there is only one bg to select
- if (selectionWeights.size() == 1)
- return selectionWeights.begin()->first;
-
- if (weight)
- {
- // Select a random value
- uint32 selectedWeight = urand(0, weight - 1);
- // Select the correct bg (if we have in DB A(10), B(20), C(10), D(15) --> [0---A---9|10---B---29|30---C---39|40---D---54])
- weight = 0;
- for (auto it : selectionWeights)
- {
- weight += it.second;
- if (selectedWeight < weight)
- return it.first;
- }
- }
+ return *Trinity::Containers::SelectRandomWeightedContainerElement(ids, weights);
}
return BATTLEGROUND_TYPE_NONE;
diff --git a/src/server/game/Battlegrounds/Zones/BattlegroundAB.cpp b/src/server/game/Battlegrounds/Zones/BattlegroundAB.cpp
index 68930e23cf9..180e82755f2 100644
--- a/src/server/game/Battlegrounds/Zones/BattlegroundAB.cpp
+++ b/src/server/game/Battlegrounds/Zones/BattlegroundAB.cpp
@@ -22,6 +22,7 @@
#include "Creature.h"
#include "Language.h"
#include "Player.h"
+#include "Random.h"
#include "Util.h"
#include "WorldSession.h"
diff --git a/src/server/game/Battlegrounds/Zones/BattlegroundDS.cpp b/src/server/game/Battlegrounds/Zones/BattlegroundDS.cpp
index 7ca9d636533..00ab1c2e964 100644
--- a/src/server/game/Battlegrounds/Zones/BattlegroundDS.cpp
+++ b/src/server/game/Battlegrounds/Zones/BattlegroundDS.cpp
@@ -19,6 +19,7 @@
#include "BattlegroundDS.h"
#include "Creature.h"
#include "Player.h"
+#include "Random.h"
#include "WorldPacket.h"
BattlegroundDS::BattlegroundDS()
diff --git a/src/server/game/Battlegrounds/Zones/BattlegroundEY.cpp b/src/server/game/Battlegrounds/Zones/BattlegroundEY.cpp
index 335f95d03fc..45ab8a542f4 100644
--- a/src/server/game/Battlegrounds/Zones/BattlegroundEY.cpp
+++ b/src/server/game/Battlegrounds/Zones/BattlegroundEY.cpp
@@ -22,6 +22,7 @@
#include "Creature.h"
#include "Language.h"
#include "Player.h"
+#include "Random.h"
#include "Util.h"
// these variables aren't used outside of this file, so declare them only here
diff --git a/src/server/game/Battlegrounds/Zones/BattlegroundSA.cpp b/src/server/game/Battlegrounds/Zones/BattlegroundSA.cpp
index 0224adbdbea..0fa25fc3f78 100644
--- a/src/server/game/Battlegrounds/Zones/BattlegroundSA.cpp
+++ b/src/server/game/Battlegrounds/Zones/BattlegroundSA.cpp
@@ -22,6 +22,7 @@
#include "ObjectMgr.h"
#include "Player.h"
#include "ScriptedCreature.h"
+#include "UpdateData.h"
#include "WorldPacket.h"
BattlegroundSA::BattlegroundSA()
diff --git a/src/server/game/Chat/Channels/Channel.h b/src/server/game/Chat/Channels/Channel.h
index 056cf9a4c3f..50dd5c8ee96 100644
--- a/src/server/game/Chat/Channels/Channel.h
+++ b/src/server/game/Chat/Channels/Channel.h
@@ -22,6 +22,7 @@
#include "Common.h"
#include "ObjectGuid.h"
#include "WorldPacket.h"
+#include <map>
class Player;
diff --git a/src/server/game/Chat/Channels/ChannelMgr.h b/src/server/game/Chat/Channels/ChannelMgr.h
index f8bcaedf57b..66d57c38d55 100644
--- a/src/server/game/Chat/Channels/ChannelMgr.h
+++ b/src/server/game/Chat/Channels/ChannelMgr.h
@@ -19,6 +19,8 @@
#define __TRINITY_CHANNELMGR_H
#include "Common.h"
+#include "Hash.h"
+#include <unordered_map>
class Channel;
diff --git a/src/server/game/Chat/ChatLink.h b/src/server/game/Chat/ChatLink.h
index 2a7d1954d84..f8656a7870e 100644
--- a/src/server/game/Chat/ChatLink.h
+++ b/src/server/game/Chat/ChatLink.h
@@ -19,10 +19,11 @@
#define TRINITYCORE_CHATLINK_H
#include "SharedDefines.h"
-#include <sstream>
+#include "Common.h"
#include <list>
+#include <sstream>
+#include <vector>
#include <cstring>
-#include "Common.h"
struct ItemLocale;
struct ItemTemplate;
diff --git a/src/server/game/Conditions/ConditionMgr.h b/src/server/game/Conditions/ConditionMgr.h
index cf9ef40c2bf..14eef8db623 100644
--- a/src/server/game/Conditions/ConditionMgr.h
+++ b/src/server/game/Conditions/ConditionMgr.h
@@ -20,6 +20,10 @@
#define TRINITY_CONDITIONMGR_H
#include "Common.h"
+#include "Hash.h"
+#include <array>
+#include <unordered_map>
+#include <vector>
class Creature;
class Player;
diff --git a/src/server/game/DataStores/DB2Stores.cpp b/src/server/game/DataStores/DB2Stores.cpp
index 689c36710df..a28e77aecbc 100644
--- a/src/server/game/DataStores/DB2Stores.cpp
+++ b/src/server/game/DataStores/DB2Stores.cpp
@@ -24,6 +24,11 @@
#include "TransportMgr.h"
#include "World.h"
+// temporary hack until database includes are sorted out (don't want to pull in Windows.h everywhere from mysql.h)
+#ifdef GetClassName
+#undef GetClassName
+#endif
+
DB2Storage<AchievementEntry> sAchievementStore("Achievement.db2", AchievementLoadInfo::Instance());
DB2Storage<AnimKitEntry> sAnimKitStore("AnimKit.db2", AnimKitLoadInfo::Instance());
DB2Storage<AreaGroupMemberEntry> sAreaGroupMemberStore("AreaGroupMember.db2", AreaGroupMemberLoadInfo::Instance());
diff --git a/src/server/game/DataStores/DB2Stores.h b/src/server/game/DataStores/DB2Stores.h
index d4211b76d4f..ea2d02883bd 100644
--- a/src/server/game/DataStores/DB2Stores.h
+++ b/src/server/game/DataStores/DB2Stores.h
@@ -20,8 +20,15 @@
#include "DB2Store.h"
#include "DB2Structure.h"
+#include "Hash.h"
#include "SharedDefines.h"
#include "Regex.h"
+#include <array>
+#include <map>
+#include <set>
+#include <unordered_map>
+#include <unordered_set>
+#include <vector>
TC_GAME_API extern DB2Storage<AchievementEntry> sAchievementStore;
TC_GAME_API extern DB2Storage<AnimKitEntry> sAnimKitStore;
diff --git a/src/server/game/DataStores/GameTables.h b/src/server/game/DataStores/GameTables.h
index a9d1a01b1c3..93a0fb6b532 100644
--- a/src/server/game/DataStores/GameTables.h
+++ b/src/server/game/DataStores/GameTables.h
@@ -20,6 +20,7 @@
#include "SharedDefines.h"
#include "Common.h"
+#include <vector>
struct GtArmorMitigationByLvlEntry
{
diff --git a/src/server/game/DungeonFinding/LFG.h b/src/server/game/DungeonFinding/LFG.h
index 568fc300448..09d63b6d47e 100644
--- a/src/server/game/DungeonFinding/LFG.h
+++ b/src/server/game/DungeonFinding/LFG.h
@@ -20,6 +20,7 @@
#include "Common.h"
#include "ObjectGuid.h"
+#include <map>
namespace lfg
{
diff --git a/src/server/game/Entities/AreaTrigger/AreaTriggerTemplate.h b/src/server/game/Entities/AreaTrigger/AreaTriggerTemplate.h
index 98778d9fa83..d6ef0a43d79 100644
--- a/src/server/game/Entities/AreaTrigger/AreaTriggerTemplate.h
+++ b/src/server/game/Entities/AreaTrigger/AreaTriggerTemplate.h
@@ -18,9 +18,10 @@
#ifndef TRINITYCORE_AREATRIGGER_TEMPLATE_H
#define TRINITYCORE_AREATRIGGER_TEMPLATE_H
-#include <G3D/Vector3.h>
-
#include "Define.h"
+#include <G3D/Vector3.h>
+#include <vector>
+#include <cstring>
#define MAX_AREATRIGGER_ENTITY_DATA 6
#define MAX_AREATRIGGER_SCALE 7
diff --git a/src/server/game/Entities/Corpse/Corpse.cpp b/src/server/game/Entities/Corpse/Corpse.cpp
index ac34ebc0e9c..27a8623bad0 100644
--- a/src/server/game/Entities/Corpse/Corpse.cpp
+++ b/src/server/game/Entities/Corpse/Corpse.cpp
@@ -19,6 +19,7 @@
#include "Common.h"
#include "Corpse.h"
#include "Player.h"
+#include "UpdateData.h"
#include "ObjectAccessor.h"
#include "DatabaseEnv.h"
diff --git a/src/server/game/Entities/Creature/Creature.h b/src/server/game/Entities/Creature/Creature.h
index 32775918cb2..94ef4c532d6 100644
--- a/src/server/game/Entities/Creature/Creature.h
+++ b/src/server/game/Entities/Creature/Creature.h
@@ -20,6 +20,7 @@
#define TRINITYCORE_CREATURE_H
#include "Common.h"
+#include "Duration.h"
#include "Unit.h"
#include "ItemTemplate.h"
#include "LootMgr.h"
@@ -482,21 +483,21 @@ typedef std::unordered_map<uint16, CreatureBaseStats> CreatureBaseStatsContainer
struct CreatureLocale
{
- StringVector Name;
- StringVector NameAlt;
- StringVector Title;
- StringVector TitleAlt;
+ std::vector<std::string> Name;
+ std::vector<std::string> NameAlt;
+ std::vector<std::string> Title;
+ std::vector<std::string> TitleAlt;
};
struct GossipMenuItemsLocale
{
- StringVector OptionText;
- StringVector BoxText;
+ std::vector<std::string> OptionText;
+ std::vector<std::string> BoxText;
};
struct PointOfInterestLocale
{
- StringVector Name;
+ std::vector<std::string> Name;
};
struct EquipmentItem
diff --git a/src/server/game/Entities/GameObject/GameObject.h b/src/server/game/Entities/GameObject/GameObject.h
index 6f444d857c9..fe4fcd08cad 100644
--- a/src/server/game/Entities/GameObject/GameObject.h
+++ b/src/server/game/Entities/GameObject/GameObject.h
@@ -865,9 +865,9 @@ union GameObjectValue
struct GameObjectLocale
{
- StringVector Name;
- StringVector CastBarCaption;
- StringVector Unk1;
+ std::vector<std::string> Name;
+ std::vector<std::string> CastBarCaption;
+ std::vector<std::string> Unk1;
};
// `gameobject_addon` table
diff --git a/src/server/game/Entities/Item/Item.cpp b/src/server/game/Entities/Item/Item.cpp
index 5d039a615b9..6c97161ba3a 100644
--- a/src/server/game/Entities/Item/Item.cpp
+++ b/src/server/game/Entities/Item/Item.cpp
@@ -34,6 +34,7 @@
#include "GameTables.h"
#include "CollectionMgr.h"
#include "ArtifactPackets.h"
+#include "UpdateData.h"
void AddItemsSetItem(Player* player, Item* item)
{
diff --git a/src/server/game/Entities/Item/ItemEnchantmentMgr.cpp b/src/server/game/Entities/Item/ItemEnchantmentMgr.cpp
index ce88ba61f3e..a9bef8e415f 100644
--- a/src/server/game/Entities/Item/ItemEnchantmentMgr.cpp
+++ b/src/server/game/Entities/Item/ItemEnchantmentMgr.cpp
@@ -22,6 +22,7 @@
#include "Log.h"
#include "ObjectMgr.h"
#include "Util.h"
+#include "Random.h"
#include <list>
#include <vector>
diff --git a/src/server/game/Entities/Object/ObjectGuid.cpp b/src/server/game/Entities/Object/ObjectGuid.cpp
index 92484f9e184..292dcdd60a4 100644
--- a/src/server/game/Entities/Object/ObjectGuid.cpp
+++ b/src/server/game/Entities/Object/ObjectGuid.cpp
@@ -17,8 +17,9 @@
*/
#include "ObjectGuid.h"
+#include "Hash.h"
+#include "Log.h"
#include "World.h"
-
#include <sstream>
#include <iomanip>
@@ -109,6 +110,14 @@ std::string ObjectGuid::ToString() const
return str.str();
}
+std::size_t ObjectGuid::GetHash() const
+{
+ std::size_t hashVal = 0;
+ Trinity::hash_combine(hashVal, _low);
+ Trinity::hash_combine(hashVal, _high);
+ return hashVal;
+}
+
ObjectGuid ObjectGuid::Global(HighGuid type, LowType counter)
{
return ObjectGuid(uint64(uint64(type) << 58), counter);
diff --git a/src/server/game/Entities/Object/ObjectGuid.h b/src/server/game/Entities/Object/ObjectGuid.h
index 88172c970cb..883476b5f21 100644
--- a/src/server/game/Entities/Object/ObjectGuid.h
+++ b/src/server/game/Entities/Object/ObjectGuid.h
@@ -19,10 +19,14 @@
#ifndef ObjectGuid_h__
#define ObjectGuid_h__
-#include "Common.h"
#include "ByteBuffer.h"
-#include <type_traits>
+#include <deque>
#include <functional>
+#include <list>
+#include <set>
+#include <type_traits>
+#include <unordered_set>
+#include <vector>
enum TypeID
{
@@ -316,6 +320,7 @@ class TC_GAME_API ObjectGuid
static char const* GetTypeName(HighGuid high);
char const* GetTypeName() const { return !IsEmpty() ? GetTypeName(GetHigh()) : "None"; }
std::string ToString() const;
+ std::size_t GetHash() const;
private:
static bool HasEntry(HighGuid high)
@@ -415,7 +420,7 @@ namespace std
public:
size_t operator()(ObjectGuid const& key) const
{
- return boost::hash_range(reinterpret_cast<uint64 const*>(&key), reinterpret_cast<uint64 const*>(&key) + 2);
+ return key.GetHash();
}
};
}
diff --git a/src/server/game/Entities/Object/ObjectPosSelector.h b/src/server/game/Entities/Object/ObjectPosSelector.h
index d5414e0e245..3d75a8daafb 100644
--- a/src/server/game/Entities/Object/ObjectPosSelector.h
+++ b/src/server/game/Entities/Object/ObjectPosSelector.h
@@ -19,9 +19,9 @@
#ifndef _OBJECT_POS_SELECTOR_H
#define _OBJECT_POS_SELECTOR_H
-#include<Common.h>
-
-#include<map>
+#include "Common.h"
+#include <map>
+#include <cmath>
enum UsedPosType { USED_POS_PLUS, USED_POS_MINUS };
diff --git a/src/server/game/Entities/Object/Position.cpp b/src/server/game/Entities/Object/Position.cpp
index 5cf7fdd51f1..bbb6ee271cb 100644
--- a/src/server/game/Entities/Object/Position.cpp
+++ b/src/server/game/Entities/Object/Position.cpp
@@ -18,6 +18,7 @@
#include "Position.h"
#include "ByteBuffer.h"
#include "GridDefines.h"
+#include "Random.h"
#include <G3D/g3dmath.h>
diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp
index 936e793bfdb..eb99ccb70c3 100644
--- a/src/server/game/Entities/Player/Player.cpp
+++ b/src/server/game/Entities/Player/Player.cpp
@@ -19621,6 +19621,8 @@ void Player::SaveToDB(bool create /*=false*/)
stmt->setUInt64(0, GetGUID().GetCounter());
trans->Append(stmt);
+ auto finiteAlways = [](float f) { return std::isfinite(f) ? f : 0.0f; };
+
if (create)
{
//! Insert query
diff --git a/src/server/game/Entities/Player/SceneMgr.h b/src/server/game/Entities/Player/SceneMgr.h
index 0a7c13322cd..9064d9c892b 100644
--- a/src/server/game/Entities/Player/SceneMgr.h
+++ b/src/server/game/Entities/Player/SceneMgr.h
@@ -19,6 +19,7 @@
#define SceneMgr_h__
#include "Common.h"
+#include <map>
enum SceneFlags
{
diff --git a/src/server/game/Entities/Player/TradeData.cpp b/src/server/game/Entities/Player/TradeData.cpp
index 3c193df220b..fe5b8231109 100644
--- a/src/server/game/Entities/Player/TradeData.cpp
+++ b/src/server/game/Entities/Player/TradeData.cpp
@@ -17,6 +17,7 @@
#include "TradeData.h"
#include "Player.h"
+#include "Random.h"
#include "TradePackets.h"
TradeData* TradeData::GetTraderData() const
@@ -143,3 +144,8 @@ void TradeData::SetAccepted(bool state, bool forTrader /*= false*/)
_player->GetSession()->SendTradeStatus(info);
}
}
+
+void TradeData::UpdateServerStateIndex()
+{
+ _serverStateIndex = rand32();
+}
diff --git a/src/server/game/Entities/Player/TradeData.h b/src/server/game/Entities/Player/TradeData.h
index 3fa800eb557..2a5b9f79777 100644
--- a/src/server/game/Entities/Player/TradeData.h
+++ b/src/server/game/Entities/Player/TradeData.h
@@ -65,7 +65,7 @@ public:
void UpdateClientStateIndex() { ++_clientStateIndex; }
uint32 GetServerStateIndex() const { return _serverStateIndex; }
- void UpdateServerStateIndex() { _serverStateIndex = rand32(); }
+ void UpdateServerStateIndex();
private:
void Update(bool for_trader = true) const;
diff --git a/src/server/game/Entities/Transport/Transport.cpp b/src/server/game/Entities/Transport/Transport.cpp
index b8329d24a8b..2c09cf6f9e2 100644
--- a/src/server/game/Entities/Transport/Transport.cpp
+++ b/src/server/game/Entities/Transport/Transport.cpp
@@ -27,6 +27,7 @@
#include "Cell.h"
#include "CellImpl.h"
#include "Totem.h"
+#include "UpdateData.h"
Transport::Transport() : GameObject(),
_transportInfo(NULL), _isMoving(true), _pendingStop(false),
diff --git a/src/server/game/Entities/Unit/StatSystem.cpp b/src/server/game/Entities/Unit/StatSystem.cpp
index fab73a76b40..72f58e0f17a 100644
--- a/src/server/game/Entities/Unit/StatSystem.cpp
+++ b/src/server/game/Entities/Unit/StatSystem.cpp
@@ -25,6 +25,7 @@
#include "SpellAuras.h"
#include "SpellAuraEffects.h"
#include "World.h"
+#include <numeric>
inline bool _ModifyUInt32(bool apply, uint32& baseValue, int32& amount)
{
diff --git a/src/server/game/Events/GameEventMgr.h b/src/server/game/Events/GameEventMgr.h
index 77b39e543d3..22e9ee717f4 100644
--- a/src/server/game/Events/GameEventMgr.h
+++ b/src/server/game/Events/GameEventMgr.h
@@ -23,6 +23,8 @@
#include "SharedDefines.h"
#include "Define.h"
#include "ObjectGuid.h"
+#include <map>
+#include <unordered_map>
#define max_ge_check_delay DAY // 1 day in seconds
diff --git a/src/server/game/Garrison/GarrisonMgr.h b/src/server/game/Garrison/GarrisonMgr.h
index 67e5b13df7d..29f9d4187be 100644
--- a/src/server/game/Garrison/GarrisonMgr.h
+++ b/src/server/game/Garrison/GarrisonMgr.h
@@ -19,8 +19,12 @@
#define GarrisonMgr_h__
#include "DB2Stores.h"
-#include <unordered_set>
#include "Position.h"
+#include <list>
+#include <set>
+#include <unordered_map>
+#include <unordered_set>
+#include <vector>
struct FinalizeGarrisonPlotGOInfo
{
diff --git a/src/server/game/Globals/ObjectAccessor.cpp b/src/server/game/Globals/ObjectAccessor.cpp
index 2fc726e3601..564b02adc67 100644
--- a/src/server/game/Globals/ObjectAccessor.cpp
+++ b/src/server/game/Globals/ObjectAccessor.cpp
@@ -37,6 +37,10 @@
template<class T>
void HashMapHolder<T>::Insert(T* o)
{
+ static_assert(std::is_same<Player, T>::value
+ || std::is_same<Transport, T>::value,
+ "Only Player and Transport can be registered in global HashMapHolder");
+
boost::unique_lock<boost::shared_mutex> lock(*GetLock());
GetContainer()[o->GetGUID()] = o;
diff --git a/src/server/game/Globals/ObjectAccessor.h b/src/server/game/Globals/ObjectAccessor.h
index 1dae898e832..08bf2bc3b58 100644
--- a/src/server/game/Globals/ObjectAccessor.h
+++ b/src/server/game/Globals/ObjectAccessor.h
@@ -19,27 +19,26 @@
#ifndef TRINITY_OBJECTACCESSOR_H
#define TRINITY_OBJECTACCESSOR_H
-#include <mutex>
-#include <set>
+#include "ObjectGuid.h"
#include <unordered_map>
-#include <boost/thread/locks.hpp>
-#include <boost/thread/shared_mutex.hpp>
-
-#include "Define.h"
-#include "GridDefines.h"
-#include "UpdateData.h"
-#include "Object.h"
+class Object;
+class WorldObject;
+class Unit;
class Creature;
+class Player;
class Corpse;
-class Unit;
class GameObject;
class DynamicObject;
-class WorldObject;
-class Vehicle;
-class Map;
-class WorldRunnable;
+class AreaTrigger;
+class Pet;
class Transport;
+class Map;
+
+namespace boost
+{
+ class shared_mutex;
+}
template <class T>
class TC_GAME_API HashMapHolder
@@ -48,10 +47,6 @@ class TC_GAME_API HashMapHolder
HashMapHolder() { }
public:
- static_assert(std::is_same<Player, T>::value
- || std::is_same<Transport, T>::value,
- "Only Player and Transport can be registered in global HashMapHolder");
-
typedef std::unordered_map<ObjectGuid, T*> MapType;
static void Insert(T* o);
diff --git a/src/server/game/Globals/ObjectMgr.cpp b/src/server/game/Globals/ObjectMgr.cpp
index a0077de693e..d081a1d0ed9 100644
--- a/src/server/game/Globals/ObjectMgr.cpp
+++ b/src/server/game/Globals/ObjectMgr.cpp
@@ -38,6 +38,7 @@
#include "MapManager.h"
#include "Object.h"
#include "PoolMgr.h"
+#include "Random.h"
#include "ReputationMgr.h"
#include "ScriptMgr.h"
#include "SpellAuras.h"
@@ -294,7 +295,7 @@ ObjectMgr::~ObjectMgr()
delete itr2->second;
}
-void ObjectMgr::AddLocaleString(std::string const& value, LocaleConstant localeConstant, StringVector& data)
+void ObjectMgr::AddLocaleString(std::string const& value, LocaleConstant localeConstant, std::vector<std::string>& data)
{
if (!value.empty())
{
@@ -7218,8 +7219,8 @@ void ObjectMgr::LoadPetNumber()
std::string ObjectMgr::GeneratePetName(uint32 entry)
{
- StringVector& list0 = _petHalfName0[entry];
- StringVector& list1 = _petHalfName1[entry];
+ std::vector<std::string>& list0 = _petHalfName0[entry];
+ std::vector<std::string>& list1 = _petHalfName1[entry];
if (list0.empty() || list1.empty())
{
diff --git a/src/server/game/Globals/ObjectMgr.h b/src/server/game/Globals/ObjectMgr.h
index 40ea4618c39..5828bd65016 100644
--- a/src/server/game/Globals/ObjectMgr.h
+++ b/src/server/game/Globals/ObjectMgr.h
@@ -430,7 +430,7 @@ typedef std::unordered_map<uint32/*(mapid, spawnMode) pair*/, CellObjectGuidsMap
struct TrinityString
{
- StringVector Content;
+ std::vector<std::string> Content;
};
typedef std::map<ObjectGuid, ObjectGuid> LinkedRespawnContainer;
@@ -1368,8 +1368,8 @@ class TC_GAME_API ObjectMgr
// for wintergrasp only
GraveYardContainer GraveYardStore;
- static void AddLocaleString(std::string const& value, LocaleConstant localeConstant, StringVector& data);
- static inline void GetLocaleString(StringVector const& data, LocaleConstant localeConstant, std::string& value)
+ static void AddLocaleString(std::string const& value, LocaleConstant localeConstant, std::vector<std::string>& data);
+ static inline void GetLocaleString(std::vector<std::string> const& data, LocaleConstant localeConstant, std::string& value)
{
if (data.size() > size_t(localeConstant) && !data[localeConstant].empty())
value = data[localeConstant];
@@ -1535,7 +1535,7 @@ class TC_GAME_API ObjectMgr
FishingBaseSkillContainer _fishingBaseForAreaStore;
std::unordered_map<uint32, SkillTiersEntry> _skillTiers;
- typedef std::map<uint32, StringVector> HalfNameContainer;
+ typedef std::map<uint32, std::vector<std::string>> HalfNameContainer;
HalfNameContainer _petHalfName0;
HalfNameContainer _petHalfName1;
diff --git a/src/server/game/Grids/NGrid.cpp b/src/server/game/Grids/NGrid.cpp
new file mode 100644
index 00000000000..e5d69dae44a
--- /dev/null
+++ b/src/server/game/Grids/NGrid.cpp
@@ -0,0 +1,29 @@
+/*
+ * Copyright (C) 2008-2017 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 "NGrid.h"
+#include "Random.h"
+
+GridInfo::GridInfo() : i_timer(0), vis_Update(0, irand(0, DEFAULT_VISIBILITY_NOTIFY_PERIOD)),
+ i_unloadActiveLockCount(0), i_unloadExplicitLock(false), i_unloadReferenceLock(false)
+{
+}
+
+GridInfo::GridInfo(time_t expiry, bool unload /*= true */) : i_timer(expiry), vis_Update(0, irand(0, DEFAULT_VISIBILITY_NOTIFY_PERIOD)),
+ i_unloadActiveLockCount(0), i_unloadExplicitLock(!unload), i_unloadReferenceLock(false)
+{
+}
diff --git a/src/server/game/Grids/NGrid.h b/src/server/game/Grids/NGrid.h
index 986f083c053..a26dadef962 100644
--- a/src/server/game/Grids/NGrid.h
+++ b/src/server/game/Grids/NGrid.h
@@ -29,15 +29,11 @@
#define DEFAULT_VISIBILITY_NOTIFY_PERIOD 1000
-class GridInfo
+class TC_GAME_API GridInfo
{
public:
- GridInfo()
- : i_timer(0), vis_Update(0, irand(0, DEFAULT_VISIBILITY_NOTIFY_PERIOD)),
- i_unloadActiveLockCount(0), i_unloadExplicitLock(false), i_unloadReferenceLock(false) { }
- GridInfo(time_t expiry, bool unload = true )
- : i_timer(expiry), vis_Update(0, irand(0, DEFAULT_VISIBILITY_NOTIFY_PERIOD)),
- i_unloadActiveLockCount(0), i_unloadExplicitLock(!unload), i_unloadReferenceLock(false) { }
+ GridInfo();
+ GridInfo(time_t expiry, bool unload = true );
const TimeTracker& getTimeTracker() const { return i_timer; }
bool getUnloadLock() const { return i_unloadActiveLockCount || i_unloadExplicitLock || i_unloadReferenceLock; }
void setUnloadExplicitLock(bool on) { i_unloadExplicitLock = on; }
diff --git a/src/server/game/Groups/Group.cpp b/src/server/game/Groups/Group.cpp
index e9961be50f7..788feed0193 100644
--- a/src/server/game/Groups/Group.cpp
+++ b/src/server/game/Groups/Group.cpp
@@ -33,11 +33,13 @@
#include "MapManager.h"
#include "InstanceSaveMgr.h"
#include "Util.h"
+#include "Random.h"
#include "LFGMgr.h"
#include "UpdateFieldFlags.h"
#include "SpellAuras.h"
#include "PartyPackets.h"
#include "LootPackets.h"
+#include "UpdateData.h"
Roll::Roll(LootItem const& li) : itemid(li.itemid),
itemRandomPropId(li.randomPropertyId), itemRandomSuffix(li.randomSuffix), itemCount(li.count),
diff --git a/src/server/game/Handlers/MiscHandler.cpp b/src/server/game/Handlers/MiscHandler.cpp
index 69c65e91348..0805da1eae3 100644
--- a/src/server/game/Handlers/MiscHandler.cpp
+++ b/src/server/game/Handlers/MiscHandler.cpp
@@ -49,6 +49,8 @@
#include "InstancePackets.h"
#include "InstanceScript.h"
#include "AreaTriggerPackets.h"
+#include <boost/thread/shared_mutex.hpp>
+#include <boost/thread/locks.hpp>
void WorldSession::HandleRepopRequest(WorldPackets::Misc::RepopRequest& /*packet*/)
{
diff --git a/src/server/game/Handlers/NPCHandler.h b/src/server/game/Handlers/NPCHandler.h
index d3c702f9d17..04bf128edab 100644
--- a/src/server/game/Handlers/NPCHandler.h
+++ b/src/server/game/Handlers/NPCHandler.h
@@ -34,7 +34,7 @@ struct NpcText
struct PageTextLocale
{
- StringVector Text;
+ std::vector<std::string> Text;
};
#endif
diff --git a/src/server/game/Maps/Map.h b/src/server/game/Maps/Map.h
index 38eca73adf2..0854090bc3f 100644
--- a/src/server/game/Maps/Map.h
+++ b/src/server/game/Maps/Map.h
@@ -34,6 +34,7 @@
#include <bitset>
#include <list>
#include <memory>
+#include <mutex>
class Battleground;
class BattlegroundMap;
diff --git a/src/server/game/Movement/MovementGenerators/ConfusedMovementGenerator.cpp b/src/server/game/Movement/MovementGenerators/ConfusedMovementGenerator.cpp
index b54aef633ef..84e7640ac6b 100755
--- a/src/server/game/Movement/MovementGenerators/ConfusedMovementGenerator.cpp
+++ b/src/server/game/Movement/MovementGenerators/ConfusedMovementGenerator.cpp
@@ -22,6 +22,7 @@
#include "MoveSplineInit.h"
#include "MoveSpline.h"
#include "Player.h"
+#include "Random.h"
template<class T>
void ConfusedMovementGenerator<T>::DoInitialize(T* unit)
diff --git a/src/server/game/Movement/MovementGenerators/RandomMovementGenerator.cpp b/src/server/game/Movement/MovementGenerators/RandomMovementGenerator.cpp
index ad6761d6218..fe501b20cb5 100644
--- a/src/server/game/Movement/MovementGenerators/RandomMovementGenerator.cpp
+++ b/src/server/game/Movement/MovementGenerators/RandomMovementGenerator.cpp
@@ -23,6 +23,7 @@
#include "CreatureGroups.h"
#include "MoveSplineInit.h"
#include "MoveSpline.h"
+#include "Random.h"
#define RUNNING_CHANCE_RANDOMMV 20 //will be "1 / RUNNING_CHANCE_RANDOMMV"
diff --git a/src/server/game/Movement/Spline/MoveSplineInitArgs.h b/src/server/game/Movement/Spline/MoveSplineInitArgs.h
index a90b2012ae0..d9688674dfc 100644
--- a/src/server/game/Movement/Spline/MoveSplineInitArgs.h
+++ b/src/server/game/Movement/Spline/MoveSplineInitArgs.h
@@ -21,6 +21,7 @@
#include "MoveSplineFlag.h"
#include "ObjectGuid.h"
+#include "Optional.h"
#include <G3D/Vector3.h>
class Unit;
diff --git a/src/server/game/Movement/Spline/MovementUtil.cpp b/src/server/game/Movement/Spline/MovementUtil.cpp
index dc025403ba5..58b21602270 100644
--- a/src/server/game/Movement/Spline/MovementUtil.cpp
+++ b/src/server/game/Movement/Spline/MovementUtil.cpp
@@ -17,6 +17,7 @@
*/
#include "MoveSplineFlag.h"
+#include <cmath>
namespace Movement
{
diff --git a/src/server/game/Movement/Spline/Spline.h b/src/server/game/Movement/Spline/Spline.h
index cf17fda4f4a..e0f7cdce7fc 100644
--- a/src/server/game/Movement/Spline/Spline.h
+++ b/src/server/game/Movement/Spline/Spline.h
@@ -20,6 +20,7 @@
#define TRINITYSERVER_SPLINE_H
#include "MovementTypedefs.h"
+#include "Errors.h"
#include <G3D/Vector3.h>
#include <limits>
diff --git a/src/server/game/Quests/QuestDef.h b/src/server/game/Quests/QuestDef.h
index aa8d99d5301..15eb95280b9 100644
--- a/src/server/game/Quests/QuestDef.h
+++ b/src/server/game/Quests/QuestDef.h
@@ -255,30 +255,30 @@ enum QuestObjectiveFlags
struct QuestTemplateLocale
{
- StringVector LogTitle;
- StringVector LogDescription;
- StringVector QuestDescription;
- StringVector AreaDescription;
- StringVector PortraitGiverText;
- StringVector PortraitGiverName;
- StringVector PortraitTurnInText;
- StringVector PortraitTurnInName;
- StringVector QuestCompletionLog;
+ std::vector<std::string> LogTitle;
+ std::vector<std::string> LogDescription;
+ std::vector<std::string> QuestDescription;
+ std::vector<std::string> AreaDescription;
+ std::vector<std::string> PortraitGiverText;
+ std::vector<std::string> PortraitGiverName;
+ std::vector<std::string> PortraitTurnInText;
+ std::vector<std::string> PortraitTurnInName;
+ std::vector<std::string> QuestCompletionLog;
};
struct QuestRequestItemsLocale
{
- StringVector CompletionText;
+ std::vector<std::string> CompletionText;
};
struct QuestObjectivesLocale
{
- StringVector Description;
+ std::vector<std::string> Description;
};
struct QuestOfferRewardLocale
{
- StringVector RewardText;
+ std::vector<std::string> RewardText;
};
struct QuestObjective
diff --git a/src/server/game/Scenarios/ScenarioMgr.h b/src/server/game/Scenarios/ScenarioMgr.h
index 08861e83ef7..94fb64df41f 100644
--- a/src/server/game/Scenarios/ScenarioMgr.h
+++ b/src/server/game/Scenarios/ScenarioMgr.h
@@ -19,7 +19,11 @@
#define ScenarioMgr_h__
#include "Common.h"
+#include "Hash.h"
#include "SharedDefines.h"
+#include <map>
+#include <unordered_map>
+#include <vector>
class InstanceScenario;
class Map;
diff --git a/src/server/game/Scripting/ScriptReloadMgr.cpp b/src/server/game/Scripting/ScriptReloadMgr.cpp
index 3079c548b71..e4f15c66431 100644
--- a/src/server/game/Scripting/ScriptReloadMgr.cpp
+++ b/src/server/game/Scripting/ScriptReloadMgr.cpp
@@ -17,6 +17,7 @@
#include "ScriptReloadMgr.h"
#include "Errors.h"
+#include "Optional.h"
#ifndef TRINITY_API_USE_DYNAMIC_LINKING
diff --git a/src/server/game/Server/Packets/AreaTriggerPackets.h b/src/server/game/Server/Packets/AreaTriggerPackets.h
index 967a8ba0f5f..02e30093501 100644
--- a/src/server/game/Server/Packets/AreaTriggerPackets.h
+++ b/src/server/game/Server/Packets/AreaTriggerPackets.h
@@ -21,6 +21,7 @@
#include "Packet.h"
#include "PacketUtilities.h"
#include "ObjectGuid.h"
+#include "Optional.h"
namespace WorldPackets
{
diff --git a/src/server/game/Server/Packets/BattlegroundPackets.h b/src/server/game/Server/Packets/BattlegroundPackets.h
index 967829c2c17..725edc21d41 100644
--- a/src/server/game/Server/Packets/BattlegroundPackets.h
+++ b/src/server/game/Server/Packets/BattlegroundPackets.h
@@ -23,6 +23,7 @@
#include "LFGPackets.h"
#include "PacketUtilities.h"
#include "Packet.h"
+#include "Optional.h"
namespace WorldPackets
{
diff --git a/src/server/game/Server/Packets/BattlenetPackets.h b/src/server/game/Server/Packets/BattlenetPackets.h
index 6b7a8c9c50e..ba3f4299ab9 100644
--- a/src/server/game/Server/Packets/BattlenetPackets.h
+++ b/src/server/game/Server/Packets/BattlenetPackets.h
@@ -21,6 +21,7 @@
#include "Packet.h"
#include "MessageBuffer.h"
#include "BattlenetRpcErrorCodes.h"
+#include <array>
namespace WorldPackets
{
diff --git a/src/server/game/Server/Packets/GuildFinderPackets.h b/src/server/game/Server/Packets/GuildFinderPackets.h
index 1cc3b00094c..843b39e1c32 100644
--- a/src/server/game/Server/Packets/GuildFinderPackets.h
+++ b/src/server/game/Server/Packets/GuildFinderPackets.h
@@ -20,6 +20,7 @@
#include "Packet.h"
#include "ObjectGuid.h"
+#include "Optional.h"
namespace WorldPackets
{
diff --git a/src/server/game/Server/Packets/GuildPackets.cpp b/src/server/game/Server/Packets/GuildPackets.cpp
index d9bb746eb73..0b5f38909ea 100644
--- a/src/server/game/Server/Packets/GuildPackets.cpp
+++ b/src/server/game/Server/Packets/GuildPackets.cpp
@@ -749,7 +749,9 @@ ByteBuffer& operator<<(ByteBuffer& data, WorldPackets::Guild::GuildNewsEvent con
WorldPacket const* WorldPackets::Guild::GuildNews::Write()
{
- _worldPacket << NewsEvents;
+ _worldPacket << uint32(NewsEvents.size());
+ for (GuildNewsEvent const& newsEvent : NewsEvents)
+ _worldPacket << newsEvent;
return &_worldPacket;
}
diff --git a/src/server/game/Server/Packets/HotfixPackets.h b/src/server/game/Server/Packets/HotfixPackets.h
index eb87ddba1e6..884478ee45b 100644
--- a/src/server/game/Server/Packets/HotfixPackets.h
+++ b/src/server/game/Server/Packets/HotfixPackets.h
@@ -22,6 +22,7 @@
#include "Common.h"
#include "DB2Stores.h"
#include "ObjectGuid.h"
+#include "Optional.h"
namespace WorldPackets
{
diff --git a/src/server/game/Server/Packets/ItemPackets.h b/src/server/game/Server/Packets/ItemPackets.h
index 6b813c82d54..012e6800174 100644
--- a/src/server/game/Server/Packets/ItemPackets.h
+++ b/src/server/game/Server/Packets/ItemPackets.h
@@ -21,6 +21,7 @@
#include "Packet.h"
#include "Item.h"
#include "PacketUtilities.h"
+#include "Optional.h"
struct VoidStorageItem;
diff --git a/src/server/game/Server/Packets/MovementPackets.h b/src/server/game/Server/Packets/MovementPackets.h
index 2695db47e4b..243faeec7ad 100644
--- a/src/server/game/Server/Packets/MovementPackets.h
+++ b/src/server/game/Server/Packets/MovementPackets.h
@@ -20,7 +20,7 @@
#include "Packet.h"
#include "Object.h"
-
+#include "Optional.h"
#include <G3D/Vector3.h>
namespace Movement
diff --git a/src/server/game/Server/Packets/PartyPackets.h b/src/server/game/Server/Packets/PartyPackets.h
index 3fbbc3381a7..d4c03e3b78c 100644
--- a/src/server/game/Server/Packets/PartyPackets.h
+++ b/src/server/game/Server/Packets/PartyPackets.h
@@ -21,6 +21,7 @@
#include "Packet.h"
#include "ObjectGuid.h"
#include "Group.h"
+#include "Optional.h"
namespace WorldPackets
{
diff --git a/src/server/game/Server/Packets/SystemPackets.h b/src/server/game/Server/Packets/SystemPackets.h
index 362fdb3af8b..7440bebd853 100644
--- a/src/server/game/Server/Packets/SystemPackets.h
+++ b/src/server/game/Server/Packets/SystemPackets.h
@@ -19,6 +19,7 @@
#define SystemPackets_h__
#include "Packet.h"
+#include "Optional.h"
namespace WorldPackets
{
diff --git a/src/server/game/Server/Packets/TaxiPackets.h b/src/server/game/Server/Packets/TaxiPackets.h
index 2fd002aacf1..c9d7ba8e061 100644
--- a/src/server/game/Server/Packets/TaxiPackets.h
+++ b/src/server/game/Server/Packets/TaxiPackets.h
@@ -21,6 +21,7 @@
#include "Packet.h"
#include "ObjectGuid.h"
#include "DBCEnums.h"
+#include "Optional.h"
namespace WorldPackets
{
diff --git a/src/server/game/Server/Packets/TicketPackets.h b/src/server/game/Server/Packets/TicketPackets.h
index 27866e767ef..4cce35a0b85 100644
--- a/src/server/game/Server/Packets/TicketPackets.h
+++ b/src/server/game/Server/Packets/TicketPackets.h
@@ -20,6 +20,7 @@
#include "Packet.h"
#include "LFGPackets.h"
+#include "Optional.h"
#include <G3D/Vector3.h>
namespace WorldPackets
diff --git a/src/server/game/Server/Protocol/Opcodes.cpp b/src/server/game/Server/Protocol/Opcodes.cpp
index 56f5cd1128d..103f3ebbd4d 100644
--- a/src/server/game/Server/Protocol/Opcodes.cpp
+++ b/src/server/game/Server/Protocol/Opcodes.cpp
@@ -17,8 +17,11 @@
*/
#include "Opcodes.h"
+#include "Log.h"
#include "WorldSession.h"
#include "Packets/AllPackets.h"
+#include <iomanip>
+#include <sstream>
template<class PacketClass, void(WorldSession::*HandlerFunction)(PacketClass&)>
class PacketHandler : public ClientOpcodeHandler
@@ -61,6 +64,21 @@ struct get_packet_class<void(WorldSession::*)(PacketClass&)>
using type = PacketClass;
};
+OpcodeTable::OpcodeTable()
+{
+ memset(_internalTableClient, 0, sizeof(_internalTableClient));
+ memset(_internalTableServer, 0, sizeof(_internalTableServer));
+}
+
+OpcodeTable::~OpcodeTable()
+{
+ for (uint16 i = 0; i < NUM_OPCODE_HANDLERS; ++i)
+ {
+ delete _internalTableClient[i];
+ delete _internalTableServer[i];
+ }
+}
+
template<typename Handler, Handler HandlerFunction>
void OpcodeTable::ValidateAndSetClientOpcode(OpcodeClient opcode, char const* name, SessionStatus status, PacketProcessing processing)
{
@@ -1818,3 +1836,34 @@ void OpcodeTable::Initialize()
#undef DEFINE_SERVER_OPCODE_HANDLER
};
+
+template<typename T>
+inline std::string GetOpcodeNameForLoggingImpl(T id)
+{
+ uint32 opcode = uint32(id);
+ std::ostringstream ss;
+ ss << '[';
+
+ if (static_cast<uint32>(id) < NUM_OPCODE_HANDLERS)
+ {
+ if (OpcodeHandler const* handler = opcodeTable[id])
+ ss << handler->Name;
+ else
+ ss << "UNKNOWN OPCODE";
+ }
+ else
+ ss << "INVALID OPCODE";
+
+ ss << " 0x" << std::hex << std::setw(4) << std::setfill('0') << std::uppercase << opcode << std::nouppercase << std::dec << " (" << opcode << ")]";
+ return ss.str();
+}
+
+std::string GetOpcodeNameForLogging(OpcodeClient opcode)
+{
+ return GetOpcodeNameForLoggingImpl(opcode);
+}
+
+std::string GetOpcodeNameForLogging(OpcodeServer opcode)
+{
+ return GetOpcodeNameForLoggingImpl(opcode);
+}
diff --git a/src/server/game/Server/Protocol/Opcodes.h b/src/server/game/Server/Protocol/Opcodes.h
index c764b6d669e..58834139c01 100644
--- a/src/server/game/Server/Protocol/Opcodes.h
+++ b/src/server/game/Server/Protocol/Opcodes.h
@@ -23,10 +23,10 @@
#ifndef _OPCODES_H
#define _OPCODES_H
-#include "Common.h"
-#include <iomanip>
+#include "Define.h"
+#include <string>
-enum ConnectionType
+enum ConnectionType : int8
{
CONNECTION_TYPE_REALM = 0,
CONNECTION_TYPE_INSTANCE = 1,
@@ -1785,8 +1785,6 @@ enum PacketProcessing
class WorldPacket;
class WorldSession;
-#pragma pack(push, 1)
-
class OpcodeHandler
{
public:
@@ -1820,23 +1818,12 @@ public:
class OpcodeTable
{
public:
- OpcodeTable()
- {
- memset(_internalTableClient, 0, sizeof(_internalTableClient));
- memset(_internalTableServer, 0, sizeof(_internalTableServer));
- }
+ OpcodeTable();
OpcodeTable(OpcodeTable const&) = delete;
OpcodeTable& operator=(OpcodeTable const&) = delete;
- ~OpcodeTable()
- {
- for (uint16 i = 0; i < NUM_OPCODE_HANDLERS; ++i)
- {
- delete _internalTableClient[i];
- delete _internalTableServer[i];
- }
- }
+ ~OpcodeTable();
void Initialize();
@@ -1862,29 +1849,9 @@ class OpcodeTable
extern OpcodeTable opcodeTable;
-#pragma pack(pop)
-
-/// Lookup opcode name for human understandable logging (T = OpcodeClient|OpcodeServer)
-template<typename T>
-inline std::string GetOpcodeNameForLogging(T id)
-{
- uint32 opcode = uint32(id);
- std::ostringstream ss;
- ss << '[';
-
- if (static_cast<uint32>(id) < NUM_OPCODE_HANDLERS)
- {
- if (OpcodeHandler const* handler = opcodeTable[id])
- ss << handler->Name;
- else
- ss << "UNKNOWN OPCODE";
- }
- else
- ss << "INVALID OPCODE";
-
- ss << " 0x" << std::hex << std::setw(4) << std::setfill('0') << std::uppercase << opcode << std::nouppercase << std::dec << " (" << opcode << ")]";
- return ss.str();
-}
+/// Lookup opcode name for human understandable logging
+std::string GetOpcodeNameForLogging(OpcodeClient opcode);
+std::string GetOpcodeNameForLogging(OpcodeServer opcode);
#endif
/// @}
diff --git a/src/server/game/Server/WorldSession.cpp b/src/server/game/Server/WorldSession.cpp
index 62e83ce253e..cd0de310b75 100644
--- a/src/server/game/Server/WorldSession.cpp
+++ b/src/server/game/Server/WorldSession.cpp
@@ -53,6 +53,7 @@
#include "PacketUtilities.h"
#include "CollectionMgr.h"
#include "Metric.h"
+#include "Random.h"
#include <zlib.h>
diff --git a/src/server/game/Skills/SkillDiscovery.cpp b/src/server/game/Skills/SkillDiscovery.cpp
index e762f5347ce..6b4ce80e1f2 100644
--- a/src/server/game/Skills/SkillDiscovery.cpp
+++ b/src/server/game/Skills/SkillDiscovery.cpp
@@ -23,6 +23,7 @@
#include "SkillDiscovery.h"
#include "SpellMgr.h"
#include "Player.h"
+#include "Random.h"
#include "SpellInfo.h"
#include <map>
diff --git a/src/server/game/Spells/SpellMgr.h b/src/server/game/Spells/SpellMgr.h
index 77220b378c4..2d8b4326454 100644
--- a/src/server/game/Spells/SpellMgr.h
+++ b/src/server/game/Spells/SpellMgr.h
@@ -22,6 +22,7 @@
// For static or at-server-startup loaded spell data
#include "Define.h"
+#include "Duration.h"
#include "SharedDefines.h"
#include "Util.h"
diff --git a/src/server/game/Texts/CreatureTextMgr.h b/src/server/game/Texts/CreatureTextMgr.h
index 7e69f017429..943101c852e 100644
--- a/src/server/game/Texts/CreatureTextMgr.h
+++ b/src/server/game/Texts/CreatureTextMgr.h
@@ -53,7 +53,7 @@ struct CreatureTextEntry
struct CreatureTextLocale
{
- StringVector Text;
+ std::vector<std::string> Text;
};
struct CreatureTextId
diff --git a/src/server/game/Warden/WardenWin.cpp b/src/server/game/Warden/WardenWin.cpp
index b73a0af4361..6c7fdce98aa 100644
--- a/src/server/game/Warden/WardenWin.cpp
+++ b/src/server/game/Warden/WardenWin.cpp
@@ -32,6 +32,7 @@
#include "WardenModuleWin.h"
#include "WardenCheckMgr.h"
#include "SHA1.h"
+#include "Random.h"
#include <openssl/md5.h>
diff --git a/src/server/game/Weather/Weather.cpp b/src/server/game/Weather/Weather.cpp
index 1684b7bf6f3..37be7e40e85 100644
--- a/src/server/game/Weather/Weather.cpp
+++ b/src/server/game/Weather/Weather.cpp
@@ -29,6 +29,7 @@
#include "ScriptMgr.h"
#include "WorldSession.h"
#include "MiscPackets.h"
+#include "Random.h"
/// Create the Weather object
Weather::Weather(uint32 zone, WeatherData const* weatherChances)
diff --git a/src/server/game/World/World.h b/src/server/game/World/World.h
index 4bab6c0fb3b..bb763ec4f55 100644
--- a/src/server/game/World/World.h
+++ b/src/server/game/World/World.h
@@ -31,11 +31,13 @@
#include "QueryResult.h"
#include "QueryCallbackProcessor.h"
#include "Realm/Realm.h"
+#include "LockedQueue.h"
#include <atomic>
#include <map>
#include <set>
#include <list>
+#include <unordered_map>
class Object;
class WorldPacket;
diff --git a/src/server/scripts/Commands/cs_gm.cpp b/src/server/scripts/Commands/cs_gm.cpp
index c47be969620..17abb11f790 100644
--- a/src/server/scripts/Commands/cs_gm.cpp
+++ b/src/server/scripts/Commands/cs_gm.cpp
@@ -30,6 +30,8 @@ EndScriptData */
#include "World.h"
#include "Player.h"
#include "Opcodes.h"
+#include <boost/thread/shared_mutex.hpp>
+#include <boost/thread/locks.hpp>
class gm_commandscript : public CommandScript
{
diff --git a/src/server/scripts/Commands/cs_misc.cpp b/src/server/scripts/Commands/cs_misc.cpp
index 88e968b6621..678c7342eda 100644
--- a/src/server/scripts/Commands/cs_misc.cpp
+++ b/src/server/scripts/Commands/cs_misc.cpp
@@ -15,6 +15,7 @@
* with this program. If not, see <http://www.gnu.org/licenses/>.
*/
+#include "DB2Stores.h"
#include "Chat.h"
#include "ScriptMgr.h"
#include "AccountMgr.h"
@@ -41,6 +42,11 @@
#include "Transport.h"
#include "MapManager.h"
+ // temporary hack until database includes are sorted out (don't want to pull in Windows.h everywhere from mysql.h)
+#ifdef GetClassName
+#undef GetClassName
+#endif
+
class misc_commandscript : public CommandScript
{
public:
diff --git a/src/server/scripts/Commands/cs_reset.cpp b/src/server/scripts/Commands/cs_reset.cpp
index c879c3c4c0b..743081203c0 100644
--- a/src/server/scripts/Commands/cs_reset.cpp
+++ b/src/server/scripts/Commands/cs_reset.cpp
@@ -29,6 +29,8 @@ EndScriptData */
#include "Player.h"
#include "Pet.h"
#include "ScriptMgr.h"
+#include <boost/thread/shared_mutex.hpp>
+#include <boost/thread/locks.hpp>
class reset_commandscript : public CommandScript
{
diff --git a/src/server/scripts/Spells/spell_paladin.cpp b/src/server/scripts/Spells/spell_paladin.cpp
index f9b245ef053..ba8d6eaa17b 100644
--- a/src/server/scripts/Spells/spell_paladin.cpp
+++ b/src/server/scripts/Spells/spell_paladin.cpp
@@ -27,6 +27,7 @@
#include "SpellAuraEffects.h"
#include "SpellHistory.h"
#include "Group.h"
+#include "Random.h"
enum PaladinSpells
{
diff --git a/src/server/shared/JSON/ProtobufJSON.cpp b/src/server/shared/JSON/ProtobufJSON.cpp
index 4d14cf199de..68e46f3fd57 100644
--- a/src/server/shared/JSON/ProtobufJSON.cpp
+++ b/src/server/shared/JSON/ProtobufJSON.cpp
@@ -18,6 +18,7 @@
#include "ProtobufJSON.h"
#include "StringFormat.h"
#include "Common.h"
+#include "Errors.h"
#include "Log.h"
#include <rapidjson/writer.h>
#include <rapidjson/reader.h>
diff --git a/src/server/shared/Packets/ByteBuffer.h b/src/server/shared/Packets/ByteBuffer.h
index 3933f617910..82cc00a0f4e 100644
--- a/src/server/shared/Packets/ByteBuffer.h
+++ b/src/server/shared/Packets/ByteBuffer.h
@@ -24,6 +24,7 @@
#include "ByteConverter.h"
#include "Util.h"
#include <cstring>
+#include <ctime>
class MessageBuffer;
@@ -679,85 +680,6 @@ class TC_SHARED_API ByteBuffer
std::vector<uint8> _storage;
};
-template <typename T>
-inline ByteBuffer &operator<<(ByteBuffer &b, std::vector<T> v)
-{
- b << (uint32)v.size();
- for (typename std::vector<T>::iterator i = v.begin(); i != v.end(); ++i)
- {
- b << *i;
- }
- return b;
-}
-
-template <typename T>
-inline ByteBuffer &operator>>(ByteBuffer &b, std::vector<T> &v)
-{
- uint32 vsize;
- b >> vsize;
- v.clear();
- while (vsize--)
- {
- T t;
- b >> t;
- v.push_back(t);
- }
- return b;
-}
-
-template <typename T>
-inline ByteBuffer &operator<<(ByteBuffer &b, std::list<T> v)
-{
- b << (uint32)v.size();
- for (typename std::list<T>::iterator i = v.begin(); i != v.end(); ++i)
- {
- b << *i;
- }
- return b;
-}
-
-template <typename T>
-inline ByteBuffer &operator>>(ByteBuffer &b, std::list<T> &v)
-{
- uint32 vsize;
- b >> vsize;
- v.clear();
- while (vsize--)
- {
- T t;
- b >> t;
- v.push_back(t);
- }
- return b;
-}
-
-template <typename K, typename V>
-inline ByteBuffer &operator<<(ByteBuffer &b, std::map<K, V> &m)
-{
- b << (uint32)m.size();
- for (typename std::map<K, V>::iterator i = m.begin(); i != m.end(); ++i)
- {
- b << i->first << i->second;
- }
- return b;
-}
-
-template <typename K, typename V>
-inline ByteBuffer &operator>>(ByteBuffer &b, std::map<K, V> &m)
-{
- uint32 msize;
- b >> msize;
- m.clear();
- while (msize--)
- {
- K k;
- V v;
- b >> k >> v;
- m.insert(make_pair(k, v));
- }
- return b;
-}
-
/// @todo Make a ByteBuffer.cpp and move all this inlining to it.
template<> inline std::string ByteBuffer::read<std::string>()
{
diff --git a/src/server/shared/Realm/RealmList.h b/src/server/shared/Realm/RealmList.h
index 92e8d9f7445..594ca2bf1f6 100644
--- a/src/server/shared/Realm/RealmList.h
+++ b/src/server/shared/Realm/RealmList.h
@@ -25,6 +25,7 @@
#include <boost/asio/ip/tcp.hpp>
#include <boost/asio/io_service.hpp>
#include <boost/asio/deadline_timer.hpp>
+#include <unordered_set>
using namespace boost::asio;
diff --git a/src/server/worldserver/Main.cpp b/src/server/worldserver/Main.cpp
index 2136b5f7654..4a42305139a 100644
--- a/src/server/worldserver/Main.cpp
+++ b/src/server/worldserver/Main.cpp
@@ -210,7 +210,7 @@ extern int main(int argc, char** argv)
threadPool->push_back(std::thread([ioService]() { ioService->run(); }));
// Set process priority according to configuration settings
- SetProcessPriority("server.worldserver");
+ SetProcessPriority("server.worldserver", sConfigMgr->GetIntDefault(CONFIG_PROCESSOR_AFFINITY, 0), sConfigMgr->GetBoolDefault(CONFIG_HIGH_PRIORITY, false));
// Start the databases
if (!StartDB())