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: { diff --git a/src/core/config.h b/src/core/config.h index 104c78c9..e23b0a90 100644 --- a/src/core/config.h +++ b/src/core/config.h @@ -87,7 +87,7 @@ enum Config { NUMSKIDMARKS = 32, NUMONSCREENTIMERENTRIES = 1, - NUMRADARBLIPS = 32, + NUMRADARBLIPS = 75, NUMGENERALPICKUPS = 320, NUMSCRIPTEDPICKUPS = 16, NUMPICKUPS = NUMGENERALPICKUPS + NUMSCRIPTEDPICKUPS, diff --git a/src/peds/Ped.cpp b/src/peds/Ped.cpp index 785050c9..12b4ef8d 100644 --- a/src/peds/Ped.cpp +++ b/src/peds/Ped.cpp @@ -19167,10 +19167,11 @@ CPed::AttachPedToEntity(CEntity *ent, CVector offset, uint16 type, float rot, eW void CPed::DettachPedFromEntity(void) { + CEntity* pVehicleAttachedTo = m_attachedTo; m_attachedTo = nil; if (m_nPedState == PED_DIE) { - m_pCollidingEntity = m_attachedTo; - ApplyMoveForce(m_attachedTo->GetForward() * -4.0f); + m_pCollidingEntity = pVehicleAttachedTo; + ApplyMoveForce(pVehicleAttachedTo->GetForward() * -4.0f); bIsStanding = false; } else if (m_nPedState != PED_DEAD) { RestorePreviousState(); diff --git a/src/render/Fluff.cpp b/src/render/Fluff.cpp index 9770eb0a..f0f4b25d 100644 --- a/src/render/Fluff.cpp +++ b/src/render/Fluff.cpp @@ -185,7 +185,7 @@ void CMovingThings::Update() if (aMovingThings[i].m_nHidden == 0) aMovingThings[i].Update(); } - + /* I don't think these are done yet? for (i = 0; i < 11; ++i) { if (aScrollBars[i].IsVisible() || (CTimer::GetFrameCounter() + i) % 8 == 0) @@ -201,6 +201,7 @@ void CMovingThings::Update() if (aDigitalClocks[i].IsVisible() || (CTimer::GetFrameCounter() + i) % 8 == 0) aDigitalClocks[i].Update(); } + */ } void CMovingThings::Render()