fopOvlpReq_Request OK

This commit is contained in:
Pheenoh 2021-02-17 13:01:00 -05:00
parent e262f2c224
commit 327dff36be
No known key found for this signature in database
GPG Key ID: 4312662758CE7D5A
4 changed files with 28 additions and 19 deletions

View File

@ -140,8 +140,8 @@ lbl_803A37FC:
.global lbl_803A382C
lbl_803A382C:
.incbin "baserom.dol", 0x3A082C, 0x64
.global lbl_803A3890
lbl_803A3890:
.global phaseMethod
phaseMethod:
.incbin "baserom.dol", 0x3A0890, 0x38
.global lbl_803A38C8
lbl_803A38C8:

View File

@ -1,9 +1,10 @@
#ifndef F_F_OP_OVERLAP_REQ_H_
#define F_F_OP_OVERLAP_REQ_H_
#include "SComponent/c_phase.h"
#include "SComponent/c_request.h"
#include "f/f_pc/f_pc_layer.h"
#include "dolphin/types.h"
#include "f/f_pc/f_pc_layer.h"
class overlap_request_class {
public:
@ -18,14 +19,7 @@ public:
u8 field_0x12;
u8 field_0x13;
int field_0x14;
u8 field_0x18;
u8 field_0x19;
u8 field_0x1a;
u8 field_0x1b;
u8 field_0x1c;
u8 field_0x1d;
u8 field_0x1e;
u8 field_0x1f;
request_of_phase_process_class field_0x18;
u8* field_0x20;
layer_class* pCurrentLayer;
};

View File

@ -16,8 +16,8 @@ lbl_8001E988:
/* 8001E98C 0001B8CC 48 24 7E A5 */ bl cReq_Command__FP18request_base_classUc
/* 8001E990 0001B8D0 B3 DD 00 10 */ sth r30, 0x10(r29)
/* 8001E994 0001B8D4 38 7D 00 18 */ addi r3, r29, 0x18
/* 8001E998 0001B8D8 3C 80 80 3A */ lis r4, lbl_803A3890@ha
/* 8001E99C 0001B8DC 38 84 38 90 */ addi r4, r4, lbl_803A3890@l
/* 8001E998 0001B8D8 3C 80 80 3A */ lis r4, phaseMethod@ha
/* 8001E99C 0001B8DC 38 84 38 90 */ addi r4, r4, phaseMethod@l
/* 8001E9A0 0001B8E0 48 24 7C 91 */ bl cPhs_Set
/* 8001E9A4 0001B8E4 7F A3 EB 78 */ mr r3, r29
/* 8001E9A8 0001B8E8 7F E4 FB 78 */ mr r4, r31

View File

@ -23,7 +23,6 @@ void fopOvlpReq_Handler__FP21overlap_request_class(void);
void fopOvlpReq_phase_Done__FP21overlap_request_class(void);
void fopOvlpReq_SetPeektime__FP21overlap_request_classUs(void);
void fopOvlpReq_Is_PeektimeLimit__FP21overlap_request_class(void);
void fopOvlpReq_SetPeektime(void);
void fopOvlpReq_phase_Done(void);
void func_8001E748(void);
void func_8001E794(void);
@ -33,9 +32,11 @@ void func_8001E8A4(void);
void func_8001E904(void);
}
void fopOvlpReq_SetPeektime(overlap_request_class*, u16);
// additional symbols needed for f_op_overlap_req.cpp
// autogenerated by split.py v0.4 at 2021-02-15 20:24:53.163658
extern u8 lbl_803A3890;
extern cPhs__Handler* phaseMethod[8];
int fopOvlpReq_phase_Done(overlap_request_class* pOvlpReq) {
if (fpcM_Delete(pOvlpReq->field_0x20) == 1) {
@ -107,13 +108,27 @@ int fopOvlpReq_phase_IsCreated(overlap_request_class* pOvlpReq) {
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);
pOvlpReq->field_0x14 = fpcSCtRq_Request(fpcLy_CurrentLayer(), pOvlpReq->field_0x10, 0, 0, 0);
return 2;
}
asm request_base_class* fopOvlpReq_Request(overlap_request_class*, s16, u16) {
nofralloc
#include "f/f_op/f_op_overlap_req/asm/func_8001E954.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, (cPhs__Handler*)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;
}
asm int fopOvlpReq_Handler(overlap_request_class*) {