mirror of
https://github.com/kwsch/PKHeX
synced 2025-02-17 05:48:44 +00:00
Use named consts for magic gender values
More personal magic value comparisons
This commit is contained in:
parent
f5090e3ae7
commit
46f50a3a56
15 changed files with 103 additions and 75 deletions
|
@ -49,9 +49,9 @@ namespace PKHeX.Core
|
|||
int gt = pk.PersonalInfo.Gender;
|
||||
switch (gt)
|
||||
{
|
||||
case 255: return 2; // Genderless
|
||||
case 254: return 1; // Female-Only
|
||||
case 0: return 0; // Male-Only
|
||||
case PersonalInfo.RatioMagicGenderless: return 2;
|
||||
case PersonalInfo.RatioMagicFemale: return 1;
|
||||
case PersonalInfo.RatioMagicMale: return 0;
|
||||
}
|
||||
if (!pk.IsGenderValid())
|
||||
return PKX.GetGenderFromPIDAndRatio(pk.PID, gt);
|
||||
|
|
|
@ -88,7 +88,9 @@ namespace PKHeX.Core
|
|||
/// <returns>Returns the maximum or minimum gender value that corresponds to the input gender ratio.</returns>
|
||||
private static int GetGenderMinMax(int gender, int ratio, bool max) => ratio switch
|
||||
{
|
||||
0 or >254 => max ? 255 : 0,
|
||||
PersonalInfo.RatioMagicMale => max ? 255 : 0,
|
||||
PersonalInfo.RatioMagicFemale => max ? 255 : 0,
|
||||
PersonalInfo.RatioMagicGenderless => max ? 255 : 0,
|
||||
_ => gender switch
|
||||
{
|
||||
0 => max ? 255 : ratio, // male
|
||||
|
|
|
@ -366,7 +366,7 @@ namespace PKHeX.Core
|
|||
case 2: break; // can't cute charm a genderless pkm
|
||||
case 0: // male
|
||||
var gr = getRatio();
|
||||
if (254 <= gr) // no modification for PID
|
||||
if (gr >= PersonalInfo.RatioMagicFemale) // no modification for PID
|
||||
break;
|
||||
var rate = 25*((gr / 25) + 1); // buffered
|
||||
var nature = pid % 25;
|
||||
|
@ -378,7 +378,7 @@ namespace PKHeX.Core
|
|||
case 1: // female
|
||||
if (pid >= 25)
|
||||
break; // nope, this isn't a valid nature
|
||||
if (254 <= getRatio()) // no modification for PID
|
||||
if (getRatio() >= PersonalInfo.RatioMagicFemale) // no modification for PID
|
||||
break;
|
||||
|
||||
pidiv = PIDIV.CuteCharm;
|
||||
|
|
|
@ -112,15 +112,15 @@ namespace PKHeX.Core
|
|||
|
||||
switch (gender_ratio)
|
||||
{
|
||||
case 255 when pk.Gender != 2:
|
||||
case PersonalInfo.RatioMagicGenderless when pk.Gender != 2:
|
||||
if (pk.Gender != 2)
|
||||
return false;
|
||||
break;
|
||||
case 254 when pk.Gender != 1:
|
||||
case PersonalInfo.RatioMagicFemale when pk.Gender != 1:
|
||||
if (pk.Gender != 1)
|
||||
return false;
|
||||
break;
|
||||
case 000:
|
||||
case PersonalInfo.RatioMagicMale:
|
||||
if (pk.Gender != 0)
|
||||
return false;
|
||||
break;
|
||||
|
@ -254,9 +254,9 @@ namespace PKHeX.Core
|
|||
|
||||
pk.Gender = gender_ratio switch
|
||||
{
|
||||
255 => 2,
|
||||
254 => 1,
|
||||
000 => 0,
|
||||
PersonalInfo.RatioMagicGenderless => 2,
|
||||
PersonalInfo.RatioMagicFemale => 1,
|
||||
PersonalInfo.RatioMagicMale => 0,
|
||||
_ => (int) rng.NextInt(252) + 1 < gender_ratio ? 1 : 0
|
||||
};
|
||||
|
||||
|
|
|
@ -570,11 +570,11 @@ namespace PKHeX.Core
|
|||
{
|
||||
int gender = Gender;
|
||||
int gv = PersonalInfo.Gender;
|
||||
if (gv == 255)
|
||||
if (gv == PersonalInfo.RatioMagicGenderless)
|
||||
return gender == 2;
|
||||
if (gv == 254)
|
||||
if (gv == PersonalInfo.RatioMagicFemale)
|
||||
return gender == 1;
|
||||
if (gv == 0)
|
||||
if (gv == PersonalInfo.RatioMagicMale)
|
||||
return gender == 0;
|
||||
|
||||
int gen = Generation;
|
||||
|
|
|
@ -97,9 +97,9 @@ namespace PKHeX.Core
|
|||
int gv = PersonalInfo.Gender;
|
||||
return gv switch
|
||||
{
|
||||
255 => 2,
|
||||
254 => 1,
|
||||
0 => 0,
|
||||
PersonalInfo.RatioMagicGenderless => 2,
|
||||
PersonalInfo.RatioMagicFemale => 1,
|
||||
PersonalInfo.RatioMagicMale => 0,
|
||||
_ => IV_ATK > gv >> 4 ? 0 : 1
|
||||
};
|
||||
}
|
||||
|
|
|
@ -129,7 +129,7 @@ namespace PKHeX.Core
|
|||
uint abilBitVal = g34 ? oldPID & 0x0000_0001 : oldPID & 0x0001_0000;
|
||||
|
||||
bool g3unown = origin <= 5 && species == (int)Species.Unown;
|
||||
bool singleGender = gt is 0 or 254 or 255; // single gender, skip gender check
|
||||
bool singleGender = PersonalInfo.IsSingleGender(gt); // single gender, skip gender check
|
||||
while (true) // Loop until we find a suitable PID
|
||||
{
|
||||
uint pid = Util.Rand32(rnd);
|
||||
|
@ -192,9 +192,9 @@ namespace PKHeX.Core
|
|||
|
||||
public static int GetGenderFromPIDAndRatio(uint pid, int gr) => gr switch
|
||||
{
|
||||
255 => 2,
|
||||
254 => 1,
|
||||
0 => 0,
|
||||
PersonalInfo.RatioMagicGenderless => 2,
|
||||
PersonalInfo.RatioMagicFemale => 1,
|
||||
PersonalInfo.RatioMagicMale => 0,
|
||||
_ => (pid & 0xFF) < gr ? 1 : 0
|
||||
};
|
||||
|
||||
|
|
|
@ -296,6 +296,12 @@ namespace PKHeX.Core
|
|||
}
|
||||
}
|
||||
|
||||
public const int RatioMagicGenderless = 255;
|
||||
public const int RatioMagicFemale = 254;
|
||||
public const int RatioMagicMale = 0;
|
||||
|
||||
public static bool IsSingleGender(int gt) => (uint)(gt - 1) >= 253;
|
||||
|
||||
/// <summary>
|
||||
/// Indicates that the entry has two genders.
|
||||
/// </summary>
|
||||
|
@ -304,17 +310,17 @@ namespace PKHeX.Core
|
|||
/// <summary>
|
||||
/// Indicates that the entry is exclusively Genderless.
|
||||
/// </summary>
|
||||
public bool Genderless => Gender == 255;
|
||||
public bool Genderless => Gender == RatioMagicGenderless;
|
||||
|
||||
/// <summary>
|
||||
/// Indicates that the entry is exclusively Female gendered.
|
||||
/// </summary>
|
||||
public bool OnlyFemale => Gender == 254;
|
||||
public bool OnlyFemale => Gender == RatioMagicFemale;
|
||||
|
||||
/// <summary>
|
||||
/// Indicates that the entry is exclusively Male gendered.
|
||||
/// </summary>
|
||||
public bool OnlyMale => Gender == 0;
|
||||
public bool OnlyMale => Gender == RatioMagicMale;
|
||||
|
||||
/// <summary>
|
||||
/// Indicates if the entry has Formes or not.
|
||||
|
|
|
@ -242,7 +242,7 @@ namespace PKHeX.Core
|
|||
// meowstic special handling
|
||||
const int meow = 678;
|
||||
if (index == meow - 1 || (index >= SAV.MaxSpeciesID && FormBaseSpecies[index - SAV.MaxSpeciesID] == meow))
|
||||
return index < SAV.MaxSpeciesID ? 0 : 254; // M : F
|
||||
return index < SAV.MaxSpeciesID ? PersonalInfo.RatioMagicMale : PersonalInfo.RatioMagicFemale; // M : F
|
||||
|
||||
if (index < SAV.MaxSpeciesID)
|
||||
return SAV.Personal[index + 1].Gender;
|
||||
|
|
|
@ -139,13 +139,13 @@ namespace PKHeX.WinForms
|
|||
var gr = pi.Gender;
|
||||
switch (gr)
|
||||
{
|
||||
case 255: // Genderless
|
||||
case PersonalInfo.RatioMagicGenderless:
|
||||
first.Items.Add(GENDERLESS);
|
||||
break;
|
||||
case 0:
|
||||
case PersonalInfo.RatioMagicMale:
|
||||
first.Items.Add(MALE);
|
||||
break;
|
||||
case 254:
|
||||
case PersonalInfo.RatioMagicFemale:
|
||||
first.Items.Add(FEMALE);
|
||||
break;
|
||||
default:
|
||||
|
|
|
@ -223,8 +223,10 @@ namespace PKHeX.WinForms
|
|||
int index = LB_Species.SelectedIndex+1;
|
||||
int gt = SAV.Personal[index].Gender;
|
||||
|
||||
CHK_P2.Checked = CHK_P4.Checked = gt != 254 && ModifierKeys != Keys.Control;
|
||||
CHK_P3.Checked = CHK_P5.Checked = gt is not (0 or 255) && ModifierKeys != Keys.Control;
|
||||
bool canBeMale = gt != PersonalInfo.RatioMagicFemale;
|
||||
bool canBeFemale = gt is not (PersonalInfo.RatioMagicMale or PersonalInfo.RatioMagicGenderless);
|
||||
CHK_P2.Checked = CHK_P4.Checked = canBeMale && ModifierKeys != Keys.Control;
|
||||
CHK_P3.Checked = CHK_P5.Checked = canBeFemale && ModifierKeys != Keys.Control;
|
||||
|
||||
if (ModifierKeys == Keys.Control)
|
||||
{
|
||||
|
@ -233,7 +235,7 @@ namespace PKHeX.WinForms
|
|||
}
|
||||
else if (!(CHK_P6.Checked || CHK_P7.Checked || CHK_P8.Checked || CHK_P9.Checked))
|
||||
{
|
||||
(gt != 254 ? CHK_P6 : CHK_P7).Checked = true;
|
||||
(gt != PersonalInfo.RatioMagicFemale ? CHK_P6 : CHK_P7).Checked = true;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -262,7 +264,7 @@ namespace PKHeX.WinForms
|
|||
{
|
||||
// if seen ensure at least one Displayed
|
||||
if (!(CHK_P6.Checked || CHK_P7.Checked || CHK_P8.Checked || CHK_P9.Checked))
|
||||
(gt != 254 ? CHK_P6 : CHK_P7).Checked = true;
|
||||
(gt != PersonalInfo.RatioMagicFemale ? CHK_P6 : CHK_P7).Checked = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -297,26 +299,28 @@ namespace PKHeX.WinForms
|
|||
if (!(CHK_P2.Checked || CHK_P3.Checked || CHK_P4.Checked || CHK_P5.Checked)) // if seen
|
||||
{
|
||||
if (!(CHK_P6.Checked || CHK_P7.Checked || CHK_P8.Checked || CHK_P9.Checked)) // not displayed
|
||||
(gt != 254 ? CHK_P6 : CHK_P7).Checked = true; // check one
|
||||
(gt != PersonalInfo.RatioMagicFemale ? CHK_P6 : CHK_P7).Checked = true; // check one
|
||||
}
|
||||
}
|
||||
if (mnuCaughtNone != sender)
|
||||
{
|
||||
if (mnuComplete == sender)
|
||||
{
|
||||
CHK_P2.Checked = CHK_P4.Checked = gt != 254; // not female only
|
||||
CHK_P3.Checked = CHK_P5.Checked = gt is not (0 or 255); // not male only or genderless
|
||||
bool canBeMale = gt != PersonalInfo.RatioMagicFemale;
|
||||
bool canBeFemale = gt is not (PersonalInfo.RatioMagicMale or PersonalInfo.RatioMagicGenderless);
|
||||
CHK_P2.Checked = CHK_P4.Checked = canBeMale;
|
||||
CHK_P3.Checked = CHK_P5.Checked = canBeFemale;
|
||||
}
|
||||
else
|
||||
{
|
||||
// ensure at least one SEEN
|
||||
if (!(CHK_P2.Checked || CHK_P3.Checked || CHK_P4.Checked || CHK_P5.Checked))
|
||||
(gt != 254 ? CHK_P2 : CHK_P3).Checked = true;
|
||||
(gt != PersonalInfo.RatioMagicFemale ? CHK_P2 : CHK_P3).Checked = true;
|
||||
}
|
||||
|
||||
// ensure at least one Displayed
|
||||
if (!(CHK_P6.Checked || CHK_P7.Checked || CHK_P8.Checked || CHK_P9.Checked))
|
||||
(gt != 254 ? CHK_P6 : CHK_P7).Checked = true;
|
||||
(gt != PersonalInfo.RatioMagicFemale ? CHK_P6 : CHK_P7).Checked = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -218,8 +218,10 @@ namespace PKHeX.WinForms
|
|||
int index = LB_Species.SelectedIndex+1;
|
||||
int gt = SAV.Personal[index].Gender;
|
||||
|
||||
CHK_P2.Checked = CHK_P4.Checked = gt != 254 && ModifierKeys != Keys.Control;
|
||||
CHK_P3.Checked = CHK_P5.Checked = gt is not (0 or 255) && ModifierKeys != Keys.Control;
|
||||
bool canBeMale = gt != PersonalInfo.RatioMagicFemale;
|
||||
bool canBeFemale = gt is not (PersonalInfo.RatioMagicMale or PersonalInfo.RatioMagicGenderless);
|
||||
CHK_P2.Checked = CHK_P4.Checked = canBeMale && ModifierKeys != Keys.Control;
|
||||
CHK_P3.Checked = CHK_P5.Checked = canBeFemale && ModifierKeys != Keys.Control;
|
||||
|
||||
if (ModifierKeys == Keys.Control)
|
||||
{
|
||||
|
@ -228,7 +230,7 @@ namespace PKHeX.WinForms
|
|||
}
|
||||
else if (!(CHK_P6.Checked || CHK_P7.Checked || CHK_P8.Checked || CHK_P9.Checked))
|
||||
{
|
||||
(gt != 254 ? CHK_P6 : CHK_P7).Checked = true;
|
||||
(gt != PersonalInfo.RatioMagicFemale ? CHK_P6 : CHK_P7).Checked = true;
|
||||
}
|
||||
|
||||
for (int i = 0; i < CLB_FormsSeen.Items.Count; i++)
|
||||
|
@ -269,7 +271,6 @@ namespace PKHeX.WinForms
|
|||
{
|
||||
for (int i = 0; i < CB_Species.Items.Count; i++)
|
||||
{
|
||||
int gt = SAV.Personal[i + 1].Gender;
|
||||
LB_Species.SelectedIndex = i;
|
||||
foreach (CheckBox t in new[] { CHK_P2, CHK_P3, CHK_P4, CHK_P5 })
|
||||
t.Checked = mnuSeenNone != sender && t.Enabled;
|
||||
|
@ -277,8 +278,9 @@ namespace PKHeX.WinForms
|
|||
if (mnuSeenNone != sender)
|
||||
{
|
||||
// if seen ensure at least one Displayed
|
||||
int gt = SAV.Personal[i + 1].Gender;
|
||||
if (!(CHK_P6.Checked || CHK_P7.Checked || CHK_P8.Checked || CHK_P9.Checked))
|
||||
(gt != 254 ? CHK_P6 : CHK_P7).Checked = true;
|
||||
(gt != PersonalInfo.RatioMagicFemale ? CHK_P6 : CHK_P7).Checked = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -310,26 +312,28 @@ namespace PKHeX.WinForms
|
|||
if (!(CHK_P2.Checked || CHK_P3.Checked || CHK_P4.Checked || CHK_P5.Checked)) // if seen
|
||||
{
|
||||
if (!(CHK_P6.Checked || CHK_P7.Checked || CHK_P8.Checked || CHK_P9.Checked)) // not displayed
|
||||
(gt != 254 ? CHK_P6 : CHK_P7).Checked = true; // check one
|
||||
(gt != PersonalInfo.RatioMagicFemale ? CHK_P6 : CHK_P7).Checked = true; // check one
|
||||
}
|
||||
}
|
||||
if (mnuCaughtNone != sender)
|
||||
{
|
||||
if (mnuComplete == sender)
|
||||
{
|
||||
CHK_P2.Checked = CHK_P4.Checked = gt != 254; // not female only
|
||||
CHK_P3.Checked = CHK_P5.Checked = gt is not (0 or 255); // not male only or genderless
|
||||
bool canBeMale = gt != PersonalInfo.RatioMagicFemale;
|
||||
bool canBeFemale = gt is not (PersonalInfo.RatioMagicMale or PersonalInfo.RatioMagicGenderless);
|
||||
CHK_P2.Checked = CHK_P4.Checked = canBeMale;
|
||||
CHK_P3.Checked = CHK_P5.Checked = canBeFemale;
|
||||
}
|
||||
else
|
||||
{
|
||||
// ensure at least one SEEN
|
||||
if (!(CHK_P2.Checked || CHK_P3.Checked || CHK_P4.Checked || CHK_P5.Checked))
|
||||
(gt != 254 ? CHK_P2 : CHK_P3).Checked = true;
|
||||
(gt != PersonalInfo.RatioMagicFemale ? CHK_P2 : CHK_P3).Checked = true;
|
||||
}
|
||||
|
||||
// ensure at least one Displayed
|
||||
if (!(CHK_P6.Checked || CHK_P7.Checked || CHK_P8.Checked || CHK_P9.Checked))
|
||||
(gt != 254 ? CHK_P6 : CHK_P7).Checked = true;
|
||||
(gt != PersonalInfo.RatioMagicFemale ? CHK_P6 : CHK_P7).Checked = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -231,8 +231,10 @@ namespace PKHeX.WinForms
|
|||
int index = LB_Species.SelectedIndex+1;
|
||||
int gt = SAV.Personal[index].Gender;
|
||||
|
||||
CHK_P2.Checked = CHK_P4.Checked = gt != 254 && ModifierKeys != Keys.Control;
|
||||
CHK_P3.Checked = CHK_P5.Checked = gt is not (0 or 255) && ModifierKeys != Keys.Control;
|
||||
bool canBeMale = gt != PersonalInfo.RatioMagicFemale;
|
||||
bool canBeFemale = gt is not (PersonalInfo.RatioMagicMale or PersonalInfo.RatioMagicGenderless);
|
||||
CHK_P2.Checked = CHK_P4.Checked = canBeMale && ModifierKeys != Keys.Control;
|
||||
CHK_P3.Checked = CHK_P5.Checked = canBeFemale && ModifierKeys != Keys.Control;
|
||||
|
||||
if (ModifierKeys == Keys.Control)
|
||||
{
|
||||
|
@ -241,7 +243,7 @@ namespace PKHeX.WinForms
|
|||
}
|
||||
else if (!(CHK_P6.Checked || CHK_P7.Checked || CHK_P8.Checked || CHK_P9.Checked))
|
||||
{
|
||||
(gt != 254 ? CHK_P6 : CHK_P7).Checked = true;
|
||||
(gt != PersonalInfo.RatioMagicFemale ? CHK_P6 : CHK_P7).Checked = true;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -270,7 +272,7 @@ namespace PKHeX.WinForms
|
|||
{
|
||||
// if seen ensure at least one Displayed
|
||||
if (!(CHK_P6.Checked || CHK_P7.Checked || CHK_P8.Checked || CHK_P9.Checked))
|
||||
(gt != 254 ? CHK_P6 : CHK_P7).Checked = true;
|
||||
(gt != PersonalInfo.RatioMagicFemale ? CHK_P6 : CHK_P7).Checked = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -302,26 +304,28 @@ namespace PKHeX.WinForms
|
|||
if (!(CHK_P2.Checked || CHK_P3.Checked || CHK_P4.Checked || CHK_P5.Checked)) // if seen
|
||||
{
|
||||
if (!(CHK_P6.Checked || CHK_P7.Checked || CHK_P8.Checked || CHK_P9.Checked)) // not displayed
|
||||
(gt != 254 ? CHK_P6 : CHK_P7).Checked = true; // check one
|
||||
(gt != PersonalInfo.RatioMagicFemale ? CHK_P6 : CHK_P7).Checked = true; // check one
|
||||
}
|
||||
}
|
||||
if (mnuCaughtNone != sender)
|
||||
{
|
||||
if (mnuComplete == sender)
|
||||
{
|
||||
CHK_P2.Checked = CHK_P4.Checked = gt != 254; // not female only
|
||||
CHK_P3.Checked = CHK_P5.Checked = gt is not (0 or 255); // not male only or genderless
|
||||
bool canBeMale = gt != PersonalInfo.RatioMagicFemale;
|
||||
bool canBeFemale = gt is not (PersonalInfo.RatioMagicMale or PersonalInfo.RatioMagicGenderless);
|
||||
CHK_P2.Checked = CHK_P4.Checked = canBeMale;
|
||||
CHK_P3.Checked = CHK_P5.Checked = canBeFemale;
|
||||
}
|
||||
else
|
||||
{
|
||||
// ensure at least one SEEN
|
||||
if (!(CHK_P2.Checked || CHK_P3.Checked || CHK_P4.Checked || CHK_P5.Checked))
|
||||
(gt != 254 ? CHK_P2 : CHK_P3).Checked = true;
|
||||
(gt != PersonalInfo.RatioMagicFemale ? CHK_P2 : CHK_P3).Checked = true;
|
||||
}
|
||||
|
||||
// ensure at least one Displayed
|
||||
if (!(CHK_P6.Checked || CHK_P7.Checked || CHK_P8.Checked || CHK_P9.Checked))
|
||||
(gt != 254 ? CHK_P6 : CHK_P7).Checked = true;
|
||||
(gt != PersonalInfo.RatioMagicFemale ? CHK_P6 : CHK_P7).Checked = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -216,8 +216,10 @@ namespace PKHeX.WinForms
|
|||
|
||||
int gt = Dex.GetBaseSpeciesGenderValue(LB_Species.SelectedIndex);
|
||||
|
||||
CHK_P2.Enabled = CHK_P4.Enabled = CHK_P6.Enabled = CHK_P8.Enabled = gt != 254; // Not Female-Only
|
||||
CHK_P3.Enabled = CHK_P5.Enabled = CHK_P7.Enabled = CHK_P9.Enabled = gt is not (0 or 255); // Not Male-Only and Not Genderless
|
||||
bool canBeMale = gt != PersonalInfo.RatioMagicFemale;
|
||||
bool canBeFemale = gt is not (PersonalInfo.RatioMagicMale or PersonalInfo.RatioMagicGenderless);
|
||||
CHK_P2.Enabled = CHK_P4.Enabled = CHK_P6.Enabled = CHK_P8.Enabled = canBeMale; // Not Female-Only
|
||||
CHK_P3.Enabled = CHK_P5.Enabled = CHK_P7.Enabled = CHK_P9.Enabled = canBeFemale; // Not Male-Only and Not Genderless
|
||||
|
||||
for (int i = 0; i < 4; i++)
|
||||
CP[i + 1].Checked = Dex.GetSeen(currentSpecies, i);
|
||||
|
@ -340,8 +342,10 @@ namespace PKHeX.WinForms
|
|||
}
|
||||
int gt = Dex.GetBaseSpeciesGenderValue(LB_Species.SelectedIndex);
|
||||
|
||||
CHK_P2.Checked = CHK_P4.Checked = gt != 254 && ModifierKeys != Keys.Control;
|
||||
CHK_P3.Checked = CHK_P5.Checked = gt is not (0 or 255) && ModifierKeys != Keys.Control;
|
||||
bool canBeMale = gt != PersonalInfo.RatioMagicFemale;
|
||||
bool canBeFemale = gt is not (PersonalInfo.RatioMagicMale or PersonalInfo.RatioMagicGenderless);
|
||||
CHK_P2.Checked = CHK_P4.Checked = canBeMale && ModifierKeys != Keys.Control;
|
||||
CHK_P3.Checked = CHK_P5.Checked = canBeFemale && ModifierKeys != Keys.Control;
|
||||
|
||||
if (ModifierKeys == Keys.Control)
|
||||
{
|
||||
|
@ -350,7 +354,7 @@ namespace PKHeX.WinForms
|
|||
}
|
||||
else if (!(CHK_P6.Checked || CHK_P7.Checked || CHK_P8.Checked || CHK_P9.Checked))
|
||||
{
|
||||
(gt != 254 ? CHK_P6 : CHK_P7).Checked = true;
|
||||
(gt != PersonalInfo.RatioMagicFemale ? CHK_P6 : CHK_P7).Checked = true;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -465,7 +469,7 @@ namespace PKHeX.WinForms
|
|||
if (!(CHK_P2.Checked || CHK_P3.Checked || CHK_P4.Checked || CHK_P5.Checked)) // if seen
|
||||
{
|
||||
if (!(CHK_P6.Checked || CHK_P7.Checked || CHK_P8.Checked || CHK_P9.Checked)) // not displayed
|
||||
(gt != 254 ? CHK_P6 : CHK_P7).Checked = true; // check one
|
||||
(gt != PersonalInfo.RatioMagicFemale ? CHK_P6 : CHK_P7).Checked = true; // check one
|
||||
}
|
||||
|
||||
return;
|
||||
|
@ -481,14 +485,14 @@ namespace PKHeX.WinForms
|
|||
{
|
||||
// ensure at least one SEEN
|
||||
if (!(CHK_P2.Checked || CHK_P3.Checked || CHK_P4.Checked || CHK_P5.Checked))
|
||||
(gt != 254 ? CHK_P2 : CHK_P3).Checked = true;
|
||||
(gt != PersonalInfo.RatioMagicFemale ? CHK_P2 : CHK_P3).Checked = true;
|
||||
}
|
||||
|
||||
// ensure at least one Displayed except for formes
|
||||
if (isForm)
|
||||
return;
|
||||
if (!(CHK_P6.Checked || CHK_P7.Checked || CHK_P8.Checked || CHK_P9.Checked))
|
||||
(gt != 254 ? CHK_P6 : CHK_P7).Checked = CHK_P1.Enabled;
|
||||
(gt != PersonalInfo.RatioMagicFemale ? CHK_P6 : CHK_P7).Checked = CHK_P1.Enabled;
|
||||
}
|
||||
|
||||
private void SetSeen(object sender, int gt, bool isForm)
|
||||
|
@ -502,7 +506,7 @@ namespace PKHeX.WinForms
|
|||
if (isForm)
|
||||
return;
|
||||
if (!(CHK_P6.Checked || CHK_P7.Checked || CHK_P8.Checked || CHK_P9.Checked))
|
||||
(gt != 254 ? CHK_P6 : CHK_P7).Checked = true;
|
||||
(gt != PersonalInfo.RatioMagicFemale ? CHK_P6 : CHK_P7).Checked = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
|
@ -205,8 +205,10 @@ namespace PKHeX.WinForms
|
|||
|
||||
int gt = Dex.GetBaseSpeciesGenderValue(LB_Species.SelectedIndex);
|
||||
|
||||
CHK_P2.Enabled = CHK_P4.Enabled = CHK_P6.Enabled = CHK_P8.Enabled = gt != 254; // Not Female-Only
|
||||
CHK_P3.Enabled = CHK_P5.Enabled = CHK_P7.Enabled = CHK_P9.Enabled = gt is not (0 or 255); // Not Male-Only and Not Genderless
|
||||
bool canBeMale = gt != PersonalInfo.RatioMagicFemale;
|
||||
bool canBeFemale = gt is not (PersonalInfo.RatioMagicMale or PersonalInfo.RatioMagicGenderless);
|
||||
CHK_P2.Enabled = CHK_P4.Enabled = CHK_P6.Enabled = CHK_P8.Enabled = canBeMale; // Not Female-Only
|
||||
CHK_P3.Enabled = CHK_P5.Enabled = CHK_P7.Enabled = CHK_P9.Enabled = canBeFemale; // Not Male-Only and Not Genderless
|
||||
|
||||
for (int i = 0; i < 4; i++)
|
||||
CP[i + 1].Checked = Dex.GetSeen(currentSpecies, i);
|
||||
|
@ -276,8 +278,10 @@ namespace PKHeX.WinForms
|
|||
}
|
||||
int gt = Dex.GetBaseSpeciesGenderValue(LB_Species.SelectedIndex);
|
||||
|
||||
CHK_P2.Checked = CHK_P4.Checked = gt != 254 && ModifierKeys != Keys.Control;
|
||||
CHK_P3.Checked = CHK_P5.Checked = gt is not (0 or 255) && ModifierKeys != Keys.Control;
|
||||
bool canBeMale = gt != PersonalInfo.RatioMagicFemale;
|
||||
bool canBeFemale = gt is not (PersonalInfo.RatioMagicMale or PersonalInfo.RatioMagicGenderless);
|
||||
CHK_P2.Checked = CHK_P4.Checked = canBeMale && ModifierKeys != Keys.Control;
|
||||
CHK_P3.Checked = CHK_P5.Checked = canBeFemale && ModifierKeys != Keys.Control;
|
||||
|
||||
if (ModifierKeys == Keys.Control)
|
||||
{
|
||||
|
@ -286,7 +290,7 @@ namespace PKHeX.WinForms
|
|||
}
|
||||
else if (!(CHK_P6.Checked || CHK_P7.Checked || CHK_P8.Checked || CHK_P9.Checked))
|
||||
{
|
||||
(gt != 254 ? CHK_P6 : CHK_P7).Checked = true;
|
||||
(gt != PersonalInfo.RatioMagicFemale ? CHK_P6 : CHK_P7).Checked = true;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -373,7 +377,7 @@ namespace PKHeX.WinForms
|
|||
if (!(CHK_P2.Checked || CHK_P3.Checked || CHK_P4.Checked || CHK_P5.Checked)) // if seen
|
||||
{
|
||||
if (!(CHK_P6.Checked || CHK_P7.Checked || CHK_P8.Checked || CHK_P9.Checked)) // not displayed
|
||||
(gt != 254 ? CHK_P6 : CHK_P7).Checked = true; // check one
|
||||
(gt != PersonalInfo.RatioMagicFemale ? CHK_P6 : CHK_P7).Checked = true; // check one
|
||||
}
|
||||
|
||||
return;
|
||||
|
@ -389,14 +393,14 @@ namespace PKHeX.WinForms
|
|||
{
|
||||
// ensure at least one SEEN
|
||||
if (!(CHK_P2.Checked || CHK_P3.Checked || CHK_P4.Checked || CHK_P5.Checked))
|
||||
(gt != 254 ? CHK_P2 : CHK_P3).Checked = true;
|
||||
(gt != PersonalInfo.RatioMagicFemale ? CHK_P2 : CHK_P3).Checked = true;
|
||||
}
|
||||
|
||||
// ensure at least one Displayed except for formes
|
||||
if (isForm)
|
||||
return;
|
||||
if (!(CHK_P6.Checked || CHK_P7.Checked || CHK_P8.Checked || CHK_P9.Checked))
|
||||
(gt != 254 ? CHK_P6 : CHK_P7).Checked = CHK_P1.Enabled;
|
||||
(gt != PersonalInfo.RatioMagicFemale ? CHK_P6 : CHK_P7).Checked = CHK_P1.Enabled;
|
||||
}
|
||||
|
||||
private void SetSeen(object sender, int gt, bool isForm)
|
||||
|
@ -410,7 +414,7 @@ namespace PKHeX.WinForms
|
|||
if (isForm)
|
||||
return;
|
||||
if (!(CHK_P6.Checked || CHK_P7.Checked || CHK_P8.Checked || CHK_P9.Checked))
|
||||
(gt != 254 ? CHK_P6 : CHK_P7).Checked = true;
|
||||
(gt != PersonalInfo.RatioMagicFemale ? CHK_P6 : CHK_P7).Checked = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
Loading…
Add table
Reference in a new issue