mirror of
https://github.com/pagefaultgames/pokerogue.git
synced 2025-07-15 21:02:18 +02:00
fix bind after multiple delete
This commit is contained in:
parent
9c4f04fe46
commit
c222f0346d
@ -84,15 +84,17 @@ export function swapCurrentKeys(config: InterfaceConfig, settingName, pressedBut
|
|||||||
if (newBind && previousBind.action === -1) {
|
if (newBind && previousBind.action === -1) {
|
||||||
//special case when rebinding deleted key with already assigned key
|
//special case when rebinding deleted key with already assigned key
|
||||||
const toRestore = deepCopy(newBind);
|
const toRestore = deepCopy(newBind);
|
||||||
|
const iconFromThePressedButton = config.ogIcons[prevKey.key];
|
||||||
config.custom[newBind.key] = prevKey.from.action;
|
config.custom[newBind.key] = prevKey.from.action;
|
||||||
config.icons[prevKey.key] = newBind.icon;
|
config.icons[prevKey.key] = newBind.icon || iconFromThePressedButton;
|
||||||
config.icons[newBind.key] = prevKey.from.icon;
|
config.icons[newBind.key] = prevKey.from.icon;
|
||||||
|
|
||||||
delete prevKey.from;
|
delete prevKey.from;
|
||||||
|
|
||||||
const nextSettingName = getKeyAndSettingNameFromCurrentKeysWithAction(config, newBind.action, newBind.isAlt).settingName;
|
const nextSettingName = getKeyAndSettingNameFromCurrentKeysWithAction(config, newBind.action, newBind.isAlt).settingName;
|
||||||
config.currentKeys[nextSettingName].from = toRestore;
|
config.currentKeys[nextSettingName].from = toRestore.action === -1 ? config.currentKeys[nextSettingName].from : toRestore;
|
||||||
config.currentKeys[nextSettingName].isDeleted = true;
|
config.currentKeys[nextSettingName].isDeleted = true;
|
||||||
|
config.currentKeys[settingName].isDeleted = false;
|
||||||
config.currentKeys[settingName].replacedBy = toRestore.key;
|
config.currentKeys[settingName].replacedBy = toRestore.key;
|
||||||
} else if (!newBind) {
|
} else if (!newBind) {
|
||||||
assignNewKey(config, settingName, pressedButton, previousBind);
|
assignNewKey(config, settingName, pressedButton, previousBind);
|
||||||
@ -160,6 +162,8 @@ export function regenerateCustom(config): void {
|
|||||||
custom[latestReplacedBy] = action;
|
custom[latestReplacedBy] = action;
|
||||||
} else if (!latestIsDeleted) {
|
} else if (!latestIsDeleted) {
|
||||||
custom[key] = action;
|
custom[key] = action;
|
||||||
|
} else if (latestIsDeleted) {
|
||||||
|
custom[key] = -1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
config.custom = deepCopy(custom);
|
config.custom = deepCopy(custom);
|
||||||
|
@ -590,4 +590,42 @@ describe('Test Keyboard', () => {
|
|||||||
expect(config.custom["KEY_D"]).toEqual(Button.RIGHT);
|
expect(config.custom["KEY_D"]).toEqual(Button.RIGHT);
|
||||||
})
|
})
|
||||||
|
|
||||||
|
it('by method: Delete 2 binds, than rebind one of them', () => {
|
||||||
|
|
||||||
|
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, SettingInterfaceKeyboard.Alt_Button_Up);
|
||||||
|
expect(config.currentKeys[SettingInterfaceKeyboard.Alt_Button_Up].key).toEqual("KEY_Z");
|
||||||
|
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.currentKeys[SettingInterfaceKeyboard.Alt_Button_Down].key).toEqual("KEY_S");
|
||||||
|
expect(config.currentKeys[SettingInterfaceKeyboard.Alt_Button_Down].action).toEqual(Button.DOWN);
|
||||||
|
expect(config.currentKeys[SettingInterfaceKeyboard.Alt_Button_Down].icon).toEqual("T_S_Key_Dark.png");
|
||||||
|
expect(config.custom["KEY_S"]).toEqual(Button.DOWN);
|
||||||
|
deleteBind(config, SettingInterfaceKeyboard.Alt_Button_Down);
|
||||||
|
expect(config.currentKeys[SettingInterfaceKeyboard.Alt_Button_Down].key).toEqual("KEY_S");
|
||||||
|
expect(config.currentKeys[SettingInterfaceKeyboard.Alt_Button_Down].action).toEqual(-1);
|
||||||
|
expect(config.currentKeys[SettingInterfaceKeyboard.Alt_Button_Down].icon).toEqual(undefined);
|
||||||
|
expect(config.custom["KEY_S"]).toEqual(-1);
|
||||||
|
|
||||||
|
|
||||||
|
swapCurrentKeys(config, SettingInterfaceKeyboard.Alt_Button_Up, Phaser.Input.Keyboard.KeyCodes.Z);
|
||||||
|
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);
|
||||||
|
|
||||||
|
expect(config.currentKeys[SettingInterfaceKeyboard.Alt_Button_Down].key).toEqual("KEY_S");
|
||||||
|
expect(config.currentKeys[SettingInterfaceKeyboard.Alt_Button_Down].action).toEqual(-1);
|
||||||
|
expect(config.currentKeys[SettingInterfaceKeyboard.Alt_Button_Down].icon).toEqual(undefined);
|
||||||
|
expect(config.custom["KEY_S"]).toEqual(-1);
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
});
|
});
|
Loading…
Reference in New Issue
Block a user