[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,39 +703,48 @@ namespace SabreTools.Helper.Dats
superdat = superdat || itemval.Contains("SuperDAT"); superdat = superdat || itemval.Contains("SuperDAT");
break; break;
case "forcemerging": case "forcemerging":
switch (itemval) if (ForceMerging == ForceMerging.None)
{ {
case "none": switch (itemval)
ForceMerging = ForceMerging.None; {
break; case "none":
case "split": ForceMerging = ForceMerging.None;
ForceMerging = ForceMerging.Split; break;
break; case "split":
case "full": ForceMerging = ForceMerging.Split;
ForceMerging = ForceMerging.Full; break;
break; case "full":
ForceMerging = ForceMerging.Full;
break;
}
} }
break; break;
case "forcezipping": case "forcezipping":
switch (itemval) if (ForcePacking == ForcePacking.None)
{ {
case "yes": switch (itemval)
ForcePacking = ForcePacking.Zip; {
break; case "yes":
case "no": ForcePacking = ForcePacking.Zip;
ForcePacking = ForcePacking.Unzip; break;
break; case "no":
ForcePacking = ForcePacking.Unzip;
break;
}
} }
break; break;
case "forcepacking": case "forcepacking":
switch (itemval) if (ForcePacking == ForcePacking.None)
{ {
case "zip": switch (itemval)
ForcePacking = ForcePacking.Zip; {
break; case "zip":
case "unzip": ForcePacking = ForcePacking.Zip;
ForcePacking = ForcePacking.Unzip; break;
break; case "unzip":
ForcePacking = ForcePacking.Unzip;
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,42 +1153,51 @@ namespace SabreTools.Helper.Dats
superdat = superdat || content.Contains("SuperDAT"); superdat = superdat || content.Contains("SuperDAT");
break; break;
case "forcemerging": case "forcemerging":
switch (content) if (ForceMerging == ForceMerging.None)
{ {
case "split": switch (content)
ForceMerging = ForceMerging.Split; {
break; case "split":
case "none": ForceMerging = ForceMerging.Split;
ForceMerging = ForceMerging.None; break;
break; case "none":
case "full": ForceMerging = ForceMerging.None;
ForceMerging = ForceMerging.Full; break;
break; case "full":
ForceMerging = ForceMerging.Full;
break;
}
} }
break; break;
case "forceitemStatus": case "forcenodump":
switch (content) if (ForceNodump == ForceNodump.None)
{ {
case "obsolete": switch (content)
ForceNodump = ForceNodump.Obsolete; {
break; case "obsolete":
case "required": ForceNodump = ForceNodump.Obsolete;
ForceNodump = ForceNodump.Required; break;
break; case "required":
case "ignore": ForceNodump = ForceNodump.Required;
ForceNodump = ForceNodump.Ignore; break;
break; case "ignore":
ForceNodump = ForceNodump.Ignore;
break;
}
} }
break; break;
case "forcepacking": case "forcepacking":
switch (content) if (ForcePacking == ForcePacking.None)
{ {
case "zip": switch (content)
ForcePacking = ForcePacking.Zip; {
break; case "zip":
case "unzip": ForcePacking = ForcePacking.Zip;
ForcePacking = ForcePacking.Unzip; break;
break; case "unzip":
ForcePacking = ForcePacking.Unzip;
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;
} }