Ejemplo n.º 1
0
bool
TaskAutoPilot::do_advance(TaskAccessor& task)
{
    if (task.is_ordered() && (awp==0)) {
        awp++;
    }
    awp++;
    if (has_finished(task))
        return false;
    task.setActiveTaskPoint(awp);
    get_awp(task);

    return true;
}
Ejemplo n.º 2
0
void
TaskAutoPilot::advance_if_required(TaskAccessor& task)
{
    bool manual_start = false;

    if (task.is_started() && (task.getActiveTaskPointIndex()==0)) {
        manual_start = true;
        awp++;
    }
    if (current_has_target(task) || manual_start) {
        if (task.getActiveTaskPointIndex() < awp) {
            // manual advance
            task.setActiveTaskPoint(awp);
            on_manual_advance();
            get_awp(task);
        }
    }
    if (task.getActiveTaskPointIndex() > awp) {
        awp = task.getActiveTaskPointIndex();
        get_awp(task);
    }
}