namespace PKHeX.Core; /// /// GameCube save file interface for memory cards. /// public interface IGCSaveFile { /// /// GameCube Memory Card the save file was read from. /// SAV3GCMemoryCard? MemoryCard { get; } } public static class GCSaveExtensions { /// /// Gets an export filter for a GameCube file. /// public static string GCFilter(this IGCSaveFile gc) { const string regular = "GameCube Save File|*.gci|All Files|*.*"; const string memcard = "Memory Card Raw File|*.raw|Memory Card Binary File|*.bin|"; return gc.MemoryCard is not null ? memcard + regular : regular; } /// /// Gets the export extension for a GameCube file. /// public static string GCExtension(this IGCSaveFile gc) => gc.MemoryCard is not null ? ".raw" : ".gci"; }