From a9240a14215d7db74f3a8af0a0734d7c8ff7eee3 Mon Sep 17 00:00:00 2001 From: zergtmn Date: Sat, 11 Jun 2011 23:30:44 +0600 Subject: [PATCH] [11624] Use 12 bits for high guids --- src/game/ObjectGuid.h | 38 +++++++++++++++++++------------------- src/shared/revision_nr.h | 2 +- 2 files changed, 20 insertions(+), 20 deletions(-) diff --git a/src/game/ObjectGuid.h b/src/game/ObjectGuid.h index 2822a5687f5..6ecb0a06522 100644 --- a/src/game/ObjectGuid.h +++ b/src/game/ObjectGuid.h @@ -59,21 +59,21 @@ enum TypeMask enum HighGuid { - HIGHGUID_ITEM = 0x4700, // blizz 4700 - HIGHGUID_CONTAINER = 0x4700, // blizz 4700 - HIGHGUID_PLAYER = 0x0000, // blizz 0700 (temporary reverted back to 0 high guid + HIGHGUID_ITEM = 0x470, // blizz 470 + HIGHGUID_CONTAINER = 0x470, // blizz 470 + HIGHGUID_PLAYER = 0x000, // blizz 070 (temporary reverted back to 0 high guid // in result unknown source visibility player with // player problems. please reapply only after its resolve) - HIGHGUID_GAMEOBJECT = 0xF110, // blizz F110/F510 - HIGHGUID_TRANSPORT = 0xF120, // blizz F120/F520 (for GAMEOBJECT_TYPE_TRANSPORT) - HIGHGUID_UNIT = 0xF130, // blizz F130/F530 - HIGHGUID_PET = 0xF140, // blizz F140/F540 - HIGHGUID_VEHICLE = 0xF150, // blizz F150/F550 - HIGHGUID_DYNAMICOBJECT = 0xF100, // blizz F100/F500 - HIGHGUID_CORPSE = 0xF500, // blizz F100/F500 used second variant to resolve conflict with HIGHGUID_DYNAMICOBJECT - HIGHGUID_MO_TRANSPORT = 0x1FC0, // blizz 1FC0 (for GAMEOBJECT_TYPE_MO_TRANSPORT) - HIGHGUID_INSTANCE = 0x1F42, // blizz 1F42/1F44/1F44/1F47 - HIGHGUID_GROUP = 0x1F50, // blizz 1F5x + HIGHGUID_GAMEOBJECT = 0xF11, // blizz F11/F51 + HIGHGUID_TRANSPORT = 0xF12, // blizz F12/F52 (for GAMEOBJECT_TYPE_TRANSPORT) + HIGHGUID_UNIT = 0xF13, // blizz F13/F53 + HIGHGUID_PET = 0xF14, // blizz F14/F54 + HIGHGUID_VEHICLE = 0xF15, // blizz F15/F55 + HIGHGUID_DYNAMICOBJECT = 0xF10, // blizz F10/F50 + HIGHGUID_CORPSE = 0xF50, // blizz F10/F50 used second variant to resolve conflict with HIGHGUID_DYNAMICOBJECT + HIGHGUID_MO_TRANSPORT = 0x1FC, // blizz 1FC (for GAMEOBJECT_TYPE_MO_TRANSPORT) + HIGHGUID_INSTANCE = 0x1F4, // blizz 1F4 + HIGHGUID_GROUP = 0x1F5, // blizz 1F5 }; class ObjectGuid; @@ -89,9 +89,9 @@ class MANGOS_DLL_SPEC ObjectGuid { public: // constructors ObjectGuid() : m_guid(0) {} - explicit ObjectGuid(uint64 const& guid) : m_guid(guid) {} - ObjectGuid(HighGuid hi, uint32 entry, uint32 counter) : m_guid(counter ? uint64(counter) | (uint64(entry) << 24) | (uint64(hi) << 48) : 0) {} - ObjectGuid(HighGuid hi, uint32 counter) : m_guid(counter ? uint64(counter) | (uint64(hi) << 48) : 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 counter) : m_guid(counter ? uint64(counter) | (uint64(hi) << 52) : 0) {} operator uint64() const { return m_guid; } private: @@ -102,13 +102,13 @@ class MANGOS_DLL_SPEC ObjectGuid public: // modifiers PackedGuidReader ReadAsPacked() { return PackedGuidReader(*this); } - void Set(uint64 const& guid) { m_guid = guid; } + void Set(uint64 guid) { m_guid = guid; } void Clear() { m_guid = 0; } PackedGuid WriteAsPacked() const; public: // accessors - uint64 const& GetRawValue() const { return m_guid; } - HighGuid GetHigh() const { return HighGuid((m_guid >> 48) & 0x0000FFFF); } + 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 GetCounter() const { diff --git a/src/shared/revision_nr.h b/src/shared/revision_nr.h index 1823ff2b295..3119190d1f0 100644 --- a/src/shared/revision_nr.h +++ b/src/shared/revision_nr.h @@ -1,4 +1,4 @@ #ifndef __REVISION_NR_H__ #define __REVISION_NR_H__ - #define REVISION_NR "11623" + #define REVISION_NR "11624" #endif // __REVISION_NR_H__