// Copyright (c) 2026 Dominic Masters // // This software is released under the MIT License. // https://opensource.org/licenses/MIT // Default input bindings, ported from the old // src/duskrpg/input/inputbindmap.h (removed) -- one INPUT_BIND_MAP per // compile-time target became one branch here on Platform.current. function bindAll(pairs) { for(var i = 0; i < pairs.length; i++) { Input.bind(pairs[i][0], pairs[i][1]); } } if(Platform.current === 'linux' || Platform.current === 'knulli') { bindAll([ // Keyboard [InputButton.W, InputBind.UP], [InputButton.S, InputBind.DOWN], [InputButton.A, InputBind.LEFT], [InputButton.D, InputBind.RIGHT], [InputButton.LEFT, InputBind.LEFT], [InputButton.RIGHT, InputBind.RIGHT], [InputButton.UP, InputBind.UP], [InputButton.DOWN, InputBind.DOWN], [InputButton.ENTER, InputBind.ACCEPT], [InputButton.E, InputBind.ACCEPT], [InputButton.SPACE, InputBind.ACCEPT], [InputButton.TAB, InputBind.CANCEL], [InputButton.Q, InputBind.CANCEL], [InputButton.ESCAPE, InputBind.RAGEQUIT], [InputButton.ENTER, InputBind.PAUSE], ['`', InputBind.CONSOLE], // Gamepad [InputButton.GAMEPAD_UP, InputBind.UP], [InputButton.GAMEPAD_DOWN, InputBind.DOWN], [InputButton.GAMEPAD_LEFT, InputBind.LEFT], [InputButton.GAMEPAD_RIGHT, InputBind.RIGHT], [InputButton.GAMEPAD_A, InputBind.ACCEPT], [InputButton.GAMEPAD_B, InputBind.CANCEL], [InputButton.GAMEPAD_BACK, InputBind.RAGEQUIT], [InputButton.GAMEPAD_START, InputBind.PAUSE], [InputButton.GAMEPAD_LSTICK_UP, InputBind.UP], [InputButton.GAMEPAD_LSTICK_DOWN, InputBind.DOWN], [InputButton.GAMEPAD_LSTICK_LEFT, InputBind.LEFT], [InputButton.GAMEPAD_LSTICK_RIGHT, InputBind.RIGHT], // Mouse [InputButton.MOUSE_X, InputBind.POINTERX], [InputButton.MOUSE_Y, InputBind.POINTERY], ]); } else if(Platform.current === 'psp') { bindAll([ [InputButton.UP, InputBind.UP], [InputButton.DOWN, InputBind.DOWN], [InputButton.LEFT, InputBind.LEFT], [InputButton.RIGHT, InputBind.RIGHT], [InputButton.ACCEPT, InputBind.ACCEPT], [InputButton.CANCEL, InputBind.CANCEL], [InputButton.TRIANGLE, InputBind.CONSOLE], [InputButton.SELECT, InputBind.RAGEQUIT], [InputButton.START, InputBind.PAUSE], [InputButton.LSTICK_UP, InputBind.UP], [InputButton.LSTICK_DOWN, InputBind.DOWN], [InputButton.LSTICK_LEFT, InputBind.LEFT], [InputButton.LSTICK_RIGHT, InputBind.RIGHT], ]); } else if(Platform.current === 'gamecube' || Platform.current === 'wii') { // GameCube and Wii share the same pad layout for now. // TODO: Wiimote, USB Keyboard, probably more. bindAll([ [InputButton.UP, InputBind.UP], [InputButton.DOWN, InputBind.DOWN], [InputButton.LEFT, InputBind.LEFT], [InputButton.RIGHT, InputBind.RIGHT], [InputButton.LSTICK_UP, InputBind.UP], [InputButton.LSTICK_DOWN, InputBind.DOWN], [InputButton.LSTICK_LEFT, InputBind.LEFT], [InputButton.LSTICK_RIGHT, InputBind.RIGHT], [InputButton.A, InputBind.ACCEPT], [InputButton.B, InputBind.CANCEL], [InputButton.Z, InputBind.CONSOLE], [InputButton.START, InputBind.RAGEQUIT], [InputButton.START, InputBind.PAUSE], ]); }