summaryrefslogtreecommitdiffstats
path: root/src/control
diff options
context:
space:
mode:
authorNikolay Korolev <nickvnuk@gmail.com>2020-11-01 14:34:39 +0100
committerNikolay Korolev <nickvnuk@gmail.com>2020-11-01 14:34:39 +0100
commit45c09224f735f1fe88a6aadcc148413d0b81f72a (patch)
tree5253d1f0b4b575a276f155e5d3c0e27851da52ac /src/control
parentthe driver fix (diff)
downloadre3-45c09224f735f1fe88a6aadcc148413d0b81f72a.tar
re3-45c09224f735f1fe88a6aadcc148413d0b81f72a.tar.gz
re3-45c09224f735f1fe88a6aadcc148413d0b81f72a.tar.bz2
re3-45c09224f735f1fe88a6aadcc148413d0b81f72a.tar.lz
re3-45c09224f735f1fe88a6aadcc148413d0b81f72a.tar.xz
re3-45c09224f735f1fe88a6aadcc148413d0b81f72a.tar.zst
re3-45c09224f735f1fe88a6aadcc148413d0b81f72a.zip
Diffstat (limited to 'src/control')
-rw-r--r--src/control/Script.cpp30
1 files changed, 25 insertions, 5 deletions
diff --git a/src/control/Script.cpp b/src/control/Script.cpp
index 45e17491..f85fc076 100644
--- a/src/control/Script.cpp
+++ b/src/control/Script.cpp
@@ -5171,7 +5171,12 @@ int8 CRunningScript::ProcessCommands300To399(int32 command)
CollectParameters(&m_nIp, 1);
CPed* pPed = CWorld::Players[ScriptParams[0]].m_pPed;
float angle = pPed->bInVehicle ? pPed->m_pMyVehicle->GetForward().Heading() : pPed->GetForward().Heading();
- *(float*)&ScriptParams[0] = CGeneral::LimitAngle(RADTODEG(angle));
+ angle = RADTODEG(angle);
+ if (angle < 0.0f)
+ angle += 360.0f;
+ if (angle > 360.0f)
+ angle -= 360.0f;
+ *(float*)&ScriptParams[0] = angle;
StoreParameters(&m_nIp, 1);
return 0;
}
@@ -5192,7 +5197,12 @@ int8 CRunningScript::ProcessCommands300To399(int32 command)
CPed* pPed = CPools::GetPedPool()->GetAt(ScriptParams[0]);
script_assert(pPed);
float angle = pPed->bInVehicle ? pPed->m_pMyVehicle->GetForward().Heading() : pPed->GetForward().Heading();
- *(float*)&ScriptParams[0] = CGeneral::LimitAngle(RADTODEG(angle));
+ angle = RADTODEG(angle);
+ if (angle < 0.0f)
+ angle += 360.0f;
+ if (angle > 360.0f)
+ angle -= 360.0f;
+ *(float*)&ScriptParams[0] = angle;
StoreParameters(&m_nIp, 1);
return 0;
}
@@ -5213,7 +5223,12 @@ int8 CRunningScript::ProcessCommands300To399(int32 command)
CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(ScriptParams[0]);
script_assert(pVehicle);
float angle = pVehicle->GetForward().Heading();
- *(float*)&ScriptParams[0] = CGeneral::LimitAngle(RADTODEG(angle));
+ angle = RADTODEG(angle);
+ if (angle < 0.0f)
+ angle += 360.0f;
+ if (angle > 360.0f)
+ angle -= 360.0f;
+ *(float*)&ScriptParams[0] = angle;
StoreParameters(&m_nIp, 1);
return 0;
}
@@ -5231,7 +5246,12 @@ int8 CRunningScript::ProcessCommands300To399(int32 command)
CObject* pObject = CPools::GetObjectPool()->GetAt(ScriptParams[0]);
script_assert(pObject);
float angle = pObject->GetForward().Heading();
- *(float*)&ScriptParams[0] = CGeneral::LimitAngle(RADTODEG(angle));
+ angle = RADTODEG(angle);
+ if (angle < 0.0f)
+ angle += 360.0f;
+ if (angle > 360.0f)
+ angle -= 360.0f;
+ *(float*)&ScriptParams[0] = angle;
StoreParameters(&m_nIp, 1);
return 0;
}
@@ -13225,7 +13245,7 @@ int8 CRunningScript::ProcessCommands1300To1399(int32 command)
}
case COMMAND_CLEAR_CHAR_FOLLOW_PATH:
{
- CollectParameters(&m_nIp, 2);
+ CollectParameters(&m_nIp, 1);
CPed* pPed = CPools::GetPedPool()->GetAt(ScriptParams[0]);
script_assert(pPed);
if (pPed->GetPedState() == PED_FOLLOW_PATH) {