summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorlepelog <lepelog@users.noreply.github.com>2021-01-26 23:48:47 +0100
committerGitHub <noreply@github.com>2021-01-26 17:48:47 -0500
commit1e105b87f104badeadcb1d2b0ddbdff1310eb5be (patch)
tree7e923852259e9eaccf0a4835ad0adb8240d251af
parentb8d0da505dcad87937ef261961f5b454c7f4fbee (diff)
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 <pheenoh@gmail.com>
-rw-r--r--asm/d/ev/d_ev_camera.s2
-rw-r--r--asm/d/jnt/d_jnt_col.s4
-rw-r--r--include/SComponent/c_bg_s_chk.h8
-rw-r--r--include/SComponent/c_bg_s_chk/asm/func_80267B4C.s9
-rw-r--r--include/SComponent/c_bg_s_chk/asm/func_80267B70.s19
-rw-r--r--include/SComponent/c_bg_s_chk/asm/func_80267BB8.s9
-rw-r--r--include/SComponent/c_bg_s_chk/asm/func_80267BDC.s18
-rw-r--r--include/SComponent/c_bg_s_gnd_chk.h8
-rw-r--r--include/SComponent/c_bg_s_poly_info.h8
-rw-r--r--include/SComponent/c_bg_s_poly_info/asm/func_80268074.s15
-rw-r--r--include/SComponent/c_bg_s_poly_info/asm/func_802680B0.s19
-rw-r--r--include/SComponent/c_bg_s_poly_info/asm/func_802680F8.s12
-rw-r--r--include/SComponent/c_bg_s_poly_info/asm/func_80268120.s10
-rw-r--r--include/SComponent/c_bg_s_poly_info/asm/func_80268148.s9
-rw-r--r--include/SComponent/c_bg_s_poly_info/asm/func_8026816C.s4
-rw-r--r--include/SComponent/c_bg_s_poly_info/asm/func_8026817C.s11
-rw-r--r--include/SComponent/c_bg_s_poly_info/asm/func_802681A4.s2
-rw-r--r--include/SComponent/c_bg_s_poly_info/asm/func_802681AC.s5
-rw-r--r--include/SComponent/c_cc_d/c_cc_d.h5
-rw-r--r--include/SComponent/c_m3d.h54
-rw-r--r--include/SComponent/c_m3d/asm/func_80268560.s20
-rw-r--r--include/SComponent/c_m3d/asm/func_802685B0.s25
-rw-r--r--include/SComponent/c_m3d/asm/func_80268614.s6
-rw-r--r--include/SComponent/c_m3d/asm/func_8026862C.s60
-rw-r--r--include/SComponent/c_m3d/asm/func_80268710.s70
-rw-r--r--include/SComponent/c_m3d/asm/func_80268814.s34
-rw-r--r--include/SComponent/c_m3d/asm/func_80268894.s8
-rw-r--r--include/SComponent/c_m3d/asm/func_802688B4.s26
-rw-r--r--include/SComponent/c_m3d/asm/func_8026891C.s53
-rw-r--r--include/SComponent/c_m3d/asm/func_802689E8.s89
-rw-r--r--include/SComponent/c_m3d/asm/func_80268B0C.s47
-rw-r--r--include/SComponent/c_m3d/asm/func_80268ED4.s26
-rw-r--r--include/SComponent/c_m3d/asm/func_80269C2C.s96
-rw-r--r--include/SComponent/c_m3d/asm/func_8026BD88.s57
-rw-r--r--include/SComponent/c_m3d/asm/func_8026BE5C.s44
-rw-r--r--include/SComponent/c_m3d/asm/func_8026D044.s27
-rw-r--r--include/SComponent/c_m3d/asm/func_8026D0B0.s26
-rw-r--r--include/SComponent/c_m3d/asm/func_8026E4FC.s29
-rw-r--r--include/SComponent/c_m3d/asm/func_8026E6C4.s11
-rw-r--r--include/SComponent/c_m3d/asm/func_8026E6F0.s114
-rw-r--r--include/SComponent/c_m3d/asm/func_8026E8A0.s59
-rw-r--r--include/SComponent/c_m3d/asm/func_8026E980.s57
-rw-r--r--include/SComponent/c_m3d/asm/func_8026EA5C.s57
-rw-r--r--include/SComponent/c_m3d/asm/func_8026EB38.s35
-rw-r--r--include/SComponent/c_m3d/asm/func_8026EBBC.s32
-rw-r--r--include/SComponent/c_m3d/c_m3d.h30
-rw-r--r--include/SComponent/c_m3d_g_aab.h20
-rw-r--r--include/SComponent/c_m3d_g_aab/asm/func_8026EC54.s13
-rw-r--r--include/SComponent/c_m3d_g_aab/asm/func_8026EC88.s20
-rw-r--r--include/SComponent/c_m3d_g_aab/asm/func_8026ECD0.s5
-rw-r--r--include/SComponent/c_m3d_g_aab/asm/func_8026ECE4.s5
-rw-r--r--include/SComponent/c_m3d_g_aab/asm/func_8026ECF8.s9
-rw-r--r--include/SComponent/c_m3d_g_aab/asm/func_8026ED1C.s17
-rw-r--r--include/SComponent/c_m3d_g_aab/asm/func_8026ED60.s17
-rw-r--r--include/SComponent/c_m3d_g_aab/asm/func_8026EDA4.s18
-rw-r--r--include/SComponent/c_m3d_g_aab/asm/func_8026EDE4.s18
-rw-r--r--include/SComponent/c_m3d_g_aab/asm/func_8026EE24.s17
-rw-r--r--include/SComponent/c_m3d_g_aab/asm/func_8026EE68.s19
-rw-r--r--include/SComponent/c_m3d_g_cir.h17
-rw-r--r--include/SComponent/c_m3d_g_cir/asm/func_8026EEB4.s7
-rw-r--r--include/SComponent/c_m3d_g_cir/asm/func_8026EED0.s19
-rw-r--r--include/SComponent/c_m3d_g_cir/asm/func_8026EF18.s25
-rw-r--r--include/SComponent/c_m3d_g_cir/asm/func_8026EF74.s5
-rw-r--r--include/SComponent/c_m3d_g_cps.h16
-rw-r--r--include/SComponent/c_m3d_g_cps/asm/func_8026EF88.s7
-rw-r--r--include/SComponent/c_m3d_g_cps/asm/func_8026EFA4.s25
-rw-r--r--include/SComponent/c_m3d_g_cps/asm/func_8026F000.s15
-rw-r--r--include/SComponent/c_m3d_g_cps/asm/func_8026F03C.s17
-rw-r--r--include/SComponent/c_m3d_g_cps/asm/func_8026F080.s10
-rw-r--r--include/SComponent/c_m3d_g_cyl.h31
-rw-r--r--include/SComponent/c_m3d_g_cyl/asm/func_8026F0A8.s27
-rw-r--r--include/SComponent/c_m3d_g_cyl/asm/func_8026F114.s27
-rw-r--r--include/SComponent/c_m3d_g_cyl/asm/func_8026F180.s23
-rw-r--r--include/SComponent/c_m3d_g_cyl/asm/func_8026F1DC.s7
-rw-r--r--include/SComponent/c_m3d_g_cyl/asm/func_8026F1F8.s2
-rw-r--r--include/SComponent/c_m3d_g_cyl/asm/func_8026F200.s2
-rw-r--r--include/SComponent/c_m3d_g_cyl/asm/func_8026F208.s9
-rw-r--r--include/SComponent/c_m3d_g_cyl/asm/func_8026F22C.s8
-rw-r--r--include/SComponent/c_m3d_g_cyl/asm/func_8026F24C.s23
-rw-r--r--include/SComponent/c_m3d_g_lin.h14
-rw-r--r--include/SComponent/c_m3d_g_lin/asm/func_8026F2A8.s16
-rw-r--r--include/SComponent/c_m3d_g_lin/asm/func_8026F2E8.s13
-rw-r--r--include/SComponent/c_m3d_g_lin/asm/func_8026F31C.s13
-rw-r--r--include/SComponent/c_m3d_g_lin/asm/func_8026F350.s28
-rw-r--r--include/SComponent/c_m3d_g_lin/asm/func_8026F3C0.s7
-rw-r--r--include/SComponent/c_m3d_g_pla.h15
-rw-r--r--include/SComponent/c_m3d_g_pla/asm/func_8026F3DC.s11
-rw-r--r--include/SComponent/c_m3d_g_pla/asm/func_8026F408.s49
-rw-r--r--include/SComponent/c_m3d_g_pla/asm/func_8026F4C4.s26
-rw-r--r--include/SComponent/c_m3d_g_pla/asm/func_8026F52C.s20
-rw-r--r--include/SComponent/c_m3d_g_pla/asm/func_8026F57C.s23
-rw-r--r--include/SComponent/c_m3d_g_pla/asm/func_8026F5D4.s21
-rw-r--r--include/SComponent/c_m3d_g_pla/asm/func_8026F624.s9
-rw-r--r--include/SComponent/c_m3d_g_sph.h18
-rw-r--r--include/SComponent/c_m3d_g_sph/asm/func_8026F648.s7
-rw-r--r--include/SComponent/c_m3d_g_sph/asm/func_8026F664.s17
-rw-r--r--include/SComponent/c_m3d_g_sph/asm/func_8026F6A8.s24
-rw-r--r--include/SComponent/c_m3d_g_sph/asm/func_8026F708.s2
-rw-r--r--include/SComponent/c_m3d_g_sph/asm/func_8026F710.s11
-rw-r--r--include/SComponent/c_m3d_g_sph/asm/func_8026F73C.s12
-rw-r--r--include/SComponent/c_m3d_g_sph/asm/func_8026F76C.s17
-rw-r--r--include/SComponent/c_m3d_g_tri.h6
-rw-r--r--include/SComponent/c_m3d_g_tri/asm/func_8026F7B0.s11
-rw-r--r--include/SComponent/c_m3d_g_tri/asm/func_8026F7DC.s32
-rw-r--r--include/SComponent/c_m3d_g_tri/asm/func_8026F85C.s27
-rw-r--r--include/SComponent/c_m3d_g_tri/asm/func_8026F8C8.s29
-rw-r--r--include/SComponent/c_sxyz.h2
-rw-r--r--include/SComponent/c_xyz.h76
-rw-r--r--include/SComponent/c_xyz/c_xyz.h10
-rw-r--r--include/d/d_attention/d_attention.h2
-rw-r--r--include/d/d_camera/asm/func_80166764.s2
-rw-r--r--include/d/d_camera/asm/func_80168744.s2
-rw-r--r--include/d/d_com/d_com_inf_game/d_com_inf_game.h2
-rw-r--r--include/d/d_save/d_save/d_save.h2
-rw-r--r--include/functions.h2
-rw-r--r--include/global.h12
-rw-r--r--include/mtx_vec.h6
-rw-r--r--include/variables.h93
-rw-r--r--libs/SSystem/SComponent/c_bg_s_chk.cpp30
-rw-r--r--libs/SSystem/SComponent/c_bg_s_gnd_chk.cpp4
-rw-r--r--libs/SSystem/SComponent/c_bg_s_lin_chk.cpp4
-rw-r--r--libs/SSystem/SComponent/c_bg_s_poly_info.cpp70
-rw-r--r--libs/SSystem/SComponent/c_bg_s_shdw_draw.cpp4
-rw-r--r--libs/SSystem/SComponent/c_m2d.cpp10
-rw-r--r--libs/SSystem/SComponent/c_m3d.cpp654
-rw-r--r--libs/SSystem/SComponent/c_m3d_g_aab.cpp82
-rw-r--r--libs/SSystem/SComponent/c_m3d_g_cir.cpp30
-rw-r--r--libs/SSystem/SComponent/c_m3d_g_cps.cpp32
-rw-r--r--libs/SSystem/SComponent/c_m3d_g_cyl.cpp67
-rw-r--r--libs/SSystem/SComponent/c_m3d_g_lin.cpp37
-rw-r--r--libs/SSystem/SComponent/c_m3d_g_pla.cpp64
-rw-r--r--libs/SSystem/SComponent/c_m3d_g_sph.cpp51
-rw-r--r--libs/SSystem/SComponent/c_m3d_g_tri.cpp34
-rw-r--r--libs/SSystem/SComponent/c_sxyz.cpp7
-rw-r--r--libs/SSystem/SComponent/c_xyz.cpp22
135 files changed, 1022 insertions, 2738 deletions
diff --git a/asm/d/ev/d_ev_camera.s b/asm/d/ev/d_ev_camera.s
index 2bf11db07f..fe5f254e86 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 91ccd0e9dd..8c6c410c64 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 f0f1772b03..bd22199fa9 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 f6368d6fdb..0000000000
--- 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 eb0cabb579..0000000000
--- 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 95613597cd..0000000000
--- 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 46b6af51d2..0000000000
--- 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 533416f223..0098d1ddb1 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 873e5c4743..c08105fe54 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 ae051fa81c..0000000000
--- 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 4c369c5ee9..0000000000
--- 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 0a808e711c..0000000000
--- 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 08fa4e3b1d..0000000000
--- 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 e151525026..0000000000
--- 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 3b307a0a64..0000000000
--- 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 27fda2f852..0000000000
--- 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 5b6195e980..0000000000
--- 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 7c15041ccb..0000000000
--- 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 dc897238dd..98668656d1 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 c3c56e93ac..e467d442f3 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 3704d6ea87..0000000000
--- 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 da2081ce8a..0000000000
--- 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 bfa914c4f8..0000000000
--- 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 b6281b66d3..0000000000
--- 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 61cc804c41..0000000000
--- 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 143baa8b8a..0000000000
--- 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 571a81b3d9..0000000000
--- 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 8d619ef553..0000000000
--- 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 701a05376d..0000000000
--- 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 c0dea96fc3..0000000000
--- 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 8905a3eea6..0000000000
--- 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 b4f2be8c60..0000000000
--- 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 181bc35608..0000000000
--- 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 eafdfcba6a..0000000000
--- 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 e68f9f061d..0000000000
--- 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 b1e783e5dd..0000000000
--- 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 1d604dd810..0000000000
--- 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 9867f78763..0000000000
--- 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 4879a46882..0000000000
--- 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 02bd84a3e8..0000000000
--- 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 bba9c70615..0000000000
--- 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 f2fe191bba..0000000000
--- 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 a0cf4792f8..0000000000
--- 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 17a50cfde8..0000000000
--- 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 42e61ff9e9..0000000000
--- 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 d1b028b036..0000000000
--- 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 d0735f1c1e..9c3c3a7c00 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 ee48d8c14f..0000000000
--- 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 26461e9db2..0000000000
--- 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 0eaf6aac55..0000000000
--- 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 b91c2e5cc7..0000000000
--- 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 1606b58f6c..0000000000
--- 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 ac37532cfb..0000000000
--- 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 4adb753e44..0000000000
--- 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 2321c02b39..0000000000
--- 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 5512a1a5cf..0000000000
--- 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 f39caf94a3..0000000000
--- 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 89ffa194b8..0000000000
--- 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 254c9cdb8c..95068b18ca 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 9d92a3051f..0000000000
--- 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 84637b9a49..0000000000
--- 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 3040f4fc5c..0000000000
--- 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 0c13de6465..0000000000
--- 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 abb3dc9755..00b3ba32d9 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 6b9c26293f..0000000000
--- 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 f53c18b425..0000000000
--- 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 05af2d1d60..0000000000
--- 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 870817332e..0000000000
--- 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 ab6cc845ae..0000000000
--- 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 de3300f0e4..d57cb1858a 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 6299d39be5..0000000000
--- 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 8d3593573a..0000000000
--- 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 df41ea289e..0000000000
--- 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 990e8af2d7..0000000000
--- 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 16de3d7eed..0000000000
--- 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 de03746cb8..0000000000
--- 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 4b0d1fbbaf..0000000000
--- 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 f57e724af5..0000000000
--- 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 b800454404..0000000000
--- 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 4c37a9d247..9916282f9c 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 5cd73c667f..0000000000
--- 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 2406f3ebdd..0000000000
--- 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 d3a8ef59b8..0000000000
--- 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 9dc6d718a5..0000000000
--- 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 f16f3bd6e5..0000000000
--- 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 9a7042ab15..5d440dfc23 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 ddbce712ac..0000000000
--- 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 6b96452223..0000000000
--- 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 11d6e5523e..0000000000
--- 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 071828b359..0000000000
--- 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 8332636f23..0000000000
--- 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 40b9cc4452..0000000000
--- 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 67bc63ec15..0000000000
--- 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 0ee96bfd7b..39cb80c668 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 ccd3e218a0..0000000000
--- 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 f0bc467d06..0000000000
--- 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 27af44ffe1..0000000000
--- 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 519eb584a8..0000000000
--- 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 a481780420..0000000000
--- 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 9f6a1ffe97..0000000000
--- 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 fa4e2aa4e4..0000000000
--- 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 c22783ed50..3d2fdf89c6 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 4fdcdca4a0..0000000000
--- 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 5cff0327af..0000000000
--- 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 0a53953221..0000000000
--- 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 6e0d5c45f3..0000000000
--- 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 ec0365d7fa..604d05d4aa 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 784100b25b..baac53cf79 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 5b9e18b35c..0000000000
--- 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 a7fd8f18bc..24e0c5458a 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 7b37cc1a6e..187e5bf0ba 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 7d1a1e2f9e..be94956bcf 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 686726727f..640213d837 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 abefb974a9..4a0532dcde 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 7f86fcd9f6..6537a025bf 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 08b366ba21..ad9a464193 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 46b956a922..59199bc625 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 afe1655208..36293eeff9 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 7fbec11fc9..5ff94b7a8b 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 7b584c5ea1..b2c637c7fd 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 a4e4efd0fa..b09963b075 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 859cd3d2d0..b5ef983681 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 df247b35b7..f4e4e0bb67 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 25b8536564..66c1b14602 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 738037d38b..71323eb868 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, &centerDist, &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 edc0bd661d..c01a35fbfc 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 83e3f7f2ca..c6461fc4d1 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 b65d244e3b..28010f892f 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 fefedadc96..14b7bc17e5 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 8a4b67721f..04a52f45c3 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 55f2bc5bba..0a3c28b917 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 4098bcefc1..7f0883a636 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 3b51b1eddc..dc7162a756 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 a1b6ac82c8..8ec5ea17ca 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 fa266902f8..3d398f6a97 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