mirror of
https://github.com/zeldaret/tp
synced 2026-07-09 06:53:23 -04:00
ported over f_pc
This commit is contained in:
@@ -6,95 +6,44 @@
|
||||
#include "f_pc/f_pc_create_iter.h"
|
||||
#include "dol2asm.h"
|
||||
#include "dolphin/types.h"
|
||||
|
||||
//
|
||||
// Types:
|
||||
//
|
||||
|
||||
struct node_list_class {};
|
||||
|
||||
struct node_class {};
|
||||
|
||||
struct method_filter {};
|
||||
|
||||
struct judge_filter {};
|
||||
|
||||
struct fpcCtIt_jilprm_c {};
|
||||
|
||||
struct create_tag_class {};
|
||||
|
||||
struct create_tag {};
|
||||
|
||||
//
|
||||
// Forward References:
|
||||
//
|
||||
|
||||
void fpcCtIt_Method(int (*)(void*, void*), void*);
|
||||
void fpcCtIt_Judge(void* (*)(void*, void*), void*);
|
||||
static void fpcCtIt_filter_JudgeInLayer(create_tag*, fpcCtIt_jilprm_c*);
|
||||
void fpcCtIt_JudgeInLayer(unsigned int, void* (*)(void*, void*), void*);
|
||||
|
||||
extern "C" void fpcCtIt_Method__FPFPvPv_iPv();
|
||||
extern "C" void fpcCtIt_Judge__FPFPvPv_PvPv();
|
||||
extern "C" static void fpcCtIt_filter_JudgeInLayer__FP10create_tagP16fpcCtIt_jilprm_c();
|
||||
extern "C" void fpcCtIt_JudgeInLayer__FUiPFPvPv_PvPv();
|
||||
|
||||
//
|
||||
// External References:
|
||||
//
|
||||
|
||||
void cLsIt_Method(node_list_class*, int (*)(node_class*, void*), void*);
|
||||
void cLsIt_Judge(node_list_class*, void* (*)(node_class*, void*), void*);
|
||||
void cTgIt_MethodCall(create_tag_class*, method_filter*);
|
||||
void cTgIt_JudgeFilter(create_tag_class*, judge_filter*);
|
||||
|
||||
extern "C" void cLsIt_Method__FP15node_list_classPFP10node_classPv_iPv();
|
||||
extern "C" void cLsIt_Judge__FP15node_list_classPFP10node_classPv_PvPv();
|
||||
extern "C" void cTgIt_MethodCall__FP16create_tag_classP13method_filter();
|
||||
extern "C" void cTgIt_JudgeFilter__FP16create_tag_classP12judge_filter();
|
||||
extern "C" extern u8 g_fpcCtTg_Queue[12 + 4 /* padding */];
|
||||
#include "f_pc/f_pc_create_req.h"
|
||||
|
||||
//
|
||||
// Declarations:
|
||||
//
|
||||
|
||||
/* 800209C8-80020A04 003C+00 s=0 e=1 z=0 None .text fpcCtIt_Method__FPFPvPv_iPv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void fpcCtIt_Method(int (*)(void*, void*), void* param_1) {
|
||||
nofralloc
|
||||
#include "asm/f_pc/f_pc_create_iter/fpcCtIt_Method__FPFPvPv_iPv.s"
|
||||
s32 fpcCtIt_Method(fpcCtIt_MethodFunc pJudge, void* pUserData) {
|
||||
node_method_data iter;
|
||||
iter.mFunc = pJudge;
|
||||
iter.mpUserData = pUserData;
|
||||
return cLsIt_Method(&g_fpcCtTg_Queue, (cNdIt_MethodFunc)cTgIt_MethodCall, &iter);
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80020A04-80020A40 003C+00 s=1 e=2 z=0 None .text fpcCtIt_Judge__FPFPvPv_PvPv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void fpcCtIt_Judge(void* (*)(void*, void*), void* param_1) {
|
||||
nofralloc
|
||||
#include "asm/f_pc/f_pc_create_iter/fpcCtIt_Judge__FPFPvPv_PvPv.s"
|
||||
void* fpcCtIt_Judge(fpcCtIt_JudgeFunc pJudge, void* pUserData) {
|
||||
node_judge_data iter;
|
||||
iter.mFunc = pJudge;
|
||||
iter.mpUserData = pUserData;
|
||||
return cLsIt_Judge(&g_fpcCtTg_Queue, (cNdIt_JudgeFunc)cTgIt_JudgeFilter, &iter);
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80020A40-80020A94 0054+00 s=1 e=0 z=0 None .text
|
||||
* fpcCtIt_filter_JudgeInLayer__FP10create_tagP16fpcCtIt_jilprm_c */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm static void fpcCtIt_filter_JudgeInLayer(create_tag* param_0, fpcCtIt_jilprm_c* param_1) {
|
||||
nofralloc
|
||||
#include "asm/f_pc/f_pc_create_iter/fpcCtIt_filter_JudgeInLayer__FP10create_tagP16fpcCtIt_jilprm_c.s"
|
||||
void* fpcCtIt_filter_JudgeInLayer(create_tag* pCreateTag, fpcCtIt_jilprm_c* pIterData) {
|
||||
create_request* create_req = static_cast<create_request*>(pCreateTag->mBase.mpTagData);
|
||||
if (create_req->mpLayer->mLayerID == pIterData->mLayerID) {
|
||||
return pIterData->mFunc((node_class*)create_req->mpRes, pIterData->mpUserData);
|
||||
} else {
|
||||
return NULL;
|
||||
}
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80020A94-80020ACC 0038+00 s=0 e=1 z=0 None .text fpcCtIt_JudgeInLayer__FUiPFPvPv_PvPv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void fpcCtIt_JudgeInLayer(unsigned int param_0, void* (*)(void*, void*), void* param_2) {
|
||||
nofralloc
|
||||
#include "asm/f_pc/f_pc_create_iter/fpcCtIt_JudgeInLayer__FUiPFPvPv_PvPv.s"
|
||||
void* fpcCtIt_JudgeInLayer(unsigned int pLayerID, fpcCtIt_JudgeFunc pFunc, void* pUserData) {
|
||||
fpcCtIt_jilprm_c data;
|
||||
data.mLayerID = pLayerID;
|
||||
data.mFunc = pFunc;
|
||||
data.mpUserData = pUserData;
|
||||
return fpcCtIt_Judge((fpcCtIt_JudgeFunc)fpcCtIt_filter_JudgeInLayer, &data);
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
Reference in New Issue
Block a user