summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorfullgrowngaming <42490167+fullgrowngaming@users.noreply.github.com>2020-10-12 20:33:42 -0700
committerGitHub <noreply@github.com>2020-10-12 22:33:42 -0500
commitc4f4dcebc783d5ab8588227691e35fee485e508a (patch)
tree828ed31f02a2b719db1783ba3ac52dc9cdd02264 /src
parent98992c25b47d8f9bc54977cb49cfd86907221c93 (diff)
en_ending_hero4 OK (#39)
Co-authored-by: Rozelette <Rozelette@users.noreply.github.com>
Diffstat (limited to 'src')
-rw-r--r--src/overlays/actors/ovl_En_Ending_Hero4/z_en_ending_hero4.c50
-rw-r--r--src/overlays/actors/ovl_En_Ending_Hero4/z_en_ending_hero4.h8
2 files changed, 49 insertions, 9 deletions
diff --git a/src/overlays/actors/ovl_En_Ending_Hero4/z_en_ending_hero4.c b/src/overlays/actors/ovl_En_Ending_Hero4/z_en_ending_hero4.c
index 12ce28ed2..fc3e1b3b4 100644
--- a/src/overlays/actors/ovl_En_Ending_Hero4/z_en_ending_hero4.c
+++ b/src/overlays/actors/ovl_En_Ending_Hero4/z_en_ending_hero4.c
@@ -9,7 +9,9 @@ void EnEndingHero4_Destroy(Actor* thisx, GlobalContext* globalCtx);
void EnEndingHero4_Update(Actor* thisx, GlobalContext* globalCtx);
void EnEndingHero4_Draw(Actor* thisx, GlobalContext* globalCtx);
-/*
+void func_80C23748(EnEndingHero4* this);
+void func_80C23764(EnEndingHero4* this, GlobalContext* globalCtx);
+
const ActorInit En_Ending_Hero4_InitVars = {
ACTOR_EN_ENDING_HERO4,
ACTORTYPE_NPC,
@@ -21,16 +23,48 @@ const ActorInit En_Ending_Hero4_InitVars = {
(ActorFunc)EnEndingHero4_Update,
(ActorFunc)EnEndingHero4_Draw
};
-*/
-GLOBAL_ASM("asm/non_matchings/ovl_En_Ending_Hero4_0x80C23690/EnEndingHero4_Init.asm")
+extern SkeletonHeader D_0600D640;
+extern AnimationHeader D_06002A84;
+
+void EnEndingHero4_Init(Actor* thisx, GlobalContext* globalCtx) {
+ EnEndingHero4* this = THIS;
+
+ this->actor.unkA0.mass = 0xFF;
+ Actor_SetScale(&this->actor, 0.01f);
+ this->actor.unk1F = 6;
+ this->actor.gravity = -3.0f;
+ SkelAnime_InitSV(globalCtx, &this->skelAnime, &D_0600D640, &D_06002A84, this->limbDrawTable,
+ this->transitionDrawTable, 17);
+ Actor_SetDrawParams(&this->actor.shape, 0.0f, func_800B3FC0, 25.0f);
+ func_80C23748(this);
+}
+
+void EnEndingHero4_Destroy(Actor* thisx, GlobalContext* globalCtx) {
+}
+
+void func_80C23748(EnEndingHero4* this) {
+ this->unk258 = 1;
+ this->actionFunc = func_80C23764;
+}
-GLOBAL_ASM("asm/non_matchings/ovl_En_Ending_Hero4_0x80C23690/EnEndingHero4_Destroy.asm")
+void func_80C23764(EnEndingHero4* this, GlobalContext* globalCtx) {
+ SkelAnime_FrameUpdateMatrix(&this->skelAnime);
+}
-GLOBAL_ASM("asm/non_matchings/ovl_En_Ending_Hero4_0x80C23690/func_80C23748.asm")
+void EnEndingHero4_Update(Actor* thisx, GlobalContext* globalCtx) {
+ EnEndingHero4* this = THIS;
-GLOBAL_ASM("asm/non_matchings/ovl_En_Ending_Hero4_0x80C23690/func_80C23764.asm")
+ this->actionFunc(this, globalCtx);
+ Actor_SetVelocityAndMoveYRotationAndGravity(&this->actor);
+ func_800B78B8(globalCtx, &this->actor, 20.0f, 20.0f, 50.0f, 0x1D);
+}
-GLOBAL_ASM("asm/non_matchings/ovl_En_Ending_Hero4_0x80C23690/EnEndingHero4_Update.asm")
+void EnEndingHero4_Draw(Actor* thisx, GlobalContext* globalCtx) {
+ EnEndingHero4* this = THIS;
-GLOBAL_ASM("asm/non_matchings/ovl_En_Ending_Hero4_0x80C23690/EnEndingHero4_Draw.asm")
+ func_8012C28C(globalCtx->state.gfxCtx);
+ func_8012C2DC(globalCtx->state.gfxCtx);
+ SkelAnime_DrawSV(globalCtx, this->skelAnime.skeleton, this->skelAnime.limbDrawTbl, this->skelAnime.dListCount, 0, 0,
+ &this->actor);
+}
diff --git a/src/overlays/actors/ovl_En_Ending_Hero4/z_en_ending_hero4.h b/src/overlays/actors/ovl_En_Ending_Hero4/z_en_ending_hero4.h
index accf7134e..60def244c 100644
--- a/src/overlays/actors/ovl_En_Ending_Hero4/z_en_ending_hero4.h
+++ b/src/overlays/actors/ovl_En_Ending_Hero4/z_en_ending_hero4.h
@@ -5,9 +5,15 @@
struct EnEndingHero4;
+typedef void (*EnEndingHero4ActionFunc)(struct BgHakaCurtain*, GlobalContext*);
+
typedef struct EnEndingHero4 {
/* 0x000 */ Actor actor;
- /* 0x144 */ char unk_144[0x118];
+ /* 0x144 */ SkelAnime skelAnime;
+ /* 0x188 */ Vec3s limbDrawTable[17];
+ /* 0x1EE */ Vec3s transitionDrawTable[17];
+ /* 0x254 */ EnEndingHero4ActionFunc actionFunc;
+ /* 0x258 */ u16 unk258;
} EnEndingHero4; // size = 0x25C
extern const ActorInit En_Ending_Hero4_InitVars;