From 840ad6d385ffb60ff5bd79af585c87719bcee210 Mon Sep 17 00:00:00 2001 From: OTHGMars Date: Fri, 7 Aug 2020 04:40:14 -0400 Subject: [PATCH] queueExec update in-place. Maintains load order for files that are overridden by queueExec. --- .../BaseGame/game/core/utility/scripts/module.cs | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/Templates/BaseGame/game/core/utility/scripts/module.cs b/Templates/BaseGame/game/core/utility/scripts/module.cs index 7d6cc5eed..a87d5856d 100644 --- a/Templates/BaseGame/game/core/utility/scripts/module.cs +++ b/Templates/BaseGame/game/core/utility/scripts/module.cs @@ -222,14 +222,16 @@ function SimSet::queueExec(%scopeSet, %execFilePath, %isExclusive) if ((!%locked && !%isExclusive)&&($reportModuleFileConflicts)) error("found" SPC %execFilePath SPC "duplicate file!"); if (!%locked || (%locked && %isExclusive)) - { - ExecFilesList.erase(%i); + { // Replacing an existing entry, update in-place + ExecFilesList.setKey(%fullPath, %i); + ExecFilesList.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) ExecFilesList.add(%fullPath,%isExclusive); if ($traceModuleCalls) ExecFilesList.echo();