mirror of
https://github.com/mangosfour/server.git
synced 2025-12-13 22:37:03 +00:00
[11624] Use 12 bits for high guids
This commit is contained in:
parent
c686697c2d
commit
2006b7bf07
2 changed files with 20 additions and 20 deletions
|
|
@ -59,21 +59,21 @@ enum TypeMask
|
||||||
|
|
||||||
enum HighGuid
|
enum HighGuid
|
||||||
{
|
{
|
||||||
HIGHGUID_ITEM = 0x4700, // blizz 4700
|
HIGHGUID_ITEM = 0x470, // blizz 470
|
||||||
HIGHGUID_CONTAINER = 0x4700, // blizz 4700
|
HIGHGUID_CONTAINER = 0x470, // blizz 470
|
||||||
HIGHGUID_PLAYER = 0x0000, // blizz 0700 (temporary reverted back to 0 high guid
|
HIGHGUID_PLAYER = 0x000, // blizz 070 (temporary reverted back to 0 high guid
|
||||||
// in result unknown source visibility player with
|
// in result unknown source visibility player with
|
||||||
// player problems. please reapply only after its resolve)
|
// player problems. please reapply only after its resolve)
|
||||||
HIGHGUID_GAMEOBJECT = 0xF110, // blizz F110/F510
|
HIGHGUID_GAMEOBJECT = 0xF11, // blizz F11/F51
|
||||||
HIGHGUID_TRANSPORT = 0xF120, // blizz F120/F520 (for GAMEOBJECT_TYPE_TRANSPORT)
|
HIGHGUID_TRANSPORT = 0xF12, // blizz F12/F52 (for GAMEOBJECT_TYPE_TRANSPORT)
|
||||||
HIGHGUID_UNIT = 0xF130, // blizz F130/F530
|
HIGHGUID_UNIT = 0xF13, // blizz F13/F53
|
||||||
HIGHGUID_PET = 0xF140, // blizz F140/F540
|
HIGHGUID_PET = 0xF14, // blizz F14/F54
|
||||||
HIGHGUID_VEHICLE = 0xF150, // blizz F150/F550
|
HIGHGUID_VEHICLE = 0xF15, // blizz F15/F55
|
||||||
HIGHGUID_DYNAMICOBJECT = 0xF100, // blizz F100/F500
|
HIGHGUID_DYNAMICOBJECT = 0xF10, // blizz F10/F50
|
||||||
HIGHGUID_CORPSE = 0xF500, // blizz F100/F500 used second variant to resolve conflict with HIGHGUID_DYNAMICOBJECT
|
HIGHGUID_CORPSE = 0xF50, // blizz F10/F50 used second variant to resolve conflict with HIGHGUID_DYNAMICOBJECT
|
||||||
HIGHGUID_MO_TRANSPORT = 0x1FC0, // blizz 1FC0 (for GAMEOBJECT_TYPE_MO_TRANSPORT)
|
HIGHGUID_MO_TRANSPORT = 0x1FC, // blizz 1FC (for GAMEOBJECT_TYPE_MO_TRANSPORT)
|
||||||
HIGHGUID_INSTANCE = 0x1F42, // blizz 1F42/1F44/1F44/1F47
|
HIGHGUID_INSTANCE = 0x1F4, // blizz 1F4
|
||||||
HIGHGUID_GROUP = 0x1F50, // blizz 1F5x
|
HIGHGUID_GROUP = 0x1F5, // blizz 1F5
|
||||||
};
|
};
|
||||||
|
|
||||||
class ObjectGuid;
|
class ObjectGuid;
|
||||||
|
|
@ -89,9 +89,9 @@ class MANGOS_DLL_SPEC ObjectGuid
|
||||||
{
|
{
|
||||||
public: // constructors
|
public: // constructors
|
||||||
ObjectGuid() : m_guid(0) {}
|
ObjectGuid() : m_guid(0) {}
|
||||||
explicit ObjectGuid(uint64 const& guid) : m_guid(guid) {}
|
explicit ObjectGuid(uint64 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 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) << 48) : 0) {}
|
ObjectGuid(HighGuid hi, uint32 counter) : m_guid(counter ? uint64(counter) | (uint64(hi) << 52) : 0) {}
|
||||||
|
|
||||||
operator uint64() const { return m_guid; }
|
operator uint64() const { return m_guid; }
|
||||||
private:
|
private:
|
||||||
|
|
@ -102,13 +102,13 @@ class MANGOS_DLL_SPEC ObjectGuid
|
||||||
public: // modifiers
|
public: // modifiers
|
||||||
PackedGuidReader ReadAsPacked() { return PackedGuidReader(*this); }
|
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; }
|
void Clear() { m_guid = 0; }
|
||||||
|
|
||||||
PackedGuid WriteAsPacked() const;
|
PackedGuid WriteAsPacked() const;
|
||||||
public: // accessors
|
public: // accessors
|
||||||
uint64 const& GetRawValue() const { return m_guid; }
|
uint64 GetRawValue() const { return m_guid; }
|
||||||
HighGuid GetHigh() const { return HighGuid((m_guid >> 48) & 0x0000FFFF); }
|
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 >> 24) & UI64LIT(0x0000000000FFFFFF)) : 0; }
|
||||||
uint32 GetCounter() const
|
uint32 GetCounter() const
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
#ifndef __REVISION_NR_H__
|
#ifndef __REVISION_NR_H__
|
||||||
#define __REVISION_NR_H__
|
#define __REVISION_NR_H__
|
||||||
#define REVISION_NR "11623"
|
#define REVISION_NR "11624"
|
||||||
#endif // __REVISION_NR_H__
|
#endif // __REVISION_NR_H__
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue