Add TOSEC dump flag support

This commit is contained in:
Michael Green
2023-02-17 23:43:23 +11:00
parent d76931c949
commit 1a79850d37
3 changed files with 57 additions and 4 deletions

View File

@@ -397,11 +397,11 @@ namespace gaseous_identifier.classes
( (
token != romObject.RomTypeMedia && token != romObject.RomTypeMedia &&
token != gameObject.Publisher && token != gameObject.Publisher &&
token != gameObject.SystemVariant &&
token != gameObject.Video &&
token != gameObject.Country.Key && token != gameObject.Country.Key &&
token != gameObject.Copyright.Key && token != gameObject.Copyright.Key &&
token != gameObject.Language.Key && token != gameObject.Language.Key &&
token != gameObject.SystemVariant &&
token != gameObject.Video &&
token != gameObject.DevelopmentStatus.Key token != gameObject.DevelopmentStatus.Key
) )
) )
@@ -409,6 +409,55 @@ namespace gaseous_identifier.classes
// likely the media label? // likely the media label?
romObject.MediaLabel = token; romObject.MediaLabel = token;
} }
// process dump flags
if (rawToken.IndexOf("[") > 0)
{
// has dump flags
string rawDumpFlags = rawToken.Substring(rawToken.IndexOf("["));
string[] dumpFlags = rawDumpFlags.Split("[");
foreach (string dumpFlag in dumpFlags)
{
string dToken = dumpFlag.Replace("]", "");
if (dToken.Length > 0)
{
string[] dTokenCompare = dToken.Split(" ");
switch (dTokenCompare[0].Trim().ToLower())
{
case "cr":
// cracked
case "f":
// fixed
case "h":
// hacked
case "m":
// modified
case "p":
// pirated
case "t":
// trained
case "tr":
// translated
case "o":
// overdump
case "u":
// underdump
case "v":
// virus
case "b":
// bad dump
case "a":
// alternate
case "!":
// known verified dump
// -------------------
romObject.flags.Add(dToken);
break;
}
}
}
}
} }
gameObject.Roms.Add(romObject); gameObject.Roms.Add(romObject);

View File

@@ -56,7 +56,7 @@ namespace gaseous_identifier.objects
public string? Md5 { get; set; } public string? Md5 { get; set; }
public string? Sha1 { get; set; } public string? Sha1 { get; set; }
public string? flags { get; set; } public List<string> flags { get; set; } = new List<string>();
public RomTypes RomType { get; set; } public RomTypes RomType { get; set; }
public string? RomTypeMedia { get; set; } public string? RomTypeMedia { get; set; }

View File

@@ -3,6 +3,7 @@ using System.Security.Cryptography;
using System.Text; using System.Text;
using System.Xml; using System.Xml;
using System.Xml.Serialization; using System.Xml.Serialization;
using Newtonsoft.Json;
string[] commandLineArgs = Environment.GetCommandLineArgs(); string[] commandLineArgs = Environment.GetCommandLineArgs();
@@ -135,7 +136,10 @@ foreach (string romFile in romPathContents)
gameSignature.Roms.Clear(); gameSignature.Roms.Clear();
gameSignature.Roms.Add(romObject); gameSignature.Roms.Add(romObject);
Console.WriteLine(Newtonsoft.Json.JsonConvert.SerializeObject(gameSignature, Newtonsoft.Json.Formatting.Indented)); var jsonSerializerSettings = new JsonSerializerSettings();
jsonSerializerSettings.Converters.Add(new Newtonsoft.Json.Converters.StringEnumConverter());
jsonSerializerSettings.NullValueHandling = NullValueHandling.Ignore;
Console.WriteLine(Newtonsoft.Json.JsonConvert.SerializeObject(gameSignature, Newtonsoft.Json.Formatting.Indented, jsonSerializerSettings));
break; break;
} }
} }