From f78f70793580d7ff63fc93f9e6e8a0aae37eb5f9 Mon Sep 17 00:00:00 2001 From: Nikolay Korolev Date: Sat, 13 Jun 2020 02:02:59 +0300 Subject: script fix --- src/control/Script.cpp | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) (limited to 'src/control') diff --git a/src/control/Script.cpp b/src/control/Script.cpp index d25fb173..ec2dea87 100644 --- a/src/control/Script.cpp +++ b/src/control/Script.cpp @@ -3825,7 +3825,6 @@ int8 CRunningScript::ProcessCommands400To499(int32 command) { CollectParameters(&m_nIp, 1); CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(ScriptParams[0]); - assert(pVehicle); CTheScripts::UpsideDownCars.RemoveCarFromCheck(ScriptParams[0]); return 0; } @@ -5524,8 +5523,13 @@ int8 CRunningScript::ProcessCommands600To699(int32 command) CollectParameters(&m_nIp, 2); CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(ScriptParams[0]); assert(pVehicle); - assert(pVehicle->m_vehType == VEHICLE_TYPE_CAR); - ((CAutomobile*)pVehicle)->bFixedColour = (ScriptParams[1] == 0); + //assert(pVehicle->m_vehType == VEHICLE_TYPE_CAR); + // they DO call this for bikes, we don't really want to destroy the structure... +#ifdef FIX_BUGS + if (pVehicle->m_vehType == VEHICLE_TYPE_CAR) +#endif + ((CAutomobile*)pVehicle)->bFixedColour = (ScriptParams[1] == 0); + return 0; } /* @@ -7926,7 +7930,7 @@ int8 CRunningScript::ProcessCommands900To999(int32 command) CollectParameters(&m_nIp, 4); CObject* pObject = CPools::GetObjectPool()->GetAt(ScriptParams[0]); assert(pObject); - pObject->SetMoveSpeed(pObject->GetMoveSpeed() + *(CVector*)&ScriptParams[1] / METERS_PER_SECOND_TO_GAME_SPEED); + pObject->AddToMoveSpeed(*(CVector*)&ScriptParams[1] * METERS_PER_SECOND_TO_GAME_SPEED); return 0; } case COMMAND_DRAW_SPRITE: @@ -9062,7 +9066,7 @@ int8 CRunningScript::ProcessCommands1000To1099(int32 command) { CollectParameters(&m_nIp, 1); debug("CLEAR_MISSION_AUDIO not implemented\n"); - //DMAudio.ClearMissionAudio(); + //DMAudio.ClearMissionAudio(ScriptParams[0]); return 0; } /* @@ -10372,6 +10376,7 @@ int8 CRunningScript::ProcessCommands1100To1199(int32 command) bIsBurst = pCar->Damage.GetWheelStatus(ScriptParams[1] == WHEEL_STATUS_BURST); } UpdateCompareFlag(bIsBurst); + return 0; } //case COMMAND_SET_CAR_DRIVE_STRAIGHT_AHEAD: //case COMMAND_SET_CAR_WAIT: @@ -11447,6 +11452,7 @@ int8 CRunningScript::ProcessCommands1300To1399(int32 command) CPed* pPed = CWorld::Players[ScriptParams[0]].m_pPed; assert(pPed); pPed->bDoomAim = ScriptParams[1]; + return 0; } case COMMAND_FIRE_HUNTER_GUN: { @@ -11806,6 +11812,7 @@ int8 CRunningScript::ProcessCommands1300To1399(int32 command) CPed* pPed = CPools::GetPedPool()->GetAt(ScriptParams[0]); assert(pPed); UpdateCompareFlag(pPed->m_nWaitState == WAITSTATE_STUCK); + return 0; } case COMMAND_SET_ALL_TAXIS_HAVE_NITRO: { @@ -11827,6 +11834,7 @@ int8 CRunningScript::ProcessCommands1300To1399(int32 command) pPed->bStopAndShoot = false; } pPed->m_nLastPedState = PED_NONE; + return 0; } case COMMAND_FREEZE_CAR_POSITION_AND_DONT_LOAD_COLLISION: { -- cgit v1.2.3