diff options
| author | Shauren <shauren.trinity@gmail.com> | 2020-03-17 18:38:01 +0100 |
|---|---|---|
| committer | Shauren <shauren.trinity@gmail.com> | 2020-03-17 18:38:01 +0100 |
| commit | 06cc0754b88fd745da30f98b5fa5f8c56d907414 (patch) | |
| tree | ba7f848ed1eb9d2c8587e5a6df626c1730c514bf /src/server/shared | |
| parent | 569f1c9f2a4806948521f4c6eab36d406ba45593 (diff) | |
Core/PacketIO: Updated auction packets to newer build
Diffstat (limited to 'src/server/shared')
| -rw-r--r-- | src/server/shared/Packets/ByteBuffer.h | 17 |
1 files changed, 9 insertions, 8 deletions
diff --git a/src/server/shared/Packets/ByteBuffer.h b/src/server/shared/Packets/ByteBuffer.h index ee4e263b58f..abd00078911 100644 --- a/src/server/shared/Packets/ByteBuffer.h +++ b/src/server/shared/Packets/ByteBuffer.h @@ -427,23 +427,24 @@ class TC_SHARED_API ByteBuffer _rpos += skip; } - template <typename T> + template <typename T, typename Underlying = T> T read() { ResetBitPos(); - T r = read<T>(_rpos); - _rpos += sizeof(T); + T r = read<T, Underlying>(_rpos); + _rpos += sizeof(Underlying); return r; } - template <typename T> + template <typename T, typename Underlying = T> T read(size_t pos) const { - if (pos + sizeof(T) > size()) - throw ByteBufferPositionException(pos, sizeof(T), size()); - T val = *((T const*)&_storage[pos]); + if (pos + sizeof(Underlying) > size()) + throw ByteBufferPositionException(pos, sizeof(Underlying), size()); + Underlying val; + std::memcpy(&val, &_storage[pos], sizeof(Underlying)); EndianConvert(val); - return val; + return static_cast<T>(val); } template<class T> |
