mirror of
https://github.com/kwsch/PKHeX.git
synced 2026-09-12 12:36:38 -05:00
Add RS badge flags
make logic generic
This commit is contained in:
@@ -321,24 +321,30 @@ public int Badges
|
||||
{
|
||||
get
|
||||
{
|
||||
switch (Version)
|
||||
{
|
||||
case GameVersion.E: return BitConverter.ToUInt16(Data, BlockOfs[2] + 0x3FC) >> 7 & 0xFF;
|
||||
case GameVersion.FRLG: return Data[BlockOfs[2] + 0x64];
|
||||
default: return 0; // RS
|
||||
}
|
||||
int startFlag = BadgeFlagStart;
|
||||
int val = 0;
|
||||
for (int i = 0; i < 8; i++)
|
||||
if (GetEventFlag(startFlag + i))
|
||||
val |= 1 << i;
|
||||
return val;
|
||||
}
|
||||
set
|
||||
{
|
||||
switch (Version)
|
||||
{
|
||||
case GameVersion.E:
|
||||
var val = BitConverter.ToUInt16(Data, BlockOfs[2] + 0x3FC) & ~(0xFF << 7) | (value << 7);
|
||||
BitConverter.GetBytes((ushort)val).CopyTo(Data, BlockOfs[2] + 0x3FC);
|
||||
break;
|
||||
case GameVersion.FRLG: Data[BlockOfs[2] + 0x64] = (byte)value; break;
|
||||
default: return; // RS
|
||||
}
|
||||
int startFlag = BadgeFlagStart;
|
||||
for (int i = 0; i < 8; i++)
|
||||
SetEventFlag(startFlag + i, (value & (1 << i)) != 0);
|
||||
}
|
||||
}
|
||||
|
||||
private int BadgeFlagStart
|
||||
{
|
||||
get
|
||||
{
|
||||
if (Version == GameVersion.FRLG)
|
||||
return 800; // dec
|
||||
if (Version == GameVersion.RS)
|
||||
return 0x807; // hex
|
||||
return 0x867; // emerald
|
||||
}
|
||||
}
|
||||
public override uint Money
|
||||
|
||||
@@ -88,12 +88,7 @@ public SAV_SimpleTrainer(SaveFile sav)
|
||||
if (SAV is SAV3 sav3)
|
||||
{
|
||||
GB_Map.Visible = false;
|
||||
switch (sav3.Version)
|
||||
{
|
||||
case GameVersion.E: badgeval = sav3.Badges; break;
|
||||
case GameVersion.FRLG: badgeval = sav3.Badges; break;
|
||||
default: GB_Badges.Visible = false; break; // RS
|
||||
}
|
||||
badgeval = sav3.Badges;
|
||||
|
||||
L_Started.Visible = L_Fame.Visible = false;
|
||||
CAL_AdventureStartDate.Visible = CAL_HoFDate.Visible = false;
|
||||
|
||||
Reference in New Issue
Block a user