mirror of
https://github.com/DrBeef/RTCWQuest.git
synced 2025-03-03 23:51:20 +00:00
fix: cleaned up backpack detection code
This commit is contained in:
parent
d1bfb6e9a2
commit
dc4eea6895
1 changed files with 5 additions and 5 deletions
|
@ -300,18 +300,18 @@ void HandleInput_Default( ovrInputStateGamepad *pFootTrackingNew, ovrInputStateG
|
||||||
if (bpTrackOk && (bpDistToHMDOk = distanceToHMD >= 0.2 && distanceToHMD <= 0.35) // 2) Weapon-to-HMD distance must be within <0.2-0.35> range
|
if (bpTrackOk && (bpDistToHMDOk = distanceToHMD >= 0.2 && distanceToHMD <= 0.35) // 2) Weapon-to-HMD distance must be within <0.2-0.35> range
|
||||||
&& (bpWeaponHeightOk = vr.current_weaponoffset[1] >= -0.10 && vr.current_weaponoffset[1] <= 0.10)) // 3) Weapon height in relation to HMD must be within <-0.10, 0.10> range
|
&& (bpWeaponHeightOk = vr.current_weaponoffset[1] >= -0.10 && vr.current_weaponoffset[1] <= 0.10)) // 3) Weapon height in relation to HMD must be within <-0.10, 0.10> range
|
||||||
{
|
{
|
||||||
AngleVectors(&vr.hmdorientation, &hmdForwardXY, NULL, NULL);
|
AngleVectors(vr.hmdorientation, hmdForwardXY, NULL, NULL);
|
||||||
AngleVectors(&vr.weaponangles, &weaponForwardXY, NULL, NULL);
|
AngleVectors(vr.weaponangles, weaponForwardXY, NULL, NULL);
|
||||||
|
|
||||||
float weaponToDownAngle = AngleBetweenVectors(downVector, weaponForwardXY);
|
float weaponToDownAngle = AngleBetweenVectors(downVector, weaponForwardXY);
|
||||||
// 4) Angle between weapon forward vector and a down vector must be within 80-140 degrees
|
// 4) Angle between weapon forward vector and a down vector must be within 80-140 degrees
|
||||||
if(bpWeaponAngleOk = weaponToDownAngle >= 80.0 && weaponToDownAngle <= 140.0)
|
if(bpWeaponAngleOk = weaponToDownAngle >= 80.0 && weaponToDownAngle <= 140.0)
|
||||||
{
|
{
|
||||||
hmdForwardXY[2] = 0;
|
hmdForwardXY[2] = 0;
|
||||||
VectorNormalize(&hmdForwardXY);
|
VectorNormalize(hmdForwardXY);
|
||||||
|
|
||||||
weaponForwardXY[2] = 0;
|
weaponForwardXY[2] = 0;
|
||||||
VectorNormalize(&weaponForwardXY);
|
VectorNormalize(weaponForwardXY);
|
||||||
|
|
||||||
hmdToWeaponDotProduct = DotProduct(hmdForwardXY, weaponForwardXY);
|
hmdToWeaponDotProduct = DotProduct(hmdForwardXY, weaponForwardXY);
|
||||||
// 5) HMD and weapon forward on XY plane must go in opposite directions (i.e. dot product < 0)
|
// 5) HMD and weapon forward on XY plane must go in opposite directions (i.e. dot product < 0)
|
||||||
|
@ -749,4 +749,4 @@ void HandleInput_Default( ovrInputStateGamepad *pFootTrackingNew, ovrInputStateG
|
||||||
//Save state
|
//Save state
|
||||||
rightTrackedRemoteState_old = rightTrackedRemoteState_new;
|
rightTrackedRemoteState_old = rightTrackedRemoteState_new;
|
||||||
leftTrackedRemoteState_old = leftTrackedRemoteState_new;
|
leftTrackedRemoteState_old = leftTrackedRemoteState_new;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue