Skip to content

Commit cfbdb3f

Browse files
authored
bugfix(object): Cancel previous tasks for captured dozers (TheSuperHackers#2237)
1 parent d0f24b6 commit cfbdb3f

File tree

2 files changed

+22
-0
lines changed
  • GeneralsMD/Code/GameEngine/Source/GameLogic/Object
  • Generals/Code/GameEngine/Source/GameLogic/Object

2 files changed

+22
-0
lines changed

Generals/Code/GameEngine/Source/GameLogic/Object/Object.cpp

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4046,7 +4046,18 @@ void Object::onCapture( Player *oldOwner, Player *newOwner )
40464046
getAIUpdateInterface()->aiIdle(CMD_FROM_AI);
40474047
#else
40484048
if (oldOwner->getRelationship(newOwner->getDefaultTeam()) != ALLIES)
4049+
{
40494050
getAIUpdateInterface()->aiIdle(CMD_FROM_AI);
4051+
4052+
DozerAIInterface* dozerAI = getAIUpdateInterface()->getDozerAIInterface();
4053+
if (dozerAI)
4054+
{
4055+
for (UnsignedInt task = DOZER_TASK_FIRST; task < DOZER_NUM_TASKS; ++task)
4056+
{
4057+
dozerAI->cancelTask((DozerTask)task);
4058+
}
4059+
}
4060+
}
40504061
#endif
40514062
}
40524063

GeneralsMD/Code/GameEngine/Source/GameLogic/Object/Object.cpp

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4578,7 +4578,18 @@ void Object::onCapture( Player *oldOwner, Player *newOwner )
45784578
getAIUpdateInterface()->aiIdle(CMD_FROM_AI);
45794579
#else
45804580
if (oldOwner->getRelationship(newOwner->getDefaultTeam()) != ALLIES)
4581+
{
45814582
getAIUpdateInterface()->aiIdle(CMD_FROM_AI);
4583+
4584+
DozerAIInterface* dozerAI = getAIUpdateInterface()->getDozerAIInterface();
4585+
if (dozerAI)
4586+
{
4587+
for (UnsignedInt task = DOZER_TASK_FIRST; task < DOZER_NUM_TASKS; ++task)
4588+
{
4589+
dozerAI->cancelTask((DozerTask)task);
4590+
}
4591+
}
4592+
}
45824593
#endif
45834594
}
45844595

0 commit comments

Comments
 (0)