Skip to content

Commit b958d86

Browse files
committed
bugfix: Invalidate current dozer build task if the target scaffold no longer exists
1 parent 2e95fe2 commit b958d86

File tree

4 files changed

+16
-0
lines changed

4 files changed

+16
-0
lines changed

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

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1599,6 +1599,10 @@ UpdateSleepTime DozerAIUpdate::update( void )
15991599
if( currentTask == DOZER_TASK_REPAIR &&
16001600
TheActionManager->canRepairObject( getObject(), targetObject, getLastCommandSource() ) == FALSE )
16011601
invalidTask = TRUE;
1602+
#if !RETAIL_COMPATIBLE_CRC
1603+
else if (currentTask == DOZER_TASK_BUILD && targetObject == NULL)
1604+
invalidTask = TRUE;
1605+
#endif
16021606

16031607
// cancel the task if it's now invalid
16041608
if( invalidTask == TRUE )

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

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -283,6 +283,10 @@ UpdateSleepTime WorkerAIUpdate::update( void )
283283
if( currentTask == DOZER_TASK_REPAIR &&
284284
TheActionManager->canRepairObject( getObject(), targetObject, getLastCommandSource() ) == FALSE )
285285
invalidTask = TRUE;
286+
#if !RETAIL_COMPATIBLE_CRC
287+
else if (currentTask == DOZER_TASK_BUILD && targetObject == NULL)
288+
invalidTask = TRUE;
289+
#endif
286290

287291
// cancel the task if it's now invalid
288292
if( invalidTask == TRUE )

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

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1604,6 +1604,10 @@ UpdateSleepTime DozerAIUpdate::update( void )
16041604
if( currentTask == DOZER_TASK_REPAIR &&
16051605
TheActionManager->canRepairObject( getObject(), targetObject, getLastCommandSource() ) == FALSE )
16061606
invalidTask = TRUE;
1607+
#if !RETAIL_COMPATIBLE_CRC
1608+
else if (currentTask == DOZER_TASK_BUILD && targetObject == NULL)
1609+
invalidTask = TRUE;
1610+
#endif
16071611

16081612
// cancel the task if it's now invalid
16091613
if( invalidTask == TRUE )

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

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -283,6 +283,10 @@ UpdateSleepTime WorkerAIUpdate::update( void )
283283
if( currentTask == DOZER_TASK_REPAIR &&
284284
TheActionManager->canRepairObject( getObject(), targetObject, getLastCommandSource() ) == FALSE )
285285
invalidTask = TRUE;
286+
#if !RETAIL_COMPATIBLE_CRC
287+
else if (currentTask == DOZER_TASK_BUILD && targetObject == NULL)
288+
invalidTask = TRUE;
289+
#endif
286290

287291
// cancel the task if it's now invalid
288292
if( invalidTask == TRUE )

0 commit comments

Comments
 (0)