diff --git a/src/object/client/CGObject.hpp b/src/object/client/CGObject.hpp index 9e95c9b..8563f7a 100644 --- a/src/object/client/CGObject.hpp +++ b/src/object/client/CGObject.hpp @@ -5,7 +5,11 @@ #include struct CGObjectData { - // TODO + uint64_t m_guid; + OBJECT_TYPE m_type; + int32_t m_entryID; + float m_scale; + uint32_t pad; }; class CGObject { diff --git a/src/object/client/CGObject_C.cpp b/src/object/client/CGObject_C.cpp new file mode 100644 index 0000000..46873e8 --- /dev/null +++ b/src/object/client/CGObject_C.cpp @@ -0,0 +1,42 @@ +#include "object/client/CGObject_C.hpp" + +void CGObject_C::SetTypeID(OBJECT_TYPE_ID typeID) { + this->m_typeID = typeID; + + switch (typeID) { + case ID_OBJECT: + this->m_obj->m_type = TYPE_OBJECT; + break; + + case ID_ITEM: + this->m_obj->m_type = static_cast(TYPE_OBJECT | TYPE_ITEM); + break; + + case ID_CONTAINER: + this->m_obj->m_type = static_cast(TYPE_OBJECT | TYPE_ITEM | TYPE_CONTAINER); + break; + + case ID_UNIT: + this->m_obj->m_type = static_cast(TYPE_OBJECT | TYPE_UNIT); + break; + + case ID_PLAYER: + this->m_obj->m_type = static_cast(TYPE_OBJECT | TYPE_UNIT | TYPE_PLAYER); + break; + + case ID_GAMEOBJECT: + this->m_obj->m_type = static_cast(TYPE_OBJECT | TYPE_GAMEOBJECT); + break; + + case ID_DYNAMICOBJECT: + this->m_obj->m_type = static_cast(TYPE_OBJECT | TYPE_DYNAMICOBJECT); + break; + + case ID_CORPSE: + this->m_obj->m_type = static_cast(TYPE_OBJECT | TYPE_CORPSE); + break; + + default: + break; + } +} diff --git a/src/object/client/CGObject_C.hpp b/src/object/client/CGObject_C.hpp index a1e4623..1c9e22f 100644 --- a/src/object/client/CGObject_C.hpp +++ b/src/object/client/CGObject_C.hpp @@ -2,12 +2,14 @@ #define OBJECT_CLIENT_CG_OBJECT_C_HPP #include "object/client/CGObject.hpp" +#include "object/Types.hpp" #include "util/CHashKeyGUID.hpp" #include class CGObject_C : public CGObject, public TSHashObject { public: - // TODO + // Public member functions + void SetTypeID(OBJECT_TYPE_ID typeID); }; #endif