diff --git a/assets/xml/objects/object_anubice.xml b/assets/xml/objects/object_anubice.xml new file mode 100644 index 0000000000..5a5b51f823 --- /dev/null +++ b/assets/xml/objects/object_anubice.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/spec b/spec index ea4fc0d1d3..985534ad2e 100644 --- a/spec +++ b/spec @@ -4688,7 +4688,8 @@ endseg beginseg name "object_anubice" romalign 0x1000 - include "build/baserom/object_anubice.o" + include "build/assets/objects/object_anubice/object_anubice.o" + number 6 endseg beginseg diff --git a/src/overlays/actors/ovl_En_Anubice/z_en_anubice.c b/src/overlays/actors/ovl_En_Anubice/z_en_anubice.c index c61a0912cd..5ad9cf6539 100644 --- a/src/overlays/actors/ovl_En_Anubice/z_en_anubice.c +++ b/src/overlays/actors/ovl_En_Anubice/z_en_anubice.c @@ -5,6 +5,7 @@ */ #include "z_en_anubice.h" +#include "objects/object_anubice/object_anubice.h" #include "overlays/actors/ovl_En_Anubice_Tag/z_en_anubice_tag.h" #include "overlays/actors/ovl_Bg_Hidan_Curtain/z_bg_hidan_curtain.h" #include "vt.h" @@ -26,12 +27,6 @@ void EnAnubis_SetupShootFireball(EnAnubice* this, GlobalContext* globalCtx); void EnAnubis_ShootFireball(EnAnubice* this, GlobalContext* globalCtx); void EnAnubice_Die(EnAnubice* this, GlobalContext* globalCtx); -extern AnimationHeader D_06000348; -extern AnimationHeader D_0600078C; -extern AnimationHeader D_06000F74; -extern Gfx D_06003468[]; -extern SkeletonHeader D_06003990; - const ActorInit En_Anubice_InitVars = { ACTOR_EN_ANUBICE, ACTORCAT_ENEMY, @@ -99,10 +94,6 @@ static DamageTable sDamageTable[] = { /* Unknown 2 */ DMG_ENTRY(0, 0x0), }; -Vec3f D_809B231C = { 0.0f, 0.0f, 0.0f }; -Vec3f D_809B2328 = { 0.0f, 0.0f, 0.0f }; -Vec3f D_809B2334 = { 0.0f, 0.0f, 0.0f }; - void EnAnubice_Hover(EnAnubice* this, GlobalContext* globalCtx) { Player* player = PLAYER; @@ -133,7 +124,8 @@ void EnAnubice_Init(Actor* thisx, GlobalContext* globalCtx) { EnAnubice* this = THIS; ActorShape_Init(&this->actor.shape, 0.0f, ActorShadow_DrawCircle, 20.0f); - SkelAnime_Init(globalCtx, &this->skelAnime, &D_06003990, &D_06000F74, this->jointTable, this->morphTable, 16); + SkelAnime_Init(globalCtx, &this->skelAnime, &gAnubiceSkel, &gAnubiceIdleAnim, this->jointTable, this->morphTable, + 16); osSyncPrintf("\n\n"); // ☆☆☆☆☆ Anubis occurence ☆☆☆☆☆ @@ -203,9 +195,9 @@ void EnAnubice_FindFlameCircles(EnAnubice* this, GlobalContext* globalCtx) { } void EnAnubice_SetupIdle(EnAnubice* this, GlobalContext* globalCtx) { - f32 lastFrame = Animation_GetLastFrame(&D_06000F74); + f32 lastFrame = Animation_GetLastFrame(&gAnubiceIdleAnim); - Animation_Change(&this->skelAnime, &D_06000F74, 1.0f, 0.0f, (s16)lastFrame, 0, -10.0f); + Animation_Change(&this->skelAnime, &gAnubiceIdleAnim, 1.0f, 0.0f, (s16)lastFrame, 0, -10.0f); this->actionFunc = EnAnubice_Idle; this->actor.velocity.x = this->actor.velocity.z = this->actor.gravity = 0.0f; @@ -267,10 +259,10 @@ void EnAnubice_GoToHome(EnAnubice* this, GlobalContext* globalCtx) { } void EnAnubis_SetupShootFireball(EnAnubice* this, GlobalContext* globalCtx) { - f32 lastFrame = Animation_GetLastFrame(&D_0600078C); + f32 lastFrame = Animation_GetLastFrame(&gAnubiceAttackingAnim); this->animLastFrame = lastFrame; - Animation_Change(&this->skelAnime, &D_0600078C, 1.0f, 0.0f, lastFrame, 2, -10.0f); + Animation_Change(&this->skelAnime, &gAnubiceAttackingAnim, 1.0f, 0.0f, lastFrame, 2, -10.0f); this->actionFunc = EnAnubis_ShootFireball; this->actor.velocity.x = this->actor.velocity.z = 0.0f; } @@ -297,10 +289,10 @@ void EnAnubis_ShootFireball(EnAnubice* this, GlobalContext* globalCtx) { } void EnAnubice_SetupDie(EnAnubice* this, GlobalContext* globalCtx) { - f32 lastFrame = Animation_GetLastFrame(&D_06000348); + f32 lastFrame = Animation_GetLastFrame(&gAnubiceFallDownAnim); this->animLastFrame = lastFrame; - Animation_Change(&this->skelAnime, &D_06000348, 1.0f, 0.0f, lastFrame, 2, -20.0f); + Animation_Change(&this->skelAnime, &gAnubiceFallDownAnim, 1.0f, 0.0f, lastFrame, 2, -20.0f); this->unk_256 = false; this->unk_258 = 0; @@ -319,8 +311,8 @@ void EnAnubice_SetupDie(EnAnubice* this, GlobalContext* globalCtx) { void EnAnubice_Die(EnAnubice* this, GlobalContext* globalCtx) { f32 curFrame; f32 phi_f2; - Vec3f sp4C = D_809B231C; - Vec3f fireEffectPos = D_809B2328; + Vec3f sp4C = { 0.0f, 0.0f, 0.0f }; + Vec3f fireEffectPos = { 0.0f, 0.0f, 0.0f }; s32 pad; SkelAnime_Update(&this->skelAnime); @@ -477,15 +469,15 @@ s32 EnAnubis_OverrideLimbDraw(GlobalContext* globalCtx, s32 limbIndex, Gfx** dLi void EnAnubis_PostLimbDraw(struct GlobalContext* globalCtx, s32 limbIndex, Gfx** dList, Vec3s* rot, void* thisx) { EnAnubice* this = THIS; - Vec3f sp38 = D_809B2334; + Vec3f pos = { 0.0f, 0.0f, 0.0f }; if (limbIndex == 13) { OPEN_DISPS(globalCtx->state.gfxCtx, "../z_en_anubice.c", 853); gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(globalCtx->state.gfxCtx, "../z_en_anubice.c", 856), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); - gSPDisplayList(POLY_XLU_DISP++, D_06003468); - Matrix_MultVec3f(&sp38, &this->fireballPos); + gSPDisplayList(POLY_XLU_DISP++, gAnubiceEyesDL); + Matrix_MultVec3f(&pos, &this->fireballPos); CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_en_anubice.c", 868); } diff --git a/src/overlays/actors/ovl_En_Anubice_Fire/z_en_anubice_fire.c b/src/overlays/actors/ovl_En_Anubice_Fire/z_en_anubice_fire.c index e66a779d8c..24ce815477 100644 --- a/src/overlays/actors/ovl_En_Anubice_Fire/z_en_anubice_fire.c +++ b/src/overlays/actors/ovl_En_Anubice_Fire/z_en_anubice_fire.c @@ -6,6 +6,7 @@ #include "z_en_anubice_fire.h" #include "objects/gameplay_keep/gameplay_keep.h" +#include "objects/object_anubice/object_anubice.h" #define FLAGS 0x00000010 @@ -20,8 +21,6 @@ void func_809B26EC(EnAnubiceFire* this, GlobalContext* globalCtx); void func_809B27D8(EnAnubiceFire* this, GlobalContext* globalCtx); void func_809B2B48(EnAnubiceFire* this, GlobalContext* globalCtx); -extern Gfx D_06003510[]; - const ActorInit En_Anubice_Fire_InitVars = { ACTOR_EN_ANUBICE_FIRE, ACTORCAT_ENEMY, @@ -245,7 +244,7 @@ void EnAnubiceFire_Draw(Actor* thisx, GlobalContext* globalCtx) { gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(globalCtx->state.gfxCtx, "../z_en_anubice_fire.c", 546), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); - gSPDisplayList(POLY_XLU_DISP++, D_06003510); + gSPDisplayList(POLY_XLU_DISP++, gAnubiceFireAttackDL); } if (this->scale < 0.1f) { diff --git a/undefined_syms.txt b/undefined_syms.txt index dfce8cae79..5f524dc834 100644 --- a/undefined_syms.txt +++ b/undefined_syms.txt @@ -2017,16 +2017,6 @@ D_0600033C = 0x0600033C; D_06005948 = 0x06005948; D_06005B3C = 0x06005B3C; -// z_en_anubice -D_06000348 = 0x06000348; -D_0600078C = 0x0600078C; -D_06000F74 = 0x06000F74; -D_06003468 = 0x06003468; -D_06003990 = 0x06003990; - -// z_en_anubice_fire -D_06003510 = 0x06003510; - // z_en_ba D_06000890 = 0x06000890; D_06001D80 = 0x06001D80;