mirror of
https://github.com/zeldaret/oot.git
synced 2025-02-27 19:44:40 +00:00
Progress
This commit is contained in:
parent
1365f3e68b
commit
02e27c9502
6 changed files with 94 additions and 31 deletions
|
@ -12,7 +12,7 @@ glabel EnIk_OverrideLimbDraw2
|
||||||
/* 03248 80A77558 54A1000C */ bnel $a1, $at, .L80A7758C
|
/* 03248 80A77558 54A1000C */ bnel $a1, $at, .L80A7758C
|
||||||
/* 0324C 80A7755C 8FBF0014 */ lw $ra, 0x0014($sp)
|
/* 0324C 80A7755C 8FBF0014 */ lw $ra, 0x0014($sp)
|
||||||
.L80A77560:
|
.L80A77560:
|
||||||
/* 03250 80A77560 0C29DC50 */ jal func_80A77140
|
/* 03250 80A77560 0C29DC50 */ jal EnIk_AnimCurrentFrame
|
||||||
/* 03254 80A77564 8FA4002C */ lw $a0, 0x002C($sp)
|
/* 03254 80A77564 8FA4002C */ lw $a0, 0x002C($sp)
|
||||||
/* 03258 80A77568 3C0141F0 */ lui $at, 0x41F0 ## $at = 41F00000
|
/* 03258 80A77568 3C0141F0 */ lui $at, 0x41F0 ## $at = 41F00000
|
||||||
/* 0325C 80A7756C 44812000 */ mtc1 $at, $f4 ## $f4 = 30.00
|
/* 0325C 80A7756C 44812000 */ mtc1 $at, $f4 ## $f4 = 30.00
|
||||||
|
|
|
@ -72,7 +72,7 @@ glabel EnIk_PostLimbDraw2
|
||||||
/* 032E4 80A775F4 03000008 */ jr $t8
|
/* 032E4 80A775F4 03000008 */ jr $t8
|
||||||
/* 032E8 80A775F8 00000000 */ nop
|
/* 032E8 80A775F8 00000000 */ nop
|
||||||
glabel L80A775FC
|
glabel L80A775FC
|
||||||
/* 032EC 80A775FC 0C29DC50 */ jal func_80A77140
|
/* 032EC 80A775FC 0C29DC50 */ jal EnIk_AnimCurrentFrame
|
||||||
/* 032F0 80A77600 8FA40080 */ lw $a0, 0x0080($sp)
|
/* 032F0 80A77600 8FA40080 */ lw $a0, 0x0080($sp)
|
||||||
/* 032F4 80A77604 3C0141F0 */ lui $at, 0x41F0 ## $at = 41F00000
|
/* 032F4 80A77604 3C0141F0 */ lui $at, 0x41F0 ## $at = 41F00000
|
||||||
/* 032F8 80A77608 44812000 */ mtc1 $at, $f4 ## $f4 = 30.00
|
/* 032F8 80A77608 44812000 */ mtc1 $at, $f4 ## $f4 = 30.00
|
||||||
|
@ -151,7 +151,7 @@ glabel L80A776D0
|
||||||
/* 03414 80A77724 1000003C */ beq $zero, $zero, .L80A77818
|
/* 03414 80A77724 1000003C */ beq $zero, $zero, .L80A77818
|
||||||
/* 03418 80A77728 AC4A0000 */ sw $t2, 0x0000($v0) ## 00000000
|
/* 03418 80A77728 AC4A0000 */ sw $t2, 0x0000($v0) ## 00000000
|
||||||
glabel L80A7772C
|
glabel L80A7772C
|
||||||
/* 0341C 80A7772C 0C29DC50 */ jal func_80A77140
|
/* 0341C 80A7772C 0C29DC50 */ jal EnIk_AnimCurrentFrame
|
||||||
/* 03420 80A77730 8FA40080 */ lw $a0, 0x0080($sp)
|
/* 03420 80A77730 8FA40080 */ lw $a0, 0x0080($sp)
|
||||||
/* 03424 80A77734 3C0141F0 */ lui $at, 0x41F0 ## $at = 41F00000
|
/* 03424 80A77734 3C0141F0 */ lui $at, 0x41F0 ## $at = 41F00000
|
||||||
/* 03428 80A77738 44813000 */ mtc1 $at, $f6 ## $f6 = 30.00
|
/* 03428 80A77738 44813000 */ mtc1 $at, $f6 ## $f6 = 30.00
|
||||||
|
@ -182,7 +182,7 @@ glabel L80A7772C
|
||||||
/* 0348C 80A7779C 1000001E */ beq $zero, $zero, .L80A77818
|
/* 0348C 80A7779C 1000001E */ beq $zero, $zero, .L80A77818
|
||||||
/* 03490 80A777A0 AC4F0000 */ sw $t7, 0x0000($v0) ## 00000000
|
/* 03490 80A777A0 AC4F0000 */ sw $t7, 0x0000($v0) ## 00000000
|
||||||
glabel L80A777A4
|
glabel L80A777A4
|
||||||
/* 03494 80A777A4 0C29DC50 */ jal func_80A77140
|
/* 03494 80A777A4 0C29DC50 */ jal EnIk_AnimCurrentFrame
|
||||||
/* 03498 80A777A8 8FA40080 */ lw $a0, 0x0080($sp)
|
/* 03498 80A777A8 8FA40080 */ lw $a0, 0x0080($sp)
|
||||||
/* 0349C 80A777AC 3C0141F0 */ lui $at, 0x41F0 ## $at = 41F00000
|
/* 0349C 80A777AC 3C0141F0 */ lui $at, 0x41F0 ## $at = 41F00000
|
||||||
/* 034A0 80A777B0 44814000 */ mtc1 $at, $f8 ## $f8 = 30.00
|
/* 034A0 80A777B0 44814000 */ mtc1 $at, $f8 ## $f8 = 30.00
|
||||||
|
|
|
@ -1,3 +1,3 @@
|
||||||
glabel func_80A77140
|
glabel EnIk_AnimCurrentFrame
|
||||||
/* 02E30 80A77140 03E00008 */ jr $ra
|
/* 02E30 80A77140 03E00008 */ jr $ra
|
||||||
/* 02E34 80A77144 C4800164 */ lwc1 $f0, 0x0164($a0) ## 00000164
|
/* 02E34 80A77144 C4800164 */ lwc1 $f0, 0x0164($a0) ## 00000164
|
||||||
|
|
|
@ -67,6 +67,8 @@ extern AnimationHeader D_0600C114;
|
||||||
extern AnimationHeader D_0600CD70;
|
extern AnimationHeader D_0600CD70;
|
||||||
extern AnimationHeader D_0600DD50;
|
extern AnimationHeader D_0600DD50;
|
||||||
extern AnimationHeader D_0600ED24;
|
extern AnimationHeader D_0600ED24;
|
||||||
|
extern Gfx D_06018E78[];
|
||||||
|
extern Gfx D_06019100[];
|
||||||
extern SkeletonHeader D_0601E178;
|
extern SkeletonHeader D_0601E178;
|
||||||
extern AnimationHeader D_060203D8;
|
extern AnimationHeader D_060203D8;
|
||||||
extern SkeletonHeader D_060205C0;
|
extern SkeletonHeader D_060205C0;
|
||||||
|
@ -681,8 +683,28 @@ Gfx* func_80A761B0(GraphicsContext* gfxCtx, u8 primR, u8 primG, u8 primB, u8 env
|
||||||
return displayList;
|
return displayList;
|
||||||
}
|
}
|
||||||
|
|
||||||
s32 EnIk_OverrideLimbDraw3(GlobalContext* globalCtx, s32 limbIndex, Gfx** dList, Vec3f* pos, Vec3s* rot, Actor* actor);
|
s32 EnIk_OverrideLimbDraw3(GlobalContext* globalCtx, s32 limbIndex, Gfx** dList, Vec3f* pos, Vec3s* rot, Actor* actor) {
|
||||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Ik/EnIk_OverrideLimbDraw3.s")
|
EnIk* this = (EnIk*)actor;
|
||||||
|
|
||||||
|
if (limbIndex == 0xC) {
|
||||||
|
if (this->actor.params != 0) {
|
||||||
|
*dList = D_06018E78;
|
||||||
|
}
|
||||||
|
} else if (limbIndex == 0xD) {
|
||||||
|
if (this->actor.params != 0) {
|
||||||
|
*dList = D_06019100;
|
||||||
|
}
|
||||||
|
} else if ((limbIndex == 0x1A) || (limbIndex == 0x1B)) {
|
||||||
|
if ((this->unk_2FA & 1)) {
|
||||||
|
*dList = NULL;
|
||||||
|
}
|
||||||
|
} else if ((limbIndex == 0x1C) || (limbIndex == 0x1D)) {
|
||||||
|
if (!(this->unk_2FA & 1)) {
|
||||||
|
*dList = NULL;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
void EnIk_PostLimbDraw3(GlobalContext* globalCtx, s32 limbIndex, Gfx** dList, Vec3s* rot, Actor* actor);
|
void EnIk_PostLimbDraw3(GlobalContext* globalCtx, s32 limbIndex, Gfx** dList, Vec3s* rot, Actor* actor);
|
||||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Ik/EnIk_PostLimbDraw3.s")
|
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Ik/EnIk_PostLimbDraw3.s")
|
||||||
|
@ -748,11 +770,13 @@ void func_80A76C14(EnIk* this) {
|
||||||
|
|
||||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Ik/func_80A76E2C.s")
|
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Ik/func_80A76E2C.s")
|
||||||
|
|
||||||
void func_80A77034(EnIk* this, GlobalContext* globalCtx);
|
void func_80A77034(EnIk* this, GlobalContext* globalCtx) {
|
||||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Ik/func_80A77034.s")
|
func_8002E4B4(globalCtx, &this->actor, 75.0f, 30.0f, 30.0f, 5);
|
||||||
|
}
|
||||||
|
|
||||||
s32 func_80A7707C(EnIk* this, GlobalContext* globalCtx);
|
s32 func_80A7707C(EnIk* this) {
|
||||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Ik/func_80A7707C.s")
|
return SkelAnime_FrameUpdateMatrix(&this->skelAnime);
|
||||||
|
}
|
||||||
|
|
||||||
CsCmdActorAction* EnIk_GetNpcAction(GlobalContext* globalCtx, s32 actionIdx) {
|
CsCmdActorAction* EnIk_GetNpcAction(GlobalContext* globalCtx, s32 actionIdx) {
|
||||||
if (globalCtx->csCtx.state != 0) {
|
if (globalCtx->csCtx.state != 0) {
|
||||||
|
@ -773,21 +797,44 @@ void func_80A770C0(EnIk* this, GlobalContext* globalCtx, s32 actionIdx) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Ik/func_80A77140.s")
|
f32 EnIk_AnimCurrentFrame(EnIk* this) {
|
||||||
|
return this->skelAnime.animCurrentFrame;
|
||||||
|
}
|
||||||
|
|
||||||
void func_80A77148(EnIk* this);
|
void func_80A77148(EnIk* this) {
|
||||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Ik/func_80A77148.s")
|
this->action = 0;
|
||||||
|
this->drawMode = 0;
|
||||||
|
this->actor.shape.unk_14 = 0;
|
||||||
|
}
|
||||||
|
|
||||||
void func_80A77158(EnIk* this, GlobalContext* globalCtx);
|
void func_80A77158(EnIk* this, GlobalContext* globalCtx) {
|
||||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Ik/func_80A77158.s")
|
SkelAnime_ChangeAnim(&this->skelAnime, &D_0600C114, 1.0f, 0.0f, SkelAnime_GetFrameCount(&D_0600C114.genericHeader),
|
||||||
|
2, 0.0f);
|
||||||
|
func_80A770C0(this, globalCtx, 4);
|
||||||
|
this->action = 1;
|
||||||
|
this->drawMode = 1;
|
||||||
|
this->actor.shape.unk_14 = 0xFF;
|
||||||
|
}
|
||||||
|
|
||||||
void func_80A771E4(EnIk* this);
|
void func_80A771E4(EnIk* this) {
|
||||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Ik/func_80A771E4.s")
|
SkelAnime_ChangeAnim(&this->skelAnime, &D_0600C114, 1.0f, 0.0f, SkelAnime_GetFrameCount(&D_0600C114.genericHeader),
|
||||||
|
2, 0.0f);
|
||||||
|
this->action = 2;
|
||||||
|
this->drawMode = 1;
|
||||||
|
this->unk_4D4 = 0;
|
||||||
|
this->actor.shape.unk_14 = 0xFF;
|
||||||
|
}
|
||||||
|
|
||||||
void func_80A77264(EnIk* this, GlobalContext* globalCtx, s32 arg2);
|
void func_80A77264(EnIk* this, GlobalContext* globalCtx, s32 arg2) {
|
||||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Ik/func_80A77264.s")
|
if ((arg2 != 0) && (EnIk_GetNpcAction(globalCtx, 4) != NULL)) {
|
||||||
|
func_80A78160(this, globalCtx);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Ik/func_80A772A4.s")
|
void func_80A772A4(EnIk* this) {
|
||||||
|
Audio_PlaySoundGeneral(NA_SE_EN_IRONNACK_STAGGER_DEMO, &this->actor.projectedPos, 4, &D_801333E0, &D_801333E0,
|
||||||
|
&D_801333E8);
|
||||||
|
}
|
||||||
|
|
||||||
void func_80A772EC(EnIk* this, GlobalContext* globalCtx) {
|
void func_80A772EC(EnIk* this, GlobalContext* globalCtx) {
|
||||||
static Vec3f D_80A78FA0;
|
static Vec3f D_80A78FA0;
|
||||||
|
@ -812,8 +859,12 @@ void func_80A7735C(EnIk* this, GlobalContext* globalCtx) {
|
||||||
this->actor.shape.unk_14 = 0xFF;
|
this->actor.shape.unk_14 = 0xFF;
|
||||||
}
|
}
|
||||||
|
|
||||||
void func_80A77434(EnIk* this, GlobalContext* globalCtx);
|
void func_80A77434(EnIk* this, GlobalContext* globalCtx) {
|
||||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Ik/func_80A77434.s")
|
this->action = 4;
|
||||||
|
this->drawMode = 2;
|
||||||
|
func_80A772A4(this);
|
||||||
|
this->actor.shape.unk_14 = 0xFF;
|
||||||
|
}
|
||||||
|
|
||||||
void func_80A77474(EnIk* this, GlobalContext* globalCtx);
|
void func_80A77474(EnIk* this, GlobalContext* globalCtx);
|
||||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Ik/func_80A77474.s")
|
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Ik/func_80A77474.s")
|
||||||
|
@ -824,8 +875,17 @@ void func_80A77474(EnIk* this, GlobalContext* globalCtx);
|
||||||
|
|
||||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Ik/func_80A774F8.s")
|
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Ik/func_80A774F8.s")
|
||||||
|
|
||||||
s32 EnIk_OverrideLimbDraw2(GlobalContext* globalCtx, s32 limbIndex, Gfx** dList, Vec3f* pos, Vec3s* rot, Actor* actor);
|
s32 EnIk_OverrideLimbDraw2(GlobalContext* globalCtx, s32 limbIndex, Gfx** dList, Vec3f* pos, Vec3s* rot, Actor* actor) {
|
||||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Ik/EnIk_OverrideLimbDraw2.s")
|
EnIk* this = (EnIk*)actor;
|
||||||
|
|
||||||
|
if ((limbIndex == 0xD) || (limbIndex == 0x1A) || (limbIndex == 0x1B)) {
|
||||||
|
if (EnIk_AnimCurrentFrame(this) >= 30.0f) {
|
||||||
|
*dList = NULL;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
void EnIk_PostLimbDraw2(GlobalContext* globalCtx, s32 limbIndex, Gfx** dList, Vec3s* rot, Actor* actor);
|
void EnIk_PostLimbDraw2(GlobalContext* globalCtx, s32 limbIndex, Gfx** dList, Vec3s* rot, Actor* actor);
|
||||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Ik/EnIk_PostLimbDraw2.s")
|
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Ik/EnIk_PostLimbDraw2.s")
|
||||||
|
@ -901,7 +961,7 @@ void func_80A77B0C(EnIk* this, GlobalContext* globalCtx) {
|
||||||
void func_80A77B3C(EnIk* this, GlobalContext* globalCtx) {
|
void func_80A77B3C(EnIk* this, GlobalContext* globalCtx) {
|
||||||
s32 sp24;
|
s32 sp24;
|
||||||
|
|
||||||
sp24 = func_80A7707C(this, globalCtx);
|
sp24 = func_80A7707C(this);
|
||||||
func_80A76C14(this);
|
func_80A76C14(this);
|
||||||
func_80A77034(this, globalCtx);
|
func_80A77034(this, globalCtx);
|
||||||
func_80A779DC(this, globalCtx);
|
func_80A779DC(this, globalCtx);
|
||||||
|
@ -915,7 +975,7 @@ void EnIk_Update(Actor* thisx, GlobalContext* globalCtx) {
|
||||||
osSyncPrintf(VT_FGCOL(RED) "メインモードがおかしい!!!!!!!!!!!!!!!!!!!!!!!!!\n" VT_RST);
|
osSyncPrintf(VT_FGCOL(RED) "メインモードがおかしい!!!!!!!!!!!!!!!!!!!!!!!!!\n" VT_RST);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
sActionFuncs[this->action](this, globalCtx);
|
sActionFuncs[this->action](this, globalCtx);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -954,7 +1014,7 @@ void EnIk_Draw(Actor* thisx, GlobalContext* globalCtx) {
|
||||||
osSyncPrintf(VT_FGCOL(RED) "描画モードがおかしい!!!!!!!!!!!!!!!!!!!!!!!!!\n" VT_RST);
|
osSyncPrintf(VT_FGCOL(RED) "描画モードがおかしい!!!!!!!!!!!!!!!!!!!!!!!!!\n" VT_RST);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
sDrawFuncs[this->drawMode](this, globalCtx);
|
sDrawFuncs[this->drawMode](this, globalCtx);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -15,12 +15,12 @@ typedef struct EnIk {
|
||||||
/* 0x0244 */ Vec3s transitionDrawTable[30];
|
/* 0x0244 */ Vec3s transitionDrawTable[30];
|
||||||
/* 0x02F8 */ u8 unk_2F8;
|
/* 0x02F8 */ u8 unk_2F8;
|
||||||
/* 0x02F9 */ u8 unk_2F9;
|
/* 0x02F9 */ u8 unk_2F9;
|
||||||
/* 0x02F9 */ char unk_2FA[0x01];
|
/* 0x02FA */ u8 unk_2FA;
|
||||||
/* 0x02FB */ u8 unk_2FB;
|
/* 0x02FB */ u8 unk_2FB;
|
||||||
/* 0x02FC */ u8 unk_2FC;
|
/* 0x02FC */ u8 unk_2FC;
|
||||||
/* 0x02FD */ char unk_2FD[0x01];
|
/* 0x02FD */ char unk_2FD[0x01];
|
||||||
/* 0x02FE */ s8 unk_2FE;
|
/* 0x02FE */ s8 unk_2FE;
|
||||||
/* 0x02FD */ s8 unk_2FF;
|
/* 0x02FF */ s8 unk_2FF;
|
||||||
/* 0x0300 */ s16 unk_300;
|
/* 0x0300 */ s16 unk_300;
|
||||||
/* 0x0302 */ s16 switchFlags;
|
/* 0x0302 */ s16 switchFlags;
|
||||||
/* 0x0304 */ EnIkActionFunc actionFunc;
|
/* 0x0304 */ EnIkActionFunc actionFunc;
|
||||||
|
@ -33,7 +33,8 @@ typedef struct EnIk {
|
||||||
/* 0x04C8 */ s32 action;
|
/* 0x04C8 */ s32 action;
|
||||||
/* 0x04CC */ s32 drawMode;
|
/* 0x04CC */ s32 drawMode;
|
||||||
/* 0x04D0 */ u32 npcAction;
|
/* 0x04D0 */ u32 npcAction;
|
||||||
/* 0x04D4 */ char unk_4D4[0x08];
|
/* 0x04D4 */ s32 unk_4D4;
|
||||||
|
/* 0x04D8 */ char unk_4D8[0x04];
|
||||||
} EnIk; // size = 0x04DC
|
} EnIk; // size = 0x04DC
|
||||||
|
|
||||||
extern const ActorInit En_Ik_InitVars;
|
extern const ActorInit En_Ik_InitVars;
|
||||||
|
|
|
@ -1185,6 +1185,8 @@ D_0600C114 = 0x0600C114;
|
||||||
D_0600CD70 = 0x0600CD70;
|
D_0600CD70 = 0x0600CD70;
|
||||||
D_0600DD50 = 0x0600DD50;
|
D_0600DD50 = 0x0600DD50;
|
||||||
D_0600ED24 = 0x0600ED24;
|
D_0600ED24 = 0x0600ED24;
|
||||||
|
D_06018E78 = 0x06018E78;
|
||||||
|
D_06019100 = 0x06019100;
|
||||||
D_0601E178 = 0x0601E178;
|
D_0601E178 = 0x0601E178;
|
||||||
D_060203D8 = 0x060203D8;
|
D_060203D8 = 0x060203D8;
|
||||||
D_060205C0 = 0x060205C0;
|
D_060205C0 = 0x060205C0;
|
||||||
|
|
Loading…
Add table
Reference in a new issue