diff --git a/PKHeX.Core/PKM/PKM.cs b/PKHeX.Core/PKM/PKM.cs index 1a964eb11..1a0f21993 100644 --- a/PKHeX.Core/PKM/PKM.cs +++ b/PKHeX.Core/PKM/PKM.cs @@ -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}"; diff --git a/PKHeX.Core/PKM/Shared/QRPKM.cs b/PKHeX.Core/PKM/Shared/QRPKM.cs index 183f7590b..d456ec6aa 100644 --- a/PKHeX.Core/PKM/Shared/QRPKM.cs +++ b/PKHeX.Core/PKM/Shared/QRPKM.cs @@ -30,23 +30,30 @@ public static string[] GetQRLines(this PKM pkm) private static IEnumerable 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]; } } diff --git a/PKHeX.WinForms/MainWindow/Main.cs b/PKHeX.WinForms/MainWindow/Main.cs index 295e59511..a2869dd6a 100644 --- a/PKHeX.WinForms/MainWindow/Main.cs +++ b/PKHeX.WinForms/MainWindow/Main.cs @@ -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(); }