Skip to content

Commit

Permalink
Simplified OBody Writer code from previous commit
Browse files Browse the repository at this point in the history
OBody appears insensitive to mod name capitalization
  • Loading branch information
Piranha91 committed Dec 1, 2023
1 parent 0af6f78 commit ec1df2c
Showing 1 changed file with 2 additions and 19 deletions.
21 changes: 2 additions & 19 deletions SynthEBD/Patcher/OBody Patching/OBodyWriter.cs
Original file line number Diff line number Diff line change
Expand Up @@ -289,17 +289,15 @@ public void WriteNativeAssignmentDictionary()
return;
}

RefreshLoadOrderCaseSensitive();

npcFormIDAssignments.Clear();

var npcsGroupedByModKey = Patcher.BodySlideTracker.GroupBy(x => GetRealModKeyCapitalization(x.Key.ModKey.ToString()), StringComparer.OrdinalIgnoreCase).ToArray();
var npcsGroupedByModKey = Patcher.BodySlideTracker.GroupBy(x => x.Key.ModKey).ToArray();

foreach (var modGroup in npcsGroupedByModKey)
{
Dictionary<string, List<string>> modEntry = new();

npcFormIDAssignments.Add(modGroup.Key, modEntry);
npcFormIDAssignments.Add(modGroup.Key.ToString(), modEntry);

foreach (var entry in modGroup)
{
Expand Down Expand Up @@ -332,19 +330,4 @@ public void WriteNativeAssignmentDictionary()
_logger.LogErrorWithStatusUpdate("Could not write BodySlide assignments to " + destPath, ErrorType.Error);
}
}

private void RefreshLoadOrderCaseSensitive()
{
_loadOrderCaseSensitive = _environmentProvider.LoadOrder.Select(listing => listing.Key).Select(modKey => modKey.ToString()).ToHashSet();
}

private string GetRealModKeyCapitalization(string modKeyStr)
{
string matched = _loadOrderCaseSensitive.Where(x => x.Equals(modKeyStr, StringComparison.OrdinalIgnoreCase)).FirstOrDefault();
if (matched != null)
{
return matched;
}
return modKeyStr;
}
}

0 comments on commit ec1df2c

Please sign in to comment.