diff --git a/assets/xml/objects/object_bird.xml b/assets/xml/objects/object_bird.xml
index 2d3c111f64..47ab0669c0 100644
--- a/assets/xml/objects/object_bird.xml
+++ b/assets/xml/objects/object_bird.xml
@@ -1,27 +1,30 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_fu.xml b/assets/xml/objects/object_fu.xml
index d4e977f0c3..8033efb9a9 100644
--- a/assets/xml/objects/object_fu.xml
+++ b/assets/xml/objects/object_fu.xml
@@ -1,49 +1,55 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/scenes/dungeons/ddan.xml b/assets/xml/scenes/dungeons/ddan.xml
index f145cd4886..4d988b991c 100644
--- a/assets/xml/scenes/dungeons/ddan.xml
+++ b/assets/xml/scenes/dungeons/ddan.xml
@@ -1,6 +1,7 @@
-
+
+
diff --git a/assets/xml/scenes/dungeons/ddan_boss.xml b/assets/xml/scenes/dungeons/ddan_boss.xml
index 2c325dcc77..d7c84ef493 100644
--- a/assets/xml/scenes/dungeons/ddan_boss.xml
+++ b/assets/xml/scenes/dungeons/ddan_boss.xml
@@ -6,6 +6,7 @@
+
diff --git a/assets/xml/scenes/dungeons/ganon_tou.xml b/assets/xml/scenes/dungeons/ganon_tou.xml
index 1e7c9b136b..8fff6ae0ba 100644
--- a/assets/xml/scenes/dungeons/ganon_tou.xml
+++ b/assets/xml/scenes/dungeons/ganon_tou.xml
@@ -1,6 +1,7 @@
-
+
+
diff --git a/assets/xml/scenes/dungeons/jyasinboss.xml b/assets/xml/scenes/dungeons/jyasinboss.xml
index 70b3f0dedc..02f0e9aa4a 100644
--- a/assets/xml/scenes/dungeons/jyasinboss.xml
+++ b/assets/xml/scenes/dungeons/jyasinboss.xml
@@ -1,6 +1,7 @@
-
+
+
diff --git a/assets/xml/scenes/indoors/daiyousei_izumi.xml b/assets/xml/scenes/indoors/daiyousei_izumi.xml
index 842a95a71d..3c1fafb8d2 100644
--- a/assets/xml/scenes/indoors/daiyousei_izumi.xml
+++ b/assets/xml/scenes/indoors/daiyousei_izumi.xml
@@ -1,6 +1,9 @@
-
+
+
+
+
diff --git a/assets/xml/scenes/indoors/hakasitarelay.xml b/assets/xml/scenes/indoors/hakasitarelay.xml
index 20fedf5bdf..bc1e2b9661 100644
--- a/assets/xml/scenes/indoors/hakasitarelay.xml
+++ b/assets/xml/scenes/indoors/hakasitarelay.xml
@@ -1,6 +1,7 @@
-
+
+
diff --git a/assets/xml/scenes/indoors/nakaniwa.xml b/assets/xml/scenes/indoors/nakaniwa.xml
index 230338193a..49ff4a29cb 100644
--- a/assets/xml/scenes/indoors/nakaniwa.xml
+++ b/assets/xml/scenes/indoors/nakaniwa.xml
@@ -3,6 +3,7 @@
+
diff --git a/assets/xml/scenes/indoors/yousei_izumi_yoko.xml b/assets/xml/scenes/indoors/yousei_izumi_yoko.xml
index f483307841..98923c569a 100644
--- a/assets/xml/scenes/indoors/yousei_izumi_yoko.xml
+++ b/assets/xml/scenes/indoors/yousei_izumi_yoko.xml
@@ -1,6 +1,9 @@
-
+
+
+
+
diff --git a/assets/xml/scenes/misc/hakaana_ouke.xml b/assets/xml/scenes/misc/hakaana_ouke.xml
index e4bf4f47d9..b79e813227 100644
--- a/assets/xml/scenes/misc/hakaana_ouke.xml
+++ b/assets/xml/scenes/misc/hakaana_ouke.xml
@@ -1,6 +1,7 @@
-
+
+
diff --git a/assets/xml/scenes/overworld/spot05.xml b/assets/xml/scenes/overworld/spot05.xml
index b621691145..a666d09ba3 100644
--- a/assets/xml/scenes/overworld/spot05.xml
+++ b/assets/xml/scenes/overworld/spot05.xml
@@ -1,7 +1,7 @@
-
+
diff --git a/assets/xml/scenes/overworld/spot06.xml b/assets/xml/scenes/overworld/spot06.xml
index a71acc3ce2..9be9524863 100644
--- a/assets/xml/scenes/overworld/spot06.xml
+++ b/assets/xml/scenes/overworld/spot06.xml
@@ -1,10 +1,8 @@
-
-
-
+
+
-
diff --git a/assets/xml/scenes/overworld/spot16.xml b/assets/xml/scenes/overworld/spot16.xml
index fb4efc9cd9..8810799d6e 100644
--- a/assets/xml/scenes/overworld/spot16.xml
+++ b/assets/xml/scenes/overworld/spot16.xml
@@ -1,5 +1,6 @@
+
diff --git a/src/overlays/actors/ovl_Bg_Breakwall/z_bg_breakwall.c b/src/overlays/actors/ovl_Bg_Breakwall/z_bg_breakwall.c
index 296f9199c5..7e1cff29e9 100644
--- a/src/overlays/actors/ovl_Bg_Breakwall/z_bg_breakwall.c
+++ b/src/overlays/actors/ovl_Bg_Breakwall/z_bg_breakwall.c
@@ -5,6 +5,7 @@
*/
#include "z_bg_breakwall.h"
+#include "scenes/dungeons/ddan/ddan_scene.h"
#define FLAGS 0x00000010
@@ -25,8 +26,6 @@ void BgBreakwall_WaitForObject(BgBreakwall* this, GlobalContext* globalCtx);
void BgBreakwall_Wait(BgBreakwall* this, GlobalContext* globalCtx);
void BgBreakwall_LavaCoverMove(BgBreakwall* this, GlobalContext* globalCtx);
-extern UNK_TYPE D_02014F80;
-
const ActorInit Bg_Breakwall_InitVars = {
ACTOR_BG_BREAKWALL,
ACTORCAT_BG,
@@ -252,7 +251,7 @@ void BgBreakwall_Wait(BgBreakwall* this, GlobalContext* globalCtx) {
if ((wallType == BWALL_DC_ENTRANCE) && (!(Flags_GetEventChkInf(0xB0)))) {
Flags_SetEventChkInf(0xB0);
- Cutscene_SetSegment(globalCtx, &D_02014F80);
+ Cutscene_SetSegment(globalCtx, gDcOpeningCs);
gSaveContext.cutsceneTrigger = 1;
Audio_PlaySoundGeneral(NA_SE_SY_CORRECT_CHIME, &D_801333D4, 4, &D_801333E0, &D_801333E0, &D_801333E8);
func_8002DF54(globalCtx, NULL, 0x31);
diff --git a/src/overlays/actors/ovl_Bg_Dy_Yoseizo/z_bg_dy_yoseizo.c b/src/overlays/actors/ovl_Bg_Dy_Yoseizo/z_bg_dy_yoseizo.c
index a7aab19869..28ef2e62ac 100644
--- a/src/overlays/actors/ovl_Bg_Dy_Yoseizo/z_bg_dy_yoseizo.c
+++ b/src/overlays/actors/ovl_Bg_Dy_Yoseizo/z_bg_dy_yoseizo.c
@@ -7,13 +7,15 @@
#include "z_bg_dy_yoseizo.h"
#include "vt.h"
#include "overlays/actors/ovl_Demo_Effect/z_demo_effect.h"
+#include "scenes/indoors/yousei_izumi_yoko/yousei_izumi_yoko_scene.h"
+#include "scenes/indoors/daiyousei_izumi/daiyousei_izumi_scene.h"
#define FLAGS 0x02000030
#define THIS ((BgDyYoseizo*)thisx)
typedef enum {
- /* 0 */ FAIRY_UPGRADE_SPIN_ATTACK,
+ /* 0 */ FAIRY_UPGRADE_MAGIC,
/* 1 */ FAIRY_UPGRADE_DOUBLE_MAGIC,
/* 2 */ FAIRY_UPGRADE_HALF_DAMAGE
} BgDyYoseizoRewardType;
@@ -65,12 +67,6 @@ const ActorInit Bg_Dy_Yoseizo_InitVars = {
NULL,
};
-extern CutsceneData D_02000130;
-extern CutsceneData D_02000160;
-extern CutsceneData D_02001020;
-extern CutsceneData D_020013E0;
-extern CutsceneData D_02001F40;
-extern CutsceneData D_020025D0;
extern AnimationHeader D_0600092C; // Giving spell to spin-shrink, arms, leg, hair up
extern AnimationHeader D_06001DF0; // Lounging
extern AnimationHeader D_060031C0; // Upright to Lounging
@@ -202,7 +198,7 @@ void BgDyYoseizo_CheckMagicAcquired(BgDyYoseizo* this, GlobalContext* globalCtx)
if (Flags_GetSwitch(globalCtx, 0x38)) {
globalCtx->msgCtx.unk_E3EE = 4;
if (globalCtx->sceneNum == SCENE_DAIYOUSEI_IZUMI) {
- if (!gSaveContext.magicAcquired && (this->fountainType != FAIRY_UPGRADE_SPIN_ATTACK)) {
+ if (!gSaveContext.magicAcquired && (this->fountainType != FAIRY_UPGRADE_MAGIC)) {
Actor_Kill(&this->actor);
return;
}
@@ -245,7 +241,7 @@ void BgDyYoseizo_ChooseType(BgDyYoseizo* this, GlobalContext* globalCtx) {
}
} else {
switch (this->fountainType) {
- case FAIRY_UPGRADE_SPIN_ATTACK:
+ case FAIRY_UPGRADE_MAGIC:
if (!gSaveContext.magicAcquired || BREG(2)) {
// Spin Attack speed UP
osSyncPrintf(VT_FGCOL(GREEN) " ☆☆☆☆☆ 回転切り速度UP ☆☆☆☆☆ \n" VT_RST, &gSaveContext);
@@ -277,30 +273,30 @@ void BgDyYoseizo_ChooseType(BgDyYoseizo* this, GlobalContext* globalCtx) {
if (globalCtx->sceneNum != SCENE_DAIYOUSEI_IZUMI) {
switch (this->fountainType) {
case FAIRY_SPELL_FARORES_WIND:
- globalCtx->csCtx.segment = SEGMENTED_TO_VIRTUAL(&D_02000160);
+ globalCtx->csCtx.segment = SEGMENTED_TO_VIRTUAL(gGreatFairyFaroresWindCs);
gSaveContext.cutsceneTrigger = 1;
break;
case FAIRY_SPELL_DINS_FIRE:
- globalCtx->csCtx.segment = SEGMENTED_TO_VIRTUAL(&D_02001020);
+ globalCtx->csCtx.segment = SEGMENTED_TO_VIRTUAL(gGreatFairyDinsFireCs);
gSaveContext.cutsceneTrigger = 1;
break;
case FAIRY_SPELL_NAYRUS_LOVE:
- globalCtx->csCtx.segment = SEGMENTED_TO_VIRTUAL(&D_02001F40);
+ globalCtx->csCtx.segment = SEGMENTED_TO_VIRTUAL(gGreatFairyNayrusLoveCs);
gSaveContext.cutsceneTrigger = 1;
break;
}
} else {
switch (this->fountainType) {
- case FAIRY_UPGRADE_SPIN_ATTACK:
- globalCtx->csCtx.segment = SEGMENTED_TO_VIRTUAL(&D_02000130);
+ case FAIRY_UPGRADE_MAGIC:
+ globalCtx->csCtx.segment = SEGMENTED_TO_VIRTUAL(gGreatFairyMagicCs);
gSaveContext.cutsceneTrigger = 1;
break;
case FAIRY_UPGRADE_DOUBLE_MAGIC:
- globalCtx->csCtx.segment = SEGMENTED_TO_VIRTUAL(&D_020013E0);
+ globalCtx->csCtx.segment = SEGMENTED_TO_VIRTUAL(gGreatFairyDoubleMagicCs);
gSaveContext.cutsceneTrigger = 1;
break;
case FAIRY_UPGRADE_HALF_DAMAGE:
- globalCtx->csCtx.segment = SEGMENTED_TO_VIRTUAL(&D_020025D0);
+ globalCtx->csCtx.segment = SEGMENTED_TO_VIRTUAL(gGreatFairyDoubleDefenceCs);
gSaveContext.cutsceneTrigger = 1;
break;
}
@@ -712,7 +708,7 @@ void BgDyYoseizo_Give_Reward(BgDyYoseizo* this, GlobalContext* globalCtx) {
actionIndex = globalCtx->csCtx.npcActions[0]->action - 10;
switch (actionIndex) {
- case FAIRY_UPGRADE_SPIN_ATTACK:
+ case FAIRY_UPGRADE_MAGIC:
gSaveContext.magicAcquired = true;
gSaveContext.unk_13F6 = 0x30;
Interface_ChangeAlpha(9);
diff --git a/src/overlays/actors/ovl_Bg_Gjyo_Bridge/z_bg_gjyo_bridge.c b/src/overlays/actors/ovl_Bg_Gjyo_Bridge/z_bg_gjyo_bridge.c
index b0ab9c6df4..e7ccd01fdc 100644
--- a/src/overlays/actors/ovl_Bg_Gjyo_Bridge/z_bg_gjyo_bridge.c
+++ b/src/overlays/actors/ovl_Bg_Gjyo_Bridge/z_bg_gjyo_bridge.c
@@ -5,6 +5,7 @@
*/
#include "z_bg_gjyo_bridge.h"
+#include "scenes/dungeons/ganon_tou/ganon_tou_scene.h"
#define FLAGS 0x00000000
@@ -38,7 +39,6 @@ static InitChainEntry sInitChain[] = {
extern Gfx D_06000600[];
extern CollisionHeader D_06000DB8;
-extern CutsceneData D_02002640[];
void BgGjyoBridge_Init(Actor* thisx, GlobalContext* globalCtx) {
BgGjyoBridge* this = THIS;
@@ -79,7 +79,7 @@ void BgGjyoBridge_TriggerCutscene(BgGjyoBridge* this, GlobalContext* globalCtx)
(player->actor.world.pos.x < 300.0f) && (player->actor.world.pos.y > 1340.0f) &&
(player->actor.world.pos.z > 1340.0f) && (player->actor.world.pos.z < 1662.0f) &&
!Gameplay_InCsMode(globalCtx)) {
- globalCtx->csCtx.segment = SEGMENTED_TO_VIRTUAL(&D_02002640);
+ globalCtx->csCtx.segment = SEGMENTED_TO_VIRTUAL(gRainbowBridgeCs);
gSaveContext.cutsceneTrigger = 1;
this->actionFunc = BgGjyoBridge_SpawnBridge;
}
diff --git a/src/overlays/actors/ovl_Boss_Dodongo/z_boss_dodongo.c b/src/overlays/actors/ovl_Boss_Dodongo/z_boss_dodongo.c
index 72616b2a28..02ebf5a8b9 100644
--- a/src/overlays/actors/ovl_Boss_Dodongo/z_boss_dodongo.c
+++ b/src/overlays/actors/ovl_Boss_Dodongo/z_boss_dodongo.c
@@ -1,4 +1,5 @@
#include "z_boss_dodongo.h"
+#include "scenes/dungeons/ddan_boss/ddan_boss_room_1.h"
#define FLAGS 0x00000035
@@ -55,7 +56,6 @@ static InitChainEntry sInitChain[] = {
extern SkeletonHeader D_0601B310;
extern AnimationHeader D_0600F0D8;
-extern u64 D_030021D8[];
extern AnimationHeader D_06008EEC;
extern u64 D_06017410[]; // Title card
extern AnimationHeader D_0601CAE0;
@@ -231,7 +231,7 @@ void BossDodongo_Init(Actor* thisx, GlobalContext* globalCtx) {
Collider_SetJntSph(globalCtx, &this->collider, &this->actor, &sJntSphInit, this->items);
if (Flags_GetClear(globalCtx, globalCtx->roomCtx.curRoom.num)) { // KD is dead
- temp_s1_3 = SEGMENTED_TO_VIRTUAL(&D_030021D8);
+ temp_s1_3 = SEGMENTED_TO_VIRTUAL(gDodongosCavernBossLavaFloorTex);
temp_s2 = SEGMENTED_TO_VIRTUAL(sLavaFloorRockTex);
Actor_Kill(&this->actor);
@@ -1021,7 +1021,7 @@ void BossDodongo_Update(Actor* thisx, GlobalContext* globalCtx2) {
}
}
- func_808C1554(D_030021D8, sLavaFloorLavaTex, this->unk_19E, this->unk_224);
+ func_808C1554(gDodongosCavernBossLavaFloorTex, sLavaFloorLavaTex, this->unk_19E, this->unk_224);
}
if (this->unk_1C6 != 0) {
diff --git a/src/overlays/actors/ovl_Demo_Im/z_demo_im.c b/src/overlays/actors/ovl_Demo_Im/z_demo_im.c
index 8d2454fe85..d3f0d371fc 100644
--- a/src/overlays/actors/ovl_Demo_Im/z_demo_im.c
+++ b/src/overlays/actors/ovl_Demo_Im/z_demo_im.c
@@ -6,6 +6,7 @@
#include "z_demo_im.h"
#include "overlays/actors/ovl_En_Arrow/z_en_arrow.h"
+#include "scenes/indoors/nakaniwa/nakaniwa_scene.h"
#include "vt.h"
#define FLAGS 0x00000011
@@ -101,7 +102,6 @@ const ActorInit Demo_Im_InitVars = {
(ActorFunc)DemoIm_Draw,
};
-extern UNK_PTR D_02002524;
extern AnimationHeader D_06000710;
extern AnimationHeader D_06000AFC;
extern Gfx D_0600EDE8[];
@@ -906,7 +906,7 @@ void func_80986BF8(DemoIm* this, GlobalContext* globalCtx) {
void func_80986C30(DemoIm* this, GlobalContext* globalCtx) {
if (func_80986A5C(this, globalCtx)) {
- globalCtx->csCtx.segment = SEGMENTED_TO_VIRTUAL(&D_02002524);
+ globalCtx->csCtx.segment = SEGMENTED_TO_VIRTUAL(gZeldasCourtyardLullabyCs);
gSaveContext.cutsceneTrigger = 1;
gSaveContext.eventChkInf[5] |= 0x200;
Item_Give(globalCtx, ITEM_SONG_LULLABY);
diff --git a/src/overlays/actors/ovl_En_Bird/z_en_bird.c b/src/overlays/actors/ovl_En_Bird/z_en_bird.c
index 88c48dd12d..e7eac98a79 100644
--- a/src/overlays/actors/ovl_En_Bird/z_en_bird.c
+++ b/src/overlays/actors/ovl_En_Bird/z_en_bird.c
@@ -5,6 +5,7 @@
*/
#include "z_en_bird.h"
+#include "objects/object_bird/object_bird.h"
#define FLAGS 0x00000000
@@ -36,9 +37,6 @@ static InitChainEntry sInitChain[] = {
ICHAIN_F32(targetArrowOffset, 5600, ICHAIN_STOP),
};
-extern AnimationHeader D_0600006C;
-extern SkeletonHeader D_06002190;
-
void EnBird_SetupAction(EnBird* this, EnBirdActionFunc actionFunc) {
this->actionFunc = actionFunc;
}
@@ -48,7 +46,7 @@ void EnBird_Init(Actor* thisx, GlobalContext* globalCtx) {
Actor_ProcessInitChain(&this->actor, sInitChain);
Actor_SetScale(&this->actor, 0.01);
- SkelAnime_Init(globalCtx, &this->skelAnime, &D_06002190, &D_0600006C, NULL, NULL, 0);
+ SkelAnime_Init(globalCtx, &this->skelAnime, &gBirdSkel, &gBirdFlyAnim, NULL, NULL, 0);
ActorShape_Init(&this->actor.shape, 5500, ActorShadow_DrawCircle, 4);
this->unk_194 = 0;
this->unk_198 = 0;
@@ -68,9 +66,9 @@ void EnBird_Destroy(Actor* thisx, GlobalContext* globalCtx) {
}
void func_809C1CAC(EnBird* this, s16 params) {
- f32 frameCount = Animation_GetLastFrame(&D_0600006C);
+ f32 frameCount = Animation_GetLastFrame(&gBirdFlyAnim);
f32 playbackSpeed = this->unk_19C ? 0.0f : 1.0f;
- AnimationHeader* anim = &D_0600006C;
+ AnimationHeader* anim = &gBirdFlyAnim;
this->unk_198 = Rand_S16Offset(5, 0x23);
Animation_Change(&this->skelAnime, anim, playbackSpeed, 0.0f, frameCount, ANIMMODE_LOOP, 0.0f);
diff --git a/src/overlays/actors/ovl_En_Fu/z_en_fu.c b/src/overlays/actors/ovl_En_Fu/z_en_fu.c
index 680281759b..f22886e6b4 100644
--- a/src/overlays/actors/ovl_En_Fu/z_en_fu.c
+++ b/src/overlays/actors/ovl_En_Fu/z_en_fu.c
@@ -5,6 +5,8 @@
*/
#include "z_en_fu.h"
+#include "objects/object_fu/object_fu.h"
+#include "scenes/indoors/hakasitarelay/hakasitarelay_scene.h"
#define FLAGS 0x02000019
@@ -66,21 +68,6 @@ static Vec3f sMtxSrc = {
0.0f,
};
-static UNK_PTR sEyesSegments[] = {
- 0x06005F20,
- 0x06006320,
-};
-
-static UNK_PTR sMouthSegments[] = {
- 0x06006720,
- 0x06006920,
-};
-
-extern AnimationHeader D_0600057C;
-extern AnimationHeader D_06000B04;
-extern FlexSkeletonHeader D_06006C90;
-extern CutsceneData D_0200E080[];
-
typedef enum {
/* 0x00 */ FU_FACE_CALM,
/* 0x01 */ FU_FACE_MAD
@@ -91,8 +78,9 @@ void EnFu_Init(Actor* thisx, GlobalContext* globalCtx) {
EnFu* this = THIS;
ActorShape_Init(&this->actor.shape, 0.0f, ActorShadow_DrawCircle, 36.0f);
- SkelAnime_InitFlex(globalCtx, &this->skelanime, &D_06006C90, &D_06000B04, this->jointTable, this->morphTable, 16);
- Animation_PlayLoop(&this->skelanime, &D_06000B04);
+ SkelAnime_InitFlex(globalCtx, &this->skelanime, &gWindmillManSkel, &gWindmillManPlayStillAnim, this->jointTable,
+ this->morphTable, FU_LIMB_MAX);
+ Animation_PlayLoop(&this->skelanime, &gWindmillManPlayStillAnim);
Collider_InitCylinder(globalCtx, &this->collider);
Collider_SetCylinder(globalCtx, &this->collider, &this->actor, &sCylinderInit);
this->actor.colChkInfo.mass = MASS_IMMOVABLE;
@@ -138,9 +126,9 @@ void func_80A1DA04(EnFu* this, GlobalContext* globalCtx) {
this->behaviorFlags &= ~FU_WAIT;
this->actionFunc = EnFu_WaitChild;
- if (this->skelanime.animation == &D_0600057C) {
- Animation_Change(&this->skelanime, &D_06000B04, 1.0f, 0.0f, Animation_GetLastFrame(&D_06000B04),
- ANIMMODE_ONCE, -4.0f);
+ if (this->skelanime.animation == &gWindmillManPlayAndMoveHeadAnim) {
+ Animation_Change(&this->skelanime, &gWindmillManPlayStillAnim, 1.0f, 0.0f,
+ Animation_GetLastFrame(&gWindmillManPlayStillAnim), ANIMMODE_ONCE, -4.0f);
}
}
}
@@ -158,8 +146,8 @@ void EnFu_WaitChild(EnFu* this, GlobalContext* globalCtx) {
// if func_80A1D94C returns 1, actionFunc is set to func_80A1DA04
if (func_80A1D94C(this, globalCtx, textID, func_80A1DA04)) {
if (textID == 0x5033) {
- Animation_Change(&this->skelanime, &D_0600057C, 1.0f, 0.0f, Animation_GetLastFrame(&D_0600057C),
- ANIMMODE_ONCE, -4.0f);
+ Animation_Change(&this->skelanime, &gWindmillManPlayAndMoveHeadAnim, 1.0f, 0.0f,
+ Animation_GetLastFrame(&gWindmillManPlayAndMoveHeadAnim), ANIMMODE_ONCE, -4.0f);
}
}
}
@@ -190,7 +178,7 @@ void func_80A1DBD4(EnFu* this, GlobalContext* globalCtx) {
func_80078884(NA_SE_SY_CORRECT_CHIME);
this->actionFunc = func_80A1DB60;
this->actor.flags &= ~0x10000;
- globalCtx->csCtx.segment = SEGMENTED_TO_VIRTUAL(&D_0200E080);
+ globalCtx->csCtx.segment = SEGMENTED_TO_VIRTUAL(gSongOfStormsCs);
gSaveContext.cutsceneTrigger = 1;
Item_Give(globalCtx, ITEM_SONG_STORMS);
globalCtx->msgCtx.unk_E3EE = 0;
@@ -239,7 +227,7 @@ void EnFu_WaitAdult(EnFu* this, GlobalContext* globalCtx) {
func_8010B680(globalCtx, this->actor.textId, NULL);
this->actionFunc = EnFu_TeachSong;
this->behaviorFlags |= FU_WAIT;
- } else if (func_8002F194(&this->actor, globalCtx) != 0) {
+ } else if (func_8002F194(&this->actor, globalCtx)) {
this->actionFunc = func_80A1DBA0;
} else if (ABS(yawDiff) < 0x2301) {
if (this->actor.xzDistToPlayer < 100.0f) {
@@ -276,17 +264,17 @@ void EnFu_Update(Actor* thisx, GlobalContext* globalCtx) {
s32 EnFu_OverrideLimbDraw(GlobalContext* globalCtx, s32 limbIndex, Gfx** dList, Vec3f* pos, Vec3s* rot, void* thisx) {
EnFu* this = THIS;
- s32 pad1;
+ s32 pad;
- if (limbIndex == 10) {
+ if (limbIndex == FU_LIMB_UNK) {
return false;
}
switch (limbIndex) {
- case 14:
+ case FU_LIMB_HEAD:
rot->x += this->lookAngleOffset.y;
rot->z += this->lookAngleOffset.x;
break;
- case 8:
+ case FU_LIMB_CHEST_MUSIC_BOX:
break;
}
@@ -294,7 +282,7 @@ s32 EnFu_OverrideLimbDraw(GlobalContext* globalCtx, s32 limbIndex, Gfx** dList,
return false;
}
- if (limbIndex == 8) {
+ if (limbIndex == FU_LIMB_CHEST_MUSIC_BOX) {
rot->y += (Math_SinS((globalCtx->state.frames * (limbIndex * 50 + 0x814))) * 200.0f);
rot->z += (Math_CosS((globalCtx->state.frames * (limbIndex * 50 + 0x940))) * 200.0f);
}
@@ -304,12 +292,14 @@ s32 EnFu_OverrideLimbDraw(GlobalContext* globalCtx, s32 limbIndex, Gfx** dList,
void EnFu_PostLimbDraw(GlobalContext* globalCtx, s32 limbIndex, Gfx** dList, Vec3s* rot, void* thisx) {
EnFu* this = THIS;
- if (limbIndex == 14) {
+ if (limbIndex == FU_LIMB_HEAD) {
Matrix_MultVec3f(&sMtxSrc, &this->actor.focus.pos);
}
}
void EnFu_Draw(Actor* thisx, GlobalContext* globalCtx) {
+ static void* sEyesSegments[] = { gWindmillManEyeClosedTex, gWindmillManEyeAngryTex };
+ static void* sMouthSegments[] = { gWindMillManMouthOpenTex, gWindMillManMouthAngryTex };
s32 pad;
EnFu* this = THIS;
diff --git a/src/overlays/actors/ovl_En_Fu/z_en_fu.h b/src/overlays/actors/ovl_En_Fu/z_en_fu.h
index 2efb871cc3..1c5afb464e 100644
--- a/src/overlays/actors/ovl_En_Fu/z_en_fu.h
+++ b/src/overlays/actors/ovl_En_Fu/z_en_fu.h
@@ -8,12 +8,32 @@ struct EnFu;
typedef void (*EnFuActionFunc)(struct EnFu*, GlobalContext*);
+typedef enum {
+ /* 0x00 */ FU_LIMB_ROOT,
+ /* 0x01 */ FU_LIMB_TORSO,
+ /* 0x02 */ FU_LIMB_LEFT_THIGH,
+ /* 0x03 */ FU_LIMB_LEFT_LEG,
+ /* 0x04 */ FU_LIMB_LEFT_FOOT,
+ /* 0x05 */ FU_LIMB_RIGHT_THIGH,
+ /* 0x06 */ FU_LIMB_RIGHT_LEG,
+ /* 0x07 */ FU_LIMB_RIGHT_FOOT,
+ /* 0x08 */ FU_LIMB_CHEST_MUSIC_BOX,
+ /* 0x09 */ FU_LIMB_LEFT_ARM_MUSIC_BOX,
+ /* 0x0A */ FU_LIMB_UNK,
+ /* 0x0B */ FU_LIMB_RIGHT_SHOULDER,
+ /* 0x0C */ FU_LIMB_RIGHT_ARM,
+ /* 0x0D */ FU_LIMB_RIGHT_HAND_AND_CRANK,
+ /* 0x0E */ FU_LIMB_HEAD,
+ /* 0x0F */ FU_LIMB_HORN,
+ /* 0x10 */ FU_LIMB_MAX
+} EnFuLimb;
+
typedef struct EnFu {
/* 0x0000 */ Actor actor;
/* 0x014C */ ColliderCylinder collider;
/* 0x0198 */ SkelAnime skelanime;
- /* 0x01DC */ Vec3s jointTable[16];
- /* 0x023C */ Vec3s morphTable[16];
+ /* 0x01DC */ Vec3s jointTable[FU_LIMB_MAX];
+ /* 0x023C */ Vec3s morphTable[FU_LIMB_MAX];
/* 0x029C */ Vec3s lookAngleOffset; // offset applied to neck rotation to look at link when he is close
/* 0x02A2 */ Vec3s unk_2A2;
/* 0x02A8 */ u16 behaviorFlags;
diff --git a/src/overlays/actors/ovl_En_Ik/z_en_ik.c b/src/overlays/actors/ovl_En_Ik/z_en_ik.c
index b5a985e6b0..8524582857 100644
--- a/src/overlays/actors/ovl_En_Ik/z_en_ik.c
+++ b/src/overlays/actors/ovl_En_Ik/z_en_ik.c
@@ -5,7 +5,7 @@
*/
#include "z_en_ik.h"
-
+#include "scenes/dungeons/jyasinboss/jyasinboss_scene.h"
#include "vt.h"
#define FLAGS 0x00000010
@@ -53,7 +53,6 @@ void func_80A77EDC(EnIk* this, GlobalContext* globalCtx);
void func_80A78160(EnIk* this, GlobalContext* globalCtx);
void func_80A781CC(Actor* thisx, GlobalContext* globalCtx);
-extern UNK_TYPE D_02003F80;
extern AnimationHeader D_06001C28;
extern AnimationHeader D_06002538;
extern AnimationHeader D_060029FC;
@@ -1451,7 +1450,7 @@ void func_80A781CC(Actor* thisx, GlobalContext* globalCtx) {
if (!Gameplay_InCsMode(globalCtx)) {
this->actor.update = EnIk_Update;
this->actor.draw = EnIk_Draw;
- Cutscene_SetSegment(globalCtx, &D_02003F80);
+ Cutscene_SetSegment(globalCtx, gNabooruKnuckleDefeatCs);
gSaveContext.cutsceneTrigger = 1;
Actor_SetScale(&this->actor, 0.01f);
gSaveContext.eventChkInf[3] |= 0x1000;
diff --git a/src/overlays/actors/ovl_En_Okarina_Tag/z_en_okarina_tag.c b/src/overlays/actors/ovl_En_Okarina_Tag/z_en_okarina_tag.c
index 1ed1e2f588..b5f17beb62 100644
--- a/src/overlays/actors/ovl_En_Okarina_Tag/z_en_okarina_tag.c
+++ b/src/overlays/actors/ovl_En_Okarina_Tag/z_en_okarina_tag.c
@@ -5,6 +5,7 @@
*/
#include "z_en_okarina_tag.h"
+#include "scenes/misc/hakaana_ouke/hakaana_ouke_scene.h"
#include "vt.h"
#define FLAGS 0x02000010
@@ -36,7 +37,6 @@ const ActorInit En_Okarina_Tag_InitVars = {
extern CutsceneData D_02003C80[];
extern CutsceneData D_02005020[];
-extern CutsceneData D_020024A0[];
extern CutsceneData D_80ABF9D0[];
extern CutsceneData D_80ABFB40[];
@@ -308,7 +308,7 @@ void func_80ABF7CC(EnOkarinaTag* this, GlobalContext* globalCtx) {
if ((func_8010BDBC(&globalCtx->msgCtx) == 5) && (func_80106BC8(globalCtx) != 0)) {
func_80106CCC(globalCtx);
if (!CHECK_QUEST_ITEM(QUEST_SONG_SUN)) {
- globalCtx->csCtx.segment = SEGMENTED_TO_VIRTUAL(&D_020024A0);
+ globalCtx->csCtx.segment = SEGMENTED_TO_VIRTUAL(&gSunSongTeachCs);
gSaveContext.cutsceneTrigger = 1;
}
this->actionFunc = func_80ABF708;
diff --git a/src/overlays/actors/ovl_En_Owl/z_en_owl.c b/src/overlays/actors/ovl_En_Owl/z_en_owl.c
index ac6b68e366..54251205f8 100644
--- a/src/overlays/actors/ovl_En_Owl/z_en_owl.c
+++ b/src/overlays/actors/ovl_En_Owl/z_en_owl.c
@@ -5,6 +5,8 @@
*/
#include "z_en_owl.h"
+#include "scenes/overworld/spot06/spot06_scene.h"
+#include "scenes/overworld/spot16/spot16_scene.h"
#include "vt.h"
#define FLAGS 0x00000019
@@ -12,8 +14,6 @@
#define THIS ((EnOwl*)thisx)
extern AnimationHeader D_0600C1C4;
-extern CsCmdActorAction D_0201E6A0;
-extern CsCmdActorAction D_0201B0C0;
extern AnimationHeader D_06001168;
extern FlexSkeletonHeader D_0600C0E8;
extern FlexSkeletonHeader D_060100B0;
@@ -945,12 +945,12 @@ void func_80ACC00C(EnOwl* this, GlobalContext* globalCtx) {
osSyncPrintf(VT_FGCOL(CYAN));
osSyncPrintf("SPOT 06 の デモがはしった\n"); // Demo of SPOT 06
osSyncPrintf(VT_RST);
- globalCtx->csCtx.segment = SEGMENTED_TO_VIRTUAL(&D_0201B0C0);
+ globalCtx->csCtx.segment = SEGMENTED_TO_VIRTUAL(gLakeHyliaOwlCs);
this->actor.draw = NULL;
break;
case 8:
case 9:
- globalCtx->csCtx.segment = SEGMENTED_TO_VIRTUAL(&D_0201E6A0);
+ globalCtx->csCtx.segment = SEGMENTED_TO_VIRTUAL(gDmtOwlCs);
this->actor.draw = NULL;
break;
default:
diff --git a/src/overlays/actors/ovl_Shot_Sun/z_shot_sun.c b/src/overlays/actors/ovl_Shot_Sun/z_shot_sun.c
index 929ca3cb77..2c6ea38255 100644
--- a/src/overlays/actors/ovl_Shot_Sun/z_shot_sun.c
+++ b/src/overlays/actors/ovl_Shot_Sun/z_shot_sun.c
@@ -6,6 +6,7 @@
#include "z_shot_sun.h"
#include "overlays/actors/ovl_En_Elf/z_en_elf.h"
+#include "scenes/overworld/spot06/spot06_scene.h"
#include "vt.h"
#define FLAGS 0x00000009
@@ -21,8 +22,6 @@ void ShotSun_TriggerFairy(ShotSun* this, GlobalContext* globalCtx);
void func_80BADF0C(ShotSun* this, GlobalContext* globalCtx);
void ShotSun_UpdateHyliaSun(ShotSun* this, GlobalContext* globalCtx);
-extern CutsceneData D_02007020[];
-
const ActorInit Shot_Sun_InitVars = {
ACTOR_SHOT_SUN,
ACTORCAT_PROP,
@@ -166,7 +165,7 @@ void ShotSun_UpdateHyliaSun(ShotSun* this, GlobalContext* globalCtx) {
osSyncPrintf(VT_FGCOL(CYAN) "SHOT_SUN HIT!!!!!!!\n" VT_RST);
if (INV_CONTENT(ITEM_ARROW_FIRE) == ITEM_NONE) {
Actor_Spawn(&globalCtx->actorCtx, globalCtx, ACTOR_ITEM_ETCETERA, 700.0f, -800.0f, 7261.0f, 0, 0, 0, 7);
- globalCtx->csCtx.segment = SEGMENTED_TO_VIRTUAL(D_02007020);
+ globalCtx->csCtx.segment = SEGMENTED_TO_VIRTUAL(gFireArrowsCS);
if (1) {}
gSaveContext.cutsceneTrigger = 1;
} else {
diff --git a/undefined_syms.txt b/undefined_syms.txt
index c16c1a32cf..1a286e155c 100644
--- a/undefined_syms.txt
+++ b/undefined_syms.txt
@@ -305,10 +305,6 @@ D_06000170 = 0x06000170;
D_060005C0 = 0x60005C0;
D_06006260 = 0x6006260;
-// z_en_bird
-D_0600006C = 0x0600006C;
-D_06002190 = 0x06002190;
-
// z_en_blkobj
D_060014E0 = 0x060014E0;
D_060053D0 = 0x060053D0;
@@ -346,7 +342,6 @@ D_06001DA8 = 0x06001DA8;
// z_bg_gjyo_bridge
D_06000600 = 0x06000600;
D_06000DB8 = 0x06000DB8;
-D_02002640 = 0x02002640;
// z_bg_spot15_saku
D_060003C0 = 0x060003C0;
@@ -376,9 +371,6 @@ D_01002720 = 0x01002720;
D_01001800 = 0x01001800;
D_01000000 = 0x01000000;
-// z_shot_sun
-D_02007020 = 0x02007020;
-
// z_demo_geff
D_06000EA0 = 0x06000EA0;
@@ -401,7 +393,6 @@ D_060041A0 = 0x060041A0;
D_06009B08 = 0x06009B80;
// z_demo_im
-D_02002524 = 0x02002524;
D_06000710 = 0x06000710;
D_06000AFC = 0x06000AFC;
D_0600EDE8 = 0x0600EDE8;
@@ -537,12 +528,6 @@ D_06001DDC = 0x06001DDC;
D_60013500 = 0x06001350;
// z_bg_dy_yoseizo
-D_02000160 = 0x02000160;
-D_02001020 = 0x02001020;
-D_02001F40 = 0x02001F40;
-D_02000130 = 0x02000130;
-D_020013E0 = 0x020013E0;
-D_020025D0 = 0x020025D0;
D_06008698 = 0x06008698;
D_0601C450 = 0x0601C450;
D_060031C0 = 0x060031C0;
@@ -628,8 +613,6 @@ D_0600039C = 0x0600039C;
// z_en_owl
D_0600C1C4 = 0x0600C1C4;
-D_0201E6A0 = 0x0201E6A0;
-D_0201B0C0 = 0x0201B0C0;
D_06001168 = 0x06001168;
D_06003F18 = 0x06003F18;
D_060100B0 = 0x060100B0;
@@ -662,26 +645,14 @@ D_060013C0 = 0x060013C0;
D_06001A30 = 0x06001A30;
D_060018A0 = 0x060018A0;
-// z_en_heishi2
-D_0602B060 = 0x0602B060;
-D_06002C10 = 0x06002C10;
-
// z_bg_ddan_kd
D_06004F30 = 0x06004F30;
D_060048A8 = 0x060048A8;
-
-
// z_en_floormas
D_06002158 = 0x06002158;
D_060039B0 = 0x060039B0;
-// z_en_fu
-D_0600057C = 0x0600057C;
-D_06000B04 = 0x06000B04;
-D_06006C90 = 0x06006C90;
-D_0200E080 = 0x0200E080;
-
// z_en_bx
D_060022F0 = 0x060022F0;
@@ -882,10 +853,6 @@ D_0600CB1C = 0x0600CB1C;
D_0600DDB8 = 0x0600DDB8;
D_0600E8A0 = 0x0600E8A0;
-// z_obj_kibako
-D_05005290 = 0x05005290;
-D_05005380 = 0x05005380;
-
// z_en_geldb
D_0600ADF8 = 0x0600ADF8;
D_0600B6D4 = 0x0600B6D4;
@@ -906,7 +873,6 @@ D_060009D0 = 0x060009D0;
D_06000A60 = 0x06000A60;
// z_en_ik
-D_02003F80 = 0x02003F80;
D_06001C28 = 0x06001C28;
D_06002538 = 0x06002538;
D_060029FC = 0x060029FC;
@@ -941,7 +907,6 @@ D_060032D8 = 0x060032D8;
// z_en_okarina_Tag
D_02003C80 = 0x02003C80;
D_02005020 = 0x02005020;
-D_020024A0 = 0x020024A0;
// z_en_okuta
D_06000344 = 0x06000344;
@@ -1160,16 +1125,7 @@ D_06002428 = 0x06002428;
D_060023D0 = 0x060023D0;
D_06002594 = 0x06002594;
-// z_bg_breakwall
-D_02014F80 = 0x02014F80;
-
// z_bg_dy_yoseizo
-D_02000130 = 0x02000130;
-D_02000160 = 0x02000160;
-D_02001020 = 0x02001020;
-D_020013E0 = 0x020013E0;
-D_02001F40 = 0x02001F40;
-D_020025D0 = 0x020025D0;
D_0600092C = 0x0600092C;
D_06001DF0 = 0x06001DF0;
D_060031C0 = 0x060031C0;
@@ -1287,7 +1243,6 @@ D_06007EE0 = 0x06007EE0;
D_06008190 = 0x06008190;
// z_boss_dodongo
-D_030021D8 = 0x030021D8;
D_06001074 = 0x06001074;
D_06002D0C = 0x06002D0C;
D_06003CF8 = 0x06003CF8;
@@ -1863,8 +1818,6 @@ D_0600DE80 = 0x0600DE80;
D_0600FEF0 = 0x0600FEF0;
// z_en_owl
-D_0201B0C0 = 0x0201B0C0;
-D_0201E6A0 = 0x0201E6A0;
D_06001168 = 0x06001168;
D_060015CC = 0x060015CC;
D_0600C0E8 = 0x0600C0E8;