aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/server/game/DataStores/DB2Stores.cpp1
-rw-r--r--src/server/game/DataStores/DB2Stores.h4
-rw-r--r--src/server/game/DataStores/DBCEnums.h4
-rw-r--r--src/server/game/Entities/Creature/Creature.cpp3
-rw-r--r--src/server/game/Entities/Item/Item.cpp2
-rw-r--r--src/server/game/Entities/Object/Object.cpp4
-rw-r--r--src/server/game/Entities/Object/Object.h1
-rw-r--r--src/server/game/Groups/GroupMgr.cpp1
-rw-r--r--src/server/game/Reputation/ReputationMgr.cpp10
-rw-r--r--src/server/game/Reputation/ReputationMgr.h13
-rw-r--r--src/server/game/Server/Packets/TaxiPackets.h1
-rw-r--r--src/server/game/Spells/SpellInfo.h14
-rw-r--r--src/server/shared/DataStores/DB2SparseStorageLoader.cpp1
-rw-r--r--src/server/shared/DataStores/DB2StorageLoader.cpp2
14 files changed, 31 insertions, 30 deletions
diff --git a/src/server/game/DataStores/DB2Stores.cpp b/src/server/game/DataStores/DB2Stores.cpp
index 61d00eb8947..832ae6df726 100644
--- a/src/server/game/DataStores/DB2Stores.cpp
+++ b/src/server/game/DataStores/DB2Stores.cpp
@@ -614,7 +614,6 @@ void DB2Manager::LoadStores(std::string const& dataPath, uint32 defaultLocale)
for (ItemModifiedAppearanceEntry const* appearanceMod : sItemModifiedAppearanceStore)
{
ASSERT(appearanceMod->ItemID <= 0xFFFFFF);
- ASSERT(appearanceMod->AppearanceModID <= 0xFF);
_itemModifiedAppearancesByItem[appearanceMod->ItemID | (appearanceMod->AppearanceModID << 24)] = appearanceMod;
}
diff --git a/src/server/game/DataStores/DB2Stores.h b/src/server/game/DataStores/DB2Stores.h
index fdf3b744c4c..06ed6c724f2 100644
--- a/src/server/game/DataStores/DB2Stores.h
+++ b/src/server/game/DataStores/DB2Stores.h
@@ -22,7 +22,6 @@
#include "DB2Structure.h"
#include "SharedDefines.h"
#include <boost/regex.hpp>
-#include <array>
TC_GAME_API extern DB2Storage<AchievementEntry> sAchievementStore;
TC_GAME_API extern DB2Storage<AnimKitEntry> sAnimKitStore;
@@ -191,9 +190,6 @@ typedef std::map<uint32, TaxiPathSetForSource> TaxiPathSetBySource;
typedef std::vector<TaxiPathNodeEntry const*> TaxiPathNodeList;
typedef std::vector<TaxiPathNodeList> TaxiPathNodesByPath;
-#define TaxiMaskSize 236
-typedef std::array<uint8, TaxiMaskSize> TaxiMask;
-
TC_GAME_API extern TaxiMask sTaxiNodesMask;
TC_GAME_API extern TaxiMask sOldContinentsNodesMask;
TC_GAME_API extern TaxiMask sHordeTaxiNodesMask;
diff --git a/src/server/game/DataStores/DBCEnums.h b/src/server/game/DataStores/DBCEnums.h
index 3159039d6cd..b1b3b6e6a12 100644
--- a/src/server/game/DataStores/DBCEnums.h
+++ b/src/server/game/DataStores/DBCEnums.h
@@ -20,6 +20,7 @@
#define DBCENUMS_H
#include "Define.h"
+#include <array>
#pragma pack(push, 1)
@@ -710,6 +711,9 @@ enum SpellProcsPerMinuteModType
SPELL_PPM_MOD_BATTLEGROUND = 7
};
+#define TaxiMaskSize 236
+typedef std::array<uint8, TaxiMaskSize> TaxiMask;
+
enum TotemCategoryType
{
TOTEM_CATEGORY_TYPE_KNIFE = 1,
diff --git a/src/server/game/Entities/Creature/Creature.cpp b/src/server/game/Entities/Creature/Creature.cpp
index ab5db4c0b04..d3a9f25bc7b 100644
--- a/src/server/game/Entities/Creature/Creature.cpp
+++ b/src/server/game/Entities/Creature/Creature.cpp
@@ -2714,8 +2714,7 @@ bool Creature::FocusTarget(Spell const* focusSpell, WorldObject const* target)
if ( // here we determine if the (relatively expensive) forced update is worth it, or whether we can afford to wait until the scheduled update tick
( // only require instant update for spells that actually have a visual
- focusSpell->GetSpellInfo()->SpellVisual[0] ||
- focusSpell->GetSpellInfo()->SpellVisual[1]
+ focusSpell->GetSpellInfo()->GetSpellVisual()
) && (
!focusSpell->GetCastTime() || // if the spell is instant cast
focusSpell->GetSpellInfo()->HasAttribute(SPELL_ATTR5_DONT_TURN_DURING_CAST) // client gets confused if we attempt to turn at the regularly scheduled update packet
diff --git a/src/server/game/Entities/Item/Item.cpp b/src/server/game/Entities/Item/Item.cpp
index 3eb15636366..73b2b1ee31b 100644
--- a/src/server/game/Entities/Item/Item.cpp
+++ b/src/server/game/Entities/Item/Item.cpp
@@ -1265,7 +1265,7 @@ void Item::BuildDynamicValuesUpdate(uint8 updateType, ByteBuffer* data, Player*
{
std::vector<uint32> const& values = _dynamicValues[index];
if (_fieldNotifyFlags & flags[index] ||
- ((updateType == UPDATETYPE_VALUES ? _dynamicChangesMask[index] : !values.empty()) && (flags[index] & visibleFlag)))
+ ((updateType == UPDATETYPE_VALUES ? _dynamicChangesMask[index] != UpdateMask::UNCHANGED : !values.empty()) && (flags[index] & visibleFlag)))
{
UpdateMask::SetUpdateBit(data->contents() + maskPos, index);
diff --git a/src/server/game/Entities/Object/Object.cpp b/src/server/game/Entities/Object/Object.cpp
index d6157b43dde..36cc68b3ace 100644
--- a/src/server/game/Entities/Object/Object.cpp
+++ b/src/server/game/Entities/Object/Object.cpp
@@ -802,7 +802,7 @@ void Object::BuildDynamicValuesUpdate(uint8 updateType, ByteBuffer* data, Player
{
std::vector<uint32> const& values = _dynamicValues[index];
if (_fieldNotifyFlags & flags[index] ||
- ((updateType == UPDATETYPE_VALUES ? _dynamicChangesMask[index] : !values.empty()) && (flags[index] & visibleFlag)))
+ ((updateType == UPDATETYPE_VALUES ? _dynamicChangesMask[index] != UpdateMask::UNCHANGED : !values.empty()) && (flags[index] & visibleFlag)))
{
UpdateMask::SetUpdateBit(data->contents() + maskPos, index);
@@ -837,7 +837,7 @@ void Object::AddToObjectUpdateIfNeeded()
void Object::ClearUpdateMask(bool remove)
{
memset(_changesMask.data(), 0, _changesMask.size());
- memset(_dynamicChangesMask.data(), 0, _dynamicChangesMask.size());
+ _dynamicChangesMask.assign(_dynamicChangesMask.size(), UpdateMask::UNCHANGED);
for (uint32 i = 0; i < _dynamicValuesCount; ++i)
memset(_dynamicChangesArrayMask[i].data(), 0, _dynamicChangesArrayMask[i].size());
diff --git a/src/server/game/Entities/Object/Object.h b/src/server/game/Entities/Object/Object.h
index b4cc81dd735..403c604f7b0 100644
--- a/src/server/game/Entities/Object/Object.h
+++ b/src/server/game/Entities/Object/Object.h
@@ -98,6 +98,7 @@ namespace UpdateMask
enum DynamicFieldChangeType : uint16
{
+ UNCHANGED = 0,
VALUE_CHANGED = 0x7FFF,
VALUE_AND_SIZE_CHANGED = 0x8000
};
diff --git a/src/server/game/Groups/GroupMgr.cpp b/src/server/game/Groups/GroupMgr.cpp
index fc191e79532..af49d28e3a7 100644
--- a/src/server/game/Groups/GroupMgr.cpp
+++ b/src/server/game/Groups/GroupMgr.cpp
@@ -17,6 +17,7 @@
#include "Common.h"
#include "GroupMgr.h"
+#include "DB2Stores.h"
#include "InstanceSaveMgr.h"
#include "World.h"
diff --git a/src/server/game/Reputation/ReputationMgr.cpp b/src/server/game/Reputation/ReputationMgr.cpp
index 46ceb14df3d..0a191b5f3f1 100644
--- a/src/server/game/Reputation/ReputationMgr.cpp
+++ b/src/server/game/Reputation/ReputationMgr.cpp
@@ -45,6 +45,11 @@ ReputationRank ReputationMgr::ReputationToRank(int32 standing)
return MIN_REPUTATION_RANK;
}
+FactionState const* ReputationMgr::GetState(FactionEntry const* factionEntry) const
+{
+ return factionEntry->CanHaveReputation() ? GetState(factionEntry->ReputationIndex) : NULL;
+}
+
bool ReputationMgr::IsAtWar(uint32 faction_id) const
{
FactionEntry const* factionEntry = sFactionStore.LookupEntry(faction_id);
@@ -127,6 +132,11 @@ ReputationRank ReputationMgr::GetBaseRank(FactionEntry const* factionEntry) cons
return ReputationToRank(reputation);
}
+ReputationRank const* ReputationMgr::GetForcedRankIfAny(FactionTemplateEntry const* factionTemplateEntry) const
+{
+ return GetForcedRankIfAny(factionTemplateEntry->Faction);
+}
+
void ReputationMgr::ApplyForceReaction(uint32 faction_id, ReputationRank rank, bool apply)
{
if (apply)
diff --git a/src/server/game/Reputation/ReputationMgr.h b/src/server/game/Reputation/ReputationMgr.h
index 3486a533d54..301f8833cce 100644
--- a/src/server/game/Reputation/ReputationMgr.h
+++ b/src/server/game/Reputation/ReputationMgr.h
@@ -25,6 +25,9 @@
#include "QueryResult.h"
#include <map>
+struct FactionEntry;
+struct FactionTemplateEntry;
+
static uint32 ReputationRankStrIndex[MAX_REPUTATION_RANK] =
{
LANG_REP_HATED, LANG_REP_HOSTILE, LANG_REP_UNFRIENDLY, LANG_REP_NEUTRAL,
@@ -83,10 +86,7 @@ class TC_GAME_API ReputationMgr
FactionStateList const& GetStateList() const { return _factions; }
- FactionState const* GetState(FactionEntry const* factionEntry) const
- {
- return factionEntry->CanHaveReputation() ? GetState(factionEntry->ReputationIndex) : NULL;
- }
+ FactionState const* GetState(FactionEntry const* factionEntry) const;
FactionState const* GetState(RepListID id) const
{
@@ -108,10 +108,7 @@ class TC_GAME_API ReputationMgr
return ReputationRankStrIndex[GetRank(factionEntry)];
};
- ReputationRank const* GetForcedRankIfAny(FactionTemplateEntry const* factionTemplateEntry) const
- {
- return GetForcedRankIfAny(factionTemplateEntry->Faction);
- }
+ ReputationRank const* GetForcedRankIfAny(FactionTemplateEntry const* factionTemplateEntry) const;
ReputationRank const* GetForcedRankIfAny(uint32 factionId) const
{
diff --git a/src/server/game/Server/Packets/TaxiPackets.h b/src/server/game/Server/Packets/TaxiPackets.h
index e9f132740cc..218e9769e2d 100644
--- a/src/server/game/Server/Packets/TaxiPackets.h
+++ b/src/server/game/Server/Packets/TaxiPackets.h
@@ -20,6 +20,7 @@
#include "Packet.h"
#include "ObjectGuid.h"
+#include "DBCEnums.h"
namespace WorldPackets
{
diff --git a/src/server/game/Spells/SpellInfo.h b/src/server/game/Spells/SpellInfo.h
index 9f2c455feeb..0d459cf3932 100644
--- a/src/server/game/Spells/SpellInfo.h
+++ b/src/server/game/Spells/SpellInfo.h
@@ -19,6 +19,7 @@
#define _SPELLINFO_H
#include "SharedDefines.h"
+#include "DB2Structure.h"
#include "Util.h"
#include "Object.h"
#include "SpellAuraDefines.h"
@@ -31,14 +32,8 @@ class SpellInfo;
class WorldObject;
class AuraEffect;
struct SpellChainNode;
-struct SpellTargetPosition;
-struct SpellDurationEntry;
struct SpellModifier;
-struct SpellRangeEntry;
-struct SpellRadiusEntry;
-struct SpellEntry;
-struct SpellCastTimesEntry;
-struct SpellEffectScalingEntry;
+struct SpellTargetPosition;
struct Condition;
enum SpellCastTargetFlags
@@ -384,14 +379,13 @@ public:
SpellRangeEntry const* RangeEntry;
float Speed;
uint32 StackAmount;
- uint32 Totem[2];
+ uint32 Totem[MAX_SPELL_TOTEMS];
int32 Reagent[MAX_SPELL_REAGENTS];
uint32 ReagentCount[MAX_SPELL_REAGENTS];
int32 EquippedItemClass;
int32 EquippedItemSubClassMask;
int32 EquippedItemInventoryTypeMask;
- uint32 TotemCategory[2];
- uint32 SpellVisual[2];
+ uint32 TotemCategory[MAX_SPELL_TOTEMS];
uint32 SpellIconID;
uint32 ActiveIconID;
LocalizedString const* SpellName;
diff --git a/src/server/shared/DataStores/DB2SparseStorageLoader.cpp b/src/server/shared/DataStores/DB2SparseStorageLoader.cpp
index 5a2fbfeae73..5b93d588965 100644
--- a/src/server/shared/DataStores/DB2SparseStorageLoader.cpp
+++ b/src/server/shared/DataStores/DB2SparseStorageLoader.cpp
@@ -206,7 +206,6 @@ static char const* const nullStr = "";
char* DB2SparseFileLoader::AutoProduceData(IndexTable const& indexTable, uint32 locale, std::vector<char*>& stringPool)
{
- typedef char* ptr;
if (meta->FieldCount != fieldCount)
return NULL;
diff --git a/src/server/shared/DataStores/DB2StorageLoader.cpp b/src/server/shared/DataStores/DB2StorageLoader.cpp
index 3515d77a586..e1f02a350af 100644
--- a/src/server/shared/DataStores/DB2StorageLoader.cpp
+++ b/src/server/shared/DataStores/DB2StorageLoader.cpp
@@ -168,7 +168,7 @@ bool DB2FileLoader::Load(char const* filename, DB2Meta const* meta)
EndianConvert(metaFlags);
ASSERT((metaFlags & 0x1) == 0, "%s is a sparse storage, use DB2SparseStorage!", filename);
- ASSERT((meta->IndexField == -1) || (meta->IndexField == (metaFlags >> 16)));
+ ASSERT((meta->IndexField == -1) || (meta->IndexField == int32(metaFlags >> 16)));
fields = new FieldEntry[fieldCount];
if (fread(fields, fieldCount * sizeof(FieldEntry), 1, f) != 1)