mirror of
https://github.com/claunia/SabreTools.git
synced 2025-12-16 19:14:27 +00:00
Migrate unoffical keys
This commit is contained in:
@@ -42,10 +42,10 @@ namespace SabreTools.DatItems.Formats
|
||||
public Adjuster()
|
||||
{
|
||||
_internal = new Models.Metadata.Adjuster();
|
||||
Machine = new Machine();
|
||||
|
||||
SetName(string.Empty);
|
||||
ItemType = ItemType.Adjuster;
|
||||
SetFieldValue<ItemType>(Models.Metadata.DatItem.TypeKey, ItemType.Adjuster);
|
||||
SetFieldValue<Machine>(DatItem.MachineKey, new Machine());
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -54,9 +54,9 @@ namespace SabreTools.DatItems.Formats
|
||||
public Adjuster(Models.Metadata.Adjuster? item)
|
||||
{
|
||||
_internal = item ?? [];
|
||||
Machine = new Machine();
|
||||
|
||||
ItemType = ItemType.Adjuster;
|
||||
SetFieldValue<ItemType>(Models.Metadata.DatItem.TypeKey, ItemType.Adjuster);
|
||||
SetFieldValue<Machine>(DatItem.MachineKey, new Machine());
|
||||
}
|
||||
|
||||
#endregion
|
||||
@@ -68,13 +68,6 @@ namespace SabreTools.DatItems.Formats
|
||||
{
|
||||
return new Adjuster()
|
||||
{
|
||||
ItemType = this.ItemType,
|
||||
DupeType = this.DupeType,
|
||||
|
||||
Machine = this.Machine.Clone() as Machine ?? new Machine(),
|
||||
Source = this.Source?.Clone() as Source,
|
||||
Remove = this.Remove,
|
||||
|
||||
_internal = this._internal?.Clone() as Models.Metadata.Adjuster ?? [],
|
||||
};
|
||||
}
|
||||
|
||||
@@ -18,9 +18,9 @@ namespace SabreTools.DatItems.Formats
|
||||
public Analog()
|
||||
{
|
||||
_internal = new Models.Metadata.Analog();
|
||||
Machine = new Machine();
|
||||
|
||||
ItemType = ItemType.Analog;
|
||||
SetFieldValue<ItemType>(Models.Metadata.DatItem.TypeKey, ItemType.Analog);
|
||||
SetFieldValue<Machine>(DatItem.MachineKey, new Machine());
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -29,9 +29,9 @@ namespace SabreTools.DatItems.Formats
|
||||
public Analog(Models.Metadata.Analog? item)
|
||||
{
|
||||
_internal = item ?? [];
|
||||
Machine = new Machine();
|
||||
|
||||
ItemType = ItemType.Analog;
|
||||
SetFieldValue<ItemType>(Models.Metadata.DatItem.TypeKey, ItemType.Analog);
|
||||
SetFieldValue<Machine>(DatItem.MachineKey, new Machine());
|
||||
}
|
||||
|
||||
#endregion
|
||||
@@ -43,13 +43,6 @@ namespace SabreTools.DatItems.Formats
|
||||
{
|
||||
return new Analog()
|
||||
{
|
||||
ItemType = this.ItemType,
|
||||
DupeType = this.DupeType,
|
||||
|
||||
Machine = this.Machine.Clone() as Machine ?? new Machine(),
|
||||
Source = this.Source?.Clone() as Source,
|
||||
Remove = this.Remove,
|
||||
|
||||
_internal = this._internal?.Clone() as Models.Metadata.Analog ?? [],
|
||||
};
|
||||
}
|
||||
|
||||
@@ -97,10 +97,10 @@ namespace SabreTools.DatItems.Formats
|
||||
public Archive()
|
||||
{
|
||||
_internal = new Models.Metadata.Archive();
|
||||
Machine = new Machine();
|
||||
|
||||
SetName(string.Empty);
|
||||
ItemType = ItemType.Archive;
|
||||
SetFieldValue<ItemType>(Models.Metadata.DatItem.TypeKey, ItemType.Archive);
|
||||
SetFieldValue<Machine>(DatItem.MachineKey, new Machine());
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -109,9 +109,9 @@ namespace SabreTools.DatItems.Formats
|
||||
public Archive(Models.Metadata.Archive? item)
|
||||
{
|
||||
_internal = item ?? [];
|
||||
Machine = new Machine();
|
||||
|
||||
ItemType = ItemType.Archive;
|
||||
SetFieldValue<ItemType>(Models.Metadata.DatItem.TypeKey, ItemType.Archive);
|
||||
SetFieldValue<Machine>(DatItem.MachineKey, new Machine());
|
||||
}
|
||||
|
||||
#endregion
|
||||
@@ -123,13 +123,6 @@ namespace SabreTools.DatItems.Formats
|
||||
{
|
||||
return new Archive()
|
||||
{
|
||||
ItemType = this.ItemType,
|
||||
DupeType = this.DupeType,
|
||||
|
||||
Machine = this.Machine.Clone() as Machine ?? new Machine(),
|
||||
Source = this.Source?.Clone() as Source,
|
||||
Remove = this.Remove,
|
||||
|
||||
_internal = this._internal?.Clone() as Models.Metadata.Archive ?? [],
|
||||
};
|
||||
}
|
||||
|
||||
@@ -28,10 +28,10 @@ namespace SabreTools.DatItems.Formats
|
||||
public BiosSet()
|
||||
{
|
||||
_internal = new Models.Metadata.BiosSet();
|
||||
Machine = new Machine();
|
||||
|
||||
SetName(string.Empty);
|
||||
ItemType = ItemType.BiosSet;
|
||||
SetFieldValue<ItemType>(Models.Metadata.DatItem.TypeKey, ItemType.BiosSet);
|
||||
SetFieldValue<Machine>(DatItem.MachineKey, new Machine());
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -40,9 +40,9 @@ namespace SabreTools.DatItems.Formats
|
||||
public BiosSet(Models.Metadata.BiosSet? item)
|
||||
{
|
||||
_internal = item ?? [];
|
||||
Machine = new Machine();
|
||||
|
||||
ItemType = ItemType.BiosSet;
|
||||
SetFieldValue<ItemType>(Models.Metadata.DatItem.TypeKey, ItemType.BiosSet);
|
||||
SetFieldValue<Machine>(DatItem.MachineKey, new Machine());
|
||||
}
|
||||
|
||||
#endregion
|
||||
@@ -54,13 +54,6 @@ namespace SabreTools.DatItems.Formats
|
||||
{
|
||||
return new BiosSet()
|
||||
{
|
||||
ItemType = this.ItemType,
|
||||
DupeType = this.DupeType,
|
||||
|
||||
Machine = this.Machine.Clone() as Machine ?? new Machine(),
|
||||
Source = this.Source?.Clone() as Source,
|
||||
Remove = this.Remove,
|
||||
|
||||
_internal = this._internal?.Clone() as Models.Metadata.BiosSet ?? [],
|
||||
};
|
||||
}
|
||||
|
||||
@@ -17,7 +17,7 @@ namespace SabreTools.DatItems.Formats
|
||||
/// </summary>
|
||||
public Blank()
|
||||
{
|
||||
ItemType = ItemType.Blank;
|
||||
SetFieldValue<ItemType>(Models.Metadata.DatItem.TypeKey, ItemType.Blank);
|
||||
}
|
||||
|
||||
#endregion
|
||||
@@ -27,15 +27,13 @@ namespace SabreTools.DatItems.Formats
|
||||
/// <inheritdoc/>
|
||||
public override object Clone()
|
||||
{
|
||||
return new Blank()
|
||||
{
|
||||
ItemType = this.ItemType,
|
||||
DupeType = this.DupeType,
|
||||
var blank = new Blank();
|
||||
blank.SetFieldValue<Machine>(DatItem.MachineKey, GetFieldValue<Machine>(DatItem.MachineKey));
|
||||
blank.SetFieldValue<bool>(DatItem.RemoveKey, GetFieldValue<bool>(DatItem.RemoveKey));
|
||||
blank.SetFieldValue<Source?>(DatItem.SourceKey, GetFieldValue<Source?>(DatItem.SourceKey));
|
||||
blank.SetFieldValue<ItemType>(Models.Metadata.DatItem.TypeKey, GetFieldValue<ItemType>(Models.Metadata.DatItem.TypeKey));
|
||||
|
||||
Machine = this.Machine.Clone() as Machine ?? new Machine(),
|
||||
Source = this.Source?.Clone() as Source,
|
||||
Remove = this.Remove,
|
||||
};
|
||||
return blank;
|
||||
}
|
||||
|
||||
#endregion
|
||||
@@ -46,14 +44,14 @@ namespace SabreTools.DatItems.Formats
|
||||
public override bool Equals(DatItem? other)
|
||||
{
|
||||
// If we don't have a blank, return false
|
||||
if (ItemType != other?.ItemType)
|
||||
if (GetFieldValue<ItemType>(Models.Metadata.DatItem.TypeKey) != other?.GetFieldValue<ItemType>(Models.Metadata.DatItem.TypeKey))
|
||||
return false;
|
||||
|
||||
// Otherwise, treat it as a Blank
|
||||
Blank? newOther = other as Blank;
|
||||
|
||||
// If the archive information matches
|
||||
return (Machine == newOther!.Machine);
|
||||
return GetFieldValue<Machine>(DatItem.MachineKey) == newOther!.GetFieldValue<Machine>(DatItem.MachineKey);
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
@@ -28,10 +28,10 @@ namespace SabreTools.DatItems.Formats
|
||||
public Chip()
|
||||
{
|
||||
_internal = new Models.Metadata.Chip();
|
||||
Machine = new Machine();
|
||||
|
||||
SetName(string.Empty);
|
||||
ItemType = ItemType.Chip;
|
||||
SetFieldValue<ItemType>(Models.Metadata.DatItem.TypeKey, ItemType.Chip);
|
||||
SetFieldValue<Machine>(DatItem.MachineKey, new Machine());
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -40,9 +40,9 @@ namespace SabreTools.DatItems.Formats
|
||||
public Chip(Models.Metadata.Chip? item)
|
||||
{
|
||||
_internal = item ?? [];
|
||||
Machine = new Machine();
|
||||
|
||||
ItemType = ItemType.Chip;
|
||||
SetFieldValue<ItemType>(Models.Metadata.DatItem.TypeKey, ItemType.Chip);
|
||||
SetFieldValue<Machine>(DatItem.MachineKey, new Machine());
|
||||
}
|
||||
|
||||
#endregion
|
||||
@@ -54,13 +54,6 @@ namespace SabreTools.DatItems.Formats
|
||||
{
|
||||
return new Chip()
|
||||
{
|
||||
ItemType = this.ItemType,
|
||||
DupeType = this.DupeType,
|
||||
|
||||
Machine = this.Machine.Clone() as Machine ?? new Machine(),
|
||||
Source = this.Source?.Clone() as Source,
|
||||
Remove = this.Remove,
|
||||
|
||||
_internal = this._internal?.Clone() as Models.Metadata.Chip ?? [],
|
||||
};
|
||||
}
|
||||
|
||||
@@ -18,9 +18,9 @@ namespace SabreTools.DatItems.Formats
|
||||
public Condition()
|
||||
{
|
||||
_internal = new Models.Metadata.Condition();
|
||||
Machine = new Machine();
|
||||
|
||||
ItemType = ItemType.Condition;
|
||||
SetFieldValue<ItemType>(Models.Metadata.DatItem.TypeKey, ItemType.Condition);
|
||||
SetFieldValue<Machine>(DatItem.MachineKey, new Machine());
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -29,9 +29,9 @@ namespace SabreTools.DatItems.Formats
|
||||
public Condition(Models.Metadata.Condition? item)
|
||||
{
|
||||
_internal = item ?? [];
|
||||
Machine = new Machine();
|
||||
|
||||
ItemType = ItemType.Condition;
|
||||
SetFieldValue<ItemType>(Models.Metadata.DatItem.TypeKey, ItemType.Condition);
|
||||
SetFieldValue<Machine>(DatItem.MachineKey, new Machine());
|
||||
}
|
||||
|
||||
#endregion
|
||||
@@ -43,13 +43,6 @@ namespace SabreTools.DatItems.Formats
|
||||
{
|
||||
return new Condition()
|
||||
{
|
||||
ItemType = this.ItemType,
|
||||
DupeType = this.DupeType,
|
||||
|
||||
Machine = this.Machine.Clone() as Machine ?? new Machine(),
|
||||
Source = this.Source?.Clone() as Source,
|
||||
Remove = this.Remove,
|
||||
|
||||
_internal = this._internal?.Clone() as Models.Metadata.Condition ?? [],
|
||||
};
|
||||
}
|
||||
|
||||
@@ -28,10 +28,10 @@ namespace SabreTools.DatItems.Formats
|
||||
public ConfLocation()
|
||||
{
|
||||
_internal = new Models.Metadata.ConfLocation();
|
||||
Machine = new Machine();
|
||||
|
||||
SetName(string.Empty);
|
||||
ItemType = ItemType.ConfLocation;
|
||||
SetFieldValue<ItemType>(Models.Metadata.DatItem.TypeKey, ItemType.ConfLocation);
|
||||
SetFieldValue<Machine>(DatItem.MachineKey, new Machine());
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -40,9 +40,9 @@ namespace SabreTools.DatItems.Formats
|
||||
public ConfLocation(Models.Metadata.ConfLocation? item)
|
||||
{
|
||||
_internal = item ?? [];
|
||||
Machine = new Machine();
|
||||
|
||||
ItemType = ItemType.ConfLocation;
|
||||
SetFieldValue<ItemType>(Models.Metadata.DatItem.TypeKey, ItemType.ConfLocation);
|
||||
SetFieldValue<Machine>(DatItem.MachineKey, new Machine());
|
||||
}
|
||||
|
||||
#endregion
|
||||
@@ -54,13 +54,6 @@ namespace SabreTools.DatItems.Formats
|
||||
{
|
||||
return new ConfLocation()
|
||||
{
|
||||
ItemType = this.ItemType,
|
||||
DupeType = this.DupeType,
|
||||
|
||||
Machine = this.Machine.Clone() as Machine ?? new Machine(),
|
||||
Source = this.Source?.Clone() as Source,
|
||||
Remove = this.Remove,
|
||||
|
||||
_internal = this._internal?.Clone() as Models.Metadata.ConfLocation ?? [],
|
||||
};
|
||||
}
|
||||
|
||||
@@ -42,10 +42,10 @@ namespace SabreTools.DatItems.Formats
|
||||
public ConfSetting()
|
||||
{
|
||||
_internal = new Models.Metadata.ConfSetting();
|
||||
Machine = new Machine();
|
||||
|
||||
SetName(string.Empty);
|
||||
ItemType = ItemType.ConfSetting;
|
||||
SetFieldValue<ItemType>(Models.Metadata.DatItem.TypeKey, ItemType.ConfSetting);
|
||||
SetFieldValue<Machine>(DatItem.MachineKey, new Machine());
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -54,9 +54,9 @@ namespace SabreTools.DatItems.Formats
|
||||
public ConfSetting(Models.Metadata.ConfSetting? item)
|
||||
{
|
||||
_internal = item ?? [];
|
||||
Machine = new Machine();
|
||||
|
||||
ItemType = ItemType.ConfSetting;
|
||||
SetFieldValue<ItemType>(Models.Metadata.DatItem.TypeKey, ItemType.ConfSetting);
|
||||
SetFieldValue<Machine>(DatItem.MachineKey, new Machine());
|
||||
}
|
||||
|
||||
#endregion
|
||||
@@ -68,13 +68,6 @@ namespace SabreTools.DatItems.Formats
|
||||
{
|
||||
return new ConfSetting()
|
||||
{
|
||||
ItemType = this.ItemType,
|
||||
DupeType = this.DupeType,
|
||||
|
||||
Machine = this.Machine.Clone() as Machine ?? new Machine(),
|
||||
Source = this.Source?.Clone() as Source,
|
||||
Remove = this.Remove,
|
||||
|
||||
_internal = this._internal?.Clone() as Models.Metadata.ConfSetting ?? [],
|
||||
};
|
||||
}
|
||||
|
||||
@@ -62,10 +62,10 @@ namespace SabreTools.DatItems.Formats
|
||||
public Configuration()
|
||||
{
|
||||
_internal = new Models.Metadata.Configuration();
|
||||
Machine = new Machine();
|
||||
|
||||
SetName(string.Empty);
|
||||
ItemType = ItemType.Configuration;
|
||||
SetFieldValue<ItemType>(Models.Metadata.DatItem.TypeKey, ItemType.Configuration);
|
||||
SetFieldValue<Machine>(DatItem.MachineKey, new Machine());
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -74,9 +74,9 @@ namespace SabreTools.DatItems.Formats
|
||||
public Configuration(Models.Metadata.Configuration? item)
|
||||
{
|
||||
_internal = item ?? [];
|
||||
Machine = new Machine();
|
||||
|
||||
ItemType = ItemType.Configuration;
|
||||
SetFieldValue<ItemType>(Models.Metadata.DatItem.TypeKey, ItemType.Configuration);
|
||||
SetFieldValue<Machine>(DatItem.MachineKey, new Machine());
|
||||
}
|
||||
|
||||
#endregion
|
||||
@@ -88,13 +88,6 @@ namespace SabreTools.DatItems.Formats
|
||||
{
|
||||
return new Configuration()
|
||||
{
|
||||
ItemType = this.ItemType,
|
||||
DupeType = this.DupeType,
|
||||
|
||||
Machine = this.Machine.Clone() as Machine ?? new Machine(),
|
||||
Source = this.Source?.Clone() as Source,
|
||||
Remove = this.Remove,
|
||||
|
||||
_internal = this._internal?.Clone() as Models.Metadata.Configuration ?? [],
|
||||
};
|
||||
}
|
||||
|
||||
@@ -18,9 +18,9 @@ namespace SabreTools.DatItems.Formats
|
||||
public Control()
|
||||
{
|
||||
_internal = new Models.Metadata.Control();
|
||||
Machine = new Machine();
|
||||
|
||||
ItemType = ItemType.Control;
|
||||
SetFieldValue<ItemType>(Models.Metadata.DatItem.TypeKey, ItemType.Control);
|
||||
SetFieldValue<Machine>(DatItem.MachineKey, new Machine());
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -29,9 +29,9 @@ namespace SabreTools.DatItems.Formats
|
||||
public Control(Models.Metadata.Control? item)
|
||||
{
|
||||
_internal = item ?? [];
|
||||
Machine = new Machine();
|
||||
|
||||
ItemType = ItemType.Control;
|
||||
SetFieldValue<ItemType>(Models.Metadata.DatItem.TypeKey, ItemType.Control);
|
||||
SetFieldValue<Machine>(DatItem.MachineKey, new Machine());
|
||||
}
|
||||
|
||||
#endregion
|
||||
@@ -43,13 +43,6 @@ namespace SabreTools.DatItems.Formats
|
||||
{
|
||||
return new Control()
|
||||
{
|
||||
ItemType = this.ItemType,
|
||||
DupeType = this.DupeType,
|
||||
|
||||
Machine = this.Machine.Clone() as Machine ?? new Machine(),
|
||||
Source = this.Source?.Clone() as Source,
|
||||
Remove = this.Remove,
|
||||
|
||||
_internal = this._internal?.Clone() as Models.Metadata.Control ?? [],
|
||||
};
|
||||
}
|
||||
|
||||
@@ -29,10 +29,10 @@ namespace SabreTools.DatItems.Formats
|
||||
public DataArea()
|
||||
{
|
||||
_internal = new Models.Metadata.DataArea();
|
||||
Machine = new Machine();
|
||||
|
||||
SetName(string.Empty);
|
||||
ItemType = ItemType.DataArea;
|
||||
SetFieldValue<ItemType>(Models.Metadata.DatItem.TypeKey, ItemType.DataArea);
|
||||
SetFieldValue<Machine>(DatItem.MachineKey, new Machine());
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -41,9 +41,9 @@ namespace SabreTools.DatItems.Formats
|
||||
public DataArea(Models.Metadata.DataArea? item)
|
||||
{
|
||||
_internal = item ?? [];
|
||||
Machine = new Machine();
|
||||
|
||||
ItemType = ItemType.DataArea;
|
||||
SetFieldValue<ItemType>(Models.Metadata.DatItem.TypeKey, ItemType.DataArea);
|
||||
SetFieldValue<Machine>(DatItem.MachineKey, new Machine());
|
||||
}
|
||||
|
||||
#endregion
|
||||
@@ -55,13 +55,6 @@ namespace SabreTools.DatItems.Formats
|
||||
{
|
||||
return new DataArea()
|
||||
{
|
||||
ItemType = this.ItemType,
|
||||
DupeType = this.DupeType,
|
||||
|
||||
Machine = this.Machine.Clone() as Machine ?? new Machine(),
|
||||
Source = this.Source?.Clone() as Source,
|
||||
Remove = this.Remove,
|
||||
|
||||
_internal = this._internal?.Clone() as Models.Metadata.DataArea ?? [],
|
||||
};
|
||||
}
|
||||
|
||||
@@ -42,9 +42,9 @@ namespace SabreTools.DatItems.Formats
|
||||
public Device()
|
||||
{
|
||||
_internal = new Models.Metadata.Device();
|
||||
Machine = new Machine();
|
||||
|
||||
ItemType = ItemType.Device;
|
||||
SetFieldValue<ItemType>(Models.Metadata.DatItem.TypeKey, ItemType.Device);
|
||||
SetFieldValue<Machine>(DatItem.MachineKey, new Machine());
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -53,9 +53,9 @@ namespace SabreTools.DatItems.Formats
|
||||
public Device(Models.Metadata.Device? item)
|
||||
{
|
||||
_internal = item ?? [];
|
||||
Machine = new Machine();
|
||||
|
||||
ItemType = ItemType.Device;
|
||||
SetFieldValue<ItemType>(Models.Metadata.DatItem.TypeKey, ItemType.Device);
|
||||
SetFieldValue<Machine>(DatItem.MachineKey, new Machine());
|
||||
}
|
||||
|
||||
#endregion
|
||||
@@ -67,13 +67,6 @@ namespace SabreTools.DatItems.Formats
|
||||
{
|
||||
return new Device()
|
||||
{
|
||||
ItemType = this.ItemType,
|
||||
DupeType = this.DupeType,
|
||||
|
||||
Machine = this.Machine.Clone() as Machine ?? new Machine(),
|
||||
Source = this.Source?.Clone() as Source,
|
||||
Remove = this.Remove,
|
||||
|
||||
_internal = this._internal?.Clone() as Models.Metadata.Device ?? [],
|
||||
};
|
||||
}
|
||||
|
||||
@@ -28,10 +28,10 @@ namespace SabreTools.DatItems.Formats
|
||||
public DeviceReference()
|
||||
{
|
||||
_internal = new Models.Metadata.DeviceRef();
|
||||
Machine = new Machine();
|
||||
|
||||
SetName(string.Empty);
|
||||
ItemType = ItemType.DeviceReference;
|
||||
SetFieldValue<ItemType>(Models.Metadata.DatItem.TypeKey, ItemType.DeviceReference);
|
||||
SetFieldValue<Machine>(DatItem.MachineKey, new Machine());
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -40,9 +40,9 @@ namespace SabreTools.DatItems.Formats
|
||||
public DeviceReference(Models.Metadata.DeviceRef? item)
|
||||
{
|
||||
_internal = item ?? [];
|
||||
Machine = new Machine();
|
||||
|
||||
ItemType = ItemType.DeviceReference;
|
||||
SetFieldValue<ItemType>(Models.Metadata.DatItem.TypeKey, ItemType.DeviceReference);
|
||||
SetFieldValue<Machine>(DatItem.MachineKey, new Machine());
|
||||
}
|
||||
|
||||
#endregion
|
||||
@@ -54,13 +54,6 @@ namespace SabreTools.DatItems.Formats
|
||||
{
|
||||
return new DeviceReference()
|
||||
{
|
||||
ItemType = this.ItemType,
|
||||
DupeType = this.DupeType,
|
||||
|
||||
Machine = this.Machine.Clone() as Machine ?? new Machine(),
|
||||
Source = this.Source?.Clone() as Source,
|
||||
Remove = this.Remove,
|
||||
|
||||
_internal = this._internal?.Clone() as Models.Metadata.DeviceRef ?? [],
|
||||
};
|
||||
}
|
||||
|
||||
@@ -28,10 +28,10 @@ namespace SabreTools.DatItems.Formats
|
||||
public DipLocation()
|
||||
{
|
||||
_internal = new Models.Metadata.DipLocation();
|
||||
Machine = new Machine();
|
||||
|
||||
SetName(string.Empty);
|
||||
ItemType = ItemType.DipLocation;
|
||||
SetFieldValue<ItemType>(Models.Metadata.DatItem.TypeKey, ItemType.DipLocation);
|
||||
SetFieldValue<Machine>(DatItem.MachineKey, new Machine());
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -40,9 +40,9 @@ namespace SabreTools.DatItems.Formats
|
||||
public DipLocation(Models.Metadata.DipLocation? item)
|
||||
{
|
||||
_internal = item ?? [];
|
||||
Machine = new Machine();
|
||||
|
||||
ItemType = ItemType.DipLocation;
|
||||
SetFieldValue<ItemType>(Models.Metadata.DatItem.TypeKey, ItemType.DipLocation);
|
||||
SetFieldValue<Machine>(DatItem.MachineKey, new Machine());
|
||||
}
|
||||
|
||||
#endregion
|
||||
@@ -54,13 +54,6 @@ namespace SabreTools.DatItems.Formats
|
||||
{
|
||||
return new DipLocation()
|
||||
{
|
||||
ItemType = this.ItemType,
|
||||
DupeType = this.DupeType,
|
||||
|
||||
Machine = this.Machine.Clone() as Machine ?? new Machine(),
|
||||
Source = this.Source?.Clone() as Source,
|
||||
Remove = this.Remove,
|
||||
|
||||
_internal = this._internal?.Clone() as Models.Metadata.DipLocation ?? [],
|
||||
};
|
||||
}
|
||||
|
||||
@@ -10,6 +10,15 @@ namespace SabreTools.DatItems.Formats
|
||||
[JsonObject("dipswitch"), XmlRoot("dipswitch")]
|
||||
public class DipSwitch : DatItem
|
||||
{
|
||||
#region Constants
|
||||
|
||||
/// <summary>
|
||||
/// Non-standard key for inverted logic
|
||||
/// </summary>
|
||||
public const string PartKey = "PART";
|
||||
|
||||
#endregion
|
||||
|
||||
#region Fields
|
||||
|
||||
[JsonIgnore]
|
||||
@@ -47,7 +56,7 @@ namespace SabreTools.DatItems.Formats
|
||||
{
|
||||
get
|
||||
{
|
||||
var part = GetFieldValue<Part?>("PART");
|
||||
var part = GetFieldValue<Part?>(DipSwitch.PartKey);
|
||||
return part != null
|
||||
&& (!string.IsNullOrEmpty(part.GetName())
|
||||
|| !string.IsNullOrEmpty(part.GetFieldValue<string?>(Models.Metadata.Part.InterfaceKey)));
|
||||
@@ -74,10 +83,10 @@ namespace SabreTools.DatItems.Formats
|
||||
public DipSwitch()
|
||||
{
|
||||
_internal = new Models.Metadata.DipSwitch();
|
||||
Machine = new Machine();
|
||||
|
||||
SetName(string.Empty);
|
||||
ItemType = ItemType.DipSwitch;
|
||||
SetFieldValue<ItemType>(Models.Metadata.DatItem.TypeKey, ItemType.DipSwitch);
|
||||
SetFieldValue<Machine>(DatItem.MachineKey, new Machine());
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -86,9 +95,9 @@ namespace SabreTools.DatItems.Formats
|
||||
public DipSwitch(Models.Metadata.DipSwitch? item)
|
||||
{
|
||||
_internal = item ?? [];
|
||||
Machine = new Machine();
|
||||
|
||||
ItemType = ItemType.DipSwitch;
|
||||
SetFieldValue<ItemType>(Models.Metadata.DatItem.TypeKey, ItemType.DipSwitch);
|
||||
SetFieldValue<Machine>(DatItem.MachineKey, new Machine());
|
||||
}
|
||||
|
||||
#endregion
|
||||
@@ -100,13 +109,6 @@ namespace SabreTools.DatItems.Formats
|
||||
{
|
||||
return new DipSwitch()
|
||||
{
|
||||
ItemType = this.ItemType,
|
||||
DupeType = this.DupeType,
|
||||
|
||||
Machine = this.Machine.Clone() as Machine ?? new Machine(),
|
||||
Source = this.Source?.Clone() as Source,
|
||||
Remove = this.Remove,
|
||||
|
||||
_internal = this._internal?.Clone() as Models.Metadata.DipSwitch ?? [],
|
||||
};
|
||||
}
|
||||
|
||||
@@ -42,10 +42,10 @@ namespace SabreTools.DatItems.Formats
|
||||
public DipValue()
|
||||
{
|
||||
_internal = new Models.Metadata.DipValue();
|
||||
Machine = new Machine();
|
||||
|
||||
SetName(string.Empty);
|
||||
ItemType = ItemType.DipValue;
|
||||
SetFieldValue<ItemType>(Models.Metadata.DatItem.TypeKey, ItemType.DipValue);
|
||||
SetFieldValue<Machine>(DatItem.MachineKey, new Machine());
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -54,9 +54,9 @@ namespace SabreTools.DatItems.Formats
|
||||
public DipValue(Models.Metadata.DipValue? item)
|
||||
{
|
||||
_internal = item ?? [];
|
||||
Machine = new Machine();
|
||||
|
||||
ItemType = ItemType.DipValue;
|
||||
SetFieldValue<ItemType>(Models.Metadata.DatItem.TypeKey, ItemType.DipValue);
|
||||
SetFieldValue<Machine>(DatItem.MachineKey, new Machine());
|
||||
}
|
||||
|
||||
#endregion
|
||||
@@ -68,13 +68,6 @@ namespace SabreTools.DatItems.Formats
|
||||
{
|
||||
return new DipValue()
|
||||
{
|
||||
ItemType = this.ItemType,
|
||||
DupeType = this.DupeType,
|
||||
|
||||
Machine = this.Machine.Clone() as Machine ?? new Machine(),
|
||||
Source = this.Source?.Clone() as Source,
|
||||
Remove = this.Remove,
|
||||
|
||||
_internal = this._internal?.Clone() as Models.Metadata.DipValue ?? [],
|
||||
};
|
||||
}
|
||||
|
||||
@@ -12,6 +12,20 @@ namespace SabreTools.DatItems.Formats
|
||||
[JsonObject("disk"), XmlRoot("disk")]
|
||||
public class Disk : DatItem
|
||||
{
|
||||
#region Constants
|
||||
|
||||
/// <summary>
|
||||
/// Non-standard key for inverted logic
|
||||
/// </summary>
|
||||
public const string DiskAreaKey = "DISKAREA";
|
||||
|
||||
/// <summary>
|
||||
/// Non-standard key for inverted logic
|
||||
/// </summary>
|
||||
public const string PartKey = "PART";
|
||||
|
||||
#endregion
|
||||
|
||||
#region Fields
|
||||
|
||||
[JsonIgnore]
|
||||
@@ -19,7 +33,7 @@ namespace SabreTools.DatItems.Formats
|
||||
{
|
||||
get
|
||||
{
|
||||
var diskArea = GetFieldValue<DiskArea?>("DISKAREA");
|
||||
var diskArea = GetFieldValue<DiskArea?>(Disk.DiskAreaKey);
|
||||
return diskArea != null && !string.IsNullOrEmpty(diskArea.GetName());
|
||||
}
|
||||
}
|
||||
@@ -29,7 +43,7 @@ namespace SabreTools.DatItems.Formats
|
||||
{
|
||||
get
|
||||
{
|
||||
var part = GetFieldValue<Part?>("PART");
|
||||
var part = GetFieldValue<Part?>(Disk.PartKey);
|
||||
return part != null
|
||||
&& (!string.IsNullOrEmpty(part.GetName())
|
||||
|| !string.IsNullOrEmpty(part.GetFieldValue<string?>(Models.Metadata.Part.InterfaceKey)));
|
||||
@@ -56,11 +70,11 @@ namespace SabreTools.DatItems.Formats
|
||||
public Disk()
|
||||
{
|
||||
_internal = new Models.Metadata.Disk();
|
||||
Machine = new Machine();
|
||||
|
||||
SetName(string.Empty);
|
||||
ItemType = ItemType.Disk;
|
||||
DupeType = 0x00;
|
||||
SetFieldValue<ItemType>(Models.Metadata.DatItem.TypeKey, ItemType.Disk);
|
||||
SetFieldValue<DupeType>(DatItem.DupeTypeKey, 0x00);
|
||||
SetFieldValue<Machine>(DatItem.MachineKey, new Machine());
|
||||
SetFieldValue<ItemStatus>(Models.Metadata.Disk.StatusKey, ItemStatus.None);
|
||||
}
|
||||
|
||||
@@ -70,14 +84,14 @@ namespace SabreTools.DatItems.Formats
|
||||
public Disk(BaseFile baseFile)
|
||||
{
|
||||
_internal = new Models.Metadata.Disk();
|
||||
Machine = new Machine();
|
||||
|
||||
SetName(baseFile.Filename);
|
||||
SetFieldValue<string?>(Models.Metadata.Disk.MD5Key, TextHelper.ByteArrayToString(baseFile.MD5));
|
||||
SetFieldValue<string?>(Models.Metadata.Disk.SHA1Key, TextHelper.ByteArrayToString(baseFile.SHA1));
|
||||
|
||||
ItemType = ItemType.Disk;
|
||||
DupeType = 0x00;
|
||||
SetFieldValue<ItemType>(Models.Metadata.DatItem.TypeKey, ItemType.Disk);
|
||||
SetFieldValue<DupeType>(DatItem.DupeTypeKey, 0x00);
|
||||
SetFieldValue<Machine>(DatItem.MachineKey, new Machine());
|
||||
SetFieldValue<ItemStatus>(Models.Metadata.Disk.StatusKey, ItemStatus.None);
|
||||
}
|
||||
|
||||
@@ -87,9 +101,9 @@ namespace SabreTools.DatItems.Formats
|
||||
public Disk(Models.Metadata.Disk? item)
|
||||
{
|
||||
_internal = item ?? [];
|
||||
Machine = new Machine();
|
||||
|
||||
ItemType = ItemType.Disk;
|
||||
SetFieldValue<ItemType>(Models.Metadata.DatItem.TypeKey, ItemType.Disk);
|
||||
SetFieldValue<Machine>(DatItem.MachineKey, new Machine());
|
||||
}
|
||||
|
||||
#endregion
|
||||
@@ -101,13 +115,6 @@ namespace SabreTools.DatItems.Formats
|
||||
{
|
||||
return new Disk()
|
||||
{
|
||||
ItemType = this.ItemType,
|
||||
DupeType = this.DupeType,
|
||||
|
||||
Machine = this.Machine.Clone() as Machine ?? new Machine(),
|
||||
Source = this.Source?.Clone() as Source,
|
||||
Remove = this.Remove,
|
||||
|
||||
_internal = this._internal?.Clone() as Models.Metadata.Disk ?? [],
|
||||
};
|
||||
}
|
||||
@@ -120,7 +127,7 @@ namespace SabreTools.DatItems.Formats
|
||||
return new BaseFile()
|
||||
{
|
||||
Filename = this.GetName(),
|
||||
Parent = this.Machine.GetFieldValue<string?>(Models.Metadata.Machine.NameKey),
|
||||
Parent = GetFieldValue<Machine>(DatItem.MachineKey)!.GetFieldValue<string?>(Models.Metadata.Machine.NameKey),
|
||||
MD5 = TextHelper.StringToByteArray(GetFieldValue<string?>(Models.Metadata.Disk.MD5Key)),
|
||||
SHA1 = TextHelper.StringToByteArray(GetFieldValue<string?>(Models.Metadata.Disk.SHA1Key)),
|
||||
};
|
||||
@@ -132,17 +139,12 @@ namespace SabreTools.DatItems.Formats
|
||||
/// <returns></returns>
|
||||
public Rom ConvertToRom()
|
||||
{
|
||||
var rom = new Rom(_internal.ConvertToRom())
|
||||
{
|
||||
ItemType = ItemType.Rom,
|
||||
DupeType = this.DupeType,
|
||||
|
||||
Machine = this.Machine.Clone() as Machine ?? new Machine(),
|
||||
Source = this.Source?.Clone() as Source,
|
||||
Remove = this.Remove,
|
||||
};
|
||||
|
||||
rom.GetFieldValue<DataArea?>("DATAAREA")?.SetName(this.GetFieldValue<DiskArea?>("DISKAREA")?.GetName());
|
||||
var rom = new Rom(_internal.ConvertToRom());
|
||||
rom.GetFieldValue<DataArea?>(Rom.DataAreaKey)?.SetName(this.GetFieldValue<DiskArea?>(Disk.DiskAreaKey)?.GetName());
|
||||
rom.SetFieldValue<DupeType>(DatItem.DupeTypeKey, GetFieldValue<DupeType>(DatItem.DupeTypeKey));
|
||||
rom.SetFieldValue<Machine>(DatItem.MachineKey, GetFieldValue<Machine>(DatItem.MachineKey)!.Clone() as Machine ?? new Machine());
|
||||
rom.SetFieldValue<bool>(DatItem.RemoveKey, GetFieldValue<bool>(DatItem.RemoveKey));
|
||||
rom.SetFieldValue<Source?>(DatItem.SourceKey, GetFieldValue<Source?>(DatItem.SourceKey));
|
||||
|
||||
return rom;
|
||||
}
|
||||
|
||||
@@ -29,10 +29,10 @@ namespace SabreTools.DatItems.Formats
|
||||
public DiskArea()
|
||||
{
|
||||
_internal = new Models.Metadata.DiskArea();
|
||||
Machine = new Machine();
|
||||
|
||||
SetName(string.Empty);
|
||||
ItemType = ItemType.DiskArea;
|
||||
SetFieldValue<ItemType>(Models.Metadata.DatItem.TypeKey, ItemType.DiskArea);
|
||||
SetFieldValue<Machine>(DatItem.MachineKey, new Machine());
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -41,9 +41,9 @@ namespace SabreTools.DatItems.Formats
|
||||
public DiskArea(Models.Metadata.DiskArea? item)
|
||||
{
|
||||
_internal = item ?? [];
|
||||
Machine = new Machine();
|
||||
|
||||
ItemType = ItemType.DiskArea;
|
||||
SetFieldValue<ItemType>(Models.Metadata.DatItem.TypeKey, ItemType.DiskArea);
|
||||
SetFieldValue<Machine>(DatItem.MachineKey, new Machine());
|
||||
}
|
||||
|
||||
#endregion
|
||||
@@ -55,13 +55,6 @@ namespace SabreTools.DatItems.Formats
|
||||
{
|
||||
return new DiskArea()
|
||||
{
|
||||
ItemType = this.ItemType,
|
||||
DupeType = this.DupeType,
|
||||
|
||||
Machine = this.Machine.Clone() as Machine ?? new Machine(),
|
||||
Source = this.Source?.Clone() as Source,
|
||||
Remove = this.Remove,
|
||||
|
||||
_internal = this._internal?.Clone() as Models.Metadata.DiskArea ?? [],
|
||||
};
|
||||
}
|
||||
|
||||
@@ -18,9 +18,9 @@ namespace SabreTools.DatItems.Formats
|
||||
public Display()
|
||||
{
|
||||
_internal = new Models.Metadata.Display();
|
||||
Machine = new Machine();
|
||||
|
||||
ItemType = ItemType.Display;
|
||||
SetFieldValue<ItemType>(Models.Metadata.DatItem.TypeKey, ItemType.Display);
|
||||
SetFieldValue<Machine>(DatItem.MachineKey, new Machine());
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -29,9 +29,9 @@ namespace SabreTools.DatItems.Formats
|
||||
public Display(Models.Metadata.Display? item)
|
||||
{
|
||||
_internal = item ?? [];
|
||||
Machine = new Machine();
|
||||
|
||||
ItemType = ItemType.Display;
|
||||
SetFieldValue<ItemType>(Models.Metadata.DatItem.TypeKey, ItemType.Display);
|
||||
SetFieldValue<Machine>(DatItem.MachineKey, new Machine());
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -41,9 +41,9 @@ namespace SabreTools.DatItems.Formats
|
||||
{
|
||||
// TODO: Determine what transformation is needed here
|
||||
_internal = item ?? [];
|
||||
Machine = new Machine();
|
||||
|
||||
ItemType = ItemType.Display;
|
||||
SetFieldValue<ItemType>(Models.Metadata.DatItem.TypeKey, ItemType.Display);
|
||||
SetFieldValue<Machine>(DatItem.MachineKey, new Machine());
|
||||
}
|
||||
|
||||
#endregion
|
||||
@@ -55,13 +55,6 @@ namespace SabreTools.DatItems.Formats
|
||||
{
|
||||
return new Display()
|
||||
{
|
||||
ItemType = this.ItemType,
|
||||
DupeType = this.DupeType,
|
||||
|
||||
Machine = this.Machine.Clone() as Machine ?? new Machine(),
|
||||
Source = this.Source?.Clone() as Source,
|
||||
Remove = this.Remove,
|
||||
|
||||
_internal = this._internal?.Clone() as Models.Metadata.Display ?? [],
|
||||
};
|
||||
}
|
||||
|
||||
@@ -21,9 +21,9 @@ namespace SabreTools.DatItems.Formats
|
||||
public Driver()
|
||||
{
|
||||
_internal = new Models.Metadata.Driver();
|
||||
Machine = new Machine();
|
||||
|
||||
ItemType = ItemType.Driver;
|
||||
SetFieldValue<ItemType>(Models.Metadata.DatItem.TypeKey, ItemType.Driver);
|
||||
SetFieldValue<Machine>(DatItem.MachineKey, new Machine());
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -32,9 +32,9 @@ namespace SabreTools.DatItems.Formats
|
||||
public Driver(Models.Metadata.Driver? item)
|
||||
{
|
||||
_internal = item ?? [];
|
||||
Machine = new Machine();
|
||||
|
||||
ItemType = ItemType.Driver;
|
||||
SetFieldValue<ItemType>(Models.Metadata.DatItem.TypeKey, ItemType.Driver);
|
||||
SetFieldValue<Machine>(DatItem.MachineKey, new Machine());
|
||||
}
|
||||
|
||||
#endregion
|
||||
@@ -46,13 +46,6 @@ namespace SabreTools.DatItems.Formats
|
||||
{
|
||||
return new Driver()
|
||||
{
|
||||
ItemType = this.ItemType,
|
||||
DupeType = this.DupeType,
|
||||
|
||||
Machine = this.Machine.Clone() as Machine ?? new Machine(),
|
||||
Source = this.Source?.Clone() as Source,
|
||||
Remove = this.Remove,
|
||||
|
||||
_internal = this._internal?.Clone() as Models.Metadata.Driver ?? [],
|
||||
};
|
||||
}
|
||||
|
||||
@@ -28,10 +28,10 @@ namespace SabreTools.DatItems.Formats
|
||||
public Extension()
|
||||
{
|
||||
_internal = new Models.Metadata.Extension();
|
||||
Machine = new Machine();
|
||||
|
||||
SetName(string.Empty);
|
||||
ItemType = ItemType.Extension;
|
||||
SetFieldValue<ItemType>(Models.Metadata.DatItem.TypeKey, ItemType.Extension);
|
||||
SetFieldValue<Machine>(DatItem.MachineKey, new Machine());
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -40,9 +40,9 @@ namespace SabreTools.DatItems.Formats
|
||||
public Extension(Models.Metadata.Extension? item)
|
||||
{
|
||||
_internal = item ?? [];
|
||||
Machine = new Machine();
|
||||
|
||||
ItemType = ItemType.Extension;
|
||||
SetFieldValue<ItemType>(Models.Metadata.DatItem.TypeKey, ItemType.Extension);
|
||||
SetFieldValue<Machine>(DatItem.MachineKey, new Machine());
|
||||
}
|
||||
|
||||
#endregion
|
||||
@@ -54,13 +54,6 @@ namespace SabreTools.DatItems.Formats
|
||||
{
|
||||
return new Extension()
|
||||
{
|
||||
ItemType = this.ItemType,
|
||||
DupeType = this.DupeType,
|
||||
|
||||
Machine = this.Machine.Clone() as Machine ?? new Machine(),
|
||||
Source = this.Source?.Clone() as Source,
|
||||
Remove = this.Remove,
|
||||
|
||||
_internal = this._internal?.Clone() as Models.Metadata.Extension ?? [],
|
||||
};
|
||||
}
|
||||
|
||||
@@ -18,9 +18,9 @@ namespace SabreTools.DatItems.Formats
|
||||
public Feature()
|
||||
{
|
||||
_internal = new Models.Metadata.Feature();
|
||||
Machine = new Machine();
|
||||
|
||||
ItemType = ItemType.Feature;
|
||||
SetFieldValue<ItemType>(Models.Metadata.DatItem.TypeKey, ItemType.Feature);
|
||||
SetFieldValue<Machine>(DatItem.MachineKey, new Machine());
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -29,9 +29,9 @@ namespace SabreTools.DatItems.Formats
|
||||
public Feature(Models.Metadata.Feature? item)
|
||||
{
|
||||
_internal = item ?? [];
|
||||
Machine = new Machine();
|
||||
|
||||
ItemType = ItemType.Feature;
|
||||
SetFieldValue<ItemType>(Models.Metadata.DatItem.TypeKey, ItemType.Feature);
|
||||
SetFieldValue<Machine>(DatItem.MachineKey, new Machine());
|
||||
}
|
||||
|
||||
#endregion
|
||||
@@ -43,13 +43,6 @@ namespace SabreTools.DatItems.Formats
|
||||
{
|
||||
return new Feature()
|
||||
{
|
||||
ItemType = this.ItemType,
|
||||
DupeType = this.DupeType,
|
||||
|
||||
Machine = this.Machine.Clone() as Machine ?? new Machine(),
|
||||
Source = this.Source?.Clone() as Source,
|
||||
Remove = this.Remove,
|
||||
|
||||
_internal = this._internal?.Clone() as Models.Metadata.Feature ?? [],
|
||||
};
|
||||
}
|
||||
|
||||
@@ -100,7 +100,7 @@ namespace SabreTools.DatItems.Formats
|
||||
/// </summary>
|
||||
public File()
|
||||
{
|
||||
ItemType = ItemType.File;
|
||||
SetFieldValue<ItemType>(Models.Metadata.DatItem.TypeKey, ItemType.File);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -114,8 +114,8 @@ namespace SabreTools.DatItems.Formats
|
||||
_sha1 = baseFile.SHA1;
|
||||
_sha256 = baseFile.SHA256;
|
||||
|
||||
ItemType = ItemType.File;
|
||||
DupeType = 0x00;
|
||||
SetFieldValue<ItemType>(Models.Metadata.DatItem.TypeKey, ItemType.File);
|
||||
SetFieldValue<DupeType>(DatItem.DupeTypeKey, 0x00);
|
||||
}
|
||||
|
||||
#endregion
|
||||
@@ -125,15 +125,8 @@ namespace SabreTools.DatItems.Formats
|
||||
/// <inheritdoc/>
|
||||
public override object Clone()
|
||||
{
|
||||
return new File()
|
||||
var file = new File()
|
||||
{
|
||||
ItemType = this.ItemType,
|
||||
DupeType = this.DupeType,
|
||||
|
||||
Machine = this.Machine.Clone() as Machine ?? new Machine(),
|
||||
Source = this.Source?.Clone() as Source,
|
||||
Remove = this.Remove,
|
||||
|
||||
Id = this.Id,
|
||||
Extension = this.Extension,
|
||||
Size = this.Size,
|
||||
@@ -143,6 +136,12 @@ namespace SabreTools.DatItems.Formats
|
||||
_sha256 = this._sha256,
|
||||
Format = this.Format,
|
||||
};
|
||||
file.SetFieldValue<DupeType>(DatItem.DupeTypeKey, GetFieldValue<DupeType>(DatItem.DupeTypeKey));
|
||||
file.SetFieldValue<Machine>(DatItem.MachineKey, GetFieldValue<Machine>(DatItem.MachineKey)!.Clone() as Machine ?? new Machine());
|
||||
file.SetFieldValue<bool>(DatItem.RemoveKey, GetFieldValue<bool>(DatItem.RemoveKey));
|
||||
file.SetFieldValue<Source?>(DatItem.SourceKey, GetFieldValue<Source?>(DatItem.SourceKey));
|
||||
|
||||
return file;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -152,7 +151,7 @@ namespace SabreTools.DatItems.Formats
|
||||
{
|
||||
return new BaseFile()
|
||||
{
|
||||
Parent = this.Machine.GetFieldValue<string?>(Models.Metadata.Machine.NameKey),
|
||||
Parent = GetFieldValue<Machine>(DatItem.MachineKey)!.GetFieldValue<string?>(Models.Metadata.Machine.NameKey),
|
||||
CRC = this._crc,
|
||||
MD5 = this._md5,
|
||||
SHA1 = this._sha1,
|
||||
@@ -166,20 +165,16 @@ namespace SabreTools.DatItems.Formats
|
||||
/// <returns></returns>
|
||||
public Rom ConvertToRom()
|
||||
{
|
||||
var rom = new Rom()
|
||||
{
|
||||
ItemType = ItemType.Rom,
|
||||
DupeType = this.DupeType,
|
||||
|
||||
Machine = this.Machine.Clone() as Machine ?? new Machine(),
|
||||
Source = this.Source?.Clone() as Source,
|
||||
Remove = this.Remove,
|
||||
};
|
||||
var rom = new Rom();
|
||||
rom.SetName($"{this.Id}.{this.Extension}");
|
||||
rom.SetFieldValue<string?>(Models.Metadata.Rom.CRCKey, CRC);
|
||||
rom.SetFieldValue<DupeType>(DatItem.DupeTypeKey, GetFieldValue<DupeType>(DatItem.DupeTypeKey));
|
||||
rom.SetFieldValue<Machine>(DatItem.MachineKey, GetFieldValue<Machine>(DatItem.MachineKey)!.Clone() as Machine ?? new Machine());
|
||||
rom.SetFieldValue<string?>(Models.Metadata.Rom.MD5Key, MD5);
|
||||
rom.SetFieldValue<bool>(DatItem.RemoveKey, GetFieldValue<bool>(DatItem.RemoveKey));
|
||||
rom.SetFieldValue<string?>(Models.Metadata.Rom.SHA1Key, SHA1);
|
||||
rom.SetFieldValue<string?>(Models.Metadata.Rom.SHA256Key, SHA256);
|
||||
rom.SetFieldValue<Source?>(DatItem.SourceKey, GetFieldValue<Source?>(DatItem.SourceKey));
|
||||
|
||||
return rom;
|
||||
}
|
||||
@@ -194,7 +189,7 @@ namespace SabreTools.DatItems.Formats
|
||||
bool dupefound = false;
|
||||
|
||||
// If we don't have a file, return false
|
||||
if (ItemType != other?.ItemType)
|
||||
if (GetFieldValue<ItemType>(Models.Metadata.DatItem.TypeKey) != other?.GetFieldValue<ItemType>(Models.Metadata.DatItem.TypeKey))
|
||||
return dupefound;
|
||||
|
||||
// Otherwise, treat it as a File
|
||||
|
||||
@@ -28,10 +28,10 @@ namespace SabreTools.DatItems.Formats
|
||||
public Info()
|
||||
{
|
||||
_internal = new Models.Metadata.Info();
|
||||
Machine = new Machine();
|
||||
|
||||
SetName(string.Empty);
|
||||
ItemType = ItemType.Info;
|
||||
SetFieldValue<ItemType>(Models.Metadata.DatItem.TypeKey, ItemType.Info);
|
||||
SetFieldValue<Machine>(DatItem.MachineKey, new Machine());
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -40,9 +40,9 @@ namespace SabreTools.DatItems.Formats
|
||||
public Info(Models.Metadata.Info? item)
|
||||
{
|
||||
_internal = item ?? [];
|
||||
Machine = new Machine();
|
||||
|
||||
ItemType = ItemType.Info;
|
||||
SetFieldValue<ItemType>(Models.Metadata.DatItem.TypeKey, ItemType.Info);
|
||||
SetFieldValue<Machine>(DatItem.MachineKey, new Machine());
|
||||
}
|
||||
|
||||
#endregion
|
||||
@@ -54,13 +54,6 @@ namespace SabreTools.DatItems.Formats
|
||||
{
|
||||
return new Info()
|
||||
{
|
||||
ItemType = this.ItemType,
|
||||
DupeType = this.DupeType,
|
||||
|
||||
Machine = this.Machine.Clone() as Machine ?? new Machine(),
|
||||
Source = this.Source?.Clone() as Source,
|
||||
Remove = this.Remove,
|
||||
|
||||
_internal = this._internal?.Clone() as Models.Metadata.Info ?? [],
|
||||
};
|
||||
}
|
||||
|
||||
@@ -32,9 +32,9 @@ namespace SabreTools.DatItems.Formats
|
||||
public Input()
|
||||
{
|
||||
_internal = new Models.Metadata.Input();
|
||||
Machine = new Machine();
|
||||
|
||||
ItemType = ItemType.Input;
|
||||
SetFieldValue<ItemType>(Models.Metadata.DatItem.TypeKey, ItemType.Input);
|
||||
SetFieldValue<Machine>(DatItem.MachineKey, new Machine());
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -43,9 +43,9 @@ namespace SabreTools.DatItems.Formats
|
||||
public Input(Models.Metadata.Input? item)
|
||||
{
|
||||
_internal = item ?? [];
|
||||
Machine = new Machine();
|
||||
|
||||
ItemType = ItemType.Input;
|
||||
SetFieldValue<ItemType>(Models.Metadata.DatItem.TypeKey, ItemType.Input);
|
||||
SetFieldValue<Machine>(DatItem.MachineKey, new Machine());
|
||||
}
|
||||
|
||||
#endregion
|
||||
@@ -57,13 +57,6 @@ namespace SabreTools.DatItems.Formats
|
||||
{
|
||||
return new Input()
|
||||
{
|
||||
ItemType = this.ItemType,
|
||||
DupeType = this.DupeType,
|
||||
|
||||
Machine = this.Machine.Clone() as Machine ?? new Machine(),
|
||||
Source = this.Source?.Clone() as Source,
|
||||
Remove = this.Remove,
|
||||
|
||||
_internal = this._internal?.Clone() as Models.Metadata.Input ?? [],
|
||||
};
|
||||
}
|
||||
|
||||
@@ -28,10 +28,10 @@ namespace SabreTools.DatItems.Formats
|
||||
public Instance()
|
||||
{
|
||||
_internal = new Models.Metadata.Instance();
|
||||
Machine = new Machine();
|
||||
|
||||
SetName(string.Empty);
|
||||
ItemType = ItemType.Instance;
|
||||
SetFieldValue<ItemType>(Models.Metadata.DatItem.TypeKey, ItemType.Instance);
|
||||
SetFieldValue<Machine>(DatItem.MachineKey, new Machine());
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -40,9 +40,9 @@ namespace SabreTools.DatItems.Formats
|
||||
public Instance(Models.Metadata.Instance? item)
|
||||
{
|
||||
_internal = item ?? [];
|
||||
Machine = new Machine();
|
||||
|
||||
ItemType = ItemType.Instance;
|
||||
SetFieldValue<ItemType>(Models.Metadata.DatItem.TypeKey, ItemType.Instance);
|
||||
SetFieldValue<Machine>(DatItem.MachineKey, new Machine());
|
||||
}
|
||||
|
||||
#endregion
|
||||
@@ -54,13 +54,6 @@ namespace SabreTools.DatItems.Formats
|
||||
{
|
||||
return new Instance()
|
||||
{
|
||||
ItemType = this.ItemType,
|
||||
DupeType = this.DupeType,
|
||||
|
||||
Machine = this.Machine.Clone() as Machine ?? new Machine(),
|
||||
Source = this.Source?.Clone() as Source,
|
||||
Remove = this.Remove,
|
||||
|
||||
_internal = this._internal?.Clone() as Models.Metadata.Instance ?? [],
|
||||
};
|
||||
}
|
||||
|
||||
@@ -30,11 +30,11 @@ namespace SabreTools.DatItems.Formats
|
||||
public Media()
|
||||
{
|
||||
_internal = new Models.Metadata.Media();
|
||||
Machine = new Machine();
|
||||
|
||||
SetName(string.Empty);
|
||||
ItemType = ItemType.Media;
|
||||
DupeType = 0x00;
|
||||
SetFieldValue<ItemType>(Models.Metadata.DatItem.TypeKey, ItemType.Media);
|
||||
SetFieldValue<DupeType>(DatItem.DupeTypeKey, 0x00);
|
||||
SetFieldValue<Machine>(DatItem.MachineKey, new Machine());
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -43,10 +43,10 @@ namespace SabreTools.DatItems.Formats
|
||||
public Media(Models.Metadata.Media? item)
|
||||
{
|
||||
_internal = item ?? [];
|
||||
Machine = new Machine();
|
||||
|
||||
ItemType = ItemType.Media;
|
||||
DupeType = 0x00;
|
||||
SetFieldValue<ItemType>(Models.Metadata.DatItem.TypeKey, ItemType.Media);
|
||||
SetFieldValue<DupeType>(DatItem.DupeTypeKey, 0x00);
|
||||
SetFieldValue<Machine>(DatItem.MachineKey, new Machine());
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -56,7 +56,6 @@ namespace SabreTools.DatItems.Formats
|
||||
public Media(BaseFile baseFile)
|
||||
{
|
||||
_internal = new Models.Metadata.Media();
|
||||
Machine = new Machine();
|
||||
|
||||
SetName(baseFile.Filename);
|
||||
SetFieldValue<string?>(Models.Metadata.Media.MD5Key, TextHelper.ByteArrayToString(baseFile.MD5));
|
||||
@@ -64,8 +63,9 @@ namespace SabreTools.DatItems.Formats
|
||||
SetFieldValue<string?>(Models.Metadata.Media.SHA256Key, TextHelper.ByteArrayToString(baseFile.SHA256));
|
||||
SetFieldValue<string?>(Models.Metadata.Media.SpamSumKey, System.Text.Encoding.UTF8.GetString(baseFile.SpamSum ?? []));
|
||||
|
||||
ItemType = ItemType.Media;
|
||||
DupeType = 0x00;
|
||||
SetFieldValue<ItemType>(Models.Metadata.DatItem.TypeKey, ItemType.Media);
|
||||
SetFieldValue<DupeType>(DatItem.DupeTypeKey, 0x00);
|
||||
SetFieldValue<Machine>(DatItem.MachineKey, new Machine());
|
||||
}
|
||||
|
||||
#endregion
|
||||
@@ -77,13 +77,6 @@ namespace SabreTools.DatItems.Formats
|
||||
{
|
||||
return new Media()
|
||||
{
|
||||
ItemType = this.ItemType,
|
||||
DupeType = this.DupeType,
|
||||
|
||||
Machine = this.Machine.Clone() as Machine ?? new Machine(),
|
||||
Source = this.Source?.Clone() as Source,
|
||||
Remove = this.Remove,
|
||||
|
||||
_internal = this._internal?.Clone() as Models.Metadata.Media ?? [],
|
||||
};
|
||||
}
|
||||
@@ -96,7 +89,7 @@ namespace SabreTools.DatItems.Formats
|
||||
return new BaseFile()
|
||||
{
|
||||
Filename = this.GetName(),
|
||||
Parent = this.Machine.GetFieldValue<string?>(Models.Metadata.Machine.NameKey),
|
||||
Parent = GetFieldValue<Machine>(DatItem.MachineKey)!.GetFieldValue<string?>(Models.Metadata.Machine.NameKey),
|
||||
MD5 = TextHelper.StringToByteArray(GetFieldValue<string?>(Models.Metadata.Media.MD5Key)),
|
||||
SHA1 = TextHelper.StringToByteArray(GetFieldValue<string?>(Models.Metadata.Media.SHA1Key)),
|
||||
SHA256 = TextHelper.StringToByteArray(GetFieldValue<string?>(Models.Metadata.Media.SHA256Key)),
|
||||
@@ -110,15 +103,11 @@ namespace SabreTools.DatItems.Formats
|
||||
/// <returns></returns>
|
||||
public Rom ConvertToRom()
|
||||
{
|
||||
var rom = new Rom(_internal.ConvertToRom())
|
||||
{
|
||||
ItemType = ItemType.Rom,
|
||||
DupeType = this.DupeType,
|
||||
|
||||
Machine = this.Machine.Clone() as Machine ?? new Machine(),
|
||||
Source = this.Source?.Clone() as Source,
|
||||
Remove = this.Remove,
|
||||
};
|
||||
var rom = new Rom(_internal.ConvertToRom());
|
||||
rom.SetFieldValue<DupeType>(DatItem.DupeTypeKey, GetFieldValue<DupeType>(DatItem.DupeTypeKey));
|
||||
rom.SetFieldValue<Machine>(DatItem.MachineKey, GetFieldValue<Machine>(DatItem.MachineKey));
|
||||
rom.SetFieldValue<bool>(DatItem.RemoveKey, GetFieldValue<bool>(DatItem.RemoveKey));
|
||||
rom.SetFieldValue<Source?>(DatItem.SourceKey, GetFieldValue<Source?>(DatItem.SourceKey));
|
||||
|
||||
return rom;
|
||||
}
|
||||
|
||||
@@ -43,10 +43,10 @@ namespace SabreTools.DatItems.Formats
|
||||
public Part()
|
||||
{
|
||||
_internal = new Models.Metadata.Part();
|
||||
Machine = new Machine();
|
||||
|
||||
SetName(string.Empty);
|
||||
ItemType = ItemType.Part;
|
||||
SetFieldValue<ItemType>(Models.Metadata.DatItem.TypeKey, ItemType.Part);
|
||||
SetFieldValue<Machine>(DatItem.MachineKey, new Machine());
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -55,9 +55,9 @@ namespace SabreTools.DatItems.Formats
|
||||
public Part(Models.Metadata.Part? item)
|
||||
{
|
||||
_internal = item ?? [];
|
||||
Machine = new Machine();
|
||||
|
||||
ItemType = ItemType.Part;
|
||||
SetFieldValue<ItemType>(Models.Metadata.DatItem.TypeKey, ItemType.Part);
|
||||
SetFieldValue<Machine>(DatItem.MachineKey, new Machine());
|
||||
}
|
||||
|
||||
#endregion
|
||||
@@ -69,13 +69,6 @@ namespace SabreTools.DatItems.Formats
|
||||
{
|
||||
return new Part()
|
||||
{
|
||||
ItemType = this.ItemType,
|
||||
DupeType = this.DupeType,
|
||||
|
||||
Machine = this.Machine.Clone() as Machine ?? new Machine(),
|
||||
Source = this.Source?.Clone() as Source,
|
||||
Remove = this.Remove,
|
||||
|
||||
_internal = this._internal?.Clone() as Models.Metadata.Part ?? [],
|
||||
};
|
||||
}
|
||||
|
||||
@@ -28,10 +28,10 @@ namespace SabreTools.DatItems.Formats
|
||||
public PartFeature()
|
||||
{
|
||||
_internal = new Models.Metadata.Feature();
|
||||
Machine = new Machine();
|
||||
|
||||
SetName(string.Empty);
|
||||
ItemType = ItemType.PartFeature;
|
||||
SetFieldValue<ItemType>(Models.Metadata.DatItem.TypeKey, ItemType.PartFeature);
|
||||
SetFieldValue<Machine>(DatItem.MachineKey, new Machine());
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -40,9 +40,9 @@ namespace SabreTools.DatItems.Formats
|
||||
public PartFeature(Models.Metadata.Feature? item)
|
||||
{
|
||||
_internal = item ?? [];
|
||||
Machine = new Machine();
|
||||
|
||||
ItemType = ItemType.PartFeature;
|
||||
SetFieldValue<ItemType>(Models.Metadata.DatItem.TypeKey, ItemType.PartFeature);
|
||||
SetFieldValue<Machine>(DatItem.MachineKey, new Machine());
|
||||
}
|
||||
|
||||
#endregion
|
||||
@@ -54,13 +54,6 @@ namespace SabreTools.DatItems.Formats
|
||||
{
|
||||
return new PartFeature()
|
||||
{
|
||||
ItemType = this.ItemType,
|
||||
DupeType = this.DupeType,
|
||||
|
||||
Machine = this.Machine.Clone() as Machine ?? new Machine(),
|
||||
Source = this.Source?.Clone() as Source,
|
||||
Remove = this.Remove,
|
||||
|
||||
_internal = this._internal?.Clone() as Models.Metadata.Feature ?? [],
|
||||
};
|
||||
}
|
||||
|
||||
@@ -32,9 +32,9 @@ namespace SabreTools.DatItems.Formats
|
||||
public Port()
|
||||
{
|
||||
_internal = new Models.Metadata.Port();
|
||||
Machine = new Machine();
|
||||
|
||||
ItemType = ItemType.Port;
|
||||
SetFieldValue<ItemType>(Models.Metadata.DatItem.TypeKey, ItemType.Port);
|
||||
SetFieldValue<Machine>(DatItem.MachineKey, new Machine());
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -43,9 +43,9 @@ namespace SabreTools.DatItems.Formats
|
||||
public Port(Models.Metadata.Port? item)
|
||||
{
|
||||
_internal = item ?? [];
|
||||
Machine = new Machine();
|
||||
|
||||
ItemType = ItemType.Port;
|
||||
SetFieldValue<ItemType>(Models.Metadata.DatItem.TypeKey, ItemType.Port);
|
||||
SetFieldValue<Machine>(DatItem.MachineKey, new Machine());
|
||||
}
|
||||
|
||||
#endregion
|
||||
@@ -57,13 +57,6 @@ namespace SabreTools.DatItems.Formats
|
||||
{
|
||||
return new Port()
|
||||
{
|
||||
ItemType = this.ItemType,
|
||||
DupeType = this.DupeType,
|
||||
|
||||
Machine = this.Machine.Clone() as Machine ?? new Machine(),
|
||||
Source = this.Source?.Clone() as Source,
|
||||
Remove = this.Remove,
|
||||
|
||||
_internal = this._internal?.Clone() as Models.Metadata.Port ?? [],
|
||||
};
|
||||
}
|
||||
|
||||
@@ -28,10 +28,10 @@ namespace SabreTools.DatItems.Formats
|
||||
public RamOption()
|
||||
{
|
||||
_internal = new Models.Metadata.RamOption();
|
||||
Machine = new Machine();
|
||||
|
||||
SetName(string.Empty);
|
||||
ItemType = ItemType.RamOption;
|
||||
SetFieldValue<ItemType>(Models.Metadata.DatItem.TypeKey, ItemType.RamOption);
|
||||
SetFieldValue<Machine>(DatItem.MachineKey, new Machine());
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -40,9 +40,9 @@ namespace SabreTools.DatItems.Formats
|
||||
public RamOption(Models.Metadata.RamOption? item)
|
||||
{
|
||||
_internal = item ?? [];
|
||||
Machine = new Machine();
|
||||
|
||||
ItemType = ItemType.RamOption;
|
||||
SetFieldValue<ItemType>(Models.Metadata.DatItem.TypeKey, ItemType.RamOption);
|
||||
SetFieldValue<Machine>(DatItem.MachineKey, new Machine());
|
||||
}
|
||||
|
||||
#endregion
|
||||
@@ -54,13 +54,6 @@ namespace SabreTools.DatItems.Formats
|
||||
{
|
||||
return new RamOption()
|
||||
{
|
||||
ItemType = this.ItemType,
|
||||
DupeType = this.DupeType,
|
||||
|
||||
Machine = this.Machine.Clone() as Machine ?? new Machine(),
|
||||
Source = this.Source?.Clone() as Source,
|
||||
Remove = this.Remove,
|
||||
|
||||
_internal = this._internal?.Clone() as Models.Metadata.RamOption ?? [],
|
||||
};
|
||||
}
|
||||
|
||||
@@ -28,10 +28,10 @@ namespace SabreTools.DatItems.Formats
|
||||
public Release()
|
||||
{
|
||||
_internal = new Models.Metadata.Release();
|
||||
Machine = new Machine();
|
||||
|
||||
SetName(string.Empty);
|
||||
ItemType = ItemType.Release;
|
||||
SetFieldValue<ItemType>(Models.Metadata.DatItem.TypeKey, ItemType.Release);
|
||||
SetFieldValue<Machine>(DatItem.MachineKey, new Machine());
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -40,9 +40,9 @@ namespace SabreTools.DatItems.Formats
|
||||
public Release(Models.Metadata.Release? item)
|
||||
{
|
||||
_internal = item ?? [];
|
||||
Machine = new Machine();
|
||||
|
||||
ItemType = ItemType.Release;
|
||||
SetFieldValue<ItemType>(Models.Metadata.DatItem.TypeKey, ItemType.Release);
|
||||
SetFieldValue<Machine>(DatItem.MachineKey, new Machine());
|
||||
}
|
||||
|
||||
#endregion
|
||||
@@ -54,13 +54,6 @@ namespace SabreTools.DatItems.Formats
|
||||
{
|
||||
return new Release()
|
||||
{
|
||||
ItemType = this.ItemType,
|
||||
DupeType = this.DupeType,
|
||||
|
||||
Machine = this.Machine.Clone() as Machine ?? new Machine(),
|
||||
Source = this.Source?.Clone() as Source,
|
||||
Remove = this.Remove,
|
||||
|
||||
_internal = this._internal?.Clone() as Models.Metadata.Release ?? [],
|
||||
};
|
||||
}
|
||||
|
||||
@@ -113,7 +113,7 @@ namespace SabreTools.DatItems.Formats
|
||||
/// </summary>
|
||||
public ReleaseDetails()
|
||||
{
|
||||
ItemType = ItemType.ReleaseDetails;
|
||||
SetFieldValue<ItemType>(Models.Metadata.DatItem.TypeKey, ItemType.ReleaseDetails);
|
||||
}
|
||||
|
||||
#endregion
|
||||
@@ -123,15 +123,8 @@ namespace SabreTools.DatItems.Formats
|
||||
/// <inheritdoc/>
|
||||
public override object Clone()
|
||||
{
|
||||
return new ReleaseDetails()
|
||||
var releaseDetails = new ReleaseDetails()
|
||||
{
|
||||
ItemType = this.ItemType,
|
||||
DupeType = this.DupeType,
|
||||
|
||||
Machine = this.Machine.Clone() as Machine ?? new Machine(),
|
||||
Source = this.Source?.Clone() as Source,
|
||||
Remove = this.Remove,
|
||||
|
||||
Id = this.Id,
|
||||
DirName = this.DirName,
|
||||
RomInfo = this.RomInfo,
|
||||
@@ -148,6 +141,13 @@ namespace SabreTools.DatItems.Formats
|
||||
Region = this.Region,
|
||||
Origin = this.Origin,
|
||||
};
|
||||
releaseDetails.SetFieldValue<DupeType>(DatItem.DupeTypeKey, GetFieldValue<DupeType>(DatItem.DupeTypeKey));
|
||||
releaseDetails.SetFieldValue<Machine>(DatItem.MachineKey, GetFieldValue<Machine>(DatItem.MachineKey));
|
||||
releaseDetails.SetFieldValue<bool>(DatItem.RemoveKey, GetFieldValue<bool>(DatItem.RemoveKey));
|
||||
releaseDetails.SetFieldValue<Source?>(DatItem.SourceKey, GetFieldValue<Source?>(DatItem.SourceKey));
|
||||
releaseDetails.SetFieldValue<ItemType>(Models.Metadata.DatItem.TypeKey, GetFieldValue<ItemType>(Models.Metadata.DatItem.TypeKey));
|
||||
|
||||
return releaseDetails;
|
||||
}
|
||||
|
||||
#endregion
|
||||
@@ -158,7 +158,7 @@ namespace SabreTools.DatItems.Formats
|
||||
public override bool Equals(DatItem? other)
|
||||
{
|
||||
// If we don't have a Details, return false
|
||||
if (ItemType != other?.ItemType)
|
||||
if (GetFieldValue<ItemType>(Models.Metadata.DatItem.TypeKey) != other?.GetFieldValue<ItemType>(Models.Metadata.DatItem.TypeKey))
|
||||
return false;
|
||||
|
||||
// Otherwise, treat it as a Details
|
||||
|
||||
@@ -1,10 +1,8 @@
|
||||
using System.Reflection;
|
||||
using System.Xml.Serialization;
|
||||
using System.Xml.Serialization;
|
||||
using Newtonsoft.Json;
|
||||
using SabreTools.Core;
|
||||
using SabreTools.Core.Tools;
|
||||
using SabreTools.FileTypes;
|
||||
using SabreTools.Filter;
|
||||
|
||||
namespace SabreTools.DatItems.Formats
|
||||
{
|
||||
@@ -14,6 +12,20 @@ namespace SabreTools.DatItems.Formats
|
||||
[JsonObject("rom"), XmlRoot("rom")]
|
||||
public class Rom : DatItem
|
||||
{
|
||||
#region Constants
|
||||
|
||||
/// <summary>
|
||||
/// Non-standard key for inverted logic
|
||||
/// </summary>
|
||||
public const string DataAreaKey = "DATAAREA";
|
||||
|
||||
/// <summary>
|
||||
/// Non-standard key for inverted logic
|
||||
/// </summary>
|
||||
public const string PartKey = "PART";
|
||||
|
||||
#endregion
|
||||
|
||||
#region Fields
|
||||
|
||||
[JsonIgnore]
|
||||
@@ -41,7 +53,7 @@ namespace SabreTools.DatItems.Formats
|
||||
{
|
||||
get
|
||||
{
|
||||
var dataArea = GetFieldValue<DataArea?>("DATAAREA");
|
||||
var dataArea = GetFieldValue<DataArea?>(Rom.DataAreaKey);
|
||||
return dataArea != null
|
||||
&& (!string.IsNullOrEmpty(dataArea.GetName())
|
||||
|| dataArea.GetFieldValue<long?>(Models.Metadata.DataArea.SizeKey) != null
|
||||
@@ -55,7 +67,7 @@ namespace SabreTools.DatItems.Formats
|
||||
{
|
||||
get
|
||||
{
|
||||
var part = GetFieldValue<Part?>("PART");
|
||||
var part = GetFieldValue<Part?>(Rom.PartKey);
|
||||
return part != null
|
||||
&& (!string.IsNullOrEmpty(part.GetName())
|
||||
|| !string.IsNullOrEmpty(part.GetFieldValue<string?>(Models.Metadata.Part.InterfaceKey)));
|
||||
@@ -82,11 +94,11 @@ namespace SabreTools.DatItems.Formats
|
||||
public Rom()
|
||||
{
|
||||
_internal = new Models.Metadata.Rom();
|
||||
Machine = new Machine();
|
||||
|
||||
SetName(null);
|
||||
ItemType = ItemType.Rom;
|
||||
DupeType = 0x00;
|
||||
SetFieldValue<ItemType>(Models.Metadata.DatItem.TypeKey, ItemType.Rom);
|
||||
SetFieldValue<DupeType>(DatItem.DupeTypeKey, 0x00);
|
||||
SetFieldValue<Machine>(DatItem.MachineKey, new Machine());
|
||||
SetFieldValue<ItemStatus>(Models.Metadata.Rom.StatusKey, ItemStatus.None);
|
||||
}
|
||||
|
||||
@@ -100,13 +112,13 @@ namespace SabreTools.DatItems.Formats
|
||||
{
|
||||
_internal = new Models.Metadata.Rom();
|
||||
SetName(name);
|
||||
ItemType = ItemType.Rom;
|
||||
SetFieldValue<ItemType>(Models.Metadata.DatItem.TypeKey, ItemType.Rom);
|
||||
SetFieldValue<long?>(Models.Metadata.Rom.SizeKey, null);
|
||||
SetFieldValue<ItemStatus>(Models.Metadata.Rom.StatusKey, ItemStatus.None);
|
||||
|
||||
Machine = new Machine();
|
||||
Machine.SetFieldValue<string?>(Models.Metadata.Machine.DescriptionKey, machineName);
|
||||
Machine.SetFieldValue<string?>(Models.Metadata.Machine.NameKey, machineName);
|
||||
SetFieldValue<Machine>(DatItem.MachineKey, new Machine());
|
||||
GetFieldValue<Machine>(DatItem.MachineKey)!.SetFieldValue<string?>(Models.Metadata.Machine.DescriptionKey, machineName);
|
||||
GetFieldValue<Machine>(DatItem.MachineKey)!.SetFieldValue<string?>(Models.Metadata.Machine.NameKey, machineName);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -116,7 +128,6 @@ namespace SabreTools.DatItems.Formats
|
||||
public Rom(BaseFile baseFile)
|
||||
{
|
||||
_internal = new Models.Metadata.Rom();
|
||||
Machine = new Machine();
|
||||
|
||||
SetName(baseFile.Filename);
|
||||
SetFieldValue<long?>(Models.Metadata.Rom.SizeKey, baseFile.Size);
|
||||
@@ -128,8 +139,9 @@ namespace SabreTools.DatItems.Formats
|
||||
SetFieldValue<string?>(Models.Metadata.Rom.SHA512Key, TextHelper.ByteArrayToString(baseFile.SHA512));
|
||||
SetFieldValue<string?>(Models.Metadata.Rom.SpamSumKey, System.Text.Encoding.UTF8.GetString(baseFile.SpamSum ?? []));
|
||||
|
||||
ItemType = ItemType.Rom;
|
||||
DupeType = 0x00;
|
||||
SetFieldValue<ItemType>(Models.Metadata.DatItem.TypeKey, ItemType.Rom);
|
||||
SetFieldValue<DupeType>(DatItem.DupeTypeKey, 0x00);
|
||||
SetFieldValue<Machine>(DatItem.MachineKey, new Machine());
|
||||
SetFieldValue<ItemStatus>(Models.Metadata.Rom.StatusKey, ItemStatus.None);
|
||||
SetFieldValue<string?>(Models.Metadata.Rom.DateKey, baseFile.Date);
|
||||
}
|
||||
@@ -140,10 +152,9 @@ namespace SabreTools.DatItems.Formats
|
||||
public Rom(Models.Metadata.Rom? item)
|
||||
{
|
||||
_internal = item ?? [];
|
||||
Machine = new Machine();
|
||||
|
||||
ItemType = ItemType.Rom;
|
||||
DupeType = 0x00;
|
||||
SetFieldValue<ItemType>(Models.Metadata.DatItem.TypeKey, ItemType.Rom);
|
||||
SetFieldValue<Machine>(DatItem.MachineKey, new Machine());
|
||||
}
|
||||
|
||||
#endregion
|
||||
@@ -155,13 +166,6 @@ namespace SabreTools.DatItems.Formats
|
||||
{
|
||||
return new Rom()
|
||||
{
|
||||
ItemType = this.ItemType,
|
||||
DupeType = this.DupeType,
|
||||
|
||||
Machine = this.Machine.Clone() as Machine ?? new Machine(),
|
||||
Source = this.Source?.Clone() as Source,
|
||||
Remove = this.Remove,
|
||||
|
||||
_internal = this._internal?.Clone() as Models.Metadata.Rom ?? [],
|
||||
};
|
||||
}
|
||||
@@ -174,7 +178,7 @@ namespace SabreTools.DatItems.Formats
|
||||
return new BaseFile()
|
||||
{
|
||||
Filename = GetName(),
|
||||
Parent = this.Machine.GetFieldValue<string?>(Models.Metadata.Machine.NameKey),
|
||||
Parent = GetFieldValue<Machine>(DatItem.MachineKey)!.GetFieldValue<string?>(Models.Metadata.Machine.NameKey),
|
||||
Date = GetFieldValue<string?>(Models.Metadata.Rom.DateKey),
|
||||
Size = GetFieldValue<long?>(Models.Metadata.Rom.SizeKey),
|
||||
CRC = TextHelper.StringToByteArray(GetFieldValue<string?>(Models.Metadata.Rom.CRCKey)),
|
||||
|
||||
@@ -28,10 +28,10 @@ namespace SabreTools.DatItems.Formats
|
||||
public Sample()
|
||||
{
|
||||
_internal = new Models.Metadata.Sample();
|
||||
Machine = new Machine();
|
||||
|
||||
SetName(string.Empty);
|
||||
ItemType = ItemType.Sample;
|
||||
SetFieldValue<ItemType>(Models.Metadata.DatItem.TypeKey, ItemType.Sample);
|
||||
SetFieldValue<Machine>(DatItem.MachineKey, new Machine());
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -40,9 +40,9 @@ namespace SabreTools.DatItems.Formats
|
||||
public Sample(Models.Metadata.Sample? item)
|
||||
{
|
||||
_internal = item ?? [];
|
||||
Machine = new Machine();
|
||||
|
||||
ItemType = ItemType.Sample;
|
||||
SetFieldValue<ItemType>(Models.Metadata.DatItem.TypeKey, ItemType.Sample);
|
||||
SetFieldValue<Machine>(DatItem.MachineKey, new Machine());
|
||||
}
|
||||
|
||||
#endregion
|
||||
@@ -54,13 +54,6 @@ namespace SabreTools.DatItems.Formats
|
||||
{
|
||||
return new Sample()
|
||||
{
|
||||
ItemType = this.ItemType,
|
||||
DupeType = this.DupeType,
|
||||
|
||||
Machine = this.Machine.Clone() as Machine ?? new Machine(),
|
||||
Source = this.Source?.Clone() as Source,
|
||||
Remove = this.Remove,
|
||||
|
||||
_internal = this._internal?.Clone() as Models.Metadata.Sample ?? [],
|
||||
};
|
||||
}
|
||||
|
||||
@@ -106,7 +106,7 @@ namespace SabreTools.DatItems.Formats
|
||||
/// </summary>
|
||||
public Serials()
|
||||
{
|
||||
ItemType = ItemType.Serials;
|
||||
SetFieldValue<ItemType>(Models.Metadata.DatItem.TypeKey, ItemType.Serials);
|
||||
}
|
||||
|
||||
#endregion
|
||||
@@ -116,15 +116,8 @@ namespace SabreTools.DatItems.Formats
|
||||
/// <inheritdoc/>
|
||||
public override object Clone()
|
||||
{
|
||||
return new Serials()
|
||||
var serials = new Serials()
|
||||
{
|
||||
ItemType = this.ItemType,
|
||||
DupeType = this.DupeType,
|
||||
|
||||
Machine = this.Machine.Clone() as Machine ?? new Machine(),
|
||||
Source = this.Source?.Clone() as Source,
|
||||
Remove = this.Remove,
|
||||
|
||||
DigitalSerial1 = this.DigitalSerial1,
|
||||
DigitalSerial2 = this.DigitalSerial2,
|
||||
MediaSerial1 = this.MediaSerial1,
|
||||
@@ -140,6 +133,13 @@ namespace SabreTools.DatItems.Formats
|
||||
MediaStamp = this.MediaStamp,
|
||||
BoxBarcode = this.BoxBarcode,
|
||||
};
|
||||
serials.SetFieldValue<DupeType>(DatItem.DupeTypeKey, GetFieldValue<DupeType>(DatItem.DupeTypeKey));
|
||||
serials.SetFieldValue<Machine>(DatItem.MachineKey, GetFieldValue<Machine>(DatItem.MachineKey));
|
||||
serials.SetFieldValue<bool>(DatItem.RemoveKey, GetFieldValue<bool>(DatItem.RemoveKey));
|
||||
serials.SetFieldValue<Source?>(DatItem.SourceKey, GetFieldValue<Source?>(DatItem.SourceKey));
|
||||
serials.SetFieldValue<ItemType>(Models.Metadata.DatItem.TypeKey, GetFieldValue<ItemType>(Models.Metadata.DatItem.TypeKey));
|
||||
|
||||
return serials;
|
||||
}
|
||||
|
||||
#endregion
|
||||
@@ -150,7 +150,7 @@ namespace SabreTools.DatItems.Formats
|
||||
public override bool Equals(DatItem? other)
|
||||
{
|
||||
// If we don't have a Serials, return false
|
||||
if (ItemType != other?.ItemType)
|
||||
if (GetFieldValue<ItemType>(Models.Metadata.DatItem.TypeKey) != other?.GetFieldValue<ItemType>(Models.Metadata.DatItem.TypeKey))
|
||||
return false;
|
||||
|
||||
// Otherwise, treat it as a Serials
|
||||
|
||||
@@ -28,10 +28,10 @@ namespace SabreTools.DatItems.Formats
|
||||
public SharedFeature()
|
||||
{
|
||||
_internal = new Models.Metadata.SharedFeat();
|
||||
Machine = new Machine();
|
||||
|
||||
SetName(string.Empty);
|
||||
ItemType = ItemType.SharedFeature;
|
||||
SetFieldValue<ItemType>(Models.Metadata.DatItem.TypeKey, ItemType.SharedFeature);
|
||||
SetFieldValue<Machine>(DatItem.MachineKey, new Machine());
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -40,9 +40,9 @@ namespace SabreTools.DatItems.Formats
|
||||
public SharedFeature(Models.Metadata.SharedFeat? item)
|
||||
{
|
||||
_internal = item ?? [];
|
||||
Machine = new Machine();
|
||||
|
||||
ItemType = ItemType.SharedFeature;
|
||||
SetFieldValue<ItemType>(Models.Metadata.DatItem.TypeKey, ItemType.SharedFeature);
|
||||
SetFieldValue<Machine>(DatItem.MachineKey, new Machine());
|
||||
}
|
||||
|
||||
#endregion
|
||||
@@ -54,13 +54,6 @@ namespace SabreTools.DatItems.Formats
|
||||
{
|
||||
return new SharedFeature()
|
||||
{
|
||||
ItemType = this.ItemType,
|
||||
DupeType = this.DupeType,
|
||||
|
||||
Machine = this.Machine.Clone() as Machine ?? new Machine(),
|
||||
Source = this.Source?.Clone() as Source,
|
||||
Remove = this.Remove,
|
||||
|
||||
_internal = this._internal?.Clone() as Models.Metadata.SharedFeat ?? [],
|
||||
};
|
||||
}
|
||||
|
||||
@@ -42,10 +42,10 @@ namespace SabreTools.DatItems.Formats
|
||||
public Slot()
|
||||
{
|
||||
_internal = new Models.Metadata.Slot();
|
||||
Machine = new Machine();
|
||||
|
||||
SetName(string.Empty);
|
||||
ItemType = ItemType.Slot;
|
||||
SetFieldValue<ItemType>(Models.Metadata.DatItem.TypeKey, ItemType.Slot);
|
||||
SetFieldValue<Machine>(DatItem.MachineKey, new Machine());
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -54,9 +54,9 @@ namespace SabreTools.DatItems.Formats
|
||||
public Slot(Models.Metadata.Slot? item)
|
||||
{
|
||||
_internal = item ?? [];
|
||||
Machine = new Machine();
|
||||
|
||||
ItemType = ItemType.Slot;
|
||||
SetFieldValue<ItemType>(Models.Metadata.DatItem.TypeKey, ItemType.Slot);
|
||||
SetFieldValue<Machine>(DatItem.MachineKey, new Machine());
|
||||
}
|
||||
|
||||
#endregion
|
||||
@@ -68,13 +68,6 @@ namespace SabreTools.DatItems.Formats
|
||||
{
|
||||
return new Slot()
|
||||
{
|
||||
ItemType = this.ItemType,
|
||||
DupeType = this.DupeType,
|
||||
|
||||
Machine = this.Machine.Clone() as Machine ?? new Machine(),
|
||||
Source = this.Source?.Clone() as Source,
|
||||
Remove = this.Remove,
|
||||
|
||||
_internal = this._internal?.Clone() as Models.Metadata.Slot ?? [],
|
||||
};
|
||||
}
|
||||
|
||||
@@ -28,10 +28,10 @@ namespace SabreTools.DatItems.Formats
|
||||
public SlotOption()
|
||||
{
|
||||
_internal = new Models.Metadata.SlotOption();
|
||||
Machine = new Machine();
|
||||
|
||||
SetName(string.Empty);
|
||||
ItemType = ItemType.SlotOption;
|
||||
SetFieldValue<ItemType>(Models.Metadata.DatItem.TypeKey, ItemType.SlotOption);
|
||||
SetFieldValue<Machine>(DatItem.MachineKey, new Machine());
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -40,9 +40,9 @@ namespace SabreTools.DatItems.Formats
|
||||
public SlotOption(Models.Metadata.SlotOption? item)
|
||||
{
|
||||
_internal = item ?? [];
|
||||
Machine = new Machine();
|
||||
|
||||
ItemType = ItemType.SlotOption;
|
||||
SetFieldValue<ItemType>(Models.Metadata.DatItem.TypeKey, ItemType.SlotOption);
|
||||
SetFieldValue<Machine>(DatItem.MachineKey, new Machine());
|
||||
}
|
||||
|
||||
#endregion
|
||||
@@ -54,13 +54,6 @@ namespace SabreTools.DatItems.Formats
|
||||
{
|
||||
return new SlotOption()
|
||||
{
|
||||
ItemType = this.ItemType,
|
||||
DupeType = this.DupeType,
|
||||
|
||||
Machine = this.Machine.Clone() as Machine ?? new Machine(),
|
||||
Source = this.Source?.Clone() as Source,
|
||||
Remove = this.Remove,
|
||||
|
||||
_internal = this._internal?.Clone() as Models.Metadata.SlotOption ?? [],
|
||||
};
|
||||
}
|
||||
|
||||
@@ -31,10 +31,10 @@ namespace SabreTools.DatItems.Formats
|
||||
public SoftwareList()
|
||||
{
|
||||
_internal = new Models.Metadata.SoftwareList();
|
||||
Machine = new Machine();
|
||||
|
||||
SetName(string.Empty);
|
||||
ItemType = ItemType.SoftwareList;
|
||||
SetFieldValue<ItemType>(Models.Metadata.DatItem.TypeKey, ItemType.SoftwareList);
|
||||
SetFieldValue<Machine>(DatItem.MachineKey, new Machine());
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -43,9 +43,9 @@ namespace SabreTools.DatItems.Formats
|
||||
public SoftwareList(Models.Metadata.SoftwareList? item)
|
||||
{
|
||||
_internal = item ?? [];
|
||||
Machine = new Machine();
|
||||
|
||||
ItemType = ItemType.SoftwareList;
|
||||
SetFieldValue<ItemType>(Models.Metadata.DatItem.TypeKey, ItemType.SoftwareList);
|
||||
SetFieldValue<Machine>(DatItem.MachineKey, new Machine());
|
||||
}
|
||||
|
||||
#endregion
|
||||
@@ -56,13 +56,6 @@ namespace SabreTools.DatItems.Formats
|
||||
{
|
||||
return new SoftwareList()
|
||||
{
|
||||
ItemType = this.ItemType,
|
||||
DupeType = this.DupeType,
|
||||
|
||||
Machine = this.Machine.Clone() as Machine ?? new Machine(),
|
||||
Source = this.Source?.Clone() as Source,
|
||||
Remove = this.Remove,
|
||||
|
||||
_internal = this._internal?.Clone() as Models.Metadata.SoftwareList ?? [],
|
||||
};
|
||||
}
|
||||
|
||||
@@ -18,9 +18,9 @@ namespace SabreTools.DatItems.Formats
|
||||
public Sound()
|
||||
{
|
||||
_internal = new Models.Metadata.Sound();
|
||||
Machine = new Machine();
|
||||
|
||||
ItemType = ItemType.Sound;
|
||||
SetFieldValue<ItemType>(Models.Metadata.DatItem.TypeKey, ItemType.Sound);
|
||||
SetFieldValue<Machine>(DatItem.MachineKey, new Machine());
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -29,9 +29,9 @@ namespace SabreTools.DatItems.Formats
|
||||
public Sound(Models.Metadata.Sound? item)
|
||||
{
|
||||
_internal = item ?? [];
|
||||
Machine = new Machine();
|
||||
|
||||
ItemType = ItemType.Sound;
|
||||
SetFieldValue<ItemType>(Models.Metadata.DatItem.TypeKey, ItemType.Sound);
|
||||
SetFieldValue<Machine>(DatItem.MachineKey, new Machine());
|
||||
}
|
||||
|
||||
#endregion
|
||||
@@ -43,13 +43,6 @@ namespace SabreTools.DatItems.Formats
|
||||
{
|
||||
return new Sound()
|
||||
{
|
||||
ItemType = this.ItemType,
|
||||
DupeType = this.DupeType,
|
||||
|
||||
Machine = this.Machine.Clone() as Machine ?? new Machine(),
|
||||
Source = this.Source?.Clone() as Source,
|
||||
Remove = this.Remove,
|
||||
|
||||
_internal = this._internal?.Clone() as Models.Metadata.Sound ?? [],
|
||||
};
|
||||
}
|
||||
|
||||
@@ -143,7 +143,7 @@ namespace SabreTools.DatItems.Formats
|
||||
/// </summary>
|
||||
public SourceDetails()
|
||||
{
|
||||
ItemType = ItemType.SourceDetails;
|
||||
SetFieldValue<ItemType>(Models.Metadata.DatItem.TypeKey, ItemType.SourceDetails);
|
||||
}
|
||||
|
||||
#endregion
|
||||
@@ -153,15 +153,8 @@ namespace SabreTools.DatItems.Formats
|
||||
/// <inheritdoc/>
|
||||
public override object Clone()
|
||||
{
|
||||
return new SourceDetails()
|
||||
var sourceDetails = new SourceDetails()
|
||||
{
|
||||
ItemType = this.ItemType,
|
||||
DupeType = this.DupeType,
|
||||
|
||||
Machine = this.Machine.Clone() as Machine ?? new Machine(),
|
||||
Source = this.Source?.Clone() as Source,
|
||||
Remove = this.Remove,
|
||||
|
||||
Id = this.Id,
|
||||
Section = this.Section,
|
||||
RomInfo = this.RomInfo,
|
||||
@@ -183,6 +176,13 @@ namespace SabreTools.DatItems.Formats
|
||||
Link2 = this.Link2,
|
||||
Link3 = this.Link3,
|
||||
};
|
||||
sourceDetails.SetFieldValue<DupeType>(DatItem.DupeTypeKey, GetFieldValue<DupeType>(DatItem.DupeTypeKey));
|
||||
sourceDetails.SetFieldValue<Machine>(DatItem.MachineKey, GetFieldValue<Machine>(DatItem.MachineKey));
|
||||
sourceDetails.SetFieldValue<bool>(DatItem.RemoveKey, GetFieldValue<bool>(DatItem.RemoveKey));
|
||||
sourceDetails.SetFieldValue<Source?>(DatItem.SourceKey, GetFieldValue<Source?>(DatItem.SourceKey));
|
||||
sourceDetails.SetFieldValue<ItemType>(Models.Metadata.DatItem.TypeKey, GetFieldValue<ItemType>(Models.Metadata.DatItem.TypeKey));
|
||||
|
||||
return sourceDetails;
|
||||
}
|
||||
|
||||
#endregion
|
||||
@@ -193,7 +193,7 @@ namespace SabreTools.DatItems.Formats
|
||||
public override bool Equals(DatItem? other)
|
||||
{
|
||||
// If we don't have a SourceDetails, return false
|
||||
if (ItemType != other?.ItemType)
|
||||
if (GetFieldValue<ItemType>(Models.Metadata.DatItem.TypeKey) != other?.GetFieldValue<ItemType>(Models.Metadata.DatItem.TypeKey))
|
||||
return false;
|
||||
|
||||
// Otherwise, treat it as a SourceDetails
|
||||
|
||||
Reference in New Issue
Block a user