Reimplement object copy failures.

This commit is contained in:
Jeff Hutchinson 2021-09-13 19:46:21 -04:00
parent 4effefce91
commit a7db690b59
2 changed files with 10 additions and 1 deletions

View file

@ -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;

View file

@ -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"