fopCam_Draw OK, fopCam_IsDelete OK, fopCam_Delete OK

This commit is contained in:
Pheenoh 2021-02-15 18:19:39 -05:00
parent 116b40f7bb
commit 1d3c5cd1cf
No known key found for this signature in database
GPG Key ID: 4312662758CE7D5A
16 changed files with 86 additions and 49 deletions

View File

@ -306,7 +306,7 @@ lbl_80018F5C:
/* 80018FA0 00015EE0 2C 1E 00 01 */ cmpwi r30, 1
/* 80018FA4 00015EE4 40 82 00 0C */ bne lbl_80018FB0
/* 80018FA8 00015EE8 38 7F 00 D8 */ addi r3, r31, 0xd8
/* 80018FAC 00015EEC 48 00 75 29 */ bl fopDwTg_DrawQTo
/* 80018FAC 00015EEC 48 00 75 29 */ bl fopDwTg_DrawQTo__FP16create_tag_class
lbl_80018FB0:
/* 80018FB0 00015EF0 7F C3 F3 78 */ mr r3, r30
/* 80018FB4 00015EF4 83 E1 00 0C */ lwz r31, 0xc(r1)
@ -330,7 +330,7 @@ lbl_80018FB0:
/* 80018FFC 00015F3C 38 7F 00 C4 */ addi r3, r31, 0xc4
/* 80019000 00015F40 48 00 08 61 */ bl fopAcTg_ActorQTo
/* 80019004 00015F44 38 7F 00 D8 */ addi r3, r31, 0xd8
/* 80019008 00015F48 48 00 74 CD */ bl fopDwTg_DrawQTo
/* 80019008 00015F48 48 00 74 CD */ bl fopDwTg_DrawQTo__FP16create_tag_class
/* 8001900C 00015F4C 7F E3 FB 78 */ mr r3, r31
/* 80019010 00015F50 48 00 11 29 */ bl fopAcM_DeleteHeap__FP10fopAc_ac_c
/* 80019014 00015F54 80 6D 88 A0 */ lwz r3, lbl_80450E20-_SDA_BASE_(r13)

View File

