added some comment

pull/658/head
Greenlamp 2024-05-09 04:06:32 +02:00
parent 45e40f66ce
commit 92c493fe83
2 changed files with 15 additions and 3 deletions

View File

@ -91,10 +91,13 @@ export class InputsController {
} }
setGamepadSupport(value: boolean): void { setGamepadSupport(value: boolean): void {
// value is true if we activate gamepad
// value is false if we deactivate gamepad
if (value) { if (value) {
this.gamepadSupport = true; this.gamepadSupport = true;
} else { } else {
this.gamepadSupport = false; this.gamepadSupport = false;
// if we disable the gamepad, we want to release every key pressed
this.deactivatePressedKey(); this.deactivatePressedKey();
} }
} }
@ -103,11 +106,17 @@ export class InputsController {
// reversed to let the cancel button have a kinda priority on the action button // reversed to let the cancel button have a kinda priority on the action button
for (const b of Utils.getEnumValues(Button).reverse()) { for (const b of Utils.getEnumValues(Button).reverse()) {
if ( if (
this.interactions.hasOwnProperty(b) && this.interactions.hasOwnProperty(b) && // if the button is in the interactions dict
this.repeatInputDurationJustPassed(b) && this.repeatInputDurationJustPassed(b) && // if we hold enough the button
this.interactions[b].isPressed this.interactions[b].isPressed // if the button is pressed
) { ) {
// if the gamepad support is disable and the source is a gamepad
// we don't want to repeat the button
// even if we have disabled the gamepad, at the exact moment of the change in the menu
// we can be here and have an infinite loop since the code can't know we
// have released the key since the gamepad is not there anymore
if (!this.gamepadSupport && this.interactions[b].source === 'gamepad') { if (!this.gamepadSupport && this.interactions[b].source === 'gamepad') {
// if we are here and the gamepad is disabled, we delete the latest interracted button
this.delLastProcessedMovementTime(b); this.delLastProcessedMovementTime(b);
return; return;
} }
@ -270,6 +279,7 @@ export class InputsController {
} }
} }
// added source so when we repeat the key, we can also tell from which source the key is from
setLastProcessedMovementTime(button: Button, source: String = 'keyboard'): void { setLastProcessedMovementTime(button: Button, source: String = 'keyboard'): void {
if (!this.interactions.hasOwnProperty(button)) return; if (!this.interactions.hasOwnProperty(button)) return;
this.setButtonLock(button); this.setButtonLock(button);

View File

@ -149,6 +149,8 @@ export function setSetting(scene: BattleScene, setting: Setting, value: integer)
return false; return false;
break; break;
case Setting.Gamepad_Support: case Setting.Gamepad_Support:
// if we change the value of the gamepad support, we call a method in the inputController to
// activate or deactivate the controller listener
scene.inputController.setGamepadSupport(settingOptions[setting][value] !== 'Disabled'); scene.inputController.setGamepadSupport(settingOptions[setting][value] !== 'Disabled');
break; break;
case Setting.Swap_A_and_B: case Setting.Swap_A_and_B: