Skip to content

Commit 74beb35

Browse files
committed
tweak: Still clear previous task if the resumed build fails
1 parent a1acd44 commit 74beb35

4 files changed

Lines changed: 8 additions & 12 deletions

File tree

Generals/Code/GameEngine/Source/GameLogic/Object/Update/AIUpdate/DozerAIUpdate.cpp

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2072,10 +2072,9 @@ void DozerAIUpdate::resumePreviousTask()
20722072
if (m_previousTask == DOZER_TASK_BUILD)
20732073
{
20742074
Object* target = TheGameLogic->findObjectByID(m_previousTaskInfo.m_targetObjectID);
2075-
if (target && !target->testStatus(OBJECT_STATUS_UNDER_CONSTRUCTION))
2076-
return;
2075+
if (!target || target->testStatus(OBJECT_STATUS_UNDER_CONSTRUCTION))
2076+
newTask(m_previousTask, TheGameLogic->findObjectByID(m_previousTaskInfo.m_targetObjectID));
20772077

2078-
newTask(m_previousTask, TheGameLogic->findObjectByID(m_previousTaskInfo.m_targetObjectID));
20792078
m_previousTask = DOZER_TASK_INVALID;
20802079
m_previousTaskInfo = DozerTaskInfo();
20812080
}

Generals/Code/GameEngine/Source/GameLogic/Object/Update/AIUpdate/WorkerAIUpdate.cpp

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -727,10 +727,9 @@ void WorkerAIUpdate::resumePreviousTask()
727727
if (m_previousTask == DOZER_TASK_BUILD)
728728
{
729729
Object* target = TheGameLogic->findObjectByID(m_previousTaskInfo.m_targetObjectID);
730-
if (target && !target->testStatus(OBJECT_STATUS_UNDER_CONSTRUCTION))
731-
return;
730+
if (!target || target->testStatus(OBJECT_STATUS_UNDER_CONSTRUCTION))
731+
newTask(m_previousTask, TheGameLogic->findObjectByID(m_previousTaskInfo.m_targetObjectID));
732732

733-
newTask(m_previousTask, TheGameLogic->findObjectByID(m_previousTaskInfo.m_targetObjectID));
734733
m_previousTask = DOZER_TASK_INVALID;
735734
m_previousTaskInfo = DozerTaskInfo();
736735
}

GeneralsMD/Code/GameEngine/Source/GameLogic/Object/Update/AIUpdate/DozerAIUpdate.cpp

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2077,10 +2077,9 @@ void DozerAIUpdate::resumePreviousTask()
20772077
if (m_previousTask == DOZER_TASK_BUILD)
20782078
{
20792079
Object* target = TheGameLogic->findObjectByID(m_previousTaskInfo.m_targetObjectID);
2080-
if (target && !target->testStatus(OBJECT_STATUS_UNDER_CONSTRUCTION))
2081-
return;
2080+
if (!target || target->testStatus(OBJECT_STATUS_UNDER_CONSTRUCTION))
2081+
newTask(m_previousTask, TheGameLogic->findObjectByID(m_previousTaskInfo.m_targetObjectID));
20822082

2083-
newTask(m_previousTask, TheGameLogic->findObjectByID(m_previousTaskInfo.m_targetObjectID));
20842083
m_previousTask = DOZER_TASK_INVALID;
20852084
m_previousTaskInfo = DozerTaskInfo();
20862085
}

GeneralsMD/Code/GameEngine/Source/GameLogic/Object/Update/AIUpdate/WorkerAIUpdate.cpp

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -727,10 +727,9 @@ void WorkerAIUpdate::resumePreviousTask()
727727
if (m_previousTask == DOZER_TASK_BUILD)
728728
{
729729
Object* target = TheGameLogic->findObjectByID(m_previousTaskInfo.m_targetObjectID);
730-
if (target && !target->testStatus(OBJECT_STATUS_UNDER_CONSTRUCTION))
731-
return;
730+
if (!target || target->testStatus(OBJECT_STATUS_UNDER_CONSTRUCTION))
731+
newTask(m_previousTask, TheGameLogic->findObjectByID(m_previousTaskInfo.m_targetObjectID));
732732

733-
newTask(m_previousTask, TheGameLogic->findObjectByID(m_previousTaskInfo.m_targetObjectID));
734733
m_previousTask = DOZER_TASK_INVALID;
735734
m_previousTaskInfo = DozerTaskInfo();
736735
}

0 commit comments

Comments
 (0)