TrinityCore
Loading...
Searching...
No Matches
ObjectGuid.h File Reference
#include "Define.h"
#include "EnumFlag.h"
#include "StringFormatFwd.h"
#include <array>
#include <functional>
#include <list>
#include <set>
#include <string>
#include <type_traits>
#include <unordered_set>
#include <vector>
+ Include dependency graph for ObjectGuid.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  ObjectGuidTraits< high >
 
struct  PackedGuidReader
 
struct  PackedGuidWriter
 
class  ObjectGuid
 
class  PackedGuid
 
class  ObjectGuidGenerator
 
struct  std::hash< ObjectGuid >
 
struct  fmt::formatter< ObjectGuid, char, void >
 

Macros

#define NUM_CLIENT_OBJECT_TYPES   8
 
#define MAKE_GUID_TRAIT(high, sequence, format)
 
#define PACKED_GUID_MIN_BUFFER_SIZE   9
 

Typedefs

using GuidSet = std::set< ObjectGuid >
 
using GuidList = std::list< ObjectGuid >
 
using GuidVector = std::vector< ObjectGuid >
 
using GuidUnorderedSet = std::unordered_set< ObjectGuid >
 

Enumerations

enum  TypeID {
  TYPEID_OBJECT = 0 , TYPEID_ITEM = 1 , TYPEID_CONTAINER = 2 , TYPEID_UNIT = 3 ,
  TYPEID_PLAYER = 4 , TYPEID_GAMEOBJECT = 5 , TYPEID_DYNAMICOBJECT = 6 , TYPEID_CORPSE = 7
}
 
enum  TypeMask {
  TYPEMASK_OBJECT = 0x0001 , TYPEMASK_ITEM = 0x0002 , TYPEMASK_CONTAINER = 0x0004 , TYPEMASK_UNIT = 0x0008 ,
  TYPEMASK_PLAYER = 0x0010 , TYPEMASK_GAMEOBJECT = 0x0020 , TYPEMASK_DYNAMICOBJECT = 0x0040 , TYPEMASK_CORPSE = 0x0080 ,
  TYPEMASK_SEER = TYPEMASK_UNIT | TYPEMASK_PLAYER | TYPEMASK_DYNAMICOBJECT , TYPEMASK_WORLDOBJECT = TYPEMASK_UNIT | TYPEMASK_GAMEOBJECT | TYPEMASK_DYNAMICOBJECT | TYPEMASK_CORPSE
}
 
enum class  HighGuid {
  Item = 0x4000 , Container = 0x4000 , Player = 0x0000 , GameObject = 0xF110 ,
  Transport = 0xF120 , Unit = 0xF130 , Pet = 0xF140 , Vehicle = 0xF150 ,
  DynamicObject = 0xF100 , Corpse = 0xF101 , Mo_Transport = 0x1FC0 , Instance = 0x1F40 ,
  Group = 0x1F50
}
 
enum class  ObjectGuidSequenceSource { None = 0x0 , Global = 0x1 , Map = 0x2 }
 
enum class  ObjectGuidFormatType { OnlyCounter , CounterAndEntry }
 

Functions

 DEFINE_ENUM_FLAG (ObjectGuidSequenceSource)
 
 MAKE_GUID_TRAIT (HighGuid::Item, ObjectGuidSequenceSource::Global, ObjectGuidFormatType::OnlyCounter)
 
 MAKE_GUID_TRAIT (HighGuid::Player, ObjectGuidSequenceSource::Global, ObjectGuidFormatType::OnlyCounter)
 
 MAKE_GUID_TRAIT (HighGuid::GameObject, ObjectGuidSequenceSource::Map, ObjectGuidFormatType::CounterAndEntry)
 
 MAKE_GUID_TRAIT (HighGuid::Transport, ObjectGuidSequenceSource::Map, ObjectGuidFormatType::OnlyCounter)
 
 MAKE_GUID_TRAIT (HighGuid::Unit, ObjectGuidSequenceSource::Map, ObjectGuidFormatType::CounterAndEntry)
 
 MAKE_GUID_TRAIT (HighGuid::Pet, ObjectGuidSequenceSource::Map, ObjectGuidFormatType::CounterAndEntry)
 
 MAKE_GUID_TRAIT (HighGuid::Vehicle, ObjectGuidSequenceSource::Map, ObjectGuidFormatType::CounterAndEntry)
 
 MAKE_GUID_TRAIT (HighGuid::DynamicObject, ObjectGuidSequenceSource::Map, ObjectGuidFormatType::OnlyCounter)
 
 MAKE_GUID_TRAIT (HighGuid::Corpse, ObjectGuidSequenceSource::Map, ObjectGuidFormatType::OnlyCounter)
 
 MAKE_GUID_TRAIT (HighGuid::Mo_Transport, ObjectGuidSequenceSource::Global, ObjectGuidFormatType::OnlyCounter)
 
 MAKE_GUID_TRAIT (HighGuid::Instance, ObjectGuidSequenceSource::Global, ObjectGuidFormatType::OnlyCounter)
 
 MAKE_GUID_TRAIT (HighGuid::Group, ObjectGuidSequenceSource::Global, ObjectGuidFormatType::OnlyCounter)
 
TC_GAME_API ByteBufferoperator<< (ByteBuffer &buf, ObjectGuid const &guid)
 
TC_GAME_API ByteBufferoperator>> (ByteBuffer &buf, ObjectGuid &guid)
 
TC_GAME_API ByteBufferoperator<< (ByteBuffer &buf, PackedGuid const &guid)
 
