diff --git a/Templates/BaseGame/game/core/utility/scripts/module.cs b/Templates/BaseGame/game/core/utility/scripts/module.cs index a87d5856d..54cd33b2e 100644 --- a/Templates/BaseGame/game/core/utility/scripts/module.cs +++ b/Templates/BaseGame/game/core/utility/scripts/module.cs @@ -124,14 +124,16 @@ function SimSet::registerDatablock(%scopeSet, %datablockFilePath, %isExclusive) if ((!%locked && !%isExclusive)&&($reportModuleFileConflicts)) error("found" SPC %datablockFilePath SPC "duplicate file!"); if (!%locked || (%locked && %isExclusive)) - { - DatablockFilesList.erase(%i); + { // Replacing an existing entry, update in-place + DatablockFilesList.setKey(%fullPath, %i); + DatablockFilesList.setValue(%isExclusive, %i); + %locked = true; //Done, but don't return and bypass trace logging below } + break; } } - //if we're not locked, or we are exclusive, go ahead and add it to the pile - //(ensures exclusives get re-added after that erasure) - if (!%locked || %isExclusive) + //if we're not locked, go ahead and add it to the pile + if (!%locked) DatablockFilesList.add(%fullPath,%isExclusive); if ($traceModuleCalls) DatablockFilesList.echo();