mirror of
https://github.com/kwsch/PKHeX
synced 2024-11-22 20:13:06 +00:00
parent
8a3a338c0b
commit
dca76f50f7
4 changed files with 23 additions and 8 deletions
|
@ -183,7 +183,7 @@ public static class FileUtil
|
|||
/// <returns>True if file object reference is valid, false if none found.</returns>
|
||||
public static bool TryGetMemoryCard(byte[] data, [NotNullWhen(true)] out SAV3GCMemoryCard? memcard)
|
||||
{
|
||||
if (!SAV3GCMemoryCard.IsMemoryCardSize(data))
|
||||
if (!SAV3GCMemoryCard.IsMemoryCardSize(data) || IsNoDataPresent(data))
|
||||
{
|
||||
memcard = null;
|
||||
return false;
|
||||
|
@ -233,7 +233,7 @@ public static class FileUtil
|
|||
/// <returns>True if file object reference is valid, false if none found.</returns>
|
||||
public static bool TryGetPCBoxBin(byte[] data, out IEnumerable<byte[]> pkms, SaveFile? sav)
|
||||
{
|
||||
if (sav == null)
|
||||
if (sav == null || IsNoDataPresent(data))
|
||||
{
|
||||
pkms = [];
|
||||
return false;
|
||||
|
@ -248,6 +248,15 @@ public static class FileUtil
|
|||
return false;
|
||||
}
|
||||
|
||||
private static bool IsNoDataPresent(ReadOnlySpan<byte> data)
|
||||
{
|
||||
if (!data.ContainsAnyExcept<byte>(0xFF))
|
||||
return true;
|
||||
if (!data.ContainsAnyExcept<byte>(0x00))
|
||||
return true;
|
||||
return false;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Tries to get a <see cref="BattleVideo"/> object from the input parameters.
|
||||
/// </summary>
|
||||
|
|
|
@ -736,7 +736,7 @@ public partial class Main : Form
|
|||
case GCMemoryCardState.SaveGameRSBOX: memCard.SelectSaveGame(GameVersion.RSBOX); break;
|
||||
|
||||
default:
|
||||
WinFormsUtil.Error(!SaveUtil.IsSizeValid(memCard.Data.Length) ? MsgFileGameCubeBad : MsgFileLoadSaveLoadFail, path);
|
||||
WinFormsUtil.Error(!SaveUtil.IsSizeValid(memCard.Data.Length) ? MsgFileGameCubeBad : GetHintInvalidFile(memCard.Data, path), path);
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
|
|
|
@ -37,10 +37,7 @@ public partial class SettingsEditor : Form
|
|||
|
||||
if (Last is not null && tabControl1.Controls[Last] is TabPage tab)
|
||||
tabControl1.SelectedTab = tab;
|
||||
tabControl1.SelectedIndexChanged += (_, _) =>
|
||||
{
|
||||
Last = tabControl1.SelectedTab?.Name;
|
||||
};
|
||||
tabControl1.SelectedIndexChanged += (_, _) => Last = tabControl1.SelectedTab?.Name;
|
||||
|
||||
this.CenterToForm(FindForm());
|
||||
}
|
||||
|
|
|
@ -241,7 +241,16 @@ public static class WinFormsUtil
|
|||
"SaveRAM", // BizHawk
|
||||
];
|
||||
|
||||
public static bool IsFileExtensionSAV(string file) => CustomSaveExtensions.Contains(Path.GetExtension(file));
|
||||
public static bool IsFileExtensionSAV(ReadOnlySpan<char> file)
|
||||
{
|
||||
var ext = Path.GetExtension(file);
|
||||
foreach (var other in CustomSaveExtensions)
|
||||
{
|
||||
if (ext.EndsWith(other))
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
private static string ExtraSaveExtensions => ";" + string.Join(";", CustomSaveExtensions.Select(z => $"*.{z}"));
|
||||
|
||||
|
|
Loading…
Reference in a new issue