From 1e105b87f104badeadcb1d2b0ddbdff1310eb5be Mon Sep 17 00:00:00 2001 From: lepelog Date: Tue, 26 Jan 2021 23:48:47 +0100 Subject: [PATCH] some c_m3d (#97) * decompiled some bgs_chk funcs * c_m3d_g * c_math progress * remove duplicate SComponent headers * move some variables and decompile a function * some inlined from debug * cM3d_2PlaneLinePosNearPos * fix fabsf and decompile cM3d_CrawVec * format * cleanup * more cleanup Co-authored-by: Pheenoh --- asm/d/ev/d_ev_camera.s | 2 +- asm/d/jnt/d_jnt_col.s | 4 +- include/SComponent/c_bg_s_chk.h | 8 +- .../SComponent/c_bg_s_chk/asm/func_80267B4C.s | 9 - .../SComponent/c_bg_s_chk/asm/func_80267B70.s | 19 - .../SComponent/c_bg_s_chk/asm/func_80267BB8.s | 9 - .../SComponent/c_bg_s_chk/asm/func_80267BDC.s | 18 - include/SComponent/c_bg_s_gnd_chk.h | 8 +- include/SComponent/c_bg_s_poly_info.h | 8 +- .../c_bg_s_poly_info/asm/func_80268074.s | 15 - .../c_bg_s_poly_info/asm/func_802680B0.s | 19 - .../c_bg_s_poly_info/asm/func_802680F8.s | 12 - .../c_bg_s_poly_info/asm/func_80268120.s | 10 - .../c_bg_s_poly_info/asm/func_80268148.s | 9 - .../c_bg_s_poly_info/asm/func_8026816C.s | 4 - .../c_bg_s_poly_info/asm/func_8026817C.s | 11 - .../c_bg_s_poly_info/asm/func_802681A4.s | 2 - .../c_bg_s_poly_info/asm/func_802681AC.s | 5 - include/SComponent/c_cc_d/c_cc_d.h | 5 +- include/SComponent/c_m3d.h | 54 +- include/SComponent/c_m3d/asm/func_80268560.s | 20 - include/SComponent/c_m3d/asm/func_802685B0.s | 25 - include/SComponent/c_m3d/asm/func_80268614.s | 6 - include/SComponent/c_m3d/asm/func_8026862C.s | 60 -- include/SComponent/c_m3d/asm/func_80268710.s | 70 -- include/SComponent/c_m3d/asm/func_80268814.s | 34 - include/SComponent/c_m3d/asm/func_80268894.s | 8 - include/SComponent/c_m3d/asm/func_802688B4.s | 26 - include/SComponent/c_m3d/asm/func_8026891C.s | 53 -- include/SComponent/c_m3d/asm/func_802689E8.s | 89 --- include/SComponent/c_m3d/asm/func_80268B0C.s | 47 -- include/SComponent/c_m3d/asm/func_80268ED4.s | 26 - include/SComponent/c_m3d/asm/func_80269C2C.s | 96 --- include/SComponent/c_m3d/asm/func_8026BD88.s | 57 -- include/SComponent/c_m3d/asm/func_8026BE5C.s | 44 -- include/SComponent/c_m3d/asm/func_8026D044.s | 27 - include/SComponent/c_m3d/asm/func_8026D0B0.s | 26 - include/SComponent/c_m3d/asm/func_8026E4FC.s | 29 - include/SComponent/c_m3d/asm/func_8026E6C4.s | 11 - include/SComponent/c_m3d/asm/func_8026E6F0.s | 114 --- include/SComponent/c_m3d/asm/func_8026E8A0.s | 59 -- include/SComponent/c_m3d/asm/func_8026E980.s | 57 -- include/SComponent/c_m3d/asm/func_8026EA5C.s | 57 -- include/SComponent/c_m3d/asm/func_8026EB38.s | 35 - include/SComponent/c_m3d/asm/func_8026EBBC.s | 32 - include/SComponent/c_m3d/c_m3d.h | 30 - include/SComponent/c_m3d_g_aab.h | 20 +- .../c_m3d_g_aab/asm/func_8026EC54.s | 13 - .../c_m3d_g_aab/asm/func_8026EC88.s | 20 - .../c_m3d_g_aab/asm/func_8026ECD0.s | 5 - .../c_m3d_g_aab/asm/func_8026ECE4.s | 5 - .../c_m3d_g_aab/asm/func_8026ECF8.s | 9 - .../c_m3d_g_aab/asm/func_8026ED1C.s | 17 - .../c_m3d_g_aab/asm/func_8026ED60.s | 17 - .../c_m3d_g_aab/asm/func_8026EDA4.s | 18 - .../c_m3d_g_aab/asm/func_8026EDE4.s | 18 - .../c_m3d_g_aab/asm/func_8026EE24.s | 17 - .../c_m3d_g_aab/asm/func_8026EE68.s | 19 - include/SComponent/c_m3d_g_cir.h | 17 +- .../c_m3d_g_cir/asm/func_8026EEB4.s | 7 - .../c_m3d_g_cir/asm/func_8026EED0.s | 19 - .../c_m3d_g_cir/asm/func_8026EF18.s | 25 - .../c_m3d_g_cir/asm/func_8026EF74.s | 5 - include/SComponent/c_m3d_g_cps.h | 16 +- .../c_m3d_g_cps/asm/func_8026EF88.s | 7 - .../c_m3d_g_cps/asm/func_8026EFA4.s | 25 - .../c_m3d_g_cps/asm/func_8026F000.s | 15 - .../c_m3d_g_cps/asm/func_8026F03C.s | 17 - .../c_m3d_g_cps/asm/func_8026F080.s | 10 - include/SComponent/c_m3d_g_cyl.h | 31 +- .../c_m3d_g_cyl/asm/func_8026F0A8.s | 27 - .../c_m3d_g_cyl/asm/func_8026F114.s | 27 - .../c_m3d_g_cyl/asm/func_8026F180.s | 23 - .../c_m3d_g_cyl/asm/func_8026F1DC.s | 7 - .../c_m3d_g_cyl/asm/func_8026F1F8.s | 2 - .../c_m3d_g_cyl/asm/func_8026F200.s | 2 - .../c_m3d_g_cyl/asm/func_8026F208.s | 9 - .../c_m3d_g_cyl/asm/func_8026F22C.s | 8 - .../c_m3d_g_cyl/asm/func_8026F24C.s | 23 - include/SComponent/c_m3d_g_lin.h | 14 +- .../c_m3d_g_lin/asm/func_8026F2A8.s | 16 - .../c_m3d_g_lin/asm/func_8026F2E8.s | 13 - .../c_m3d_g_lin/asm/func_8026F31C.s | 13 - .../c_m3d_g_lin/asm/func_8026F350.s | 28 - .../c_m3d_g_lin/asm/func_8026F3C0.s | 7 - include/SComponent/c_m3d_g_pla.h | 15 +- .../c_m3d_g_pla/asm/func_8026F3DC.s | 11 - .../c_m3d_g_pla/asm/func_8026F408.s | 49 -- .../c_m3d_g_pla/asm/func_8026F4C4.s | 26 - .../c_m3d_g_pla/asm/func_8026F52C.s | 20 - .../c_m3d_g_pla/asm/func_8026F57C.s | 23 - .../c_m3d_g_pla/asm/func_8026F5D4.s | 21 - .../c_m3d_g_pla/asm/func_8026F624.s | 9 - include/SComponent/c_m3d_g_sph.h | 18 +- .../c_m3d_g_sph/asm/func_8026F648.s | 7 - .../c_m3d_g_sph/asm/func_8026F664.s | 17 - .../c_m3d_g_sph/asm/func_8026F6A8.s | 24 - .../c_m3d_g_sph/asm/func_8026F708.s | 2 - .../c_m3d_g_sph/asm/func_8026F710.s | 11 - .../c_m3d_g_sph/asm/func_8026F73C.s | 12 - .../c_m3d_g_sph/asm/func_8026F76C.s | 17 - include/SComponent/c_m3d_g_tri.h | 6 + .../c_m3d_g_tri/asm/func_8026F7B0.s | 11 - .../c_m3d_g_tri/asm/func_8026F7DC.s | 32 - .../c_m3d_g_tri/asm/func_8026F85C.s | 27 - .../c_m3d_g_tri/asm/func_8026F8C8.s | 29 - include/SComponent/c_sxyz.h | 2 +- include/SComponent/c_xyz.h | 76 +- include/SComponent/c_xyz/c_xyz.h | 10 - include/d/d_attention/d_attention.h | 2 +- include/d/d_camera/asm/func_80166764.s | 2 +- include/d/d_camera/asm/func_80168744.s | 2 +- .../d/d_com/d_com_inf_game/d_com_inf_game.h | 2 +- include/d/d_save/d_save/d_save.h | 2 +- include/functions.h | 2 +- include/global.h | 12 +- include/mtx_vec.h | 6 + include/variables.h | 93 --- libs/SSystem/SComponent/c_bg_s_chk.cpp | 30 +- libs/SSystem/SComponent/c_bg_s_gnd_chk.cpp | 4 + libs/SSystem/SComponent/c_bg_s_lin_chk.cpp | 4 + libs/SSystem/SComponent/c_bg_s_poly_info.cpp | 70 +- libs/SSystem/SComponent/c_bg_s_shdw_draw.cpp | 4 + libs/SSystem/SComponent/c_m2d.cpp | 10 + libs/SSystem/SComponent/c_m3d.cpp | 654 ++++++++++++++---- libs/SSystem/SComponent/c_m3d_g_aab.cpp | 82 +-- libs/SSystem/SComponent/c_m3d_g_cir.cpp | 30 +- libs/SSystem/SComponent/c_m3d_g_cps.cpp | 32 +- libs/SSystem/SComponent/c_m3d_g_cyl.cpp | 67 +- libs/SSystem/SComponent/c_m3d_g_lin.cpp | 37 +- libs/SSystem/SComponent/c_m3d_g_pla.cpp | 64 +- libs/SSystem/SComponent/c_m3d_g_sph.cpp | 51 +- libs/SSystem/SComponent/c_m3d_g_tri.cpp | 34 +- libs/SSystem/SComponent/c_sxyz.cpp | 7 +- libs/SSystem/SComponent/c_xyz.cpp | 22 +- 135 files changed, 1022 insertions(+), 2738 deletions(-) delete mode 100644 include/SComponent/c_bg_s_chk/asm/func_80267B4C.s delete mode 100644 include/SComponent/c_bg_s_chk/asm/func_80267B70.s delete mode 100644 include/SComponent/c_bg_s_chk/asm/func_80267BB8.s delete mode 100644 include/SComponent/c_bg_s_chk/asm/func_80267BDC.s delete mode 100644 include/SComponent/c_bg_s_poly_info/asm/func_80268074.s delete mode 100644 include/SComponent/c_bg_s_poly_info/asm/func_802680B0.s delete mode 100644 include/SComponent/c_bg_s_poly_info/asm/func_802680F8.s delete mode 100644 include/SComponent/c_bg_s_poly_info/asm/func_80268120.s delete mode 100644 include/SComponent/c_bg_s_poly_info/asm/func_80268148.s delete mode 100644 include/SComponent/c_bg_s_poly_info/asm/func_8026816C.s delete mode 100644 include/SComponent/c_bg_s_poly_info/asm/func_8026817C.s delete mode 100644 include/SComponent/c_bg_s_poly_info/asm/func_802681A4.s delete mode 100644 include/SComponent/c_bg_s_poly_info/asm/func_802681AC.s delete mode 100644 include/SComponent/c_m3d/asm/func_80268560.s delete mode 100644 include/SComponent/c_m3d/asm/func_802685B0.s delete mode 100644 include/SComponent/c_m3d/asm/func_80268614.s delete mode 100644 include/SComponent/c_m3d/asm/func_8026862C.s delete mode 100644 include/SComponent/c_m3d/asm/func_80268710.s delete mode 100644 include/SComponent/c_m3d/asm/func_80268814.s delete mode 100644 include/SComponent/c_m3d/asm/func_80268894.s delete mode 100644 include/SComponent/c_m3d/asm/func_802688B4.s delete mode 100644 include/SComponent/c_m3d/asm/func_8026891C.s delete mode 100644 include/SComponent/c_m3d/asm/func_802689E8.s delete mode 100644 include/SComponent/c_m3d/asm/func_80268B0C.s delete mode 100644 include/SComponent/c_m3d/asm/func_80268ED4.s delete mode 100644 include/SComponent/c_m3d/asm/func_80269C2C.s delete mode 100644 include/SComponent/c_m3d/asm/func_8026BD88.s delete mode 100644 include/SComponent/c_m3d/asm/func_8026BE5C.s delete mode 100644 include/SComponent/c_m3d/asm/func_8026D044.s delete mode 100644 include/SComponent/c_m3d/asm/func_8026D0B0.s delete mode 100644 include/SComponent/c_m3d/asm/func_8026E4FC.s delete mode 100644 include/SComponent/c_m3d/asm/func_8026E6C4.s delete mode 100644 include/SComponent/c_m3d/asm/func_8026E6F0.s delete mode 100644 include/SComponent/c_m3d/asm/func_8026E8A0.s delete mode 100644 include/SComponent/c_m3d/asm/func_8026E980.s delete mode 100644 include/SComponent/c_m3d/asm/func_8026EA5C.s delete mode 100644 include/SComponent/c_m3d/asm/func_8026EB38.s delete mode 100644 include/SComponent/c_m3d/asm/func_8026EBBC.s delete mode 100644 include/SComponent/c_m3d/c_m3d.h delete mode 100644 include/SComponent/c_m3d_g_aab/asm/func_8026EC54.s delete mode 100644 include/SComponent/c_m3d_g_aab/asm/func_8026EC88.s delete mode 100644 include/SComponent/c_m3d_g_aab/asm/func_8026ECD0.s delete mode 100644 include/SComponent/c_m3d_g_aab/asm/func_8026ECE4.s delete mode 100644 include/SComponent/c_m3d_g_aab/asm/func_8026ECF8.s delete mode 100644 include/SComponent/c_m3d_g_aab/asm/func_8026ED1C.s delete mode 100644 include/SComponent/c_m3d_g_aab/asm/func_8026ED60.s delete mode 100644 include/SComponent/c_m3d_g_aab/asm/func_8026EDA4.s delete mode 100644 include/SComponent/c_m3d_g_aab/asm/func_8026EDE4.s delete mode 100644 include/SComponent/c_m3d_g_aab/asm/func_8026EE24.s delete mode 100644 include/SComponent/c_m3d_g_aab/asm/func_8026EE68.s delete mode 100644 include/SComponent/c_m3d_g_cir/asm/func_8026EEB4.s delete mode 100644 include/SComponent/c_m3d_g_cir/asm/func_8026EED0.s delete mode 100644 include/SComponent/c_m3d_g_cir/asm/func_8026EF18.s delete mode 100644 include/SComponent/c_m3d_g_cir/asm/func_8026EF74.s delete mode 100644 include/SComponent/c_m3d_g_cps/asm/func_8026EF88.s delete mode 100644 include/SComponent/c_m3d_g_cps/asm/func_8026EFA4.s delete mode 100644 include/SComponent/c_m3d_g_cps/asm/func_8026F000.s delete mode 100644 include/SComponent/c_m3d_g_cps/asm/func_8026F03C.s delete mode 100644 include/SComponent/c_m3d_g_cps/asm/func_8026F080.s delete mode 100644 include/SComponent/c_m3d_g_cyl/asm/func_8026F0A8.s delete mode 100644 include/SComponent/c_m3d_g_cyl/asm/func_8026F114.s delete mode 100644 include/SComponent/c_m3d_g_cyl/asm/func_8026F180.s delete mode 100644 include/SComponent/c_m3d_g_cyl/asm/func_8026F1DC.s delete mode 100644 include/SComponent/c_m3d_g_cyl/asm/func_8026F1F8.s delete mode 100644 include/SComponent/c_m3d_g_cyl/asm/func_8026F200.s delete mode 100644 include/SComponent/c_m3d_g_cyl/asm/func_8026F208.s delete mode 100644 include/SComponent/c_m3d_g_cyl/asm/func_8026F22C.s delete mode 100644 include/SComponent/c_m3d_g_cyl/asm/func_8026F24C.s delete mode 100644 include/SComponent/c_m3d_g_lin/asm/func_8026F2A8.s delete mode 100644 include/SComponent/c_m3d_g_lin/asm/func_8026F2E8.s delete mode 100644 include/SComponent/c_m3d_g_lin/asm/func_8026F31C.s delete mode 100644 include/SComponent/c_m3d_g_lin/asm/func_8026F350.s delete mode 100644 include/SComponent/c_m3d_g_lin/asm/func_8026F3C0.s delete mode 100644 include/SComponent/c_m3d_g_pla/asm/func_8026F3DC.s delete mode 100644 include/SComponent/c_m3d_g_pla/asm/func_8026F408.s delete mode 100644 include/SComponent/c_m3d_g_pla/asm/func_8026F4C4.s delete mode 100644 include/SComponent/c_m3d_g_pla/asm/func_8026F52C.s delete mode 100644 include/SComponent/c_m3d_g_pla/asm/func_8026F57C.s delete mode 100644 include/SComponent/c_m3d_g_pla/asm/func_8026F5D4.s delete mode 100644 include/SComponent/c_m3d_g_pla/asm/func_8026F624.s delete mode 100644 include/SComponent/c_m3d_g_sph/asm/func_8026F648.s delete mode 100644 include/SComponent/c_m3d_g_sph/asm/func_8026F664.s delete mode 100644 include/SComponent/c_m3d_g_sph/asm/func_8026F6A8.s delete mode 100644 include/SComponent/c_m3d_g_sph/asm/func_8026F708.s delete mode 100644 include/SComponent/c_m3d_g_sph/asm/func_8026F710.s delete mode 100644 include/SComponent/c_m3d_g_sph/asm/func_8026F73C.s delete mode 100644 include/SComponent/c_m3d_g_sph/asm/func_8026F76C.s delete mode 100644 include/SComponent/c_m3d_g_tri/asm/func_8026F7B0.s delete mode 100644 include/SComponent/c_m3d_g_tri/asm/func_8026F7DC.s delete mode 100644 include/SComponent/c_m3d_g_tri/asm/func_8026F85C.s delete mode 100644 include/SComponent/c_m3d_g_tri/asm/func_8026F8C8.s delete mode 100644 include/SComponent/c_xyz/c_xyz.h diff --git a/asm/d/ev/d_ev_camera.s b/asm/d/ev/d_ev_camera.s index 2bf11db07f0..fe5f254e86b 100644 --- a/asm/d/ev/d_ev_camera.s +++ b/asm/d/ev/d_ev_camera.s @@ -10296,7 +10296,7 @@ lbl_800920B8: /* 800920BC 0008EFFC 90 1E 03 E8 */ stw r0, 0x3e8(r30) /* 800920C0 0008F000 38 61 04 54 */ addi r3, r1, 0x454 /* 800920C4 0008F004 38 80 FF FF */ li r4, -1 -/* 800920C8 0008F008 4B FA 49 95 */ bl cM3dGLin_NS_dtor +/* 800920C8 0008F008 4B FA 49 95 */ bl __dt__8cM3dGLinFv /* 800920CC 0008F00C 48 00 02 5C */ b lbl_80092328 lbl_800920D0: /* 800920D0 0008F010 38 61 01 18 */ addi r3, r1, 0x118 diff --git a/asm/d/jnt/d_jnt_col.s b/asm/d/jnt/d_jnt_col.s index 91ccd0e9dd3..8c6c410c64e 100644 --- a/asm/d/jnt/d_jnt_col.s +++ b/asm/d/jnt/d_jnt_col.s @@ -958,8 +958,8 @@ lbl_800369E8: /* 80036A54 00033994 38 21 02 B0 */ addi r1, r1, 0x2b0 /* 80036A58 00033998 4E 80 00 20 */ blr -.global cM3dGLin_NS_dtor -cM3dGLin_NS_dtor: +.global __dt__8cM3dGLinFv +__dt__8cM3dGLinFv: /* 80036A5C 0003399C 94 21 FF F0 */ stwu r1, -0x10(r1) /* 80036A60 000339A0 7C 08 02 A6 */ mflr r0 /* 80036A64 000339A4 90 01 00 14 */ stw r0, 0x14(r1) diff --git a/include/SComponent/c_bg_s_chk.h b/include/SComponent/c_bg_s_chk.h index f0f1772b03d..bd22199fa95 100644 --- a/include/SComponent/c_bg_s_chk.h +++ b/include/SComponent/c_bg_s_chk.h @@ -4,9 +4,15 @@ #include "global.h" class cBgS_Chk { +private: + /* 0x0 */ u32 unk_0x00; + /* 0x4 */ u32 unk_0x04; + /* 0x8 */ u32 unk_0x08; + /* 0xC */ u8 unk_0x0C; + /* 0x10 */ // __vtable__ public: cBgS_Chk(void); - ~cBgS_Chk(void); + virtual ~cBgS_Chk(void); void SetExtChk(cBgS_Chk&); bool ChkSameActorPid(unsigned int) const; }; diff --git a/include/SComponent/c_bg_s_chk/asm/func_80267B4C.s b/include/SComponent/c_bg_s_chk/asm/func_80267B4C.s deleted file mode 100644 index f6368d6fdb0..00000000000 --- a/include/SComponent/c_bg_s_chk/asm/func_80267B4C.s +++ /dev/null @@ -1,9 +0,0 @@ -/* 80267B4C 00264A8C 3C 80 80 3C */ lis r4, lbl_803C3F80@ha -/* 80267B50 00264A90 38 04 3F 80 */ addi r0, r4, lbl_803C3F80@l -/* 80267B54 00264A94 90 03 00 10 */ stw r0, 0x10(r3) -/* 80267B58 00264A98 38 00 00 00 */ li r0, 0 -/* 80267B5C 00264A9C 90 03 00 00 */ stw r0, 0(r3) -/* 80267B60 00264AA0 90 03 00 04 */ stw r0, 4(r3) -/* 80267B64 00264AA4 38 00 00 01 */ li r0, 1 -/* 80267B68 00264AA8 98 03 00 0C */ stb r0, 0xc(r3) -/* 80267B6C 00264AAC 4E 80 00 20 */ blr diff --git a/include/SComponent/c_bg_s_chk/asm/func_80267B70.s b/include/SComponent/c_bg_s_chk/asm/func_80267B70.s deleted file mode 100644 index eb0cabb579f..00000000000 --- a/include/SComponent/c_bg_s_chk/asm/func_80267B70.s +++ /dev/null @@ -1,19 +0,0 @@ -/* 80267B70 00264AB0 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80267B74 00264AB4 7C 08 02 A6 */ mflr r0 -/* 80267B78 00264AB8 90 01 00 14 */ stw r0, 0x14(r1) -/* 80267B7C 00264ABC 93 E1 00 0C */ stw r31, 0xc(r1) -/* 80267B80 00264AC0 7C 7F 1B 79 */ or. r31, r3, r3 -/* 80267B84 00264AC4 41 82 00 1C */ beq lbl_80267BA0 -/* 80267B88 00264AC8 3C A0 80 3C */ lis r5, lbl_803C3F80@ha -/* 80267B8C 00264ACC 38 05 3F 80 */ addi r0, r5, lbl_803C3F80@l -/* 80267B90 00264AD0 90 1F 00 10 */ stw r0, 0x10(r31) -/* 80267B94 00264AD4 7C 80 07 35 */ extsh. r0, r4 -/* 80267B98 00264AD8 40 81 00 08 */ ble lbl_80267BA0 -/* 80267B9C 00264ADC 48 06 71 A1 */ bl __dl__FPv -lbl_80267BA0: -/* 80267BA0 00264AE0 7F E3 FB 78 */ mr r3, r31 -/* 80267BA4 00264AE4 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 80267BA8 00264AE8 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80267BAC 00264AEC 7C 08 03 A6 */ mtlr r0 -/* 80267BB0 00264AF0 38 21 00 10 */ addi r1, r1, 0x10 -/* 80267BB4 00264AF4 4E 80 00 20 */ blr diff --git a/include/SComponent/c_bg_s_chk/asm/func_80267BB8.s b/include/SComponent/c_bg_s_chk/asm/func_80267BB8.s deleted file mode 100644 index 95613597cd7..00000000000 --- a/include/SComponent/c_bg_s_chk/asm/func_80267BB8.s +++ /dev/null @@ -1,9 +0,0 @@ -/* 80267BB8 00264AF8 80 04 00 00 */ lwz r0, 0(r4) -/* 80267BBC 00264AFC 90 03 00 00 */ stw r0, 0(r3) -/* 80267BC0 00264B00 80 04 00 04 */ lwz r0, 4(r4) -/* 80267BC4 00264B04 90 03 00 04 */ stw r0, 4(r3) -/* 80267BC8 00264B08 80 04 00 08 */ lwz r0, 8(r4) -/* 80267BCC 00264B0C 90 03 00 08 */ stw r0, 8(r3) -/* 80267BD0 00264B10 88 04 00 0C */ lbz r0, 0xc(r4) -/* 80267BD4 00264B14 98 03 00 0C */ stb r0, 0xc(r3) -/* 80267BD8 00264B18 4E 80 00 20 */ blr diff --git a/include/SComponent/c_bg_s_chk/asm/func_80267BDC.s b/include/SComponent/c_bg_s_chk/asm/func_80267BDC.s deleted file mode 100644 index 46b6af51d2e..00000000000 --- a/include/SComponent/c_bg_s_chk/asm/func_80267BDC.s +++ /dev/null @@ -1,18 +0,0 @@ -/* 80267BDC 00264B1C 80 A3 00 08 */ lwz r5, 8(r3) -/* 80267BE0 00264B20 3C 05 00 01 */ addis r0, r5, 1 -/* 80267BE4 00264B24 28 00 FF FF */ cmplwi r0, 0xffff -/* 80267BE8 00264B28 41 82 00 1C */ beq lbl_80267C04 -/* 80267BEC 00264B2C 3C 04 00 01 */ addis r0, r4, 1 -/* 80267BF0 00264B30 28 00 FF FF */ cmplwi r0, 0xffff -/* 80267BF4 00264B34 41 82 00 10 */ beq lbl_80267C04 -/* 80267BF8 00264B38 88 03 00 0C */ lbz r0, 0xc(r3) -/* 80267BFC 00264B3C 28 00 00 00 */ cmplwi r0, 0 -/* 80267C00 00264B40 40 82 00 0C */ bne lbl_80267C0C -lbl_80267C04: -/* 80267C04 00264B44 38 60 00 00 */ li r3, 0 -/* 80267C08 00264B48 4E 80 00 20 */ blr -lbl_80267C0C: -/* 80267C0C 00264B4C 7C 05 20 50 */ subf r0, r5, r4 -/* 80267C10 00264B50 7C 00 00 34 */ cntlzw r0, r0 -/* 80267C14 00264B54 54 03 DE 3E */ rlwinm r3, r0, 0x1b, 0x18, 0x1f -/* 80267C18 00264B58 4E 80 00 20 */ blr \ No newline at end of file diff --git a/include/SComponent/c_bg_s_gnd_chk.h b/include/SComponent/c_bg_s_gnd_chk.h index 533416f2239..0098d1ddb17 100644 --- a/include/SComponent/c_bg_s_gnd_chk.h +++ b/include/SComponent/c_bg_s_gnd_chk.h @@ -1,12 +1,16 @@ #ifndef C_BG_S_GND_CHK_H_ #define C_BG_S_GND_CHK_H_ +#include "SComponent/c_bg_s_chk.h" #include "SComponent/c_xyz.h" #include "global.h" -class cBgS_GndChk { +class cBgS_GndChk : public cBgS_Chk { +private: + // poly info +public: cBgS_GndChk(void); - ~cBgS_GndChk(void); + virtual ~cBgS_GndChk(void); void SetPos(const Vec*); void SetPos(const cXyz*); void PreCheck(void); diff --git a/include/SComponent/c_bg_s_poly_info.h b/include/SComponent/c_bg_s_poly_info.h index 873e5c47435..c08105fe546 100644 --- a/include/SComponent/c_bg_s_poly_info.h +++ b/include/SComponent/c_bg_s_poly_info.h @@ -4,9 +4,15 @@ #include "global.h" class cBgS_PolyInfo { +private: + /* 0x00 */ u16 mPolyIndex; + /* 0x02 */ u16 unk_0x02; + /* 0x04 */ void* unk_0x04; + /* 0x08 */ u32 unk_0x08; + public: cBgS_PolyInfo(void); - ~cBgS_PolyInfo(void); + virtual ~cBgS_PolyInfo(void); bool ChkSetInfo(void) const; void ClearPi(void); void SetPolyInfo(const cBgS_PolyInfo&); diff --git a/include/SComponent/c_bg_s_poly_info/asm/func_80268074.s b/include/SComponent/c_bg_s_poly_info/asm/func_80268074.s deleted file mode 100644 index ae051fa81ca..00000000000 --- a/include/SComponent/c_bg_s_poly_info/asm/func_80268074.s +++ /dev/null @@ -1,15 +0,0 @@ -/* 80268074 00264FB4 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80268078 00264FB8 7C 08 02 A6 */ mflr r0 -/* 8026807C 00264FBC 90 01 00 14 */ stw r0, 0x14(r1) -/* 80268080 00264FC0 93 E1 00 0C */ stw r31, 0xc(r1) -/* 80268084 00264FC4 7C 7F 1B 78 */ mr r31, r3 -/* 80268088 00264FC8 3C 80 80 3C */ lis r4, lbl_803C3FD0@ha -/* 8026808C 00264FCC 38 04 3F D0 */ addi r0, r4, lbl_803C3FD0@l -/* 80268090 00264FD0 90 03 00 0C */ stw r0, 0xc(r3) -/* 80268094 00264FD4 48 00 00 8D */ bl ClearPi__13cBgS_PolyInfoFv -/* 80268098 00264FD8 7F E3 FB 78 */ mr r3, r31 -/* 8026809C 00264FDC 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 802680A0 00264FE0 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802680A4 00264FE4 7C 08 03 A6 */ mtlr r0 -/* 802680A8 00264FE8 38 21 00 10 */ addi r1, r1, 0x10 -/* 802680AC 00264FEC 4E 80 00 20 */ blr diff --git a/include/SComponent/c_bg_s_poly_info/asm/func_802680B0.s b/include/SComponent/c_bg_s_poly_info/asm/func_802680B0.s deleted file mode 100644 index 4c369c5ee9d..00000000000 --- a/include/SComponent/c_bg_s_poly_info/asm/func_802680B0.s +++ /dev/null @@ -1,19 +0,0 @@ -/* 802680B0 00264FF0 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802680B4 00264FF4 7C 08 02 A6 */ mflr r0 -/* 802680B8 00264FF8 90 01 00 14 */ stw r0, 0x14(r1) -/* 802680BC 00264FFC 93 E1 00 0C */ stw r31, 0xc(r1) -/* 802680C0 00265000 7C 7F 1B 79 */ or. r31, r3, r3 -/* 802680C4 00265004 41 82 00 1C */ beq lbl_802680E0 -/* 802680C8 00265008 3C A0 80 3C */ lis r5, lbl_803C3FD0@ha -/* 802680CC 0026500C 38 05 3F D0 */ addi r0, r5, lbl_803C3FD0@l -/* 802680D0 00265010 90 1F 00 0C */ stw r0, 0xc(r31) -/* 802680D4 00265014 7C 80 07 35 */ extsh. r0, r4 -/* 802680D8 00265018 40 81 00 08 */ ble lbl_802680E0 -/* 802680DC 0026501C 48 06 6C 61 */ bl __dl__FPv -lbl_802680E0: -/* 802680E0 00265020 7F E3 FB 78 */ mr r3, r31 -/* 802680E4 00265024 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 802680E8 00265028 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802680EC 0026502C 7C 08 03 A6 */ mtlr r0 -/* 802680F0 00265030 38 21 00 10 */ addi r1, r1, 0x10 -/* 802680F4 00265034 4E 80 00 20 */ blr diff --git a/include/SComponent/c_bg_s_poly_info/asm/func_802680F8.s b/include/SComponent/c_bg_s_poly_info/asm/func_802680F8.s deleted file mode 100644 index 0a808e711c6..00000000000 --- a/include/SComponent/c_bg_s_poly_info/asm/func_802680F8.s +++ /dev/null @@ -1,12 +0,0 @@ -/* 802680F8 00265038 A0 03 00 00 */ lhz r0, 0(r3) -/* 802680FC 0026503C 28 00 FF FF */ cmplwi r0, 0xffff -/* 80268100 00265040 41 82 00 10 */ beq lbl_80268110 -/* 80268104 00265044 A0 03 00 02 */ lhz r0, 2(r3) -/* 80268108 00265048 28 00 01 00 */ cmplwi r0, 0x100 -/* 8026810C 0026504C 40 82 00 0C */ bne lbl_80268118 -lbl_80268110: -/* 80268110 00265050 38 60 00 00 */ li r3, 0 -/* 80268114 00265054 4E 80 00 20 */ blr -lbl_80268118: -/* 80268118 00265058 38 60 00 01 */ li r3, 1 -/* 8026811C 0026505C 4E 80 00 20 */ blr diff --git a/include/SComponent/c_bg_s_poly_info/asm/func_80268120.s b/include/SComponent/c_bg_s_poly_info/asm/func_80268120.s deleted file mode 100644 index 08fa4e3b1de..00000000000 --- a/include/SComponent/c_bg_s_poly_info/asm/func_80268120.s +++ /dev/null @@ -1,10 +0,0 @@ -/* 80268120 00265060 3C 80 00 01 */ lis r4, 0x0000FFFF@ha -/* 80268124 00265064 38 04 FF FF */ addi r0, r4, 0x0000FFFF@l -/* 80268128 00265068 B0 03 00 00 */ sth r0, 0(r3) -/* 8026812C 0026506C 38 00 01 00 */ li r0, 0x100 -/* 80268130 00265070 B0 03 00 02 */ sth r0, 2(r3) -/* 80268134 00265074 38 00 00 00 */ li r0, 0 -/* 80268138 00265078 90 03 00 04 */ stw r0, 4(r3) -/* 8026813C 0026507C 38 00 FF FF */ li r0, -1 -/* 80268140 00265080 90 03 00 08 */ stw r0, 8(r3) -/* 80268144 00265084 4E 80 00 20 */ blr diff --git a/include/SComponent/c_bg_s_poly_info/asm/func_80268148.s b/include/SComponent/c_bg_s_poly_info/asm/func_80268148.s deleted file mode 100644 index e1515250269..00000000000 --- a/include/SComponent/c_bg_s_poly_info/asm/func_80268148.s +++ /dev/null @@ -1,9 +0,0 @@ -/* 80268148 00265088 A0 04 00 00 */ lhz r0, 0(r4) -/* 8026814C 0026508C B0 03 00 00 */ sth r0, 0(r3) -/* 80268150 00265090 A0 04 00 02 */ lhz r0, 2(r4) -/* 80268154 00265094 B0 03 00 02 */ sth r0, 2(r3) -/* 80268158 00265098 80 04 00 04 */ lwz r0, 4(r4) -/* 8026815C 0026509C 90 03 00 04 */ stw r0, 4(r3) -/* 80268160 002650A0 80 04 00 08 */ lwz r0, 8(r4) -/* 80268164 002650A4 90 03 00 08 */ stw r0, 8(r3) -/* 80268168 002650A8 4E 80 00 20 */ blr diff --git a/include/SComponent/c_bg_s_poly_info/asm/func_8026816C.s b/include/SComponent/c_bg_s_poly_info/asm/func_8026816C.s deleted file mode 100644 index 3b307a0a647..00000000000 --- a/include/SComponent/c_bg_s_poly_info/asm/func_8026816C.s +++ /dev/null @@ -1,4 +0,0 @@ -/* 8026816C 002650AC B0 83 00 02 */ sth r4, 2(r3) -/* 80268170 002650B0 90 A3 00 04 */ stw r5, 4(r3) -/* 80268174 002650B4 90 C3 00 08 */ stw r6, 8(r3) -/* 80268178 002650B8 4E 80 00 20 */ blr diff --git a/include/SComponent/c_bg_s_poly_info/asm/func_8026817C.s b/include/SComponent/c_bg_s_poly_info/asm/func_8026817C.s deleted file mode 100644 index 27fda2f852d..00000000000 --- a/include/SComponent/c_bg_s_poly_info/asm/func_8026817C.s +++ /dev/null @@ -1,11 +0,0 @@ -/* 8026817C 002650BC 80 03 00 04 */ lwz r0, 4(r3) -/* 80268180 002650C0 7C 00 20 40 */ cmplw r0, r4 -/* 80268184 002650C4 40 82 00 18 */ bne lbl_8026819C -/* 80268188 002650C8 80 03 00 08 */ lwz r0, 8(r3) -/* 8026818C 002650CC 7C 00 28 40 */ cmplw r0, r5 -/* 80268190 002650D0 40 82 00 0C */ bne lbl_8026819C -/* 80268194 002650D4 38 60 00 01 */ li r3, 1 -/* 80268198 002650D8 4E 80 00 20 */ blr -lbl_8026819C: -/* 8026819C 002650DC 38 60 00 00 */ li r3, 0 -/* 802681A0 002650E0 4E 80 00 20 */ blr diff --git a/include/SComponent/c_bg_s_poly_info/asm/func_802681A4.s b/include/SComponent/c_bg_s_poly_info/asm/func_802681A4.s deleted file mode 100644 index 5b6195e9805..00000000000 --- a/include/SComponent/c_bg_s_poly_info/asm/func_802681A4.s +++ /dev/null @@ -1,2 +0,0 @@ -/* 802681A4 002650E4 B0 83 00 00 */ sth r4, 0(r3) -/* 802681A8 002650E8 4E 80 00 20 */ blr diff --git a/include/SComponent/c_bg_s_poly_info/asm/func_802681AC.s b/include/SComponent/c_bg_s_poly_info/asm/func_802681AC.s deleted file mode 100644 index 7c15041ccbe..00000000000 --- a/include/SComponent/c_bg_s_poly_info/asm/func_802681AC.s +++ /dev/null @@ -1,5 +0,0 @@ -/* 802681AC 002650EC A0 03 00 02 */ lhz r0, 2(r3) -/* 802681B0 002650F0 20 60 01 00 */ subfic r3, r0, 0x100 -/* 802681B4 002650F4 30 03 FF FF */ addic r0, r3, -1 -/* 802681B8 002650F8 7C 60 19 10 */ subfe r3, r0, r3 -/* 802681BC 002650FC 4E 80 00 20 */ blr \ No newline at end of file diff --git a/include/SComponent/c_cc_d/c_cc_d.h b/include/SComponent/c_cc_d/c_cc_d.h index dc897238ddd..98668656d15 100644 --- a/include/SComponent/c_cc_d/c_cc_d.h +++ b/include/SComponent/c_cc_d/c_cc_d.h @@ -1,8 +1,7 @@ #ifndef C_CC_D_H_ #define C_CC_D_H_ -#include "SComponent/c_m3d/c_m3d.h" -#include "SComponent/c_m3d_g_cyl.h" +#include "SComponent/c_m3d.h" #include "global.h" class cCcD_ShapeAttr { @@ -40,4 +39,4 @@ private: void* vtable; }; -#endif \ No newline at end of file +#endif diff --git a/include/SComponent/c_m3d.h b/include/SComponent/c_m3d.h index c3c56e93ac9..e467d442f38 100644 --- a/include/SComponent/c_m3d.h +++ b/include/SComponent/c_m3d.h @@ -6,6 +6,7 @@ #include "SComponent/c_m3d_g_cyl.h" #include "SComponent/c_m3d_g_lin.h" #include "SComponent/c_m3d_g_pla.h" +#include "SComponent/c_m3d_g_sph.h" #include "SComponent/c_m3d_g_tri.h" #include "SComponent/c_sxyz.h" #include "SComponent/c_xyz.h" @@ -13,36 +14,35 @@ struct cM3d_Range; -void cM3d_InDivPos1(const Vec*, const Vec*, float, Vec*); -void cM3d_InDivPos2(const Vec*, const Vec*, float, Vec*); -float cM3d_Len2dSq(float, float, float, float); -bool cM3d_Len2dSqPntAndSegLine(float, float, float, float, float, float, float*, float*, float*); -bool cM3d_Len3dSqPntAndSegLine(const cM3dGLin*, const Vec*, Vec*, float*); -float cM3d_SignedLenPlaAndPos(const cM3dGPla*, const Vec*); -float cM3d_VectorProduct2d(float, float, float, float, float, float); +void cM3d_InDivPos1(const Vec*, const Vec*, f32, Vec*); +void cM3d_InDivPos2(const Vec*, const Vec*, f32, Vec*); +f32 cM3d_Len2dSq(f32, f32, f32, f32); +bool cM3d_Len2dSqPntAndSegLine(f32, f32, f32, f32, f32, f32, f32*, f32*, f32*); +bool cM3d_Len3dSqPntAndSegLine(const cM3dGLin*, const Vec*, Vec*, f32*); +f32 cM3d_SignedLenPlaAndPos(const cM3dGPla*, const Vec*); +f32 cM3d_VectorProduct2d(f32, f32, f32, f32, f32, f32); void cM3d_VectorProduct(const cXyz*, const cXyz*, const cXyz*, cXyz*); -void cM3d_CalcPla(const Vec*, const Vec*, const Vec*, Vec*, float*); +void cM3d_CalcPla(const Vec*, const Vec*, const Vec*, Vec*, f32*); bool cM3d_Cross_AabAab(const cM3dGAab*, const cM3dGAab*); bool cM3d_Cross_AabCyl(const cM3dGAab*, const cM3dGCyl*); bool cM3d_Cross_AabSph(const cM3dGAab*, const cM3dGSph*); -int cM3d_Check_LinLin(const cM3dGLin*, const cM3dGLin*, float*, float*); -bool cM3d_CrossInfLineVsInfPlane_proc(float, float, const Vec*, const Vec*, Vec*); +int cM3d_Check_LinLin(const cM3dGLin*, const cM3dGLin*, f32*, f32*); +bool cM3d_CrossInfLineVsInfPlane_proc(f32, f32, const Vec*, const Vec*, Vec*); bool cM3d_Cross_LinPla(const cM3dGLin*, const cM3dGPla*, Vec*, bool, bool); bool cM3d_Cross_MinMaxBoxLine(const Vec*, const Vec*, const Vec*, const Vec*); -bool cM3d_InclusionCheckPosIn3PosBox3d(const Vec*, const Vec*, const Vec*, const Vec*, float); -bool cM3d_InclusionCheckPosIn3PosBox2d(float, float, float, float, float, float, float, float, - float); -bool cM3d_CrossX_Tri(const cM3dGTri*, const Vec*, float); +bool cM3d_InclusionCheckPosIn3PosBox3d(const Vec*, const Vec*, const Vec*, const Vec*, f32); +bool cM3d_InclusionCheckPosIn3PosBox2d(f32, f32, f32, f32, f32, f32, f32, f32, f32); +bool cM3d_CrossX_Tri(const cM3dGTri*, const Vec*, f32); bool cM3d_CrossX_Tri(const cM3dGTri*, const Vec*); bool cM3d_CrossX_LinTri_proc(const cM3dGTri*, const Vec*); bool cM3d_CrossY_Tri(const cM3dGTri*, const Vec*); bool cM3d_CrossY_LinTri_proc(const cM3dGTri*, const Vec*); bool cM3d_CrossY_Tri(const Vec&, const Vec&, const Vec&, const cM3dGPla&, const Vec*); bool cM3d_CrossY_Tri_Front(const Vec&, const Vec&, const Vec&, const Vec*); -bool cM3d_CrossY_Tri(const cM3dGTri*, const Vec*, float*); -bool cM3d_CrossY_Tri(const cM3dGTri*, const Vec*, float); -bool cM3d_CrossY_Tri(const cM3dGTri*, const Vec*, const cM3d_Range*, float*); -bool cM3d_CrossZ_Tri(const cM3dGTri*, const Vec*, float); +bool cM3d_CrossY_Tri(const cM3dGTri*, const Vec*, f32*); +bool cM3d_CrossY_Tri(const cM3dGTri*, const Vec*, f32); +bool cM3d_CrossY_Tri(const cM3dGTri*, const Vec*, const cM3d_Range*, f32*); +bool cM3d_CrossZ_Tri(const cM3dGTri*, const Vec*, f32); bool cM3d_CrossZ_Tri(const cM3dGTri*, const Vec*); bool cM3d_CrossZ_LinTri_proc(const cM3dGTri*, const Vec*); bool cM3d_Cross_LinTri(const cM3dGLin*, const cM3dGTri*, Vec*, bool, bool); @@ -50,14 +50,14 @@ bool cM3d_Cross_LinTri_Easy(const cM3dGTri*, const Vec*); bool cM3d_Cross_SphPnt(const cM3dGSph*, const Vec*); bool cM3d_Cross_LinSph(const cM3dGLin*, const cM3dGSph*, Vec*); int cM3d_Cross_LinSph_CrossPos(const cM3dGSph&, const cM3dGLin&, Vec*, Vec*); -bool cM3d_Cross_CylSph(const cM3dGCyl*, const cM3dGSph*, float*); -bool cM3d_Cross_CylSph(const cM3dGCyl*, const cM3dGSph*, Vec*, float*); -bool cM3d_Cross_SphSph(const cM3dGSph*, const cM3dGSph*, float*); -bool cM3d_Cross_SphSph(const cM3dGSph*, const cM3dGSph*, float*, float*); -void cM3d_Cross_SphSph(const cM3dGSph*, const cM3dGSph*, Vec*); +bool cM3d_Cross_CylSph(const cM3dGCyl*, const cM3dGSph*, f32*); +bool cM3d_Cross_CylSph(const cM3dGCyl*, const cM3dGSph*, Vec*, f32*); +bool cM3d_Cross_SphSph(const cM3dGSph*, const cM3dGSph*, f32*); +bool cM3d_Cross_SphSph(const cM3dGSph*, const cM3dGSph*, f32*, f32*); +bool cM3d_Cross_SphSph(const cM3dGSph*, const cM3dGSph*, Vec*); void cM3d_CalcSphVsTriCrossPoint(const cM3dGSph*, const cM3dGTri*, Vec*); bool cM3d_Cross_SphTri(const cM3dGSph*, const cM3dGTri*, Vec*); -bool cM3d_Cross_CylCyl(const cM3dGCyl*, const cM3dGCyl*, float*); +bool cM3d_Cross_CylCyl(const cM3dGCyl*, const cM3dGCyl*, f32*); bool cM3d_Cross_CylCyl(const cM3dGCyl*, const cM3dGCyl*, Vec*); bool cM3d_Cross_CylTri(const cM3dGCyl*, const cM3dGTri*, Vec*); int cM3d_Cross_CylLin(const cM3dGCyl*, const cM3dGLin*, Vec*, Vec*); @@ -71,11 +71,11 @@ bool cM3d_Cross_TriTri(const cM3dGTri&, const cM3dGTri&, Vec*); bool cM3d_Cross_CpsTri(const cM3dGCps&, cM3dGTri, Vec*); void cM3d_CalcVecAngle(const Vec&, short*, short*); void cM3d_CalcVecZAngle(const Vec&, csXyz*); -void cM3d_PlaneCrossLineProcWork(float, float, float, float, float, float, float, float*, float*); +void cM3d_PlaneCrossLineProcWork(f32, f32, f32, f32, f32, f32, f32, f32*, f32*); int cM3d_2PlaneCrossLine(const cM3dGPla&, const cM3dGPla&, cM3dGLin*); bool cM3d_3PlaneCrossPos(const cM3dGPla&, const cM3dGPla&, const cM3dGPla&, Vec*); -float cM3d_lineVsPosSuisenCross(const cM3dGLin*, const Vec*, Vec*); -float cM3d_lineVsPosSuisenCross(const Vec&, const Vec&, const Vec&, Vec*); +f32 cM3d_lineVsPosSuisenCross(const cM3dGLin*, const Vec*, Vec*); +f32 cM3d_lineVsPosSuisenCross(const Vec&, const Vec&, const Vec&, Vec*); int cM3d_2PlaneLinePosNearPos(const cM3dGPla&, const cM3dGPla&, const Vec*, Vec*); void cM3d_CrawVec(const Vec&, const Vec&, Vec*); diff --git a/include/SComponent/c_m3d/asm/func_80268560.s b/include/SComponent/c_m3d/asm/func_80268560.s deleted file mode 100644 index 3704d6ea870..00000000000 --- a/include/SComponent/c_m3d/asm/func_80268560.s +++ /dev/null @@ -1,20 +0,0 @@ -/* 80268560 002654A0 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 80268564 002654A4 7C 08 02 A6 */ mflr r0 -/* 80268568 002654A8 90 01 00 24 */ stw r0, 0x24(r1) -/* 8026856C 002654AC 93 E1 00 1C */ stw r31, 0x1c(r1) -/* 80268570 002654B0 93 C1 00 18 */ stw r30, 0x18(r1) -/* 80268574 002654B4 7C 7E 1B 78 */ mr r30, r3 -/* 80268578 002654B8 7C BF 2B 78 */ mr r31, r5 -/* 8026857C 002654BC 7C 83 23 78 */ mr r3, r4 -/* 80268580 002654C0 38 81 00 08 */ addi r4, r1, 8 -/* 80268584 002654C4 48 0D EB 55 */ bl PSVECScale -/* 80268588 002654C8 38 61 00 08 */ addi r3, r1, 8 -/* 8026858C 002654CC 7F C4 F3 78 */ mr r4, r30 -/* 80268590 002654D0 7F E5 FB 78 */ mr r5, r31 -/* 80268594 002654D4 48 0D EA FD */ bl PSVECAdd -/* 80268598 002654D8 83 E1 00 1C */ lwz r31, 0x1c(r1) -/* 8026859C 002654DC 83 C1 00 18 */ lwz r30, 0x18(r1) -/* 802685A0 002654E0 80 01 00 24 */ lwz r0, 0x24(r1) -/* 802685A4 002654E4 7C 08 03 A6 */ mtlr r0 -/* 802685A8 002654E8 38 21 00 20 */ addi r1, r1, 0x20 -/* 802685AC 002654EC 4E 80 00 20 */ blr diff --git a/include/SComponent/c_m3d/asm/func_802685B0.s b/include/SComponent/c_m3d/asm/func_802685B0.s deleted file mode 100644 index da2081ce8a4..00000000000 --- a/include/SComponent/c_m3d/asm/func_802685B0.s +++ /dev/null @@ -1,25 +0,0 @@ -/* 802685B0 002654F0 94 21 FF D0 */ stwu r1, -0x30(r1) -/* 802685B4 002654F4 7C 08 02 A6 */ mflr r0 -/* 802685B8 002654F8 90 01 00 34 */ stw r0, 0x34(r1) -/* 802685BC 002654FC DB E1 00 28 */ stfd f31, 0x28(r1) -/* 802685C0 00265500 93 E1 00 24 */ stw r31, 0x24(r1) -/* 802685C4 00265504 93 C1 00 20 */ stw r30, 0x20(r1) -/* 802685C8 00265508 7C 7E 1B 78 */ mr r30, r3 -/* 802685CC 0026550C FF E0 08 90 */ fmr f31, f1 -/* 802685D0 00265510 7C BF 2B 78 */ mr r31, r5 -/* 802685D4 00265514 7C 83 23 78 */ mr r3, r4 -/* 802685D8 00265518 7F C4 F3 78 */ mr r4, r30 -/* 802685DC 0026551C 38 A1 00 08 */ addi r5, r1, 8 -/* 802685E0 00265520 48 0D EA D5 */ bl PSVECSubtract -/* 802685E4 00265524 7F C3 F3 78 */ mr r3, r30 -/* 802685E8 00265528 38 81 00 08 */ addi r4, r1, 8 -/* 802685EC 0026552C FC 20 F8 90 */ fmr f1, f31 -/* 802685F0 00265530 7F E5 FB 78 */ mr r5, r31 -/* 802685F4 00265534 4B FF FF 6D */ bl cM3d_InDivPos1__FPC3VecPC3VecfP3Vec -/* 802685F8 00265538 CB E1 00 28 */ lfd f31, 0x28(r1) -/* 802685FC 0026553C 83 E1 00 24 */ lwz r31, 0x24(r1) -/* 80268600 00265540 83 C1 00 20 */ lwz r30, 0x20(r1) -/* 80268604 00265544 80 01 00 34 */ lwz r0, 0x34(r1) -/* 80268608 00265548 7C 08 03 A6 */ mtlr r0 -/* 8026860C 0026554C 38 21 00 30 */ addi r1, r1, 0x30 -/* 80268610 00265550 4E 80 00 20 */ blr diff --git a/include/SComponent/c_m3d/asm/func_80268614.s b/include/SComponent/c_m3d/asm/func_80268614.s deleted file mode 100644 index bfa914c4f8d..00000000000 --- a/include/SComponent/c_m3d/asm/func_80268614.s +++ /dev/null @@ -1,6 +0,0 @@ -/* 80268614 00265554 EC 01 18 28 */ fsubs f0, f1, f3 -/* 80268618 00265558 EC 42 20 28 */ fsubs f2, f2, f4 -/* 8026861C 0026555C EC 20 00 32 */ fmuls f1, f0, f0 -/* 80268620 00265560 EC 02 00 B2 */ fmuls f0, f2, f2 -/* 80268624 00265564 EC 21 00 2A */ fadds f1, f1, f0 -/* 80268628 00265568 4E 80 00 20 */ blr diff --git a/include/SComponent/c_m3d/asm/func_8026862C.s b/include/SComponent/c_m3d/asm/func_8026862C.s deleted file mode 100644 index b6281b66d3b..00000000000 --- a/include/SComponent/c_m3d/asm/func_8026862C.s +++ /dev/null @@ -1,60 +0,0 @@ -/* 8026862C 0026556C 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80268630 00265570 7C 08 02 A6 */ mflr r0 -/* 80268634 00265574 90 01 00 14 */ stw r0, 0x14(r1) -/* 80268638 00265578 93 E1 00 0C */ stw r31, 0xc(r1) -/* 8026863C 0026557C 93 C1 00 08 */ stw r30, 8(r1) -/* 80268640 00265580 FD 00 08 90 */ fmr f8, f1 -/* 80268644 00265584 FC E0 10 90 */ fmr f7, f2 -/* 80268648 00265588 7C BE 2B 78 */ mr r30, r5 -/* 8026864C 0026558C 3B E0 00 00 */ li r31, 0 -/* 80268650 00265590 EC 45 18 28 */ fsubs f2, f5, f3 -/* 80268654 00265594 EC A6 20 28 */ fsubs f5, f6, f4 -/* 80268658 00265598 EC 22 00 B2 */ fmuls f1, f2, f2 -/* 8026865C 0026559C EC 05 01 72 */ fmuls f0, f5, f5 -/* 80268660 002655A0 EC C1 00 2A */ fadds f6, f1, f0 -/* 80268664 002655A4 FC 00 32 10 */ fabs f0, f6 -/* 80268668 002655A8 FC 20 00 18 */ frsp f1, f0 -/* 8026866C 002655AC C0 0D 8C 00 */ lfs f0, lbl_80451180-_SDA_BASE_(r13) -/* 80268670 002655B0 FC 01 00 40 */ fcmpo cr0, f1, f0 -/* 80268674 002655B4 40 80 00 14 */ bge lbl_80268688 -/* 80268678 002655B8 C0 02 B7 18 */ lfs f0, lbl_80455118-_SDA2_BASE_(r2) -/* 8026867C 002655BC D0 1E 00 00 */ stfs f0, 0(r30) -/* 80268680 002655C0 38 60 00 00 */ li r3, 0 -/* 80268684 002655C4 48 00 00 74 */ b lbl_802686F8 -lbl_80268688: -/* 80268688 002655C8 EC 08 18 28 */ fsubs f0, f8, f3 -/* 8026868C 002655CC EC 22 00 32 */ fmuls f1, f2, f0 -/* 80268690 002655D0 EC 07 20 28 */ fsubs f0, f7, f4 -/* 80268694 002655D4 EC 05 00 32 */ fmuls f0, f5, f0 -/* 80268698 002655D8 EC 01 00 2A */ fadds f0, f1, f0 -/* 8026869C 002655DC EC 20 30 24 */ fdivs f1, f0, f6 -/* 802686A0 002655E0 C0 02 B7 18 */ lfs f0, lbl_80455118-_SDA2_BASE_(r2) -/* 802686A4 002655E4 FC 01 00 40 */ fcmpo cr0, f1, f0 -/* 802686A8 002655E8 4C 41 13 82 */ cror 2, 1, 2 -/* 802686AC 002655EC 40 82 00 18 */ bne lbl_802686C4 -/* 802686B0 002655F0 C0 02 B7 38 */ lfs f0, lbl_80455138-_SDA2_BASE_(r2) -/* 802686B4 002655F4 FC 01 00 40 */ fcmpo cr0, f1, f0 -/* 802686B8 002655F8 4C 40 13 82 */ cror 2, 0, 2 -/* 802686BC 002655FC 40 82 00 08 */ bne lbl_802686C4 -/* 802686C0 00265600 3B E0 00 01 */ li r31, 1 -lbl_802686C4: -/* 802686C4 00265604 EC 02 00 72 */ fmuls f0, f2, f1 -/* 802686C8 00265608 EC 03 00 2A */ fadds f0, f3, f0 -/* 802686CC 0026560C D0 03 00 00 */ stfs f0, 0(r3) -/* 802686D0 00265610 EC 05 00 72 */ fmuls f0, f5, f1 -/* 802686D4 00265614 EC 04 00 2A */ fadds f0, f4, f0 -/* 802686D8 00265618 D0 04 00 00 */ stfs f0, 0(r4) -/* 802686DC 0026561C C0 23 00 00 */ lfs f1, 0(r3) -/* 802686E0 00265620 C0 44 00 00 */ lfs f2, 0(r4) -/* 802686E4 00265624 FC 60 40 90 */ fmr f3, f8 -/* 802686E8 00265628 FC 80 38 90 */ fmr f4, f7 -/* 802686EC 0026562C 4B FF FF 29 */ bl cM3d_Len2dSq__Fffff -/* 802686F0 00265630 D0 3E 00 00 */ stfs f1, 0(r30) -/* 802686F4 00265634 7F E3 FB 78 */ mr r3, r31 -lbl_802686F8: -/* 802686F8 00265638 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 802686FC 0026563C 83 C1 00 08 */ lwz r30, 8(r1) -/* 80268700 00265640 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80268704 00265644 7C 08 03 A6 */ mtlr r0 -/* 80268708 00265648 38 21 00 10 */ addi r1, r1, 0x10 -/* 8026870C 0026564C 4E 80 00 20 */ blr diff --git a/include/SComponent/c_m3d/asm/func_80268710.s b/include/SComponent/c_m3d/asm/func_80268710.s deleted file mode 100644 index 61cc804c41a..00000000000 --- a/include/SComponent/c_m3d/asm/func_80268710.s +++ /dev/null @@ -1,70 +0,0 @@ -/* 80268710 00265650 94 21 FF B0 */ stwu r1, -0x50(r1) -/* 80268714 00265654 7C 08 02 A6 */ mflr r0 -/* 80268718 00265658 90 01 00 54 */ stw r0, 0x54(r1) -/* 8026871C 0026565C DB E1 00 40 */ stfd f31, 0x40(r1) -/* 80268720 00265660 F3 E1 00 48 */ psq_st f31, 72(r1), 0, 0 -/* 80268724 00265664 39 61 00 40 */ addi r11, r1, 0x40 -/* 80268728 00265668 48 0F 9A AD */ bl _savegpr_27 -/* 8026872C 0026566C 7C 7B 1B 78 */ mr r27, r3 -/* 80268730 00265670 7C 9C 23 78 */ mr r28, r4 -/* 80268734 00265674 7C BD 2B 78 */ mr r29, r5 -/* 80268738 00265678 7C DE 33 78 */ mr r30, r6 -/* 8026873C 0026567C 38 7B 00 0C */ addi r3, r27, 0xc -/* 80268740 00265680 7F 64 DB 78 */ mr r4, r27 -/* 80268744 00265684 38 A1 00 14 */ addi r5, r1, 0x14 -/* 80268748 00265688 48 0D E9 6D */ bl PSVECSubtract -/* 8026874C 0026568C 38 61 00 14 */ addi r3, r1, 0x14 -/* 80268750 00265690 7C 64 1B 78 */ mr r4, r3 -/* 80268754 00265694 48 0D EA 41 */ bl PSVECDotProduct -/* 80268758 00265698 FF E0 08 90 */ fmr f31, f1 -/* 8026875C 0026569C FC 00 FA 10 */ fabs f0, f31 -/* 80268760 002656A0 FC 20 00 18 */ frsp f1, f0 -/* 80268764 002656A4 C0 0D 8C 00 */ lfs f0, lbl_80451180-_SDA_BASE_(r13) -/* 80268768 002656A8 FC 01 00 40 */ fcmpo cr0, f1, f0 -/* 8026876C 002656AC 40 80 00 14 */ bge lbl_80268780 -/* 80268770 002656B0 C0 02 B7 18 */ lfs f0, lbl_80455118-_SDA2_BASE_(r2) -/* 80268774 002656B4 D0 1E 00 00 */ stfs f0, 0(r30) -/* 80268778 002656B8 38 60 00 00 */ li r3, 0 -/* 8026877C 002656BC 48 00 00 78 */ b lbl_802687F4 -lbl_80268780: -/* 80268780 002656C0 7F 83 E3 78 */ mr r3, r28 -/* 80268784 002656C4 7F 64 DB 78 */ mr r4, r27 -/* 80268788 002656C8 38 A1 00 08 */ addi r5, r1, 8 -/* 8026878C 002656CC 48 0D E9 29 */ bl PSVECSubtract -/* 80268790 002656D0 38 61 00 08 */ addi r3, r1, 8 -/* 80268794 002656D4 38 81 00 14 */ addi r4, r1, 0x14 -/* 80268798 002656D8 48 0D E9 FD */ bl PSVECDotProduct -/* 8026879C 002656DC EC 21 F8 24 */ fdivs f1, f1, f31 -/* 802687A0 002656E0 C0 02 B7 18 */ lfs f0, lbl_80455118-_SDA2_BASE_(r2) -/* 802687A4 002656E4 FC 01 00 40 */ fcmpo cr0, f1, f0 -/* 802687A8 002656E8 41 80 00 10 */ blt lbl_802687B8 -/* 802687AC 002656EC C0 02 B7 38 */ lfs f0, lbl_80455138-_SDA2_BASE_(r2) -/* 802687B0 002656F0 FC 01 00 40 */ fcmpo cr0, f1, f0 -/* 802687B4 002656F4 40 81 00 0C */ ble lbl_802687C0 -lbl_802687B8: -/* 802687B8 002656F8 3B E0 00 00 */ li r31, 0 -/* 802687BC 002656FC 48 00 00 08 */ b lbl_802687C4 -lbl_802687C0: -/* 802687C0 00265700 3B E0 00 01 */ li r31, 1 -lbl_802687C4: -/* 802687C4 00265704 38 61 00 14 */ addi r3, r1, 0x14 -/* 802687C8 00265708 7C 64 1B 78 */ mr r4, r3 -/* 802687CC 0026570C 48 0D E9 0D */ bl PSVECScale -/* 802687D0 00265710 38 61 00 14 */ addi r3, r1, 0x14 -/* 802687D4 00265714 7F 64 DB 78 */ mr r4, r27 -/* 802687D8 00265718 7F A5 EB 78 */ mr r5, r29 -/* 802687DC 0026571C 48 0D E8 B5 */ bl PSVECAdd -/* 802687E0 00265720 7F A3 EB 78 */ mr r3, r29 -/* 802687E4 00265724 7F 84 E3 78 */ mr r4, r28 -/* 802687E8 00265728 48 0D EB B5 */ bl PSVECSquareDistance -/* 802687EC 0026572C D0 3E 00 00 */ stfs f1, 0(r30) -/* 802687F0 00265730 7F E3 FB 78 */ mr r3, r31 -lbl_802687F4: -/* 802687F4 00265734 E3 E1 00 48 */ psq_l f31, 72(r1), 0, 0 -/* 802687F8 00265738 CB E1 00 40 */ lfd f31, 0x40(r1) -/* 802687FC 0026573C 39 61 00 40 */ addi r11, r1, 0x40 -/* 80268800 00265740 48 0F 9A 21 */ bl _restgpr_27 -/* 80268804 00265744 80 01 00 54 */ lwz r0, 0x54(r1) -/* 80268808 00265748 7C 08 03 A6 */ mtlr r0 -/* 8026880C 0026574C 38 21 00 50 */ addi r1, r1, 0x50 -/* 80268810 00265750 4E 80 00 20 */ blr diff --git a/include/SComponent/c_m3d/asm/func_80268814.s b/include/SComponent/c_m3d/asm/func_80268814.s deleted file mode 100644 index 143baa8b8ad..00000000000 --- a/include/SComponent/c_m3d/asm/func_80268814.s +++ /dev/null @@ -1,34 +0,0 @@ -/* 80268814 00265754 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 80268818 00265758 7C 08 02 A6 */ mflr r0 -/* 8026881C 0026575C 90 01 00 24 */ stw r0, 0x24(r1) -/* 80268820 00265760 DB E1 00 10 */ stfd f31, 0x10(r1) -/* 80268824 00265764 F3 E1 00 18 */ psq_st f31, 24(r1), 0, 0 -/* 80268828 00265768 93 E1 00 0C */ stw r31, 0xc(r1) -/* 8026882C 0026576C 93 C1 00 08 */ stw r30, 8(r1) -/* 80268830 00265770 7C 7E 1B 78 */ mr r30, r3 -/* 80268834 00265774 7C 9F 23 78 */ mr r31, r4 -/* 80268838 00265778 48 0D E9 19 */ bl PSVECMag -/* 8026883C 0026577C FF E0 08 90 */ fmr f31, f1 -/* 80268840 00265780 FC 00 FA 10 */ fabs f0, f31 -/* 80268844 00265784 FC 20 00 18 */ frsp f1, f0 -/* 80268848 00265788 C0 0D 8C 00 */ lfs f0, lbl_80451180-_SDA_BASE_(r13) -/* 8026884C 0026578C FC 01 00 40 */ fcmpo cr0, f1, f0 -/* 80268850 00265790 40 80 00 0C */ bge lbl_8026885C -/* 80268854 00265794 C0 22 B7 18 */ lfs f1, lbl_80455118-_SDA2_BASE_(r2) -/* 80268858 00265798 48 00 00 1C */ b lbl_80268874 -lbl_8026885C: -/* 8026885C 0026579C 7F C3 F3 78 */ mr r3, r30 -/* 80268860 002657A0 7F E4 FB 78 */ mr r4, r31 -/* 80268864 002657A4 48 0D E9 31 */ bl PSVECDotProduct -/* 80268868 002657A8 C0 1E 00 0C */ lfs f0, 0xc(r30) -/* 8026886C 002657AC EC 00 08 2A */ fadds f0, f0, f1 -/* 80268870 002657B0 EC 20 F8 24 */ fdivs f1, f0, f31 -lbl_80268874: -/* 80268874 002657B4 E3 E1 00 18 */ psq_l f31, 24(r1), 0, 0 -/* 80268878 002657B8 CB E1 00 10 */ lfd f31, 0x10(r1) -/* 8026887C 002657BC 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 80268880 002657C0 83 C1 00 08 */ lwz r30, 8(r1) -/* 80268884 002657C4 80 01 00 24 */ lwz r0, 0x24(r1) -/* 80268888 002657C8 7C 08 03 A6 */ mtlr r0 -/* 8026888C 002657CC 38 21 00 20 */ addi r1, r1, 0x20 -/* 80268890 002657D0 4E 80 00 20 */ blr diff --git a/include/SComponent/c_m3d/asm/func_80268894.s b/include/SComponent/c_m3d/asm/func_80268894.s deleted file mode 100644 index 571a81b3d9d..00000000000 --- a/include/SComponent/c_m3d/asm/func_80268894.s +++ /dev/null @@ -1,8 +0,0 @@ -/* 80268894 002657D4 EC 63 08 28 */ fsubs f3, f3, f1 -/* 80268898 002657D8 EC 06 10 28 */ fsubs f0, f6, f2 -/* 8026889C 002657DC EC 63 00 32 */ fmuls f3, f3, f0 -/* 802688A0 002657E0 EC 44 10 28 */ fsubs f2, f4, f2 -/* 802688A4 002657E4 EC 05 08 28 */ fsubs f0, f5, f1 -/* 802688A8 002657E8 EC 02 00 32 */ fmuls f0, f2, f0 -/* 802688AC 002657EC EC 23 00 28 */ fsubs f1, f3, f0 -/* 802688B0 002657F0 4E 80 00 20 */ blr \ No newline at end of file diff --git a/include/SComponent/c_m3d/asm/func_802688B4.s b/include/SComponent/c_m3d/asm/func_802688B4.s deleted file mode 100644 index 8d619ef5536..00000000000 --- a/include/SComponent/c_m3d/asm/func_802688B4.s +++ /dev/null @@ -1,26 +0,0 @@ -/* 802688B4 002657F4 94 21 FF D0 */ stwu r1, -0x30(r1) -/* 802688B8 002657F8 7C 08 02 A6 */ mflr r0 -/* 802688BC 002657FC 90 01 00 34 */ stw r0, 0x34(r1) -/* 802688C0 00265800 39 61 00 30 */ addi r11, r1, 0x30 -/* 802688C4 00265804 48 0F 99 19 */ bl _savegpr_29 -/* 802688C8 00265808 7C 7D 1B 78 */ mr r29, r3 -/* 802688CC 0026580C 7C BE 2B 78 */ mr r30, r5 -/* 802688D0 00265810 7C DF 33 78 */ mr r31, r6 -/* 802688D4 00265814 7C 83 23 78 */ mr r3, r4 -/* 802688D8 00265818 7F A4 EB 78 */ mr r4, r29 -/* 802688DC 0026581C 38 A1 00 14 */ addi r5, r1, 0x14 -/* 802688E0 00265820 48 0D E7 D5 */ bl PSVECSubtract -/* 802688E4 00265824 7F C3 F3 78 */ mr r3, r30 -/* 802688E8 00265828 7F A4 EB 78 */ mr r4, r29 -/* 802688EC 0026582C 38 A1 00 08 */ addi r5, r1, 8 -/* 802688F0 00265830 48 0D E7 C5 */ bl PSVECSubtract -/* 802688F4 00265834 38 61 00 14 */ addi r3, r1, 0x14 -/* 802688F8 00265838 38 81 00 08 */ addi r4, r1, 8 -/* 802688FC 0026583C 7F E5 FB 78 */ mr r5, r31 -/* 80268900 00265840 48 0D E8 B5 */ bl PSVECCrossProduct -/* 80268904 00265844 39 61 00 30 */ addi r11, r1, 0x30 -/* 80268908 00265848 48 0F 99 21 */ bl _restgpr_29 -/* 8026890C 0026584C 80 01 00 34 */ lwz r0, 0x34(r1) -/* 80268910 00265850 7C 08 03 A6 */ mtlr r0 -/* 80268914 00265854 38 21 00 30 */ addi r1, r1, 0x30 -/* 80268918 00265858 4E 80 00 20 */ blr diff --git a/include/SComponent/c_m3d/asm/func_8026891C.s b/include/SComponent/c_m3d/asm/func_8026891C.s deleted file mode 100644 index 701a05376d0..00000000000 --- a/include/SComponent/c_m3d/asm/func_8026891C.s +++ /dev/null @@ -1,53 +0,0 @@ -/* 8026891C 0026585C 94 21 FF D0 */ stwu r1, -0x30(r1) -/* 80268920 00265860 7C 08 02 A6 */ mflr r0 -/* 80268924 00265864 90 01 00 34 */ stw r0, 0x34(r1) -/* 80268928 00265868 39 61 00 30 */ addi r11, r1, 0x30 -/* 8026892C 0026586C 48 0F 98 AD */ bl _savegpr_28 -/* 80268930 00265870 7C 7C 1B 78 */ mr r28, r3 -/* 80268934 00265874 7C BD 2B 78 */ mr r29, r5 -/* 80268938 00265878 7C DE 33 78 */ mr r30, r6 -/* 8026893C 0026587C 7C FF 3B 78 */ mr r31, r7 -/* 80268940 00265880 7C 83 23 78 */ mr r3, r4 -/* 80268944 00265884 7F 84 E3 78 */ mr r4, r28 -/* 80268948 00265888 38 A1 00 08 */ addi r5, r1, 8 -/* 8026894C 0026588C 48 0D E7 69 */ bl PSVECSubtract -/* 80268950 00265890 7F A3 EB 78 */ mr r3, r29 -/* 80268954 00265894 7F 84 E3 78 */ mr r4, r28 -/* 80268958 00265898 38 A1 00 14 */ addi r5, r1, 0x14 -/* 8026895C 0026589C 48 0D E7 59 */ bl PSVECSubtract -/* 80268960 002658A0 38 61 00 08 */ addi r3, r1, 8 -/* 80268964 002658A4 38 81 00 14 */ addi r4, r1, 0x14 -/* 80268968 002658A8 7F C5 F3 78 */ mr r5, r30 -/* 8026896C 002658AC 48 0D E8 49 */ bl PSVECCrossProduct -/* 80268970 002658B0 7F C3 F3 78 */ mr r3, r30 -/* 80268974 002658B4 48 0D E7 DD */ bl PSVECMag -/* 80268978 002658B8 FC 00 0A 10 */ fabs f0, f1 -/* 8026897C 002658BC FC 40 00 18 */ frsp f2, f0 -/* 80268980 002658C0 C0 02 B7 3C */ lfs f0, lbl_8045513C-_SDA2_BASE_(r2) -/* 80268984 002658C4 FC 02 00 40 */ fcmpo cr0, f2, f0 -/* 80268988 002658C8 4C 41 13 82 */ cror 2, 1, 2 -/* 8026898C 002658CC 40 82 00 30 */ bne lbl_802689BC -/* 80268990 002658D0 7F C3 F3 78 */ mr r3, r30 -/* 80268994 002658D4 7F C4 F3 78 */ mr r4, r30 -/* 80268998 002658D8 C0 02 B7 38 */ lfs f0, lbl_80455138-_SDA2_BASE_(r2) -/* 8026899C 002658DC EC 20 08 24 */ fdivs f1, f0, f1 -/* 802689A0 002658E0 48 0D E7 39 */ bl PSVECScale -/* 802689A4 002658E4 7F C3 F3 78 */ mr r3, r30 -/* 802689A8 002658E8 7F 84 E3 78 */ mr r4, r28 -/* 802689AC 002658EC 48 0D E7 E9 */ bl PSVECDotProduct -/* 802689B0 002658F0 FC 00 08 50 */ fneg f0, f1 -/* 802689B4 002658F4 D0 1F 00 00 */ stfs f0, 0(r31) -/* 802689B8 002658F8 48 00 00 18 */ b lbl_802689D0 -lbl_802689BC: -/* 802689BC 002658FC C0 02 B7 18 */ lfs f0, lbl_80455118-_SDA2_BASE_(r2) -/* 802689C0 00265900 D0 1E 00 04 */ stfs f0, 4(r30) -/* 802689C4 00265904 D0 1F 00 00 */ stfs f0, 0(r31) -/* 802689C8 00265908 D0 1E 00 08 */ stfs f0, 8(r30) -/* 802689CC 0026590C D0 1E 00 00 */ stfs f0, 0(r30) -lbl_802689D0: -/* 802689D0 00265910 39 61 00 30 */ addi r11, r1, 0x30 -/* 802689D4 00265914 48 0F 98 51 */ bl _restgpr_28 -/* 802689D8 00265918 80 01 00 34 */ lwz r0, 0x34(r1) -/* 802689DC 0026591C 7C 08 03 A6 */ mtlr r0 -/* 802689E0 00265920 38 21 00 30 */ addi r1, r1, 0x30 -/* 802689E4 00265924 4E 80 00 20 */ blr diff --git a/include/SComponent/c_m3d/asm/func_802689E8.s b/include/SComponent/c_m3d/asm/func_802689E8.s deleted file mode 100644 index c0dea96fc38..00000000000 --- a/include/SComponent/c_m3d/asm/func_802689E8.s +++ /dev/null @@ -1,89 +0,0 @@ -/* 802689E8 00265928 C0 64 00 0C */ lfs f3, 0xc(r4) -/* 802689EC 0026592C C0 44 00 00 */ lfs f2, 0(r4) -/* 802689F0 00265930 C0 23 00 0C */ lfs f1, 0xc(r3) -/* 802689F4 00265934 C0 03 00 00 */ lfs f0, 0(r3) -/* 802689F8 00265938 FC 00 18 40 */ fcmpo cr0, f0, f3 -/* 802689FC 0026593C 40 81 00 0C */ ble lbl_80268A08 -/* 80268A00 00265940 38 00 00 00 */ li r0, 0 -/* 80268A04 00265944 48 00 00 38 */ b lbl_80268A3C -lbl_80268A08: -/* 80268A08 00265948 FC 01 10 40 */ fcmpo cr0, f1, f2 -/* 80268A0C 0026594C 40 80 00 0C */ bge lbl_80268A18 -/* 80268A10 00265950 38 00 00 00 */ li r0, 0 -/* 80268A14 00265954 48 00 00 28 */ b lbl_80268A3C -lbl_80268A18: -/* 80268A18 00265958 FC 02 08 40 */ fcmpo cr0, f2, f1 -/* 80268A1C 0026595C 40 81 00 0C */ ble lbl_80268A28 -/* 80268A20 00265960 38 00 00 00 */ li r0, 0 -/* 80268A24 00265964 48 00 00 18 */ b lbl_80268A3C -lbl_80268A28: -/* 80268A28 00265968 FC 03 00 40 */ fcmpo cr0, f3, f0 -/* 80268A2C 0026596C 40 80 00 0C */ bge lbl_80268A38 -/* 80268A30 00265970 38 00 00 00 */ li r0, 0 -/* 80268A34 00265974 48 00 00 08 */ b lbl_80268A3C -lbl_80268A38: -/* 80268A38 00265978 38 00 00 01 */ li r0, 1 -lbl_80268A3C: -/* 80268A3C 0026597C 54 00 06 3F */ clrlwi. r0, r0, 0x18 -/* 80268A40 00265980 41 82 00 C4 */ beq lbl_80268B04 -/* 80268A44 00265984 C0 64 00 10 */ lfs f3, 0x10(r4) -/* 80268A48 00265988 C0 44 00 04 */ lfs f2, 4(r4) -/* 80268A4C 0026598C C0 23 00 10 */ lfs f1, 0x10(r3) -/* 80268A50 00265990 C0 03 00 04 */ lfs f0, 4(r3) -/* 80268A54 00265994 FC 00 18 40 */ fcmpo cr0, f0, f3 -/* 80268A58 00265998 40 81 00 0C */ ble lbl_80268A64 -/* 80268A5C 0026599C 38 00 00 00 */ li r0, 0 -/* 80268A60 002659A0 48 00 00 38 */ b lbl_80268A98 -lbl_80268A64: -/* 80268A64 002659A4 FC 01 10 40 */ fcmpo cr0, f1, f2 -/* 80268A68 002659A8 40 80 00 0C */ bge lbl_80268A74 -/* 80268A6C 002659AC 38 00 00 00 */ li r0, 0 -/* 80268A70 002659B0 48 00 00 28 */ b lbl_80268A98 -lbl_80268A74: -/* 80268A74 002659B4 FC 02 08 40 */ fcmpo cr0, f2, f1 -/* 80268A78 002659B8 40 81 00 0C */ ble lbl_80268A84 -/* 80268A7C 002659BC 38 00 00 00 */ li r0, 0 -/* 80268A80 002659C0 48 00 00 18 */ b lbl_80268A98 -lbl_80268A84: -/* 80268A84 002659C4 FC 03 00 40 */ fcmpo cr0, f3, f0 -/* 80268A88 002659C8 40 80 00 0C */ bge lbl_80268A94 -/* 80268A8C 002659CC 38 00 00 00 */ li r0, 0 -/* 80268A90 002659D0 48 00 00 08 */ b lbl_80268A98 -lbl_80268A94: -/* 80268A94 002659D4 38 00 00 01 */ li r0, 1 -lbl_80268A98: -/* 80268A98 002659D8 54 00 06 3F */ clrlwi. r0, r0, 0x18 -/* 80268A9C 002659DC 41 82 00 68 */ beq lbl_80268B04 -/* 80268AA0 002659E0 C0 64 00 14 */ lfs f3, 0x14(r4) -/* 80268AA4 002659E4 C0 44 00 08 */ lfs f2, 8(r4) -/* 80268AA8 002659E8 C0 23 00 14 */ lfs f1, 0x14(r3) -/* 80268AAC 002659EC C0 03 00 08 */ lfs f0, 8(r3) -/* 80268AB0 002659F0 FC 00 18 40 */ fcmpo cr0, f0, f3 -/* 80268AB4 002659F4 40 81 00 0C */ ble lbl_80268AC0 -/* 80268AB8 002659F8 38 00 00 00 */ li r0, 0 -/* 80268ABC 002659FC 48 00 00 38 */ b lbl_80268AF4 -lbl_80268AC0: -/* 80268AC0 00265A00 FC 01 10 40 */ fcmpo cr0, f1, f2 -/* 80268AC4 00265A04 40 80 00 0C */ bge lbl_80268AD0 -/* 80268AC8 00265A08 38 00 00 00 */ li r0, 0 -/* 80268ACC 00265A0C 48 00 00 28 */ b lbl_80268AF4 -lbl_80268AD0: -/* 80268AD0 00265A10 FC 02 08 40 */ fcmpo cr0, f2, f1 -/* 80268AD4 00265A14 40 81 00 0C */ ble lbl_80268AE0 -/* 80268AD8 00265A18 38 00 00 00 */ li r0, 0 -/* 80268ADC 00265A1C 48 00 00 18 */ b lbl_80268AF4 -lbl_80268AE0: -/* 80268AE0 00265A20 FC 03 00 40 */ fcmpo cr0, f3, f0 -/* 80268AE4 00265A24 40 80 00 0C */ bge lbl_80268AF0 -/* 80268AE8 00265A28 38 00 00 00 */ li r0, 0 -/* 80268AEC 00265A2C 48 00 00 08 */ b lbl_80268AF4 -lbl_80268AF0: -/* 80268AF0 00265A30 38 00 00 01 */ li r0, 1 -lbl_80268AF4: -/* 80268AF4 00265A34 54 00 06 3F */ clrlwi. r0, r0, 0x18 -/* 80268AF8 00265A38 41 82 00 0C */ beq lbl_80268B04 -/* 80268AFC 00265A3C 38 60 00 01 */ li r3, 1 -/* 80268B00 00265A40 4E 80 00 20 */ blr -lbl_80268B04: -/* 80268B04 00265A44 38 60 00 00 */ li r3, 0 -/* 80268B08 00265A48 4E 80 00 20 */ blr diff --git a/include/SComponent/c_m3d/asm/func_80268B0C.s b/include/SComponent/c_m3d/asm/func_80268B0C.s deleted file mode 100644 index 8905a3eea62..00000000000 --- a/include/SComponent/c_m3d/asm/func_80268B0C.s +++ /dev/null @@ -1,47 +0,0 @@ -/* 80268B0C 00265A4C C0 23 00 00 */ lfs f1, 0(r3) -/* 80268B10 00265A50 C0 44 00 00 */ lfs f2, 0(r4) -/* 80268B14 00265A54 C0 64 00 0C */ lfs f3, 0xc(r4) -/* 80268B18 00265A58 EC 02 18 2A */ fadds f0, f2, f3 -/* 80268B1C 00265A5C FC 01 00 40 */ fcmpo cr0, f1, f0 -/* 80268B20 00265A60 40 81 00 0C */ ble lbl_80268B2C -/* 80268B24 00265A64 38 60 00 00 */ li r3, 0 -/* 80268B28 00265A68 4E 80 00 20 */ blr -lbl_80268B2C: -/* 80268B2C 00265A6C C0 23 00 0C */ lfs f1, 0xc(r3) -/* 80268B30 00265A70 EC 02 18 28 */ fsubs f0, f2, f3 -/* 80268B34 00265A74 FC 01 00 40 */ fcmpo cr0, f1, f0 -/* 80268B38 00265A78 40 80 00 0C */ bge lbl_80268B44 -/* 80268B3C 00265A7C 38 60 00 00 */ li r3, 0 -/* 80268B40 00265A80 4E 80 00 20 */ blr -lbl_80268B44: -/* 80268B44 00265A84 C0 23 00 08 */ lfs f1, 8(r3) -/* 80268B48 00265A88 C0 44 00 08 */ lfs f2, 8(r4) -/* 80268B4C 00265A8C EC 02 18 2A */ fadds f0, f2, f3 -/* 80268B50 00265A90 FC 01 00 40 */ fcmpo cr0, f1, f0 -/* 80268B54 00265A94 40 81 00 0C */ ble lbl_80268B60 -/* 80268B58 00265A98 38 60 00 00 */ li r3, 0 -/* 80268B5C 00265A9C 4E 80 00 20 */ blr -lbl_80268B60: -/* 80268B60 00265AA0 C0 23 00 14 */ lfs f1, 0x14(r3) -/* 80268B64 00265AA4 EC 02 18 28 */ fsubs f0, f2, f3 -/* 80268B68 00265AA8 FC 01 00 40 */ fcmpo cr0, f1, f0 -/* 80268B6C 00265AAC 40 80 00 0C */ bge lbl_80268B78 -/* 80268B70 00265AB0 38 60 00 00 */ li r3, 0 -/* 80268B74 00265AB4 4E 80 00 20 */ blr -lbl_80268B78: -/* 80268B78 00265AB8 C0 23 00 04 */ lfs f1, 4(r3) -/* 80268B7C 00265ABC C0 44 00 04 */ lfs f2, 4(r4) -/* 80268B80 00265AC0 C0 04 00 10 */ lfs f0, 0x10(r4) -/* 80268B84 00265AC4 EC 02 00 2A */ fadds f0, f2, f0 -/* 80268B88 00265AC8 FC 01 00 40 */ fcmpo cr0, f1, f0 -/* 80268B8C 00265ACC 40 81 00 0C */ ble lbl_80268B98 -/* 80268B90 00265AD0 38 60 00 00 */ li r3, 0 -/* 80268B94 00265AD4 4E 80 00 20 */ blr -lbl_80268B98: -/* 80268B98 00265AD8 C0 03 00 10 */ lfs f0, 0x10(r3) -/* 80268B9C 00265ADC FC 00 10 40 */ fcmpo cr0, f0, f2 -/* 80268BA0 00265AE0 7C 00 00 26 */ mfcr r0 -/* 80268BA4 00265AE4 54 00 0F FE */ srwi r0, r0, 0x1f -/* 80268BA8 00265AE8 7C 00 00 34 */ cntlzw r0, r0 -/* 80268BAC 00265AEC 54 03 D9 7E */ srwi r3, r0, 5 -/* 80268BB0 00265AF0 4E 80 00 20 */ blr diff --git a/include/SComponent/c_m3d/asm/func_80268ED4.s b/include/SComponent/c_m3d/asm/func_80268ED4.s deleted file mode 100644 index b4f2be8c604..00000000000 --- a/include/SComponent/c_m3d/asm/func_80268ED4.s +++ /dev/null @@ -1,26 +0,0 @@ -/* 80268ED4 00265E14 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80268ED8 00265E18 7C 08 02 A6 */ mflr r0 -/* 80268EDC 00265E1C 90 01 00 14 */ stw r0, 0x14(r1) -/* 80268EE0 00265E20 EC 61 10 28 */ fsubs f3, f1, f2 -/* 80268EE4 00265E24 FC 00 1A 10 */ fabs f0, f3 -/* 80268EE8 00265E28 FC 40 00 18 */ frsp f2, f0 -/* 80268EEC 00265E2C C0 0D 8C 00 */ lfs f0, lbl_80451180-_SDA_BASE_(r13) -/* 80268EF0 00265E30 FC 02 00 40 */ fcmpo cr0, f2, f0 -/* 80268EF4 00265E34 40 80 00 24 */ bge lbl_80268F18 -/* 80268EF8 00265E38 C0 04 00 00 */ lfs f0, 0(r4) -/* 80268EFC 00265E3C D0 05 00 00 */ stfs f0, 0(r5) -/* 80268F00 00265E40 C0 04 00 04 */ lfs f0, 4(r4) -/* 80268F04 00265E44 D0 05 00 04 */ stfs f0, 4(r5) -/* 80268F08 00265E48 C0 04 00 08 */ lfs f0, 8(r4) -/* 80268F0C 00265E4C D0 05 00 08 */ stfs f0, 8(r5) -/* 80268F10 00265E50 38 60 00 00 */ li r3, 0 -/* 80268F14 00265E54 48 00 00 10 */ b lbl_80268F24 -lbl_80268F18: -/* 80268F18 00265E58 EC 21 18 24 */ fdivs f1, f1, f3 -/* 80268F1C 00265E5C 4B FF F6 95 */ bl cM3d_InDivPos2__FPC3VecPC3VecfP3Vec -/* 80268F20 00265E60 38 60 00 01 */ li r3, 1 -lbl_80268F24: -/* 80268F24 00265E64 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80268F28 00265E68 7C 08 03 A6 */ mtlr r0 -/* 80268F2C 00265E6C 38 21 00 10 */ addi r1, r1, 0x10 -/* 80268F30 00265E70 4E 80 00 20 */ blr diff --git a/include/SComponent/c_m3d/asm/func_80269C2C.s b/include/SComponent/c_m3d/asm/func_80269C2C.s deleted file mode 100644 index 181bc356084..00000000000 --- a/include/SComponent/c_m3d/asm/func_80269C2C.s +++ /dev/null @@ -1,96 +0,0 @@ -/* 80269C2C 00266B6C C0 03 00 00 */ lfs f0, 0(r3) -/* 80269C30 00266B70 C0 44 00 00 */ lfs f2, 0(r4) -/* 80269C34 00266B74 FC 00 10 40 */ fcmpo cr0, f0, f2 -/* 80269C38 00266B78 40 80 00 10 */ bge lbl_80269C48 -/* 80269C3C 00266B7C FC 60 00 90 */ fmr f3, f0 -/* 80269C40 00266B80 FC 80 10 90 */ fmr f4, f2 -/* 80269C44 00266B84 48 00 00 0C */ b lbl_80269C50 -lbl_80269C48: -/* 80269C48 00266B88 FC 60 10 90 */ fmr f3, f2 -/* 80269C4C 00266B8C FC 80 00 90 */ fmr f4, f0 -lbl_80269C50: -/* 80269C50 00266B90 C0 05 00 00 */ lfs f0, 0(r5) -/* 80269C54 00266B94 FC 03 00 40 */ fcmpo cr0, f3, f0 -/* 80269C58 00266B98 40 81 00 0C */ ble lbl_80269C64 -/* 80269C5C 00266B9C FC 60 00 90 */ fmr f3, f0 -/* 80269C60 00266BA0 48 00 00 10 */ b lbl_80269C70 -lbl_80269C64: -/* 80269C64 00266BA4 FC 04 00 40 */ fcmpo cr0, f4, f0 -/* 80269C68 00266BA8 40 80 00 08 */ bge lbl_80269C70 -/* 80269C6C 00266BAC FC 80 00 90 */ fmr f4, f0 -lbl_80269C70: -/* 80269C70 00266BB0 EC 03 08 28 */ fsubs f0, f3, f1 -/* 80269C74 00266BB4 C0 46 00 00 */ lfs f2, 0(r6) -/* 80269C78 00266BB8 FC 00 10 40 */ fcmpo cr0, f0, f2 -/* 80269C7C 00266BBC 41 81 00 10 */ bgt lbl_80269C8C -/* 80269C80 00266BC0 EC 04 08 2A */ fadds f0, f4, f1 -/* 80269C84 00266BC4 FC 00 10 40 */ fcmpo cr0, f0, f2 -/* 80269C88 00266BC8 40 80 00 0C */ bge lbl_80269C94 -lbl_80269C8C: -/* 80269C8C 00266BCC 38 60 00 00 */ li r3, 0 -/* 80269C90 00266BD0 4E 80 00 20 */ blr -lbl_80269C94: -/* 80269C94 00266BD4 C0 03 00 08 */ lfs f0, 8(r3) -/* 80269C98 00266BD8 C0 64 00 08 */ lfs f3, 8(r4) -/* 80269C9C 00266BDC FC 00 18 40 */ fcmpo cr0, f0, f3 -/* 80269CA0 00266BE0 40 80 00 0C */ bge lbl_80269CAC -/* 80269CA4 00266BE4 FC 40 00 90 */ fmr f2, f0 -/* 80269CA8 00266BE8 48 00 00 0C */ b lbl_80269CB4 -lbl_80269CAC: -/* 80269CAC 00266BEC FC 40 18 90 */ fmr f2, f3 -/* 80269CB0 00266BF0 FC 60 00 90 */ fmr f3, f0 -lbl_80269CB4: -/* 80269CB4 00266BF4 C0 05 00 08 */ lfs f0, 8(r5) -/* 80269CB8 00266BF8 FC 02 00 40 */ fcmpo cr0, f2, f0 -/* 80269CBC 00266BFC 40 81 00 0C */ ble lbl_80269CC8 -/* 80269CC0 00266C00 FC 40 00 90 */ fmr f2, f0 -/* 80269CC4 00266C04 48 00 00 10 */ b lbl_80269CD4 -lbl_80269CC8: -/* 80269CC8 00266C08 FC 03 00 40 */ fcmpo cr0, f3, f0 -/* 80269CCC 00266C0C 40 80 00 08 */ bge lbl_80269CD4 -/* 80269CD0 00266C10 FC 60 00 90 */ fmr f3, f0 -lbl_80269CD4: -/* 80269CD4 00266C14 EC 02 08 28 */ fsubs f0, f2, f1 -/* 80269CD8 00266C18 C0 46 00 08 */ lfs f2, 8(r6) -/* 80269CDC 00266C1C FC 00 10 40 */ fcmpo cr0, f0, f2 -/* 80269CE0 00266C20 41 81 00 10 */ bgt lbl_80269CF0 -/* 80269CE4 00266C24 EC 03 08 2A */ fadds f0, f3, f1 -/* 80269CE8 00266C28 FC 00 10 40 */ fcmpo cr0, f0, f2 -/* 80269CEC 00266C2C 40 80 00 0C */ bge lbl_80269CF8 -lbl_80269CF0: -/* 80269CF0 00266C30 38 60 00 00 */ li r3, 0 -/* 80269CF4 00266C34 4E 80 00 20 */ blr -lbl_80269CF8: -/* 80269CF8 00266C38 C0 03 00 04 */ lfs f0, 4(r3) -/* 80269CFC 00266C3C C0 64 00 04 */ lfs f3, 4(r4) -/* 80269D00 00266C40 FC 00 18 40 */ fcmpo cr0, f0, f3 -/* 80269D04 00266C44 40 80 00 0C */ bge lbl_80269D10 -/* 80269D08 00266C48 FC 40 00 90 */ fmr f2, f0 -/* 80269D0C 00266C4C 48 00 00 0C */ b lbl_80269D18 -lbl_80269D10: -/* 80269D10 00266C50 FC 40 18 90 */ fmr f2, f3 -/* 80269D14 00266C54 FC 60 00 90 */ fmr f3, f0 -lbl_80269D18: -/* 80269D18 00266C58 C0 05 00 04 */ lfs f0, 4(r5) -/* 80269D1C 00266C5C FC 02 00 40 */ fcmpo cr0, f2, f0 -/* 80269D20 00266C60 40 81 00 0C */ ble lbl_80269D2C -/* 80269D24 00266C64 FC 40 00 90 */ fmr f2, f0 -/* 80269D28 00266C68 48 00 00 10 */ b lbl_80269D38 -lbl_80269D2C: -/* 80269D2C 00266C6C FC 03 00 40 */ fcmpo cr0, f3, f0 -/* 80269D30 00266C70 40 80 00 08 */ bge lbl_80269D38 -/* 80269D34 00266C74 FC 60 00 90 */ fmr f3, f0 -lbl_80269D38: -/* 80269D38 00266C78 EC 02 08 28 */ fsubs f0, f2, f1 -/* 80269D3C 00266C7C C0 46 00 04 */ lfs f2, 4(r6) -/* 80269D40 00266C80 FC 00 10 40 */ fcmpo cr0, f0, f2 -/* 80269D44 00266C84 41 81 00 10 */ bgt lbl_80269D54 -/* 80269D48 00266C88 EC 03 08 2A */ fadds f0, f3, f1 -/* 80269D4C 00266C8C FC 00 10 40 */ fcmpo cr0, f0, f2 -/* 80269D50 00266C90 40 80 00 0C */ bge lbl_80269D5C -lbl_80269D54: -/* 80269D54 00266C94 38 60 00 00 */ li r3, 0 -/* 80269D58 00266C98 4E 80 00 20 */ blr -lbl_80269D5C: -/* 80269D5C 00266C9C 38 60 00 01 */ li r3, 1 -/* 80269D60 00266CA0 4E 80 00 20 */ blr diff --git a/include/SComponent/c_m3d/asm/func_8026BD88.s b/include/SComponent/c_m3d/asm/func_8026BD88.s deleted file mode 100644 index eafdfcba6a7..00000000000 --- a/include/SComponent/c_m3d/asm/func_8026BD88.s +++ /dev/null @@ -1,57 +0,0 @@ -/* 8026BD88 00268CC8 94 21 FF C0 */ stwu r1, -0x40(r1) -/* 8026BD8C 00268CCC 7C 08 02 A6 */ mflr r0 -/* 8026BD90 00268CD0 90 01 00 44 */ stw r0, 0x44(r1) -/* 8026BD94 00268CD4 DB E1 00 30 */ stfd f31, 0x30(r1) -/* 8026BD98 00268CD8 F3 E1 00 38 */ psq_st f31, 56(r1), 0, 0 -/* 8026BD9C 00268CDC 39 61 00 30 */ addi r11, r1, 0x30 -/* 8026BDA0 00268CE0 48 0F 64 3D */ bl _savegpr_29 -/* 8026BDA4 00268CE4 7C 7D 1B 78 */ mr r29, r3 -/* 8026BDA8 00268CE8 7C 9E 23 78 */ mr r30, r4 -/* 8026BDAC 00268CEC 7C BF 2B 78 */ mr r31, r5 -/* 8026BDB0 00268CF0 38 A1 00 0C */ addi r5, r1, 0xc -/* 8026BDB4 00268CF4 38 C1 00 08 */ addi r6, r1, 8 -/* 8026BDB8 00268CF8 4B FF FF 45 */ bl cM3d_Cross_SphSph__FPC8cM3dGSphPC8cM3dGSphPfPf -/* 8026BDBC 00268CFC 54 60 06 3F */ clrlwi. r0, r3, 0x18 -/* 8026BDC0 00268D00 41 82 00 78 */ beq lbl_8026BE38 -/* 8026BDC4 00268D04 C0 41 00 0C */ lfs f2, 0xc(r1) -/* 8026BDC8 00268D08 FC 00 12 10 */ fabs f0, f2 -/* 8026BDCC 00268D0C FC 20 00 18 */ frsp f1, f0 -/* 8026BDD0 00268D10 C0 0D 8C 00 */ lfs f0, lbl_80451180-_SDA_BASE_(r13) -/* 8026BDD4 00268D14 FC 01 00 40 */ fcmpo cr0, f1, f0 -/* 8026BDD8 00268D18 41 80 00 40 */ blt lbl_8026BE18 -/* 8026BDDC 00268D1C C0 1E 00 0C */ lfs f0, 0xc(r30) -/* 8026BDE0 00268D20 EF E0 10 24 */ fdivs f31, f0, f2 -/* 8026BDE4 00268D24 7F A3 EB 78 */ mr r3, r29 -/* 8026BDE8 00268D28 7F C4 F3 78 */ mr r4, r30 -/* 8026BDEC 00268D2C 38 A1 00 10 */ addi r5, r1, 0x10 -/* 8026BDF0 00268D30 48 0D B2 C5 */ bl PSVECSubtract -/* 8026BDF4 00268D34 38 61 00 10 */ addi r3, r1, 0x10 -/* 8026BDF8 00268D38 7C 64 1B 78 */ mr r4, r3 -/* 8026BDFC 00268D3C FC 20 F8 90 */ fmr f1, f31 -/* 8026BE00 00268D40 48 0D B2 D9 */ bl PSVECScale -/* 8026BE04 00268D44 38 61 00 10 */ addi r3, r1, 0x10 -/* 8026BE08 00268D48 7F C4 F3 78 */ mr r4, r30 -/* 8026BE0C 00268D4C 7F E5 FB 78 */ mr r5, r31 -/* 8026BE10 00268D50 48 0D B2 81 */ bl PSVECAdd -/* 8026BE14 00268D54 48 00 00 1C */ b lbl_8026BE30 -lbl_8026BE18: -/* 8026BE18 00268D58 C0 1D 00 00 */ lfs f0, 0(r29) -/* 8026BE1C 00268D5C D0 1F 00 00 */ stfs f0, 0(r31) -/* 8026BE20 00268D60 C0 1D 00 04 */ lfs f0, 4(r29) -/* 8026BE24 00268D64 D0 1F 00 04 */ stfs f0, 4(r31) -/* 8026BE28 00268D68 C0 1D 00 08 */ lfs f0, 8(r29) -/* 8026BE2C 00268D6C D0 1F 00 08 */ stfs f0, 8(r31) -lbl_8026BE30: -/* 8026BE30 00268D70 38 60 00 01 */ li r3, 1 -/* 8026BE34 00268D74 48 00 00 08 */ b lbl_8026BE3C -lbl_8026BE38: -/* 8026BE38 00268D78 38 60 00 00 */ li r3, 0 -lbl_8026BE3C: -/* 8026BE3C 00268D7C E3 E1 00 38 */ psq_l f31, 56(r1), 0, 0 -/* 8026BE40 00268D80 CB E1 00 30 */ lfd f31, 0x30(r1) -/* 8026BE44 00268D84 39 61 00 30 */ addi r11, r1, 0x30 -/* 8026BE48 00268D88 48 0F 63 E1 */ bl _restgpr_29 -/* 8026BE4C 00268D8C 80 01 00 44 */ lwz r0, 0x44(r1) -/* 8026BE50 00268D90 7C 08 03 A6 */ mtlr r0 -/* 8026BE54 00268D94 38 21 00 40 */ addi r1, r1, 0x40 -/* 8026BE58 00268D98 4E 80 00 20 */ blr diff --git a/include/SComponent/c_m3d/asm/func_8026BE5C.s b/include/SComponent/c_m3d/asm/func_8026BE5C.s deleted file mode 100644 index e68f9f061d9..00000000000 --- a/include/SComponent/c_m3d/asm/func_8026BE5C.s +++ /dev/null @@ -1,44 +0,0 @@ -/* 8026BE5C 00268D9C 94 21 FF D0 */ stwu r1, -0x30(r1) -/* 8026BE60 00268DA0 7C 08 02 A6 */ mflr r0 -/* 8026BE64 00268DA4 90 01 00 34 */ stw r0, 0x34(r1) -/* 8026BE68 00268DA8 93 E1 00 2C */ stw r31, 0x2c(r1) -/* 8026BE6C 00268DAC 93 C1 00 28 */ stw r30, 0x28(r1) -/* 8026BE70 00268DB0 7C 7E 1B 78 */ mr r30, r3 -/* 8026BE74 00268DB4 7C BF 2B 78 */ mr r31, r5 -/* 8026BE78 00268DB8 38 64 00 14 */ addi r3, r4, 0x14 -/* 8026BE7C 00268DBC 38 84 00 20 */ addi r4, r4, 0x20 -/* 8026BE80 00268DC0 38 A1 00 08 */ addi r5, r1, 8 -/* 8026BE84 00268DC4 48 0D B2 0D */ bl PSVECAdd -/* 8026BE88 00268DC8 38 61 00 08 */ addi r3, r1, 8 -/* 8026BE8C 00268DCC 38 81 00 14 */ addi r4, r1, 0x14 -/* 8026BE90 00268DD0 C0 22 B7 C4 */ lfs f1, lbl_804551C4-_SDA2_BASE_(r2) -/* 8026BE94 00268DD4 48 0D B2 45 */ bl PSVECScale -/* 8026BE98 00268DD8 38 61 00 14 */ addi r3, r1, 0x14 -/* 8026BE9C 00268DDC 7F C4 F3 78 */ mr r4, r30 -/* 8026BEA0 00268DE0 48 0D B4 FD */ bl PSVECSquareDistance -/* 8026BEA4 00268DE4 FC 00 0A 10 */ fabs f0, f1 -/* 8026BEA8 00268DE8 FC 40 00 18 */ frsp f2, f0 -/* 8026BEAC 00268DEC C0 0D 8C 00 */ lfs f0, lbl_80451180-_SDA_BASE_(r13) -/* 8026BEB0 00268DF0 FC 02 00 40 */ fcmpo cr0, f2, f0 -/* 8026BEB4 00268DF4 40 80 00 20 */ bge lbl_8026BED4 -/* 8026BEB8 00268DF8 C0 1E 00 00 */ lfs f0, 0(r30) -/* 8026BEBC 00268DFC D0 1F 00 00 */ stfs f0, 0(r31) -/* 8026BEC0 00268E00 C0 1E 00 04 */ lfs f0, 4(r30) -/* 8026BEC4 00268E04 D0 1F 00 04 */ stfs f0, 4(r31) -/* 8026BEC8 00268E08 C0 1E 00 08 */ lfs f0, 8(r30) -/* 8026BECC 00268E0C D0 1F 00 08 */ stfs f0, 8(r31) -/* 8026BED0 00268E10 48 00 00 1C */ b lbl_8026BEEC -lbl_8026BED4: -/* 8026BED4 00268E14 7F C3 F3 78 */ mr r3, r30 -/* 8026BED8 00268E18 38 81 00 14 */ addi r4, r1, 0x14 -/* 8026BEDC 00268E1C C0 1E 00 0C */ lfs f0, 0xc(r30) -/* 8026BEE0 00268E20 EC 20 08 24 */ fdivs f1, f0, f1 -/* 8026BEE4 00268E24 7F E5 FB 78 */ mr r5, r31 -/* 8026BEE8 00268E28 4B FF C6 C9 */ bl cM3d_InDivPos2__FPC3VecPC3VecfP3Vec -lbl_8026BEEC: -/* 8026BEEC 00268E2C 83 E1 00 2C */ lwz r31, 0x2c(r1) -/* 8026BEF0 00268E30 83 C1 00 28 */ lwz r30, 0x28(r1) -/* 8026BEF4 00268E34 80 01 00 34 */ lwz r0, 0x34(r1) -/* 8026BEF8 00268E38 7C 08 03 A6 */ mtlr r0 -/* 8026BEFC 00268E3C 38 21 00 30 */ addi r1, r1, 0x30 -/* 8026BF00 00268E40 4E 80 00 20 */ blr diff --git a/include/SComponent/c_m3d/asm/func_8026D044.s b/include/SComponent/c_m3d/asm/func_8026D044.s deleted file mode 100644 index b1e783e5dd5..00000000000 --- a/include/SComponent/c_m3d/asm/func_8026D044.s +++ /dev/null @@ -1,27 +0,0 @@ -/* 8026D044 00269F84 94 21 FF C0 */ stwu r1, -0x40(r1) -/* 8026D048 00269F88 7C 08 02 A6 */ mflr r0 -/* 8026D04C 00269F8C 90 01 00 44 */ stw r0, 0x44(r1) -/* 8026D050 00269F90 39 61 00 40 */ addi r11, r1, 0x40 -/* 8026D054 00269F94 48 0F 51 89 */ bl _savegpr_29 -/* 8026D058 00269F98 7C 7D 1B 78 */ mr r29, r3 -/* 8026D05C 00269F9C 7C DE 33 78 */ mr r30, r6 -/* 8026D060 00269FA0 7C FF 3B 78 */ mr r31, r7 -/* 8026D064 00269FA4 3C 60 80 3A */ lis r3, lbl_803A78F8@ha -/* 8026D068 00269FA8 38 03 78 F8 */ addi r0, r3, lbl_803A78F8@l -/* 8026D06C 00269FAC 90 01 00 20 */ stw r0, 0x20(r1) -/* 8026D070 00269FB0 38 61 00 08 */ addi r3, r1, 8 -/* 8026D074 00269FB4 48 00 22 A9 */ bl SetStartEnd__8cM3dGLinFRC3VecRC3Vec -/* 8026D078 00269FB8 7F A3 EB 78 */ mr r3, r29 -/* 8026D07C 00269FBC 38 81 00 08 */ addi r4, r1, 8 -/* 8026D080 00269FC0 7F C5 F3 78 */ mr r5, r30 -/* 8026D084 00269FC4 7F E6 FB 78 */ mr r6, r31 -/* 8026D088 00269FC8 4B FF F8 BD */ bl cM3d_Cross_CylLin__FPC8cM3dGCylPC8cM3dGLinP3VecP3Vec -/* 8026D08C 00269FCC 3C 80 80 3A */ lis r4, lbl_803A78F8@ha -/* 8026D090 00269FD0 38 04 78 F8 */ addi r0, r4, lbl_803A78F8@l -/* 8026D094 00269FD4 90 01 00 20 */ stw r0, 0x20(r1) -/* 8026D098 00269FD8 39 61 00 40 */ addi r11, r1, 0x40 -/* 8026D09C 00269FDC 48 0F 51 8D */ bl _restgpr_29 -/* 8026D0A0 00269FE0 80 01 00 44 */ lwz r0, 0x44(r1) -/* 8026D0A4 00269FE4 7C 08 03 A6 */ mtlr r0 -/* 8026D0A8 00269FE8 38 21 00 40 */ addi r1, r1, 0x40 -/* 8026D0AC 00269FEC 4E 80 00 20 */ blr diff --git a/include/SComponent/c_m3d/asm/func_8026D0B0.s b/include/SComponent/c_m3d/asm/func_8026D0B0.s deleted file mode 100644 index 1d604dd810f..00000000000 --- a/include/SComponent/c_m3d/asm/func_8026D0B0.s +++ /dev/null @@ -1,26 +0,0 @@ -/* 8026D0B0 00269FF0 C0 23 00 00 */ lfs f1, 0(r3) -/* 8026D0B4 00269FF4 C0 04 00 00 */ lfs f0, 0(r4) -/* 8026D0B8 00269FF8 EC 41 00 28 */ fsubs f2, f1, f0 -/* 8026D0BC 00269FFC C0 23 00 08 */ lfs f1, 8(r3) -/* 8026D0C0 0026A000 C0 04 00 08 */ lfs f0, 8(r4) -/* 8026D0C4 0026A004 EC 61 00 28 */ fsubs f3, f1, f0 -/* 8026D0C8 0026A008 C0 83 00 04 */ lfs f4, 4(r3) -/* 8026D0CC 0026A00C C0 03 00 10 */ lfs f0, 0x10(r3) -/* 8026D0D0 0026A010 EC A4 00 2A */ fadds f5, f4, f0 -/* 8026D0D4 0026A014 EC 22 00 B2 */ fmuls f1, f2, f2 -/* 8026D0D8 0026A018 EC 03 00 F2 */ fmuls f0, f3, f3 -/* 8026D0DC 0026A01C EC 21 00 2A */ fadds f1, f1, f0 -/* 8026D0E0 0026A020 C0 03 00 0C */ lfs f0, 0xc(r3) -/* 8026D0E4 0026A024 EC 00 00 32 */ fmuls f0, f0, f0 -/* 8026D0E8 0026A028 FC 01 00 40 */ fcmpo cr0, f1, f0 -/* 8026D0EC 0026A02C 40 80 00 20 */ bge lbl_8026D10C -/* 8026D0F0 0026A030 C0 04 00 04 */ lfs f0, 4(r4) -/* 8026D0F4 0026A034 FC 04 00 40 */ fcmpo cr0, f4, f0 -/* 8026D0F8 0026A038 40 80 00 14 */ bge lbl_8026D10C -/* 8026D0FC 0026A03C FC 05 00 40 */ fcmpo cr0, f5, f0 -/* 8026D100 0026A040 40 81 00 0C */ ble lbl_8026D10C -/* 8026D104 0026A044 38 60 00 01 */ li r3, 1 -/* 8026D108 0026A048 4E 80 00 20 */ blr -lbl_8026D10C: -/* 8026D10C 0026A04C 38 60 00 00 */ li r3, 0 -/* 8026D110 0026A050 4E 80 00 20 */ blr diff --git a/include/SComponent/c_m3d/asm/func_8026E4FC.s b/include/SComponent/c_m3d/asm/func_8026E4FC.s deleted file mode 100644 index 9867f787631..00000000000 --- a/include/SComponent/c_m3d/asm/func_8026E4FC.s +++ /dev/null @@ -1,29 +0,0 @@ -/* 8026E4FC 0026B43C 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 8026E500 0026B440 7C 08 02 A6 */ mflr r0 -/* 8026E504 0026B444 90 01 00 24 */ stw r0, 0x24(r1) -/* 8026E508 0026B448 39 61 00 20 */ addi r11, r1, 0x20 -/* 8026E50C 0026B44C 48 0F 3C D1 */ bl _savegpr_29 -/* 8026E510 0026B450 7C 7D 1B 78 */ mr r29, r3 -/* 8026E514 0026B454 7C 9E 23 78 */ mr r30, r4 -/* 8026E518 0026B458 7C BF 2B 78 */ mr r31, r5 -/* 8026E51C 0026B45C C0 03 00 08 */ lfs f0, 8(r3) -/* 8026E520 0026B460 FC 20 00 50 */ fneg f1, f0 -/* 8026E524 0026B464 C0 03 00 04 */ lfs f0, 4(r3) -/* 8026E528 0026B468 EC 21 00 32 */ fmuls f1, f1, f0 -/* 8026E52C 0026B46C C0 42 B7 38 */ lfs f2, lbl_80455138-_SDA2_BASE_(r2) -/* 8026E530 0026B470 4B FF 91 45 */ bl cM_atan2s__Fff -/* 8026E534 0026B474 7C 03 00 D0 */ neg r0, r3 -/* 8026E538 0026B478 B0 1E 00 00 */ sth r0, 0(r30) -/* 8026E53C 0026B47C C0 1D 00 00 */ lfs f0, 0(r29) -/* 8026E540 0026B480 FC 20 00 50 */ fneg f1, f0 -/* 8026E544 0026B484 C0 1D 00 04 */ lfs f0, 4(r29) -/* 8026E548 0026B488 EC 21 00 32 */ fmuls f1, f1, f0 -/* 8026E54C 0026B48C C0 42 B7 38 */ lfs f2, lbl_80455138-_SDA2_BASE_(r2) -/* 8026E550 0026B490 4B FF 91 25 */ bl cM_atan2s__Fff -/* 8026E554 0026B494 B0 7F 00 00 */ sth r3, 0(r31) -/* 8026E558 0026B498 39 61 00 20 */ addi r11, r1, 0x20 -/* 8026E55C 0026B49C 48 0F 3C CD */ bl _restgpr_29 -/* 8026E560 0026B4A0 80 01 00 24 */ lwz r0, 0x24(r1) -/* 8026E564 0026B4A4 7C 08 03 A6 */ mtlr r0 -/* 8026E568 0026B4A8 38 21 00 20 */ addi r1, r1, 0x20 -/* 8026E56C 0026B4AC 4E 80 00 20 */ blr diff --git a/include/SComponent/c_m3d/asm/func_8026E6C4.s b/include/SComponent/c_m3d/asm/func_8026E6C4.s deleted file mode 100644 index 4879a46882d..00000000000 --- a/include/SComponent/c_m3d/asm/func_8026E6C4.s +++ /dev/null @@ -1,11 +0,0 @@ -/* 8026E6C4 0026B604 EC 42 01 F2 */ fmuls f2, f2, f7 -/* 8026E6C8 0026B608 EC 04 01 B2 */ fmuls f0, f4, f6 -/* 8026E6CC 0026B60C EC 02 00 28 */ fsubs f0, f2, f0 -/* 8026E6D0 0026B610 EC 00 28 24 */ fdivs f0, f0, f5 -/* 8026E6D4 0026B614 D0 03 00 00 */ stfs f0, 0(r3) -/* 8026E6D8 0026B618 EC 43 01 B2 */ fmuls f2, f3, f6 -/* 8026E6DC 0026B61C EC 01 01 F2 */ fmuls f0, f1, f7 -/* 8026E6E0 0026B620 EC 02 00 28 */ fsubs f0, f2, f0 -/* 8026E6E4 0026B624 EC 00 28 24 */ fdivs f0, f0, f5 -/* 8026E6E8 0026B628 D0 04 00 00 */ stfs f0, 0(r4) -/* 8026E6EC 0026B62C 4E 80 00 20 */ blr diff --git a/include/SComponent/c_m3d/asm/func_8026E6F0.s b/include/SComponent/c_m3d/asm/func_8026E6F0.s deleted file mode 100644 index 02bd84a3e83..00000000000 --- a/include/SComponent/c_m3d/asm/func_8026E6F0.s +++ /dev/null @@ -1,114 +0,0 @@ -/* 8026E6F0 0026B630 94 21 FF D0 */ stwu r1, -0x30(r1) -/* 8026E6F4 0026B634 7C 08 02 A6 */ mflr r0 -/* 8026E6F8 0026B638 90 01 00 34 */ stw r0, 0x34(r1) -/* 8026E6FC 0026B63C 39 61 00 30 */ addi r11, r1, 0x30 -/* 8026E700 0026B640 48 0F 3A DD */ bl _savegpr_29 -/* 8026E704 0026B644 7C 7D 1B 78 */ mr r29, r3 -/* 8026E708 0026B648 7C 9E 23 78 */ mr r30, r4 -/* 8026E70C 0026B64C 7C BF 2B 78 */ mr r31, r5 -/* 8026E710 0026B650 38 A1 00 08 */ addi r5, r1, 8 -/* 8026E714 0026B654 48 0D 8A A1 */ bl PSVECCrossProduct -/* 8026E718 0026B658 C0 01 00 08 */ lfs f0, 8(r1) -/* 8026E71C 0026B65C FC 00 02 10 */ fabs f0, f0 -/* 8026E720 0026B660 FC 00 00 18 */ frsp f0, f0 -/* 8026E724 0026B664 C0 2D 8C 00 */ lfs f1, lbl_80451180-_SDA_BASE_(r13) -/* 8026E728 0026B668 FC 00 08 40 */ fcmpo cr0, f0, f1 -/* 8026E72C 0026B66C 40 80 00 34 */ bge lbl_8026E760 -/* 8026E730 0026B670 C0 01 00 0C */ lfs f0, 0xc(r1) -/* 8026E734 0026B674 FC 00 02 10 */ fabs f0, f0 -/* 8026E738 0026B678 FC 00 00 18 */ frsp f0, f0 -/* 8026E73C 0026B67C FC 00 08 40 */ fcmpo cr0, f0, f1 -/* 8026E740 0026B680 40 80 00 20 */ bge lbl_8026E760 -/* 8026E744 0026B684 C0 01 00 10 */ lfs f0, 0x10(r1) -/* 8026E748 0026B688 FC 00 02 10 */ fabs f0, f0 -/* 8026E74C 0026B68C FC 00 00 18 */ frsp f0, f0 -/* 8026E750 0026B690 FC 00 08 40 */ fcmpo cr0, f0, f1 -/* 8026E754 0026B694 40 80 00 0C */ bge lbl_8026E760 -/* 8026E758 0026B698 38 60 00 00 */ li r3, 0 -/* 8026E75C 0026B69C 48 00 01 2C */ b lbl_8026E888 -lbl_8026E760: -/* 8026E760 0026B6A0 C0 A1 00 08 */ lfs f5, 8(r1) -/* 8026E764 0026B6A4 FC 00 2A 10 */ fabs f0, f5 -/* 8026E768 0026B6A8 FC 20 00 18 */ frsp f1, f0 -/* 8026E76C 0026B6AC C0 01 00 0C */ lfs f0, 0xc(r1) -/* 8026E770 0026B6B0 FC 00 02 10 */ fabs f0, f0 -/* 8026E774 0026B6B4 FC 40 00 18 */ frsp f2, f0 -/* 8026E778 0026B6B8 C0 01 00 10 */ lfs f0, 0x10(r1) -/* 8026E77C 0026B6BC FC 00 02 10 */ fabs f0, f0 -/* 8026E780 0026B6C0 FC 00 00 18 */ frsp f0, f0 -/* 8026E784 0026B6C4 FC 01 10 40 */ fcmpo cr0, f1, f2 -/* 8026E788 0026B6C8 4C 41 13 82 */ cror 2, 1, 2 -/* 8026E78C 0026B6CC 40 82 00 40 */ bne lbl_8026E7CC -/* 8026E790 0026B6D0 FC 01 00 40 */ fcmpo cr0, f1, f0 -/* 8026E794 0026B6D4 4C 41 13 82 */ cror 2, 1, 2 -/* 8026E798 0026B6D8 40 82 00 34 */ bne lbl_8026E7CC -/* 8026E79C 0026B6DC C0 3D 00 04 */ lfs f1, 4(r29) -/* 8026E7A0 0026B6E0 C0 5D 00 08 */ lfs f2, 8(r29) -/* 8026E7A4 0026B6E4 C0 7E 00 04 */ lfs f3, 4(r30) -/* 8026E7A8 0026B6E8 C0 9E 00 08 */ lfs f4, 8(r30) -/* 8026E7AC 0026B6EC C0 DD 00 0C */ lfs f6, 0xc(r29) -/* 8026E7B0 0026B6F0 C0 FE 00 0C */ lfs f7, 0xc(r30) -/* 8026E7B4 0026B6F4 38 7F 00 04 */ addi r3, r31, 4 -/* 8026E7B8 0026B6F8 38 9F 00 08 */ addi r4, r31, 8 -/* 8026E7BC 0026B6FC 4B FF FF 09 */ bl cM3d_PlaneCrossLineProcWork__FfffffffPfPf -/* 8026E7C0 0026B700 C0 02 B7 18 */ lfs f0, lbl_80455118-_SDA2_BASE_(r2) -/* 8026E7C4 0026B704 D0 1F 00 00 */ stfs f0, 0(r31) -/* 8026E7C8 0026B708 48 00 00 80 */ b lbl_8026E848 -lbl_8026E7CC: -/* 8026E7CC 0026B70C FC 02 08 40 */ fcmpo cr0, f2, f1 -/* 8026E7D0 0026B710 4C 41 13 82 */ cror 2, 1, 2 -/* 8026E7D4 0026B714 40 82 00 44 */ bne lbl_8026E818 -/* 8026E7D8 0026B718 FC 02 00 40 */ fcmpo cr0, f2, f0 -/* 8026E7DC 0026B71C 4C 41 13 82 */ cror 2, 1, 2 -/* 8026E7E0 0026B720 40 82 00 38 */ bne lbl_8026E818 -/* 8026E7E4 0026B724 C0 3D 00 08 */ lfs f1, 8(r29) -/* 8026E7E8 0026B728 C0 5D 00 00 */ lfs f2, 0(r29) -/* 8026E7EC 0026B72C C0 7E 00 08 */ lfs f3, 8(r30) -/* 8026E7F0 0026B730 C0 9E 00 00 */ lfs f4, 0(r30) -/* 8026E7F4 0026B734 C0 A1 00 0C */ lfs f5, 0xc(r1) -/* 8026E7F8 0026B738 C0 DD 00 0C */ lfs f6, 0xc(r29) -/* 8026E7FC 0026B73C C0 FE 00 0C */ lfs f7, 0xc(r30) -/* 8026E800 0026B740 38 7F 00 08 */ addi r3, r31, 8 -/* 8026E804 0026B744 7F E4 FB 78 */ mr r4, r31 -/* 8026E808 0026B748 4B FF FE BD */ bl cM3d_PlaneCrossLineProcWork__FfffffffPfPf -/* 8026E80C 0026B74C C0 02 B7 18 */ lfs f0, lbl_80455118-_SDA2_BASE_(r2) -/* 8026E810 0026B750 D0 1F 00 04 */ stfs f0, 4(r31) -/* 8026E814 0026B754 48 00 00 34 */ b lbl_8026E848 -lbl_8026E818: -/* 8026E818 0026B758 C0 3D 00 00 */ lfs f1, 0(r29) -/* 8026E81C 0026B75C C0 5D 00 04 */ lfs f2, 4(r29) -/* 8026E820 0026B760 C0 7E 00 00 */ lfs f3, 0(r30) -/* 8026E824 0026B764 C0 9E 00 04 */ lfs f4, 4(r30) -/* 8026E828 0026B768 C0 A1 00 10 */ lfs f5, 0x10(r1) -/* 8026E82C 0026B76C C0 DD 00 0C */ lfs f6, 0xc(r29) -/* 8026E830 0026B770 C0 FE 00 0C */ lfs f7, 0xc(r30) -/* 8026E834 0026B774 7F E3 FB 78 */ mr r3, r31 -/* 8026E838 0026B778 38 9F 00 04 */ addi r4, r31, 4 -/* 8026E83C 0026B77C 4B FF FE 89 */ bl cM3d_PlaneCrossLineProcWork__FfffffffPfPf -/* 8026E840 0026B780 C0 02 B7 18 */ lfs f0, lbl_80455118-_SDA2_BASE_(r2) -/* 8026E844 0026B784 D0 1F 00 08 */ stfs f0, 8(r31) -lbl_8026E848: -/* 8026E848 0026B788 7F E3 FB 78 */ mr r3, r31 -/* 8026E84C 0026B78C 48 0D 89 05 */ bl PSVECMag -/* 8026E850 0026B790 FC 00 0A 10 */ fabs f0, f1 -/* 8026E854 0026B794 FC 40 00 18 */ frsp f2, f0 -/* 8026E858 0026B798 C0 0D 8C 00 */ lfs f0, lbl_80451180-_SDA_BASE_(r13) -/* 8026E85C 0026B79C FC 02 00 40 */ fcmpo cr0, f2, f0 -/* 8026E860 0026B7A0 40 80 00 08 */ bge lbl_8026E868 -/* 8026E864 0026B7A4 C0 22 B7 38 */ lfs f1, lbl_80455138-_SDA2_BASE_(r2) -lbl_8026E868: -/* 8026E868 0026B7A8 38 61 00 08 */ addi r3, r1, 8 -/* 8026E86C 0026B7AC 7C 64 1B 78 */ mr r4, r3 -/* 8026E870 0026B7B0 48 0D 88 69 */ bl PSVECScale -/* 8026E874 0026B7B4 7F E3 FB 78 */ mr r3, r31 -/* 8026E878 0026B7B8 38 81 00 08 */ addi r4, r1, 8 -/* 8026E87C 0026B7BC 38 BF 00 0C */ addi r5, r31, 0xc -/* 8026E880 0026B7C0 48 0D 88 11 */ bl PSVECAdd -/* 8026E884 0026B7C4 38 60 00 01 */ li r3, 1 -lbl_8026E888: -/* 8026E888 0026B7C8 39 61 00 30 */ addi r11, r1, 0x30 -/* 8026E88C 0026B7CC 48 0F 39 9D */ bl _restgpr_29 -/* 8026E890 0026B7D0 80 01 00 34 */ lwz r0, 0x34(r1) -/* 8026E894 0026B7D4 7C 08 03 A6 */ mtlr r0 -/* 8026E898 0026B7D8 38 21 00 30 */ addi r1, r1, 0x30 -/* 8026E89C 0026B7DC 4E 80 00 20 */ blr diff --git a/include/SComponent/c_m3d/asm/func_8026E8A0.s b/include/SComponent/c_m3d/asm/func_8026E8A0.s deleted file mode 100644 index bba9c706154..00000000000 --- a/include/SComponent/c_m3d/asm/func_8026E8A0.s +++ /dev/null @@ -1,59 +0,0 @@ -/* 8026E8A0 0026B7E0 94 21 FF B0 */ stwu r1, -0x50(r1) -/* 8026E8A4 0026B7E4 7C 08 02 A6 */ mflr r0 -/* 8026E8A8 0026B7E8 90 01 00 54 */ stw r0, 0x54(r1) -/* 8026E8AC 0026B7EC DB E1 00 40 */ stfd f31, 0x40(r1) -/* 8026E8B0 0026B7F0 F3 E1 00 48 */ psq_st f31, 72(r1), 0, 0 -/* 8026E8B4 0026B7F4 39 61 00 40 */ addi r11, r1, 0x40 -/* 8026E8B8 0026B7F8 48 0F 39 25 */ bl _savegpr_29 -/* 8026E8BC 0026B7FC 7C BD 2B 78 */ mr r29, r5 -/* 8026E8C0 0026B800 7C DE 33 78 */ mr r30, r6 -/* 8026E8C4 0026B804 3C A0 80 3A */ lis r5, lbl_803A78F8@ha -/* 8026E8C8 0026B808 38 05 78 F8 */ addi r0, r5, lbl_803A78F8@l -/* 8026E8CC 0026B80C 90 01 00 20 */ stw r0, 0x20(r1) -/* 8026E8D0 0026B810 38 A1 00 08 */ addi r5, r1, 8 -/* 8026E8D4 0026B814 4B FF FE 1D */ bl cM3d_2PlaneCrossLine__FRC8cM3dGPlaRC8cM3dGPlaP8cM3dGLin -/* 8026E8D8 0026B818 2C 03 00 00 */ cmpwi r3, 0 -/* 8026E8DC 0026B81C 40 82 00 18 */ bne lbl_8026E8F4 -/* 8026E8E0 0026B820 3C 60 80 3A */ lis r3, lbl_803A78F8@ha -/* 8026E8E4 0026B824 38 03 78 F8 */ addi r0, r3, lbl_803A78F8@l -/* 8026E8E8 0026B828 90 01 00 20 */ stw r0, 0x20(r1) -/* 8026E8EC 0026B82C 38 60 00 00 */ li r3, 0 -/* 8026E8F0 0026B830 48 00 00 70 */ b lbl_8026E960 -lbl_8026E8F4: -/* 8026E8F4 0026B834 3B E1 00 14 */ addi r31, r1, 0x14 -/* 8026E8F8 0026B838 7F A3 EB 78 */ mr r3, r29 -/* 8026E8FC 0026B83C 38 81 00 08 */ addi r4, r1, 8 -/* 8026E900 0026B840 48 0D 88 95 */ bl PSVECDotProduct -/* 8026E904 0026B844 C0 1D 00 0C */ lfs f0, 0xc(r29) -/* 8026E908 0026B848 EF E0 08 2A */ fadds f31, f0, f1 -/* 8026E90C 0026B84C 7F A3 EB 78 */ mr r3, r29 -/* 8026E910 0026B850 7F E4 FB 78 */ mr r4, r31 -/* 8026E914 0026B854 48 0D 88 81 */ bl PSVECDotProduct -/* 8026E918 0026B858 C0 1D 00 0C */ lfs f0, 0xc(r29) -/* 8026E91C 0026B85C EC 40 08 2A */ fadds f2, f0, f1 -/* 8026E920 0026B860 FC 20 F8 90 */ fmr f1, f31 -/* 8026E924 0026B864 38 61 00 08 */ addi r3, r1, 8 -/* 8026E928 0026B868 7F E4 FB 78 */ mr r4, r31 -/* 8026E92C 0026B86C 7F C5 F3 78 */ mr r5, r30 -/* 8026E930 0026B870 4B FF A5 A5 */ bl cM3d_CrossInfLineVsInfPlane_proc__FffPC3VecPC3VecP3Vec -/* 8026E934 0026B874 54 60 06 3F */ clrlwi. r0, r3, 0x18 -/* 8026E938 0026B878 40 82 00 18 */ bne lbl_8026E950 -/* 8026E93C 0026B87C 3C 60 80 3A */ lis r3, lbl_803A78F8@ha -/* 8026E940 0026B880 38 03 78 F8 */ addi r0, r3, lbl_803A78F8@l -/* 8026E944 0026B884 90 01 00 20 */ stw r0, 0x20(r1) -/* 8026E948 0026B888 38 60 00 00 */ li r3, 0 -/* 8026E94C 0026B88C 48 00 00 14 */ b lbl_8026E960 -lbl_8026E950: -/* 8026E950 0026B890 3C 60 80 3A */ lis r3, lbl_803A78F8@ha -/* 8026E954 0026B894 38 03 78 F8 */ addi r0, r3, lbl_803A78F8@l -/* 8026E958 0026B898 90 01 00 20 */ stw r0, 0x20(r1) -/* 8026E95C 0026B89C 38 60 00 01 */ li r3, 1 -lbl_8026E960: -/* 8026E960 0026B8A0 E3 E1 00 48 */ psq_l f31, 72(r1), 0, 0 -/* 8026E964 0026B8A4 CB E1 00 40 */ lfd f31, 0x40(r1) -/* 8026E968 0026B8A8 39 61 00 40 */ addi r11, r1, 0x40 -/* 8026E96C 0026B8AC 48 0F 38 BD */ bl _restgpr_29 -/* 8026E970 0026B8B0 80 01 00 54 */ lwz r0, 0x54(r1) -/* 8026E974 0026B8B4 7C 08 03 A6 */ mtlr r0 -/* 8026E978 0026B8B8 38 21 00 50 */ addi r1, r1, 0x50 -/* 8026E97C 0026B8BC 4E 80 00 20 */ blr diff --git a/include/SComponent/c_m3d/asm/func_8026E980.s b/include/SComponent/c_m3d/asm/func_8026E980.s deleted file mode 100644 index f2fe191bba2..00000000000 --- a/include/SComponent/c_m3d/asm/func_8026E980.s +++ /dev/null @@ -1,57 +0,0 @@ -/* 8026E980 0026B8C0 94 21 FF B0 */ stwu r1, -0x50(r1) -/* 8026E984 0026B8C4 7C 08 02 A6 */ mflr r0 -/* 8026E988 0026B8C8 90 01 00 54 */ stw r0, 0x54(r1) -/* 8026E98C 0026B8CC DB E1 00 40 */ stfd f31, 0x40(r1) -/* 8026E990 0026B8D0 F3 E1 00 48 */ psq_st f31, 72(r1), 0, 0 -/* 8026E994 0026B8D4 39 61 00 40 */ addi r11, r1, 0x40 -/* 8026E998 0026B8D8 48 0F 38 45 */ bl _savegpr_29 -/* 8026E99C 0026B8DC 7C 7D 1B 78 */ mr r29, r3 -/* 8026E9A0 0026B8E0 7C 9E 23 78 */ mr r30, r4 -/* 8026E9A4 0026B8E4 7C BF 2B 78 */ mr r31, r5 -/* 8026E9A8 0026B8E8 38 7D 00 0C */ addi r3, r29, 0xc -/* 8026E9AC 0026B8EC 7F A4 EB 78 */ mr r4, r29 -/* 8026E9B0 0026B8F0 38 A1 00 20 */ addi r5, r1, 0x20 -/* 8026E9B4 0026B8F4 48 0D 87 01 */ bl PSVECSubtract -/* 8026E9B8 0026B8F8 38 61 00 20 */ addi r3, r1, 0x20 -/* 8026E9BC 0026B8FC 48 0D 87 7D */ bl PSVECSquareMag -/* 8026E9C0 0026B900 FF E0 08 90 */ fmr f31, f1 -/* 8026E9C4 0026B904 FC 00 FA 10 */ fabs f0, f31 -/* 8026E9C8 0026B908 FC 20 00 18 */ frsp f1, f0 -/* 8026E9CC 0026B90C C0 0D 8C 00 */ lfs f0, lbl_80451180-_SDA_BASE_(r13) -/* 8026E9D0 0026B910 FC 01 00 40 */ fcmpo cr0, f1, f0 -/* 8026E9D4 0026B914 40 80 00 24 */ bge lbl_8026E9F8 -/* 8026E9D8 0026B918 C0 1E 00 00 */ lfs f0, 0(r30) -/* 8026E9DC 0026B91C D0 1F 00 00 */ stfs f0, 0(r31) -/* 8026E9E0 0026B920 C0 1E 00 04 */ lfs f0, 4(r30) -/* 8026E9E4 0026B924 D0 1F 00 04 */ stfs f0, 4(r31) -/* 8026E9E8 0026B928 C0 1E 00 08 */ lfs f0, 8(r30) -/* 8026E9EC 0026B92C D0 1F 00 08 */ stfs f0, 8(r31) -/* 8026E9F0 0026B930 C0 22 B7 18 */ lfs f1, lbl_80455118-_SDA2_BASE_(r2) -/* 8026E9F4 0026B934 48 00 00 48 */ b lbl_8026EA3C -lbl_8026E9F8: -/* 8026E9F8 0026B938 7F C3 F3 78 */ mr r3, r30 -/* 8026E9FC 0026B93C 7F A4 EB 78 */ mr r4, r29 -/* 8026EA00 0026B940 38 A1 00 14 */ addi r5, r1, 0x14 -/* 8026EA04 0026B944 48 0D 86 B1 */ bl PSVECSubtract -/* 8026EA08 0026B948 38 61 00 14 */ addi r3, r1, 0x14 -/* 8026EA0C 0026B94C 38 81 00 20 */ addi r4, r1, 0x20 -/* 8026EA10 0026B950 48 0D 87 85 */ bl PSVECDotProduct -/* 8026EA14 0026B954 EF E1 F8 24 */ fdivs f31, f1, f31 -/* 8026EA18 0026B958 38 61 00 20 */ addi r3, r1, 0x20 -/* 8026EA1C 0026B95C 38 81 00 08 */ addi r4, r1, 8 -/* 8026EA20 0026B960 FC 20 F8 90 */ fmr f1, f31 -/* 8026EA24 0026B964 48 0D 86 B5 */ bl PSVECScale -/* 8026EA28 0026B968 38 61 00 08 */ addi r3, r1, 8 -/* 8026EA2C 0026B96C 7F A4 EB 78 */ mr r4, r29 -/* 8026EA30 0026B970 7F E5 FB 78 */ mr r5, r31 -/* 8026EA34 0026B974 48 0D 86 5D */ bl PSVECAdd -/* 8026EA38 0026B978 FC 20 F8 90 */ fmr f1, f31 -lbl_8026EA3C: -/* 8026EA3C 0026B97C E3 E1 00 48 */ psq_l f31, 72(r1), 0, 0 -/* 8026EA40 0026B980 CB E1 00 40 */ lfd f31, 0x40(r1) -/* 8026EA44 0026B984 39 61 00 40 */ addi r11, r1, 0x40 -/* 8026EA48 0026B988 48 0F 37 E1 */ bl _restgpr_29 -/* 8026EA4C 0026B98C 80 01 00 54 */ lwz r0, 0x54(r1) -/* 8026EA50 0026B990 7C 08 03 A6 */ mtlr r0 -/* 8026EA54 0026B994 38 21 00 50 */ addi r1, r1, 0x50 -/* 8026EA58 0026B998 4E 80 00 20 */ blr diff --git a/include/SComponent/c_m3d/asm/func_8026EA5C.s b/include/SComponent/c_m3d/asm/func_8026EA5C.s deleted file mode 100644 index a0cf4792f80..00000000000 --- a/include/SComponent/c_m3d/asm/func_8026EA5C.s +++ /dev/null @@ -1,57 +0,0 @@ -/* 8026EA5C 0026B99C 94 21 FF B0 */ stwu r1, -0x50(r1) -/* 8026EA60 0026B9A0 7C 08 02 A6 */ mflr r0 -/* 8026EA64 0026B9A4 90 01 00 54 */ stw r0, 0x54(r1) -/* 8026EA68 0026B9A8 DB E1 00 40 */ stfd f31, 0x40(r1) -/* 8026EA6C 0026B9AC F3 E1 00 48 */ psq_st f31, 72(r1), 0, 0 -/* 8026EA70 0026B9B0 39 61 00 40 */ addi r11, r1, 0x40 -/* 8026EA74 0026B9B4 48 0F 37 69 */ bl _savegpr_29 -/* 8026EA78 0026B9B8 7C 7D 1B 78 */ mr r29, r3 -/* 8026EA7C 0026B9BC 7C BE 2B 78 */ mr r30, r5 -/* 8026EA80 0026B9C0 7C DF 33 78 */ mr r31, r6 -/* 8026EA84 0026B9C4 7C 83 23 78 */ mr r3, r4 -/* 8026EA88 0026B9C8 7F A4 EB 78 */ mr r4, r29 -/* 8026EA8C 0026B9CC 38 A1 00 20 */ addi r5, r1, 0x20 -/* 8026EA90 0026B9D0 48 0D 86 25 */ bl PSVECSubtract -/* 8026EA94 0026B9D4 38 61 00 20 */ addi r3, r1, 0x20 -/* 8026EA98 0026B9D8 48 0D 86 A1 */ bl PSVECSquareMag -/* 8026EA9C 0026B9DC FF E0 08 90 */ fmr f31, f1 -/* 8026EAA0 0026B9E0 FC 00 FA 10 */ fabs f0, f31 -/* 8026EAA4 0026B9E4 FC 20 00 18 */ frsp f1, f0 -/* 8026EAA8 0026B9E8 C0 0D 8C 00 */ lfs f0, lbl_80451180-_SDA_BASE_(r13) -/* 8026EAAC 0026B9EC FC 01 00 40 */ fcmpo cr0, f1, f0 -/* 8026EAB0 0026B9F0 40 80 00 24 */ bge lbl_8026EAD4 -/* 8026EAB4 0026B9F4 C0 1E 00 00 */ lfs f0, 0(r30) -/* 8026EAB8 0026B9F8 D0 1F 00 00 */ stfs f0, 0(r31) -/* 8026EABC 0026B9FC C0 1E 00 04 */ lfs f0, 4(r30) -/* 8026EAC0 0026BA00 D0 1F 00 04 */ stfs f0, 4(r31) -/* 8026EAC4 0026BA04 C0 1E 00 08 */ lfs f0, 8(r30) -/* 8026EAC8 0026BA08 D0 1F 00 08 */ stfs f0, 8(r31) -/* 8026EACC 0026BA0C C0 22 B7 18 */ lfs f1, lbl_80455118-_SDA2_BASE_(r2) -/* 8026EAD0 0026BA10 48 00 00 48 */ b lbl_8026EB18 -lbl_8026EAD4: -/* 8026EAD4 0026BA14 7F C3 F3 78 */ mr r3, r30 -/* 8026EAD8 0026BA18 7F A4 EB 78 */ mr r4, r29 -/* 8026EADC 0026BA1C 38 A1 00 14 */ addi r5, r1, 0x14 -/* 8026EAE0 0026BA20 48 0D 85 D5 */ bl PSVECSubtract -/* 8026EAE4 0026BA24 38 61 00 14 */ addi r3, r1, 0x14 -/* 8026EAE8 0026BA28 38 81 00 20 */ addi r4, r1, 0x20 -/* 8026EAEC 0026BA2C 48 0D 86 A9 */ bl PSVECDotProduct -/* 8026EAF0 0026BA30 EF E1 F8 24 */ fdivs f31, f1, f31 -/* 8026EAF4 0026BA34 38 61 00 20 */ addi r3, r1, 0x20 -/* 8026EAF8 0026BA38 38 81 00 08 */ addi r4, r1, 8 -/* 8026EAFC 0026BA3C FC 20 F8 90 */ fmr f1, f31 -/* 8026EB00 0026BA40 48 0D 85 D9 */ bl PSVECScale -/* 8026EB04 0026BA44 38 61 00 08 */ addi r3, r1, 8 -/* 8026EB08 0026BA48 7F A4 EB 78 */ mr r4, r29 -/* 8026EB0C 0026BA4C 7F E5 FB 78 */ mr r5, r31 -/* 8026EB10 0026BA50 48 0D 85 81 */ bl PSVECAdd -/* 8026EB14 0026BA54 FC 20 F8 90 */ fmr f1, f31 -lbl_8026EB18: -/* 8026EB18 0026BA58 E3 E1 00 48 */ psq_l f31, 72(r1), 0, 0 -/* 8026EB1C 0026BA5C CB E1 00 40 */ lfd f31, 0x40(r1) -/* 8026EB20 0026BA60 39 61 00 40 */ addi r11, r1, 0x40 -/* 8026EB24 0026BA64 48 0F 37 05 */ bl _restgpr_29 -/* 8026EB28 0026BA68 80 01 00 54 */ lwz r0, 0x54(r1) -/* 8026EB2C 0026BA6C 7C 08 03 A6 */ mtlr r0 -/* 8026EB30 0026BA70 38 21 00 50 */ addi r1, r1, 0x50 -/* 8026EB34 0026BA74 4E 80 00 20 */ blr diff --git a/include/SComponent/c_m3d/asm/func_8026EB38.s b/include/SComponent/c_m3d/asm/func_8026EB38.s deleted file mode 100644 index 17a50cfde8d..00000000000 --- a/include/SComponent/c_m3d/asm/func_8026EB38.s +++ /dev/null @@ -1,35 +0,0 @@ -/* 8026EB38 0026BA78 94 21 FF D0 */ stwu r1, -0x30(r1) -/* 8026EB3C 0026BA7C 7C 08 02 A6 */ mflr r0 -/* 8026EB40 0026BA80 90 01 00 34 */ stw r0, 0x34(r1) -/* 8026EB44 0026BA84 93 E1 00 2C */ stw r31, 0x2c(r1) -/* 8026EB48 0026BA88 93 C1 00 28 */ stw r30, 0x28(r1) -/* 8026EB4C 0026BA8C 7C BE 2B 78 */ mr r30, r5 -/* 8026EB50 0026BA90 7C DF 33 78 */ mr r31, r6 -/* 8026EB54 0026BA94 3C A0 80 3A */ lis r5, lbl_803A78F8@ha -/* 8026EB58 0026BA98 38 05 78 F8 */ addi r0, r5, lbl_803A78F8@l -/* 8026EB5C 0026BA9C 90 01 00 20 */ stw r0, 0x20(r1) -/* 8026EB60 0026BAA0 38 A1 00 08 */ addi r5, r1, 8 -/* 8026EB64 0026BAA4 4B FF FB 8D */ bl cM3d_2PlaneCrossLine__FRC8cM3dGPlaRC8cM3dGPlaP8cM3dGLin -/* 8026EB68 0026BAA8 2C 03 00 00 */ cmpwi r3, 0 -/* 8026EB6C 0026BAAC 40 82 00 18 */ bne lbl_8026EB84 -/* 8026EB70 0026BAB0 3C 60 80 3A */ lis r3, lbl_803A78F8@ha -/* 8026EB74 0026BAB4 38 03 78 F8 */ addi r0, r3, lbl_803A78F8@l -/* 8026EB78 0026BAB8 90 01 00 20 */ stw r0, 0x20(r1) -/* 8026EB7C 0026BABC 38 60 00 00 */ li r3, 0 -/* 8026EB80 0026BAC0 48 00 00 24 */ b lbl_8026EBA4 -lbl_8026EB84: -/* 8026EB84 0026BAC4 38 61 00 08 */ addi r3, r1, 8 -/* 8026EB88 0026BAC8 7F C4 F3 78 */ mr r4, r30 -/* 8026EB8C 0026BACC 7F E5 FB 78 */ mr r5, r31 -/* 8026EB90 0026BAD0 4B FF FD F1 */ bl cM3d_lineVsPosSuisenCross__FPC8cM3dGLinPC3VecP3Vec -/* 8026EB94 0026BAD4 3C 60 80 3A */ lis r3, lbl_803A78F8@ha -/* 8026EB98 0026BAD8 38 03 78 F8 */ addi r0, r3, lbl_803A78F8@l -/* 8026EB9C 0026BADC 90 01 00 20 */ stw r0, 0x20(r1) -/* 8026EBA0 0026BAE0 38 60 00 01 */ li r3, 1 -lbl_8026EBA4: -/* 8026EBA4 0026BAE4 83 E1 00 2C */ lwz r31, 0x2c(r1) -/* 8026EBA8 0026BAE8 83 C1 00 28 */ lwz r30, 0x28(r1) -/* 8026EBAC 0026BAEC 80 01 00 34 */ lwz r0, 0x34(r1) -/* 8026EBB0 0026BAF0 7C 08 03 A6 */ mtlr r0 -/* 8026EBB4 0026BAF4 38 21 00 30 */ addi r1, r1, 0x30 -/* 8026EBB8 0026BAF8 4E 80 00 20 */ blr diff --git a/include/SComponent/c_m3d/asm/func_8026EBBC.s b/include/SComponent/c_m3d/asm/func_8026EBBC.s deleted file mode 100644 index 42e61ff9e9e..00000000000 --- a/include/SComponent/c_m3d/asm/func_8026EBBC.s +++ /dev/null @@ -1,32 +0,0 @@ -/* 8026EBBC 0026BAFC 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 8026EBC0 0026BB00 7C 08 02 A6 */ mflr r0 -/* 8026EBC4 0026BB04 90 01 00 24 */ stw r0, 0x24(r1) -/* 8026EBC8 0026BB08 93 E1 00 1C */ stw r31, 0x1c(r1) -/* 8026EBCC 0026BB0C 93 C1 00 18 */ stw r30, 0x18(r1) -/* 8026EBD0 0026BB10 7C 9E 23 78 */ mr r30, r4 -/* 8026EBD4 0026BB14 7C BF 2B 78 */ mr r31, r5 -/* 8026EBD8 0026BB18 C0 24 00 08 */ lfs f1, 8(r4) -/* 8026EBDC 0026BB1C C0 03 00 08 */ lfs f0, 8(r3) -/* 8026EBE0 0026BB20 EC 61 00 32 */ fmuls f3, f1, f0 -/* 8026EBE4 0026BB24 C0 24 00 00 */ lfs f1, 0(r4) -/* 8026EBE8 0026BB28 C0 03 00 00 */ lfs f0, 0(r3) -/* 8026EBEC 0026BB2C EC 41 00 32 */ fmuls f2, f1, f0 -/* 8026EBF0 0026BB30 C0 24 00 04 */ lfs f1, 4(r4) -/* 8026EBF4 0026BB34 C0 03 00 04 */ lfs f0, 4(r3) -/* 8026EBF8 0026BB38 EC 01 00 32 */ fmuls f0, f1, f0 -/* 8026EBFC 0026BB3C EC 02 00 2A */ fadds f0, f2, f0 -/* 8026EC00 0026BB40 EC 03 00 2A */ fadds f0, f3, f0 -/* 8026EC04 0026BB44 FC 00 02 10 */ fabs f0, f0 -/* 8026EC08 0026BB48 FC 20 00 18 */ frsp f1, f0 -/* 8026EC0C 0026BB4C 38 81 00 08 */ addi r4, r1, 8 -/* 8026EC10 0026BB50 48 0D 84 C9 */ bl PSVECScale -/* 8026EC14 0026BB54 38 61 00 08 */ addi r3, r1, 8 -/* 8026EC18 0026BB58 7F C4 F3 78 */ mr r4, r30 -/* 8026EC1C 0026BB5C 7F E5 FB 78 */ mr r5, r31 -/* 8026EC20 0026BB60 48 0D 84 71 */ bl PSVECAdd -/* 8026EC24 0026BB64 83 E1 00 1C */ lwz r31, 0x1c(r1) -/* 8026EC28 0026BB68 83 C1 00 18 */ lwz r30, 0x18(r1) -/* 8026EC2C 0026BB6C 80 01 00 24 */ lwz r0, 0x24(r1) -/* 8026EC30 0026BB70 7C 08 03 A6 */ mtlr r0 -/* 8026EC34 0026BB74 38 21 00 20 */ addi r1, r1, 0x20 -/* 8026EC38 0026BB78 4E 80 00 20 */ blr \ No newline at end of file diff --git a/include/SComponent/c_m3d/c_m3d.h b/include/SComponent/c_m3d/c_m3d.h deleted file mode 100644 index d1b028b036f..00000000000 --- a/include/SComponent/c_m3d/c_m3d.h +++ /dev/null @@ -1,30 +0,0 @@ -#ifndef C_M3D_H_ -#define C_M3D_H_ - -#include "SComponent/c_xyz/c_xyz.h" -#include "global.h" - -class cM3dGLin_members { -public: -private: - cXyz start; - cXyz end; -}; - -class cM3dGCps { -public: -private: - cM3dGLin_members base; - void* vtable; - float field_0x1c; -}; - -class cM3dGAab { /* Axis-aligned bounding box */ -public: -private: - cXyz min; - cXyz max; - void* vtable; -}; - -#endif \ No newline at end of file diff --git a/include/SComponent/c_m3d_g_aab.h b/include/SComponent/c_m3d_g_aab.h index d0735f1c1e8..9c3c3a7c007 100644 --- a/include/SComponent/c_m3d_g_aab.h +++ b/include/SComponent/c_m3d_g_aab.h @@ -4,19 +4,33 @@ #include "SComponent/c_xyz.h" #include "global.h" +// Axis aligned bounding box class cM3dGAab { +private: public: + cXyz mMin; + cXyz mMax; + + virtual ~cM3dGAab(); void Set(const cXyz*, const cXyz*); bool CrossY(const cXyz*) const; - bool UnderPlaneYUnder(float) const; - bool TopPlaneYUnder(float) const; + bool UnderPlaneYUnder(f32) const; + bool TopPlaneYUnder(f32) const; void ClearForMinMax(void); void SetMinMax(const cXyz&); void SetMinMax(const cM3dGAab&); void SetMin(const cXyz&); void SetMax(const cXyz&); void CalcCenter(cXyz*) const; - void PlusR(float); + void PlusR(f32); + const cXyz& getMaxP(void) const { return mMax; } + const cXyz& getMinP(void) const { return mMin; } + const f32 GetMaxX(void) const { return mMax.GetX(); } + const f32 GetMaxY(void) const { return mMax.GetY(); } + const f32 GetMaxZ(void) const { return mMax.GetZ(); } + const f32 GetMinX(void) const { return mMin.GetX(); } + const f32 GetMinY(void) const { return mMin.GetY(); } + const f32 GetMinZ(void) const { return mMin.GetZ(); } }; #endif \ No newline at end of file diff --git a/include/SComponent/c_m3d_g_aab/asm/func_8026EC54.s b/include/SComponent/c_m3d_g_aab/asm/func_8026EC54.s deleted file mode 100644 index ee48d8c14fa..00000000000 --- a/include/SComponent/c_m3d_g_aab/asm/func_8026EC54.s +++ /dev/null @@ -1,13 +0,0 @@ -/* 8026EC54 0026BB94 C0 04 00 00 */ lfs f0, 0(r4) -/* 8026EC58 0026BB98 D0 03 00 00 */ stfs f0, 0(r3) -/* 8026EC5C 0026BB9C C0 04 00 04 */ lfs f0, 4(r4) -/* 8026EC60 0026BBA0 D0 03 00 04 */ stfs f0, 4(r3) -/* 8026EC64 0026BBA4 C0 04 00 08 */ lfs f0, 8(r4) -/* 8026EC68 0026BBA8 D0 03 00 08 */ stfs f0, 8(r3) -/* 8026EC6C 0026BBAC C0 05 00 00 */ lfs f0, 0(r5) -/* 8026EC70 0026BBB0 D0 03 00 0C */ stfs f0, 0xc(r3) -/* 8026EC74 0026BBB4 C0 05 00 04 */ lfs f0, 4(r5) -/* 8026EC78 0026BBB8 D0 03 00 10 */ stfs f0, 0x10(r3) -/* 8026EC7C 0026BBBC C0 05 00 08 */ lfs f0, 8(r5) -/* 8026EC80 0026BBC0 D0 03 00 14 */ stfs f0, 0x14(r3) -/* 8026EC84 0026BBC4 4E 80 00 20 */ blr diff --git a/include/SComponent/c_m3d_g_aab/asm/func_8026EC88.s b/include/SComponent/c_m3d_g_aab/asm/func_8026EC88.s deleted file mode 100644 index 26461e9db27..00000000000 --- a/include/SComponent/c_m3d_g_aab/asm/func_8026EC88.s +++ /dev/null @@ -1,20 +0,0 @@ -/* 8026EC88 0026BBC8 C0 03 00 00 */ lfs f0, 0(r3) -/* 8026EC8C 0026BBCC C0 24 00 00 */ lfs f1, 0(r4) -/* 8026EC90 0026BBD0 FC 00 08 40 */ fcmpo cr0, f0, f1 -/* 8026EC94 0026BBD4 41 81 00 2C */ bgt lbl_8026ECC0 -/* 8026EC98 0026BBD8 C0 03 00 0C */ lfs f0, 0xc(r3) -/* 8026EC9C 0026BBDC FC 00 08 40 */ fcmpo cr0, f0, f1 -/* 8026ECA0 0026BBE0 41 80 00 20 */ blt lbl_8026ECC0 -/* 8026ECA4 0026BBE4 C0 03 00 08 */ lfs f0, 8(r3) -/* 8026ECA8 0026BBE8 C0 24 00 08 */ lfs f1, 8(r4) -/* 8026ECAC 0026BBEC FC 00 08 40 */ fcmpo cr0, f0, f1 -/* 8026ECB0 0026BBF0 41 81 00 10 */ bgt lbl_8026ECC0 -/* 8026ECB4 0026BBF4 C0 03 00 14 */ lfs f0, 0x14(r3) -/* 8026ECB8 0026BBF8 FC 00 08 40 */ fcmpo cr0, f0, f1 -/* 8026ECBC 0026BBFC 40 80 00 0C */ bge lbl_8026ECC8 -lbl_8026ECC0: -/* 8026ECC0 0026BC00 38 60 00 00 */ li r3, 0 -/* 8026ECC4 0026BC04 4E 80 00 20 */ blr -lbl_8026ECC8: -/* 8026ECC8 0026BC08 38 60 00 01 */ li r3, 1 -/* 8026ECCC 0026BC0C 4E 80 00 20 */ blr diff --git a/include/SComponent/c_m3d_g_aab/asm/func_8026ECD0.s b/include/SComponent/c_m3d_g_aab/asm/func_8026ECD0.s deleted file mode 100644 index 0eaf6aac55a..00000000000 --- a/include/SComponent/c_m3d_g_aab/asm/func_8026ECD0.s +++ /dev/null @@ -1,5 +0,0 @@ -/* 8026ECD0 0026BC10 C0 03 00 04 */ lfs f0, 4(r3) -/* 8026ECD4 0026BC14 FC 00 08 40 */ fcmpo cr0, f0, f1 -/* 8026ECD8 0026BC18 7C 00 00 26 */ mfcr r0 -/* 8026ECDC 0026BC1C 54 03 0F FE */ srwi r3, r0, 0x1f -/* 8026ECE0 0026BC20 4E 80 00 20 */ blr diff --git a/include/SComponent/c_m3d_g_aab/asm/func_8026ECE4.s b/include/SComponent/c_m3d_g_aab/asm/func_8026ECE4.s deleted file mode 100644 index b91c2e5cc7c..00000000000 --- a/include/SComponent/c_m3d_g_aab/asm/func_8026ECE4.s +++ /dev/null @@ -1,5 +0,0 @@ -/* 8026ECE4 0026BC24 C0 03 00 10 */ lfs f0, 0x10(r3) -/* 8026ECE8 0026BC28 FC 00 08 40 */ fcmpo cr0, f0, f1 -/* 8026ECEC 0026BC2C 7C 00 00 26 */ mfcr r0 -/* 8026ECF0 0026BC30 54 03 0F FE */ srwi r3, r0, 0x1f -/* 8026ECF4 0026BC34 4E 80 00 20 */ blr diff --git a/include/SComponent/c_m3d_g_aab/asm/func_8026ECF8.s b/include/SComponent/c_m3d_g_aab/asm/func_8026ECF8.s deleted file mode 100644 index 1606b58f6ca..00000000000 --- a/include/SComponent/c_m3d_g_aab/asm/func_8026ECF8.s +++ /dev/null @@ -1,9 +0,0 @@ -/* 8026ECF8 0026BC38 C0 02 B7 D0 */ lfs f0, lbl_804551D0-_SDA2_BASE_(r2) -/* 8026ECFC 0026BC3C D0 03 00 08 */ stfs f0, 8(r3) -/* 8026ED00 0026BC40 D0 03 00 04 */ stfs f0, 4(r3) -/* 8026ED04 0026BC44 D0 03 00 00 */ stfs f0, 0(r3) -/* 8026ED08 0026BC48 C0 02 B7 D4 */ lfs f0, lbl_804551D4-_SDA2_BASE_(r2) -/* 8026ED0C 0026BC4C D0 03 00 14 */ stfs f0, 0x14(r3) -/* 8026ED10 0026BC50 D0 03 00 10 */ stfs f0, 0x10(r3) -/* 8026ED14 0026BC54 D0 03 00 0C */ stfs f0, 0xc(r3) -/* 8026ED18 0026BC58 4E 80 00 20 */ blr diff --git a/include/SComponent/c_m3d_g_aab/asm/func_8026ED1C.s b/include/SComponent/c_m3d_g_aab/asm/func_8026ED1C.s deleted file mode 100644 index ac37532cfba..00000000000 --- a/include/SComponent/c_m3d_g_aab/asm/func_8026ED1C.s +++ /dev/null @@ -1,17 +0,0 @@ -/* 8026ED1C 0026BC5C 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8026ED20 0026BC60 7C 08 02 A6 */ mflr r0 -/* 8026ED24 0026BC64 90 01 00 14 */ stw r0, 0x14(r1) -/* 8026ED28 0026BC68 93 E1 00 0C */ stw r31, 0xc(r1) -/* 8026ED2C 0026BC6C 93 C1 00 08 */ stw r30, 8(r1) -/* 8026ED30 0026BC70 7C 7E 1B 78 */ mr r30, r3 -/* 8026ED34 0026BC74 7C 9F 23 78 */ mr r31, r4 -/* 8026ED38 0026BC78 48 00 00 6D */ bl SetMin__8cM3dGAabFRC4cXyz -/* 8026ED3C 0026BC7C 7F C3 F3 78 */ mr r3, r30 -/* 8026ED40 0026BC80 7F E4 FB 78 */ mr r4, r31 -/* 8026ED44 0026BC84 48 00 00 A1 */ bl SetMax__8cM3dGAabFRC4cXyz -/* 8026ED48 0026BC88 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 8026ED4C 0026BC8C 83 C1 00 08 */ lwz r30, 8(r1) -/* 8026ED50 0026BC90 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8026ED54 0026BC94 7C 08 03 A6 */ mtlr r0 -/* 8026ED58 0026BC98 38 21 00 10 */ addi r1, r1, 0x10 -/* 8026ED5C 0026BC9C 4E 80 00 20 */ blr diff --git a/include/SComponent/c_m3d_g_aab/asm/func_8026ED60.s b/include/SComponent/c_m3d_g_aab/asm/func_8026ED60.s deleted file mode 100644 index 4adb753e44b..00000000000 --- a/include/SComponent/c_m3d_g_aab/asm/func_8026ED60.s +++ /dev/null @@ -1,17 +0,0 @@ -/* 8026ED60 0026BCA0 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8026ED64 0026BCA4 7C 08 02 A6 */ mflr r0 -/* 8026ED68 0026BCA8 90 01 00 14 */ stw r0, 0x14(r1) -/* 8026ED6C 0026BCAC 93 E1 00 0C */ stw r31, 0xc(r1) -/* 8026ED70 0026BCB0 93 C1 00 08 */ stw r30, 8(r1) -/* 8026ED74 0026BCB4 7C 7E 1B 78 */ mr r30, r3 -/* 8026ED78 0026BCB8 7C 9F 23 78 */ mr r31, r4 -/* 8026ED7C 0026BCBC 4B FF FF A1 */ bl SetMinMax__8cM3dGAabFRC4cXyz -/* 8026ED80 0026BCC0 7F C3 F3 78 */ mr r3, r30 -/* 8026ED84 0026BCC4 38 9F 00 0C */ addi r4, r31, 0xc -/* 8026ED88 0026BCC8 4B FF FF 95 */ bl SetMinMax__8cM3dGAabFRC4cXyz -/* 8026ED8C 0026BCCC 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 8026ED90 0026BCD0 83 C1 00 08 */ lwz r30, 8(r1) -/* 8026ED94 0026BCD4 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8026ED98 0026BCD8 7C 08 03 A6 */ mtlr r0 -/* 8026ED9C 0026BCDC 38 21 00 10 */ addi r1, r1, 0x10 -/* 8026EDA0 0026BCE0 4E 80 00 20 */ blr diff --git a/include/SComponent/c_m3d_g_aab/asm/func_8026EDA4.s b/include/SComponent/c_m3d_g_aab/asm/func_8026EDA4.s deleted file mode 100644 index 2321c02b396..00000000000 --- a/include/SComponent/c_m3d_g_aab/asm/func_8026EDA4.s +++ /dev/null @@ -1,18 +0,0 @@ -/* 8026EDA4 0026BCE4 C0 03 00 00 */ lfs f0, 0(r3) -/* 8026EDA8 0026BCE8 C0 24 00 00 */ lfs f1, 0(r4) -/* 8026EDAC 0026BCEC FC 00 08 40 */ fcmpo cr0, f0, f1 -/* 8026EDB0 0026BCF0 40 81 00 08 */ ble lbl_8026EDB8 -/* 8026EDB4 0026BCF4 D0 23 00 00 */ stfs f1, 0(r3) -lbl_8026EDB8: -/* 8026EDB8 0026BCF8 C0 03 00 04 */ lfs f0, 4(r3) -/* 8026EDBC 0026BCFC C0 24 00 04 */ lfs f1, 4(r4) -/* 8026EDC0 0026BD00 FC 00 08 40 */ fcmpo cr0, f0, f1 -/* 8026EDC4 0026BD04 40 81 00 08 */ ble lbl_8026EDCC -/* 8026EDC8 0026BD08 D0 23 00 04 */ stfs f1, 4(r3) -lbl_8026EDCC: -/* 8026EDCC 0026BD0C C0 03 00 08 */ lfs f0, 8(r3) -/* 8026EDD0 0026BD10 C0 24 00 08 */ lfs f1, 8(r4) -/* 8026EDD4 0026BD14 FC 00 08 40 */ fcmpo cr0, f0, f1 -/* 8026EDD8 0026BD18 4C 81 00 20 */ blelr -/* 8026EDDC 0026BD1C D0 23 00 08 */ stfs f1, 8(r3) -/* 8026EDE0 0026BD20 4E 80 00 20 */ blr diff --git a/include/SComponent/c_m3d_g_aab/asm/func_8026EDE4.s b/include/SComponent/c_m3d_g_aab/asm/func_8026EDE4.s deleted file mode 100644 index 5512a1a5cfc..00000000000 --- a/include/SComponent/c_m3d_g_aab/asm/func_8026EDE4.s +++ /dev/null @@ -1,18 +0,0 @@ -/* 8026EDE4 0026BD24 C0 03 00 0C */ lfs f0, 0xc(r3) -/* 8026EDE8 0026BD28 C0 24 00 00 */ lfs f1, 0(r4) -/* 8026EDEC 0026BD2C FC 00 08 40 */ fcmpo cr0, f0, f1 -/* 8026EDF0 0026BD30 40 80 00 08 */ bge lbl_8026EDF8 -/* 8026EDF4 0026BD34 D0 23 00 0C */ stfs f1, 0xc(r3) -lbl_8026EDF8: -/* 8026EDF8 0026BD38 C0 03 00 10 */ lfs f0, 0x10(r3) -/* 8026EDFC 0026BD3C C0 24 00 04 */ lfs f1, 4(r4) -/* 8026EE00 0026BD40 FC 00 08 40 */ fcmpo cr0, f0, f1 -/* 8026EE04 0026BD44 40 80 00 08 */ bge lbl_8026EE0C -/* 8026EE08 0026BD48 D0 23 00 10 */ stfs f1, 0x10(r3) -lbl_8026EE0C: -/* 8026EE0C 0026BD4C C0 03 00 14 */ lfs f0, 0x14(r3) -/* 8026EE10 0026BD50 C0 24 00 08 */ lfs f1, 8(r4) -/* 8026EE14 0026BD54 FC 00 08 40 */ fcmpo cr0, f0, f1 -/* 8026EE18 0026BD58 4C 80 00 20 */ bgelr -/* 8026EE1C 0026BD5C D0 23 00 14 */ stfs f1, 0x14(r3) -/* 8026EE20 0026BD60 4E 80 00 20 */ blr diff --git a/include/SComponent/c_m3d_g_aab/asm/func_8026EE24.s b/include/SComponent/c_m3d_g_aab/asm/func_8026EE24.s deleted file mode 100644 index f39caf94a38..00000000000 --- a/include/SComponent/c_m3d_g_aab/asm/func_8026EE24.s +++ /dev/null @@ -1,17 +0,0 @@ -/* 8026EE24 0026BD64 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8026EE28 0026BD68 7C 08 02 A6 */ mflr r0 -/* 8026EE2C 0026BD6C 90 01 00 14 */ stw r0, 0x14(r1) -/* 8026EE30 0026BD70 93 E1 00 0C */ stw r31, 0xc(r1) -/* 8026EE34 0026BD74 7C 9F 23 78 */ mr r31, r4 -/* 8026EE38 0026BD78 38 83 00 0C */ addi r4, r3, 0xc -/* 8026EE3C 0026BD7C 7F E5 FB 78 */ mr r5, r31 -/* 8026EE40 0026BD80 48 0D 82 51 */ bl PSVECAdd -/* 8026EE44 0026BD84 7F E3 FB 78 */ mr r3, r31 -/* 8026EE48 0026BD88 7F E4 FB 78 */ mr r4, r31 -/* 8026EE4C 0026BD8C C0 22 B7 D8 */ lfs f1, lbl_804551D8-_SDA2_BASE_(r2) -/* 8026EE50 0026BD90 48 0D 82 89 */ bl PSVECScale -/* 8026EE54 0026BD94 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 8026EE58 0026BD98 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8026EE5C 0026BD9C 7C 08 03 A6 */ mtlr r0 -/* 8026EE60 0026BDA0 38 21 00 10 */ addi r1, r1, 0x10 -/* 8026EE64 0026BDA4 4E 80 00 20 */ blr diff --git a/include/SComponent/c_m3d_g_aab/asm/func_8026EE68.s b/include/SComponent/c_m3d_g_aab/asm/func_8026EE68.s deleted file mode 100644 index 89ffa194b84..00000000000 --- a/include/SComponent/c_m3d_g_aab/asm/func_8026EE68.s +++ /dev/null @@ -1,19 +0,0 @@ -/* 8026EE68 0026BDA8 C0 03 00 00 */ lfs f0, 0(r3) -/* 8026EE6C 0026BDAC EC 00 08 28 */ fsubs f0, f0, f1 -/* 8026EE70 0026BDB0 D0 03 00 00 */ stfs f0, 0(r3) -/* 8026EE74 0026BDB4 C0 03 00 04 */ lfs f0, 4(r3) -/* 8026EE78 0026BDB8 EC 00 08 28 */ fsubs f0, f0, f1 -/* 8026EE7C 0026BDBC D0 03 00 04 */ stfs f0, 4(r3) -/* 8026EE80 0026BDC0 C0 03 00 08 */ lfs f0, 8(r3) -/* 8026EE84 0026BDC4 EC 00 08 28 */ fsubs f0, f0, f1 -/* 8026EE88 0026BDC8 D0 03 00 08 */ stfs f0, 8(r3) -/* 8026EE8C 0026BDCC C0 03 00 0C */ lfs f0, 0xc(r3) -/* 8026EE90 0026BDD0 EC 00 08 2A */ fadds f0, f0, f1 -/* 8026EE94 0026BDD4 D0 03 00 0C */ stfs f0, 0xc(r3) -/* 8026EE98 0026BDD8 C0 03 00 10 */ lfs f0, 0x10(r3) -/* 8026EE9C 0026BDDC EC 00 08 2A */ fadds f0, f0, f1 -/* 8026EEA0 0026BDE0 D0 03 00 10 */ stfs f0, 0x10(r3) -/* 8026EEA4 0026BDE4 C0 03 00 14 */ lfs f0, 0x14(r3) -/* 8026EEA8 0026BDE8 EC 00 08 2A */ fadds f0, f0, f1 -/* 8026EEAC 0026BDEC D0 03 00 14 */ stfs f0, 0x14(r3) -/* 8026EEB0 0026BDF0 4E 80 00 20 */ blr \ No newline at end of file diff --git a/include/SComponent/c_m3d_g_cir.h b/include/SComponent/c_m3d_g_cir.h index 254c9cdb8c1..95068b18cae 100644 --- a/include/SComponent/c_m3d_g_cir.h +++ b/include/SComponent/c_m3d_g_cir.h @@ -3,11 +3,22 @@ #include "global.h" -class cM3dGCir { +class cM2dGCir { +public: + f32 mPosX; + f32 mPosY; + f32 mRadius; + cM2dGCir() {} + virtual ~cM2dGCir() {} +}; + +class cM3dGCir : public cM2dGCir { + f32 mPosZ; + public: cM3dGCir(void); - ~cM3dGCir(void); - void Set(float, float, float, float); + virtual ~cM3dGCir(void); + void Set(f32, f32, f32, f32); }; #endif \ No newline at end of file diff --git a/include/SComponent/c_m3d_g_cir/asm/func_8026EEB4.s b/include/SComponent/c_m3d_g_cir/asm/func_8026EEB4.s deleted file mode 100644 index 9d92a3051ff..00000000000 --- a/include/SComponent/c_m3d_g_cir/asm/func_8026EEB4.s +++ /dev/null @@ -1,7 +0,0 @@ -/* 8026EEB4 0026BDF4 3C 80 80 3C */ lis r4, lbl_803C3FEC@ha -/* 8026EEB8 0026BDF8 38 04 3F EC */ addi r0, r4, lbl_803C3FEC@l -/* 8026EEBC 0026BDFC 90 03 00 0C */ stw r0, 0xc(r3) -/* 8026EEC0 0026BE00 3C 80 80 3C */ lis r4, lbl_803C3FE0@ha -/* 8026EEC4 0026BE04 38 04 3F E0 */ addi r0, r4, lbl_803C3FE0@l -/* 8026EEC8 0026BE08 90 03 00 0C */ stw r0, 0xc(r3) -/* 8026EECC 0026BE0C 4E 80 00 20 */ blr \ No newline at end of file diff --git a/include/SComponent/c_m3d_g_cir/asm/func_8026EED0.s b/include/SComponent/c_m3d_g_cir/asm/func_8026EED0.s deleted file mode 100644 index 84637b9a498..00000000000 --- a/include/SComponent/c_m3d_g_cir/asm/func_8026EED0.s +++ /dev/null @@ -1,19 +0,0 @@ -/* 8026EED0 0026BE10 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8026EED4 0026BE14 7C 08 02 A6 */ mflr r0 -/* 8026EED8 0026BE18 90 01 00 14 */ stw r0, 0x14(r1) -/* 8026EEDC 0026BE1C 93 E1 00 0C */ stw r31, 0xc(r1) -/* 8026EEE0 0026BE20 7C 7F 1B 79 */ or. r31, r3, r3 -/* 8026EEE4 0026BE24 41 82 00 1C */ beq lbl_8026EF00 -/* 8026EEE8 0026BE28 3C A0 80 3C */ lis r5, lbl_803C3FEC@ha -/* 8026EEEC 0026BE2C 38 05 3F EC */ addi r0, r5, lbl_803C3FEC@l -/* 8026EEF0 0026BE30 90 1F 00 0C */ stw r0, 0xc(r31) -/* 8026EEF4 0026BE34 7C 80 07 35 */ extsh. r0, r4 -/* 8026EEF8 0026BE38 40 81 00 08 */ ble lbl_8026EF00 -/* 8026EEFC 0026BE3C 48 05 FE 41 */ bl __dl__FPv -lbl_8026EF00: -/* 8026EF00 0026BE40 7F E3 FB 78 */ mr r3, r31 -/* 8026EF04 0026BE44 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 8026EF08 0026BE48 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8026EF0C 0026BE4C 7C 08 03 A6 */ mtlr r0 -/* 8026EF10 0026BE50 38 21 00 10 */ addi r1, r1, 0x10 -/* 8026EF14 0026BE54 4E 80 00 20 */ blr diff --git a/include/SComponent/c_m3d_g_cir/asm/func_8026EF18.s b/include/SComponent/c_m3d_g_cir/asm/func_8026EF18.s deleted file mode 100644 index 3040f4fc5c2..00000000000 --- a/include/SComponent/c_m3d_g_cir/asm/func_8026EF18.s +++ /dev/null @@ -1,25 +0,0 @@ -/* 8026EF18 0026BE58 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8026EF1C 0026BE5C 7C 08 02 A6 */ mflr r0 -/* 8026EF20 0026BE60 90 01 00 14 */ stw r0, 0x14(r1) -/* 8026EF24 0026BE64 93 E1 00 0C */ stw r31, 0xc(r1) -/* 8026EF28 0026BE68 7C 7F 1B 79 */ or. r31, r3, r3 -/* 8026EF2C 0026BE6C 41 82 00 30 */ beq lbl_8026EF5C -/* 8026EF30 0026BE70 3C 60 80 3C */ lis r3, lbl_803C3FE0@ha -/* 8026EF34 0026BE74 38 03 3F E0 */ addi r0, r3, lbl_803C3FE0@l -/* 8026EF38 0026BE78 90 1F 00 0C */ stw r0, 0xc(r31) -/* 8026EF3C 0026BE7C 41 82 00 10 */ beq lbl_8026EF4C -/* 8026EF40 0026BE80 3C 60 80 3C */ lis r3, lbl_803C3FEC@ha -/* 8026EF44 0026BE84 38 03 3F EC */ addi r0, r3, lbl_803C3FEC@l -/* 8026EF48 0026BE88 90 1F 00 0C */ stw r0, 0xc(r31) -lbl_8026EF4C: -/* 8026EF4C 0026BE8C 7C 80 07 35 */ extsh. r0, r4 -/* 8026EF50 0026BE90 40 81 00 0C */ ble lbl_8026EF5C -/* 8026EF54 0026BE94 7F E3 FB 78 */ mr r3, r31 -/* 8026EF58 0026BE98 48 05 FD E5 */ bl __dl__FPv -lbl_8026EF5C: -/* 8026EF5C 0026BE9C 7F E3 FB 78 */ mr r3, r31 -/* 8026EF60 0026BEA0 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 8026EF64 0026BEA4 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8026EF68 0026BEA8 7C 08 03 A6 */ mtlr r0 -/* 8026EF6C 0026BEAC 38 21 00 10 */ addi r1, r1, 0x10 -/* 8026EF70 0026BEB0 4E 80 00 20 */ blr diff --git a/include/SComponent/c_m3d_g_cir/asm/func_8026EF74.s b/include/SComponent/c_m3d_g_cir/asm/func_8026EF74.s deleted file mode 100644 index 0c13de64658..00000000000 --- a/include/SComponent/c_m3d_g_cir/asm/func_8026EF74.s +++ /dev/null @@ -1,5 +0,0 @@ -/* 8026EF74 0026BEB4 D0 23 00 00 */ stfs f1, 0(r3) -/* 8026EF78 0026BEB8 D0 43 00 04 */ stfs f2, 4(r3) -/* 8026EF7C 0026BEBC D0 83 00 08 */ stfs f4, 8(r3) -/* 8026EF80 0026BEC0 D0 63 00 10 */ stfs f3, 0x10(r3) -/* 8026EF84 0026BEC4 4E 80 00 20 */ blr \ No newline at end of file diff --git a/include/SComponent/c_m3d_g_cps.h b/include/SComponent/c_m3d_g_cps.h index abb3dc97559..00b3ba32d96 100644 --- a/include/SComponent/c_m3d_g_cps.h +++ b/include/SComponent/c_m3d_g_cps.h @@ -1,16 +1,24 @@ #ifndef C_M3D_G_CPS_H_ #define C_M3D_G_CPS_H_ +#include "SComponent/c_m3d_g_lin.h" #include "SComponent/c_xyz.h" #include "global.h" -struct cM3dGCpsS; +struct cM3dGCpsS { + Vec mStart; + Vec mEnd; + f32 unk_0x1c; +}; + +class cM3dGCps : public cM3dGLin { +private: + f32 unk_0x1c; -class cM3dGCps { public: cM3dGCps(void); - ~cM3dGCps(void); - void Set(const cXyz&, const cXyz&, float); + virtual ~cM3dGCps(void); + void Set(const cXyz&, const cXyz&, f32); void Set(const cM3dGCpsS&); void SetCps(const cM3dGCps&); }; diff --git a/include/SComponent/c_m3d_g_cps/asm/func_8026EF88.s b/include/SComponent/c_m3d_g_cps/asm/func_8026EF88.s deleted file mode 100644 index 6b9c26293f0..00000000000 --- a/include/SComponent/c_m3d_g_cps/asm/func_8026EF88.s +++ /dev/null @@ -1,7 +0,0 @@ -/* 8026EF88 0026BEC8 3C 80 80 3A */ lis r4, lbl_803A78F8@ha -/* 8026EF8C 0026BECC 38 04 78 F8 */ addi r0, r4, lbl_803A78F8@l -/* 8026EF90 0026BED0 90 03 00 18 */ stw r0, 0x18(r3) -/* 8026EF94 0026BED4 3C 80 80 3C */ lis r4, lbl_803C3FF8@ha -/* 8026EF98 0026BED8 38 04 3F F8 */ addi r0, r4, lbl_803C3FF8@l -/* 8026EF9C 0026BEDC 90 03 00 18 */ stw r0, 0x18(r3) -/* 8026EFA0 0026BEE0 4E 80 00 20 */ blr diff --git a/include/SComponent/c_m3d_g_cps/asm/func_8026EFA4.s b/include/SComponent/c_m3d_g_cps/asm/func_8026EFA4.s deleted file mode 100644 index f53c18b425e..00000000000 --- a/include/SComponent/c_m3d_g_cps/asm/func_8026EFA4.s +++ /dev/null @@ -1,25 +0,0 @@ -/* 8026EFA4 0026BEE4 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8026EFA8 0026BEE8 7C 08 02 A6 */ mflr r0 -/* 8026EFAC 0026BEEC 90 01 00 14 */ stw r0, 0x14(r1) -/* 8026EFB0 0026BEF0 93 E1 00 0C */ stw r31, 0xc(r1) -/* 8026EFB4 0026BEF4 7C 7F 1B 79 */ or. r31, r3, r3 -/* 8026EFB8 0026BEF8 41 82 00 30 */ beq lbl_8026EFE8 -/* 8026EFBC 0026BEFC 3C 60 80 3C */ lis r3, lbl_803C3FF8@ha -/* 8026EFC0 0026BF00 38 03 3F F8 */ addi r0, r3, lbl_803C3FF8@l -/* 8026EFC4 0026BF04 90 1F 00 18 */ stw r0, 0x18(r31) -/* 8026EFC8 0026BF08 41 82 00 10 */ beq lbl_8026EFD8 -/* 8026EFCC 0026BF0C 3C 60 80 3A */ lis r3, lbl_803A78F8@ha -/* 8026EFD0 0026BF10 38 03 78 F8 */ addi r0, r3, lbl_803A78F8@l -/* 8026EFD4 0026BF14 90 1F 00 18 */ stw r0, 0x18(r31) -lbl_8026EFD8: -/* 8026EFD8 0026BF18 7C 80 07 35 */ extsh. r0, r4 -/* 8026EFDC 0026BF1C 40 81 00 0C */ ble lbl_8026EFE8 -/* 8026EFE0 0026BF20 7F E3 FB 78 */ mr r3, r31 -/* 8026EFE4 0026BF24 48 05 FD 59 */ bl __dl__FPv -lbl_8026EFE8: -/* 8026EFE8 0026BF28 7F E3 FB 78 */ mr r3, r31 -/* 8026EFEC 0026BF2C 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 8026EFF0 0026BF30 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8026EFF4 0026BF34 7C 08 03 A6 */ mtlr r0 -/* 8026EFF8 0026BF38 38 21 00 10 */ addi r1, r1, 0x10 -/* 8026EFFC 0026BF3C 4E 80 00 20 */ blr diff --git a/include/SComponent/c_m3d_g_cps/asm/func_8026F000.s b/include/SComponent/c_m3d_g_cps/asm/func_8026F000.s deleted file mode 100644 index 05af2d1d60a..00000000000 --- a/include/SComponent/c_m3d_g_cps/asm/func_8026F000.s +++ /dev/null @@ -1,15 +0,0 @@ -/* 8026F000 0026BF40 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 8026F004 0026BF44 7C 08 02 A6 */ mflr r0 -/* 8026F008 0026BF48 90 01 00 24 */ stw r0, 0x24(r1) -/* 8026F00C 0026BF4C DB E1 00 18 */ stfd f31, 0x18(r1) -/* 8026F010 0026BF50 93 E1 00 14 */ stw r31, 0x14(r1) -/* 8026F014 0026BF54 7C 7F 1B 78 */ mr r31, r3 -/* 8026F018 0026BF58 FF E0 08 90 */ fmr f31, f1 -/* 8026F01C 0026BF5C 48 00 02 CD */ bl SetStartEnd__8cM3dGLinFRC4cXyzRC4cXyz -/* 8026F020 0026BF60 D3 FF 00 1C */ stfs f31, 0x1c(r31) -/* 8026F024 0026BF64 CB E1 00 18 */ lfd f31, 0x18(r1) -/* 8026F028 0026BF68 83 E1 00 14 */ lwz r31, 0x14(r1) -/* 8026F02C 0026BF6C 80 01 00 24 */ lwz r0, 0x24(r1) -/* 8026F030 0026BF70 7C 08 03 A6 */ mtlr r0 -/* 8026F034 0026BF74 38 21 00 20 */ addi r1, r1, 0x20 -/* 8026F038 0026BF78 4E 80 00 20 */ blr diff --git a/include/SComponent/c_m3d_g_cps/asm/func_8026F03C.s b/include/SComponent/c_m3d_g_cps/asm/func_8026F03C.s deleted file mode 100644 index 870817332e3..00000000000 --- a/include/SComponent/c_m3d_g_cps/asm/func_8026F03C.s +++ /dev/null @@ -1,17 +0,0 @@ -/* 8026F03C 0026BF7C 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8026F040 0026BF80 7C 08 02 A6 */ mflr r0 -/* 8026F044 0026BF84 90 01 00 14 */ stw r0, 0x14(r1) -/* 8026F048 0026BF88 93 E1 00 0C */ stw r31, 0xc(r1) -/* 8026F04C 0026BF8C 93 C1 00 08 */ stw r30, 8(r1) -/* 8026F050 0026BF90 7C 7E 1B 78 */ mr r30, r3 -/* 8026F054 0026BF94 7C 9F 23 78 */ mr r31, r4 -/* 8026F058 0026BF98 38 BF 00 0C */ addi r5, r31, 0xc -/* 8026F05C 0026BF9C 48 00 02 C1 */ bl SetStartEnd__8cM3dGLinFRC3VecRC3Vec -/* 8026F060 0026BFA0 C0 1F 00 18 */ lfs f0, 0x18(r31) -/* 8026F064 0026BFA4 D0 1E 00 1C */ stfs f0, 0x1c(r30) -/* 8026F068 0026BFA8 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 8026F06C 0026BFAC 83 C1 00 08 */ lwz r30, 8(r1) -/* 8026F070 0026BFB0 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8026F074 0026BFB4 7C 08 03 A6 */ mtlr r0 -/* 8026F078 0026BFB8 38 21 00 10 */ addi r1, r1, 0x10 -/* 8026F07C 0026BFBC 4E 80 00 20 */ blr diff --git a/include/SComponent/c_m3d_g_cps/asm/func_8026F080.s b/include/SComponent/c_m3d_g_cps/asm/func_8026F080.s deleted file mode 100644 index ab6cc845ae6..00000000000 --- a/include/SComponent/c_m3d_g_cps/asm/func_8026F080.s +++ /dev/null @@ -1,10 +0,0 @@ -/* 8026F080 0026BFC0 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8026F084 0026BFC4 7C 08 02 A6 */ mflr r0 -/* 8026F088 0026BFC8 90 01 00 14 */ stw r0, 0x14(r1) -/* 8026F08C 0026BFCC 38 A4 00 0C */ addi r5, r4, 0xc -/* 8026F090 0026BFD0 C0 24 00 1C */ lfs f1, 0x1c(r4) -/* 8026F094 0026BFD4 4B FF FF 6D */ bl Set__8cM3dGCpsFRC4cXyzRC4cXyzf -/* 8026F098 0026BFD8 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8026F09C 0026BFDC 7C 08 03 A6 */ mtlr r0 -/* 8026F0A0 0026BFE0 38 21 00 10 */ addi r1, r1, 0x10 -/* 8026F0A4 0026BFE4 4E 80 00 20 */ blr \ No newline at end of file diff --git a/include/SComponent/c_m3d_g_cyl.h b/include/SComponent/c_m3d_g_cyl.h index de3300f0e45..d57cb1858ab 100644 --- a/include/SComponent/c_m3d_g_cyl.h +++ b/include/SComponent/c_m3d_g_cyl.h @@ -4,26 +4,29 @@ #include "SComponent/c_xyz.h" #include "global.h" -struct cM3dGCylS; -struct cM3dGSph; +// Cylinder +struct cM3dGCylS { + cXyz mCenter; + f32 mRadius; + f32 mHeight; +}; +class cM3dGSph; -class cM3dGCyl { +class cM3dGCyl : public cM3dGCylS { public: - cM3dGCyl(const cXyz*, float, float); + cM3dGCyl(const cXyz*, f32, f32); + virtual ~cM3dGCyl(); void Set(const cM3dGCylS&); - void Set(const cXyz&, float, float); + void Set(const cXyz&, f32, f32); void SetC(const cXyz&); - void SetH(float); - void SetR(float); + void SetH(f32); + void SetR(f32); bool cross(const cM3dGSph*, cXyz*) const; bool cross(const cM3dGCyl*, cXyz*) const; void calcMinMax(cXyz*, cXyz*); - -private: - cXyz center; - float radius; - float height; - void* vtable; + const cXyz& GetCP(void) const { return mCenter; } + f32 GetR(void) const { return mRadius; } + f32 GetH(void) const { return mHeight; } }; -#endif \ No newline at end of file +#endif diff --git a/include/SComponent/c_m3d_g_cyl/asm/func_8026F0A8.s b/include/SComponent/c_m3d_g_cyl/asm/func_8026F0A8.s deleted file mode 100644 index 6299d39be55..00000000000 --- a/include/SComponent/c_m3d_g_cyl/asm/func_8026F0A8.s +++ /dev/null @@ -1,27 +0,0 @@ -/* 8026F0A8 0026BFE8 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 8026F0AC 0026BFEC 7C 08 02 A6 */ mflr r0 -/* 8026F0B0 0026BFF0 90 01 00 24 */ stw r0, 0x24(r1) -/* 8026F0B4 0026BFF4 DB E1 00 18 */ stfd f31, 0x18(r1) -/* 8026F0B8 0026BFF8 DB C1 00 10 */ stfd f30, 0x10(r1) -/* 8026F0BC 0026BFFC 93 E1 00 0C */ stw r31, 0xc(r1) -/* 8026F0C0 0026C000 7C 7F 1B 78 */ mr r31, r3 -/* 8026F0C4 0026C004 FF C0 08 90 */ fmr f30, f1 -/* 8026F0C8 0026C008 FF E0 10 90 */ fmr f31, f2 -/* 8026F0CC 0026C00C 3C A0 80 3A */ lis r5, lbl_803A720C@ha -/* 8026F0D0 0026C010 38 05 72 0C */ addi r0, r5, lbl_803A720C@l -/* 8026F0D4 0026C014 90 03 00 14 */ stw r0, 0x14(r3) -/* 8026F0D8 0026C018 48 00 01 05 */ bl SetC__8cM3dGCylFRC4cXyz -/* 8026F0DC 0026C01C 7F E3 FB 78 */ mr r3, r31 -/* 8026F0E0 0026C020 FC 20 F0 90 */ fmr f1, f30 -/* 8026F0E4 0026C024 48 00 01 1D */ bl SetR__8cM3dGCylFf -/* 8026F0E8 0026C028 7F E3 FB 78 */ mr r3, r31 -/* 8026F0EC 0026C02C FC 20 F8 90 */ fmr f1, f31 -/* 8026F0F0 0026C030 48 00 01 09 */ bl SetH__8cM3dGCylFf -/* 8026F0F4 0026C034 7F E3 FB 78 */ mr r3, r31 -/* 8026F0F8 0026C038 CB E1 00 18 */ lfd f31, 0x18(r1) -/* 8026F0FC 0026C03C CB C1 00 10 */ lfd f30, 0x10(r1) -/* 8026F100 0026C040 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 8026F104 0026C044 80 01 00 24 */ lwz r0, 0x24(r1) -/* 8026F108 0026C048 7C 08 03 A6 */ mtlr r0 -/* 8026F10C 0026C04C 38 21 00 20 */ addi r1, r1, 0x20 -/* 8026F110 0026C050 4E 80 00 20 */ blr diff --git a/include/SComponent/c_m3d_g_cyl/asm/func_8026F114.s b/include/SComponent/c_m3d_g_cyl/asm/func_8026F114.s deleted file mode 100644 index 8d3593573a8..00000000000 --- a/include/SComponent/c_m3d_g_cyl/asm/func_8026F114.s +++ /dev/null @@ -1,27 +0,0 @@ -/* 8026F114 0026C054 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 8026F118 0026C058 7C 08 02 A6 */ mflr r0 -/* 8026F11C 0026C05C 90 01 00 24 */ stw r0, 0x24(r1) -/* 8026F120 0026C060 93 E1 00 1C */ stw r31, 0x1c(r1) -/* 8026F124 0026C064 93 C1 00 18 */ stw r30, 0x18(r1) -/* 8026F128 0026C068 7C 7E 1B 78 */ mr r30, r3 -/* 8026F12C 0026C06C 7C 9F 23 78 */ mr r31, r4 -/* 8026F130 0026C070 C0 04 00 00 */ lfs f0, 0(r4) -/* 8026F134 0026C074 D0 01 00 08 */ stfs f0, 8(r1) -/* 8026F138 0026C078 C0 04 00 04 */ lfs f0, 4(r4) -/* 8026F13C 0026C07C D0 01 00 0C */ stfs f0, 0xc(r1) -/* 8026F140 0026C080 C0 04 00 08 */ lfs f0, 8(r4) -/* 8026F144 0026C084 D0 01 00 10 */ stfs f0, 0x10(r1) -/* 8026F148 0026C088 38 81 00 08 */ addi r4, r1, 8 -/* 8026F14C 0026C08C 48 00 00 91 */ bl SetC__8cM3dGCylFRC4cXyz -/* 8026F150 0026C090 7F C3 F3 78 */ mr r3, r30 -/* 8026F154 0026C094 C0 3F 00 0C */ lfs f1, 0xc(r31) -/* 8026F158 0026C098 48 00 00 A9 */ bl SetR__8cM3dGCylFf -/* 8026F15C 0026C09C 7F C3 F3 78 */ mr r3, r30 -/* 8026F160 0026C0A0 C0 3F 00 10 */ lfs f1, 0x10(r31) -/* 8026F164 0026C0A4 48 00 00 95 */ bl SetH__8cM3dGCylFf -/* 8026F168 0026C0A8 83 E1 00 1C */ lwz r31, 0x1c(r1) -/* 8026F16C 0026C0AC 83 C1 00 18 */ lwz r30, 0x18(r1) -/* 8026F170 0026C0B0 80 01 00 24 */ lwz r0, 0x24(r1) -/* 8026F174 0026C0B4 7C 08 03 A6 */ mtlr r0 -/* 8026F178 0026C0B8 38 21 00 20 */ addi r1, r1, 0x20 -/* 8026F17C 0026C0BC 4E 80 00 20 */ blr diff --git a/include/SComponent/c_m3d_g_cyl/asm/func_8026F180.s b/include/SComponent/c_m3d_g_cyl/asm/func_8026F180.s deleted file mode 100644 index df41ea289ec..00000000000 --- a/include/SComponent/c_m3d_g_cyl/asm/func_8026F180.s +++ /dev/null @@ -1,23 +0,0 @@ -/* 8026F180 0026C0C0 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 8026F184 0026C0C4 7C 08 02 A6 */ mflr r0 -/* 8026F188 0026C0C8 90 01 00 24 */ stw r0, 0x24(r1) -/* 8026F18C 0026C0CC DB E1 00 18 */ stfd f31, 0x18(r1) -/* 8026F190 0026C0D0 DB C1 00 10 */ stfd f30, 0x10(r1) -/* 8026F194 0026C0D4 93 E1 00 0C */ stw r31, 0xc(r1) -/* 8026F198 0026C0D8 7C 7F 1B 78 */ mr r31, r3 -/* 8026F19C 0026C0DC FF C0 08 90 */ fmr f30, f1 -/* 8026F1A0 0026C0E0 FF E0 10 90 */ fmr f31, f2 -/* 8026F1A4 0026C0E4 48 00 00 39 */ bl SetC__8cM3dGCylFRC4cXyz -/* 8026F1A8 0026C0E8 7F E3 FB 78 */ mr r3, r31 -/* 8026F1AC 0026C0EC FC 20 F0 90 */ fmr f1, f30 -/* 8026F1B0 0026C0F0 48 00 00 51 */ bl SetR__8cM3dGCylFf -/* 8026F1B4 0026C0F4 7F E3 FB 78 */ mr r3, r31 -/* 8026F1B8 0026C0F8 FC 20 F8 90 */ fmr f1, f31 -/* 8026F1BC 0026C0FC 48 00 00 3D */ bl SetH__8cM3dGCylFf -/* 8026F1C0 0026C100 CB E1 00 18 */ lfd f31, 0x18(r1) -/* 8026F1C4 0026C104 CB C1 00 10 */ lfd f30, 0x10(r1) -/* 8026F1C8 0026C108 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 8026F1CC 0026C10C 80 01 00 24 */ lwz r0, 0x24(r1) -/* 8026F1D0 0026C110 7C 08 03 A6 */ mtlr r0 -/* 8026F1D4 0026C114 38 21 00 20 */ addi r1, r1, 0x20 -/* 8026F1D8 0026C118 4E 80 00 20 */ blr diff --git a/include/SComponent/c_m3d_g_cyl/asm/func_8026F1DC.s b/include/SComponent/c_m3d_g_cyl/asm/func_8026F1DC.s deleted file mode 100644 index 990e8af2d7e..00000000000 --- a/include/SComponent/c_m3d_g_cyl/asm/func_8026F1DC.s +++ /dev/null @@ -1,7 +0,0 @@ -/* 8026F1DC 0026C11C C0 04 00 00 */ lfs f0, 0(r4) -/* 8026F1E0 0026C120 D0 03 00 00 */ stfs f0, 0(r3) -/* 8026F1E4 0026C124 C0 04 00 04 */ lfs f0, 4(r4) -/* 8026F1E8 0026C128 D0 03 00 04 */ stfs f0, 4(r3) -/* 8026F1EC 0026C12C C0 04 00 08 */ lfs f0, 8(r4) -/* 8026F1F0 0026C130 D0 03 00 08 */ stfs f0, 8(r3) -/* 8026F1F4 0026C134 4E 80 00 20 */ blr diff --git a/include/SComponent/c_m3d_g_cyl/asm/func_8026F1F8.s b/include/SComponent/c_m3d_g_cyl/asm/func_8026F1F8.s deleted file mode 100644 index 16de3d7eede..00000000000 --- a/include/SComponent/c_m3d_g_cyl/asm/func_8026F1F8.s +++ /dev/null @@ -1,2 +0,0 @@ -/* 8026F1F8 0026C138 D0 23 00 10 */ stfs f1, 0x10(r3) -/* 8026F1FC 0026C13C 4E 80 00 20 */ blr diff --git a/include/SComponent/c_m3d_g_cyl/asm/func_8026F200.s b/include/SComponent/c_m3d_g_cyl/asm/func_8026F200.s deleted file mode 100644 index de03746cb86..00000000000 --- a/include/SComponent/c_m3d_g_cyl/asm/func_8026F200.s +++ /dev/null @@ -1,2 +0,0 @@ -/* 8026F200 0026C140 D0 23 00 0C */ stfs f1, 0xc(r3) -/* 8026F204 0026C144 4E 80 00 20 */ blr diff --git a/include/SComponent/c_m3d_g_cyl/asm/func_8026F208.s b/include/SComponent/c_m3d_g_cyl/asm/func_8026F208.s deleted file mode 100644 index 4b0d1fbbaf3..00000000000 --- a/include/SComponent/c_m3d_g_cyl/asm/func_8026F208.s +++ /dev/null @@ -1,9 +0,0 @@ -/* 8026F208 0026C148 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8026F20C 0026C14C 7C 08 02 A6 */ mflr r0 -/* 8026F210 0026C150 90 01 00 14 */ stw r0, 0x14(r1) -/* 8026F214 0026C154 38 C1 00 08 */ addi r6, r1, 8 -/* 8026F218 0026C158 4B FF C8 31 */ bl cM3d_Cross_CylSph__FPC8cM3dGCylPC8cM3dGSphP3VecPf -/* 8026F21C 0026C15C 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8026F220 0026C160 7C 08 03 A6 */ mtlr r0 -/* 8026F224 0026C164 38 21 00 10 */ addi r1, r1, 0x10 -/* 8026F228 0026C168 4E 80 00 20 */ blr diff --git a/include/SComponent/c_m3d_g_cyl/asm/func_8026F22C.s b/include/SComponent/c_m3d_g_cyl/asm/func_8026F22C.s deleted file mode 100644 index f57e724af57..00000000000 --- a/include/SComponent/c_m3d_g_cyl/asm/func_8026F22C.s +++ /dev/null @@ -1,8 +0,0 @@ -/* 8026F22C 0026C16C 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8026F230 0026C170 7C 08 02 A6 */ mflr r0 -/* 8026F234 0026C174 90 01 00 14 */ stw r0, 0x14(r1) -/* 8026F238 0026C178 4B FF D1 7D */ bl cM3d_Cross_CylCyl__FPC8cM3dGCylPC8cM3dGCylP3Vec -/* 8026F23C 0026C17C 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8026F240 0026C180 7C 08 03 A6 */ mtlr r0 -/* 8026F244 0026C184 38 21 00 10 */ addi r1, r1, 0x10 -/* 8026F248 0026C188 4E 80 00 20 */ blr diff --git a/include/SComponent/c_m3d_g_cyl/asm/func_8026F24C.s b/include/SComponent/c_m3d_g_cyl/asm/func_8026F24C.s deleted file mode 100644 index b8004544043..00000000000 --- a/include/SComponent/c_m3d_g_cyl/asm/func_8026F24C.s +++ /dev/null @@ -1,23 +0,0 @@ -/* 8026F24C 0026C18C C0 23 00 00 */ lfs f1, 0(r3) -/* 8026F250 0026C190 C0 03 00 0C */ lfs f0, 0xc(r3) -/* 8026F254 0026C194 EC 01 00 28 */ fsubs f0, f1, f0 -/* 8026F258 0026C198 D0 04 00 00 */ stfs f0, 0(r4) -/* 8026F25C 0026C19C C0 03 00 04 */ lfs f0, 4(r3) -/* 8026F260 0026C1A0 D0 04 00 04 */ stfs f0, 4(r4) -/* 8026F264 0026C1A4 C0 23 00 08 */ lfs f1, 8(r3) -/* 8026F268 0026C1A8 C0 03 00 0C */ lfs f0, 0xc(r3) -/* 8026F26C 0026C1AC EC 01 00 28 */ fsubs f0, f1, f0 -/* 8026F270 0026C1B0 D0 04 00 08 */ stfs f0, 8(r4) -/* 8026F274 0026C1B4 C0 23 00 00 */ lfs f1, 0(r3) -/* 8026F278 0026C1B8 C0 03 00 0C */ lfs f0, 0xc(r3) -/* 8026F27C 0026C1BC EC 01 00 2A */ fadds f0, f1, f0 -/* 8026F280 0026C1C0 D0 05 00 00 */ stfs f0, 0(r5) -/* 8026F284 0026C1C4 C0 23 00 04 */ lfs f1, 4(r3) -/* 8026F288 0026C1C8 C0 03 00 10 */ lfs f0, 0x10(r3) -/* 8026F28C 0026C1CC EC 01 00 2A */ fadds f0, f1, f0 -/* 8026F290 0026C1D0 D0 05 00 04 */ stfs f0, 4(r5) -/* 8026F294 0026C1D4 C0 23 00 08 */ lfs f1, 8(r3) -/* 8026F298 0026C1D8 C0 03 00 0C */ lfs f0, 0xc(r3) -/* 8026F29C 0026C1DC EC 01 00 2A */ fadds f0, f1, f0 -/* 8026F2A0 0026C1E0 D0 05 00 08 */ stfs f0, 8(r5) -/* 8026F2A4 0026C1E4 4E 80 00 20 */ blr \ No newline at end of file diff --git a/include/SComponent/c_m3d_g_lin.h b/include/SComponent/c_m3d_g_lin.h index 4c37a9d2473..9916282f9c9 100644 --- a/include/SComponent/c_m3d_g_lin.h +++ b/include/SComponent/c_m3d_g_lin.h @@ -4,13 +4,25 @@ #include "SComponent/c_xyz.h" #include "global.h" +// Line class cM3dGLin { + // private: public: + cXyz mStart; + cXyz mEnd; + + cM3dGLin() {} cM3dGLin(const cXyz&, const cXyz&); + virtual ~cM3dGLin() {} void SetStartEnd(const cXyz&, const cXyz&); void SetStartEnd(const Vec&, const Vec&); - void CalcPos(Vec*, float) const; + void CalcPos(Vec*, f32) const; + void CalcVec(Vec* pOut) const { PSVECSubtract(&this->mEnd, &this->mStart, pOut); } void SetEnd(const cXyz&); + const cXyz& GetStartP(void) const { return mStart; } + cXyz& GetStartP(void) { return mStart; } + const cXyz& GetEndP(void) const { return mEnd; } + cXyz& GetEndP(void) { return mEnd; } }; #endif \ No newline at end of file diff --git a/include/SComponent/c_m3d_g_lin/asm/func_8026F2A8.s b/include/SComponent/c_m3d_g_lin/asm/func_8026F2A8.s deleted file mode 100644 index 5cd73c667f2..00000000000 --- a/include/SComponent/c_m3d_g_lin/asm/func_8026F2A8.s +++ /dev/null @@ -1,16 +0,0 @@ -/* 8026F2A8 0026C1E8 3C C0 80 3A */ lis r6, lbl_803A78F8@ha -/* 8026F2AC 0026C1EC 38 06 78 F8 */ addi r0, r6, lbl_803A78F8@l -/* 8026F2B0 0026C1F0 90 03 00 18 */ stw r0, 0x18(r3) -/* 8026F2B4 0026C1F4 C0 04 00 00 */ lfs f0, 0(r4) -/* 8026F2B8 0026C1F8 D0 03 00 00 */ stfs f0, 0(r3) -/* 8026F2BC 0026C1FC C0 04 00 04 */ lfs f0, 4(r4) -/* 8026F2C0 0026C200 D0 03 00 04 */ stfs f0, 4(r3) -/* 8026F2C4 0026C204 C0 04 00 08 */ lfs f0, 8(r4) -/* 8026F2C8 0026C208 D0 03 00 08 */ stfs f0, 8(r3) -/* 8026F2CC 0026C20C C0 05 00 00 */ lfs f0, 0(r5) -/* 8026F2D0 0026C210 D0 03 00 0C */ stfs f0, 0xc(r3) -/* 8026F2D4 0026C214 C0 05 00 04 */ lfs f0, 4(r5) -/* 8026F2D8 0026C218 D0 03 00 10 */ stfs f0, 0x10(r3) -/* 8026F2DC 0026C21C C0 05 00 08 */ lfs f0, 8(r5) -/* 8026F2E0 0026C220 D0 03 00 14 */ stfs f0, 0x14(r3) -/* 8026F2E4 0026C224 4E 80 00 20 */ blr diff --git a/include/SComponent/c_m3d_g_lin/asm/func_8026F2E8.s b/include/SComponent/c_m3d_g_lin/asm/func_8026F2E8.s deleted file mode 100644 index 2406f3ebdd8..00000000000 --- a/include/SComponent/c_m3d_g_lin/asm/func_8026F2E8.s +++ /dev/null @@ -1,13 +0,0 @@ -/* 8026F2E8 0026C228 C0 04 00 00 */ lfs f0, 0(r4) -/* 8026F2EC 0026C22C D0 03 00 00 */ stfs f0, 0(r3) -/* 8026F2F0 0026C230 C0 04 00 04 */ lfs f0, 4(r4) -/* 8026F2F4 0026C234 D0 03 00 04 */ stfs f0, 4(r3) -/* 8026F2F8 0026C238 C0 04 00 08 */ lfs f0, 8(r4) -/* 8026F2FC 0026C23C D0 03 00 08 */ stfs f0, 8(r3) -/* 8026F300 0026C240 C0 05 00 00 */ lfs f0, 0(r5) -/* 8026F304 0026C244 D0 03 00 0C */ stfs f0, 0xc(r3) -/* 8026F308 0026C248 C0 05 00 04 */ lfs f0, 4(r5) -/* 8026F30C 0026C24C D0 03 00 10 */ stfs f0, 0x10(r3) -/* 8026F310 0026C250 C0 05 00 08 */ lfs f0, 8(r5) -/* 8026F314 0026C254 D0 03 00 14 */ stfs f0, 0x14(r3) -/* 8026F318 0026C258 4E 80 00 20 */ blr diff --git a/include/SComponent/c_m3d_g_lin/asm/func_8026F31C.s b/include/SComponent/c_m3d_g_lin/asm/func_8026F31C.s deleted file mode 100644 index d3a8ef59b8d..00000000000 --- a/include/SComponent/c_m3d_g_lin/asm/func_8026F31C.s +++ /dev/null @@ -1,13 +0,0 @@ -/* 8026F31C 0026C25C C0 04 00 00 */ lfs f0, 0(r4) -/* 8026F320 0026C260 D0 03 00 00 */ stfs f0, 0(r3) -/* 8026F324 0026C264 C0 04 00 04 */ lfs f0, 4(r4) -/* 8026F328 0026C268 D0 03 00 04 */ stfs f0, 4(r3) -/* 8026F32C 0026C26C C0 04 00 08 */ lfs f0, 8(r4) -/* 8026F330 0026C270 D0 03 00 08 */ stfs f0, 8(r3) -/* 8026F334 0026C274 C0 05 00 00 */ lfs f0, 0(r5) -/* 8026F338 0026C278 D0 03 00 0C */ stfs f0, 0xc(r3) -/* 8026F33C 0026C27C C0 05 00 04 */ lfs f0, 4(r5) -/* 8026F340 0026C280 D0 03 00 10 */ stfs f0, 0x10(r3) -/* 8026F344 0026C284 C0 05 00 08 */ lfs f0, 8(r5) -/* 8026F348 0026C288 D0 03 00 14 */ stfs f0, 0x14(r3) -/* 8026F34C 0026C28C 4E 80 00 20 */ blr diff --git a/include/SComponent/c_m3d_g_lin/asm/func_8026F350.s b/include/SComponent/c_m3d_g_lin/asm/func_8026F350.s deleted file mode 100644 index 9dc6d718a55..00000000000 --- a/include/SComponent/c_m3d_g_lin/asm/func_8026F350.s +++ /dev/null @@ -1,28 +0,0 @@ -/* 8026F350 0026C290 94 21 FF D0 */ stwu r1, -0x30(r1) -/* 8026F354 0026C294 7C 08 02 A6 */ mflr r0 -/* 8026F358 0026C298 90 01 00 34 */ stw r0, 0x34(r1) -/* 8026F35C 0026C29C DB E1 00 28 */ stfd f31, 0x28(r1) -/* 8026F360 0026C2A0 93 E1 00 24 */ stw r31, 0x24(r1) -/* 8026F364 0026C2A4 93 C1 00 20 */ stw r30, 0x20(r1) -/* 8026F368 0026C2A8 7C 7E 1B 78 */ mr r30, r3 -/* 8026F36C 0026C2AC 7C 9F 23 78 */ mr r31, r4 -/* 8026F370 0026C2B0 FF E0 08 90 */ fmr f31, f1 -/* 8026F374 0026C2B4 38 7E 00 0C */ addi r3, r30, 0xc -/* 8026F378 0026C2B8 7F C4 F3 78 */ mr r4, r30 -/* 8026F37C 0026C2BC 38 A1 00 08 */ addi r5, r1, 8 -/* 8026F380 0026C2C0 48 0D 7D 35 */ bl PSVECSubtract -/* 8026F384 0026C2C4 38 61 00 08 */ addi r3, r1, 8 -/* 8026F388 0026C2C8 7C 64 1B 78 */ mr r4, r3 -/* 8026F38C 0026C2CC FC 20 F8 90 */ fmr f1, f31 -/* 8026F390 0026C2D0 48 0D 7D 49 */ bl PSVECScale -/* 8026F394 0026C2D4 38 61 00 08 */ addi r3, r1, 8 -/* 8026F398 0026C2D8 7F C4 F3 78 */ mr r4, r30 -/* 8026F39C 0026C2DC 7F E5 FB 78 */ mr r5, r31 -/* 8026F3A0 0026C2E0 48 0D 7C F1 */ bl PSVECAdd -/* 8026F3A4 0026C2E4 CB E1 00 28 */ lfd f31, 0x28(r1) -/* 8026F3A8 0026C2E8 83 E1 00 24 */ lwz r31, 0x24(r1) -/* 8026F3AC 0026C2EC 83 C1 00 20 */ lwz r30, 0x20(r1) -/* 8026F3B0 0026C2F0 80 01 00 34 */ lwz r0, 0x34(r1) -/* 8026F3B4 0026C2F4 7C 08 03 A6 */ mtlr r0 -/* 8026F3B8 0026C2F8 38 21 00 30 */ addi r1, r1, 0x30 -/* 8026F3BC 0026C2FC 4E 80 00 20 */ blr diff --git a/include/SComponent/c_m3d_g_lin/asm/func_8026F3C0.s b/include/SComponent/c_m3d_g_lin/asm/func_8026F3C0.s deleted file mode 100644 index f16f3bd6e5d..00000000000 --- a/include/SComponent/c_m3d_g_lin/asm/func_8026F3C0.s +++ /dev/null @@ -1,7 +0,0 @@ -/* 8026F3C0 0026C300 C0 04 00 00 */ lfs f0, 0(r4) -/* 8026F3C4 0026C304 D0 03 00 0C */ stfs f0, 0xc(r3) -/* 8026F3C8 0026C308 C0 04 00 04 */ lfs f0, 4(r4) -/* 8026F3CC 0026C30C D0 03 00 10 */ stfs f0, 0x10(r3) -/* 8026F3D0 0026C310 C0 04 00 08 */ lfs f0, 8(r4) -/* 8026F3D4 0026C314 D0 03 00 14 */ stfs f0, 0x14(r3) -/* 8026F3D8 0026C318 4E 80 00 20 */ blr \ No newline at end of file diff --git a/include/SComponent/c_m3d_g_pla.h b/include/SComponent/c_m3d_g_pla.h index 9a7042ab151..5d440dfc232 100644 --- a/include/SComponent/c_m3d_g_pla.h +++ b/include/SComponent/c_m3d_g_pla.h @@ -4,15 +4,22 @@ #include "SComponent/c_xyz.h" #include "global.h" +// Plane with a normal class cM3dGPla { public: - cM3dGPla(const cXyz*, float); - void crossInfLin(const cXyz&, const cXyz&, cXyz&) const; + cXyz mNormal; + f32 mD; + cM3dGPla(const cXyz*, f32); + virtual ~cM3dGPla(); + bool crossInfLin(const cXyz&, const cXyz&, cXyz&) const; void SetupNP0(const Vec&, const Vec&); void SetupNP(const Vec&, const Vec&); - bool getCrossY(const cXyz&, float*) const; - bool getCrossYLessD(const Vec&, float*) const; + bool getCrossY(const cXyz&, f32*) const; + bool getCrossYLessD(const Vec&, f32*) const; void Set(const cM3dGPla*); + f32 getPlaneFunc(const Vec* pPoint) const { return mD + PSVECDotProduct(&mNormal, pPoint); } + const cXyz& GetNP() const { return mNormal; } + f32 GetD() const { return mD; } }; #endif \ No newline at end of file diff --git a/include/SComponent/c_m3d_g_pla/asm/func_8026F3DC.s b/include/SComponent/c_m3d_g_pla/asm/func_8026F3DC.s deleted file mode 100644 index ddbce712ac9..00000000000 --- a/include/SComponent/c_m3d_g_pla/asm/func_8026F3DC.s +++ /dev/null @@ -1,11 +0,0 @@ -/* 8026F3DC 0026C31C 3C A0 80 3A */ lis r5, lbl_803A37C0@ha -/* 8026F3E0 0026C320 38 05 37 C0 */ addi r0, r5, lbl_803A37C0@l -/* 8026F3E4 0026C324 90 03 00 10 */ stw r0, 0x10(r3) -/* 8026F3E8 0026C328 C0 04 00 00 */ lfs f0, 0(r4) -/* 8026F3EC 0026C32C D0 03 00 00 */ stfs f0, 0(r3) -/* 8026F3F0 0026C330 C0 04 00 04 */ lfs f0, 4(r4) -/* 8026F3F4 0026C334 D0 03 00 04 */ stfs f0, 4(r3) -/* 8026F3F8 0026C338 C0 04 00 08 */ lfs f0, 8(r4) -/* 8026F3FC 0026C33C D0 03 00 08 */ stfs f0, 8(r3) -/* 8026F400 0026C340 D0 23 00 0C */ stfs f1, 0xc(r3) -/* 8026F404 0026C344 4E 80 00 20 */ blr diff --git a/include/SComponent/c_m3d_g_pla/asm/func_8026F408.s b/include/SComponent/c_m3d_g_pla/asm/func_8026F408.s deleted file mode 100644 index 6b96452223b..00000000000 --- a/include/SComponent/c_m3d_g_pla/asm/func_8026F408.s +++ /dev/null @@ -1,49 +0,0 @@ -/* 8026F408 0026C348 94 21 FF D0 */ stwu r1, -0x30(r1) -/* 8026F40C 0026C34C 7C 08 02 A6 */ mflr r0 -/* 8026F410 0026C350 90 01 00 34 */ stw r0, 0x34(r1) -/* 8026F414 0026C354 DB E1 00 20 */ stfd f31, 0x20(r1) -/* 8026F418 0026C358 F3 E1 00 28 */ psq_st f31, 40(r1), 0, 0 -/* 8026F41C 0026C35C 39 61 00 20 */ addi r11, r1, 0x20 -/* 8026F420 0026C360 48 0F 2D B9 */ bl _savegpr_28 -/* 8026F424 0026C364 7C 7C 1B 78 */ mr r28, r3 -/* 8026F428 0026C368 7C 9D 23 78 */ mr r29, r4 -/* 8026F42C 0026C36C 7C BE 2B 78 */ mr r30, r5 -/* 8026F430 0026C370 7C DF 33 78 */ mr r31, r6 -/* 8026F434 0026C374 48 0D 7D 61 */ bl PSVECDotProduct -/* 8026F438 0026C378 C0 1C 00 0C */ lfs f0, 0xc(r28) -/* 8026F43C 0026C37C EF E0 08 2A */ fadds f31, f0, f1 -/* 8026F440 0026C380 7F 83 E3 78 */ mr r3, r28 -/* 8026F444 0026C384 7F C4 F3 78 */ mr r4, r30 -/* 8026F448 0026C388 48 0D 7D 4D */ bl PSVECDotProduct -/* 8026F44C 0026C38C C0 1C 00 0C */ lfs f0, 0xc(r28) -/* 8026F450 0026C390 EC 00 08 2A */ fadds f0, f0, f1 -/* 8026F454 0026C394 EC 5F 00 28 */ fsubs f2, f31, f0 -/* 8026F458 0026C398 FC 00 12 10 */ fabs f0, f2 -/* 8026F45C 0026C39C FC 20 00 18 */ frsp f1, f0 -/* 8026F460 0026C3A0 C0 0D 8C 00 */ lfs f0, lbl_80451180-_SDA_BASE_(r13) -/* 8026F464 0026C3A4 FC 01 00 40 */ fcmpo cr0, f1, f0 -/* 8026F468 0026C3A8 40 80 00 24 */ bge lbl_8026F48C -/* 8026F46C 0026C3AC C0 1E 00 00 */ lfs f0, 0(r30) -/* 8026F470 0026C3B0 D0 1F 00 00 */ stfs f0, 0(r31) -/* 8026F474 0026C3B4 C0 1E 00 04 */ lfs f0, 4(r30) -/* 8026F478 0026C3B8 D0 1F 00 04 */ stfs f0, 4(r31) -/* 8026F47C 0026C3BC C0 1E 00 08 */ lfs f0, 8(r30) -/* 8026F480 0026C3C0 D0 1F 00 08 */ stfs f0, 8(r31) -/* 8026F484 0026C3C4 38 60 00 00 */ li r3, 0 -/* 8026F488 0026C3C8 48 00 00 1C */ b lbl_8026F4A4 -lbl_8026F48C: -/* 8026F48C 0026C3CC 7F A3 EB 78 */ mr r3, r29 -/* 8026F490 0026C3D0 7F C4 F3 78 */ mr r4, r30 -/* 8026F494 0026C3D4 EC 3F 10 24 */ fdivs f1, f31, f2 -/* 8026F498 0026C3D8 7F E5 FB 78 */ mr r5, r31 -/* 8026F49C 0026C3DC 4B FF 91 15 */ bl cM3d_InDivPos2__FPC3VecPC3VecfP3Vec -/* 8026F4A0 0026C3E0 38 60 00 01 */ li r3, 1 -lbl_8026F4A4: -/* 8026F4A4 0026C3E4 E3 E1 00 28 */ psq_l f31, 40(r1), 0, 0 -/* 8026F4A8 0026C3E8 CB E1 00 20 */ lfd f31, 0x20(r1) -/* 8026F4AC 0026C3EC 39 61 00 20 */ addi r11, r1, 0x20 -/* 8026F4B0 0026C3F0 48 0F 2D 75 */ bl _restgpr_28 -/* 8026F4B4 0026C3F4 80 01 00 34 */ lwz r0, 0x34(r1) -/* 8026F4B8 0026C3F8 7C 08 03 A6 */ mtlr r0 -/* 8026F4BC 0026C3FC 38 21 00 30 */ addi r1, r1, 0x30 -/* 8026F4C0 0026C400 4E 80 00 20 */ blr diff --git a/include/SComponent/c_m3d_g_pla/asm/func_8026F4C4.s b/include/SComponent/c_m3d_g_pla/asm/func_8026F4C4.s deleted file mode 100644 index 11d6e5523ed..00000000000 --- a/include/SComponent/c_m3d_g_pla/asm/func_8026F4C4.s +++ /dev/null @@ -1,26 +0,0 @@ -/* 8026F4C4 0026C404 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8026F4C8 0026C408 7C 08 02 A6 */ mflr r0 -/* 8026F4CC 0026C40C 90 01 00 14 */ stw r0, 0x14(r1) -/* 8026F4D0 0026C410 93 E1 00 0C */ stw r31, 0xc(r1) -/* 8026F4D4 0026C414 93 C1 00 08 */ stw r30, 8(r1) -/* 8026F4D8 0026C418 7C 7E 1B 78 */ mr r30, r3 -/* 8026F4DC 0026C41C 7C BF 2B 78 */ mr r31, r5 -/* 8026F4E0 0026C420 C0 04 00 00 */ lfs f0, 0(r4) -/* 8026F4E4 0026C424 D0 03 00 00 */ stfs f0, 0(r3) -/* 8026F4E8 0026C428 C0 04 00 04 */ lfs f0, 4(r4) -/* 8026F4EC 0026C42C D0 03 00 04 */ stfs f0, 4(r3) -/* 8026F4F0 0026C430 C0 04 00 08 */ lfs f0, 8(r4) -/* 8026F4F4 0026C434 D0 03 00 08 */ stfs f0, 8(r3) -/* 8026F4F8 0026C438 7F C4 F3 78 */ mr r4, r30 -/* 8026F4FC 0026C43C 48 0D 7B F9 */ bl PSVECNormalize -/* 8026F500 0026C440 7F C3 F3 78 */ mr r3, r30 -/* 8026F504 0026C444 7F E4 FB 78 */ mr r4, r31 -/* 8026F508 0026C448 48 0D 7C 8D */ bl PSVECDotProduct -/* 8026F50C 0026C44C FC 00 08 50 */ fneg f0, f1 -/* 8026F510 0026C450 D0 1E 00 0C */ stfs f0, 0xc(r30) -/* 8026F514 0026C454 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 8026F518 0026C458 83 C1 00 08 */ lwz r30, 8(r1) -/* 8026F51C 0026C45C 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8026F520 0026C460 7C 08 03 A6 */ mtlr r0 -/* 8026F524 0026C464 38 21 00 10 */ addi r1, r1, 0x10 -/* 8026F528 0026C468 4E 80 00 20 */ blr diff --git a/include/SComponent/c_m3d_g_pla/asm/func_8026F52C.s b/include/SComponent/c_m3d_g_pla/asm/func_8026F52C.s deleted file mode 100644 index 071828b3594..00000000000 --- a/include/SComponent/c_m3d_g_pla/asm/func_8026F52C.s +++ /dev/null @@ -1,20 +0,0 @@ -/* 8026F52C 0026C46C 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8026F530 0026C470 7C 08 02 A6 */ mflr r0 -/* 8026F534 0026C474 90 01 00 14 */ stw r0, 0x14(r1) -/* 8026F538 0026C478 93 E1 00 0C */ stw r31, 0xc(r1) -/* 8026F53C 0026C47C 7C 7F 1B 78 */ mr r31, r3 -/* 8026F540 0026C480 C0 04 00 00 */ lfs f0, 0(r4) -/* 8026F544 0026C484 D0 03 00 00 */ stfs f0, 0(r3) -/* 8026F548 0026C488 C0 04 00 04 */ lfs f0, 4(r4) -/* 8026F54C 0026C48C D0 03 00 04 */ stfs f0, 4(r3) -/* 8026F550 0026C490 C0 04 00 08 */ lfs f0, 8(r4) -/* 8026F554 0026C494 D0 03 00 08 */ stfs f0, 8(r3) -/* 8026F558 0026C498 7C A4 2B 78 */ mr r4, r5 -/* 8026F55C 0026C49C 48 0D 7C 39 */ bl PSVECDotProduct -/* 8026F560 0026C4A0 FC 00 08 50 */ fneg f0, f1 -/* 8026F564 0026C4A4 D0 1F 00 0C */ stfs f0, 0xc(r31) -/* 8026F568 0026C4A8 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 8026F56C 0026C4AC 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8026F570 0026C4B0 7C 08 03 A6 */ mtlr r0 -/* 8026F574 0026C4B4 38 21 00 10 */ addi r1, r1, 0x10 -/* 8026F578 0026C4B8 4E 80 00 20 */ blr diff --git a/include/SComponent/c_m3d_g_pla/asm/func_8026F57C.s b/include/SComponent/c_m3d_g_pla/asm/func_8026F57C.s deleted file mode 100644 index 8332636f233..00000000000 --- a/include/SComponent/c_m3d_g_pla/asm/func_8026F57C.s +++ /dev/null @@ -1,23 +0,0 @@ -/* 8026F57C 0026C4BC C0 63 00 04 */ lfs f3, 4(r3) -/* 8026F580 0026C4C0 FC 00 1A 10 */ fabs f0, f3 -/* 8026F584 0026C4C4 FC 20 00 18 */ frsp f1, f0 -/* 8026F588 0026C4C8 C0 0D 8C 00 */ lfs f0, lbl_80451180-_SDA_BASE_(r13) -/* 8026F58C 0026C4CC FC 01 00 40 */ fcmpo cr0, f1, f0 -/* 8026F590 0026C4D0 40 80 00 0C */ bge lbl_8026F59C -/* 8026F594 0026C4D4 38 60 00 00 */ li r3, 0 -/* 8026F598 0026C4D8 4E 80 00 20 */ blr -lbl_8026F59C: -/* 8026F59C 0026C4DC C0 03 00 00 */ lfs f0, 0(r3) -/* 8026F5A0 0026C4E0 FC 20 00 50 */ fneg f1, f0 -/* 8026F5A4 0026C4E4 C0 04 00 00 */ lfs f0, 0(r4) -/* 8026F5A8 0026C4E8 EC 41 00 32 */ fmuls f2, f1, f0 -/* 8026F5AC 0026C4EC C0 23 00 08 */ lfs f1, 8(r3) -/* 8026F5B0 0026C4F0 C0 04 00 08 */ lfs f0, 8(r4) -/* 8026F5B4 0026C4F4 EC 01 00 32 */ fmuls f0, f1, f0 -/* 8026F5B8 0026C4F8 EC 22 00 28 */ fsubs f1, f2, f0 -/* 8026F5BC 0026C4FC C0 03 00 0C */ lfs f0, 0xc(r3) -/* 8026F5C0 0026C500 EC 01 00 28 */ fsubs f0, f1, f0 -/* 8026F5C4 0026C504 EC 00 18 24 */ fdivs f0, f0, f3 -/* 8026F5C8 0026C508 D0 05 00 00 */ stfs f0, 0(r5) -/* 8026F5CC 0026C50C 38 60 00 01 */ li r3, 1 -/* 8026F5D0 0026C510 4E 80 00 20 */ blr diff --git a/include/SComponent/c_m3d_g_pla/asm/func_8026F5D4.s b/include/SComponent/c_m3d_g_pla/asm/func_8026F5D4.s deleted file mode 100644 index 40b9cc44528..00000000000 --- a/include/SComponent/c_m3d_g_pla/asm/func_8026F5D4.s +++ /dev/null @@ -1,21 +0,0 @@ -/* 8026F5D4 0026C514 C0 63 00 04 */ lfs f3, 4(r3) -/* 8026F5D8 0026C518 FC 00 1A 10 */ fabs f0, f3 -/* 8026F5DC 0026C51C FC 20 00 18 */ frsp f1, f0 -/* 8026F5E0 0026C520 C0 0D 8C 00 */ lfs f0, lbl_80451180-_SDA_BASE_(r13) -/* 8026F5E4 0026C524 FC 01 00 40 */ fcmpo cr0, f1, f0 -/* 8026F5E8 0026C528 40 80 00 0C */ bge lbl_8026F5F4 -/* 8026F5EC 0026C52C 38 60 00 00 */ li r3, 0 -/* 8026F5F0 0026C530 4E 80 00 20 */ blr -lbl_8026F5F4: -/* 8026F5F4 0026C534 C0 03 00 00 */ lfs f0, 0(r3) -/* 8026F5F8 0026C538 FC 20 00 50 */ fneg f1, f0 -/* 8026F5FC 0026C53C C0 04 00 00 */ lfs f0, 0(r4) -/* 8026F600 0026C540 EC 41 00 32 */ fmuls f2, f1, f0 -/* 8026F604 0026C544 C0 23 00 08 */ lfs f1, 8(r3) -/* 8026F608 0026C548 C0 04 00 08 */ lfs f0, 8(r4) -/* 8026F60C 0026C54C EC 01 00 32 */ fmuls f0, f1, f0 -/* 8026F610 0026C550 EC 02 00 28 */ fsubs f0, f2, f0 -/* 8026F614 0026C554 EC 00 18 24 */ fdivs f0, f0, f3 -/* 8026F618 0026C558 D0 05 00 00 */ stfs f0, 0(r5) -/* 8026F61C 0026C55C 38 60 00 01 */ li r3, 1 -/* 8026F620 0026C560 4E 80 00 20 */ blr diff --git a/include/SComponent/c_m3d_g_pla/asm/func_8026F624.s b/include/SComponent/c_m3d_g_pla/asm/func_8026F624.s deleted file mode 100644 index 67bc63ec154..00000000000 --- a/include/SComponent/c_m3d_g_pla/asm/func_8026F624.s +++ /dev/null @@ -1,9 +0,0 @@ -/* 8026F624 0026C564 C0 04 00 00 */ lfs f0, 0(r4) -/* 8026F628 0026C568 D0 03 00 00 */ stfs f0, 0(r3) -/* 8026F62C 0026C56C C0 04 00 04 */ lfs f0, 4(r4) -/* 8026F630 0026C570 D0 03 00 04 */ stfs f0, 4(r3) -/* 8026F634 0026C574 C0 04 00 08 */ lfs f0, 8(r4) -/* 8026F638 0026C578 D0 03 00 08 */ stfs f0, 8(r3) -/* 8026F63C 0026C57C C0 04 00 0C */ lfs f0, 0xc(r4) -/* 8026F640 0026C580 D0 03 00 0C */ stfs f0, 0xc(r3) -/* 8026F644 0026C584 4E 80 00 20 */ blr \ No newline at end of file diff --git a/include/SComponent/c_m3d_g_sph.h b/include/SComponent/c_m3d_g_sph.h index 0ee96bfd7b9..39cb80c6681 100644 --- a/include/SComponent/c_m3d_g_sph.h +++ b/include/SComponent/c_m3d_g_sph.h @@ -5,17 +5,29 @@ #include "SComponent/c_xyz.h" #include "global.h" -struct cM3dGSphS; +struct cM3dGSphS { + Vec mCenter; + f32 mRadius; +}; class cM3dGSph { +private: public: + cXyz mCenter; + f32 mRadius; + void SetC(const cXyz&); - void Set(const cXyz&, float); + void Set(const cXyz&, f32); void Set(const cM3dGSphS&); - void SetR(float); + void SetR(f32); bool cross(const cM3dGSph*, cXyz*) const; bool cross(const cM3dGCyl*, cXyz*) const; void GetMinMaxCube(cXyz&, cXyz&) const; + const cXyz& GetC(void) const { return mCenter; } + const f32 GetR(void) const { return mRadius; } + f32 GetCX(void) const { return mCenter.GetX(); } + f32 GetCY(void) const { return mCenter.GetY(); } + f32 GetCZ(void) const { return mCenter.GetZ(); } }; // additional symbols needed for cM3dGSph diff --git a/include/SComponent/c_m3d_g_sph/asm/func_8026F648.s b/include/SComponent/c_m3d_g_sph/asm/func_8026F648.s deleted file mode 100644 index ccd3e218a09..00000000000 --- a/include/SComponent/c_m3d_g_sph/asm/func_8026F648.s +++ /dev/null @@ -1,7 +0,0 @@ -/* 8026F648 0026C588 C0 04 00 00 */ lfs f0, 0(r4) -/* 8026F64C 0026C58C D0 03 00 00 */ stfs f0, 0(r3) -/* 8026F650 0026C590 C0 04 00 04 */ lfs f0, 4(r4) -/* 8026F654 0026C594 D0 03 00 04 */ stfs f0, 4(r3) -/* 8026F658 0026C598 C0 04 00 08 */ lfs f0, 8(r4) -/* 8026F65C 0026C59C D0 03 00 08 */ stfs f0, 8(r3) -/* 8026F660 0026C5A0 4E 80 00 20 */ blr diff --git a/include/SComponent/c_m3d_g_sph/asm/func_8026F664.s b/include/SComponent/c_m3d_g_sph/asm/func_8026F664.s deleted file mode 100644 index f0bc467d067..00000000000 --- a/include/SComponent/c_m3d_g_sph/asm/func_8026F664.s +++ /dev/null @@ -1,17 +0,0 @@ -/* 8026F664 0026C5A4 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 8026F668 0026C5A8 7C 08 02 A6 */ mflr r0 -/* 8026F66C 0026C5AC 90 01 00 24 */ stw r0, 0x24(r1) -/* 8026F670 0026C5B0 DB E1 00 18 */ stfd f31, 0x18(r1) -/* 8026F674 0026C5B4 93 E1 00 14 */ stw r31, 0x14(r1) -/* 8026F678 0026C5B8 7C 7F 1B 78 */ mr r31, r3 -/* 8026F67C 0026C5BC FF E0 08 90 */ fmr f31, f1 -/* 8026F680 0026C5C0 4B FF FF C9 */ bl SetC__8cM3dGSphFRC4cXyz -/* 8026F684 0026C5C4 7F E3 FB 78 */ mr r3, r31 -/* 8026F688 0026C5C8 FC 20 F8 90 */ fmr f1, f31 -/* 8026F68C 0026C5CC 48 00 00 7D */ bl SetR__8cM3dGSphFf -/* 8026F690 0026C5D0 CB E1 00 18 */ lfd f31, 0x18(r1) -/* 8026F694 0026C5D4 83 E1 00 14 */ lwz r31, 0x14(r1) -/* 8026F698 0026C5D8 80 01 00 24 */ lwz r0, 0x24(r1) -/* 8026F69C 0026C5DC 7C 08 03 A6 */ mtlr r0 -/* 8026F6A0 0026C5E0 38 21 00 20 */ addi r1, r1, 0x20 -/* 8026F6A4 0026C5E4 4E 80 00 20 */ blr diff --git a/include/SComponent/c_m3d_g_sph/asm/func_8026F6A8.s b/include/SComponent/c_m3d_g_sph/asm/func_8026F6A8.s deleted file mode 100644 index 27af44ffe1a..00000000000 --- a/include/SComponent/c_m3d_g_sph/asm/func_8026F6A8.s +++ /dev/null @@ -1,24 +0,0 @@ -/* 8026F6A8 0026C5E8 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 8026F6AC 0026C5EC 7C 08 02 A6 */ mflr r0 -/* 8026F6B0 0026C5F0 90 01 00 24 */ stw r0, 0x24(r1) -/* 8026F6B4 0026C5F4 93 E1 00 1C */ stw r31, 0x1c(r1) -/* 8026F6B8 0026C5F8 93 C1 00 18 */ stw r30, 0x18(r1) -/* 8026F6BC 0026C5FC 7C 7E 1B 78 */ mr r30, r3 -/* 8026F6C0 0026C600 7C 9F 23 78 */ mr r31, r4 -/* 8026F6C4 0026C604 C0 04 00 00 */ lfs f0, 0(r4) -/* 8026F6C8 0026C608 D0 01 00 08 */ stfs f0, 8(r1) -/* 8026F6CC 0026C60C C0 04 00 04 */ lfs f0, 4(r4) -/* 8026F6D0 0026C610 D0 01 00 0C */ stfs f0, 0xc(r1) -/* 8026F6D4 0026C614 C0 04 00 08 */ lfs f0, 8(r4) -/* 8026F6D8 0026C618 D0 01 00 10 */ stfs f0, 0x10(r1) -/* 8026F6DC 0026C61C 38 81 00 08 */ addi r4, r1, 8 -/* 8026F6E0 0026C620 4B FF FF 69 */ bl SetC__8cM3dGSphFRC4cXyz -/* 8026F6E4 0026C624 7F C3 F3 78 */ mr r3, r30 -/* 8026F6E8 0026C628 C0 3F 00 0C */ lfs f1, 0xc(r31) -/* 8026F6EC 0026C62C 48 00 00 1D */ bl SetR__8cM3dGSphFf -/* 8026F6F0 0026C630 83 E1 00 1C */ lwz r31, 0x1c(r1) -/* 8026F6F4 0026C634 83 C1 00 18 */ lwz r30, 0x18(r1) -/* 8026F6F8 0026C638 80 01 00 24 */ lwz r0, 0x24(r1) -/* 8026F6FC 0026C63C 7C 08 03 A6 */ mtlr r0 -/* 8026F700 0026C640 38 21 00 20 */ addi r1, r1, 0x20 -/* 8026F704 0026C644 4E 80 00 20 */ blr diff --git a/include/SComponent/c_m3d_g_sph/asm/func_8026F708.s b/include/SComponent/c_m3d_g_sph/asm/func_8026F708.s deleted file mode 100644 index 519eb584a84..00000000000 --- a/include/SComponent/c_m3d_g_sph/asm/func_8026F708.s +++ /dev/null @@ -1,2 +0,0 @@ -/* 8026F708 0026C648 D0 23 00 0C */ stfs f1, 0xc(r3) -/* 8026F70C 0026C64C 4E 80 00 20 */ blr diff --git a/include/SComponent/c_m3d_g_sph/asm/func_8026F710.s b/include/SComponent/c_m3d_g_sph/asm/func_8026F710.s deleted file mode 100644 index a4817804207..00000000000 --- a/include/SComponent/c_m3d_g_sph/asm/func_8026F710.s +++ /dev/null @@ -1,11 +0,0 @@ -/* 8026F710 0026C650 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8026F714 0026C654 7C 08 02 A6 */ mflr r0 -/* 8026F718 0026C658 90 01 00 14 */ stw r0, 0x14(r1) -/* 8026F71C 0026C65C 7C 60 1B 78 */ mr r0, r3 -/* 8026F720 0026C660 7C 83 23 78 */ mr r3, r4 -/* 8026F724 0026C664 7C 04 03 78 */ mr r4, r0 -/* 8026F728 0026C668 4B FF C6 61 */ bl cM3d_Cross_SphSph__FPC8cM3dGSphPC8cM3dGSphP3Vec -/* 8026F72C 0026C66C 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8026F730 0026C670 7C 08 03 A6 */ mtlr r0 -/* 8026F734 0026C674 38 21 00 10 */ addi r1, r1, 0x10 -/* 8026F738 0026C678 4E 80 00 20 */ blr diff --git a/include/SComponent/c_m3d_g_sph/asm/func_8026F73C.s b/include/SComponent/c_m3d_g_sph/asm/func_8026F73C.s deleted file mode 100644 index 9f6a1ffe976..00000000000 --- a/include/SComponent/c_m3d_g_sph/asm/func_8026F73C.s +++ /dev/null @@ -1,12 +0,0 @@ -/* 8026F73C 0026C67C 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8026F740 0026C680 7C 08 02 A6 */ mflr r0 -/* 8026F744 0026C684 90 01 00 14 */ stw r0, 0x14(r1) -/* 8026F748 0026C688 7C 60 1B 78 */ mr r0, r3 -/* 8026F74C 0026C68C 7C 83 23 78 */ mr r3, r4 -/* 8026F750 0026C690 7C 04 03 78 */ mr r4, r0 -/* 8026F754 0026C694 38 C1 00 08 */ addi r6, r1, 8 -/* 8026F758 0026C698 4B FF C2 F1 */ bl cM3d_Cross_CylSph__FPC8cM3dGCylPC8cM3dGSphP3VecPf -/* 8026F75C 0026C69C 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8026F760 0026C6A0 7C 08 03 A6 */ mtlr r0 -/* 8026F764 0026C6A4 38 21 00 10 */ addi r1, r1, 0x10 -/* 8026F768 0026C6A8 4E 80 00 20 */ blr diff --git a/include/SComponent/c_m3d_g_sph/asm/func_8026F76C.s b/include/SComponent/c_m3d_g_sph/asm/func_8026F76C.s deleted file mode 100644 index fa4e2aa4e48..00000000000 --- a/include/SComponent/c_m3d_g_sph/asm/func_8026F76C.s +++ /dev/null @@ -1,17 +0,0 @@ -/* 8026F76C 0026C6AC C0 83 00 00 */ lfs f4, 0(r3) -/* 8026F770 0026C6B0 C0 63 00 0C */ lfs f3, 0xc(r3) -/* 8026F774 0026C6B4 EC 04 18 28 */ fsubs f0, f4, f3 -/* 8026F778 0026C6B8 D0 04 00 00 */ stfs f0, 0(r4) -/* 8026F77C 0026C6BC C0 43 00 04 */ lfs f2, 4(r3) -/* 8026F780 0026C6C0 EC 02 18 28 */ fsubs f0, f2, f3 -/* 8026F784 0026C6C4 D0 04 00 04 */ stfs f0, 4(r4) -/* 8026F788 0026C6C8 C0 23 00 08 */ lfs f1, 8(r3) -/* 8026F78C 0026C6CC EC 01 18 28 */ fsubs f0, f1, f3 -/* 8026F790 0026C6D0 D0 04 00 08 */ stfs f0, 8(r4) -/* 8026F794 0026C6D4 EC 04 18 2A */ fadds f0, f4, f3 -/* 8026F798 0026C6D8 D0 05 00 00 */ stfs f0, 0(r5) -/* 8026F79C 0026C6DC EC 02 18 2A */ fadds f0, f2, f3 -/* 8026F7A0 0026C6E0 D0 05 00 04 */ stfs f0, 4(r5) -/* 8026F7A4 0026C6E4 EC 01 18 2A */ fadds f0, f1, f3 -/* 8026F7A8 0026C6E8 D0 05 00 08 */ stfs f0, 8(r5) -/* 8026F7AC 0026C6EC 4E 80 00 20 */ blr \ No newline at end of file diff --git a/include/SComponent/c_m3d_g_tri.h b/include/SComponent/c_m3d_g_tri.h index c22783ed506..3d2fdf89c64 100644 --- a/include/SComponent/c_m3d_g_tri.h +++ b/include/SComponent/c_m3d_g_tri.h @@ -7,7 +7,13 @@ #include "global.h" class cM3dGTri { + // private: public: + cM3dGPla mPlane; + cXyz mA; + cXyz mB; + cXyz mC; + bool cross(const cM3dGCyl*, Vec*) const; void setPos(const Vec*, const Vec*, const Vec*); void setBg(const Vec*, const Vec*, const Vec*, const cM3dGPla*); diff --git a/include/SComponent/c_m3d_g_tri/asm/func_8026F7B0.s b/include/SComponent/c_m3d_g_tri/asm/func_8026F7B0.s deleted file mode 100644 index 4fdcdca4a08..00000000000 --- a/include/SComponent/c_m3d_g_tri/asm/func_8026F7B0.s +++ /dev/null @@ -1,11 +0,0 @@ -/* 8026F7B0 0026C6F0 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8026F7B4 0026C6F4 7C 08 02 A6 */ mflr r0 -/* 8026F7B8 0026C6F8 90 01 00 14 */ stw r0, 0x14(r1) -/* 8026F7BC 0026C6FC 7C 60 1B 78 */ mr r0, r3 -/* 8026F7C0 0026C700 7C 83 23 78 */ mr r3, r4 -/* 8026F7C4 0026C704 7C 04 03 78 */ mr r4, r0 -/* 8026F7C8 0026C708 4B FF CE 09 */ bl cM3d_Cross_CylTri__FPC8cM3dGCylPC8cM3dGTriP3Vec -/* 8026F7CC 0026C70C 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8026F7D0 0026C710 7C 08 03 A6 */ mtlr r0 -/* 8026F7D4 0026C714 38 21 00 10 */ addi r1, r1, 0x10 -/* 8026F7D8 0026C718 4E 80 00 20 */ blr \ No newline at end of file diff --git a/include/SComponent/c_m3d_g_tri/asm/func_8026F7DC.s b/include/SComponent/c_m3d_g_tri/asm/func_8026F7DC.s deleted file mode 100644 index 5cff0327afb..00000000000 --- a/include/SComponent/c_m3d_g_tri/asm/func_8026F7DC.s +++ /dev/null @@ -1,32 +0,0 @@ -/* 8026F7DC 0026C71C 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8026F7E0 0026C720 7C 08 02 A6 */ mflr r0 -/* 8026F7E4 0026C724 90 01 00 14 */ stw r0, 0x14(r1) -/* 8026F7E8 0026C728 7C 67 1B 78 */ mr r7, r3 -/* 8026F7EC 0026C72C C0 04 00 00 */ lfs f0, 0(r4) -/* 8026F7F0 0026C730 D0 03 00 14 */ stfs f0, 0x14(r3) -/* 8026F7F4 0026C734 C0 04 00 04 */ lfs f0, 4(r4) -/* 8026F7F8 0026C738 D0 03 00 18 */ stfs f0, 0x18(r3) -/* 8026F7FC 0026C73C C0 04 00 08 */ lfs f0, 8(r4) -/* 8026F800 0026C740 D0 03 00 1C */ stfs f0, 0x1c(r3) -/* 8026F804 0026C744 C0 05 00 00 */ lfs f0, 0(r5) -/* 8026F808 0026C748 D0 03 00 20 */ stfs f0, 0x20(r3) -/* 8026F80C 0026C74C C0 05 00 04 */ lfs f0, 4(r5) -/* 8026F810 0026C750 D0 03 00 24 */ stfs f0, 0x24(r3) -/* 8026F814 0026C754 C0 05 00 08 */ lfs f0, 8(r5) -/* 8026F818 0026C758 D0 03 00 28 */ stfs f0, 0x28(r3) -/* 8026F81C 0026C75C C0 06 00 00 */ lfs f0, 0(r6) -/* 8026F820 0026C760 D0 03 00 2C */ stfs f0, 0x2c(r3) -/* 8026F824 0026C764 C0 06 00 04 */ lfs f0, 4(r6) -/* 8026F828 0026C768 D0 03 00 30 */ stfs f0, 0x30(r3) -/* 8026F82C 0026C76C C0 06 00 08 */ lfs f0, 8(r6) -/* 8026F830 0026C770 D0 03 00 34 */ stfs f0, 0x34(r3) -/* 8026F834 0026C774 38 67 00 14 */ addi r3, r7, 0x14 -/* 8026F838 0026C778 38 87 00 20 */ addi r4, r7, 0x20 -/* 8026F83C 0026C77C 38 A7 00 2C */ addi r5, r7, 0x2c -/* 8026F840 0026C780 7C E6 3B 78 */ mr r6, r7 -/* 8026F844 0026C784 38 E7 00 0C */ addi r7, r7, 0xc -/* 8026F848 0026C788 4B FF 90 D5 */ bl cM3d_CalcPla__FPC3VecPC3VecPC3VecP3VecPf -/* 8026F84C 0026C78C 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8026F850 0026C790 7C 08 03 A6 */ mtlr r0 -/* 8026F854 0026C794 38 21 00 10 */ addi r1, r1, 0x10 -/* 8026F858 0026C798 4E 80 00 20 */ blr diff --git a/include/SComponent/c_m3d_g_tri/asm/func_8026F85C.s b/include/SComponent/c_m3d_g_tri/asm/func_8026F85C.s deleted file mode 100644 index 0a539532213..00000000000 --- a/include/SComponent/c_m3d_g_tri/asm/func_8026F85C.s +++ /dev/null @@ -1,27 +0,0 @@ -/* 8026F85C 0026C79C 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8026F860 0026C7A0 7C 08 02 A6 */ mflr r0 -/* 8026F864 0026C7A4 90 01 00 14 */ stw r0, 0x14(r1) -/* 8026F868 0026C7A8 C0 04 00 00 */ lfs f0, 0(r4) -/* 8026F86C 0026C7AC D0 03 00 14 */ stfs f0, 0x14(r3) -/* 8026F870 0026C7B0 C0 04 00 04 */ lfs f0, 4(r4) -/* 8026F874 0026C7B4 D0 03 00 18 */ stfs f0, 0x18(r3) -/* 8026F878 0026C7B8 C0 04 00 08 */ lfs f0, 8(r4) -/* 8026F87C 0026C7BC D0 03 00 1C */ stfs f0, 0x1c(r3) -/* 8026F880 0026C7C0 C0 05 00 00 */ lfs f0, 0(r5) -/* 8026F884 0026C7C4 D0 03 00 20 */ stfs f0, 0x20(r3) -/* 8026F888 0026C7C8 C0 05 00 04 */ lfs f0, 4(r5) -/* 8026F88C 0026C7CC D0 03 00 24 */ stfs f0, 0x24(r3) -/* 8026F890 0026C7D0 C0 05 00 08 */ lfs f0, 8(r5) -/* 8026F894 0026C7D4 D0 03 00 28 */ stfs f0, 0x28(r3) -/* 8026F898 0026C7D8 C0 06 00 00 */ lfs f0, 0(r6) -/* 8026F89C 0026C7DC D0 03 00 2C */ stfs f0, 0x2c(r3) -/* 8026F8A0 0026C7E0 C0 06 00 04 */ lfs f0, 4(r6) -/* 8026F8A4 0026C7E4 D0 03 00 30 */ stfs f0, 0x30(r3) -/* 8026F8A8 0026C7E8 C0 06 00 08 */ lfs f0, 8(r6) -/* 8026F8AC 0026C7EC D0 03 00 34 */ stfs f0, 0x34(r3) -/* 8026F8B0 0026C7F0 7C E4 3B 78 */ mr r4, r7 -/* 8026F8B4 0026C7F4 4B FF FD 71 */ bl Set__8cM3dGPlaFPC8cM3dGPla -/* 8026F8B8 0026C7F8 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8026F8BC 0026C7FC 7C 08 03 A6 */ mtlr r0 -/* 8026F8C0 0026C800 38 21 00 10 */ addi r1, r1, 0x10 -/* 8026F8C4 0026C804 4E 80 00 20 */ blr diff --git a/include/SComponent/c_m3d_g_tri/asm/func_8026F8C8.s b/include/SComponent/c_m3d_g_tri/asm/func_8026F8C8.s deleted file mode 100644 index 6e0d5c45f3e..00000000000 --- a/include/SComponent/c_m3d_g_tri/asm/func_8026F8C8.s +++ /dev/null @@ -1,29 +0,0 @@ -/* 8026F8C8 0026C808 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8026F8CC 0026C80C 7C 08 02 A6 */ mflr r0 -/* 8026F8D0 0026C810 90 01 00 14 */ stw r0, 0x14(r1) -/* 8026F8D4 0026C814 7C 88 23 78 */ mr r8, r4 -/* 8026F8D8 0026C818 C0 04 00 00 */ lfs f0, 0(r4) -/* 8026F8DC 0026C81C D0 03 00 14 */ stfs f0, 0x14(r3) -/* 8026F8E0 0026C820 C0 04 00 04 */ lfs f0, 4(r4) -/* 8026F8E4 0026C824 D0 03 00 18 */ stfs f0, 0x18(r3) -/* 8026F8E8 0026C828 C0 04 00 08 */ lfs f0, 8(r4) -/* 8026F8EC 0026C82C D0 03 00 1C */ stfs f0, 0x1c(r3) -/* 8026F8F0 0026C830 C0 05 00 00 */ lfs f0, 0(r5) -/* 8026F8F4 0026C834 D0 03 00 20 */ stfs f0, 0x20(r3) -/* 8026F8F8 0026C838 C0 05 00 04 */ lfs f0, 4(r5) -/* 8026F8FC 0026C83C D0 03 00 24 */ stfs f0, 0x24(r3) -/* 8026F900 0026C840 C0 05 00 08 */ lfs f0, 8(r5) -/* 8026F904 0026C844 D0 03 00 28 */ stfs f0, 0x28(r3) -/* 8026F908 0026C848 C0 06 00 00 */ lfs f0, 0(r6) -/* 8026F90C 0026C84C D0 03 00 2C */ stfs f0, 0x2c(r3) -/* 8026F910 0026C850 C0 06 00 04 */ lfs f0, 4(r6) -/* 8026F914 0026C854 D0 03 00 30 */ stfs f0, 0x30(r3) -/* 8026F918 0026C858 C0 06 00 08 */ lfs f0, 8(r6) -/* 8026F91C 0026C85C D0 03 00 34 */ stfs f0, 0x34(r3) -/* 8026F920 0026C860 7C E4 3B 78 */ mr r4, r7 -/* 8026F924 0026C864 7D 05 43 78 */ mr r5, r8 -/* 8026F928 0026C868 4B FF FC 05 */ bl SetupNP__8cM3dGPlaFRC3VecRC3Vec -/* 8026F92C 0026C86C 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8026F930 0026C870 7C 08 03 A6 */ mtlr r0 -/* 8026F934 0026C874 38 21 00 10 */ addi r1, r1, 0x10 -/* 8026F938 0026C878 4E 80 00 20 */ blr \ No newline at end of file diff --git a/include/SComponent/c_sxyz.h b/include/SComponent/c_sxyz.h index ec0365d7fa3..604d05d4aa0 100644 --- a/include/SComponent/c_sxyz.h +++ b/include/SComponent/c_sxyz.h @@ -12,7 +12,7 @@ public: csXyz operator+(csXyz&); void operator+=(csXyz&); csXyz operator-(csXyz&); - csXyz operator*(float); + csXyz operator*(f32); }; extern csXyz lbl_80451160; // SComponent::csXyz::Zero diff --git a/include/SComponent/c_xyz.h b/include/SComponent/c_xyz.h index 784100b25b3..baac53cf79f 100644 --- a/include/SComponent/c_xyz.h +++ b/include/SComponent/c_xyz.h @@ -4,22 +4,22 @@ #include "SComponent/c_math.h" #include "global.h" -extern float /* 1.0 */ lbl_80455070; -extern float /* epsilon */ lbl_80455074; -extern float lbl_80455078; -extern float lbl_8045507C; -extern float lbl_80455080; -extern float /* 32.0 */ lbl_80455084; -extern double lbl_80455088; -extern double lbl_80455090; -extern double lbl_80455098; +extern f32 /* 1.0 */ lbl_80455070; +extern f32 /* epsilon */ lbl_80455074; +extern f32 lbl_80455078; +extern f32 lbl_8045507C; +extern f32 lbl_80455080; +extern f32 /* 32.0 */ lbl_80455084; +extern f64 lbl_80455088; +extern f64 lbl_80455090; +extern f64 lbl_80455098; extern u8 lbl_80430CE8; class cXyz : public Vec { public: ~cXyz(){}; cXyz() {} - cXyz(float x, float y, float z) { + cXyz(f32 x, f32 y, f32 z) { this->x = x; this->y = y; this->z = z; @@ -34,18 +34,26 @@ public: this->y = vec.y; this->z = vec.z; } - cXyz operator=(const Vec& vec) { - cXyz ret; - ret.x = vec.x; - ret.y = vec.y; - ret.z = vec.z; - return ret; + void operator=(const Vec& vec) { + this->x = vec.x; + this->y = vec.y; + this->z = vec.z; } cXyz operator+(const Vec& vec) const; cXyz operator-(const Vec& vec) const; - cXyz operator*(float scale) const; + cXyz operator*(f32 scale) const; cXyz operator*(const Vec& vec) const; - cXyz operator/(float) const; + cXyz operator/(f32) const; + void operator+=(f32 f) { + x += f; + y += f; + z += f; + } + void operator-=(f32 f) { + x -= f; + y -= f; + z -= f; + } cXyz getCrossProduct(const Vec&) const; cXyz outprod(const Vec&) const; cXyz norm(void) const; @@ -60,10 +68,34 @@ public: s16 atan2sX_Z(void) const; s16 atan2sY_XZ(void) const; - void baseZ() { - this->x = lbl_80455080; - this->y = lbl_80455080; - this->z = lbl_80455070; + void setAll(f32 f) { + z = f; + y = f; + x = f; + } + + void setMin(const cXyz& other) { + if (x > other.x) { + x = other.x; + } + if (y > other.y) { + y = other.y; + } + if (z > other.z) { + z = other.z; + } + } + + void setMax(const cXyz& other) { + if (x < other.x) { + x = other.x; + } + if (y < other.y) { + y = other.y; + } + if (z < other.z) { + z = other.z; + } } bool checkEpsilon() const { return !(PSVECSquareMag(this) < lbl_80455074); } diff --git a/include/SComponent/c_xyz/c_xyz.h b/include/SComponent/c_xyz/c_xyz.h deleted file mode 100644 index 5b9e18b35c1..00000000000 --- a/include/SComponent/c_xyz/c_xyz.h +++ /dev/null @@ -1,10 +0,0 @@ -#ifndef C_XYZ_H_ -#define C_XYZ_H_ -#include "global.h" - -class cXyz { -public: - float x, y, z; -}; - -#endif \ No newline at end of file diff --git a/include/d/d_attention/d_attention.h b/include/d/d_attention/d_attention.h index a7fd8f18bce..24e0c5458a8 100644 --- a/include/d/d_attention/d_attention.h +++ b/include/d/d_attention/d_attention.h @@ -2,7 +2,7 @@ #define D_ATTENTION_H_ #include "SComponent/c_angle.h" -#include "SComponent/c_xyz/c_xyz.h" +#include "SComponent/c_xyz.h" #include "global.h" #include "m_Do/m_Do_ext/m_Do_ext.h" diff --git a/include/d/d_camera/asm/func_80166764.s b/include/d/d_camera/asm/func_80166764.s index 7b37cc1a6e9..187e5bf0ba9 100644 --- a/include/d/d_camera/asm/func_80166764.s +++ b/include/d/d_camera/asm/func_80166764.s @@ -1201,7 +1201,7 @@ lbl_80167860: lbl_8016790C: /* 8016790C 0016484C 38 61 03 AC */ addi r3, r1, 0x3ac /* 80167910 00164850 38 80 FF FF */ li r4, -1 -/* 80167914 00164854 4B EC F1 49 */ bl cM3dGLin_NS_dtor +/* 80167914 00164854 4B EC F1 49 */ bl __dt__8cM3dGLinFv /* 80167918 00164858 38 61 03 C8 */ addi r3, r1, 0x3c8 /* 8016791C 0016485C 38 80 FF FF */ li r4, -1 /* 80167920 00164860 4B EC 95 1D */ bl cM3dGCyl_NS_dtor diff --git a/include/d/d_camera/asm/func_80168744.s b/include/d/d_camera/asm/func_80168744.s index 7d1a1e2f9e1..be94956bcf4 100644 --- a/include/d/d_camera/asm/func_80168744.s +++ b/include/d/d_camera/asm/func_80168744.s @@ -1554,7 +1554,7 @@ lbl_80169DD4: /* 80169DF4 00166D34 4B EC 67 1D */ bl cSAngle_NS_dtor /* 80169DF8 00166D38 38 61 04 9C */ addi r3, r1, 0x49c /* 80169DFC 00166D3C 38 80 FF FF */ li r4, -1 -/* 80169E00 00166D40 4B EC CC 5D */ bl cM3dGLin_NS_dtor +/* 80169E00 00166D40 4B EC CC 5D */ bl __dt__8cM3dGLinFv /* 80169E04 00166D44 38 61 04 2C */ addi r3, r1, 0x42c /* 80169E08 00166D48 38 80 FF FF */ li r4, -1 /* 80169E0C 00166D4C 4B E9 F3 79 */ bl cXyz_NS_dtor diff --git a/include/d/d_com/d_com_inf_game/d_com_inf_game.h b/include/d/d_com/d_com_inf_game/d_com_inf_game.h index 686726727f9..640213d837d 100644 --- a/include/d/d_com/d_com_inf_game/d_com_inf_game.h +++ b/include/d/d_com/d_com_inf_game/d_com_inf_game.h @@ -1,7 +1,7 @@ #ifndef D_COM_INF_GAME_H_ #define D_COM_INF_GAME_H_ -#include "SComponent/c_xyz/c_xyz.h" +#include "SComponent/c_xyz.h" #include "d/d_attention/d_attention.h" #include "d/d_bg/d_bg_s/d_bg_s.h" #include "d/d_bg/d_bg_w/d_bg_w_base/d_bg_w_base.h" diff --git a/include/d/d_save/d_save/d_save.h b/include/d/d_save/d_save/d_save.h index abefb974a98..4a0532dcde4 100644 --- a/include/d/d_save/d_save/d_save.h +++ b/include/d/d_save/d_save/d_save.h @@ -1,7 +1,7 @@ #ifndef D_SAVE_H_ #define D_SAVE_H_ -#include "SComponent/c_xyz/c_xyz.h" +#include "SComponent/c_xyz.h" #include "d/d_meter2/d_meter2_info/d_meter2_info.h" #include "dolphin/types.h" #include "global.h" diff --git a/include/functions.h b/include/functions.h index 7f86fcd9f68..6537a025bf7 100644 --- a/include/functions.h +++ b/include/functions.h @@ -5173,7 +5173,7 @@ void setCameraInWaterDepth__11Z2StatusMgrFf(void); void mDoCPd_c_NS_getTrigA(void); void dCamSetup_c_NS_PlayerHideDist(void); void preparation(void); -void cM3dGLin_NS_dtor(void); +void __dt__8cM3dGLinFv(void); void dCamSetup_c_NS_CheckLatitudeRange(void); void daPy_py_c_NS_checkGoronSideMove(void); void dComIfGp_getAttention(void); diff --git a/include/global.h b/include/global.h index 08b366ba212..ad9a464193b 100644 --- a/include/global.h +++ b/include/global.h @@ -24,14 +24,18 @@ struct JUTWarn { extern float __fabsf(float); -inline double fabsf(double d) { - return __fabsf(d); +inline double fabsd(float f) { + return __fabsf(f); +} + +inline float fabsf(float f) { + return (float)fabsd(f); } extern float __fsqrte(float); -inline double sqrt(double d) { - return __fsqrte(d); +inline double sqrt(float f) { + return __fsqrte(f); } #include "dolphin/types.h" diff --git a/include/mtx_vec.h b/include/mtx_vec.h index 46b956a9221..59199bc625f 100644 --- a/include/mtx_vec.h +++ b/include/mtx_vec.h @@ -5,6 +5,12 @@ struct Vec { float x, y, z; + float GetX() const { return x; } + float GetY() const { return y; } + float GetZ() const { return z; } + float getXDiff(const Vec* other) const { return x - other->x; } + float getYDiff(const Vec* other) const { return y - other->y; } + float getZDiff(const Vec* other) const { return z - other->z; } }; struct Quaternion { diff --git a/include/variables.h b/include/variables.h index afe16552086..36293eeff94 100644 --- a/include/variables.h +++ b/include/variables.h @@ -1066,26 +1066,7 @@ extern u8 lbl_804526B0; extern u8 lbl_804526B4; extern u8 lbl_80424B00; -// additional symbols needed for c_bg_s_chk.cpp -// autogenerated by split.py v0.3 at 2020-12-31 13:59:04.376186 -extern u8 lbl_803C3F80; - -// additional symbols needed for c_bg_s_gnd_chk.cpp -// autogenerated by split.py v0.3 at 2020-12-31 14:10:48.795807 -extern u8 lbl_803C3F90; - -// additional symbols needed for c_bg_s_lin_chk.cpp -// autogenerated by split.py v0.3 at 2021-01-01 12:56:44.686018 extern u8 lbl_803A78F8; -extern u8 lbl_803C3FA8; - -// additional symbols needed for c_bg_s_poly_info.cpp -// autogenerated by split.py v0.3 at 2021-01-01 12:59:59.584225 -extern u8 lbl_803C3FD0; - -// additional symbols needed for c_bg_s_shdw_draw.cpp -// autogenerated by split.py v0.3 at 2021-01-01 13:07:28.433195 -extern u8 lbl_803C3FC0; // additional symbols needed for c_cc_d.cpp // autogenerated by split.py v0.3 at 2021-01-01 13:13:17.720846 @@ -1125,85 +1106,11 @@ extern u8 lbl_804551F0; extern u8 lbl_80450768; extern u8 lbl_804551E0; extern u8 lbl_804551F8; -extern u8 lbl_80439A20[65536]; // JMath::JMath::sincosTable_ extern u8 lbl_80455200; -// additional symbols needed for c_m2d.cpp -// autogenerated by split.py v0.3 at 2021-01-01 14:23:08.023070 -extern u8 lbl_80455110; -extern u8 lbl_80455100; -extern u8 lbl_80455108; -extern u8 lbl_804550FC; -extern u8 lbl_804550F8; -extern u8 lbl_804550F4; -extern u8 lbl_804550F0; - -// additional symbols needed for c_m3d_g_aab.cpp -// autogenerated by split.py v0.3 at 2021-01-01 14:25:53.390342 -extern u8 lbl_804551D4; -extern u8 lbl_804551D0; -extern u8 lbl_804551D8; - -// additional symbols needed for c_m3d_g_cir.cpp -// autogenerated by split.py v0.3 at 2021-01-01 14:33:18.197884 -extern u8 lbl_803C3FEC; -extern u8 lbl_803C3FE0; - -// additional symbols needed for c_m3d_g_cps.cpp -// autogenerated by split.py v0.3 at 2021-01-01 14:41:13.414762 -extern u8 lbl_803C3FF8; - -// additional symbols needed for c_m3d.cpp -// autogenerated by split.py v0.3 at 2021-01-01 14:58:45.990799 -extern u8 lbl_80455158; -extern u8 lbl_8045513C; -extern u8 lbl_80455180; -extern u8 lbl_80455128; -extern u8 lbl_80455190; -extern u8 lbl_804551BC; -extern u8 lbl_80455168; -extern u8 lbl_804551C8; -extern u8 lbl_804551B8; -extern u8 lbl_80455148; -extern u8 lbl_804551C4; -extern u8 lbl_80455170; -extern u8 lbl_80455150; -extern u8 lbl_80455118; -extern u8 lbl_80455198; -extern u8 lbl_8045519C; -extern u8 lbl_8045515C; -extern u8 lbl_804551A0; -extern u8 lbl_80455174; -extern u8 lbl_80455178; -extern u8 lbl_804551CC; -extern u8 lbl_80450AEC; -extern u8 lbl_8045516C; -extern u8 lbl_80455194; -extern u8 lbl_804551C0; -extern u8 lbl_80455188; -extern u8 lbl_80455164; -extern u8 lbl_804551AC; -extern u8 lbl_8045517C; -extern u8 lbl_80455130; -extern u8 lbl_804551A4; -extern u8 lbl_8045514C; -extern u8 lbl_80455120; -extern u8 lbl_804551B4; -extern u8 lbl_804551A8; -extern u8 lbl_80455138; -extern u8 lbl_80455184; -extern u8 lbl_80455144; -extern u8 lbl_80455140; -extern u8 lbl_8045518C; -extern u8 lbl_80455154; -extern u8 lbl_804551B0; -extern u8 lbl_80455160; - // additional symbols needed for c_sxyz.cpp // autogenerated by split.py v0.3 at 2021-01-01 15:36:38.100807 -extern u8 lbl_804550A0; extern u8 lbl_80451164; -extern u8 lbl_80430DA8; // additional symbols needed for d_meter2_draw.cpp // autogenerated by split.py v0.3 at 2021-01-02 00:12:18.254960 diff --git a/libs/SSystem/SComponent/c_bg_s_chk.cpp b/libs/SSystem/SComponent/c_bg_s_chk.cpp index 7fbec11fc9d..5ff94b7a8b4 100644 --- a/libs/SSystem/SComponent/c_bg_s_chk.cpp +++ b/libs/SSystem/SComponent/c_bg_s_chk.cpp @@ -3,26 +3,28 @@ #include "SComponent/c_bg_s_chk.h" // __ct__8cBgS_ChkFv -asm cBgS_Chk::cBgS_Chk(void) { - nofralloc -#include "SComponent/c_bg_s_chk/asm/func_80267B4C.s" +cBgS_Chk::cBgS_Chk(void) { + unk_0x00 = 0; + unk_0x04 = 0; + unk_0x0C = 1; } // __dt__8cBgS_ChkFv -asm cBgS_Chk::~cBgS_Chk(void) { - nofralloc -#include "SComponent/c_bg_s_chk/asm/func_80267B70.s" -} +cBgS_Chk::~cBgS_Chk(void) {} // SetExtChk__8cBgS_ChkFR8cBgS_Chk -asm void cBgS_Chk::SetExtChk(cBgS_Chk&) { - nofralloc -#include "SComponent/c_bg_s_chk/asm/func_80267BB8.s" +void cBgS_Chk::SetExtChk(cBgS_Chk& pOther) { + unk_0x00 = pOther.unk_0x00; + unk_0x04 = pOther.unk_0x04; + unk_0x08 = pOther.unk_0x08; + unk_0x0C = pOther.unk_0x0C; } // ChkSameActorPid__8cBgS_ChkCFUi -// cBgS_Chk::ChkSameActorPid(unsigned int) const -asm bool cBgS_Chk::ChkSameActorPid(unsigned int) const { - nofralloc -#include "SComponent/c_bg_s_chk/asm/func_80267BDC.s" +bool cBgS_Chk::ChkSameActorPid(unsigned int pUint) const { + if (unk_0x08 == -1 || pUint == UINT32_MAX || unk_0x0C == 0) { + return 0; + } else { + return (unk_0x08 == pUint) ? 1 : 0; + } } diff --git a/libs/SSystem/SComponent/c_bg_s_gnd_chk.cpp b/libs/SSystem/SComponent/c_bg_s_gnd_chk.cpp index 7b584c5ea1b..b2c637c7fdf 100644 --- a/libs/SSystem/SComponent/c_bg_s_gnd_chk.cpp +++ b/libs/SSystem/SComponent/c_bg_s_gnd_chk.cpp @@ -2,6 +2,10 @@ #include "SComponent/c_bg_s_gnd_chk.h" +// additional symbols needed for c_bg_s_gnd_chk.cpp +// autogenerated by split.py v0.3 at 2020-12-31 14:10:48.795807 +extern u8 lbl_803C3F90; + // __ct__11cBgS_GndChkFv asm cBgS_GndChk::cBgS_GndChk(void) { nofralloc diff --git a/libs/SSystem/SComponent/c_bg_s_lin_chk.cpp b/libs/SSystem/SComponent/c_bg_s_lin_chk.cpp index a4e4efd0fac..b09963b0753 100644 --- a/libs/SSystem/SComponent/c_bg_s_lin_chk.cpp +++ b/libs/SSystem/SComponent/c_bg_s_lin_chk.cpp @@ -2,6 +2,10 @@ #include "SComponent/c_bg_s_lin_chk.h" +// additional symbols needed for c_bg_s_lin_chk.cpp +// autogenerated by split.py v0.3 at 2021-01-01 12:56:44.686018 +extern u8 lbl_803C3FA8; + // __ct__11cBgS_LinChkFv // cBgS_LinChk::cBgS_LinChk(void) asm cBgS_LinChk::cBgS_LinChk(void) { diff --git a/libs/SSystem/SComponent/c_bg_s_poly_info.cpp b/libs/SSystem/SComponent/c_bg_s_poly_info.cpp index 859cd3d2d0f..b5ef983681a 100644 --- a/libs/SSystem/SComponent/c_bg_s_poly_info.cpp +++ b/libs/SSystem/SComponent/c_bg_s_poly_info.cpp @@ -3,64 +3,60 @@ #include "SComponent/c_bg_s_poly_info.h" // __ct__13cBgS_PolyInfoFv -// cBgS_PolyInfo::cBgS_PolyInfo(void) -asm cBgS_PolyInfo::cBgS_PolyInfo(void) { - nofralloc -#include "SComponent/c_bg_s_poly_info/asm/func_80268074.s" +cBgS_PolyInfo::cBgS_PolyInfo(void) { + this->ClearPi(); } // __dt__13cBgS_PolyInfoFv -// cBgS_PolyInfo::~cBgS_PolyInfo(void) -asm cBgS_PolyInfo::~cBgS_PolyInfo(void) { - nofralloc -#include "SComponent/c_bg_s_poly_info/asm/func_802680B0.s" -} +cBgS_PolyInfo::~cBgS_PolyInfo(void) {} // ChkSetInfo__13cBgS_PolyInfoCFv -// cBgS_PolyInfo::ChkSetInfo(void) const -asm bool cBgS_PolyInfo::ChkSetInfo(void) const { - nofralloc -#include "SComponent/c_bg_s_poly_info/asm/func_802680F8.s" +bool cBgS_PolyInfo::ChkSetInfo(void) const { + if (mPolyIndex == 0xFFFF || unk_0x02 == 0x100) { + return false; + } else { + return true; + } } // ClearPi__13cBgS_PolyInfoFv -// cBgS_PolyInfo::ClearPi(void) -asm void cBgS_PolyInfo::ClearPi(void) { - nofralloc -#include "SComponent/c_bg_s_poly_info/asm/func_80268120.s" +void cBgS_PolyInfo::ClearPi(void) { + mPolyIndex = 0xFFFF; + unk_0x02 = 0x100; + unk_0x04 = 0; + unk_0x08 = -1; } // SetPolyInfo__13cBgS_PolyInfoFRC13cBgS_PolyInfo -// cBgS_PolyInfo::SetPolyInfo(const cBgS_PolyInfo&) -asm void cBgS_PolyInfo::SetPolyInfo(const cBgS_PolyInfo&) { - nofralloc -#include "SComponent/c_bg_s_poly_info/asm/func_80268148.s" +void cBgS_PolyInfo::SetPolyInfo(const cBgS_PolyInfo& pOther) { + mPolyIndex = pOther.mPolyIndex; + unk_0x02 = pOther.unk_0x02; + unk_0x04 = pOther.unk_0x04; + unk_0x08 = pOther.unk_0x08; } // SetActorInfo__13cBgS_PolyInfoFiPvUi -// cBgS_PolyInfo::SetActorInfo(int, void*, unsigned int) -asm void cBgS_PolyInfo::SetActorInfo(int, void*, unsigned int) { - nofralloc -#include "SComponent/c_bg_s_poly_info/asm/func_8026816C.s" +void cBgS_PolyInfo::SetActorInfo(int param_1, void* param_2, unsigned int param_3) { + unk_0x02 = param_1; + unk_0x04 = param_2; + unk_0x08 = param_3; } // ChkSafe__13cBgS_PolyInfoCFPCvUi -// cBgS_PolyInfo::ChkSafe(const void*, unsigned int) const -asm bool cBgS_PolyInfo::ChkSafe(const void*, unsigned int) const { - nofralloc -#include "SComponent/c_bg_s_poly_info/asm/func_8026817C.s" +bool cBgS_PolyInfo::ChkSafe(const void* param_1, unsigned int param_2) const { + if (unk_0x04 == param_1 && unk_0x08 == param_2) { + return true; + } else { + return false; + } } // SetPolyIndex__13cBgS_PolyInfoFi -// cBgS_PolyInfo::SetPolyIndex(int) -asm void cBgS_PolyInfo::SetPolyIndex(int) { - nofralloc -#include "SComponent/c_bg_s_poly_info/asm/func_802681A4.s" +void cBgS_PolyInfo::SetPolyIndex(int pPolyIndex) { + mPolyIndex = pPolyIndex; } // ChkBgIndex__13cBgS_PolyInfoCFv -// cBgS_PolyInfo::ChkBgIndex(void) const -asm bool cBgS_PolyInfo::ChkBgIndex(void) const { - nofralloc -#include "SComponent/c_bg_s_poly_info/asm/func_802681AC.s" +bool cBgS_PolyInfo::ChkBgIndex(void) const { + return unk_0x02 != 0x100; } diff --git a/libs/SSystem/SComponent/c_bg_s_shdw_draw.cpp b/libs/SSystem/SComponent/c_bg_s_shdw_draw.cpp index df247b35b7f..f4e4e0bb67a 100644 --- a/libs/SSystem/SComponent/c_bg_s_shdw_draw.cpp +++ b/libs/SSystem/SComponent/c_bg_s_shdw_draw.cpp @@ -2,6 +2,10 @@ #include "SComponent/c_bg_s_shdw_draw.h" +// additional symbols needed for c_bg_s_shdw_draw.cpp +// autogenerated by split.py v0.3 at 2021-01-01 13:07:28.433195 +extern u8 lbl_803C3FC0; + // __ct__13cBgS_ShdwDrawFv // cBgS_ShdwDraw::cBgS_ShdwDraw(void) asm cBgS_ShdwDraw::cBgS_ShdwDraw(void) { diff --git a/libs/SSystem/SComponent/c_m2d.cpp b/libs/SSystem/SComponent/c_m2d.cpp index 25b8536564a..66c1b146020 100644 --- a/libs/SSystem/SComponent/c_m2d.cpp +++ b/libs/SSystem/SComponent/c_m2d.cpp @@ -2,6 +2,16 @@ #include "SComponent/c_m2d.h" +// additional symbols needed for c_m2d.cpp +// autogenerated by split.py v0.3 at 2021-01-01 14:23:08.023070 +extern u8 lbl_80455110; +extern u8 lbl_80455100; +extern u8 lbl_80455108; +extern u8 lbl_804550FC; +extern u8 lbl_804550F8; +extern u8 lbl_804550F4; +extern u8 lbl_804550F0; + // cM2d_CrossCirLin__FR8cM2dGCirffffPfPf asm void cM2d_CrossCirLin(cM2dGCir&, float, float, float, float, float*, float*) { nofralloc diff --git a/libs/SSystem/SComponent/c_m3d.cpp b/libs/SSystem/SComponent/c_m3d.cpp index 738037d38b3..71323eb868b 100644 --- a/libs/SSystem/SComponent/c_m3d.cpp +++ b/libs/SSystem/SComponent/c_m3d.cpp @@ -2,111 +2,351 @@ #include "SComponent/c_m3d.h" +extern f32 lbl_80455118; // SComponent::@2256, 0.0 +extern f32 lbl_80455138; // SComponent::@2273, 1.0 +extern f32 lbl_8045513C; // SComponent::@2346, 0.02 +extern f32 lbl_804551C4; // SComponent::@3892, 0.5 + +// additional symbols needed for c_m3d.cpp +// autogenerated by split.py v0.3 at 2021-01-01 14:58:45.990799 +extern u8 lbl_80455158; +extern u8 lbl_80455180; +extern u8 lbl_80455128; +extern u8 lbl_80455190; +extern u8 lbl_804551BC; +extern u8 lbl_80455168; +extern u8 lbl_804551C8; +extern u8 lbl_804551B8; +extern u8 lbl_80455148; +extern u8 lbl_80455170; +extern u8 lbl_80455150; +extern u8 lbl_80455198; +extern u8 lbl_8045519C; +extern u8 lbl_8045515C; +extern u8 lbl_804551A0; +extern u8 lbl_80455174; +extern u8 lbl_80455178; +extern u8 lbl_804551CC; +extern u8 lbl_80450AEC; +extern u8 lbl_8045516C; +extern u8 lbl_80455194; +extern u8 lbl_804551C0; +extern u8 lbl_80455188; +extern u8 lbl_80455164; +extern u8 lbl_804551AC; +extern u8 lbl_8045517C; +extern u8 lbl_80455130; +extern u8 lbl_804551A4; +extern u8 lbl_8045514C; +extern u8 lbl_80455120; +extern u8 lbl_804551B4; +extern u8 lbl_804551A8; +extern u8 lbl_80455184; +extern u8 lbl_80455144; +extern u8 lbl_80455140; +extern u8 lbl_8045518C; +extern u8 lbl_80455154; +extern u8 lbl_804551B0; +extern u8 lbl_80455160; + // cM3d_InDivPos1__FPC3VecPC3VecfP3Vec -// cM3d_InDivPos1(const Vec*, const Vec*, float, Vec*) -asm void cM3d_InDivPos1(const Vec*, const Vec*, float, Vec*) { - nofralloc -#include "SComponent/c_m3d/asm/func_80268560.s" +void cM3d_InDivPos1(const Vec* pVecA, const Vec* pVecB, f32 pF, Vec* pOut) { + Vec tmp; + PSVECScale(pVecB, &tmp, pF); + PSVECAdd(&tmp, pVecA, pOut); } // cM3d_InDivPos2__FPC3VecPC3VecfP3Vec -// cM3d_InDivPos2(const Vec*, const Vec*, float, Vec*) -asm void cM3d_InDivPos2(const Vec*, const Vec*, float, Vec*) { - nofralloc -#include "SComponent/c_m3d/asm/func_802685B0.s" +void cM3d_InDivPos2(const Vec* pVecA, const Vec* pVecB, f32 pF, Vec* pOut) { + Vec tmp; + PSVECSubtract(pVecB, pVecA, &tmp); + cM3d_InDivPos1(pVecA, &tmp, pF, pOut); } // cM3d_Len2dSq__Fffff -// cM3d_Len2dSq(float, float, float, float) -asm float cM3d_Len2dSq(float, float, float, float) { - nofralloc -#include "SComponent/c_m3d/asm/func_80268614.s" +f32 cM3d_Len2dSq(f32 pX1, f32 pY1, f32 pX2, f32 pY2) { + f32 xDiff = pX1 - pX2; + f32 yDiff = pY1 - pY2; + return xDiff * xDiff + yDiff * yDiff; +} + +inline bool cM3d_IsZero(f32 pF) { + return fabsf(pF) < lbl_80451180; } // cM3d_Len2dSqPntAndSegLine__FffffffPfPfPf -// cM3d_Len2dSqPntAndSegLine(float, float, float, float, float, float, float*, float*, float*) -asm bool cM3d_Len2dSqPntAndSegLine(float, float, float, float, float, float, float*, float*, - float*) { - nofralloc -#include "SComponent/c_m3d/asm/func_8026862C.s" +bool cM3d_Len2dSqPntAndSegLine(f32 param_1, f32 param_2, f32 param_3, f32 param_4, f32 p5, f32 p6, + f32* param_7, f32* param_8, f32* param_9) { + bool retVal = false; + f32 param_5 = p5 - param_3; + f32 param_6 = p6 - param_4; + f32 len = param_5 * param_5 + param_6 * param_6; + if (cM3d_IsZero(len)) { + *param_9 = /* 0.0 */ lbl_80455118; + return retVal; + } else { + len = (param_5 * (param_1 - param_3) + param_6 * (param_2 - param_4)) / len; + if (len >= /* 0.0 */ lbl_80455118 && len <= /* 1.0 */ lbl_80455138) { + retVal = true; + } + *param_7 = param_3 + param_5 * len; + *param_8 = param_4 + param_6 * len; + *param_9 = cM3d_Len2dSq(*param_7, *param_8, param_1, param_2); + return retVal; + } } // cM3d_Len3dSqPntAndSegLine__FPC8cM3dGLinPC3VecP3VecPf -// cM3d_Len3dSqPntAndSegLine(const cM3dGLin*, const Vec*, Vec*, float*) -asm bool cM3d_Len3dSqPntAndSegLine(const cM3dGLin*, const Vec*, Vec*, float*) { - nofralloc -#include "SComponent/c_m3d/asm/func_80268710.s" +bool cM3d_Len3dSqPntAndSegLine(const cM3dGLin* pLine, const Vec* pVec, Vec* pOutVec, f32* pOutF) { + bool retVal = 0; + Vec tmp; + PSVECSubtract(&pLine->GetEndP(), &pLine->GetStartP(), &tmp); + f32 seqLen = PSVECDotProduct(&tmp, &tmp); + if (cM3d_IsZero(seqLen)) { + *pOutF = /* 0.0 */ lbl_80455118; + return retVal; + } else { + Vec tmp2; + PSVECSubtract(pVec, &pLine->GetStartP(), &tmp2); + f32 tmpF = PSVECDotProduct(&tmp2, &tmp); + tmpF /= seqLen; + if (tmpF < /* 0.0 */ lbl_80455118 || tmpF > /* 1.0 */ lbl_80455138) { + retVal = false; + } else { + retVal = true; + } + PSVECScale(&tmp, &tmp, tmpF); + PSVECAdd(&tmp, &pLine->GetStartP(), pOutVec); + *pOutF = PSVECSquareDistance(pOutVec, pVec); + return retVal; + } } // cM3d_SignedLenPlaAndPos__FPC8cM3dGPlaPC3Vec -// cM3d_SignedLenPlaAndPos(const cM3dGPla*, const Vec*) -asm float cM3d_SignedLenPlaAndPos(const cM3dGPla*, const Vec*) { - nofralloc -#include "SComponent/c_m3d/asm/func_80268814.s" +f32 cM3d_SignedLenPlaAndPos(const cM3dGPla* pPlane, const Vec* pPosition) { + f32 mag = PSVECMag(&pPlane->GetNP()); + if (cM3d_IsZero(mag)) { + return /* 0.0 */ lbl_80455118; + } else { + return (pPlane->mD + PSVECDotProduct(&pPlane->GetNP(), pPosition)) / mag; + } } // cM3d_VectorProduct2d__Fffffff -// cM3d_VectorProduct2d(float, float, float, float, float, float) -asm float cM3d_VectorProduct2d(float, float, float, float, float, float) { - nofralloc -#include "SComponent/c_m3d/asm/func_80268894.s" +f32 cM3d_VectorProduct2d(f32 pX1, f32 pY1, f32 pX2, f32 pY2, f32 pX3, f32 pY3) { + return (pX2 - pX1) * (pY3 - pY1) - (pY2 - pY1) * (pX3 - pX1); } // cM3d_VectorProduct__FPC4cXyzPC4cXyzPC4cXyzP4cXyz -// cM3d_VectorProduct(const cXyz*, const cXyz*, const cXyz*, cXyz*) -asm void cM3d_VectorProduct(const cXyz*, const cXyz*, const cXyz*, cXyz*) { - nofralloc -#include "SComponent/c_m3d/asm/func_802688B4.s" +void cM3d_VectorProduct(const cXyz* pVecA, const cXyz* pVecB, const cXyz* pVecC, cXyz* pVecOut) { + Vec tmp1; + Vec tmp2; + PSVECSubtract(pVecB, pVecA, &tmp1); + PSVECSubtract(pVecC, pVecA, &tmp2); + PSVECCrossProduct(&tmp1, &tmp2, pVecOut); } // cM3d_CalcPla__FPC3VecPC3VecPC3VecP3VecPf -// cM3d_CalcPla(const Vec*, const Vec*, const Vec*, Vec*, float*) -asm void cM3d_CalcPla(const Vec*, const Vec*, const Vec*, Vec*, float*) { - nofralloc -#include "SComponent/c_m3d/asm/func_8026891C.s" +void cM3d_CalcPla(const Vec* pVecA, const Vec* pVecB, const Vec* pVecC, Vec* pVecOut, f32* pD) { + Vec tmp2; + Vec tmp1; + PSVECSubtract(pVecB, pVecA, &tmp1); + PSVECSubtract(pVecC, pVecA, &tmp2); + PSVECCrossProduct(&tmp1, &tmp2, pVecOut); + f32 mag = PSVECMag(pVecOut); + if (fabsf(mag) >= /* 0.02 */ lbl_8045513C) { + PSVECScale(pVecOut, pVecOut, /* 1.0 */ lbl_80455138 / mag); + *pD = -PSVECDotProduct(pVecOut, pVecA); + } else { + f32 zero = /* 0.0 */ lbl_80455118; + pVecOut->y = zero; + *pD = zero; + pVecOut->z = zero; + pVecOut->x = zero; + } +} + +inline bool cM3d_CrossNumSection(f32 lMinX, f32 lMaxX, f32 rMinX, f32 rMaxX) { + if (lMinX > rMaxX) { + return false; + } else if (lMaxX < rMinX) { + return false; + } else if (rMinX > lMaxX) { + return false; + } else if (rMaxX < lMinX) { + return false; + } else { + return true; + } } // cM3d_Cross_AabAab__FPC8cM3dGAabPC8cM3dGAab -// cM3d_Cross_AabAab(const cM3dGAab*, const cM3dGAab*) -asm bool cM3d_Cross_AabAab(const cM3dGAab*, const cM3dGAab*) { - nofralloc -#include "SComponent/c_m3d/asm/func_802689E8.s" +bool cM3d_Cross_AabAab(const cM3dGAab* pAabA, const cM3dGAab* pAabB) { + if (cM3d_CrossNumSection(pAabA->getMinP().x, pAabA->getMaxP().x, pAabB->getMinP().x, + pAabB->getMaxP().x) && + cM3d_CrossNumSection(pAabA->getMinP().y, pAabA->getMaxP().y, pAabB->getMinP().y, + pAabB->getMaxP().y) && + cM3d_CrossNumSection(pAabA->getMinP().z, pAabA->getMaxP().z, pAabB->getMinP().z, + pAabB->getMaxP().z)) { + return true; + } else { + return false; + } } // cM3d_Cross_AabCyl__FPC8cM3dGAabPC8cM3dGCyl -// cM3d_Cross_AabCyl(const cM3dGAab*, const cM3dGCyl*) -asm bool cM3d_Cross_AabCyl(const cM3dGAab*, const cM3dGCyl*) { - nofralloc -#include "SComponent/c_m3d/asm/func_80268B0C.s" +bool cM3d_Cross_AabCyl(const cM3dGAab* pAab, const cM3dGCyl* pCyl) { + if (pAab->getMinP().x > pCyl->GetCP().x + pCyl->GetR()) { + return false; + } else if (pAab->getMaxP().x < pCyl->GetCP().x - pCyl->GetR()) { + return false; + } else if (pAab->getMinP().z > pCyl->GetCP().z + pCyl->GetR()) { + return false; + } else if (pAab->getMaxP().z < pCyl->GetCP().z - pCyl->GetR()) { + return false; + } else if (pAab->getMinP().y > pCyl->GetCP().y + pCyl->GetH()) { + return false; + } else if (pAab->getMaxP().y < pCyl->GetCP().y) { + return false; + } else { + return true; + } } // cM3d_Cross_AabSph__FPC8cM3dGAabPC8cM3dGSph -// cM3d_Cross_AabSph(const cM3dGAab*, const cM3dGSph*) +#ifdef NON_MATCHING +bool cM3d_Cross_AabSph(const cM3dGAab* pAab, const cM3dGSph* pSph) { + f32 radius = pSph->GetR(); + if (pAab->GetMinX() > pSph->GetC().GetX() + radius) { // addition registers are flipped + return false; + } else if (pAab->GetMaxX() < pSph->GetC().GetX() - radius) { + return false; + } else if (pAab->GetMinZ() > pSph->GetC().GetZ() + radius) { + return false; + } else if (pAab->GetMaxZ() < pSph->GetC().GetZ() - radius) { + return false; + } else if (pAab->GetMinY() > pSph->GetC().GetY() + radius) { + return false; + } else if (pAab->GetMaxY() < pSph->GetC().GetY() - radius) { + return false; + } else { + return true; + } +} +#else asm bool cM3d_Cross_AabSph(const cM3dGAab*, const cM3dGSph*) { nofralloc #include "SComponent/c_m3d/asm/func_80268BB4.s" } +#endif +#ifdef NON_MATCHING // cM3d_Check_LinLin__FPC8cM3dGLinPC8cM3dGLinPfPf -// cM3d_Check_LinLin(const cM3dGLin*, const cM3dGLin*, float*, float*) -asm int cM3d_Check_LinLin(const cM3dGLin*, const cM3dGLin*, float*, float*) { +int cM3d_Check_LinLin(const cM3dGLin* pLinA, const cM3dGLin* pLinB, f32* pFloatA, f32* pFloatB) { + Vec linAVec; + Vec linBVec; + pLinA->CalcVec(&linAVec); + pLinB->CalcVec(&linBVec); + f32 linALen = PSVECMag(&linAVec); + f32 linBLen = PSVECMag(&linBVec); + if (cM3d_IsZero(linALen) || cM3d_IsZero(linBLen)) { + return 1; + } else { + f32 invLinALen = /* 1.0 */ lbl_80455138 / linALen; + f32 invLinBLen = /* 1.0 */ lbl_80455138 / linBLen; + PSVECScale(&linAVec, &linAVec, invLinALen); + PSVECScale(&linBVec, &linBVec, invLinBLen); + Vec tmp; + PSVECSubtract(&pLinA->GetStartP(), &pLinB->GetStartP(), &tmp); + f32 tmpF = -PSVECDotProduct(&linAVec, &linBVec); + f32 tmpF2 = PSVECDotProduct(&tmp, &linAVec); + PSVECSquareMag(&tmp); // result not used + f32 tmpF3 = fabsf(/* 1.0 */ lbl_80455138 - (tmpF * tmpF)); + if (!cM3d_IsZero(tmpF3)) { + f32 tmpF4 = -PSVECDotProduct(&tmp, &linBVec); + f32 tmpF7 = /* 1.0 */ lbl_80455138 / tmpF3; + f32 outFloatAtmp = ((tmpF * tmpF4) - tmpF2) * tmpF7; + *pFloatA = outFloatAtmp * invLinALen; + f32 outFloatBtmp = ((tmpF * tmpF2) - tmpF4) * tmpF7; + *pFloatB = outFloatBtmp * invLinBLen; + return 3; + } else { + f32 tmpF5 = -tmpF2; + f32 tmpF6 = + /* 0.0 */ lbl_80455118; // would match with literals instead of labels + if (tmpF5 < /* 0.0 */ lbl_80455118 || (tmpF5 > linALen)) { + tmpF6 = linBLen; + tmpF5 = (tmpF6 * tmpF) - tmpF2; + } + f32 tmpF7 = PSVECDotProduct(&tmp, &linBVec); + if (tmpF5 < /* 0.0 */ lbl_80455118 || tmpF5 > linALen) { + tmpF5 = /* 0.0 */ lbl_80455118; + tmpF6 = tmpF7; + } + if (tmpF6 < /* 0.0 */ lbl_80455118 || tmpF6 > linBLen) { + tmpF5 = linALen; + tmpF6 = tmpF7 + (-linALen * tmpF); + } + *pFloatA = tmpF5 * invLinALen; + *pFloatB = tmpF6 * invLinBLen; + return 2; + } + } +} +#else +// cM3d_Check_LinLin(const cM3dGLin*, const cM3dGLin*, f32*, f32*) +asm int cM3d_Check_LinLin(const cM3dGLin*, const cM3dGLin*, f32*, f32*) { nofralloc #include "SComponent/c_m3d/asm/func_80268C5C.s" } +#endif // cM3d_CrossInfLineVsInfPlane_proc__FffPC3VecPC3VecP3Vec -// cM3d_CrossInfLineVsInfPlane_proc(float, float, const Vec*, const Vec*, Vec*) -asm bool cM3d_CrossInfLineVsInfPlane_proc(float, float, const Vec*, const Vec*, Vec*) { - nofralloc -#include "SComponent/c_m3d/asm/func_80268ED4.s" +bool cM3d_CrossInfLineVsInfPlane_proc(f32 pFloatA, f32 pFloatB, const Vec* pVecA, const Vec* pVecB, + Vec* pVecOut) { + if (cM3d_IsZero(pFloatA - pFloatB)) { + *pVecOut = *pVecB; + return false; + } else { + cM3d_InDivPos2(pVecA, pVecB, pFloatA / (pFloatA - pFloatB), pVecOut); + return true; + } } // cM3d_Cross_LinPla__FPC8cM3dGLinPC8cM3dGPlaP3Vecbb -// cM3d_Cross_LinPla(const cM3dGLin*, const cM3dGPla*, Vec*, bool, bool) +#ifdef NON_MATCHING +bool cM3d_Cross_LinPla(const cM3dGLin* pLine, const cM3dGPla* pPlane, Vec* pVecOut, bool pBoolA, + bool pBoolB) { + f32 startVal = pPlane->getPlaneFunc(&pLine->GetStartP()); + f32 endVal = pPlane->getPlaneFunc(&pLine->GetEndP()); + if (startVal * endVal > /* 0.0 */ lbl_80455118) { + // matches with the literal, but that screws up data + // if (startVal * endVal > 0) { + *pVecOut = pLine->GetEndP(); + return false; + } else { + if (startVal >= /* 0.0 */ lbl_80455118 && endVal <= /* 0.0 */ lbl_80455118) { + // if (startVal >= 0 && endVal <= 0) { + if (pBoolA) { + return cM3d_CrossInfLineVsInfPlane_proc(startVal, endVal, &pLine->GetStartP(), + &pLine->GetEndP(), pVecOut); + } + } else { + if (pBoolB) { + return cM3d_CrossInfLineVsInfPlane_proc(startVal, endVal, &pLine->GetStartP(), + &pLine->GetEndP(), pVecOut); + } + } + *pVecOut = pLine->GetEndP(); + return true; + } +} +#else asm bool cM3d_Cross_LinPla(const cM3dGLin*, const cM3dGPla*, Vec*, bool, bool) { nofralloc #include "SComponent/c_m3d/asm/func_80268F34.s" } +#endif // cM3d_Cross_MinMaxBoxLine__FPC3VecPC3VecPC3VecPC3Vec // cM3d_Cross_MinMaxBoxLine(const Vec*, const Vec*, const Vec*, const Vec*) @@ -116,23 +356,69 @@ asm bool cM3d_Cross_MinMaxBoxLine(const Vec*, const Vec*, const Vec*, const Vec* } // cM3d_InclusionCheckPosIn3PosBox3d__FPC3VecPC3VecPC3VecPC3Vecf -// cM3d_InclusionCheckPosIn3PosBox3d(const Vec*, const Vec*, const Vec*, const Vec*, float) -asm bool cM3d_InclusionCheckPosIn3PosBox3d(const Vec*, const Vec*, const Vec*, const Vec*, float) { - nofralloc -#include "SComponent/c_m3d/asm/func_80269C2C.s" +bool cM3d_InclusionCheckPosIn3PosBox3d(const Vec* pVecA, const Vec* pVecB, const Vec* pVecC, + const Vec* pVecD, f32 pF) { + f32 min, max; + if (pVecA->GetX() < pVecB->GetX()) { + min = pVecA->GetX(); + max = pVecB->GetX(); + } else { + min = pVecB->GetX(); + max = pVecA->GetX(); + } + if (min > pVecC->GetX()) { + min = pVecC->GetX(); + } else if (max < pVecC->GetX()) { + max = pVecC->GetX(); + } + if (min - pF > pVecD->GetX() || max + pF < pVecD->GetX()) { + return false; + } + + if (pVecA->GetZ() < pVecB->GetZ()) { + min = pVecA->GetZ(); + max = pVecB->GetZ(); + } else { + min = pVecB->GetZ(); + max = pVecA->GetZ(); + } + if (min > pVecC->GetZ()) { + min = pVecC->GetZ(); + } else if (max < pVecC->GetZ()) { + max = pVecC->GetZ(); + } + if (min - pF > pVecD->GetZ() || max + pF < pVecD->GetZ()) { + return false; + } + + if (pVecA->GetY() < pVecB->GetY()) { + min = pVecA->GetY(); + max = pVecB->GetY(); + } else { + min = pVecB->GetY(); + max = pVecA->GetY(); + } + if (min > pVecC->GetY()) { + min = pVecC->GetY(); + } else if (max < pVecC->GetY()) { + max = pVecC->GetY(); + } + if (min - pF > pVecD->GetY() || max + pF < pVecD->GetY()) { + return false; + } + return true; } // cM3d_InclusionCheckPosIn3PosBox2d__Ffffffffff -// cM3d_InclusionCheckPosIn3PosBox2d(float, float, float, float, float, float, float, float, float) -asm bool cM3d_InclusionCheckPosIn3PosBox2d(float, float, float, float, float, float, float, float, - float) { +// cM3d_InclusionCheckPosIn3PosBox2d(f32, f32, f32, f32, f32, f32, f32, f32, f32) +asm bool cM3d_InclusionCheckPosIn3PosBox2d(f32, f32, f32, f32, f32, f32, f32, f32, f32) { nofralloc #include "SComponent/c_m3d/asm/func_80269D64.s" } // cM3d_CrossX_Tri__FPC8cM3dGTriPC3Vecf -// cM3d_CrossX_Tri(const cM3dGTri*, const Vec*, float) -asm bool cM3d_CrossX_Tri(const cM3dGTri*, const Vec*, float) { +// cM3d_CrossX_Tri(const cM3dGTri*, const Vec*, f32) +asm bool cM3d_CrossX_Tri(const cM3dGTri*, const Vec*, f32) { nofralloc #include "SComponent/c_m3d/asm/func_80269E18.s" } @@ -180,29 +466,29 @@ asm bool cM3d_CrossY_Tri_Front(const Vec&, const Vec&, const Vec&, const Vec*) { } // cM3d_CrossY_Tri__FPC8cM3dGTriPC3VecPf -// cM3d_CrossY_Tri(const cM3dGTri*, const Vec*, float*) -asm bool cM3d_CrossY_Tri(const cM3dGTri*, const Vec*, float*) { +// cM3d_CrossY_Tri(const cM3dGTri*, const Vec*, f32*) +asm bool cM3d_CrossY_Tri(const cM3dGTri*, const Vec*, f32*) { nofralloc #include "SComponent/c_m3d/asm/func_8026A8C0.s" } // cM3d_CrossY_Tri__FPC8cM3dGTriPC3Vecf -// cM3d_CrossY_Tri(const cM3dGTri*, const Vec*, float) -asm bool cM3d_CrossY_Tri(const cM3dGTri*, const Vec*, float) { +// cM3d_CrossY_Tri(const cM3dGTri*, const Vec*, f32) +asm bool cM3d_CrossY_Tri(const cM3dGTri*, const Vec*, f32) { nofralloc #include "SComponent/c_m3d/asm/func_8026A944.s" } // cM3d_CrossY_Tri__FPC8cM3dGTriPC3VecPC10cM3d_RangePf -// cM3d_CrossY_Tri(const cM3dGTri*, const Vec*, const cM3d_Range*, float*) -asm bool cM3d_CrossY_Tri(const cM3dGTri*, const Vec*, const cM3d_Range*, float*) { +// cM3d_CrossY_Tri(const cM3dGTri*, const Vec*, const cM3d_Range*, f32*) +asm bool cM3d_CrossY_Tri(const cM3dGTri*, const Vec*, const cM3d_Range*, f32*) { nofralloc #include "SComponent/c_m3d/asm/func_8026AAE8.s" } // cM3d_CrossZ_Tri__FPC8cM3dGTriPC3Vecf -// cM3d_CrossZ_Tri(const cM3dGTri*, const Vec*, float) -asm bool cM3d_CrossZ_Tri(const cM3dGTri*, const Vec*, float) { +// cM3d_CrossZ_Tri(const cM3dGTri*, const Vec*, f32) +asm bool cM3d_CrossZ_Tri(const cM3dGTri*, const Vec*, f32) { nofralloc #include "SComponent/c_m3d/asm/func_8026ABD8.s" } @@ -257,45 +543,66 @@ asm int cM3d_Cross_LinSph_CrossPos(const cM3dGSph&, const cM3dGLin&, Vec*, Vec*) } // cM3d_Cross_CylSph__FPC8cM3dGCylPC8cM3dGSphPf -// cM3d_Cross_CylSph(const cM3dGCyl*, const cM3dGSph*, float*) -asm bool cM3d_Cross_CylSph(const cM3dGCyl*, const cM3dGSph*, float*) { +// cM3d_Cross_CylSph(const cM3dGCyl*, const cM3dGSph*, f32*) +asm bool cM3d_Cross_CylSph(const cM3dGCyl*, const cM3dGSph*, f32*) { nofralloc #include "SComponent/c_m3d/asm/func_8026B8A4.s" } // cM3d_Cross_CylSph__FPC8cM3dGCylPC8cM3dGSphP3VecPf -// cM3d_Cross_CylSph(const cM3dGCyl*, const cM3dGSph*, Vec*, float*) -asm bool cM3d_Cross_CylSph(const cM3dGCyl*, const cM3dGSph*, Vec*, float*) { +// cM3d_Cross_CylSph(const cM3dGCyl*, const cM3dGSph*, Vec*, f32*) +asm bool cM3d_Cross_CylSph(const cM3dGCyl*, const cM3dGSph*, Vec*, f32*) { nofralloc #include "SComponent/c_m3d/asm/func_8026BA48.s" } // cM3d_Cross_SphSph__FPC8cM3dGSphPC8cM3dGSphPf -// cM3d_Cross_SphSph(const cM3dGSph*, const cM3dGSph*, float*) -asm bool cM3d_Cross_SphSph(const cM3dGSph*, const cM3dGSph*, float*) { +// cM3d_Cross_SphSph(const cM3dGSph*, const cM3dGSph*, f32*) +asm bool cM3d_Cross_SphSph(const cM3dGSph*, const cM3dGSph*, f32*) { nofralloc #include "SComponent/c_m3d/asm/func_8026BC7C.s" } // cM3d_Cross_SphSph__FPC8cM3dGSphPC8cM3dGSphPfPf -// cM3d_Cross_SphSph(const cM3dGSph*, const cM3dGSph*, float*, float*) -asm bool cM3d_Cross_SphSph(const cM3dGSph*, const cM3dGSph*, float*, float*) { +// cM3d_Cross_SphSph(const cM3dGSph*, const cM3dGSph*, f32*, f32*) +asm bool cM3d_Cross_SphSph(const cM3dGSph*, const cM3dGSph*, f32*, f32*) { nofralloc #include "SComponent/c_m3d/asm/func_8026BCFC.s" } // cM3d_Cross_SphSph__FPC8cM3dGSphPC8cM3dGSphP3Vec -// cM3d_Cross_SphSph(const cM3dGSph*, const cM3dGSph*, Vec*) -asm void cM3d_Cross_SphSph(const cM3dGSph*, const cM3dGSph*, Vec*) { - nofralloc -#include "SComponent/c_m3d/asm/func_8026BD88.s" +bool cM3d_Cross_SphSph(const cM3dGSph* pSphereA, const cM3dGSph* pSphereB, Vec* pVecOut) { + f32 centerDist; + f32 overlapLen; + if (cM3d_Cross_SphSph(pSphereA, pSphereB, ¢erDist, &overlapLen)) { + if (!cM3d_IsZero(centerDist)) { + // could be an inlined function + f32 tmpF = pSphereB->GetR() / centerDist; + Vec tmp; + PSVECSubtract(&pSphereA->GetC(), &pSphereB->GetC(), &tmp); + PSVECScale(&tmp, &tmp, tmpF); + PSVECAdd(&tmp, &pSphereB->GetC(), pVecOut); + } else { + *pVecOut = pSphereA->GetC(); + } + return true; + } else { + return false; + } } // cM3d_CalcSphVsTriCrossPoint__FPC8cM3dGSphPC8cM3dGTriP3Vec -// cM3d_CalcSphVsTriCrossPoint(const cM3dGSph*, const cM3dGTri*, Vec*) -asm void cM3d_CalcSphVsTriCrossPoint(const cM3dGSph*, const cM3dGTri*, Vec*) { - nofralloc -#include "SComponent/c_m3d/asm/func_8026BE5C.s" +void cM3d_CalcSphVsTriCrossPoint(const cM3dGSph* pSphere, const cM3dGTri* pTriangle, Vec* pVecOut) { + Vec tmp2; + Vec tmp; + PSVECAdd(&pTriangle->mA, &pTriangle->mB, &tmp); + PSVECScale(&tmp, &tmp2, /* 0.5 */ lbl_804551C4); + f32 sqDist = PSVECSquareDistance(&tmp2, &pSphere->GetC()); + if (cM3d_IsZero(sqDist)) { + *pVecOut = pSphere->GetC(); + } else { + cM3d_InDivPos2(&pSphere->GetC(), &tmp2, pSphere->GetR() / sqDist, pVecOut); + } } // cM3d_Cross_SphTri__FPC8cM3dGSphPC8cM3dGTriP3Vec @@ -306,8 +613,8 @@ asm bool cM3d_Cross_SphTri(const cM3dGSph*, const cM3dGTri*, Vec*) { } // cM3d_Cross_CylCyl__FPC8cM3dGCylPC8cM3dGCylPf -// cM3d_Cross_CylCyl(const cM3dGCyl*, const cM3dGCyl*, float*) -asm bool cM3d_Cross_CylCyl(const cM3dGCyl*, const cM3dGCyl*, float*) { +// cM3d_Cross_CylCyl(const cM3dGCyl*, const cM3dGCyl*, f32*) +asm bool cM3d_Cross_CylCyl(const cM3dGCyl*, const cM3dGCyl*, f32*) { nofralloc #include "SComponent/c_m3d/asm/func_8026C22C.s" } @@ -334,17 +641,24 @@ asm int cM3d_Cross_CylLin(const cM3dGCyl*, const cM3dGLin*, Vec*, Vec*) { } // cM3d_Cross_CylPntPnt__FPC8cM3dGCylPC3VecPC3VecP3VecP3Vec -// cM3d_Cross_CylPntPnt(const cM3dGCyl*, const Vec*, const Vec*, Vec*, Vec*) -asm int cM3d_Cross_CylPntPnt(const cM3dGCyl*, const Vec*, const Vec*, Vec*, Vec*) { - nofralloc -#include "SComponent/c_m3d/asm/func_8026D044.s" +int cM3d_Cross_CylPntPnt(const cM3dGCyl* pCylinder, const Vec* pVecStart, const Vec* pVecEnd, + Vec* pVecOutA, Vec* pVecOutB) { + cM3dGLin lin; + lin.SetStartEnd(*pVecStart, *pVecEnd); + return cM3d_Cross_CylLin(pCylinder, &lin, pVecOutA, pVecOutB); } // cM3d_Cross_CylPnt__FPC8cM3dGCylPC3Vec -// cM3d_Cross_CylPnt(const cM3dGCyl*, const Vec*) -asm bool cM3d_Cross_CylPnt(const cM3dGCyl*, const Vec*) { - nofralloc -#include "SComponent/c_m3d/asm/func_8026D0B0.s" +bool cM3d_Cross_CylPnt(const cM3dGCyl* pCylinder, const Vec* pPoint) { + f32 dX = pCylinder->GetCP().getXDiff(pPoint); + f32 dZ = pCylinder->GetCP().getZDiff(pPoint); + f32 maxY = pCylinder->GetCP().y + pCylinder->GetH(); + if (dX * dX + dZ * dZ < pCylinder->GetR() * pCylinder->GetR() && + pCylinder->GetCP().y < pPoint->y && maxY > pPoint->y) { + return true; + } else { + return false; + } } // cM3d_Cross_CpsCps__FRC8cM3dGCpsRC8cM3dGCpsP3Vec @@ -382,6 +696,16 @@ asm bool cM3d_Cross_TriTri(const cM3dGTri&, const cM3dGTri&, Vec*) { #include "SComponent/c_m3d/asm/func_8026DE2C.s" } +inline f32 cM3d_2LinCenter(cM3dGLin const pLinA, f32 pLinAF, cM3dGLin const& pLinB, f32 pLinBF, + Vec* pVecOut) { + Vec tmp, tmp2; + pLinA.CalcPos(&tmp, pLinAF); + pLinB.CalcPos(&tmp2, pLinBF); + PSVECAdd(&tmp, &tmp2, pVecOut); + PSVECScale(pVecOut, pVecOut, /* 0.5 */ lbl_804551C4); + return PSVECDistance(&tmp, &tmp2); +} + // cM3d_Cross_CpsTri__FRC8cM3dGCps8cM3dGTriP3Vec // cM3d_Cross_CpsTri(const cM3dGCps&, cM3dGTri, Vec*) asm bool cM3d_Cross_CpsTri(const cM3dGCps&, cM3dGTri, Vec*) { @@ -390,10 +714,9 @@ asm bool cM3d_Cross_CpsTri(const cM3dGCps&, cM3dGTri, Vec*) { } // cM3d_CalcVecAngle__FRC3VecPsPs -// cM3d_CalcVecAngle(const Vec&, short*, short*) -asm void cM3d_CalcVecAngle(const Vec&, short*, short*) { - nofralloc -#include "SComponent/c_m3d/asm/func_8026E4FC.s" +void cM3d_CalcVecAngle(const Vec& pVec, s16* pOutA, s16* pOutB) { + *pOutA = -cM_atan2s(-pVec.z * pVec.y, /* 1.0 */ lbl_80455138); + *pOutB = cM_atan2s(-pVec.x * pVec.y, /* 1.0 */ lbl_80455138); } // cM3d_CalcVecZAngle__FRC3VecP5csXyz @@ -404,53 +727,126 @@ asm void cM3d_CalcVecZAngle(const Vec&, csXyz*) { } // cM3d_PlaneCrossLineProcWork__FfffffffPfPf -// cM3d_PlaneCrossLineProcWork(float, float, float, float, float, float, float, float*, float*) -asm void cM3d_PlaneCrossLineProcWork(float, float, float, float, float, float, float, float*, - float*) { - nofralloc -#include "SComponent/c_m3d/asm/func_8026E6C4.s" +void cM3d_PlaneCrossLineProcWork(f32 f1, f32 f2, f32 f3, f32 f4, f32 f5, f32 f6, f32 f7, f32* pF1, + f32* pF2) { + *pF1 = ((f2 * f7) - (f4 * f6)) / f5; + *pF2 = ((f3 * f6) - (f1 * f7)) / f5; } // cM3d_2PlaneCrossLine__FRC8cM3dGPlaRC8cM3dGPlaP8cM3dGLin -// cM3d_2PlaneCrossLine(const cM3dGPla&, const cM3dGPla&, cM3dGLin*) -asm int cM3d_2PlaneCrossLine(const cM3dGPla&, const cM3dGPla&, cM3dGLin*) { - nofralloc -#include "SComponent/c_m3d/asm/func_8026E6F0.s" +int cM3d_2PlaneCrossLine(const cM3dGPla& pPlaneA, const cM3dGPla& pPlaneB, cM3dGLin* pLinOut) { + Vec tmp; + PSVECCrossProduct(&pPlaneA.GetNP(), &pPlaneB.GetNP(), &tmp); + if (cM3d_IsZero(tmp.x) && cM3d_IsZero(tmp.y) && cM3d_IsZero(tmp.z)) { + return 0; + } else { + f32 absTX = fabsf(tmp.x); + f32 absTY = fabsf(tmp.y); + f32 absTZ = fabsf(tmp.z); + if (absTX >= absTY && absTX >= absTZ) { + cM3d_PlaneCrossLineProcWork(pPlaneA.GetNP().y, pPlaneA.GetNP().z, pPlaneB.GetNP().y, + pPlaneB.GetNP().z, tmp.x, pPlaneA.GetD(), pPlaneB.GetD(), + &pLinOut->GetStartP().y, &pLinOut->GetStartP().z); + pLinOut->GetStartP().x = /* 0.0 */ lbl_80455118; + } else if (absTY >= absTX && absTY >= absTZ) { + cM3d_PlaneCrossLineProcWork(pPlaneA.GetNP().z, pPlaneA.GetNP().x, pPlaneB.GetNP().z, + pPlaneB.GetNP().x, tmp.y, pPlaneA.GetD(), pPlaneB.GetD(), + &pLinOut->GetStartP().z, &pLinOut->GetStartP().x); + pLinOut->GetStartP().y = /* 0.0 */ lbl_80455118; + } else { + cM3d_PlaneCrossLineProcWork(pPlaneA.GetNP().x, pPlaneA.GetNP().y, pPlaneB.GetNP().x, + pPlaneB.GetNP().y, tmp.z, pPlaneA.GetD(), pPlaneB.GetD(), + &pLinOut->GetStartP().x, &pLinOut->GetStartP().y); + pLinOut->GetStartP().z = /* 0.0 */ lbl_80455118; + } + f32 scale = PSVECMag(&pLinOut->GetStartP()); + if (cM3d_IsZero(scale)) { + scale = /* 1.0 */ lbl_80455138; + } + PSVECScale(&tmp, &tmp, scale); + PSVECAdd(&pLinOut->GetStartP(), &tmp, &pLinOut->GetEndP()); + return 1; + } } // cM3d_3PlaneCrossPos__FRC8cM3dGPlaRC8cM3dGPlaRC8cM3dGPlaP3Vec -// cM3d_3PlaneCrossPos(const cM3dGPla&, const cM3dGPla&, const cM3dGPla&, Vec*) -asm bool cM3d_3PlaneCrossPos(const cM3dGPla&, const cM3dGPla&, const cM3dGPla&, Vec*) { - nofralloc -#include "SComponent/c_m3d/asm/func_8026E8A0.s" +bool cM3d_3PlaneCrossPos(const cM3dGPla& pPlaneA, const cM3dGPla& pPlaneB, const cM3dGPla& pPlaneC, + Vec* pVecOut) { + cM3dGLin lin; + if (!cM3d_2PlaneCrossLine(pPlaneA, pPlaneB, &lin)) { + return false; + } else { + const Vec* end = &lin.GetEndP(); + f32 tmpf1 = pPlaneC.getPlaneFunc(&lin.GetStartP()); + f32 tmpf2 = pPlaneC.getPlaneFunc(end); + if (!cM3d_CrossInfLineVsInfPlane_proc(tmpf1, tmpf2, &lin.GetStartP(), end, pVecOut)) { + return false; + } else { + return true; + } + } } // cM3d_lineVsPosSuisenCross__FPC8cM3dGLinPC3VecP3Vec -// cM3d_lineVsPosSuisenCross(const cM3dGLin*, const Vec*, Vec*) -asm float cM3d_lineVsPosSuisenCross(const cM3dGLin*, const Vec*, Vec*) { - nofralloc -#include "SComponent/c_m3d/asm/func_8026E980.s" +f32 cM3d_lineVsPosSuisenCross(const cM3dGLin* pLine, const Vec* pPoint, Vec* pVecOut) { + Vec tmp1; + Vec tmp2; + Vec tmp3; + // PSVECSubtract(&pLine->GetEndP(), &pLine->GetStartP(), &tmp1); + pLine->CalcVec(&tmp1); + f32 diffLen = PSVECSquareMag(&tmp1); + if (cM3d_IsZero(diffLen)) { + *pVecOut = *pPoint; + return /* 0.0 */ lbl_80455118; + } else { + PSVECSubtract(pPoint, &pLine->GetStartP(), &tmp2); + // f32 dotProd = PSVECDotProduct(&tmp2, &tmp1); + // f32 retVal = dotProd / diffLen; + f32 retVal = PSVECDotProduct(&tmp2, &tmp1) / diffLen; + PSVECScale(&tmp1, &tmp3, retVal); + PSVECAdd(&tmp3, &pLine->GetStartP(), pVecOut); + return retVal; + } } // cM3d_lineVsPosSuisenCross__FRC3VecRC3VecRC3VecP3Vec -// cM3d_lineVsPosSuisenCross(const Vec&, const Vec&, const Vec&, Vec*) -asm float cM3d_lineVsPosSuisenCross(const Vec&, const Vec&, const Vec&, Vec*) { - nofralloc -#include "SComponent/c_m3d/asm/func_8026EA5C.s" +f32 cM3d_lineVsPosSuisenCross(const Vec& pLinePointA, const Vec& pLinePointB, const Vec& pPoint, + Vec* pVecOut) { + Vec tmp1; + Vec tmp2; + Vec tmp3; + PSVECSubtract(&pLinePointB, &pLinePointA, &tmp1); + f32 diffLen = PSVECSquareMag(&tmp1); + if (cM3d_IsZero(diffLen)) { + *pVecOut = pPoint; + return /* 0.0 */ lbl_80455118; + } else { + PSVECSubtract(&pPoint, &pLinePointA, &tmp2); + f32 dotProd = PSVECDotProduct(&tmp2, &tmp1); + f32 retVal = dotProd / diffLen; + PSVECScale(&tmp1, &tmp3, retVal); + PSVECAdd(&tmp3, &pLinePointA, pVecOut); + return retVal; + } } // cM3d_2PlaneLinePosNearPos__FRC8cM3dGPlaRC8cM3dGPlaPC3VecP3Vec -// cM3d_2PlaneLinePosNearPos(const cM3dGPla&, const cM3dGPla&, const Vec*, Vec*) -asm int cM3d_2PlaneLinePosNearPos(const cM3dGPla&, const cM3dGPla&, const Vec*, Vec*) { - nofralloc -#include "SComponent/c_m3d/asm/func_8026EB38.s" +int cM3d_2PlaneLinePosNearPos(const cM3dGPla& pPlaneA, const cM3dGPla& pPlaneB, const Vec* pVec, + Vec* pVecOut) { + cM3dGLin lin; + if (!cM3d_2PlaneCrossLine(pPlaneA, pPlaneB, &lin)) { + return FALSE; + } else { + cM3d_lineVsPosSuisenCross(&lin, pVec, pVecOut); + return TRUE; + } } // cM3d_CrawVec__FRC3VecRC3VecP3Vec -// cM3d_CrawVec(const Vec&, const Vec&, Vec*) -asm void cM3d_CrawVec(const Vec&, const Vec&, Vec*) { - nofralloc -#include "SComponent/c_m3d/asm/func_8026EBBC.s" +void cM3d_CrawVec(const Vec& pVecA, const Vec& pVecB, Vec* pVecOut) { + Vec tmp; + PSVECScale(&pVecA, &tmp, fabsf(pVecB.x * pVecA.x + pVecB.y * pVecA.y + pVecB.z * pVecA.z)); + PSVECAdd(&tmp, &pVecB, pVecOut); } extern "C" { diff --git a/libs/SSystem/SComponent/c_m3d_g_aab.cpp b/libs/SSystem/SComponent/c_m3d_g_aab.cpp index edc0bd661d1..c01a35fbfc1 100644 --- a/libs/SSystem/SComponent/c_m3d_g_aab.cpp +++ b/libs/SSystem/SComponent/c_m3d_g_aab.cpp @@ -2,79 +2,73 @@ #include "SComponent/c_m3d_g_aab.h" +// additional symbols needed for c_m3d_g_aab.cpp +// autogenerated by split.py v0.3 at 2021-01-01 14:25:53.390342 +extern f32 lbl_804551D4; +extern f32 lbl_804551D0; +extern f32 lbl_804551D8; + // Set__8cM3dGAabFPC4cXyzPC4cXyz -// cM3dGAab::Set(const cXyz*, const cXyz*) -asm void cM3dGAab::Set(const cXyz*, const cXyz*) { - nofralloc -#include "SComponent/c_m3d_g_aab/asm/func_8026EC54.s" +void cM3dGAab::Set(const cXyz* pMin, const cXyz* pMax) { + mMin = *pMin; + mMax = *pMax; } // CrossY__8cM3dGAabCFPC4cXyz -// cM3dGAab::CrossY(const cXyz*) const -asm bool cM3dGAab::CrossY(const cXyz*) const { - nofralloc -#include "SComponent/c_m3d_g_aab/asm/func_8026EC88.s" +bool cM3dGAab::CrossY(const cXyz* pOther) const { + if (mMin.x > pOther->x || mMax.x < pOther->x || mMin.z > pOther->z || mMax.z < pOther->z) { + return false; + } else { + return true; + } } // UnderPlaneYUnder__8cM3dGAabCFf -// cM3dGAab::UnderPlaneYUnder(float) const -asm bool cM3dGAab::UnderPlaneYUnder(float) const { - nofralloc -#include "SComponent/c_m3d_g_aab/asm/func_8026ECD0.s" +bool cM3dGAab::UnderPlaneYUnder(f32 pY) const { + return mMin.y < pY; } // TopPlaneYUnder__8cM3dGAabCFf -// cM3dGAab::TopPlaneYUnder(float) const -asm bool cM3dGAab::TopPlaneYUnder(float) const { - nofralloc -#include "SComponent/c_m3d_g_aab/asm/func_8026ECE4.s" +bool cM3dGAab::TopPlaneYUnder(f32 pY) const { + return mMax.y < pY; } // ClearForMinMax__8cM3dGAabFv -// cM3dGAab::ClearForMinMax(void) -asm void cM3dGAab::ClearForMinMax(void) { - nofralloc -#include "SComponent/c_m3d_g_aab/asm/func_8026ECF8.s" +void cM3dGAab::ClearForMinMax(void) { + mMin.setAll(lbl_804551D0); + mMax.setAll(lbl_804551D4); } // SetMinMax__8cM3dGAabFRC4cXyz -// cM3dGAab::SetMinMax(const cXyz&) -asm void cM3dGAab::SetMinMax(const cXyz&) { - nofralloc -#include "SComponent/c_m3d_g_aab/asm/func_8026ED1C.s" +void cM3dGAab::SetMinMax(const cXyz& pMinMax) { + this->SetMin(pMinMax); + this->SetMax(pMinMax); } // SetMinMax__8cM3dGAabFRC8cM3dGAab -// cM3dGAab::SetMinMax(const cM3dGAab&) -asm void cM3dGAab::SetMinMax(const cM3dGAab&) { - nofralloc -#include "SComponent/c_m3d_g_aab/asm/func_8026ED60.s" +void cM3dGAab::SetMinMax(const cM3dGAab& pOther) { + this->SetMinMax(pOther.mMin); + this->SetMinMax(pOther.mMax); } // SetMin__8cM3dGAabFRC4cXyz -// cM3dGAab::SetMin(const cXyz&) -asm void cM3dGAab::SetMin(const cXyz&) { - nofralloc -#include "SComponent/c_m3d_g_aab/asm/func_8026EDA4.s" +void cM3dGAab::SetMin(const cXyz& pMin) { + mMin.setMin(pMin); } // SetMax__8cM3dGAabFRC4cXyz -// cM3dGAab::SetMax(const cXyz&) -asm void cM3dGAab::SetMax(const cXyz&) { - nofralloc -#include "SComponent/c_m3d_g_aab/asm/func_8026EDE4.s" +void cM3dGAab::SetMax(const cXyz& pMax) { + mMax.setMax(pMax); } // CalcCenter__8cM3dGAabCFP4cXyz -// cM3dGAab::CalcCenter(cXyz*) const -asm void cM3dGAab::CalcCenter(cXyz*) const { - nofralloc -#include "SComponent/c_m3d_g_aab/asm/func_8026EE24.s" +void cM3dGAab::CalcCenter(cXyz* pOut) const { + PSVECAdd(&mMin, &mMax, pOut); + PSVECScale(pOut, pOut, lbl_804551D8); } // PlusR__8cM3dGAabFf -// cM3dGAab::PlusR(float) -asm void cM3dGAab::PlusR(float) { - nofralloc -#include "SComponent/c_m3d_g_aab/asm/func_8026EE68.s" +void cM3dGAab::PlusR(f32 pR) { + mMin -= pR; + mMax += pR; } diff --git a/libs/SSystem/SComponent/c_m3d_g_cir.cpp b/libs/SSystem/SComponent/c_m3d_g_cir.cpp index 83e3f7f2ca6..c6461fc4d1f 100644 --- a/libs/SSystem/SComponent/c_m3d_g_cir.cpp +++ b/libs/SSystem/SComponent/c_m3d_g_cir.cpp @@ -3,32 +3,18 @@ #include "SComponent/c_m3d_g_cir.h" // __ct__8cM3dGCirFv -// cM3dGCir::cM3dGCir(void) -asm cM3dGCir::cM3dGCir(void) { - nofralloc -#include "SComponent/c_m3d_g_cir/asm/func_8026EEB4.s" -} - -extern "C" { +cM3dGCir::cM3dGCir(void) {} +// inlined here // __dt__8cM2dGCirFv -// cM2dGCir::~cM2dGCir(void) -asm void __dt__8cM2dGCirFv(void) { - nofralloc -#include "SComponent/c_m3d_g_cir/asm/func_8026EED0.s" -} -} // __dt__8cM3dGCirFv -// cM3dGCir::~cM3dGCir(void) -asm cM3dGCir::~cM3dGCir(void) { - nofralloc -#include "SComponent/c_m3d_g_cir/asm/func_8026EF18.s" -} +cM3dGCir::~cM3dGCir(void) {} // Set__8cM3dGCirFffff -// cM3dGCir::Set(float, float, float, float) -asm void cM3dGCir::Set(float, float, float, float) { - nofralloc -#include "SComponent/c_m3d_g_cir/asm/func_8026EF74.s" +void cM3dGCir::Set(f32 pPosX, f32 pPosY, f32 pPosZ, f32 pRadius) { + mPosX = pPosX; + mPosY = pPosY; + mRadius = pRadius; + mPosZ = pPosZ; } diff --git a/libs/SSystem/SComponent/c_m3d_g_cps.cpp b/libs/SSystem/SComponent/c_m3d_g_cps.cpp index b65d244e3bf..28010f892fb 100644 --- a/libs/SSystem/SComponent/c_m3d_g_cps.cpp +++ b/libs/SSystem/SComponent/c_m3d_g_cps.cpp @@ -3,36 +3,24 @@ #include "SComponent/c_m3d_g_cps.h" // __ct__8cM3dGCpsFv -// cM3dGCps::cM3dGCps(void) -asm cM3dGCps::cM3dGCps(void) { - nofralloc -#include "SComponent/c_m3d_g_cps/asm/func_8026EF88.s" -} +cM3dGCps::cM3dGCps(void) {} // __dt__8cM3dGCpsFv -// cM3dGCps::~cM3dGCps(void) -asm cM3dGCps::~cM3dGCps(void) { - nofralloc -#include "SComponent/c_m3d_g_cps/asm/func_8026EFA4.s" -} +cM3dGCps::~cM3dGCps(void) {} // Set__8cM3dGCpsFRC4cXyzRC4cXyzf -// cM3dGCps::Set(const cXyz&, const cXyz&, float) -asm void cM3dGCps::Set(const cXyz&, const cXyz&, float) { - nofralloc -#include "SComponent/c_m3d_g_cps/asm/func_8026F000.s" +void cM3dGCps::Set(const cXyz& pStart, const cXyz& pEnd, f32 pUnkF) { + this->SetStartEnd(pStart, pEnd); + unk_0x1c = pUnkF; } // Set__8cM3dGCpsFRC9cM3dGCpsS -// cM3dGCps::Set(const cM3dGCpsS&) -asm void cM3dGCps::Set(const cM3dGCpsS&) { - nofralloc -#include "SComponent/c_m3d_g_cps/asm/func_8026F03C.s" +void cM3dGCps::Set(const cM3dGCpsS& other) { + this->SetStartEnd(other.mStart, other.mEnd); + unk_0x1c = other.unk_0x1c; } // SetCps__8cM3dGCpsFRC8cM3dGCps -// cM3dGCps::SetCps(const cM3dGCps&) -asm void cM3dGCps::SetCps(const cM3dGCps&) { - nofralloc -#include "SComponent/c_m3d_g_cps/asm/func_8026F080.s" +void cM3dGCps::SetCps(const cM3dGCps& other) { + this->Set(other.GetStartP(), other.GetEndP(), other.unk_0x1c); } diff --git a/libs/SSystem/SComponent/c_m3d_g_cyl.cpp b/libs/SSystem/SComponent/c_m3d_g_cyl.cpp index fefedadc964..14b7bc17e59 100644 --- a/libs/SSystem/SComponent/c_m3d_g_cyl.cpp +++ b/libs/SSystem/SComponent/c_m3d_g_cyl.cpp @@ -1,66 +1,61 @@ /* c_m3d_g_cyl.cpp autogenerated by split.py v0.3 at 2021-01-01 14:45:46.600671 */ #include "SComponent/c_m3d_g_cyl.h" +#include "SComponent/c_m3d.h" // __ct__8cM3dGCylFPC4cXyzff -// cM3dGCyl::cM3dGCyl(const cXyz*, float, float) -asm cM3dGCyl::cM3dGCyl(const cXyz*, float, float) { - nofralloc -#include "SComponent/c_m3d_g_cyl/asm/func_8026F0A8.s" +cM3dGCyl::cM3dGCyl(const cXyz* pCenter, f32 pRadius, f32 pHeight) { + this->SetC(*pCenter); + this->SetR(pRadius); + this->SetH(pHeight); } // Set__8cM3dGCylFRC9cM3dGCylS -// cM3dGCyl::Set(const cM3dGCylS&) -asm void cM3dGCyl::Set(const cM3dGCylS&) { - nofralloc -#include "SComponent/c_m3d_g_cyl/asm/func_8026F114.s" +void cM3dGCyl::Set(const cM3dGCylS& other) { + this->SetC(cXyz(other.mCenter)); + this->SetR(other.mRadius); + this->SetH(other.mHeight); } // Set__8cM3dGCylFRC4cXyzff -// cM3dGCyl::Set(const cXyz&, float, float) -asm void cM3dGCyl::Set(const cXyz&, float, float) { - nofralloc -#include "SComponent/c_m3d_g_cyl/asm/func_8026F180.s" +void cM3dGCyl::Set(const cXyz& pCenter, f32 pRadius, f32 pHeight) { + this->SetC(pCenter); + this->SetR(pRadius); + this->SetH(pHeight); } // SetC__8cM3dGCylFRC4cXyz -// cM3dGCyl::SetC(const cXyz&) -asm void cM3dGCyl::SetC(const cXyz&) { - nofralloc -#include "SComponent/c_m3d_g_cyl/asm/func_8026F1DC.s" +void cM3dGCyl::SetC(const cXyz& pCenter) { + mCenter = pCenter; } // SetH__8cM3dGCylFf -// cM3dGCyl::SetH(float) -asm void cM3dGCyl::SetH(float) { - nofralloc -#include "SComponent/c_m3d_g_cyl/asm/func_8026F1F8.s" +void cM3dGCyl::SetH(f32 pHeight) { + mHeight = pHeight; } // SetR__8cM3dGCylFf -// cM3dGCyl::SetR(float) -asm void cM3dGCyl::SetR(float) { - nofralloc -#include "SComponent/c_m3d_g_cyl/asm/func_8026F200.s" +void cM3dGCyl::SetR(f32 pRadius) { + mRadius = pRadius; } // cross__8cM3dGCylCFPC8cM3dGSphP4cXyz -// cM3dGCyl::cross(const cM3dGSph*, cXyz*) const -asm bool cM3dGCyl::cross(const cM3dGSph*, cXyz*) const { - nofralloc -#include "SComponent/c_m3d_g_cyl/asm/func_8026F208.s" +bool cM3dGCyl::cross(const cM3dGSph* pOther, cXyz* pOut) const { + f32 f; + return cM3d_Cross_CylSph(this, pOther, pOut, &f); } // cross__8cM3dGCylCFPC8cM3dGCylP4cXyz -// cM3dGCyl::cross(const cM3dGCyl*, cXyz*) const -asm bool cM3dGCyl::cross(const cM3dGCyl*, cXyz*) const { - nofralloc -#include "SComponent/c_m3d_g_cyl/asm/func_8026F22C.s" +bool cM3dGCyl::cross(const cM3dGCyl* pOther, cXyz* pOut) const { + return cM3d_Cross_CylCyl(this, pOther, pOut); } // calcMinMax__8cM3dGCylFP4cXyzP4cXyz -// cM3dGCyl::calcMinMax(cXyz*, cXyz*) -asm void cM3dGCyl::calcMinMax(cXyz*, cXyz*) { - nofralloc -#include "SComponent/c_m3d_g_cyl/asm/func_8026F24C.s" +void cM3dGCyl::calcMinMax(cXyz* pMin, cXyz* pMax) { + pMin->x = mCenter.x - mRadius; + pMin->y = mCenter.y; + pMin->z = mCenter.z - mRadius; + pMax->x = mCenter.x + mRadius; + pMax->y = mCenter.y + mHeight; + pMax->z = mCenter.z + mRadius; } diff --git a/libs/SSystem/SComponent/c_m3d_g_lin.cpp b/libs/SSystem/SComponent/c_m3d_g_lin.cpp index 8a4b67721f1..04a52f45c3e 100644 --- a/libs/SSystem/SComponent/c_m3d_g_lin.cpp +++ b/libs/SSystem/SComponent/c_m3d_g_lin.cpp @@ -1,38 +1,31 @@ /* c_m3d_g_lin.cpp autogenerated by split.py v0.3 at 2021-01-01 14:48:45.519641 */ -#include "SComponent/c_m3d_g_lin.h" +#include "SComponent/c_m3d.h" // __ct__8cM3dGLinFRC4cXyzRC4cXyz -// cM3dGLin::cM3dGLin(const cXyz&, const cXyz&) -asm cM3dGLin::cM3dGLin(const cXyz&, const cXyz&) { - nofralloc -#include "SComponent/c_m3d_g_lin/asm/func_8026F2A8.s" -} +cM3dGLin::cM3dGLin(const cXyz& pStart, const cXyz& pEnd) : mStart(pStart), mEnd(pEnd) {} // SetStartEnd__8cM3dGLinFRC4cXyzRC4cXyz -// cM3dGLin::SetStartEnd(const cXyz&, const cXyz&) -asm void cM3dGLin::SetStartEnd(const cXyz&, const cXyz&) { - nofralloc -#include "SComponent/c_m3d_g_lin/asm/func_8026F2E8.s" +void cM3dGLin::SetStartEnd(const cXyz& pStart, const cXyz& pEnd) { + mStart = pStart; + mEnd = pEnd; } // SetStartEnd__8cM3dGLinFRC3VecRC3Vec -// cM3dGLin::SetStartEnd(const Vec&, const Vec&) -asm void cM3dGLin::SetStartEnd(const Vec&, const Vec&) { - nofralloc -#include "SComponent/c_m3d_g_lin/asm/func_8026F31C.s" +void cM3dGLin::SetStartEnd(const Vec& pStart, const Vec& pEnd) { + mStart = pStart; + mEnd = pEnd; } // CalcPos__8cM3dGLinCFP3Vecf -// cM3dGLin::CalcPos(Vec*, float) const -asm void cM3dGLin::CalcPos(Vec*, float) const { - nofralloc -#include "SComponent/c_m3d_g_lin/asm/func_8026F350.s" +void cM3dGLin::CalcPos(Vec* pOut, f32 pScale) const { + Vec tmp; + PSVECSubtract(&mEnd, &mStart, &tmp); + PSVECScale(&tmp, &tmp, pScale); + PSVECAdd(&tmp, &mStart, pOut); } // SetEnd__8cM3dGLinFRC4cXyz -// cM3dGLin::SetEnd(const cXyz&) -asm void cM3dGLin::SetEnd(const cXyz&) { - nofralloc -#include "SComponent/c_m3d_g_lin/asm/func_8026F3C0.s" +void cM3dGLin::SetEnd(const cXyz& pEnd) { + mEnd = pEnd; } \ No newline at end of file diff --git a/libs/SSystem/SComponent/c_m3d_g_pla.cpp b/libs/SSystem/SComponent/c_m3d_g_pla.cpp index 55f2bc5bbad..0a3c28b917f 100644 --- a/libs/SSystem/SComponent/c_m3d_g_pla.cpp +++ b/libs/SSystem/SComponent/c_m3d_g_pla.cpp @@ -1,52 +1,58 @@ /* c_m3d_g_pla.cpp autogenerated by split.py v0.3 at 2021-01-01 14:50:54.810233 */ #include "SComponent/c_m3d_g_pla.h" +#include "SComponent/c_m3d.h" // __ct__8cM3dGPlaFPC4cXyzf -// cM3dGPla::cM3dGPla(const cXyz*, float) -asm cM3dGPla::cM3dGPla(const cXyz*, float) { - nofralloc -#include "SComponent/c_m3d_g_pla/asm/func_8026F3DC.s" -} +cM3dGPla::cM3dGPla(const cXyz* pNormal, f32 pD) : mNormal(*pNormal), mD(pD) {} // crossInfLin__8cM3dGPlaCFRC4cXyzRC4cXyzR4cXyz -// cM3dGPla::crossInfLin(const cXyz&, const cXyz&, cXyz&) const -asm void cM3dGPla::crossInfLin(const cXyz&, const cXyz&, cXyz&) const { - nofralloc -#include "SComponent/c_m3d_g_pla/asm/func_8026F408.s" +bool cM3dGPla::crossInfLin(const cXyz& pStart, const cXyz& pEnd, cXyz& out) const { + f32 tmp1 = (mD + PSVECDotProduct(&mNormal, &pStart)); + f32 tmp2 = tmp1 - (mD + PSVECDotProduct(&mNormal, &pEnd)); + if (fabsf(tmp2) < lbl_80451180) { + out = pEnd; + return false; + } else { + cM3d_InDivPos2(&pStart, &pEnd, (tmp1 / tmp2), &out); + return true; + } } // SetupNP0__8cM3dGPlaFRC3VecRC3Vec -// cM3dGPla::SetupNP0(const Vec&, const Vec&) -asm void cM3dGPla::SetupNP0(const Vec&, const Vec&) { - nofralloc -#include "SComponent/c_m3d_g_pla/asm/func_8026F4C4.s" +void cM3dGPla::SetupNP0(const Vec& pNormal, const Vec& pPoint) { + mNormal = pNormal; + PSVECNormalize(&mNormal, &mNormal); + mD = -PSVECDotProduct(&mNormal, &pPoint); } // SetupNP__8cM3dGPlaFRC3VecRC3Vec -// cM3dGPla::SetupNP(const Vec&, const Vec&) -asm void cM3dGPla::SetupNP(const Vec&, const Vec&) { - nofralloc -#include "SComponent/c_m3d_g_pla/asm/func_8026F52C.s" +void cM3dGPla::SetupNP(const Vec& pNormal, const Vec& pPoint) { + mNormal = pNormal; + mD = -PSVECDotProduct(&mNormal, &pPoint); } // getCrossY__8cM3dGPlaCFRC4cXyzPf -// cM3dGPla::getCrossY(const cXyz&, float*) const -asm bool cM3dGPla::getCrossY(const cXyz&, float*) const { - nofralloc -#include "SComponent/c_m3d_g_pla/asm/func_8026F57C.s" +bool cM3dGPla::getCrossY(const cXyz& pPoint, f32* pOut) const { + if (fabsf(mNormal.y) < lbl_80451180) { + return false; + } else { + *pOut = (-mNormal.x * pPoint.x - mNormal.z * pPoint.z - mD) / mNormal.y; + return true; + } } // getCrossYLessD__8cM3dGPlaCFRC3VecPf -// cM3dGPla::getCrossYLessD(const Vec&, float*) const -asm bool cM3dGPla::getCrossYLessD(const Vec&, float*) const { - nofralloc -#include "SComponent/c_m3d_g_pla/asm/func_8026F5D4.s" +bool cM3dGPla::getCrossYLessD(const Vec& pPoint, f32* pOut) const { + if (fabsf(mNormal.y) < lbl_80451180) { + return false; + } else { + *pOut = (-mNormal.x * pPoint.x - mNormal.z * pPoint.z) / mNormal.y; + return true; + } } // Set__8cM3dGPlaFPC8cM3dGPla -// cM3dGPla::Set(const cM3dGPla*) -asm void cM3dGPla::Set(const cM3dGPla*) { - nofralloc -#include "SComponent/c_m3d_g_pla/asm/func_8026F624.s" +void cM3dGPla::Set(const cM3dGPla* pOther) { + *this = *pOther; } diff --git a/libs/SSystem/SComponent/c_m3d_g_sph.cpp b/libs/SSystem/SComponent/c_m3d_g_sph.cpp index 4098bcefc1a..7f0883a6366 100644 --- a/libs/SSystem/SComponent/c_m3d_g_sph.cpp +++ b/libs/SSystem/SComponent/c_m3d_g_sph.cpp @@ -1,52 +1,47 @@ /* c_m3d_g_sph.cpp autogenerated by split.py v0.3 at 2021-01-01 14:53:31.074880 */ #include "SComponent/c_m3d_g_sph.h" +#include "SComponent/c_m3d.h" // SetC__8cM3dGSphFRC4cXyz -// cM3dGSph::SetC(const cXyz&) -asm void cM3dGSph::SetC(const cXyz&) { - nofralloc -#include "SComponent/c_m3d_g_sph/asm/func_8026F648.s" +void cM3dGSph::SetC(const cXyz& pCenter) { + mCenter = pCenter; } // Set__8cM3dGSphFRC4cXyzf -// cM3dGSph::Set(const cXyz&, float) -asm void cM3dGSph::Set(const cXyz&, float) { - nofralloc -#include "SComponent/c_m3d_g_sph/asm/func_8026F664.s" +void cM3dGSph::Set(const cXyz& pCenter, f32 pRadius) { + this->SetC(pCenter); + this->SetR(pRadius); } // Set__8cM3dGSphFRC9cM3dGSphS -// cM3dGSph::Set(const cM3dGSphS&) -asm void cM3dGSph::Set(const cM3dGSphS&) { - nofralloc -#include "SComponent/c_m3d_g_sph/asm/func_8026F6A8.s" +void cM3dGSph::Set(const cM3dGSphS& pOther) { + this->SetC(cXyz(pOther.mCenter)); + this->SetR(pOther.mRadius); } // SetR__8cM3dGSphFf -// cM3dGSph::SetR(float) -asm void cM3dGSph::SetR(float) { - nofralloc -#include "SComponent/c_m3d_g_sph/asm/func_8026F708.s" +void cM3dGSph::SetR(f32 pRadius) { + mRadius = pRadius; } // cross__8cM3dGSphCFPC8cM3dGSphP4cXyz -// cM3dGSph::cross(const cM3dGSph*, cXyz*) const -asm bool cM3dGSph::cross(const cM3dGSph*, cXyz*) const { - nofralloc -#include "SComponent/c_m3d_g_sph/asm/func_8026F710.s" +bool cM3dGSph::cross(const cM3dGSph* pOther, cXyz* pOut) const { + return cM3d_Cross_SphSph(pOther, this, pOut); } // cross__8cM3dGSphCFPC8cM3dGCylP4cXyz -// cM3dGSph::cross(const cM3dGCyl*, cXyz*) const -asm bool cM3dGSph::cross(const cM3dGCyl*, cXyz*) const { - nofralloc -#include "SComponent/c_m3d_g_sph/asm/func_8026F73C.s" +bool cM3dGSph::cross(const cM3dGCyl* pCylinder, cXyz* pOut) const { + f32 f; + return cM3d_Cross_CylSph(pCylinder, this, pOut, &f); } // GetMinMaxCube__8cM3dGSphCFR4cXyzR4cXyz -// cM3dGSph::GetMinMaxCube(cXyz&, cXyz&) const -asm void cM3dGSph::GetMinMaxCube(cXyz&, cXyz&) const { - nofralloc -#include "SComponent/c_m3d_g_sph/asm/func_8026F76C.s" +void cM3dGSph::GetMinMaxCube(cXyz& pMin, cXyz& pMax) const { + pMin.x = mCenter.x - mRadius; + pMin.y = mCenter.y - mRadius; + pMin.z = mCenter.z - mRadius; + pMax.x = mCenter.x + mRadius; + pMax.y = mCenter.y + mRadius; + pMax.z = mCenter.z + mRadius; } diff --git a/libs/SSystem/SComponent/c_m3d_g_tri.cpp b/libs/SSystem/SComponent/c_m3d_g_tri.cpp index 3b51b1eddc3..dc7162a7565 100644 --- a/libs/SSystem/SComponent/c_m3d_g_tri.cpp +++ b/libs/SSystem/SComponent/c_m3d_g_tri.cpp @@ -1,31 +1,33 @@ /* c_m3d_g_tri.cpp autogenerated by split.py v0.3 at 2021-01-01 14:55:53.593962 */ #include "SComponent/c_m3d_g_tri.h" +#include "SComponent/c_m3d.h" // cross__8cM3dGTriCFPC8cM3dGCylP3Vec -// cM3dGTri::cross(const cM3dGCyl*, Vec*) const -asm bool cM3dGTri::cross(const cM3dGCyl*, Vec*) const { - nofralloc -#include "SComponent/c_m3d_g_tri/asm/func_8026F7B0.s" +bool cM3dGTri::cross(const cM3dGCyl* pCylinder, Vec* out) const { + return cM3d_Cross_CylTri(pCylinder, this, out); } // setPos__8cM3dGTriFPC3VecPC3VecPC3Vec -// cM3dGTri::setPos(const Vec*, const Vec*, const Vec*) -asm void cM3dGTri::setPos(const Vec*, const Vec*, const Vec*) { - nofralloc -#include "SComponent/c_m3d_g_tri/asm/func_8026F7DC.s" +void cM3dGTri::setPos(const Vec* pA, const Vec* pB, const Vec* pC) { + mA = *pA; + mB = *pB; + mC = *pC; + cM3d_CalcPla(&mA, &mB, &mC, &mPlane.mNormal, &mPlane.mD); } // setBg__8cM3dGTriFPC3VecPC3VecPC3VecPC8cM3dGPla -// cM3dGTri::setBg(const Vec*, const Vec*, const Vec*, const cM3dGPla*) -asm void cM3dGTri::setBg(const Vec*, const Vec*, const Vec*, const cM3dGPla*) { - nofralloc -#include "SComponent/c_m3d_g_tri/asm/func_8026F85C.s" +void cM3dGTri::setBg(const Vec* pA, const Vec* pB, const Vec* pC, const cM3dGPla* pPlane) { + mA = *pA; + mB = *pB; + mC = *pC; + mPlane.Set(pPlane); } // set__8cM3dGTriFPC3VecPC3VecPC3VecPC3Vec -// cM3dGTri::set(const Vec*, const Vec*, const Vec*, const Vec*) -asm void cM3dGTri::set(const Vec*, const Vec*, const Vec*, const Vec*) { - nofralloc -#include "SComponent/c_m3d_g_tri/asm/func_8026F8C8.s" +void cM3dGTri::set(const Vec* pA, const Vec* pB, const Vec* pC, const Vec* pNormal) { + mA = *pA; + mB = *pB; + mC = *pC; + mPlane.SetupNP(*pNormal, *pA); } diff --git a/libs/SSystem/SComponent/c_sxyz.cpp b/libs/SSystem/SComponent/c_sxyz.cpp index a1b6ac82c80..8ec5ea17ca0 100644 --- a/libs/SSystem/SComponent/c_sxyz.cpp +++ b/libs/SSystem/SComponent/c_sxyz.cpp @@ -2,6 +2,9 @@ #include "SComponent/c_sxyz.h" +extern u8 lbl_804550A0; +extern u8 lbl_80430DA8; + // __ct__5csXyzFsss csXyz::csXyz(s16 pX, s16 pY, s16 pZ) { mX = pX; @@ -28,11 +31,11 @@ csXyz csXyz::operator-(csXyz& other) { // __ml__5csXyzFf #ifdef NON_MATCHING -csXyz csXyz::operator*(float pFactor) { +csXyz csXyz::operator*(f32 pFactor) { return csXyz(mX * pFactor, mY * pFactor, mZ * pFactor); } #else -asm csXyz csXyz::operator*(float) { +asm csXyz csXyz::operator*(f32) { nofralloc #include "SComponent/c_sxyz/asm/func_802674E8.s" } diff --git a/libs/SSystem/SComponent/c_xyz.cpp b/libs/SSystem/SComponent/c_xyz.cpp index fa266902f8f..3d398f6a978 100644 --- a/libs/SSystem/SComponent/c_xyz.cpp +++ b/libs/SSystem/SComponent/c_xyz.cpp @@ -17,7 +17,7 @@ cXyz cXyz::operator-(const Vec& vec) const { } // __ml__4cXyzCFf -cXyz cXyz::operator*(float scale) const { +cXyz cXyz::operator*(f32 scale) const { Vec ret; PSVECScale(this, &ret, scale); return cXyz(ret); @@ -37,7 +37,7 @@ cXyz cXyz::operator*(const Vec& vec) const { } // __dv__4cXyzCFf -cXyz cXyz::operator/(float scale) const { +cXyz cXyz::operator/(f32 scale) const { Vec ret; PSVECScale(this, &ret, /* 1.0 */ lbl_80455070 / scale); return cXyz(ret); @@ -90,12 +90,12 @@ cXyz cXyz::normZC(void) const { if (!local_40.checkEpsilon()) { cXyz ret; // ret.baseZ(); - float v = lbl_80455080; + f32 v = lbl_80455080; ret.x = v; ret.y = v; v = lbl_80455070; ret.z = v; - // should do a struct copy with word and not float loads + // should do a struct copy with word and not f32 loads vec = lbl_8039A868; vec = ret; } @@ -147,14 +147,14 @@ bool cXyz::operator!=(const Vec& vec) const { // isZero__4cXyzCFv bool cXyz::isZero(void) const { - // return (float)fabsf(this->x) < lbl_80455084 * lbl_80450AEC && - // (float)fabsf(this->y) < lbl_80455084 * lbl_80450AEC && - // (float)fabsf(this->z) < lbl_80455084 * lbl_80450AEC; - return (float)fabsf(this->x) < + // return (f32)fabsf(this->x) < lbl_80455084 * lbl_80450AEC && + // (f32)fabsf(this->y) < lbl_80455084 * lbl_80450AEC && + // (f32)fabsf(this->z) < lbl_80455084 * lbl_80450AEC; + return fabsf(this->x) < /* 32 */ lbl_80455084 * - /* MSL_C.PPCEABI.bare.H::__float_epsilon */ *(float*)0x80450AEC && - (float)fabsf(this->y) < lbl_80455084 * *(float*)0x80450AEC && - (float)fabsf(this->z) < lbl_80455084 * *(float*)0x80450AEC; + /* MSL_C.PPCEABI.bare.H::__f32_epsilon */ *(f32*)0x80450AEC && + fabsf(this->y) < lbl_80455084 * *(f32*)0x80450AEC && + fabsf(this->z) < lbl_80455084 * *(f32*)0x80450AEC; } // atan2sX_Z__4cXyzCFv