Exemple #1
0
        public static char Lookup(string button, string systemId)
        {
            var key = button.Replace("Key ", "");

            if (key.StartsWith("P"))
            {
                if (key.Length > 2 && key[1] == '1' && key[2] >= '0' && key[2] <= '9')                 // Hack to support 10-20 controllers, TODO: regex this thing instead
                {
                    key = key.Substring(4);
                }
                else if (key.Length > 1 && key[1] >= '0' && key[1] <= '9')
                {
                    key = key.Substring(3);
                }
            }

            if (SystemOverrides.TryGetValue(systemId, out var overridesForSys) && overridesForSys.TryGetValue(key, out var c))
            {
                return(c);
            }

            if (BaseMnemonicLookupTable.TryGetValue(key, out var c1))
            {
                return(c1);
            }

            if (key.Length == 1)
            {
                return(key[0]);
            }

            return('!');
        }