Releases: offalynne/Input
3.3.3
3.3.2
3.3.1
3.3.0
Addresses:
#51 - Certain keyboard keys are now blocked from being detected on desktop. Please check the documentation for more information
#52 - Gamepad input is now preferred over keyboard input on Android, preventing weird behaviour when gamepads are set up to return both gamepad and keyboard events
#53 - Gamepads are now detected more reliably (and memory usage has been lowered too!)
#54 - Input checkers will no longer return incorrect positive results for the first few frames of the game when a buffer value is set for the checker
#55 - Due to collision with native GameMaker behaviour, the name of Input's SDL2 database has been changed to sdl2.txt
#62 - Added documentation on Input's data sources
#63 - Fixed os_android
being recognised as tvOS, leading to bugs in gamepad detection on Android
Additionally:
- Many updates to the gamepad database, including mappings, blacklist, and controller types
- Support for additional, rare, keyboard keys
- Improved controller identification cross-platform
- Adds 2D checker functions to help with top-down games
input_binding_reset()
can now reset axis thresholds too- Deprecates all cursor functions as they were unnecessary and cumbersome
3.2.2
Addresses the following issues:
#42 - Fixes %SDL_GAMECONTROLLERCONFIG%
not being parsed properly
#46 - Externalises blacklists to allow for easier maintenance and PRs in the future
#47 - Adds the SDL2 license
Additionally, the controller types that Input now returns have been changed. Please review the documentation for more information.
3.2.1pre000
Adds input_direction()
and input_distance()
3.2.0pre000
Issues addressed:
#12 #35 #41 - The rebinding API has been totally rebuilt allowing for flexible rebinding of any controls
#22 - Verbs that are defined for the cursor but not as a default binding no longer cause crashes
#34 - Added input_gamepad_get_type()
which extracts the controller type from an external CSV file
Additionally:
- Fixed issues with verb consumption
3.1.1pre000
This is a pre-release version of the library. You may encounter bugs and crashes and other stability issues. If you run into any undesirable behaviour please create a new issue with as much detail as possible.
- Adds input history recording per player.
INPUT_HISTORY_LENGTH
controls how many events to store at any one time andinput_history_*()
controls how/when input events are recorded - Replaces internal implementation of mouse getter functions with GM's native
device_*
variants - Adds macro (
INPUT_MOUSE_MODE
) to control what coordinate space to return mouse position in - Added three new cursor getters:
input_cursor_prev_x()
input_cursor_prev_y()
input_cursor_moved()
- Implements a work-around for GMS2.3.1 having a bug in
json_parse()
that was causing crashes when importing bindings viainput_bindings_read()
- Fixes
SDL_GAMECONTROLLERCONFIG
expecting a file location. Added some error handling for failure to parse external SDL2 strings. External SDL2 string loading is toggled byINPUT_SDL2_ALLOW_EXTERNAL
- Negative gamepad indices will now "fall through" getter functions and return
0.0
orfalse
as appropriate - Added
input_default_gamepad_swap_ab()
to help with Switch/PS4 porting. This function is not intended to be used during gameplay and should only be used on boot; please use the rebinding system to modify controls during gameplay INPUT_SDL2_GP_SELECT_NAME
has been removed. Instead, SDL2'sguide
andmisc1
bindings are now available for use via thegp_guide
andgp_misc1
constants. These will default to being inaccessible for consistency for GameMaker's native behaviour. See__input_config()
for more information
3.1.0pre000
This is a pre-release version of the library. You may encounter bugs and crashes and other stability issues. If you run into any undesirable behaviour please create a new issue with as much detail as possible.
- Renames functions to
input_check_pressed()
andinput_check_released()
by popular request input_async_system_event()
is now no longer required- Double press detection has been added (
input_check_double()
etc.). The double press delay is set by theINPUT_DOUBLE_DELAY
macro, the time units of which are controlled byINPUT_BUFFERED_REALTIME
- Verbs can be triggered at will using
input_verb_set()
. Please note that this will not interact with Input's cursor - Input's native remapping service can now be toggled by
INPUT_SDL2_REMAPPING
(defaults totrue
) - Fixes SDL2 mapping on MacOS
- Expands blacklists cross-platform
- Adds ability to overwrite and extend SDL2 definitions using the
%SDL_GAMECONTROLLERCONFIG%
environment variable to point to an SDL2 source file. This behaviour can be toggled withINPUT_SDL2_ALLOW_EXTERNAL
. You must allow access outside the sandbox for this feature to work (as a result this feature defaults tofalse
) - XInput controllers will now properly discover and use analogue triggers
- Added
input_gamepad_is_axis()
to detect if a given button is analogue - Rebinding system no longer gets confused when triggers are analogue input
input_binding_write()
andinput_binding_read()
now use GM's native JSON serialisation functions. This is hopefully faster as well as, I hope, being more reliable under YYC- Fixes
input_is_analogue()
not handing arrays of inputs properly - Adds a bunch of extra debug stuff
3.0.0pre004
#29 - Fixes a dumb typo
Additionally:
- Cursor movement is now more reliable when using dpad controls on a gamepad with thumbstick drift
- Undoing rebindings that caused a binding conflict will now restore both bindings.