mirror of
https://github.com/halpz/re3.git
synced 2025-07-03 19:40:48 +00:00
ice cream attractor + bike respray
This commit is contained in:
@ -405,6 +405,7 @@ CPed::CPed(uint32 pedType) : m_pedIK(this)
|
||||
|
||||
bReachedAttractorHeadingTarget = false;
|
||||
bTurnedAroundOnAttractor = false;
|
||||
bHasAlreadyUsedAttractor = false;
|
||||
bCarPassenger = false;
|
||||
bMiamiViceCop = false;
|
||||
bMoneyHasBeenGivenByScript = false;
|
||||
@ -8170,6 +8171,10 @@ CPed::Wait(void)
|
||||
animAssoc->blendDelta = -4.0f;
|
||||
animAssoc->flags |= ASSOC_DELETEFADEDOUT;
|
||||
}
|
||||
if (m_attractor && m_objective == OBJECTIVE_WAIT_ON_FOOT_AT_ICE_CREAM_VAN) {
|
||||
GetPedAttractorManager()->BroadcastDeparture(this, m_attractor);
|
||||
bBoughtIceCream = true;
|
||||
}
|
||||
ClearWaitState();
|
||||
}
|
||||
#ifdef VC_PED_PORTS
|
||||
@ -15111,6 +15116,38 @@ CPed::ProcessObjective(void)
|
||||
}
|
||||
}
|
||||
break;
|
||||
case OBJECTIVE_WAIT_ON_FOOT_AT_ICE_CREAM_VAN:
|
||||
{
|
||||
SetIdle();
|
||||
CVehicle* pIceCreamVan = GetPedAttractorManager()->GetIceCreamVanForEffect(m_attractor->GetEffect());
|
||||
if (m_attractor && m_nWaitState != WAITSTATE_PLAYANIM_CHAT && pIceCreamVan && pIceCreamVan->pDriver && pIceCreamVan->pDriver->IsPlayer()) {
|
||||
int time = 5000;
|
||||
SetWaitState(WAITSTATE_PLAYANIM_CHAT, &time);
|
||||
break;
|
||||
}
|
||||
if (!m_attractor)
|
||||
break;
|
||||
CVehicle* pVan = GetPedAttractorManager()->GetIceCreamVanForEffect(m_attractor->GetEffect());
|
||||
if (!pVan)
|
||||
break;
|
||||
if (0.01f * CTimer::GetTimeStep() * 5.0f < pVan->m_fDistanceTravelled) {
|
||||
GetPedAttractorManager()->DeRegisterPed(this, m_attractor);
|
||||
break;
|
||||
}
|
||||
if (!pVan->pDriver || !pVan->pDriver->IsPlayer() || pVan->pDriver->GetPedState() == PED_ARRESTED || pVan->pDriver->GetPedState() == PED_DEAD) {
|
||||
GetPedAttractorManager()->DeRegisterPed(this, m_attractor);
|
||||
break;
|
||||
}
|
||||
if (!pVan->m_bSirenOrAlarm) {
|
||||
GetPedAttractorManager()->DeRegisterPed(this, m_attractor);
|
||||
return; // ???
|
||||
}
|
||||
if (pVan->GetStatus() == STATUS_WRECKED) {
|
||||
GetPedAttractorManager()->DeRegisterPed(this, m_attractor);
|
||||
return; // ???
|
||||
}
|
||||
break;
|
||||
}
|
||||
#endif
|
||||
}
|
||||
if (bObjectiveCompleted
|
||||
@ -18761,28 +18798,28 @@ CPed::SetObjective(eObjective newObj, CVector dest)
|
||||
m_nextRoutePointPos = dest;
|
||||
m_vecSeekPos = m_nextRoutePointPos;
|
||||
m_distanceToCountSeekDone = 0.5f;
|
||||
if (m_objective == OBJECTIVE_GOTO_ATM_ON_FOOT) {
|
||||
if (newObj == OBJECTIVE_GOTO_ATM_ON_FOOT) {
|
||||
m_distanceToCountSeekDone = m_attractor->GetDistanceToCountSeekDone();
|
||||
m_acceptableHeadingOffset = m_attractor->GetAcceptableHeading();
|
||||
}
|
||||
if (m_objective == OBJECTIVE_GOTO_SEAT_ON_FOOT) {
|
||||
if (newObj == OBJECTIVE_GOTO_SEAT_ON_FOOT) {
|
||||
m_distanceToCountSeekDone = m_attractor->GetDistanceToCountSeekDone();
|
||||
m_acceptableHeadingOffset = m_attractor->GetAcceptableHeading();
|
||||
}
|
||||
if (m_objective == OBJECTIVE_GOTO_BUS_STOP_ON_FOOT) {
|
||||
if (newObj == OBJECTIVE_GOTO_BUS_STOP_ON_FOOT) {
|
||||
m_distanceToCountSeekDone = m_attractor->GetDistanceToCountSeekDone();
|
||||
m_acceptableHeadingOffset = m_attractor->GetAcceptableHeading();
|
||||
}
|
||||
if (m_objective == OBJECTIVE_GOTO_PIZZA_ON_FOOT) {
|
||||
if (newObj == OBJECTIVE_GOTO_PIZZA_ON_FOOT) {
|
||||
m_distanceToCountSeekDone = m_attractor->GetDistanceToCountSeekDone();
|
||||
m_acceptableHeadingOffset = m_attractor->GetAcceptableHeading();
|
||||
}
|
||||
if (m_objective == OBJECTIVE_GOTO_SHELTER_ON_FOOT) {
|
||||
if (newObj == OBJECTIVE_GOTO_SHELTER_ON_FOOT) {
|
||||
bIsRunning = true;
|
||||
m_distanceToCountSeekDone = m_attractor->GetDistanceToCountSeekDone();
|
||||
m_acceptableHeadingOffset = m_attractor->GetAcceptableHeading();
|
||||
}
|
||||
if (m_objective == OBJECTIVE_GOTO_ICE_CREAM_VAN_ON_FOOT) {
|
||||
if (newObj == OBJECTIVE_GOTO_ICE_CREAM_VAN_ON_FOOT) {
|
||||
bIsRunning = true;
|
||||
m_distanceToCountSeekDone = m_attractor->GetDistanceToCountSeekDone();
|
||||
m_acceptableHeadingOffset = m_attractor->GetAcceptableHeading();
|
||||
|
@ -70,17 +70,17 @@ const C2dEffect* CVehicleToEffect::ChooseEffect(const CVector& pos) const
|
||||
if (!m_pVehicle)
|
||||
return nil;
|
||||
if (DotProduct(pos - m_pVehicle->GetPosition(), m_pVehicle->GetRight()) > 0.0f) {
|
||||
if (DotProduct(pos - m_pVehicle->GetPosition(), m_pVehicle->GetForward()) > 0.0f)
|
||||
return &m_effects[0];
|
||||
else
|
||||
return &m_effects[2];
|
||||
}
|
||||
else {
|
||||
if (DotProduct(pos - m_pVehicle->GetPosition(), m_pVehicle->GetForward()) > 0.0f)
|
||||
return &m_effects[1];
|
||||
else
|
||||
return &m_effects[3];
|
||||
}
|
||||
else {
|
||||
if (DotProduct(pos - m_pVehicle->GetPosition(), m_pVehicle->GetForward()) > 0.0f)
|
||||
return &m_effects[0];
|
||||
else
|
||||
return &m_effects[2];
|
||||
}
|
||||
}
|
||||
|
||||
bool CVehicleToEffect::HasThisEffect(C2dEffect* pEffect) const
|
||||
|
Reference in New Issue
Block a user