diff options
| author | Shauren <shauren.trinity@gmail.com> | 2019-07-21 17:12:34 +0200 |
|---|---|---|
| committer | Shauren <shauren.trinity@gmail.com> | 2019-07-21 17:12:34 +0200 |
| commit | ff334ae707eeebacc6d5c4fd26df71e4eb4d732a (patch) | |
| tree | a595444cbdbc8107431308555a862dead54d535d /src/server/game/Entities | |
| parent | 3058d8c5ab50aa648a028fa38e64e1b72ae9305a (diff) | |
Core/Conditions: Reimplemented CONDITION_OBJECT_ENTRY_GUID and CONDITION_TYPE_MASK under new values to allow easier porting conditions between branches. Old data is dynamically converted during startup
Diffstat (limited to 'src/server/game/Entities')
| -rw-r--r-- | src/server/game/Entities/Object/ObjectGuid.h | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/src/server/game/Entities/Object/ObjectGuid.h b/src/server/game/Entities/Object/ObjectGuid.h index 5ada306310d..d299c7d1e1d 100644 --- a/src/server/game/Entities/Object/ObjectGuid.h +++ b/src/server/game/Entities/Object/ObjectGuid.h @@ -399,4 +399,67 @@ namespace std }; } +namespace Trinity +{ + namespace Legacy + { + enum class TypeID + { + Object = 0, + Item = 1, + Container = 2, + Unit = 3, + Player = 4, + GameObject = 5, + DynamicObject = 6, + Corpse = 7, + AreaTrigger = 8, + SceneObject = 9, + Conversation = 10, + Max + }; + + constexpr inline ::TypeID ConvertLegacyTypeID(TypeID legacyTypeID) + { + switch (legacyTypeID) + { + case TypeID::Object: + return TYPEID_OBJECT; + case TypeID::Item: + return TYPEID_ITEM; + case TypeID::Container: + return TYPEID_CONTAINER; + case TypeID::Unit: + return TYPEID_UNIT; + case TypeID::Player: + return TYPEID_PLAYER; + case TypeID::GameObject: + return TYPEID_GAMEOBJECT; + case TypeID::DynamicObject: + return TYPEID_DYNAMICOBJECT; + case TypeID::Corpse: + return TYPEID_CORPSE; + case TypeID::AreaTrigger: + return TYPEID_AREATRIGGER; + case TypeID::SceneObject: + return TYPEID_SCENEOBJECT; + case TypeID::Conversation: + return TYPEID_CONVERSATION; + default: + return TYPEID_OBJECT; + } + } + + constexpr inline TypeMask ConvertLegacyTypeMask(uint32 legacyTypeMask) + { + uint32 typeMask = 0; + for (TypeID i = TypeID::Object; i < TypeID::Max; i = TypeID(uint32(i) + 1)) + if (legacyTypeMask & (1 << uint32(i))) + typeMask |= 1u << ConvertLegacyTypeID(i); + + return TypeMask(typeMask); + } + } +} + #endif // ObjectGuid_h__ |
