Skip to content

Releases: offalynne/Input

6.2.2 Beta

16 Jan 16:53
Compare
Choose a tag to compare
6.2.2 Beta Pre-release
Pre-release

Documentation

  • Adds input_players_using_source()
  • Fixes garbage output from gamepad mapping when disconnecting
  • Fixes cursor limit not following moving rooms
  • Fixes coordinate space translation and mouse locked delta in room space (thanks @Hmmmpf)
  • Fixes some misnamed and misbehaving virtual functions (thanks @arzulo)
  • Adds partial Backbone One gamepad support (thanks @tabularelf)
  • Adds single axis hpad and vpad virtual controls (thanks @arzulo)
  • Fixes a Steam gamepad related crash
  • Fixes missing axis delta support in certain cases
  • Fixes pre-calibration output from gamepad axis and dpad on Android
  • Updates SDL database

 

This is the first release since @JujuAdams has passed reigns of the repository to GameMaker Kitchen. We would like to thank Juju for his tireless effort in fostering a community of contributors to open source libraries for the mutual benefit of creators using GameMaker.

6.2.1 Beta

05 Nov 18:03
Compare
Choose a tag to compare
6.2.1 Beta Pre-release
Pre-release

Documentation here

  • Adds convenience functions input_player_using_gamepad() input_player_using_keyboard() etc.
  • Fixes optional profile argument for input_binding_set_safe() and input_binding_swap() (thanks @ShaunJS!)
  • Adds .ignore() method to combo definitions
  • Fixes directional charge input for combos
  • Adds touchpad-type behaviour to virtual buttons via .touchpad()
  • Adds reference point options to virtual buttons via .reference_point()
  • Updates SDL database
  • Pre-emptive fixes for GameMaker's "New Runtime" (slated to arrive for public testing in 2024)

6.1.5

05 Nov 17:08
Compare
Choose a tag to compare
  • Fixes crash when calling input_chord_create() (thanks @arzulo!)

6.1.4

05 Nov 13:28
Compare
Choose a tag to compare
  • Potential fix for a crash when using the native GM debug overlay when running in YYC on 2023.8
  • Adds INPUT_DEFAULT_DEBUG_OVERLAY_BLOCKS_INPUT

6.1.3

03 Nov 00:00
Compare
Choose a tag to compare
  • Gamepad disconnection logic has been adjusted to smooth over temporary (5 frames) hardware disconnections
  • Hotswap events are now logged to help diagnose thrashing / faulty hardware
  • Various fixes for XInput trigger range workarounds
  • Virtual buttons no longer have an automatic 1 frame delay on them (thanks @arzulo!)
  • Adds workaround for SystemGestureGate timeouts on iOS causing mouse holds to retrigger after 22 frames
  • "Back" button (software + hardware) now ignored on Android
  • Relaxes rules on touch profiles. You can now use touch input without configuring a special profile or verbs
  • Input's native debug view now includes the option to block input to the rest of the game
  • Updates SDL2 database
  • Pre-emptively fixes compatibility with GameMaker's "new runtime"

6.2.0

11 Oct 12:10
Compare
Choose a tag to compare
6.2.0 Pre-release
Pre-release

Documentation here

  • Adds touchpad-type behaviour to virtual buttons via .touchpad()
  • Adds reference point options to virtual buttons via .reference_point()
  • Updates SDL database
  • Pre-emptive fixes for GameMaker's "New Runtime" (slated to arrive for public testing in 2024)

6.1.2

28 Sep 14:10
Compare
Choose a tag to compare

