1
0
Fork 0
mirror of https://github.com/zeldaret/oot.git synced 2024-11-13 04:39:36 +00:00
This commit is contained in:
Sirius902 2020-10-05 21:39:26 -07:00
parent 1b2beb745f
commit 4137b6ba23
2 changed files with 39 additions and 4 deletions

View file

@ -21,6 +21,7 @@ void EnIk_Draw(Actor* thisx, GlobalContext* globalCtx);
Actor* func_80A74674(GlobalContext* globalCtx, Actor* actor);
void func_80A74714(EnIk* this);
void func_80A747C0(EnIk* this, GlobalContext* globalCtx);
void func_80A7492C(EnIk* this, GlobalContext* globalCtx);
void func_80A74AAC(EnIk* this);
void func_80A74E2C(EnIk* this);
@ -51,6 +52,7 @@ extern AnimationHeader D_06002538;
extern AnimationHeader D_060029FC;
extern AnimationHeader D_060033C4;
extern AnimationHeader D_0600C114;
extern AnimationHeader D_0600CD70;
extern AnimationHeader D_0600DD50;
extern SkeletonHeader D_0601E178;
extern AnimationHeader D_060203D8;
@ -254,9 +256,41 @@ Actor* func_80A74674(GlobalContext* globalCtx, Actor* actor) {
return NULL;
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Ik/func_80A74714.s")
void func_80A74714(EnIk* this) {
f32 frames = SkelAnime_GetFrameCount(&D_0600CD70.genericHeader);
f32 frame;
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Ik/func_80A747C0.s")
if (this->actor.params >= 2) {
frame = frames - 1.0f;
} else {
frame = 0.0f;
}
SkelAnime_ChangeAnim(&this->skelAnime, &D_0600CD70, 0.0f, frame, frames, 2, 0.0f);
this->unk_2F8 = 3;
this->actor.speedXZ = 0.0f;
EnIk_SetupAction(this, func_80A747C0);
}
void func_80A747C0(EnIk* this, GlobalContext* globalCtx) {
Vec3f sp24;
if (this->unk_320.base.acFlags & 2) {
sp24 = this->actor.posRot.pos;
Audio_PlayActorSound2(&this->actor, NA_SE_EN_IRONNACK_ARMOR_HIT);
sp24.y += 30.0f;
func_8003424C(globalCtx, &sp24);
this->skelAnime.animPlaybackSpeed = 1.0f;
func_800F5ACC(0x38);
}
if (this->skelAnime.animCurrentFrame == 5.0f) {
Audio_PlayActorSound2(&this->actor, NA_SE_EN_IRONNACK_WAKEUP);
}
if (SkelAnime_FrameUpdateMatrix(&this->skelAnime)) {
this->actor.flags |= 5;
func_80A74AAC(this);
}
}
void func_80A7489C(EnIk* this) {
f32 frames = SkelAnime_GetFrameCount(&D_0600DD50.genericHeader);

View file

@ -1152,12 +1152,13 @@ D_06000A60 = 0x06000A60;
// z_en_ik
D_02003F80 = 0x02003F80;
D_0600C114 = 0x0600C114;
D_0600DD50 = 0x0600DD50;
D_06001C28 = 0x06001C28;
D_06002538 = 0x06002538;
D_060029FC = 0x060029FC;
D_060033C4 = 0x060033C4;
D_0600C114 = 0x0600C114;
D_0600CD70 = 0x0600CD70;
D_0600DD50 = 0x0600DD50;
D_0601E178 = 0x0601E178;
D_060203D8 = 0x060203D8;
D_060205C0 = 0x060205C0;