mirror of
https://github.com/kwsch/PKHeX.git
synced 2026-05-09 12:35:20 -05:00
Differentiate HG/SS save files (no HGSS)
Pt/HG/SS store the ROMCode, but D/P do not. In D/P, every "get version" function for the ROM is inlined to return a fixed value, not from the save file.
This commit is contained in:
parent
571de117fb
commit
de5e983faf
|
|
@ -300,18 +300,44 @@ public override int Language
|
|||
set => General[Trainer1 + 0x19] = (byte)value;
|
||||
}
|
||||
|
||||
public int Badges
|
||||
public byte Badges
|
||||
{
|
||||
get => General[Trainer1 + 0x1A];
|
||||
set { if (value < 0) return; General[Trainer1 + 0x1A] = (byte)value; }
|
||||
set => General[Trainer1 + 0x1A] = value;
|
||||
}
|
||||
|
||||
public int Sprite
|
||||
public byte Sprite
|
||||
{
|
||||
get => General[Trainer1 + 0x1B];
|
||||
set { if (value < 0) return; General[Trainer1 + 0x1B] = (byte)value; }
|
||||
set => General[Trainer1 + 0x1B] = value;
|
||||
}
|
||||
|
||||
public byte ROMCode // Unused by D/P
|
||||
{
|
||||
get => General[Trainer1 + 0x1C];
|
||||
set => General[Trainer1 + 0x1C] = value;
|
||||
}
|
||||
|
||||
public byte ProgressFlags
|
||||
{
|
||||
get => General[Trainer1 + 0x1D];
|
||||
set => General[Trainer1 + 0x1D] = value;
|
||||
}
|
||||
|
||||
public bool GameClear
|
||||
{
|
||||
get => (ProgressFlags & 1) == 1;
|
||||
set => ProgressFlags = (byte)((ProgressFlags & 0xFE) | (value ? 1 : 0));
|
||||
}
|
||||
|
||||
public bool NationalDex
|
||||
{
|
||||
get => (ProgressFlags & 2) == 2;
|
||||
set => ProgressFlags = (byte)((ProgressFlags & 0xFD) | (value ? 2 : 0));
|
||||
}
|
||||
|
||||
// 1E-1F are unused (alignment)
|
||||
|
||||
public uint Coin
|
||||
{
|
||||
get => ReadUInt16LittleEndian(General[(Trainer1 + 0x20)..]);
|
||||
|
|
|
|||
|
|
@ -26,7 +26,7 @@ public SAV4HGSS(Memory<byte> data) : base(data, GeneralSize, StorageSize, Genera
|
|||
public override Zukan4 Dex { get; }
|
||||
protected override SAV4 CloneInternal4() => State.Exportable ? new SAV4HGSS(Data.ToArray()) : new SAV4HGSS();
|
||||
|
||||
public override GameVersion Version { get => GameVersion.HGSS; set { } }
|
||||
public override GameVersion Version { get => (GameVersion)ROMCode; set => ROMCode = (byte)value; }
|
||||
public override PersonalTable4 Personal => PersonalTable.HGSS;
|
||||
public override ReadOnlySpan<ushort> HeldItems => Legal.HeldItems_HGSS;
|
||||
public override int MaxItemID => Legal.MaxItemID_4_HGSS;
|
||||
|
|
|
|||
|
|
@ -288,7 +288,7 @@ private void B_Save_Click(object sender, EventArgs e)
|
|||
sav4.Z = (int)NUD_Z.Value;
|
||||
sav4.Y = (int)NUD_Y.Value;
|
||||
}
|
||||
sav4.Badges = badgeval & 0xFF;
|
||||
sav4.Badges = (byte)badgeval;
|
||||
if (sav4 is SAV4HGSS hgss)
|
||||
{
|
||||
hgss.Badges16 = badgeval >> 8;
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user