diff --git a/PKHeX.Core/PKM/Strings/StringConverter3.cs b/PKHeX.Core/PKM/Strings/StringConverter3.cs index 264ce78c2..f2717610b 100644 --- a/PKHeX.Core/PKM/Strings/StringConverter3.cs +++ b/PKHeX.Core/PKM/Strings/StringConverter3.cs @@ -127,7 +127,7 @@ public static byte SetG3Char(char chr, bool jp) '⑬', '“', '”', '‘', '’', '♂', '♀', '$', ',', '⑧', '/', 'A', 'B', 'C', 'D', 'E', // B 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', // C 'V', 'W', 'X', 'Y', 'Z', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', // D - 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', '0', // E + 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', '▶', // E ':', 'Ä', 'Ö', 'Ü', 'ä', 'ö', 'ü', // F // Make the total length 256 so that any byte access is always within the array @@ -150,7 +150,7 @@ public static byte SetG3Char(char chr, bool jp) '⋯', '『', '』', '「', '」', '♂', '♀', '$', '.', '⑧', '/', 'A', 'B', 'C', 'D', 'E', // B 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', // C 'V', 'W', 'X', 'Y', 'Z', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', // D - 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', '0', // E + 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', '▶', // E ':', 'Ä', 'Ö', 'Ü', 'ä', 'ö', 'ü', // F // Make the total length 256 so that any byte access is always within the array diff --git a/PKHeX.Core/PKM/Util/Conversion/EntityConverter.cs b/PKHeX.Core/PKM/Util/Conversion/EntityConverter.cs index 230d0cc36..2d4ae20b7 100644 --- a/PKHeX.Core/PKM/Util/Conversion/EntityConverter.cs +++ b/PKHeX.Core/PKM/Util/Conversion/EntityConverter.cs @@ -174,6 +174,7 @@ public static bool IsConvertibleToFormat(PKM pk, int format) PB7 { Species: (int)Species.Eevee, Form: not 0 } => IncompatibleForm, PB8 { Species: (int)Species.Spinda } => IncompatibleSpecies, // Incorrect arrangement of spots (PID endianness) PB8 { Species: (int)Species.Nincada } => IncompatibleSpecies, // Clone paranoia with Shedinja + PK9 { Species: (int)Species.Koraidon or (int)Species.Miraidon, FormArgument: not 0 } => IncompatibleForm, // Ride _ => Success, }; diff --git a/PKHeX.Core/PKM/Util/EntityFileNamer.cs b/PKHeX.Core/PKM/Util/EntityFileNamer.cs index 96e65c483..4775def24 100644 --- a/PKHeX.Core/PKM/Util/EntityFileNamer.cs +++ b/PKHeX.Core/PKM/Util/EntityFileNamer.cs @@ -17,6 +17,12 @@ public static class EntityFileNamer /// Input entity to create a file name for. /// File name for the data public static string GetName(PKM pk) => Namer.GetName(pk); + + /// + /// A list of all available objects. + /// + /// Used for UI display. + public static readonly List> AvailableNamers = [Namer]; } /// @@ -24,6 +30,8 @@ public static class EntityFileNamer /// public sealed class DefaultEntityNamer : IFileNamer { + public string Name => "Default"; + public string GetName(PKM obj) { if (obj is GBPKM gb) @@ -60,6 +68,14 @@ private static string GetGBPKM(GBPKM gb) /// Type that the implementer can create a file name for. public interface IFileNamer { + /// + /// Human-readable name of the implementation. + /// + string Name { get; } + + /// + /// Gets the file name (without extension) for the input data. + /// string GetName(T obj); }