From 2bb8da6971833818528c8579837a07b66f997ca7 Mon Sep 17 00:00:00 2001 From: fallenoak Date: Wed, 14 Jan 2026 23:37:40 -0600 Subject: [PATCH] feat(object): add ClntObjMgrObjectPtr --- src/object/client/ObjMgr.cpp | 19 +++++++++++++++++++ src/object/client/ObjMgr.hpp | 2 ++ 2 files changed, 21 insertions(+) diff --git a/src/object/client/ObjMgr.cpp b/src/object/client/ObjMgr.cpp index d20711a..cd9d5ac 100644 --- a/src/object/client/ObjMgr.cpp +++ b/src/object/client/ObjMgr.cpp @@ -11,6 +11,7 @@ #include "object/client/CGPlayer_C.hpp" #include "object/client/CGUnit_C.hpp" #include "object/client/MessageHandlers.hpp" +#include "object/client/Util.hpp" #include "util/Unimplemented.hpp" #include #include @@ -143,6 +144,24 @@ void ClntObjMgrLinkInNewObject(CGObject_C* object) { s_curMgr->m_objects.Insert(object, object->m_obj->m_guid, key); } +CGObject_C* ClntObjMgrObjectPtr(WOWGUID guid, OBJECT_TYPE type) { + if (!s_curMgr || !guid) { + return nullptr; + } + + auto object = FindActiveObject(guid); + + if (!object) { + return nullptr; + } + + if (!(object->m_obj->m_type & type)) { + return nullptr; + } + + return object; +} + void ClntObjMgrPop() { if (!s_savMgr) { return; diff --git a/src/object/client/ObjMgr.hpp b/src/object/client/ObjMgr.hpp index 5d5b0a1..0610b7c 100644 --- a/src/object/client/ObjMgr.hpp +++ b/src/object/client/ObjMgr.hpp @@ -20,6 +20,8 @@ void ClntObjMgrInitializeStd(uint32_t mapID); void ClntObjMgrLinkInNewObject(CGObject_C* object); +CGObject_C* ClntObjMgrObjectPtr(WOWGUID guid, OBJECT_TYPE type); + void ClntObjMgrPop(); void ClntObjMgrPush(ClntObjMgr* mgr);