/// <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); }
/// <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; }