mirror of https://github.com/zeldaret/mm.git
ending_hero3 OK (#38)
Co-authored-by: Rozelette <Rozelette@users.noreply.github.com>
This commit is contained in:
parent
f3fbb6474c
commit
98992c25b4
|
|
@ -8656,8 +8656,9 @@ SECTIONS
|
|||
ovl_En_Ending_Hero3 : AT(RomLocation)
|
||||
{
|
||||
build/src/overlays/actors/ovl_En_Ending_Hero3/z_en_ending_hero3.o(.text)
|
||||
build/asm/ovl_En_Ending_Hero3_data.o(.data)
|
||||
build/asm/ovl_En_Ending_Hero3_rodata.o(.rodata)
|
||||
build/src/overlays/actors/ovl_En_Ending_Hero3/z_en_ending_hero3.o(.data)
|
||||
build/src/overlays/actors/ovl_En_Ending_Hero3/z_en_ending_hero3.o(.rodata)
|
||||
build/src/overlays/actors/ovl_En_Ending_Hero3/z_en_ending_hero3_overlay.o(.ovl)
|
||||
}
|
||||
SegmentEnd = .;
|
||||
SegmentSize = SegmentEnd - SegmentStart;
|
||||
|
|
|
|||
|
|
@ -34,6 +34,10 @@ D_06018DA0 = 0x06018DA0;
|
|||
D_0601EF10 = 0x0601EF10;
|
||||
D_06018C60 = 0x06018C60;
|
||||
|
||||
/* en_ending_hero3 */
|
||||
D_06007150 = 0x06007150;
|
||||
D_06000E50 = 0x06000E50;
|
||||
|
||||
/* en_ending_hero2 */
|
||||
D_06007908 = 0x06007908;
|
||||
D_060011C0 = 0x060011C0;
|
||||
|
|
|
|||
|
|
@ -9,7 +9,9 @@ void EnEndingHero3_Destroy(Actor* thisx, GlobalContext* globalCtx);
|
|||
void EnEndingHero3_Update(Actor* thisx, GlobalContext* globalCtx);
|
||||
void EnEndingHero3_Draw(Actor* thisx, GlobalContext* globalCtx);
|
||||
|
||||
/*
|
||||
void func_80C23518(EnEndingHero3* this);
|
||||
void func_80C23534(EnEndingHero3* this, GlobalContext* globalCtx);
|
||||
|
||||
const ActorInit En_Ending_Hero3_InitVars = {
|
||||
ACTOR_EN_ENDING_HERO3,
|
||||
ACTORTYPE_NPC,
|
||||
|
|
@ -21,16 +23,48 @@ const ActorInit En_Ending_Hero3_InitVars = {
|
|||
(ActorFunc)EnEndingHero3_Update,
|
||||
(ActorFunc)EnEndingHero3_Draw
|
||||
};
|
||||
*/
|
||||
|
||||
GLOBAL_ASM("asm/non_matchings/ovl_En_Ending_Hero3_0x80C23460/EnEndingHero3_Init.asm")
|
||||
extern SkeletonHeader D_06007150;
|
||||
extern AnimationHeader D_06000E50;
|
||||
|
||||
GLOBAL_ASM("asm/non_matchings/ovl_En_Ending_Hero3_0x80C23460/EnEndingHero3_Destroy.asm")
|
||||
void EnEndingHero3_Init(Actor* thisx, GlobalContext* globalCtx) {
|
||||
EnEndingHero3* this = THIS;
|
||||
|
||||
GLOBAL_ASM("asm/non_matchings/ovl_En_Ending_Hero3_0x80C23460/func_80C23518.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_06007150, &D_06000E50, this->limbDrawTable,
|
||||
this->transitionDrawTable, 17);
|
||||
Actor_SetDrawParams(&this->actor.shape, 0.0f, func_800B3FC0, 25.0f);
|
||||
func_80C23518(&this->actor);
|
||||
}
|
||||
|
||||
GLOBAL_ASM("asm/non_matchings/ovl_En_Ending_Hero3_0x80C23460/func_80C23534.asm")
|
||||
void EnEndingHero3_Destroy(Actor* thisx, GlobalContext* globalCtx) {
|
||||
}
|
||||
|
||||
GLOBAL_ASM("asm/non_matchings/ovl_En_Ending_Hero3_0x80C23460/EnEndingHero3_Update.asm")
|
||||
void func_80C23518(EnEndingHero3* this) {
|
||||
this->unk258 = 1;
|
||||
this->actionFunc = func_80C23534;
|
||||
}
|
||||
|
||||
GLOBAL_ASM("asm/non_matchings/ovl_En_Ending_Hero3_0x80C23460/EnEndingHero3_Draw.asm")
|
||||
void func_80C23534(EnEndingHero3* this, GlobalContext* globalCtx) {
|
||||
SkelAnime_FrameUpdateMatrix(&this->skelAnime);
|
||||
}
|
||||
|
||||
void EnEndingHero3_Update(Actor* thisx, GlobalContext* globalCtx) {
|
||||
EnEndingHero3* this = THIS;
|
||||
|
||||
this->actionFunc(this, globalCtx);
|
||||
Actor_SetVelocityAndMoveYRotationAndGravity(&this->actor);
|
||||
func_800B78B8(globalCtx, &this->actor, 20.0f, 20.0f, 50.0f, 0x1D);
|
||||
}
|
||||
|
||||
void EnEndingHero3_Draw(Actor* thisx, GlobalContext* globalCtx) {
|
||||
EnEndingHero3* 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 EnEndingHero3;
|
||||
|
||||
typedef void (*EnEndingHero3ActionFunc)(struct BgHakaCurtain*, GlobalContext*);
|
||||
|
||||
typedef struct EnEndingHero3 {
|
||||
/* 0x000 */ Actor actor;
|
||||
/* 0x144 */ char unk_144[0x118];
|
||||
/* 0x144 */ SkelAnime skelAnime;
|
||||
/* 0x188 */ Vec3s limbDrawTable[17];
|
||||
/* 0x1EE */ Vec3s transitionDrawTable[17];
|
||||
/* 0x254 */ EnEndingHero3ActionFunc actionFunc;
|
||||
/* 0x258 */ u16 unk258;
|
||||
} EnEndingHero3; // size = 0x25C
|
||||
|
||||
extern const ActorInit En_Ending_Hero3_InitVars;
|
||||
|
|
|
|||
Loading…
Reference in New Issue