From fed1b37da1dcab04124f27d32bec98275f7fe3f2 Mon Sep 17 00:00:00 2001 From: Zelllll <56516451+Zelllll@users.noreply.github.com> Date: Thu, 29 Apr 2021 19:46:01 -0500 Subject: [PATCH] ovl_Bg_Keikoku_Spr OK (#111) * finish actor * fix linker --- linker_scripts/code_script.txt | 4 +- linker_scripts/object_script.txt | 8 +++ .../ovl_Bg_Keikoku_Spr/z_bg_keikoku_spr.c | 50 ++++++++++++++++--- 3 files changed, 53 insertions(+), 9 deletions(-) diff --git a/linker_scripts/code_script.txt b/linker_scripts/code_script.txt index 2bbd8cf9f7..7e9a08e646 100644 --- a/linker_scripts/code_script.txt +++ b/linker_scripts/code_script.txt @@ -1434,9 +1434,9 @@ SECTIONS ovl_Bg_Keikoku_Spr : AT(RomLocation) { build/src/overlays/actors/ovl_Bg_Keikoku_Spr/z_bg_keikoku_spr.o(.text) - build/asm/overlays/ovl_Bg_Keikoku_Spr_data.o(.data) + build/src/overlays/actors/ovl_Bg_Keikoku_Spr/z_bg_keikoku_spr.o(.data) build/src/overlays/actors/ovl_Bg_Keikoku_Spr/z_bg_keikoku_spr.o(.rodata) - build/asm/overlays/ovl_Bg_Keikoku_Spr_rodata.o(.rodata) + build/src/overlays/actors/ovl_Bg_Keikoku_Spr/z_bg_keikoku_spr_overlay.o(.ovl) } SegmentEnd = .; SegmentSize = SegmentEnd - SegmentStart; diff --git a/linker_scripts/object_script.txt b/linker_scripts/object_script.txt index 7db419f27d..a13ae82eec 100644 --- a/linker_scripts/object_script.txt +++ b/linker_scripts/object_script.txt @@ -126,6 +126,14 @@ D_0600A490 = 0x0600A490; D_06000040 = 0x06000040; D_060024F0 = 0x060024F0; +/* z_bg_keikoku_spr */ +D_06000100 = 0x06000100; +D_060001F8 = 0x060001F8; +D_06000300 = 0x06000300; +D_060003F8 = 0x060003F8; +D_06000500 = 0x06000500; +D_060005F8 = 0x060005F8; + /* z_dm_sa */ D_06013328 = 0x06013328; D_0600CC94 = 0x0600CC94; diff --git a/src/overlays/actors/ovl_Bg_Keikoku_Spr/z_bg_keikoku_spr.c b/src/overlays/actors/ovl_Bg_Keikoku_Spr/z_bg_keikoku_spr.c index 4eadbb0247..aa6ae252b7 100644 --- a/src/overlays/actors/ovl_Bg_Keikoku_Spr/z_bg_keikoku_spr.c +++ b/src/overlays/actors/ovl_Bg_Keikoku_Spr/z_bg_keikoku_spr.c @@ -1,3 +1,9 @@ +/* + * File: z_bg_keikoku_spr.c + * Overlay: ovl_Bg_Keikoku_Spr + * Description: Termina Field Fountain Water + */ + #include "z_bg_keikoku_spr.h" #define FLAGS 0x00000000 @@ -9,7 +15,6 @@ void BgKeikokuSpr_Destroy(Actor* thisx, GlobalContext* globalCtx); void BgKeikokuSpr_Update(Actor* thisx, GlobalContext* globalCtx); void BgKeikokuSpr_Draw(Actor* thisx, GlobalContext* globalCtx); -/* const ActorInit Bg_Keikoku_Spr_InitVars = { ACTOR_BG_KEIKOKU_SPR, ACTORCAT_PROP, @@ -19,14 +24,45 @@ const ActorInit Bg_Keikoku_Spr_InitVars = { (ActorFunc)BgKeikokuSpr_Init, (ActorFunc)BgKeikokuSpr_Destroy, (ActorFunc)BgKeikokuSpr_Update, - (ActorFunc)BgKeikokuSpr_Draw + (ActorFunc)BgKeikokuSpr_Draw, }; -*/ -#pragma GLOBAL_ASM("./asm/non_matchings/overlays/ovl_Bg_Keikoku_Spr_0x808C3A50/BgKeikokuSpr_Init.asm") +static InitChainEntry sInitChain[] = { + ICHAIN_F32(uncullZoneForward, 3000, ICHAIN_CONTINUE), + ICHAIN_F32(uncullZoneScale, 200, ICHAIN_CONTINUE), + ICHAIN_F32(uncullZoneDownward, 400, ICHAIN_CONTINUE), + ICHAIN_VEC3F_DIV1000(scale, 20, ICHAIN_STOP), +}; -#pragma GLOBAL_ASM("./asm/non_matchings/overlays/ovl_Bg_Keikoku_Spr_0x808C3A50/BgKeikokuSpr_Destroy.asm") +extern Gfx D_06000100[]; +extern AnimatedTexture D_060001F8; +extern Gfx D_06000300[]; +extern AnimatedTexture D_060003F8; +extern Gfx D_06000500[]; +extern AnimatedTexture D_060005F8; -#pragma GLOBAL_ASM("./asm/non_matchings/overlays/ovl_Bg_Keikoku_Spr_0x808C3A50/BgKeikokuSpr_Update.asm") +void BgKeikokuSpr_Init(Actor* thisx, GlobalContext* globalCtx) { + Actor_ProcessInitChain(thisx, sInitChain); +} -#pragma GLOBAL_ASM("./asm/non_matchings/overlays/ovl_Bg_Keikoku_Spr_0x808C3A50/BgKeikokuSpr_Draw.asm") +void BgKeikokuSpr_Destroy(Actor* thisx, GlobalContext* globalCtx) { +} + +void BgKeikokuSpr_Update(Actor* thisx, GlobalContext* globalCtx) { +} + +void BgKeikokuSpr_Draw(Actor* thisx, GlobalContext* globalCtx) { + s32 pad; + + OPEN_DISPS(globalCtx->state.gfxCtx); + + SceneProc_DrawAllSceneAnimatedTextures(globalCtx, Lib_SegmentedToVirtual(&D_060001F8)); + gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(globalCtx->state.gfxCtx), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + gSPDisplayList(POLY_XLU_DISP++, D_06000100); + SceneProc_DrawAllSceneAnimatedTextures(globalCtx, Lib_SegmentedToVirtual(&D_060003F8)); + gSPDisplayList(POLY_XLU_DISP++, D_06000300); + SceneProc_DrawAllSceneAnimatedTextures(globalCtx, Lib_SegmentedToVirtual(&D_060005F8)); + gSPDisplayList(POLY_XLU_DISP++, D_06000500); + + CLOSE_DISPS(globalCtx->state.gfxCtx); +}