diff options
author | Ľubomír Remák | 2018-07-21 20:29:11 +0200 |
---|---|---|
committer | Eugene Sandulenko | 2018-08-25 23:12:01 +0200 |
commit | 3306cbfeaa2f1c6fd471daaee054290df7e44280 (patch) | |
tree | 56379cb27336281e9ca92b12d6db7ab6d84c31e8 /engines/mutationofjb/tasks/taskmanager.cpp | |
parent | 2e656e69b3b9416f5164f0963951df203f4978e5 (diff) | |
download | scummvm-rg350-3306cbfeaa2f1c6fd471daaee054290df7e44280.tar.gz scummvm-rg350-3306cbfeaa2f1c6fd471daaee054290df7e44280.tar.bz2 scummvm-rg350-3306cbfeaa2f1c6fd471daaee054290df7e44280.zip |
MUTATIONOFJB: Implement SayCommand::execute.
Diffstat (limited to 'engines/mutationofjb/tasks/taskmanager.cpp')
-rw-r--r-- | engines/mutationofjb/tasks/taskmanager.cpp | 26 |
1 files changed, 22 insertions, 4 deletions
diff --git a/engines/mutationofjb/tasks/taskmanager.cpp b/engines/mutationofjb/tasks/taskmanager.cpp index 11675007db..a6d4dc1e84 100644 --- a/engines/mutationofjb/tasks/taskmanager.cpp +++ b/engines/mutationofjb/tasks/taskmanager.cpp @@ -21,21 +21,39 @@ */ #include "mutationofjb/tasks/taskmanager.h" + #include "mutationofjb/tasks/task.h" +#include "common/translation.h" + namespace MutationOfJB { -void TaskManager::addTask(const TaskPtr &task) { +void TaskManager::startTask(const TaskPtr &task) { _tasks.push_back(task); task->setTaskManager(this); task->start(); } -void TaskManager::removeTask(const TaskPtr &task) { +void TaskManager::stopTask(const TaskPtr &task) { TaskPtrs::iterator it = Common::find(_tasks.begin(), _tasks.end(), task); - if (it != _tasks.end()) { - _tasks.erase(it); + if (it == _tasks.end()) { + warning(_("Task is not registered in TaskManager.")); + return; + } + + task->stop(); + assert(task->getState() != Task::RUNNING); + _tasks.erase(it); +} + +TaskPtr TaskManager::getTask(Task *const task) { + for (TaskPtrs::iterator it = _tasks.begin(); it != _tasks.end(); ++it) { + if (it->get() == task) { + return *it; + } } + + return TaskPtr(); } void TaskManager::update() { |