aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Server
diff options
context:
space:
mode:
authorjoschiwald <joschiwald.trinity@gmail.com>2014-12-29 01:00:16 +0100
committerjoschiwald <joschiwald.trinity@gmail.com>2014-12-29 01:00:16 +0100
commit9ecc578cb187cc1ae0fd454883dab0cd058d3807 (patch)
tree6322b594c6ff6958de870dc5b4f0effee1f6e5c7 /src/server/game/Server
parent21360bb50c6a1390fbeb51c9c27bb0823ad0f252 (diff)
Core/Scripts: multiple changes
- fixed non pch build - fixed some warnings - fixed some coverity issues - some random things here and there
Diffstat (limited to 'src/server/game/Server')
-rw-r--r--src/server/game/Server/Packets/CombatLogPackets.h18
-rw-r--r--src/server/game/Server/Packets/MovementPackets.cpp258
-rw-r--r--src/server/game/Server/Packets/MovementPackets.h17
-rw-r--r--src/server/game/Server/Packets/QueryPackets.cpp9
-rw-r--r--src/server/game/Server/Packets/QueryPackets.h55
-rw-r--r--src/server/game/Server/Packets/SpellPackets.h40
-rw-r--r--src/server/game/Server/Protocol/Opcodes.cpp5
-rw-r--r--src/server/game/Server/WorldSession.h2
8 files changed, 302 insertions, 102 deletions
diff --git a/src/server/game/Server/Packets/CombatLogPackets.h b/src/server/game/Server/Packets/CombatLogPackets.h
index 6cca0127ef6..b72bb1b883e 100644
--- a/src/server/game/Server/Packets/CombatLogPackets.h
+++ b/src/server/game/Server/Packets/CombatLogPackets.h
@@ -32,19 +32,19 @@ namespace WorldPackets
WorldPacket const* Write() override;
- int32 Absorbed;
- int32 ShieldBlock;
+ int32 Absorbed = 0;
+ int32 ShieldBlock = 0;
ObjectGuid Me;
- int32 SpellID;
- int32 Resisted;
- bool Periodic;
- uint8 SchoolMask;
+ int32 SpellID = 0;
+ int32 Resisted = 0;
+ bool Periodic = 0.0f;
+ uint8 SchoolMask = 0;
ObjectGuid CasterGUID;
Optional<Spells::SpellCastLogData> LogData;
- int32 Damage;
+ int32 Damage = 0;
// Optional<SpellNonMeleeDamageLogDebugInfo> Debug Info;
- int32 Flags;
- int32 Overkill;
+ int32 Flags = 0;
+ int32 Overkill = 0;
};
}
}
diff --git a/src/server/game/Server/Packets/MovementPackets.cpp b/src/server/game/Server/Packets/MovementPackets.cpp
index c4621495e3d..78f00e613cf 100644
--- a/src/server/game/Server/Packets/MovementPackets.cpp
+++ b/src/server/game/Server/Packets/MovementPackets.cpp
@@ -16,6 +16,8 @@
*/
#include "MovementPackets.h"
+#include "MoveSpline.h"
+#include "MoveSplineFlag.h"
#include "MovementTypedefs.h"
#include "Unit.h"
@@ -34,8 +36,6 @@ ByteBuffer& operator>>(ByteBuffer& data, G3D::Vector3& v)
ByteBuffer& operator<<(ByteBuffer& data, MovementInfo& movementInfo)
{
bool hasTransportData = !movementInfo.transport.guid.IsEmpty();
- bool hasTransportPrevTime = hasTransportData && movementInfo.transport.prevTime != 0;
- bool hasTransportVehicleId = hasTransportData && movementInfo.transport.vehicleId != 0;
bool hasFallDirection = movementInfo.HasMovementFlag(MOVEMENTFLAG_FALLING | MOVEMENTFLAG_FALLING_FAR);
bool hasFallData = hasFallDirection || movementInfo.jump.fallTime != 0;
@@ -66,21 +66,7 @@ ByteBuffer& operator<<(ByteBuffer& data, MovementInfo& movementInfo)
data.WriteBit(0); // RemoteTimeValid
if (hasTransportData)
- {
- data << movementInfo.transport.guid;
- data << movementInfo.transport.pos.PositionXYZOStream();
- data << movementInfo.transport.seat;
- data << movementInfo.transport.time;
-
- data.WriteBit(hasTransportPrevTime);
- data.WriteBit(hasTransportVehicleId);
-
- if (hasTransportPrevTime)
- data << movementInfo.transport.prevTime;
-
- if (hasTransportVehicleId)
- data << movementInfo.transport.vehicleId;
- }
+ data << movementInfo.transport;
if (hasFallData)
{
@@ -131,21 +117,7 @@ ByteBuffer& operator>>(ByteBuffer& data, MovementInfo& movementInfo)
data.ReadBit(); // RemoteTimeValid
if (hasTransport)
- {
- data >> movementInfo.transport.guid;
- data >> movementInfo.transport.pos.PositionXYZOStream();
- data >> movementInfo.transport.seat;
- data >> movementInfo.transport.time;
-
- bool hasPrevTime = data.ReadBit();
- bool hasVehicleId = data.ReadBit();
-
- if (hasPrevTime)
- data >> movementInfo.transport.prevTime;
-
- if (hasVehicleId)
- data >> movementInfo.transport.vehicleId;
- }
+ data >> movementInfo.transport;
if (hasFall)
{
@@ -166,12 +138,58 @@ ByteBuffer& operator>>(ByteBuffer& data, MovementInfo& movementInfo)
return data;
}
+ByteBuffer& operator>>(ByteBuffer& data, MovementInfo::TransportInfo& transportInfo)
+{
+ data >> transportInfo.guid; // Transport Guid
+ data >> transportInfo.pos.PositionXYZOStream();
+ data >> transportInfo.seat; // VehicleSeatIndex
+ data >> transportInfo.time; // MoveTime
+
+ bool hasPrevTime = data.ReadBit();
+ bool hasVehicleId = data.ReadBit();
+
+ if (hasPrevTime)
+ data >> transportInfo.prevTime; // PrevMoveTime
+
+ if (hasVehicleId)
+ data >> transportInfo.vehicleId; // VehicleRecID
+
+ return data;
+}
+
+ByteBuffer& operator<<(ByteBuffer& data, MovementInfo::TransportInfo const& transportInfo)
+{
+ bool hasPrevTime = transportInfo.prevTime != 0;
+ bool hasVehicleId = transportInfo.vehicleId != 0;
+
+ data << transportInfo.guid; // Transport Guid
+ data << transportInfo.pos.GetPositionX();
+ data << transportInfo.pos.GetPositionY();
+ data << transportInfo.pos.GetPositionZ();
+ data << transportInfo.pos.GetOrientation();
+ data << transportInfo.seat; // VehicleSeatIndex
+ data << transportInfo.time; // MoveTime
+
+ data.WriteBit(hasPrevTime);
+ data.WriteBit(hasVehicleId);
+
+ if (hasPrevTime)
+ data << transportInfo.prevTime; // PrevMoveTime
+
+ if (hasVehicleId)
+ data << transportInfo.vehicleId; // VehicleRecID
+
+ data.FlushBits();
+
+ return data;
+}
+
void WorldPackets::Movement::ClientPlayerMovement::Read()
{
_worldPacket >> movementInfo;
}
-ByteBuffer& operator<<(ByteBuffer& data, WorldPackets::Movement::MonsterSplineFilterKey& monsterSplineFilterKey)
+ByteBuffer& operator<<(ByteBuffer& data, WorldPackets::Movement::MonsterSplineFilterKey const& monsterSplineFilterKey)
{
data << monsterSplineFilterKey.Idx;
data << monsterSplineFilterKey.Speed;
@@ -179,13 +197,13 @@ ByteBuffer& operator<<(ByteBuffer& data, WorldPackets::Movement::MonsterSplineFi
return data;
}
-ByteBuffer& operator<<(ByteBuffer& data, WorldPackets::Movement::MonsterSplineFilter& monsterSplineFilter)
+ByteBuffer& operator<<(ByteBuffer& data, WorldPackets::Movement::MonsterSplineFilter const& monsterSplineFilter)
{
data << uint32(monsterSplineFilter.FilterKeys.size());
data << monsterSplineFilter.BaseSpeed;
data << monsterSplineFilter.StartOffset;
data << monsterSplineFilter.DistToPrevFilterKey;
- for (WorldPackets::Movement::MonsterSplineFilterKey& filterKey : monsterSplineFilter.FilterKeys)
+ for (WorldPackets::Movement::MonsterSplineFilterKey const& filterKey : monsterSplineFilter.FilterKeys)
data << filterKey;
data << monsterSplineFilter.AddedToStart;
data.WriteBits(monsterSplineFilter.FilterFlags, 2);
@@ -194,7 +212,7 @@ ByteBuffer& operator<<(ByteBuffer& data, WorldPackets::Movement::MonsterSplineFi
return data;
}
-ByteBuffer& operator<<(ByteBuffer& data, WorldPackets::Movement::MovementSpline& movementSpline)
+ByteBuffer& operator<<(ByteBuffer& data, WorldPackets::Movement::MovementSpline const& movementSpline)
{
data << movementSpline.Flags;
data << movementSpline.AnimTier;
@@ -219,14 +237,14 @@ ByteBuffer& operator<<(ByteBuffer& data, WorldPackets::Movement::MovementSpline&
switch (movementSpline.Face)
{
- case MONSTER_MOVE_FACING_SPOT:
+ case ::Movement::MONSTER_MOVE_FACING_SPOT:
data << movementSpline.FaceSpot;
break;
- case MONSTER_MOVE_FACING_TARGET:
+ case ::Movement::MONSTER_MOVE_FACING_TARGET:
data << movementSpline.FaceDirection;
data << movementSpline.FaceGUID;
break;
- case MONSTER_MOVE_FACING_ANGLE:
+ case ::Movement::MONSTER_MOVE_FACING_ANGLE:
data << movementSpline.FaceDirection;
break;
}
@@ -237,7 +255,7 @@ ByteBuffer& operator<<(ByteBuffer& data, WorldPackets::Movement::MovementSpline&
return data;
}
-ByteBuffer& operator<<(ByteBuffer& data, WorldPackets::Movement::MovementMonsterSpline& movementMonsterSpline)
+ByteBuffer& operator<<(ByteBuffer& data, WorldPackets::Movement::MovementMonsterSpline const& movementMonsterSpline)
{
data << movementMonsterSpline.ID;
data << movementMonsterSpline.Destination;
@@ -255,6 +273,166 @@ ByteBuffer& operator<<(ByteBuffer& data, WorldPackets::Movement::MovementMonster
return data;
}
+void WorldPackets::Movement::CommonMovement::WriteCreateObjectSplineDataBlock(::Movement::MoveSpline const& moveSpline, ByteBuffer& data)
+{
+ data << uint32(moveSpline.GetId()); // ID
+ if (!moveSpline.isCyclic()) // Destination
+ {
+ G3D::Vector3 dest = moveSpline.FinalDestination();
+ data << float(dest.z);
+ data << float(dest.x);
+ data << float(dest.y);
+ }
+ else
+ data << G3D::Vector3::zero();
+
+ if (data.WriteBit(!moveSpline.Finalized())) // MovementSplineMove
+ {
+ data.FlushBits();
+
+ ::Movement::MoveSplineFlag const& splineFlags = moveSpline.splineflags;
+
+ data.WriteBits(moveSpline.splineflags.raw(), 25); // SplineFlags
+
+ uint8 face = ::Movement::MONSTER_MOVE_NORMAL;
+ if (splineFlags.final_angle)
+ face = ::Movement::MONSTER_MOVE_FACING_ANGLE;
+ else if (splineFlags.final_target)
+ face = ::Movement::MONSTER_MOVE_FACING_TARGET;
+ else if (splineFlags.final_point)
+ face = ::Movement::MONSTER_MOVE_FACING_SPOT;
+
+ data.WriteBits(face, 2); // Face
+
+ bool HasJumpGravity = data.WriteBit(moveSpline.splineflags & (::Movement::MoveSplineFlag::Parabolic | ::Movement::MoveSplineFlag::Animation)); // HasJumpGravity
+ bool HasSpecialTime = data.WriteBit((moveSpline.splineflags & ::Movement::MoveSplineFlag::Parabolic) && moveSpline.effect_start_time < moveSpline.Duration()); // HasSpecialTime
+
+ data.WriteBits(uint8(moveSpline.spline.mode()), 2); // Mode
+
+ data.WriteBit(0); // HasSplineFilterKey
+
+ data << int32(moveSpline.timePassed()); // Elapsed
+ data << uint32(moveSpline.Duration()); // Duration
+ data << float(1.0f); // DurationModifier
+ data << float(1.0f); // NextDurationModifier
+
+ uint32 PointsCount = moveSpline.getPath().size();
+ data << uint32(PointsCount);
+
+ switch (face)
+ {
+ case ::Movement::MONSTER_MOVE_FACING_SPOT:
+ data << moveSpline.facing.f; // FaceSpot
+ break;
+ case ::Movement::MONSTER_MOVE_FACING_TARGET:
+ data << moveSpline.facing.target; // FaceGUID
+ break;
+ case ::Movement::MONSTER_MOVE_FACING_ANGLE:
+ data << moveSpline.facing.angle; // FaceDirection
+ break;
+ }
+
+ if (HasJumpGravity)
+ data << float(moveSpline.vertical_acceleration); // JumpGravity
+
+ if (HasSpecialTime)
+ data << uint32(moveSpline.effect_start_time); // SpecialTime
+
+ //if (HasSplineFilterKey)
+ //{
+ // data << uint32(FilterKeysCount);
+ // for (var i = 0; i < PointsCount; ++i)
+ // {
+ // data << float(In);
+ // data << float(Out);
+ // }
+
+ // data.WriteBits(FilterFlags, 2);
+ //}
+
+ data.append<G3D::Vector3>(&moveSpline.getPath()[0], PointsCount); // Points
+ }
+}
+
+void WorldPackets::Movement::MonsterMove::InitializeSplineData(::Movement::MoveSpline const& moveSpline)
+{
+ SplineData.ID = moveSpline.m_Id;
+ WorldPackets::Movement::MovementSpline& movementSpline = SplineData.Move;
+
+ ::Movement::MoveSplineFlag splineFlags = moveSpline.splineflags;
+ splineFlags.enter_cycle = moveSpline.isCyclic();
+ movementSpline.Flags = uint32(splineFlags & uint32(~::Movement::MoveSplineFlag::Mask_No_Monster_Move));
+
+ switch (moveSpline.splineflags & ::Movement::MoveSplineFlag::Mask_Final_Facing)
+ {
+ case ::Movement::MoveSplineFlag::Final_Point:
+ movementSpline.Face = ::Movement::MONSTER_MOVE_FACING_SPOT;
+ movementSpline.FaceSpot = moveSpline.facing.f;
+ break;
+ case ::Movement::MoveSplineFlag::Final_Target:
+ movementSpline.Face = ::Movement::MONSTER_MOVE_FACING_TARGET;
+ movementSpline.FaceGUID = moveSpline.facing.target;
+ break;
+ case ::Movement::MoveSplineFlag::Final_Angle:
+ movementSpline.Face = ::Movement::MONSTER_MOVE_FACING_ANGLE;
+ movementSpline.FaceDirection = moveSpline.facing.angle;
+ break;
+ default:
+ movementSpline.Face = ::Movement::MONSTER_MOVE_NORMAL;
+ break;
+ }
+
+ if (splineFlags.animation)
+ {
+ movementSpline.AnimTier = splineFlags.getAnimationId();
+ movementSpline.TierTransStartTime = moveSpline.effect_start_time;
+ }
+
+ movementSpline.MoveTime = moveSpline.Duration();
+
+ if (splineFlags.parabolic)
+ {
+ movementSpline.JumpGravity = moveSpline.vertical_acceleration;
+ movementSpline.SpecialTime = moveSpline.effect_start_time;
+ }
+
+ ::Movement::Spline<int32> const& spline = moveSpline.spline;
+ std::vector<G3D::Vector3> const& array = spline.getPoints();
+
+ if (splineFlags & ::Movement::MoveSplineFlag::UncompressedPath)
+ {
+ if (!splineFlags.cyclic)
+ {
+ uint32 count = spline.getPointCount() - 3;
+ for (uint32 i = 2; i < count; ++i)
+ movementSpline.Points.push_back(array[i]);
+ }
+ else
+ {
+ uint32 count = spline.getPointCount() - 3;
+ movementSpline.Points.push_back(array[1]);
+ for (uint32 i = 1; i < count; ++i)
+ movementSpline.Points.push_back(array[i]);
+ }
+ }
+ else
+ {
+ uint32 lastIdx = spline.getPointCount() - 3;
+ G3D::Vector3 const* realPath = &spline.getPoint(1);
+
+ movementSpline.Points.push_back(realPath[lastIdx]);
+
+ if (lastIdx > 1)
+ {
+ G3D::Vector3 middle = (realPath[0] + realPath[lastIdx]) / 2.f;
+
+ // first and last points already appended
+ for (uint32 i = 1; i < lastIdx; ++i)
+ movementSpline.PackedDeltas.push_back(middle - realPath[i]);
+ }
+ }
+}
+
WorldPacket const* WorldPackets::Movement::MonsterMove::Write()
{
_worldPacket << MoverGUID;
diff --git a/src/server/game/Server/Packets/MovementPackets.h b/src/server/game/Server/Packets/MovementPackets.h
index 6d5d10526b3..b30be8cfb6f 100644
--- a/src/server/game/Server/Packets/MovementPackets.h
+++ b/src/server/game/Server/Packets/MovementPackets.h
@@ -20,8 +20,14 @@
#include "Packet.h"
#include "Object.h"
+
#include <G3D/Vector3.h>
+namespace Movement
+{
+ class MoveSpline;
+}
+
namespace WorldPackets
{
namespace Movement
@@ -92,11 +98,19 @@ namespace WorldPackets
MovementSpline Move;
};
+ class CommonMovement
+ {
+ public:
+ static void WriteCreateObjectSplineDataBlock(::Movement::MoveSpline const& moveSpline, ByteBuffer& data);
+ };
+
class MonsterMove final : public ServerPacket
{
public:
MonsterMove() : ServerPacket(SMSG_MONSTER_MOVE) { }
+ void InitializeSplineData(::Movement::MoveSpline const& moveSpline);
+
WorldPacket const* Write() override;
MovementMonsterSpline SplineData;
@@ -280,6 +294,9 @@ ByteBuffer& operator>>(ByteBuffer& data, G3D::Vector3& v);
ByteBuffer& operator>>(ByteBuffer& data, MovementInfo& movementInfo);
ByteBuffer& operator<<(ByteBuffer& data, MovementInfo& movementInfo);
+ByteBuffer& operator>>(ByteBuffer& data, MovementInfo::TransportInfo& transportInfo);
+ByteBuffer& operator<<(ByteBuffer& data, MovementInfo::TransportInfo const& transportInfo);
+
ByteBuffer& operator<<(ByteBuffer& data, WorldPackets::Movement::MonsterSplineFilterKey const& monsterSplineFilterKey);
ByteBuffer& operator<<(ByteBuffer& data, WorldPackets::Movement::MonsterSplineFilter const& monsterSplineFilter);
ByteBuffer& operator<<(ByteBuffer& data, WorldPackets::Movement::MovementSpline const& movementSpline);
diff --git a/src/server/game/Server/Packets/QueryPackets.cpp b/src/server/game/Server/Packets/QueryPackets.cpp
index e80312c7adb..57b67f3a737 100644
--- a/src/server/game/Server/Packets/QueryPackets.cpp
+++ b/src/server/game/Server/Packets/QueryPackets.cpp
@@ -174,6 +174,8 @@ WorldPacket const* WorldPackets::Query::QueryNPCTextResponse::Write()
_worldPacket << BroadcastTextID[i];
}
+ _worldPacket.FlushBits();
+
return &_worldPacket;
}
@@ -182,7 +184,6 @@ void WorldPackets::Query::DBQueryBulk::Read()
_worldPacket >> TableHash;
uint32 count = _worldPacket.ReadBits(13);
- _worldPacket.ResetBitPos();
Queries.resize(count);
for (uint32 i = 0; i < count; ++i)
@@ -204,7 +205,7 @@ WorldPacket const* WorldPackets::Query::DBReply::Write()
if (Data)
Data->WriteRecord(RecordID, Locale, _worldPacket);
- _worldPacket.put<int32>(sizePos, _worldPacket.wpos() - sizePos - 4);
+ _worldPacket.put<int32>(sizePos, _worldPacket.wpos() - sizePos - sizeof(int32));
return &_worldPacket;
}
@@ -224,13 +225,13 @@ WorldPacket const* WorldPackets::Query::HotfixNotifyBlob::Write()
void WorldPackets::Query::QueryGameObject::Read()
{
- _worldPacket >> Entry;
+ _worldPacket >> GameObjectID;
_worldPacket >> Guid;
}
WorldPacket const* WorldPackets::Query::QueryGameObjectResponse::Write()
{
- _worldPacket << Entry;
+ _worldPacket << GameObjectID;
_worldPacket.WriteBit(Allow);
if (Allow)
diff --git a/src/server/game/Server/Packets/QueryPackets.h b/src/server/game/Server/Packets/QueryPackets.h
index 211f0cbf46b..7f4dbd77ab3 100644
--- a/src/server/game/Server/Packets/QueryPackets.h
+++ b/src/server/game/Server/Packets/QueryPackets.h
@@ -1,27 +1,27 @@
/*
-* Copyright (C) 2008-2014 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/>.
-*/
+ * Copyright (C) 2008-2014 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/>.
+ */
#ifndef QueryPackets_h__
#define QueryPackets_h__
#include "Packet.h"
#include "Creature.h"
-#include "NPCHandler.h"
#include "DB2Stores.h"
+#include "NPCHandler.h"
namespace WorldPackets
{
@@ -168,15 +168,15 @@ namespace WorldPackets
uint32 BroadcastTextID[MAX_GOSSIP_TEXT_OPTIONS];
};
- struct DBQueryRecord
- {
- ObjectGuid GUID;
- uint32 RecordID;
- };
-
class DBQueryBulk final : public ClientPacket
{
public:
+ struct DBQueryRecord
+ {
+ ObjectGuid GUID;
+ int32 RecordID = 0;
+ };
+
DBQueryBulk(WorldPacket&& packet) : ClientPacket(CMSG_DB_QUERY_BULK, std::move(packet)) { }
void Read() override;
@@ -217,8 +217,9 @@ namespace WorldPackets
QueryGameObject(WorldPacket&& packet) : ClientPacket(CMSG_GAMEOBJECT_QUERY, std::move(packet)) { }
void Read() override;
- uint32 Entry = 0;
+
ObjectGuid Guid;
+ uint32 GameObjectID = 0;
};
struct GameObjectStats
@@ -236,17 +237,19 @@ namespace WorldPackets
size_t GetDataSize() const
{
- return sizeof(Type) + sizeof(DisplayID) + (Name->length() + (4 * 1)) + (IconName.size() + 1) + (CastBarCaption.size() + 1) + (UnkString.size() + 1) + sizeof(Data) + sizeof(Size) + sizeof(uint8) + (QuestItems.size() * sizeof(uint32)) + sizeof(Expansion);
+ // [1..3] always empty '\0' '\0' '\0' '\0' QuestItems counter
+ return sizeof(Type) + sizeof(DisplayID) + (Name->length() + (4 * 1)) + (IconName.size() + 1) + (CastBarCaption.size() + 1) + (UnkString.size() + 1) + sizeof(Data) + sizeof(Size) + sizeof(uint8) + (QuestItems.size() * sizeof(int32)) + sizeof(Expansion);
}
};
class QueryGameObjectResponse final : public ServerPacket
{
public:
- QueryGameObjectResponse() : ServerPacket(SMSG_GAMEOBJECT_QUERY_RESPONSE, 165) { } // Guess size
+ QueryGameObjectResponse() : ServerPacket(SMSG_GAMEOBJECT_QUERY_RESPONSE, 165) { }
WorldPacket const* Write() override;
- uint32 Entry = 0;
+
+ uint32 GameObjectID = 0;
bool Allow = false;
GameObjectStats Stats;
};
diff --git a/src/server/game/Server/Packets/SpellPackets.h b/src/server/game/Server/Packets/SpellPackets.h
index 98882fc2e26..18d3df5b00d 100644
--- a/src/server/game/Server/Packets/SpellPackets.h
+++ b/src/server/game/Server/Packets/SpellPackets.h
@@ -120,7 +120,7 @@ namespace WorldPackets
WorldPacket const* Write() override;
void Init(bool IsFullUpdate, ObjectGuid Target, uint32 Count);
void BuildUpdatePacket(AuraApplication* aurApp, bool remove, uint16 level);
- };
+ };
class SpellCastRequest final : public ClientPacket
{
@@ -133,34 +133,34 @@ namespace WorldPackets
void Read() override;
ObjectGuid PetGuid;
- uint8 CastID;
- uint32 SpellID;
- uint32 Misc;
- uint32 TargetFlags;
+ uint8 CastID = 0;
+ uint32 SpellID = 0;
+ uint32 Misc = 0;
+ uint32 TargetFlags = 0;
ObjectGuid UnitGuid;
ObjectGuid ItemGuid;
-
+
ObjectGuid SrcTransportGuid;
ObjectGuid DstTransportGuid;
Position SrcPos;
Position DstPos;
- float Orientation;
+ float Orientation = 0.0f;
std::string Name;
- float Pitch;
- float Speed;
+ float Pitch = 0.0f;
+ float Speed = 0.0f;
ObjectGuid Guid;
- uint32 SendCastFlags;
+ uint32 SendCastFlags = 0;
MovementInfo movementInfo;
};
-
+
struct TargetLocation
{
ObjectGuid Transport;
Position Location;
};
-
+
struct SpellTargetData
{
uint32 Flags = 0;
@@ -171,49 +171,49 @@ namespace WorldPackets
Optional<float> Orientation; // Not found in JAM structures
std::string Name;
};
-
+
struct SpellMissStatus
{
uint8 Reason = 0;
uint8 ReflectStatus = 0;
};
-
+
struct SpellPowerData
{
int32 Cost = 0;
int8 Type = 0;
};
-
+
struct RuneData
{
uint8 Start = 0;
uint8 Count = 0;
std::vector<uint8> Cooldowns;
};
-
+
struct MissileTrajectoryResult
{
uint32 TravelTime = 0;
float Pitch = 0.0f;
};
-
+
struct SpellAmmo
{
int32 DisplayID = 0;
int8 InventoryType = 0;
};
-
+
struct ProjectileVisualData
{
int32 ID[2];
};
-
+
struct CreatureImmunities
{
uint32 School = 0;
uint32 Value = 0;
};
-
+
struct SpellHealPrediction
{
ObjectGuid BeaconGUID;
diff --git a/src/server/game/Server/Protocol/Opcodes.cpp b/src/server/game/Server/Protocol/Opcodes.cpp
index 85a639b6161..1612b01ccd2 100644
--- a/src/server/game/Server/Protocol/Opcodes.cpp
+++ b/src/server/game/Server/Protocol/Opcodes.cpp
@@ -18,13 +18,16 @@
#include "Opcodes.h"
#include "WorldSession.h"
+#include "Packets/AchievementPackets.h"
#include "Packets/CharacterPackets.h"
#include "Packets/ChannelPackets.h"
#include "Packets/ChatPackets.h"
#include "Packets/ClientConfigPackets.h"
#include "Packets/CombatPackets.h"
#include "Packets/EquipmentSetPackets.h"
+#include "Packets/GameObjectPackets.h"
#include "Packets/GuildPackets.h"
+#include "Packets/ItemPackets.h"
#include "Packets/MiscPackets.h"
#include "Packets/MovementPackets.h"
#include "Packets/NPCPackets.h"
@@ -32,8 +35,6 @@
#include "Packets/QuestPackets.h"
#include "Packets/TalentPackets.h"
#include "Packets/TradePackets.h"
-#include "Packets/ItemPackets.h"
-#include "Packets/GameObjectPackets.h"
template<class PacketClass, void(WorldSession::*HandlerFunction)(PacketClass&)>
class PacketHandler : public ClientOpcodeHandler
diff --git a/src/server/game/Server/WorldSession.h b/src/server/game/Server/WorldSession.h
index b8d9020e440..68b89af6ce6 100644
--- a/src/server/game/Server/WorldSession.h
+++ b/src/server/game/Server/WorldSession.h
@@ -416,7 +416,7 @@ class WorldSession
void SetSecurity(AccountTypes security) { _security = security; }
std::string const& GetRemoteAddress() { return m_Address; }
void SetPlayer(Player* player);
- uint8 Expansion() const { return m_expansion; }
+ uint8 GetExpansion() const { return m_expansion; }
void InitWarden(BigNumber* k, std::string const& os);