From f25b992a4ed5262ba580d2e04fb63b44a880f63a Mon Sep 17 00:00:00 2001 From: YoshiRulz Date: Sat, 29 Mar 2025 04:41:46 +1000 Subject: [PATCH] Simplify `EmulatorExtensions.ToControlNameList` also fixes it for controllerNum >= 10 --- src/BizHawk.Emulation.Common/Extensions.cs | 19 +++++++------------ 1 file changed, 7 insertions(+), 12 deletions(-) diff --git a/src/BizHawk.Emulation.Common/Extensions.cs b/src/BizHawk.Emulation.Common/Extensions.cs index e3d4b43ab3..374ab9971c 100644 --- a/src/BizHawk.Emulation.Common/Extensions.cs +++ b/src/BizHawk.Emulation.Common/Extensions.cs @@ -390,20 +390,15 @@ namespace BizHawk.Emulation.Common private static List ToControlNameList(IEnumerable buttonList, int? controllerNum = null) { - var buttons = new List(); - foreach (var button in buttonList) + var buttons = buttonList; + if (controllerNum is int n) { - if (controllerNum != null && button.Length > 2 && button.Substring(0, 2) == $"P{controllerNum}") - { - var sub = button.Substring(3); - buttons.Add(sub); - } - else if (controllerNum == null) - { - buttons.Add(button); - } + var pfx = $"P{n} "; + buttons = buttons.Select(buttonName => (ButtonName: buttonName, Tail: buttonName.RemovePrefix(pfx))) + .Where(static tuple => !object.ReferenceEquals(tuple.Tail, tuple.ButtonName)) + .Select(static tuple => tuple.Tail); } - return buttons; + return buttons.ToList(); } public static IReadOnlyDictionary ToDictionary(this IController controller, int? controllerNum = null)