Fix peds running to see dead peds in water
This commit is contained in:
parent
9ad2f39a60
commit
8b9e9a07a0
@ -707,14 +707,18 @@ CPed::ScanForThreats(void)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
CPed *deadPed = nil;
|
CPed *deadPed;
|
||||||
if (fearFlags & PED_FLAG_DEADPEDS && CharCreatedBy != MISSION_CHAR
|
if (fearFlags & PED_FLAG_DEADPEDS && CharCreatedBy != MISSION_CHAR
|
||||||
&& (deadPed = CheckForDeadPeds()) != nil && (deadPed->GetPosition() - ourPos).MagnitudeSqr() < sq(20.0f)) {
|
&& (deadPed = CheckForDeadPeds()) != nil && (deadPed->GetPosition() - ourPos).MagnitudeSqr() < sq(20.0f)
|
||||||
|
#ifdef FIX_BUGS
|
||||||
|
&& !deadPed->bIsInWater
|
||||||
|
#endif
|
||||||
|
) {
|
||||||
m_pEventEntity = deadPed;
|
m_pEventEntity = deadPed;
|
||||||
m_pEventEntity->RegisterReference((CEntity **) &m_pEventEntity);
|
m_pEventEntity->RegisterReference((CEntity **) &m_pEventEntity);
|
||||||
return PED_FLAG_DEADPEDS;
|
return PED_FLAG_DEADPEDS;
|
||||||
} else {
|
} else {
|
||||||
uint32 flagsOfSomePed = 0;
|
uint32 flagsOfNearPed = 0;
|
||||||
|
|
||||||
CPed *pedToFearFrom = nil;
|
CPed *pedToFearFrom = nil;
|
||||||
#ifndef VC_PED_PORTS
|
#ifndef VC_PED_PORTS
|
||||||
@ -724,9 +728,9 @@ CPed::ScanForThreats(void)
|
|||||||
|
|
||||||
// BUG: WTF Rockstar?! Putting this here will result in returning the flags of farthest ped to us, since m_nearPeds is sorted by distance.
|
// BUG: WTF Rockstar?! Putting this here will result in returning the flags of farthest ped to us, since m_nearPeds is sorted by distance.
|
||||||
// Fixed at the bottom of the function.
|
// Fixed at the bottom of the function.
|
||||||
flagsOfSomePed = CPedType::GetFlag(nearPed->m_nPedType);
|
flagsOfNearPed = CPedType::GetFlag(nearPed->m_nPedType);
|
||||||
|
|
||||||
if (CPedType::GetFlag(nearPed->m_nPedType) & fearFlags) {
|
if (flagsOfNearPed & fearFlags) {
|
||||||
if (nearPed->m_fHealth > 0.0f && OurPedCanSeeThisOne(m_nearPeds[i])) {
|
if (nearPed->m_fHealth > 0.0f && OurPedCanSeeThisOne(m_nearPeds[i])) {
|
||||||
// FIX: Taken from VC
|
// FIX: Taken from VC
|
||||||
#ifdef FIX_BUGS
|
#ifdef FIX_BUGS
|
||||||
@ -754,9 +758,9 @@ CPed::ScanForThreats(void)
|
|||||||
}
|
}
|
||||||
|
|
||||||
// BUG: Explained at the same occurence of this bug above. Fixed at the bottom of the function.
|
// BUG: Explained at the same occurence of this bug above. Fixed at the bottom of the function.
|
||||||
flagsOfSomePed = CPedType::GetFlag(m_nearPeds[i]->m_nPedType);
|
flagsOfNearPed = CPedType::GetFlag(m_nearPeds[i]->m_nPedType);
|
||||||
|
|
||||||
if (flagsOfSomePed & fearFlags) {
|
if (flagsOfNearPed & fearFlags) {
|
||||||
if (m_nearPeds[i]->m_fHealth > 0.0f) {
|
if (m_nearPeds[i]->m_fHealth > 0.0f) {
|
||||||
|
|
||||||
// VC also has ability to include objects to line of sight check here (via last bit of flagsL)
|
// VC also has ability to include objects to line of sight check here (via last bit of flagsL)
|
||||||
@ -827,8 +831,8 @@ CPed::ScanForThreats(void)
|
|||||||
if (driver) {
|
if (driver) {
|
||||||
|
|
||||||
// BUG: Same bug as above. Fixed at the bottom of function.
|
// BUG: Same bug as above. Fixed at the bottom of function.
|
||||||
flagsOfSomePed = CPedType::GetFlag(driver->m_nPedType);
|
flagsOfNearPed = CPedType::GetFlag(driver->m_nPedType);
|
||||||
if (CPedType::GetFlag(driver->m_nPedType) & fearFlags) {
|
if (flagsOfNearPed & fearFlags) {
|
||||||
if (driver->m_fHealth > 0.0f && OurPedCanSeeThisOne(nearVeh->pDriver)) {
|
if (driver->m_fHealth > 0.0f && OurPedCanSeeThisOne(nearVeh->pDriver)) {
|
||||||
// FIX: Taken from VC
|
// FIX: Taken from VC
|
||||||
#ifdef FIX_BUGS
|
#ifdef FIX_BUGS
|
||||||
@ -850,12 +854,12 @@ CPed::ScanForThreats(void)
|
|||||||
|
|
||||||
#ifdef FIX_BUGS
|
#ifdef FIX_BUGS
|
||||||
if (pedToFearFrom)
|
if (pedToFearFrom)
|
||||||
flagsOfSomePed = CPedType::GetFlag(((CPed*)m_threatEntity)->m_nPedType);
|
flagsOfNearPed = CPedType::GetFlag(((CPed*)m_threatEntity)->m_nPedType);
|
||||||
else
|
else
|
||||||
flagsOfSomePed = 0;
|
flagsOfNearPed = 0;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
return flagsOfSomePed;
|
return flagsOfNearPed;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user