aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/server/collision/Management/VMapManager2.cpp10
-rwxr-xr-xsrc/server/game/Achievements/AchievementMgr.cpp4
-rwxr-xr-xsrc/server/game/Addons/AddonMgr.cpp36
-rwxr-xr-xsrc/server/game/Addons/AddonMgr.h35
-rw-r--r--src/server/game/AuctionHouse/AuctionHouseMgr.h6
-rwxr-xr-xsrc/server/game/Battlegrounds/ArenaTeam.cpp60
-rwxr-xr-xsrc/server/game/Battlegrounds/ArenaTeam.h10
-rw-r--r--src/server/game/Battlegrounds/ArenaTeamMgr.cpp7
-rwxr-xr-xsrc/server/game/Battlegrounds/BattlegroundMgr.cpp2
-rwxr-xr-xsrc/server/game/Conditions/DisableMgr.cpp31
-rwxr-xr-xsrc/server/game/Conditions/DisableMgr.h35
-rwxr-xr-xsrc/server/game/DungeonFinding/LFGMgr.cpp2
-rwxr-xr-xsrc/server/game/Entities/Player/Player.cpp8
-rwxr-xr-xsrc/server/game/Globals/ObjectMgr.cpp8
-rwxr-xr-xsrc/server/game/OutdoorPvP/OutdoorPvPMgr.cpp2
-rwxr-xr-xsrc/server/game/Server/Protocol/Handlers/BattleGroundHandler.cpp74
-rwxr-xr-xsrc/server/game/Server/Protocol/Handlers/PetitionsHandler.cpp2
-rwxr-xr-xsrc/server/game/Server/WorldSession.cpp4
-rwxr-xr-xsrc/server/game/Server/WorldSession.h2
-rwxr-xr-xsrc/server/game/Spells/Spell.cpp2
-rwxr-xr-xsrc/server/game/World/World.cpp6
-rw-r--r--src/server/scripts/Commands/cs_reload.cpp4
22 files changed, 157 insertions, 193 deletions
diff --git a/src/server/collision/Management/VMapManager2.cpp b/src/server/collision/Management/VMapManager2.cpp
index b6dc8c7bac4..7c41a5bed41 100644
--- a/src/server/collision/Management/VMapManager2.cpp
+++ b/src/server/collision/Management/VMapManager2.cpp
@@ -143,7 +143,7 @@ namespace VMAP
bool VMapManager2::isInLineOfSight(unsigned int mapId, float x1, float y1, float z1, float x2, float y2, float z2)
{
- if (!isLineOfSightCalcEnabled() || sDisableMgr->IsDisabledFor(DISABLE_TYPE_VMAP, mapId, NULL, VMAP_DISABLE_LOS))
+ if (!isLineOfSightCalcEnabled() || DisableMgr::IsDisabledFor(DISABLE_TYPE_VMAP, mapId, NULL, VMAP_DISABLE_LOS))
return true;
InstanceTreeMap::iterator instanceTree = iInstanceMapTrees.find(mapId);
@@ -166,7 +166,7 @@ namespace VMAP
*/
bool VMapManager2::getObjectHitPos(unsigned int mapId, float x1, float y1, float z1, float x2, float y2, float z2, float& rx, float &ry, float& rz, float modifyDist)
{
- if (isLineOfSightCalcEnabled() && !sDisableMgr->IsDisabledFor(DISABLE_TYPE_VMAP, mapId, NULL, VMAP_DISABLE_LOS))
+ if (isLineOfSightCalcEnabled() && !DisableMgr::IsDisabledFor(DISABLE_TYPE_VMAP, mapId, NULL, VMAP_DISABLE_LOS))
{
InstanceTreeMap::iterator instanceTree = iInstanceMapTrees.find(mapId);
if (instanceTree != iInstanceMapTrees.end())
@@ -196,7 +196,7 @@ namespace VMAP
float VMapManager2::getHeight(unsigned int mapId, float x, float y, float z, float maxSearchDist)
{
- if (isHeightCalcEnabled() && !sDisableMgr->IsDisabledFor(DISABLE_TYPE_VMAP, mapId, NULL, VMAP_DISABLE_HEIGHT))
+ if (isHeightCalcEnabled() && !DisableMgr::IsDisabledFor(DISABLE_TYPE_VMAP, mapId, NULL, VMAP_DISABLE_HEIGHT))
{
InstanceTreeMap::iterator instanceTree = iInstanceMapTrees.find(mapId);
if (instanceTree != iInstanceMapTrees.end())
@@ -215,7 +215,7 @@ namespace VMAP
bool VMapManager2::getAreaInfo(unsigned int mapId, float x, float y, float& z, uint32& flags, int32& adtId, int32& rootId, int32& groupId) const
{
- if (!sDisableMgr->IsDisabledFor(DISABLE_TYPE_VMAP, mapId, NULL, VMAP_DISABLE_AREAFLAG))
+ if (!DisableMgr::IsDisabledFor(DISABLE_TYPE_VMAP, mapId, NULL, VMAP_DISABLE_AREAFLAG))
{
InstanceTreeMap::const_iterator instanceTree = iInstanceMapTrees.find(mapId);
if (instanceTree != iInstanceMapTrees.end())
@@ -233,7 +233,7 @@ namespace VMAP
bool VMapManager2::GetLiquidLevel(uint32 mapId, float x, float y, float z, uint8 reqLiquidType, float& level, float& floor, uint32& type) const
{
- if (!sDisableMgr->IsDisabledFor(DISABLE_TYPE_VMAP, mapId, NULL, VMAP_DISABLE_LIQUIDSTATUS))
+ if (!DisableMgr::IsDisabledFor(DISABLE_TYPE_VMAP, mapId, NULL, VMAP_DISABLE_LIQUIDSTATUS))
{
InstanceTreeMap::const_iterator instanceTree = iInstanceMapTrees.find(mapId);
if (instanceTree != iInstanceMapTrees.end())
diff --git a/src/server/game/Achievements/AchievementMgr.cpp b/src/server/game/Achievements/AchievementMgr.cpp
index 3262af05f5f..037949c8d2e 100755
--- a/src/server/game/Achievements/AchievementMgr.cpp
+++ b/src/server/game/Achievements/AchievementMgr.cpp
@@ -2133,7 +2133,7 @@ bool AchievementMgr::HasAchieved(AchievementEntry const* achievement) const
bool AchievementMgr::CanUpdateCriteria(AchievementCriteriaEntry const* criteria, AchievementEntry const* achievement)
{
- if (sDisableMgr->IsDisabledFor(DISABLE_TYPE_ACHIEVEMENT_CRITERIA, criteria->ID, NULL))
+ if (DisableMgr::IsDisabledFor(DISABLE_TYPE_ACHIEVEMENT_CRITERIA, criteria->ID, NULL))
return false;
if (achievement->mapID != -1 && GetPlayer()->GetMapId() != uint32(achievement->mapID))
@@ -2366,7 +2366,7 @@ void AchievementGlobalMgr::LoadAchievementCriteriaData()
continue;
}
- if (!GetCriteriaDataSet(criteria) && !sDisableMgr->IsDisabledFor(DISABLE_TYPE_ACHIEVEMENT_CRITERIA, entryId, NULL))
+ if (!GetCriteriaDataSet(criteria) && !DisableMgr::IsDisabledFor(DISABLE_TYPE_ACHIEVEMENT_CRITERIA, entryId, NULL))
sLog->outErrorDb("Table `achievement_criteria_data` does not have expected data for criteria (Entry: %u Type: %u) for achievement %u.", criteria->ID, criteria->requiredType, criteria->referredAchievement);
}
diff --git a/src/server/game/Addons/AddonMgr.cpp b/src/server/game/Addons/AddonMgr.cpp
index d892e64b316..70c72fba7e6 100755
--- a/src/server/game/Addons/AddonMgr.cpp
+++ b/src/server/game/Addons/AddonMgr.cpp
@@ -16,27 +16,31 @@
* with this program. If not, see <http://www.gnu.org/licenses/>.
*/
-#include "DatabaseEnv.h"
#include "AddonMgr.h"
-#include "ObjectAccessor.h"
-#include "Player.h"
-#include "Util.h"
-#include "SHA1.h"
+#include "DatabaseEnv.h"
+#include "Log.h"
+#include "Timer.h"
-AddonMgr::AddonMgr()
+#include <list>
+
+namespace AddonMgr
{
-}
-AddonMgr::~AddonMgr()
+// Anonymous namespace ensures file scope of all the stuff inside it, even
+// if you add something more to this namespace somewhere else.
+namespace
{
+ // List of saved addons (in DB).
+ typedef std::list<SavedAddon> SavedAddonsList;
+
+ SavedAddonsList m_knownAddons;
}
-void AddonMgr::LoadFromDB()
+void LoadFromDB()
{
uint32 oldMSTime = getMSTime();
QueryResult result = CharacterDatabase.Query("SELECT name, crc FROM addons");
-
if (!result)
{
sLog->outString(">> Loaded 0 known addons. DB table `addons` is empty!");
@@ -53,8 +57,7 @@ void AddonMgr::LoadFromDB()
std::string name = fields[0].GetString();
uint32 crc = fields[1].GetUInt32();
- SavedAddon addon(name, crc);
- m_knownAddons.push_back(addon);
+ m_knownAddons.push_back(SavedAddon(name, crc));
++count;
}
@@ -64,17 +67,16 @@ void AddonMgr::LoadFromDB()
sLog->outString();
}
-void AddonMgr::SaveAddon(AddonInfo const& addon)
+void SaveAddon(AddonInfo const& addon)
{
std::string name = addon.Name;
CharacterDatabase.EscapeString(name);
CharacterDatabase.PExecute("INSERT INTO addons (name, crc) VALUES ('%s', %u)", name.c_str(), addon.CRC);
- SavedAddon newAddon(addon.Name, addon.CRC);
- m_knownAddons.push_back(newAddon);
+ m_knownAddons.push_back(SavedAddon(addon.Name, addon.CRC));
}
-SavedAddon const* AddonMgr::GetAddonInfo(const std::string& name) const
+SavedAddon const* GetAddonInfo(const std::string& name)
{
for (SavedAddonsList::const_iterator it = m_knownAddons.begin(); it != m_knownAddons.end(); ++it)
{
@@ -85,3 +87,5 @@ SavedAddon const* AddonMgr::GetAddonInfo(const std::string& name) const
return NULL;
}
+
+} // Namespace
diff --git a/src/server/game/Addons/AddonMgr.h b/src/server/game/Addons/AddonMgr.h
index 9d68d2277fb..72edc3d1f6f 100755
--- a/src/server/game/Addons/AddonMgr.h
+++ b/src/server/game/Addons/AddonMgr.h
@@ -19,13 +19,9 @@
#ifndef _ADDONMGR_H
#define _ADDONMGR_H
-#include "Common.h"
-#include <ace/Singleton.h>
-
+#include "Define.h"
#include <string>
-class WorldSession;
-
struct AddonInfo
{
AddonInfo(const std::string& name, uint8 enabled, uint32 crc, uint8 state, bool crcOrPubKey)
@@ -56,33 +52,14 @@ struct SavedAddon
uint32 CRC;
};
-// List of client addons (for WorldSession).
-typedef std::list<AddonInfo> AddonsList;
-
-// List of saved addons (in DB).
-typedef std::list<SavedAddon> SavedAddonsList;
-
#define STANDARD_ADDON_CRC 0x4c1c776d
-class AddonMgr
+namespace AddonMgr
{
- friend class ACE_Singleton<AddonMgr, ACE_Null_Mutex>;
- AddonMgr();
- ~AddonMgr();
-
- public:
-
- void LoadFromDB();
- void SaveAddon(AddonInfo const& addon);
-
- SavedAddon const* GetAddonInfo(const std::string& name) const;
-
- private:
-
- SavedAddonsList m_knownAddons; // Known addons.
-};
-
-#define sAddonMgr ACE_Singleton<AddonMgr, ACE_Null_Mutex>::instance()
+ void LoadFromDB();
+ void SaveAddon(AddonInfo const& addon);
+ SavedAddon const* GetAddonInfo(const std::string& name);
+}
#endif
diff --git a/src/server/game/AuctionHouse/AuctionHouseMgr.h b/src/server/game/AuctionHouse/AuctionHouseMgr.h
index 5e88ae1ff1d..ed5c5b206bc 100644
--- a/src/server/game/AuctionHouse/AuctionHouseMgr.h
+++ b/src/server/game/AuctionHouse/AuctionHouseMgr.h
@@ -124,8 +124,10 @@ class AuctionHouseObject
class AuctionHouseMgr
{
friend class ACE_Singleton<AuctionHouseMgr, ACE_Null_Mutex>;
- AuctionHouseMgr();
- ~AuctionHouseMgr();
+
+ private:
+ AuctionHouseMgr();
+ ~AuctionHouseMgr();
public:
diff --git a/src/server/game/Battlegrounds/ArenaTeam.cpp b/src/server/game/Battlegrounds/ArenaTeam.cpp
index 693f8ddae27..91f9e3cc960 100755
--- a/src/server/game/Battlegrounds/ArenaTeam.cpp
+++ b/src/server/game/Battlegrounds/ArenaTeam.cpp
@@ -46,7 +46,7 @@ ArenaTeam::~ArenaTeam()
{
}
-bool ArenaTeam::Create(uint32 captainGuid, uint8 type, std::string teamName, uint32 backgroundColor, uint8 emblemStyle, uint32 emblemColor, uint8 borderStyle, uint32 borderColor)
+bool ArenaTeam::Create(uint64 captainGuid, uint8 type, std::string teamName, uint32 backgroundColor, uint8 emblemStyle, uint32 emblemColor, uint8 borderStyle, uint32 borderColor)
{
// Check if captain is present
if (!ObjectAccessor::FindPlayer(captainGuid))
@@ -56,7 +56,6 @@ bool ArenaTeam::Create(uint32 captainGuid, uint8 type, std::string teamName, uin
if (sArenaTeamMgr->GetArenaTeamByName(TeamName))
return false;
-
// Generate new arena team id
TeamId = sArenaTeamMgr->GenerateArenaTeamId();
@@ -69,14 +68,13 @@ bool ArenaTeam::Create(uint32 captainGuid, uint8 type, std::string teamName, uin
EmblemColor = emblemColor;
BorderStyle = borderStyle;
BorderColor = borderColor;
-
-
+ uint32 captainLowGuid = GUID_LOPART(captainGuid);
// Save arena team to db
PreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_ADD_ARENA_TEAM);
stmt->setUInt32(0, TeamId);
stmt->setString(1, TeamName);
- stmt->setUInt32(2, GUID_LOPART(CaptainGuid));
+ stmt->setUInt32(2, captainLowGuid);
stmt->setUInt8(3, Type);
stmt->setUInt16(4, Stats.Rating);
stmt->setUInt32(5, BackgroundColor);
@@ -89,7 +87,7 @@ bool ArenaTeam::Create(uint32 captainGuid, uint8 type, std::string teamName, uin
// Add captain as member
AddMember(CaptainGuid);
- sLog->outArena("New ArenaTeam created [Id: %u] [Type: %u] [Captain low GUID: %u]", GetId(), GetType(), GUID_LOPART(CaptainGuid));
+ sLog->outArena("New ArenaTeam created [Id: %u] [Type: %u] [Captain low GUID: %u]", GetId(), GetType(), captainLowGuid);
return true;
}
@@ -239,13 +237,13 @@ bool ArenaTeam::LoadMembersFromDB(QueryResult result)
break;
ArenaTeamMember newMember;
- newMember.Guid = MAKE_NEW_GUID(fields[1].GetUInt32(), 0, HIGHGUID_PLAYER);
+ newMember.Guid = MAKE_NEW_GUID(fields[1].GetUInt32(), 0, HIGHGUID_PLAYER);
newMember.WeekGames = fields[2].GetUInt16();
newMember.WeekWins = fields[3].GetUInt16();
newMember.SeasonGames = fields[4].GetUInt16();
newMember.SeasonWins = fields[5].GetUInt16();
- newMember.Name = fields[6].GetString();
- newMember.Class = fields[7].GetUInt8();
+ newMember.Name = fields[6].GetString();
+ newMember.Class = fields[7].GetUInt8();
newMember.PersonalRating = fields[8].GetUInt16();
newMember.MatchMakerRating = fields[9].GetUInt16() > 0 ? fields[9].GetUInt16() : 1500;
@@ -293,7 +291,7 @@ void ArenaTeam::SetCaptain(uint64 guid)
CharacterDatabase.Execute(stmt);
// Enable remove/promote buttons
- Player *newCaptain = ObjectAccessor::FindPlayer(guid);
+ Player* newCaptain = ObjectAccessor::FindPlayer(guid);
if (newCaptain)
{
newCaptain->SetArenaTeamInfoField(GetSlot(), ARENA_TEAM_MEMBER, 0);
@@ -366,7 +364,7 @@ void ArenaTeam::Disband(WorldSession* session)
void ArenaTeam::Roster(WorldSession* session)
{
- Player* pl = NULL;
+ Player* player = NULL;
uint8 unk308 = 0;
@@ -378,13 +376,13 @@ void ArenaTeam::Roster(WorldSession* session)
for (MemberList::const_iterator itr = Members.begin(); itr != Members.end(); ++itr)
{
- pl = ObjectAccessor::FindPlayer(itr->Guid);
+ player = ObjectAccessor::FindPlayer(itr->Guid);
data << uint64(itr->Guid); // guid
- data << uint8((pl ? 1 : 0)); // online flag
+ data << uint8((player ? 1 : 0)); // online flag
data << itr->Name; // member name
data << uint32((itr->Guid == GetCaptain() ? 0 : 1));// captain flag 0 captain 1 member
- data << uint8((pl ? pl->getLevel() : 0)); // unknown, level?
+ data << uint8((player ? player->getLevel() : 0)); // unknown, level?
data << uint8(itr->Class); // class
data << uint32(itr->WeekGames); // played this week
data << uint32(itr->WeekWins); // wins this week
@@ -408,11 +406,11 @@ void ArenaTeam::Query(WorldSession* session)
data << uint32(GetId()); // team id
data << GetName(); // team name
data << uint32(GetType()); // arena team type (2=2x2, 3=3x3 or 5=5x5)
- data << uint32(BackgroundColor); // background color
- data << uint32(EmblemStyle); // emblem style
- data << uint32(EmblemColor); // emblem color
- data << uint32(BorderStyle); // border style
- data << uint32(BorderColor); // border color
+ data << uint32(BackgroundColor); // background color
+ data << uint32(EmblemStyle); // emblem style
+ data << uint32(EmblemColor); // emblem color
+ data << uint32(BorderStyle); // border style
+ data << uint32(BorderColor); // border color
session->SendPacket(&data);
sLog->outDebug(LOG_FILTER_NETWORKIO, "WORLD: Sent SMSG_ARENA_TEAM_QUERY_RESPONSE");
}
@@ -421,12 +419,12 @@ void ArenaTeam::SendStats(WorldSession* session)
{
WorldPacket data(SMSG_ARENA_TEAM_STATS, 4*7);
data << uint32(GetId()); // team id
- data << uint32(Stats.Rating); // rating
- data << uint32(Stats.WeekGames); // games this week
- data << uint32(Stats.WeekWins); // wins this week
- data << uint32(Stats.SeasonGames); // played this season
- data << uint32(Stats.SeasonWins); // wins this season
- data << uint32(Stats.Rank); // rank
+ data << uint32(Stats.Rating); // rating
+ data << uint32(Stats.WeekGames); // games this week
+ data << uint32(Stats.WeekWins); // wins this week
+ data << uint32(Stats.SeasonGames); // played this season
+ data << uint32(Stats.SeasonWins); // wins this season
+ data << uint32(Stats.Rank); // rank
session->SendPacket(&data);
}
@@ -435,11 +433,8 @@ void ArenaTeam::NotifyStatsChanged()
// This is called after a rated match ended
// Updates arena team stats for every member of the team (not only the ones who participated!)
for (MemberList::const_iterator itr = Members.begin(); itr != Members.end(); ++itr)
- {
- Player* plr = ObjectAccessor::FindPlayer(itr->Guid);
- if (plr)
+ if (Player* plr = ObjectAccessor::FindPlayer(itr->Guid))
SendStats(plr->GetSession());
- }
}
void ArenaTeam::Inspect(WorldSession* session, uint64 guid)
@@ -485,11 +480,8 @@ void ArenaTeamMember::ModifyMatchmakerRating(int32 mod, uint32 /*slot*/)
void ArenaTeam::BroadcastPacket(WorldPacket* packet)
{
for (MemberList::const_iterator itr = Members.begin(); itr != Members.end(); ++itr)
- {
- Player* player = ObjectAccessor::FindPlayer(itr->Guid);
- if (player)
+ if (Player* player = ObjectAccessor::FindPlayer(itr->Guid))
player->GetSession()->SendPacket(packet);
- }
}
void ArenaTeam::BroadcastEvent(ArenaTeamEvents event, uint64 guid, uint8 strCount, std::string str1, std::string str2, std::string str3)
@@ -525,7 +517,7 @@ void ArenaTeam::BroadcastEvent(ArenaTeamEvents event, uint64 guid, uint8 strCoun
uint8 ArenaTeam::GetSlotByType(uint32 type)
{
- switch(type)
+ switch (type)
{
case ARENA_TEAM_2v2: return 0;
case ARENA_TEAM_3v3: return 1;
diff --git a/src/server/game/Battlegrounds/ArenaTeam.h b/src/server/game/Battlegrounds/ArenaTeam.h
index c65226a53aa..4f013f72e5c 100755
--- a/src/server/game/Battlegrounds/ArenaTeam.h
+++ b/src/server/game/Battlegrounds/ArenaTeam.h
@@ -20,10 +20,14 @@
#define TRINITYCORE_ARENATEAM_H
#include "QueryResult.h"
-#include "Player.h"
-#include "ObjectMgr.h"
+#include <ace/Singleton.h>
+#include <list>
+#include <map>
class WorldSession;
+class WorldPacket;
+class Player;
+class Group;
enum ArenaTeamCommandTypes
{
@@ -115,7 +119,7 @@ class ArenaTeam
ArenaTeam();
~ArenaTeam();
- bool Create(uint32 captainGuid, uint8 type, std::string teamName, uint32 backgroundColor, uint8 emblemStyle, uint32 emblemColor, uint8 borderStyle, uint32 borderColor);
+ bool Create(uint64 captainGuid, uint8 type, std::string teamName, uint32 backgroundColor, uint8 emblemStyle, uint32 emblemColor, uint8 borderStyle, uint32 borderColor);
void Disband(WorldSession* session);
typedef std::list<ArenaTeamMember> MemberList;
diff --git a/src/server/game/Battlegrounds/ArenaTeamMgr.cpp b/src/server/game/Battlegrounds/ArenaTeamMgr.cpp
index 59f31e36971..d433a5e8b36 100644
--- a/src/server/game/Battlegrounds/ArenaTeamMgr.cpp
+++ b/src/server/game/Battlegrounds/ArenaTeamMgr.cpp
@@ -15,8 +15,13 @@
* with this program. If not, see <http://www.gnu.org/licenses/>.
*/
-#include "Common.h"
+#include "Define.h"
#include "ArenaTeamMgr.h"
+#include "World.h"
+#include "Log.h"
+#include "DatabaseEnv.h"
+#include "Language.h"
+#include "ObjectAccessor.h"
ArenaTeamMgr::ArenaTeamMgr()
{
diff --git a/src/server/game/Battlegrounds/BattlegroundMgr.cpp b/src/server/game/Battlegrounds/BattlegroundMgr.cpp
index ce7fa8d81a4..bd45fee29f5 100755
--- a/src/server/game/Battlegrounds/BattlegroundMgr.cpp
+++ b/src/server/game/Battlegrounds/BattlegroundMgr.cpp
@@ -691,7 +691,7 @@ void BattlegroundMgr::CreateInitialBattlegrounds()
Field *fields = result->Fetch();
uint32 bgTypeID_ = fields[0].GetUInt32();
- if (sDisableMgr->IsDisabledFor(DISABLE_TYPE_BATTLEGROUND, bgTypeID_, NULL))
+ if (DisableMgr::IsDisabledFor(DISABLE_TYPE_BATTLEGROUND, bgTypeID_, NULL))
continue;
// can be overwrite by values from DB
diff --git a/src/server/game/Conditions/DisableMgr.cpp b/src/server/game/Conditions/DisableMgr.cpp
index e9e7a9f4d2b..dafb0ebc11f 100755
--- a/src/server/game/Conditions/DisableMgr.cpp
+++ b/src/server/game/Conditions/DisableMgr.cpp
@@ -16,25 +16,34 @@
* with this program. If not, see <http://www.gnu.org/licenses/>.
*/
+#include "DisableMgr.h"
#include "ObjectMgr.h"
#include "OutdoorPvP.h"
#include "SpellMgr.h"
#include "VMapManager2.h"
-#include "DisableMgr.h"
-DisableMgr::DisableMgr()
+namespace DisableMgr
{
-}
-DisableMgr::~DisableMgr()
+namespace
{
- for (DisableMap::iterator itr = m_DisableMap.begin(); itr != m_DisableMap.end(); ++itr)
- itr->second.clear();
+ struct DisableData
+ {
+ uint8 flags;
+ std::set<uint32> params[2]; // params0, params1
+ };
- m_DisableMap.clear();
+ // single disables here with optional data
+ typedef std::map<uint32, DisableData> DisableTypeMap;
+ // global disable map by source
+ typedef std::map<DisableType, DisableTypeMap> DisableMap;
+
+ DisableMap m_DisableMap;
+
+ uint8 MAX_DISABLE_TYPES = 7;
}
-void DisableMgr::LoadDisables()
+void LoadDisables()
{
uint32 oldMSTime = getMSTime();
@@ -223,7 +232,7 @@ void DisableMgr::LoadDisables()
sLog->outString();
}
-void DisableMgr::CheckQuestDisables()
+void CheckQuestDisables()
{
uint32 oldMSTime = getMSTime();
@@ -254,7 +263,7 @@ void DisableMgr::CheckQuestDisables()
sLog->outString();
}
-bool DisableMgr::IsDisabledFor(DisableType type, uint32 entry, Unit const* unit, uint8 flags)
+bool IsDisabledFor(DisableType type, uint32 entry, Unit const* unit, uint8 flags)
{
ASSERT(type < MAX_DISABLE_TYPES);
if (m_DisableMap[type].empty())
@@ -345,3 +354,5 @@ bool DisableMgr::IsDisabledFor(DisableType type, uint32 entry, Unit const* unit,
return false;
}
+
+} // Namespace
diff --git a/src/server/game/Conditions/DisableMgr.h b/src/server/game/Conditions/DisableMgr.h
index 53373bfe58d..2931c5ea4ad 100755
--- a/src/server/game/Conditions/DisableMgr.h
+++ b/src/server/game/Conditions/DisableMgr.h
@@ -19,7 +19,7 @@
#ifndef TRINITY_DISABLEMGR_H
#define TRINITY_DISABLEMGR_H
-#include <ace/Singleton.h>
+#include "Define.h"
class Unit;
@@ -54,34 +54,11 @@ enum VmapDisableTypes
VMAP_DISABLE_LIQUIDSTATUS = 0x8,
};
-#define MAX_DISABLE_TYPES 7
-
-struct DisableData
-{
- uint8 flags;
- std::set<uint32> params[2]; // params0, params1
-};
-
-typedef std::map<uint32, DisableData> DisableTypeMap; // single disables here with optional data
-typedef std::map<DisableType, DisableTypeMap> DisableMap; // global disable map by source
-
-class DisableMgr
+namespace DisableMgr
{
- friend class ACE_Singleton<DisableMgr, ACE_Null_Mutex>;
- DisableMgr();
- ~DisableMgr();
-
- public:
-
- void LoadDisables();
- bool IsDisabledFor(DisableType type, uint32 entry, Unit const* unit, uint8 flags = 0);
- void CheckQuestDisables();
-
- protected:
-
- DisableMap m_DisableMap;
-};
-
-#define sDisableMgr ACE_Singleton<DisableMgr, ACE_Null_Mutex>::instance()
+ void LoadDisables();
+ bool IsDisabledFor(DisableType type, uint32 entry, Unit const* unit, uint8 flags = 0);
+ void CheckQuestDisables();
+}
#endif //TRINITY_DISABLEMGR_H
diff --git a/src/server/game/DungeonFinding/LFGMgr.cpp b/src/server/game/DungeonFinding/LFGMgr.cpp
index c9752c6377b..348388b72a4 100755
--- a/src/server/game/DungeonFinding/LFGMgr.cpp
+++ b/src/server/game/DungeonFinding/LFGMgr.cpp
@@ -379,7 +379,7 @@ void LFGMgr::InitializeLockedDungeons(Player* plr)
LfgLockStatusType locktype = LFG_LOCKSTATUS_OK;
if (dungeon->expansion > expansion)
locktype = LFG_LOCKSTATUS_INSUFFICIENT_EXPANSION;
- else if (sDisableMgr->IsDisabledFor(DISABLE_TYPE_MAP, dungeon->map, plr))
+ else if (DisableMgr::IsDisabledFor(DISABLE_TYPE_MAP, dungeon->map, plr))
locktype = LFG_LOCKSTATUS_RAID_LOCKED;
else if (dungeon->difficulty > DUNGEON_DIFFICULTY_NORMAL && plr->GetBoundInstance(dungeon->map, Difficulty(dungeon->difficulty)))
locktype = LFG_LOCKSTATUS_RAID_LOCKED;
diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp
index 89516bf45c9..ca5c3f2f132 100755
--- a/src/server/game/Entities/Player/Player.cpp
+++ b/src/server/game/Entities/Player/Player.cpp
@@ -2086,7 +2086,7 @@ bool Player::TeleportTo(uint32 mapid, float x, float y, float z, float orientati
return false;
}
- if (AccountMgr::IsPlayerAccount(GetSession()->GetSecurity()) && sDisableMgr->IsDisabledFor(DISABLE_TYPE_MAP, mapid, this))
+ if (AccountMgr::IsPlayerAccount(GetSession()->GetSecurity()) && DisableMgr::IsDisabledFor(DISABLE_TYPE_MAP, mapid, this))
{
sLog->outError("Player (GUID: %u, name: %s) tried to enter a forbidden map %u", GetGUIDLow(), GetName(), mapid);
SendTransferAborted(mapid, TRANSFER_ABORT_MAP_NOT_ALLOWED);
@@ -14531,7 +14531,7 @@ bool Player::CanSeeStartQuest(Quest const *pQuest)
SatisfyQuestExclusiveGroup(pQuest, false) && SatisfyQuestReputation(pQuest, false) &&
SatisfyQuestPreviousQuest(pQuest, false) && SatisfyQuestNextChain(pQuest, false) &&
SatisfyQuestPrevChain(pQuest, false) && SatisfyQuestDay(pQuest, false) && SatisfyQuestWeek(pQuest, false) &&
- !sDisableMgr->IsDisabledFor(DISABLE_TYPE_QUEST, pQuest->GetQuestId(), this))
+ !DisableMgr::IsDisabledFor(DISABLE_TYPE_QUEST, pQuest->GetQuestId(), this))
{
return getLevel() + sWorld->getIntConfig(CONFIG_QUEST_HIGH_LEVEL_HIDE_DIFF) >= pQuest->GetMinLevel();
}
@@ -14547,7 +14547,7 @@ bool Player::CanTakeQuest(Quest const *pQuest, bool msg)
&& SatisfyQuestPreviousQuest(pQuest, msg) && SatisfyQuestTimed(pQuest, msg)
&& SatisfyQuestNextChain(pQuest, msg) && SatisfyQuestPrevChain(pQuest, msg)
&& SatisfyQuestDay(pQuest, msg) && SatisfyQuestWeek(pQuest, msg)
- && !sDisableMgr->IsDisabledFor(DISABLE_TYPE_QUEST, pQuest->GetQuestId(), this)
+ && !DisableMgr::IsDisabledFor(DISABLE_TYPE_QUEST, pQuest->GetQuestId(), this)
&& SatisfyQuestConditions(pQuest, msg);
}
@@ -18147,7 +18147,7 @@ bool Player::Satisfy(AccessRequirement const* ar, uint32 target_map, bool report
else if (ar->item2 && !HasItemCount(ar->item2, 1))
missingItem = ar->item2;
- if (sDisableMgr->IsDisabledFor(DISABLE_TYPE_MAP, target_map, this))
+ if (DisableMgr::IsDisabledFor(DISABLE_TYPE_MAP, target_map, this))
{
GetSession()->SendAreaTriggerMessage("%s", GetSession()->GetTrinityString(LANG_INSTANCE_CLOSED));
return false;
diff --git a/src/server/game/Globals/ObjectMgr.cpp b/src/server/game/Globals/ObjectMgr.cpp
index 3ebc82023a0..a7f92e1e649 100755
--- a/src/server/game/Globals/ObjectMgr.cpp
+++ b/src/server/game/Globals/ObjectMgr.cpp
@@ -2486,7 +2486,7 @@ void ObjectMgr::LoadItemTemplates()
else if (itemTemplate.Spells[1].SpellId != -1)
{
SpellInfo const* spellInfo = sSpellMgr->GetSpellInfo(itemTemplate.Spells[1].SpellId);
- if (!spellInfo && !sDisableMgr->IsDisabledFor(DISABLE_TYPE_SPELL, itemTemplate.Spells[1].SpellId, NULL))
+ if (!spellInfo && !DisableMgr::IsDisabledFor(DISABLE_TYPE_SPELL, itemTemplate.Spells[1].SpellId, NULL))
{
sLog->outErrorDb("Item (Entry: %u) has wrong (not existing) spell in spellid_%d (%d)", entry, 1+1, itemTemplate.Spells[1].SpellId);
itemTemplate.Spells[0].SpellId = 0;
@@ -2534,7 +2534,7 @@ void ObjectMgr::LoadItemTemplates()
if (itemTemplate.Spells[j].SpellId && itemTemplate.Spells[j].SpellId != -1)
{
SpellInfo const* spellInfo = sSpellMgr->GetSpellInfo(itemTemplate.Spells[j].SpellId);
- if (!spellInfo && !sDisableMgr->IsDisabledFor(DISABLE_TYPE_SPELL, itemTemplate.Spells[j].SpellId, NULL))
+ if (!spellInfo && !DisableMgr::IsDisabledFor(DISABLE_TYPE_SPELL, itemTemplate.Spells[j].SpellId, NULL))
{
sLog->outErrorDb("Item (Entry: %u) has wrong (not existing) spell in spellid_%d (%d)", entry, j+1, itemTemplate.Spells[j].SpellId);
itemTemplate.Spells[j].SpellId = 0;
@@ -3752,7 +3752,7 @@ void ObjectMgr::LoadQuests()
for (QuestMap::iterator iter = mQuestTemplates.begin(); iter != mQuestTemplates.end(); ++iter)
{
// skip post-loading checks for disabled quests
- if (sDisableMgr->IsDisabledFor(DISABLE_TYPE_QUEST, iter->first, NULL))
+ if (DisableMgr::IsDisabledFor(DISABLE_TYPE_QUEST, iter->first, NULL))
continue;
Quest * qinfo = iter->second;
@@ -6223,8 +6223,6 @@ void ObjectMgr::SetHighestGuids()
sGroupMgr->SetGroupDbStoreSize((*result)[0].GetUInt32()+1);
}
-
-
uint32 ObjectMgr::GenerateAuctionID()
{
if (m_auctionid >= 0xFFFFFFFE)
diff --git a/src/server/game/OutdoorPvP/OutdoorPvPMgr.cpp b/src/server/game/OutdoorPvP/OutdoorPvPMgr.cpp
index 11675edd3ff..7626845e2c7 100755
--- a/src/server/game/OutdoorPvP/OutdoorPvPMgr.cpp
+++ b/src/server/game/OutdoorPvP/OutdoorPvPMgr.cpp
@@ -60,7 +60,7 @@ void OutdoorPvPMgr::InitOutdoorPvP()
typeId = fields[0].GetUInt32();
- if (sDisableMgr->IsDisabledFor(DISABLE_TYPE_OUTDOORPVP, typeId, NULL))
+ if (DisableMgr::IsDisabledFor(DISABLE_TYPE_OUTDOORPVP, typeId, NULL))
continue;
if (typeId >= MAX_OUTDOORPVP_TYPES)
diff --git a/src/server/game/Server/Protocol/Handlers/BattleGroundHandler.cpp b/src/server/game/Server/Protocol/Handlers/BattleGroundHandler.cpp
index beb55b72c9f..5d18e3309a3 100755
--- a/src/server/game/Server/Protocol/Handlers/BattleGroundHandler.cpp
+++ b/src/server/game/Server/Protocol/Handlers/BattleGroundHandler.cpp
@@ -91,7 +91,7 @@ void WorldSession::HandleBattlemasterJoinOpcode(WorldPacket & recv_data)
return;
}
- if (sDisableMgr->IsDisabledFor(DISABLE_TYPE_BATTLEGROUND, bgTypeId_, NULL))
+ if (DisableMgr::IsDisabledFor(DISABLE_TYPE_BATTLEGROUND, bgTypeId_, NULL))
{
ChatHandler(this).PSendSysMessage(LANG_BG_DISABLED);
return;
@@ -246,7 +246,6 @@ void WorldSession::HandleBattlemasterJoinOpcode(WorldPacket & recv_data)
void WorldSession::HandleBattlegroundPlayerPositionsOpcode(WorldPacket & /*recv_data*/)
{
- // empty opcode
sLog->outDebug(LOG_FILTER_NETWORKIO, "WORLD: Recvd MSG_BATTLEGROUND_PLAYER_POSITIONS Message");
Battleground *bg = _player->GetBattleground();
@@ -256,56 +255,49 @@ void WorldSession::HandleBattlegroundPlayerPositionsOpcode(WorldPacket & /*recv_
switch(bg->GetTypeID(true))
{
case BATTLEGROUND_WS:
- {
- uint32 count1 = 0; //always constant zero?
- uint32 count2 = 0; //count of next fields
+ {
+ uint32 count = 0;
- Player *ali_plr = ObjectAccessor::FindPlayer(((BattlegroundWS*)bg)->GetAllianceFlagPickerGUID());
- if (ali_plr)
- ++count2;
+ Player* aplr = ObjectAccessor::FindPlayer(((BattlegroundWS*)bg)->GetAllianceFlagPickerGUID());
+ if (aplr)
+ ++count;
- Player *horde_plr = ObjectAccessor::FindPlayer(((BattlegroundWS*)bg)->GetHordeFlagPickerGUID());
- if (horde_plr)
- ++count2;
+ Player* hplr = ObjectAccessor::FindPlayer(((BattlegroundWS*)bg)->GetHordeFlagPickerGUID());
+ if (hplr)
+ ++count;
- WorldPacket data(MSG_BATTLEGROUND_PLAYER_POSITIONS, (4+4+16*count1+16*count2));
- data << count1; // alliance flag holders count - obsolete, now always 0
- /*for (uint8 i = 0; i < count1; ++i)
- {
- data << uint64(0); // guid
- data << (float)0; // x
- data << (float)0; // y
- }*/
- data << count2; // horde flag holders count - obsolete, now count of next fields
- if (ali_plr)
- {
- data << (uint64)ali_plr->GetGUID();
- data << (float)ali_plr->GetPositionX();
- data << (float)ali_plr->GetPositionY();
- }
- if (horde_plr)
- {
- data << (uint64)horde_plr->GetGUID();
- data << (float)horde_plr->GetPositionX();
- data << (float)horde_plr->GetPositionY();
- }
+ WorldPacket data(MSG_BATTLEGROUND_PLAYER_POSITIONS, 4 + 4 + 16 * count);
+ data << 0;
+ data << count;
+ if (aplr)
+ {
+ data << uint64(aplr->GetGUID());
+ data << float(aplr->GetPositionX());
+ data << float(aplr->GetPositionY());
+ }
- SendPacket(&data);
+ if (hplr)
+ {
+ data << uint64(hplr->GetGUID());
+ data << float(hplr->GetPositionX());
+ data << float(hplr->GetPositionY());
}
+
+ SendPacket(&data);
break;
+ }
case BATTLEGROUND_EY:
//TODO : fix me!
break;
case BATTLEGROUND_AB:
case BATTLEGROUND_AV:
- {
- //for other BG types - send default
- WorldPacket data(MSG_BATTLEGROUND_PLAYER_POSITIONS, (4+4));
- data << uint32(0);
- data << uint32(0);
- SendPacket(&data);
- }
+ {
+ WorldPacket data(MSG_BATTLEGROUND_PLAYER_POSITIONS, (4+4));
+ data << uint32(0);
+ data << uint32(0);
+ SendPacket(&data);
break;
+ }
default:
//maybe it is sent also in arena - do nothing
break;
@@ -677,7 +669,7 @@ void WorldSession::HandleBattlemasterJoinArena(WorldPacket & recv_data)
return;
}
- if (sDisableMgr->IsDisabledFor(DISABLE_TYPE_BATTLEGROUND, BATTLEGROUND_AA, NULL))
+ if (DisableMgr::IsDisabledFor(DISABLE_TYPE_BATTLEGROUND, BATTLEGROUND_AA, NULL))
{
ChatHandler(this).PSendSysMessage(LANG_ARENA_DISABLED);
return;
diff --git a/src/server/game/Server/Protocol/Handlers/PetitionsHandler.cpp b/src/server/game/Server/Protocol/Handlers/PetitionsHandler.cpp
index 92ea0cac5f3..51286eee8f8 100755
--- a/src/server/game/Server/Protocol/Handlers/PetitionsHandler.cpp
+++ b/src/server/game/Server/Protocol/Handlers/PetitionsHandler.cpp
@@ -835,7 +835,7 @@ void WorldSession::HandleTurnInPetitionOpcode(WorldPacket & recv_data)
// Create arena team
ArenaTeam* arenaTeam = new ArenaTeam();
- if (!arenaTeam->Create(GUID_LOPART(_player->GetGUID()), type, name, background, icon, iconcolor, border, bordercolor))
+ if (!arenaTeam->Create(_player->GetGUID(), type, name, background, icon, iconcolor, border, bordercolor))
{
delete arenaTeam;
return;
diff --git a/src/server/game/Server/WorldSession.cpp b/src/server/game/Server/WorldSession.cpp
index 025fbeb9c90..9ef989865bb 100755
--- a/src/server/game/Server/WorldSession.cpp
+++ b/src/server/game/Server/WorldSession.cpp
@@ -868,7 +868,7 @@ void WorldSession::ReadAddonsInfo(WorldPacket &data)
AddonInfo addon(addonName, enabled, crc, 2, true);
- SavedAddon const* savedAddon = sAddonMgr->GetAddonInfo(addonName);
+ SavedAddon const* savedAddon = AddonMgr::GetAddonInfo(addonName);
if (savedAddon)
{
bool match = true;
@@ -883,7 +883,7 @@ void WorldSession::ReadAddonsInfo(WorldPacket &data)
}
else
{
- sAddonMgr->SaveAddon(addon);
+ AddonMgr::SaveAddon(addon);
sLog->outDetail("ADDON: %s (0x%x) was not known, saving...", addon.Name.c_str(), addon.CRC);
}
diff --git a/src/server/game/Server/WorldSession.h b/src/server/game/Server/WorldSession.h
index fe082119f78..62954132fbb 100755
--- a/src/server/game/Server/WorldSession.h
+++ b/src/server/game/Server/WorldSession.h
@@ -939,6 +939,8 @@ class WorldSession
uint32 _accountId;
uint8 m_expansion;
+ typedef std::list<AddonInfo> AddonsList;
+
time_t _logoutTime;
bool m_inQueue; // session wait in auth.queue
bool m_playerLoading; // code processed in LoginPlayer
diff --git a/src/server/game/Spells/Spell.cpp b/src/server/game/Spells/Spell.cpp
index d456cfdcf47..d005f5b2404 100755
--- a/src/server/game/Spells/Spell.cpp
+++ b/src/server/game/Spells/Spell.cpp
@@ -2903,7 +2903,7 @@ void Spell::prepare(SpellCastTargets const* targets, AuraEffect const* triggered
return;
}
- if (sDisableMgr->IsDisabledFor(DISABLE_TYPE_SPELL, m_spellInfo->Id, m_caster))
+ if (DisableMgr::IsDisabledFor(DISABLE_TYPE_SPELL, m_spellInfo->Id, m_caster))
{
SendCastResult(SPELL_FAILED_SPELL_UNAVAILABLE);
finish(false);
diff --git a/src/server/game/World/World.cpp b/src/server/game/World/World.cpp
index 3da34bc2a47..0cd481d3844 100755
--- a/src/server/game/World/World.cpp
+++ b/src/server/game/World/World.cpp
@@ -1339,7 +1339,7 @@ void World::SetInitialWorldSettings()
LoadRandomEnchantmentsTable();
sLog->outString("Loading Disables");
- sDisableMgr->LoadDisables(); // must be before loading quests and items
+ DisableMgr::LoadDisables(); // must be before loading quests and items
sLog->outString("Loading Items..."); // must be after LoadRandomEnchantmentsTable and LoadPageTexts
sObjectMgr->LoadItemTemplates();
@@ -1405,7 +1405,7 @@ void World::SetInitialWorldSettings()
sObjectMgr->LoadQuests(); // must be loaded after DBCs, creature_template, item_template, gameobject tables
sLog->outString("Checking Quest Disables");
- sDisableMgr->CheckQuestDisables(); // must be after loading quests
+ DisableMgr::CheckQuestDisables(); // must be after loading quests
sLog->outString("Loading Quest POI");
sObjectMgr->LoadQuestPOI();
@@ -1588,7 +1588,7 @@ void World::SetInitialWorldSettings()
sTicketMgr->LoadSurveys();
sLog->outString("Loading client addons...");
- sAddonMgr->LoadFromDB();
+ AddonMgr::LoadFromDB();
///- Handle outdated emails (delete/return)
sLog->outString("Returning old mails...");
diff --git a/src/server/scripts/Commands/cs_reload.cpp b/src/server/scripts/Commands/cs_reload.cpp
index 214e624fb22..fcdd30402e6 100644
--- a/src/server/scripts/Commands/cs_reload.cpp
+++ b/src/server/scripts/Commands/cs_reload.cpp
@@ -1104,9 +1104,9 @@ public:
static bool HandleReloadDisablesCommand(ChatHandler* handler, const char* /*args*/)
{
sLog->outString("Re-Loading disables table...");
- sDisableMgr->LoadDisables();
+ DisableMgr::LoadDisables();
sLog->outString("Checking quest disables...");
- sDisableMgr->CheckQuestDisables();
+ DisableMgr::CheckQuestDisables();
handler->SendGlobalGMSysMessage("DB table `disables` reloaded.");
return true;
}