diff options
| author | Shauren <shauren.trinity@gmail.com> | 2014-10-27 12:03:35 +0100 |
|---|---|---|
| committer | Shauren <shauren.trinity@gmail.com> | 2014-10-27 12:03:35 +0100 |
| commit | 7afab9f783fff331e9c99d85384f39029b35d2fa (patch) | |
| tree | 1b7683d3773a31639c8e93576557a44e8f592dce /src/server/game/Entities/Object | |
| parent | 8b75b7e638676fea2d7c2c3a43e1ecb0f6a099d9 (diff) | |
Core/Entities: Updated HighGuid values
Diffstat (limited to 'src/server/game/Entities/Object')
| -rw-r--r-- | src/server/game/Entities/Object/Object.cpp | 20 | ||||
| -rw-r--r-- | src/server/game/Entities/Object/ObjectGuid.cpp | 47 | ||||
| -rw-r--r-- | src/server/game/Entities/Object/ObjectGuid.h | 151 |
3 files changed, 119 insertions, 99 deletions
diff --git a/src/server/game/Entities/Object/Object.cpp b/src/server/game/Entities/Object/Object.cpp index 6b418d10897..c99a5a3cde0 100644 --- a/src/server/game/Entities/Object/Object.cpp +++ b/src/server/game/Entities/Object/Object.cpp @@ -186,15 +186,15 @@ void Object::BuildCreateUpdateBlockForPlayer(UpdateData* data, Player* target) c switch (GetGUID().GetHigh()) { - case HIGHGUID_PLAYER: - case HIGHGUID_PET: - case HIGHGUID_CORPSE: - case HIGHGUID_DYNAMICOBJECT: - case HIGHGUID_AREATRIGGER: + case HighGuid::Player: + case HighGuid::Pet: + case HighGuid::Corpse: + case HighGuid::DynamicObject: + case HighGuid::AreaTrigger: updateType = UPDATETYPE_CREATE_OBJECT2; break; - case HIGHGUID_UNIT: - case HIGHGUID_VEHICLE: + case HighGuid::Creature: + case HighGuid::Vehicle: { if (TempSummon const* summon = ToUnit()->ToTempSummon()) if (summon->GetSummonerGUID().IsPlayer()) @@ -202,7 +202,7 @@ void Object::BuildCreateUpdateBlockForPlayer(UpdateData* data, Player* target) c break; } - case HIGHGUID_GAMEOBJECT: + case HighGuid::GameObject: { if (ToGameObject()->GetOwnerGUID().IsPlayer()) updateType = UPDATETYPE_CREATE_OBJECT2; @@ -2401,7 +2401,7 @@ TempSummon* Map::SummonCreature(uint32 entry, Position const& pos, SummonPropert break; } - if (!summon->Create(sObjectMgr->GetGenerator<HIGHGUID_UNIT>()->Generate(), this, 0, entry, pos.GetPositionX(), pos.GetPositionY(), pos.GetPositionZ(), pos.GetOrientation(), nullptr, vehId)) + if (!summon->Create(sObjectMgr->GetGenerator<HighGuid::Creature>()->Generate(), this, 0, entry, pos.GetPositionX(), pos.GetPositionY(), pos.GetPositionZ(), pos.GetOrientation(), nullptr, vehId)) { delete summon; return NULL; @@ -2499,7 +2499,7 @@ GameObject* WorldObject::SummonGameObject(uint32 entry, float x, float y, float Map* map = GetMap(); GameObject* go = new GameObject(); - if (!go->Create(sObjectMgr->GetGenerator<HIGHGUID_GAMEOBJECT>()->Generate(), entry, map, GetPhaseMask(), x, y, z, ang, rotation0, rotation1, rotation2, rotation3, 100, GO_STATE_READY)) + if (!go->Create(sObjectMgr->GetGenerator<HighGuid::GameObject>()->Generate(), entry, map, GetPhaseMask(), x, y, z, ang, rotation0, rotation1, rotation2, rotation3, 100, GO_STATE_READY)) { delete go; return NULL; diff --git a/src/server/game/Entities/Object/ObjectGuid.cpp b/src/server/game/Entities/Object/ObjectGuid.cpp index fd134388a2d..41ea166a6d5 100644 --- a/src/server/game/Entities/Object/ObjectGuid.cpp +++ b/src/server/game/Entities/Object/ObjectGuid.cpp @@ -28,21 +28,18 @@ char const* ObjectGuid::GetTypeName(HighGuid high) { switch (high) { - case HIGHGUID_ITEM: return "Item"; - case HIGHGUID_PLAYER: return "Player"; - case HIGHGUID_GAMEOBJECT: return "Gameobject"; - case HIGHGUID_TRANSPORT: return "Transport"; - case HIGHGUID_UNIT: return "Creature"; - case HIGHGUID_PET: return "Pet"; - case HIGHGUID_VEHICLE: return "Vehicle"; - case HIGHGUID_DYNAMICOBJECT: return "DynObject"; - case HIGHGUID_CORPSE: return "Corpse"; - case HIGHGUID_AREATRIGGER: return "AreaTrigger"; - case HIGHGUID_BATTLEGROUND: return "Battleground"; - case HIGHGUID_MO_TRANSPORT: return "MoTransport"; - case HIGHGUID_INSTANCE: return "InstanceID"; - case HIGHGUID_GROUP: return "Group"; - case HIGHGUID_GUILD: return "Guild"; + case HighGuid::Item: return "Item"; + case HighGuid::Player: return "Player"; + case HighGuid::GameObject: return "Gameobject"; + case HighGuid::Creature: return "Creature"; + case HighGuid::Pet: return "Pet"; + case HighGuid::Vehicle: return "Vehicle"; + case HighGuid::DynamicObject: return "DynObject"; + case HighGuid::Corpse: return "Corpse"; + case HighGuid::AreaTrigger: return "AreaTrigger"; + case HighGuid::Transport: return "Transport"; + case HighGuid::Party: return "Party"; + case HighGuid::Guild: return "Guild"; default: return "<unknown>"; } @@ -136,13 +133,13 @@ std::ostream& operator<<(std::ostream& stream, ObjectGuid const& guid) return stream; } -template ObjectGuid::LowType ObjectGuidGenerator<HIGHGUID_PLAYER>::Generate(); -template ObjectGuid::LowType ObjectGuidGenerator<HIGHGUID_UNIT>::Generate(); -template ObjectGuid::LowType ObjectGuidGenerator<HIGHGUID_PET>::Generate(); -template ObjectGuid::LowType ObjectGuidGenerator<HIGHGUID_VEHICLE>::Generate(); -template ObjectGuid::LowType ObjectGuidGenerator<HIGHGUID_ITEM>::Generate(); -template ObjectGuid::LowType ObjectGuidGenerator<HIGHGUID_GAMEOBJECT>::Generate(); -template ObjectGuid::LowType ObjectGuidGenerator<HIGHGUID_DYNAMICOBJECT>::Generate(); -template ObjectGuid::LowType ObjectGuidGenerator<HIGHGUID_CORPSE>::Generate(); -template ObjectGuid::LowType ObjectGuidGenerator<HIGHGUID_AREATRIGGER>::Generate(); -template ObjectGuid::LowType ObjectGuidGenerator<HIGHGUID_MO_TRANSPORT>::Generate(); +template ObjectGuid::LowType ObjectGuidGenerator<HighGuid::Player>::Generate(); +template ObjectGuid::LowType ObjectGuidGenerator<HighGuid::Creature>::Generate(); +template ObjectGuid::LowType ObjectGuidGenerator<HighGuid::Pet>::Generate(); +template ObjectGuid::LowType ObjectGuidGenerator<HighGuid::Vehicle>::Generate(); +template ObjectGuid::LowType ObjectGuidGenerator<HighGuid::Item>::Generate(); +template ObjectGuid::LowType ObjectGuidGenerator<HighGuid::GameObject>::Generate(); +template ObjectGuid::LowType ObjectGuidGenerator<HighGuid::DynamicObject>::Generate(); +template ObjectGuid::LowType ObjectGuidGenerator<HighGuid::Corpse>::Generate(); +template ObjectGuid::LowType ObjectGuidGenerator<HighGuid::AreaTrigger>::Generate(); +template ObjectGuid::LowType ObjectGuidGenerator<HighGuid::Transport>::Generate(); diff --git a/src/server/game/Entities/Object/ObjectGuid.h b/src/server/game/Entities/Object/ObjectGuid.h index d5bfa7ee2f8..7a3c05c3b37 100644 --- a/src/server/game/Entities/Object/ObjectGuid.h +++ b/src/server/game/Entities/Object/ObjectGuid.h @@ -35,10 +35,12 @@ enum TypeID TYPEID_GAMEOBJECT = 5, TYPEID_DYNAMICOBJECT = 6, TYPEID_CORPSE = 7, - TYPEID_AREATRIGGER = 8 + TYPEID_AREATRIGGER = 8, + TYPEID_SCENEOBJECT = 9, + TYPEID_CONVERSATION = 10 }; -#define NUM_CLIENT_OBJECT_TYPES 9 +#define NUM_CLIENT_OBJECT_TYPES 11 enum TypeMask { @@ -54,24 +56,52 @@ enum TypeMask TYPEMASK_SEER = TYPEMASK_PLAYER | TYPEMASK_UNIT | TYPEMASK_DYNAMICOBJECT }; -enum HighGuid +enum class HighGuid { - HIGHGUID_ITEM = 0x400, // blizz 4000 - HIGHGUID_CONTAINER = 0x400, // blizz 4000 - HIGHGUID_PLAYER = 0x000, // blizz 0000 - HIGHGUID_GAMEOBJECT = 0xF11, // blizz F110 - HIGHGUID_TRANSPORT = 0xF12, // blizz F120 (for GAMEOBJECT_TYPE_TRANSPORT) - HIGHGUID_UNIT = 0xF13, // blizz F130 - HIGHGUID_PET = 0xF14, // blizz F140 - HIGHGUID_VEHICLE = 0xF15, // blizz F550 - HIGHGUID_DYNAMICOBJECT = 0xF10, // blizz F100 - HIGHGUID_CORPSE = 0xF101, // blizz F100 - HIGHGUID_AREATRIGGER = 0xF102, - HIGHGUID_BATTLEGROUND = 0x1F1, - HIGHGUID_MO_TRANSPORT = 0x1FC, // blizz 1FC0 (for GAMEOBJECT_TYPE_MAP_OBJ_TRANSPORT) - HIGHGUID_INSTANCE = 0x1F4, // blizz 1F40 - HIGHGUID_GROUP = 0x1F5, - HIGHGUID_GUILD = 0x1FF + Null = 0, + Uniq = 1, + Player = 2, + Item = 3, + StaticDoor = 4, + Transport = 5, + Conversation = 6, + Creature = 7, + Vehicle = 8, + Pet = 9, + GameObject = 10, + DynamicObject = 11, + AreaTrigger = 12, + Corpse = 13, + LootObject = 14, + SceneObject = 15, + Scenario = 16, + AIGroup = 17, + DynamicDoor = 18, + ClientActor = 19, + Vignette = 20, + CallForHelp = 21, + AIResource = 22, + AILock = 23, + AILockTicket = 24, + ChatChannel = 25, + Party = 26, + Guild = 27, + WowAccount = 28, + BNetAccount = 29, + GMTask = 30, + MobileSession = 31, + RaidGroup = 32, + Spell = 33, + Mail = 34, + WebObj = 35, + LFGObject = 36, + LFGList = 37, + UserRouter = 38, + PVPQueueGroup = 39, + UserClient = 40, + PetBattle = 41, + UniqueUserClient = 42, + BattlePet = 43 }; class ObjectGuid; @@ -97,8 +127,8 @@ class ObjectGuid typedef uint64 LowType; ObjectGuid() : _low(0), _high(0) { } - ObjectGuid(HighGuid hi, uint32 entry, LowType counter) : _low(counter ? uint64(counter) | (uint64(entry) << 32) | (uint64(hi) << ((hi == HIGHGUID_CORPSE || hi == HIGHGUID_AREATRIGGER) ? 48 : 52)) : 0), _high(0) { } - ObjectGuid(HighGuid hi, LowType counter) : _low(counter ? uint64(counter) | (uint64(hi) << ((hi == HIGHGUID_CORPSE || hi == HIGHGUID_AREATRIGGER) ? 48 : 52)) : 0), _high(0) { } + ObjectGuid(HighGuid hi, uint32 entry, LowType counter) : _low(counter ? uint64(counter) | (uint64(entry) << 32) | (uint64(hi) << ((hi == HighGuid::Corpse || hi == HighGuid::AreaTrigger) ? 48 : 52)) : 0), _high(0) { } + ObjectGuid(HighGuid hi, LowType counter) : _low(counter ? uint64(counter) | (uint64(hi) << ((hi == HighGuid::Corpse || hi == HighGuid::AreaTrigger) ? 48 : 52)) : 0), _high(0) { } ObjectGuid(ObjectGuid const&) = default; PackedGuidReader ReadAsPacked() { return PackedGuidReader(*this); } @@ -113,7 +143,7 @@ class ObjectGuid HighGuid GetHigh() const { uint32 temp = ((uint64(_low) >> 48) & 0x0000FFFF); - return HighGuid((temp == HIGHGUID_CORPSE || temp == HIGHGUID_AREATRIGGER) ? temp : ((temp >> 4) & 0x00000FFF)); + return HighGuid((temp == uint32(HighGuid::Corpse) || temp == uint32(HighGuid::AreaTrigger)) ? temp : ((temp >> 4) & 0x00000FFF)); } uint32 GetEntry() const { return HasEntry() ? uint32((_low >> 32) & UI64LIT(0x00000000000FFFFF)) : 0; } LowType GetCounter() const @@ -141,47 +171,42 @@ class ObjectGuid } bool IsEmpty() const { return _low == 0 && _high == 0; } - bool IsCreature() const { return GetHigh() == HIGHGUID_UNIT; } - bool IsPet() const { return GetHigh() == HIGHGUID_PET; } - bool IsVehicle() const { return GetHigh() == HIGHGUID_VEHICLE; } + bool IsCreature() const { return GetHigh() == HighGuid::Creature; } + bool IsPet() const { return GetHigh() == HighGuid::Pet; } + bool IsVehicle() const { return GetHigh() == HighGuid::Vehicle; } bool IsCreatureOrPet() const { return IsCreature() || IsPet(); } bool IsCreatureOrVehicle() const { return IsCreature() || IsVehicle(); } bool IsAnyTypeCreature() const { return IsCreature() || IsPet() || IsVehicle(); } - bool IsPlayer() const { return !IsEmpty() && GetHigh() == HIGHGUID_PLAYER; } + bool IsPlayer() const { return !IsEmpty() && GetHigh() == HighGuid::Player; } bool IsUnit() const { return IsAnyTypeCreature() || IsPlayer(); } - bool IsItem() const { return GetHigh() == HIGHGUID_ITEM; } - bool IsGameObject() const { return GetHigh() == HIGHGUID_GAMEOBJECT; } - bool IsDynamicObject() const { return GetHigh() == HIGHGUID_DYNAMICOBJECT; } - bool IsCorpse() const { return GetHigh() == HIGHGUID_CORPSE; } - bool IsAreaTrigger() const { return GetHigh() == HIGHGUID_AREATRIGGER; } - bool IsBattleground() const { return GetHigh() == HIGHGUID_BATTLEGROUND; } - bool IsTransport() const { return GetHigh() == HIGHGUID_TRANSPORT; } - bool IsMOTransport() const { return GetHigh() == HIGHGUID_MO_TRANSPORT; } - bool IsAnyTypeGameObject() const { return IsGameObject() || IsTransport() || IsMOTransport(); } - bool IsInstance() const { return GetHigh() == HIGHGUID_INSTANCE; } - bool IsGroup() const { return GetHigh() == HIGHGUID_GROUP; } - bool IsGuild() const { return GetHigh() == HIGHGUID_GUILD; } + bool IsItem() const { return GetHigh() == HighGuid::Item; } + bool IsGameObject() const { return GetHigh() == HighGuid::GameObject; } + bool IsDynamicObject() const { return GetHigh() == HighGuid::DynamicObject; } + bool IsCorpse() const { return GetHigh() == HighGuid::Corpse; } + bool IsAreaTrigger() const { return GetHigh() == HighGuid::AreaTrigger; } + bool IsMOTransport() const { return GetHigh() == HighGuid::Transport; } + bool IsAnyTypeGameObject() const { return IsGameObject() || IsMOTransport(); } + bool IsParty() const { return GetHigh() == HighGuid::Party; } + bool IsGuild() const { return GetHigh() == HighGuid::Guild; } static TypeID GetTypeId(HighGuid high) { switch (high) { - case HIGHGUID_ITEM: return TYPEID_ITEM; + case HighGuid::Item: return TYPEID_ITEM; //case HIGHGUID_CONTAINER: return TYPEID_CONTAINER; HIGHGUID_CONTAINER==HIGHGUID_ITEM currently - case HIGHGUID_UNIT: return TYPEID_UNIT; - case HIGHGUID_PET: return TYPEID_UNIT; - case HIGHGUID_PLAYER: return TYPEID_PLAYER; - case HIGHGUID_GAMEOBJECT: return TYPEID_GAMEOBJECT; - case HIGHGUID_DYNAMICOBJECT: return TYPEID_DYNAMICOBJECT; - case HIGHGUID_CORPSE: return TYPEID_CORPSE; - case HIGHGUID_AREATRIGGER: return TYPEID_AREATRIGGER; - case HIGHGUID_MO_TRANSPORT: return TYPEID_GAMEOBJECT; - case HIGHGUID_VEHICLE: return TYPEID_UNIT; + case HighGuid::Creature: return TYPEID_UNIT; + case HighGuid::Pet: return TYPEID_UNIT; + case HighGuid::Player: return TYPEID_PLAYER; + case HighGuid::GameObject: return TYPEID_GAMEOBJECT; + case HighGuid::DynamicObject: return TYPEID_DYNAMICOBJECT; + case HighGuid::Corpse: return TYPEID_CORPSE; + case HighGuid::AreaTrigger: return TYPEID_AREATRIGGER; + case HighGuid::Transport: return TYPEID_GAMEOBJECT; + case HighGuid::Vehicle: return TYPEID_UNIT; // unknown - case HIGHGUID_INSTANCE: - case HIGHGUID_BATTLEGROUND: - case HIGHGUID_GROUP: - case HIGHGUID_GUILD: + case HighGuid::Party: + case HighGuid::Guild: default: return TYPEID_OBJECT; } } @@ -210,19 +235,17 @@ class ObjectGuid { switch (high) { - case HIGHGUID_ITEM: - case HIGHGUID_PLAYER: - case HIGHGUID_DYNAMICOBJECT: - case HIGHGUID_CORPSE: - case HIGHGUID_MO_TRANSPORT: - case HIGHGUID_INSTANCE: - case HIGHGUID_GROUP: + case HighGuid::Item: + case HighGuid::Player: + case HighGuid::DynamicObject: + case HighGuid::Corpse: + case HighGuid::Transport: + case HighGuid::Party: return false; - case HIGHGUID_GAMEOBJECT: - case HIGHGUID_TRANSPORT: - case HIGHGUID_UNIT: - case HIGHGUID_PET: - case HIGHGUID_VEHICLE: + case HighGuid::GameObject: + case HighGuid::Creature: + case HighGuid::Pet: + case HighGuid::Vehicle: default: return true; } |
