[DatFile] Make sure that flags aren't overwritten if user-set

This commit is contained in:
Matt Nadareski
2016-11-07 10:11:58 -08:00
parent d7f6d6e31f
commit 2f102800b7

View File

@@ -703,6 +703,8 @@ namespace SabreTools.Helper.Dats
superdat = superdat || itemval.Contains("SuperDAT"); superdat = superdat || itemval.Contains("SuperDAT");
break; break;
case "forcemerging": case "forcemerging":
if (ForceMerging == ForceMerging.None)
{
switch (itemval) switch (itemval)
{ {
case "none": case "none":
@@ -715,8 +717,11 @@ namespace SabreTools.Helper.Dats
ForceMerging = ForceMerging.Full; ForceMerging = ForceMerging.Full;
break; break;
} }
}
break; break;
case "forcezipping": case "forcezipping":
if (ForcePacking == ForcePacking.None)
{
switch (itemval) switch (itemval)
{ {
case "yes": case "yes":
@@ -726,8 +731,11 @@ namespace SabreTools.Helper.Dats
ForcePacking = ForcePacking.Unzip; ForcePacking = ForcePacking.Unzip;
break; break;
} }
}
break; break;
case "forcepacking": case "forcepacking":
if (ForcePacking == ForcePacking.None)
{
switch (itemval) switch (itemval)
{ {
case "zip": case "zip":
@@ -737,6 +745,7 @@ namespace SabreTools.Helper.Dats
ForcePacking = ForcePacking.Unzip; ForcePacking = ForcePacking.Unzip;
break; break;
} }
}
break; break;
} }
} }
@@ -872,7 +881,7 @@ namespace SabreTools.Helper.Dats
{ {
Description = (String.IsNullOrEmpty(Description) ? xtr.GetAttribute("description") : Description); Description = (String.IsNullOrEmpty(Description) ? xtr.GetAttribute("description") : Description);
} }
if (xtr.GetAttribute("forcemerging") != null) if (xtr.GetAttribute("forcemerging") != null && ForceMerging == ForceMerging.None)
{ {
switch (xtr.GetAttribute("forcemerging")) switch (xtr.GetAttribute("forcemerging"))
{ {
@@ -887,9 +896,9 @@ namespace SabreTools.Helper.Dats
break; break;
} }
} }
if (xtr.GetAttribute("forceitemStatus") != null) if (xtr.GetAttribute("forcenodump") != null && ForceNodump == ForceNodump.None)
{ {
switch (xtr.GetAttribute("forceitemStatus")) switch (xtr.GetAttribute("forcenodump"))
{ {
case "obsolete": case "obsolete":
ForceNodump = ForceNodump.Obsolete; ForceNodump = ForceNodump.Obsolete;
@@ -902,7 +911,7 @@ namespace SabreTools.Helper.Dats
break; break;
} }
} }
if (xtr.GetAttribute("forcepacking") != null) if (xtr.GetAttribute("forcepacking") != null && ForcePacking == ForcePacking.None)
{ {
switch (xtr.GetAttribute("forcepacking")) switch (xtr.GetAttribute("forcepacking"))
{ {
@@ -1068,7 +1077,7 @@ namespace SabreTools.Helper.Dats
{ {
Header = (String.IsNullOrEmpty(Header) ? headreader.GetAttribute("plugin") : Header); Header = (String.IsNullOrEmpty(Header) ? headreader.GetAttribute("plugin") : Header);
} }
if (headreader.GetAttribute("forcemerging") != null) if (headreader.GetAttribute("forcemerging") != null && ForceMerging == ForceMerging.None)
{ {
switch (headreader.GetAttribute("forcemerging")) switch (headreader.GetAttribute("forcemerging"))
{ {
@@ -1083,9 +1092,9 @@ namespace SabreTools.Helper.Dats
break; break;
} }
} }
if (headreader.GetAttribute("forceitemStatus") != null) if (headreader.GetAttribute("forcenodump") != null && ForceNodump == ForceNodump.None)
{ {
switch (headreader.GetAttribute("forceitemStatus")) switch (headreader.GetAttribute("forcenodump"))
{ {
case "obsolete": case "obsolete":
ForceNodump = ForceNodump.Obsolete; ForceNodump = ForceNodump.Obsolete;
@@ -1098,7 +1107,7 @@ namespace SabreTools.Helper.Dats
break; break;
} }
} }
if (headreader.GetAttribute("forcepacking") != null) if (headreader.GetAttribute("forcepacking") != null && ForcePacking == ForcePacking.None)
{ {
switch (headreader.GetAttribute("forcepacking")) switch (headreader.GetAttribute("forcepacking"))
{ {
@@ -1144,6 +1153,8 @@ namespace SabreTools.Helper.Dats
superdat = superdat || content.Contains("SuperDAT"); superdat = superdat || content.Contains("SuperDAT");
break; break;
case "forcemerging": case "forcemerging":
if (ForceMerging == ForceMerging.None)
{
switch (content) switch (content)
{ {
case "split": case "split":
@@ -1156,8 +1167,11 @@ namespace SabreTools.Helper.Dats
ForceMerging = ForceMerging.Full; ForceMerging = ForceMerging.Full;
break; break;
} }
}
break; break;
case "forceitemStatus": case "forcenodump":
if (ForceNodump == ForceNodump.None)
{
switch (content) switch (content)
{ {
case "obsolete": case "obsolete":
@@ -1170,8 +1184,11 @@ namespace SabreTools.Helper.Dats
ForceNodump = ForceNodump.Ignore; ForceNodump = ForceNodump.Ignore;
break; break;
} }
}
break; break;
case "forcepacking": case "forcepacking":
if (ForcePacking == ForcePacking.None)
{
switch (content) switch (content)
{ {
case "zip": case "zip":
@@ -1181,6 +1198,7 @@ namespace SabreTools.Helper.Dats
ForcePacking = ForcePacking.Unzip; ForcePacking = ForcePacking.Unzip;
break; break;
} }
}
break; break;
} }
} }
@@ -2115,7 +2133,7 @@ namespace SabreTools.Helper.Dats
int split = 0; int split = 0;
if (Int32.TryParse(line.Split('=')[1], out split)) if (Int32.TryParse(line.Split('=')[1], out split))
{ {
if (split == 1) if (split == 1 && ForcePacking == ForcePacking.None)
{ {
ForceMerging = ForceMerging.Split; ForceMerging = ForceMerging.Split;
} }
@@ -2127,7 +2145,7 @@ namespace SabreTools.Helper.Dats
int merge = 0; int merge = 0;
if (Int32.TryParse(line.Split('=')[1], out merge)) if (Int32.TryParse(line.Split('=')[1], out merge))
{ {
if (merge == 1) if (merge == 1 && ForceMerging == ForceMerging.None)
{ {
ForceMerging = ForceMerging.Full; ForceMerging = ForceMerging.Full;
} }