Skip to content

Commit ec5a337

Browse files
committed
Review
1 parent c00cdcd commit ec5a337

File tree

4 files changed

+20
-6
lines changed

4 files changed

+20
-6
lines changed

Client/game_sa/CPedSA.cpp

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -876,17 +876,17 @@ bool CPedSA::SetOnFire(bool onFire)
876876
}
877877
else
878878
{
879+
bool wasFire = false;
880+
879881
CFire* fire = fireManager->GetFire(static_cast<CFireSAInterface*>(pInterface->pFireOnPed));
880882
if (fire)
883+
{
881884
fire->Extinguish();
885+
wasFire = true;
886+
}
882887

883888
CTaskManager* taskManager = m_pPedIntelligence->GetTaskManager();
884-
if (taskManager)
885-
{
886-
CTask* task = taskManager->GetTaskSecondary(TASK_SECONDARY_PARTIAL_ANIM);
887-
if (task && task->GetTaskType() == TASK_SIMPLE_PLAYER_ON_FIRE)
888-
taskManager->RemoveTaskSecondary(TASK_SECONDARY_PARTIAL_ANIM);
889-
}
889+
return wasFire || (taskManager && taskManager->RemoveTaskSecondary(TASK_SECONDARY_PARTIAL_ANIM, TASK_SIMPLE_PLAYER_ON_FIRE));
890890
}
891891

892892
return true;

Client/game_sa/CTaskManagerSA.cpp

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -151,6 +151,18 @@ void CTaskManagerSA::RemoveTaskSecondary(const int iTaskPriority)
151151
SetTaskSecondary(NULL, iTaskPriority);
152152
}
153153

154+
bool CTaskManagerSA::RemoveTaskSecondary(const int taskPriority, const int taskType)
155+
{
156+
CTask* task = GetTaskSecondary(taskPriority);
157+
if (task && task->GetTaskType() == taskType)
158+
{
159+
RemoveTaskSecondary(taskPriority);
160+
return true;
161+
}
162+
163+
return false;
164+
}
165+
154166
void CTaskManagerSA::SetTaskSecondary(CTaskSA* pTaskSecondary, const int iType)
155167
{
156168
DWORD dwFunc = FUNC_SetTaskSecondary;

Client/game_sa/CTaskManagerSA.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,7 @@ class CTaskManagerSA : public CTaskManager
5757
CTask* FindActiveTaskByType(const int iTaskType);
5858
CTask* FindTaskByType(const int iPriority, const int iTaskType);
5959
void RemoveTaskSecondary(const int iTaskPriority);
60+
bool RemoveTaskSecondary(const int taskPriority, const int taskType);
6061
void SetTaskSecondary(CTaskSA* pTaskSecondary, const int iType);
6162
CTask* GetTaskSecondary(const int iType); // code it
6263
bool HasTaskSecondary(const CTask* pTaskSecondary); // code it

Client/sdk/game/CTaskManager.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,7 @@ class CTaskManager
6060
virtual CTask* FindActiveTaskByType(const int iTaskType) = 0;
6161
virtual CTask* FindTaskByType(const int iPriority, const int iTaskType) = 0;
6262
virtual void RemoveTaskSecondary(const int iTaskPriority) = 0;
63+
virtual bool RemoveTaskSecondary(const int taskPriority, const int taskType) = 0;
6364
// virtual void SetTaskSecondary(CTask* pTaskSecondary, const int iType)=0;
6465
virtual CTask* GetTaskSecondary(const int iType) = 0;
6566
virtual bool HasTaskSecondary(const CTask* pTaskSecondary) = 0;

0 commit comments

Comments
 (0)