use switch expressions on CoreSystemEnum converters, and add some enums that haven't been there for a long time (does anyone use this?)

This commit is contained in:
adelikat 2020-03-14 15:24:46 -05:00
parent 2c007e5049
commit 9037c82985
2 changed files with 75 additions and 193 deletions

View File

@ -25,117 +25,50 @@ namespace BizHawk.Client.ApiHawk
/// <exception cref="IndexOutOfRangeException">Thrown when SystemId hasn't been found</exception> /// <exception cref="IndexOutOfRangeException">Thrown when SystemId hasn't been found</exception>
public object Convert(object value, Type targetType, object parameter, CultureInfo cultureInfo) public object Convert(object value, Type targetType, object parameter, CultureInfo cultureInfo)
{ {
switch ((string)value) return (string) value switch
{ {
case "AppleII": "AppleII" => CoreSystem.AppleII,
return CoreSystem.AppleII; "A26" => CoreSystem.Atari2600,
"A78" => CoreSystem.Atari7800,
case "A26": "Coleco" => CoreSystem.ColecoVision,
return CoreSystem.Atari2600; "C64" => CoreSystem.Commodore64,
"DGB" => CoreSystem.DualGameBoy,
case "A78": "GB" => CoreSystem.GameBoy,
return CoreSystem.Atari7800; "GBA" => CoreSystem.GameBoyAdvance,
"GEN" => CoreSystem.Genesis,
case "Coleco": "INTV" => CoreSystem.Intellivision,
return CoreSystem.ColecoVision; "Libretro" => CoreSystem.Libretro,
"Lynx" => CoreSystem.Lynx,
case "C64": "SMS" => CoreSystem.MasterSystem,
return CoreSystem.Commodore64; "NES" => CoreSystem.NES,
"N64" => CoreSystem.Nintendo64,
case "DGB": "NULL" => CoreSystem.Null,
return CoreSystem.DualGameBoy; "PCE" => CoreSystem.PCEngine,
"PCECD" => CoreSystem.PCEngine,
case "GB": "SGX" => CoreSystem.PCEngine,
return CoreSystem.GameBoy; "PSX" => CoreSystem.Playstation,
"SAT" => CoreSystem.Saturn,
case "GBA": "SNES" => CoreSystem.SNES,
return CoreSystem.GameBoyAdvance; "TI83" => CoreSystem.TI83,
"VEC" => CoreSystem.Vectrex,
case "GEN": "WSWAN" => CoreSystem.WonderSwan,
return CoreSystem.Genesis; "ZXSpectrum" => CoreSystem.ZXSpectrum,
"AmstradCPC" => CoreSystem.AmstradCPC,
case "INTV": "GGL" => CoreSystem.GGL,
return CoreSystem.Intellivision; "ChannelF" => CoreSystem.ChannelF,
"GB3x" => CoreSystem.GB3x,
case "Libretro": "GB4x" => CoreSystem.GB4x,
return CoreSystem.Libretro; "MAME" => CoreSystem.MAME,
"O2" => CoreSystem.Odyssey2,
case "Lynx": "MSX" => CoreSystem.MSX,
return CoreSystem.Lynx; "VB" => CoreSystem.VirtualBoy,
"NGP" => CoreSystem.NeoGeoPocket,
case "SMS": "DNGP" => CoreSystem.NeoGeoPocket,
return CoreSystem.MasterSystem; "SGB" => CoreSystem.SuperGameBoy,
"UZE" => CoreSystem.UzeBox,
case "NES": "PCFX" => CoreSystem.PcFx,
return CoreSystem.NES; _ => throw new IndexOutOfRangeException($"{value} is missing in convert list")
};
case "N64":
return CoreSystem.Nintendo64;
case "NULL":
return CoreSystem.Null;
case "PCE":
case "PCECD":
case "SGX":
return CoreSystem.PCEngine;
case "PSX":
return CoreSystem.Playstation;
case "SAT":
return CoreSystem.Saturn;
case "SNES":
return CoreSystem.SNES;
case "TI83":
return CoreSystem.TI83;
case "VEC":
return CoreSystem.Vectrex;
case "WSWAN":
return CoreSystem.WonderSwan;
case "ZXSpectrum":
return CoreSystem.ZXSpectrum;
case "AmstradCPC":
return CoreSystem.AmstradCPC;
case "GGL":
return CoreSystem.GGL;
case "ChannelF":
return CoreSystem.ChannelF;
case "GB3x":
return CoreSystem.GB3x;
case "GB4x":
return CoreSystem.GB4x;
case "MAME":
return CoreSystem.MAME;
case "O2":
return CoreSystem.Odyssey2;
case "MSX":
return CoreSystem.MSX;
case "VB":
case "NGP":
case "DNGP":
case "SGB":
case "UZE":
case "PCFX":
return 0; // like I give a shit
default:
throw new IndexOutOfRangeException($"{value} is missing in convert list");
}
} }
@ -162,89 +95,35 @@ namespace BizHawk.Client.ApiHawk
/// <exception cref="IndexOutOfRangeException">Thrown when <see cref="CoreSystem"/> hasn't been found</exception> /// <exception cref="IndexOutOfRangeException">Thrown when <see cref="CoreSystem"/> hasn't been found</exception>
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo cultureInfo) public object ConvertBack(object value, Type targetType, object parameter, CultureInfo cultureInfo)
{ {
switch ((CoreSystem)value) return (CoreSystem) value switch
{ {
case CoreSystem.AppleII: CoreSystem.AppleII => "AppleII",
return "AppleII"; CoreSystem.Atari2600 => "A26",
CoreSystem.Atari7800 => "A78",
case CoreSystem.Atari2600: CoreSystem.ColecoVision => "Coleco",
return "A26"; CoreSystem.Commodore64 => "C64",
CoreSystem.DualGameBoy => "DGB",
case CoreSystem.Atari7800: CoreSystem.GameBoy => "GB",
return "A78"; CoreSystem.GameBoyAdvance => "GBA",
CoreSystem.Genesis => "GEN",
case CoreSystem.ColecoVision: CoreSystem.Intellivision => "INTV",
return "Coleco"; CoreSystem.Libretro => "Libretro",
CoreSystem.Lynx => "Lynx",
case CoreSystem.Commodore64: CoreSystem.MasterSystem => "SMS",
return "C64"; CoreSystem.NES => "NES",
CoreSystem.Nintendo64 => "N64",
case CoreSystem.DualGameBoy: CoreSystem.Null => "NULL",
return "DGB"; CoreSystem.PCEngine => "PCE",
CoreSystem.Playstation => "PSX",
case CoreSystem.GameBoy: CoreSystem.Saturn => "SAT",
return "GB"; CoreSystem.SNES => "SNES",
CoreSystem.TI83 => "TI83",
case CoreSystem.GameBoyAdvance: CoreSystem.WonderSwan => "WSWAN",
return "GBA"; CoreSystem.ZXSpectrum => "ZXSpectrum",
CoreSystem.AmstradCPC => "AmstradCPC",
case CoreSystem.Genesis: CoreSystem.Odyssey2 => "O2",
return "GEN"; _ => throw new IndexOutOfRangeException($"{value} is missing in convert list")
};
case CoreSystem.Intellivision:
return "INTV";
case CoreSystem.Libretro:
return "Libretro";
case CoreSystem.Lynx:
return "Lynx";
case CoreSystem.MasterSystem:
return "SMS";
case CoreSystem.NES:
return "NES";
case CoreSystem.Nintendo64:
return "N64";
case CoreSystem.Null:
return "NULL";
case CoreSystem.PCEngine:
return "PCE";
case CoreSystem.Playstation:
return "PSX";
case CoreSystem.PSP:
return "PSP";
case CoreSystem.Saturn:
return "SAT";
case CoreSystem.SNES:
return "SNES";
case CoreSystem.TI83:
return "TI83";
case CoreSystem.WonderSwan:
return "WSWAN";
case CoreSystem.ZXSpectrum:
return "ZXSpectrum";
case CoreSystem.AmstradCPC:
return "AmstradCPC";
case CoreSystem.Odyssey2:
return "O2";
default:
throw new IndexOutOfRangeException($"{value} is missing in convert list");
}
} }

View File

@ -38,6 +38,9 @@
ChannelF, ChannelF,
Odyssey2, Odyssey2,
MAME, MAME,
MSX MSX,
SuperGameBoy,
UzeBox,
PcFx
} }
} }