diff --git a/src/game/ObjectGuid.h b/src/game/ObjectGuid.h index c76ddce1c..c36a8ff28 100644 --- a/src/game/ObjectGuid.h +++ b/src/game/ObjectGuid.h @@ -92,7 +92,7 @@ class MANGOS_DLL_SPEC ObjectGuid public: // constructors ObjectGuid() : m_guid(0) {} explicit ObjectGuid(uint64 guid) : m_guid(guid) {} - ObjectGuid(HighGuid hi, uint32 entry, uint32 counter) : m_guid(counter ? uint64(counter) | (uint64(entry) << 24) | (uint64(hi) << 52) : 0) {} + ObjectGuid(HighGuid hi, uint32 entry, uint32 counter) : m_guid(counter ? uint64(counter) | (uint64(entry) << 32) | (uint64(hi) << 52) : 0) {} ObjectGuid(HighGuid hi, uint32 counter) : m_guid(counter ? uint64(counter) | (uint64(hi) << 52) : 0) {} operator uint64() const { return m_guid; } @@ -111,19 +111,19 @@ class MANGOS_DLL_SPEC ObjectGuid public: // accessors uint64 GetRawValue() const { return m_guid; } HighGuid GetHigh() const { return HighGuid((m_guid >> 52) & 0x00000FFF); } - uint32 GetEntry() const { return HasEntry() ? uint32((m_guid >> 24) & UI64LIT(0x0000000000FFFFFF)) : 0; } + uint32 GetEntry() const { return HasEntry() ? uint32((m_guid >> 32) & UI64LIT(0x0000000000FFFFFF)) : 0; } uint32 GetCounter() const { return HasEntry() - ? uint32(m_guid & UI64LIT(0x0000000000FFFFFF)) - : uint32(m_guid & UI64LIT(0x00000000FFFFFFFF)); + ? uint32(m_guid & UI64LIT(0x00000000FFFFFFFF)) + : uint32(m_guid & UI64LIT(0x000000FFFFFFFFFF)); } static uint32 GetMaxCounter(HighGuid high) { return HasEntry(high) - ? uint32(0x00FFFFFF) - : uint32(0xFFFFFFFF); + ? uint32(0x00FFFFFFFF) + : uint32(0xFFFFFFFFFF); } uint32 GetMaxCounter() const { return GetMaxCounter(GetHigh()); } @@ -311,7 +311,7 @@ HASH_NAMESPACE_END } #define DEFINE_WRITEGUIDMASK(T1, T2) template \ - void ByteBuffer::WriteGuidMask(ObjectGuid& guid) \ + void ByteBuffer::WriteGuidMask(ObjectGuid guid) \ { \ uint8 maskArr[] = { T2 }; \ for (uint8 i = 0; i < countof(maskArr); ++i) \ @@ -328,7 +328,7 @@ HASH_NAMESPACE_END } #define DEFINE_WRITEGUIDBYTES(T1, T2) template \ - void ByteBuffer::WriteGuidBytes(ObjectGuid& guid) \ + void ByteBuffer::WriteGuidBytes(ObjectGuid guid) \ { \ uint8 maskArr[] = { T2 }; \ for (uint8 i = 0; i < countof(maskArr); ++i) \ diff --git a/src/game/movement/packet_builder.cpp b/src/game/movement/packet_builder.cpp index 07ecaced7..3cad3931d 100644 --- a/src/game/movement/packet_builder.cpp +++ b/src/game/movement/packet_builder.cpp @@ -164,8 +164,8 @@ namespace Movement case MoveSplineFlag::Final_Target: { data.WriteBits(2, 2); - ObjectGuid guid = ObjectGuid(move_spline.facing.target); - data.WriteGuidMask<4, 3, 7, 2, 6, 1, 0, 5>(guid); + + data.WriteGuidMask<4, 3, 7, 2, 6, 1, 0, 5>(ObjectGuid(move_spline.facing.target)); break; } case MoveSplineFlag::Final_Angle: @@ -198,10 +198,7 @@ namespace Movement if (move_spline.splineflags & MoveSplineFlag::Final_Angle) data << move_spline.facing.angle; else if (move_spline.splineflags & MoveSplineFlag::Final_Target) - { - ObjectGuid guid = ObjectGuid(move_spline.facing.target); - data.WriteGuidMask<5, 3, 7, 1, 6, 4, 2, 0>(guid); - } + data.WriteGuidBytes<5, 3, 7, 1, 6, 4, 2, 0>(ObjectGuid(move_spline.facing.target)); for (uint32 i = 0; i < nodes; ++i) { diff --git a/src/shared/ByteBuffer.h b/src/shared/ByteBuffer.h index ae7081253..8fb4ef674 100644 --- a/src/shared/ByteBuffer.h +++ b/src/shared/ByteBuffer.h @@ -253,21 +253,21 @@ class ByteBuffer void ReadGuidMask(ObjectGuid& guid); template - void WriteGuidMask(ObjectGuid& guid); + void WriteGuidMask(ObjectGuid guid); template - void WriteGuidMask(ObjectGuid& guid); + void WriteGuidMask(ObjectGuid guid); template - void WriteGuidMask(ObjectGuid& guid); + void WriteGuidMask(ObjectGuid guid); template - void WriteGuidMask(ObjectGuid& guid); + void WriteGuidMask(ObjectGuid guid); template - void WriteGuidMask(ObjectGuid& guid); + void WriteGuidMask(ObjectGuid guid); template - void WriteGuidMask(ObjectGuid& guid); + void WriteGuidMask(ObjectGuid guid); template - void WriteGuidMask(ObjectGuid& guid); + void WriteGuidMask(ObjectGuid guid); template - void WriteGuidMask(ObjectGuid& guid); + void WriteGuidMask(ObjectGuid guid); template void ReadGuidBytes(ObjectGuid& guid); @@ -287,21 +287,21 @@ class ByteBuffer void ReadGuidBytes(ObjectGuid& guid); template - void WriteGuidBytes(ObjectGuid& guid); + void WriteGuidBytes(ObjectGuid guid); template - void WriteGuidBytes(ObjectGuid& guid); + void WriteGuidBytes(ObjectGuid guid); template - void WriteGuidBytes(ObjectGuid& guid); + void WriteGuidBytes(ObjectGuid guid); template - void WriteGuidBytes(ObjectGuid& guid); + void WriteGuidBytes(ObjectGuid guid); template - void WriteGuidBytes(ObjectGuid& guid); + void WriteGuidBytes(ObjectGuid guid); template - void WriteGuidBytes(ObjectGuid& guid); + void WriteGuidBytes(ObjectGuid guid); template - void WriteGuidBytes(ObjectGuid& guid); + void WriteGuidBytes(ObjectGuid guid); template - void WriteGuidBytes(ObjectGuid& guid); + void WriteGuidBytes(ObjectGuid guid); template void put(size_t pos, T value) {