diff --git a/src/Ryujinx/Assets/locales.json b/src/Ryujinx/Assets/locales.json index 3db41b963..7b35cd6e1 100644 --- a/src/Ryujinx/Assets/locales.json +++ b/src/Ryujinx/Assets/locales.json @@ -23069,7 +23069,7 @@ "tr_TR": "", "uk_UA": "", "zh_CN": "可游玩", - "zh_TW": "可暢順遊玩 (Playable)" + "zh_TW": "可暢順遊玩" } }, { @@ -23094,7 +23094,7 @@ "tr_TR": "", "uk_UA": "", "zh_CN": "进入游戏", - "zh_TW": "大致可遊玩 (Ingame)" + "zh_TW": "大致可遊玩" } }, { @@ -23119,7 +23119,7 @@ "tr_TR": "", "uk_UA": "", "zh_CN": "菜单", - "zh_TW": "只開啟至遊戲開始功能表 (Menus)" + "zh_TW": "只開啟至遊戲開始功能表" } }, { @@ -23144,7 +23144,7 @@ "tr_TR": "", "uk_UA": "", "zh_CN": "启动", - "zh_TW": "只能啟動 (Boots)" + "zh_TW": "只能啟動" } }, { @@ -23169,7 +23169,7 @@ "tr_TR": "", "uk_UA": "", "zh_CN": "什么都没有", - "zh_TW": "無法啟動 (Nothing)" + "zh_TW": "無法啟動" } }, { @@ -23198,4 +23198,4 @@ } } ] -} \ No newline at end of file +} diff --git a/src/Ryujinx/UI/Controls/ApplicationListView.axaml b/src/Ryujinx/UI/Controls/ApplicationListView.axaml index 9b87805e4..af7b5ccd0 100644 --- a/src/Ryujinx/UI/Controls/ApplicationListView.axaml +++ b/src/Ryujinx/UI/Controls/ApplicationListView.axaml @@ -86,6 +86,13 @@ Text="{Binding Version}" TextAlignment="Start" TextWrapping="Wrap" /> + _id; + set + { + _id = value; + PlayabilityStatus = CompatibilityCsv.GetStatus(Id); + } + } public string Developer { get; set; } = "Unknown"; public string Version { get; set; } = "0"; + + public bool HasPlayabilityInfo => PlayabilityStatus != null; + + public string LocalizedStatus => + PlayabilityStatus.HasValue + ? LocaleManager.Instance[PlayabilityStatus!.Value] + : string.Empty; + + public LocaleKeys? PlayabilityStatus { get; set; } + public int PlayerCount { get; set; } public int GameCount { get; set; } public TimeSpan TimePlayed { get; set; } diff --git a/src/Ryujinx/Utilities/Compat/CompatibilityCsv.cs b/src/Ryujinx/Utilities/Compat/CompatibilityCsv.cs index af80c5a28..d0e251fe0 100644 --- a/src/Ryujinx/Utilities/Compat/CompatibilityCsv.cs +++ b/src/Ryujinx/Utilities/Compat/CompatibilityCsv.cs @@ -47,11 +47,6 @@ namespace Ryujinx.Ava.Utilities.Compat Logger.Debug?.Print(LogClass.UI, "Compatibility CSV loaded.", "LoadCompatibility"); } - public static void Unload() - { - _entries = null; - } - private static CompatibilityEntry[] _entries; public static CompatibilityEntry[] Entries @@ -64,6 +59,11 @@ namespace Ryujinx.Ava.Utilities.Compat return _entries; } } + + public static LocaleKeys? GetStatus(string titleId) + => Entries.FirstOrDefault(x => x.TitleId.HasValue && x.TitleId.Value.EqualsIgnoreCase(titleId))?.Status; + + public static LocaleKeys? GetStatus(ulong titleId) => GetStatus(titleId.ToString("X16")); } public class CompatibilityEntry diff --git a/src/Ryujinx/Utilities/Compat/CompatibilityList.axaml.cs b/src/Ryujinx/Utilities/Compat/CompatibilityList.axaml.cs index 7fc48b187..e0d3b0c56 100644 --- a/src/Ryujinx/Utilities/Compat/CompatibilityList.axaml.cs +++ b/src/Ryujinx/Utilities/Compat/CompatibilityList.axaml.cs @@ -32,8 +32,6 @@ namespace Ryujinx.Ava.Utilities.Compat contentDialog.Styles.Add(closeButtonParent); await ContentDialogHelper.ShowAsync(contentDialog); - - CompatibilityCsv.Unload(); } public CompatibilityList()