Simplify qr gender

use personalinfo object to do majority of work,
end result has the 4 sequential bytes set neatly
This commit is contained in:
Kurt 2019-04-15 15:43:48 -07:00
parent 286df71c5a
commit 934595126f

View file

@ -48,29 +48,22 @@ namespace PKHeX.Core
{
var basedata = (byte[])BaseQR.Clone();
BitConverter.GetBytes((ushort)species).CopyTo(basedata, 0x28);
var pi = PersonalTable.USUM.GetFormeEntry(species, formnum);
bool biGender = false;
if (pi.OnlyMale)
gender = 0;
else if (pi.OnlyFemale)
gender = 1;
else if (pi.Genderless)
gender = 2;
else
biGender = !GenderDifferences.Contains(species);
basedata[0x2A] = (byte)formnum;
basedata[0x2C] = (byte)(shiny ? 1 : 0);
var forme_index = PersonalTable.USUM[species].FormeIndex(species, formnum);
var raw_gender = PersonalTable.USUM[forme_index].Gender;
switch (raw_gender)
{
case 0:
basedata[0x2D] = 0;
basedata[0x2B] = 0;
break;
case 0xFE:
basedata[0x2D] = 0;
basedata[0x2B] = 1;
break;
case 0xFF:
basedata[0x2D] = 0;
basedata[0x2B] = 2;
break;
default:
basedata[0x2D] = (byte)(GenderDifferences.Contains(species) ? 0 : 1);
basedata[0x2B] = (byte)gender;
break;
}
basedata[0x2C] = (byte)(shiny ? 1 : 0);
basedata[0x2D] = (byte)(biGender ? 1 : 0);
return basedata;
}