From e4af5aabc6b9b70b514e8c124dd766aa44dcab7a Mon Sep 17 00:00:00 2001 From: mrb0nk500 Date: Thu, 16 Feb 2023 15:50:28 -0400 Subject: TMainTask: Complete `TMainTask.cpp` --- context.h | 11 +++++++++++ include/pso/TMainTask.h | 9 +++++++++ src/pso/TMainTask.cpp | 52 +++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 72 insertions(+) diff --git a/context.h b/context.h index f59aade..e09f701 100644 --- a/context.h +++ b/context.h @@ -161,6 +161,8 @@ extern void set_some_id(u32 id); extern void func_803e11e8(u32 arg1); extern void func_803e11f0(); +extern void func_803369b4(); + // Enum defs. enum object_flags { NONE = 0, @@ -356,6 +358,15 @@ public: u32 mbr_0x24; public: TMainTask(); + void render_screen_overlay(); + void some_empty_func(); + void tl_toggle_flag_3(); + void tl_clear_flag_3(); + void tl_delete_children(); + void tl_02_toggle_flag_3(); + void tl_02_clear_flag_3(); + void empty_render_screen_overlay_func(); + void run_tl_camera_tasks(); void unused_render_func(); void render_objects(); void render_ui(); diff --git a/include/pso/TMainTask.h b/include/pso/TMainTask.h index 03319a6..b97192b 100644 --- a/include/pso/TMainTask.h +++ b/include/pso/TMainTask.h @@ -41,6 +41,15 @@ public: u32 mbr_0x24; public: TMainTask(); + void render_screen_overlay(); + void some_empty_func(); + void tl_toggle_flag_3(); + void tl_clear_flag_3(); + void tl_delete_children(); + void tl_02_toggle_flag_3(); + void tl_02_clear_flag_3(); + void empty_render_screen_overlay_func(); + void run_tl_camera_tasks(); void unused_render_func(); void render_objects(); void render_ui(); diff --git a/src/pso/TMainTask.cpp b/src/pso/TMainTask.cpp index a66fec2..931a3ce 100644 --- a/src/pso/TMainTask.cpp +++ b/src/pso/TMainTask.cpp @@ -36,6 +36,58 @@ void set_some_id(u32 id) { void func_803e11e8(u32 arg1) {} void func_803e11f0() {} +void func_803369b4() {} + +void TMainTask::render_screen_overlay() { + if (!get_task_flags(0x100)) { + render_clipout_and_fade(); + empty_func(); + empty_render_screen_overlay_func(); + func_803369b4(); + } + clear_task_flags(0x180); +} + +void TMainTask::some_empty_func() {} + +void TMainTask::tl_toggle_flag_3() { + #define o(var, name) var##->toggle_flag_3(); + TL_OBJECTS_AT_TL_00_WITHOUT_TL_PARTICLE + #undef o +} + +void TMainTask::tl_clear_flag_3() { + #define o(var, name) var##->clear_flag_3(); + TL_OBJECTS_AT_TL_00 + #undef o +} + +void TMainTask::tl_delete_children() { + #define o(var, name) var##->delete_children(); + TL_OBJECTS_AT_TL_00 + #undef o +} + +void TMainTask::tl_02_toggle_flag_3() { + #define o(var, name) var##->toggle_flag_3(); + TL_OBJECTS_AT_TL_02 + #undef o +} + +void TMainTask::tl_02_clear_flag_3() { + #define o(var, name) var##->clear_flag_3(); + TL_OBJECTS_AT_TL_02 + #undef o +} + +void TMainTask::empty_render_screen_overlay_func() {} + +void TMainTask::run_tl_camera_tasks() { + set_task_flags(1); + tl_camera->run_tasks(); + clear_task_flags(1); +} + void TMainTask::render() { DISALLOW_OR_ALLOW_CHILD(render_flags, old_render_flags, rendering); set_task_flags(2); -- cgit v1.2.3-13-gbd6f