/// <summary> /// Checks for conflicts with mod-author specified critical records. Used by background worker dialog. /// </summary> public void DetectConflicts(IList <string> p_lstOrderedPlugins) { m_booCancelled = false; for (var intIndex = 0; intIndex < p_lstOrderedPlugins.Count; intIndex++) { var strBasePlugin = p_lstOrderedPlugins[intIndex]; if (m_booCancelled) { return; } OnPluginProcessed(); if (SKIP_PLUGINS.Contains(strBasePlugin.ToLowerInvariant())) { continue; } var crpBasePlugin = new CriticalRecordPlugin(Path.Combine(Program.GameMode.PluginsPath, strBasePlugin), false); if (!crpBasePlugin.HasCriticalRecordData) { continue; } for (var i = intIndex + 1; i < p_lstOrderedPlugins.Count; i++) { var strPlugin = p_lstOrderedPlugins[i]; var plgPlugin = new Plugin(Path.Combine(Program.GameMode.PluginsPath, strPlugin), false); foreach (var uintFormId in crpBasePlugin.CriticalRecordFormIds) { var strMasterPlugin = crpBasePlugin.GetMaster((Int32)uintFormId >> 24) ?? strBasePlugin; if (plgPlugin.GetMasterIndex(strMasterPlugin) < 0) { continue; } var uintAdjustedFormId = ((UInt32)plgPlugin.GetMasterIndex(strMasterPlugin) << 24); uintAdjustedFormId = uintAdjustedFormId + (uintFormId & 0x00ffffff); if (plgPlugin.ContainsFormId(uintAdjustedFormId)) { OnConflictDetected(crpBasePlugin, plgPlugin, uintFormId, crpBasePlugin.GetCriticalRecordInfo(uintFormId)); } } } } }
/// <summary> /// Checks for conflicts with mod-author specified critical records. Used by background worker dialog. /// </summary> public void DetectConflicts(IList<string> p_lstOrderedPlugins) { m_booCancelled = false; for (var intIndex = 0; intIndex < p_lstOrderedPlugins.Count; intIndex++) { var strBasePlugin = p_lstOrderedPlugins[intIndex]; if (m_booCancelled) { return; } OnPluginProcessed(); if (SKIP_PLUGINS.Contains(strBasePlugin.ToLowerInvariant())) { continue; } var crpBasePlugin = new CriticalRecordPlugin(Path.Combine(Program.GameMode.PluginsPath, strBasePlugin), false); if (!crpBasePlugin.HasCriticalRecordData) { continue; } for (var i = intIndex + 1; i < p_lstOrderedPlugins.Count; i++) { var strPlugin = p_lstOrderedPlugins[i]; var plgPlugin = new Plugin(Path.Combine(Program.GameMode.PluginsPath, strPlugin), false); foreach (var uintFormId in crpBasePlugin.CriticalRecordFormIds) { var strMasterPlugin = crpBasePlugin.GetMaster((Int32) uintFormId >> 24) ?? strBasePlugin; if (plgPlugin.GetMasterIndex(strMasterPlugin) < 0) { continue; } var uintAdjustedFormId = ((UInt32) plgPlugin.GetMasterIndex(strMasterPlugin) << 24); uintAdjustedFormId = uintAdjustedFormId + (uintFormId & 0x00ffffff); if (plgPlugin.ContainsFormId(uintAdjustedFormId)) { OnConflictDetected(crpBasePlugin, plgPlugin, uintFormId, crpBasePlugin.GetCriticalRecordInfo(uintFormId)); } } } } }