From 2db0598d0339769d6a2a7ef9f835bc00a6e4f709 Mon Sep 17 00:00:00 2001 From: Uladzislau Nikalayevich Date: Tue, 19 Sep 2023 00:36:36 +0300 Subject: [PATCH] Fix engineFreeModel regression caused by #1802 --- Client/mods/deathmatch/logic/CClientModel.cpp | 3 +++ Client/mods/deathmatch/logic/luadefs/CLuaEngineDefs.cpp | 1 + 2 files changed, 4 insertions(+) diff --git a/Client/mods/deathmatch/logic/CClientModel.cpp b/Client/mods/deathmatch/logic/CClientModel.cpp index b377332fd8..56bd3f566b 100644 --- a/Client/mods/deathmatch/logic/CClientModel.cpp +++ b/Client/mods/deathmatch/logic/CClientModel.cpp @@ -165,6 +165,9 @@ bool CClientModel::DeallocateDFF(CModelInfo* pModelInfo) // Restore DFF/TXD g_pClientGame->GetManager()->GetDFFManager()->RestoreModel(m_iModelID); + // Remove model info + pModelInfo->DeallocateModel(); + return true; } diff --git a/Client/mods/deathmatch/logic/luadefs/CLuaEngineDefs.cpp b/Client/mods/deathmatch/logic/luadefs/CLuaEngineDefs.cpp index 81490bda9f..91ec300b30 100644 --- a/Client/mods/deathmatch/logic/luadefs/CLuaEngineDefs.cpp +++ b/Client/mods/deathmatch/logic/luadefs/CLuaEngineDefs.cpp @@ -854,6 +854,7 @@ int CLuaEngineDefs::EngineRequestModel(lua_State* luaVM) int iModelID = m_pManager->GetModelManager()->GetFirstFreeModelID(); if (iModelID != INVALID_MODEL_ID) { std::shared_ptr pModel = m_pManager->GetModelManager()->Request(m_pManager, iModelID, eModelType); + m_pManager->GetModelManager()->Add(pModel); ushort usParentID = -1;