mirror of
https://github.com/GravitLauncher/Launcher
synced 2024-12-23 09:01:08 +03:00
Optional mods fix. (#81)
Если модификация была в профайле, но не была в конфиге - дерево модификаций пыталось переключить несуществующую. Что приводило к неправильной работе веток.
This commit is contained in:
parent
eac2a85478
commit
5a13d56122
1 changed files with 24 additions and 7 deletions
|
@ -188,8 +188,10 @@ var options = {
|
||||||
modIDs.forEach(function(key, id) {
|
modIDs.forEach(function(key, id) {
|
||||||
if(modList[key] != null && modList[key].subTreeLevel != null) {
|
if(modList[key] != null && modList[key].subTreeLevel != null) {
|
||||||
if( modList[key].subTreeLevel > modInfo.subTreeLevel && modIDs.indexOf(key) > modIDs.indexOf(ImodFile) && enable == false && stop == false) {
|
if( modList[key].subTreeLevel > modInfo.subTreeLevel && modIDs.indexOf(key) > modIDs.indexOf(ImodFile) && enable == false && stop == false) {
|
||||||
|
if(options.modExists(key)){
|
||||||
profile.unmarkOptional(key);
|
profile.unmarkOptional(key);
|
||||||
LogHelper.debug("Unselected subMod %s", key);
|
LogHelper.debug("Unselected subMod %s", key);
|
||||||
|
}
|
||||||
} else if(modIDs.indexOf(key) > modIDs.indexOf(ImodFile) && modList[key].subTreeLevel <= modInfo.subTreeLevel && stop == false) {
|
} else if(modIDs.indexOf(key) > modIDs.indexOf(ImodFile) && modList[key].subTreeLevel <= modInfo.subTreeLevel && stop == false) {
|
||||||
//LogHelper.debug("STOP disable!! " + key);
|
//LogHelper.debug("STOP disable!! " + key);
|
||||||
stop = true;
|
stop = true;
|
||||||
|
@ -202,8 +204,10 @@ var options = {
|
||||||
modIDs.forEach(function(key, id) {
|
modIDs.forEach(function(key, id) {
|
||||||
if(modList[key] != null && modList[key].onlyOneGroup != null) {
|
if(modList[key] != null && modList[key].onlyOneGroup != null) {
|
||||||
if(modList[key].onlyOneGroup == modInfo.onlyOneGroup && modList[key].onlyOne == true && enable == true && key != ImodFile) {
|
if(modList[key].onlyOneGroup == modInfo.onlyOneGroup && modList[key].onlyOne == true && enable == true && key != ImodFile) {
|
||||||
|
if(options.modExists(key)) {
|
||||||
profile.unmarkOptional(key);
|
profile.unmarkOptional(key);
|
||||||
LogHelper.debug("Unselected Mod (onlyOne toggle) %s", key);
|
LogHelper.debug("Unselected Mod (onlyOne toggle) %s", key);
|
||||||
|
}
|
||||||
options.treeToggle(false, key); //И все его подмодификации канут в Лету..
|
options.treeToggle(false, key); //И все его подмодификации канут в Лету..
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -216,8 +220,10 @@ var options = {
|
||||||
reverseModList.forEach(function(key, id) {
|
reverseModList.forEach(function(key, id) {
|
||||||
if(modList[key] != null && modList[key].subTreeLevel != null) {
|
if(modList[key] != null && modList[key].subTreeLevel != null) {
|
||||||
if(modList[key].subTreeLevel == tsl && modIDs.indexOf(key) < modIDs.indexOf(ImodFile) && enable == true) {
|
if(modList[key].subTreeLevel == tsl && modIDs.indexOf(key) < modIDs.indexOf(ImodFile) && enable == true) {
|
||||||
|
if(options.modExists(key)) {
|
||||||
profile.markOptional(key);
|
profile.markOptional(key);
|
||||||
LogHelper.debug("Selected coreMod %s", key);
|
LogHelper.debug("Selected coreMod %s", key);
|
||||||
|
}
|
||||||
options.treeToggle(true, key); //Для срабатывания onlyOne-модификаций.
|
options.treeToggle(true, key); //Для срабатывания onlyOne-модификаций.
|
||||||
tsl--;
|
tsl--;
|
||||||
}
|
}
|
||||||
|
@ -227,6 +233,17 @@ var options = {
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
modExists: function(key){
|
||||||
|
var profile = profilesList[serverHolder.old].object;
|
||||||
|
var list = profile.getOptional();
|
||||||
|
var result = false;
|
||||||
|
list.forEach(function(modFile) {
|
||||||
|
if(modFile.string === key) {
|
||||||
|
result = true;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
Loading…
Reference in a new issue