Make PathEntry sealed, add constructor and use in PathEntryCollection

This commit is contained in:
YoshiRulz 2021-03-19 10:16:53 +10:00
parent 0b5f48aede
commit f0b9e2e828
No known key found for this signature in database
GPG Key ID: C4DE31C245353FB7
2 changed files with 246 additions and 238 deletions
src/BizHawk.Client.Common/config

View File

@ -3,7 +3,7 @@ using Newtonsoft.Json;
namespace BizHawk.Client.Common
{
public class PathEntry
public sealed class PathEntry
{
public string Type { get; set; }
[JsonIgnore]
@ -16,6 +16,14 @@ namespace BizHawk.Client.Common
public string System { get; set; }
public int Ordinal { get; set; }
public PathEntry(string system, int ordinal, string type, string path)
{
Ordinal = ordinal;
Path = path;
System = system;
Type = type;
}
internal bool IsSystem(string systemID)
{
return systemID == System || System.Split('_').Contains(systemID);

View File

@ -88,14 +88,14 @@ namespace BizHawk.Client.Common
}
// we don't have anything for the system in question. add a set of stock paths
Paths.AddRange(new[]
Paths.AddRange(new PathEntry[]
{
new PathEntry { System = system, Type = "Base", Path = Path.Combine(".", $"{system.RemoveInvalidFileSystemChars()}_INTERIM"), Ordinal = 0 },
new PathEntry { System = system, Type = "ROM", Path = ".", Ordinal = 1 },
new PathEntry { System = system, Type = "Savestates", Path = Path.Combine(".", "State"), Ordinal = 2 },
new PathEntry { System = system, Type = "Save RAM", Path = Path.Combine(".", "SaveRAM"), Ordinal = 3 },
new PathEntry { System = system, Type = "Screenshots", Path = Path.Combine(".", "Screenshots"), Ordinal = 4 },
new PathEntry { System = system, Type = "Cheats", Path = Path.Combine(".", "Cheats"), Ordinal = 5 }
new(system, 0, "Base", Path.Combine(".", $"{system.RemoveInvalidFileSystemChars()}_INTERIM")),
new(system, 1, "ROM", "."),
new(system, 2, "Savestates", Path.Combine(".", "State")),
new(system, 3, "Save RAM", Path.Combine(".", "SaveRAM")),
new(system, 4, "Screenshots", Path.Combine(".", "Screenshots")),
new(system, 5, "Cheats", Path.Combine(".", "Cheats")),
});
return this[system, type];
@ -137,276 +137,276 @@ namespace BizHawk.Client.Common
public static List<PathEntry> DefaultValues => new List<PathEntry>
{
new PathEntry { System = "Global_NULL", Type = "Base", Path = ".", Ordinal = 1 },
new PathEntry { System = "Global_NULL", Type = "ROM", Path = ".", Ordinal = 2 },
new PathEntry { System = "Global_NULL", Type = "Firmware", Path = Path.Combine(".", "Firmware"), Ordinal = 3 },
new PathEntry { System = "Global_NULL", Type = "Movies", Path = Path.Combine(".", "Movies"), Ordinal = 4 },
new PathEntry { System = "Global_NULL", Type = "Movie backups", Path = Path.Combine(".", "Movies", "backup"), Ordinal = 5 },
new PathEntry { System = "Global_NULL", Type = "A/V Dumps", Path = ".", Ordinal = 6 },
new PathEntry { System = "Global_NULL", Type = "Tools", Path = Path.Combine(".", "Tools"), Ordinal = 7 },
new PathEntry { System = "Global_NULL", Type = "Lua", Path = Path.Combine(".", "Lua"), Ordinal = 8 },
new PathEntry { System = "Global_NULL", Type = "Watch (.wch)", Path = Path.Combine(".", "."), Ordinal = 9 },
new PathEntry { System = "Global_NULL", Type = "Debug Logs", Path = Path.Combine(".", ""), Ordinal = 10 },
new PathEntry { System = "Global_NULL", Type = "Macros", Path = Path.Combine(".", "Movies", "Macros"), Ordinal = 11 },
new PathEntry { System = "Global_NULL", Type = "TAStudio states", Path = Path.Combine(".", "Movies", "TAStudio states"), Ordinal = 12 },
new PathEntry { System = "Global_NULL", Type = "Multi-Disk Bundles", Path = Path.Combine(".", ""), Ordinal = 13 },
new PathEntry { System = "Global_NULL", Type = "External Tools", Path = Path.Combine(".", "ExternalTools"), Ordinal = 14 },
new PathEntry { System = "Global_NULL", Type = "Temp Files", Path = "", Ordinal = 15 },
new("Global_NULL", 1, "Base", "."),
new("Global_NULL", 2, "ROM", "."),
new("Global_NULL", 3, "Firmware", Path.Combine(".", "Firmware")),
new("Global_NULL", 4, "Movies", Path.Combine(".", "Movies")),
new("Global_NULL", 5, "Movie backups", Path.Combine(".", "Movies", "backup")),
new("Global_NULL", 6, "A/V Dumps", "."),
new("Global_NULL", 7, "Tools", Path.Combine(".", "Tools")),
new("Global_NULL", 8, "Lua", Path.Combine(".", "Lua")),
new("Global_NULL", 9, "Watch (.wch)", Path.Combine(".", ".")),
new("Global_NULL", 10, "Debug Logs", Path.Combine(".", "")),
new("Global_NULL", 11, "Macros", Path.Combine(".", "Movies", "Macros")),
new("Global_NULL", 12, "TAStudio states", Path.Combine(".", "Movies", "TAStudio states")),
new("Global_NULL", 13, "Multi-Disk Bundles", Path.Combine(".", "")),
new("Global_NULL", 14, "External Tools", Path.Combine(".", "ExternalTools")),
new("Global_NULL", 15, "Temp Files", ""),
new PathEntry { System = "INTV", Type = "Base", Path = Path.Combine(".", "Intellivision"), Ordinal = 0 },
new PathEntry { System = "INTV", Type = "ROM", Path = ".", Ordinal = 1 },
new PathEntry { System = "INTV", Type = "Savestates", Path = Path.Combine(".", "State"), Ordinal = 2 },
new PathEntry { System = "INTV", Type = "Save RAM", Path = Path.Combine(".", "SaveRAM"), Ordinal = 3 },
new PathEntry { System = "INTV", Type = "Screenshots", Path = Path.Combine(".", "Screenshots"), Ordinal = 4 },
new PathEntry { System = "INTV", Type = "Cheats", Path = Path.Combine(".", "Cheats"), Ordinal = 5 },
new PathEntry { System = "INTV", Type = "Palettes", Path = Path.Combine(".", "Palettes"), Ordinal = 6 },
new("INTV", 0, "Base", Path.Combine(".", "Intellivision")),
new("INTV", 1, "ROM", "."),
new("INTV", 2, "Savestates", Path.Combine(".", "State")),
new("INTV", 3, "Save RAM", Path.Combine(".", "SaveRAM")),
new("INTV", 4, "Screenshots", Path.Combine(".", "Screenshots")),
new("INTV", 5, "Cheats", Path.Combine(".", "Cheats")),
new("INTV", 6, "Palettes", Path.Combine(".", "Palettes")),
new PathEntry { System = "NES", Type = "Base", Path = Path.Combine(".", "NES"), Ordinal = 0 },
new PathEntry { System = "NES", Type = "ROM", Path = ".", Ordinal = 1 },
new PathEntry { System = "NES", Type = "Savestates", Path = Path.Combine(".", "State"), Ordinal = 2 },
new PathEntry { System = "NES", Type = "Save RAM", Path = Path.Combine(".", "SaveRAM"), Ordinal = 3 },
new PathEntry { System = "NES", Type = "Screenshots", Path = Path.Combine(".", "Screenshots"), Ordinal = 4 },
new PathEntry { System = "NES", Type = "Cheats", Path = Path.Combine(".", "Cheats"), Ordinal = 5 },
new PathEntry { System = "NES", Type = "Palettes", Path = Path.Combine(".", "Palettes"), Ordinal = 6 },
new("NES", 0, "Base", Path.Combine(".", "NES")),
new("NES", 1, "ROM", "."),
new("NES", 2, "Savestates", Path.Combine(".", "State")),
new("NES", 3, "Save RAM", Path.Combine(".", "SaveRAM")),
new("NES", 4, "Screenshots", Path.Combine(".", "Screenshots")),
new("NES", 5, "Cheats", Path.Combine(".", "Cheats")),
new("NES", 6, "Palettes", Path.Combine(".", "Palettes")),
new PathEntry { System = "SNES_SGB", Type = "Base", Path = Path.Combine(".", "SNES"), Ordinal = 0 },
new PathEntry { System = "SNES_SGB", Type = "ROM", Path = ".", Ordinal = 1 },
new PathEntry { System = "SNES_SGB", Type = "Savestates", Path = Path.Combine(".", "State"), Ordinal = 2 },
new PathEntry { System = "SNES_SGB", Type = "Save RAM", Path = Path.Combine(".", "SaveRAM"), Ordinal = 3 },
new PathEntry { System = "SNES_SGB", Type = "Screenshots", Path = Path.Combine(".", "Screenshots"), Ordinal = 4 },
new PathEntry { System = "SNES_SGB", Type = "Cheats", Path = Path.Combine(".", "Cheats"), Ordinal = 5 },
new("SNES_SGB", 0, "Base", Path.Combine(".", "SNES")),
new("SNES_SGB", 1, "ROM", "."),
new("SNES_SGB", 2, "Savestates", Path.Combine(".", "State")),
new("SNES_SGB", 3, "Save RAM", Path.Combine(".", "SaveRAM")),
new("SNES_SGB", 4, "Screenshots", Path.Combine(".", "Screenshots")),
new("SNES_SGB", 5, "Cheats", Path.Combine(".", "Cheats")),
new PathEntry { System = "GBA", Type = "Base", Path = Path.Combine(".", "GBA"), Ordinal = 0 },
new PathEntry { System = "GBA", Type = "ROM", Path = ".", Ordinal = 1 },
new PathEntry { System = "GBA", Type = "Savestates", Path = Path.Combine(".", "State"), Ordinal = 2 },
new PathEntry { System = "GBA", Type = "Save RAM", Path = Path.Combine(".", "SaveRAM"), Ordinal = 3 },
new PathEntry { System = "GBA", Type = "Screenshots", Path = Path.Combine(".", "Screenshots"), Ordinal = 4 },
new PathEntry { System = "GBA", Type = "Cheats", Path = Path.Combine(".", "Cheats"), Ordinal = 5 },
new("GBA", 0, "Base", Path.Combine(".", "GBA")),
new("GBA", 1, "ROM", "."),
new("GBA", 2, "Savestates", Path.Combine(".", "State")),
new("GBA", 3, "Save RAM", Path.Combine(".", "SaveRAM")),
new("GBA", 4, "Screenshots", Path.Combine(".", "Screenshots")),
new("GBA", 5, "Cheats", Path.Combine(".", "Cheats")),
new PathEntry { System = "SMS", Type = "Base", Path = Path.Combine(".", "SMS"), Ordinal = 0 },
new PathEntry { System = "SMS", Type = "ROM", Path = ".", Ordinal = 1 },
new PathEntry { System = "SMS", Type = "Savestates", Path = Path.Combine(".", "State"), Ordinal = 2 },
new PathEntry { System = "SMS", Type = "Save RAM", Path = Path.Combine(".", "SaveRAM"), Ordinal = 3 },
new PathEntry { System = "SMS", Type = "Screenshots", Path = Path.Combine(".", "Screenshots"), Ordinal = 4 },
new PathEntry { System = "SMS", Type = "Cheats", Path = Path.Combine(".", "Cheats"), Ordinal = 5 },
new("SMS", 0, "Base", Path.Combine(".", "SMS")),
new("SMS", 1, "ROM", "."),
new("SMS", 2, "Savestates", Path.Combine(".", "State")),
new("SMS", 3, "Save RAM", Path.Combine(".", "SaveRAM")),
new("SMS", 4, "Screenshots", Path.Combine(".", "Screenshots")),
new("SMS", 5, "Cheats", Path.Combine(".", "Cheats")),
new PathEntry { System = "GG", Type = "Base", Path = Path.Combine(".", "Game Gear"), Ordinal = 0 },
new PathEntry { System = "GG", Type = "ROM", Path = ".", Ordinal = 1 },
new PathEntry { System = "GG", Type = "Savestates", Path = Path.Combine(".", "State"), Ordinal = 2 },
new PathEntry { System = "GG", Type = "Save RAM", Path = Path.Combine(".", "SaveRAM"), Ordinal = 3 },
new PathEntry { System = "GG", Type = "Screenshots", Path = Path.Combine(".", "Screenshots"), Ordinal = 4 },
new PathEntry { System = "GG", Type = "Cheats", Path = Path.Combine(".", "Cheats"), Ordinal = 5 },
new("GG", 0, "Base", Path.Combine(".", "Game Gear")),
new("GG", 1, "ROM", "."),
new("GG", 2, "Savestates", Path.Combine(".", "State")),
new("GG", 3, "Save RAM", Path.Combine(".", "SaveRAM")),
new("GG", 4, "Screenshots", Path.Combine(".", "Screenshots")),
new("GG", 5, "Cheats", Path.Combine(".", "Cheats")),
new PathEntry { System = "SG", Type = "Base", Path = Path.Combine(".", "SG-1000"), Ordinal = 0 },
new PathEntry { System = "SG", Type = "ROM", Path = ".", Ordinal = 1 },
new PathEntry { System = "SG", Type = "Savestates", Path = Path.Combine(".", "State"), Ordinal = 2 },
new PathEntry { System = "SG", Type = "Save RAM", Path = Path.Combine(".", "SaveRAM"), Ordinal = 3 },
new PathEntry { System = "SG", Type = "Screenshots", Path = Path.Combine(".", "Screenshots"), Ordinal = 4 },
new PathEntry { System = "SG", Type = "Cheats", Path = Path.Combine(".", "Cheats"), Ordinal = 5 },
new("SG", 0, "Base", Path.Combine(".", "SG-1000")),
new("SG", 1, "ROM", "."),
new("SG", 2, "Savestates", Path.Combine(".", "State")),
new("SG", 3, "Save RAM", Path.Combine(".", "SaveRAM")),
new("SG", 4, "Screenshots", Path.Combine(".", "Screenshots")),
new("SG", 5, "Cheats", Path.Combine(".", "Cheats")),
new PathEntry { System = "GEN", Type = "Base", Path = Path.Combine(".", "Genesis"), Ordinal = 0 },
new PathEntry { System = "GEN", Type = "ROM", Path = ".", Ordinal = 1 },
new PathEntry { System = "GEN", Type = "Savestates", Path = Path.Combine(".", "State"), Ordinal = 2 },
new PathEntry { System = "GEN", Type = "Save RAM", Path = Path.Combine(".", "SaveRAM"), Ordinal = 3 },
new PathEntry { System = "GEN", Type = "Screenshots", Path = Path.Combine(".", "Screenshots"), Ordinal = 4 },
new PathEntry { System = "GEN", Type = "Cheats", Path = Path.Combine(".", "Cheats"), Ordinal = 5 },
new("GEN", 0, "Base", Path.Combine(".", "Genesis")),
new("GEN", 1, "ROM", "."),
new("GEN", 2, "Savestates", Path.Combine(".", "State")),
new("GEN", 3, "Save RAM", Path.Combine(".", "SaveRAM")),
new("GEN", 4, "Screenshots", Path.Combine(".", "Screenshots")),
new("GEN", 5, "Cheats", Path.Combine(".", "Cheats")),
new PathEntry { System = "PCE_PCECD_SGX", Type = "Base", Path = Path.Combine(".", "PC Engine"), Ordinal = 0 },
new PathEntry { System = "PCE_PCECD_SGX", Type = "ROM", Path = ".", Ordinal = 1 },
new PathEntry { System = "PCE_PCECD_SGX", Type = "Savestates", Path = Path.Combine(".", "State"), Ordinal = 2 },
new PathEntry { System = "PCE_PCECD_SGX", Type = "Save RAM", Path = Path.Combine(".", "SaveRAM"), Ordinal = 3 },
new PathEntry { System = "PCE_PCECD_SGX", Type = "Screenshots", Path = Path.Combine(".", "Screenshots"), Ordinal = 4 },
new PathEntry { System = "PCE_PCECD_SGX", Type = "Cheats", Path = Path.Combine(".", "Cheats"), Ordinal = 5 },
new("PCE_PCECD_SGX", 0, "Base", Path.Combine(".", "PC Engine")),
new("PCE_PCECD_SGX", 1, "ROM", "."),
new("PCE_PCECD_SGX", 2, "Savestates", Path.Combine(".", "State")),
new("PCE_PCECD_SGX", 3, "Save RAM", Path.Combine(".", "SaveRAM")),
new("PCE_PCECD_SGX", 4, "Screenshots", Path.Combine(".", "Screenshots")),
new("PCE_PCECD_SGX", 5, "Cheats", Path.Combine(".", "Cheats")),
new PathEntry { System = "GB_GBC", Type = "Base", Path = Path.Combine(".", "Gameboy"), Ordinal = 0 },
new PathEntry { System = "GB_GBC", Type = "ROM", Path = ".", Ordinal = 1 },
new PathEntry { System = "GB_GBC", Type = "Savestates", Path = Path.Combine(".", "State"), Ordinal = 2 },
new PathEntry { System = "GB_GBC", Type = "Save RAM", Path = Path.Combine(".", "SaveRAM"), Ordinal = 3 },
new PathEntry { System = "GB_GBC", Type = "Screenshots", Path = Path.Combine(".", "Screenshots"), Ordinal = 4 },
new PathEntry { System = "GB_GBC", Type = "Cheats", Path = Path.Combine(".", "Cheats"), Ordinal = 5 },
new PathEntry { System = "GB_GBC", Type = "Palettes", Path = Path.Combine(".", "Palettes"), Ordinal = 6 },
new("GB_GBC", 0, "Base", Path.Combine(".", "Gameboy")),
new("GB_GBC", 1, "ROM", "."),
new("GB_GBC", 2, "Savestates", Path.Combine(".", "State")),
new("GB_GBC", 3, "Save RAM", Path.Combine(".", "SaveRAM")),
new("GB_GBC", 4, "Screenshots", Path.Combine(".", "Screenshots")),
new("GB_GBC", 5, "Cheats", Path.Combine(".", "Cheats")),
new("GB_GBC", 6, "Palettes", Path.Combine(".", "Palettes")),
new PathEntry { System = "DGB", Type = "Base", Path = Path.Combine(".", "Dual Gameboy"), Ordinal = 0 },
new PathEntry { System = "DGB", Type = "ROM", Path = ".", Ordinal = 1 },
new PathEntry { System = "DGB", Type = "Savestates", Path = Path.Combine(".", "State"), Ordinal = 2 },
new PathEntry { System = "DGB", Type = "Save RAM", Path = Path.Combine(".", "SaveRAM"), Ordinal = 3 },
new PathEntry { System = "DGB", Type = "Screenshots", Path = Path.Combine(".", "Screenshots"), Ordinal = 4 },
new PathEntry { System = "DGB", Type = "Cheats", Path = Path.Combine(".", "Cheats"), Ordinal = 5 },
new PathEntry { System = "DGB", Type = "Palettes", Path = Path.Combine(".", "Palettes"), Ordinal = 6 },
new("DGB", 0, "Base", Path.Combine(".", "Dual Gameboy")),
new("DGB", 1, "ROM", "."),
new("DGB", 2, "Savestates", Path.Combine(".", "State")),
new("DGB", 3, "Save RAM", Path.Combine(".", "SaveRAM")),
new("DGB", 4, "Screenshots", Path.Combine(".", "Screenshots")),
new("DGB", 5, "Cheats", Path.Combine(".", "Cheats")),
new("DGB", 6, "Palettes", Path.Combine(".", "Palettes")),
new PathEntry { System = "TI83", Type = "Base", Path = Path.Combine(".", "TI83"), Ordinal = 0 },
new PathEntry { System = "TI83", Type = "ROM", Path = ".", Ordinal = 1 },
new PathEntry { System = "TI83", Type = "Savestates", Path = Path.Combine(".", "State"), Ordinal = 2 },
new PathEntry { System = "TI83", Type = "Save RAM", Path = Path.Combine(".", "SaveRAM"), Ordinal = 3 },
new PathEntry { System = "TI83", Type = "Screenshots", Path = Path.Combine(".", "Screenshots"), Ordinal = 4 },
new PathEntry { System = "TI83", Type = "Cheats", Path = Path.Combine(".", "Cheats"), Ordinal = 5 },
new("TI83", 0, "Base", Path.Combine(".", "TI83")),
new("TI83", 1, "ROM", "."),
new("TI83", 2, "Savestates", Path.Combine(".", "State")),
new("TI83", 3, "Save RAM", Path.Combine(".", "SaveRAM")),
new("TI83", 4, "Screenshots", Path.Combine(".", "Screenshots")),
new("TI83", 5, "Cheats", Path.Combine(".", "Cheats")),
new PathEntry { System = "A26", Type = "Base", Path = Path.Combine(".", "Atari 2600"), Ordinal = 0 },
new PathEntry { System = "A26", Type = "ROM", Path = ".", Ordinal = 1 },
new PathEntry { System = "A26", Type = "Savestates", Path = Path.Combine(".", "State"), Ordinal = 2 },
new PathEntry { System = "A26", Type = "Screenshots", Path = Path.Combine(".", "Screenshots"), Ordinal = 4 },
new PathEntry { System = "A26", Type = "Cheats", Path = Path.Combine(".", "Cheats"), Ordinal = 5 },
new("A26", 0, "Base", Path.Combine(".", "Atari 2600")),
new("A26", 1, "ROM", "."),
new("A26", 2, "Savestates", Path.Combine(".", "State")),
new("A26", 4, "Screenshots", Path.Combine(".", "Screenshots")),
new("A26", 5, "Cheats", Path.Combine(".", "Cheats")),
new PathEntry { System = "A78", Type = "Base", Path = Path.Combine(".", "Atari 7800"), Ordinal = 0 },
new PathEntry { System = "A78", Type = "ROM", Path = ".", Ordinal = 1 },
new PathEntry { System = "A78", Type = "Savestates", Path = Path.Combine(".", "State"), Ordinal = 2 },
new PathEntry { System = "A78", Type = "Save RAM", Path = Path.Combine(".", "SaveRAM"), Ordinal = 3 },
new PathEntry { System = "A78", Type = "Screenshots", Path = Path.Combine(".", "Screenshots"), Ordinal = 4 },
new PathEntry { System = "A78", Type = "Cheats", Path = Path.Combine(".", "Cheats"), Ordinal = 5 },
new("A78", 0, "Base", Path.Combine(".", "Atari 7800")),
new("A78", 1, "ROM", "."),
new("A78", 2, "Savestates", Path.Combine(".", "State")),
new("A78", 3, "Save RAM", Path.Combine(".", "SaveRAM")),
new("A78", 4, "Screenshots", Path.Combine(".", "Screenshots")),
new("A78", 5, "Cheats", Path.Combine(".", "Cheats")),
new PathEntry { System = "C64", Type = "Base", Path = Path.Combine(".", "C64"), Ordinal = 0 },
new PathEntry { System = "C64", Type = "ROM", Path = ".", Ordinal = 1 },
new PathEntry { System = "C64", Type = "Savestates", Path = Path.Combine(".", "State"), Ordinal = 2 },
new PathEntry { System = "C64", Type = "Screenshots", Path = Path.Combine(".", "Screenshots"), Ordinal = 4 },
new PathEntry { System = "C64", Type = "Cheats", Path = Path.Combine(".", "Cheats"), Ordinal = 5 },
new("C64", 0, "Base", Path.Combine(".", "C64")),
new("C64", 1, "ROM", "."),
new("C64", 2, "Savestates", Path.Combine(".", "State")),
new("C64", 4, "Screenshots", Path.Combine(".", "Screenshots")),
new("C64", 5, "Cheats", Path.Combine(".", "Cheats")),
new PathEntry { System = "ZXSpectrum", Type = "Base", Path = Path.Combine(".", "ZXSpectrum"), Ordinal = 0 },
new PathEntry { System = "ZXSpectrum", Type = "ROM", Path = ".", Ordinal = 1 },
new PathEntry { System = "ZXSpectrum", Type = "Savestates", Path = Path.Combine(".", "State"), Ordinal = 2 },
new PathEntry { System = "ZXSpectrum", Type = "Screenshots", Path = Path.Combine(".", "Screenshots"), Ordinal = 4 },
new PathEntry { System = "ZXSpectrum", Type = "Cheats", Path = Path.Combine(".", "Cheats"), Ordinal = 5 },
new("ZXSpectrum", 0, "Base", Path.Combine(".", "ZXSpectrum")),
new("ZXSpectrum", 1, "ROM", "."),
new("ZXSpectrum", 2, "Savestates", Path.Combine(".", "State")),
new("ZXSpectrum", 4, "Screenshots", Path.Combine(".", "Screenshots")),
new("ZXSpectrum", 5, "Cheats", Path.Combine(".", "Cheats")),
new PathEntry { System = "AmstradCPC", Type = "Base", Path = Path.Combine(".", "AmstradCPC"), Ordinal = 0 },
new PathEntry { System = "AmstradCPC", Type = "ROM", Path = ".", Ordinal = 1 },
new PathEntry { System = "AmstradCPC", Type = "Savestates", Path = Path.Combine(".", "State"), Ordinal = 2 },
new PathEntry { System = "AmstradCPC", Type = "Screenshots", Path = Path.Combine(".", "Screenshots"), Ordinal = 4 },
new PathEntry { System = "AmstradCPC", Type = "Cheats", Path = Path.Combine(".", "Cheats"), Ordinal = 5 },
new("AmstradCPC", 0, "Base", Path.Combine(".", "AmstradCPC")),
new("AmstradCPC", 1, "ROM", "."),
new("AmstradCPC", 2, "Savestates", Path.Combine(".", "State")),
new("AmstradCPC", 4, "Screenshots", Path.Combine(".", "Screenshots")),
new("AmstradCPC", 5, "Cheats", Path.Combine(".", "Cheats")),
new PathEntry { System = "PSX", Type = "Base", Path = Path.Combine(".", "PSX"), Ordinal = 0 },
new PathEntry { System = "PSX", Type = "ROM", Path = ".", Ordinal = 1 },
new PathEntry { System = "PSX", Type = "Savestates", Path = Path.Combine(".", "State"), Ordinal = 2 },
new PathEntry { System = "PSX", Type = "Save RAM", Path = Path.Combine(".", "SaveRAM"), Ordinal = 3 },
new PathEntry { System = "PSX", Type = "Screenshots", Path = Path.Combine(".", "Screenshots"), Ordinal = 4 },
new PathEntry { System = "PSX", Type = "Cheats", Path = Path.Combine(".", "Cheats"), Ordinal = 5 },
new("PSX", 0, "Base", Path.Combine(".", "PSX")),
new("PSX", 1, "ROM", "."),
new("PSX", 2, "Savestates", Path.Combine(".", "State")),
new("PSX", 3, "Save RAM", Path.Combine(".", "SaveRAM")),
new("PSX", 4, "Screenshots", Path.Combine(".", "Screenshots")),
new("PSX", 5, "Cheats", Path.Combine(".", "Cheats")),
new PathEntry { System = "Coleco", Type = "Base", Path = Path.Combine(".", "Coleco"), Ordinal = 0 },
new PathEntry { System = "Coleco", Type = "ROM", Path = ".", Ordinal = 1 },
new PathEntry { System = "Coleco", Type = "Savestates", Path = Path.Combine(".", "State"), Ordinal = 2 },
new PathEntry { System = "Coleco", Type = "Screenshots", Path = Path.Combine(".", "Screenshots"), Ordinal = 4 },
new PathEntry { System = "Coleco", Type = "Cheats", Path = Path.Combine(".", "Cheats"), Ordinal = 5 },
new("Coleco", 0, "Base", Path.Combine(".", "Coleco")),
new("Coleco", 1, "ROM", "."),
new("Coleco", 2, "Savestates", Path.Combine(".", "State")),
new("Coleco", 4, "Screenshots", Path.Combine(".", "Screenshots")),
new("Coleco", 5, "Cheats", Path.Combine(".", "Cheats")),
new PathEntry { System = "N64", Type = "Base", Path = Path.Combine(".", "N64"), Ordinal = 0 },
new PathEntry { System = "N64", Type = "ROM", Path = ".", Ordinal = 1 },
new PathEntry { System = "N64", Type = "Savestates", Path = Path.Combine(".", "State"), Ordinal = 2 },
new PathEntry { System = "N64", Type = "Save RAM", Path = Path.Combine(".", "SaveRAM"), Ordinal = 3 },
new PathEntry { System = "N64", Type = "Screenshots", Path = Path.Combine(".", "Screenshots"), Ordinal = 4 },
new PathEntry { System = "N64", Type = "Cheats", Path = Path.Combine(".", "Cheats"), Ordinal = 5 },
new("N64", 0, "Base", Path.Combine(".", "N64")),
new("N64", 1, "ROM", "."),
new("N64", 2, "Savestates", Path.Combine(".", "State")),
new("N64", 3, "Save RAM", Path.Combine(".", "SaveRAM")),
new("N64", 4, "Screenshots", Path.Combine(".", "Screenshots")),
new("N64", 5, "Cheats", Path.Combine(".", "Cheats")),
new PathEntry { System = "SAT", Type = "Base", Path = Path.Combine(".", "Saturn"), Ordinal = 0 },
new PathEntry { System = "SAT", Type = "ROM", Path = ".", Ordinal = 1 },
new PathEntry { System = "SAT", Type = "Savestates", Path = Path.Combine(".", "State"), Ordinal = 2 },
new PathEntry { System = "SAT", Type = "Save RAM", Path = Path.Combine(".", "SaveRAM"), Ordinal = 3 },
new PathEntry { System = "SAT", Type = "Screenshots", Path = Path.Combine(".", "Screenshots"), Ordinal = 4 },
new PathEntry { System = "SAT", Type = "Cheats", Path = Path.Combine(".", "Cheats"), Ordinal = 5 },
new("SAT", 0, "Base", Path.Combine(".", "Saturn")),
new("SAT", 1, "ROM", "."),
new("SAT", 2, "Savestates", Path.Combine(".", "State")),
new("SAT", 3, "Save RAM", Path.Combine(".", "SaveRAM")),
new("SAT", 4, "Screenshots", Path.Combine(".", "Screenshots")),
new("SAT", 5, "Cheats", Path.Combine(".", "Cheats")),
new PathEntry { System = "WSWAN", Type = "Base", Path = Path.Combine(".", "WonderSwan"), Ordinal = 0 },
new PathEntry { System = "WSWAN", Type = "ROM", Path = ".", Ordinal = 1 },
new PathEntry { System = "WSWAN", Type = "Savestates", Path = Path.Combine(".", "State"), Ordinal = 2 },
new PathEntry { System = "WSWAN", Type = "Save RAM", Path = Path.Combine(".", "SaveRAM"), Ordinal = 3 },
new PathEntry { System = "WSWAN", Type = "Screenshots", Path = Path.Combine(".", "Screenshots"), Ordinal = 4 },
new PathEntry { System = "WSWAN", Type = "Cheats", Path = Path.Combine(".", "Cheats"), Ordinal = 5 },
new("WSWAN", 0, "Base", Path.Combine(".", "WonderSwan")),
new("WSWAN", 1, "ROM", "."),
new("WSWAN", 2, "Savestates", Path.Combine(".", "State")),
new("WSWAN", 3, "Save RAM", Path.Combine(".", "SaveRAM")),
new("WSWAN", 4, "Screenshots", Path.Combine(".", "Screenshots")),
new("WSWAN", 5, "Cheats", Path.Combine(".", "Cheats")),
new PathEntry { System = "Lynx", Type = "Base", Path = Path.Combine(".", "Lynx"), Ordinal = 0 },
new PathEntry { System = "Lynx", Type = "ROM", Path = ".", Ordinal = 1 },
new PathEntry { System = "Lynx", Type = "Savestates", Path = Path.Combine(".", "State"), Ordinal = 2 },
new PathEntry { System = "Lynx", Type = "Save RAM", Path = Path.Combine(".", "SaveRAM"), Ordinal = 3 },
new PathEntry { System = "Lynx", Type = "Screenshots", Path = Path.Combine(".", "Screenshots"), Ordinal = 4 },
new PathEntry { System = "Lynx", Type = "Cheats", Path = Path.Combine(".", "Cheats"), Ordinal = 5 },
new("Lynx", 0, "Base", Path.Combine(".", "Lynx")),
new("Lynx", 1, "ROM", "."),
new("Lynx", 2, "Savestates", Path.Combine(".", "State")),
new("Lynx", 3, "Save RAM", Path.Combine(".", "SaveRAM")),
new("Lynx", 4, "Screenshots", Path.Combine(".", "Screenshots")),
new("Lynx", 5, "Cheats", Path.Combine(".", "Cheats")),
new PathEntry { System = "AppleII", Type = "Base", Path = Path.Combine(".", "Apple II"), Ordinal = 0 },
new PathEntry { System = "AppleII", Type = "ROM", Path = ".", Ordinal = 1 },
new PathEntry { System = "AppleII", Type = "Savestates", Path = Path.Combine(".", "State"), Ordinal = 2 },
new PathEntry { System = "AppleII", Type = "Screenshots", Path = Path.Combine(".", "Screenshots"), Ordinal = 4 },
new PathEntry { System = "AppleII", Type = "Cheats", Path = Path.Combine(".", "Cheats"), Ordinal = 5 },
new("AppleII", 0, "Base", Path.Combine(".", "Apple II")),
new("AppleII", 1, "ROM", "."),
new("AppleII", 2, "Savestates", Path.Combine(".", "State")),
new("AppleII", 4, "Screenshots", Path.Combine(".", "Screenshots")),
new("AppleII", 5, "Cheats", Path.Combine(".", "Cheats")),
new PathEntry { System = "Libretro", Type = "Base", Path = Path.Combine(".", "Libretro"), Ordinal = 0 },
new PathEntry { System = "Libretro", Type = "Cores", Path = Path.Combine(".", "Cores"), Ordinal = 1 },
new PathEntry { System = "Libretro", Type = "System", Path = Path.Combine(".", "System"), Ordinal = 2 },
new PathEntry { System = "Libretro", Type = "Savestates", Path = Path.Combine(".", "State"), Ordinal = 3 },
new PathEntry { System = "Libretro", Type = "Save RAM", Path = Path.Combine(".", "SaveRAM"), Ordinal = 4 },
new PathEntry { System = "Libretro", Type = "Screenshots", Path = Path.Combine(".", "Screenshots"), Ordinal = 5 },
new PathEntry { System = "Libretro", Type = "Cheats", Path = Path.Combine(".", "Cheats"), Ordinal = 6 },
new("Libretro", 0, "Base", Path.Combine(".", "Libretro")),
new("Libretro", 1, "Cores", Path.Combine(".", "Cores")),
new("Libretro", 2, "System", Path.Combine(".", "System")),
new("Libretro", 3, "Savestates", Path.Combine(".", "State")),
new("Libretro", 4, "Save RAM", Path.Combine(".", "SaveRAM")),
new("Libretro", 5, "Screenshots", Path.Combine(".", "Screenshots")),
new("Libretro", 6, "Cheats", Path.Combine(".", "Cheats")),
//It doesn't make much sense to have a ROM dir for libretro, but a lot of stuff is built around the assumption of a ROM dir existing
//also, note, sometimes when path gets used, it's for opening a rom, which will be... loaded by... the default system for that rom, i.e. NOT libretro.
//Really, "Open Rom" for instance doesn't make sense when you have a libretro core open.
//Well, this is better than nothing.
new PathEntry { System = "Libretro", Type = "ROM", Path = "%recent%", Ordinal = 7 },
new("Libretro", 7, "ROM", "%recent%"),
new PathEntry { System = "VB", Type = "Base", Path = Path.Combine(".", "VB"), Ordinal = 0 },
new PathEntry { System = "VB", Type = "ROM", Path = ".", Ordinal = 1 },
new PathEntry { System = "VB", Type = "Savestates", Path = Path.Combine(".", "State"), Ordinal = 2 },
new PathEntry { System = "VB", Type = "Save RAM", Path = Path.Combine(".", "SaveRAM"), Ordinal = 3 },
new PathEntry { System = "VB", Type = "Screenshots", Path = Path.Combine(".", "Screenshots"), Ordinal = 4 },
new PathEntry { System = "VB", Type = "Cheats", Path = Path.Combine(".", "Cheats"), Ordinal = 5 },
new("VB", 0, "Base", Path.Combine(".", "VB")),
new("VB", 1, "ROM", "."),
new("VB", 2, "Savestates", Path.Combine(".", "State")),
new("VB", 3, "Save RAM", Path.Combine(".", "SaveRAM")),
new("VB", 4, "Screenshots", Path.Combine(".", "Screenshots")),
new("VB", 5, "Cheats", Path.Combine(".", "Cheats")),
new PathEntry { System = "NGP", Type = "Base", Path = Path.Combine(".", "NGP"), Ordinal = 0 },
new PathEntry { System = "NGP", Type = "ROM", Path = ".", Ordinal = 1 },
new PathEntry { System = "NGP", Type = "Savestates", Path = Path.Combine(".", "State"), Ordinal = 2 },
new PathEntry { System = "NGP", Type = "Save RAM", Path = Path.Combine(".", "SaveRAM"), Ordinal = 3 },
new PathEntry { System = "NGP", Type = "Screenshots", Path = Path.Combine(".", "Screenshots"), Ordinal = 4 },
new PathEntry { System = "NGP", Type = "Cheats", Path = Path.Combine(".", "Cheats"), Ordinal = 5 },
new("NGP", 0, "Base", Path.Combine(".", "NGP")),
new("NGP", 1, "ROM", "."),
new("NGP", 2, "Savestates", Path.Combine(".", "State")),
new("NGP", 3, "Save RAM", Path.Combine(".", "SaveRAM")),
new("NGP", 4, "Screenshots", Path.Combine(".", "Screenshots")),
new("NGP", 5, "Cheats", Path.Combine(".", "Cheats")),
new PathEntry { System = "PCFX", Type = "Base", Path = Path.Combine(".", "PCFX"), Ordinal = 0 },
new PathEntry { System = "PCFX", Type = "ROM", Path = ".", Ordinal = 1 },
new PathEntry { System = "PCFX", Type = "Savestates", Path = Path.Combine(".", "State"), Ordinal = 2 },
new PathEntry { System = "PCFX", Type = "Save RAM", Path = Path.Combine(".", "SaveRAM"), Ordinal = 3 },
new PathEntry { System = "PCFX", Type = "Screenshots", Path = Path.Combine(".", "Screenshots"), Ordinal = 4 },
new PathEntry { System = "PCFX", Type = "Cheats", Path = Path.Combine(".", "Cheats"), Ordinal = 5 },
new("PCFX", 0, "Base", Path.Combine(".", "PCFX")),
new("PCFX", 1, "ROM", "."),
new("PCFX", 2, "Savestates", Path.Combine(".", "State")),
new("PCFX", 3, "Save RAM", Path.Combine(".", "SaveRAM")),
new("PCFX", 4, "Screenshots", Path.Combine(".", "Screenshots")),
new("PCFX", 5, "Cheats", Path.Combine(".", "Cheats")),
new PathEntry { System = "ChannelF", Type = "Base", Path = Path.Combine(".", "ZXSpectrum"), Ordinal = 0 },
new PathEntry { System = "ChannelF", Type = "ROM", Path = ".", Ordinal = 1 },
new PathEntry { System = "ChannelF", Type = "Savestates", Path = Path.Combine(".", "State"), Ordinal = 2 },
new PathEntry { System = "ChannelF", Type = "Screenshots", Path = Path.Combine(".", "Screenshots"), Ordinal = 4 },
new PathEntry { System = "ChannelF", Type = "Cheats", Path = Path.Combine(".", "Cheats"), Ordinal = 5 },
new("ChannelF", 0, "Base", Path.Combine(".", "ZXSpectrum")),
new("ChannelF", 1, "ROM", "."),
new("ChannelF", 2, "Savestates", Path.Combine(".", "State")),
new("ChannelF", 4, "Screenshots", Path.Combine(".", "Screenshots")),
new("ChannelF", 5, "Cheats", Path.Combine(".", "Cheats")),
new PathEntry { System = "GB3x", Type = "Base", Path = Path.Combine(".", "GB3x"), Ordinal = 0 },
new PathEntry { System = "GB3x", Type = "ROM", Path = ".", Ordinal = 1 },
new PathEntry { System = "GB3x", Type = "Savestates", Path = Path.Combine(".", "State"), Ordinal = 2 },
new PathEntry { System = "GB3x", Type = "Save RAM", Path = Path.Combine(".", "SaveRAM"), Ordinal = 3 },
new PathEntry { System = "GB3x", Type = "Screenshots", Path = Path.Combine(".", "Screenshots"), Ordinal = 4 },
new PathEntry { System = "GB3x", Type = "Cheats", Path = Path.Combine(".", "Cheats"), Ordinal = 5 },
new("GB3x", 0, "Base", Path.Combine(".", "GB3x")),
new("GB3x", 1, "ROM", "."),
new("GB3x", 2, "Savestates", Path.Combine(".", "State")),
new("GB3x", 3, "Save RAM", Path.Combine(".", "SaveRAM")),
new("GB3x", 4, "Screenshots", Path.Combine(".", "Screenshots")),
new("GB3x", 5, "Cheats", Path.Combine(".", "Cheats")),
new PathEntry { System = "GB4x", Type = "Base", Path = Path.Combine(".", "GB4x"), Ordinal = 0 },
new PathEntry { System = "GB4x", Type = "ROM", Path = ".", Ordinal = 1 },
new PathEntry { System = "GB4x", Type = "Savestates", Path = Path.Combine(".", "State"), Ordinal = 2 },
new PathEntry { System = "GB4x", Type = "Save RAM", Path = Path.Combine(".", "SaveRAM"), Ordinal = 3 },
new PathEntry { System = "GB4x", Type = "Screenshots", Path = Path.Combine(".", "Screenshots"), Ordinal = 4 },
new PathEntry { System = "GB4x", Type = "Cheats", Path = Path.Combine(".", "Cheats"), Ordinal = 5 },
new("GB4x", 0, "Base", Path.Combine(".", "GB4x")),
new("GB4x", 1, "ROM", "."),
new("GB4x", 2, "Savestates", Path.Combine(".", "State")),
new("GB4x", 3, "Save RAM", Path.Combine(".", "SaveRAM")),
new("GB4x", 4, "Screenshots", Path.Combine(".", "Screenshots")),
new("GB4x", 5, "Cheats", Path.Combine(".", "Cheats")),
new PathEntry { System = "VEC", Type = "Base", Path = Path.Combine(".", "VEC"), Ordinal = 0 },
new PathEntry { System = "VEC", Type = "ROM", Path = ".", Ordinal = 1 },
new PathEntry { System = "VEC", Type = "Savestates", Path = Path.Combine(".", "State"), Ordinal = 2 },
new PathEntry { System = "VEC", Type = "Save RAM", Path = Path.Combine(".", "SaveRAM"), Ordinal = 3 },
new PathEntry { System = "VEC", Type = "Screenshots", Path = Path.Combine(".", "Screenshots"), Ordinal = 4 },
new PathEntry { System = "VEC", Type = "Cheats", Path = Path.Combine(".", "Cheats"), Ordinal = 5 },
new("VEC", 0, "Base", Path.Combine(".", "VEC")),
new("VEC", 1, "ROM", "."),
new("VEC", 2, "Savestates", Path.Combine(".", "State")),
new("VEC", 3, "Save RAM", Path.Combine(".", "SaveRAM")),
new("VEC", 4, "Screenshots", Path.Combine(".", "Screenshots")),
new("VEC", 5, "Cheats", Path.Combine(".", "Cheats")),
new PathEntry { System = "O2", Type = "Base", Path = Path.Combine(".", "O2"), Ordinal = 0 },
new PathEntry { System = "O2", Type = "ROM", Path = ".", Ordinal = 1 },
new PathEntry { System = "O2", Type = "Savestates", Path = Path.Combine(".", "State"), Ordinal = 2 },
new PathEntry { System = "O2", Type = "Save RAM", Path = Path.Combine(".", "SaveRAM"), Ordinal = 3 },
new PathEntry { System = "O2", Type = "Screenshots", Path = Path.Combine(".", "Screenshots"), Ordinal = 4 },
new PathEntry { System = "O2", Type = "Cheats", Path = Path.Combine(".", "Cheats"), Ordinal = 5 },
new("O2", 0, "Base", Path.Combine(".", "O2")),
new("O2", 1, "ROM", "."),
new("O2", 2, "Savestates", Path.Combine(".", "State")),
new("O2", 3, "Save RAM", Path.Combine(".", "SaveRAM")),
new("O2", 4, "Screenshots", Path.Combine(".", "Screenshots")),
new("O2", 5, "Cheats", Path.Combine(".", "Cheats")),
new PathEntry { System = "MSX", Type = "Base", Path = Path.Combine(".", "MSX"), Ordinal = 0 },
new PathEntry { System = "MSX", Type = "ROM", Path = ".", Ordinal = 1 },
new PathEntry { System = "MSX", Type = "Savestates", Path = Path.Combine(".", "State"), Ordinal = 2 },
new PathEntry { System = "MSX", Type = "Save RAM", Path = Path.Combine(".", "SaveRAM"), Ordinal = 3 },
new PathEntry { System = "MSX", Type = "Screenshots", Path = Path.Combine(".", "Screenshots"), Ordinal = 4 },
new PathEntry { System = "MSX", Type = "Cheats", Path = Path.Combine(".", "Cheats"), Ordinal = 5 },
new("MSX", 0, "Base", Path.Combine(".", "MSX")),
new("MSX", 1, "ROM", "."),
new("MSX", 2, "Savestates", Path.Combine(".", "State")),
new("MSX", 3, "Save RAM", Path.Combine(".", "SaveRAM")),
new("MSX", 4, "Screenshots", Path.Combine(".", "Screenshots")),
new("MSX", 5, "Cheats", Path.Combine(".", "Cheats")),
new PathEntry { System = "UZE", Type = "Base", Path = Path.Combine(".", "VEC"), Ordinal = 0 },
new PathEntry { System = "UZE", Type = "ROM", Path = ".", Ordinal = 1 },
new PathEntry { System = "UZE", Type = "Savestates", Path = Path.Combine(".", "State"), Ordinal = 2 },
new PathEntry { System = "UZE", Type = "Save RAM", Path = Path.Combine(".", "SaveRAM"), Ordinal = 3 },
new PathEntry { System = "UZE", Type = "Screenshots", Path = Path.Combine(".", "Screenshots"), Ordinal = 4 },
new PathEntry { System = "UZE", Type = "Cheats", Path = Path.Combine(".", "Cheats"), Ordinal = 5 },
new("UZE", 0, "Base", Path.Combine(".", "VEC")),
new("UZE", 1, "ROM", "."),
new("UZE", 2, "Savestates", Path.Combine(".", "State")),
new("UZE", 3, "Save RAM", Path.Combine(".", "SaveRAM")),
new("UZE", 4, "Screenshots", Path.Combine(".", "Screenshots")),
new("UZE", 5, "Cheats", Path.Combine(".", "Cheats")),
new PathEntry { System = "NDS", Type = "Base", Path = Path.Combine(".", "NDS"), Ordinal = 0 },
new PathEntry { System = "NDS", Type = "ROM", Path = ".", Ordinal = 1 },
new PathEntry { System = "NDS", Type = "Savestates", Path = Path.Combine(".", "State"), Ordinal = 2 },
new PathEntry { System = "NDS", Type = "Save RAM", Path = Path.Combine(".", "SaveRAM"), Ordinal = 3 },
new PathEntry { System = "NDS", Type = "Screenshots", Path = Path.Combine(".", "Screenshots"), Ordinal = 4 },
new PathEntry { System = "NDS", Type = "Cheats", Path = Path.Combine(".", "Cheats"), Ordinal = 5 }
new("NDS", 0, "Base", Path.Combine(".", "NDS")),
new("NDS", 1, "ROM", "."),
new("NDS", 2, "Savestates", Path.Combine(".", "State")),
new("NDS", 3, "Save RAM", Path.Combine(".", "SaveRAM")),
new("NDS", 4, "Screenshots", Path.Combine(".", "Screenshots")),
new("NDS", 5, "Cheats", Path.Combine(".", "Cheats")),
};
}
}