mirror of
https://github.com/zeldaret/tp
synced 2026-06-01 01:39:43 -04:00
ported over f_pc
This commit is contained in:
+33
-53
@@ -6,78 +6,58 @@
|
||||
#include "f_pc/f_pc_pause.h"
|
||||
#include "dol2asm.h"
|
||||
#include "dolphin/types.h"
|
||||
|
||||
//
|
||||
// Types:
|
||||
//
|
||||
|
||||
struct layer_class {};
|
||||
|
||||
//
|
||||
// Forward References:
|
||||
//
|
||||
|
||||
void fpcPause_IsEnable(void*, u8);
|
||||
void fpcPause_Enable(void*, u8);
|
||||
void fpcPause_Disable(void*, u8);
|
||||
void fpcPause_Init(void*);
|
||||
|
||||
extern "C" void fpcPause_IsEnable__FPvUc();
|
||||
extern "C" void fpcPause_Enable__FPvUc();
|
||||
extern "C" void fpcPause_Disable__FPvUc();
|
||||
extern "C" void fpcPause_Init__FPv();
|
||||
|
||||
//
|
||||
// External References:
|
||||
//
|
||||
|
||||
void fpcBs_Is_JustOfType(int, int);
|
||||
void fpcLyIt_OnlyHere(layer_class*, int (*)(void*, void*), void*);
|
||||
|
||||
extern "C" void fpcBs_Is_JustOfType__Fii();
|
||||
extern "C" void fpcLyIt_OnlyHere__FP11layer_classPFPvPv_iPv();
|
||||
extern "C" extern u8 g_fpcNd_type[4 + 4 /* padding */];
|
||||
#include "f_pc/f_pc_layer_iter.h"
|
||||
|
||||
//
|
||||
// Declarations:
|
||||
//
|
||||
|
||||
/* 80023844-80023868 0024+00 s=0 e=3 z=0 None .text fpcPause_IsEnable__FPvUc */
|
||||
#ifdef NON_MATCHING
|
||||
s32 fpcPause_IsEnable(void* pProcess, u8 flag) {
|
||||
base_process_class* pProc = (base_process_class*)pProcess;
|
||||
// extra addic/subfe?
|
||||
return (pProc->mPauseFlag & flag) == flag;
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void fpcPause_IsEnable(void* param_0, u8 param_1) {
|
||||
asm s32 fpcPause_IsEnable(void* param_0, u8 param_1) {
|
||||
nofralloc
|
||||
#include "asm/f_pc/f_pc_pause/fpcPause_IsEnable__FPvUc.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* 80023868-800238D4 006C+00 s=0 e=1 z=0 None .text fpcPause_Enable__FPvUc */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void fpcPause_Enable(void* param_0, u8 param_1) {
|
||||
nofralloc
|
||||
#include "asm/f_pc/f_pc_pause/fpcPause_Enable__FPvUc.s"
|
||||
s32 fpcPause_Enable(void* pProcess, u8 flag) {
|
||||
base_process_class* pProc = (base_process_class*)pProcess;
|
||||
pProc->mPauseFlag |= flag;
|
||||
|
||||
if (fpcBs_Is_JustOfType(g_fpcNd_type, pProc->mSubType)) {
|
||||
process_node_class* pNode = (process_node_class*)pProc;
|
||||
fpcLyIt_OnlyHere(&pNode->mLayer, (fpcLyIt_OnlyHereFunc)fpcPause_Enable,
|
||||
(void*)(flag & 0xFF));
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 800238D4-80023948 0074+00 s=0 e=1 z=0 None .text fpcPause_Disable__FPvUc */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void fpcPause_Disable(void* param_0, u8 param_1) {
|
||||
nofralloc
|
||||
#include "asm/f_pc/f_pc_pause/fpcPause_Disable__FPvUc.s"
|
||||
s32 fpcPause_Disable(void* pProcess, u8 flag) {
|
||||
base_process_class* pProc = (base_process_class*)pProcess;
|
||||
pProc->mPauseFlag &= (0xFF - flag) & 0xFF;
|
||||
|
||||
if (fpcBs_Is_JustOfType(g_fpcNd_type, pProc->mSubType)) {
|
||||
process_node_class* pNode = (process_node_class*)pProc;
|
||||
fpcLyIt_OnlyHere(&pNode->mLayer, (fpcLyIt_OnlyHereFunc)fpcPause_Disable, (void*)flag);
|
||||
}
|
||||
|
||||
return 1;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80023948-80023954 000C+00 s=0 e=1 z=0 None .text fpcPause_Init__FPv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void fpcPause_Init(void* param_0) {
|
||||
nofralloc
|
||||
#include "asm/f_pc/f_pc_pause/fpcPause_Init__FPv.s"
|
||||
void fpcPause_Init(void* pProcess) {
|
||||
base_process_class* pProc = (base_process_class*)pProcess;
|
||||
pProc->mPauseFlag = 0;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
Reference in New Issue
Block a user