Remove QRText property

removes PKM<-QRPKM class dependency
fix invalid value oob exception (nature & ability fuzz)
This commit is contained in:
Kurt
2018-12-26 17:31:23 -08:00
parent cf0ebf6a4e
commit 988e71bec5
3 changed files with 21 additions and 15 deletions

View File

@@ -342,7 +342,6 @@ public int GenNumber
public int MarkDiamond { get => Markings[5]; set { var marks = Markings; marks[5] = value; Markings = marks; } }
public int IVTotal => IV_HP + IV_ATK + IV_DEF + IV_SPA + IV_SPD + IV_SPE;
public int EVTotal => EV_HP + EV_ATK + EV_DEF + EV_SPA + EV_SPD + EV_SPE;
public string[] QRText => this.GetQRLines();
public string FileName => $"{FileNameWithoutExtension}.{Extension}";

View File

@@ -30,23 +30,30 @@ public static string[] GetQRLines(this PKM pkm)
private static IEnumerable<string> GetHeader(PKM pkm, GameStrings s)
{
string filename = pkm.Nickname;
if (pkm.Nickname != s.specieslist[pkm.Species] && s.specieslist[pkm.Species] != null)
filename += $" ({s.specieslist[pkm.Species]})";
if ((uint) pkm.Species < s.Species.Count)
{
var name = s.Species[pkm.Species];
if (pkm.Nickname != name)
filename += $" ({name})";
}
yield return filename;
if (pkm.Format >= 3)
yield return $"[{s.abilitylist[pkm.Ability]}]";
if (pkm.Format >= 3 && (uint)pkm.Ability < s.Ability.Count)
yield return $"[{s.Ability[pkm.Ability]}]";
yield return $"lv{pkm.Stat_Level}";
var level = pkm.Stat_Level;
if (level == 0)
level = pkm.CurrentLevel;
yield return $"lv{level}";
if (pkm.HeldItem > 0)
{
var str = s.GetItemStrings(pkm.Format);
if (pkm.HeldItem < str.Count)
yield return $" @ {str[pkm.HeldItem]}";
var items = s.GetItemStrings(pkm.Format);
if ((uint)pkm.HeldItem < items.Count)
yield return $" @ {items[pkm.HeldItem]}";
}
if (pkm.Format >= 3)
if (pkm.Format >= 3 && (uint)pkm.Nature < s.Natures.Count)
yield return s.natures[pkm.Nature];
}
}

View File

@@ -808,7 +808,7 @@ private static string GetProgramTitle(SaveFile sav)
private static bool TryBackupExportCheck(SaveFile sav, string path)
{
if (string.IsNullOrWhiteSpace(path)) // not actual save
if (string.IsNullOrWhiteSpace(path) || !Settings.Default.BAKEnabled) // not actual save
return false;
// If backup folder exists, save a backup.
@@ -942,10 +942,10 @@ private void ClickQR(object sender, EventArgs e)
string url = Clipboard.GetText();
if (!string.IsNullOrWhiteSpace(url))
{
if (!url.StartsWith("http") || url.Contains('\n'))
ClickShowdownImportPKM(sender, e);
else
if (url.StartsWith("http") && !url.Contains('\n')) // qr payload
ImportQRToTabs(url);
else
ClickShowdownImportPKM(sender, e);
return;
}
}
@@ -1006,7 +1006,7 @@ private void ExportQRFromTabs()
sprite = ImageUtil.LayerImage(sprite, img, 24, 0);
}
string[] r = pkx.QRText;
string[] r = pkx.GetQRLines();
string refer = GetProgramTitle();
new QR(qr, sprite, pkx, r[0], r[1], r[2], $"{refer} ({pkx.GetType().Name})").ShowDialog();
}