1
0
Fork 0
mirror of https://github.com/zeldaret/oot.git synced 2024-12-25 06:06:05 +00:00
This commit is contained in:
Sirius902 2020-09-30 01:20:43 -07:00
parent 266f7a6f19
commit e645bc6f70
4 changed files with 53 additions and 10 deletions

View file

@ -2262,7 +2262,7 @@ void func_800F4C58(Vec3f*, u16, u8);
void func_800F574C(f32 arg0, UNK_TYPE arg2);
void func_800F595C(u16);
void func_800F59E8(u16);
// ? func_800F5ACC(?);
void func_800F5ACC(u32 bgmID);
void func_800F5B58();
void func_800F5C64(u16);
// ? func_800F5CF8(?);

View file

@ -12,7 +12,6 @@
#define THIS ((EnIk*)thisx)
typedef void (*EnIkActionFunc)(struct EnIk*, GlobalContext*);
typedef void (*EnIkDrawFunc)(struct EnIk*, GlobalContext*);
void EnIk_Init(Actor* thisx, GlobalContext* globalCtx);
@ -22,11 +21,16 @@ void EnIk_Draw(Actor* thisx, GlobalContext* globalCtx);
void func_80A74398(EnIk* this, GlobalContext* globalCtx);
void func_80A74714(EnIk* this);
void func_80A7489C(EnIk* this);
void func_80A7492C(EnIk* this, GlobalContext* globalCtx);
void func_80A75FA0(Actor* thisx, GlobalContext* globalCtx);
void func_80A76798(Actor* thisx, GlobalContext* globalCtx);
void func_80A76BF4();
void func_80A780D0(EnIk* this, GlobalContext* globalCtx);
void func_80A78160(EnIk* this, GlobalContext* globalCtx);
extern AnimationHeader D_0600C114;
extern AnimationHeader D_0600DD50;
extern SkeletonHeader D_0601E178;
extern ColliderCylinderInit D_80A78340;
@ -62,7 +66,10 @@ void EnIk_Destroy(Actor* thisx, GlobalContext* globalCtx) {
Collider_DestroyQuad(globalCtx, &this->unk_36C);
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Ik/func_80A74390.s")
// EnIk_SetupAction
void func_80A74390(EnIk* this, EnIkActionFunc actionFunc) {
this->actionFunc = actionFunc;
}
#ifdef NON_MATCHING
void func_80A74398(EnIk* this, GlobalContext* globalCtx) {
@ -130,7 +137,15 @@ void func_80A74398(EnIk* this, GlobalContext* globalCtx) {
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Ik/func_80A747C0.s")
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Ik/func_80A7489C.s")
void func_80A7489C(EnIk* this) {
f32 frames = SkelAnime_GetFrameCount(&D_0600DD50.genericHeader);
this->actor.flags |= 5;
this->unk_2F8 = 4;
this->actor.speedXZ = 0.0f;
SkelAnime_ChangeAnim(&this->skelAnime, &D_0600DD50, 0.0f, 0.0f, frames, 0, 4.0f);
func_80A74390(this, func_80A7492C);
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Ik/func_80A7492C.s")
@ -182,7 +197,11 @@ void func_80A74398(EnIk* this, GlobalContext* globalCtx) {
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Ik/func_80A76798.s")
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Ik/func_80A76BF4.s")
// starts middle boss bgm
void func_80A76BF4() {
// NA_BGM_MIDDLE_BOSS
func_800F5ACC(0x38);
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Ik/func_80A76C14.s")
@ -266,9 +285,28 @@ void EnIk_Draw(Actor* thisx, GlobalContext* globalCtx) {
}
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Ik/func_80A780D0.s")
void func_80A780D0(EnIk* this, GlobalContext* globalCtx) {
if (this->actor.params == 0) {
if (!(gSaveContext.eventChkInf[3] & 0x800)) {
this->actor.update = EnIk_Update;
this->actor.draw = EnIk_Draw;
Actor_SetScale(&this->actor, 0.01f);
} else {
func_80A78160(this, globalCtx);
func_80A76BF4();
}
}
osSyncPrintf("En_Ik_inConfrontion_Init : %d !!!!!!!!!!!!!!!!\n", this->actor.params);
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Ik/func_80A78160.s")
void func_80A78160(EnIk* this, GlobalContext* globalCtx) {
this->actor.update = func_80A75FA0;
this->actor.draw = func_80A76798;
this->actor.flags |= 5;
gSaveContext.eventChkInf[3] |= 0x800;
Actor_SetScale(this, 0.012f);
func_80A7489C(this);
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Ik/func_80A781CC.s")

View file

@ -6,16 +6,20 @@
struct EnIk;
typedef void (*EnIkActionFunc)(struct EnIk*, GlobalContext*);
typedef struct EnIk {
/* 0x0000 */ Actor actor;
/* 0x014C */ SkelAnime skelAnime;
/* 0x0190 */ Vec3s limbDrawTable[30];
/* 0x0244 */ Vec3s transitionDrawTable[30];
/* 0x02F8 */ char unk_2F8[0x04];
/* 0x02F8 */ s8 unk_2F8;
/* 0x02F9 */ char unk_2F9[0x03];
/* 0x02FC */ s8 unk_2FC;
/* 0x02FD */ char unk_2FD[0x05];
/* 0x0302 */ s16 switchFlags;
/* 0x0304 */ char unk_304[0x1C];
/* 0x0304 */ EnIkActionFunc actionFunc;
/* 0x0308 */ char unk_308[0x18];
/* 0x0320 */ ColliderCylinder unk_320;
/* 0x036C */ ColliderQuad unk_36C;
/* 0x03EC */ ColliderTris unk_3EC;

View file

@ -1109,8 +1109,9 @@ D_060009D0 = 0x060009D0;
D_06000A60 = 0x06000A60;
// z_en_ik
D_0601E178 = 0x0601E178;
D_0600C114 = 0x0600C114;
D_0600DD50 = 0x0600DD50;
D_0601E178 = 0x0601E178;
// z_en_insect
D_04035590 = 0x04035590;