Add Input/InputBind/InputButton JS bindings, move default binds to JS

Adds a new script module exposing Input.bind/value/lastValue/isDown/
wasDown/pressed/released, InputBind.* (the inputbind_t action enum),
and InputButton.* (every named button in the compiled platform's
INPUT_BUTTON_DATA table, e.g. InputButton.SELECT on PSP).

Renames the PLATFORM global to Platform.current for consistency with
Time/Console/Input.

Uppercases every INPUT_BUTTON_DATA .name across inputlinux.c/
inputpsp.c/inputdolphin.c to match the InputButton.* JS constants
(inputButtonGetByName was already case-insensitive, so this doesn't
change matching behavior).

Moves the default key/button-to-action bindings out of
src/duskrpg/input/inputbindmap.h (deleted) and into
assets/scripts/input.js, branching on Platform.current instead of the
old per-platform #ifdefs. Wired in via require('./input.js') from
init.js.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
2026-08-11 16:03:32 -05:00
parent 93ab7690ba
commit ae52be591b
21 changed files with 861 additions and 305 deletions
+9
View File
@@ -10,3 +10,12 @@ dusktest(test_modulerequire.c)
dusktest(test_scriptdef.c)
dusktest(test_moduleconsole.c)
dusktest(test_moduleplatform.c)
dusktest(test_moduleinput.c)
dusktest(test_scriptinput.c)
target_compile_definitions(test_scriptinput PRIVATE
DUSK_ASSETS_DIR="${DUSK_ASSETS_DIR}"
)