From cd3585ca420161d1ba2bfcfb5199ed22409e4504 Mon Sep 17 00:00:00 2001 From: fallenoak Date: Thu, 15 Jan 2026 21:24:45 -0600 Subject: [PATCH] feat(object): add HandleObjectOutOfRangePass2 --- src/object/client/Util.cpp | 14 ++++++++++++++ src/object/client/Util.hpp | 2 ++ 2 files changed, 16 insertions(+) diff --git a/src/object/client/Util.cpp b/src/object/client/Util.cpp index 02e4e40..619b298 100644 --- a/src/object/client/Util.cpp +++ b/src/object/client/Util.cpp @@ -73,6 +73,20 @@ int32_t HandleObjectOutOfRangePass1(CGObject_C* object, OUT_OF_RANGE_TYPE type) return true; } +void HandleObjectOutOfRangePass2(CGObject_C* object) { + // TODO ClearObjectMirrorHandlers(object); + + ClntObjMgrGetCurrent()->m_objects.Unlink(object); + + if (ClntObjMgrGetCurrent()->m_visibleObjects.IsLinked(object)) { + ClntObjMgrGetCurrent()->m_visibleObjects.UnlinkNode(object); + } + + ClntObjMgrGetCurrent()->m_lazyCleanupObjects.Insert(object, object->m_hashval, CHashKeyGUID(object->m_key)); + + // TODO link to type specific (disabled?) list in ClntObjMgrGetCurrent() +} + void InitObject(CGObject_C* object, uint32_t time, CClientObjCreate& objCreate) { switch (object->m_typeID) { case ID_ITEM: { diff --git a/src/object/client/Util.hpp b/src/object/client/Util.hpp index 0657692..e425f83 100644 --- a/src/object/client/Util.hpp +++ b/src/object/client/Util.hpp @@ -14,6 +14,8 @@ CGObject_C* GetUpdateObject(WOWGUID guid, int32_t* reenable); int32_t HandleObjectOutOfRangePass1(CGObject_C* object, OUT_OF_RANGE_TYPE type); +void HandleObjectOutOfRangePass2(CGObject_C* object); + void InitObject(CGObject_C* object, uint32_t time, CClientObjCreate& objCreate); #endif