mirror of
https://github.com/kwsch/PKHeX.git
synced 2026-08-26 16:25:24 -05:00
Add more savegame specific safeguards for pk6set
This commit is contained in:
@@ -9,7 +9,7 @@ public static partial class Legal
|
||||
internal static WC6[] WC6DB;
|
||||
// PKHeX master personal.dat
|
||||
internal static readonly PersonalInfo[] PersonalAO = PersonalInfo.getArray(Properties.Resources.personal_ao, PersonalInfo.SizeAO);
|
||||
private static readonly PersonalInfo[] PersonalXY = PersonalInfo.getArray(Properties.Resources.personal_xy, PersonalInfo.SizeXY);
|
||||
internal static readonly PersonalInfo[] PersonalXY = PersonalInfo.getArray(Properties.Resources.personal_xy, PersonalInfo.SizeXY);
|
||||
private static readonly EggMoves[] EggMoveXY = EggMoves.getArray(Data.unpackMini(Properties.Resources.eggmove_xy, "xy"));
|
||||
private static readonly Learnset[] LevelUpXY = Learnset.getArray(Data.unpackMini(Properties.Resources.lvlmove_xy, "xy"));
|
||||
private static readonly EggMoves[] EggMoveAO = EggMoves.getArray(Data.unpackMini(Properties.Resources.eggmove_ao, "ao"));
|
||||
|
||||
@@ -2747,20 +2747,31 @@ private void clickSet(object sender, EventArgs e)
|
||||
|
||||
int offset = getPKXOffset(slot);
|
||||
PK6 pk = preparepkx();
|
||||
if (!SAV.ORAS)
|
||||
string err = "";
|
||||
if (SAV.XY)
|
||||
{
|
||||
// User Protection
|
||||
string err = "";
|
||||
if (pk.Moves.Any(m => m > 617))
|
||||
err = "Move does not exist in X/Y.";
|
||||
else if (pk.Ability > 188)
|
||||
err = "Ability does not exist in X/Y.";
|
||||
else if (pk.HeldItem > 717)
|
||||
err = "Item does not exist in X/Y.";
|
||||
|
||||
if (err != "" && Util.Prompt(MessageBoxButtons.YesNo, err, "Continue?") != DialogResult.Yes)
|
||||
return;
|
||||
else if (pk.Species > 721)
|
||||
err = "Species does not exist in X/Y.";
|
||||
else if (pk.AltForm > Legal.PersonalXY[pk.Species].FormeCount - 1)
|
||||
err = "Form does not exist in X/Y.";
|
||||
}
|
||||
else if (SAV.ORAS)
|
||||
{
|
||||
if (pk.Species > 721)
|
||||
err = "Species does not exist in OR/AS.";
|
||||
else if (pk.AltForm > Legal.PersonalAO[pk.Species].FormeCount - 1)
|
||||
err = "Form does not exist in OR/AS.";
|
||||
}
|
||||
if (!string.IsNullOrEmpty(err) && Util.Prompt(MessageBoxButtons.YesNo, err, "Continue?") != DialogResult.Yes)
|
||||
return;
|
||||
|
||||
if (slot >= 30 && slot < 36) // Party
|
||||
SAV.setPK6Party(pk, offset);
|
||||
else if (slot < 30 || (slot >= 36 && slot < 42 && DEV_Ability.Enabled))
|
||||
|
||||
Reference in New Issue
Block a user