more fixes; started CAutomobile::ProcessControl

This commit is contained in:
aap
2019-07-16 19:48:50 +02:00
parent 03fc85bfe0
commit 36f3a517f9
9 changed files with 350 additions and 79 deletions

View File

@ -56,14 +56,14 @@ CVehicle::CVehicle(uint8 CreatedBy)
for(i = 0; i < m_nNumMaxPassengers; i++)
pPassengers[i] = nil;
m_nBombTimer = 0;
m_pWhoSetMeOnFire = nil;
m_pBlowUpEntity = nil;
field_1FB = 0;
bComedyControls = false;
m_veh_flagB40 = false;
m_veh_flagB80 = false;
m_veh_flagC1 = false;
bIsDamaged = false;
m_veh_flagC8 = false;
bFadeOut = false;
m_veh_flagC10 = false;
bHasBeenOwnedByPlayer = false;
m_veh_flagC20 = false;
@ -96,11 +96,11 @@ CVehicle::CVehicle(uint8 CreatedBy)
m_comedyControlState = 0;
m_aCollPolys[0].valid = false;
m_aCollPolys[1].valid = false;
m_autoPilot.m_nCarMission = MISSION_NONE;
m_autoPilot.m_nAnimationId = TEMPACT_NONE;
m_autoPilot.m_nTimeToStartMission = CTimer::GetTimeInMilliseconds();
m_autoPilot.m_flag4 = false;
m_autoPilot.m_flag10 = false;
AutoPilot.m_nCarMission = MISSION_NONE;
AutoPilot.m_nAnimationId = TEMPACT_NONE;
AutoPilot.m_nTimeToStartMission = CTimer::GetTimeInMilliseconds();
AutoPilot.m_flag4 = false;
AutoPilot.m_flag10 = false;
}
CVehicle::~CVehicle()
@ -374,20 +374,18 @@ CVehicle::ProcessDelayedExplosion(void)
if(m_nBombTimer == 0)
return;
if(m_nBombTimer == 0){
int tick = CTimer::GetTimeStep()/60.0f*1000.0f;
if(tick > m_nBombTimer)
m_nBombTimer = 0;
else
m_nBombTimer -= tick;
int tick = CTimer::GetTimeStep()/60.0f*1000.0f;
if(tick > m_nBombTimer)
m_nBombTimer = 0;
else
m_nBombTimer -= tick;
if(IsCar() && ((CAutomobile*)this)->m_auto_flagA7 == 4 && (m_nBombTimer & 0xFE00) != 0xFE00)
DMAudio.PlayOneShot(m_audioEntityId, SOUND_CAR_BOMB_TICK, 0.0f);
if(IsCar() && ((CAutomobile*)this)->m_bombType == 4 && (m_nBombTimer & 0xFE00) != 0xFE00)
DMAudio.PlayOneShot(m_audioEntityId, SOUND_CAR_BOMB_TICK, 0.0f);
if(FindPlayerVehicle() != this && m_pWhoSetMeOnFire == FindPlayerPed())
CWorld::Players[CWorld::PlayerInFocus].AwardMoneyForExplosion(this);
BlowUpCar(m_pWhoSetMeOnFire);
}
if(FindPlayerVehicle() != this && m_pBlowUpEntity == FindPlayerPed())
CWorld::Players[CWorld::PlayerInFocus].AwardMoneyForExplosion(this);
BlowUpCar(m_pBlowUpEntity);
}
bool