mirror of
https://github.com/TwilitRealm/dusklight
synced 2026-07-26 14:19:38 -04:00
some f_op
This commit is contained in:
+2
-25
@@ -11,12 +11,6 @@
|
||||
// Types:
|
||||
//
|
||||
|
||||
struct process_method_class {};
|
||||
|
||||
struct leafdraw_method_class {};
|
||||
|
||||
struct leafdraw_class {};
|
||||
|
||||
struct dKy_tevstr_c {};
|
||||
|
||||
struct fopEn_enemy_c {
|
||||
@@ -26,13 +20,6 @@ struct fopEn_enemy_c {
|
||||
/* 800196A0 */ void drawBallModel(dKy_tevstr_c*);
|
||||
};
|
||||
|
||||
struct fopAc_ac_c {
|
||||
/* 80018B64 */ fopAc_ac_c();
|
||||
/* 80018C8C */ ~fopAc_ac_c();
|
||||
|
||||
static u8 stopStatus[4];
|
||||
};
|
||||
|
||||
struct daSus_c {
|
||||
/* 800314D4 */ void check(fopAc_ac_c*);
|
||||
};
|
||||
@@ -63,16 +50,8 @@ struct dRes_control_c {
|
||||
|
||||
struct dPa_levelEcallBack {};
|
||||
|
||||
struct cXyz {
|
||||
static f32 Zero[3];
|
||||
};
|
||||
|
||||
struct _GXColor {};
|
||||
|
||||
struct csXyz {
|
||||
/* 80018BD0 */ ~csXyz();
|
||||
};
|
||||
|
||||
struct dPa_control_c {
|
||||
/* 8004D4CC */ void set(u32, u8, u16, cXyz const*, dKy_tevstr_c const*, csXyz const*,
|
||||
cXyz const*, u8, dPa_levelEcallBack*, s8, _GXColor const*,
|
||||
@@ -101,8 +80,6 @@ struct dDemo_actor_c {
|
||||
/* 8003815C */ void setActor(fopAc_ac_c*);
|
||||
};
|
||||
|
||||
struct create_tag_class {};
|
||||
|
||||
struct J3DModel {};
|
||||
|
||||
struct J3DAnmTevRegKey {
|
||||
@@ -194,7 +171,6 @@ extern "C" void searchUpdateMaterialID__19J3DAnmTextureSRTKeyFP12J3DModelData();
|
||||
extern "C" void searchUpdateMaterialID__15J3DAnmTevRegKeyFP12J3DModelData();
|
||||
extern "C" void entryTexMtxAnimator__16J3DMaterialTableFP19J3DAnmTextureSRTKey();
|
||||
extern "C" void entryTevRegAnimator__16J3DMaterialTableFP15J3DAnmTevRegKey();
|
||||
extern "C" void PSMTXTrans();
|
||||
extern "C" void __construct_array();
|
||||
extern "C" void _savegpr_29();
|
||||
extern "C" void _restgpr_29();
|
||||
@@ -225,7 +201,8 @@ asm fopAc_ac_c::fopAc_ac_c() {
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm csXyz::~csXyz() {
|
||||
// asm csXyz::~csXyz() {
|
||||
extern "C" asm void __dt__5csXyzFv() {
|
||||
nofralloc
|
||||
#include "asm/f_op/f_op_actor/__dt__5csXyzFv.s"
|
||||
}
|
||||
|
||||
@@ -6,59 +6,35 @@
|
||||
#include "f_op/f_op_actor_iter.h"
|
||||
#include "dol2asm.h"
|
||||
#include "dolphin/types.h"
|
||||
#include "SSystem/SComponent/c_list_iter.h"
|
||||
#include "SSystem/SComponent/c_tag_iter.h"
|
||||
#include "f_op/f_op_actor_tag.h"
|
||||
|
||||
//
|
||||
// Types:
|
||||
//
|
||||
|
||||
struct node_list_class {};
|
||||
|
||||
struct node_class {};
|
||||
|
||||
struct method_filter {};
|
||||
|
||||
struct judge_filter {};
|
||||
|
||||
struct create_tag_class {};
|
||||
|
||||
//
|
||||
// Forward References:
|
||||
//
|
||||
|
||||
extern "C" void fopAcIt_Executor__FPFPvPv_iPv();
|
||||
extern "C" void fopAcIt_Judge__FPFPvPv_PvPv();
|
||||
|
||||
//
|
||||
// External References:
|
||||
//
|
||||
|
||||
extern "C" void cLsIt_Method__FP15node_list_classPFP10node_classPv_iPv();
|
||||
extern "C" void cLsIt_Judge__FP15node_list_classPFP10node_classPv_PvPv();
|
||||
extern "C" void cTgIt_MethodCall__FP16create_tag_classP13method_filter();
|
||||
extern "C" void cTgIt_JudgeFilter__FP16create_tag_classP12judge_filter();
|
||||
extern "C" extern u8 g_fopAcTg_Queue[12 + 4 /* padding */];
|
||||
extern node_list_class g_fopAcTg_Queue;
|
||||
|
||||
//
|
||||
// Declarations:
|
||||
//
|
||||
|
||||
/* 800197BC-800197F8 0140FC 003C+00 0/0 5/5 3/3 .text fopAcIt_Executor__FPFPvPv_iPv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void fopAcIt_Executor(int (*)(void*, void*), void* param_1) {
|
||||
nofralloc
|
||||
#include "asm/f_op/f_op_actor_iter/fopAcIt_Executor__FPFPvPv_iPv.s"
|
||||
int fopAcIt_Executor(fopAcIt_ExecutorFunc pExecFunc, void* pData) {
|
||||
struct {
|
||||
fopAcIt_ExecutorFunc func;
|
||||
void* data;
|
||||
} userData;
|
||||
userData.func = pExecFunc;
|
||||
userData.data = pData;
|
||||
return cLsIt_Method(&g_fopAcTg_Queue, (cNdIt_MethodFunc)cTgIt_MethodCall, &userData);
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 800197F8-80019834 014138 003C+00 0/0 67/67 388/388 .text fopAcIt_Judge__FPFPvPv_PvPv
|
||||
*/
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void fopAcIt_Judge(void* (*)(void*, void*), void* param_1) {
|
||||
nofralloc
|
||||
#include "asm/f_op/f_op_actor_iter/fopAcIt_Judge__FPFPvPv_PvPv.s"
|
||||
void* fopAcIt_Judge(fopAcIt_JudgeFunc pJudgeFunc, void* pData) {
|
||||
struct {
|
||||
fopAcIt_JudgeFunc func;
|
||||
void* data;
|
||||
} userData;
|
||||
userData.func = pJudgeFunc;
|
||||
userData.data = pData;
|
||||
return cLsIt_Judge(&g_fopAcTg_Queue, (cNdIt_JudgeFunc)cTgIt_JudgeFilter, &userData);
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
// Translation Unit: f_op/f_op_actor_mng
|
||||
//
|
||||
|
||||
#include "f_op/f_op_actor_mng.h"
|
||||
// #include "f_op/f_op_actor_mng.h"
|
||||
#include "dol2asm.h"
|
||||
#include "dolphin/types.h"
|
||||
|
||||
|
||||
@@ -6,30 +6,7 @@
|
||||
#include "f_op/f_op_actor_tag.h"
|
||||
#include "dol2asm.h"
|
||||
#include "dolphin/types.h"
|
||||
|
||||
//
|
||||
// Types:
|
||||
//
|
||||
|
||||
struct node_list_class {};
|
||||
|
||||
struct create_tag_class {};
|
||||
|
||||
//
|
||||
// Forward References:
|
||||
//
|
||||
|
||||
extern "C" void fopAcTg_ToActorQ__FP16create_tag_class();
|
||||
extern "C" void fopAcTg_ActorQTo__FP16create_tag_class();
|
||||
extern "C" void fopAcTg_Init__FP16create_tag_classPv();
|
||||
|
||||
//
|
||||
// External References:
|
||||
//
|
||||
|
||||
extern "C" void cTg_SingleCutFromTree__FP16create_tag_class();
|
||||
extern "C" void cTg_Addition__FP15node_list_classP16create_tag_class();
|
||||
extern "C" void cTg_Create__FP16create_tag_classPv();
|
||||
#include "SSystem/SComponent/c_tag.h"
|
||||
|
||||
//
|
||||
// Declarations:
|
||||
@@ -37,52 +14,20 @@ extern "C" void cTg_Create__FP16create_tag_classPv();
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 803A35E0-803A35F0 000700 000C+04 1/1 2/2 0/0 .data g_fopAcTg_Queue */
|
||||
SECTION_DATA extern u8 g_fopAcTg_Queue[12 + 4 /* padding */] = {
|
||||
0x00,
|
||||
0x00,
|
||||
0x00,
|
||||
0x00,
|
||||
0x00,
|
||||
0x00,
|
||||
0x00,
|
||||
0x00,
|
||||
0x00,
|
||||
0x00,
|
||||
0x00,
|
||||
0x00,
|
||||
/* padding */
|
||||
0x00,
|
||||
0x00,
|
||||
0x00,
|
||||
0x00,
|
||||
};
|
||||
node_list_class g_fopAcTg_Queue = {NULL, NULL, 0};
|
||||
|
||||
/* 80019834-80019860 014174 002C+00 0/0 1/1 0/0 .text fopAcTg_ToActorQ__FP16create_tag_class */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void fopAcTg_ToActorQ(create_tag_class* param_0) {
|
||||
nofralloc
|
||||
#include "asm/f_op/f_op_actor_tag/fopAcTg_ToActorQ__FP16create_tag_class.s"
|
||||
u32 fopAcTg_ToActorQ(create_tag_class* c) {
|
||||
return cTg_Addition(&g_fopAcTg_Queue, c);
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80019860-80019880 0141A0 0020+00 0/0 1/1 0/0 .text fopAcTg_ActorQTo__FP16create_tag_class */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void fopAcTg_ActorQTo(create_tag_class* param_0) {
|
||||
nofralloc
|
||||
#include "asm/f_op/f_op_actor_tag/fopAcTg_ActorQTo__FP16create_tag_class.s"
|
||||
u32 fopAcTg_ActorQTo(create_tag_class* pTag) {
|
||||
return cTg_SingleCutFromTree(pTag);
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80019880-800198A4 0141C0 0024+00 0/0 1/1 0/0 .text fopAcTg_Init__FP16create_tag_classPv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void fopAcTg_Init(create_tag_class* param_0, void* param_1) {
|
||||
nofralloc
|
||||
#include "asm/f_op/f_op_actor_tag/fopAcTg_Init__FP16create_tag_classPv.s"
|
||||
u32 fopAcTg_Init(create_tag_class* pTag, void* data) {
|
||||
cTg_Create(pTag, data);
|
||||
return 1;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
+43
-34
@@ -6,20 +6,8 @@
|
||||
#include "f_op/f_op_camera.h"
|
||||
#include "dol2asm.h"
|
||||
#include "dolphin/types.h"
|
||||
|
||||
//
|
||||
// Types:
|
||||
//
|
||||
|
||||
struct process_method_class {};
|
||||
|
||||
struct leafdraw_method_class {};
|
||||
|
||||
struct leafdraw_class {};
|
||||
|
||||
struct create_tag_class {};
|
||||
|
||||
struct camera_class {};
|
||||
#include "f_op/f_op_draw_tag.h"
|
||||
#include "f_pc/f_pc_leaf.h"
|
||||
|
||||
//
|
||||
// Forward References:
|
||||
@@ -53,16 +41,36 @@ extern "C" extern u8 struct_80451124[4];
|
||||
//
|
||||
|
||||
/* 8001E140-8001E180 018A80 0040+00 1/0 0/0 0/0 .text fopCam_Draw__FP12camera_class */
|
||||
#if 0
|
||||
// TODO: move dComIfG
|
||||
static s32 fopCam_Draw(camera_class* pCamera) {
|
||||
s32 tmp = 1;
|
||||
|
||||
if (g_dComIfG_gameInfo.getPlay().isPauseFlag() == false) {
|
||||
tmp = fpcLf_DrawMethod(pCamera->pMthd, pCamera);
|
||||
}
|
||||
return tmp;
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
static asm void fopCam_Draw(camera_class* param_0) {
|
||||
static asm s32 fopCam_Draw(camera_class* param_0) {
|
||||
nofralloc
|
||||
#include "asm/f_op/f_op_camera/fopCam_Draw__FP12camera_class.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* 8001E180-8001E1C8 018AC0 0048+00 1/0 0/0 0/0 .text fopCam_Execute__FP12camera_class */
|
||||
// Matches, but wrong registers
|
||||
#ifdef NONMATCHING
|
||||
static void fopCam_Execute(camera_class* pCamera) {
|
||||
if (!g_dComIfG_gameInfo.getPlay().isPauseFlag() && !lbl_80451124) {
|
||||
fpcMtd_Execute((process_method_class*)pCamera->pMthd, pCamera);
|
||||
}
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
@@ -71,27 +79,28 @@ static asm void fopCam_Execute(camera_class* param_0) {
|
||||
#include "asm/f_op/f_op_camera/fopCam_Execute__FP12camera_class.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* 8001E1C8-8001E21C 018B08 0054+00 1/0 0/0 0/0 .text fopCam_IsDelete__FP12camera_class
|
||||
*/
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
static asm void fopCam_IsDelete(camera_class* param_0) {
|
||||
nofralloc
|
||||
#include "asm/f_op/f_op_camera/fopCam_IsDelete__FP12camera_class.s"
|
||||
int fopCam_IsDelete(camera_class* pCamera) {
|
||||
int tmp = fpcMtd_IsDelete((process_method_class*)pCamera->pMthd, pCamera);
|
||||
if (tmp == 1) {
|
||||
fopDwTg_DrawQTo(&pCamera->pCreateTag);
|
||||
}
|
||||
|
||||
return tmp;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8001E21C-8001E270 018B5C 0054+00 1/0 0/0 0/0 .text fopCam_Delete__FP12camera_class */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
static asm void fopCam_Delete(camera_class* param_0) {
|
||||
nofralloc
|
||||
#include "asm/f_op/f_op_camera/fopCam_Delete__FP12camera_class.s"
|
||||
int fopCam_Delete(camera_class* pCamera) {
|
||||
int tmp = fpcMtd_Delete((process_method_class*)pCamera->pMthd, pCamera);
|
||||
if (tmp == 1) {
|
||||
fopDwTg_DrawQTo(&pCamera->pCreateTag);
|
||||
}
|
||||
|
||||
return tmp;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8001E270-8001E308 018BB0 0098+00 1/0 0/0 0/0 .text fopCam_Create__FPv */
|
||||
#pragma push
|
||||
@@ -106,11 +115,11 @@ static asm void fopCam_Create(void* param_0) {
|
||||
/* ############################################################################################## */
|
||||
/* 803A3860-803A3878 -00001 0014+04 0/0 2/0 0/0 .data g_fopCam_Method */
|
||||
SECTION_DATA extern void* g_fopCam_Method[5 + 1 /* padding */] = {
|
||||
(void*)fopCam_Create__FPv,
|
||||
(void*)fopCam_Delete__FP12camera_class,
|
||||
(void*)fopCam_Execute__FP12camera_class,
|
||||
(void*)fopCam_IsDelete__FP12camera_class,
|
||||
(void*)fopCam_Draw__FP12camera_class,
|
||||
(void*)fopCam_Create,
|
||||
(void*)fopCam_Delete,
|
||||
(void*)fopCam_Execute,
|
||||
(void*)fopCam_IsDelete,
|
||||
(void*)fopCam_Draw,
|
||||
/* padding */
|
||||
NULL,
|
||||
};
|
||||
|
||||
@@ -6,60 +6,26 @@
|
||||
#include "f_op/f_op_camera_mng.h"
|
||||
#include "dol2asm.h"
|
||||
#include "dolphin/types.h"
|
||||
|
||||
//
|
||||
// Types:
|
||||
//
|
||||
|
||||
struct layer_class {};
|
||||
|
||||
struct camera_class {};
|
||||
|
||||
//
|
||||
// Forward References:
|
||||
//
|
||||
|
||||
extern "C" void fopCamM_GetParam__FP12camera_class();
|
||||
extern "C" void fopCamM_Create__FisPv();
|
||||
extern "C" void fopCamM_Management__Fv();
|
||||
extern "C" void fopCamM_Init__Fv();
|
||||
|
||||
//
|
||||
// External References:
|
||||
//
|
||||
|
||||
extern "C" void fpcLy_CurrentLayer__Fv();
|
||||
extern "C" void fpcSCtRq_Request__FP11layer_classsPFPvPv_iPvPv();
|
||||
extern "C" void _savegpr_29();
|
||||
extern "C" void _restgpr_29();
|
||||
#include "f_pc/f_pc_stdcreate_req.h"
|
||||
|
||||
//
|
||||
// Declarations:
|
||||
//
|
||||
|
||||
/* 8001E308-8001E310 018C48 0008+00 0/0 12/12 2/2 .text fopCamM_GetParam__FP12camera_class */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void fopCamM_GetParam(camera_class* param_0) {
|
||||
nofralloc
|
||||
#include "asm/f_op/f_op_camera_mng/fopCamM_GetParam__FP12camera_class.s"
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 803F1DD8-803F1DE8 01EAF8 0010+00 1/1 0/0 0/0 .bss l_fopCamM_id */
|
||||
static u8 l_fopCamM_id[16];
|
||||
static u32 l_fopCamM_id[4];
|
||||
|
||||
/* 8001E308-8001E310 018C48 0008+00 0/0 12/12 2/2 .text fopCamM_GetParam__FP12camera_class */
|
||||
u32 fopCamM_GetParam(camera_class* pCamera) {
|
||||
return pCamera->parameter;
|
||||
}
|
||||
|
||||
/* 8001E310-8001E374 018C50 0064+00 0/0 1/1 0/0 .text fopCamM_Create__FisPv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void fopCamM_Create(int param_0, s16 param_1, void* param_2) {
|
||||
nofralloc
|
||||
#include "asm/f_op/f_op_camera_mng/fopCamM_Create__FisPv.s"
|
||||
u32 fopCamM_Create(int i_cameraIdx, s16 pProcName, void* param_3) {
|
||||
l_fopCamM_id[i_cameraIdx] = fpcSCtRq_Request(fpcLy_CurrentLayer(), pProcName, 0, 0, param_3);
|
||||
return l_fopCamM_id[i_cameraIdx];
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8001E374-8001E378 018CB4 0004+00 0/0 1/1 0/0 .text fopCamM_Management__Fv */
|
||||
void fopCamM_Management() {
|
||||
|
||||
@@ -7,12 +7,6 @@
|
||||
#include "dol2asm.h"
|
||||
#include "dolphin/types.h"
|
||||
|
||||
//
|
||||
// Types:
|
||||
//
|
||||
|
||||
struct create_tag_class {};
|
||||
|
||||
//
|
||||
// Forward References:
|
||||
//
|
||||
@@ -39,7 +33,7 @@ static u8 l_fopDwTg_id[4 + 4 /* padding */];
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
static asm void fopDwIt_GetTag() {
|
||||
static asm create_tag_class* fopDwIt_GetTag() {
|
||||
nofralloc
|
||||
#include "asm/f_op/f_op_draw_iter/fopDwIt_GetTag__Fv.s"
|
||||
}
|
||||
@@ -49,7 +43,7 @@ static asm void fopDwIt_GetTag() {
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void fopDwIt_Begin() {
|
||||
asm create_tag_class* fopDwIt_Begin() {
|
||||
nofralloc
|
||||
#include "asm/f_op/f_op_draw_iter/fopDwIt_Begin__Fv.s"
|
||||
}
|
||||
@@ -60,7 +54,7 @@ asm void fopDwIt_Begin() {
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void fopDwIt_Next(create_tag_class* param_0) {
|
||||
asm create_tag_class* fopDwIt_Next(create_tag_class* param_0) {
|
||||
nofralloc
|
||||
#include "asm/f_op/f_op_draw_iter/fopDwIt_Next__FP16create_tag_class.s"
|
||||
}
|
||||
|
||||
+12
-61
@@ -5,35 +5,7 @@
|
||||
|
||||
#include "f_op/f_op_draw_tag.h"
|
||||
#include "dol2asm.h"
|
||||
#include "dolphin/types.h"
|
||||
|
||||
//
|
||||
// Types:
|
||||
//
|
||||
|
||||
struct node_lists_tree_class {};
|
||||
|
||||
struct node_list_class {};
|
||||
|
||||
struct create_tag_class {};
|
||||
|
||||
//
|
||||
// Forward References:
|
||||
//
|
||||
|
||||
extern "C" void fopDwTg_ToDrawQ__FP16create_tag_classi();
|
||||
extern "C" void fopDwTg_DrawQTo__FP16create_tag_class();
|
||||
extern "C" void fopDwTg_Init__FP16create_tag_classPv();
|
||||
extern "C" void fopDwTg_CreateQueue__Fv();
|
||||
|
||||
//
|
||||
// External References:
|
||||
//
|
||||
|
||||
extern "C" void cTr_Create__FP21node_lists_tree_classP15node_list_classi();
|
||||
extern "C" void cTg_SingleCutFromTree__FP16create_tag_class();
|
||||
extern "C" void cTg_AdditionToTree__FP21node_lists_tree_classiP16create_tag_class();
|
||||
extern "C" void cTg_Create__FP16create_tag_classPv();
|
||||
#include "global.h"
|
||||
|
||||
//
|
||||
// Declarations:
|
||||
@@ -41,50 +13,29 @@ extern "C" void cTg_Create__FP16create_tag_classPv();
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 804505D0-804505D8 000050 0008+00 2/2 2/2 0/0 .sdata g_fopDwTg_Queue */
|
||||
SECTION_SDATA extern u8 g_fopDwTg_Queue[8] = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
};
|
||||
node_lists_tree_class g_fopDwTg_Queue = {NULL, 0};
|
||||
|
||||
/* 800204AC-800204D4 01ADEC 0028+00 0/0 4/4 2/2 .text fopDwTg_ToDrawQ__FP16create_tag_classi */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void fopDwTg_ToDrawQ(create_tag_class* param_0, int param_1) {
|
||||
nofralloc
|
||||
#include "asm/f_op/f_op_draw_tag/fopDwTg_ToDrawQ__FP16create_tag_classi.s"
|
||||
void fopDwTg_ToDrawQ(create_tag_class* pCreateTagClass, int priority) {
|
||||
cTg_AdditionToTree(&g_fopDwTg_Queue, priority, pCreateTagClass);
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 800204D4-800204F4 01AE14 0020+00 0/0 8/8 3/3 .text fopDwTg_DrawQTo__FP16create_tag_class */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void fopDwTg_DrawQTo(create_tag_class* param_0) {
|
||||
nofralloc
|
||||
#include "asm/f_op/f_op_draw_tag/fopDwTg_DrawQTo__FP16create_tag_class.s"
|
||||
void fopDwTg_DrawQTo(create_tag_class* pCreateTagClass) {
|
||||
cTg_SingleCutFromTree(pCreateTagClass);
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 800204F4-80020518 01AE34 0024+00 0/0 4/4 0/0 .text fopDwTg_Init__FP16create_tag_classPv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void fopDwTg_Init(create_tag_class* param_0, void* param_1) {
|
||||
nofralloc
|
||||
#include "asm/f_op/f_op_draw_tag/fopDwTg_Init__FP16create_tag_classPv.s"
|
||||
bool fopDwTg_Init(create_tag_class* pCreateTagClass, void* pActor) {
|
||||
cTg_Create(pCreateTagClass, pActor);
|
||||
return true;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 803F1E10-803F4CF0 01EB30 2EE0+00 1/1 0/0 0/0 .bss lists$2216 */
|
||||
static u8 lists[12000];
|
||||
static node_list_class lists[1000];
|
||||
|
||||
/* 80020518-80020548 01AE58 0030+00 0/0 1/1 0/0 .text fopDwTg_CreateQueue__Fv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void fopDwTg_CreateQueue() {
|
||||
nofralloc
|
||||
#include "asm/f_op/f_op_draw_tag/fopDwTg_CreateQueue__Fv.s"
|
||||
void fopDwTg_CreateQueue(void) {
|
||||
cTr_Create(&g_fopDwTg_Queue, lists, ARRAY_SIZE(lists));
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
// Translation Unit: f_op/f_op_kankyo_mng
|
||||
//
|
||||
|
||||
#include "f_op/f_op_kankyo_mng.h"
|
||||
// #include "f_op/f_op_kankyo_mng.h"
|
||||
#include "dol2asm.h"
|
||||
#include "dolphin/types.h"
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
// Translation Unit: f_op/f_op_msg_mng
|
||||
//
|
||||
|
||||
#include "f_op/f_op_msg_mng.h"
|
||||
// #include "f_op/f_op_msg_mng.h"
|
||||
#include "dol2asm.h"
|
||||
#include "dolphin/types.h"
|
||||
|
||||
|
||||
@@ -7,16 +7,6 @@
|
||||
#include "dol2asm.h"
|
||||
#include "dolphin/types.h"
|
||||
|
||||
//
|
||||
// Types:
|
||||
//
|
||||
|
||||
struct request_base_class {};
|
||||
|
||||
struct process_method_class {};
|
||||
|
||||
struct leafdraw_method_class {};
|
||||
|
||||
//
|
||||
// Forward References:
|
||||
//
|
||||
|
||||
+66
-108
@@ -6,18 +6,10 @@
|
||||
#include "f_op/f_op_overlap_mng.h"
|
||||
#include "dol2asm.h"
|
||||
#include "dolphin/types.h"
|
||||
|
||||
//
|
||||
// Types:
|
||||
//
|
||||
|
||||
struct scene_class {};
|
||||
|
||||
struct request_base_class {};
|
||||
|
||||
struct overlap_task_class {};
|
||||
|
||||
struct overlap_request_class {};
|
||||
#include "SSystem/SComponent/c_request.h"
|
||||
#include "f_op/f_op_overlap_req.h"
|
||||
#include "f_op/f_op_scene_pause.h"
|
||||
#include "f_pc/f_pc_executor.h"
|
||||
|
||||
//
|
||||
// Forward References:
|
||||
@@ -57,141 +49,107 @@ extern "C" void cReq_Done__FP18request_base_class();
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 804505B0-804505B8 000030 0004+04 10/10 0/0 0/0 .sdata l_fopOvlpM_overlap */
|
||||
SECTION_SDATA static u8 l_fopOvlpM_overlap[4 + 4 /* padding */] = {
|
||||
0x00,
|
||||
0x00,
|
||||
0x00,
|
||||
0x00,
|
||||
/* padding */
|
||||
0x00,
|
||||
0x00,
|
||||
0x00,
|
||||
0x00,
|
||||
};
|
||||
// making it not an array put it in .bss
|
||||
static request_base_class* l_fopOvlpM_overlap[1] = {NULL};
|
||||
|
||||
/* 8001E484-8001E4C4 018DC4 0040+00 0/0 1/1 0/0 .text fopOvlpM_SceneIsStop__Fv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void fopOvlpM_SceneIsStop() {
|
||||
nofralloc
|
||||
#include "asm/f_op/f_op_overlap_mng/fopOvlpM_SceneIsStop__Fv.s"
|
||||
int fopOvlpM_SceneIsStop(void) {
|
||||
if (l_fopOvlpM_overlap[0]) {
|
||||
return fopScnPause_Enable(
|
||||
(scene_class*)fpcEx_SearchByID(l_fopOvlpM_overlap[0]->field_0x20[0x32]));
|
||||
} else {
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8001E4C4-8001E504 018E04 0040+00 0/0 5/5 0/0 .text fopOvlpM_SceneIsStart__Fv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void fopOvlpM_SceneIsStart() {
|
||||
nofralloc
|
||||
#include "asm/f_op/f_op_overlap_mng/fopOvlpM_SceneIsStart__Fv.s"
|
||||
int fopOvlpM_SceneIsStart(void) {
|
||||
if (l_fopOvlpM_overlap[0]) {
|
||||
return fopScnPause_Disable(
|
||||
(scene_class*)fpcEx_SearchByID(l_fopOvlpM_overlap[0]->field_0x20[0x32]));
|
||||
} else {
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8001E504-8001E51C 018E44 0018+00 0/0 3/3 0/0 .text fopOvlpM_IsOutReq__FP18overlap_task_class */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void fopOvlpM_IsOutReq(overlap_task_class* param_0) {
|
||||
nofralloc
|
||||
#include "asm/f_op/f_op_overlap_mng/fopOvlpM_IsOutReq__FP18overlap_task_class.s"
|
||||
int fopOvlpM_IsOutReq(overlap_task_class* pTaskClass) {
|
||||
return (pTaskClass->field_0xc4 & 0x3F) == 2;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8001E51C-8001E540 018E5C 0024+00 0/0 6/6 0/0 .text fopOvlpM_Done__FP18overlap_task_class */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void fopOvlpM_Done(overlap_task_class* param_0) {
|
||||
nofralloc
|
||||
#include "asm/f_op/f_op_overlap_mng/fopOvlpM_Done__FP18overlap_task_class.s"
|
||||
void fopOvlpM_Done(overlap_task_class* pTaskClass) {
|
||||
cReq_Done((request_base_class*)&pTaskClass->field_0xc4);
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8001E540-8001E558 018E80 0018+00 0/0 1/1 0/0 .text fopOvlpM_ToldAboutID__FUi */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void fopOvlpM_ToldAboutID(unsigned int param_0) {
|
||||
nofralloc
|
||||
#include "asm/f_op/f_op_overlap_mng/fopOvlpM_ToldAboutID__FUi.s"
|
||||
void fopOvlpM_ToldAboutID(unsigned int param_1) {
|
||||
l_fopOvlpM_overlap[0] ? l_fopOvlpM_overlap[0]->field_0x20[0x32] = param_1 : 0;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8001E558-8001E574 018E98 001C+00 0/0 6/6 7/7 .text fopOvlpM_IsPeek__Fv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void fopOvlpM_IsPeek() {
|
||||
nofralloc
|
||||
#include "asm/f_op/f_op_overlap_mng/fopOvlpM_IsPeek__Fv.s"
|
||||
int fopOvlpM_IsPeek(void) {
|
||||
return l_fopOvlpM_overlap[0] ? l_fopOvlpM_overlap[0]->field_0x8 : 0;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8001E574-8001E5A8 018EB4 0034+00 0/0 1/1 0/0 .text fopOvlpM_IsDone__Fv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void fopOvlpM_IsDone() {
|
||||
nofralloc
|
||||
#include "asm/f_op/f_op_overlap_mng/fopOvlpM_IsDone__Fv.s"
|
||||
int fopOvlpM_IsDone(void) {
|
||||
return l_fopOvlpM_overlap[0] ? cReq_Is_Done(l_fopOvlpM_overlap[0]) : 0;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8001E5A8-8001E5D0 018EE8 0028+00 0/0 3/3 1/1 .text fopOvlpM_IsDoingReq__Fv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void fopOvlpM_IsDoingReq() {
|
||||
nofralloc
|
||||
#include "asm/f_op/f_op_overlap_mng/fopOvlpM_IsDoingReq__Fv.s"
|
||||
int fopOvlpM_IsDoingReq(void) {
|
||||
if (l_fopOvlpM_overlap[0] && l_fopOvlpM_overlap[0]->field_0x4 == 1) {
|
||||
return 1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8001E5D0-8001E604 018F10 0034+00 0/0 1/1 0/0 .text fopOvlpM_ClearOfReq__Fv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void fopOvlpM_ClearOfReq() {
|
||||
nofralloc
|
||||
#include "asm/f_op/f_op_overlap_mng/fopOvlpM_ClearOfReq__Fv.s"
|
||||
int fopOvlpM_ClearOfReq(void) {
|
||||
return l_fopOvlpM_overlap[0] ? fopOvlpReq_OverlapClr((overlap_request_class*)l_fopOvlpM_overlap[0]) :
|
||||
0;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 803F1DE8-803F1E10 01EB08 0028+00 1/1 0/0 0/0 .bss l_fopOvlpM_Request */
|
||||
static u8 l_fopOvlpM_Request[40];
|
||||
static overlap_request_class l_fopOvlpM_Request;
|
||||
|
||||
/* 8001E604-8001E650 018F44 004C+00 0/0 1/1 0/0 .text fopOvlpM_Request__FsUs */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void fopOvlpM_Request(s16 param_0, u16 param_1) {
|
||||
nofralloc
|
||||
#include "asm/f_op/f_op_overlap_mng/fopOvlpM_Request__FsUs.s"
|
||||
request_base_class* fopOvlpM_Request(s16 param_1, u16 param_2) {
|
||||
if (!l_fopOvlpM_overlap[0]) {
|
||||
request_base_class* tmp = fopOvlpReq_Request(&l_fopOvlpM_Request, param_1, param_2);
|
||||
l_fopOvlpM_overlap[0] = tmp;
|
||||
return tmp;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8001E650-8001E698 018F90 0048+00 0/0 1/1 0/0 .text fopOvlpM_Management__Fv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void fopOvlpM_Management() {
|
||||
nofralloc
|
||||
#include "asm/f_op/f_op_overlap_mng/fopOvlpM_Management__Fv.s"
|
||||
void fopOvlpM_Management(void) {
|
||||
if (l_fopOvlpM_overlap[0]) {
|
||||
int tmp = fopOvlpReq_Handler((overlap_request_class*)l_fopOvlpM_overlap[0]);
|
||||
if (6 <= tmp || 3 > tmp) {
|
||||
return;
|
||||
}
|
||||
l_fopOvlpM_overlap[0] = NULL;
|
||||
}
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8001E698-8001E6E8 018FD8 0050+00 0/0 1/1 0/0 .text fopOvlpM_Cancel__Fv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void fopOvlpM_Cancel() {
|
||||
nofralloc
|
||||
#include "asm/f_op/f_op_overlap_mng/fopOvlpM_Cancel__Fv.s"
|
||||
int fopOvlpM_Cancel(void) {
|
||||
if (!l_fopOvlpM_overlap[0]) {
|
||||
return 1;
|
||||
}
|
||||
if (fopOvlpReq_Cancel((overlap_request_class*)l_fopOvlpM_overlap[0]) == true) {
|
||||
l_fopOvlpM_overlap[0] = NULL;
|
||||
return 1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8001E6E8-8001E6EC 019028 0004+00 0/0 1/1 0/0 .text fopOvlpM_Init__Fv */
|
||||
void fopOvlpM_Init() {
|
||||
|
||||
+114
-112
@@ -4,21 +4,12 @@
|
||||
//
|
||||
|
||||
#include "f_op/f_op_overlap_req.h"
|
||||
#include "f_pc/f_pc_executor.h"
|
||||
#include "f_pc/f_pc_manager.h"
|
||||
#include "f_pc/f_pc_stdcreate_req.h"
|
||||
#include "dol2asm.h"
|
||||
#include "dolphin/types.h"
|
||||
|
||||
//
|
||||
// Types:
|
||||
//
|
||||
|
||||
struct request_of_phase_process_class {};
|
||||
|
||||
struct request_base_class {};
|
||||
|
||||
struct overlap_request_class {};
|
||||
|
||||
struct layer_class {};
|
||||
|
||||
//
|
||||
// Forward References:
|
||||
//
|
||||
@@ -57,162 +48,173 @@ extern "C" void cReq_Create__FP18request_base_classUc();
|
||||
extern "C" void _savegpr_29();
|
||||
extern "C" void _restgpr_29();
|
||||
|
||||
void fopOvlpReq_SetPeektime(overlap_request_class*, u16);
|
||||
|
||||
//
|
||||
// Declarations:
|
||||
//
|
||||
|
||||
/* 8001E6EC-8001E748 01902C 005C+00 2/1 0/0 0/0 .text
|
||||
* fopOvlpReq_phase_Done__FP21overlap_request_class */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
static asm void fopOvlpReq_phase_Done(overlap_request_class* param_0) {
|
||||
nofralloc
|
||||
#include "asm/f_op/f_op_overlap_req/fopOvlpReq_phase_Done__FP21overlap_request_class.s"
|
||||
static int fopOvlpReq_phase_Done(overlap_request_class* pOvlpReq) {
|
||||
if (fpcM_Delete(pOvlpReq->field_0x20) == 1) {
|
||||
pOvlpReq->field_0x20 = 0;
|
||||
pOvlpReq->field_0x4 = 0;
|
||||
pOvlpReq->mPeektime = 0;
|
||||
pOvlpReq->field_0x8 = 0;
|
||||
pOvlpReq->field_0xc = 0;
|
||||
return 2;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8001E748-8001E794 019088 004C+00 1/0 0/0 0/0 .text
|
||||
* fopOvlpReq_phase_IsDone__FP21overlap_request_class */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
static asm void fopOvlpReq_phase_IsDone(overlap_request_class* param_0) {
|
||||
nofralloc
|
||||
#include "asm/f_op/f_op_overlap_req/fopOvlpReq_phase_IsDone__FP21overlap_request_class.s"
|
||||
static s32 fopOvlpReq_phase_IsDone(overlap_request_class* param_1) {
|
||||
cReq_Done((request_base_class*)param_1);
|
||||
return param_1->field_0x2-- <= 0 ? 2 : 0;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8001E794-8001E7E4 0190D4 0050+00 1/0 0/0 0/0 .text
|
||||
* fopOvlpReq_phase_IsWaitOfFadeout__FP21overlap_request_class */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
static asm void fopOvlpReq_phase_IsWaitOfFadeout(overlap_request_class* param_0) {
|
||||
nofralloc
|
||||
#include "asm/f_op/f_op_overlap_req/fopOvlpReq_phase_IsWaitOfFadeout__FP21overlap_request_class.s"
|
||||
static int fopOvlpReq_phase_IsWaitOfFadeout(overlap_request_class* pOvlpReq) {
|
||||
if (cReq_Is_Done((request_base_class*)(pOvlpReq->field_0x20 + 0xC4))) {
|
||||
pOvlpReq->field_0x8 = 0;
|
||||
return 2;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8001E7E4-8001E854 019124 0070+00 1/0 0/0 0/0 .text
|
||||
* fopOvlpReq_phase_WaitOfFadeout__FP21overlap_request_class */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
static asm void fopOvlpReq_phase_WaitOfFadeout(overlap_request_class* param_0) {
|
||||
nofralloc
|
||||
#include "asm/f_op/f_op_overlap_req/fopOvlpReq_phase_WaitOfFadeout__FP21overlap_request_class.s"
|
||||
static int fopOvlpReq_phase_WaitOfFadeout(overlap_request_class* pOvlpReq) {
|
||||
if (pOvlpReq->mPeektime) {
|
||||
pOvlpReq->mPeektime--;
|
||||
}
|
||||
|
||||
if (((u8)(pOvlpReq->field_0x0 & 0x3F)) == 2 && !pOvlpReq->mPeektime) {
|
||||
cReq_Command((request_base_class*)(pOvlpReq->field_0x20 + 0xC4), 2);
|
||||
return 2;
|
||||
}
|
||||
|
||||
pOvlpReq->field_0x8 = 1;
|
||||
return 0;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8001E854-8001E8A4 019194 0050+00 1/0 0/0 0/0 .text
|
||||
* fopOvlpReq_phase_IsComplete__FP21overlap_request_class */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
static asm void fopOvlpReq_phase_IsComplete(overlap_request_class* param_0) {
|
||||
nofralloc
|
||||
#include "asm/f_op/f_op_overlap_req/fopOvlpReq_phase_IsComplete__FP21overlap_request_class.s"
|
||||
static int fopOvlpReq_phase_IsComplete(overlap_request_class* pOvlpReq) {
|
||||
if (cReq_Is_Done((request_base_class*)(pOvlpReq->field_0x20 + 0xC4))) {
|
||||
cReq_Done((request_base_class*)pOvlpReq);
|
||||
return 2;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8001E8A4-8001E904 0191E4 0060+00 1/0 0/0 0/0 .text
|
||||
* fopOvlpReq_phase_IsCreated__FP21overlap_request_class */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
static asm void fopOvlpReq_phase_IsCreated(overlap_request_class* param_0) {
|
||||
nofralloc
|
||||
#include "asm/f_op/f_op_overlap_req/fopOvlpReq_phase_IsCreated__FP21overlap_request_class.s"
|
||||
static int fopOvlpReq_phase_IsCreated(overlap_request_class* pOvlpReq) {
|
||||
if (fpcM_IsCreating(pOvlpReq->field_0x14) == 0) {
|
||||
base_process_class* pBaseProc = fpcEx_SearchByID(pOvlpReq->field_0x14);
|
||||
if (!pBaseProc) {
|
||||
return 5;
|
||||
}
|
||||
pOvlpReq->field_0x20 = (u8*)pBaseProc;
|
||||
return 2;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8001E904-8001E954 019244 0050+00 1/0 0/0 0/0 .text
|
||||
* fopOvlpReq_phase_Create__FP21overlap_request_class */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
static asm void fopOvlpReq_phase_Create(overlap_request_class* param_0) {
|
||||
nofralloc
|
||||
#include "asm/f_op/f_op_overlap_req/fopOvlpReq_phase_Create__FP21overlap_request_class.s"
|
||||
static int fopOvlpReq_phase_Create(overlap_request_class* pOvlpReq) {
|
||||
fpcLy_SetCurrentLayer(pOvlpReq->pCurrentLayer);
|
||||
pOvlpReq->field_0x14 = fpcSCtRq_Request(fpcLy_CurrentLayer(), pOvlpReq->field_0x10, 0, 0, 0);
|
||||
return 2;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 803A3890-803A38B0 -00001 0020+00 1/1 0/0 0/0 .data phaseMethod$2260 */
|
||||
SECTION_DATA static void* phaseMethod[8] = {
|
||||
(void*)fopOvlpReq_phase_Create__FP21overlap_request_class,
|
||||
(void*)fopOvlpReq_phase_IsCreated__FP21overlap_request_class,
|
||||
(void*)fopOvlpReq_phase_IsComplete__FP21overlap_request_class,
|
||||
(void*)fopOvlpReq_phase_WaitOfFadeout__FP21overlap_request_class,
|
||||
(void*)fopOvlpReq_phase_IsWaitOfFadeout__FP21overlap_request_class,
|
||||
(void*)fopOvlpReq_phase_IsDone__FP21overlap_request_class,
|
||||
(void*)fopOvlpReq_phase_Done__FP21overlap_request_class,
|
||||
(void*)NULL,
|
||||
cPhs__Handler phaseMethod[8] = {
|
||||
(cPhs__Handler)fopOvlpReq_phase_Create,
|
||||
(cPhs__Handler)fopOvlpReq_phase_IsCreated,
|
||||
(cPhs__Handler)fopOvlpReq_phase_IsComplete,
|
||||
(cPhs__Handler)fopOvlpReq_phase_WaitOfFadeout,
|
||||
(cPhs__Handler)fopOvlpReq_phase_IsWaitOfFadeout,
|
||||
(cPhs__Handler)fopOvlpReq_phase_IsDone,
|
||||
(cPhs__Handler)fopOvlpReq_phase_Done,
|
||||
(cPhs__Handler)NULL,
|
||||
};
|
||||
|
||||
/* 8001E954-8001E9F0 019294 009C+00 0/0 1/1 0/0 .text
|
||||
* fopOvlpReq_Request__FP21overlap_request_classsUs */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void fopOvlpReq_Request(overlap_request_class* param_0, s16 param_1, u16 param_2) {
|
||||
nofralloc
|
||||
#include "asm/f_op/f_op_overlap_req/fopOvlpReq_Request__FP21overlap_request_classsUs.s"
|
||||
request_base_class* fopOvlpReq_Request(overlap_request_class* pOvlpReq, s16 param_2, u16 param_3) {
|
||||
if (pOvlpReq->field_0x4 == 1) {
|
||||
pOvlpReq = 0;
|
||||
return (request_base_class*)pOvlpReq;
|
||||
}
|
||||
|
||||
cReq_Command((request_base_class*)pOvlpReq, 1);
|
||||
pOvlpReq->field_0x10 = param_2;
|
||||
cPhs_Set(&pOvlpReq->field_0x18, phaseMethod);
|
||||
fopOvlpReq_SetPeektime(pOvlpReq, param_3);
|
||||
pOvlpReq->field_0x4 = 1;
|
||||
pOvlpReq->field_0x2 = 1;
|
||||
pOvlpReq->field_0x20 = 0;
|
||||
pOvlpReq->field_0x8 = 0;
|
||||
pOvlpReq->field_0xc = 0;
|
||||
pOvlpReq->pCurrentLayer = fpcLy_RootLayer();
|
||||
return (request_base_class*)pOvlpReq;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8001E9F0-8001EA88 019330 0098+00 0/0 1/1 0/0 .text
|
||||
* fopOvlpReq_Handler__FP21overlap_request_class */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void fopOvlpReq_Handler(overlap_request_class* param_0) {
|
||||
nofralloc
|
||||
#include "asm/f_op/f_op_overlap_req/fopOvlpReq_Handler__FP21overlap_request_class.s"
|
||||
int fopOvlpReq_Handler(overlap_request_class* pOvlpReq) {
|
||||
int phsDo = cPhs_Do(&pOvlpReq->field_0x18, pOvlpReq);
|
||||
switch (phsDo) {
|
||||
case 2:
|
||||
return fopOvlpReq_Handler(pOvlpReq);
|
||||
case 0:
|
||||
return 0;
|
||||
case 1:
|
||||
return 0;
|
||||
case 4:
|
||||
return 4;
|
||||
case 3:
|
||||
case 5:
|
||||
return 5;
|
||||
default:
|
||||
return 5;
|
||||
}
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8001EA88-8001EAB4 0193C8 002C+00 0/0 1/1 0/0 .text fopOvlpReq_Cancel__FP21overlap_request_class
|
||||
*/
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void fopOvlpReq_Cancel(overlap_request_class* param_0) {
|
||||
nofralloc
|
||||
#include "asm/f_op/f_op_overlap_req/fopOvlpReq_Cancel__FP21overlap_request_class.s"
|
||||
int fopOvlpReq_Cancel(overlap_request_class* pOvlpReq) {
|
||||
return fopOvlpReq_phase_Done(pOvlpReq) == 2 ? 1 : 0;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8001EAB4-8001EAC4 0193F4 0010+00 1/1 0/0 0/0 .text
|
||||
* fopOvlpReq_Is_PeektimeLimit__FP21overlap_request_class */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
static asm void fopOvlpReq_Is_PeektimeLimit(overlap_request_class* param_0) {
|
||||
nofralloc
|
||||
#include "asm/f_op/f_op_overlap_req/fopOvlpReq_Is_PeektimeLimit__FP21overlap_request_class.s"
|
||||
int fopOvlpReq_Is_PeektimeLimit(overlap_request_class* pOvlpReq) {
|
||||
return pOvlpReq->mPeektime == 0 ? 1 : 0;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8001EAC4-8001EAD8 019404 0014+00 1/1 0/0 0/0 .text
|
||||
* fopOvlpReq_SetPeektime__FP21overlap_request_classUs */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
static asm void fopOvlpReq_SetPeektime(overlap_request_class* param_0, u16 param_1) {
|
||||
nofralloc
|
||||
#include "asm/f_op/f_op_overlap_req/fopOvlpReq_SetPeektime__FP21overlap_request_classUs.s"
|
||||
void fopOvlpReq_SetPeektime(overlap_request_class* pOvlpReq, u16 param_2) {
|
||||
if (0x7fff < param_2) {
|
||||
return;
|
||||
}
|
||||
pOvlpReq->mPeektime = param_2;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8001EAD8-8001EB34 019418 005C+00 0/0 1/1 0/0 .text
|
||||
* fopOvlpReq_OverlapClr__FP21overlap_request_class */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void fopOvlpReq_OverlapClr(overlap_request_class* param_0) {
|
||||
nofralloc
|
||||
#include "asm/f_op/f_op_overlap_req/fopOvlpReq_OverlapClr__FP21overlap_request_class.s"
|
||||
int fopOvlpReq_OverlapClr(overlap_request_class* pOvlpReq) {
|
||||
if ((u8)((pOvlpReq->field_0x0 >> 7) & 1) == 1 || !fopOvlpReq_Is_PeektimeLimit(pOvlpReq)) {
|
||||
return 0;
|
||||
}
|
||||
cReq_Create((request_base_class*)pOvlpReq, 2);
|
||||
return 1;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
+23
-39
@@ -7,18 +7,6 @@
|
||||
#include "dol2asm.h"
|
||||
#include "dolphin/types.h"
|
||||
|
||||
//
|
||||
// Types:
|
||||
//
|
||||
|
||||
struct scene_tag_class {};
|
||||
|
||||
struct scene_class {};
|
||||
|
||||
struct process_method_class {};
|
||||
|
||||
struct nodedraw_method_class {};
|
||||
|
||||
//
|
||||
// Forward References:
|
||||
//
|
||||
@@ -48,44 +36,40 @@ extern "C" void fpcNd_DrawMethod__FP21nodedraw_method_classPv();
|
||||
//
|
||||
|
||||
/* 8001EB34-8001EB5C 019474 0028+00 1/0 0/0 0/0 .text fopScn_Draw__FP11scene_class */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
static asm void fopScn_Draw(scene_class* param_0) {
|
||||
nofralloc
|
||||
#include "asm/f_op/f_op_scene/fopScn_Draw__FP11scene_class.s"
|
||||
static void fopScn_Draw(scene_class* pScene) {
|
||||
fpcNd_DrawMethod((nodedraw_method_class*)pScene->mpProcessMtd, pScene);
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8001EB5C-8001EB84 01949C 0028+00 1/0 0/0 0/0 .text fopScn_Execute__FP11scene_class */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
static asm void fopScn_Execute(scene_class* param_0) {
|
||||
nofralloc
|
||||
#include "asm/f_op/f_op_scene/fopScn_Execute__FP11scene_class.s"
|
||||
static void fopScn_Execute(scene_class* pScene) {
|
||||
fpcMtd_Execute(pScene->mpProcessMtd, pScene);
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8001EB84-8001EBAC 0194C4 0028+00 1/0 0/0 0/0 .text fopScn_IsDelete__FPv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
static asm void fopScn_IsDelete(void* param_0) {
|
||||
nofralloc
|
||||
#include "asm/f_op/f_op_scene/fopScn_IsDelete__FPv.s"
|
||||
static s32 fopScn_IsDelete(void* param_1) {
|
||||
return fpcMtd_IsDelete(((scene_class*)param_1)->mpProcessMtd, param_1);
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8001EBAC-8001EC00 0194EC 0054+00 1/0 0/0 0/0 .text fopScn_Delete__FPv */
|
||||
#ifdef NON_MATCHING
|
||||
static s32 fopScn_Delete(void* param_1) {
|
||||
scene_class* pScene = (scene_class*)param_1;
|
||||
s32 ret = fpcMtd_Delete(pScene->mpProcessMtd, param_1);
|
||||
if (ret == 1) {
|
||||
fopScnTg_QueueTo(pScene->field_0x1b0);
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
static asm void fopScn_Delete(void* param_0) {
|
||||
static asm s32 fopScn_Delete(void* param_0) {
|
||||
nofralloc
|
||||
#include "asm/f_op/f_op_scene/fopScn_Delete__FPv.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* 8001EC00-8001EC74 019540 0074+00 1/0 0/0 0/0 .text fopScn_Create__FPv */
|
||||
#pragma push
|
||||
@@ -100,11 +84,11 @@ static asm void fopScn_Create(void* param_0) {
|
||||
/* ############################################################################################## */
|
||||
/* 803A38B0-803A38C8 -00001 0014+04 0/0 9/0 0/0 .data g_fopScn_Method */
|
||||
SECTION_DATA extern void* g_fopScn_Method[5 + 1 /* padding */] = {
|
||||
(void*)fopScn_Create__FPv,
|
||||
(void*)fopScn_Delete__FPv,
|
||||
(void*)fopScn_Execute__FP11scene_class,
|
||||
(void*)fopScn_IsDelete__FPv,
|
||||
(void*)fopScn_Draw__FP11scene_class,
|
||||
(void*)fopScn_Create,
|
||||
(void*)fopScn_Delete,
|
||||
(void*)fopScn_Execute,
|
||||
(void*)fopScn_IsDelete,
|
||||
(void*)fopScn_Draw,
|
||||
/* padding */
|
||||
NULL,
|
||||
};
|
||||
|
||||
@@ -6,43 +6,23 @@
|
||||
#include "f_op/f_op_scene_iter.h"
|
||||
#include "dol2asm.h"
|
||||
#include "dolphin/types.h"
|
||||
|
||||
//
|
||||
// Types:
|
||||
//
|
||||
|
||||
struct node_list_class {};
|
||||
|
||||
struct node_class {};
|
||||
|
||||
struct judge_filter {};
|
||||
|
||||
struct create_tag_class {};
|
||||
|
||||
//
|
||||
// Forward References:
|
||||
//
|
||||
|
||||
extern "C" void fopScnIt_Judge__FPFPvPv_PvPv();
|
||||
|
||||
//
|
||||
// External References:
|
||||
//
|
||||
|
||||
extern "C" void cLsIt_Judge__FP15node_list_classPFP10node_classPv_PvPv();
|
||||
extern "C" void cTgIt_JudgeFilter__FP16create_tag_classP12judge_filter();
|
||||
extern "C" extern u8 g_fopScnTg_SceneList[12 + 4 /* padding */];
|
||||
#include "SSystem/SComponent/c_list.h"
|
||||
#include "SSystem/SComponent/c_list_iter.h"
|
||||
#include "SSystem/SComponent/c_tag_iter.h"
|
||||
#include "f_op/f_op_scene_tag.h"
|
||||
|
||||
//
|
||||
// Declarations:
|
||||
//
|
||||
|
||||
/* 8001EC74-8001ECB0 0195B4 003C+00 0/0 1/1 0/0 .text fopScnIt_Judge__FPFPvPv_PvPv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void fopScnIt_Judge(void* (*)(void*, void*), void* param_1) {
|
||||
nofralloc
|
||||
#include "asm/f_op/f_op_scene_iter/fopScnIt_Judge__FPFPvPv_PvPv.s"
|
||||
void* fopScnIt_Judge(fop_ScnItFunc pFunc1, void* pData) {
|
||||
struct {
|
||||
fop_ScnItFunc mFunc;
|
||||
void* mpData;
|
||||
} iterParams;
|
||||
|
||||
iterParams.mFunc = pFunc1;
|
||||
iterParams.mpData = pData;
|
||||
return cLsIt_Judge(&g_fopScnTg_SceneList, (cNdIt_JudgeFunc)cTgIt_JudgeFilter, &iterParams);
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
+28
-75
@@ -4,109 +4,62 @@
|
||||
//
|
||||
|
||||
#include "f_op/f_op_scene_mng.h"
|
||||
#include "f_op/f_op_scene_iter.h"
|
||||
#include "f_op/f_op_scene_req.h"
|
||||
#include "f_pc/f_pc_searcher.h"
|
||||
#include "dol2asm.h"
|
||||
#include "dolphin/types.h"
|
||||
|
||||
//
|
||||
// Types:
|
||||
//
|
||||
|
||||
struct scene_class {};
|
||||
|
||||
//
|
||||
// Forward References:
|
||||
//
|
||||
|
||||
extern "C" void fopScnM_SearchByID__FUi();
|
||||
extern "C" void fopScnM_ChangeReq__FP11scene_classssUs();
|
||||
extern "C" void fopScnM_DeleteReq__FP11scene_class();
|
||||
extern "C" void fopScnM_CreateReq__FssUsUl();
|
||||
extern "C" void fopScnM_ReRequest__FsUl();
|
||||
extern "C" void fopScnM_Management__Fv();
|
||||
extern "C" void fopScnM_Init__Fv();
|
||||
|
||||
//
|
||||
// External References:
|
||||
//
|
||||
|
||||
extern "C" void fopScnIt_Judge__FPFPvPv_PvPv();
|
||||
extern "C" void fopScnRq_Request__FiP11scene_classsPvsUs();
|
||||
extern "C" void fopScnRq_ReRequest__FUisPv();
|
||||
extern "C" void fopScnRq_Handler__Fv();
|
||||
extern "C" void fpcSch_JudgeByID__FPvPv();
|
||||
|
||||
//
|
||||
// Declarations:
|
||||
//
|
||||
|
||||
/* 8001ECB0-8001ECE0 0195F0 0030+00 0/0 7/7 1/1 .text fopScnM_SearchByID__FUi */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void fopScnM_SearchByID(unsigned int param_0) {
|
||||
nofralloc
|
||||
#include "asm/f_op/f_op_scene_mng/fopScnM_SearchByID__FUi.s"
|
||||
void* fopScnM_SearchByID(unsigned int id) {
|
||||
return fopScnIt_Judge((fop_ScnItFunc)fpcSch_JudgeByID, &id);
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 804505B8-804505C0 000038 0004+04 2/2 0/0 0/0 .sdata l_scnRqID */
|
||||
SECTION_SDATA static u32 l_scnRqID[1 + 1 /* padding */] = {
|
||||
0xFFFFFFFF,
|
||||
/* padding */
|
||||
0x00000000,
|
||||
};
|
||||
static u32 l_scnRqID = 0xFFFFFFFF;
|
||||
|
||||
/* 8001ECE0-8001ED3C 019620 005C+00 0/0 4/4 1/1 .text fopScnM_ChangeReq__FP11scene_classssUs */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void fopScnM_ChangeReq(scene_class* param_0, s16 param_1, s16 param_2, u16 param_3) {
|
||||
nofralloc
|
||||
#include "asm/f_op/f_op_scene_mng/fopScnM_ChangeReq__FP11scene_classssUs.s"
|
||||
int fopScnM_ChangeReq(scene_class* pScene, s16 param_2, s16 param_3, u16 param_4) {
|
||||
u32 sceneRequestID = fopScnRq_Request(2, pScene, param_2, 0, param_3, param_4);
|
||||
|
||||
if (sceneRequestID == 0xFFFFFFFF) {
|
||||
return 0;
|
||||
}
|
||||
l_scnRqID = sceneRequestID;
|
||||
return 1;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8001ED3C-8001ED84 01967C 0048+00 0/0 1/1 0/0 .text fopScnM_DeleteReq__FP11scene_class
|
||||
*/
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void fopScnM_DeleteReq(scene_class* param_0) {
|
||||
nofralloc
|
||||
#include "asm/f_op/f_op_scene_mng/fopScnM_DeleteReq__FP11scene_class.s"
|
||||
unsigned int fopScnM_DeleteReq(scene_class* pScene) {
|
||||
u32 sceneRequestID = fopScnRq_Request(1, pScene, 0x7fff, 0, 0x7fff, 0);
|
||||
return sceneRequestID != 0xFFFFFFFF;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8001ED84-8001EDCC 0196C4 0048+00 0/0 2/2 0/0 .text fopScnM_CreateReq__FssUsUl */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void fopScnM_CreateReq(s16 param_0, s16 param_1, u16 param_2, u32 param_3) {
|
||||
nofralloc
|
||||
#include "asm/f_op/f_op_scene_mng/fopScnM_CreateReq__FssUsUl.s"
|
||||
int fopScnM_CreateReq(s16 param_1, s16 param_2, u16 param_3, u32 param_4) {
|
||||
u32 sceneRequestID = fopScnRq_Request(0, 0, param_1, (void*)param_4, param_2, param_3);
|
||||
return sceneRequestID != 0xFFFFFFFF;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8001EDCC-8001EE10 01970C 0044+00 0/0 1/1 0/0 .text fopScnM_ReRequest__FsUl */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void fopScnM_ReRequest(s16 param_0, u32 param_1) {
|
||||
nofralloc
|
||||
#include "asm/f_op/f_op_scene_mng/fopScnM_ReRequest__FsUl.s"
|
||||
u32 fopScnM_ReRequest(s16 param_1, u32 param_2) {
|
||||
if (l_scnRqID == 0xFFFFFFFF) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
return fopScnRq_ReRequest(l_scnRqID, param_1, (void*)param_2);
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8001EE10-8001EE30 019750 0020+00 0/0 1/1 0/0 .text fopScnM_Management__Fv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void fopScnM_Management() {
|
||||
nofralloc
|
||||
#include "asm/f_op/f_op_scene_mng/fopScnM_Management__Fv.s"
|
||||
void fopScnM_Management(void) {
|
||||
fopScnRq_Handler();
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8001EE30-8001EE34 019770 0004+00 0/0 1/1 0/0 .text fopScnM_Init__Fv */
|
||||
void fopScnM_Init() {
|
||||
|
||||
@@ -4,52 +4,44 @@
|
||||
//
|
||||
|
||||
#include "f_op/f_op_scene_pause.h"
|
||||
#include "f_pc/f_pc_executor.h"
|
||||
#include "f_pc/f_pc_manager.h"
|
||||
#include "dol2asm.h"
|
||||
#include "dolphin/types.h"
|
||||
|
||||
//
|
||||
// Types:
|
||||
//
|
||||
|
||||
struct scene_class {};
|
||||
|
||||
//
|
||||
// Forward References:
|
||||
//
|
||||
|
||||
extern "C" void fopScnPause_Enable__FP11scene_class();
|
||||
extern "C" void fopScnPause_Disable__FP11scene_class();
|
||||
|
||||
//
|
||||
// External References:
|
||||
//
|
||||
|
||||
extern "C" void fpcEx_IsExist__FUi();
|
||||
extern "C" void fpcM_IsPause__FPvUc();
|
||||
extern "C" void fpcM_PauseEnable__FPvUc();
|
||||
extern "C" void fpcM_PauseDisable__FPvUc();
|
||||
|
||||
//
|
||||
// Declarations:
|
||||
//
|
||||
|
||||
/* 80020548-80020594 01AE88 004C+00 0/0 2/2 0/0 .text fopScnPause_Enable__FP11scene_class
|
||||
*/
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void fopScnPause_Enable(scene_class* param_0) {
|
||||
nofralloc
|
||||
#include "asm/f_op/f_op_scene_pause/fopScnPause_Enable__FP11scene_class.s"
|
||||
int fopScnPause_Enable(scene_class* pScene) {
|
||||
if (pScene) {
|
||||
fpcM_PauseEnable(pScene, 1);
|
||||
fpcM_PauseEnable(pScene, 2);
|
||||
return 1;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80020594-8002064C 01AED4 00B8+00 0/0 2/2 0/0 .text fopScnPause_Disable__FP11scene_class */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void fopScnPause_Disable(scene_class* param_0) {
|
||||
nofralloc
|
||||
#include "asm/f_op/f_op_scene_pause/fopScnPause_Disable__FP11scene_class.s"
|
||||
int fopScnPause_Disable(scene_class* pScene) {
|
||||
if (pScene) {
|
||||
void* tmp = (void*)pScene->field_0x2C[6];
|
||||
|
||||
if (!tmp) {
|
||||
fpcM_PauseDisable(pScene, 1);
|
||||
fpcM_PauseDisable(pScene, 2);
|
||||
} else if (fpcEx_IsExist((s32)((int*)tmp)[1]) == 1) {
|
||||
if (!fpcM_IsPause(tmp, 1)) {
|
||||
fpcM_PauseDisable(pScene, 1);
|
||||
}
|
||||
|
||||
if (!fpcM_IsPause(tmp, 2)) {
|
||||
fpcM_PauseDisable(pScene, 2);
|
||||
}
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
// Translation Unit: f_op/f_op_scene_req
|
||||
//
|
||||
|
||||
#include "f_op/f_op_scene_req.h"
|
||||
// #include "f_op/f_op_scene_req.h"
|
||||
#include "dol2asm.h"
|
||||
#include "dolphin/types.h"
|
||||
|
||||
|
||||
@@ -7,84 +7,25 @@
|
||||
#include "dol2asm.h"
|
||||
#include "dolphin/types.h"
|
||||
|
||||
//
|
||||
// Types:
|
||||
//
|
||||
|
||||
struct scene_tag_class {};
|
||||
|
||||
struct node_list_class {};
|
||||
|
||||
struct create_tag_class {};
|
||||
|
||||
//
|
||||
// Forward References:
|
||||
//
|
||||
|
||||
extern "C" void fopScnTg_QueueTo__FP15scene_tag_class();
|
||||
extern "C" void fopScnTg_ToQueue__FP15scene_tag_class();
|
||||
extern "C" void fopScnTg_Init__FP15scene_tag_classPv();
|
||||
|
||||
//
|
||||
// External References:
|
||||
//
|
||||
|
||||
extern "C" void cTg_SingleCut__FP16create_tag_class();
|
||||
extern "C" void cTg_Addition__FP15node_list_classP16create_tag_class();
|
||||
extern "C" void cTg_Create__FP16create_tag_classPv();
|
||||
|
||||
//
|
||||
// Declarations:
|
||||
//
|
||||
|
||||
/* 8001F13C-8001F15C 019A7C 0020+00 0/0 1/1 0/0 .text fopScnTg_QueueTo__FP15scene_tag_class */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void fopScnTg_QueueTo(scene_tag_class* param_0) {
|
||||
nofralloc
|
||||
#include "asm/f_op/f_op_scene_tag/fopScnTg_QueueTo__FP15scene_tag_class.s"
|
||||
void fopScnTg_QueueTo(scene_tag_class* pSceneTag) {
|
||||
cTg_SingleCut((create_tag_class*)pSceneTag);
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 803A3918-803A3928 000A38 000C+04 1/1 1/1 0/0 .data g_fopScnTg_SceneList */
|
||||
SECTION_DATA extern u8 g_fopScnTg_SceneList[12 + 4 /* padding */] = {
|
||||
0x00,
|
||||
0x00,
|
||||
0x00,
|
||||
0x00,
|
||||
0x00,
|
||||
0x00,
|
||||
0x00,
|
||||
0x00,
|
||||
0x00,
|
||||
0x00,
|
||||
0x00,
|
||||
0x00,
|
||||
/* padding */
|
||||
0x00,
|
||||
0x00,
|
||||
0x00,
|
||||
0x00,
|
||||
};
|
||||
node_list_class g_fopScnTg_SceneList = {NULL, NULL, 0};
|
||||
|
||||
/* 8001F15C-8001F188 019A9C 002C+00 0/0 1/1 0/0 .text fopScnTg_ToQueue__FP15scene_tag_class */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void fopScnTg_ToQueue(scene_tag_class* param_0) {
|
||||
nofralloc
|
||||
#include "asm/f_op/f_op_scene_tag/fopScnTg_ToQueue__FP15scene_tag_class.s"
|
||||
void fopScnTg_ToQueue(scene_tag_class* pSceneTag) {
|
||||
cTg_Addition(&g_fopScnTg_SceneList, (create_tag_class*)pSceneTag);
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8001F188-8001F1A8 019AC8 0020+00 0/0 1/1 0/0 .text fopScnTg_Init__FP15scene_tag_classPv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void fopScnTg_Init(scene_tag_class* param_0, void* param_1) {
|
||||
nofralloc
|
||||
#include "asm/f_op/f_op_scene_tag/fopScnTg_Init__FP15scene_tag_classPv.s"
|
||||
void fopScnTg_Init(scene_tag_class* pSceneTag, void* pData) {
|
||||
cTg_Create((create_tag_class*)pSceneTag, pData);
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
+14
-43
@@ -7,16 +7,6 @@
|
||||
#include "dol2asm.h"
|
||||
#include "dolphin/types.h"
|
||||
|
||||
//
|
||||
// Types:
|
||||
//
|
||||
|
||||
struct view_class {};
|
||||
|
||||
struct process_method_class {};
|
||||
|
||||
struct leafdraw_method_class {};
|
||||
|
||||
//
|
||||
// Forward References:
|
||||
//
|
||||
@@ -43,44 +33,25 @@ extern "C" void fpcMtd_Create__FP20process_method_classPv();
|
||||
//
|
||||
|
||||
/* 8001F1A8-8001F1D0 019AE8 0028+00 1/0 0/0 0/0 .text fopVw_Draw__FP10view_class */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
static asm void fopVw_Draw(view_class* param_0) {
|
||||
nofralloc
|
||||
#include "asm/f_op/f_op_view/fopVw_Draw__FP10view_class.s"
|
||||
void fopVw_Draw(view_class* pView) {
|
||||
fpcLf_DrawMethod((leafdraw_method_class*)pView->pmProcessMtd, pView);
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8001F1D0-8001F1F8 019B10 0028+00 1/0 0/0 0/0 .text fopVw_Execute__FP10view_class */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
static asm void fopVw_Execute(view_class* param_0) {
|
||||
nofralloc
|
||||
#include "asm/f_op/f_op_view/fopVw_Execute__FP10view_class.s"
|
||||
void fopVw_Execute(view_class* pView) {
|
||||
fpcMtd_Execute(pView->pmProcessMtd, pView);
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8001F1F8-8001F220 019B38 0028+00 1/0 0/0 0/0 .text fopVw_IsDelete__FPv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
static asm void fopVw_IsDelete(void* param_0) {
|
||||
nofralloc
|
||||
#include "asm/f_op/f_op_view/fopVw_IsDelete__FPv.s"
|
||||
s32 fopVw_IsDelete(void* param_1) {
|
||||
view_class* pView = (view_class*)param_1;
|
||||
return fpcMtd_IsDelete(pView->pmProcessMtd, pView);
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8001F220-8001F248 019B60 0028+00 1/0 0/0 0/0 .text fopVw_Delete__FP10view_class */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
static asm void fopVw_Delete(view_class* param_0) {
|
||||
nofralloc
|
||||
#include "asm/f_op/f_op_view/fopVw_Delete__FP10view_class.s"
|
||||
s32 fopVw_Delete(view_class* pView) {
|
||||
return fpcMtd_Delete(pView->pmProcessMtd, pView);
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8001F248-8001F284 019B88 003C+00 1/0 0/0 0/0 .text fopVw_Create__FPv */
|
||||
#pragma push
|
||||
@@ -95,11 +66,11 @@ static asm void fopVw_Create(void* param_0) {
|
||||
/* ############################################################################################## */
|
||||
/* 803A3928-803A3940 -00001 0014+04 0/0 2/0 0/0 .data g_fopVw_Method */
|
||||
SECTION_DATA extern void* g_fopVw_Method[5 + 1 /* padding */] = {
|
||||
(void*)fopVw_Create__FPv,
|
||||
(void*)fopVw_Delete__FP10view_class,
|
||||
(void*)fopVw_Execute__FP10view_class,
|
||||
(void*)fopVw_IsDelete__FPv,
|
||||
(void*)fopVw_Draw__FP10view_class,
|
||||
(void*)fopVw_Create,
|
||||
(void*)fopVw_Delete,
|
||||
(void*)fopVw_Execute,
|
||||
(void*)fopVw_IsDelete,
|
||||
(void*)fopVw_Draw,
|
||||
/* padding */
|
||||
NULL,
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user