From 319d8e6854fd5b6a3120144e99e0eef1353d41a1 Mon Sep 17 00:00:00 2001 From: krzys-h Date: Wed, 9 May 2018 23:12:26 +0200 Subject: [PATCH] Fix delete() not returning sometimes, closes #1067 --- src/object/object_manager.cpp | 2 +- src/script/scriptfunc.cpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/object/object_manager.cpp b/src/object/object_manager.cpp index c8d8cef7..0b4daed9 100644 --- a/src/object/object_manager.cpp +++ b/src/object/object_manager.cpp @@ -71,7 +71,7 @@ bool CObjectManager::DeleteObject(CObject* instance) it->second.reset(); m_shouldCleanRemovedObjects = true; return true; - } + } else assert(false); return false; } diff --git a/src/script/scriptfunc.cpp b/src/script/scriptfunc.cpp index 7721e2b2..20a85bb2 100644 --- a/src/script/scriptfunc.cpp +++ b/src/script/scriptfunc.cpp @@ -657,7 +657,7 @@ bool CScriptFunctions::rDelete(CBotVar* var, CBotVar* result, int& exception, vo } CObject* obj = CObjectManager::GetInstancePointer()->GetObjectById(rank); - if ( obj == nullptr ) + if ( obj == nullptr || (obj->Implements(ObjectInterfaceType::Old) && dynamic_cast(obj)->IsDying()) ) { return true; }