diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/pso/TMainTask.cpp | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/src/pso/TMainTask.cpp b/src/pso/TMainTask.cpp index 88216e5..c0a6f88 100644 --- a/src/pso/TMainTask.cpp +++ b/src/pso/TMainTask.cpp @@ -1,6 +1,30 @@ #include "pso/TMainTask.h" #include "pso/TObject.h" +u32 some_main_task_flag = 1; +u32 main_task_flags; +u32 old_main_task_flags; + +void TMainTask::run_task() { + if (main_task_flags != old_main_task_flags) { + TMainTask *child; + u32 bit = 1; + FOREACH_NODE_NODECL_MULTI_ITER(TMainTask, main_task.down, child, bit <<= 1) { + if (main_task_flags & bit) { + child->set_flag_3(); + } else { + child->clear_flag_3(); + } + } + old_main_task_flags = main_task_flags; + } + some_main_task_flag = 0; + set_task_flags(1); + run_tasks(); + clear_task_flags(1); + set_task_flags(0x80); +} + TMainTask::~TMainTask() { this->delete_children(); } |