1
0
Fork 0
mirror of https://github.com/zeldaret/oot.git synced 2025-02-27 19:44:40 +00:00
This commit is contained in:
Sirius902 2020-10-18 02:32:38 -07:00
parent e8b2417884
commit 88bc81daf5

View file

@ -51,6 +51,7 @@ void func_80A77B3C(EnIk* this, GlobalContext* globalCtx);
void func_80A77ED0(EnIk* this, GlobalContext* globalCtx);
void func_80A77EDC(EnIk* this, GlobalContext* globalCtx);
void func_80A78160(EnIk* this, GlobalContext* globalCtx);
void func_80A779DC(EnIk* this, GlobalContext* globalCtx);
extern UNK_TYPE D_02003F80;
extern AnimationHeader D_06001C28;
@ -147,11 +148,9 @@ Vec3f D_80A78514[] = {
{ 1000.0, -3000.0, 0.0 }, { 2000.0, -2000.0, -4000.0 }, { -1000.0, 0.0, -6000.0 },
{ 1000.0, -2000.0, -2000.0 }, { 0.0, -2000.0, 2100.0 }, { 0.0, 0.0, 0.0 },
{ 1000.0, -1000.0, -6000.0 }, { 2000.0, 0.0, -3000.0 }, { -1000.0, -1000.0, -4000.0 },
{ 900.0, -800.0, 2700.0 },
{ 900.0, -800.0, 2700.0 }, { 720.0f, 900.0f, 2500.0f },
};
Vec3f D_80A785F8 = { 720.0f, 900.0f, 2500.0f };
static EnIkActionFunc sActionFuncs[] = {
func_80A77AEC, func_80A77B0C, func_80A77B3C, func_80A7748C, func_80A774BC, func_80A774F8,
};
@ -766,9 +765,43 @@ void func_80A76C14(EnIk* this) {
}
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Ik/func_80A76DDC.s")
void func_80A76DDC(EnIk* this, GlobalContext* globalCtx, Vec3f* pos) {
Audio_PlaySoundGeneral(NA_SE_EN_TWINROBA_TRANSFORM, &this->actor.projectedPos, 4, &D_801333E0, &D_801333E0,
&D_801333E8);
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Ik/func_80A76E2C.s")
void func_80A76E2C(EnIk* this, GlobalContext* globalCtx, Vec3f* pos) {
s32 pad;
Vec3f spA8;
Vec3f sp9C;
s32 i;
Color_RGBA8 sp94;
Color_RGBA8 sp90;
s32 temp_v0;
Vec3f sp80;
if (this->unk_4D4 == 0) {
spA8 = D_80A784F4;
sp9C = D_80A78500;
for (i = ARRAY_COUNT(D_80A78514) - 1; i >= 0; i--) {
sp94 = D_80A7850C;
sp90 = D_80A78510;
Matrix_MultVec3f(&D_80A78514[i], &sp80);
temp_v0 = (Math_Rand_ZeroOne() * 20.0f) - 10.0f;
sp94.r += temp_v0;
sp94.g += temp_v0;
sp94.b += temp_v0;
sp90.r += temp_v0;
sp90.g += temp_v0;
sp90.b += temp_v0;
func_8002829C(globalCtx, &sp80, &spA8, &sp9C, &sp94, &sp90, (Math_Rand_ZeroOne() * 60.0f) + 300.0f, 0);
}
this->unk_4D4 = 1;
func_80A76DDC(this, globalCtx, pos);
}
}
void func_80A77034(EnIk* this, GlobalContext* globalCtx) {
func_8002E4B4(globalCtx, &this->actor, 75.0f, 30.0f, 30.0f, 5);
@ -872,11 +905,22 @@ void func_80A77474(EnIk* this, GlobalContext* globalCtx) {
this->actor.shape.unk_14 = 0;
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Ik/func_80A7748C.s")
void func_80A7748C(EnIk* this, GlobalContext* globalCtx) {
func_80A77034(this, globalCtx);
func_80A779DC(this, globalCtx);
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Ik/func_80A774BC.s")
void func_80A774BC(EnIk* this, GlobalContext* globalCtx) {
func_80A7707C(this);
func_80A77034(this, globalCtx);
func_80A779DC(this, globalCtx);
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Ik/func_80A774F8.s")
void func_80A774F8(EnIk* this, GlobalContext* globalCtx) {
if (EnIk_GetNpcAction(globalCtx, 4) == NULL) {
Actor_Kill(&this->action);
}
}
s32 EnIk_OverrideLimbDraw2(GlobalContext* globalCtx, s32 limbIndex, Gfx** dList, Vec3f* pos, Vec3s* rot, Actor* actor) {
EnIk* this = (EnIk*)actor;
@ -982,8 +1026,6 @@ void EnIk_Update(Actor* thisx, GlobalContext* globalCtx) {
sActionFuncs[this->action](this, globalCtx);
}
void func_80A76E2C(EnIk* this, GlobalContext* globalCtx, Vec3f* pos);
s32 EnIk_OverrideLimbDraw1(GlobalContext* globalCtx, s32 limbIndex, Gfx** dList, Vec3f* pos, Vec3s* rot, Actor* actor) {
EnIk* this = (EnIk*)actor;
f32 animCurrentFrame;