From 744a435f447415dd8bf2a3889d0c1d149c9c78f7 Mon Sep 17 00:00:00 2001 From: Shauren Date: Thu, 19 Dec 2024 14:55:40 +0100 Subject: Core/PacketIO: Remove overriding Underlying type from ByteBuffer reads in favor of PacketUtilities::As (cherry picked from commit 9ed5f8812b58d1d99d81fbb3df38001206d3f6ed) # Conflicts: # src/server/game/Server/Packets/AuctionHousePackets.cpp # src/server/game/Server/Packets/ItemPackets.cpp --- src/server/game/Server/Packets/ItemPackets.cpp | 2 +- src/server/game/Server/Packets/MiscPackets.cpp | 2 +- src/server/game/Server/Packets/MovementPackets.cpp | 3 ++- src/server/game/Server/Packets/PacketUtilities.h | 2 +- src/server/game/Server/Packets/TraitPacketsCommon.cpp | 4 ++-- src/server/shared/Packets/ByteBuffer.h | 18 +++++++++--------- 6 files changed, 16 insertions(+), 15 deletions(-) (limited to 'src') diff --git a/src/server/game/Server/Packets/ItemPackets.cpp b/src/server/game/Server/Packets/ItemPackets.cpp index 58cdac4959f..abe16246c7a 100644 --- a/src/server/game/Server/Packets/ItemPackets.cpp +++ b/src/server/game/Server/Packets/ItemPackets.cpp @@ -30,7 +30,7 @@ void WorldPackets::Item::BuyItem::Read() _worldPacket >> Quantity; _worldPacket >> Muid; _worldPacket >> Slot; - ItemType = _worldPacket.read(); + _worldPacket >> As(ItemType); _worldPacket >> Item; } diff --git a/src/server/game/Server/Packets/MiscPackets.cpp b/src/server/game/Server/Packets/MiscPackets.cpp index c5a533c5b9d..0f9e960233f 100644 --- a/src/server/game/Server/Packets/MiscPackets.cpp +++ b/src/server/game/Server/Packets/MiscPackets.cpp @@ -762,7 +762,7 @@ WorldPacket const* WorldPackets::Misc::StartTimer::Write() void WorldPackets::Misc::QueryCountdownTimer::Read() { - TimerType = _worldPacket.read(); + _worldPacket >> As(TimerType); } void WorldPackets::Misc::ConversationLineStarted::Read() diff --git a/src/server/game/Server/Packets/MovementPackets.cpp b/src/server/game/Server/Packets/MovementPackets.cpp index ef05b6ebe08..ccd6ac9a11f 100644 --- a/src/server/game/Server/Packets/MovementPackets.cpp +++ b/src/server/game/Server/Packets/MovementPackets.cpp @@ -19,6 +19,7 @@ #include "MoveSpline.h" #include "MoveSplineFlag.h" #include "MovementTypedefs.h" +#include "PacketUtilities.h" #include "Unit.h" #include "Util.h" @@ -935,7 +936,7 @@ void WorldPackets::Movement::MoveSetCollisionHeightAck::Read() _worldPacket >> Data; _worldPacket >> Height; _worldPacket >> MountDisplayID; - Reason = _worldPacket.read(); + _worldPacket >> As(Reason); } void WorldPackets::Movement::MoveTimeSkipped::Read() diff --git a/src/server/game/Server/Packets/PacketUtilities.h b/src/server/game/Server/Packets/PacketUtilities.h index e23bb4147fa..678d6aba977 100644 --- a/src/server/game/Server/Packets/PacketUtilities.h +++ b/src/server/game/Server/Packets/PacketUtilities.h @@ -288,7 +288,7 @@ namespace WorldPackets friend ByteBuffer& operator>>(ByteBuffer& data, Timestamp& timestamp) { - timestamp._value = data.read(); + timestamp._value = static_cast(data.read()); return data; } diff --git a/src/server/game/Server/Packets/TraitPacketsCommon.cpp b/src/server/game/Server/Packets/TraitPacketsCommon.cpp index effe6c903b0..3d3c1bbf635 100644 --- a/src/server/game/Server/Packets/TraitPacketsCommon.cpp +++ b/src/server/game/Server/Packets/TraitPacketsCommon.cpp @@ -70,7 +70,7 @@ ByteBuffer& operator<<(ByteBuffer& data, TraitEntry const& traitEntry) ByteBuffer& operator>>(ByteBuffer& data, TraitConfig& traitConfig) { data >> traitConfig.ID; - traitConfig.Type = data.read(); + data >> As(traitConfig.Type); uint32 entriesSize = data.read(); if (entriesSize > 100) throw PacketArrayMaxCapacityException(entriesSize, 100); @@ -80,7 +80,7 @@ ByteBuffer& operator>>(ByteBuffer& data, TraitConfig& traitConfig) { case TraitConfigType::Combat: data >> traitConfig.ChrSpecializationID; - traitConfig.CombatConfigFlags = data.read(); + data >> As(traitConfig.CombatConfigFlags); data >> traitConfig.LocalIdentifier; break; case TraitConfigType::Profession: diff --git a/src/server/shared/Packets/ByteBuffer.h b/src/server/shared/Packets/ByteBuffer.h index f2bb422cde1..2f59f0db873 100644 --- a/src/server/shared/Packets/ByteBuffer.h +++ b/src/server/shared/Packets/ByteBuffer.h @@ -433,24 +433,24 @@ class TC_SHARED_API ByteBuffer _rpos += skip; } - template + template T read() { ResetBitPos(); - T r = read(_rpos); - _rpos += sizeof(Underlying); + T r = read(_rpos); + _rpos += sizeof(T); return r; } - template + template T read(size_t pos) const { - if (pos + sizeof(Underlying) > size()) - throw ByteBufferPositionException(pos, sizeof(Underlying), size()); - Underlying val; - std::memcpy(&val, &_storage[pos], sizeof(Underlying)); + if (pos + sizeof(T) > size()) + throw ByteBufferPositionException(pos, sizeof(T), size()); + T val; + std::memcpy(&val, &_storage[pos], sizeof(T)); EndianConvert(val); - return static_cast(val); + return val; } template -- cgit v1.2.3