mirror of
https://github.com/claunia/SabreTools.git
synced 2025-12-16 19:14:27 +00:00
Add ListXML header fields
This commit is contained in:
@@ -13,9 +13,9 @@ namespace SabreTools.Library.DatFiles
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public class DatHeader : ICloneable
|
public class DatHeader : ICloneable
|
||||||
{
|
{
|
||||||
#region Publicly facing variables
|
#region Fields
|
||||||
|
|
||||||
#region Data common to most DAT types
|
#region Common Fields
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// External name of the DAT
|
/// External name of the DAT
|
||||||
@@ -178,6 +178,32 @@ namespace SabreTools.Library.DatFiles
|
|||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
|
#region ListXML Fields
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Debug build flag
|
||||||
|
/// </summary>
|
||||||
|
[JsonProperty("debug")]
|
||||||
|
public bool? Debug { get; set; } = false;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// MAME configuration name
|
||||||
|
/// </summary>
|
||||||
|
[JsonProperty("mameconfig")]
|
||||||
|
public string MameConfig { get; set; }
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#region Missfile Fields
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Output the item name
|
||||||
|
/// </summary>
|
||||||
|
[JsonIgnore]
|
||||||
|
public bool UseRomName { get; set; }
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
#region Write pre-processing
|
#region Write pre-processing
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@@ -224,16 +250,6 @@ namespace SabreTools.Library.DatFiles
|
|||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region Data specific to the Miss DAT type
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Output the item name
|
|
||||||
/// </summary>
|
|
||||||
[JsonIgnore]
|
|
||||||
public bool UseRomName { get; set; }
|
|
||||||
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
#region Depot Information
|
#region Depot Information
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
|||||||
@@ -120,6 +120,8 @@ namespace SabreTools.Library.DatFiles
|
|||||||
string content;
|
string content;
|
||||||
switch (jtr.Value)
|
switch (jtr.Value)
|
||||||
{
|
{
|
||||||
|
#region Common
|
||||||
|
|
||||||
case "name":
|
case "name":
|
||||||
content = jtr.ReadAsString();
|
content = jtr.ReadAsString();
|
||||||
Header.Name = (Header.Name == null ? content : Header.Name);
|
Header.Name = (Header.Name == null ? content : Header.Name);
|
||||||
@@ -180,6 +182,11 @@ namespace SabreTools.Library.DatFiles
|
|||||||
Header.Comment = (Header.Comment == null ? content : Header.Comment);
|
Header.Comment = (Header.Comment == null ? content : Header.Comment);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case "header":
|
||||||
|
content = jtr.ReadAsString();
|
||||||
|
Header.HeaderSkipper = (Header.HeaderSkipper == null ? content : Header.HeaderSkipper);
|
||||||
|
break;
|
||||||
|
|
||||||
case "type": // This is exclusive to TruRip XML
|
case "type": // This is exclusive to TruRip XML
|
||||||
content = jtr.ReadAsString();
|
content = jtr.ReadAsString();
|
||||||
Header.Type = (Header.Type == null ? content : Header.Type);
|
Header.Type = (Header.Type == null ? content : Header.Type);
|
||||||
@@ -192,23 +199,34 @@ namespace SabreTools.Library.DatFiles
|
|||||||
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case "forcepacking":
|
|
||||||
if (Header.ForcePacking == ForcePacking.None)
|
|
||||||
Header.ForcePacking = jtr.ReadAsString().AsForcePacking();
|
|
||||||
|
|
||||||
break;
|
|
||||||
|
|
||||||
case "forcenodump":
|
case "forcenodump":
|
||||||
if (Header.ForceNodump == ForceNodump.None)
|
if (Header.ForceNodump == ForceNodump.None)
|
||||||
Header.ForceNodump = jtr.ReadAsString().AsForceNodump();
|
Header.ForceNodump = jtr.ReadAsString().AsForceNodump();
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case "header":
|
case "forcepacking":
|
||||||
content = jtr.ReadAsString();
|
if (Header.ForcePacking == ForcePacking.None)
|
||||||
Header.HeaderSkipper = (Header.HeaderSkipper == null ? content : Header.HeaderSkipper);
|
Header.ForcePacking = jtr.ReadAsString().AsForcePacking();
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#region ListXML
|
||||||
|
|
||||||
|
case "debug":
|
||||||
|
content = jtr.ReadAsString();
|
||||||
|
Header.Debug = (Header.Debug == null ? content.AsYesNo() : Header.Debug);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case "mameconfig":
|
||||||
|
content = jtr.ReadAsString();
|
||||||
|
Header.MameConfig = (Header.MameConfig == null ? content : Header.MameConfig);
|
||||||
|
break;
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -875,6 +893,8 @@ namespace SabreTools.Library.DatFiles
|
|||||||
jtw.WritePropertyName("header");
|
jtw.WritePropertyName("header");
|
||||||
jtw.WriteStartObject();
|
jtw.WriteStartObject();
|
||||||
|
|
||||||
|
#region Common
|
||||||
|
|
||||||
jtw.WritePropertyName("name");
|
jtw.WritePropertyName("name");
|
||||||
jtw.WriteValue(Header.Name);
|
jtw.WriteValue(Header.Name);
|
||||||
jtw.WritePropertyName("description");
|
jtw.WritePropertyName("description");
|
||||||
@@ -977,6 +997,32 @@ namespace SabreTools.Library.DatFiles
|
|||||||
jtw.WriteValue(Header.HeaderSkipper);
|
jtw.WriteValue(Header.HeaderSkipper);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#region ListXML
|
||||||
|
|
||||||
|
if (Header.Debug != null)
|
||||||
|
{
|
||||||
|
jtw.WritePropertyName("debug");
|
||||||
|
switch (Header.Debug)
|
||||||
|
{
|
||||||
|
case true:
|
||||||
|
jtw.WriteValue("yes"));
|
||||||
|
break;
|
||||||
|
case false:
|
||||||
|
jtw.WriteValue("no");
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!string.IsNullOrWhiteSpace(Header.MameConfig))
|
||||||
|
{
|
||||||
|
jtw.WritePropertyName("mameconfig");
|
||||||
|
jtw.WriteValue(Header.MameConfig);
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
// End header
|
// End header
|
||||||
jtw.WriteEndObject();
|
jtw.WriteEndObject();
|
||||||
|
|
||||||
|
|||||||
@@ -66,8 +66,8 @@ namespace SabreTools.Library.DatFiles
|
|||||||
case "mame":
|
case "mame":
|
||||||
Header.Name = (Header.Name == null ? xtr.GetAttribute("build") : Header.Name);
|
Header.Name = (Header.Name == null ? xtr.GetAttribute("build") : Header.Name);
|
||||||
Header.Description = (Header.Description == null ? Header.Name : Header.Description);
|
Header.Description = (Header.Description == null ? Header.Name : Header.Description);
|
||||||
string mame_debug = xtr.GetAttribute("debug"); // (yes|no) "no"
|
Header.Debug = (Header.Debug == null ? xtr.GetAttribute("debug").AsYesNo() : Header.Debug);
|
||||||
string mame_mameconfig = xtr.GetAttribute("mameconfig"); // CDATA
|
Header.MameConfig = (Header.MameConfig == null ? xtr.GetAttribute("mameconfig") : Header.MameConfig);
|
||||||
xtr.Read();
|
xtr.Read();
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@@ -310,6 +310,9 @@ namespace SabreTools.Library.DatFiles
|
|||||||
reader.Read();
|
reader.Read();
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
// TODO: Should these be new DatItem types?
|
||||||
|
// TODO: Should any be additional Machine fields?
|
||||||
|
|
||||||
case "chip":
|
case "chip":
|
||||||
// string chip_name = reader.GetAttribute("name");
|
// string chip_name = reader.GetAttribute("name");
|
||||||
// string chip_tag = reader.GetAttribute("tag");
|
// string chip_tag = reader.GetAttribute("tag");
|
||||||
@@ -665,8 +668,21 @@ namespace SabreTools.Library.DatFiles
|
|||||||
|
|
||||||
xtw.WriteStartElement("mame");
|
xtw.WriteStartElement("mame");
|
||||||
xtw.WriteAttributeString("build", Header.Name);
|
xtw.WriteAttributeString("build", Header.Name);
|
||||||
//xtw.WriteAttributeString("debug", Debug);
|
if (Header.Debug != null)
|
||||||
//xtw.WriteAttributeString("mameconfig", MameConfig);
|
{
|
||||||
|
switch (Header.Debug)
|
||||||
|
{
|
||||||
|
case true:
|
||||||
|
xtw.WriteAttributeString("debug", "yes");
|
||||||
|
break;
|
||||||
|
case false:
|
||||||
|
xtw.WriteAttributeString("debug", "no");
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!string.IsNullOrEmpty(Header.MameConfig))
|
||||||
|
xtw.WriteAttributeString("mameconfig", Header.MameConfig);
|
||||||
|
|
||||||
xtw.Flush();
|
xtw.Flush();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -116,6 +116,8 @@ namespace SabreTools.Library.DatFiles
|
|||||||
{
|
{
|
||||||
#region DatFile
|
#region DatFile
|
||||||
|
|
||||||
|
#region Common
|
||||||
|
|
||||||
case "DatFile.FileName":
|
case "DatFile.FileName":
|
||||||
Header.FileName = (Header.FileName== null ? value : Header.FileName);
|
Header.FileName = (Header.FileName== null ? value : Header.FileName);
|
||||||
break;
|
break;
|
||||||
@@ -186,6 +188,20 @@ namespace SabreTools.Library.DatFiles
|
|||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
|
#region ListXML
|
||||||
|
|
||||||
|
case "DatFile.Debug":
|
||||||
|
Header.Debug = (Header.Debug == null ? value.AsYesNo() : Header.Debug);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case "DatFile.MameConfig":
|
||||||
|
Header.MameConfig = (Header.MameConfig == null ? value : Header.MameConfig);
|
||||||
|
break;
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#endregion // DatFile
|
||||||
|
|
||||||
#region Machine
|
#region Machine
|
||||||
|
|
||||||
#region Common
|
#region Common
|
||||||
@@ -654,6 +670,8 @@ namespace SabreTools.Library.DatFiles
|
|||||||
{
|
{
|
||||||
#region DatFile
|
#region DatFile
|
||||||
|
|
||||||
|
#region Common
|
||||||
|
|
||||||
case "file":
|
case "file":
|
||||||
case "filename":
|
case "filename":
|
||||||
case "file name":
|
case "file name":
|
||||||
@@ -721,6 +739,20 @@ namespace SabreTools.Library.DatFiles
|
|||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
|
#region ListXML
|
||||||
|
|
||||||
|
case "debug":
|
||||||
|
return "DatFile.Debug";
|
||||||
|
|
||||||
|
case "mameconfig":
|
||||||
|
case "mame config":
|
||||||
|
case "mame-config":
|
||||||
|
return "DatFile.MameConfig";
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#endregion // DatFile
|
||||||
|
|
||||||
#region Machine
|
#region Machine
|
||||||
|
|
||||||
#region Common
|
#region Common
|
||||||
|
|||||||
Reference in New Issue
Block a user