From 4dd9921a4f140ae6d4298d25ac2a779980456a98 Mon Sep 17 00:00:00 2001 From: fallenoak Date: Tue, 13 Jan 2026 15:52:50 -0600 Subject: [PATCH] feat(object): add ClntObjMgrLinkInNewObject --- src/object/client/CGObject_C.cpp | 5 +++++ src/object/client/CGObject_C.hpp | 1 + src/object/client/ClntObjMgr.hpp | 4 ++++ src/object/client/ObjMgr.cpp | 5 +++++ src/object/client/ObjMgr.hpp | 2 ++ 5 files changed, 17 insertions(+) diff --git a/src/object/client/CGObject_C.cpp b/src/object/client/CGObject_C.cpp index f9be5e9..d9b11b8 100644 --- a/src/object/client/CGObject_C.cpp +++ b/src/object/client/CGObject_C.cpp @@ -1,7 +1,12 @@ #include "object/client/CGObject_C.hpp" +#include "object/client/ObjMgr.hpp" CGObject_C::CGObject_C(uint32_t time, CClientObjCreate& objCreate) { // TODO + + ClntObjMgrLinkInNewObject(this); + + // TODO } void CGObject_C::AddWorldObject() { diff --git a/src/object/client/CGObject_C.hpp b/src/object/client/CGObject_C.hpp index b63cc38..e0b8520 100644 --- a/src/object/client/CGObject_C.hpp +++ b/src/object/client/CGObject_C.hpp @@ -10,6 +10,7 @@ class CGObject_C : public CGObject, public TSHashObject { public: // Public member functions + CGObject_C() = default; CGObject_C(uint32_t time, CClientObjCreate& objCreate); void AddWorldObject(); void SetBlock(uint32_t block, uint32_t value); diff --git a/src/object/client/ClntObjMgr.hpp b/src/object/client/ClntObjMgr.hpp index 80793be..51cd561 100644 --- a/src/object/client/ClntObjMgr.hpp +++ b/src/object/client/ClntObjMgr.hpp @@ -1,6 +1,8 @@ #ifndef OBJECT_CLIENT_CLNT_OBJ_MGR_HPP #define OBJECT_CLIENT_CLNT_OBJ_MGR_HPP +#include "object/client/CGObject_C.hpp" +#include #include class ClientConnection; @@ -8,6 +10,8 @@ class ClientConnection; class ClntObjMgr { public: // Member variables + TSHashTable m_objects; + // TODO WOWGUID m_activePlayer = 0; uint32_t m_mapID = 0; ClientConnection* m_net = nullptr; diff --git a/src/object/client/ObjMgr.cpp b/src/object/client/ObjMgr.cpp index 440366c..d20711a 100644 --- a/src/object/client/ObjMgr.cpp +++ b/src/object/client/ObjMgr.cpp @@ -138,6 +138,11 @@ void ClntObjMgrInitializeStd(uint32_t mapID) { mgr->m_mapID = mapID; } +void ClntObjMgrLinkInNewObject(CGObject_C* object) { + CHashKeyGUID key(object->m_obj->m_guid); + s_curMgr->m_objects.Insert(object, object->m_obj->m_guid, key); +} + void ClntObjMgrPop() { if (!s_savMgr) { return; diff --git a/src/object/client/ObjMgr.hpp b/src/object/client/ObjMgr.hpp index 295f5e6..5d5b0a1 100644 --- a/src/object/client/ObjMgr.hpp +++ b/src/object/client/ObjMgr.hpp @@ -18,6 +18,8 @@ void ClntObjMgrInitializeShared(); void ClntObjMgrInitializeStd(uint32_t mapID); +void ClntObjMgrLinkInNewObject(CGObject_C* object); + void ClntObjMgrPop(); void ClntObjMgrPush(ClntObjMgr* mgr);