namespace PKHeX.Core; /// /// analogues used by Colosseum/XD instead of the main-series values. /// public enum GCVersion : byte { None = 0, FR = 1, LG = 2, S = 8, R = 9, E = 10, CXD = 11, } /// /// Console region analogues used by Colosseum/XD to track the region of the data. /// public enum GCRegion : byte { NoRegion = 0, NTSC_J = 1, NTSC_U = 2, PAL = 3, } /// /// Extension methods for and . /// public static class GCVersionExtensions { /// /// Translates a main-series to the corresponding value. /// /// Version ID while present in the main-series games /// Version ID while present in the GameCube games public static GCVersion GetCXDVersionID(this GameVersion gbaVersion) => gbaVersion switch { GameVersion.S => GCVersion.S, GameVersion.R => GCVersion.R, GameVersion.E => GCVersion.E, GameVersion.FR => GCVersion.FR, GameVersion.LG => GCVersion.LG, GameVersion.CXD => GCVersion.CXD, _ => GCVersion.None, }; /// /// Translates a to the corresponding main-series value. /// /// Version ID while present in the GameCube games /// Version ID while present in the main-series games public static GameVersion GetG3VersionID(this GCVersion gcVersion) => gcVersion switch { GCVersion.S => GameVersion.S, GCVersion.R => GameVersion.R, GCVersion.E => GameVersion.E, GCVersion.FR => GameVersion.FR, GCVersion.LG => GameVersion.LG, GCVersion.CXD => GameVersion.CXD, _ => GameVersion.Unknown, }; }