aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Entities
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2019-07-21 17:12:34 +0200
committerShauren <shauren.trinity@gmail.com>2019-07-21 17:12:34 +0200
commitff334ae707eeebacc6d5c4fd26df71e4eb4d732a (patch)
treea595444cbdbc8107431308555a862dead54d535d /src/server/game/Entities
parent3058d8c5ab50aa648a028fa38e64e1b72ae9305a (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.h63
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__