diff --git a/src/javascripts/Services/merge/relinker.js b/src/javascripts/Services/merge/relinker.js index 6ee537cc..2a0e241d 100644 --- a/src/javascripts/Services/merge/relinker.js +++ b/src/javascripts/Services/merge/relinker.js @@ -56,9 +56,10 @@ ngapp.service('relinker', function(scriptsCache, bsaHelpers, pexService, setting if (methodName !== 'GetFormFromFile') return; let filename = resolveString(script, n.arguments[5]); log(`Found GetFormFromFile call targetting ${filename}`, true); - if (!fidMap.hasOwnProperty(filename)) return; + let mapping = cUtils.findValueInMapByLoweredKey(fidMap, filename); + if (!mapping) return; let oldFormId = xelib.Hex(n.arguments[4].data, 6), - newFormId = fidMap[filename][oldFormId]; + newFormId = mapping[oldFormId]; if (!newFormId) return log(`Form ID ${oldFormId} not renumbered`); log(`Changing Form ID from ${oldFormId} to ${newFormId}`); n.arguments[4].data = parseInt(newFormId, 16); @@ -69,7 +70,7 @@ ngapp.service('relinker', function(scriptsCache, bsaHelpers, pexService, setting let fixStrings = function(script, merges) { let mergedPlugins = getMergedPlugins(merges); script.stringTable.forEach((str, index) => { - let newStr = mergedPlugins[str]; + let newStr = cUtils.findValueInMapByLoweredKey(mergedPlugins, str); if (!newStr) return; log(`Changing string ${index} from ${str} to ${newStr}`); script.stringTable[index] = newStr; diff --git a/src/javascripts/app.js b/src/javascripts/app.js index 144ec7b6..8f5bc7e6 100644 --- a/src/javascripts/app.js +++ b/src/javascripts/app.js @@ -9,6 +9,7 @@ import 'angularjs-scroll-glue'; import { remote, ipcRenderer, clipboard } from 'electron'; import jetpack from 'fs-jetpack'; import fh from './helpers/fileHelpers'; +import cUtils from './helpers/collectionsUtils'; import Logger from './helpers/logger.js'; import { Ini } from 'ini-api'; import buildModuleService from './helpers/moduleService'; diff --git a/src/javascripts/helpers/collectionsUtils.js b/src/javascripts/helpers/collectionsUtils.js new file mode 100644 index 00000000..d86e4661 --- /dev/null +++ b/src/javascripts/helpers/collectionsUtils.js @@ -0,0 +1,13 @@ +let cUtils = {}; + +cUtils.findValueInMapByLoweredKey = function (mapping, key) { + if (mapping && key) { + let res = Object.entries(mapping).find(kv => kv[0] && kv[0].toString().toLowerCase() === key.toLowerCase()); + if (res) { + return res[1]; + } + } + return undefined; +} + +export default cUtils;