From a7db690b59cca8a9859e28ee13d3d3755ec88a6d Mon Sep 17 00:00:00 2001 From: Jeff Hutchinson Date: Mon, 13 Sep 2021 19:46:21 -0400 Subject: [PATCH] Reimplement object copy failures. --- Engine/source/console/compiledEval.cpp | 7 ++++++- Engine/source/console/console.cpp | 4 ++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/Engine/source/console/compiledEval.cpp b/Engine/source/console/compiledEval.cpp index f33586676..f4c48ef68 100644 --- a/Engine/source/console/compiledEval.cpp +++ b/Engine/source/console/compiledEval.cpp @@ -142,6 +142,7 @@ namespace Con // console variables. extern StringTableEntry gCurrentFile; extern StringTableEntry gCurrentRoot; + extern S32 gObjectCopyFailures; } namespace Con @@ -972,7 +973,11 @@ ConsoleValue CodeBlock::exec(U32 ip, const char* functionName, Namespace* thisNa } else { - Con::errorf(ConsoleLogEntry::General, "%s: Unable to find parent object %s for %s.", getFileLine(ip - 1), objParent, callArgv[1].getString()); + if (Con::gObjectCopyFailures == -1) + Con::errorf(ConsoleLogEntry::General, "%s: Unable to find parent object %s for %s.", getFileLine(ip - 1), objParent, callArgv[1].getString()); + else + ++Con::gObjectCopyFailures; + delete object; currentNewObject = NULL; ip = failJump; diff --git a/Engine/source/console/console.cpp b/Engine/source/console/console.cpp index ab93d554e..643f8cbec 100644 --- a/Engine/source/console/console.cpp +++ b/Engine/source/console/console.cpp @@ -300,6 +300,7 @@ Con::ConsoleInputEvent smConsoleInput; /// StringTableEntry gCurrentFile; StringTableEntry gCurrentRoot; +S32 gObjectCopyFailures = -1; /// @} bool alwaysUseDebugOutput = true; @@ -373,6 +374,9 @@ void init() "@ingroup Console\n"); addVariable( "instantGroup", TypeRealString, &gInstantGroup, "The group that objects will be added to when they are created.\n" "@ingroup Console\n"); + addVariable("Con::objectCopyFailures", TypeS32, &gObjectCopyFailures, "If greater than zero then it counts the number of object creation " + "failures based on a missing copy object and does not report an error..\n" + "@ingroup Console\n"); // Current script file name and root addVariable( "Con::File", TypeString, &gCurrentFile, "The currently executing script file.\n"