diff --git a/assets/xml/objects/object_efc_crystal_light.xml b/assets/xml/objects/object_efc_crystal_light.xml new file mode 100644 index 0000000000..9215b6a394 --- /dev/null +++ b/assets/xml/objects/object_efc_crystal_light.xml @@ -0,0 +1,6 @@ + + + + + + diff --git a/assets/xml/objects/object_efc_fire_ball.xml b/assets/xml/objects/object_efc_fire_ball.xml new file mode 100644 index 0000000000..2fc65b16ff --- /dev/null +++ b/assets/xml/objects/object_efc_fire_ball.xml @@ -0,0 +1,7 @@ + + + + + + + diff --git a/assets/xml/objects/object_efc_lgt_shower.xml b/assets/xml/objects/object_efc_lgt_shower.xml new file mode 100644 index 0000000000..67ef5ce7e0 --- /dev/null +++ b/assets/xml/objects/object_efc_lgt_shower.xml @@ -0,0 +1,6 @@ + + + + + + diff --git a/assets/xml/objects/object_efc_tw.xml b/assets/xml/objects/object_efc_tw.xml new file mode 100644 index 0000000000..de53765696 --- /dev/null +++ b/assets/xml/objects/object_efc_tw.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/assets/xml/objects/object_gi_jewel.xml b/assets/xml/objects/object_gi_jewel.xml index cd9ddf1466..e83c651164 100644 --- a/assets/xml/objects/object_gi_jewel.xml +++ b/assets/xml/objects/object_gi_jewel.xml @@ -1,10 +1,15 @@ - - - - - - + + + + + + + + + + + diff --git a/assets/xml/objects/object_god_lgt.xml b/assets/xml/objects/object_god_lgt.xml new file mode 100644 index 0000000000..60df9e4693 --- /dev/null +++ b/assets/xml/objects/object_god_lgt.xml @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/assets/xml/objects/object_light_ring.xml b/assets/xml/objects/object_light_ring.xml new file mode 100644 index 0000000000..babe7d2aa7 --- /dev/null +++ b/assets/xml/objects/object_light_ring.xml @@ -0,0 +1,6 @@ + + + + + + diff --git a/assets/xml/objects/object_triforce_spot.xml b/assets/xml/objects/object_triforce_spot.xml new file mode 100644 index 0000000000..a9d52dd963 --- /dev/null +++ b/assets/xml/objects/object_triforce_spot.xml @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/spec b/spec index f208bb7184..0f58304f21 100644 --- a/spec +++ b/spec @@ -4241,13 +4241,15 @@ endseg beginseg name "object_efc_crystal_light" romalign 0x1000 - include "build/baserom/object_efc_crystal_light.o" + include "build/assets/objects/object_efc_crystal_light/object_efc_crystal_light.o" + number 6 endseg beginseg name "object_efc_fire_ball" romalign 0x1000 - include "build/baserom/object_efc_fire_ball.o" + include "build/assets/objects/object_efc_fire_ball/object_efc_fire_ball.o" + number 6 endseg beginseg @@ -4259,7 +4261,8 @@ endseg beginseg name "object_efc_lgt_shower" romalign 0x1000 - include "build/baserom/object_efc_lgt_shower.o" + include "build/assets/objects/object_efc_lgt_shower/object_efc_lgt_shower.o" + number 6 endseg beginseg @@ -4271,19 +4274,22 @@ endseg beginseg name "object_god_lgt" romalign 0x1000 - include "build/baserom/object_god_lgt.o" + include "build/assets/objects/object_god_lgt/object_god_lgt.o" + number 6 endseg beginseg name "object_light_ring" romalign 0x1000 - include "build/baserom/object_light_ring.o" + include "build/assets/objects/object_light_ring/object_light_ring.o" + number 6 endseg beginseg name "object_triforce_spot" romalign 0x1000 - include "build/baserom/object_triforce_spot.o" + include "build/assets/objects/object_triforce_spot/object_triforce_spot.o" + number 6 endseg beginseg @@ -4398,7 +4404,8 @@ endseg beginseg name "object_efc_tw" romalign 0x1000 - include "build/baserom/object_efc_tw.o" + include "build/assets/objects/object_efc_tw/object_efc_tw.o" + number 6 endseg beginseg diff --git a/src/overlays/actors/ovl_Demo_Effect/z_demo_effect.c b/src/overlays/actors/ovl_Demo_Effect/z_demo_effect.c index 825d4ab52d..a6a6fe869d 100644 --- a/src/overlays/actors/ovl_Demo_Effect/z_demo_effect.c +++ b/src/overlays/actors/ovl_Demo_Effect/z_demo_effect.c @@ -1,6 +1,14 @@ #include "z_demo_effect.h" #include "vt.h" #include "objects/gameplay_keep/gameplay_keep.h" +#include "objects/object_efc_crystal_light/object_efc_crystal_light.h" +#include "objects/object_efc_fire_ball/object_efc_fire_ball.h" +#include "objects/object_efc_lgt_shower/object_efc_lgt_shower.h" +#include "objects/object_god_lgt/object_god_lgt.h" +#include "objects/object_light_ring/object_light_ring.h" +#include "objects/object_triforce_spot/object_triforce_spot.h" +#include "objects/object_efc_tw/object_efc_tw.h" +#include "objects/object_gi_jewel/object_gi_jewel.h" #define FLAGS 0x00000030 @@ -56,26 +64,6 @@ void DemoEffect_InitPositionFromCsAction(DemoEffect* this, GlobalContext* global void DemoEffect_MoveToCsEndpoint(DemoEffect* this, GlobalContext* globalCtx, s32 csActionId, s32 shouldUpdateFacing); void DemoEffect_MoveGetItem(DemoEffect* this, GlobalContext* globalCtx, s32 csActionId, f32 speed); -extern Gfx D_06001240[]; // kokiriJewel -extern Gfx D_060010E0[]; // kokiriJewelHolder -extern Gfx D_060020A0[]; // goronJewel -extern Gfx D_06001FB0[]; // goronJewelHolder -extern Gfx D_06003530[]; // zoraJewel -extern Gfx D_06003370[]; // zoraJewelHolder -extern Gfx D_06000040[]; // fireBall -extern Gfx D_06000190[]; // lightRing -extern Gfx D_06000330[]; // godLgtTrail -extern Gfx D_06003C50[]; // godLgt -extern Gfx D_06000600[]; // triforceSpot -extern Gfx D_06000840[]; // triforceLightColumn -extern Gfx D_06000980[]; // crystalLight -extern Gfx D_060011D0[]; // lgtShower -extern Vtx D_06000000[]; // triforceLightColumnVertices -extern Vtx D_06000060[]; // timewarpVertices - -extern TransformUpdateIndex D_06000050; // timewarpTransformUpdateIndex -extern SkelCurveLimbList D_060012E8; // timewarpLimbList - const ActorInit Demo_Effect_InitVars = { ACTOR_DEMO_EFFECT, ACTORCAT_BG, @@ -482,24 +470,24 @@ void DemoEffect_Init(Actor* thisx, GlobalContext* globalCtx) { break; case DEMO_EFFECT_JEWEL_KOKIRI: - this->jewelDisplayList = D_06001240; - this->jewelHolderDisplayList = D_060010E0; + this->jewelDisplayList = gGiKokiriEmeraldGemDL; + this->jewelHolderDisplayList = gGiKokiriEmeraldSettingDL; this->jewel.type = DEMO_EFFECT_JEWEL_KOKIRI; this->jewel.isPositionInit = 0; DemoEffect_InitJewel(globalCtx, this); break; case DEMO_EFFECT_JEWEL_GORON: - this->jewelDisplayList = D_060020A0; - this->jewelHolderDisplayList = D_06001FB0; + this->jewelDisplayList = gGiGoronRubyGemDL; + this->jewelHolderDisplayList = gGiGoronRubySettingDL; this->jewel.type = DEMO_EFFECT_JEWEL_GORON; this->jewel.isPositionInit = 0; DemoEffect_InitJewel(globalCtx, this); break; case DEMO_EFFECT_JEWEL_ZORA: - this->jewelDisplayList = D_06003530; - this->jewelHolderDisplayList = D_06003370; + this->jewelDisplayList = gGiZoraSapphireGemDL; + this->jewelHolderDisplayList = gGiZoraSapphireSettingDL; this->jewel.type = DEMO_EFFECT_JEWEL_ZORA; this->jewel.isPositionInit = 0; DemoEffect_InitJewel(globalCtx, this); @@ -694,12 +682,12 @@ void DemoEffect_UpdateGetItem(DemoEffect* this, GlobalContext* globalCtx) { void DemoEffect_InitTimeWarp(DemoEffect* this, GlobalContext* globalCtx) { s32 effectType = (this->actor.params & 0x00FF); - if (!SkelCurve_Init(globalCtx, &this->skelCurve, &D_060012E8, &D_06000050)) { + if (!SkelCurve_Init(globalCtx, &this->skelCurve, &gTimeWarpSkel, &gTimeWarpAnim)) { __assert("0", "../z_demo_effect.c", 1283); } if (effectType == DEMO_EFFECT_TIMEWARP_TIMEBLOCK_LARGE || effectType == DEMO_EFFECT_TIMEWARP_TIMEBLOCK_SMALL) { - SkelCurve_SetAnim(&this->skelCurve, &D_06000050, 1.0f, 59.0f, 1.0f, 1.7f); + SkelCurve_SetAnim(&this->skelCurve, &gTimeWarpAnim, 1.0f, 59.0f, 1.0f, 1.7f); SkelCurve_Update(globalCtx, &this->skelCurve); this->updateFunc = DemoEffect_InitTimeWarpTimeblock; @@ -710,12 +698,12 @@ void DemoEffect_InitTimeWarp(DemoEffect* this, GlobalContext* globalCtx) { } } else if (gSaveContext.sceneSetupIndex == 5 || gSaveContext.sceneSetupIndex == 4 || (gSaveContext.entranceIndex == 0x0324 && !((gSaveContext.eventChkInf[12] & 0x200)))) { - SkelCurve_SetAnim(&this->skelCurve, &D_06000050, 1.0f, 59.0f, 59.0f, 0.0f); + SkelCurve_SetAnim(&this->skelCurve, &gTimeWarpAnim, 1.0f, 59.0f, 59.0f, 0.0f); SkelCurve_Update(globalCtx, &this->skelCurve); this->updateFunc = DemoEffect_UpdateTimeWarpReturnFromChamberOfSages; osSyncPrintf(VT_FGCOL(CYAN) " 縮むバージョン \n" VT_RST); } else { - SkelCurve_SetAnim(&this->skelCurve, &D_06000050, 1.0f, 59.0f, 1.0f, 1.0f); + SkelCurve_SetAnim(&this->skelCurve, &gTimeWarpAnim, 1.0f, 59.0f, 1.0f, 1.0f); SkelCurve_Update(globalCtx, &this->skelCurve); this->updateFunc = DemoEffect_UpdateTimeWarpPullMasterSword; osSyncPrintf(VT_FGCOL(CYAN) " 通常 バージョン \n" VT_RST); @@ -734,7 +722,7 @@ void DemoEffect_UpdateTimeWarpPullMasterSword(DemoEffect* this, GlobalContext* g } if (SkelCurve_Update(globalCtx, &this->skelCurve)) { - SkelCurve_SetAnim(&this->skelCurve, &D_06000050, 1.0f, 60.0f, 59.0f, 0.0f); + SkelCurve_SetAnim(&this->skelCurve, &gTimeWarpAnim, 1.0f, 60.0f, 59.0f, 0.0f); } } } @@ -749,7 +737,7 @@ void DemoEffect_TimewarpShrink(f32 size) { u8 sizes[3]; // This function uses the data in obj_efc_tw offset 0x0060 to 0x01B0 - vertices = SEGMENTED_TO_VIRTUAL(D_06000060); + vertices = SEGMENTED_TO_VIRTUAL(gTimeWarpVtx); sizes[0] = 0; sizes[1] = (s32)(202.0f * size); @@ -827,7 +815,7 @@ void DemoEffect_InitTimeWarpTimeblock(DemoEffect* this, GlobalContext* globalCtx func_8002F948(&this->actor, NA_SE_EV_TIMETRIP_LIGHT - SFX_FLAG); if (SkelCurve_Update(globalCtx, &this->skelCurve)) { - SkelCurve_SetAnim(&this->skelCurve, &D_06000050, 1.0f, 60.0f, 59.0f, 0.0f); + SkelCurve_SetAnim(&this->skelCurve, &gTimeWarpAnim, 1.0f, 60.0f, 59.0f, 0.0f); this->updateFunc = DemoEffect_UpdateTimeWarpTimeblock; this->timeWarp.shrinkTimer = 0; } @@ -1763,7 +1751,7 @@ void DemoEffect_DrawCrystalLight(Actor* thisx, GlobalContext* globalCtx) { Matrix_Translate(0.0f, 150.0f, 0.0f, MTXMODE_APPLY); gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(globalCtx->state.gfxCtx, "../z_demo_effect.c", 2661), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); - gSPDisplayList(POLY_XLU_DISP++, D_06000980); + gSPDisplayList(POLY_XLU_DISP++, gCrystalLightDL); Matrix_Pop(); Matrix_Push(); Matrix_RotateY((2.0f * M_PI) / 3.0f, MTXMODE_APPLY); @@ -1771,7 +1759,7 @@ void DemoEffect_DrawCrystalLight(Actor* thisx, GlobalContext* globalCtx) { Matrix_Translate(0.0f, 150.0f, 0.0f, MTXMODE_APPLY); gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(globalCtx->state.gfxCtx, "../z_demo_effect.c", 2672), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); - gSPDisplayList(POLY_XLU_DISP++, D_06000980); + gSPDisplayList(POLY_XLU_DISP++, gCrystalLightDL); Matrix_Pop(); Matrix_Push(); Matrix_RotateY((4.0f * M_PI) / 3.0f, MTXMODE_APPLY); @@ -1779,7 +1767,7 @@ void DemoEffect_DrawCrystalLight(Actor* thisx, GlobalContext* globalCtx) { Matrix_Translate(0.0f, 150.0f, 0.0f, MTXMODE_APPLY); gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(globalCtx->state.gfxCtx, "../z_demo_effect.c", 2683), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); - gSPDisplayList(POLY_XLU_DISP++, D_06000980); + gSPDisplayList(POLY_XLU_DISP++, gCrystalLightDL); Matrix_Pop(); CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_demo_effect.c", 2688); } @@ -1801,7 +1789,7 @@ void DemoEffect_DrawFireBall(Actor* thisx, GlobalContext* globalCtx) { gSPSegment( POLY_XLU_DISP++, 8, Gfx_TwoTexScroll(globalCtx->state.gfxCtx, 0, 0, 0, 32, 32, 1, 0, 128 - ((frames * 20) % 128) - 1, 32, 32)); - gSPDisplayList(POLY_XLU_DISP++, D_06000040); + gSPDisplayList(POLY_XLU_DISP++, gCreationFireBallDL); CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_demo_effect.c", 2723); } @@ -1842,7 +1830,7 @@ void DemoEffect_DrawGodLgt(Actor* thisx, GlobalContext* globalCtx) { Matrix_Push(); gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(globalCtx->state.gfxCtx, "../z_demo_effect.c", 2801), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); - gSPDisplayList(POLY_XLU_DISP++, D_06000330); + gSPDisplayList(POLY_XLU_DISP++, gGoldenGoddessAuraDL); func_80093D18(globalCtx->state.gfxCtx); func_8002EBCC(&this->actor, globalCtx, 0); Matrix_Pop(); @@ -1859,7 +1847,7 @@ void DemoEffect_DrawGodLgt(Actor* thisx, GlobalContext* globalCtx) { Matrix_Scale(0.03f, 0.03f, 0.03f, MTXMODE_APPLY); gSPMatrix(POLY_OPA_DISP++, Matrix_NewMtx(globalCtx->state.gfxCtx, "../z_demo_effect.c", 2824), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); - gSPDisplayList(POLY_OPA_DISP++, D_06003C50); + gSPDisplayList(POLY_OPA_DISP++, gGoldenGoddessBodyDL); } CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_demo_effect.c", 2829); @@ -1944,7 +1932,7 @@ void DemoEffect_DrawLgtShower(Actor* thisx, GlobalContext* globalCtx) { gSPSegment(POLY_XLU_DISP++, 8, Gfx_TwoTexScroll(globalCtx->state.gfxCtx, 0, (frames * 5) % 1024, 0, 256, 64, 1, (frames * 10) % 128, 512 - ((frames * 50) % 512), 32, 16)); - gSPDisplayList(POLY_XLU_DISP++, D_060011D0); + gSPDisplayList(POLY_XLU_DISP++, gEnliveningLightDL); CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_demo_effect.c", 2942); } @@ -1966,7 +1954,7 @@ void DemoEffect_DrawLightRing(Actor* thisx, GlobalContext* globalCtx) { gSPSegment(POLY_XLU_DISP++, 8, Gfx_TwoTexScroll(globalCtx2->state.gfxCtx, 0, (frames * 5) % 64, 512 - ((frames * 2) % 512) - 1, 16, 128, 1, 0, 0, 8, 1024)); - gSPDisplayList(POLY_XLU_DISP++, D_06000190); + gSPDisplayList(POLY_XLU_DISP++, gGoldenGoddessLightRingDL); CLOSE_DISPS(globalCtx2->state.gfxCtx, "../z_demo_effect.c", 2978); } @@ -1977,7 +1965,7 @@ void DemoEffect_DrawLightRing(Actor* thisx, GlobalContext* globalCtx) { void DemoEffect_DrawTriforceSpot(Actor* thisx, GlobalContext* globalCtx) { DemoEffect* this = THIS; s32 pad; - Vtx* vertices = SEGMENTED_TO_VIRTUAL(D_06000000); + Vtx* vertices = SEGMENTED_TO_VIRTUAL(gTriforceVtx); u32 frames = globalCtx->gameplayFrames; OPEN_DISPS(globalCtx->state.gfxCtx, "../z_demo_effect.c", 2994); @@ -1997,7 +1985,7 @@ void DemoEffect_DrawTriforceSpot(Actor* thisx, GlobalContext* globalCtx) { vertices[93].n.a = vertices[94].n.a = vertices[95].n.a = (s8)this->triforceSpot.lightColumnOpacity; gDPSetPrimColor(POLY_XLU_DISP++, 128, 128, 180, 255, 255, this->triforceSpot.lightColumnOpacity); gDPSetEnvColor(POLY_XLU_DISP++, 0, 255, 150, 255); - gSPDisplayList(POLY_XLU_DISP++, D_06000840); + gSPDisplayList(POLY_XLU_DISP++, gTriforceLightColumnDL); Matrix_Pop(); } @@ -2017,7 +2005,7 @@ void DemoEffect_DrawTriforceSpot(Actor* thisx, GlobalContext* globalCtx) { Gfx_TwoTexScroll(globalCtx->state.gfxCtx, 0, 0, 0, 32, 16, 1, 0, 0, 16, 8)); gDPSetPrimColor(POLY_XLU_DISP++, 128, 128, 255, 255, 160, this->triforceSpot.triforceSpotOpacity); gDPSetEnvColor(POLY_XLU_DISP++, 170, 140, 0, 255); - gSPDisplayList(POLY_XLU_DISP++, D_06000600); + gSPDisplayList(POLY_XLU_DISP++, gTriforceDL); } else { func_8002EBCC(&this->actor, globalCtx, 0); func_80093D18(globalCtx->state.gfxCtx); @@ -2029,7 +2017,7 @@ void DemoEffect_DrawTriforceSpot(Actor* thisx, GlobalContext* globalCtx) { Gfx_TwoTexScroll(globalCtx->state.gfxCtx, 0, 0, 0, 32, 16, 1, 0, 0, 16, 8)); gDPSetPrimColor(POLY_OPA_DISP++, 128, 128, 255, 255, 160, 255); gDPSetEnvColor(POLY_OPA_DISP++, 170, 140, 0, 255); - gSPDisplayList(POLY_OPA_DISP++, D_06000600); + gSPDisplayList(POLY_OPA_DISP++, gTriforceDL); } } } diff --git a/undefined_syms.txt b/undefined_syms.txt index db709606d0..063428142f 100644 --- a/undefined_syms.txt +++ b/undefined_syms.txt @@ -1238,26 +1238,6 @@ D_0600045C = 0x0600045C; D_06005EA0 = 0x06005EA0; D_0600018C = 0x0600018C; -// z_demo_effect -D_06001240 = 0x06001240; -D_060010E0 = 0x060010E0; -D_060020A0 = 0x060020A0; -D_06001FB0 = 0x06001FB0; -D_06003530 = 0x06003530; -D_06003370 = 0x06003370; -D_06000040 = 0x06000040; -D_06000190 = 0x06000190; -D_06000330 = 0x06000330; -D_06003C50 = 0x06003C50; -D_06000600 = 0x06000600; -D_06000840 = 0x06000840; -D_06000980 = 0x06000980; -D_060011D0 = 0x060011D0; -D_06000000 = 0x06000000; -D_06000060 = 0x06000060; -D_06000050 = 0x06000050; -D_060012E8 = 0x060012E8; - // z_bg_gnd_darkmeiro D_0600C080 = 0x0600C080; D_060088B0 = 0x060088B0;