logic: Reduced delays when combining TaskDecoratorRepeat and TaskSelector

This commit is contained in:
Eberhard Graether
2018-11-05 18:01:17 +01:00
parent ddc37aee80
commit b6db87ffa4
2 changed files with 8 additions and 6 deletions
@@ -28,7 +28,7 @@ Task::TaskState TaskDecoratorRepeat::doUpdate(std::shared_ptr<Blackboard> blackb
}
else if (state == Task::STATE_FAILURE)
{
state = m_exitState;
return m_exitState;
}
break;
}
@@ -1,6 +1,7 @@
#include "TaskGroupSelector.h"
TaskGroupSelector::TaskGroupSelector()
: m_taskIndex(0)
{
}
@@ -20,20 +21,21 @@ Task::TaskState TaskGroupSelector::doUpdate(std::shared_ptr<Blackboard> blackboa
{
return STATE_FAILURE;
}
else if (m_taskIndex < 0)
{
return STATE_SUCCESS;
}
TaskState state = m_taskRunners[m_taskIndex]->update(blackboard);
if (state == STATE_FAILURE)
{
m_taskIndex++;
if (m_taskIndex >= int(m_taskRunners.size()))
{
return STATE_FAILURE;
}
}
else if (state == STATE_SUCCESS)
{
m_taskIndex = -1;
return STATE_SUCCESS;
}
else if (state == STATE_HOLD)
{