summaryrefslogtreecommitdiff
path: root/src/f_pc/f_pc_layer_iter.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_layer_iter.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_layer_iter.cpp')
-rw-r--r--src/f_pc/f_pc_layer_iter.cpp33
1 files changed, 25 insertions, 8 deletions
diff --git a/src/f_pc/f_pc_layer_iter.cpp b/src/f_pc/f_pc_layer_iter.cpp
index 9ffd197f0e..7e92cc3081 100644
--- a/src/f_pc/f_pc_layer_iter.cpp
+++ b/src/f_pc/f_pc_layer_iter.cpp
@@ -30,6 +30,23 @@ s32 fpcLyIt_OnlyHereLY(layer_class* i_layer, fpcLyIt_OnlyHereFunc i_func, void*
return result;
}
+s32 fpcLyIt_All(fpcLyIt_OnlyHereFunc i_func, void* i_data) {
+ int ret = 1;
+
+ layer_iter iter;
+ layer_class* layer;
+ iter.func = i_func;
+ iter.data = i_data;
+
+ for (layer = fpcLy_RootLayer(); layer != NULL; layer = (layer_class*)layer->node.mpNextNode) {
+ if (cTrIt_Method(&layer->node_tree, (cNdIt_MethodFunc)cTgIt_MethodCall, &iter) == 0) {
+ ret = 0;
+ }
+ }
+
+ return ret;
+}
+
/* 80021C28-80021C60 0038+00 s=0 e=3 z=0 None .text fpcLyIt_Judge__FP11layer_classPFPvPv_PvPv
*/
void* fpcLyIt_Judge(layer_class* i_layer, fpcLyIt_JudgeFunc i_func, void* i_data) {
@@ -41,19 +58,19 @@ void* fpcLyIt_Judge(layer_class* i_layer, fpcLyIt_JudgeFunc i_func, void* i_data
/* 80021C60-80021CD4 0074+00 s=0 e=1 z=4 None .text fpcLyIt_AllJudge__FPFPvPv_PvPv */
void* fpcLyIt_AllJudge(fpcLyIt_JudgeFunc i_func, void* i_data) {
+ void* ret;
+
layer_iter iter;
- layer_class* current;
+ layer_class* layer;
iter.func = i_func;
iter.data = i_data;
- current = fpcLy_RootLayer();
- while (current != NULL) {
- void* result =
- cTrIt_Judge(&current->node_tree, (cNdIt_JudgeFunc)cTgIt_JudgeFilter, &iter);
- if (result != NULL) {
- return result;
+ for (layer = fpcLy_RootLayer(); layer != NULL; layer = (layer_class*)layer->node.mpNextNode) {
+ ret = cTrIt_Judge(&layer->node_tree, (cNdIt_JudgeFunc)cTgIt_JudgeFilter, &iter);
+ if (ret != NULL) {
+ return ret;
}
- current = (layer_class*)current->node.mpNextNode;
}
+
return NULL;
}