mirror of
https://github.com/kwsch/PKHeX
synced 2024-11-11 07:04:16 +00:00
Update blank sav3 behavior
can now be selected & loaded without exception/hassle
This commit is contained in:
parent
b6261e57a3
commit
53b2ca93b8
2 changed files with 15 additions and 6 deletions
|
@ -93,13 +93,23 @@ namespace PKHeX.Core
|
|||
BlockOfs[i] = index < 0 ? int.MinValue : (index * SIZE_BLOCK) + ABO;
|
||||
}
|
||||
|
||||
if (data == null)
|
||||
Version = GameVersion.FRLG;
|
||||
else if (versionOverride != GameVersion.Any)
|
||||
if (versionOverride != GameVersion.Any)
|
||||
Version = versionOverride;
|
||||
else if (data == null)
|
||||
Version = GameVersion.FRLG;
|
||||
else
|
||||
Version = GetVersion(Data, BlockOfs[0]);
|
||||
|
||||
Personal = SaveUtil.GetG3Personal(Version);
|
||||
if (data == null) // spoof block offsets
|
||||
{
|
||||
BlockOfs = Enumerable.Range(0, BLOCK_COUNT).ToArray();
|
||||
if (Version == GameVersion.FR || Version == GameVersion.LG)
|
||||
Version = GameVersion.FRLG;
|
||||
else if (Version == GameVersion.R || Version == GameVersion.LG)
|
||||
Version = GameVersion.RS;
|
||||
}
|
||||
|
||||
// Set up PC data buffer beyond end of save file.
|
||||
Box = Data.Length;
|
||||
Array.Resize(ref Data, Data.Length + SIZE_RESERVED); // More than enough empty space.
|
||||
|
@ -116,7 +126,7 @@ namespace PKHeX.Core
|
|||
// Japanese games are limited to 5 character OT names; any unused characters are 0xFF.
|
||||
// 5 for JP, 7 for INT. There's always 1 terminator, thus we can check 0x6-0x7 being 0xFFFF = INT
|
||||
// OT name is stored at the top of the first block.
|
||||
Japanese = BitConverter.ToInt16(Data, BlockOfs[0] + 0x6) == 0;
|
||||
Japanese = BitConverter.ToInt16(Data, BlockOfs[0] + 0x6) == 0 && Exportable;
|
||||
|
||||
PokeDex = BlockOfs[0] + 0x18;
|
||||
switch (Version)
|
||||
|
@ -161,7 +171,6 @@ namespace PKHeX.Core
|
|||
Daycare = BlockOfs[4] + 0x100;
|
||||
break;
|
||||
}
|
||||
Personal = SaveUtil.GetG3Personal(Version);
|
||||
LoadEReaderBerryData();
|
||||
LegalItems = Legal.Pouch_Items_RS;
|
||||
LegalBalls = Legal.Pouch_Ball_RS;
|
||||
|
|
|
@ -861,7 +861,7 @@ namespace PKHeX.WinForms
|
|||
if (sav.Version == GameVersion.FRLG)
|
||||
sav.Personal = dialog.Result == GameVersion.FR ? PersonalTable.FR : PersonalTable.LG;
|
||||
}
|
||||
else if (sav.Version == GameVersion.FRLG) // IndeterminateSubVersion
|
||||
else if (sav.Version == GameVersion.FRLG && sav.Exportable) // IndeterminateSubVersion
|
||||
{
|
||||
string fr = GameInfo.GetVersionName(GameVersion.FR);
|
||||
string lg = GameInfo.GetVersionName(GameVersion.LG);
|
||||
|
|
Loading…
Reference in a new issue