From 0fbc8ec9fbb1e06e93a4a119026cf16ffe1bed26 Mon Sep 17 00:00:00 2001 From: Tom Overton Date: Mon, 11 Jul 2022 19:56:12 -0700 Subject: [PATCH] Document object_boss04 (Wart and Bubbles) (#915) * Document object_boss04 (Wart and Bubbles) * Use WART_LIMB_MAX * Fix include error --- assets/xml/objects/object_boss04.xml | 68 +++++---- src/overlays/actors/ovl_Boss_04/z_boss_04.c | 15 +- src/overlays/actors/ovl_Boss_04/z_boss_04.h | 131 +++++++++--------- .../actors/ovl_En_Tanron2/z_en_tanron2.c | 8 +- 4 files changed, 119 insertions(+), 103 deletions(-) diff --git a/assets/xml/objects/object_boss04.xml b/assets/xml/objects/object_boss04.xml index d5d0f728a2..ce54c25b47 100644 --- a/assets/xml/objects/object_boss04.xml +++ b/assets/xml/objects/object_boss04.xml @@ -1,30 +1,46 @@  + - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/overlays/actors/ovl_Boss_04/z_boss_04.c b/src/overlays/actors/ovl_Boss_04/z_boss_04.c index d731cac90e..a3e969e1a8 100644 --- a/src/overlays/actors/ovl_Boss_04/z_boss_04.c +++ b/src/overlays/actors/ovl_Boss_04/z_boss_04.c @@ -5,7 +5,6 @@ */ #include "z_boss_04.h" -#include "objects/object_boss04/object_boss04.h" #define FLAGS (ACTOR_FLAG_1 | ACTOR_FLAG_4 | ACTOR_FLAG_10 | ACTOR_FLAG_20) @@ -172,8 +171,8 @@ void Boss04_Init(Actor* thisx, PlayState* play2) { this->unk_6F8 = 1.0f; Collider_InitAndSetJntSph(play, &this->collider1, &this->actor, &sJntSphInit1, this->collider1Elements); Collider_InitAndSetJntSph(play, &this->collider2, &this->actor, &sJntSphInit2, this->collider2Elements); - SkelAnime_InitFlex(play, &this->skelAnime, &object_boss04_Skel_0045E8, &object_boss04_Anim_00004C, this->jointTable, - this->morphtable, 9); + SkelAnime_InitFlex(play, &this->skelAnime, &gWartSkel, &gWartIdleAnim, this->jointTable, this->morphtable, + WART_LIMB_MAX); spA8.y = this->actor.world.pos.y + 200.0f; for (i = 0; i < ARRAY_COUNT(D_809EE1F8); i++) { @@ -781,11 +780,11 @@ s32 Boss04_OverrideLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3f* rot->z += KREG(35) * 256; } - if ((limbIndex == 5) || (limbIndex == 7)) { + if ((limbIndex == WART_LIMB_TOP_EYELID_ROOT) || (limbIndex == WART_LIMB_BOTTOM_EYELID_ROOT)) { rot->y = (rot->y + (s16)this->unk_2CC) - 0x500; } - if (limbIndex == 4) { + if (limbIndex == WART_LIMB_EYE) { rot->y += this->unk_2D8; rot->z += this->unk_2D4; if (this->unk_2DA != 0) { @@ -803,7 +802,7 @@ void Boss04_PostLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s* rot Boss04* this = THIS; Vec3f sp18; - if (limbIndex == 1) { + if (limbIndex == WART_LIMB_ROOT) { Matrix_MultVecY(-500.0f, &this->actor.focus.pos); Matrix_MultVec3f(&D_809EE228, &sp18); func_809EC040(0, &this->collider1, &sp18); @@ -834,7 +833,7 @@ void Boss04_Draw(Actor* thisx, PlayState* play) { func_8012C448(play->state.gfxCtx); gDPSetPrimColor(POLY_XLU_DISP++, 0, 0, 0, 0, 0, 150); - gSPDisplayList(POLY_XLU_DISP++, object_boss04_DL_004510); + gSPDisplayList(POLY_XLU_DISP++, gWartShadowMaterialDL); Matrix_Translate(this->unk_6BC.x, this->actor.floorHeight, this->unk_6BC.z, MTXMODE_NEW); Matrix_RotateYS(this->actor.shape.rot.y, MTXMODE_APPLY); @@ -842,7 +841,7 @@ void Boss04_Draw(Actor* thisx, PlayState* play) { Matrix_Scale(this->unk_6F8 * 1.8f, 0.0f, this->unk_700 * 2.8f, MTXMODE_APPLY); gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(play->state.gfxCtx), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); - gSPDisplayList(POLY_XLU_DISP++, object_boss04_DL_004550); + gSPDisplayList(POLY_XLU_DISP++, gWartShadowModelDL); } CLOSE_DISPS(play->state.gfxCtx); diff --git a/src/overlays/actors/ovl_Boss_04/z_boss_04.h b/src/overlays/actors/ovl_Boss_04/z_boss_04.h index 579032aa23..622326b166 100644 --- a/src/overlays/actors/ovl_Boss_04/z_boss_04.h +++ b/src/overlays/actors/ovl_Boss_04/z_boss_04.h @@ -2,77 +2,78 @@ #define Z_BOSS_04_H #include "global.h" +#include "objects/object_boss04/object_boss04.h" struct Boss04; typedef void (*Boss04ActionFunc)(struct Boss04*, PlayState*); typedef struct Boss04 { - /* 0x0000 */ Actor actor; - /* 0x0144 */ SkelAnime skelAnime; - /* 0x0188 */ Vec3s jointTable[9]; - /* 0x01BE */ Vec3s morphtable[9]; - /* 0x01F4 */ s16 unk_1F4; - /* 0x01F6 */ u8 unk_1F6; - /* 0x01F7 */ u8 unk_1F7; - /* 0x01F8 */ s16 unk_1F8; - /* 0x01FA */ s16 unk_1FA; - /* 0x01FC */ UNK_TYPE1 unk_1FC[2]; - /* 0x01FE */ s16 unk_1FE; - /* 0x0200 */ s16 unk_200; - /* 0x0204 */ Boss04ActionFunc actionFunc; - /* 0x0208 */ ColliderJntSph collider1; - /* 0x0228 */ ColliderJntSphElement collider1Elements[1]; - /* 0x0268 */ ColliderJntSph collider2; - /* 0x0288 */ ColliderJntSphElement collider2Elements[1]; - /* 0x02C8 */ s16 unk_2C8; - /* 0x02CC */ f32 unk_2CC; - /* 0x02D0 */ f32 unk_2D0; - /* 0x02D4 */ s16 unk_2D4; - /* 0x02D6 */ s16 unk_2D6; - /* 0x02D8 */ s16 unk_2D8; - /* 0x02DA */ s16 unk_2DA; - /* 0x02DC */ s16 unk_2DC; - /* 0x02DE */ s16 unk_2DE; - /* 0x02E0 */ s16 unk_2E0; - /* 0x02E2 */ s16 unk_2E2; - /* 0x02E4 */ Vec3f unk_2E4[16]; - /* 0x02E4 */ Vec3f unk_3A4[15]; - /* 0x02E4 */ Vec3f unk_458[15]; - /* 0x02E4 */ Vec3f unk_50C[11]; - /* 0x02E4 */ Vec3f unk_590[11]; - /* 0x02E4 */ Vec3f unk_614[6]; - /* 0x02E4 */ Vec3f unk_65C[6]; - /* 0x02E4 */ Vec3f unk_6A4; - /* 0x02E4 */ Vec3f unk_6B0; - /* 0x06BC */ Vec3f unk_6BC; - /* 0x06C8 */ Vec3f unk_6C8; - /* 0x06D4 */ f32 unk_6D4; - /* 0x06D8 */ f32 unk_6D8; - /* 0x06DC */ f32 unk_6DC; - /* 0x06E0 */ f32 unk_6E0; - /* 0x06E4 */ f32 unk_6E4; - /* 0x06E8 */ f32 unk_6E8; - /* 0x06EC */ UNK_TYPE1 unk_6EC[4]; - /* 0x06F0 */ f32 unk_6F0; - /* 0x06F4 */ s16 unk_6F4; - /* 0x06F6 */ s16 unk_6F6; - /* 0x06F8 */ f32 unk_6F8; - /* 0x06FC */ f32 unk_6FC; - /* 0x0700 */ f32 unk_700; - /* 0x0704 */ u32 unk_704; - /* 0x0708 */ s16 unk_708; - /* 0x070A */ s16 unk_70A; - /* 0x070C */ Vec3f unk_70C; - /* 0x0718 */ Vec3f unk_718; - /* 0x0724 */ UNK_TYPE1 unk_724[4]; - /* 0x0728 */ f32 unk_728; - /* 0x072C */ UNK_TYPE1 unk_72C[0x10]; - /* 0x073C */ f32 unk_73C; - /* 0x0740 */ UNK_TYPE1 unk_740[4]; - /* 0x0744 */ f32 unk_744; - /* 0x0748 */ s16 unk_748; - /* 0x074A */ u8 unk_74A; + /* 0x000 */ Actor actor; + /* 0x144 */ SkelAnime skelAnime; + /* 0x188 */ Vec3s jointTable[WART_LIMB_MAX]; + /* 0x1BE */ Vec3s morphtable[WART_LIMB_MAX]; + /* 0x1F4 */ s16 unk_1F4; + /* 0x1F6 */ u8 unk_1F6; + /* 0x1F7 */ u8 unk_1F7; + /* 0x1F8 */ s16 unk_1F8; + /* 0x1FA */ s16 unk_1FA; + /* 0x1FC */ UNK_TYPE1 unk_1FC[2]; + /* 0x1FE */ s16 unk_1FE; + /* 0x200 */ s16 unk_200; + /* 0x204 */ Boss04ActionFunc actionFunc; + /* 0x208 */ ColliderJntSph collider1; + /* 0x228 */ ColliderJntSphElement collider1Elements[1]; + /* 0x268 */ ColliderJntSph collider2; + /* 0x288 */ ColliderJntSphElement collider2Elements[1]; + /* 0x2C8 */ s16 unk_2C8; + /* 0x2CC */ f32 unk_2CC; + /* 0x2D0 */ f32 unk_2D0; + /* 0x2D4 */ s16 unk_2D4; + /* 0x2D6 */ s16 unk_2D6; + /* 0x2D8 */ s16 unk_2D8; + /* 0x2DA */ s16 unk_2DA; + /* 0x2DC */ s16 unk_2DC; + /* 0x2DE */ s16 unk_2DE; + /* 0x2E0 */ s16 unk_2E0; + /* 0x2E2 */ s16 unk_2E2; + /* 0x2E4 */ Vec3f unk_2E4[16]; + /* 0x2E4 */ Vec3f unk_3A4[15]; + /* 0x2E4 */ Vec3f unk_458[15]; + /* 0x2E4 */ Vec3f unk_50C[11]; + /* 0x2E4 */ Vec3f unk_590[11]; + /* 0x2E4 */ Vec3f unk_614[6]; + /* 0x2E4 */ Vec3f unk_65C[6]; + /* 0x2E4 */ Vec3f unk_6A4; + /* 0x2E4 */ Vec3f unk_6B0; + /* 0x6BC */ Vec3f unk_6BC; + /* 0x6C8 */ Vec3f unk_6C8; + /* 0x6D4 */ f32 unk_6D4; + /* 0x6D8 */ f32 unk_6D8; + /* 0x6DC */ f32 unk_6DC; + /* 0x6E0 */ f32 unk_6E0; + /* 0x6E4 */ f32 unk_6E4; + /* 0x6E8 */ f32 unk_6E8; + /* 0x6EC */ UNK_TYPE1 unk_6EC[4]; + /* 0x6F0 */ f32 unk_6F0; + /* 0x6F4 */ s16 unk_6F4; + /* 0x6F6 */ s16 unk_6F6; + /* 0x6F8 */ f32 unk_6F8; + /* 0x6FC */ f32 unk_6FC; + /* 0x700 */ f32 unk_700; + /* 0x704 */ u32 unk_704; + /* 0x708 */ s16 unk_708; + /* 0x70A */ s16 unk_70A; + /* 0x70C */ Vec3f unk_70C; + /* 0x718 */ Vec3f unk_718; + /* 0x724 */ UNK_TYPE1 unk_724[4]; + /* 0x728 */ f32 unk_728; + /* 0x72C */ UNK_TYPE1 unk_72C[0x10]; + /* 0x73C */ f32 unk_73C; + /* 0x740 */ UNK_TYPE1 unk_740[4]; + /* 0x744 */ f32 unk_744; + /* 0x748 */ s16 unk_748; + /* 0x74A */ u8 unk_74A; } Boss04; // size = 0x74C extern const ActorInit Boss_04_InitVars; diff --git a/src/overlays/actors/ovl_En_Tanron2/z_en_tanron2.c b/src/overlays/actors/ovl_En_Tanron2/z_en_tanron2.c index 5f6d54b07c..afc1510322 100644 --- a/src/overlays/actors/ovl_En_Tanron2/z_en_tanron2.c +++ b/src/overlays/actors/ovl_En_Tanron2/z_en_tanron2.c @@ -594,7 +594,7 @@ void EnTanron2_Draw(Actor* thisx, PlayState* play2) { func_8012C2DC(play->state.gfxCtx); - gSPDisplayList(POLY_XLU_DISP++, object_boss04_DL_003450); + gSPDisplayList(POLY_XLU_DISP++, gWartBubbleMaterialDL); gDPSetPrimColor(POLY_XLU_DISP++, 0, 0, 255, 255, 255, 150); tanron2 = play->actorCtx.actorLists[ACTORCAT_BOSS].first; @@ -633,14 +633,14 @@ void EnTanron2_Draw(Actor* thisx, PlayState* play2) { Matrix_RotateZS(-D_80BB8458[i]->unk_14A, MTXMODE_APPLY); gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(play->state.gfxCtx), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); - gSPDisplayList(POLY_XLU_DISP++, object_boss04_DL_0034C8); + gSPDisplayList(POLY_XLU_DISP++, gWartBubbleModelDL); } } func_8012C448(play->state.gfxCtx); gDPSetPrimColor(POLY_XLU_DISP++, 0, 0, 0, 0, 0, 150); - gSPDisplayList(POLY_XLU_DISP++, object_boss04_DL_004510); + gSPDisplayList(POLY_XLU_DISP++, gWartShadowMaterialDL); tanron2 = play->actorCtx.actorLists[ACTORCAT_BOSS].first; while (tanron2 != NULL) { @@ -649,7 +649,7 @@ void EnTanron2_Draw(Actor* thisx, PlayState* play2) { Matrix_Scale(0.6f, 0.0f, 0.6f, MTXMODE_APPLY); gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(play->state.gfxCtx), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); - gSPDisplayList(POLY_XLU_DISP++, object_boss04_DL_004550); + gSPDisplayList(POLY_XLU_DISP++, gWartShadowModelDL); } tanron2 = tanron2->next; }