feat(object): implement ClntObjMgrFreeObject
Some checks are pending
Push / ${{ matrix.build.system_name }} / ${{ matrix.build.build_type }} / ${{ matrix.build.compiler_name }} (map[build_type:Release cc:cl compiler_name:MSVC cxx:cl os:windows-latest system_name:Windows test_path:WhoaTest]) (push) Waiting to run
Push / ${{ matrix.build.system_name }} / ${{ matrix.build.build_type }} / ${{ matrix.build.compiler_name }} (map[build_type:Release cc:clang compiler_name:Clang cxx:clang++ os:macos-latest system_name:macOS test_path:WhoaTest]) (push) Waiting to run
Push / ${{ matrix.build.system_name }} / ${{ matrix.build.build_type }} / ${{ matrix.build.compiler_name }} (map[build_type:Release cc:gcc compiler_name:GCC cxx:g++ os:ubuntu-latest system_name:Linux test_path:WhoaTest]) (push) Waiting to run

This commit is contained in:
fallenoak 2026-01-18 23:00:59 -06:00
parent 305849b164
commit 5a8fb5e2d3
No known key found for this signature in database
GPG Key ID: 7628F8E61AEA070D

View File

@ -92,7 +92,33 @@ CGObject_C* ClntObjMgrAllocObject(OBJECT_TYPE_ID typeID, WOWGUID guid) {
}
void ClntObjMgrFreeObject(CGObject_C* object) {
// TODO
auto playerGUID = ClntObjMgrGetActivePlayer();
auto isActivePlayer = object->m_obj->m_guid == playerGUID;
switch (object->m_obj->m_type) {
case TYPE_OBJECT:
case HIER_TYPE_ITEM:
case HIER_TYPE_CONTAINER:
case HIER_TYPE_UNIT:
case HIER_TYPE_PLAYER:
case HIER_TYPE_GAMEOBJECT:
case HIER_TYPE_DYNAMICOBJECT:
case HIER_TYPE_CORPSE: {
object->~CGObject_C();
break;
}
default: {
break;
}
}
if (isActivePlayer) {
STORM_FREE(object);
} else {
ObjectFree(s_objHeapId[object->m_typeID], object->m_memHandle);
}
}
WOWGUID ClntObjMgrGetActivePlayer() {