TC_GAME_API ByteBufferoperator<< (ByteBuffer &buf, PackedGuidWriter const &guid)
 
TC_GAME_API ByteBufferoperator>> (ByteBuffer &buf, PackedGuidReader const &guid)
 

Macro Definition Documentation

◆ MAKE_GUID_TRAIT

#define MAKE_GUID_TRAIT (   high,
  sequence,
  format 
)
Value:
template<> struct ObjectGuidTraits<high> \
{ \
static constexpr EnumFlag<ObjectGuidSequenceSource> SequenceSource = sequence; \
using Format = std::integral_constant<ObjectGuidFormatType, format>; \
}
std::integral_constant< ObjectGuidFormatType, ObjectGuidFormatType::OnlyCounter > Format
Definition ObjectGuid.h:98
static constexpr EnumFlag< ObjectGuidSequenceSource > SequenceSource
Definition ObjectGuid.h:97

Definition at line 101 of file ObjectGuid.h.

◆ NUM_CLIENT_OBJECT_TYPES

#define NUM_CLIENT_OBJECT_TYPES   8

Definition at line 45 of file ObjectGuid.h.

◆ PACKED_GUID_MIN_BUFFER_SIZE

#define PACKED_GUID_MIN_BUFFER_SIZE   9

Definition at line 266 of file ObjectGuid.h.

Typedef Documentation

◆ GuidList

using GuidList = std::list<ObjectGuid>

Definition at line 261 of file ObjectGuid.h.

◆ GuidSet

using GuidSet = std::set<ObjectGuid>

Definition at line 260 of file ObjectGuid.h.

◆ GuidUnorderedSet

using GuidUnorderedSet = std::unordered_set<ObjectGuid>

Definition at line 263 of file ObjectGuid.h.

◆ GuidVector

using GuidVector = std::vector<ObjectGuid>

Definition at line 262 of file ObjectGuid.h.

Enumeration Type Documentation

◆ HighGuid

enum class HighGuid
strong
Enumerator
Item 
Container 
Player 
GameObject 
Transport 
Unit 
Pet 
Vehicle 
DynamicObject 
Corpse 
Mo_Transport 
Instance 
Group 

Definition at line 62 of file ObjectGuid.h.

◆ ObjectGuidFormatType

enum class ObjectGuidFormatType
strong
Enumerator
OnlyCounter 
CounterAndEntry 

Definition at line 88 of file ObjectGuid.h.

◆ ObjectGuidSequenceSource

enum class ObjectGuidSequenceSource
strong
Enumerator
None 
Global 
Map 

Definition at line 79 of file ObjectGuid.h.

◆ TypeID

enum TypeID
Enumerator
TYPEID_OBJECT 
TYPEID_ITEM 
TYPEID_CONTAINER 
TYPEID_UNIT 
TYPEID_PLAYER 
TYPEID_GAMEOBJECT 
TYPEID_DYNAMICOBJECT 
TYPEID_CORPSE 

Definition at line 33 of file ObjectGuid.h.

◆ TypeMask

enum TypeMask
Enumerator
TYPEMASK_OBJECT 
TYPEMASK_ITEM 
TYPEMASK_CONTAINER 
TYPEMASK_UNIT 
TYPEMASK_PLAYER 
TYPEMASK_GAMEOBJECT 
TYPEMASK_DYNAMICOBJECT 
TYPEMASK_CORPSE 
TYPEMASK_SEER 
TYPEMASK_WORLDOBJECT 

Definition at line 47 of file ObjectGuid.h.

Function Documentation

◆ DEFINE_ENUM_FLAG()

DEFINE_ENUM_FLAG ( ObjectGuidSequenceSource  )

◆ MAKE_GUID_TRAIT() [1/12]

◆ MAKE_GUID_TRAIT() [2/12]

◆ MAKE_GUID_TRAIT() [3/12]

◆ MAKE_GUID_TRAIT() [4/12]

◆ MAKE_GUID_TRAIT() [5/12]

◆ MAKE_GUID_TRAIT() [6/12]

◆ MAKE_GUID_TRAIT() [7/12]

◆ MAKE_GUID_TRAIT() [8/12]

◆ MAKE_GUID_TRAIT() [9/12]

◆ MAKE_GUID_TRAIT() [10/12]

◆ MAKE_GUID_TRAIT() [11/12]

◆ MAKE_GUID_TRAIT() [12/12]

◆ operator<<() [1/3]

TC_GAME_API ByteBuffer & operator<< ( ByteBuffer buf,
ObjectGuid const &  guid 
)

Definition at line 136 of file ObjectGuid.cpp.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ operator<<() [2/3]

TC_GAME_API ByteBuffer & operator<< ( ByteBuffer buf,
PackedGuid const &  guid 
)

Definition at line 270 of file ObjectGuid.cpp.

◆ operator<<() [3/3]

TC_GAME_API ByteBuffer & operator<< ( ByteBuffer buf,
PackedGuidWriter const &  guid 
)

Definition at line 154 of file ObjectGuid.cpp.

+ Here is the call graph for this function:

◆ operator>>() [1/2]

TC_GAME_API ByteBuffer & operator>> ( ByteBuffer buf,
ObjectGuid guid 
)

Definition at line 142 of file ObjectGuid.cpp.

+ Here is the call graph for this function:

◆ operator>>() [2/2]

TC_GAME_API ByteBuffer & operator>> ( ByteBuffer buf,
PackedGuidReader const &  guid 
)

Definition at line 160 of file ObjectGuid.cpp.

+ Here is the call graph for this function: