summaryrefslogtreecommitdiffstats
path: root/src/control/Script.cpp
diff options
context:
space:
mode:
authorSergeanur <s.anureev@yandex.ua>2020-05-22 16:41:03 +0200
committerSergeanur <s.anureev@yandex.ua>2020-05-22 16:41:03 +0200
commitab161d12d8cf0326bf072777b7eeef31e8cd516c (patch)
treed9fb154d49338cab92e278fc34952386daa9e314 /src/control/Script.cpp
parentopus support (diff)
parentfixes for CPhysical and friends (diff)
downloadre3-ab161d12d8cf0326bf072777b7eeef31e8cd516c.tar
re3-ab161d12d8cf0326bf072777b7eeef31e8cd516c.tar.gz
re3-ab161d12d8cf0326bf072777b7eeef31e8cd516c.tar.bz2
re3-ab161d12d8cf0326bf072777b7eeef31e8cd516c.tar.lz
re3-ab161d12d8cf0326bf072777b7eeef31e8cd516c.tar.xz
re3-ab161d12d8cf0326bf072777b7eeef31e8cd516c.tar.zst
re3-ab161d12d8cf0326bf072777b7eeef31e8cd516c.zip
Diffstat (limited to 'src/control/Script.cpp')
-rw-r--r--src/control/Script.cpp14
1 files changed, 12 insertions, 2 deletions
diff --git a/src/control/Script.cpp b/src/control/Script.cpp
index 357436c6..68b396f3 100644
--- a/src/control/Script.cpp
+++ b/src/control/Script.cpp
@@ -759,6 +759,7 @@ int8 CRunningScript::ProcessCommands0To99(int32 command)
case COMMAND_WAIT:
CollectParameters(&m_nIp, 1);
m_nWakeTime = CTimer::GetTimeInMilliseconds() + ScriptParams[0];
+ m_bSkipWakeTime = false;
return 1;
case COMMAND_GOTO:
CollectParameters(&m_nIp, 1);
@@ -2997,9 +2998,9 @@ int8 CRunningScript::ProcessCommands300To399(int32 command)
pCarGen->SwitchOff();
}else if (ScriptParams[1] <= 100){
pCarGen->SwitchOn();
+ pCarGen->SetUsesRemaining(ScriptParams[1]);
}else{
pCarGen->SwitchOn();
- pCarGen->SetUsesRemaining(ScriptParams[1]);
}
return 0;
}
@@ -6862,7 +6863,11 @@ int8 CRunningScript::ProcessCommands800To899(int32 command)
float heading = LimitAngleOnCircle(
RADTODEG(Atan2(-pObject->GetForward().x, pObject->GetForward().y)));
float headingTarget = *(float*)&ScriptParams[1];
+#ifdef FIX_BUGS
+ float rotateBy = *(float*)&ScriptParams[2] * CTimer::GetTimeStepFix();
+#else
float rotateBy = *(float*)&ScriptParams[2];
+#endif
if (headingTarget == heading) { // using direct comparasion here is fine
UpdateCompareFlag(true);
return 0;
@@ -6911,7 +6916,11 @@ int8 CRunningScript::ProcessCommands800To899(int32 command)
assert(pObject);
CVector pos = pObject->GetPosition();
CVector posTarget = *(CVector*)&ScriptParams[1];
+#ifdef FIX_BUGS
+ CVector slideBy = *(CVector*)&ScriptParams[4] * CTimer::GetTimeStepFix();
+#else
CVector slideBy = *(CVector*)&ScriptParams[4];
+#endif
if (posTarget == pos) { // using direct comparasion here is fine
UpdateCompareFlag(true);
return 0;
@@ -8213,7 +8222,7 @@ int8 CRunningScript::ProcessCommands900To999(int32 command)
car->SetHeading(DEGTORAD(*(float*)&ScriptParams[3]));
CTheScripts::ClearSpaceForMissionEntity(pos, car);
car->SetStatus(STATUS_ABANDONED);
- car->bIsLocked = true;
+ car->bIsLocked = false;
car->bIsCarParkVehicle = true;
CCarCtrl::JoinCarWithRoadSystem(car);
car->AutoPilot.m_nCarMission = MISSION_NONE;
@@ -8687,6 +8696,7 @@ int8 CRunningScript::ProcessCommands1000To1099(int32 command)
CTimer::Resume();
pMissionScript->m_bIsMissionScript = true;
pMissionScript->m_bMissionFlag = true;
+ CTheScripts::bAlreadyRunningAMissionScript = true;
return 0;
}
case COMMAND_SET_OBJECT_DRAW_LAST: