Files
tp/src/f_pc/f_pc_manager.cpp
T
2021-04-08 16:01:29 +02:00

215 lines
6.8 KiB
C++

//
// Generated By: dol2asm
// Translation Unit: f_pc/f_pc_manager
//
#include "f_pc/f_pc_manager.h"
#include "dol2asm.h"
#include "dolphin/types.h"
#include "f_pc/f_pc_base.h"
#include "f_pc/f_pc_create_iter.h"
#include "f_pc/f_pc_creator.h"
#include "f_pc/f_pc_delete_tag.h"
#include "f_pc/f_pc_deletor.h"
#include "f_pc/f_pc_draw.h"
#include "f_pc/f_pc_executor.h"
#include "f_pc/f_pc_fstcreate_req.h"
#include "f_pc/f_pc_layer.h"
#include "f_pc/f_pc_layer_iter.h"
#include "f_pc/f_pc_layer_tag.h"
#include "f_pc/f_pc_line.h"
#include "f_pc/f_pc_line_iter.h"
#include "f_pc/f_pc_line_tag.h"
#include "f_pc/f_pc_method.h"
#include "f_pc/f_pc_node_req.h"
#include "f_pc/f_pc_pause.h"
#include "f_pc/f_pc_priority.h"
#include "f_pc/f_pc_profile.h"
//
// Types:
//
struct dShutdownErrorMsg_c {
/* 8009D790 */ void execute();
};
struct dLib_time_c {
/* 80032880 */ void stopTime();
/* 800328BC */ void startTime();
};
struct dDvdErrorMsg_c {
/* 8009D354 */ void execute();
};
struct dDlst_peekZ_c {
/* 80056080 */ void peekData();
};
struct dComIfG_play_c {
/* 8002CAC4 */ void drawSimpleModel();
};
struct Z2SoundMgr {
/* 802AA6B0 */ void pauseAllGameSound(bool);
};
struct JUTGamePad {
struct CRumble {
/* 802E1948 */ void stopPatternedRumble(s16);
};
};
//
// Forward References:
//
extern "C" void fpcM_Draw__FPv();
extern "C" static void fpcM_DrawIterater__FPFPvPv_i();
extern "C" void fpcM_Execute__FPv();
extern "C" void fpcM_Delete__FPv();
extern "C" void fpcM_IsCreating__FUi();
extern "C" void fpcM_Management__FPFv_vPFv_v();
extern "C" void fpcM_Init__Fv();
extern "C" void fpcM_FastCreate__FsPFPv_iPvPv();
extern "C" void fpcM_IsPause__FPvUc();
extern "C" void fpcM_PauseEnable__FPvUc();
extern "C" void fpcM_PauseDisable__FPvUc();
extern "C" void fpcM_JudgeInLayer__FUiPFPvPv_PvPv();
//
// External References:
//
extern "C" void fpcCtIt_JudgeInLayer__FUiPFPvPv_PvPv();
extern "C" void fpcCt_IsCreatingByID__FUi();
extern "C" void fpcCt_Handler__Fv();
extern "C" void fpcDt_Handler__Fv();
extern "C" void fpcDt_Delete__FPv();
extern "C" void fpcEx_Execute__FP18base_process_class();
extern "C" void fpcEx_Handler__FPFPvPv_i();
extern "C" void fpcLy_RootLayer__Fv();
extern "C" void fpcLy_CurrentLayer__Fv();
extern "C" void fpcLy_Layer__FUi();
extern "C" void fpcLy_Create__FP11layer_classPvP15node_list_classi();
extern "C" void fpcLyIt_OnlyHere__FP11layer_classPFPvPv_iPv();
extern "C" void fpcLyIt_Judge__FP11layer_classPFPvPv_PvPv();
extern "C" void fpcLn_Create__Fv();
extern "C" void fpcPi_Handler__Fv();
extern "C" void fpcPause_IsEnable__FPvUc();
extern "C" void fpcPause_Enable__FPvUc();
extern "C" void fpcPause_Disable__FPvUc();
extern "C" void fpcDw_Execute__FP18base_process_class();
extern "C" void fpcDw_Handler__FPFPFPvPv_i_iPFPvPv_i();
extern "C" void fpcFCtRq_Request__FP11layer_classsPFPvPv_iPvPv();
extern "C" void drawSimpleModel__14dComIfG_play_cFv();
extern "C" void stopTime__11dLib_time_cFv();
extern "C" void startTime__11dLib_time_cFv();
extern "C" void peekData__13dDlst_peekZ_cFv();
extern "C" void execute__14dDvdErrorMsg_cFv();
extern "C" void execute__19dShutdownErrorMsg_cFv();
extern "C" void cAPIGph_Painter__Fv();
extern "C" void MtxInit__Fv();
extern "C" void pauseAllGameSound__10Z2SoundMgrFb();
extern "C" void stopPatternedRumble__Q210JUTGamePad7CRumbleFs();
extern "C" void _savegpr_28();
extern "C" void _restgpr_28();
extern "C" extern u8 m_gamePad__8mDoCPd_c[16];
extern "C" extern u8 g_dComIfG_gameInfo[122384];
extern "C" extern u8 data_80450B60[4];
extern "C" extern u8 struct_80450D38[8];
extern "C" extern u8 data_80450EC4[4];
//
// Declarations:
//
/* 80450D38-80450D40 0008+00 s=0 e=1 z=0 None .sbss None */
u8 struct_80450D38[8];
/* 800220A0-800220C0 0020+00 s=1 e=1 z=0 None .text fpcM_Draw__FPv */
void fpcM_Draw(void* pProc) {
fpcDw_Execute((base_process_class*)pProc);
}
/* 800220C0-800220F8 0038+00 s=1 e=0 z=0 None .text fpcM_DrawIterater__FPFPvPv_i */
s32 fpcM_DrawIterater(fpcM_DrawIteraterFunc pFunc) {
return fpcLyIt_OnlyHere(fpcLy_RootLayer(), (fpcLyIt_OnlyHereFunc)pFunc, NULL);
}
/* 800220F8-80022118 0020+00 s=1 e=0 z=1 None .text fpcM_Execute__FPv */
void fpcM_Execute(void* pProc) {
fpcEx_Execute((base_process_class*)pProc);
}
/* 80022118-80022138 0020+00 s=0 e=7 z=0 None .text fpcM_Delete__FPv */
s32 fpcM_Delete(void* pProc) {
return fpcDt_Delete((base_process_class*)pProc);
}
/* 80022138-80022158 0020+00 s=0 e=6 z=43 None .text fpcM_IsCreating__FUi */
BOOL fpcM_IsCreating(unsigned int pID) {
return fpcCt_IsCreatingByID(pID);
}
// TODO, uses a lot of functions outside f_pc/SSystem
/* 80022158-800222B8 0160+00 s=0 e=1 z=0 None .text fpcM_Management__FPFv_vPFv_v */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void fpcM_Management(fpcM_ManagementFunc, fpcM_ManagementFunc) {
nofralloc
#include "asm/f_pc/f_pc_manager/fpcM_Management__FPFv_vPFv_v.s"
}
#pragma pop
/* ############################################################################################## */
/* 803F4DB0-803F4DDC 002C+00 s=1 e=0 z=0 None .bss rootlayer$3716 */
static layer_class rootlayer;
/* 803F4DDC-803F4E58 0078+04 s=1 e=0 z=0 None .bss queue$3717 */
static node_list_class queue[10];
/* 800222B8-800222F4 003C+00 s=0 e=1 z=0 None .text fpcM_Init__Fv */
void fpcM_Init(void) {
fpcLy_Create(&rootlayer, NULL, queue, 10);
fpcLn_Create();
}
/* 800222F4-80022348 0054+00 s=0 e=3 z=0 None .text fpcM_FastCreate__FsPFPv_iPvPv */
base_process_class* fpcM_FastCreate(s16 pProcTypeID, FastCreateReqFunc param_2, void* param_3,
void* pData) {
return fpcFCtRq_Request(fpcLy_CurrentLayer(), pProcTypeID, (fstCreateFunc)param_2, param_3,
pData);
}
/* 80022348-8002236C 0024+00 s=0 e=1 z=0 None .text fpcM_IsPause__FPvUc */
s32 fpcM_IsPause(void* pProc, u8 param_2) {
return fpcPause_IsEnable((base_process_class*)pProc, param_2 & 0xFF);
}
/* 8002236C-80022390 0024+00 s=0 e=1 z=0 None .text fpcM_PauseEnable__FPvUc */
void fpcM_PauseEnable(void* pProc, u8 param_2) {
fpcPause_Enable((process_node_class*)pProc, param_2 & 0xFF);
}
/* 80022390-800223B4 0024+00 s=0 e=1 z=0 None .text fpcM_PauseDisable__FPvUc */
void fpcM_PauseDisable(void* pProc, u8 param_2) {
fpcPause_Disable((process_node_class*)pProc, param_2 & 0xFF);
}
/* 800223B4-80022428 0074+00 s=0 e=1 z=0 None .text fpcM_JudgeInLayer__FUiPFPvPv_PvPv */
void* fpcM_JudgeInLayer(unsigned int pLayerID, fpcCtIt_JudgeFunc pFunc, void* pUserData) {
layer_class* layer = fpcLy_Layer(pLayerID);
if (layer != NULL) {
void* ret = fpcCtIt_JudgeInLayer(pLayerID, pFunc, pUserData);
if (ret == NULL) {
ret = fpcLyIt_Judge(layer, pFunc, pUserData);
}
return ret;
} else {
return NULL;
}
}