Ejemplo n.º 1
0
        /// <summary>
        /// 入力許可を設定
        /// </summary>
        /// <param name="keyId">キーID</param>
        /// <param name="enable">入力許可の有無</param>
        public void SetKeyEnable(int keyId, bool enable)
        {
            if (!DataId.EqualsUpper(keyId, KeyIdOffset.UI))
            {
                Log.Error("キーIDの種類が異なります(ID:{0:X8})", keyId);
                return;
            }

            int index = DataId.GetIndex(keyId);

            if (index <= 0)
            {
                Log.Error("キーIDのインデックスが不正(ID:{0:X8})", keyId);
                return;
            }

            IKeyMap keyMap;

            if (!_keyConfig.TryGetKeyMap(index, out keyMap))
            {
                return;
            }

            keyMap.SetKeyEnable(keyId, enable);
        }
Ejemplo n.º 2
0
        /// <summary>
        /// キーIDから配列インデックスに変換する
        /// </summary>
        /// <param name="keyId">キーID</param>
        /// <param name="index">変換したインデックス</param>
        /// <returns>処理結果</returns>
        bool TryConvertIndex(int keyId, out int index)
        {
            if (!DataId.EqualsUpper(keyId, _data[0].id))
            {
                Log.Error("IDの種類が異なります(KID:{0:X8}, Offset:{1:X8})",
                    keyId, _data[0].id);
                index = -1;
                return false;
            }

            if (DataId.GetData(keyId) != DataId.GetIndex(Id))
            {
                Log.Error("マップIDが異なります(KID:{0:X8}, MID:{1:X8})", keyId, Id);
                index = -1;
                return false;
            }

            index = DataId.GetIndex(keyId);
            if (index <= 0 || index >= _data.Length)
            {
                Log.Error("インデックスが不正(KID:{0:X8}, Num:{1})",
                    keyId, _data.Length - 1);
                index = -1;
                return false;
            }

            return true;
        }