MCPcopy Create free account
hub / github.com/DavidColson/Polybox / UpdateInputs

Function UpdateInputs

source/input.cpp:647–686  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

645// ***********************************************************************
646
647void UpdateInputs(f32 deltaTime, Vec2f targetRes, Vec2f realWindowRes) {
648 pInputState->targetResolution = targetRes;
649 pInputState->windowResolution = realWindowRes;
650
651 // TODO: This should be configurable
652 f32 gravity = 10.0f;
653 f32 sensitivity = 10.0f;
654 f32 deadzone = 0.09f;
655
656 for (u64 axisIndex = 0; axisIndex < (u64)ControllerAxis::Count; axisIndex++) {
657 ControllerAxis axisEnum = (ControllerAxis)axisIndex;
658 Axis& axis = pInputState->axes[axisIndex];
659
660 if (axis.isMouseDriver)
661 continue;
662
663 if (axis.ignoreVirtual) {
664 if (fabs(axis.axisValue) <= deadzone)
665 axis.axisValue = 0.0f;
666 continue;
667 }
668
669 if (axis.positiveInput) {
670 axis.axisValue += sensitivity * deltaTime;
671 }
672 if (axis.negativeInput) {
673 axis.axisValue -= sensitivity * deltaTime;
674 }
675 if (!axis.negativeInput && !axis.positiveInput) {
676 axis.axisValue += (0 - axis.axisValue) * gravity * deltaTime;
677 if (fabs(axis.axisValue) <= deadzone)
678 axis.axisValue = 0.0f;
679 }
680
681 if (axisEnum == ControllerAxis::TriggerLeft || axisEnum == ControllerAxis::TriggerRight) // Triggers are special
682 axis.axisValue = clamp(axis.axisValue, 0.f, 1.f);
683 else
684 axis.axisValue = clamp(axis.axisValue, -1.f, 1.f);
685 }
686}
687
688// ***********************************************************************
689

Callers 1

mainFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected