summaryrefslogtreecommitdiff
path: root/src/pso/TMainTask.cpp
diff options
context:
space:
mode:
authormrb0nk500 <b0nk@b0nk.xyz>2023-02-03 13:40:49 -0400
committermrb0nk500 <b0nk@b0nk.xyz>2023-02-03 13:40:49 -0400
commit5937b25df15a233a32da19083a54140741ef6d56 (patch)
treee2478b6aac0c3479f86c28ffaecca845d6f75722 /src/pso/TMainTask.cpp
parenta68704403ab88657d4abaad25f673bf40267931a (diff)
TMainTask: Add, and match `run_task()`
Diffstat (limited to 'src/pso/TMainTask.cpp')
-rw-r--r--src/pso/TMainTask.cpp24
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();
}