Skip to content

Commit a4ffdb5

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

4 files changed

Lines changed: 20 additions & 24 deletions

File tree

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

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2072,13 +2072,12 @@ 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;
2077-
2078-
newTask(m_previousTask, TheGameLogic->findObjectByID(m_previousTaskInfo.m_targetObjectID));
2079-
m_previousTask = DOZER_TASK_INVALID;
2080-
m_previousTaskInfo = DozerTaskInfo();
2075+
if (!target || target->testStatus(OBJECT_STATUS_UNDER_CONSTRUCTION))
2076+
newTask(m_previousTask, TheGameLogic->findObjectByID(m_previousTaskInfo.m_targetObjectID));
20812077
}
2078+
2079+
m_previousTask = DOZER_TASK_INVALID;
2080+
m_previousTaskInfo = DozerTaskInfo();
20822081
}
20832082

20842083
//-------------------------------------------------------------------------------------------------

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

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -727,13 +727,12 @@ 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;
732-
733-
newTask(m_previousTask, TheGameLogic->findObjectByID(m_previousTaskInfo.m_targetObjectID));
734-
m_previousTask = DOZER_TASK_INVALID;
735-
m_previousTaskInfo = DozerTaskInfo();
730+
if (!target || target->testStatus(OBJECT_STATUS_UNDER_CONSTRUCTION))
731+
newTask(m_previousTask, TheGameLogic->findObjectByID(m_previousTaskInfo.m_targetObjectID));
736732
}
733+
734+
m_previousTask = DOZER_TASK_INVALID;
735+
m_previousTaskInfo = DozerTaskInfo();
737736
}
738737

739738
//-------------------------------------------------------------------------------------------------

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

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2077,13 +2077,12 @@ 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;
2082-
2083-
newTask(m_previousTask, TheGameLogic->findObjectByID(m_previousTaskInfo.m_targetObjectID));
2084-
m_previousTask = DOZER_TASK_INVALID;
2085-
m_previousTaskInfo = DozerTaskInfo();
2080+
if (!target || target->testStatus(OBJECT_STATUS_UNDER_CONSTRUCTION))
2081+
newTask(m_previousTask, TheGameLogic->findObjectByID(m_previousTaskInfo.m_targetObjectID));
20862082
}
2083+
2084+
m_previousTask = DOZER_TASK_INVALID;
2085+
m_previousTaskInfo = DozerTaskInfo();
20872086
}
20882087

20892088
//-------------------------------------------------------------------------------------------------

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

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -727,13 +727,12 @@ 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;
732-
733-
newTask(m_previousTask, TheGameLogic->findObjectByID(m_previousTaskInfo.m_targetObjectID));
734-
m_previousTask = DOZER_TASK_INVALID;
735-
m_previousTaskInfo = DozerTaskInfo();
730+
if (!target || target->testStatus(OBJECT_STATUS_UNDER_CONSTRUCTION))
731+
newTask(m_previousTask, TheGameLogic->findObjectByID(m_previousTaskInfo.m_targetObjectID));
736732
}
733+
734+
m_previousTask = DOZER_TASK_INVALID;
735+
m_previousTaskInfo = DozerTaskInfo();
737736
}
738737

739738
//-------------------------------------------------------------------------------------------------

0 commit comments

Comments
 (0)