From 87fe4412c45be2f06883d7bb04c4e8966cf7beb2 Mon Sep 17 00:00:00 2001 From: mrb0nk500 Date: Wed, 8 Feb 2023 13:49:01 -0400 Subject: TMainTask: Add, and use `X_OR_Y_CHILD` macro --- include/pso/TMainTask.h | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) (limited to 'include') diff --git a/include/pso/TMainTask.h b/include/pso/TMainTask.h index e299006..c2cfbfa 100644 --- a/include/pso/TMainTask.h +++ b/include/pso/TMainTask.h @@ -5,20 +5,24 @@ #include "pso/macros.h" #include "pso/TObject.h" -#define SET_OR_CLEAR_CHILD_FLAGS(flags, old_flags, flag_bit) \ + +#define X_OR_Y_CHILD(flags, old_flags, one_prefix, zero_prefix, suffix) \ if (flags != old_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_##flag_bit(); \ + child->one_prefix##_##suffix(); \ } else { \ - child->clear_flag_##flag_bit(); \ + child->zero_prefix##_##suffix(); \ } \ } \ old_flags = flags; \ } +#define SET_OR_CLEAR_CHILD_FLAGS(flags, old_flags, flag_bit) \ + X_OR_Y_CHILD(flags, old_flags, set_flag, clear_flag, flag_bit) + #define o(var, name) extern const char *var##_name; TL_OBJECTS #undef o -- cgit v1.2.3-13-gbd6f