mirror of
https://github.com/whoahq/whoa.git
synced 2026-02-01 00:02:45 +03:00
86 lines
2.0 KiB
C++
86 lines
2.0 KiB
C++
#include "object/client/Util.hpp"
|
|
#include "object/client/CClientObjCreate.hpp"
|
|
#include "object/client/CGContainer_C.hpp"
|
|
#include "object/client/CGCorpse_C.hpp"
|
|
#include "object/client/CGDynamicObject_C.hpp"
|
|
#include "object/client/CGGameObject_C.hpp"
|
|
#include "object/client/CGItem_C.hpp"
|
|
#include "object/client/CGObject_C.hpp"
|
|
#include "object/client/CGPlayer_C.hpp"
|
|
#include "object/client/CGUnit_C.hpp"
|
|
#include "object/client/ObjMgr.hpp"
|
|
|
|
CGObject_C* FindActiveObject(WOWGUID guid) {
|
|
return ClntObjMgrGetCurrent()->m_objects.Ptr(guid, CHashKeyGUID(guid));
|
|
}
|
|
|
|
CGObject_C* GetUpdateObject(WOWGUID guid, int32_t* reenabled) {
|
|
*reenabled = false;
|
|
|
|
auto activeObject = FindActiveObject(guid);
|
|
|
|
if (activeObject) {
|
|
activeObject->SetDisablePending(false);
|
|
|
|
return activeObject;
|
|
}
|
|
|
|
// TODO handle reenabling object
|
|
return nullptr;
|
|
}
|
|
|
|
void InitObject(CGObject_C* object, uint32_t time, CClientObjCreate& objCreate) {
|
|
switch (object->m_typeID) {
|
|
case ID_ITEM: {
|
|
new (object) CGItem_C(time, objCreate);
|
|
|
|
break;
|
|
}
|
|
|
|
case ID_CONTAINER: {
|
|
new (object) CGContainer_C(time, objCreate);
|
|
|
|
break;
|
|
}
|
|
|
|
case ID_UNIT: {
|
|
new (object) CGUnit_C(time, objCreate);
|
|
object->AddWorldObject();
|
|
|
|
break;
|
|
}
|
|
|
|
case ID_PLAYER: {
|
|
new (object) CGPlayer_C(time, objCreate);
|
|
object->AddWorldObject();
|
|
|
|
break;
|
|
}
|
|
|
|
case ID_GAMEOBJECT: {
|
|
new (object) CGGameObject_C(time, objCreate);
|
|
object->AddWorldObject();
|
|
|
|
break;
|
|
}
|
|
|
|
case ID_DYNAMICOBJECT: {
|
|
new (object) CGDynamicObject_C(time, objCreate);
|
|
object->AddWorldObject();
|
|
|
|
break;
|
|
}
|
|
|
|
case ID_CORPSE: {
|
|
new (object) CGCorpse_C(time, objCreate);
|
|
object->AddWorldObject();
|
|
|
|
break;
|
|
}
|
|
|
|
default: {
|
|
break;
|
|
}
|
|
}
|
|
}
|