Revise savefile subversion indication in title

Ensure all have dashes at front
for multiple strings, separate out the GB/VC to a separate tag.

No longer does the program show `SAV3FRLGUGBA` instead of `SAV3FRLG-U [GBA]`, which is a little more transparent to the end user.
This commit is contained in:
Kurt
2026-07-31 16:50:20 -05:00
parent 7890222343
commit 2f9d50308b
8 changed files with 14 additions and 12 deletions

View File

@@ -14,7 +14,7 @@ public sealed class SAV1 : SaveFile, ILangDeviantSave, IEventFlagArray, IEventWo
public bool IsVirtualConsole => State.Exportable && Metadata.FileName is { } s && s.StartsWith("sav", StringComparison.Ordinal) && s.Contains(".dat"); // default to GB-Era for non-exportable
public int SaveRevision => Japanese ? 0 : 1;
public string SaveRevisionString => (Japanese ? "J" : "U") + (IsVirtualConsole ? "VC" : "GB");
public string SaveRevisionString => (Japanese ? "-J" : "-U") + (IsVirtualConsole ? " [VC]" : " [GB]");
public bool Japanese { get; }
public bool Korean => false;
public override int Language { get; set; }

View File

@@ -10,7 +10,7 @@ namespace PKHeX.Core;
public sealed class SAV1Stadium : SAV_STADIUM, IStorageCleanup
{
public override int SaveRevision => Japanese ? 0 : 1;
public override string SaveRevisionString => Japanese ? "J" : "U";
public override string SaveRevisionString => Japanese ? "-J" : "-U";
public override PersonalTable1 Personal => PersonalTable.Y;
public override int MaxEV => EffortValues.Max12;

View File

@@ -10,7 +10,7 @@ public sealed class SAV1StadiumJ : SAV_STADIUM
{
// Required since PK1 logic comparing a save file assumes the save file can be U/J
public override int SaveRevision => 0;
public override string SaveRevisionString => "0"; // so we're different from Japanese SAV1Stadium naming...
public override string SaveRevisionString => "-0"; // so we're different from Japanese SAV1Stadium naming...
public override PersonalTable1 Personal => PersonalTable.Y;
public override int MaxEV => EffortValues.Max12;

View File

@@ -14,7 +14,7 @@ public sealed class SAV2 : SaveFile, ILangDeviantSave, IEventFlagArray, IEventWo
public bool IsVirtualConsole => State.Exportable && Metadata.FileName is { } s && s.StartsWith("sav", StringComparison.Ordinal) && s.Contains(".dat"); // default to GB-Era for non-exportable
public int SaveRevision => Japanese ? 0 : !Korean ? 1 : 2;
public string SaveRevisionString => (Japanese ? "J" : !Korean ? "U" : "K") + (IsVirtualConsole ? "VC" : "GB");
public string SaveRevisionString => (Japanese ? "-J" : !Korean ? "-U" : "-K") + (IsVirtualConsole ? " [VC]" : " [GB]");
public bool Japanese { get; }
public bool Korean { get; }
public override int Language { get; set; }

View File

@@ -9,7 +9,7 @@ namespace PKHeX.Core;
public sealed class SAV2Stadium : SAV_STADIUM, IBoxDetailName
{
public override int SaveRevision => Japanese ? 0 : 1;
public override string SaveRevisionString => Japanese ? "J" : "U";
public override string SaveRevisionString => Japanese ? "-J" : "-U";
public override PersonalTable2 Personal => PersonalTable.C;
public override int MaxEV => EffortValues.Max12;

View File

@@ -13,7 +13,7 @@ public abstract class SAV3 : SaveFile, ILangDeviantSave, IEventFlag37, IBoxDetai
public sealed override string Extension => ".sav";
public int SaveRevision => Japanese ? 0 : 1;
public string SaveRevisionString => (Japanese ? "J" : "U") + (IsVirtualConsole ? "VC" : "GBA");
public string SaveRevisionString => (Japanese ? "-J" : "-U") + (IsVirtualConsole ? " [VC]" : " [GBA]");
public bool Japanese { get; }
public bool Korean => false;

View File

@@ -43,10 +43,10 @@ public static class Gem8VersionExtensions
/// <param name="version">Stored version value in the save data.</param>
public static string GetSuffixString(this Gem8Version version) => version switch
{
V1_0 => "-1.0.0", // Launch Revision
V1_1 => "-1.1.0", // 1.1.0
V1_2 => "-1.2.0", // 1.2.0
V1_3 => "-1.3.0", // 1.3.0
V1_0 => "-1.0", // Launch Revision
V1_1 => "-1.1", // 1.1.0
V1_2 => "-1.2", // 1.2.0
V1_3 => "-1.3", // 1.3.0
_ => throw new ArgumentOutOfRangeException(nameof(version)),
};
}

View File

@@ -838,9 +838,11 @@ private static string GetProgramTitle()
private static string GetProgramTitle(SaveFile sav)
{
string title = GetProgramTitle() + $" - {sav.GetType().Name}: ";
var type = sav.GetType().Name;
if (sav is ISaveFileRevision rev)
title = title.Insert(title.Length - 2, rev.SaveRevisionString);
type += rev.SaveRevisionString;
var title = GetProgramTitle() + $" - {type}: ";
var version = GameInfo.GetVersionName(sav.Version);
if (Settings.Privacy.HideSAVDetails)
return title + $"[{version}]";