fopScnM_ReRequest OK, fopScnM_Management OK, fopScnM_Init OK

This commit is contained in:
Pheenoh 2021-02-21 19:34:50 -05:00
parent eeecf4cf69
commit 9fd3148994
No known key found for this signature in database
GPG Key ID: 4312662758CE7D5A
5 changed files with 36 additions and 28 deletions

View File

@ -205,8 +205,8 @@ lbl_8001F0E4:
/* 8001F0F4 0001C034 38 21 00 20 */ addi r1, r1, 0x20
/* 8001F0F8 0001C038 4E 80 00 20 */ blr
.global fopScnRq_ReRequest
fopScnRq_ReRequest:
.global fopScnRq_ReRequest__FUisPv
fopScnRq_ReRequest__FUisPv:
/* 8001F0FC 0001C03C 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8001F100 0001C040 7C 08 02 A6 */ mflr r0
/* 8001F104 0001C044 90 01 00 14 */ stw r0, 0x14(r1)

View File

@ -5,9 +5,9 @@
void* fopScnM_SearchByID(unsigned int id);
int fopScnM_ChangeReq(scene_class*, s16, s16, u16);
void fopScnM_DeleteReq(scene_class*);
unsigned int fopScnM_DeleteReq(scene_class*);
void fopScnM_CreateReq(s16, s16, u16, u32);
void fopScnM_ReRequest(s16, u32) ;
u32 fopScnM_ReRequest(s16, u32);
void fopScnM_Management(void);
void fopScnM_Init(void);

View File

@ -7,5 +7,6 @@ void fopScnRq_ReRequest(void);
}
u32 fopScnRq_Request(int,scene_class*,s16,void*,s16,u16);
u32 fopScnRq_ReRequest(unsigned int, s16, void*);
#endif

View File

@ -11,7 +11,7 @@
/* 8001EDF4 0001BD34 48 00 00 0C */ b lbl_8001EE00
lbl_8001EDF8:
/* 8001EDF8 0001BD38 7C C4 33 78 */ mr r4, r6
/* 8001EDFC 0001BD3C 48 00 03 01 */ bl fopScnRq_ReRequest
/* 8001EDFC 0001BD3C 48 00 03 01 */ bl fopScnRq_ReRequest__FUisPv
lbl_8001EE00:
/* 8001EE00 0001BD40 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8001EE04 0001BD44 7C 08 03 A6 */ mtlr r0

View File

@ -12,7 +12,7 @@ void fopScnRq_Request__FiP11scene_classsPvsUs(void);
// additional symbols needed for f_op_scene_mng.cpp
// autogenerated by split.py v0.4 at 2021-02-13 20:33:37.409412
extern int l_scnRqID;
extern unsigned int l_scnRqID;
// matches but is proabably wrong
void* fopScnM_SearchByID(unsigned int id) {
@ -21,11 +21,10 @@ void* fopScnM_SearchByID(unsigned int id) {
return fopScnIt_Judge(fpcSch_JudgeByID, (void*)local_8);
}
// fopScnM_ChangeReq__FP11scene_classssUs
// fopScnM_ChangeReq(scene_class*, s16, s16, u16)
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);
// can't get a match unless the request id is unsigned
if (sceneRequestID == -1) {
return 0;
}
@ -33,37 +32,45 @@ int fopScnM_ChangeReq(scene_class* pScene, s16 param_2, s16 param_3, u16 param_4
return 1;
}
// fopScnM_DeleteReq__FP11scene_class
// fopScnM_DeleteReq(scene_class*)
asm void fopScnM_DeleteReq(scene_class*) {
#ifdef NONMATCHING
unsigned int fopScnM_DeleteReq(scene_class* pScene) {
u32 sceneRequestID = fopScnRq_Request(1, pScene, 0x7fff, 0, 0x7fff, 0);
u32 tmp = (-sceneRequestID - 1);
u32 tmp2 = (tmp + -1);
return tmp2;
}
#else
asm unsigned int fopScnM_DeleteReq(scene_class*) {
nofralloc
#include "f/f_op_scene_mng/asm/func_8001ED3C.s"
}
#endif
// fopScnM_CreateReq__FssUsUl
// fopScnM_CreateReq(s16, s16, u16, u32)
#ifdef NONMATCHING
void 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);
u32 tmp = (-sceneRequestID + -1);
return tmp - (sceneRequestID == 0) + (-sceneRequestID + -2) & 0xFF;
}
#else
asm void fopScnM_CreateReq(s16, s16, u16, u32) {
nofralloc
#include "f/f_op_scene_mng/asm/func_8001ED84.s"
}
#endif
// fopScnM_ReRequest__FsUl
// fopScnM_ReRequest(s16, u32)
asm void fopScnM_ReRequest(s16, u32) {
nofralloc
#include "f/f_op_scene_mng/asm/func_8001EDCC.s"
u32 fopScnM_ReRequest(s16 param_1, u32 param_2) {
if (l_scnRqID == -1) {
return 0;
}
return fopScnRq_ReRequest(l_scnRqID, param_1, (void*)param_2);
}
// fopScnM_Management__Fv
// fopScnM_Management(void)
asm void fopScnM_Management(void) {
nofralloc
#include "f/f_op_scene_mng/asm/func_8001EE10.s"
void fopScnM_Management(void) {
fopScnRq_Handler();
}
// fopScnM_Init__Fv
// fopScnM_Init(void)
asm void fopScnM_Init(void) {
nofralloc
#include "f/f_op_scene_mng/asm/func_8001EE30.s"
void fopScnM_Init(void) {
return;
}