Fixed issue #324

dev-mp
krzys-h 2014-10-07 21:40:51 +02:00
parent 7557b888bc
commit 2770ee8927
3 changed files with 16 additions and 3 deletions

2
data

@ -1 +1 @@
Subproject commit a521070bb17737e1d3990ba09d09d036749635ab
Subproject commit 559797f35b88a2d5e882119034923b2ab75817e2

View File

@ -820,6 +820,18 @@ void CBrain::StopTask()
}
}
// Stops the current secondary task.
void CBrain::StopSecondaryTask()
{
if (m_secondaryTask != nullptr)
{
m_secondaryTask->Abort();
delete m_secondaryTask; // stops the current secondary task
m_secondaryTask = nullptr;
}
}
// Introduces a virus into a program.
// Returns true if it was inserted.
@ -1000,7 +1012,7 @@ Error CBrain::StartTaskRecover()
Error CBrain::StartTaskShield(TaskShieldMode mode)
{
StopTask();
StopSecondaryTask();
m_secondaryTask = new CTaskManager(m_object);
Error err = m_secondaryTask->StartTaskShield(mode, 1000.0f);
@ -1048,7 +1060,7 @@ Error CBrain::StartTaskFireAnt(Math::Vector impact)
Error CBrain::StartTaskGunGoal(float dirV, float dirH)
{
StopTask();
StopSecondaryTask();
m_secondaryTask = new CTaskManager(m_object);
Error err = m_secondaryTask->StartTaskGunGoal(dirV, dirH);

View File

@ -102,6 +102,7 @@ public:
int GetProgram();
void StopProgram();
void StopTask();
void StopSecondaryTask();
bool IntroduceVirus();
void SetActiveVirus(bool bActive);