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;