summaryrefslogtreecommitdiffstats
path: root/src/peds
diff options
context:
space:
mode:
Diffstat (limited to 'src/peds')
-rw-r--r--src/peds/CivilianPed.cpp11
1 files changed, 5 insertions, 6 deletions
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;