summaryrefslogtreecommitdiff
path: root/src/f_pc/f_pc_node.cpp
diff options
context:
space:
mode:
authorTakaRikka <38417346+TakaRikka@users.noreply.github.com>2025-03-18 12:45:44 -0700
committerGitHub <noreply@github.com>2025-03-18 15:45:44 -0400
commitd3e9175bfb5ca4fce4633e473d8d8a3556c3d3ef (patch)
tree21a10894e590edebe9cd928a2fb48f4e8d061262 /src/f_pc/f_pc_node.cpp
parent58ba86b6a3cfebe38b643b7ffecf72090a720db0 (diff)
d_a_e_pz equivalent (#2330)
* d_a_e_pz equivalent * rename var * match f_pc closer to debug * hopefully fix decompctx * sdk done * remove unneeded file
Diffstat (limited to 'src/f_pc/f_pc_node.cpp')
-rw-r--r--src/f_pc/f_pc_node.cpp20
1 files changed, 17 insertions, 3 deletions
diff --git a/src/f_pc/f_pc_node.cpp b/src/f_pc/f_pc_node.cpp
index 0a0156eb06..72828c7968 100644
--- a/src/f_pc/f_pc_node.cpp
+++ b/src/f_pc/f_pc_node.cpp
@@ -5,6 +5,7 @@
#include "f_pc/f_pc_node.h"
#include "f_pc/f_pc_layer_iter.h"
+#include "f_pc/f_pc_debug_sv.h"
/* 800224F0-80022514 0024+00 s=1 e=1 z=0 None .text fpcNd_DrawMethod__FP21nodedraw_method_classPv
*/
@@ -15,9 +16,11 @@ s32 fpcNd_DrawMethod(nodedraw_method_class* i_method_class, void* i_data) {
/* 80022514-80022580 006C+00 s=1 e=0 z=0 None .text fpcNd_Draw__FP18process_node_class */
s32 fpcNd_Draw(process_node_class* i_procNode) {
s32 ret = 0;
+ process_node_class* var_r28 = i_procNode;
+
if (i_procNode->unk_0x1A8 == 0) {
layer_class* save_layer = fpcLy_CurrentLayer();
- fpcLy_SetCurrentLayer(&i_procNode->layer);
+ fpcLy_SetCurrentLayer(&var_r28->layer);
ret = fpcNd_DrawMethod(i_procNode->nodedraw_method, i_procNode);
fpcLy_SetCurrentLayer(save_layer);
}
@@ -27,8 +30,18 @@ s32 fpcNd_Draw(process_node_class* i_procNode) {
/* 80022580-800225DC 005C+00 s=1 e=0 z=0 None .text fpcNd_Execute__FP18process_node_class */
s32 fpcNd_Execute(process_node_class* i_procNode) {
- s32 ret;
+ s32 ret = 0;
layer_class* save_layer = fpcLy_CurrentLayer();
+
+#ifdef DEBUG
+ if (fpcBs_Is_JustOfType(g_fpcNd_type, i_procNode->base.subtype) == 0) {
+ if (g_fpcDbSv_service[11] != NULL) {
+ g_fpcDbSv_service[11](i_procNode);
+ }
+ return 0;
+ }
+#endif
+
fpcLy_SetCurrentLayer(&i_procNode->layer);
ret = fpcMtd_Execute(&i_procNode->nodedraw_method->base, i_procNode);
fpcLy_SetCurrentLayer(save_layer);
@@ -111,4 +124,5 @@ s32 fpcNd_Create(process_node_class* i_procNode) {
nodedraw_method_class g_fpcNd_Method = {
(process_method_func)fpcNd_Create, (process_method_func)fpcNd_Delete,
(process_method_func)fpcNd_Execute, (process_method_func)fpcNd_IsDelete,
- (process_method_func)fpcNd_Draw};
+ (process_method_func)fpcNd_Draw,
+};