From 4fd686d56d3dc50d83406dd2c9c32e6546e427be Mon Sep 17 00:00:00 2001 From: CovenEsme <84377742+CovenEsme@users.noreply.github.com> Date: Fri, 14 Mar 2025 04:40:02 +0000 Subject: [PATCH 1/5] d_a_obj_pumpkin_bar ok --- .../rels/d_a_obj_pumpkin_barNP/splits.txt | 2 + .../rels/d_a_obj_pumpkin_barNP/symbols.txt | 32 +++++++--- configure.py | 2 +- include/d/a/obj/d_a_obj_pumpkin_bar.h | 14 +++- include/d/col/bg/d_bg_w_base.h | 3 + src/REL/d/a/obj/d_a_obj_pumpkin_bar.cpp | 64 +++++++++++++++++++ 6 files changed, 105 insertions(+), 12 deletions(-) diff --git a/config/SOUE01/rels/d_a_obj_pumpkin_barNP/splits.txt b/config/SOUE01/rels/d_a_obj_pumpkin_barNP/splits.txt index 55f8a961..0dab6b7a 100644 --- a/config/SOUE01/rels/d_a_obj_pumpkin_barNP/splits.txt +++ b/config/SOUE01/rels/d_a_obj_pumpkin_barNP/splits.txt @@ -11,3 +11,5 @@ REL/executor.c: REL/d/a/obj/d_a_obj_pumpkin_bar.cpp: .text start:0x00000070 end:0x00000490 + .rodata start:0x00000000 end:0x00000020 + .data start:0x00000000 end:0x00000100 diff --git a/config/SOUE01/rels/d_a_obj_pumpkin_barNP/symbols.txt b/config/SOUE01/rels/d_a_obj_pumpkin_barNP/symbols.txt index 7ed586a7..5363aeb5 100644 --- a/config/SOUE01/rels/d_a_obj_pumpkin_barNP/symbols.txt +++ b/config/SOUE01/rels/d_a_obj_pumpkin_barNP/symbols.txt @@ -2,16 +2,28 @@ _prolog = .text:0x00000000; // type:function size:0x2C scope:global _epilog = .text:0x00000030; // type:function size:0x2C scope:global _unresolved = .text:0x00000060; // type:function size:0x4 scope:global dAcOpumpkinBar_c_classInit__Fv = .text:0x00000070; // type:function size:0x6C -fn_391_E0 = .text:0x000000E0; // type:function size:0x7C -AcOpumpkinBar__initModels = .text:0x00000160; // type:function size:0x158 -AcOpumpkinBar__init = .text:0x000002C0; // type:function size:0xF4 -fn_391_3C0 = .text:0x000003C0; // type:function size:0x8 -fn_391_3D0 = .text:0x000003D0; // type:function size:0x8 -AcOpumpkinBar__draw = .text:0x000003E0; // type:function size:0x28 +barCollisionRideCallback__16dAcOpumpkinBar_cFP4dBgWP12dAcObjBase_cP12dAcObjBase_c = .text:0x000000E0; // type:function size:0x7C +createHeap__16dAcOpumpkinBar_cFv = .text:0x00000160; // type:function size:0x158 +create__16dAcOpumpkinBar_cFv = .text:0x000002C0; // type:function size:0xF4 +doDelete__16dAcOpumpkinBar_cFv = .text:0x000003C0; // type:function size:0x8 +actorExecute__16dAcOpumpkinBar_cFv = .text:0x000003D0; // type:function size:0x8 +draw__16dAcOpumpkinBar_cFv = .text:0x000003E0; // type:function size:0x28 __dt__16dAcOpumpkinBar_cFv = .text:0x00000410; // type:function size:0x80 _ctors = .ctors:0x00000000; // type:label scope:global _dtors = .dtors:0x00000000; // type:label scope:global -lbl_391_rodata_0 = .rodata:0x00000000; // type:object size:0x20 data:float -g_profile_OBJ_PUMPKIN_BAR = .data:0x00000000; // type:object size:0x60 -lbl_391_data_60 = .data:0x00000060; // type:object size:0x20 -AcOpumpkinBar__vtable = .data:0x00000080; // type:object size:0x80 +lbl_391_rodata_00 = .rodata:0x00000000; // type:object size:0x4 scope:local data:float +lbl_391_rodata_04 = .rodata:0x00000004; // type:object size:0x4 scope:local data:float +lbl_391_rodata_08 = .rodata:0x00000008; // type:object size:0x4 scope:local data:float +lbl_391_rodata_0C = .rodata:0x0000000C; // type:object size:0x4 scope:local data:float +lbl_391_rodata_10 = .rodata:0x00000010; // type:object size:0x4 scope:local data:float +lbl_391_rodata_14 = .rodata:0x00000014; // type:object size:0x4 scope:local data:float +lbl_391_rodata_18 = .rodata:0x00000018; // type:object size:0x4 scope:local data:float +lbl_391_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 scope:local data:float +g_profile_OBJ_PUMPKIN_BAR = .data:0x00000000; // type:object size:0x10 +lbl_391_data_10 = .data:0x00000010; // type:object size:0x7 scope:local data:string +lbl_391_data_18 = .data:0x00000018; // type:object size:0xE scope:local data:string +lbl_391_data_28 = .data:0x00000028; // type:object size:0xE scope:local data:string +lbl_391_data_28 = .data:0x00000038; // type:object size:0x14 scope:local data:string +lbl_391_data_4C = .data:0x0000004C; // type:object size:0x14 scope:local data:string +lbl_391_data_60 = .data:0x00000060; // type:object size:0x1F scope:local data:string +__vt__16dAcOpumpkinBar_c = .data:0x00000080; // type:object size:0x80 diff --git a/configure.py b/configure.py index 73d9b554..7b6b6359 100644 --- a/configure.py +++ b/configure.py @@ -1524,7 +1524,7 @@ config.libs = [ NonMatching, "d_a_obj_propeller_lift", "REL/d/a/obj/d_a_obj_propeller_lift.cpp" ), Rel(NonMatching, "d_a_obj_propera", "REL/d/a/obj/d_a_obj_propera.cpp"), - Rel(NonMatching, "d_a_obj_pumpkin_bar", "REL/d/a/obj/d_a_obj_pumpkin_bar.cpp"), + Rel(Matching, "d_a_obj_pumpkin_bar", "REL/d/a/obj/d_a_obj_pumpkin_bar.cpp"), Rel(Matching, "d_a_obj_pumpkin_leaf", "REL/d/a/obj/d_a_obj_pumpkin_leaf.cpp"), Rel(NonMatching, "d_a_obj_push_block", "REL/d/a/obj/d_a_obj_push_block.cpp"), Rel(NonMatching, "d_a_obj_puzzle_island", "REL/d/a/obj/d_a_obj_puzzle_island.cpp"), diff --git a/include/d/a/obj/d_a_obj_pumpkin_bar.h b/include/d/a/obj/d_a_obj_pumpkin_bar.h index c1c06e63..bf6a1765 100644 --- a/include/d/a/obj/d_a_obj_pumpkin_bar.h +++ b/include/d/a/obj/d_a_obj_pumpkin_bar.h @@ -2,11 +2,23 @@ #define D_A_OBJ_PUMPKIN_BAR_H #include "d/a/obj/d_a_obj_base.h" +#include "d/col/bg/d_bg_w.h" class dAcOpumpkinBar_c : public dAcObjBase_c { public: + static void barCollisionRideCallback(dBgW *collider, dAcObjBase_c *actor, dAcObjBase_c *interactor); dAcOpumpkinBar_c() {} - virtual ~dAcOpumpkinBar_c() {} + virtual int create() override; + virtual int doDelete() override; + virtual int draw() override; + virtual bool createHeap() override; + virtual ~dAcOpumpkinBar_c() override; + virtual int actorExecute() override; + + /* 0x330 */ m3d::smdl_c mModel; + /* 0x34C */ nw4r::g3d::ResFile mResFile; + /* 0x350 */ dBgW mBarCollision; + /* 0x560 */ dBgW mBarBirdCollision; private: }; diff --git a/include/d/col/bg/d_bg_w_base.h b/include/d/col/bg/d_bg_w_base.h index 43e0b1ef..554cc17a 100644 --- a/include/d/col/bg/d_bg_w_base.h +++ b/include/d/col/bg/d_bg_w_base.h @@ -200,6 +200,9 @@ public: u16 GetField_0x22() const { return field_0x22; } + void SetField_0x22(u16 val) { + field_0x22 = val; + } bool ChkStickWall() const { return field_0x24 & 1; diff --git a/src/REL/d/a/obj/d_a_obj_pumpkin_bar.cpp b/src/REL/d/a/obj/d_a_obj_pumpkin_bar.cpp index 8dbecdbb..90f046c8 100644 --- a/src/REL/d/a/obj/d_a_obj_pumpkin_bar.cpp +++ b/src/REL/d/a/obj/d_a_obj_pumpkin_bar.cpp @@ -1,3 +1,67 @@ #include "d/a/obj/d_a_obj_pumpkin_bar.h" +#include "d/a/obj/d_a_obj_base.h" +#include "d/col/bg/d_bg_s.h" +#include "d/d_stage.h" +#include "d/flag/storyflag_manager.h" + SPECIAL_ACTOR_PROFILE(OBJ_PUMPKIN_BAR, dAcOpumpkinBar_c, fProfile::OBJ_PUMPKIN_BAR, 0x1ED, 0, 3); + +void dAcOpumpkinBar_c::barCollisionRideCallback(dBgW *collider, dAcObjBase_c *actor, dAcObjBase_c *interactor) { + if (interactor->isActorPlayer() && actor != 0 && !StoryflagManager::sInstance->getCounterOrFlag(282)) { + StoryflagManager::sInstance->setFlag(282); + } +} + +bool dAcOpumpkinBar_c::createHeap() { + mResFile = nw4r::g3d::ResFile(getOarcResFile("IslBar")); + dStage_c::bindStageResToFile(&mResFile); + dStage_c::bindSkyCmnToResFile(&mResFile); + + nw4r::g3d::ResMdl mdl = mResFile.GetResMdl("IslBar"); + TRY_CREATE(mModel.create(mdl, &heap_allocator, 0x120)); + + void *dzb = getOarcFile("IslBar", "dzb/IslBar.dzb"); + void *plc = getOarcFile("IslBar", "dat/IslBar.plc"); + updateMatrix(); + mModel.setLocalMtx(mWorldMtx); + TRY_CREATE(!mBarCollision.Set((cBgD_t *)dzb, (PLC *)plc, cBgW::MOVE_BG_e, &mWorldMtx, &mScale)); + mBarCollision.Lock(); + + dzb = getOarcFile("IslBar", "dzb/IslBar_Bird.dzb"); + plc = getOarcFile("IslBar", "dat/IslBar_Bird.plc"); + TRY_CREATE(!mBarBirdCollision.Set((cBgD_t *)dzb, (PLC *)plc, cBgW::MOVE_BG_e, &mWorldMtx, &mScale)); + mBarBirdCollision.Lock(); + return true; +} + +int dAcOpumpkinBar_c::create() { + CREATE_ALLOCATOR(dAcOpumpkinBar_c); + dBgS::GetInstance()->Regist(&mBarCollision, this); + dBgS::GetInstance()->Regist(&mBarBirdCollision, this); + mBarBirdCollision.SetField_0x22(2); + mModel.setPriorityDraw(0x1C, 0x9); + // 100000.0 is in the rodata and the instructions need it. + // This also works if a separate variable is used but I + // think it's more likely that mCullingDistance got set twice. + mCullingDistance = 100000.0; + boundingBox.Set(mVec3_c(-2790.0f, -1450.0f, -8270.0f), mVec3_c(2880.0f, 2120.0f, 1370.0f)); + mCullingDistance = 500000.0; + mBarCollision.SetRideCallback(barCollisionRideCallback); + return SUCCEEDED; +} + +int dAcOpumpkinBar_c::doDelete() { + return SUCCEEDED; +} + +int dAcOpumpkinBar_c::actorExecute() { + return SUCCEEDED; +} + +int dAcOpumpkinBar_c::draw() { + drawModelType1(&mModel); + return SUCCEEDED; +} + +dAcOpumpkinBar_c::~dAcOpumpkinBar_c() {} From 6c1ca016673b795734f207a33c49215bb0b134d6 Mon Sep 17 00:00:00 2001 From: CovenEsme <84377742+CovenEsme@users.noreply.github.com> Date: Fri, 14 Mar 2025 13:06:28 +0000 Subject: [PATCH 2/5] Make members private --- include/d/a/obj/d_a_obj_fence_boko.h | 3 +-- include/d/a/obj/d_a_obj_fence_boko2.h | 3 +-- include/d/a/obj/d_a_obj_fence_konsai.h | 3 +-- include/d/a/obj/d_a_obj_iron_stage.h | 3 +-- include/d/a/obj/d_a_obj_pumpkin_bar.h | 3 +-- include/d/a/obj/d_a_obj_shrine_after.h | 3 +-- include/d/a/obj/d_a_obj_shrine_bef_inside.h | 3 +-- include/d/a/obj/d_a_obj_shrine_before.h | 3 +-- 8 files changed, 8 insertions(+), 16 deletions(-) diff --git a/include/d/a/obj/d_a_obj_fence_boko.h b/include/d/a/obj/d_a_obj_fence_boko.h index 9bc69e21..f44432ed 100644 --- a/include/d/a/obj/d_a_obj_fence_boko.h +++ b/include/d/a/obj/d_a_obj_fence_boko.h @@ -14,12 +14,11 @@ public: virtual ~dAcOfenceBoko_c() {} virtual int actorExecute() override; +private: /* 0x330 */ nw4r::g3d::ResFile mResFile; /* 0x334 */ m3d::smdl_c mModel; /* 0x350 */ dBgW mCollision; /* 0x560 */ bool field_0x560; - -private: }; #endif diff --git a/include/d/a/obj/d_a_obj_fence_boko2.h b/include/d/a/obj/d_a_obj_fence_boko2.h index f270c1b9..2c638ba2 100644 --- a/include/d/a/obj/d_a_obj_fence_boko2.h +++ b/include/d/a/obj/d_a_obj_fence_boko2.h @@ -14,11 +14,10 @@ public: virtual ~dAcOfenceBoko2_c() {} virtual int actorExecute() override; +private: /* 0x330 */ nw4r::g3d::ResFile mResFile; /* 0x334 */ m3d::smdl_c mModel; /* 0x350 */ dBgW mCollision; - -private: }; #endif diff --git a/include/d/a/obj/d_a_obj_fence_konsai.h b/include/d/a/obj/d_a_obj_fence_konsai.h index a72fc500..b2c69670 100644 --- a/include/d/a/obj/d_a_obj_fence_konsai.h +++ b/include/d/a/obj/d_a_obj_fence_konsai.h @@ -14,11 +14,10 @@ public: virtual ~dAcOfenceKonsai_c() {} virtual int actorExecute() override; +private: /* 0x330 */ nw4r::g3d::ResFile mResFile; /* 0x334 */ m3d::smdl_c mModel; /* 0x350 */ dBgW mCollision; - -private: }; #endif diff --git a/include/d/a/obj/d_a_obj_iron_stage.h b/include/d/a/obj/d_a_obj_iron_stage.h index a27a5758..bc2a4933 100644 --- a/include/d/a/obj/d_a_obj_iron_stage.h +++ b/include/d/a/obj/d_a_obj_iron_stage.h @@ -16,11 +16,10 @@ public: virtual ~dAcOironStage_c() {} virtual int actorExecute() override; +private: /* 0x330 */ nw4r::g3d::ResFile mResFile; /* 0x334 */ m3d::smdl_c mModel; /* 0x350 */ dBgW mCollision; - -private: }; #endif diff --git a/include/d/a/obj/d_a_obj_pumpkin_bar.h b/include/d/a/obj/d_a_obj_pumpkin_bar.h index bf6a1765..083342b1 100644 --- a/include/d/a/obj/d_a_obj_pumpkin_bar.h +++ b/include/d/a/obj/d_a_obj_pumpkin_bar.h @@ -15,12 +15,11 @@ public: virtual ~dAcOpumpkinBar_c() override; virtual int actorExecute() override; +private: /* 0x330 */ m3d::smdl_c mModel; /* 0x34C */ nw4r::g3d::ResFile mResFile; /* 0x350 */ dBgW mBarCollision; /* 0x560 */ dBgW mBarBirdCollision; - -private: }; #endif diff --git a/include/d/a/obj/d_a_obj_shrine_after.h b/include/d/a/obj/d_a_obj_shrine_after.h index 3b20746e..38bda595 100644 --- a/include/d/a/obj/d_a_obj_shrine_after.h +++ b/include/d/a/obj/d_a_obj_shrine_after.h @@ -13,10 +13,9 @@ public: virtual ~dAcOshrineAfter_c() {} virtual int actorExecute() override; +private: /* 0x330 */ nw4r::g3d::ResFile mResFile; /* 0x334 */ m3d::smdl_c mModel; - -private: }; #endif diff --git a/include/d/a/obj/d_a_obj_shrine_bef_inside.h b/include/d/a/obj/d_a_obj_shrine_bef_inside.h index c6d9f64c..18b1b3c6 100644 --- a/include/d/a/obj/d_a_obj_shrine_bef_inside.h +++ b/include/d/a/obj/d_a_obj_shrine_bef_inside.h @@ -14,11 +14,10 @@ public: virtual ~dAcOshrineBefInside_c() {} virtual int actorExecute() override; +private: /* 0x330 */ nw4r::g3d::ResFile mResFile; /* 0x334 */ m3d::smdl_c mModel[2]; /* 0x36C */ dBgW mCollision; - -private: }; #endif diff --git a/include/d/a/obj/d_a_obj_shrine_before.h b/include/d/a/obj/d_a_obj_shrine_before.h index 6930e772..4c470a69 100644 --- a/include/d/a/obj/d_a_obj_shrine_before.h +++ b/include/d/a/obj/d_a_obj_shrine_before.h @@ -13,10 +13,9 @@ public: virtual ~dAcOshrineBefore_c() {} virtual int actorExecute() override; +private: /* 0x330 */ nw4r::g3d::ResFile mResFile; /* 0x334 */ m3d::smdl_c mModel; - -private: }; #endif From d3d336f7a3d669f43599988e594877f603d1ad10 Mon Sep 17 00:00:00 2001 From: CovenEsme <84377742+CovenEsme@users.noreply.github.com> Date: Fri, 14 Mar 2025 13:11:59 +0000 Subject: [PATCH 3/5] Add float f suffix --- .../Math/Double_precision/s_sin.c | 23 +++++++++---------- .../Math/Double_precision/s_tan.c | 11 +++++---- src/REL/d/a/obj/d_a_obj_fence_boko.cpp | 2 +- src/REL/d/a/obj/d_a_obj_fence_boko2.cpp | 2 +- src/REL/d/a/obj/d_a_obj_iron_stage.cpp | 2 +- src/REL/d/a/obj/d_a_obj_pumpkin_bar.cpp | 4 ++-- src/REL/d/a/obj/d_a_obj_shrine_after.cpp | 2 +- src/REL/d/a/obj/d_a_obj_shrine_before.cpp | 2 +- src/egg/core/eggController.cpp | 13 +++++------ 9 files changed, 31 insertions(+), 30 deletions(-) diff --git a/src/PowerPC_EABI_Support/MSL/MSL_C/MSL_Common_Embedded/Math/Double_precision/s_sin.c b/src/PowerPC_EABI_Support/MSL/MSL_C/MSL_Common_Embedded/Math/Double_precision/s_sin.c index ad62cff9..4d8bae38 100644 --- a/src/PowerPC_EABI_Support/MSL/MSL_C/MSL_Common_Embedded/Math/Double_precision/s_sin.c +++ b/src/PowerPC_EABI_Support/MSL/MSL_C/MSL_Common_Embedded/Math/Double_precision/s_sin.c @@ -46,7 +46,8 @@ #ifdef __STDC__ double sin(double x) #else -double sin(x) double x; +double sin(x) +double x; #endif { double y[2], z = 0.0; @@ -57,25 +58,23 @@ double sin(x) double x; /* |x| ~< pi/4 */ ix &= 0x7fffffff; - if (ix <= 0x3fe921fb) + if (ix <= 0x3fe921fb) { return __kernel_sin(x, z, 0); + } /* sin(Inf or NaN) is NaN */ - else if (ix >= 0x7ff00000) + else if (ix >= 0x7ff00000) { return x - x; + } /* argument reduction needed */ else { n = __ieee754_rem_pio2(x, y); switch (n & 3) { - case 0: - return __kernel_sin(y[0], y[1], 1); - case 1: - return __kernel_cos(y[0], y[1]); - case 2: - return -__kernel_sin(y[0], y[1], 1); - default: - return -__kernel_cos(y[0], y[1]); + case 0: return __kernel_sin(y[0], y[1], 1); + case 1: return __kernel_cos(y[0], y[1]); + case 2: return -__kernel_sin(y[0], y[1], 1); + default: return -__kernel_cos(y[0], y[1]); } } -} \ No newline at end of file +} diff --git a/src/PowerPC_EABI_Support/MSL/MSL_C/MSL_Common_Embedded/Math/Double_precision/s_tan.c b/src/PowerPC_EABI_Support/MSL/MSL_C/MSL_Common_Embedded/Math/Double_precision/s_tan.c index 88296b42..8a4b6275 100644 --- a/src/PowerPC_EABI_Support/MSL/MSL_C/MSL_Common_Embedded/Math/Double_precision/s_tan.c +++ b/src/PowerPC_EABI_Support/MSL/MSL_C/MSL_Common_Embedded/Math/Double_precision/s_tan.c @@ -45,7 +45,8 @@ #ifdef __STDC__ double tan(double x) #else -double tan(x) double x; +double tan(x) +double x; #endif { double y[2], z = 0.0; @@ -56,12 +57,14 @@ double tan(x) double x; /* |x| ~< pi/4 */ ix &= 0x7fffffff; - if (ix <= 0x3fe921fb) + if (ix <= 0x3fe921fb) { return __kernel_tan(x, z, 1); + } /* tan(Inf or NaN) is NaN */ - else if (ix >= 0x7ff00000) + else if (ix >= 0x7ff00000) { return x - x; /* NaN */ + } /* argument reduction needed */ else { @@ -69,4 +72,4 @@ double tan(x) double x; return __kernel_tan(y[0], y[1], 1 - ((n & 1) << 1)); /* 1 -- n even -1 -- n odd */ } -} \ No newline at end of file +} diff --git a/src/REL/d/a/obj/d_a_obj_fence_boko.cpp b/src/REL/d/a/obj/d_a_obj_fence_boko.cpp index 854552be..2ac61e55 100644 --- a/src/REL/d/a/obj/d_a_obj_fence_boko.cpp +++ b/src/REL/d/a/obj/d_a_obj_fence_boko.cpp @@ -27,7 +27,7 @@ int dAcOfenceBoko_c::create() { roomid = mCollision.mRoomId; mModel.setPriorityDraw(0x1C, 0x9); boundingBox.Set(mVec3_c(-210.0f, -10.0f, -20.0f), mVec3_c(210.0f, 340.0f, 20.0f)); - mCullingDistance = 50000.0; + mCullingDistance = 50000.0f; return SUCCEEDED; } diff --git a/src/REL/d/a/obj/d_a_obj_fence_boko2.cpp b/src/REL/d/a/obj/d_a_obj_fence_boko2.cpp index 8792f07a..f55c87b1 100644 --- a/src/REL/d/a/obj/d_a_obj_fence_boko2.cpp +++ b/src/REL/d/a/obj/d_a_obj_fence_boko2.cpp @@ -23,7 +23,7 @@ int dAcOfenceBoko2_c::create() { dBgS::GetInstance()->RegistBg(&mCollision, this); mModel.setPriorityDraw(0x1C, 0x9); boundingBox.Set(mVec3_c(-160.0f, -40.0f, -70.0f), mVec3_c(180.0f, 300.0f, 60.0f)); - mCullingDistance = 50000.0; + mCullingDistance = 50000.0f; return SUCCEEDED; } diff --git a/src/REL/d/a/obj/d_a_obj_iron_stage.cpp b/src/REL/d/a/obj/d_a_obj_iron_stage.cpp index 9ee35a1f..e4f2b57e 100644 --- a/src/REL/d/a/obj/d_a_obj_iron_stage.cpp +++ b/src/REL/d/a/obj/d_a_obj_iron_stage.cpp @@ -23,7 +23,7 @@ int dAcOironStage_c::create() { dBgS::GetInstance()->Regist(&mCollision, this); mModel.setPriorityDraw(0x1C, 0x9); boundingBox.Set(mVec3_c(-460.0f, -210.0f, -260.0f), mVec3_c(460.0f, 210.0f, 260.0f)); - mCullingDistance = 15000.0; + mCullingDistance = 15000.0f; return SUCCEEDED; } diff --git a/src/REL/d/a/obj/d_a_obj_pumpkin_bar.cpp b/src/REL/d/a/obj/d_a_obj_pumpkin_bar.cpp index 90f046c8..42d95a42 100644 --- a/src/REL/d/a/obj/d_a_obj_pumpkin_bar.cpp +++ b/src/REL/d/a/obj/d_a_obj_pumpkin_bar.cpp @@ -44,9 +44,9 @@ int dAcOpumpkinBar_c::create() { // 100000.0 is in the rodata and the instructions need it. // This also works if a separate variable is used but I // think it's more likely that mCullingDistance got set twice. - mCullingDistance = 100000.0; + mCullingDistance = 100000.0f; boundingBox.Set(mVec3_c(-2790.0f, -1450.0f, -8270.0f), mVec3_c(2880.0f, 2120.0f, 1370.0f)); - mCullingDistance = 500000.0; + mCullingDistance = 500000.0f; mBarCollision.SetRideCallback(barCollisionRideCallback); return SUCCEEDED; } diff --git a/src/REL/d/a/obj/d_a_obj_shrine_after.cpp b/src/REL/d/a/obj/d_a_obj_shrine_after.cpp index 4796600c..782c3883 100644 --- a/src/REL/d/a/obj/d_a_obj_shrine_after.cpp +++ b/src/REL/d/a/obj/d_a_obj_shrine_after.cpp @@ -15,7 +15,7 @@ int dAcOshrineAfter_c::create() { mModel.setLocalMtx(mWorldMtx); mModel.setPriorityDraw(0x1C, 0x9); boundingBox.Set(mVec3_c(-4000.0f, 7000.0f, 5000.0f), mVec3_c(5000.0f, 15000.0f, 14000.0f)); - mCullingDistance = 50000.0; + mCullingDistance = 50000.0f; return SUCCEEDED; } diff --git a/src/REL/d/a/obj/d_a_obj_shrine_before.cpp b/src/REL/d/a/obj/d_a_obj_shrine_before.cpp index 9bca3319..441a93fd 100644 --- a/src/REL/d/a/obj/d_a_obj_shrine_before.cpp +++ b/src/REL/d/a/obj/d_a_obj_shrine_before.cpp @@ -15,7 +15,7 @@ int dAcOshrineBefore_c::create() { mModel.setLocalMtx(mWorldMtx); mModel.setPriorityDraw(0x1C, 0x9); boundingBox.Set(mVec3_c(-4000.0f, 7000.0f, 5000.0f), mVec3_c(4000.0f, 13000.0f, 14000.0f)); - mCullingDistance = 50000.0; + mCullingDistance = 50000.0f; return SUCCEEDED; } diff --git a/src/egg/core/eggController.cpp b/src/egg/core/eggController.cpp index b73a02a4..bcc0c551 100644 --- a/src/egg/core/eggController.cpp +++ b/src/egg/core/eggController.cpp @@ -8,7 +8,6 @@ #include "rvl/VI.h" // IWYU pragma: export #include "string.h" - EGG::NullController null_controller; namespace EGG { @@ -63,8 +62,8 @@ CoreController::CoreController() : mDpdPos(), mAccel(), mAccelFlags(), mFlag(0) void CoreController::sceneReset() { mAccel.set(0.0, 0.0, 0.0); - mDpdPos.x = 0.0; - mDpdPos.y = 0.0; + mDpdPos.x = 0.0f; + mDpdPos.y = 0.0f; mIdleTime = 0; mPostureMatrixPrev.makeIdentity(); mPostureMatrix.makeIdentity(); @@ -286,7 +285,7 @@ void CoreController::endFrame() { /* 0x80499AC0 */ f32 CoreController::getFreeStickX() const { if (mCoreStatus->getDevType() == WPAD_DEV_CORE) { - return 0.0; + return 0.0f; } return mCoreStatus[0].getFSStickX(); } @@ -294,7 +293,7 @@ f32 CoreController::getFreeStickX() const { /* 0x80499AE0 */ f32 CoreController::getFreeStickY() const { if (mCoreStatus->getDevType() == WPAD_DEV_CORE) { - return 0.0; + return 0.0f; } return mCoreStatus[0].getFSStickY(); } @@ -429,8 +428,8 @@ void ControllerRumbleUnit::init() { mPattern = nullptr; mPatternPos = nullptr; mTimer = 0; - mIntensity = 0.0; - mRampUp = 0.0; + mIntensity = 0.0f; + mRampUp = 0.0f; mFlag.makeAllZero(); } From 6b88fbfb8e98827e1cc83f0f18fa5a39c3d09bb4 Mon Sep 17 00:00:00 2001 From: CovenEsme <84377742+CovenEsme@users.noreply.github.com> Date: Fri, 14 Mar 2025 13:31:49 +0000 Subject: [PATCH 4/5] Revert "Add float f suffix" This reverts commit d3d336f7a3d669f43599988e594877f603d1ad10. --- .../Math/Double_precision/s_sin.c | 23 ++++++++++--------- .../Math/Double_precision/s_tan.c | 11 ++++----- src/REL/d/a/obj/d_a_obj_fence_boko.cpp | 2 +- src/REL/d/a/obj/d_a_obj_fence_boko2.cpp | 2 +- src/REL/d/a/obj/d_a_obj_iron_stage.cpp | 2 +- src/REL/d/a/obj/d_a_obj_pumpkin_bar.cpp | 4 ++-- src/REL/d/a/obj/d_a_obj_shrine_after.cpp | 2 +- src/REL/d/a/obj/d_a_obj_shrine_before.cpp | 2 +- src/egg/core/eggController.cpp | 13 ++++++----- 9 files changed, 30 insertions(+), 31 deletions(-) diff --git a/src/PowerPC_EABI_Support/MSL/MSL_C/MSL_Common_Embedded/Math/Double_precision/s_sin.c b/src/PowerPC_EABI_Support/MSL/MSL_C/MSL_Common_Embedded/Math/Double_precision/s_sin.c index 4d8bae38..ad62cff9 100644 --- a/src/PowerPC_EABI_Support/MSL/MSL_C/MSL_Common_Embedded/Math/Double_precision/s_sin.c +++ b/src/PowerPC_EABI_Support/MSL/MSL_C/MSL_Common_Embedded/Math/Double_precision/s_sin.c @@ -46,8 +46,7 @@ #ifdef __STDC__ double sin(double x) #else -double sin(x) -double x; +double sin(x) double x; #endif { double y[2], z = 0.0; @@ -58,23 +57,25 @@ double x; /* |x| ~< pi/4 */ ix &= 0x7fffffff; - if (ix <= 0x3fe921fb) { + if (ix <= 0x3fe921fb) return __kernel_sin(x, z, 0); - } /* sin(Inf or NaN) is NaN */ - else if (ix >= 0x7ff00000) { + else if (ix >= 0x7ff00000) return x - x; - } /* argument reduction needed */ else { n = __ieee754_rem_pio2(x, y); switch (n & 3) { - case 0: return __kernel_sin(y[0], y[1], 1); - case 1: return __kernel_cos(y[0], y[1]); - case 2: return -__kernel_sin(y[0], y[1], 1); - default: return -__kernel_cos(y[0], y[1]); + case 0: + return __kernel_sin(y[0], y[1], 1); + case 1: + return __kernel_cos(y[0], y[1]); + case 2: + return -__kernel_sin(y[0], y[1], 1); + default: + return -__kernel_cos(y[0], y[1]); } } -} +} \ No newline at end of file diff --git a/src/PowerPC_EABI_Support/MSL/MSL_C/MSL_Common_Embedded/Math/Double_precision/s_tan.c b/src/PowerPC_EABI_Support/MSL/MSL_C/MSL_Common_Embedded/Math/Double_precision/s_tan.c index 8a4b6275..88296b42 100644 --- a/src/PowerPC_EABI_Support/MSL/MSL_C/MSL_Common_Embedded/Math/Double_precision/s_tan.c +++ b/src/PowerPC_EABI_Support/MSL/MSL_C/MSL_Common_Embedded/Math/Double_precision/s_tan.c @@ -45,8 +45,7 @@ #ifdef __STDC__ double tan(double x) #else -double tan(x) -double x; +double tan(x) double x; #endif { double y[2], z = 0.0; @@ -57,14 +56,12 @@ double x; /* |x| ~< pi/4 */ ix &= 0x7fffffff; - if (ix <= 0x3fe921fb) { + if (ix <= 0x3fe921fb) return __kernel_tan(x, z, 1); - } /* tan(Inf or NaN) is NaN */ - else if (ix >= 0x7ff00000) { + else if (ix >= 0x7ff00000) return x - x; /* NaN */ - } /* argument reduction needed */ else { @@ -72,4 +69,4 @@ double x; return __kernel_tan(y[0], y[1], 1 - ((n & 1) << 1)); /* 1 -- n even -1 -- n odd */ } -} +} \ No newline at end of file diff --git a/src/REL/d/a/obj/d_a_obj_fence_boko.cpp b/src/REL/d/a/obj/d_a_obj_fence_boko.cpp index 2ac61e55..854552be 100644 --- a/src/REL/d/a/obj/d_a_obj_fence_boko.cpp +++ b/src/REL/d/a/obj/d_a_obj_fence_boko.cpp @@ -27,7 +27,7 @@ int dAcOfenceBoko_c::create() { roomid = mCollision.mRoomId; mModel.setPriorityDraw(0x1C, 0x9); boundingBox.Set(mVec3_c(-210.0f, -10.0f, -20.0f), mVec3_c(210.0f, 340.0f, 20.0f)); - mCullingDistance = 50000.0f; + mCullingDistance = 50000.0; return SUCCEEDED; } diff --git a/src/REL/d/a/obj/d_a_obj_fence_boko2.cpp b/src/REL/d/a/obj/d_a_obj_fence_boko2.cpp index f55c87b1..8792f07a 100644 --- a/src/REL/d/a/obj/d_a_obj_fence_boko2.cpp +++ b/src/REL/d/a/obj/d_a_obj_fence_boko2.cpp @@ -23,7 +23,7 @@ int dAcOfenceBoko2_c::create() { dBgS::GetInstance()->RegistBg(&mCollision, this); mModel.setPriorityDraw(0x1C, 0x9); boundingBox.Set(mVec3_c(-160.0f, -40.0f, -70.0f), mVec3_c(180.0f, 300.0f, 60.0f)); - mCullingDistance = 50000.0f; + mCullingDistance = 50000.0; return SUCCEEDED; } diff --git a/src/REL/d/a/obj/d_a_obj_iron_stage.cpp b/src/REL/d/a/obj/d_a_obj_iron_stage.cpp index e4f2b57e..9ee35a1f 100644 --- a/src/REL/d/a/obj/d_a_obj_iron_stage.cpp +++ b/src/REL/d/a/obj/d_a_obj_iron_stage.cpp @@ -23,7 +23,7 @@ int dAcOironStage_c::create() { dBgS::GetInstance()->Regist(&mCollision, this); mModel.setPriorityDraw(0x1C, 0x9); boundingBox.Set(mVec3_c(-460.0f, -210.0f, -260.0f), mVec3_c(460.0f, 210.0f, 260.0f)); - mCullingDistance = 15000.0f; + mCullingDistance = 15000.0; return SUCCEEDED; } diff --git a/src/REL/d/a/obj/d_a_obj_pumpkin_bar.cpp b/src/REL/d/a/obj/d_a_obj_pumpkin_bar.cpp index 42d95a42..90f046c8 100644 --- a/src/REL/d/a/obj/d_a_obj_pumpkin_bar.cpp +++ b/src/REL/d/a/obj/d_a_obj_pumpkin_bar.cpp @@ -44,9 +44,9 @@ int dAcOpumpkinBar_c::create() { // 100000.0 is in the rodata and the instructions need it. // This also works if a separate variable is used but I // think it's more likely that mCullingDistance got set twice. - mCullingDistance = 100000.0f; + mCullingDistance = 100000.0; boundingBox.Set(mVec3_c(-2790.0f, -1450.0f, -8270.0f), mVec3_c(2880.0f, 2120.0f, 1370.0f)); - mCullingDistance = 500000.0f; + mCullingDistance = 500000.0; mBarCollision.SetRideCallback(barCollisionRideCallback); return SUCCEEDED; } diff --git a/src/REL/d/a/obj/d_a_obj_shrine_after.cpp b/src/REL/d/a/obj/d_a_obj_shrine_after.cpp index 782c3883..4796600c 100644 --- a/src/REL/d/a/obj/d_a_obj_shrine_after.cpp +++ b/src/REL/d/a/obj/d_a_obj_shrine_after.cpp @@ -15,7 +15,7 @@ int dAcOshrineAfter_c::create() { mModel.setLocalMtx(mWorldMtx); mModel.setPriorityDraw(0x1C, 0x9); boundingBox.Set(mVec3_c(-4000.0f, 7000.0f, 5000.0f), mVec3_c(5000.0f, 15000.0f, 14000.0f)); - mCullingDistance = 50000.0f; + mCullingDistance = 50000.0; return SUCCEEDED; } diff --git a/src/REL/d/a/obj/d_a_obj_shrine_before.cpp b/src/REL/d/a/obj/d_a_obj_shrine_before.cpp index 441a93fd..9bca3319 100644 --- a/src/REL/d/a/obj/d_a_obj_shrine_before.cpp +++ b/src/REL/d/a/obj/d_a_obj_shrine_before.cpp @@ -15,7 +15,7 @@ int dAcOshrineBefore_c::create() { mModel.setLocalMtx(mWorldMtx); mModel.setPriorityDraw(0x1C, 0x9); boundingBox.Set(mVec3_c(-4000.0f, 7000.0f, 5000.0f), mVec3_c(4000.0f, 13000.0f, 14000.0f)); - mCullingDistance = 50000.0f; + mCullingDistance = 50000.0; return SUCCEEDED; } diff --git a/src/egg/core/eggController.cpp b/src/egg/core/eggController.cpp index bcc0c551..b73a02a4 100644 --- a/src/egg/core/eggController.cpp +++ b/src/egg/core/eggController.cpp @@ -8,6 +8,7 @@ #include "rvl/VI.h" // IWYU pragma: export #include "string.h" + EGG::NullController null_controller; namespace EGG { @@ -62,8 +63,8 @@ CoreController::CoreController() : mDpdPos(), mAccel(), mAccelFlags(), mFlag(0) void CoreController::sceneReset() { mAccel.set(0.0, 0.0, 0.0); - mDpdPos.x = 0.0f; - mDpdPos.y = 0.0f; + mDpdPos.x = 0.0; + mDpdPos.y = 0.0; mIdleTime = 0; mPostureMatrixPrev.makeIdentity(); mPostureMatrix.makeIdentity(); @@ -285,7 +286,7 @@ void CoreController::endFrame() { /* 0x80499AC0 */ f32 CoreController::getFreeStickX() const { if (mCoreStatus->getDevType() == WPAD_DEV_CORE) { - return 0.0f; + return 0.0; } return mCoreStatus[0].getFSStickX(); } @@ -293,7 +294,7 @@ f32 CoreController::getFreeStickX() const { /* 0x80499AE0 */ f32 CoreController::getFreeStickY() const { if (mCoreStatus->getDevType() == WPAD_DEV_CORE) { - return 0.0f; + return 0.0; } return mCoreStatus[0].getFSStickY(); } @@ -428,8 +429,8 @@ void ControllerRumbleUnit::init() { mPattern = nullptr; mPatternPos = nullptr; mTimer = 0; - mIntensity = 0.0f; - mRampUp = 0.0f; + mIntensity = 0.0; + mRampUp = 0.0; mFlag.makeAllZero(); } From 2b4a50803a3475e24c279bb8528e398a1f9ef1dd Mon Sep 17 00:00:00 2001 From: CovenEsme <84377742+CovenEsme@users.noreply.github.com> Date: Fri, 14 Mar 2025 13:34:18 +0000 Subject: [PATCH 5/5] Add float f suffix --- src/REL/d/a/obj/d_a_obj_fence_boko.cpp | 2 +- src/REL/d/a/obj/d_a_obj_fence_boko2.cpp | 2 +- src/REL/d/a/obj/d_a_obj_iron_stage.cpp | 2 +- src/REL/d/a/obj/d_a_obj_pumpkin_bar.cpp | 4 ++-- src/REL/d/a/obj/d_a_obj_shrine_after.cpp | 2 +- src/REL/d/a/obj/d_a_obj_shrine_before.cpp | 2 +- src/egg/core/eggController.cpp | 13 ++++++------- 7 files changed, 13 insertions(+), 14 deletions(-) diff --git a/src/REL/d/a/obj/d_a_obj_fence_boko.cpp b/src/REL/d/a/obj/d_a_obj_fence_boko.cpp index 854552be..2ac61e55 100644 --- a/src/REL/d/a/obj/d_a_obj_fence_boko.cpp +++ b/src/REL/d/a/obj/d_a_obj_fence_boko.cpp @@ -27,7 +27,7 @@ int dAcOfenceBoko_c::create() { roomid = mCollision.mRoomId; mModel.setPriorityDraw(0x1C, 0x9); boundingBox.Set(mVec3_c(-210.0f, -10.0f, -20.0f), mVec3_c(210.0f, 340.0f, 20.0f)); - mCullingDistance = 50000.0; + mCullingDistance = 50000.0f; return SUCCEEDED; } diff --git a/src/REL/d/a/obj/d_a_obj_fence_boko2.cpp b/src/REL/d/a/obj/d_a_obj_fence_boko2.cpp index 8792f07a..f55c87b1 100644 --- a/src/REL/d/a/obj/d_a_obj_fence_boko2.cpp +++ b/src/REL/d/a/obj/d_a_obj_fence_boko2.cpp @@ -23,7 +23,7 @@ int dAcOfenceBoko2_c::create() { dBgS::GetInstance()->RegistBg(&mCollision, this); mModel.setPriorityDraw(0x1C, 0x9); boundingBox.Set(mVec3_c(-160.0f, -40.0f, -70.0f), mVec3_c(180.0f, 300.0f, 60.0f)); - mCullingDistance = 50000.0; + mCullingDistance = 50000.0f; return SUCCEEDED; } diff --git a/src/REL/d/a/obj/d_a_obj_iron_stage.cpp b/src/REL/d/a/obj/d_a_obj_iron_stage.cpp index 9ee35a1f..e4f2b57e 100644 --- a/src/REL/d/a/obj/d_a_obj_iron_stage.cpp +++ b/src/REL/d/a/obj/d_a_obj_iron_stage.cpp @@ -23,7 +23,7 @@ int dAcOironStage_c::create() { dBgS::GetInstance()->Regist(&mCollision, this); mModel.setPriorityDraw(0x1C, 0x9); boundingBox.Set(mVec3_c(-460.0f, -210.0f, -260.0f), mVec3_c(460.0f, 210.0f, 260.0f)); - mCullingDistance = 15000.0; + mCullingDistance = 15000.0f; return SUCCEEDED; } diff --git a/src/REL/d/a/obj/d_a_obj_pumpkin_bar.cpp b/src/REL/d/a/obj/d_a_obj_pumpkin_bar.cpp index 90f046c8..42d95a42 100644 --- a/src/REL/d/a/obj/d_a_obj_pumpkin_bar.cpp +++ b/src/REL/d/a/obj/d_a_obj_pumpkin_bar.cpp @@ -44,9 +44,9 @@ int dAcOpumpkinBar_c::create() { // 100000.0 is in the rodata and the instructions need it. // This also works if a separate variable is used but I // think it's more likely that mCullingDistance got set twice. - mCullingDistance = 100000.0; + mCullingDistance = 100000.0f; boundingBox.Set(mVec3_c(-2790.0f, -1450.0f, -8270.0f), mVec3_c(2880.0f, 2120.0f, 1370.0f)); - mCullingDistance = 500000.0; + mCullingDistance = 500000.0f; mBarCollision.SetRideCallback(barCollisionRideCallback); return SUCCEEDED; } diff --git a/src/REL/d/a/obj/d_a_obj_shrine_after.cpp b/src/REL/d/a/obj/d_a_obj_shrine_after.cpp index 4796600c..782c3883 100644 --- a/src/REL/d/a/obj/d_a_obj_shrine_after.cpp +++ b/src/REL/d/a/obj/d_a_obj_shrine_after.cpp @@ -15,7 +15,7 @@ int dAcOshrineAfter_c::create() { mModel.setLocalMtx(mWorldMtx); mModel.setPriorityDraw(0x1C, 0x9); boundingBox.Set(mVec3_c(-4000.0f, 7000.0f, 5000.0f), mVec3_c(5000.0f, 15000.0f, 14000.0f)); - mCullingDistance = 50000.0; + mCullingDistance = 50000.0f; return SUCCEEDED; } diff --git a/src/REL/d/a/obj/d_a_obj_shrine_before.cpp b/src/REL/d/a/obj/d_a_obj_shrine_before.cpp index 9bca3319..441a93fd 100644 --- a/src/REL/d/a/obj/d_a_obj_shrine_before.cpp +++ b/src/REL/d/a/obj/d_a_obj_shrine_before.cpp @@ -15,7 +15,7 @@ int dAcOshrineBefore_c::create() { mModel.setLocalMtx(mWorldMtx); mModel.setPriorityDraw(0x1C, 0x9); boundingBox.Set(mVec3_c(-4000.0f, 7000.0f, 5000.0f), mVec3_c(4000.0f, 13000.0f, 14000.0f)); - mCullingDistance = 50000.0; + mCullingDistance = 50000.0f; return SUCCEEDED; } diff --git a/src/egg/core/eggController.cpp b/src/egg/core/eggController.cpp index b73a02a4..bcc0c551 100644 --- a/src/egg/core/eggController.cpp +++ b/src/egg/core/eggController.cpp @@ -8,7 +8,6 @@ #include "rvl/VI.h" // IWYU pragma: export #include "string.h" - EGG::NullController null_controller; namespace EGG { @@ -63,8 +62,8 @@ CoreController::CoreController() : mDpdPos(), mAccel(), mAccelFlags(), mFlag(0) void CoreController::sceneReset() { mAccel.set(0.0, 0.0, 0.0); - mDpdPos.x = 0.0; - mDpdPos.y = 0.0; + mDpdPos.x = 0.0f; + mDpdPos.y = 0.0f; mIdleTime = 0; mPostureMatrixPrev.makeIdentity(); mPostureMatrix.makeIdentity(); @@ -286,7 +285,7 @@ void CoreController::endFrame() { /* 0x80499AC0 */ f32 CoreController::getFreeStickX() const { if (mCoreStatus->getDevType() == WPAD_DEV_CORE) { - return 0.0; + return 0.0f; } return mCoreStatus[0].getFSStickX(); } @@ -294,7 +293,7 @@ f32 CoreController::getFreeStickX() const { /* 0x80499AE0 */ f32 CoreController::getFreeStickY() const { if (mCoreStatus->getDevType() == WPAD_DEV_CORE) { - return 0.0; + return 0.0f; } return mCoreStatus[0].getFSStickY(); } @@ -429,8 +428,8 @@ void ControllerRumbleUnit::init() { mPattern = nullptr; mPatternPos = nullptr; mTimer = 0; - mIntensity = 0.0; - mRampUp = 0.0; + mIntensity = 0.0f; + mRampUp = 0.0f; mFlag.makeAllZero(); }