mirror of
https://github.com/TwilitRealm/dusklight
synced 2026-05-30 16:35:26 -04:00
5ffa0945b0
* f_pc_base, one non matching * some of f_pc_manager * f_pc_node OK * f_pc_pause partly * started node_req * more progress * most of node req * delete unused asm * node req header and param names * param renaming * header for manager * review comment struct names * fpcM_Management OK * int -> s32 * merge master * most of f_pc_create_iter * f_pc_stdcreate_req OK * f_pc_fstcreate OK * f_pc_leaf OK * f_pc_draw OK * f_pc_deletor partly * fix parameter type in f_pc_pause * review * review, use cPh enum and fix process_profile_definition struct * convert f_pc files to C * matched more functions * fix global.h * fix variable types * format * mpre Phs enum * fix merge errors * fix gamepad stopPatternedRumble * format * delete leftover files from merge * move asm to correct folder * revert f_pc from C to CPP * remove C hacks and format * format * OK
47 lines
1.4 KiB
C++
47 lines
1.4 KiB
C++
#include "f/f_pc/f_pc_layer_iter.h"
|
|
#include "SComponent/c_tag_iter.h"
|
|
#include "SComponent/c_tree_iter.h"
|
|
|
|
extern "C" {
|
|
|
|
s32 fpcLyIt_OnlyHere(layer_class* pLayer, cNdIt_MethodFunc pFunc, void* pUserData) {
|
|
layer_iter lIter;
|
|
lIter.mpFunc = pFunc;
|
|
lIter.mpUserData = pUserData;
|
|
return cTrIt_Method(&pLayer->mNodeListTree, (cNdIt_MethodFunc)cTgIt_MethodCall, &lIter);
|
|
}
|
|
|
|
s32 fpcLyIt_OnlyHereLY(layer_class* pLayer, cNdIt_MethodFunc pFunc, void* pUserData) {
|
|
s32 result;
|
|
layer_class* currentLayer = fpcLy_CurrentLayer();
|
|
fpcLy_SetCurrentLayer(pLayer);
|
|
result = fpcLyIt_OnlyHere(pLayer, pFunc, pUserData);
|
|
fpcLy_SetCurrentLayer(currentLayer);
|
|
return result;
|
|
}
|
|
|
|
void* fpcLyIt_Judge(layer_class* pLayer, cNdIt_MethodFunc pFunc, void* pUserData) {
|
|
layer_iter lIter;
|
|
lIter.mpFunc = pFunc;
|
|
lIter.mpUserData = pUserData;
|
|
return cTrIt_Judge(&pLayer->mNodeListTree, (cNdIt_JudgeFunc)cTgIt_JudgeFilter, &lIter);
|
|
}
|
|
|
|
void* fpcLyIt_AllJudge(cNdIt_MethodFunc pFunc, void* pUserData) {
|
|
layer_iter lIter;
|
|
layer_class* current;
|
|
lIter.mpFunc = pFunc;
|
|
lIter.mpUserData = pUserData;
|
|
|
|
current = fpcLy_RootLayer();
|
|
while (current != NULL) {
|
|
void* result =
|
|
cTrIt_Judge(¤t->mNodeListTree, (cNdIt_JudgeFunc)cTgIt_JudgeFilter, &lIter);
|
|
if (result != NULL) {
|
|
return result;
|
|
}
|
|
current = (layer_class*)current->mNode.mpNextNode;
|
|
}
|
|
return NULL;
|
|
}
|
|
} |