PKHeX/PKHeX.Core/Saves/Util/IGCSaveFile.cs

31 lines
1,014 B
C#
Raw Normal View History

namespace PKHeX.Core
{
/// <summary>
/// GameCube save file interface for memory cards.
/// </summary>
public interface IGCSaveFile
{
/// <summary>
/// GameCube Memory Card the save file was read from.
/// </summary>
SAV3GCMemoryCard? MemoryCard { get; }
}
public static class GCSaveExtensions
{
/// <summary>
/// Gets an export filter for a GameCube file.
/// </summary>
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;
}
/// <summary>
/// Gets the export extension for a GameCube file.
/// </summary>
public static string GCExtension(this IGCSaveFile gc) => gc.MemoryCard is not null ? ".raw" : ".gci";
}
}