using System.Drawing; using PKHeX.Core; using PKHeX.Drawing.Misc.Properties; using static PKHeX.Core.GameVersion; namespace PKHeX.Drawing.Misc; public static class WallpaperUtil { public static Image WallpaperImage(this SaveFile sav, int box) => GetWallpaper(sav, box); private static Image GetWallpaper(SaveFile sav, int box) { string s = GetWallpaperResourceName(sav.Version, sav.GetBoxWallpaper(box)); return (Bitmap?)Resources.ResourceManager.GetObject(s) ?? Resources.box_wp16xy; } public static string GetWallpaperResourceName(GameVersion version, int index) { index++; // start indexes at 1 var suffix = GetResourceSuffix(version, index); return $"box_wp{index:00}{suffix}"; } private static string GetResourceSuffix(GameVersion version, int index) => version.GetGeneration() switch { 3 when version == E => "e", 3 when FRLG.Contains(version) && index > 12 => "frlg", 3 => "rs", 4 when index < 16 => "dp", 4 when version == Pt => "pt", 4 when HGSS.Contains(version) => "hgss", 5 => B2W2.Contains(version) && index > 16 ? "b2w2" : "bw", 6 => ORAS.Contains(version) && index > 16 ? "ao" : "xy", 7 when !GG.Contains(version) => "xy", 8 when !SWSH.Contains(version) => "bdsp", 8 => "swsh", _ => string.Empty, }; }