diff --git a/assets/xml/objects/object_ganon.xml b/assets/xml/objects/object_ganon.xml index e877b60f49..79cba2ab36 100644 --- a/assets/xml/objects/object_ganon.xml +++ b/assets/xml/objects/object_ganon.xml @@ -1,96 +1,106 @@ + - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - + + - + + + + + - + + - - - - - - - - - - - - - - - - - - - - - - - - - + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/xml/objects/object_ganon2.xml b/assets/xml/objects/object_ganon2.xml index 8b66cfcc2d..93f3a05e5e 100644 --- a/assets/xml/objects/object_ganon2.xml +++ b/assets/xml/objects/object_ganon2.xml @@ -1,158 +1,174 @@ + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/xml/objects/object_ganon_anime1.xml b/assets/xml/objects/object_ganon_anime1.xml index 6021fdd9b1..11e08a9eb5 100644 --- a/assets/xml/objects/object_ganon_anime1.xml +++ b/assets/xml/objects/object_ganon_anime1.xml @@ -1,29 +1,30 @@ + - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/xml/objects/object_ganon_anime2.xml b/assets/xml/objects/object_ganon_anime2.xml index 96121689e9..f05c72dedc 100644 --- a/assets/xml/objects/object_ganon_anime2.xml +++ b/assets/xml/objects/object_ganon_anime2.xml @@ -1,21 +1,22 @@ + - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + diff --git a/assets/xml/objects/object_ganon_anime3.xml b/assets/xml/objects/object_ganon_anime3.xml index 2af1e94f95..17bc46eb49 100644 --- a/assets/xml/objects/object_ganon_anime3.xml +++ b/assets/xml/objects/object_ganon_anime3.xml @@ -1,13 +1,17 @@ + - - - - - - - - - + + + + + + + + + + + + diff --git a/assets/xml/overlays/ovl_Boss_Ganon.xml b/assets/xml/overlays/ovl_Boss_Ganon.xml index 07507ae63d..cdb87e9c16 100644 --- a/assets/xml/overlays/ovl_Boss_Ganon.xml +++ b/assets/xml/overlays/ovl_Boss_Ganon.xml @@ -1,53 +1,53 @@ - - - - - - - - - - - - + + + + + + + + + + + + - + - - - - - - - - - - - - + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + diff --git a/src/overlays/actors/ovl_Boss_Ganon/z_boss_ganon.c b/src/overlays/actors/ovl_Boss_Ganon/z_boss_ganon.c index 141f111357..79d09fe1cf 100644 --- a/src/overlays/actors/ovl_Boss_Ganon/z_boss_ganon.c +++ b/src/overlays/actors/ovl_Boss_Ganon/z_boss_ganon.c @@ -355,7 +355,7 @@ void BossGanon_Init(Actor* thisx, PlayState* play2) { Actor_ProcessInitChain(thisx, sInitChain); ActorShape_Init(&thisx->shape, 0, NULL, 0); Actor_SetScale(thisx, 0.01f); - SkelAnime_InitFlex(play, &this->skelAnime, &gDorfSkel, NULL, NULL, NULL, 0); + SkelAnime_InitFlex(play, &this->skelAnime, &gGanondorfSkel, NULL, NULL, NULL, 0); Collider_InitCylinder(play, &this->collider); Collider_SetCylinder(play, &this->collider, thisx, &sDorfCylinderInit); @@ -485,7 +485,7 @@ void BossGanon_SetupIntroCutscene(BossGanon* this, PlayState* play) { this->unk_198 = 1; this->animBankIndex = animBankIndex; gSegments[6] = VIRTUAL_TO_PHYSICAL(play->objectCtx.status[animBankIndex].segment); - Animation_MorphToLoop(&this->skelAnime, &object_ganon_anime2_Anim_005FFC, 0.0f); + Animation_MorphToLoop(&this->skelAnime, &gGanondorfPlayOrganAnim, 0.0f); } else { this->actionFunc = BossGanon_SetupIntroCutscene; } @@ -569,7 +569,7 @@ void BossGanon_IntroCutscene(BossGanon* this, PlayState* play) { this->csTimer = 0; player->actor.world.pos.z = 20.0f; this->useOpenHand = false; - Animation_MorphToLoop(&this->skelAnime, &object_ganon_anime2_Anim_0089F8, -5.0f); + Animation_MorphToLoop(&this->skelAnime, &gGanondorfStandBackwardsAnim, -5.0f); this->fwork[GDF_FWORK_1] = 1000.0f; BossGanon_SetIntroCsCamera(this, 11); this->unk_198 = 2; @@ -808,12 +808,12 @@ void BossGanon_IntroCutscene(BossGanon* this, PlayState* play) { if (this->csTimer == 30) { Audio_QueueSeqCmd(0x100100FF); - this->fwork[GDF_FWORK_1] = Animation_GetLastFrame(&object_ganon_anime2_Anim_004F64); - Animation_MorphToPlayOnce(&this->skelAnime, &object_ganon_anime2_Anim_004F64, -5.0f); + this->fwork[GDF_FWORK_1] = Animation_GetLastFrame(&gGanondorfStopPlayingOrganAnim); + Animation_MorphToPlayOnce(&this->skelAnime, &gGanondorfStopPlayingOrganAnim, -5.0f); } if ((this->csTimer > 30) && Animation_OnFrame(&this->skelAnime, this->fwork[GDF_FWORK_1])) { - Animation_MorphToLoop(&this->skelAnime, &object_ganon_anime2_Anim_006AF4, 0.0f); + Animation_MorphToLoop(&this->skelAnime, &gGanondorfLeanOnOrganAnim, 0.0f); this->fwork[GDF_FWORK_1] = 1000.0f; } @@ -853,12 +853,12 @@ void BossGanon_IntroCutscene(BossGanon* this, PlayState* play) { if (this->csTimer <= 20) { if (this->csTimer == 20) { - Animation_MorphToPlayOnce(&this->skelAnime, &object_ganon_anime2_Anim_004304, -5.0f); - this->fwork[GDF_FWORK_1] = Animation_GetLastFrame(&object_ganon_anime2_Anim_004304); + Animation_MorphToPlayOnce(&this->skelAnime, &gGanondorfStandUpFromOrganAnim, -5.0f); + this->fwork[GDF_FWORK_1] = Animation_GetLastFrame(&gGanondorfStandUpFromOrganAnim); } } else if (Animation_OnFrame(&this->skelAnime, this->fwork[GDF_FWORK_1])) { Message_StartTextbox(play, 0x70CA, NULL); - Animation_MorphToLoop(&this->skelAnime, &object_ganon_anime2_Anim_0089F8, -5.0f); + Animation_MorphToLoop(&this->skelAnime, &gGanondorfStandBackwardsAnim, -5.0f); this->fwork[GDF_FWORK_1] = 1000.0f; } @@ -872,8 +872,8 @@ void BossGanon_IntroCutscene(BossGanon* this, PlayState* play) { this->envLightMode = 3; if (this->csTimer == 20) { - Animation_MorphToPlayOnce(&this->skelAnime, &object_ganon_anime2_Anim_001F58, -5.0f); - this->fwork[GDF_FWORK_1] = Animation_GetLastFrame(&object_ganon_anime2_Anim_001F58); + Animation_MorphToPlayOnce(&this->skelAnime, &gGanondorfTurnAroundAnim, -5.0f); + this->fwork[GDF_FWORK_1] = Animation_GetLastFrame(&gGanondorfTurnAroundAnim); } if (this->csTimer > 10) { @@ -906,7 +906,7 @@ void BossGanon_IntroCutscene(BossGanon* this, PlayState* play) { this->csCamEye.z += 6.0f; if (Animation_OnFrame(&this->skelAnime, this->fwork[GDF_FWORK_1] - 5.0f)) { - Animation_MorphToLoop(&this->skelAnime, &object_ganon_anime2_Anim_003018, -5.0f); + Animation_MorphToLoop(&this->skelAnime, &gGanondorfStandIdleAnim, -5.0f); this->fwork[GDF_FWORK_1] = 1000.0f; } @@ -917,7 +917,7 @@ void BossGanon_IntroCutscene(BossGanon* this, PlayState* play) { this->csState = 19; this->csTimer = 0; Message_StartTextbox(play, 0x70CC, NULL); - Animation_MorphToPlayOnce(&this->skelAnime, &object_ganon_anime2_Anim_007268, -5.0f); + Animation_MorphToPlayOnce(&this->skelAnime, &gGanondorfRaiseHandStartAnim, -5.0f); this->triforceType = GDF_TRIFORCE_DORF; this->fwork[GDF_TRIFORCE_SCALE] = 10.0f; this->fwork[GDF_TRIFORCE_PRIM_A] = 0.0f; @@ -953,7 +953,7 @@ void BossGanon_IntroCutscene(BossGanon* this, PlayState* play) { } if (this->csTimer == 17) { - Animation_MorphToLoop(&this->skelAnime, &object_ganon_anime2_Anim_007A64, -5.0f); + Animation_MorphToLoop(&this->skelAnime, &gGanondorfRaiseHandLoopAnim, -5.0f); } if ((this->csTimer > 80) && (Message_GetState(&play->msgCtx) == TEXT_STATE_NONE)) { @@ -1068,7 +1068,7 @@ void BossGanon_IntroCutscene(BossGanon* this, PlayState* play) { if (this->csTimer == 20) { BossGanon_SetAnimationObject(this, play, OBJECT_GANON_ANIME1); - Animation_MorphToPlayOnce(&this->skelAnime, &gDorfGetUp3Anim, 0.0f); + Animation_MorphToPlayOnce(&this->skelAnime, &gGanondorfGetUp3Anim, 0.0f); SkelAnime_Update(&this->skelAnime); this->actor.shape.yOffset = 0.0f; sCape->attachShouldersTimer = 18.0f; @@ -1082,8 +1082,8 @@ void BossGanon_IntroCutscene(BossGanon* this, PlayState* play) { play->objectCtx.status[Object_GetIndex(&play->objectCtx, OBJECT_GANON)].segment); if (!GET_EVENTCHKINF(EVENTCHKINF_78)) { - TitleCard_InitBossName(play, &play->actorCtx.titleCtx, SEGMENTED_TO_VIRTUAL(gDorfTitleCardTex), 160, - 180, 128, 40); + TitleCard_InitBossName(play, &play->actorCtx.titleCtx, SEGMENTED_TO_VIRTUAL(gGanondorfTitleCardTex), + 160, 180, 128, 40); } SET_EVENTCHKINF(EVENTCHKINF_78); @@ -1170,8 +1170,8 @@ void BossGanon_SetupDeathCutscene(BossGanon* this, PlayState* play) { this->unk_198 = 1; this->animBankIndex = animBankIndex; gSegments[6] = VIRTUAL_TO_PHYSICAL(play->objectCtx.status[animBankIndex].segment); - Animation_MorphToPlayOnce(&this->skelAnime, &object_ganon_anime2_Anim_00EA00, 0.0f); - this->fwork[GDF_FWORK_1] = Animation_GetLastFrame(&object_ganon_anime2_Anim_00EA00); + Animation_MorphToPlayOnce(&this->skelAnime, &gGanondorfDefeatedStartAnim, 0.0f); + this->fwork[GDF_FWORK_1] = Animation_GetLastFrame(&gGanondorfDefeatedStartAnim); this->unk_508 = 0.0f; } } @@ -1183,8 +1183,8 @@ void BossGanon_SetupTowerCutscene(BossGanon* this, PlayState* play) { if (Object_IsLoaded(&play->objectCtx, animBankIndex)) { this->animBankIndex = animBankIndex; gSegments[6] = VIRTUAL_TO_PHYSICAL(play->objectCtx.status[animBankIndex].segment); - Animation_MorphToPlayOnce(&this->skelAnime, &object_ganon_anime2_Anim_00EA00, 0.0f); - this->fwork[GDF_FWORK_1] = Animation_GetLastFrame(&object_ganon_anime2_Anim_00EA00); + Animation_MorphToPlayOnce(&this->skelAnime, &gGanondorfDefeatedStartAnim, 0.0f); + this->fwork[GDF_FWORK_1] = Animation_GetLastFrame(&gGanondorfDefeatedStartAnim); this->actionFunc = BossGanon_DeathAndTowerCutscene; this->csTimer = 0; this->csState = 100; @@ -1203,7 +1203,8 @@ void BossGanon_ShatterWindows(u8 windowShatterState) { for (i = 0; i < 2048; i++) { if ((tex1[i] != 0) && (Rand_ZeroOne() < 0.03f)) { - if ((((u8*)gDorfWindowShatterTemplateTex)[i] == 0) || (windowShatterState == GDF_WINDOW_SHATTER_FULL)) { + if ((((u8*)gGanondorfWindowShatterTemplateTex)[i] == 0) || + (windowShatterState == GDF_WINDOW_SHATTER_FULL)) { tex1[i] = tex2[i] = 1; } } @@ -1274,7 +1275,7 @@ void BossGanon_DeathAndTowerCutscene(BossGanon* this, PlayState* play) { this->csCamAt.z = this->unk_1FC.z; if (Animation_OnFrame(&this->skelAnime, this->fwork[GDF_FWORK_1])) { - Animation_MorphToLoop(&this->skelAnime, &object_ganon_anime2_Anim_00F19C, 0.0f); + Animation_MorphToLoop(&this->skelAnime, &gGanondorfDefeatedLoopAnim, 0.0f); this->csState = 2; this->csTimer = 0; } @@ -1320,8 +1321,8 @@ void BossGanon_DeathAndTowerCutscene(BossGanon* this, PlayState* play) { if ((this->fwork[GDF_FWORK_1] > 100.0f) && (this->csTimer > 100) && (Message_GetState(&play->msgCtx) == TEXT_STATE_NONE)) { - Animation_MorphToPlayOnce(&this->skelAnime, &object_ganon_anime2_Anim_00B668, 0.0f); - this->fwork[GDF_FWORK_1] = Animation_GetLastFrame(&object_ganon_anime2_Anim_00B668); + Animation_MorphToPlayOnce(&this->skelAnime, &gGanondorfVomitStartAnim, 0.0f); + this->fwork[GDF_FWORK_1] = Animation_GetLastFrame(&gGanondorfVomitStartAnim); Audio_PlayActorSfx2(&this->actor, NA_SE_EN_GANON_TOKETU); } else { if (Animation_OnFrame(&this->skelAnime, this->fwork[GDF_FWORK_1] - 16.0f)) { @@ -1344,7 +1345,7 @@ void BossGanon_DeathAndTowerCutscene(BossGanon* this, PlayState* play) { } if (Animation_OnFrame(&this->skelAnime, this->fwork[GDF_FWORK_1])) { - Animation_MorphToLoop(&this->skelAnime, &object_ganon_anime2_Anim_00BE38, 0.0f); + Animation_MorphToLoop(&this->skelAnime, &gGanondorfVomitLoopAnim, 0.0f); this->csState = 4; this->csTimer = 0; } @@ -1367,8 +1368,8 @@ void BossGanon_DeathAndTowerCutscene(BossGanon* this, PlayState* play) { if ((this->csTimer > 70) && (Message_GetState(&play->msgCtx) == TEXT_STATE_NONE)) { this->csState = 6; this->csTimer = 0; - Animation_MorphToPlayOnce(&this->skelAnime, &object_ganon_anime2_Anim_010298, 0.0f); - this->fwork[GDF_FWORK_1] = Animation_GetLastFrame(&object_ganon_anime2_Anim_010298); + Animation_MorphToPlayOnce(&this->skelAnime, &gGanondorfYellStartAnim, 0.0f); + this->fwork[GDF_FWORK_1] = Animation_GetLastFrame(&gGanondorfYellStartAnim); this->csCamMovementScale = 0.05f; this->csCamMaxStepScale = 0.0f; @@ -1399,7 +1400,7 @@ void BossGanon_DeathAndTowerCutscene(BossGanon* this, PlayState* play) { Math_ApproachF(&this->csCamMaxStepScale, 0.2f, 1.0f, 0.01f); if (Animation_OnFrame(&this->skelAnime, this->fwork[GDF_FWORK_1])) { - Animation_MorphToLoop(&this->skelAnime, &object_ganon_anime2_Anim_010514, 0.0f); + Animation_MorphToLoop(&this->skelAnime, &gGanondorfYellLoopAnim, 0.0f); this->csState = 7; this->csTimer = 0; this->unk_2E8 = 0; @@ -1507,8 +1508,8 @@ void BossGanon_DeathAndTowerCutscene(BossGanon* this, PlayState* play) { this->csCamIndex = Play_CreateSubCamera(play); Play_ChangeCameraStatus(play, CAM_ID_MAIN, CAM_STAT_WAIT); Play_ChangeCameraStatus(play, this->csCamIndex, CAM_STAT_ACTIVE); - Animation_MorphToPlayOnce(&this->skelAnime, &object_ganon_anime2_Anim_00ADDC, 0.0f); - this->fwork[1] = Animation_GetLastFrame(&object_ganon_anime2_Anim_00EA00); + Animation_MorphToPlayOnce(&this->skelAnime, &gGanondorfCollapseAnim, 0.0f); + this->fwork[1] = Animation_GetLastFrame(&gGanondorfDefeatedStartAnim); this->csState = 101; this->skelAnime.playSpeed = 0.0f; sZelda = (EnZl3*)Actor_SpawnAsChild(&play->actorCtx, &this->actor, play, ACTOR_EN_ZL3, 0.0f, 6000.0f, 0.0f, @@ -1875,8 +1876,8 @@ void BossGanon_PoundFloor(BossGanon* this, PlayState* play) { Math_ApproachF(&this->actor.velocity.y, 20.0f, 1.0f, 1.0f); if (this->timers[0] == 14) { - this->fwork[GDF_FWORK_1] = Animation_GetLastFrame(&gDorfPoundAnim); - Animation_MorphToPlayOnce(&this->skelAnime, &gDorfPoundAnim, 0.0f); + this->fwork[GDF_FWORK_1] = Animation_GetLastFrame(&gGanondorfPoundAnim); + Animation_MorphToPlayOnce(&this->skelAnime, &gGanondorfPoundAnim, 0.0f); this->actor.velocity.y = 0.0f; } @@ -1918,8 +1919,8 @@ void BossGanon_PoundFloor(BossGanon* this, PlayState* play) { this->envLightMode = 1; if (this->timers[0] == 0) { - this->fwork[GDF_FWORK_1] = Animation_GetLastFrame(&gDorfPoundEndAnim); - Animation_MorphToPlayOnce(&this->skelAnime, &gDorfPoundEndAnim, 0.0f); + this->fwork[GDF_FWORK_1] = Animation_GetLastFrame(&gGanondorfPoundEndAnim); + Animation_MorphToPlayOnce(&this->skelAnime, &gGanondorfPoundEndAnim, 0.0f); this->unk_1C2 = 3; this->unk_19F = 1; this->actor.velocity.y = 0.0f; @@ -1931,8 +1932,8 @@ void BossGanon_PoundFloor(BossGanon* this, PlayState* play) { Math_ApproachF(&this->actor.velocity.y, 20.0f, 1.0f, 1.0f); if (Animation_OnFrame(&this->skelAnime, this->fwork[GDF_FWORK_1])) { - this->fwork[GDF_FWORK_1] = Animation_GetLastFrame(&gDorfGetUp3Anim); - Animation_MorphToPlayOnce(&this->skelAnime, &gDorfGetUp3Anim, 0.0f); + this->fwork[GDF_FWORK_1] = Animation_GetLastFrame(&gGanondorfGetUp3Anim); + Animation_MorphToPlayOnce(&this->skelAnime, &gGanondorfGetUp3Anim, 0.0f); SkelAnime_Update(&this->skelAnime); sCape->attachShouldersTimer = 18.0f; Audio_PlayActorSfx2(&this->actor, NA_SE_EV_GANON_MANTLE); @@ -2001,16 +2002,16 @@ void BossGanon_ChargeBigMagic(BossGanon* this, PlayState* play) { switch (this->unk_1C2) { case 0: if (this->timers[0] == 0) { - this->fwork[GDF_FWORK_1] = Animation_GetLastFrame(&gDorfBigMagicChargeStartAnim); - Animation_MorphToPlayOnce(&this->skelAnime, &gDorfBigMagicChargeStartAnim, 0.0f); + this->fwork[GDF_FWORK_1] = Animation_GetLastFrame(&gGanondorfBigMagicChargeStartAnim); + Animation_MorphToPlayOnce(&this->skelAnime, &gGanondorfBigMagicChargeStartAnim, 0.0f); this->unk_1C2 = 1; } break; case 1: if (Animation_OnFrame(&this->skelAnime, this->fwork[GDF_FWORK_1])) { - this->fwork[GDF_FWORK_1] = Animation_GetLastFrame(&gDorfBigMagicChargeHoldAnim); - Animation_MorphToLoop(&this->skelAnime, &gDorfBigMagicChargeHoldAnim, 0.0f); + this->fwork[GDF_FWORK_1] = Animation_GetLastFrame(&gGanondorfBigMagicChargeHoldAnim); + Animation_MorphToLoop(&this->skelAnime, &gGanondorfBigMagicChargeHoldAnim, 0.0f); this->unk_1C2 = 2; this->timers[0] = 100; } @@ -2032,8 +2033,8 @@ void BossGanon_ChargeBigMagic(BossGanon* this, PlayState* play) { } if (this->timers[0] == 0) { - this->fwork[GDF_FWORK_1] = Animation_GetLastFrame(&gDorfBigMagicWindupAnim); - Animation_MorphToPlayOnce(&this->skelAnime, &gDorfBigMagicWindupAnim, 0.0f); + this->fwork[GDF_FWORK_1] = Animation_GetLastFrame(&gGanondorfBigMagicWindupAnim); + Animation_MorphToPlayOnce(&this->skelAnime, &gGanondorfBigMagicWindupAnim, 0.0f); this->unk_1C2 = 3; this->timers[0] = 6; this->timers[1] = 15; @@ -2132,8 +2133,8 @@ void BossGanon_ChargeBigMagic(BossGanon* this, PlayState* play) { } if (this->timers[1] == 0) { - this->fwork[GDF_FWORK_1] = Animation_GetLastFrame(&gDorfBigMagicThrowAnim); - Animation_MorphToLoop(&this->skelAnime, &gDorfBigMagicThrowAnim, 0.0f); + this->fwork[GDF_FWORK_1] = Animation_GetLastFrame(&gGanondorfBigMagicThrowAnim); + Animation_MorphToLoop(&this->skelAnime, &gGanondorfBigMagicThrowAnim, 0.0f); this->unk_1C2 = 4; this->unk_288 = 0.0f; this->unk_290 = 0.0f; @@ -2161,8 +2162,8 @@ void BossGanon_ChargeBigMagic(BossGanon* this, PlayState* play) { } if (Animation_OnFrame(&this->skelAnime, this->fwork[GDF_FWORK_1])) { - this->fwork[GDF_FWORK_1] = Animation_GetLastFrame(&gDorfBigMagicThrowEndAnim); - Animation_MorphToLoop(&this->skelAnime, &gDorfBigMagicThrowEndAnim, 0.0f); + this->fwork[GDF_FWORK_1] = Animation_GetLastFrame(&gGanondorfBigMagicThrowEndAnim); + Animation_MorphToLoop(&this->skelAnime, &gGanondorfBigMagicThrowEndAnim, 0.0f); this->unk_1C2 = 5; } break; @@ -2179,7 +2180,7 @@ void BossGanon_ChargeBigMagic(BossGanon* this, PlayState* play) { void BossGanon_SetupWait(BossGanon* this, PlayState* play) { BossGanon_SetAnimationObject(this, play, OBJECT_GANON_ANIME1); - Animation_MorphToLoop(&this->skelAnime, &gDorfFloatAnim, -10.0f); + Animation_MorphToLoop(&this->skelAnime, &gGanondorfFloatAnim, -10.0f); this->actionFunc = BossGanon_Wait; this->fwork[GDF_FWORK_0] = 0.0f; this->timers[0] = (s16)Rand_ZeroFloat(64.0f) + 30; @@ -2244,8 +2245,8 @@ void BossGanon_Wait(BossGanon* this, PlayState* play) { void BossGanon_SetupChargeLightBall(BossGanon* this, PlayState* play) { BossGanon_SetAnimationObject(this, play, OBJECT_GANON_ANIME1); - this->fwork[GDF_FWORK_1] = Animation_GetLastFrame(&gDorfChargeLightBallAnim); - Animation_MorphToPlayOnce(&this->skelAnime, &gDorfChargeLightBallAnim, -3.0f); + this->fwork[GDF_FWORK_1] = Animation_GetLastFrame(&gGanondorfChargeLightBallAnim); + Animation_MorphToPlayOnce(&this->skelAnime, &gGanondorfChargeLightBallAnim, -3.0f); this->actionFunc = BossGanon_ChargeLightBall; this->timers[0] = 25; } @@ -2291,13 +2292,13 @@ void BossGanon_ChargeLightBall(BossGanon* this, PlayState* play) { void BossGanon_SetupPlayTennis(BossGanon* this, PlayState* play) { BossGanon_SetAnimationObject(this, play, OBJECT_GANON_ANIME1); - this->fwork[GDF_FWORK_1] = Animation_GetLastFrame(&gDorfThrowAnim); - Animation_MorphToPlayOnce(&this->skelAnime, &gDorfThrowAnim, 0.0f); + this->fwork[GDF_FWORK_1] = Animation_GetLastFrame(&gGanondorfThrowAnim); + Animation_MorphToPlayOnce(&this->skelAnime, &gGanondorfThrowAnim, 0.0f); this->actionFunc = BossGanon_PlayTennis; } void BossGanon_PlayTennis(BossGanon* this, PlayState* play) { - static AnimationHeader* volleyAnims[] = { &gDorfVolleyLeftAnim, &gDorfVolleyRightAnim }; + static AnimationHeader* volleyAnims[] = { &gGanondorfVolleyLeftAnim, &gGanondorfVolleyRightAnim }; static s16 capeRightArmDurations[] = { 26, 20 }; s16 rand; @@ -2310,7 +2311,7 @@ void BossGanon_PlayTennis(BossGanon* this, PlayState* play) { if (Animation_OnFrame(&this->skelAnime, this->fwork[GDF_FWORK_1])) { this->unk_1C2 = 1; - Animation_MorphToLoop(&this->skelAnime, &gDorfFloatAnim, 0.0f); + Animation_MorphToLoop(&this->skelAnime, &gGanondorfFloatAnim, 0.0f); } if (this->skelAnime.curFrame <= 12.0f) { @@ -2359,8 +2360,8 @@ void BossGanon_PlayTennis(BossGanon* this, PlayState* play) { void BossGanon_SetupBlock(BossGanon* this, PlayState* play) { if ((this->actionFunc != BossGanon_Block) || (this->unk_1C2 != 0)) { BossGanon_SetAnimationObject(this, play, OBJECT_GANON_ANIME1); - this->fwork[GDF_FWORK_1] = Animation_GetLastFrame(&gDorfBlockAnim); - Animation_MorphToPlayOnce(&this->skelAnime, &gDorfBlockAnim, 0.0f); + this->fwork[GDF_FWORK_1] = Animation_GetLastFrame(&gGanondorfBlockAnim); + Animation_MorphToPlayOnce(&this->skelAnime, &gGanondorfBlockAnim, 0.0f); this->actionFunc = BossGanon_Block; } @@ -2381,8 +2382,8 @@ void BossGanon_Block(BossGanon* this, PlayState* play) { if (this->unk_1C2 == 0) { if (this->timers[0] == 0) { this->unk_1C2 = 1; - Animation_MorphToPlayOnce(&this->skelAnime, &gDorfBlockReleaseAnim, 0.0f); - this->fwork[GDF_FWORK_1] = Animation_GetLastFrame(&gDorfBlockReleaseAnim); + Animation_MorphToPlayOnce(&this->skelAnime, &gGanondorfBlockReleaseAnim, 0.0f); + this->fwork[GDF_FWORK_1] = Animation_GetLastFrame(&gGanondorfBlockReleaseAnim); SkelAnime_Update(&this->skelAnime); sCape->attachShouldersTimer = 15.0f; Audio_PlayActorSfx2(&this->actor, NA_SE_EV_GANON_MANTLE); @@ -2408,8 +2409,8 @@ void BossGanon_SetupHitByLightBall(BossGanon* this, PlayState* play) { s16 i; BossGanon_SetAnimationObject(this, play, OBJECT_GANON_ANIME1); - this->fwork[GDF_FWORK_1] = Animation_GetLastFrame(&gDorfBigMagicHitAnim); - Animation_MorphToPlayOnce(&this->skelAnime, &gDorfBigMagicHitAnim, 0); + this->fwork[GDF_FWORK_1] = Animation_GetLastFrame(&gGanondorfBigMagicHitAnim); + Animation_MorphToPlayOnce(&this->skelAnime, &gGanondorfBigMagicHitAnim, 0); this->timers[0] = 70; sCape->attachRightArmTimer = sCape->attachLeftArmTimer = 0; @@ -2436,16 +2437,16 @@ void BossGanon_HitByLightBall(BossGanon* this, PlayState* play) { BossGanonEff_SpawnShock(play, 1500.0f, GDF_SHOCK_DORF_YELLOW); if (Animation_OnFrame(&this->skelAnime, this->fwork[GDF_FWORK_1])) { - this->fwork[GDF_FWORK_1] = Animation_GetLastFrame(&gDorfLightArrowWaitAnim); - Animation_MorphToLoop(&this->skelAnime, &gDorfLightArrowWaitAnim, 0.0f); + this->fwork[GDF_FWORK_1] = Animation_GetLastFrame(&gGanondorfLightArrowWaitAnim); + Animation_MorphToLoop(&this->skelAnime, &gGanondorfLightArrowWaitAnim, 0.0f); this->unk_1C2 = 1; } } else if (this->unk_1C2 == 1) { BossGanonEff_SpawnShock(play, 1000.0f, GDF_SHOCK_DORF_YELLOW); if (this->timers[0] == 0) { - this->fwork[GDF_FWORK_1] = Animation_GetLastFrame(&gDorfGetUp3Anim); - Animation_MorphToPlayOnce(&this->skelAnime, &gDorfGetUp3Anim, 0.0f); + this->fwork[GDF_FWORK_1] = Animation_GetLastFrame(&gGanondorfGetUp3Anim); + Animation_MorphToPlayOnce(&this->skelAnime, &gGanondorfGetUp3Anim, 0.0f); this->unk_1C2 = 2; SkelAnime_Update(&this->skelAnime); sCape->attachShouldersTimer = 18.0f; @@ -2480,8 +2481,8 @@ void BossGanon_SetupVulnerable(BossGanon* this, PlayState* play) { if (this->actionFunc != BossGanon_Vulnerable) { BossGanon_SetAnimationObject(this, play, OBJECT_GANON_ANIME1); - this->fwork[GDF_FWORK_1] = Animation_GetLastFrame(&gDorfLightArrowHitAnim); - Animation_MorphToPlayOnce(&this->skelAnime, &gDorfLightArrowHitAnim, 0.0f); + this->fwork[GDF_FWORK_1] = Animation_GetLastFrame(&gGanondorfLightArrowHitAnim); + Animation_MorphToPlayOnce(&this->skelAnime, &gGanondorfLightArrowHitAnim, 0.0f); sCape->attachRightArmTimer = sCape->attachLeftArmTimer = 0; this->actionFunc = BossGanon_Vulnerable; @@ -2539,16 +2540,16 @@ void BossGanon_Vulnerable(BossGanon* this, PlayState* play) { case 0: if (Animation_OnFrame(&this->skelAnime, this->fwork[GDF_FWORK_1])) { this->unk_1C2 = 1; - this->fwork[GDF_FWORK_1] = Animation_GetLastFrame(&gDorfLightEnergyHitAnim); - Animation_MorphToPlayOnce(&this->skelAnime, &gDorfLightEnergyHitAnim, 0.0f); + this->fwork[GDF_FWORK_1] = Animation_GetLastFrame(&gGanondorfLightEnergyHitAnim); + Animation_MorphToPlayOnce(&this->skelAnime, &gGanondorfLightEnergyHitAnim, 0.0f); } break; case 1: if (Animation_OnFrame(&this->skelAnime, this->fwork[GDF_FWORK_1])) { this->unk_1C2 = 2; - this->fwork[GDF_FWORK_1] = Animation_GetLastFrame(&gDorfKneelVulnerableAnim); - Animation_MorphToPlayOnce(&this->skelAnime, &gDorfKneelVulnerableAnim, 0.0f); + this->fwork[GDF_FWORK_1] = Animation_GetLastFrame(&gGanondorfDownedAnim); + Animation_MorphToPlayOnce(&this->skelAnime, &gGanondorfDownedAnim, 0.0f); } break; @@ -2560,8 +2561,8 @@ void BossGanon_Vulnerable(BossGanon* this, PlayState* play) { this->actor.world.pos.y = 40.0f; this->actor.velocity.y = 0.0f; this->unk_1C2 = 3; - this->fwork[GDF_FWORK_1] = Animation_GetLastFrame(&gDorfLandAnim); - Animation_MorphToPlayOnce(&this->skelAnime, &gDorfLandAnim, 0.0f); + this->fwork[GDF_FWORK_1] = Animation_GetLastFrame(&gGanondorfLandAnim); + Animation_MorphToPlayOnce(&this->skelAnime, &gGanondorfLandAnim, 0.0f); this->timers[0] = 70; this->actor.flags |= ACTOR_FLAG_10; } @@ -2574,8 +2575,8 @@ void BossGanon_Vulnerable(BossGanon* this, PlayState* play) { if (Animation_OnFrame(&this->skelAnime, this->fwork[GDF_FWORK_1])) { this->unk_1C2 = 4; - this->fwork[GDF_FWORK_1] = Animation_GetLastFrame(&gDorfVulnerableAnim); - Animation_MorphToLoop(&this->skelAnime, &gDorfVulnerableAnim, 0.0f); + this->fwork[GDF_FWORK_1] = Animation_GetLastFrame(&gGanondorfVulnerableAnim); + Animation_MorphToLoop(&this->skelAnime, &gGanondorfVulnerableAnim, 0.0f); } break; @@ -2586,8 +2587,8 @@ void BossGanon_Vulnerable(BossGanon* this, PlayState* play) { if (this->timers[0] == 0) { this->unk_1C2 = 5; - this->fwork[GDF_FWORK_1] = Animation_GetLastFrame(&gDorfGetUp1Anim); - Animation_MorphToPlayOnce(&this->skelAnime, &gDorfGetUp1Anim, 0.0f); + this->fwork[GDF_FWORK_1] = Animation_GetLastFrame(&gGanondorfGetUp1Anim); + Animation_MorphToPlayOnce(&this->skelAnime, &gGanondorfGetUp1Anim, 0.0f); this->unk_2D4 = 80; for (i = 1; i < 15; i++) { @@ -2605,8 +2606,8 @@ void BossGanon_Vulnerable(BossGanon* this, PlayState* play) { if (Animation_OnFrame(&this->skelAnime, this->fwork[GDF_FWORK_1])) { this->unk_1C2 = 6; - this->fwork[GDF_FWORK_1] = Animation_GetLastFrame(&gDorfGetUp2Anim); - Animation_MorphToPlayOnce(&this->skelAnime, &gDorfGetUp2Anim, 0.0f); + this->fwork[GDF_FWORK_1] = Animation_GetLastFrame(&gGanondorfGetUp2Anim); + Animation_MorphToPlayOnce(&this->skelAnime, &gGanondorfGetUp2Anim, 0.0f); sCape->minDist = 20.0f; this->unk_19F = 1; } @@ -2624,8 +2625,8 @@ void BossGanon_Vulnerable(BossGanon* this, PlayState* play) { case 7: this->envLightMode = 0; Math_ApproachF(&this->actor.world.pos.y, 150.0f, 0.05f, 30.0f); - this->fwork[GDF_FWORK_1] = Animation_GetLastFrame(&gDorfGetUp3Anim); - Animation_MorphToPlayOnce(&this->skelAnime, &gDorfGetUp3Anim, 0.0f); + this->fwork[GDF_FWORK_1] = Animation_GetLastFrame(&gGanondorfGetUp3Anim); + Animation_MorphToPlayOnce(&this->skelAnime, &gGanondorfGetUp3Anim, 0.0f); this->unk_1C2 = 8; SkelAnime_Update(&this->skelAnime); sCape->attachShouldersTimer = 18.0f; @@ -2658,8 +2659,8 @@ void BossGanon_Vulnerable(BossGanon* this, PlayState* play) { void BossGanon_SetupDamaged(BossGanon* this, PlayState* play) { BossGanon_SetAnimationObject(this, play, OBJECT_GANON_ANIME1); - this->fwork[GDF_FWORK_1] = Animation_GetLastFrame(&gDorfDamageAnim); - Animation_MorphToPlayOnce(&this->skelAnime, &gDorfDamageAnim, 0.0f); + this->fwork[GDF_FWORK_1] = Animation_GetLastFrame(&gGanondorfDamageAnim); + Animation_MorphToPlayOnce(&this->skelAnime, &gGanondorfDamageAnim, 0.0f); this->actionFunc = BossGanon_Damaged; } @@ -2676,8 +2677,8 @@ void BossGanon_Damaged(BossGanon* this, PlayState* play) { if (Animation_OnFrame(&this->skelAnime, this->fwork[GDF_FWORK_1])) { this->actionFunc = BossGanon_Vulnerable; this->unk_1C2 = 4; - this->fwork[GDF_FWORK_1] = Animation_GetLastFrame(&gDorfVulnerableAnim); - Animation_MorphToLoop(&this->skelAnime, &gDorfVulnerableAnim, 0.0f); + this->fwork[GDF_FWORK_1] = Animation_GetLastFrame(&gGanondorfVulnerableAnim); + Animation_MorphToLoop(&this->skelAnime, &gGanondorfVulnerableAnim, 0.0f); } } @@ -3191,40 +3192,40 @@ s32 BossGanon_OverrideLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3 BossGanon* this = (BossGanon*)thisx; switch (limbIndex) { - case 10: + case GANONDORF_LIMB_RIGHT_HAND: if (this->useOpenHand) { - *dList = gDorfOpenHandDL; + *dList = gGanondorfRightHandOpenDL; } break; - case 20: + case GANONDORF_LIMB_LEFT_THIGH: rot->y += this->legRot.x + this->legRot.z; rot->z += this->legRot.y; break; - case 21: + case GANONDORF_LIMB_LEFT_SHIN: if (this->legRot.y > 0.0f) { rot->z += this->legRot.y; } break; - case 22: + case GANONDORF_LIMB_LEFT_FOOT: rot->y += this->legRot.x + this->legRot.z; rot->z += this->legRot.y; break; - case 23: + case GANONDORF_LIMB_RIGHT_THIGH: rot->y += this->legRot.x - this->legRot.z; rot->z += this->legRot.y; break; - case 24: + case GANONDORF_LIMB_RIGHT_SHIN: if (this->legRot.y > 0.0f) { rot->z += this->legRot.y; } break; - case 25: + case GANONDORF_LIMB_RIGHT_FOOT: rot->y += this->legRot.x - this->legRot.z; rot->z += this->legRot.y; break; @@ -3255,22 +3256,22 @@ void BossGanon_PostLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s* Matrix_MultVec3f(&D_808E4DB8, &this->unk_2EC[bodyPart]); } - if (limbIndex == 2) { + if (limbIndex == GANONDORF_LIMB_TORSO) { Matrix_MultVec3f(&D_808E4DB8, &this->unk_1FC); - } else if (limbIndex == 19) { + } else if (limbIndex == GANONDORF_LIMB_PELVIS) { Matrix_MultVec3f(&D_808E4DB8, &this->actor.focus.pos); - } else if (limbIndex == 11) { + } else if (limbIndex == GANONDORF_LIMB_JEWEL) { OPEN_DISPS(play->state.gfxCtx, "../z_boss_ganon.c", 7191); Matrix_MultVec3f(&D_808E4DB8, &this->unk_208); gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(play->state.gfxCtx, "../z_boss_ganon.c", 7196), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); - gSPDisplayList(POLY_XLU_DISP++, SEGMENTED_TO_VIRTUAL(object_ganon_DL_00BE90)); + gSPDisplayList(POLY_XLU_DISP++, SEGMENTED_TO_VIRTUAL(gGanondorfEyesDL)); CLOSE_DISPS(play->state.gfxCtx, "../z_boss_ganon.c", 7198); - } else if (limbIndex == 6) { + } else if (limbIndex == GANONDORF_LIMB_LEFT_HAND) { Matrix_MultVec3f(&D_808E4DC4, &this->unk_238); - } else if (limbIndex == 10) { + } else if (limbIndex == GANONDORF_LIMB_RIGHT_HAND) { Matrix_MultVec3f(&D_808E4DD0, &this->unk_22C); if (this->unk_25C == 0) { @@ -3282,7 +3283,7 @@ void BossGanon_PostLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s* if (this->triforceType == GDF_TRIFORCE_DORF) { Matrix_MultVec3f(&D_808E4DE8, &this->triforcePos); } - } else if (limbIndex == 4) { + } else if (limbIndex == GANONDORF_LIMB_LEFT_UPPER_ARM) { Vec3f sp28 = D_808E4DA0; if (this->unk_198 == 1) { @@ -3295,7 +3296,7 @@ void BossGanon_PostLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s* } Matrix_MultVec3f(&sp28, &this->unk_220); - } else if (limbIndex == 8) { + } else if (limbIndex == GANONDORF_LIMB_RIGHT_UPPER_ARM) { Vec3f sp1C = D_808E4DAC; if (this->unk_198 == 1) { @@ -3346,7 +3347,7 @@ void BossGanon_DrawShock(BossGanon* this, PlayState* play) { Gfx_SetupDL_25Xlu(play->state.gfxCtx); gDPSetPrimColor(POLY_XLU_DISP++, 0, 0, 255, 255, 255, 255); gDPSetEnvColor(POLY_XLU_DISP++, 255, 255, 0, 0); - gSPDisplayList(POLY_XLU_DISP++, gDorfLightBallMaterialDL); + gSPDisplayList(POLY_XLU_DISP++, gGanondorfLightBallMaterialDL); if (this->unk_2E8 != 0) { Player* player = GET_PLAYER(play); @@ -3359,7 +3360,7 @@ void BossGanon_DrawShock(BossGanon* this, PlayState* play) { Matrix_RotateZ(Rand_CenteredFloat(M_PI), MTXMODE_APPLY); gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(gfxCtx, "../z_boss_ganon.c", 7384), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); - gSPDisplayList(POLY_XLU_DISP++, gDorfSquareDL); + gSPDisplayList(POLY_XLU_DISP++, gGanondorfSquareDL); } } else { for (i = 1; i < 15; i++) { @@ -3380,9 +3381,9 @@ void BossGanon_DrawShock(BossGanon* this, PlayState* play) { (this->unk_1A2 + i) * -15, 32, 64)); gDPSetPrimColor(POLY_XLU_DISP++, 0, 0, 200, 255, 170, 255); gDPSetEnvColor(POLY_XLU_DISP++, 255, 255, 0, 128); - gSPDisplayList(POLY_XLU_DISP++, gDorfShockGlowDL); + gSPDisplayList(POLY_XLU_DISP++, gGanondorfShockGlowDL); } else { - gSPDisplayList(POLY_XLU_DISP++, gDorfSquareDL); + gSPDisplayList(POLY_XLU_DISP++, gGanondorfSquareDL); } } } @@ -3408,7 +3409,7 @@ void BossGanon_DrawHandLightBall(BossGanon* this, PlayState* play) { gDPSetEnvColor(POLY_XLU_DISP++, 100, 255, 0, 0); } - gSPDisplayList(POLY_XLU_DISP++, gDorfLightBallMaterialDL); + gSPDisplayList(POLY_XLU_DISP++, gGanondorfLightBallMaterialDL); Matrix_Translate(this->unk_260.x, this->unk_260.y, this->unk_260.z, MTXMODE_NEW); Matrix_ReplaceRotation(&play->billboardMtxF); @@ -3416,7 +3417,7 @@ void BossGanon_DrawHandLightBall(BossGanon* this, PlayState* play) { Matrix_RotateZ(this->unk_258, 1); gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(gfxCtx, "../z_boss_ganon.c", 7510), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); - gSPDisplayList(POLY_XLU_DISP++, gDorfSquareDL); + gSPDisplayList(POLY_XLU_DISP++, gGanondorfSquareDL); alpha = ((this->unk_1A2 % 2) != 0) ? 100 : 80; gDPPipeSync(POLY_XLU_DISP++); @@ -3425,7 +3426,7 @@ void BossGanon_DrawHandLightBall(BossGanon* this, PlayState* play) { Matrix_Scale(this->handLightBallScale * 0.75f, 1.0f, this->handLightBallScale * 0.75f, MTXMODE_APPLY); gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(play->state.gfxCtx, "../z_boss_ganon.c", 7531), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); - gSPDisplayList(POLY_XLU_DISP++, gDorfLightCoreDL); + gSPDisplayList(POLY_XLU_DISP++, gGanondorfLightCoreDL); CLOSE_DISPS(gfxCtx, "../z_boss_ganon.c", 7534); } @@ -3453,7 +3454,7 @@ void BossGanon_DrawBigMagicCharge(BossGanon* this, PlayState* play) { Matrix_Scale(this->unk_28C, this->unk_28C, this->unk_28C, MTXMODE_APPLY); gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(gfxCtx, "../z_boss_ganon.c", 7588), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); - gSPDisplayList(POLY_XLU_DISP++, gDorfLightFlecksDL); + gSPDisplayList(POLY_XLU_DISP++, gGanondorfLightFlecksDL); // background circle texture Matrix_Translate(this->unk_278.x, this->unk_278.y, this->unk_278.z, MTXMODE_NEW); @@ -3465,19 +3466,19 @@ void BossGanon_DrawBigMagicCharge(BossGanon* this, PlayState* play) { gSPSegment(POLY_XLU_DISP++, 0x09, Gfx_TwoTexScroll(play->state.gfxCtx, G_TX_RENDERTILE, 0, 0, 0x20, 0x20, 1, 0, this->unk_1A2 * -4, 0x20, 0x20)); - gSPDisplayList(POLY_XLU_DISP++, gDorfBigMagicBGCircleDL); + gSPDisplayList(POLY_XLU_DISP++, gGanondorfBigMagicBGCircleDL); // yellow background dot gDPSetPrimColor(POLY_XLU_DISP++, 0, 0, 150, 170, 0, (s8)this->unk_288); gSPSegment(POLY_XLU_DISP++, 0x0A, Gfx_TwoTexScroll(play->state.gfxCtx, G_TX_RENDERTILE, 0, 0, 0x20, 0x20, 1, this->unk_1A2 * 2, this->unk_1A2 * -0x14, 0x40, 0x40)); - gSPDisplayList(POLY_XLU_DISP++, gDorfDotDL); + gSPDisplayList(POLY_XLU_DISP++, gGanondorfDotDL); // light ball material gDPSetPrimColor(POLY_XLU_DISP++, 0, 0, 255, 255, 255, 255); gDPSetEnvColor(POLY_XLU_DISP++, 255, 255, 100, 0); - gSPDisplayList(POLY_XLU_DISP++, gDorfLightBallMaterialDL); + gSPDisplayList(POLY_XLU_DISP++, gGanondorfLightBallMaterialDL); // light ball geometry Matrix_Translate(this->unk_278.x, this->unk_278.y, this->unk_278.z, MTXMODE_NEW); @@ -3486,7 +3487,7 @@ void BossGanon_DrawBigMagicCharge(BossGanon* this, PlayState* play) { Matrix_RotateZ((this->unk_1A2 * 10.0f) / 1000.0f, MTXMODE_APPLY); gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(gfxCtx, "../z_boss_ganon.c", 7673), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); - gSPDisplayList(POLY_XLU_DISP++, gDorfSquareDL); + gSPDisplayList(POLY_XLU_DISP++, gGanondorfSquareDL); BossGanon_InitRand(this->unk_1AA + 1, 0x71AC, 0x263A); Matrix_Translate(this->unk_278.x, this->unk_278.y, this->unk_278.z, MTXMODE_NEW); @@ -3507,7 +3508,7 @@ void BossGanon_DrawBigMagicCharge(BossGanon* this, PlayState* play) { Matrix_Scale(4.0f, 4.0f, 1.0f, MTXMODE_APPLY); gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(gfxCtx, "../z_boss_ganon.c", 7713), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); - gSPDisplayList(POLY_XLU_DISP++, gDorfLightRayTriDL); + gSPDisplayList(POLY_XLU_DISP++, gGanondorfLightRayTriDL); Matrix_Pop(); } @@ -3560,7 +3561,7 @@ void BossGanon_DrawTriforce(BossGanon* this, PlayState* play) { Matrix_Scale(this->fwork[GDF_TRIFORCE_SCALE], this->fwork[GDF_TRIFORCE_SCALE], 1.0f, MTXMODE_APPLY); gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(play->state.gfxCtx, "../z_boss_ganon.c", 7779), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); - gSPDisplayList(POLY_XLU_DISP++, SEGMENTED_TO_VIRTUAL(gDorfTriforceDL)); + gSPDisplayList(POLY_XLU_DISP++, SEGMENTED_TO_VIRTUAL(gGanondorfTriforceDL)); Matrix_Pop(); @@ -3595,7 +3596,7 @@ void BossGanon_DrawDarkVortex(BossGanon* this, PlayState* play) { MTXMODE_APPLY); gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(play->state.gfxCtx, "../z_boss_ganon.c", 7841), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); - gSPDisplayList(POLY_XLU_DISP++, SEGMENTED_TO_VIRTUAL(gDorfVortexDL)); + gSPDisplayList(POLY_XLU_DISP++, SEGMENTED_TO_VIRTUAL(gGanondorfVortexDL)); Matrix_Pop(); @@ -3769,10 +3770,10 @@ void BossGanon_DrawShadowTexture(void* tex, BossGanon* this, PlayState* play) { Matrix_Scale(0.95000005f, 1.0f, 0.95000005f, MTXMODE_APPLY); gSPMatrix(POLY_OPA_DISP++, Matrix_NewMtx(play->state.gfxCtx, "../z_boss_ganon.c", 8396), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); - gSPDisplayList(POLY_OPA_DISP++, gDorfShadowSetupDL); + gSPDisplayList(POLY_OPA_DISP++, gGanondorfShadowSetupDL); gDPLoadTextureBlock(POLY_OPA_DISP++, tex, G_IM_FMT_I, G_IM_SIZ_8b, 64, 64, 0, G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMIRROR | G_TX_CLAMP, 6, 6, G_TX_NOLOD, G_TX_NOLOD); - gSPDisplayList(POLY_OPA_DISP++, gDorfShadowModelDL); + gSPDisplayList(POLY_OPA_DISP++, gGanondorfShadowModelDL); CLOSE_DISPS(gfxCtx, "../z_boss_ganon.c", 8426); } @@ -3793,7 +3794,7 @@ void BossGanon_Draw(Actor* thisx, PlayState* play) { POLY_OPA_DISP = Gfx_SetFog(POLY_OPA_DISP, 255, 50, 0, 0, 900, 1099); } - gSPSegment(POLY_XLU_DISP++, 0x08, SEGMENTED_TO_VIRTUAL(gDorfEyeTex)); + gSPSegment(POLY_XLU_DISP++, 0x08, SEGMENTED_TO_VIRTUAL(gGanondorfNormalEyeTex)); SkelAnime_DrawFlexOpa(play, this->skelAnime.skeleton, this->skelAnime.jointTable, this->skelAnime.dListCount, BossGanon_OverrideLimbDraw, BossGanon_PostLimbDraw, &this->actor); @@ -4137,10 +4138,10 @@ void BossGanon_LightBall_Draw(Actor* thisx, PlayState* play) { Matrix_Scale(this->actor.scale.x * 0.75f, 1.0f, this->actor.scale.z * 0.75f, MTXMODE_APPLY); gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(play->state.gfxCtx, "../z_boss_ganon.c", 9875), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); - gSPDisplayList(POLY_XLU_DISP++, gDorfLightCoreDL); + gSPDisplayList(POLY_XLU_DISP++, gGanondorfLightCoreDL); Matrix_Pop(); - gSPDisplayList(POLY_XLU_DISP++, gDorfLightBallMaterialDL); + gSPDisplayList(POLY_XLU_DISP++, gGanondorfLightBallMaterialDL); gDPPipeSync(POLY_XLU_DISP++); gDPSetPrimColor(POLY_XLU_DISP++, 0, 0, 255, 255, 255, (s8)this->fwork[GDF_FWORK_1]); @@ -4154,7 +4155,7 @@ void BossGanon_LightBall_Draw(Actor* thisx, PlayState* play) { gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(play->state.gfxCtx, "../z_boss_ganon.c", 9899), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); - gSPDisplayList(POLY_XLU_DISP++, gDorfSquareDL); + gSPDisplayList(POLY_XLU_DISP++, gGanondorfSquareDL); Matrix_Pop(); } } else if (this->unk_1A8 == 0) { @@ -4162,7 +4163,7 @@ void BossGanon_LightBall_Draw(Actor* thisx, PlayState* play) { Matrix_RotateZ((this->actor.shape.rot.z / 32768.0f) * 3.1416f, MTXMODE_APPLY); gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(play->state.gfxCtx, "../z_boss_ganon.c", 9907), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); - gSPDisplayList(POLY_XLU_DISP++, gDorfSquareDL); + gSPDisplayList(POLY_XLU_DISP++, gGanondorfSquareDL); } CLOSE_DISPS(play->state.gfxCtx, "../z_boss_ganon.c", 9911); @@ -4276,7 +4277,7 @@ void func_808E229C(Actor* thisx, PlayState* play2) { Gfx_SetupDL_25Xlu(play->state.gfxCtx); gDPSetPrimColor(POLY_XLU_DISP++, 0, 0, 255, 255, 255, 255); gDPSetEnvColor(POLY_XLU_DISP++, 255, 255, 0, 0); - gSPDisplayList(POLY_XLU_DISP++, gDorfLightBallMaterialDL); + gSPDisplayList(POLY_XLU_DISP++, gGanondorfLightBallMaterialDL); for (i = 9; i >= 0; i--) { temp = (s16)(((this->unk_1A6 - i) + 0xF) % 15); @@ -4287,7 +4288,7 @@ void func_808E229C(Actor* thisx, PlayState* play2) { Matrix_RotateZ(((2.0f * (i * M_PI)) / 10.0f) + BINANG_TO_RAD_ALT(this->actor.shape.rot.z), MTXMODE_APPLY); gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(play->state.gfxCtx, "../z_boss_ganon.c", 10109), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); - gSPDisplayList(POLY_XLU_DISP++, gDorfSquareDL); + gSPDisplayList(POLY_XLU_DISP++, gGanondorfSquareDL); } CLOSE_DISPS(play->state.gfxCtx, "../z_boss_ganon.c", 10113); @@ -4541,9 +4542,9 @@ void func_808E2544(Actor* thisx, PlayState* play) { } static Gfx* sBigMagicLightStreakDLists[] = { - gDorfLightStreak12DL, gDorfLightStreak11DL, gDorfLightStreak10DL, gDorfLightStreak9DL, - gDorfLightStreak8DL, gDorfLightStreak7DL, gDorfLightStreak6DL, gDorfLightStreak5DL, - gDorfLightStreak4DL, gDorfLightStreak3DL, gDorfLightStreak2DL, gDorfLightStreak1DL, + gGanondorfLightStreak12DL, gGanondorfLightStreak11DL, gGanondorfLightStreak10DL, gGanondorfLightStreak9DL, + gGanondorfLightStreak8DL, gGanondorfLightStreak7DL, gGanondorfLightStreak6DL, gGanondorfLightStreak5DL, + gGanondorfLightStreak4DL, gGanondorfLightStreak3DL, gGanondorfLightStreak2DL, gGanondorfLightStreak1DL, }; void func_808E324C(Actor* thisx, PlayState* play) { @@ -4580,9 +4581,9 @@ void func_808E324C(Actor* thisx, PlayState* play) { Matrix_RotateZ(Rand_CenteredFloat(M_PI), MTXMODE_APPLY); gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(play->state.gfxCtx, "../z_boss_ganon.c", 10534), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); - gSPDisplayList(POLY_XLU_DISP++, gDorfLightBallMaterialDL); + gSPDisplayList(POLY_XLU_DISP++, gGanondorfLightBallMaterialDL); - gSPDisplayList(POLY_XLU_DISP++, gDorfSquareDL); + gSPDisplayList(POLY_XLU_DISP++, gGanondorfSquareDL); CLOSE_DISPS(play->state.gfxCtx, "../z_boss_ganon.c", 10541); } @@ -4786,9 +4787,10 @@ void BossGanon_UpdateEffects(PlayState* play) { } static void* sLightningTextures[] = { - gDorfLightning1Tex, gDorfLightning1Tex, gDorfLightning2Tex, gDorfLightning3Tex, gDorfLightning4Tex, - gDorfLightning5Tex, gDorfLightning6Tex, gDorfLightning7Tex, gDorfLightning8Tex, gDorfLightning9Tex, - gDorfLightning10Tex, gDorfLightning11Tex, gDorfLightning12Tex, + gGanondorfLightning1Tex, gGanondorfLightning1Tex, gGanondorfLightning2Tex, gGanondorfLightning3Tex, + gGanondorfLightning4Tex, gGanondorfLightning5Tex, gGanondorfLightning6Tex, gGanondorfLightning7Tex, + gGanondorfLightning8Tex, gGanondorfLightning9Tex, gGanondorfLightning10Tex, gGanondorfLightning11Tex, + gGanondorfLightning12Tex, }; static u8 sLightningPrimColors[] = { @@ -4817,7 +4819,7 @@ void BossGanon_DrawEffects(PlayState* play) { if (eff->type == GDF_EFF_WINDOW_SHARD) { gDPPipeSync(POLY_OPA_DISP++); if (materialFlag == 0) { - gSPDisplayList(POLY_OPA_DISP++, gDorfWindowShardMaterialDL); + gSPDisplayList(POLY_OPA_DISP++, gGanondorfWindowShardMaterialDL); materialFlag++; } if ((eff->timer & 7) != 0) { @@ -4831,7 +4833,7 @@ void BossGanon_DrawEffects(PlayState* play) { Matrix_RotateX(eff->unk_44, MTXMODE_APPLY); gSPMatrix(POLY_OPA_DISP++, Matrix_NewMtx(gfxCtx, "../z_boss_ganon.c", 10898), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); - gSPDisplayList(POLY_OPA_DISP++, gDorfWindowShardModelDL); + gSPDisplayList(POLY_OPA_DISP++, gGanondorfWindowShardModelDL); } } @@ -4843,7 +4845,7 @@ void BossGanon_DrawEffects(PlayState* play) { gDPPipeSync(POLY_XLU_DISP++); if (materialFlag == 0) { gDPSetEnvColor(POLY_XLU_DISP++, 255, 255, 0, 0); - gSPDisplayList(POLY_XLU_DISP++, gDorfLightBallMaterialDL); + gSPDisplayList(POLY_XLU_DISP++, gGanondorfLightBallMaterialDL); materialFlag++; } gDPSetPrimColor(POLY_XLU_DISP++, 0, 0, 255, 255, 255, eff->alpha); @@ -4853,7 +4855,7 @@ void BossGanon_DrawEffects(PlayState* play) { Matrix_RotateZ(eff->unk_3C, MTXMODE_APPLY); gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(gfxCtx, "../z_boss_ganon.c", 10932), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); - gSPDisplayList(POLY_XLU_DISP++, gDorfSquareDL); + gSPDisplayList(POLY_XLU_DISP++, gGanondorfSquareDL); } } @@ -4865,7 +4867,7 @@ void BossGanon_DrawEffects(PlayState* play) { gDPPipeSync(POLY_XLU_DISP++); if (materialFlag == 0) { gDPSetEnvColor(POLY_XLU_DISP++, 255, 255, 0, 0); - gSPDisplayList(POLY_XLU_DISP++, gDorfLightBallMaterialDL); + gSPDisplayList(POLY_XLU_DISP++, gGanondorfLightBallMaterialDL); materialFlag++; } gDPSetPrimColor(POLY_XLU_DISP++, 0, 0, 255, 255, 255, eff->alpha); @@ -4877,7 +4879,7 @@ void BossGanon_DrawEffects(PlayState* play) { Matrix_RotateX(M_PI / 2, MTXMODE_APPLY); gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(gfxCtx, "../z_boss_ganon.c", 10971), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); - gSPDisplayList(POLY_XLU_DISP++, gDorfSquareDL); + gSPDisplayList(POLY_XLU_DISP++, gGanondorfSquareDL); } } @@ -4903,7 +4905,7 @@ void BossGanon_DrawEffects(PlayState* play) { Matrix_RotateZ(eff->unk_3C, MTXMODE_APPLY); gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(gfxCtx, "../z_boss_ganon.c", 11023), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); - gSPDisplayList(POLY_XLU_DISP++, gDorfShockDL); + gSPDisplayList(POLY_XLU_DISP++, gGanondorfShockDL); } } @@ -4925,7 +4927,7 @@ void BossGanon_DrawEffects(PlayState* play) { gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(gfxCtx, "../z_boss_ganon.c", 11074), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); gSPSegment(POLY_XLU_DISP++, 0x08, SEGMENTED_TO_VIRTUAL(sLightningTextures[eff->timer])); - gSPDisplayList(POLY_XLU_DISP++, gDorfLightningDL); + gSPDisplayList(POLY_XLU_DISP++, gGanondorfLightningDL); } } @@ -4943,7 +4945,7 @@ void BossGanon_DrawEffects(PlayState* play) { Matrix_Scale(eff->scale, eff->unk_40 * eff->scale, eff->scale, MTXMODE_APPLY); gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(gfxCtx, "../z_boss_ganon.c", 11121), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); - gSPDisplayList(POLY_XLU_DISP++, gDorfImpactDarkDL); + gSPDisplayList(POLY_XLU_DISP++, gGanondorfImpactDarkDL); } } @@ -4961,7 +4963,7 @@ void BossGanon_DrawEffects(PlayState* play) { Matrix_Scale(eff->scale, eff->unk_40 * eff->scale, eff->scale, MTXMODE_APPLY); gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(gfxCtx, "../z_boss_ganon.c", 11165), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); - gSPDisplayList(POLY_XLU_DISP++, gDorfImpactLightDL); + gSPDisplayList(POLY_XLU_DISP++, gGanondorfImpactLightDL); } } @@ -4980,7 +4982,7 @@ void BossGanon_DrawEffects(PlayState* play) { (eff->scale * 200.0f) / 1500.0f, MTXMODE_APPLY); gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(gfxCtx, "../z_boss_ganon.c", 11209), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); - gSPDisplayList(POLY_XLU_DISP++, gDorfShockwaveDL); + gSPDisplayList(POLY_XLU_DISP++, gGanondorfShockwaveDL); } } @@ -4999,7 +5001,7 @@ void BossGanon_DrawEffects(PlayState* play) { Matrix_Scale(eff->scale, eff->scale, 1.0f, MTXMODE_APPLY); gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(gfxCtx, "../z_boss_ganon.c", 11250), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); - gSPDisplayList(POLY_XLU_DISP++, gDorfDotDL); + gSPDisplayList(POLY_XLU_DISP++, gGanondorfDotDL); } } diff --git a/src/overlays/actors/ovl_Boss_Ganon/z_boss_ganon.h b/src/overlays/actors/ovl_Boss_Ganon/z_boss_ganon.h index 4884942f63..c1db637928 100644 --- a/src/overlays/actors/ovl_Boss_Ganon/z_boss_ganon.h +++ b/src/overlays/actors/ovl_Boss_Ganon/z_boss_ganon.h @@ -8,6 +8,36 @@ struct BossGanon; typedef void (*BossGanonActionFunc)(struct BossGanon*, PlayState*); +typedef enum { + /* 0 */ GANONDORF_LIMB_NONE, + /* 1 */ GANONDORF_LIMB_ROOT, + /* 2 */ GANONDORF_LIMB_TORSO, + /* 3 */ GANONDORF_LIMB_LEFT_SHOULDER, + /* 4 */ GANONDORF_LIMB_LEFT_UPPER_ARM, + /* 5 */ GANONDORF_LIMB_LEFT_FOREARM, + /* 6 */ GANONDORF_LIMB_LEFT_HAND, + /* 7 */ GANONDORF_LIMB_RIGHT_SHOULDER, + /* 8 */ GANONDORF_LIMB_RIGHT_UPPER_ARM, + /* 9 */ GANONDORF_LIMB_RIGHT_FOREARM, + /* 10 */ GANONDORF_LIMB_RIGHT_HAND, + /* 11 */ GANONDORF_LIMB_JEWEL, + /* 12 */ GANONDORF_LIMB_LEFT_UPPER_LIP, + /* 13 */ GANONDORF_LIMB_MOUTH, + /* 14 */ GANONDORF_LIMB_JAW, + /* 15 */ GANONDORF_LIMB_UPPER_HAIR_END, + /* 16 */ GANONDORF_LIMB_LOWER_HAIR_END, + /* 17 */ GANONDORF_LIMB_RIGHT_UPPER_LIP, + /* 18 */ GANONDORF_LIMB_HEAD, + /* 19 */ GANONDORF_LIMB_PELVIS, + /* 20 */ GANONDORF_LIMB_LEFT_THIGH, + /* 21 */ GANONDORF_LIMB_LEFT_SHIN, + /* 22 */ GANONDORF_LIMB_LEFT_FOOT, + /* 23 */ GANONDORF_LIMB_RIGHT_THIGH, + /* 24 */ GANONDORF_LIMB_RIGHT_SHIN, + /* 25 */ GANONDORF_LIMB_RIGHT_FOOT, + /* 26 */ GANONDORF_LIMB_MAX +} GanondorfLimb; + typedef enum { /* 0 */ GDF_FWORK_0, /* 1 */ GDF_FWORK_1, diff --git a/src/overlays/actors/ovl_Boss_Ganon2/z_boss_ganon2.c b/src/overlays/actors/ovl_Boss_Ganon2/z_boss_ganon2.c index ccb443ea55..48644ffd13 100644 --- a/src/overlays/actors/ovl_Boss_Ganon2/z_boss_ganon2.c +++ b/src/overlays/actors/ovl_Boss_Ganon2/z_boss_ganon2.c @@ -1,4 +1,5 @@ #include "z_boss_ganon2.h" +#include "overlays/actors/ovl_Boss_Ganon/z_boss_ganon.h" #include "overlays/actors/ovl_Demo_Gj/z_demo_gj.h" #include "overlays/actors/ovl_En_Zl3/z_en_zl3.h" #include "assets/objects/object_ganon/object_ganon.h" @@ -145,7 +146,7 @@ void BossGanon2_Init(Actor* thisx, PlayState* play) { Collider_InitJntSph(play, &this->unk_444); Collider_SetJntSph(play, &this->unk_444, &this->actor, &sJntSphInit2, this->unk_864); BossGanon2_SetObjectSegment(this, play, OBJECT_GANON, false); - SkelAnime_InitFlex(play, &this->skelAnime, &gDorfSkel, NULL, NULL, NULL, 0); + SkelAnime_InitFlex(play, &this->skelAnime, &gGanondorfSkel, NULL, NULL, NULL, 0); func_808FD5C4(this, play); this->actor.naviEnemyId = NAVI_ENEMY_GANON; this->actor.gravity = 0.0f; @@ -218,7 +219,7 @@ void func_808FD5F4(BossGanon2* this, PlayState* play) { player->actor.world.pos.y = 1086.0f; player->actor.world.pos.z = -186.0f; player->actor.shape.rot.y = -0x5000; - Animation_MorphToLoop(&this->skelAnime, &object_ganon_anime3_Anim_002168, 0.0f); + Animation_MorphToLoop(&this->skelAnime, &gGanondorfBurstOutAnim, 0.0f); play->envCtx.lightBlend = 0.0f; // fake, tricks the compiler into allocating more stack if (zero) { @@ -406,8 +407,8 @@ void func_808FD5F4(BossGanon2* this, PlayState* play) { if (this->unk_398 == 50) { this->unk_398 = 0; this->unk_39C = 12; - Animation_MorphToPlayOnce(&this->skelAnime, &object_ganon_anime3_Anim_002168, 0.0f); - this->unk_194 = Animation_GetLastFrame(&object_ganon_anime3_Anim_002168); + Animation_MorphToPlayOnce(&this->skelAnime, &gGanondorfBurstOutAnim, 0.0f); + this->unk_194 = Animation_GetLastFrame(&gGanondorfBurstOutAnim); this->actor.world.pos.x = this->actor.world.pos.z = -200.0f; this->actor.world.pos.y = 1009.0f; this->actor.shape.yOffset = 7000.0f; @@ -440,7 +441,7 @@ void func_808FD5F4(BossGanon2* this, PlayState* play) { this->subCamAt.y = this->actor.world.pos.y + 70.0f; } if (Animation_OnFrame(&this->skelAnime, this->unk_194)) { - Animation_MorphToLoop(&this->skelAnime, &object_ganon_anime3_Anim_002E6C, 0.0f); + Animation_MorphToLoop(&this->skelAnime, &gGanondorfFloatingHeavyBreathingAnim, 0.0f); this->unk_39C = 14; this->unk_398 = 0; this->actor.world.pos.x = -200.0f; @@ -493,12 +494,12 @@ void func_808FD5F4(BossGanon2* this, PlayState* play) { Math_ApproachF(&this->subCamAt.y, this->actor.world.pos.y + 77.0f, 0.05f, 5.0f); if (this->unk_398 >= 50) { if (this->unk_398 == 50) { - Animation_MorphToPlayOnce(&this->skelAnime, &object_ganon_anime3_Anim_000BFC, 0.0f); - this->unk_194 = Animation_GetLastFrame(&object_ganon_anime3_Anim_000BFC); + Animation_MorphToPlayOnce(&this->skelAnime, &gGanondorfShowTriforceStartAnim, 0.0f); + this->unk_194 = Animation_GetLastFrame(&gGanondorfShowTriforceStartAnim); this->unk_314 = 3; } if (Animation_OnFrame(&this->skelAnime, this->unk_194)) { - Animation_MorphToLoop(&this->skelAnime, &object_ganon_anime3_Anim_003F38, 0.0f); + Animation_MorphToLoop(&this->skelAnime, &gGanondorfShowTriforceLoopAnim, 0.0f); this->unk_194 = 1000.0f; } } @@ -508,8 +509,8 @@ void func_808FD5F4(BossGanon2* this, PlayState* play) { if (this->unk_398 == 140) { this->unk_39C = 16; this->unk_398 = 0; - Animation_MorphToPlayOnce(&this->skelAnime, &object_ganon_anime3_Anim_003754, 0.0f); - this->unk_194 = Animation_GetLastFrame(&object_ganon_anime3_Anim_003754); + Animation_MorphToPlayOnce(&this->skelAnime, &gGanondorfTransformStartAnim, 0.0f); + this->unk_194 = Animation_GetLastFrame(&gGanondorfTransformStartAnim); this->unk_339 = 55; play->envCtx.lightBlend = 1.0f; Audio_PlayActorSfx2(&this->actor, NA_SE_EN_GANON_CASBREAK); @@ -531,7 +532,7 @@ void func_808FD5F4(BossGanon2* this, PlayState* play) { this->unk_1B4 = 0.0f; SkelAnime_Update(&this->skelAnime); if (Animation_OnFrame(&this->skelAnime, this->unk_194)) { - Animation_MorphToPlayOnce(&this->skelAnime, &object_ganon_anime3_Anim_0028A8, 0.0f); + Animation_MorphToPlayOnce(&this->skelAnime, &gGanondorfTransformEndAnim, 0.0f); this->unk_194 = 1000.0f; } Math_ApproachF(&this->subCamEye.x, (this->actor.world.pos.x + 200.0f) - 90.0f, 0.1f, 6.3999996f); @@ -555,7 +556,7 @@ void func_808FD5F4(BossGanon2* this, PlayState* play) { this->unk_337 = 2; BossGanon2_SetObjectSegment(this, play, OBJECT_GANON2, false); SkelAnime_Free(&this->skelAnime, play); - SkelAnime_InitFlex(play, &this->skelAnime, &object_ganon2_Skel_025970, NULL, NULL, NULL, 0); + SkelAnime_InitFlex(play, &this->skelAnime, &gGanonSkel, NULL, NULL, NULL, 0); BossGanon2_SetObjectSegment(this, play, OBJECT_GANON_ANIME3, false); func_8002DF54(play, &this->actor, 0x54); this->unk_314 = 3; @@ -577,7 +578,7 @@ void func_808FD5F4(BossGanon2* this, PlayState* play) { if (this->unk_398 == 25) { this->unk_39C = 18; this->unk_398 = 0; - Animation_MorphToPlayOnce(&this->skelAnime, &object_ganon_anime3_Anim_010380, 0.0f); + Animation_MorphToPlayOnce(&this->skelAnime, &gGanonUncurlAndFlailAnim, 0.0f); this->skelAnime.playSpeed = 0.0f; this->subCamEye.x = ((this->actor.world.pos.x + 500.0f) - 350.0f) - 50.0f; this->subCamEye.y = this->actor.world.pos.y; @@ -640,7 +641,7 @@ void func_808FD5F4(BossGanon2* this, PlayState* play) { this->unk_398 = 0; this->unk_420 = 10.0f; this->actor.velocity.y = 0.0f; - Animation_MorphToPlayOnce(&this->skelAnime, &object_ganon_anime3_Anim_010380, 0.0f); + Animation_MorphToPlayOnce(&this->skelAnime, &gGanonUncurlAndFlailAnim, 0.0f); func_808FD4D4(this, play, 0, 3); func_800A9F6C(0.0f, 0xC8, 0x14, 0x14); } @@ -673,8 +674,8 @@ void func_808FD5F4(BossGanon2* this, PlayState* play) { } if (this->unk_398 == 80) { BossGanon2_SetObjectSegment(this, play, OBJECT_GANON2, false); - TitleCard_InitBossName(play, &play->actorCtx.titleCtx, SEGMENTED_TO_VIRTUAL(object_ganon2_Tex_021A90), - 160, 180, 128, 40); + TitleCard_InitBossName(play, &play->actorCtx.titleCtx, SEGMENTED_TO_VIRTUAL(gGanonTitleCardTex), 160, + 180, 128, 40); } this->subCamEye.x = ((this->actor.world.pos.x + 500.0f) - 350.0f) + 100.0f; this->subCamEye.y = this->actor.world.pos.y; @@ -843,8 +844,8 @@ void func_808FD5F4(BossGanon2* this, PlayState* play) { if ((this->unk_398 > 40) && (Message_GetState(&play->msgCtx) == TEXT_STATE_NONE)) { this->unk_39C = 29; this->unk_398 = 0; - Animation_MorphToPlayOnce(&this->skelAnime, &object_ganon_anime3_Anim_0147E0, 0.0f); - this->unk_194 = Animation_GetLastFrame(&object_ganon_anime3_Anim_0147E0); + Animation_MorphToPlayOnce(&this->skelAnime, &gGanonRoarAnim, 0.0f); + this->unk_194 = Animation_GetLastFrame(&gGanonRoarAnim); this->actor.shape.yOffset = 0.0f; this->actor.world.pos.y = 1086.0f; this->actor.gravity = -1.0f; @@ -1043,7 +1044,7 @@ void func_808FFDB0(BossGanon2* this, PlayState* play) { if (Object_IsLoaded(&play->objectCtx, objectIdx)) { gSegments[6] = VIRTUAL_TO_PHYSICAL(play->objectCtx.status[objectIdx].segment); - Animation_MorphToLoop(&this->skelAnime, &object_ganon2_Anim_00FFE4, -10.0f); + Animation_MorphToLoop(&this->skelAnime, &gGanonGuardIdleAnim, -10.0f); this->actionFunc = func_808FFEBC; if (this->unk_334 != 0) { @@ -1081,7 +1082,7 @@ void func_808FFEBC(BossGanon2* this, PlayState* play) { } void func_808FFF90(BossGanon2* this, PlayState* play) { - Animation_MorphToLoop(&this->skelAnime, &object_ganon2_Anim_00FFE4, -10.0f); + Animation_MorphToLoop(&this->skelAnime, &gGanonGuardIdleAnim, -10.0f); this->actionFunc = func_808FFFE0; this->unk_1A2[0] = 40; } @@ -1106,8 +1107,8 @@ void func_808FFFE0(BossGanon2* this, PlayState* play) { } void func_809000A0(BossGanon2* this, PlayState* play) { - Animation_MorphToLoop(&this->skelAnime, &object_ganon2_Anim_026510, -2.0f); - this->unk_194 = Animation_GetLastFrame(&object_ganon2_Anim_026510); + Animation_MorphToLoop(&this->skelAnime, &gGanonStunStartAnim, -2.0f); + this->unk_194 = Animation_GetLastFrame(&gGanonStunStartAnim); this->unk_1AC = 0; this->actionFunc = func_80900104; } @@ -1120,15 +1121,15 @@ void func_80900104(BossGanon2* this, PlayState* play) { case 0: if (Animation_OnFrame(&this->skelAnime, this->unk_194)) { this->unk_1AC = 1; - Animation_MorphToLoop(&this->skelAnime, &object_ganon2_Anim_026AF4, 0.0f); + Animation_MorphToLoop(&this->skelAnime, &gGanonStunLoopAnim, 0.0f); this->unk_1A2[0] = 80; } break; case 1: if (this->unk_1A2[0] == 0) { this->unk_1AC = 2; - Animation_MorphToLoop(&this->skelAnime, &object_ganon2_Anim_027824, -5.0f); - this->unk_194 = Animation_GetLastFrame(&object_ganon2_Anim_027824); + Animation_MorphToLoop(&this->skelAnime, &gGanonStunEndAnim, -5.0f); + this->unk_194 = Animation_GetLastFrame(&gGanonStunEndAnim); } break; case 2: @@ -1140,8 +1141,8 @@ void func_80900104(BossGanon2* this, PlayState* play) { } void func_80900210(BossGanon2* this, PlayState* play) { - Animation_MorphToPlayOnce(&this->skelAnime, &object_ganon2_Anim_00DFF0, -3.0f); - this->unk_194 = Animation_GetLastFrame(&object_ganon2_Anim_00DFF0); + Animation_MorphToPlayOnce(&this->skelAnime, &gGanonDamageAnim, -3.0f); + this->unk_194 = Animation_GetLastFrame(&gGanonDamageAnim); this->actionFunc = func_8090026C; } @@ -1155,7 +1156,7 @@ void func_8090026C(BossGanon2* this, PlayState* play) { } void func_809002CC(BossGanon2* this, PlayState* play) { - Animation_MorphToLoop(&this->skelAnime, &object_ganon2_Anim_00E8EC, -10.0f); + Animation_MorphToLoop(&this->skelAnime, &gGanonGuardWalkAnim, -10.0f); this->actionFunc = func_80900344; this->unk_338 = 0; this->unk_1A2[0] = 100; @@ -1180,7 +1181,7 @@ void func_80900344(BossGanon2* this, PlayState* play) { } if (this->actor.xzDistToPlayer < 200.0f) { this->unk_338 = 0; - Animation_MorphToLoop(&this->skelAnime, &object_ganon2_Anim_00E8EC, -10.0f); + Animation_MorphToLoop(&this->skelAnime, &gGanonGuardWalkAnim, -10.0f); } else { this->skelAnime.playSpeed = ((this->actor.xzDistToPlayer - 300.0f) * 0.005f) + 1.0f; if (this->skelAnime.playSpeed > 2.0f) { @@ -1195,7 +1196,7 @@ void func_80900344(BossGanon2* this, PlayState* play) { phi_f0 = 2.0f; if (this->actor.xzDistToPlayer >= 200.0f) { this->unk_338 = 1; - Animation_MorphToLoop(&this->skelAnime, &object_ganon2_Anim_0353C0, -10.0f); + Animation_MorphToLoop(&this->skelAnime, &gGanonWalkAnim, -10.0f); } } @@ -1214,12 +1215,12 @@ void func_80900344(BossGanon2* this, PlayState* play) { void func_80900580(BossGanon2* this, PlayState* play) { if (this->unk_311 == 0) { - Animation_MorphToPlayOnce(&this->skelAnime, &object_ganon2_Anim_00ADD0, -5.0f); - this->unk_194 = Animation_GetLastFrame(&object_ganon2_Anim_00ADD0); + Animation_MorphToPlayOnce(&this->skelAnime, &gGanonLeftSwordSwingAnim, -5.0f); + this->unk_194 = Animation_GetLastFrame(&gGanonLeftSwordSwingAnim); this->unk_198 = (this->unk_194 - 15.0f) - 5.0f; } else { - Animation_MorphToPlayOnce(&this->skelAnime, &object_ganon2_Anim_00CAF8, -5.0f); - this->unk_194 = Animation_GetLastFrame(&object_ganon2_Anim_00CAF8); + Animation_MorphToPlayOnce(&this->skelAnime, &gGanonRightSwordSwingAnim, -5.0f); + this->unk_194 = Animation_GetLastFrame(&gGanonRightSwordSwingAnim); this->unk_198 = (this->unk_194 - 15.0f) - 5.0f; } @@ -1266,8 +1267,8 @@ void func_80900650(BossGanon2* this, PlayState* play) { } void func_80900818(BossGanon2* this, PlayState* play) { - Animation_MorphToPlayOnce(&this->skelAnime, &object_ganon2_Anim_02A848, -5.0f); - this->unk_194 = Animation_GetLastFrame(&object_ganon2_Anim_02A848); + Animation_MorphToPlayOnce(&this->skelAnime, &gGanonDownedStartAnim, -5.0f); + this->unk_194 = Animation_GetLastFrame(&gGanonDownedStartAnim); this->actionFunc = func_80900890; this->unk_1AC = 0; this->unk_39C = 0; @@ -1392,7 +1393,7 @@ void func_80900890(BossGanon2* this, PlayState* play) { switch (this->unk_1AC) { case 0: if (Animation_OnFrame(&this->skelAnime, this->unk_194)) { - Animation_MorphToLoop(&this->skelAnime, &object_ganon2_Anim_034278, 0.0f); + Animation_MorphToLoop(&this->skelAnime, &gGanonDownedLoopAnim, 0.0f); this->unk_1AC = 1; } break; @@ -1406,8 +1407,8 @@ void func_80900890(BossGanon2* this, PlayState* play) { temp_f12 = -200.0f - player->actor.world.pos.z; if (sqrtf(SQ(temp_f2) + SQ(temp_f12)) <= 784.0f) { - Animation_MorphToPlayOnce(&this->skelAnime, &object_ganon2_Anim_0334F8, 0.0f); - this->unk_194 = Animation_GetLastFrame(&object_ganon2_Anim_0334F8); + Animation_MorphToPlayOnce(&this->skelAnime, &gGanonGetUpAnim, 0.0f); + this->unk_194 = Animation_GetLastFrame(&gGanonGetUpAnim); this->unk_1AC = 2; this->unk_1A2[0] = 40; Audio_PlayActorSfx2(&this->actor, NA_SE_EN_MGANON_ROAR); @@ -1431,8 +1432,8 @@ void func_80900890(BossGanon2* this, PlayState* play) { } void func_80901020(BossGanon2* this, PlayState* play) { - Animation_MorphToPlayOnce(&this->skelAnime, &object_ganon2_Anim_02A848, -5.0f); - this->unk_194 = Animation_GetLastFrame(&object_ganon2_Anim_02A848); + Animation_MorphToPlayOnce(&this->skelAnime, &gGanonDownedStartAnim, -5.0f); + this->unk_194 = Animation_GetLastFrame(&gGanonDownedStartAnim); this->actionFunc = func_8090120C; this->unk_1AC = 0; this->unk_39C = 0; @@ -1642,8 +1643,8 @@ void func_8090120C(BossGanon2* this, PlayState* play) { Play_ChangeCameraStatus(play, this->subCamId, CAM_STAT_ACTIVE); this->unk_39C = 7; this->unk_398 = 0; - Animation_MorphToPlayOnce(&this->skelAnime, &object_ganon2_Anim_003B1C, 0.0f); - this->unk_194 = Animation_GetLastFrame(&object_ganon2_Anim_003B1C); + Animation_MorphToPlayOnce(&this->skelAnime, &gGanonFinalBlowAnim, 0.0f); + this->unk_194 = Animation_GetLastFrame(&gGanonFinalBlowAnim); play->startPlayerCutscene(play, &this->actor, 0x61); } else { break; @@ -1709,8 +1710,8 @@ void func_8090120C(BossGanon2* this, PlayState* play) { case 75: this->unk_339 = 23; if (this->unk_398 == 55) { - Animation_MorphToPlayOnce(&this->skelAnime, &object_ganon2_Anim_007288, 0.0f); - this->unk_194 = Animation_GetLastFrame(&object_ganon2_Anim_007288); + Animation_MorphToPlayOnce(&this->skelAnime, &gGanonDeadStartAnim, 0.0f); + this->unk_194 = Animation_GetLastFrame(&gGanonDeadStartAnim); func_8002DF54(play, &this->actor, 0x62); this->unk_39C = 8; this->unk_398 = 1000; @@ -1734,7 +1735,7 @@ void func_8090120C(BossGanon2* this, PlayState* play) { play->envCtx.lightBlend = 0.0f; } if (Animation_OnFrame(&this->skelAnime, this->unk_194)) { - Animation_MorphToPlayOnce(&this->skelAnime, &object_ganon2_Anim_008EB8, 0.0f); + Animation_MorphToPlayOnce(&this->skelAnime, &gGanonDeadLoopAnim, 0.0f); this->unk_398 = 0; this->unk_194 = 1000.0f; } @@ -1819,7 +1820,7 @@ void func_8090120C(BossGanon2* this, PlayState* play) { switch (this->unk_1AC) { case 0: if (Animation_OnFrame(&this->skelAnime, this->unk_194)) { - Animation_MorphToLoop(&this->skelAnime, &object_ganon2_Anim_034278, 0.0f); + Animation_MorphToLoop(&this->skelAnime, &gGanonDownedLoopAnim, 0.0f); this->unk_1AC = 1; } break; @@ -2515,12 +2516,12 @@ s32 BossGanon2_OverrideLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec OPEN_DISPS(play->state.gfxCtx, "../z_boss_ganon2.c", 5355); - if (limbIndex == 15) { + if (limbIndex == GANON_LIMB_NECK) { rot->y += this->unk_31A; rot->z += this->unk_31C; } - if (limbIndex >= 42) { + if (limbIndex >= GANON_LIMB_TAIL1) { rot->x += this->unk_2F4[limbIndex] + this->unk_346; rot->y += this->unk_2FE[limbIndex]; @@ -2531,7 +2532,8 @@ s32 BossGanon2_OverrideLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec } } - if ((limbIndex == 7) || (limbIndex == 13) || (limbIndex == 33) || (limbIndex == 34)) { + if ((limbIndex == GANON_LIMB_LEFT_SWORD) || (limbIndex == GANON_LIMB_RIGHT_SWORD) || + (limbIndex == GANON_LIMB_LEFT_HORN) || (limbIndex == GANON_LIMB_RIGHT_HORN)) { *dList = NULL; } @@ -2554,17 +2556,17 @@ void BossGanon2_PostLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s* Matrix_MultVec3f(&D_80906D60, &this->unk_234[D_809070CC[limbIndex]]); } - if (limbIndex == 15) { + if (limbIndex == GANON_LIMB_NECK) { Matrix_MultVec3f(&D_80906D60, &this->unk_1B8); - } else if (limbIndex == 3) { + } else if (limbIndex == GANON_LIMB_LEFT_SHOULDER) { Matrix_MultVec3f(&D_80907108, &this->unk_1F4); - } else if (limbIndex == 9) { + } else if (limbIndex == GANON_LIMB_RIGHT_SHOULDER) { Matrix_MultVec3f(&D_80907114, &this->unk_1E8); - } else if (limbIndex == 38) { + } else if (limbIndex == GANON_LIMB_LEFT_FOOT) { Matrix_MultVec3f(&D_80906D60, &this->unk_1DC); - } else if (limbIndex == 41) { + } else if (limbIndex == GANON_LIMB_RIGHT_FOOT) { Matrix_MultVec3f(&D_80906D60, &this->unk_1D0); - } else if (limbIndex == 45) { + } else if (limbIndex == GANON_LIMB_TAIL4) { Matrix_MultVec3f(&D_80907138, &this->unk_1C4); } @@ -2574,14 +2576,14 @@ void BossGanon2_PostLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s* func_808FD080(temp_v0, &this->unk_424, &sp4C); } - if ((limbIndex == 7) || (limbIndex == 13)) { + if ((limbIndex == GANON_LIMB_LEFT_SWORD) || (limbIndex == GANON_LIMB_RIGHT_SWORD)) { Matrix_Push(); Matrix_Scale(this->unk_224, this->unk_224, this->unk_224, MTXMODE_APPLY); gSPMatrix(POLY_OPA_DISP++, Matrix_NewMtx(play->state.gfxCtx, "../z_boss_ganon2.c", 5522), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); gSPDisplayList(POLY_OPA_DISP++, *dList); Matrix_Pop(); - } else if ((limbIndex == 33) || (limbIndex == 34)) { + } else if ((limbIndex == GANON_LIMB_LEFT_HORN) || (limbIndex == GANON_LIMB_RIGHT_HORN)) { Matrix_Push(); Matrix_Scale(this->unk_228, this->unk_228, this->unk_228, MTXMODE_APPLY); gSPMatrix(POLY_OPA_DISP++, Matrix_NewMtx(play->state.gfxCtx, "../z_boss_ganon2.c", 5533), @@ -2591,12 +2593,12 @@ void BossGanon2_PostLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s* } if (*dList != NULL) { - if ((limbIndex == 7) && (this->unk_312 == 1)) { + if ((limbIndex == GANON_LIMB_LEFT_SWORD) && (this->unk_312 == 1)) { Matrix_MultVec3f(&D_809070FC, &this->unk_218); func_808FD080(0, &this->unk_444, &this->unk_218); Matrix_MultVec3f(&D_80907120, &this->unk_200); Matrix_MultVec3f(&D_8090712C, &this->unk_20C); - } else if ((limbIndex == 13) && (this->unk_312 == 2)) { + } else if ((limbIndex == GANON_LIMB_RIGHT_SWORD) && (this->unk_312 == 2)) { Matrix_MultVec3f(&D_809070FC, &this->unk_218); func_808FD080(1, &this->unk_444, &this->unk_218); Matrix_MultVec3f(&D_80907120, &this->unk_200); @@ -2709,15 +2711,15 @@ void BossGanon2_PostLimbDraw2(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s if (temp_v1 >= 0) { Matrix_MultVec3f(&D_80906D60, &this->unk_234[temp_v1]); } - if (limbIndex == 11) { + if (limbIndex == GANONDORF_LIMB_JEWEL) { OPEN_DISPS(play->state.gfxCtx, "../z_boss_ganon2.c", 5749); gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(play->state.gfxCtx, "../z_boss_ganon2.c", 5752), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); - gSPDisplayList(POLY_XLU_DISP++, SEGMENTED_TO_VIRTUAL(object_ganon_DL_00BE90)); + gSPDisplayList(POLY_XLU_DISP++, SEGMENTED_TO_VIRTUAL(gGanondorfEyesDL)); CLOSE_DISPS(play->state.gfxCtx, "../z_boss_ganon2.c", 5754); - } else if (limbIndex == 10) { + } else if (limbIndex == GANONDORF_LIMB_RIGHT_HAND) { Matrix_MultVec3f(&D_80907164, &this->unk_1B8); } } @@ -2762,8 +2764,8 @@ void BossGanon2_Draw(Actor* thisx, PlayState* play) { switch (this->unk_337) { case 0: BossGanon2_SetObjectSegment(this, play, OBJECT_GANON, true); - gSPSegment(POLY_XLU_DISP++, 0x08, SEGMENTED_TO_VIRTUAL(object_ganon_Tex_00A8E0)); - gSPSegment(POLY_XLU_DISP++, 0x09, SEGMENTED_TO_VIRTUAL(object_ganon_Tex_00A8E0)); + gSPSegment(POLY_XLU_DISP++, 0x08, SEGMENTED_TO_VIRTUAL(gGanondorfEmptyEyeTex)); + gSPSegment(POLY_XLU_DISP++, 0x09, SEGMENTED_TO_VIRTUAL(gGanondorfEmptyEyeTex)); SkelAnime_DrawFlexOpa(play, this->skelAnime.skeleton, this->skelAnime.jointTable, this->skelAnime.dListCount, NULL, BossGanon2_PostLimbDraw2, this); break; diff --git a/src/overlays/actors/ovl_Boss_Ganon2/z_boss_ganon2.h b/src/overlays/actors/ovl_Boss_Ganon2/z_boss_ganon2.h index 90b30ab998..2248b41350 100644 --- a/src/overlays/actors/ovl_Boss_Ganon2/z_boss_ganon2.h +++ b/src/overlays/actors/ovl_Boss_Ganon2/z_boss_ganon2.h @@ -8,6 +8,57 @@ struct BossGanon2; typedef void (*BossGanon2ActionFunc)(struct BossGanon2*, PlayState*); +typedef enum { + /* 0 */ GANON_LIMB_NONE, + /* 1 */ GANON_LIMB_ROOT, + /* 2 */ GANON_LIMB_TORSO, + /* 3 */ GANON_LIMB_LEFT_SHOULDER, + /* 4 */ GANON_LIMB_LEFT_UPPER_ARM, + /* 5 */ GANON_LIMB_LEFT_FOREARM, + /* 6 */ GANON_LIMB_LEFT_WRIST, + /* 7 */ GANON_LIMB_LEFT_SWORD, + /* 8 */ GANON_LIMB_LEFT_HAND, + /* 9 */ GANON_LIMB_RIGHT_SHOULDER, + /* 10 */ GANON_LIMB_RIGHT_UPPER_ARM, + /* 11 */ GANON_LIMB_RIGHT_FOREARM, + /* 12 */ GANON_LIMB_RIGHT_WRIST, + /* 13 */ GANON_LIMB_RIGHT_SWORD, + /* 14 */ GANON_LIMB_RIGHT_HAND, + /* 15 */ GANON_LIMB_NECK, + /* 16 */ GANON_LIMB_JEWEL, + /* 17 */ GANON_LIMB_SNOUT, + /* 18 */ GANON_LIMB_OUTER_TEETH, + /* 19 */ GANON_LIMB_MOUTH, + /* 20 */ GANON_LIMB_INNER_TEETH, + /* 21 */ GANON_LIMB_JAW, + /* 22 */ GANON_LIMB_MIDDLE_HAIR_1, + /* 23 */ GANON_LIMB_MIDDLE_HAIR_2, + /* 24 */ GANON_LIMB_MIDDLE_HAIR_3, + /* 25 */ GANON_LIMB_LEFT_HAIR_1, + /* 26 */ GANON_LIMB_LEFT_HAIR_2, + /* 27 */ GANON_LIMB_LEFT_HAIR_3, + /* 28 */ GANON_LIMB_RIGHT_HAIR_1, + /* 29 */ GANON_LIMB_RIGHT_HAIR_2, + /* 30 */ GANON_LIMB_RIGHT_HAIR_3, + /* 31 */ GANON_LIMB_EYES, + /* 32 */ GANON_LIMB_HEAD, + /* 33 */ GANON_LIMB_LEFT_HORN, + /* 34 */ GANON_LIMB_RIGHT_HORN, + /* 35 */ GANON_LIMB_PELVIS, + /* 36 */ GANON_LIMB_LEFT_THIGH, + /* 37 */ GANON_LIMB_LEFT_SHIN, + /* 38 */ GANON_LIMB_LEFT_FOOT, + /* 39 */ GANON_LIMB_RIGHT_THIGH, + /* 40 */ GANON_LIMB_RIGHT_SHIN, + /* 41 */ GANON_LIMB_RIGHT_FOOT, + /* 42 */ GANON_LIMB_TAIL1, + /* 43 */ GANON_LIMB_TAIL2, + /* 44 */ GANON_LIMB_TAIL3, + /* 45 */ GANON_LIMB_TAIL4, + /* 46 */ GANON_LIMB_TAIL5, + /* 47 */ GANON_LIMB_MAX +} GanonLimb; + typedef struct BossGanon2 { /* 0x0000 */ Actor actor; /* 0x014C */ SkelAnime skelAnime; diff --git a/src/overlays/actors/ovl_Boss_Ganon2/z_boss_ganon2_data.c b/src/overlays/actors/ovl_Boss_Ganon2/z_boss_ganon2_data.c index b65404695a..407e0f020d 100644 --- a/src/overlays/actors/ovl_Boss_Ganon2/z_boss_ganon2_data.c +++ b/src/overlays/actors/ovl_Boss_Ganon2/z_boss_ganon2_data.c @@ -309,9 +309,9 @@ static s8 D_80907144[] = { static Vec3f D_80907164 = { 800.0f, 420.0f, 100.0f }; static void* sEyeTextures[] = { - object_ganon2_Tex_01E188, - object_ganon2_Tex_01E988, - object_ganon2_Tex_01EA08, + gGanonEyeOpenTex, + gGanonEyeHalfTex, + gGanonEyeClosedTex, }; static Vec3f D_8090717C = { 0.0f, -2000.0f, 0.0f }; diff --git a/src/overlays/actors/ovl_En_Viewer/z_en_viewer.c b/src/overlays/actors/ovl_En_Viewer/z_en_viewer.c index cdc209d0c1..bdc08ec38b 100644 --- a/src/overlays/actors/ovl_En_Viewer/z_en_viewer.c +++ b/src/overlays/actors/ovl_En_Viewer/z_en_viewer.c @@ -5,6 +5,7 @@ */ #include "z_en_viewer.h" +#include "overlays/actors/ovl_Boss_Ganon/z_boss_ganon.h" #include "overlays/actors/ovl_En_Ganon_Mant/z_en_ganon_mant.h" #include "assets/objects/object_zl4/object_zl4.h" #include "assets/objects/gameplay_keep/gameplay_keep.h" @@ -75,8 +76,8 @@ static EnViewerInitData sInitData[] = { { OBJECT_GNDD, OBJECT_GNDD, 1, -6, ENVIEWER_SHADOW_NONE, 10, ENVIEWER_DRAW_GANONDORF, &object_gndd_Skel_0119E8, &object_gndd_Anim_0050A8 }, /* ENVIEWER_TYPE_9_GANONDORF */ - { OBJECT_GANON, OBJECT_GANON, 1, -6, ENVIEWER_SHADOW_NONE, 10, ENVIEWER_DRAW_GANONDORF, &gDorfSkel, - &object_ganon_Anim_011348 }, + { OBJECT_GANON, OBJECT_GANON, 1, -6, ENVIEWER_SHADOW_NONE, 10, ENVIEWER_DRAW_GANONDORF, &gGanondorfSkel, + &gGanondorfEndingFloatAnim }, }; static EnGanonMant* sGanondorfCape; @@ -504,12 +505,12 @@ s32 EnViewer_Ganondorf3OverrideLimbDraw(PlayState* play, s32 limbIndex, Gfx** dL } void EnViewer_Ganondorf9PostLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s* rot, void* thisx) { - if (limbIndex == 11) { + if (limbIndex == GANONDORF_LIMB_JEWEL) { OPEN_DISPS(play->state.gfxCtx, "../z_en_viewer.c", 1365); Gfx_SetupDL_25Xlu(play->state.gfxCtx); gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(play->state.gfxCtx, "../z_en_viewer.c", 1370), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); - gSPDisplayList(POLY_XLU_DISP++, SEGMENTED_TO_VIRTUAL(object_ganon_DL_00BE90)); + gSPDisplayList(POLY_XLU_DISP++, SEGMENTED_TO_VIRTUAL(gGanondorfEyesDL)); CLOSE_DISPS(play->state.gfxCtx, "../z_en_viewer.c", 1372); } } @@ -551,7 +552,7 @@ void EnViewer_DrawGanondorf(EnViewer* this, PlayState* play) { gSPSegment(POLY_OPA_DISP++, 0x09, SEGMENTED_TO_VIRTUAL(&object_gndd_Tex_00F778)); } } else if (type == ENVIEWER_TYPE_9_GANONDORF) { - gSPSegment(POLY_XLU_DISP++, 0x08, SEGMENTED_TO_VIRTUAL(&object_ganon_Tex_00A4E0)); + gSPSegment(POLY_XLU_DISP++, 0x08, SEGMENTED_TO_VIRTUAL(&gGanondorfCrazedEyeTex)); } if (type == ENVIEWER_TYPE_9_GANONDORF) {