logic: Reduced delays when combining TaskDecoratorRepeat and TaskSelector
This commit is contained in:
@@ -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)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user