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";
}