OIS input system (#556)

* Work

* Add ois.lib

* Add OIS headers/libs to project

* Fix small mistakes

* Update input.cpp

* Update input.cpp

* Update input.cpp

* Remove unnecessary event handlers as we are using direct polling

* Fix numpad controls not polling

* Enclose all input code under namespace, provide debug OIS lib variation

* Fix incorrect inventory call binding, add pause to control dialog

* Deselect by pushing inventory button as well, fix crossbow ammo string draw

* Demagic NUM_CONTROLS

* Verbose input init logging

* Calibrate and properly register movement analog axis input

* Fix crash when empty string is being displayed

* Initialize vibration interface, if it exists

* Register keyboard directional input as analog axis input as well

* Fix statistics exiting

* Fix weird UpdateInput call

* Copy current layout to configuration

* Fix issues with saving controls

* Register axis values for POVs too

* Register several POV directions at once

* Increase deadzone a bit

* Simplify enums

* Update input.cpp

* Move includes out of input.h

* Bump deadzone even further as it seems xbox controllers have massive axis errors

* Prevent event spamming in case OIS polling failed

* Destroy input system on exit, cosmetic changes

* Take deadzone into account when normalizing axis values

* Update TombEngine.vcxproj

* Resolve small precision loss in axis normalizing

* Clean up unused control constants and enums

* Update input.h

* Demagic InputActions enum

* Render pause menu header

* Introduce helper functions to modulate Lara turn rates and begin replacements

* Make turn directions explicit

* Conduct remaining replacements of turn rate modulations

* Update lara_helpers.cpp

* Add smoothstep function to math library

* Use scaled axis value for true analog input

* Update input.cpp

* Add Joey's camera rotation from old branch

* Fix camera not going back to previous position when stick is released

* Simplify ModulateLaraTurnRate()

* Widen look angle

* Avoid collisions with actions bound to non-directional axis

* Small tidying

* Remove unused header

* Remove copypasted code

* Mask flare animation

* Rename 5th and 6th axis to LT/RT

* Prototype force feedback support

* Add directional rumble support (probably XInput-only)

* Shake controller on startup if supports vibration

* Update OIS libs to support XInput FF

* Simplify ModulateLaraTurnRate()

* Update player modulation functions; simplify turning, leaning, and flexing in state functions; lara.h cleanup

* Update Win32ForceFeedback.h

* Fix crawl flex function

* Revert "Update Win32ForceFeedback.h"

This reverts commit aa7099ed5b.

* Update OIS libs

* Add options for thumbstick camera and vibration

* Make use of autotarget option

* Display NON-SCREAMING names in controls, add hack to cancel axis value on both right+left input events

* Remove useless control hacks for simultaneous directional input

* Delete ten_itemdata_generated.h

* Add scroll lock to bindable controls

* Update input.cpp

* Update input.cpp

* Make input device namings consistent

* Bring back IN_SELECT override

* Fix crashing on startup and some other bugs

* Add rumble to some in-game events

* Add some more vibration events, stop them when going to menus

* Some changes to rumble power

* Add rumble for rocket/grenade launchers and explosive damage

* Add rumble for screen shake effect

* Fix 2 mistakes in inventory strings

* Rumble for camera more precisely

* Fix debounce in binocular mode

* Update camera.cpp

* Add HK lasersight rumble

* Simplify ModulateLaraLean()

* Update input.cpp

* Fix crawl flex modulation(?)

* Add slight rumble to harpoon and crossbow fire

* Remove the confusing counteracting turn rate reset in favour of something simpler

* Simplify turn rate reset input checks; leanup

* Clamp turn rate axis coeff when airborne

* Remove empty line

* Simplify a function

* Cleanup

* Fix rumble being constant

* Use shorter rumble time for shooting guns

* Fix single arm shooting

* Fix leaning left with joystick; clamp crawl flex max; tweak walk lean max; cleanup

* Don't do too long splat and jump smash vibrations

* Cancel turn rate when exiting water, grabbing ledge, or doing a splat

* Rename function

* Move ModulateLaraTurnRateY() callsin crawl and crouch turn states

* Reset turn rate when performing crawl vault

* Convert all health decrease events to DoDamage calls

* Remove SpasmEffectCount and unify touching with DoDamage

* Give specific time delay before sprint jump is possible

* Don't rumble on zero damage

* Reorder input pipeline to prevent left+right collisions

* Rename shady global

* Rumble when breaking neck in swandive

* Update lara_jump.cpp

* Don't vibrate on soft splat

* Fix combine item text alignment

* Vibrate in settings only if setting was changed

* Pulse gamepad on critical health condition

* Don't get out of water into objects

* Add critical air constant

Co-authored-by: Sezz
This commit is contained in:
Lwmte 2022-06-25 16:53:58 +03:00 committed by GitHub
parent eb55180b05
commit 12663c7ce2
226 changed files with 5974 additions and 3333 deletions

View file

@ -19,6 +19,16 @@ local strings = {
"",
""
},
auto_target = {
"Automatic targeting",
"",
"",
"",
"",
"",
"",
""
},
back = {
"Back",
"",
@ -259,6 +269,16 @@ local strings = {
"",
""
},
controls_pause = {
"Pause",
"",
"",
"",
"",
"",
"",
""
},
controls_use_flare = {
"Use Flare",
"",
@ -399,16 +419,6 @@ local strings = {
"",
""
},
sounds = {
"Audio settings",
"",
"",
"",
"",
"",
"",
""
},
enable_sound = {
"Enable Sounds",
"",
@ -669,6 +679,26 @@ local strings = {
"",
""
},
options = {
"Options",
"",
"",
"",
"",
"",
"",
""
},
other_settings = {
"Sound and Gameplay",
"",
"",
"",
"",
"",
"",
""
},
output_settings = {
"Output Settings",
"",
@ -719,6 +749,16 @@ local strings = {
"",
""
},
reverb = {
"Reverb",
"",
"",
"",
"",
"",
"",
""
},
revolver = {
"Revolver",
"",
@ -769,6 +809,16 @@ local strings = {
"",
""
},
rumble = {
"Vibration",
"",
"",
"",
"",
"",
"",
""
},
save_game = {
"Save game",
"",
@ -889,18 +939,8 @@ local strings = {
"",
""
},
options = {
"Options",
"",
"",
"",
"",
"",
"",
""
},
sound = {
"Sound settings",
"Sound",
"",
"",
"",
@ -909,17 +949,7 @@ local strings = {
"",
""
},
special_sound_fx = {
"Special Sound FX",
"",
"",
"",
"",
"",
"",
""
},
SILENCER_ITEM = {
silencer = {
"Silencer",
"",
"",
@ -939,6 +969,16 @@ SILENCER_ITEM = {
"",
""
},
thumbstick_camera = {
"Thumbstick camera",
"",
"",
"",
"",
"",
"",
""
},
time_taken = {
"Time Taken",
"",