diff options
| author | joschiwald <joschiwald.trinity@gmail.com> | 2014-12-29 01:00:16 +0100 |
|---|---|---|
| committer | joschiwald <joschiwald.trinity@gmail.com> | 2014-12-29 01:00:16 +0100 |
| commit | 9ecc578cb187cc1ae0fd454883dab0cd058d3807 (patch) | |
| tree | 6322b594c6ff6958de870dc5b4f0effee1f6e5c7 /src/server/game/Server | |
| parent | 21360bb50c6a1390fbeb51c9c27bb0823ad0f252 (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.h | 18 | ||||
| -rw-r--r-- | src/server/game/Server/Packets/MovementPackets.cpp | 258 | ||||
| -rw-r--r-- | src/server/game/Server/Packets/MovementPackets.h | 17 | ||||
| -rw-r--r-- | src/server/game/Server/Packets/QueryPackets.cpp | 9 | ||||
| -rw-r--r-- | src/server/game/Server/Packets/QueryPackets.h | 55 | ||||
| -rw-r--r-- | src/server/game/Server/Packets/SpellPackets.h | 40 | ||||
| -rw-r--r-- | src/server/game/Server/Protocol/Opcodes.cpp | 5 | ||||
| -rw-r--r-- | src/server/game/Server/WorldSession.h | 2 |
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); |
