Files
dusklight/src/f_pc/f_pc_create_iter.cpp
T
TakaRikka a6e76c0841 project cleanup (#2895)
* some wii OS fixes

* remove old dol2asm comments

* remove dol2asm.h

* remove function address comments

* normalize ATTRIBUTE_ALIGN usage

* DECL_WEAK macro

* fix gcc attribute weak macro

* wrap more mwcc specific things in ifdefs

* fixes

* fix revo sdk version flags

* fixes
2025-11-30 15:23:42 -07:00

43 lines
1.3 KiB
C++

/**
* f_pc_create_iter.cpp
* Framework - Process Create Iteration
*/
#include "SSystem/SComponent/c_list_iter.h"
#include "SSystem/SComponent/c_tag_iter.h"
#include "f_pc/f_pc_create_iter.h"
#include "f_pc/f_pc_create_req.h"
#include "f_pc/f_pc_layer.h"
int fpcCtIt_Method(fpcCtIt_MethodFunc i_method, void* i_data) {
node_method_data iter;
iter.method = i_method;
iter.data = i_data;
return cLsIt_Method(&g_fpcCtTg_Queue, (cNdIt_MethodFunc)cTgIt_MethodCall, &iter);
}
void* fpcCtIt_Judge(fpcCtIt_JudgeFunc i_judge, void* i_data) {
node_judge_data iter;
iter.method = i_judge;
iter.data = i_data;
return cLsIt_Judge(&g_fpcCtTg_Queue, (cNdIt_JudgeFunc)cTgIt_JudgeFilter, &iter);
}
void* fpcCtIt_filter_JudgeInLayer(create_tag* i_createTag, fpcCtIt_jilprm_c* i_iterData) {
create_request* create_req = (create_request*)i_createTag->base.mpTagData;
if (create_req->layer->layer_id == i_iterData->layer_id) {
return i_iterData->method((node_class*)create_req->process, i_iterData->data);
} else {
return NULL;
}
}
void* fpcCtIt_JudgeInLayer(fpc_ProcID i_layerID, fpcCtIt_JudgeFunc i_method, void* i_data) {
fpcCtIt_jilprm_c data;
data.layer_id = i_layerID;
data.method = i_method;
data.data = i_data;
return fpcCtIt_Judge((fpcCtIt_JudgeFunc)fpcCtIt_filter_JudgeInLayer, &data);
}