Documentation for this release can be found here.

  • Glorious return of the combo system
  • input_verb_consume() can now target all players by using the all keyword
  • Input is now blocked when GameMaker's native debug overlay is open
  • Adds gamepad tester to GameMaker's native debug overlay
  • Binding scanner now respect ignore/allow lists when waiting for initial "no input" stage, leading to more reliable binding scanning when using defective or semi-defective devices
  • Fixes some issues with cursor coordinate space calculations (thank you @Hmmmpf!)
  • Fixes edge case incompatibility when reading %SDL_GAMECONTROLLERCONFIG%
  • Fixes game_restart() thrashing
  • Fixes some thumbstick accuracy problems
  • Fixes digital trigger handling on platforms that can never have analogue triggers
  • Adds support for a few more gamepads
  • Adds input_icon_touch() to handle virtual button bindings for input_verb_get_icon() etc.
  • Adds INPUT_SDL2_ALLOW_NONGAMEPAD_JOYSTICKS
  • Adds input_max_value()

6.1.0 Beta

02 Sep 14:26
Compare
Choose a tag to compare
6.1.0 Beta Pre-release
Pre-release

Documentation for this beta release can be found here.

  • Adds combo system
  • input_verb_consume() can now target all players by using the all keyword
  • Input is now blocked when GameMaker's native debug overlay is open
  • Adds gamepad tester to GameMaker's native debug overlay
  • Binding scanner now respect ignore/allow lists when waiting for initial "no input" stage, leading to more reliable binding scanning when using defective or semi-defective devices
  • Adds input_icon_touch() to handle virtual button bindings for input_verb_get_icon() etc.

6.0.5

17 Aug 16:48
Compare
Choose a tag to compare
  • Feather is now disabled for every Input script
  • Fixes Steam Deck power button sticking
  • Now preventing key scanning from returning "any" on out of range values
  • Hotswapping is now triggered on button press to help filter out malfunctioning devices
  • Couple bug fixes for virtual buttons (thank you @colinator27)
  • Non-gamepad joysticks are now filtered out

6.0.4

08 Jul 10:14
Compare
Choose a tag to compare

New Features since v5

  • Input no longer clogs up global namespace
  • Hotswapping has been optimised to improve performance in the most common use case for Input
  • Improved device filtering on Android
  • Blacklisted gamepads will no longer report as connected
  • The layout of folders in the asset browser has been reworked to make it easier to find functions
  • input_tick() is dead. Long live input_controller_object
  • Adds input_verb_get_icon() as an easier alternative to input_binding_get_icon()
  • Loading the SDL2 database is now a lot faster when using newer versions of GameMaker (LTS will use the slower legacy code)
  • If we cannot find a gamepad in the SDL2 database then we now use the original description rather than "Unknown"
  • Adds a suite of new config macros in __input_config_general() to handle Input's behaviour with different sources across all target platforms
  • Adds input_player_gamepad_type_override_set() (and getter) to force gamepad appearance
  • input_ghost_set() now accepts the keyword all to set the state of all players
  • input_player_connected() and input_player_connected() now have an optional includeGhost argument
  • Input now ships with multiple gamepad type macros for easier referencing, such as INPUT_GAMEPAD_TYPE_XBOX_ONE and INPUT_GAMEPAD_TYPE_JOYCON_LEFT
  • input_source_add(), input_source_set(), and input_source_share() now have an optional exclusive argument to control whether sources are unassigned when calling these functions (this defaults to true to maintain legacy behaviour)
  • Adds input_cursor_limit_boundary() and expands input_cursor_limit_get() to include data for this limit type
  • Adds input_hotswap_params_set() (and getter)
  • input_multiplayer_params_set() and getter have been expanded
  • input_binding_scan_params_set() and getter have been expanded
  • INPUT_DEFAULT_2D_MOST_RECENT and INPUT_DEFAULT_OPPOSING_MOST_RECENT have been added to control the default behaviour of 2D checker and opposing checkers respectively
  • The binding scan error code INPUT_BINDING_SCAN_EVENT.SOURCE_FILTER_EMPTY has been added
  • When scanning for a binding with a source filter enabled, hotswapping is disabled
  • Adds input_binding_scan_time_remaining() to return the amount of time left when scanning for a new binding
  • Adds input_verb_group_get_verbs() and input_verbs_groups_get()
  • Adds an additional supported value for INPUT_FALLBACK_PROFILE_BEHAVIOR that prioritises gamepad icons if a gamepad is connected (or required, in the case of consoles)
  • Adds input_gamepad_map_contains()
  • Adds input_gamepad_is_any_connected()
  • Adds input_led_pattern_get()
  • Adds input_keyboard_virtual_show() and input_keyboard_virtual_hide() for use on platforms that support it
  • Adds INPUT_POINTER_TYPE macro that contains the type of pointer available on the current hardware
  • Adds input_cursor_mouse_enabled_set() (and getter) to control whether the mouse moves the internal cursor
  • Adds input_mouse_enabled_set() (and getter) to control whether the mouse moves the internal cursor
  • Adds input_cursor_dx() and input_cursor_dy()
  • Adds input_cursor_inverted_set() (and getter)
  • Adds INPUT_WINDOWS_TOUCH, INPUT_SWITCH_TOUCH config macros for finer control over touch behavior per platform
  • Adds INPUT_ON_MOBILE INPUT_ON_PC INPUT_ON_STEAM_DECK INPUT_ON_CONSOLE INPUT_ON_WEB as read-only constants
  • Adds input_player_active_get() and input_player_active_set() to completely disable player input should you so wish (though you should continue to use "ghost mode" for networked players and AI)
  • Better support for use of game_restart() (not that you should be using this highly cursed function)
  • Adds a secret macro to reduce debug spam from Input shhhh ask if you want to know where it is

 