@ -72,6 +72,7 @@ private:
#pragma pack(push, 1)
class dComIfG_play_c {
public:
bool& getField0x4f7d() { return field_0x4f7d; }
void ct(void);
void init(void);
void itemInit(void);
@ -202,9 +203,11 @@ private: // NEEDS TO BE FIXED
/* 0x04F46 */ u8 mItemID;
/* 0x04F47 */ u8 field_0x4f47[0x13];
/* 0x04F5A */ u8 mNowVibration;
/* 0x04F5B */ u8 field_0x4f5b[0x23];
/* 0x04F5B */ u8 field_0x4f5b[0x22];
/* 0x04F7D */ bool field_0x4f7d;
/* 0x04F7E */ u8 unk_heart;
/* 0x04F7F */ u8 field_0x4f7f[0x79];
/* 0x04F7F */ u8 field_0x4f7f;
/* 0x04F80 */ u8 field_0x4f80[0x78];
/* 0x04FF8 */ u32 mTimerPtr;
/* 0x04FFC */ int mTimerNowTimeMs;
/* 0x05000 */ int mTimerLimitTimeMs;

View File

@ -0,0 +1,8 @@
#ifndef F_F_OP_CAMERA_H_
#define F_F_OP_CAMERA_H_
#include "f/f_op/f_op_camera_mng.h"
s32 fopCam_Draw(camera_class* param_1);
void fopCam_Execute(camera_class* pCamera);
int fopCam_IsDelete(camera_class* pCamera);
#endif

View File

@ -11,7 +11,7 @@
/* 8001E1F0 0001B130 2C 1F 00 01 */ cmpwi r31, 1
/* 8001E1F4 0001B134 40 82 00 0C */ bne lbl_8001E200
/* 8001E1F8 0001B138 38 7E 02 10 */ addi r3, r30, 0x210
/* 8001E1FC 0001B13C 48 00 22 D9 */ bl fopDwTg_DrawQTo
/* 8001E1FC 0001B13C 48 00 22 D9 */ bl fopDwTg_DrawQTo__FP16create_tag_class
lbl_8001E200:
/* 8001E200 0001B140 7F E3 FB 78 */ mr r3, r31
/* 8001E204 0001B144 83 E1 00 0C */ lwz r31, 0xc(r1)

View File

@ -11,7 +11,7 @@
/* 8001E244 0001B184 2C 1F 00 01 */ cmpwi r31, 1
/* 8001E248 0001B188 40 82 00 0C */ bne lbl_8001E254
/* 8001E24C 0001B18C 38 7E 02 10 */ addi r3, r30, 0x210
/* 8001E250 0001B190 48 00 22 85 */ bl fopDwTg_DrawQTo
/* 8001E250 0001B190 48 00 22 85 */ bl fopDwTg_DrawQTo__FP16create_tag_class
lbl_8001E254:
/* 8001E254 0001B194 7F E3 FB 78 */ mr r3, r31
/* 8001E258 0001B198 83 E1 00 0C */ lwz r31, 0xc(r1)

View File

@ -2,11 +2,16 @@
#define F_F_OP_CAMERA_MNG_H_
#include "dolphin/types.h"
#include "f/f_op/f_op_draw_tag.h"
#include "f/f_pc/f_pc_leaf.h"
class camera_class {
public:
/* 0x00 */ u8 field_0x00[0xb0];
/* 0xB0 */ u32 parameter;
/* 0x000 */ u8 field_0x00[0xB0];
/* 0x0B0 */ u32 parameter;
/* 0x0B4 */ u8 field_0xB4[0x15C];
/* 0x210 */ create_tag_class pCreateTag;
/* 0x224 */ leafdraw_method_class* pMthd;
};
void fopCamM_Management(void);

View File

@ -0,0 +1,8 @@
#ifndef F_F_OP_DRAW_TAG
#define F_F_OP_DRAW_TAG
#include "SComponent/c_tag.h"
void fopDwTg_DrawQTo(create_tag_class* pTag);
#endif

View File

@ -11,7 +11,7 @@
/* 8001F33C 0001C27C 2C 1F 00 01 */ cmpwi r31, 1
/* 8001F340 0001C280 40 82 00 0C */ bne lbl_8001F34C
/* 8001F344 0001C284 38 7E 00 C4 */ addi r3, r30, 0xc4
/* 8001F348 0001C288 48 00 11 8D */ bl fopDwTg_DrawQTo
/* 8001F348 0001C288 48 00 11 8D */ bl fopDwTg_DrawQTo__FP16create_tag_class
lbl_8001F34C:
/* 8001F34C 0001C28C 7F E3 FB 78 */ mr r3, r31
/* 8001F350 0001C290 83 E1 00 0C */ lwz r31, 0xc(r1)

View File

@ -9,7 +9,7 @@
/* 8001F388 0001C2C8 48 00 31 21 */ bl fpcMtd_Delete
/* 8001F38C 0001C2CC 7C 7E 1B 78 */ mr r30, r3
/* 8001F390 0001C2D0 38 7F 00 C4 */ addi r3, r31, 0xc4
/* 8001F394 0001C2D4 48 00 11 41 */ bl fopDwTg_DrawQTo
/* 8001F394 0001C2D4 48 00 11 41 */ bl fopDwTg_DrawQTo__FP16create_tag_class
/* 8001F398 0001C2D8 7F C3 F3 78 */ mr r3, r30
/* 8001F39C 0001C2DC 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 8001F3A0 0001C2E0 83 C1 00 08 */ lwz r30, 8(r1)

View File

@ -11,7 +11,7 @@
/* 8001F510 0001C450 2C 1F 00 01 */ cmpwi r31, 1
/* 8001F514 0001C454 40 82 00 0C */ bne lbl_8001F520
/* 8001F518 0001C458 38 7E 00 C4 */ addi r3, r30, 0xc4
/* 8001F51C 0001C45C 48 00 0F B9 */ bl fopDwTg_DrawQTo
/* 8001F51C 0001C45C 48 00 0F B9 */ bl fopDwTg_DrawQTo__FP16create_tag_class
lbl_8001F520:
/* 8001F520 0001C460 7F E3 FB 78 */ mr r3, r31
/* 8001F524 0001C464 83 E1 00 0C */ lwz r31, 0xc(r1)

View File

@ -9,7 +9,7 @@
/* 8001F55C 0001C49C 48 00 2F 4D */ bl fpcMtd_Delete
/* 8001F560 0001C4A0 7C 7F 1B 78 */ mr r31, r3
/* 8001F564 0001C4A4 38 7E 00 C4 */ addi r3, r30, 0xc4
/* 8001F568 0001C4A8 48 00 0F 6D */ bl fopDwTg_DrawQTo
/* 8001F568 0001C4A8 48 00 0F 6D */ bl fopDwTg_DrawQTo__FP16create_tag_class
/* 8001F56C 0001C4AC 7F E3 FB 78 */ mr r3, r31
/* 8001F570 0001C4B0 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 8001F574 0001C4B4 83 C1 00 08 */ lwz r30, 8(r1)

View File

@ -3380,7 +3380,7 @@ func_8001F248
func_8001F220
func_8001F1F8
func_8001F1D0
fopCam_Draw
fopCam_Draw__FP12camera_class
func_8001E270
func_8001E21C
func_8001E1C8
@ -3435,6 +3435,10 @@ func_8001EBAC
func_8001EB84
func_8001EB5C
fopScn_Draw
fopCam_Execute__FP12camera_class
fopCam_IsDelete__FP12camera_class
fopCam_Delete__FP12camera_class
fopCam_Create__FPv
}
/*
.init 80003100 - 80005600

View File

@ -1,64 +1,70 @@
/* f_op_camera.cpp autogenerated by split.py v0.4 at 2021-02-15 20:13:32.027855 */
#include "f/f_op/f_op_camera.h"
#include "d/d_com/d_com_inf_game/d_com_inf_game.h"
#include "f/f_op/f_op_draw_tag.h"
#include "f/f_pc/f_pc_leaf.h"
#include "global.h"
// additional symbols needed for f_op_camera.cpp
// autogenerated by split.py v0.4 at 2021-02-15 20:13:32.027886
extern "C" {
void fopCam_Draw(void);
void fopDwTg_DrawQTo(void);
void fopDwTg_Init(void);
void fopDwTg_ToDrawQ(void);
void fpcLf_DrawMethod(void);
void fpcLf_GetPriority(void);
void fpcMtd_Create(void);
void fpcMtd_Delete(void);
void fpcMtd_Execute(void);
void fpcMtd_IsDelete(void);
void func_8001E180(void);
void func_8001E1C8(void);
void func_8001E21C(void);
void func_8001E270(void);
void fopDwTg_DrawQTo__FP16create_tag_class(void);
}
// additional symbols needed for f_op_camera.cpp
// autogenerated by split.py v0.4 at 2021-02-15 20:13:32.027892
extern u8 lbl_80451124;
extern s8 lbl_80451124;
extern "C" {
// fopCam_Draw__FP12camera_class
// fopCam_Draw(camera_class*)
asm void fopCam_Draw(void) {
nofralloc
#include "f/f_op/f_op_camera/asm/func_8001E140.s"
s32 fopCam_Draw(camera_class* pCamera) {
s32 tmp = 1;
if (g_dComIfG_gameInfo.getPlay().getField0x4f7d() == false) {
tmp = fpcLf_DrawMethod(pCamera->pMthd, pCamera);
}
return tmp;
}
// fopCam_Execute__FP12camera_class
// fopCam_Execute(camera_class*)
asm void func_8001E180(void) {
// Matches, but wrong registers
#ifdef NONMATCHING
void fopCam_Execute(camera_class* pCamera) {
if (!g_dComIfG_gameInfo.getPlay().getField0x4f7d() && !lbl_80451124) {
fpcMtd_Execute((process_method_class*)pCamera->pMthd, pCamera);
}
}
#else
asm void fopCam_Execute(camera_class* pCamera) {
nofralloc
#include "f/f_op/f_op_camera/asm/func_8001E180.s"
}
#endif
// fopCam_IsDelete__FP12camera_class
// fopCam_IsDelete(camera_class*)
asm void func_8001E1C8(void) {
nofralloc
#include "f/f_op/f_op_camera/asm/func_8001E1C8.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;
}
// fopCam_Delete__FP12camera_class
// fopCam_Delete(camera_class*)
asm void func_8001E21C(void) {
nofralloc
#include "f/f_op/f_op_camera/asm/func_8001E21C.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;
}
// fopCam_Create__FPv
// fopCam_Create(void*)
asm void func_8001E270(void) {
asm void fopCam_Create(void*) {
nofralloc
#include "f/f_op/f_op_camera/asm/func_8001E270.s"
}
};

View File

@ -1,14 +1,11 @@
/* f_op_draw_tag.cpp autogenerated by split.py v0.4 at 2021-02-15 20:18:52.463012 */
#include "f/f_op/f_op_draw_tag.h"
#include "global.h"
// additional symbols needed for f_op_draw_tag.cpp
// autogenerated by split.py v0.4 at 2021-02-15 20:18:52.463040
extern "C" {
void cTg_AdditionToTree(void);
void cTg_Create(void);
void cTg_SingleCutFromTree(void);
void cTr_Create(void);
void fopDwTg_CreateQueue(void);
void fopDwTg_DrawQTo(void);
void fopDwTg_Init(void);
@ -27,14 +24,16 @@ asm void fopDwTg_ToDrawQ(void) {
nofralloc
#include "f/f_op/f_op_draw_tag/asm/func_800204AC.s"
}
};
// fopDwTg_DrawQTo__FP16create_tag_class
// fopDwTg_DrawQTo(create_tag_class*)
asm void fopDwTg_DrawQTo(void) {
asm void fopDwTg_DrawQTo(create_tag_class*) {
nofralloc
#include "f/f_op/f_op_draw_tag/asm/func_800204D4.s"
}
extern "C" {
// fopDwTg_Init__FP16create_tag_classPv
// fopDwTg_Init(create_tag_class*, void*)
asm void fopDwTg_Init(void) {

View File

@ -1,11 +1,13 @@
/* f_op_kankyo.cpp autogenerated by split.py v0.4 at 2021-02-15 21:03:24.816040 */
#include "d/d_com/d_com_inf_game/d_com_inf_game.h"
#include "f/f_op/f_op_draw_tag.h"
#include "global.h"
// additional symbols needed for f_op_kankyo.cpp
// autogenerated by split.py v0.4 at 2021-02-15 21:03:24.816064
extern "C" {
void fopDwTg_DrawQTo__FP16create_tag_class(void);
void fopDwTg_DrawQTo(void);
void fopDwTg_Init(void);
void fopDwTg_ToDrawQ(void);

View File

@ -1,10 +1,12 @@
/* f_op_msg.cpp autogenerated by split.py v0.4 at 2021-02-15 21:05:32.071191 */
#include "f/f_op/f_op_draw_tag.h"
#include "global.h"
// additional symbols needed for f_op_msg.cpp
// autogenerated by split.py v0.4 at 2021-02-15 21:05:32.071227
extern "C" {
void fopDwTg_DrawQTo__FP16create_tag_class(void);
void fopDwTg_DrawQTo(void);
void fopDwTg_Init(void);
void fopDwTg_ToDrawQ(void);