Skip to content

Releases: offalynne/Input

3.3.3

14 Apr 08:41
Compare
Choose a tag to compare
  • Adds input_source_detect(), input_source_detect_any(), and input_source_is_available() to help in detecting new input from unassigned controllers

3.3.2

10 Apr 07:41
Compare
Choose a tag to compare
  • Fixes crash in input_binding_swap() when swapping an unbound verb
  • Adds input_binding_remove()
  • Removes old cursor code from test cases
  • Fixes occasional crash in input_gamepad_value()
  • Adds input_gamepad_is_connected()
  • Adds local multiplayer test cases

3.3.1

09 Apr 17:38
Compare
Choose a tag to compare
  • Fixes crash in input_bindings_read() when loading a config with axis thresholds in it
  • Fixes typo in input_binding_get_name() for gamepad triggers

3.3.0

08 Apr 12:10
Compare
Choose a tag to compare

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

06 Feb 16:00
Compare
Choose a tag to compare
3.2.2 Pre-release
Pre-release

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

01 Feb 13:39
Compare
Choose a tag to compare
3.2.1pre000 Pre-release
Pre-release

3.2.0pre000

29 Jan 16:38
Compare
Choose a tag to compare
3.2.0pre000 Pre-release
Pre-release

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

17 Jan 10:57
Compare
Choose a tag to compare
3.1.1pre000 Pre-release
Pre-release

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 and input_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 via input_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 by INPUT_SDL2_ALLOW_EXTERNAL
  • Negative gamepad indices will now "fall through" getter functions and return 0.0 or false 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's guide and misc1 bindings are now available for use via the gp_guide and gp_misc1 constants. These will default to being inaccessible for consistency for GameMaker's native behaviour. See __input_config() for more information

3.1.0pre000

08 Jan 22:33
Compare
Choose a tag to compare
3.1.0pre000 Pre-release
Pre-release

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() and input_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 the INPUT_DOUBLE_DELAY macro, the time units of which are controlled by INPUT_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 to true)
  • 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 with INPUT_SDL2_ALLOW_EXTERNAL. You must allow access outside the sandbox for this feature to work (as a result this feature defaults to false)
  • 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() and input_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

26 Oct 23:26
Compare
Choose a tag to compare
3.0.0pre004 Pre-release
Pre-release

#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.