Peds reporting to phone changes for GTA3D

This commit is contained in:
erorcun 2021-01-22 23:58:57 +03:00
parent 226e3b83da
commit 0ea72af60c
2 changed files with 5 additions and 7 deletions

View File

@ -40,7 +40,6 @@ bool
isPhoneAvailable(int m_phoneId)
{
return crimeReporters[m_phoneId] == nil || !crimeReporters[m_phoneId]->IsPointerValid() || crimeReporters[m_phoneId]->m_objective > OBJECTIVE_WAIT_ON_FOOT ||
crimeReporters[m_phoneId]->m_nLastPedState != PED_SEEK_POS &&
(crimeReporters[m_phoneId]->m_nPedState != PED_MAKE_CALL && crimeReporters[m_phoneId]->m_nPedState != PED_FACE_PHONE && crimeReporters[m_phoneId]->m_nPedState != PED_SEEK_POS);
}
#endif

View File

@ -264,15 +264,11 @@ CCivilianPed::ProcessControl(void)
m_pNextPathNode = nil;
#ifdef PEDS_REPORT_CRIMES_ON_PHONE
} else if (bRunningToPhone && m_objective < OBJECTIVE_FLEE_ON_FOOT_TILL_SAFE) {
if (!isPhoneAvailable(m_phoneId)) {
if (crimeReporters[m_phoneId] != this) {
RestorePreviousState();
if (crimeReporters[m_phoneId] == this)
crimeReporters[m_phoneId] = nil;
m_phoneId = -1;
bRunningToPhone = false;
} else {
crimeReporters[m_phoneId] = this;
m_facePhoneStart = true;
SetPedState(PED_FACE_PHONE);
}
@ -431,7 +427,8 @@ CPed::RunToReportCrime(eCrimeType crimeToReport)
{
#ifdef PEDS_REPORT_CRIMES_ON_PHONE
if (bRunningToPhone) {
if (!isPhoneAvailable(m_phoneId)) {
if (!isPhoneAvailable(m_phoneId) && crimeReporters[m_phoneId] != this) {
crimeReporters[m_phoneId] = nil;
m_phoneId = -1;
bIsRunning = false;
ClearSeek(); // clears bRunningToPhone
@ -456,6 +453,8 @@ CPed::RunToReportCrime(eCrimeType crimeToReport)
#ifndef PEDS_REPORT_CRIMES_ON_PHONE
if (phone->m_nState != PHONE_STATE_FREE)
return false;
#else
crimeReporters[phoneId] = this;
#endif
bRunningToPhone = true;