summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/control/Phones.cpp1
-rw-r--r--src/peds/CivilianPed.cpp11
2 files changed, 5 insertions, 7 deletions
diff --git a/src/control/Phones.cpp b/src/control/Phones.cpp
index 4769559c..f649d435 100644
--- a/src/control/Phones.cpp
+++ b/src/control/Phones.cpp
@@ -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
diff --git a/src/peds/CivilianPed.cpp b/src/peds/CivilianPed.cpp
index a2f44357..1c4f10f5 100644
--- a/src/peds/CivilianPed.cpp
+++ b/src/peds/CivilianPed.cpp
@@ -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;