// // 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" #include "SSystem/SComponent/c_API_graphic.h" #include "d/com/d_com_inf_game.h" #include "m_Do/m_Do_audio.h" // // Types: // struct dShutdownErrorMsg_c { /* 8009D790 */ static bool execute(); }; struct dDvdErrorMsg_c { /* 8009D354 */ static u8 execute(); }; // // 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 struct_80450D38; // // Declarations: // /* 80450D38-80450D40 0008+00 s=0 e=1 z=0 None .sbss None */ u8 struct_80450D38; s8 data_80450D39; /* 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 */ s32 fpcM_Execute(void* pProc) { return 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); } /* 80022158-800222B8 0160+00 s=0 e=1 z=0 None .text fpcM_Management__FPFv_vPFv_v */ void fpcM_Management(fpcM_ManagementFunc func1, fpcM_ManagementFunc func2) { MtxInit(); dComIfGd_peekZdata(); if (!dShutdownErrorMsg_c::execute()) { if (data_80450D39 == 0) { struct_80450D38 = 0; data_80450D39 = 1; } if (!dDvdErrorMsg_c::execute()) { if (struct_80450D38 != 0) { dLib_time_c::startTime(); Z2GetSoundMgr()->pauseAllGameSound(false); struct_80450D38 = 0; } cAPIGph_Painter(); if (!dPa_control_c::isStatus(1)) { fpcDt_Handler(); } else { dPa_control_c::offStatus(1); } fpcPi_Handler(); fpcCt_Handler(); if (func1 != NULL) { func1(); } fpcEx_Handler((fpcLnIt_QueueFunc)fpcM_Execute); fpcDw_Handler((fpcDw_HandlerFuncFunc)fpcM_DrawIterater, (fpcDw_HandlerFunc)fpcM_Draw); if (func2 != NULL) { func2(); } dComIfGp_drawSimpleModel(); } else if (struct_80450D38 == 0) { dLib_time_c::stopTime(); Z2GetSoundMgr()->pauseAllGameSound(true); mDoCPd_c::stopMotorWaveHard(0); struct_80450D38 = 1; } } } /* ############################################################################################## */ /* 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; } }