aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/server/authserver/Server/AuthSession.h4
-rw-r--r--src/server/game/Battlegrounds/Zones/BattlegroundBE.h2
-rw-r--r--src/server/game/Battlegrounds/Zones/BattlegroundDS.h10
-rw-r--r--src/server/game/Battlegrounds/Zones/BattlegroundNA.h2
-rw-r--r--src/server/game/Battlegrounds/Zones/BattlegroundRL.h2
-rw-r--r--src/server/game/Conditions/DisableMgr.cpp2
-rw-r--r--src/server/game/Entities/GameObject/GameObjectData.h4
-rw-r--r--src/server/game/Entities/Player/EquipmentSet.h2
-rw-r--r--src/server/game/Globals/ObjectMgr.h18
-rw-r--r--src/server/game/Groups/Group.cpp2
-rw-r--r--src/server/game/Handlers/MovementHandler.cpp2
-rw-r--r--src/server/game/OutdoorPvP/OutdoorPvPMgr.h2
-rw-r--r--src/server/game/Server/WorldSocket.cpp4
-rw-r--r--src/server/game/Warden/WardenCheckMgr.h8
-rw-r--r--src/server/scripts/Commands/cs_debug.cpp95
-rw-r--r--src/server/scripts/EasternKingdoms/ScarletMonastery/instance_scarlet_monastery.cpp5
-rw-r--r--src/server/scripts/EasternKingdoms/ScarletMonastery/scarlet_monastery.h8
-rw-r--r--src/server/scripts/Northrend/Gundrak/gundrak.h2
18 files changed, 103 insertions, 71 deletions
diff --git a/src/server/authserver/Server/AuthSession.h b/src/server/authserver/Server/AuthSession.h
index cd757371421..71af8272501 100644
--- a/src/server/authserver/Server/AuthSession.h
+++ b/src/server/authserver/Server/AuthSession.h
@@ -92,8 +92,8 @@ private:
bool VerifyVersion(uint8 const* a, int32 aLength, Trinity::Crypto::SHA1::Digest const& versionProof, bool isReconnect);
Optional<Trinity::Crypto::SRP6> _srp6;
- SessionKey _sessionKey;
- std::array<uint8, 16> _reconnectProof;
+ SessionKey _sessionKey = {};
+ std::array<uint8, 16> _reconnectProof = {};
AuthStatus _status;
AccountInfo _accountInfo;
diff --git a/src/server/game/Battlegrounds/Zones/BattlegroundBE.h b/src/server/game/Battlegrounds/Zones/BattlegroundBE.h
index 882ac97de56..3331ff27960 100644
--- a/src/server/game/Battlegrounds/Zones/BattlegroundBE.h
+++ b/src/server/game/Battlegrounds/Zones/BattlegroundBE.h
@@ -42,7 +42,7 @@ enum BattlegroundBEGameObjects
BG_BE_OBJECT_TYPE_BUFF_2 = 184664
};
-constexpr Seconds BG_BE_REMOVE_DOORS_TIMER = 5s;
+inline constexpr Seconds BG_BE_REMOVE_DOORS_TIMER = 5s;
enum BattlegroundBEEvents
{
diff --git a/src/server/game/Battlegrounds/Zones/BattlegroundDS.h b/src/server/game/Battlegrounds/Zones/BattlegroundDS.h
index 1e6e28a10fb..03bb9978f18 100644
--- a/src/server/game/Battlegrounds/Zones/BattlegroundDS.h
+++ b/src/server/game/Battlegrounds/Zones/BattlegroundDS.h
@@ -73,11 +73,11 @@ enum BattlegroundDSData
};
// These values are NOT blizzlike... need the correct data!
-constexpr Seconds BG_DS_WATERFALL_TIMER_MIN = 30s;
-constexpr Seconds BG_DS_WATERFALL_TIMER_MAX = 60s;
-constexpr Seconds BG_DS_WATERFALL_WARNING_DURATION = 5s;
-constexpr Seconds BG_DS_WATERFALL_DURATION = 30s;
-constexpr Milliseconds BG_DS_WATERFALL_KNOCKBACK_TIMER = 1500ms;
+inline constexpr Seconds BG_DS_WATERFALL_TIMER_MIN = 30s;
+inline constexpr Seconds BG_DS_WATERFALL_TIMER_MAX = 60s;
+inline constexpr Seconds BG_DS_WATERFALL_WARNING_DURATION = 5s;
+inline constexpr Seconds BG_DS_WATERFALL_DURATION = 30s;
+inline constexpr Milliseconds BG_DS_WATERFALL_KNOCKBACK_TIMER = 1500ms;
enum BattlegroundDSEvents
{
diff --git a/src/server/game/Battlegrounds/Zones/BattlegroundNA.h b/src/server/game/Battlegrounds/Zones/BattlegroundNA.h
index b1548293751..393d27c74da 100644
--- a/src/server/game/Battlegrounds/Zones/BattlegroundNA.h
+++ b/src/server/game/Battlegrounds/Zones/BattlegroundNA.h
@@ -41,7 +41,7 @@ enum BattlegroundNAGameObjects
BG_NA_OBJECT_TYPE_BUFF_2 = 184664
};
-constexpr Seconds BG_NA_REMOVE_DOORS_TIMER = 5s;
+inline constexpr Seconds BG_NA_REMOVE_DOORS_TIMER = 5s;
enum BattlegroundNAEvents
{
diff --git a/src/server/game/Battlegrounds/Zones/BattlegroundRL.h b/src/server/game/Battlegrounds/Zones/BattlegroundRL.h
index 0b7fd3b447b..3f6f83d51b7 100644
--- a/src/server/game/Battlegrounds/Zones/BattlegroundRL.h
+++ b/src/server/game/Battlegrounds/Zones/BattlegroundRL.h
@@ -37,7 +37,7 @@ enum BattlegroundRLGameObjects
BG_RL_OBJECT_TYPE_BUFF_2 = 184664
};
-constexpr Seconds BG_RL_REMOVE_DOORS_TIMER = 5s;
+inline constexpr Seconds BG_RL_REMOVE_DOORS_TIMER = 5s;
enum BattlegroundRLEvents
{
diff --git a/src/server/game/Conditions/DisableMgr.cpp b/src/server/game/Conditions/DisableMgr.cpp
index bcf1024affe..9a1614fb2e2 100644
--- a/src/server/game/Conditions/DisableMgr.cpp
+++ b/src/server/game/Conditions/DisableMgr.cpp
@@ -328,7 +328,7 @@ bool IsDisabledFor(DisableType type, uint32 entry, WorldObject const* ref, uint8
{
if (spellFlags & (SPELL_DISABLE_ARENAS | SPELL_DISABLE_BATTLEGROUNDS))
{
- if (Map const* map = ref->GetMap())
+ if (Map const* map = ref->FindMap())
{
if (spellFlags & SPELL_DISABLE_ARENAS && map->IsBattleArena())
return true; // Current map is Arena and this spell is disabled here
diff --git a/src/server/game/Entities/GameObject/GameObjectData.h b/src/server/game/Entities/GameObject/GameObjectData.h
index a840fb5df92..ef7c95035e0 100644
--- a/src/server/game/Entities/GameObject/GameObjectData.h
+++ b/src/server/game/Entities/GameObject/GameObjectData.h
@@ -631,8 +631,8 @@ struct GameObjectOverride
// From `gameobject_template_addon`
struct GameObjectTemplateAddon : public GameObjectOverride
{
- uint32 Mingold;
- uint32 Maxgold;
+ uint32 Mingold = 0;
+ uint32 Maxgold = 0;
std::array<uint32, 4> artKits = {};
};
diff --git a/src/server/game/Entities/Player/EquipmentSet.h b/src/server/game/Entities/Player/EquipmentSet.h
index 8ace709860e..26677e424b6 100644
--- a/src/server/game/Entities/Player/EquipmentSet.h
+++ b/src/server/game/Entities/Player/EquipmentSet.h
@@ -43,7 +43,7 @@ struct EquipmentSetInfo
std::string SetName;
std::string SetIcon;
uint32 IgnoreMask = 0; ///< Mask of EquipmentSlot
- std::array<ObjectGuid, EQUIPMENT_SET_SLOTS> Pieces;
+ std::array<ObjectGuid, EQUIPMENT_SET_SLOTS> Pieces = {};
} Data;
/// Server-side data
diff --git a/src/server/game/Globals/ObjectMgr.h b/src/server/game/Globals/ObjectMgr.h
index d465272c5e9..6277d363d7a 100644
--- a/src/server/game/Globals/ObjectMgr.h
+++ b/src/server/game/Globals/ObjectMgr.h
@@ -710,18 +710,12 @@ typedef std::pair<ExclusiveQuestGroups::const_iterator, ExclusiveQuestGroups::co
struct PetLevelInfo
{
- PetLevelInfo() : health(0), mana(0), armor(0), minDamage(0), maxDamage(0)
- {
- for (uint16& stat : stats)
- stat = 0;
- }
-
- uint16 stats[MAX_STATS];
- uint16 health;
- uint16 mana;
- uint32 armor;
- uint16 minDamage;
- uint16 maxDamage;
+ uint16 stats[MAX_STATS] = {};
+ uint16 health = 0;
+ uint16 mana = 0;
+ uint32 armor = 0;
+ uint16 minDamage = 0;
+ uint16 maxDamage = 0;
};
struct MailLevelReward
diff --git a/src/server/game/Groups/Group.cpp b/src/server/game/Groups/Group.cpp
index 7e9880e2254..4d02d7fa9d3 100644
--- a/src/server/game/Groups/Group.cpp
+++ b/src/server/game/Groups/Group.cpp
@@ -778,7 +778,7 @@ void Group::ConvertLeaderInstancesToGroup(Player* player, Group* group, bool swi
/* if group leader is in a non-raid dungeon map and nobody is actually bound to this map then the group can "take over" the instance *
* (example: two-player group disbanded by disconnect where the player reconnects within 60 seconds and the group is reformed) */
- if (Map* playerMap = player->GetMap())
+ if (Map* playerMap = player->FindMap())
if (!switchLeader && playerMap->IsNonRaidDungeon())
if (InstanceSave* save = sInstanceSaveMgr->GetInstanceSave(playerMap->GetInstanceId()))
if (save->GetGroupCount() == 0 && save->GetPlayerCount() == 0)
diff --git a/src/server/game/Handlers/MovementHandler.cpp b/src/server/game/Handlers/MovementHandler.cpp
index 6283e875518..7b7ccf8771c 100644
--- a/src/server/game/Handlers/MovementHandler.cpp
+++ b/src/server/game/Handlers/MovementHandler.cpp
@@ -685,7 +685,7 @@ void WorldSession::HandleTimeSyncResponse(WorldPacket& recvData)
using the following relation:
serverTime = clockDelta + clientTime
*/
- int64 clockDelta = (int64)(serverTimeAtSent + lagDelay) - (int64)clientTimestamp;
+ int64 clockDelta = (int64)serverTimeAtSent + (int64)lagDelay - (int64)clientTimestamp;
_timeSyncClockDeltaQueue.push_back(std::pair<int64, uint32>(clockDelta, roundTripDuration));
ComputeNewClockDelta();
}
diff --git a/src/server/game/OutdoorPvP/OutdoorPvPMgr.h b/src/server/game/OutdoorPvP/OutdoorPvPMgr.h
index 16eb87207ac..9815a1198b3 100644
--- a/src/server/game/OutdoorPvP/OutdoorPvPMgr.h
+++ b/src/server/game/OutdoorPvP/OutdoorPvPMgr.h
@@ -93,7 +93,7 @@ class TC_GAME_API OutdoorPvPMgr
OutdoorPvPMap m_OutdoorPvPMap;
// Holds the outdoor PvP templates
- OutdoorPvPScriptIds m_OutdoorPvPDatas;
+ OutdoorPvPScriptIds m_OutdoorPvPDatas = {};
// update interval
uint32 m_UpdateTimer;
diff --git a/src/server/game/Server/WorldSocket.cpp b/src/server/game/Server/WorldSocket.cpp
index 980a27cfe6d..7430b808370 100644
--- a/src/server/game/Server/WorldSocket.cpp
+++ b/src/server/game/Server/WorldSocket.cpp
@@ -233,11 +233,11 @@ struct AuthSession
uint32 LoginServerType = 0;
uint32 RealmID = 0;
uint32 Build = 0;
- std::array<uint8, 4> LocalChallenge;
+ std::array<uint8, 4> LocalChallenge = {};
uint32 LoginServerID = 0;
uint32 RegionID = 0;
uint64 DosResponse = 0;
- Trinity::Crypto::SHA1::Digest Digest;
+ Trinity::Crypto::SHA1::Digest Digest = {};
std::string Account;
ByteBuffer AddonInfo;
};
diff --git a/src/server/game/Warden/WardenCheckMgr.h b/src/server/game/Warden/WardenCheckMgr.h
index 7b0f81cf422..f002776ede1 100644
--- a/src/server/game/Warden/WardenCheckMgr.h
+++ b/src/server/game/Warden/WardenCheckMgr.h
@@ -87,15 +87,15 @@ constexpr WorldIntConfigs GetWardenCategoryCountConfig(WardenCheckCategory categ
struct WardenCheck
{
- uint16 CheckId;
+ uint16 CheckId = 0;
WardenCheckType Type = NONE_CHECK;
std::vector<uint8> Data;
- uint32 Address; // PROC_CHECK, MEM_CHECK, PAGE_CHECK
- uint8 Length; // PROC_CHECK, MEM_CHECK, PAGE_CHECK
+ uint32 Address = 0; // PROC_CHECK, MEM_CHECK, PAGE_CHECK
+ uint8 Length = 0; // PROC_CHECK, MEM_CHECK, PAGE_CHECK
std::string Str; // LUA, MPQ, DRIVER
std::string Comment;
std::array<char, 4> IdStr = {}; // LUA
- WardenActions Action;
+ WardenActions Action = WARDEN_ACTION_LOG;
};
constexpr uint8 WARDEN_MAX_LUA_CHECK_LENGTH = 170;
diff --git a/src/server/scripts/Commands/cs_debug.cpp b/src/server/scripts/Commands/cs_debug.cpp
index 4d25885d910..05d970cf4a9 100644
--- a/src/server/scripts/Commands/cs_debug.cpp
+++ b/src/server/scripts/Commands/cs_debug.cpp
@@ -272,49 +272,63 @@ public:
std::stringstream parsedStream;
while (!ifs.eof())
{
- char commentToken[2];
+ char commentToken[2] = {};
ifs.get(commentToken[0]);
- if (commentToken[0] == '/' && !ifs.eof())
+ if (ifs.eof())
+ break;
+ if (commentToken[0] == '/')
{
ifs.get(commentToken[1]);
- // /* comment
- if (commentToken[1] == '*')
+ if (!ifs.eof())
{
- while (!ifs.eof())
+ // /* comment
+ if (commentToken[1] == '*')
{
- ifs.get(commentToken[0]);
- if (commentToken[0] == '*' && !ifs.eof())
+ while (!ifs.eof())
{
- ifs.get(commentToken[1]);
- if (commentToken[1] == '/')
+ ifs.get(commentToken[0]);
+ if (ifs.eof())
break;
- else
- ifs.putback(commentToken[1]);
+ if (commentToken[0] == '*')
+ {
+ ifs.get(commentToken[1]);
+ if (ifs.eof())
+ break;
+ if (commentToken[1] == '/')
+ break;
+ else
+ ifs.putback(commentToken[1]);
+ }
}
+ continue;
}
- continue;
- }
- // line comment
- else if (commentToken[1] == '/')
- {
- std::string str;
- std::getline(ifs, str);
- continue;
+ // line comment
+ else if (commentToken[1] == '/')
+ {
+ std::string str;
+ std::getline(ifs, str);
+ if (ifs.eof())
+ break;
+ continue;
+ }
+ // regular data
+ else
+ ifs.putback(commentToken[1]);
}
- // regular data
- else
- ifs.putback(commentToken[1]);
}
parsedStream.put(commentToken[0]);
}
ifs.close();
- uint32 opcode;
+ uint32 opcode = 0;
parsedStream >> opcode;
+ if (!opcode)
+ return false;
+
WorldPacket data(opcode, 0);
- while (!parsedStream.eof())
+ while (!parsedStream.eof() && !parsedStream.fail())
{
std::string type;
parsedStream >> type;
@@ -324,38 +338,59 @@ public:
if (type == "uint8")
{
- uint16 val1;
+ if (parsedStream.eof())
+ return false;
+ uint16 val1 = 0;
parsedStream >> val1;
+ if (parsedStream.fail())
+ return false;
data << uint8(val1);
}
else if (type == "uint16")
{
- uint16 val2;
+ if (parsedStream.eof())
+ return false;
+ uint16 val2 = 0;
parsedStream >> val2;
+ if (parsedStream.fail())
+ return false;
data << val2;
}
else if (type == "uint32")
{
- uint32 val3;
+ if (parsedStream.eof())
+ return false;
+ uint32 val3 = 0;
parsedStream >> val3;
+ if (parsedStream.fail())
+ return false;
data << val3;
}
else if (type == "uint64")
{
- uint64 val4;
+ if (parsedStream.eof())
+ return false;
+ uint64 val4 = 0;
parsedStream >> val4;
+ if (parsedStream.fail())
+ return false;
data << val4;
}
else if (type == "float")
{
- float val5;
+ if (parsedStream.eof())
+ return false;
+ float val5 = 0.0f;
parsedStream >> val5;
+ if (parsedStream.fail())
+ return false;
data << val5;
}
else if (type == "string")
{
std::string val6;
parsedStream >> val6;
+ // empty string is allowed so no need to check eof/fail here
data << val6;
}
else if (type == "appitsguid")
@@ -373,7 +408,6 @@ public:
{
handler->PSendSysMessage(LANG_COMMAND_OBJNOTFOUND, 0);
handler->SetSentErrorMessage(true);
- ifs.close();
return false;
}
data << obj->GetPackGUID();
@@ -385,7 +419,6 @@ public:
{
handler->PSendSysMessage(LANG_COMMAND_OBJNOTFOUND, 0);
handler->SetSentErrorMessage(true);
- ifs.close();
return false;
}
data << uint64(obj->GetGUID());
diff --git a/src/server/scripts/EasternKingdoms/ScarletMonastery/instance_scarlet_monastery.cpp b/src/server/scripts/EasternKingdoms/ScarletMonastery/instance_scarlet_monastery.cpp
index 4c7f689519d..efa9bfefef5 100644
--- a/src/server/scripts/EasternKingdoms/ScarletMonastery/instance_scarlet_monastery.cpp
+++ b/src/server/scripts/EasternKingdoms/ScarletMonastery/instance_scarlet_monastery.cpp
@@ -25,6 +25,11 @@
#include "ScriptMgr.h"
#include "TemporarySummon.h"
+Position const BunnySpawnPosition = { 1776.27f, 1348.74f, 19.20f };
+Position const EarthBunnySpawnPosition = { 1765.28f, 1347.46f, 18.55f, 6.17f };
+Position const HeadlessHorsemanSpawnPosition = { 1765.00f, 1347.00f, 15.00f };
+Position const HeadlessHorsemanHeadSpawnPosition = { 1788.54f, 1348.05f, 18.88f }; // Guessed
+
ObjectData const creatureData[] =
{
{ NPC_HEADLESS_HORSEMAN_HEAD, DATA_HORSEMAN_HEAD },
diff --git a/src/server/scripts/EasternKingdoms/ScarletMonastery/scarlet_monastery.h b/src/server/scripts/EasternKingdoms/ScarletMonastery/scarlet_monastery.h
index f25cb46b6b6..27e3fb9b51a 100644
--- a/src/server/scripts/EasternKingdoms/ScarletMonastery/scarlet_monastery.h
+++ b/src/server/scripts/EasternKingdoms/ScarletMonastery/scarlet_monastery.h
@@ -26,10 +26,10 @@
uint32 const EncounterCount = 9;
-Position const BunnySpawnPosition = { 1776.27f, 1348.74f, 19.20f };
-Position const EarthBunnySpawnPosition = { 1765.28f, 1347.46f, 18.55f, 6.17f };
-Position const HeadlessHorsemanSpawnPosition = { 1765.00f, 1347.00f, 15.00f };
-Position const HeadlessHorsemanHeadSpawnPosition = { 1788.54f, 1348.05f, 18.88f }; // Guessed
+extern Position const BunnySpawnPosition;
+extern Position const EarthBunnySpawnPosition;
+extern Position const HeadlessHorsemanSpawnPosition;
+extern Position const HeadlessHorsemanHeadSpawnPosition;
enum SMDataTypes
{
diff --git a/src/server/scripts/Northrend/Gundrak/gundrak.h b/src/server/scripts/Northrend/Gundrak/gundrak.h
index 18ee2088b90..4e1e51c3ccd 100644
--- a/src/server/scripts/Northrend/Gundrak/gundrak.h
+++ b/src/server/scripts/Northrend/Gundrak/gundrak.h
@@ -88,7 +88,7 @@ enum GDSpellIds
SPELL_FIRE_BEAM_ELEMENTAL = 57072
};
-constexpr Milliseconds TIMER_STATUE_ACTIVATION = 3500ms;
+inline constexpr Milliseconds TIMER_STATUE_ACTIVATION = 3500ms;
template <class AI, class T>
inline AI* GetGundrakAI(T* obj)