mirror of
https://github.com/cemu-project/DS4Windows.git
synced 2025-02-18 08:56:20 +01:00
Corrected stick angles and stick dir unit values
This commit is contained in:
parent
a855e67b1a
commit
25b2adc8e5
@ -3125,49 +3125,49 @@ namespace DS4Windows
|
|||||||
case DS4Controls.LXNeg:
|
case DS4Controls.LXNeg:
|
||||||
{
|
{
|
||||||
double angle = cState.LSAngle;
|
double angle = cState.LSAngle;
|
||||||
result = cState.LX < 127 && (angle >= 210 && angle <= 330);
|
result = cState.LX < 127 && (angle >= 112.5 && angle <= 247.5);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case DS4Controls.LYNeg:
|
case DS4Controls.LYNeg:
|
||||||
{
|
{
|
||||||
double angle = cState.LSAngle;
|
double angle = cState.LSAngle;
|
||||||
result = cState.LY < 127 && (angle >= 300 || angle <= 60);
|
result = cState.LY < 127 && (angle >= 22.5 && angle <= 157.5);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case DS4Controls.RXNeg:
|
case DS4Controls.RXNeg:
|
||||||
{
|
{
|
||||||
double angle = cState.RSAngle;
|
double angle = cState.RSAngle;
|
||||||
result = cState.RX < 127 && (angle >= 210 && angle <= 330);
|
result = cState.RX < 127 && (angle >= 112.5 && angle <= 247.5);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case DS4Controls.RYNeg:
|
case DS4Controls.RYNeg:
|
||||||
{
|
{
|
||||||
double angle = cState.RSAngle;
|
double angle = cState.RSAngle;
|
||||||
result = cState.RY < 127 && (angle >= 300 || angle <= 60);
|
result = cState.RY < 127 && (angle >= 22.5 && angle <= 157.5);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case DS4Controls.LXPos:
|
case DS4Controls.LXPos:
|
||||||
{
|
{
|
||||||
double angle = cState.LSAngle;
|
double angle = cState.LSAngle;
|
||||||
result = cState.LX > 127 && (angle >= 30 && angle <= 150);
|
result = cState.LX > 127 && (angle <= 67.5 || angle >= 292.5);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case DS4Controls.LYPos:
|
case DS4Controls.LYPos:
|
||||||
{
|
{
|
||||||
double angle = cState.LSAngle;
|
double angle = cState.LSAngle;
|
||||||
result = cState.LY > 127 && (angle >= 120 && angle <= 240);
|
result = cState.LY > 127 && (angle >= 202.5 && angle <= 337.5);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case DS4Controls.RXPos:
|
case DS4Controls.RXPos:
|
||||||
{
|
{
|
||||||
double angle = cState.RSAngle;
|
double angle = cState.RSAngle;
|
||||||
result = cState.RX > 127 && (angle >= 30 && angle <= 150);
|
result = cState.RX > 127 && (angle <= 67.5 || angle >= 292.5);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case DS4Controls.RYPos:
|
case DS4Controls.RYPos:
|
||||||
{
|
{
|
||||||
double angle = cState.RSAngle;
|
double angle = cState.RSAngle;
|
||||||
result = cState.RY > 127 && (angle >= 120 && angle <= 240);
|
result = cState.RY > 127 && (angle >= 202.5 && angle <= 337.5);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
default: break;
|
default: break;
|
||||||
@ -3255,7 +3255,7 @@ namespace DS4Windows
|
|||||||
if (!analog)
|
if (!analog)
|
||||||
{
|
{
|
||||||
double angle = cState.LSAngle;
|
double angle = cState.LSAngle;
|
||||||
result = cState.LX < 127 && (angle >= 210 && angle <= 330);
|
result = cState.LX < 127 && (angle >= 112.5 && angle <= 247.5);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -3269,7 +3269,7 @@ namespace DS4Windows
|
|||||||
if (!analog)
|
if (!analog)
|
||||||
{
|
{
|
||||||
double angle = cState.LSAngle;
|
double angle = cState.LSAngle;
|
||||||
result = cState.LY < 127 && (angle >= 300 || angle <= 60);
|
result = cState.LY < 127 && (angle >= 22.5 && angle <= 157.5);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -3283,7 +3283,7 @@ namespace DS4Windows
|
|||||||
if (!analog)
|
if (!analog)
|
||||||
{
|
{
|
||||||
double angle = cState.RSAngle;
|
double angle = cState.RSAngle;
|
||||||
result = cState.RX < 127 && (angle >= 210 && angle <= 330);
|
result = cState.RX < 127 && (angle >= 112.5 && angle <= 247.5);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -3297,7 +3297,7 @@ namespace DS4Windows
|
|||||||
if (!analog)
|
if (!analog)
|
||||||
{
|
{
|
||||||
double angle = cState.RSAngle;
|
double angle = cState.RSAngle;
|
||||||
result = cState.RY < 127 && (angle >= 300 || angle <= 60);
|
result = cState.RY < 127 && (angle >= 22.5 && angle <= 157.5);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -3311,7 +3311,7 @@ namespace DS4Windows
|
|||||||
if (!analog)
|
if (!analog)
|
||||||
{
|
{
|
||||||
double angle = cState.LSAngle;
|
double angle = cState.LSAngle;
|
||||||
result = cState.LX > 127 && (angle >= 30 && angle <= 150);
|
result = cState.LX > 127 && (angle <= 67.5 || angle >= 292.5);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -3325,7 +3325,7 @@ namespace DS4Windows
|
|||||||
if (!analog)
|
if (!analog)
|
||||||
{
|
{
|
||||||
double angle = cState.LSAngle;
|
double angle = cState.LSAngle;
|
||||||
result = cState.LY > 127 && (angle >= 120 && angle <= 240);
|
result = cState.LY > 127 && (angle >= 202.5 && angle <= 337.5);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -3339,7 +3339,7 @@ namespace DS4Windows
|
|||||||
if (!analog)
|
if (!analog)
|
||||||
{
|
{
|
||||||
double angle = cState.RSAngle;
|
double angle = cState.RSAngle;
|
||||||
result = cState.RX > 127 && (angle >= 30 && angle <= 150);
|
result = cState.RX > 127 && (angle <= 67.5 || angle >= 292.5);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -3353,7 +3353,7 @@ namespace DS4Windows
|
|||||||
if (!analog)
|
if (!analog)
|
||||||
{
|
{
|
||||||
double angle = cState.RSAngle;
|
double angle = cState.RSAngle;
|
||||||
result = cState.RY > 127 && (angle >= 120 && angle <= 240);
|
result = cState.RY > 127 && (angle >= 202.5 && angle <= 337.5);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -154,14 +154,14 @@ namespace DS4Windows
|
|||||||
|
|
||||||
public void calculateStickAngles()
|
public void calculateStickAngles()
|
||||||
{
|
{
|
||||||
double lsangle = Math.Atan2((LX - 127), -(LY - 127));
|
double lsangle = Math.Atan2(-(LY - 127), (LX - 127));
|
||||||
LSAngleRad = lsangle;
|
LSAngleRad = lsangle;
|
||||||
lsangle = (lsangle >= 0 ? lsangle : (2 * Math.PI + lsangle)) * 180 / Math.PI;
|
lsangle = (lsangle >= 0 ? lsangle : (2 * Math.PI + lsangle)) * 180 / Math.PI;
|
||||||
LSAngle = lsangle;
|
LSAngle = lsangle;
|
||||||
LXUnit = Math.Abs(Math.Cos(LSAngleRad));
|
LXUnit = Math.Abs(Math.Cos(LSAngleRad));
|
||||||
LYUnit = Math.Abs(Math.Sin(LSAngleRad));
|
LYUnit = Math.Abs(Math.Sin(LSAngleRad));
|
||||||
|
|
||||||
double rsangle = Math.Atan2((RX - 127), -(RY - 127));
|
double rsangle = Math.Atan2(-(RY - 127), (RX - 127));
|
||||||
RSAngleRad = rsangle;
|
RSAngleRad = rsangle;
|
||||||
rsangle = (rsangle >= 0 ? rsangle : (2 * Math.PI + rsangle)) * 180 / Math.PI;
|
rsangle = (rsangle >= 0 ? rsangle : (2 * Math.PI + rsangle)) * 180 / Math.PI;
|
||||||
RSAngle = rsangle;
|
RSAngle = rsangle;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user