[SabreTools, Flags, DatFile] Add new base replacement flags

Update game type (bios, device, mechanical) and update parenting information (romof, cloneof, sampleof)
This commit is contained in:
Matt Nadareski
2018-03-20 14:49:04 -07:00
parent a033483774
commit 72830b5d98
5 changed files with 58 additions and 2 deletions

View File

@@ -1903,8 +1903,10 @@ namespace SabreTools.Library.DatFiles
// If we are matching based on names of any sort // If we are matching based on names of any sort
if ((replaceMode & ReplaceMode.Description) != 0 if ((replaceMode & ReplaceMode.Description) != 0
|| (replaceMode & ReplaceMode.MachineType) != 0
|| (replaceMode & ReplaceMode.Year) != 0 || (replaceMode & ReplaceMode.Year) != 0
|| (replaceMode & ReplaceMode.Manufacturer) != 0) || (replaceMode & ReplaceMode.Manufacturer) != 0
|| (replaceMode & ReplaceMode.Parents) != 0)
{ {
// For comparison's sake, we want to use Machine Name as the base ordering // For comparison's sake, we want to use Machine Name as the base ordering
BucketBy(SortedBy.Game, DedupeType.Full); BucketBy(SortedBy.Game, DedupeType.Full);
@@ -1928,6 +1930,10 @@ namespace SabreTools.Library.DatFiles
newDatItem.MachineDescription = this[key][0].MachineDescription; newDatItem.MachineDescription = this[key][0].MachineDescription;
} }
} }
if ((replaceMode & ReplaceMode.MachineType) != 0)
{
newDatItem.MachineType = this[key][0].MachineType;
}
if ((replaceMode & ReplaceMode.Year) != 0) if ((replaceMode & ReplaceMode.Year) != 0)
{ {
newDatItem.Year = this[key][0].Year; newDatItem.Year = this[key][0].Year;
@@ -1936,6 +1942,12 @@ namespace SabreTools.Library.DatFiles
{ {
newDatItem.Manufacturer = this[key][0].Manufacturer; newDatItem.Manufacturer = this[key][0].Manufacturer;
} }
if ((replaceMode & ReplaceMode.Parents) != 0)
{
newDatItem.CloneOf = this[key][0].CloneOf;
newDatItem.RomOf = this[key][0].RomOf;
newDatItem.SampleOf = this[key][0].SampleOf;
}
} }
newDatItems.Add(newDatItem); newDatItems.Add(newDatItem);

View File

@@ -260,8 +260,10 @@ namespace SabreTools.Library.Data
// Sorted by machine name // Sorted by machine name
Description = Hash << 1, Description = Hash << 1,
Year = Description << 1, MachineType = Description << 1,
Year = MachineType << 1,
Manufacturer = Year << 1, Manufacturer = Year << 1,
Parents = Manufacturer << 1,
} }
/// <summary> /// <summary>

View File

@@ -1024,6 +1024,14 @@ Options:
will only be overwritten if they are the same as the machine will only be overwritten if they are the same as the machine
names. names.
-ugt, --update-game-type Update machine type from base DATs
This flag enables updating of machine type from base DATs.
[Both base-replace and reverse-base-replace]
-up, --update-parents Update machine parents from base DATs
This flag enables updating of machine parents (romof, cloneof,
sampleof) from base DATs. [Both base-replace and reverse-base-replace]
-uy, --update-year Update machine years from base DATs -uy, --update-year Update machine years from base DATs
This flag enables updating of machine years from base DATs. This flag enables updating of machine years from base DATs.
[Both base-replace and reverse-base-replace] [Both base-replace and reverse-base-replace]

View File

@@ -1341,6 +1341,18 @@ namespace SabreTools
longDescription: "This flag enables updating of machine descriptions from base DATs."); longDescription: "This flag enables updating of machine descriptions from base DATs.");
} }
} }
private static Feature _updateGameTypeFlag
{
get
{
return new Feature(
"update-game-type",
new List<string>() { "-ugt", "--update-game-type" },
"Update machine type from base DATs",
FeatureType.Flag,
longDescription: "This flag enables updating of machine type from base DATs.");
}
}
private static Feature _updateHashesFlag private static Feature _updateHashesFlag
{ {
get get
@@ -1377,6 +1389,18 @@ namespace SabreTools
longDescription: "This flag enables updating of item names from base DATs."); longDescription: "This flag enables updating of item names from base DATs.");
} }
} }
private static Feature _updateParentsFlag
{
get
{
return new Feature(
"update-parents",
new List<string>() { "-up", "--update-parents" },
"Update machine parents from base DATs",
FeatureType.Flag,
longDescription: "This flag enables updating of machine parents (romof, cloneof, sampleof) from base DATs.");
}
}
private static Feature _updateYearFlag private static Feature _updateYearFlag
{ {
get get
@@ -2647,16 +2671,20 @@ The stats that are outputted are as follows:
update[_baseReplaceFlag].AddFeature(_updateHashesFlag); update[_baseReplaceFlag].AddFeature(_updateHashesFlag);
update[_baseReplaceFlag].AddFeature(_updateDescriptionFlag); update[_baseReplaceFlag].AddFeature(_updateDescriptionFlag);
update[_baseReplaceFlag][_updateDescriptionFlag].AddFeature(_onlySameFlag); update[_baseReplaceFlag][_updateDescriptionFlag].AddFeature(_onlySameFlag);
update[_baseReplaceFlag].AddFeature(_updateGameTypeFlag);
update[_baseReplaceFlag].AddFeature(_updateYearFlag); update[_baseReplaceFlag].AddFeature(_updateYearFlag);
update[_baseReplaceFlag].AddFeature(_updateManufacturerFlag); update[_baseReplaceFlag].AddFeature(_updateManufacturerFlag);
update[_baseReplaceFlag].AddFeature(_updateParentsFlag);
update.AddFeature(_reverseBaseReplaceFlag); update.AddFeature(_reverseBaseReplaceFlag);
update[_reverseBaseReplaceFlag].AddFeature(_baseDatListInput); update[_reverseBaseReplaceFlag].AddFeature(_baseDatListInput);
update[_reverseBaseReplaceFlag].AddFeature(_updateNamesFlag); update[_reverseBaseReplaceFlag].AddFeature(_updateNamesFlag);
update[_reverseBaseReplaceFlag].AddFeature(_updateHashesFlag); update[_reverseBaseReplaceFlag].AddFeature(_updateHashesFlag);
update[_reverseBaseReplaceFlag].AddFeature(_updateDescriptionFlag); update[_reverseBaseReplaceFlag].AddFeature(_updateDescriptionFlag);
update[_reverseBaseReplaceFlag][_updateDescriptionFlag].AddFeature(_onlySameFlag); update[_reverseBaseReplaceFlag][_updateDescriptionFlag].AddFeature(_onlySameFlag);
update[_reverseBaseReplaceFlag].AddFeature(_updateGameTypeFlag);
update[_reverseBaseReplaceFlag].AddFeature(_updateYearFlag); update[_reverseBaseReplaceFlag].AddFeature(_updateYearFlag);
update[_reverseBaseReplaceFlag].AddFeature(_updateManufacturerFlag); update[_reverseBaseReplaceFlag].AddFeature(_updateManufacturerFlag);
update[_reverseBaseReplaceFlag].AddFeature(_updateParentsFlag);
update.AddFeature(_diffCascadeFlag); update.AddFeature(_diffCascadeFlag);
update[_diffCascadeFlag].AddFeature(_skipFirstOutputFlag); update[_diffCascadeFlag].AddFeature(_skipFirstOutputFlag);
update.AddFeature(_diffReverseCascadeFlag); update.AddFeature(_diffReverseCascadeFlag);

View File

@@ -570,6 +570,9 @@ namespace SabreTools
case "update-description": case "update-description":
replaceMode |= ReplaceMode.Description; replaceMode |= ReplaceMode.Description;
break; break;
case "update-game-type":
replaceMode |= ReplaceMode.MachineType;
break;
case "update-hashes": case "update-hashes":
replaceMode |= ReplaceMode.Hash; replaceMode |= ReplaceMode.Hash;
break; break;
@@ -579,6 +582,9 @@ namespace SabreTools
case "update-names": case "update-names":
replaceMode |= ReplaceMode.ItemName; replaceMode |= ReplaceMode.ItemName;
break; break;
case "update-parents":
replaceMode |= ReplaceMode.Parents;
break;
case "update-year": case "update-year":
replaceMode |= ReplaceMode.Year; replaceMode |= ReplaceMode.Year;
break; break;