diff --git a/include/functions.h b/include/functions.h index 95c7e35d2e..bbcbc645f0 100644 --- a/include/functions.h +++ b/include/functions.h @@ -900,7 +900,7 @@ void func_800BCC68(Vec3f* param_1, GlobalContext* globalCtx); void func_800BDC5C(SkelAnime* skelAnime, ActorAnimationEntry animation[], s16 index); // void func_800BDCF4(void); void func_800BDFB0(void); -void func_800BDFC0(GlobalContext* globalCtx, UNK_TYPE4 uParm2); +void func_800BDFC0(GlobalContext* globalCtx, Gfx* dl); void func_800BE03C(GlobalContext* globalCtx, Gfx* dl); // void func_800BE0B8(UNK_TYPE1 param_1, UNK_TYPE1 param_2, UNK_TYPE1 param_3, UNK_TYPE1 param_4, UNK_TYPE4 param_5); // void func_800BE184(UNK_TYPE1 param_1, UNK_TYPE1 param_2, UNK_TYPE1 param_3, UNK_TYPE1 param_4, UNK_TYPE2 param_5, UNK_TYPE2 param_6); diff --git a/include/variables.h b/include/variables.h index ccaba7528f..d72aefc775 100644 --- a/include/variables.h +++ b/include/variables.h @@ -372,7 +372,7 @@ extern DmaEntry dmadata[1568]; extern ActorInit En_A_Obj_InitVars; extern ColliderCylinderInit enAObjCylinderInit; extern InitChainEntry enAObjInitVar; -extern u32 enAObjDisplayLists[2]; +extern Gfx* enAObjDisplayLists[2]; extern Color_RGBA8 D_801ADF10; extern Color_RGBA8 D_801ADF14; extern Vec3f D_801ADF18; diff --git a/linker_scripts/code_script.txt b/linker_scripts/code_script.txt index 53796abb74..735600505c 100644 --- a/linker_scripts/code_script.txt +++ b/linker_scripts/code_script.txt @@ -8877,9 +8877,9 @@ SECTIONS ovl_Obj_Milk_Bin : AT(RomLocation) { build/src/overlays/actors/ovl_Obj_Milk_Bin/z_obj_milk_bin.o(.text) - build/asm/overlays/ovl_Obj_Milk_Bin_data.o(.data) + build/src/overlays/actors/ovl_Obj_Milk_Bin/z_obj_milk_bin.o(.data) build/src/overlays/actors/ovl_Obj_Milk_Bin/z_obj_milk_bin.o(.rodata) - build/asm/overlays/ovl_Obj_Milk_Bin_rodata.o(.rodata) + build/src/overlays/actors/ovl_Obj_Milk_Bin/z_obj_milk_bin_overlay.o(.ovl) } SegmentEnd = .; SegmentSize = SegmentEnd - SegmentStart; diff --git a/linker_scripts/object_script.txt b/linker_scripts/object_script.txt index 73233ae5f9..5f42b5d334 100644 --- a/linker_scripts/object_script.txt +++ b/linker_scripts/object_script.txt @@ -252,6 +252,9 @@ D_06000EC0 = 0x06000EC0; D_06000710 = 0x06000710; D_06000958 = 0x06000958; +/* z_obj_milk_bin */ +D_060004B0 = 0x060004B0; + /* z_en_jc_mato */ D_06000390 = 0x06000390; diff --git a/src/code/z_collision_check.c b/src/code/z_collision_check.c index 1cdb30dcb0..9395a0fbef 100644 --- a/src/code/z_collision_check.c +++ b/src/code/z_collision_check.c @@ -387,8 +387,8 @@ s32 Collider_SetJntSph(GlobalContext* globalCtx, ColliderJntSph* sphereGroup, Ac /** * Fully initializes a ColliderJntSph using the values in `src`, placing the element array in elements. */ -s32 Collider_InitAndSetJntSph(GlobalContext* globalCtx, ColliderJntSph* sphereGroup, Actor* actor, ColliderJntSphInit* src, - ColliderJntSphElement* elements) { +s32 Collider_InitAndSetJntSph(GlobalContext* globalCtx, ColliderJntSph* sphereGroup, Actor* actor, + ColliderJntSphInit* src, ColliderJntSphElement* elements) { Collider_InitJntSph(globalCtx, sphereGroup); Collider_SetJntSph(globalCtx, sphereGroup, actor, src, elements); return 0; @@ -479,7 +479,8 @@ s32 Collider_DestroyCylinder(GlobalContext* globalCtx, ColliderCylinder* collide * Sets up the ColliderCylinder using the values in src and sets it to the actor specified in src. Uses default * OC2_TYPE_1 and COLTYPE_0. */ -s32 Collider_SetCylinderToActor(GlobalContext* globalCtx, ColliderCylinder* collider, ColliderCylinderInitToActor* src) { +s32 Collider_SetCylinderToActor(GlobalContext* globalCtx, ColliderCylinder* collider, + ColliderCylinderInitToActor* src) { Collider_SetBaseToActor(globalCtx, &collider->base, &src->base); Collider_SetInfo(globalCtx, &collider->info, &src->info); Collider_SetCylinderDim(globalCtx, &collider->dim, &src->dim); @@ -500,7 +501,8 @@ s32 Collider_SetCylinderType1(GlobalContext* globalCtx, ColliderCylinder* collid /** * Sets up the ColliderCylinder using the values in src. */ -s32 Collider_SetCylinder(GlobalContext* globalCtx, ColliderCylinder* collider, Actor* actor, ColliderCylinderInit* src) { +s32 Collider_SetCylinder(GlobalContext* globalCtx, ColliderCylinder* collider, Actor* actor, + ColliderCylinderInit* src) { Collider_SetBase(globalCtx, &collider->base, actor, &src->base); Collider_SetInfo(globalCtx, &collider->info, &src->info); Collider_SetCylinderDim(globalCtx, &collider->dim, &src->dim); @@ -952,7 +954,8 @@ s32 Collider_SetSphere(GlobalContext* globalCtx, ColliderSphere* collider, Actor /** * Fully initializes a ColliderSphere using the values in src. */ -s32 Collider_InitAndSetSphere(GlobalContext* globalCtx, ColliderSphere* collider, Actor* actor, ColliderSphereInit* src) { +s32 Collider_InitAndSetSphere(GlobalContext* globalCtx, ColliderSphere* collider, Actor* actor, + ColliderSphereInit* src) { Collider_InitSphere(globalCtx, collider); Collider_SetSphere(globalCtx, collider, actor, src); return 0; @@ -1708,8 +1711,8 @@ void CollisionCheck_AC_JntSphVsJntSph(GlobalContext* globalCtx, CollisionCheckCo } else { Math_Vec3f_Copy(&hitPos, &atPos); } - CollisionCheck_SetATvsAC(globalCtx, &at->base, &atElem->info, &atPos, &ac->base, &acElem->info, &acPos, - &hitPos); + CollisionCheck_SetATvsAC(globalCtx, &at->base, &atElem->info, &atPos, &ac->base, &acElem->info, + &acPos, &hitPos); if (!(ac->base.ocFlags2 & OC2_FIRST_ONLY)) { return; @@ -1763,7 +1766,8 @@ void CollisionCheck_AC_JntSphVsCyl(GlobalContext* globalCtx, CollisionCheckConte } else { Math_Vec3f_Copy(&hitPos, &atPos); } - CollisionCheck_SetATvsAC(globalCtx, &at->base, &atElem->info, &atPos, &ac->base, &ac->info, &acPos, &hitPos); + CollisionCheck_SetATvsAC(globalCtx, &at->base, &atElem->info, &atPos, &ac->base, &ac->info, &acPos, + &hitPos); return; } } @@ -1799,8 +1803,8 @@ void CollisionCheck_AC_JntSphVsTris(GlobalContext* globalCtx, CollisionCheckCont Math_Vec3s_ToVec3f(&atPos, &atElem->dim.worldSphere.center); CollisionCheck_TrisAvgPoint(acElem, &acPos); - CollisionCheck_SetATvsAC(globalCtx, &at->base, &atElem->info, &atPos, &ac->base, &acElem->info, &acPos, - &hitPos); + CollisionCheck_SetATvsAC(globalCtx, &at->base, &atElem->info, &atPos, &ac->base, &acElem->info, + &acPos, &hitPos); return; } } @@ -1949,7 +1953,8 @@ void CollisionCheck_AC_CylVsJntSph(GlobalContext* globalCtx, CollisionCheckConte /** * AC overlap check. Calculates the center of each collider element and the point of contact. */ -void CollisionCheck_AC_CylVsCyl(GlobalContext* globalCtx, CollisionCheckContext* colCtxt, Collider* colAT, Collider* colAC) { +void CollisionCheck_AC_CylVsCyl(GlobalContext* globalCtx, CollisionCheckContext* colCtxt, Collider* colAT, + Collider* colAC) { ColliderCylinder* at = (ColliderCylinder*)colAT; ColliderCylinder* ac = (ColliderCylinder*)colAC; f32 overlapSize; @@ -2027,7 +2032,8 @@ void CollisionCheck_AC_CylVsTris(GlobalContext* globalCtx, CollisionCheckContext Math_Vec3s_ToVec3f(&atPos, &at->dim.pos); CollisionCheck_TrisAvgPoint(acElem, &acPos); - CollisionCheck_SetATvsAC(globalCtx, &at->base, &at->info, &atPos, &ac->base, &acElem->info, &acPos, &hitPos); + CollisionCheck_SetATvsAC(globalCtx, &at->base, &at->info, &atPos, &ac->base, &acElem->info, &acPos, + &hitPos); return; } } @@ -2061,14 +2067,16 @@ void CollisionCheck_AC_CylVsQuad(GlobalContext* globalCtx, CollisionCheckContext Math_Vec3s_ToVec3f(&atPos, &at->dim.pos); CollisionCheck_QuadAvgPoint(ac, &acPos); - CollisionCheck_SetATvsAC(globalCtx, &at->base, &at->info, &atPos, &ac->base, &ac->info, &acPos, &D_801EDE00); + CollisionCheck_SetATvsAC(globalCtx, &at->base, &at->info, &atPos, &ac->base, &ac->info, &acPos, + &D_801EDE00); } else if (Math3D_ColCylinderTri(&at->dim, &D_801EF638, &D_801EDE00) != 0) { Vec3f atPos; Vec3f acPos; Math_Vec3s_ToVec3f(&atPos, &at->dim.pos); CollisionCheck_QuadAvgPoint(ac, &acPos); - CollisionCheck_SetATvsAC(globalCtx, &at->base, &at->info, &atPos, &ac->base, &ac->info, &acPos, &D_801EDE00); + CollisionCheck_SetATvsAC(globalCtx, &at->base, &at->info, &atPos, &ac->base, &ac->info, &acPos, + &D_801EDE00); } } } @@ -2149,8 +2157,8 @@ void CollisionCheck_AC_TrisVsJntSph(GlobalContext* globalCtx, CollisionCheckCont Math_Vec3s_ToVec3f(&acPos, &acElem->dim.worldSphere.center); CollisionCheck_TrisAvgPoint(atElem, &atPos); - CollisionCheck_SetATvsAC(globalCtx, &at->base, &atElem->info, &atPos, &ac->base, &acElem->info, &acPos, - &hitPos); + CollisionCheck_SetATvsAC(globalCtx, &at->base, &atElem->info, &atPos, &ac->base, &acElem->info, + &acPos, &hitPos); if (!(ac->base.ocFlags2 & OC2_FIRST_ONLY)) { return; @@ -2223,8 +2231,8 @@ void CollisionCheck_AC_TrisVsTris(GlobalContext* globalCtx, CollisionCheckContex CollisionCheck_TrisAvgPoint(atElem, &atPos); CollisionCheck_TrisAvgPoint(acElem, &acPos); - CollisionCheck_SetATvsAC(globalCtx, &at->base, &atElem->info, &atPos, &ac->base, &acElem->info, &acPos, - &D_801EDE20); + CollisionCheck_SetATvsAC(globalCtx, &at->base, &atElem->info, &atPos, &ac->base, &acElem->info, + &acPos, &D_801EDE20); return; } } @@ -2298,7 +2306,8 @@ void CollisionCheck_AC_TrisVsSphere(GlobalContext* globalCtx, CollisionCheckCont Math_Vec3s_ToVec3f(&acPos, &ac->dim.worldSphere.center); CollisionCheck_TrisAvgPoint(atElem, &atPos); - CollisionCheck_SetATvsAC(globalCtx, &at->base, &atElem->info, &atPos, &ac->base, &ac->info, &acPos, &hitPos); + CollisionCheck_SetATvsAC(globalCtx, &at->base, &atElem->info, &atPos, &ac->base, &ac->info, &acPos, + &hitPos); } } } @@ -2338,7 +2347,8 @@ void CollisionCheck_AC_QuadVsJntSph(GlobalContext* globalCtx, CollisionCheckCont } Math_Vec3s_ToVec3f(&acPos, &acElem->dim.worldSphere.center); CollisionCheck_QuadAvgPoint(at, &atPos); - CollisionCheck_SetATvsAC(globalCtx, &at->base, &at->info, &atPos, &ac->base, &acElem->info, &acPos, &hitPos); + CollisionCheck_SetATvsAC(globalCtx, &at->base, &at->info, &atPos, &ac->base, &acElem->info, &acPos, + &hitPos); if (!(ac->base.ocFlags2 & OC2_FIRST_ONLY)) { break; @@ -2377,7 +2387,8 @@ void CollisionCheck_AC_QuadVsCyl(GlobalContext* globalCtx, CollisionCheckContext CollisionCheck_QuadAvgPoint(at, &atPos); Math_Vec3s_ToVec3f(&acPos, &ac->dim.pos); - CollisionCheck_SetATvsAC(globalCtx, &at->base, &at->info, &atPos, &ac->base, &ac->info, &acPos, &D_801EDFE0); + CollisionCheck_SetATvsAC(globalCtx, &at->base, &at->info, &atPos, &ac->base, &ac->info, &acPos, + &D_801EDFE0); return; } } @@ -2388,7 +2399,8 @@ void CollisionCheck_AC_QuadVsCyl(GlobalContext* globalCtx, CollisionCheckContext CollisionCheck_QuadAvgPoint(at, &atPos); Math_Vec3s_ToVec3f(&acPos, &ac->dim.pos); - CollisionCheck_SetATvsAC(globalCtx, &at->base, &at->info, &atPos, &ac->base, &ac->info, &acPos, &D_801EDFE0); + CollisionCheck_SetATvsAC(globalCtx, &at->base, &at->info, &atPos, &ac->base, &ac->info, &acPos, + &D_801EDFE0); } } } @@ -2470,7 +2482,8 @@ void CollisionCheck_AC_QuadVsQuad(GlobalContext* globalCtx, CollisionCheckContex CollisionCheck_QuadAvgPoint(at, &atPos); CollisionCheck_QuadAvgPoint(ac, &acPos); - CollisionCheck_SetATvsAC(globalCtx, &at->base, &at->info, &atPos, &ac->base, &ac->info, &acPos, &D_801EE0D8); + CollisionCheck_SetATvsAC(globalCtx, &at->base, &at->info, &atPos, &ac->base, &ac->info, &acPos, + &D_801EE0D8); return; } } @@ -2550,7 +2563,8 @@ void CollisionCheck_AC_SphereVsJntSph(GlobalContext* globalCtx, CollisionCheckCo } else { Math_Vec3f_Copy(&hitPos, &atPos); } - CollisionCheck_SetATvsAC(globalCtx, &at->base, &at->info, &atPos, &ac->base, &acElem->info, &acPos, &hitPos); + CollisionCheck_SetATvsAC(globalCtx, &at->base, &at->info, &atPos, &ac->base, &acElem->info, &acPos, + &hitPos); } } } @@ -2630,7 +2644,8 @@ void CollisionCheck_AC_SphereVsTris(GlobalContext* globalCtx, CollisionCheckCont Math_Vec3s_ToVec3f(&atPos, &at->dim.worldSphere.center); CollisionCheck_TrisAvgPoint(acElem, &acPos); - CollisionCheck_SetATvsAC(globalCtx, &at->base, &at->info, &atPos, &ac->base, &acElem->info, &acPos, &hitPos); + CollisionCheck_SetATvsAC(globalCtx, &at->base, &at->info, &atPos, &ac->base, &acElem->info, &acPos, + &hitPos); return; } } @@ -2720,8 +2735,8 @@ void CollisionCheck_SetJntSphHitFX(GlobalContext* globalCtx, CollisionCheckConte Vec3f hitPos; Math_Vec3s_ToVec3f(&hitPos, &element->info.bumper.hitPos); - CollisionCheck_HitEffects(globalCtx, element->info.acHit, element->info.acHitInfo, &jntSph->base, &element->info, - &hitPos); + CollisionCheck_HitEffects(globalCtx, element->info.acHit, element->info.acHitInfo, &jntSph->base, + &element->info, &hitPos); element->info.acHitInfo->toucherFlags |= TOUCH_DREW_HITMARK; return; } @@ -2758,8 +2773,8 @@ void CollisionCheck_SetTrisHitFX(GlobalContext* globalCtx, CollisionCheckContext Vec3f hitPos; Math_Vec3s_ToVec3f(&hitPos, &element->info.bumper.hitPos); - CollisionCheck_HitEffects(globalCtx, element->info.acHit, element->info.acHitInfo, &tris->base, &element->info, - &hitPos); + CollisionCheck_HitEffects(globalCtx, element->info.acHit, element->info.acHitInfo, &tris->base, + &element->info, &hitPos); element->info.acHitInfo->toucherFlags |= TOUCH_DREW_HITMARK; return; } @@ -3001,7 +3016,8 @@ void CollisionCheck_SetOCvsOC(GlobalContext* globalCtx, Collider* left, Collider /** * OC overlap check for two JntSphs */ -void CollisionCheck_OC_JntSphVsJntSph(GlobalContext* globalCtx, CollisionCheckContext* colCtxt, Collider* l, Collider* r) { +void CollisionCheck_OC_JntSphVsJntSph(GlobalContext* globalCtx, CollisionCheckContext* colCtxt, Collider* l, + Collider* r) { ColliderJntSph* left = (ColliderJntSph*)l; ColliderJntSph* right = (ColliderJntSph*)r; ColliderJntSphElement* leftElem; @@ -3066,7 +3082,8 @@ void CollisionCheck_OC_JntSphVsCyl(GlobalContext* globalCtx, CollisionCheckConte /** * OC overlap check for a JntSph and Sphere */ -void CollisionCheck_OC_JntSphVsSphere(GlobalContext* globalCtx, CollisionCheckContext* colCtxt, Collider* l, Collider* r) { +void CollisionCheck_OC_JntSphVsSphere(GlobalContext* globalCtx, CollisionCheckContext* colCtxt, Collider* l, + Collider* r) { ColliderJntSph* left = (ColliderJntSph*)l; ColliderSphere* right = (ColliderSphere*)r; ColliderJntSphElement* leftElem; @@ -3115,8 +3132,8 @@ void CollisionCheck_OC_CylVsCyl(GlobalContext* globalCtx, CollisionCheckContext* Math_Vec3s_ToVec3f(&leftPos, &left->dim.pos); Math_Vec3s_ToVec3f(&rightPos, &right->dim.pos); - CollisionCheck_SetOCvsOC(globalCtx, &left->base, &left->info, &leftPos, &right->base, &right->info, &rightPos, - overlap); + CollisionCheck_SetOCvsOC(globalCtx, &left->base, &left->info, &leftPos, &right->base, &right->info, + &rightPos, overlap); } } } @@ -3137,8 +3154,8 @@ void CollisionCheck_OC_CylVsSphere(GlobalContext* globalCtx, CollisionCheckConte Math_Vec3s_ToVec3f(&leftPos, &left->dim.pos); Math_Vec3s_ToVec3f(&rightPos, &right->dim.worldSphere.center); - CollisionCheck_SetOCvsOC(globalCtx, &left->base, &left->info, &leftPos, &right->base, &right->info, &rightPos, - overlap); + CollisionCheck_SetOCvsOC(globalCtx, &left->base, &left->info, &leftPos, &right->base, &right->info, + &rightPos, overlap); } } } @@ -3146,7 +3163,8 @@ void CollisionCheck_OC_CylVsSphere(GlobalContext* globalCtx, CollisionCheckConte /** * OC overlap check for a Sphere and JntSph */ -void CollisionCheck_OC_SphereVsJntSph(GlobalContext* globalCtx, CollisionCheckContext* colCtxt, Collider* l, Collider* r) { +void CollisionCheck_OC_SphereVsJntSph(GlobalContext* globalCtx, CollisionCheckContext* colCtxt, Collider* l, + Collider* r) { CollisionCheck_OC_JntSphVsSphere(globalCtx, colCtxt, r, l); } @@ -3160,7 +3178,8 @@ void CollisionCheck_OC_SphereVsCyl(GlobalContext* globalCtx, CollisionCheckConte /** * OC overlap check for two Spheres */ -void CollisionCheck_OC_SphereVsSphere(GlobalContext* globalCtx, CollisionCheckContext* colCtxt, Collider* l, Collider* r) { +void CollisionCheck_OC_SphereVsSphere(GlobalContext* globalCtx, CollisionCheckContext* colCtxt, Collider* l, + Collider* r) { ColliderSphere* left = (ColliderSphere*)l; ColliderSphere* right = (ColliderSphere*)r; f32 overlap; @@ -3173,8 +3192,8 @@ void CollisionCheck_OC_SphereVsSphere(GlobalContext* globalCtx, CollisionCheckCo Math_Vec3s_ToVec3f(&leftPos, &left->dim.worldSphere.center); Math_Vec3s_ToVec3f(&rightPos, &right->dim.worldSphere.center); - CollisionCheck_SetOCvsOC(globalCtx, &left->base, &left->info, &leftPos, &right->base, &right->info, &rightPos, - overlap); + CollisionCheck_SetOCvsOC(globalCtx, &left->base, &left->info, &leftPos, &right->base, &right->info, + &rightPos, overlap); } } } @@ -3613,7 +3632,8 @@ void Collider_SetTrisVertices(ColliderTris* collider, s32 index, Vec3f* a, Vec3f /** * Sets the specified ColliderTrisElement's dim using the values in src */ -void Collider_SetTrisDim(GlobalContext* globalCtx, ColliderTris* collider, s32 index, ColliderTrisElementDimInit* init) { +void Collider_SetTrisDim(GlobalContext* globalCtx, ColliderTris* collider, s32 index, + ColliderTrisElementDimInit* init) { ColliderTrisElement* element = &collider->elements[index]; Collider_SetTrisElementDim(globalCtx, &element->dim, init); diff --git a/src/code/z_eff_footmark.c b/src/code/z_eff_footmark.c index 0db07fdf62..538a98e7f9 100644 --- a/src/code/z_eff_footmark.c +++ b/src/code/z_eff_footmark.c @@ -17,8 +17,8 @@ void EffFootmark_Init(GlobalContext* globalCtx) { } } -void EffFootmark_Add(GlobalContext* globalCtx, MtxF* displayMatrix, Actor* actor, u8 id, Vec3f* location, u16 size, u8 red, - u8 green, u8 blue, u16 alpha, u16 alphaChange, u16 fadeoutDelay) { +void EffFootmark_Add(GlobalContext* globalCtx, MtxF* displayMatrix, Actor* actor, u8 id, Vec3f* location, u16 size, + u8 red, u8 green, u8 blue, u16 alpha, u16 alphaChange, u16 fadeoutDelay) { s32 i; EffFootmark* footmark; EffFootmark* destination = NULL; diff --git a/src/code/z_room.c b/src/code/z_room.c index 3dba3ba395..84f93b7780 100644 --- a/src/code/z_room.c +++ b/src/code/z_room.c @@ -93,8 +93,8 @@ s32 Room_StartRoomTransition(GlobalContext* globalCtx, RoomContext* roomCtxt, s3 0xfffffff0; osCreateMesgQueue(&roomCtxt->loadQueue, roomCtxt->loadMsg, 1); - DmaMgr_SendRequestImpl(&roomCtxt->dmaRequest, roomCtxt->activeRoomVram, globalCtx->roomAddrs[index].vromStart, size, - 0, &roomCtxt->loadQueue, NULL); + DmaMgr_SendRequestImpl(&roomCtxt->dmaRequest, roomCtxt->activeRoomVram, globalCtx->roomAddrs[index].vromStart, + size, 0, &roomCtxt->loadQueue, NULL); roomCtxt->activeMemPage ^= 1; return 1; diff --git a/src/overlays/actors/ovl_Bg_Ctower_Gear/z_bg_ctower_gear.c b/src/overlays/actors/ovl_Bg_Ctower_Gear/z_bg_ctower_gear.c index 3daf1e7193..d5aaf675b1 100644 --- a/src/overlays/actors/ovl_Bg_Ctower_Gear/z_bg_ctower_gear.c +++ b/src/overlays/actors/ovl_Bg_Ctower_Gear/z_bg_ctower_gear.c @@ -125,8 +125,7 @@ void BgCtowerGear_Splash(BgCtowerGear* this, GlobalContext* globalCtx) { splashSpawnPos.x += this->dyna.actor.world.pos.x + ((Rand_ZeroOne() * 20.0f) - 10.0f); splashSpawnPos.y += this->dyna.actor.world.pos.y; splashSpawnPos.z += this->dyna.actor.world.pos.z + ((Rand_ZeroOne() * 20.0f) - 10.0f); - EffectSsGSplash_Spawn(globalCtx, &splashSpawnPos, NULL, NULL, 0, - ((u32)Rand_Next() >> 25) + 280); + EffectSsGSplash_Spawn(globalCtx, &splashSpawnPos, NULL, NULL, 0, ((u32)Rand_Next() >> 25) + 280); } } } diff --git a/src/overlays/actors/ovl_Bg_Haka_Curtain/z_bg_haka_curtain.c b/src/overlays/actors/ovl_Bg_Haka_Curtain/z_bg_haka_curtain.c index 7c0c794b89..8b6e5878d0 100644 --- a/src/overlays/actors/ovl_Bg_Haka_Curtain/z_bg_haka_curtain.c +++ b/src/overlays/actors/ovl_Bg_Haka_Curtain/z_bg_haka_curtain.c @@ -39,7 +39,7 @@ static InitChainEntry sInitChain[] = { }; extern CollisionHeader D_06001588; -extern UNK_TYPE D_06001410; +extern Gfx D_06001410[]; void BgHakaCurtain_Init(Actor* thisx, GlobalContext* globalCtx) { BgHakaCurtain* this = THIS; @@ -131,5 +131,5 @@ void BgHakaCurtain_Update(Actor* thisx, GlobalContext* globalCtx) { } void BgHakaCurtain_Draw(Actor* thisx, GlobalContext* globalCtx) { - func_800BDFC0(globalCtx, &D_06001410); + func_800BDFC0(globalCtx, D_06001410); } diff --git a/src/overlays/actors/ovl_Bg_Ikana_Shutter/z_bg_ikana_shutter.c b/src/overlays/actors/ovl_Bg_Ikana_Shutter/z_bg_ikana_shutter.c index a3f880646a..6c590ab9da 100644 --- a/src/overlays/actors/ovl_Bg_Ikana_Shutter/z_bg_ikana_shutter.c +++ b/src/overlays/actors/ovl_Bg_Ikana_Shutter/z_bg_ikana_shutter.c @@ -48,7 +48,7 @@ static InitChainEntry sInitChain[] = { }; extern CollisionHeader D_06000F28; -extern UNK_PTR D_06000CE8; +extern Gfx D_06000CE8[]; s32 BgIkanaShutter_AllSwitchesPressed(BgIkanaShutter* this, GlobalContext* globalCtx) { return Flags_GetSwitch(globalCtx, this->dyna.actor.params & 0x7F) && @@ -207,5 +207,5 @@ void BgIkanaShutter_Update(Actor* thisx, GlobalContext* globalCtx) { } void BgIkanaShutter_Draw(Actor* thisx, GlobalContext* globalCtx) { - func_800BDFC0(globalCtx, &D_06000CE8); + func_800BDFC0(globalCtx, D_06000CE8); } diff --git a/src/overlays/actors/ovl_Bg_Lbfshot/z_bg_lbfshot.c b/src/overlays/actors/ovl_Bg_Lbfshot/z_bg_lbfshot.c index 432d2cf92a..1adce24fc7 100644 --- a/src/overlays/actors/ovl_Bg_Lbfshot/z_bg_lbfshot.c +++ b/src/overlays/actors/ovl_Bg_Lbfshot/z_bg_lbfshot.c @@ -25,7 +25,7 @@ static InitChainEntry sInitChain[] = { }; extern CollisionHeader D_060014D8; -extern UNK_TYPE D_06000228; +extern Gfx D_06000228[]; void BgLbfshot_Init(Actor* thisx, GlobalContext* globalCtx) { BgLbfshot* this = THIS; @@ -41,5 +41,5 @@ void BgLbfshot_Destroy(Actor* thisx, GlobalContext* globalCtx) { BgCheck_RemoveActorMesh(globalCtx, &globalCtx->colCtx.dyna, this->dyna.bgId); } void BgLbfshot_Draw(Actor* thisx, GlobalContext* globalCtx) { - func_800BDFC0(globalCtx, &D_06000228); + func_800BDFC0(globalCtx, D_06000228); } diff --git a/src/overlays/actors/ovl_Bg_Mbar_Chair/z_bg_mbar_chair.c b/src/overlays/actors/ovl_Bg_Mbar_Chair/z_bg_mbar_chair.c index 0319f0410e..bc3dc17dc6 100644 --- a/src/overlays/actors/ovl_Bg_Mbar_Chair/z_bg_mbar_chair.c +++ b/src/overlays/actors/ovl_Bg_Mbar_Chair/z_bg_mbar_chair.c @@ -29,7 +29,7 @@ static InitChainEntry sInitChain[] = { }; extern CollisionHeader D_060019B4; -extern UNK_TYPE D_06000288; +extern Gfx D_06000288[]; void BgMbarChair_Init(Actor* thisx, GlobalContext* globalCtx) { BgMbarChair* this = THIS; @@ -49,5 +49,5 @@ void BgMbarChair_Update(Actor* thisx, GlobalContext* globalCtx) { } void BgMbarChair_Draw(Actor* thisx, GlobalContext* globalCtx) { - func_800BDFC0(globalCtx, &D_06000288); + func_800BDFC0(globalCtx, D_06000288); } diff --git a/src/overlays/actors/ovl_En_Cha/z_en_cha.c b/src/overlays/actors/ovl_En_Cha/z_en_cha.c index d67f3e0c21..6bfe664117 100644 --- a/src/overlays/actors/ovl_En_Cha/z_en_cha.c +++ b/src/overlays/actors/ovl_En_Cha/z_en_cha.c @@ -49,8 +49,8 @@ static ColliderCylinderInit sCylinderInit = { { 10, 40, 0, { 0, 0, 0 } }, }; -extern UNK_TYPE4 D_06000710; -extern UNK_TYPE4 D_06000958; +extern Gfx D_06000710[]; +extern Gfx D_06000958[]; void EnCha_Init(Actor* thisx, GlobalContext* globalCtx) { EnCha* this = THIS; @@ -117,8 +117,8 @@ void EnCha_Update(Actor* thisx, GlobalContext* globalCtx) { void EnCha_Draw(Actor* thisx, GlobalContext* globalCtx) { EnCha* this = THIS; - func_800BDFC0(globalCtx, &D_06000710); + func_800BDFC0(globalCtx, D_06000710); SysMatrix_InsertTranslation(-1094.0f, 4950.0f, 9.0f, 1); SysMatrix_InsertXRotation_s(this->actor.home.rot.x, 1); - func_800BDFC0(globalCtx, &D_06000958); + func_800BDFC0(globalCtx, D_06000958); } diff --git a/src/overlays/actors/ovl_En_Encount2/z_en_encount2.c b/src/overlays/actors/ovl_En_Encount2/z_en_encount2.c index 230ec3f687..59e27e2c1d 100644 --- a/src/overlays/actors/ovl_En_Encount2/z_en_encount2.c +++ b/src/overlays/actors/ovl_En_Encount2/z_en_encount2.c @@ -169,8 +169,8 @@ void EnEncount2_Update(Actor* thisx, GlobalContext* globalCtx) { void EnEncount2_Draw(Actor* thisx, GlobalContext* globalCtx) { EnEncount2* this = THIS; if (this->isPopped != 1) { - func_800BDFC0(globalCtx, &D_06000A00); - func_800BDFC0(globalCtx, &D_06000D78); + func_800BDFC0(globalCtx, D_06000A00); + func_800BDFC0(globalCtx, D_06000D78); } EnEncount2_DrawParticles(this, globalCtx); } diff --git a/src/overlays/actors/ovl_En_Encount2/z_en_encount2.h b/src/overlays/actors/ovl_En_Encount2/z_en_encount2.h index ca63135b3a..65275fe367 100644 --- a/src/overlays/actors/ovl_En_Encount2/z_en_encount2.h +++ b/src/overlays/actors/ovl_En_Encount2/z_en_encount2.h @@ -38,7 +38,7 @@ extern const ActorInit En_Encount2_InitVars; extern CollisionHeader D_06002420; -extern s32 D_06000A00; -extern s32 D_06000D78; +extern Gfx D_06000A00[]; +extern Gfx D_06000D78[]; #endif // Z_EN_ENCOUNT2_H diff --git a/src/overlays/actors/ovl_En_Po_Fusen/z_en_po_fusen.c b/src/overlays/actors/ovl_En_Po_Fusen/z_en_po_fusen.c index e6dde14706..17abdc94e1 100644 --- a/src/overlays/actors/ovl_En_Po_Fusen/z_en_po_fusen.c +++ b/src/overlays/actors/ovl_En_Po_Fusen/z_en_po_fusen.c @@ -145,7 +145,7 @@ u16 EnPoFusen_CheckCollision(EnPoFusen* this, GlobalContext* globalCtx) { this->collider.base.acFlags &= ~0x2; return 1; } - + CollisionCheck_SetOC(globalCtx, &globalCtx->colCheckCtx, &this->collider.base); CollisionCheck_SetAC(globalCtx, &globalCtx->colCheckCtx, &this->collider.base); @@ -205,8 +205,8 @@ void EnPoFusen_IncrementMalonPop(EnPoFusen* this) { } void EnPoFusen_Pop(EnPoFusen* this, GlobalContext* globalCtx) { - Actor_Spawn(&globalCtx->actorCtx, globalCtx, ACTOR_EN_CLEAR_TAG, this->actor.world.pos.x, this->actor.world.pos.y + 20.0f, - this->actor.world.pos.z, 255, 255, 200, 2); + Actor_Spawn(&globalCtx->actorCtx, globalCtx, ACTOR_EN_CLEAR_TAG, this->actor.world.pos.x, + this->actor.world.pos.y + 20.0f, this->actor.world.pos.z, 255, 255, 200, 2); Audio_PlayActorSound2(&this->actor, 0x180E); // NA_SE_IT_BOMB_EXPLOSION sfx Actor_MarkForDeath(&this->actor); } diff --git a/src/overlays/actors/ovl_En_Tubo_Trap/z_en_tubo_trap.c b/src/overlays/actors/ovl_En_Tubo_Trap/z_en_tubo_trap.c index 61699263a7..f1ac756e21 100644 --- a/src/overlays/actors/ovl_En_Tubo_Trap/z_en_tubo_trap.c +++ b/src/overlays/actors/ovl_En_Tubo_Trap/z_en_tubo_trap.c @@ -324,5 +324,5 @@ void EnTuboTrap_Update(Actor* thisx, GlobalContext* globalCtx) { void EnTuboTrap_Draw(Actor* thisx, GlobalContext* globalCtx) { // Gfx_DrawDListOpa with a display list - func_800BDFC0(globalCtx, &D_05017EA0); + func_800BDFC0(globalCtx, D_05017EA0); } diff --git a/src/overlays/actors/ovl_En_Warp_Uzu/z_en_warp_uzu.c b/src/overlays/actors/ovl_En_Warp_Uzu/z_en_warp_uzu.c index 0eb1030f03..1fb6c4b778 100644 --- a/src/overlays/actors/ovl_En_Warp_Uzu/z_en_warp_uzu.c +++ b/src/overlays/actors/ovl_En_Warp_Uzu/z_en_warp_uzu.c @@ -59,7 +59,7 @@ static InitChainEntry sInitChain[] = { ICHAIN_VEC3F_DIV1000(scale, 100, ICHAIN_STOP), }; -extern UNK_TYPE D_06000EC0; +extern Gfx D_06000EC0[]; void EnWarpUzu_Init(Actor* thisx, GlobalContext* globalCtx) { EnWarpUzu* this = THIS; @@ -133,5 +133,5 @@ void EnWarpUzu_Update(Actor* thisx, GlobalContext* globalCtx) { } void EnWarpUzu_Draw(Actor* thisx, GlobalContext* globalCtx) { - func_800BDFC0(globalCtx, &D_06000EC0); + func_800BDFC0(globalCtx, D_06000EC0); } diff --git a/src/overlays/actors/ovl_Obj_Ending/z_obj_ending.c b/src/overlays/actors/ovl_Obj_Ending/z_obj_ending.c index 24acdde077..f461724517 100644 --- a/src/overlays/actors/ovl_Obj_Ending/z_obj_ending.c +++ b/src/overlays/actors/ovl_Obj_Ending/z_obj_ending.c @@ -57,7 +57,7 @@ void ObjEnding_Update(Actor* thisx, GlobalContext* globalCtx) { void ObjEnding_Draw(Actor* thisx, GlobalContext* globalCtx) { ObjEnding* this = THIS; Gfx* dl; - UNK_TYPE4 tempunk4; + Gfx* tempunk4; if (this->texture != NULL) { AnimatedMat_Draw(globalCtx, this->texture); diff --git a/src/overlays/actors/ovl_Obj_Hana/z_obj_hana.c b/src/overlays/actors/ovl_Obj_Hana/z_obj_hana.c index 2ad90705c9..7cbe45c110 100644 --- a/src/overlays/actors/ovl_Obj_Hana/z_obj_hana.c +++ b/src/overlays/actors/ovl_Obj_Hana/z_obj_hana.c @@ -26,7 +26,7 @@ const ActorInit Obj_Hana_InitVars = { (ActorFunc)ObjHana_Draw, }; -extern UNK_TYPE D_06000500; +extern Gfx D_06000500[]; static InitChainEntry sInitChain[] = { ICHAIN_VEC3F_DIV1000(scale, 10, ICHAIN_CONTINUE), @@ -48,5 +48,5 @@ void ObjHana_Update(Actor* thisx, GlobalContext* globalCtx) { } void ObjHana_Draw(Actor* thisx, GlobalContext* globalCtx) { - func_800BDFC0(globalCtx, &D_06000500); + func_800BDFC0(globalCtx, D_06000500); } diff --git a/src/overlays/actors/ovl_Obj_Kepn_Koya/z_obj_kepn_koya.c b/src/overlays/actors/ovl_Obj_Kepn_Koya/z_obj_kepn_koya.c index f318cb5967..09f3453234 100644 --- a/src/overlays/actors/ovl_Obj_Kepn_Koya/z_obj_kepn_koya.c +++ b/src/overlays/actors/ovl_Obj_Kepn_Koya/z_obj_kepn_koya.c @@ -27,7 +27,7 @@ static InitChainEntry sInitChain[] = { }; extern CollisionHeader D_0600805C; -extern UNK_TYPE D_06003478; +extern Gfx D_06003478[]; void ObjKepnKoya_Init(Actor* thisx, GlobalContext* globalCtx) { ObjKepnKoya* this = THIS; @@ -51,5 +51,5 @@ void ObjKepnKoya_Update(Actor* thisx, GlobalContext* globalCtx) { } void ObjKepnKoya_Draw(Actor* thisx, GlobalContext* globalCtx) { - func_800BDFC0(globalCtx, &D_06003478); + func_800BDFC0(globalCtx, D_06003478); } diff --git a/src/overlays/actors/ovl_Obj_Milk_Bin/z_obj_milk_bin.c b/src/overlays/actors/ovl_Obj_Milk_Bin/z_obj_milk_bin.c index 7c25414657..9f4cd90e2d 100644 --- a/src/overlays/actors/ovl_Obj_Milk_Bin/z_obj_milk_bin.c +++ b/src/overlays/actors/ovl_Obj_Milk_Bin/z_obj_milk_bin.c @@ -1,3 +1,9 @@ +/* + * File: z_obj_milk_bin.c + * Overlay: ovl_Obj_Milk_Bin + * Description: Milk jar + */ + #include "z_obj_milk_bin.h" #define FLAGS 0x00000000 @@ -9,7 +15,9 @@ void ObjMilkBin_Destroy(Actor* thisx, GlobalContext* globalCtx); void ObjMilkBin_Update(Actor* thisx, GlobalContext* globalCtx); void ObjMilkBin_Draw(Actor* thisx, GlobalContext* globalCtx); -/* +// gMilkBinMilkJarDL +extern Gfx D_060004B0[]; + const ActorInit Obj_Milk_Bin_InitVars = { ACTOR_OBJ_MILK_BIN, ACTORCAT_PROP, @@ -21,12 +29,77 @@ const ActorInit Obj_Milk_Bin_InitVars = { (ActorFunc)ObjMilkBin_Update, (ActorFunc)ObjMilkBin_Draw, }; -*/ -#pragma GLOBAL_ASM("./asm/non_matchings/overlays/ovl_Obj_Milk_Bin_0x80C08E40/ObjMilkBin_Init.asm") +static ColliderCylinderInit sCylinderInit = { + { + COLTYPE_HARD, + AT_NONE, + AC_ON | AC_TYPE_PLAYER, + OC1_ON | OC1_TYPE_ALL, + OC2_TYPE_2, + COLSHAPE_CYLINDER, + }, + { + ELEMTYPE_UNK0, + { 0x00000000, 0x00, 0x00 }, + { 0xF7CFFFFF, 0x00, 0x00 }, + TOUCH_NONE | TOUCH_SFX_NORMAL, + BUMP_ON, + OCELEM_ON, + }, + { 12, 30, 0, { 0, 0, 0 } }, +}; -#pragma GLOBAL_ASM("./asm/non_matchings/overlays/ovl_Obj_Milk_Bin_0x80C08E40/ObjMilkBin_Destroy.asm") +void ObjMilkBin_Init(Actor* thisx, GlobalContext* globalCtx) { + ObjMilkBin* this = THIS; -#pragma GLOBAL_ASM("./asm/non_matchings/overlays/ovl_Obj_Milk_Bin_0x80C08E40/ObjMilkBin_Update.asm") + Collider_InitAndSetCylinder(globalCtx, &this->collider, &this->actor, &sCylinderInit); + Collider_UpdateCylinder(&this->actor, &this->collider); -#pragma GLOBAL_ASM("./asm/non_matchings/overlays/ovl_Obj_Milk_Bin_0x80C08E40/ObjMilkBin_Draw.asm") + this->actor.shape.yOffset = 1100.0f; + this->disableDraw = 0; + this->type = thisx->params; + + if ((this->type == OBJ_MILK_BIN_TYPE_2) && !(gSaveContext.weekEventReg[0x34] & 1)) { + this->disableDraw |= 1; + } +} + +void ObjMilkBin_Destroy(Actor* thisx, GlobalContext* globalCtx) { + ObjMilkBin* this = THIS; + + Collider_DestroyCylinder(globalCtx, &this->collider); +} + +void ObjMilkBin_Update(Actor* thisx, GlobalContext* globalCtx2) { + ObjMilkBin* this = THIS; + GlobalContext* globalCtx = globalCtx2; + + if (this->type == OBJ_MILK_BIN_TYPE_1) { + if (gSaveContext.weekEventReg[0x16] & 1) { + if (((gSaveContext.day == 2) && (gSaveContext.isNight == 1)) || (gSaveContext.day >= 3)) { + Actor_MarkForDeath(&this->actor); + return; + } + } + } else if (this->type == OBJ_MILK_BIN_TYPE_2) { + if (gSaveContext.weekEventReg[0x34] & 1) { + this->disableDraw &= ~1; + } else { + this->disableDraw |= 1; + } + } + + if (!(this->disableDraw & 1)) { + CollisionCheck_SetAC(globalCtx, &globalCtx->colCheckCtx, &this->collider.base); + CollisionCheck_SetOC(globalCtx, &globalCtx->colCheckCtx, &this->collider.base); + } +} + +void ObjMilkBin_Draw(Actor* thisx, GlobalContext* globalCtx) { + ObjMilkBin* this = THIS; + + if (!(this->disableDraw & 1)) { + func_800BDFC0(globalCtx, D_060004B0); + } +} diff --git a/src/overlays/actors/ovl_Obj_Milk_Bin/z_obj_milk_bin.h b/src/overlays/actors/ovl_Obj_Milk_Bin/z_obj_milk_bin.h index fbdeee6cf2..93b0a436bb 100644 --- a/src/overlays/actors/ovl_Obj_Milk_Bin/z_obj_milk_bin.h +++ b/src/overlays/actors/ovl_Obj_Milk_Bin/z_obj_milk_bin.h @@ -7,9 +7,18 @@ struct ObjMilkBin; typedef struct ObjMilkBin { /* 0x000 */ Actor actor; - /* 0x144 */ char unk_144[0x58]; + /* 0x144 */ char unk_144[0x4]; + /* 0x148 */ ColliderCylinder collider; + /* 0x194 */ s32 disableDraw; + /* 0x198 */ s32 type; } ObjMilkBin; // size = 0x19C extern const ActorInit Obj_Milk_Bin_InitVars; +typedef enum { + /* 0 */ OBJ_MILK_BIN_TYPE_DEFAULT, + /* 1 */ OBJ_MILK_BIN_TYPE_1, // This actor will kill itself if the player has obtained the milk bottle and the current time is the night of the second day onwards. + /* 2 */ OBJ_MILK_BIN_TYPE_2 // Disables drawing and collision +} ObjMilkBinType; + #endif // Z_OBJ_MILK_BIN_H