Breaking Changes since v5

  • input_direction() now takes a default direction as the first argument, returned when a thumbstick is in a neutral position
  • input_consume() has been renamed to input_verb_consume()
  • Setting a binding now consumes every verb to fix edge cases
  • input_cursor_elastic_set() now defaults to moving the cursor at the same time as moving the elastic point
  • input_xy_quick_pressed() has been renamed to input_check_quick_pressed_2d()
  • input_multiplayer_*() functions have been renamed to input_join_*() to match the name of the source mode
  • INPUT_DEFAULT_PROFILES has been replaced by __input_config_verbs()
  • INPUT_VERB_GROUPS has been replaced by __input_config_verb_groups()
  • INPUT_HOTSWAP_CALLBACK has been replaced by input_hotswap_params_set()
  • INPUT_MULTIPLAYER_LEAVE_VERB and INPUT_MULTIPLAYER_ABORT_CALLBACK have been replaced by extra arguments in input_join_params_set()
  • input_icons() has been removed and replaced with input_icon_empty() input_icon_not_a_binding() input_icons_gamepad() and input_icons_keyboard_and_mouse()
  • INPUT_VIBRATION_SWITCH_OS_STRENGTH has been renamed to INPUT_VIBRATION_JOYCON_STRENGTH and will now only affect Joy-Cons (and will work cross-platform too)
  • input_gyro_enabled_set(), input_gyro_enabled_get(), and input_gyro_params_set() have been renamed to input_cursor_gyro… to better indicate their usage
  • INPUT_TOUCH_POINTER_ALLOWED has been removed, you may now use the macros in __input_config_general() to configure touch and mouse behavior per-platform
  • input_swap_gamepad_ab() has been removed and replaced with INPUT_SWITCH_SWAP_AB (for use cross-platform for Nintendo-style gamepads) and INPUT_PS_REGION_SWAP_CONFIRM (which only applies to the PS4 export target specifically)
  • Many macros from __input_config_touch() and __input_config_vibration() have been moved to __input_config_general()
  • input_gamepad_get_type() and input_player_get_gamepad_type() can now return INPUT_GAMEPAD_TYPE_UNKNOWN

 

Removed Features since v5

  • The combo system has been removed
  • The deprecated enum value INPUT_COORD_SPACE.DISPLAY has now been fully removed (use INPUT_COORD_SPACE.DEVICE instead)
  • input_cursor_previous_x() and input_cursor_previous_y() have been removed (conceptually replaced by input_cursor_dx() and input_cursor_dy())