ending_hero2 OK (#37)

* ending_hero2 OK

* Formatting

Co-authored-by: Rozelette <Rozelette@users.noreply.github.com>
This commit is contained in:
fullgrowngaming
2020-10-12 20:32:19 -07:00
committed by GitHub
parent e997a0b67f
commit f3fbb6474c
4 changed files with 56 additions and 11 deletions
@@ -9,7 +9,9 @@ void EnEndingHero2_Destroy(Actor* thisx, GlobalContext* globalCtx);
void EnEndingHero2_Update(Actor* thisx, GlobalContext* globalCtx);
void EnEndingHero2_Draw(Actor* thisx, GlobalContext* globalCtx);
/*
void func_80C232E8(EnEndingHero2* this);
void func_80C23304(EnEndingHero2* this, GlobalContext* globalCtx);
const ActorInit En_Ending_Hero2_InitVars = {
ACTOR_EN_ENDING_HERO2,
ACTORTYPE_NPC,
@@ -21,16 +23,48 @@ const ActorInit En_Ending_Hero2_InitVars = {
(ActorFunc)EnEndingHero2_Update,
(ActorFunc)EnEndingHero2_Draw
};
*/
GLOBAL_ASM("asm/non_matchings/ovl_En_Ending_Hero2_0x80C23230/EnEndingHero2_Init.asm")
extern SkeletonHeader D_06007908;
extern AnimationHeader D_060011C0;
GLOBAL_ASM("asm/non_matchings/ovl_En_Ending_Hero2_0x80C23230/EnEndingHero2_Destroy.asm")
void EnEndingHero2_Init(Actor* thisx, GlobalContext* globalCtx) {
EnEndingHero2* this = THIS;
GLOBAL_ASM("asm/non_matchings/ovl_En_Ending_Hero2_0x80C23230/func_80C232E8.asm")
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_06007908, &D_060011C0, this->limbDrawTable,
this->transitionDrawTable, 20);
Actor_SetDrawParams(&this->actor.shape, 0.0f, func_800B3FC0, 25.0f);
func_80C232E8(this);
}
GLOBAL_ASM("asm/non_matchings/ovl_En_Ending_Hero2_0x80C23230/func_80C23304.asm")
void EnEndingHero2_Destroy(Actor* thisx, GlobalContext* globalCtx) {
}
GLOBAL_ASM("asm/non_matchings/ovl_En_Ending_Hero2_0x80C23230/EnEndingHero2_Update.asm")
void func_80C232E8(EnEndingHero2* this) {
this->unk27C = 1;
this->actionFunc = func_80C23304;
}
GLOBAL_ASM("asm/non_matchings/ovl_En_Ending_Hero2_0x80C23230/EnEndingHero2_Draw.asm")
void func_80C23304(EnEndingHero2* this, GlobalContext* globalCtx) {
SkelAnime_FrameUpdateMatrix(&this->skelAnime);
}
void EnEndingHero2_Update(Actor* thisx, GlobalContext* globalCtx) {
EnEndingHero2* this = THIS;
this->actionFunc(this, globalCtx);
Actor_SetVelocityAndMoveYRotationAndGravity(&this->actor);
func_800B78B8(globalCtx, &this->actor, 20.0f, 20.0f, 50.0f, 0x1D);
}
void EnEndingHero2_Draw(Actor* thisx, GlobalContext* globalCtx) {
EnEndingHero2* this = THIS;
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);
}
@@ -5,9 +5,15 @@
struct EnEndingHero2;
typedef void (*EnEndingHero2ActionFunc)(struct BgHakaCurtain*, GlobalContext*);
typedef struct EnEndingHero2 {
/* 0x000 */ Actor actor;
/* 0x144 */ char unk_144[0x13C];
/* 0x144 */ SkelAnime skelAnime;
/* 0x188 */ Vec3s limbDrawTable[20];
/* 0x200 */ Vec3s transitionDrawTable[20];
/* 0x278 */ EnEndingHero2ActionFunc actionFunc;
/* 0x27C */ u16 unk27C;
} EnEndingHero2; // size = 0x280
extern const ActorInit En_Ending_Hero2_InitVars;