From a91eaad34c985143d2a31c8c64a7e88ee0fe820b Mon Sep 17 00:00:00 2001 From: kyleburnette Date: Mon, 3 May 2021 15:07:08 -0700 Subject: [PATCH] obj_visiblock OK (#93) * obj_visiblock OK * re-oked obj_visiblock * removed unnecessary pad --- linker_scripts/code_script.txt | 4 +-- linker_scripts/object_script.txt | 4 +++ .../ovl_Obj_Visiblock/z_obj_visiblock.c | 30 +++++++++++++++---- .../ovl_Obj_Visiblock/z_obj_visiblock.h | 3 +- 4 files changed, 32 insertions(+), 9 deletions(-) diff --git a/linker_scripts/code_script.txt b/linker_scripts/code_script.txt index 3907f86562..a9769414eb 100644 --- a/linker_scripts/code_script.txt +++ b/linker_scripts/code_script.txt @@ -6001,9 +6001,9 @@ SECTIONS ovl_Obj_Visiblock : AT(RomLocation) { build/src/overlays/actors/ovl_Obj_Visiblock/z_obj_visiblock.o(.text) - build/asm/overlays/ovl_Obj_Visiblock_data.o(.data) + build/src/overlays/actors/ovl_Obj_Visiblock/z_obj_visiblock.o(.data) build/src/overlays/actors/ovl_Obj_Visiblock/z_obj_visiblock.o(.rodata) - build/asm/overlays/ovl_Obj_Visiblock_rodata.o(.rodata) + build/src/overlays/actors/ovl_Obj_Visiblock/z_obj_visiblock_overlay.o(.ovl) } SegmentEnd = .; SegmentSize = SegmentEnd - SegmentStart; diff --git a/linker_scripts/object_script.txt b/linker_scripts/object_script.txt index 60774d00df..eab2d3de3d 100644 --- a/linker_scripts/object_script.txt +++ b/linker_scripts/object_script.txt @@ -173,6 +173,10 @@ D_06009278 = 0x06009278; D_06012B70 = 0x06012B70; D_06013EA8 = 0x06013EA8; +/* z_obj_visiblock */ +D_06000AD0 = 0x06000AD0; +D_06000140 = 0x06000140; + /* bg_lotus */ D_06000A20 = 0x06000A20; D_06000040 = 0x06000040; diff --git a/src/overlays/actors/ovl_Obj_Visiblock/z_obj_visiblock.c b/src/overlays/actors/ovl_Obj_Visiblock/z_obj_visiblock.c index c5d95da3d4..ecc9a166a7 100644 --- a/src/overlays/actors/ovl_Obj_Visiblock/z_obj_visiblock.c +++ b/src/overlays/actors/ovl_Obj_Visiblock/z_obj_visiblock.c @@ -8,7 +8,6 @@ void ObjVisiblock_Init(Actor* thisx, GlobalContext* globalCtx); void ObjVisiblock_Destroy(Actor* thisx, GlobalContext* globalCtx); void ObjVisiblock_Draw(Actor* thisx, GlobalContext* globalCtx); -/* const ActorInit Obj_Visiblock_InitVars = { ACTOR_OBJ_VISIBLOCK, ACTORCAT_BG, @@ -20,10 +19,31 @@ const ActorInit Obj_Visiblock_InitVars = { (ActorFunc)func_800BDFB0, (ActorFunc)ObjVisiblock_Draw }; -*/ -#pragma GLOBAL_ASM("./asm/non_matchings/overlays/ovl_Obj_Visiblock_0x80ADEA70/ObjVisiblock_Init.asm") +static InitChainEntry D_80ADEB50[] = { + ICHAIN_F32(uncullZoneForward, 4000, ICHAIN_CONTINUE), + ICHAIN_F32(uncullZoneScale, 200, ICHAIN_CONTINUE), + ICHAIN_F32(uncullZoneDownward, 150, ICHAIN_CONTINUE), + ICHAIN_VEC3F_DIV1000(scale, 100, ICHAIN_STOP), +}; -#pragma GLOBAL_ASM("./asm/non_matchings/overlays/ovl_Obj_Visiblock_0x80ADEA70/ObjVisiblock_Destroy.asm") +extern CollisionHeader D_06000AD0; +extern UNK_TYPE D_06000140; -#pragma GLOBAL_ASM("./asm/non_matchings/overlays/ovl_Obj_Visiblock_0x80ADEA70/ObjVisiblock_Draw.asm") +void ObjVisiblock_Init(Actor* thisx, GlobalContext* globalCtx) { + ObjVisiblock* this = THIS; + + Actor_ProcessInitChain(this, D_80ADEB50); + BcCheck3_BgActorInit(&this->dyna, 0); + BgCheck3_LoadMesh(globalCtx, &this->dyna, &D_06000AD0); +} + +void ObjVisiblock_Destroy(Actor* thisx, GlobalContext* globalCtx) { + ObjVisiblock* this = THIS; + + BgCheck_RemoveActorMesh(globalCtx, &globalCtx->colCtx.dyna, this->dyna.bgId); +} + +void ObjVisiblock_Draw(Actor* thisx, GlobalContext* globalCtx) { + func_800BE03C(globalCtx, &D_06000140); +} diff --git a/src/overlays/actors/ovl_Obj_Visiblock/z_obj_visiblock.h b/src/overlays/actors/ovl_Obj_Visiblock/z_obj_visiblock.h index 1224de956d..b36a03ae33 100644 --- a/src/overlays/actors/ovl_Obj_Visiblock/z_obj_visiblock.h +++ b/src/overlays/actors/ovl_Obj_Visiblock/z_obj_visiblock.h @@ -6,8 +6,7 @@ struct ObjVisiblock; typedef struct ObjVisiblock { - /* 0x000 */ Actor actor; - /* 0x144 */ char unk_144[0x1C]; + /* 0x000 */ DynaPolyActor dyna; } ObjVisiblock; // size = 0x160 extern const ActorInit Obj_Visiblock_InitVars;