From 13ec1d7eef3c8321f3bb4939e173363f0f9a4cab Mon Sep 17 00:00:00 2001 From: fallenoak Date: Thu, 15 Jan 2026 21:04:43 -0600 Subject: [PATCH] feat(object): add HandleObjectOutOfRangePass1 --- src/object/client/CGObject_C.cpp | 4 ++++ src/object/client/CGObject_C.hpp | 8 ++++++++ src/object/client/Util.cpp | 17 +++++++++++++++++ src/object/client/Util.hpp | 3 +++ 4 files changed, 32 insertions(+) diff --git a/src/object/client/CGObject_C.cpp b/src/object/client/CGObject_C.cpp index 31ca0ac..2417717 100644 --- a/src/object/client/CGObject_C.cpp +++ b/src/object/client/CGObject_C.cpp @@ -22,6 +22,10 @@ void CGObject_C::AddWorldObject() { // TODO } +void CGObject_C::Disable() { + // TODO +} + int32_t CGObject_C::IsInReenable() { return this->m_inReenable; } diff --git a/src/object/client/CGObject_C.hpp b/src/object/client/CGObject_C.hpp index e139ef8..9caa2ba 100644 --- a/src/object/client/CGObject_C.hpp +++ b/src/object/client/CGObject_C.hpp @@ -19,6 +19,14 @@ class CGObject_C : public CGObject, public TSHashObjectHandleOutOfRange(type); + + if (object->IsObjectLocked()) { + object->SetDisablePending(true); + + return false; + } + + object->SetDisablePending(false); + object->Disable(); + + return true; +} + 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 49ea67b..0657692 100644 --- a/src/object/client/Util.hpp +++ b/src/object/client/Util.hpp @@ -1,6 +1,7 @@ #ifndef OBJECT_CLIENT_UTIL_HPP #define OBJECT_CLIENT_UTIL_HPP +#include "object/Types.hpp" #include "util/GUID.hpp" #include @@ -11,6 +12,8 @@ CGObject_C* FindActiveObject(WOWGUID guid); CGObject_C* GetUpdateObject(WOWGUID guid, int32_t* reenable); +int32_t HandleObjectOutOfRangePass1(CGObject_C* object, OUT_OF_RANGE_TYPE type); + void InitObject(CGObject_C* object, uint32_t time, CClientObjCreate& objCreate); #endif