Add Setting to Swap A and B on Gamepad (#474)
* Add Setting to Swap A and B on Gamepad Added a new setting to swap the A and B button on controller. Defaults to off which retains the current behavior on live. * Add commentspull/478/head
parent
5440c0b40c
commit
dd76cbc7a2
|
@ -235,6 +235,15 @@ export default class BattleScene extends SceneBase {
|
||||||
this.nextCommandPhaseQueue = [];
|
this.nextCommandPhaseQueue = [];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Conditionally swaps the ACTION and CANCEL button
|
||||||
|
* @param standard When true, uses the default values
|
||||||
|
*/
|
||||||
|
setGamepadConfirm(standard: boolean) {
|
||||||
|
this.gamepadKeyConfig[Button.ACTION] = standard ? 0 : 1;
|
||||||
|
this.gamepadKeyConfig[Button.CANCEL] = standard ? 1 : 0;
|
||||||
|
}
|
||||||
|
|
||||||
loadPokemonAtlas(key: string, atlasPath: string, experimental?: boolean) {
|
loadPokemonAtlas(key: string, atlasPath: string, experimental?: boolean) {
|
||||||
if (experimental === undefined)
|
if (experimental === undefined)
|
||||||
experimental = this.experimentalSprites;
|
experimental = this.experimentalSprites;
|
||||||
|
|
|
@ -25,6 +25,7 @@ export enum Setting {
|
||||||
Fusion_Palette_Swaps = "FUSION_PALETTE_SWAPS",
|
Fusion_Palette_Swaps = "FUSION_PALETTE_SWAPS",
|
||||||
Player_Gender = "PLAYER_GENDER",
|
Player_Gender = "PLAYER_GENDER",
|
||||||
Gamepad_Support = "GAMEPAD_SUPPORT",
|
Gamepad_Support = "GAMEPAD_SUPPORT",
|
||||||
|
Swap_A_and_B = "SWAP_A_B", // Swaps which gamepad button handles ACTION and CANCEL
|
||||||
Touch_Controls = "TOUCH_CONTROLS",
|
Touch_Controls = "TOUCH_CONTROLS",
|
||||||
Vibration = "VIBRATION"
|
Vibration = "VIBRATION"
|
||||||
}
|
}
|
||||||
|
@ -56,6 +57,7 @@ export const settingOptions: SettingOptions = {
|
||||||
[Setting.Fusion_Palette_Swaps]: [ 'Off', 'On' ],
|
[Setting.Fusion_Palette_Swaps]: [ 'Off', 'On' ],
|
||||||
[Setting.Player_Gender]: [ 'Boy', 'Girl' ],
|
[Setting.Player_Gender]: [ 'Boy', 'Girl' ],
|
||||||
[Setting.Gamepad_Support]: [ 'Auto', 'Disabled' ],
|
[Setting.Gamepad_Support]: [ 'Auto', 'Disabled' ],
|
||||||
|
[Setting.Swap_A_and_B]: [ 'Enabled', 'Disabled' ],
|
||||||
[Setting.Touch_Controls]: [ 'Auto', 'Disabled' ],
|
[Setting.Touch_Controls]: [ 'Auto', 'Disabled' ],
|
||||||
[Setting.Vibration]: [ 'Auto', 'Disabled' ]
|
[Setting.Vibration]: [ 'Auto', 'Disabled' ]
|
||||||
};
|
};
|
||||||
|
@ -79,6 +81,7 @@ export const settingDefaults: SettingDefaults = {
|
||||||
[Setting.Fusion_Palette_Swaps]: 1,
|
[Setting.Fusion_Palette_Swaps]: 1,
|
||||||
[Setting.Player_Gender]: 0,
|
[Setting.Player_Gender]: 0,
|
||||||
[Setting.Gamepad_Support]: 0,
|
[Setting.Gamepad_Support]: 0,
|
||||||
|
[Setting.Swap_A_and_B]: 1, // Set to 'Disabled' by default
|
||||||
[Setting.Touch_Controls]: 0,
|
[Setting.Touch_Controls]: 0,
|
||||||
[Setting.Vibration]: 0
|
[Setting.Vibration]: 0
|
||||||
};
|
};
|
||||||
|
@ -148,6 +151,9 @@ export function setSetting(scene: BattleScene, setting: Setting, value: integer)
|
||||||
case Setting.Gamepad_Support:
|
case Setting.Gamepad_Support:
|
||||||
scene.gamepadSupport = settingOptions[setting][value] !== 'Disabled';
|
scene.gamepadSupport = settingOptions[setting][value] !== 'Disabled';
|
||||||
break;
|
break;
|
||||||
|
case Setting.Swap_A_and_B:debugger;
|
||||||
|
scene.setGamepadConfirm(settingOptions[setting][value] !== 'Enabled');
|
||||||
|
break;
|
||||||
case Setting.Touch_Controls:
|
case Setting.Touch_Controls:
|
||||||
scene.enableTouchControls = settingOptions[setting][value] !== 'Disabled' && hasTouchscreen();
|
scene.enableTouchControls = settingOptions[setting][value] !== 'Disabled' && hasTouchscreen();
|
||||||
const touchControls = document.getElementById('touchControls');
|
const touchControls = document.getElementById('touchControls');
|
||||||
|
|
Loading…
Reference in New Issue