Files
dusklight/src/f_pc/f_pc_manager.cpp
T
2022-07-01 00:12:01 +02:00

234 lines
7.4 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"
#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;
}
}