From 62aadf911481db3e7049d8391c8927fca998bf36 Mon Sep 17 00:00:00 2001 From: AzaezelX Date: Tue, 29 Apr 2025 16:45:25 -0500 Subject: [PATCH] isobject and obj.delete safties isobject isn't actually one if it's yet to be properlyAdded, or already marked with isRemoved likewise don't try and delete a deleted thing --- Engine/source/console/sim.cpp | 10 +++++++++- Engine/source/console/simObject.cpp | 3 +++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/Engine/source/console/sim.cpp b/Engine/source/console/sim.cpp index 48e3b627f..439f85ea9 100644 --- a/Engine/source/console/sim.cpp +++ b/Engine/source/console/sim.cpp @@ -102,7 +102,15 @@ DefineEngineFunction( isObject, bool, (const char * objectName), ,"isObject(obje if (!String::compare(objectName, "0") || !String::compare(objectName, "")) return false; else - return (Sim::findObject(objectName) != NULL); + { + SimObject* obj= Sim::findObject(objectName); + if (obj) + { + if (!obj->isProperlyAdded() || obj->isRemoved()) + obj = NULL; + } + return obj != NULL; + } } ConsoleDocFragment _spawnObject1( diff --git a/Engine/source/console/simObject.cpp b/Engine/source/console/simObject.cpp index fdbc13d72..1f6e28af5 100644 --- a/Engine/source/console/simObject.cpp +++ b/Engine/source/console/simObject.cpp @@ -3296,6 +3296,9 @@ DefineEngineMethod( SimObject, getGroup, SimGroup*, (),, DefineEngineMethod( SimObject, delete, void, (),, "Delete and remove the object." ) { + if (!object->isProperlyAdded() || object->isRemoved()) + return; + object->deleteObject(); }