mirror of
https://github.com/zeldaret/tp
synced 2026-06-29 11:40:55 -04:00
ported over f_pc
This commit is contained in:
+21
-55
@@ -6,47 +6,12 @@
|
||||
#include "f_pc/f_pc_line_iter.h"
|
||||
#include "dol2asm.h"
|
||||
#include "dolphin/types.h"
|
||||
|
||||
//
|
||||
// Types:
|
||||
//
|
||||
|
||||
struct node_lists_tree_class {};
|
||||
|
||||
struct node_class {};
|
||||
|
||||
struct method_filter {};
|
||||
|
||||
struct layer_class {};
|
||||
|
||||
struct create_tag_class {};
|
||||
|
||||
//
|
||||
// Forward References:
|
||||
//
|
||||
|
||||
static void fpcLnIt_MethodCall(create_tag_class*, method_filter*);
|
||||
void fpcLnIt_Queue(int (*)(void*, void*));
|
||||
|
||||
extern "C" static void fpcLnIt_MethodCall__FP16create_tag_classP13method_filter();
|
||||
extern "C" void fpcLnIt_Queue__FPFPvPv_i();
|
||||
|
||||
//
|
||||
// External References:
|
||||
//
|
||||
|
||||
void fpcLy_SetCurrentLayer(layer_class*);
|
||||
void fpcLy_CurrentLayer();
|
||||
void cTrIt_Method(node_lists_tree_class*, int (*)(node_class*, void*), void*);
|
||||
void cTgIt_MethodCall(create_tag_class*, method_filter*);
|
||||
|
||||
extern "C" void fpcLy_SetCurrentLayer__FP11layer_class();
|
||||
extern "C" void fpcLy_CurrentLayer__Fv();
|
||||
extern "C" void cTrIt_Method__FP21node_lists_tree_classPFP10node_classPv_iPv();
|
||||
extern "C" void cTgIt_MethodCall__FP16create_tag_classP13method_filter();
|
||||
extern "C" void _savegpr_28();
|
||||
extern "C" void _restgpr_28();
|
||||
extern "C" extern void* g_fpcLn_Queue[2];
|
||||
#include "f_pc/f_pc_line.h"
|
||||
#include "f_pc/f_pc_create_tag.h"
|
||||
#include "f_pc/f_pc_layer.h"
|
||||
#include "f_pc/f_pc_base.h"
|
||||
#include "SSystem/SComponent/c_tag_iter.h"
|
||||
#include "SSystem/SComponent/c_tree_iter.h"
|
||||
|
||||
//
|
||||
// Declarations:
|
||||
@@ -54,21 +19,22 @@ extern "C" extern void* g_fpcLn_Queue[2];
|
||||
|
||||
/* 800236C0-80023728 0068+00 s=1 e=0 z=0 None .text
|
||||
* fpcLnIt_MethodCall__FP16create_tag_classP13method_filter */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm static void fpcLnIt_MethodCall(create_tag_class* param_0, method_filter* param_1) {
|
||||
nofralloc
|
||||
#include "asm/f_pc/f_pc_line_iter/fpcLnIt_MethodCall__FP16create_tag_classP13method_filter.s"
|
||||
static s32 fpcLnIt_MethodCall(create_tag_class* pTag, method_filter* pFilter) {
|
||||
layer_class* pLayer = static_cast<base_process_class*>(pTag->mpTagData)->mLyTg.mpLayer;
|
||||
layer_class* pCurLayer = fpcLy_CurrentLayer();
|
||||
s32 ret;
|
||||
|
||||
fpcLy_SetCurrentLayer(pLayer);
|
||||
ret = cTgIt_MethodCall(pTag, pFilter);
|
||||
fpcLy_SetCurrentLayer(pCurLayer);
|
||||
|
||||
return ret;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80023728-80023764 003C+00 s=0 e=1 z=0 None .text fpcLnIt_Queue__FPFPvPv_i */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void fpcLnIt_Queue(int (*)(void*, void*)) {
|
||||
nofralloc
|
||||
#include "asm/f_pc/f_pc_line_iter/fpcLnIt_Queue__FPFPvPv_i.s"
|
||||
void fpcLnIt_Queue(fpcLnIt_QueueFunc pFunc) {
|
||||
method_filter filter;
|
||||
filter.mpMethodFunc = (cNdIt_MethodFunc)pFunc;
|
||||
filter.mpUserData = NULL;
|
||||
cTrIt_Method(&g_fpcLn_Queue, (cNdIt_MethodFunc)fpcLnIt_MethodCall, &filter);
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
Reference in New Issue
Block a user