func_80A78ACC, func_80A787FC, func_80A776E0, [WIP] func_80A776E0

This commit is contained in:
KiritoDv
2023-11-02 10:36:41 -06:00
parent 00b3555a6d
commit d3cfad624c
2 changed files with 48 additions and 5 deletions
+35 -3
View File
@@ -35,6 +35,7 @@ void func_80A79A84(EnJso2* this, PlayState* play);
void func_80A79BA0(EnJso2* this, PlayState* play);
void func_80A7A124(EnJso2* this, PlayState* play);
void func_80A7A2EC(EnJso2* this, PlayState* play);
void func_80A78868(EnJso2* this, PlayState* play);
#if 0
// static DamageTable sDamageTable = {
@@ -107,12 +108,26 @@ extern ColliderQuadInit D_80A7B634;
extern UNK_TYPE D_06002ED8;
extern UNK_TYPE D_060081F4;
extern AnimationHeader** D_80A7B684;
extern u8* D_80A7B6DC;
#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_Jso2/EnJso2_Init.s")
#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_Jso2/EnJso2_Destroy.s")
#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_Jso2/func_80A776E0.s")
// #pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_Jso2/func_80A776E0.s")
void func_80A776E0(EnJso2* this, s32 frame) {
f32 var_fv0;
this->unk374 = (f32)Animation_GetLastFrame(D_80A7B684[frame]);
var_fv0 = 1.0f;
this->unk1040 = frame;
if (frame == 8) {
var_fv0 = 2.0f;
}
Animation_Change(&this->skelAnime, D_80A7B684 + frame, var_fv0, 0.0f, this->unk374, (u8)frame, -2.0f);
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_Jso2/func_80A77790.s")
@@ -130,13 +145,30 @@ void func_80A778D8(EnJso2* this) {
#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_Jso2/func_80A785E4.s")
#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_Jso2/func_80A787FC.s")
void func_80A787FC(EnJso2* this, PlayState* play) {
Actor* sp1C;
sp1C = play->actorCtx.actorLists[2].first;
func_80A776E0(this, 8);
this->unk286 = sp1C->shape.rot.y;
this->unk288 = 0x258;
this->unk284 = 3;
this->unk370 = 0;
this->unkF05 |= 4;
this->actionFunc = func_80A78868;
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_Jso2/func_80A78868.s")
#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_Jso2/func_80A78A70.s")
#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_Jso2/func_80A78ACC.s")
void func_80A78ACC(EnJso2* this, PlayState* play) {
f32 temp = this->unk15C;
if (temp >= this->unk374) {
func_80A787FC(this, play);
}
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_Jso2/func_80A78B04.s")
+13 -2
View File
@@ -9,12 +9,23 @@ typedef void (*EnJso2ActionFunc)(struct EnJso2*, PlayState*);
typedef struct EnJso2 {
/* 0x0000 */ Actor actor;
/* 0x0144 */ char unk_144[0x134];
/* 0x0144 */ SkelAnime skelAnime;
/* 0x0150 */ char unk_150[0xC];
/* 0x015C */ f32 unk15C;
/* 0x0160 */ char unk_160[0x118];
/* 0x0278 */ EnJso2ActionFunc actionFunc;
/* 0x027C */ char unk_27C[0x8];
/* 0x0284 */ s16 unk284;
/* 0x0286 */ char unk_286[0xE6];
/* 0x0286 */ s16 unk286;
/* 0x0288 */ s16 unk288;
/* 0x0290 */ char unk_290[0xE2];
/* 0x036C */ s32 unk36C;
/* 0x0370 */ s8 unk370;
/* 0x0374 */ f32 unk374;
/* 0x0378 */ char unk_378[0xB8D];
/* 0x0F05 */ u8 unkF05;
/* 0x0F09 */ char unk_F09[0x13B];
/* 0x1040 */ s32 unk1040;
} EnJso2; // size = 0x1090
#endif // Z_EN_JSO2_H