diff --git a/src/configs/gamepad-utils.ts b/src/configs/gamepad-utils.ts index d48064ac3..7835e8d88 100644 --- a/src/configs/gamepad-utils.ts +++ b/src/configs/gamepad-utils.ts @@ -130,18 +130,14 @@ export function reloadCurrentKeys(config): void { const settingName = config.setting[key]; const action = config.custom[key]; const icon = config.icons[key]; - if (currentKeys[settingName]?.latestReplacedBy) { - console.log(''); - } if (!currentKeys[settingName]) currentKeys[settingName] = {}; currentKeys[settingName].key = key; currentKeys[settingName].isAlt = settingName.includes("ALT_"); const previousAction = config.custom[currentKeys[settingName].replacedBy] - if (action === -1 && previousAction !== undefined) { + if (action === -1 && previousAction !== undefined && !currentKeys[settingName].isDeleted) { currentKeys[settingName].action = previousAction; currentKeys[settingName].icon = icon; currentKeys[settingName].latestReplacedBy = config.currentKeys[settingName].replacedBy - delete currentKeys[settingName].replacedBy; } else if (currentKeys[settingName].isDeleted) { currentKeys[settingName].action = -1; currentKeys[settingName].icon = undefined; @@ -173,7 +169,9 @@ export function deleteBind(config, settingName): void { const { key } = getKeyAndActionFromCurrentKeysWithSettingName(config, settingName); const prev = deepCopy(config.currentKeys[settingName]); delete config.currentKeys[settingName].icon + const actualKey = prev.replacedBy || key; config.currentKeys[settingName].from = prev; - config.custom[key] = -1; + config.custom[actualKey] = -1; + config.currentKeys[settingName].isDeleted = true; reloadCurrentKeys(config); } \ No newline at end of file diff --git a/src/test/keyboard_remaping.test.ts b/src/test/keyboard_remaping.test.ts index d27d806e5..8eae9dd42 100644 --- a/src/test/keyboard_remaping.test.ts +++ b/src/test/keyboard_remaping.test.ts @@ -302,6 +302,7 @@ describe('Test Keyboard', () => { expect(config.currentKeys[SettingInterfaceKeyboard.Alt_Button_Up].key).toEqual("KEY_Z"); expect(config.currentKeys[SettingInterfaceKeyboard.Alt_Button_Up].action).toEqual(Button.UP); expect(config.currentKeys[SettingInterfaceKeyboard.Alt_Button_Up].icon).toEqual("T_Z_Key_Dark.png"); + expect(config.custom["KEY_Z"]).toEqual(Button.UP); deleteBind(config, settingNameA) expect(config.currentKeys[SettingInterfaceKeyboard.Alt_Button_Up].key).toEqual("KEY_Z"); @@ -326,6 +327,7 @@ describe('Test Keyboard', () => { expect(config.currentKeys[SettingInterfaceKeyboard.Alt_Button_Up].action).toEqual(Button.UP); expect(config.currentKeys[SettingInterfaceKeyboard.Alt_Button_Up].icon).toEqual("T_Z_Key_Dark.png"); expect(config.custom["KEY_Z"]).toEqual(Button.UP); + expect(config.custom["KEY_B"]).toEqual(-1); swapCurrentKeys(config, SettingInterfaceKeyboard.Alt_Button_Up, Phaser.Input.Keyboard.KeyCodes.B); @@ -341,6 +343,7 @@ describe('Test Keyboard', () => { expect(config.currentKeys[SettingInterfaceKeyboard.Alt_Button_Up].action).toEqual(-1); expect(config.currentKeys[SettingInterfaceKeyboard.Alt_Button_Up].icon).toEqual(undefined); expect(config.custom["KEY_Z"]).toEqual(-1); + expect(config.custom["KEY_B"]).toEqual(-1); swapCurrentKeys(config, SettingInterfaceKeyboard.Alt_Button_Up, Phaser.Input.Keyboard.KeyCodes.B); @@ -348,6 +351,7 @@ describe('Test Keyboard', () => { expect(config.currentKeys[SettingInterfaceKeyboard.Alt_Button_Up].action).toEqual(Button.UP); expect(config.currentKeys[SettingInterfaceKeyboard.Alt_Button_Up].icon).toEqual("T_B_Key_Dark.png"); expect(config.custom["KEY_B"]).toEqual(Button.UP); + expect(config.custom["KEY_Z"]).toEqual(-1); }) @@ -390,6 +394,7 @@ describe('Test Keyboard', () => { expect(config.currentKeys[SettingInterfaceKeyboard.Alt_Button_Up].action).toEqual(Button.UP); expect(config.currentKeys[SettingInterfaceKeyboard.Alt_Button_Up].icon).toEqual("T_Z_Key_Dark.png"); expect(config.custom["KEY_Z"]).toEqual(Button.UP); + expect(config.custom["KEY_T"]).toEqual(-1); swapCurrentKeys(config, SettingInterfaceKeyboard.Alt_Button_Up, Phaser.Input.Keyboard.KeyCodes.T);