mirror of
https://github.com/encounter/tp.git
synced 2026-07-11 06:18:46 -07:00
d_jnt_col OK (#2180)
This commit is contained in:
@@ -1,20 +0,0 @@
|
||||
lbl_80036A5C:
|
||||
/* 80036A5C 94 21 FF F0 */ stwu r1, -0x10(r1)
|
||||
/* 80036A60 7C 08 02 A6 */ mflr r0
|
||||
/* 80036A64 90 01 00 14 */ stw r0, 0x14(r1)
|
||||
/* 80036A68 93 E1 00 0C */ stw r31, 0xc(r1)
|
||||
/* 80036A6C 7C 7F 1B 79 */ or. r31, r3, r3
|
||||
/* 80036A70 41 82 00 1C */ beq lbl_80036A8C
|
||||
/* 80036A74 3C A0 80 3A */ lis r5, __vt__8cM3dGLin@ha /* 0x803A78F8@ha */
|
||||
/* 80036A78 38 05 78 F8 */ addi r0, r5, __vt__8cM3dGLin@l /* 0x803A78F8@l */
|
||||
/* 80036A7C 90 1F 00 18 */ stw r0, 0x18(r31)
|
||||
/* 80036A80 7C 80 07 35 */ extsh. r0, r4
|
||||
/* 80036A84 40 81 00 08 */ ble lbl_80036A8C
|
||||
/* 80036A88 48 29 82 B5 */ bl __dl__FPv
|
||||
lbl_80036A8C:
|
||||
/* 80036A8C 7F E3 FB 78 */ mr r3, r31
|
||||
/* 80036A90 83 E1 00 0C */ lwz r31, 0xc(r1)
|
||||
/* 80036A94 80 01 00 14 */ lwz r0, 0x14(r1)
|
||||
/* 80036A98 7C 08 03 A6 */ mtlr r0
|
||||
/* 80036A9C 38 21 00 10 */ addi r1, r1, 0x10
|
||||
/* 80036AA0 4E 80 00 20 */ blr
|
||||
@@ -1,20 +0,0 @@
|
||||
lbl_80036AA4:
|
||||
/* 80036AA4 94 21 FF F0 */ stwu r1, -0x10(r1)
|
||||
/* 80036AA8 7C 08 02 A6 */ mflr r0
|
||||
/* 80036AAC 90 01 00 14 */ stw r0, 0x14(r1)
|
||||
/* 80036AB0 93 E1 00 0C */ stw r31, 0xc(r1)
|
||||
/* 80036AB4 7C 7F 1B 79 */ or. r31, r3, r3
|
||||
/* 80036AB8 41 82 00 1C */ beq lbl_80036AD4
|
||||
/* 80036ABC 3C A0 80 3A */ lis r5, __vt__8cM3dGSph@ha /* 0x803A7904@ha */
|
||||
/* 80036AC0 38 05 79 04 */ addi r0, r5, __vt__8cM3dGSph@l /* 0x803A7904@l */
|
||||
/* 80036AC4 90 1F 00 10 */ stw r0, 0x10(r31)
|
||||
/* 80036AC8 7C 80 07 35 */ extsh. r0, r4
|
||||
/* 80036ACC 40 81 00 08 */ ble lbl_80036AD4
|
||||
/* 80036AD0 48 29 82 6D */ bl __dl__FPv
|
||||
lbl_80036AD4:
|
||||
/* 80036AD4 7F E3 FB 78 */ mr r3, r31
|
||||
/* 80036AD8 83 E1 00 0C */ lwz r31, 0xc(r1)
|
||||
/* 80036ADC 80 01 00 14 */ lwz r0, 0x14(r1)
|
||||
/* 80036AE0 7C 08 03 A6 */ mtlr r0
|
||||
/* 80036AE4 38 21 00 10 */ addi r1, r1, 0x10
|
||||
/* 80036AE8 4E 80 00 20 */ blr
|
||||
@@ -1,92 +0,0 @@
|
||||
lbl_80036AEC:
|
||||
/* 80036AEC 94 21 FF B0 */ stwu r1, -0x50(r1)
|
||||
/* 80036AF0 7C 08 02 A6 */ mflr r0
|
||||
/* 80036AF4 90 01 00 54 */ stw r0, 0x54(r1)
|
||||
/* 80036AF8 39 61 00 50 */ addi r11, r1, 0x50
|
||||
/* 80036AFC 48 32 B6 DD */ bl _savegpr_28
|
||||
/* 80036B00 7C 7C 1B 78 */ mr r28, r3
|
||||
/* 80036B04 7C 9F 23 78 */ mr r31, r4
|
||||
/* 80036B08 7C DD 33 78 */ mr r29, r6
|
||||
/* 80036B0C 7C FE 3B 78 */ mr r30, r7
|
||||
/* 80036B10 3C 60 80 3A */ lis r3, __vt__8cM3dGLin@ha /* 0x803A78F8@ha */
|
||||
/* 80036B14 38 03 78 F8 */ addi r0, r3, __vt__8cM3dGLin@l /* 0x803A78F8@l */
|
||||
/* 80036B18 90 01 00 38 */ stw r0, 0x38(r1)
|
||||
/* 80036B1C 38 61 00 20 */ addi r3, r1, 0x20
|
||||
/* 80036B20 38 C1 00 14 */ addi r6, r1, 0x14
|
||||
/* 80036B24 4B FF F1 A5 */ bl setNowLine__9dJntCol_cFP8cM3dGLinPC4cXyzPC5csXyzP4cXyz
|
||||
/* 80036B28 7F 83 E3 78 */ mr r3, r28
|
||||
/* 80036B2C 38 81 00 20 */ addi r4, r1, 0x20
|
||||
/* 80036B30 7F E5 FB 78 */ mr r5, r31
|
||||
/* 80036B34 38 C1 00 08 */ addi r6, r1, 8
|
||||
/* 80036B38 38 E0 00 00 */ li r7, 0
|
||||
/* 80036B3C 4B FF F2 8D */ bl searchNearPos__9dJntCol_cCFPC8cM3dGLinPC4cXyzP4cXyzi
|
||||
/* 80036B40 2C 03 00 00 */ cmpwi r3, 0
|
||||
/* 80036B44 40 80 00 18 */ bge lbl_80036B5C
|
||||
/* 80036B48 3C 60 80 3A */ lis r3, __vt__8cM3dGLin@ha /* 0x803A78F8@ha */
|
||||
/* 80036B4C 38 03 78 F8 */ addi r0, r3, __vt__8cM3dGLin@l /* 0x803A78F8@l */
|
||||
/* 80036B50 90 01 00 38 */ stw r0, 0x38(r1)
|
||||
/* 80036B54 38 60 FF FD */ li r3, -3
|
||||
/* 80036B58 48 00 00 D4 */ b lbl_80036C2C
|
||||
lbl_80036B5C:
|
||||
/* 80036B5C 80 9C 00 00 */ lwz r4, 0(r28)
|
||||
/* 80036B60 1C 03 00 0C */ mulli r0, r3, 0xc
|
||||
/* 80036B64 7F E4 02 14 */ add r31, r4, r0
|
||||
/* 80036B68 88 1F 00 01 */ lbz r0, 1(r31)
|
||||
/* 80036B6C 28 00 00 00 */ cmplwi r0, 0
|
||||
/* 80036B70 40 82 00 18 */ bne lbl_80036B88
|
||||
/* 80036B74 3C 60 80 3A */ lis r3, __vt__8cM3dGLin@ha /* 0x803A78F8@ha */
|
||||
/* 80036B78 38 03 78 F8 */ addi r0, r3, __vt__8cM3dGLin@l /* 0x803A78F8@l */
|
||||
/* 80036B7C 90 01 00 38 */ stw r0, 0x38(r1)
|
||||
/* 80036B80 38 60 FF FD */ li r3, -3
|
||||
/* 80036B84 48 00 00 A8 */ b lbl_80036C2C
|
||||
lbl_80036B88:
|
||||
/* 80036B88 28 00 00 02 */ cmplwi r0, 2
|
||||
/* 80036B8C 40 82 00 18 */ bne lbl_80036BA4
|
||||
/* 80036B90 3C 60 80 3A */ lis r3, __vt__8cM3dGLin@ha /* 0x803A78F8@ha */
|
||||
/* 80036B94 38 03 78 F8 */ addi r0, r3, __vt__8cM3dGLin@l /* 0x803A78F8@l */
|
||||
/* 80036B98 90 01 00 38 */ stw r0, 0x38(r1)
|
||||
/* 80036B9C 38 60 FF FF */ li r3, -1
|
||||
/* 80036BA0 48 00 00 8C */ b lbl_80036C2C
|
||||
lbl_80036BA4:
|
||||
/* 80036BA4 28 00 00 03 */ cmplwi r0, 3
|
||||
/* 80036BA8 40 82 00 18 */ bne lbl_80036BC0
|
||||
/* 80036BAC 3C 60 80 3A */ lis r3, __vt__8cM3dGLin@ha /* 0x803A78F8@ha */
|
||||
/* 80036BB0 38 03 78 F8 */ addi r0, r3, __vt__8cM3dGLin@l /* 0x803A78F8@l */
|
||||
/* 80036BB4 90 01 00 38 */ stw r0, 0x38(r1)
|
||||
/* 80036BB8 38 60 FF FE */ li r3, -2
|
||||
/* 80036BBC 48 00 00 70 */ b lbl_80036C2C
|
||||
lbl_80036BC0:
|
||||
/* 80036BC0 80 7C 00 04 */ lwz r3, 4(r28)
|
||||
/* 80036BC4 80 63 00 84 */ lwz r3, 0x84(r3)
|
||||
/* 80036BC8 80 63 00 0C */ lwz r3, 0xc(r3)
|
||||
/* 80036BCC A8 1F 00 02 */ lha r0, 2(r31)
|
||||
/* 80036BD0 1C 00 00 30 */ mulli r0, r0, 0x30
|
||||
/* 80036BD4 7C 63 02 14 */ add r3, r3, r0
|
||||
/* 80036BD8 3C 80 80 3E */ lis r4, now__14mDoMtx_stack_c@ha /* 0x803DD470@ha */
|
||||
/* 80036BDC 38 84 D4 70 */ addi r4, r4, now__14mDoMtx_stack_c@l /* 0x803DD470@l */
|
||||
/* 80036BE0 48 30 F8 D1 */ bl PSMTXCopy
|
||||
/* 80036BE4 3C 60 80 3E */ lis r3, now__14mDoMtx_stack_c@ha /* 0x803DD470@ha */
|
||||
/* 80036BE8 38 63 D4 70 */ addi r3, r3, now__14mDoMtx_stack_c@l /* 0x803DD470@l */
|
||||
/* 80036BEC 7C 64 1B 78 */ mr r4, r3
|
||||
/* 80036BF0 48 30 F9 C1 */ bl PSMTXInverse
|
||||
/* 80036BF4 3C 60 80 3E */ lis r3, now__14mDoMtx_stack_c@ha /* 0x803DD470@ha */
|
||||
/* 80036BF8 38 63 D4 70 */ addi r3, r3, now__14mDoMtx_stack_c@l /* 0x803DD470@l */
|
||||
/* 80036BFC 38 81 00 14 */ addi r4, r1, 0x14
|
||||
/* 80036C00 7F C5 F3 78 */ mr r5, r30
|
||||
/* 80036C04 48 31 02 49 */ bl PSMTXMultVecSR
|
||||
/* 80036C08 3C 60 80 3E */ lis r3, now__14mDoMtx_stack_c@ha /* 0x803DD470@ha */
|
||||
/* 80036C0C 38 63 D4 70 */ addi r3, r3, now__14mDoMtx_stack_c@l /* 0x803DD470@l */
|
||||
/* 80036C10 38 81 00 08 */ addi r4, r1, 8
|
||||
/* 80036C14 7F A5 EB 78 */ mr r5, r29
|
||||
/* 80036C18 48 31 01 55 */ bl PSMTXMultVec
|
||||
/* 80036C1C A8 7F 00 02 */ lha r3, 2(r31)
|
||||
/* 80036C20 3C 80 80 3A */ lis r4, __vt__8cM3dGLin@ha /* 0x803A78F8@ha */
|
||||
/* 80036C24 38 04 78 F8 */ addi r0, r4, __vt__8cM3dGLin@l /* 0x803A78F8@l */
|
||||
/* 80036C28 90 01 00 38 */ stw r0, 0x38(r1)
|
||||
lbl_80036C2C:
|
||||
/* 80036C2C 39 61 00 50 */ addi r11, r1, 0x50
|
||||
/* 80036C30 48 32 B5 F5 */ bl _restgpr_28
|
||||
/* 80036C34 80 01 00 54 */ lwz r0, 0x54(r1)
|
||||
/* 80036C38 7C 08 03 A6 */ mtlr r0
|
||||
/* 80036C3C 38 21 00 50 */ addi r1, r1, 0x50
|
||||
/* 80036C40 4E 80 00 20 */ blr
|
||||
@@ -1,234 +0,0 @@
|
||||
lbl_80036C44:
|
||||
/* 80036C44 94 21 FF 30 */ stwu r1, -0xd0(r1)
|
||||
/* 80036C48 7C 08 02 A6 */ mflr r0
|
||||
/* 80036C4C 90 01 00 D4 */ stw r0, 0xd4(r1)
|
||||
/* 80036C50 DB E1 00 C0 */ stfd f31, 0xc0(r1)
|
||||
/* 80036C54 F3 E1 00 C8 */ psq_st f31, 200(r1), 0, 0 /* qr0 */
|
||||
/* 80036C58 39 61 00 C0 */ addi r11, r1, 0xc0
|
||||
/* 80036C5C 48 32 B5 79 */ bl _savegpr_27
|
||||
/* 80036C60 7C 7B 1B 78 */ mr r27, r3
|
||||
/* 80036C64 7C 9F 23 78 */ mr r31, r4
|
||||
/* 80036C68 7C DC 33 78 */ mr r28, r6
|
||||
/* 80036C6C 7C FD 3B 78 */ mr r29, r7
|
||||
/* 80036C70 7D 1E 43 78 */ mr r30, r8
|
||||
/* 80036C74 3C 60 80 3A */ lis r3, __vt__8cM3dGLin@ha /* 0x803A78F8@ha */
|
||||
/* 80036C78 38 03 78 F8 */ addi r0, r3, __vt__8cM3dGLin@l /* 0x803A78F8@l */
|
||||
/* 80036C7C 90 01 00 9C */ stw r0, 0x9c(r1)
|
||||
/* 80036C80 38 61 00 84 */ addi r3, r1, 0x84
|
||||
/* 80036C84 38 C1 00 78 */ addi r6, r1, 0x78
|
||||
/* 80036C88 4B FF F0 41 */ bl setNowLine__9dJntCol_cFP8cM3dGLinPC4cXyzPC5csXyzP4cXyz
|
||||
/* 80036C8C 7F 63 DB 78 */ mr r3, r27
|
||||
/* 80036C90 38 81 00 84 */ addi r4, r1, 0x84
|
||||
/* 80036C94 7F E5 FB 78 */ mr r5, r31
|
||||
/* 80036C98 7F 86 E3 78 */ mr r6, r28
|
||||
/* 80036C9C 7F C7 F3 78 */ mr r7, r30
|
||||
/* 80036CA0 4B FF F1 29 */ bl searchNearPos__9dJntCol_cCFPC8cM3dGLinPC4cXyzP4cXyzi
|
||||
/* 80036CA4 7C 7F 1B 79 */ or. r31, r3, r3
|
||||
/* 80036CA8 40 80 00 18 */ bge lbl_80036CC0
|
||||
/* 80036CAC 3C 60 80 3A */ lis r3, __vt__8cM3dGLin@ha /* 0x803A78F8@ha */
|
||||
/* 80036CB0 38 03 78 F8 */ addi r0, r3, __vt__8cM3dGLin@l /* 0x803A78F8@l */
|
||||
/* 80036CB4 90 01 00 9C */ stw r0, 0x9c(r1)
|
||||
/* 80036CB8 38 60 FF FF */ li r3, -1
|
||||
/* 80036CBC 48 00 02 CC */ b lbl_80036F88
|
||||
lbl_80036CC0:
|
||||
/* 80036CC0 80 7B 00 00 */ lwz r3, 0(r27)
|
||||
/* 80036CC4 1C 1F 00 0C */ mulli r0, r31, 0xc
|
||||
/* 80036CC8 7F C3 02 14 */ add r30, r3, r0
|
||||
/* 80036CCC 80 7B 00 04 */ lwz r3, 4(r27)
|
||||
/* 80036CD0 80 63 00 84 */ lwz r3, 0x84(r3)
|
||||
/* 80036CD4 80 63 00 0C */ lwz r3, 0xc(r3)
|
||||
/* 80036CD8 A8 1E 00 02 */ lha r0, 2(r30)
|
||||
/* 80036CDC 1C 00 00 30 */ mulli r0, r0, 0x30
|
||||
/* 80036CE0 7C 63 02 14 */ add r3, r3, r0
|
||||
/* 80036CE4 3C 80 80 3E */ lis r4, now__14mDoMtx_stack_c@ha /* 0x803DD470@ha */
|
||||
/* 80036CE8 38 84 D4 70 */ addi r4, r4, now__14mDoMtx_stack_c@l /* 0x803DD470@l */
|
||||
/* 80036CEC 48 30 F7 C5 */ bl PSMTXCopy
|
||||
/* 80036CF0 3C 60 80 3E */ lis r3, now__14mDoMtx_stack_c@ha /* 0x803DD470@ha */
|
||||
/* 80036CF4 38 63 D4 70 */ addi r3, r3, now__14mDoMtx_stack_c@l /* 0x803DD470@l */
|
||||
/* 80036CF8 80 9E 00 08 */ lwz r4, 8(r30)
|
||||
/* 80036CFC 38 A1 00 6C */ addi r5, r1, 0x6c
|
||||
/* 80036D00 48 31 00 6D */ bl PSMTXMultVec
|
||||
/* 80036D04 88 1E 00 00 */ lbz r0, 0(r30)
|
||||
/* 80036D08 28 00 00 00 */ cmplwi r0, 0
|
||||
/* 80036D0C 40 82 00 30 */ bne lbl_80036D3C
|
||||
/* 80036D10 38 61 00 3C */ addi r3, r1, 0x3c
|
||||
/* 80036D14 7F 84 E3 78 */ mr r4, r28
|
||||
/* 80036D18 38 A1 00 6C */ addi r5, r1, 0x6c
|
||||
/* 80036D1C 48 22 FE 19 */ bl __mi__4cXyzCFRC3Vec
|
||||
/* 80036D20 C0 01 00 3C */ lfs f0, 0x3c(r1)
|
||||
/* 80036D24 D0 01 00 60 */ stfs f0, 0x60(r1)
|
||||
/* 80036D28 C0 01 00 40 */ lfs f0, 0x40(r1)
|
||||
/* 80036D2C D0 01 00 64 */ stfs f0, 0x64(r1)
|
||||
/* 80036D30 C0 01 00 44 */ lfs f0, 0x44(r1)
|
||||
/* 80036D34 D0 01 00 68 */ stfs f0, 0x68(r1)
|
||||
/* 80036D38 48 00 01 08 */ b lbl_80036E40
|
||||
lbl_80036D3C:
|
||||
/* 80036D3C 28 00 00 01 */ cmplwi r0, 1
|
||||
/* 80036D40 40 82 00 E8 */ bne lbl_80036E28
|
||||
/* 80036D44 3C 60 80 3E */ lis r3, now__14mDoMtx_stack_c@ha /* 0x803DD470@ha */
|
||||
/* 80036D48 38 63 D4 70 */ addi r3, r3, now__14mDoMtx_stack_c@l /* 0x803DD470@l */
|
||||
/* 80036D4C 80 9E 00 08 */ lwz r4, 8(r30)
|
||||
/* 80036D50 38 84 00 0C */ addi r4, r4, 0xc
|
||||
/* 80036D54 38 A1 00 54 */ addi r5, r1, 0x54
|
||||
/* 80036D58 48 31 00 15 */ bl PSMTXMultVec
|
||||
/* 80036D5C 38 61 00 6C */ addi r3, r1, 0x6c
|
||||
/* 80036D60 38 81 00 54 */ addi r4, r1, 0x54
|
||||
/* 80036D64 7F 85 E3 78 */ mr r5, r28
|
||||
/* 80036D68 38 C1 00 48 */ addi r6, r1, 0x48
|
||||
/* 80036D6C 48 23 7C F1 */ bl cM3d_lineVsPosSuisenCross__FRC3VecRC3VecRC3VecP3Vec
|
||||
/* 80036D70 38 61 00 30 */ addi r3, r1, 0x30
|
||||
/* 80036D74 7F 84 E3 78 */ mr r4, r28
|
||||
/* 80036D78 38 A1 00 48 */ addi r5, r1, 0x48
|
||||
/* 80036D7C 48 22 FD B9 */ bl __mi__4cXyzCFRC3Vec
|
||||
/* 80036D80 C0 01 00 30 */ lfs f0, 0x30(r1)
|
||||
/* 80036D84 D0 01 00 60 */ stfs f0, 0x60(r1)
|
||||
/* 80036D88 C0 01 00 34 */ lfs f0, 0x34(r1)
|
||||
/* 80036D8C D0 01 00 64 */ stfs f0, 0x64(r1)
|
||||
/* 80036D90 C0 01 00 38 */ lfs f0, 0x38(r1)
|
||||
/* 80036D94 D0 01 00 68 */ stfs f0, 0x68(r1)
|
||||
/* 80036D98 38 61 00 60 */ addi r3, r1, 0x60
|
||||
/* 80036D9C 48 31 03 9D */ bl PSVECSquareMag
|
||||
/* 80036DA0 C0 02 83 8C */ lfs f0, lit_4147(r2)
|
||||
/* 80036DA4 FC 01 00 40 */ fcmpo cr0, f1, f0
|
||||
/* 80036DA8 40 80 00 98 */ bge lbl_80036E40
|
||||
/* 80036DAC 7F 83 E3 78 */ mr r3, r28
|
||||
/* 80036DB0 38 81 00 54 */ addi r4, r1, 0x54
|
||||
/* 80036DB4 48 31 05 E9 */ bl PSVECSquareDistance
|
||||
/* 80036DB8 FF E0 08 90 */ fmr f31, f1
|
||||
/* 80036DBC 7F 83 E3 78 */ mr r3, r28
|
||||
/* 80036DC0 38 81 00 6C */ addi r4, r1, 0x6c
|
||||
/* 80036DC4 48 31 05 D9 */ bl PSVECSquareDistance
|
||||
/* 80036DC8 FC 01 F8 40 */ fcmpo cr0, f1, f31
|
||||
/* 80036DCC 40 80 00 30 */ bge lbl_80036DFC
|
||||
/* 80036DD0 38 61 00 24 */ addi r3, r1, 0x24
|
||||
/* 80036DD4 38 81 00 6C */ addi r4, r1, 0x6c
|
||||
/* 80036DD8 38 A1 00 54 */ addi r5, r1, 0x54
|
||||
/* 80036DDC 48 22 FD 59 */ bl __mi__4cXyzCFRC3Vec
|
||||
/* 80036DE0 C0 01 00 24 */ lfs f0, 0x24(r1)
|
||||
/* 80036DE4 D0 01 00 60 */ stfs f0, 0x60(r1)
|
||||
/* 80036DE8 C0 01 00 28 */ lfs f0, 0x28(r1)
|
||||
/* 80036DEC D0 01 00 64 */ stfs f0, 0x64(r1)
|
||||
/* 80036DF0 C0 01 00 2C */ lfs f0, 0x2c(r1)
|
||||
/* 80036DF4 D0 01 00 68 */ stfs f0, 0x68(r1)
|
||||
/* 80036DF8 48 00 00 48 */ b lbl_80036E40
|
||||
lbl_80036DFC:
|
||||
/* 80036DFC 38 61 00 18 */ addi r3, r1, 0x18
|
||||
/* 80036E00 38 81 00 54 */ addi r4, r1, 0x54
|
||||
/* 80036E04 38 A1 00 6C */ addi r5, r1, 0x6c
|
||||
/* 80036E08 48 22 FD 2D */ bl __mi__4cXyzCFRC3Vec
|
||||
/* 80036E0C C0 01 00 18 */ lfs f0, 0x18(r1)
|
||||
/* 80036E10 D0 01 00 60 */ stfs f0, 0x60(r1)
|
||||
/* 80036E14 C0 01 00 1C */ lfs f0, 0x1c(r1)
|
||||
/* 80036E18 D0 01 00 64 */ stfs f0, 0x64(r1)
|
||||
/* 80036E1C C0 01 00 20 */ lfs f0, 0x20(r1)
|
||||
/* 80036E20 D0 01 00 68 */ stfs f0, 0x68(r1)
|
||||
/* 80036E24 48 00 00 1C */ b lbl_80036E40
|
||||
lbl_80036E28:
|
||||
/* 80036E28 3C 60 80 3E */ lis r3, now__14mDoMtx_stack_c@ha /* 0x803DD470@ha */
|
||||
/* 80036E2C 38 63 D4 70 */ addi r3, r3, now__14mDoMtx_stack_c@l /* 0x803DD470@l */
|
||||
/* 80036E30 80 9E 00 08 */ lwz r4, 8(r30)
|
||||
/* 80036E34 38 84 00 0C */ addi r4, r4, 0xc
|
||||
/* 80036E38 38 A1 00 60 */ addi r5, r1, 0x60
|
||||
/* 80036E3C 48 31 00 11 */ bl PSMTXMultVecSR
|
||||
lbl_80036E40:
|
||||
/* 80036E40 C0 01 00 60 */ lfs f0, 0x60(r1)
|
||||
/* 80036E44 D0 01 00 0C */ stfs f0, 0xc(r1)
|
||||
/* 80036E48 C0 02 83 68 */ lfs f0, lit_4142(r2)
|
||||
/* 80036E4C D0 01 00 10 */ stfs f0, 0x10(r1)
|
||||
/* 80036E50 C0 01 00 68 */ lfs f0, 0x68(r1)
|
||||
/* 80036E54 D0 01 00 14 */ stfs f0, 0x14(r1)
|
||||
/* 80036E58 38 61 00 0C */ addi r3, r1, 0xc
|
||||
/* 80036E5C 48 31 02 DD */ bl PSVECSquareMag
|
||||
/* 80036E60 C0 02 83 68 */ lfs f0, lit_4142(r2)
|
||||
/* 80036E64 FC 01 00 40 */ fcmpo cr0, f1, f0
|
||||
/* 80036E68 40 81 00 58 */ ble lbl_80036EC0
|
||||
/* 80036E6C FC 00 08 34 */ frsqrte f0, f1
|
||||
/* 80036E70 C8 82 83 70 */ lfd f4, lit_4143(r2)
|
||||
/* 80036E74 FC 44 00 32 */ fmul f2, f4, f0
|
||||
/* 80036E78 C8 62 83 78 */ lfd f3, lit_4144(r2)
|
||||
/* 80036E7C FC 00 00 32 */ fmul f0, f0, f0
|
||||
/* 80036E80 FC 01 00 32 */ fmul f0, f1, f0
|
||||
/* 80036E84 FC 03 00 28 */ fsub f0, f3, f0
|
||||
/* 80036E88 FC 02 00 32 */ fmul f0, f2, f0
|
||||
/* 80036E8C FC 44 00 32 */ fmul f2, f4, f0
|
||||
/* 80036E90 FC 00 00 32 */ fmul f0, f0, f0
|
||||
/* 80036E94 FC 01 00 32 */ fmul f0, f1, f0
|
||||
/* 80036E98 FC 03 00 28 */ fsub f0, f3, f0
|
||||
/* 80036E9C FC 02 00 32 */ fmul f0, f2, f0
|
||||
/* 80036EA0 FC 44 00 32 */ fmul f2, f4, f0
|
||||
/* 80036EA4 FC 00 00 32 */ fmul f0, f0, f0
|
||||
/* 80036EA8 FC 01 00 32 */ fmul f0, f1, f0
|
||||
/* 80036EAC FC 03 00 28 */ fsub f0, f3, f0
|
||||
/* 80036EB0 FC 02 00 32 */ fmul f0, f2, f0
|
||||
/* 80036EB4 FC 41 00 32 */ fmul f2, f1, f0
|
||||
/* 80036EB8 FC 40 10 18 */ frsp f2, f2
|
||||
/* 80036EBC 48 00 00 90 */ b lbl_80036F4C
|
||||
lbl_80036EC0:
|
||||
/* 80036EC0 C8 02 83 80 */ lfd f0, lit_4145(r2)
|
||||
/* 80036EC4 FC 01 00 40 */ fcmpo cr0, f1, f0
|
||||
/* 80036EC8 40 80 00 10 */ bge lbl_80036ED8
|
||||
/* 80036ECC 3C 60 80 45 */ lis r3, __float_nan@ha /* 0x80450AE0@ha */
|
||||
/* 80036ED0 C0 43 0A E0 */ lfs f2, __float_nan@l(r3) /* 0x80450AE0@l */
|
||||
/* 80036ED4 48 00 00 78 */ b lbl_80036F4C
|
||||
lbl_80036ED8:
|
||||
/* 80036ED8 D0 21 00 08 */ stfs f1, 8(r1)
|
||||
/* 80036EDC 80 81 00 08 */ lwz r4, 8(r1)
|
||||
/* 80036EE0 54 83 00 50 */ rlwinm r3, r4, 0, 1, 8
|
||||
/* 80036EE4 3C 00 7F 80 */ lis r0, 0x7f80
|
||||
/* 80036EE8 7C 03 00 00 */ cmpw r3, r0
|
||||
/* 80036EEC 41 82 00 14 */ beq lbl_80036F00
|
||||
/* 80036EF0 40 80 00 40 */ bge lbl_80036F30
|
||||
/* 80036EF4 2C 03 00 00 */ cmpwi r3, 0
|
||||
/* 80036EF8 41 82 00 20 */ beq lbl_80036F18
|
||||
/* 80036EFC 48 00 00 34 */ b lbl_80036F30
|
||||
lbl_80036F00:
|
||||
/* 80036F00 54 80 02 7F */ clrlwi. r0, r4, 9
|
||||
/* 80036F04 41 82 00 0C */ beq lbl_80036F10
|
||||
/* 80036F08 38 00 00 01 */ li r0, 1
|
||||
/* 80036F0C 48 00 00 28 */ b lbl_80036F34
|
||||
lbl_80036F10:
|
||||
/* 80036F10 38 00 00 02 */ li r0, 2
|
||||
/* 80036F14 48 00 00 20 */ b lbl_80036F34
|
||||
lbl_80036F18:
|
||||
/* 80036F18 54 80 02 7F */ clrlwi. r0, r4, 9
|
||||
/* 80036F1C 41 82 00 0C */ beq lbl_80036F28
|
||||
/* 80036F20 38 00 00 05 */ li r0, 5
|
||||
/* 80036F24 48 00 00 10 */ b lbl_80036F34
|
||||
lbl_80036F28:
|
||||
/* 80036F28 38 00 00 03 */ li r0, 3
|
||||
/* 80036F2C 48 00 00 08 */ b lbl_80036F34
|
||||
lbl_80036F30:
|
||||
/* 80036F30 38 00 00 04 */ li r0, 4
|
||||
lbl_80036F34:
|
||||
/* 80036F34 2C 00 00 01 */ cmpwi r0, 1
|
||||
/* 80036F38 40 82 00 10 */ bne lbl_80036F48
|
||||
/* 80036F3C 3C 60 80 45 */ lis r3, __float_nan@ha /* 0x80450AE0@ha */
|
||||
/* 80036F40 C0 43 0A E0 */ lfs f2, __float_nan@l(r3) /* 0x80450AE0@l */
|
||||
/* 80036F44 48 00 00 08 */ b lbl_80036F4C
|
||||
lbl_80036F48:
|
||||
/* 80036F48 FC 40 08 90 */ fmr f2, f1
|
||||
lbl_80036F4C:
|
||||
/* 80036F4C C0 21 00 64 */ lfs f1, 0x64(r1)
|
||||
/* 80036F50 48 23 07 25 */ bl cM_atan2s__Fff
|
||||
/* 80036F54 B0 7D 00 00 */ sth r3, 0(r29)
|
||||
/* 80036F58 C0 01 00 60 */ lfs f0, 0x60(r1)
|
||||
/* 80036F5C FC 20 00 50 */ fneg f1, f0
|
||||
/* 80036F60 C0 01 00 68 */ lfs f0, 0x68(r1)
|
||||
/* 80036F64 FC 40 00 50 */ fneg f2, f0
|
||||
/* 80036F68 48 23 07 0D */ bl cM_atan2s__Fff
|
||||
/* 80036F6C B0 7D 00 02 */ sth r3, 2(r29)
|
||||
/* 80036F70 38 00 00 00 */ li r0, 0
|
||||
/* 80036F74 B0 1D 00 04 */ sth r0, 4(r29)
|
||||
/* 80036F78 3C 60 80 3A */ lis r3, __vt__8cM3dGLin@ha /* 0x803A78F8@ha */
|
||||
/* 80036F7C 38 03 78 F8 */ addi r0, r3, __vt__8cM3dGLin@l /* 0x803A78F8@l */
|
||||
/* 80036F80 90 01 00 9C */ stw r0, 0x9c(r1)
|
||||
/* 80036F84 7F E3 FB 78 */ mr r3, r31
|
||||
lbl_80036F88:
|
||||
/* 80036F88 E3 E1 00 C8 */ psq_l f31, 200(r1), 0, 0 /* qr0 */
|
||||
/* 80036F8C CB E1 00 C0 */ lfd f31, 0xc0(r1)
|
||||
/* 80036F90 39 61 00 C0 */ addi r11, r1, 0xc0
|
||||
/* 80036F94 48 32 B2 8D */ bl _restgpr_27
|
||||
/* 80036F98 80 01 00 D4 */ lwz r0, 0xd4(r1)
|
||||
/* 80036F9C 7C 08 03 A6 */ mtlr r0
|
||||
/* 80036FA0 38 21 00 D0 */ addi r1, r1, 0xd0
|
||||
/* 80036FA4 4E 80 00 20 */ blr
|
||||
File diff suppressed because it is too large
Load Diff
@@ -10,7 +10,7 @@ class fopAc_ac_c;
|
||||
class dJntColData_c {
|
||||
public:
|
||||
/* 0x0 */ u8 field_0x0;
|
||||
/* 0x1 */ s8 mType;
|
||||
/* 0x1 */ u8 mType;
|
||||
/* 0x2 */ s16 mJntNum;
|
||||
/* 0x4 */ f32 field_0x4;
|
||||
/* 0x8 */ Vec* field_0x8;
|
||||
@@ -21,7 +21,7 @@ public:
|
||||
/* 80035C8C */ dJntCol_c();
|
||||
/* 80035CA0 */ int init(fopAc_ac_c*, dJntColData_c const*, J3DModel*, int);
|
||||
/* 80035CC8 */ static void setNowLine(cM3dGLin*, cXyz const*, csXyz const*, cXyz*);
|
||||
/* 80035DC8 */ void searchNearPos(cM3dGLin const*, cXyz const*, cXyz*, int) const;
|
||||
/* 80035DC8 */ int searchNearPos(cM3dGLin const*, cXyz const*, cXyz*, int) const;
|
||||
/* 80036AEC */ int getArrowOffsetPosAndAngle(cXyz const*, csXyz const*, cXyz*, cXyz*) const;
|
||||
/* 80036C44 */ int getHitmarkPosAndAngle(cXyz const*, csXyz const*, cXyz*, csXyz*, int) const;
|
||||
/* 80036FA8 */ void setArrowPosAndAngle(cXyz const*, cXyz const*, int, cXyz*, csXyz*);
|
||||
|
||||
+227
-168
@@ -1,85 +1,13 @@
|
||||
//
|
||||
// Generated By: dol2asm
|
||||
// Translation Unit: d/d_jnt_col
|
||||
// d_jnt_col
|
||||
//
|
||||
|
||||
#include "d/d_jnt_col.h"
|
||||
#include "dol2asm.h"
|
||||
#include "SSystem/SComponent/c_math.h"
|
||||
#include "SSystem/SComponent/c_m3d_g_sph.h"
|
||||
#include "SSystem/SComponent/c_m3d_g_cyl.h"
|
||||
#include "f_op/f_op_actor_mng.h"
|
||||
|
||||
//
|
||||
// Types:
|
||||
//
|
||||
|
||||
struct cM3dGSph {
|
||||
/* 80036AA4 */ ~cM3dGSph();
|
||||
/* 8026F664 */ void Set(cXyz const&, f32);
|
||||
};
|
||||
|
||||
struct cM3dGCyl {
|
||||
/* 8026F180 */ void Set(cXyz const&, f32, f32);
|
||||
};
|
||||
|
||||
//
|
||||
// Forward References:
|
||||
//
|
||||
|
||||
extern "C" void __ct__9dJntCol_cFv();
|
||||
extern "C" void init__9dJntCol_cFP10fopAc_ac_cPC13dJntColData_cP8J3DModeli();
|
||||
extern "C" void setNowLine__9dJntCol_cFP8cM3dGLinPC4cXyzPC5csXyzP4cXyz();
|
||||
extern "C" void searchNearPos__9dJntCol_cCFPC8cM3dGLinPC4cXyzP4cXyzi();
|
||||
extern "C" void __dt__8cM3dGLinFv();
|
||||
extern "C" void __dt__8cM3dGSphFv();
|
||||
extern "C" void getArrowOffsetPosAndAngle__9dJntCol_cCFPC4cXyzPC5csXyzP4cXyzP4cXyz();
|
||||
extern "C" void getHitmarkPosAndAngle__9dJntCol_cCFPC4cXyzPC5csXyzP4cXyzP5csXyzi();
|
||||
extern "C" void setArrowPosAndAngle__9dJntCol_cFPC4cXyzPC4cXyziP4cXyzP5csXyz();
|
||||
|
||||
//
|
||||
// External References:
|
||||
//
|
||||
|
||||
extern "C" void mDoMtx_XrotM__FPA4_fs();
|
||||
extern "C" void mDoMtx_YrotM__FPA4_fs();
|
||||
extern "C" void transS__14mDoMtx_stack_cFRC4cXyz();
|
||||
extern "C" void transM__14mDoMtx_stack_cFfff();
|
||||
extern "C" void ZXYrotS__14mDoMtx_stack_cFRC5csXyz();
|
||||
extern "C" void __pl__4cXyzCFRC3Vec();
|
||||
extern "C" void __mi__4cXyzCFRC3Vec();
|
||||
extern "C" void __ml__4cXyzCFf();
|
||||
extern "C" void __dv__4cXyzCFf();
|
||||
extern "C" void normalizeZP__4cXyzFv();
|
||||
extern "C" void atan2sX_Z__4cXyzCFv();
|
||||
extern "C" void atan2sY_XZ__4cXyzCFv();
|
||||
extern "C" void cM_atan2s__Fff();
|
||||
extern "C" void cM3d_SignedLenPlaAndPos__FPC8cM3dGPlaPC3Vec();
|
||||
extern "C" void cM3d_Cross_LinPla__FPC8cM3dGLinPC8cM3dGPlaP3Vecbb();
|
||||
extern "C" void cM3d_Cross_LinSph_CrossPos__FRC8cM3dGSphRC8cM3dGLinP3VecP3Vec();
|
||||
extern "C" void cM3d_Cross_CylLin__FPC8cM3dGCylPC8cM3dGLinP3VecP3Vec();
|
||||
extern "C" void cM3d_lineVsPosSuisenCross__FPC8cM3dGLinPC3VecP3Vec();
|
||||
extern "C" void cM3d_lineVsPosSuisenCross__FRC3VecRC3VecRC3VecP3Vec();
|
||||
extern "C" void Set__8cM3dGCylFRC4cXyzff();
|
||||
extern "C" void SetStartEnd__8cM3dGLinFRC4cXyzRC4cXyz();
|
||||
extern "C" void crossInfLin__8cM3dGPlaCFRC4cXyzRC4cXyzR4cXyz();
|
||||
extern "C" void SetupNP0__8cM3dGPlaFRC3VecRC3Vec();
|
||||
extern "C" void Set__8cM3dGSphFRC4cXyzf();
|
||||
extern "C" void __dl__FPv();
|
||||
extern "C" void _savegpr_19();
|
||||
extern "C" void _savegpr_27();
|
||||
extern "C" void _savegpr_28();
|
||||
extern "C" void _savegpr_29();
|
||||
extern "C" void _restgpr_19();
|
||||
extern "C" void _restgpr_27();
|
||||
extern "C" void _restgpr_28();
|
||||
extern "C" void _restgpr_29();
|
||||
extern "C" extern void* __vt__8cM3dGPla[3];
|
||||
extern "C" extern void* __vt__8cM3dGCyl[3];
|
||||
extern "C" u8 now__14mDoMtx_stack_c[48];
|
||||
extern "C" u8 BaseZ__4cXyz[12];
|
||||
|
||||
//
|
||||
// Declarations:
|
||||
//
|
||||
|
||||
/* 80035C8C-80035CA0 0305CC 0014+00 0/0 1/1 8/8 .text __ct__9dJntCol_cFv */
|
||||
dJntCol_c::dJntCol_c() {
|
||||
mModel = 0;
|
||||
@@ -119,109 +47,240 @@ void dJntCol_c::setNowLine(cM3dGLin* i_line, cXyz const* param_1, csXyz const* p
|
||||
i_line->SetStartEnd(start_pos, end_pos);
|
||||
}
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 803A78F8-803A7904 004A18 000C+00 4/4 21/21 0/0 .data __vt__8cM3dGLin */
|
||||
SECTION_DATA extern void* __vt__8cM3dGLin[3] = {
|
||||
(void*)NULL /* RTTI */,
|
||||
(void*)NULL,
|
||||
(void*)__dt__8cM3dGLinFv,
|
||||
};
|
||||
|
||||
/* 803A7904-803A7910 004A24 000C+00 2/2 10/10 0/0 .data __vt__8cM3dGSph */
|
||||
SECTION_DATA extern void* __vt__8cM3dGSph[3] = {
|
||||
(void*)NULL /* RTTI */,
|
||||
(void*)NULL,
|
||||
(void*)__dt__8cM3dGSphFv,
|
||||
};
|
||||
|
||||
/* 80451D64-80451D68 000364 0004+00 1/1 0/0 0/0 .sdata2 @4141 */
|
||||
SECTION_SDATA2 static f32 lit_4141 = -10000000.0f;
|
||||
|
||||
/* 80451D68-80451D70 000368 0004+04 2/2 0/0 0/0 .sdata2 @4142 */
|
||||
SECTION_SDATA2 static f32 lit_4142[1 + 1 /* padding */] = {
|
||||
0.0f,
|
||||
/* padding */
|
||||
0.0f,
|
||||
};
|
||||
|
||||
/* 80451D70-80451D78 000370 0008+00 2/2 0/0 0/0 .sdata2 @4143 */
|
||||
SECTION_SDATA2 static f64 lit_4143 = 0.5;
|
||||
|
||||
/* 80451D78-80451D80 000378 0008+00 2/2 0/0 0/0 .sdata2 @4144 */
|
||||
SECTION_SDATA2 static f64 lit_4144 = 3.0;
|
||||
|
||||
/* 80451D80-80451D88 000380 0008+00 2/2 0/0 0/0 .sdata2 @4145 */
|
||||
SECTION_SDATA2 static u8 lit_4145[8] = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
};
|
||||
|
||||
/* 80451D88-80451D8C 000388 0004+00 1/1 0/0 0/0 .sdata2 @4146 */
|
||||
SECTION_SDATA2 static f32 lit_4146 = 1.0f / 100.0f;
|
||||
|
||||
/* 80451D8C-80451D90 00038C 0004+00 2/2 0/0 0/0 .sdata2 @4147 */
|
||||
SECTION_SDATA2 static f32 lit_4147 = 9.999999747378752e-05f;
|
||||
|
||||
/* 80451D90-80451D94 000390 0004+00 1/1 0/0 0/0 .sdata2 @4148 */
|
||||
SECTION_SDATA2 static f32 lit_4148 = 0.5f;
|
||||
|
||||
/* 80451D94-80451D98 000394 0004+00 1/1 0/0 0/0 .sdata2 @4149 */
|
||||
SECTION_SDATA2 static f32 lit_4149 = 1.0f;
|
||||
|
||||
/* 80035DC8-80036A5C 030708 0C94+00 2/2 0/0 0/0 .text
|
||||
* searchNearPos__9dJntCol_cCFPC8cM3dGLinPC4cXyzP4cXyzi */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dJntCol_c::searchNearPos(cM3dGLin const* param_0, cXyz const* param_1, cXyz* param_2,
|
||||
int param_3) const {
|
||||
nofralloc
|
||||
#include "asm/d/d_jnt_col/searchNearPos__9dJntCol_cCFPC8cM3dGLinPC4cXyzP4cXyzi.s"
|
||||
int dJntCol_c::searchNearPos(cM3dGLin const* param_1, cXyz const* param_2, cXyz* param_3,
|
||||
int param_4) const {
|
||||
const dJntColData_c* pcVar12 = mData;
|
||||
cXyz const* pcVar9 = param_2;
|
||||
cM3dGSph acStack_a0;
|
||||
cM3dGCyl acStack_b8;
|
||||
cM3dGPla acStack_d0;
|
||||
cXyz cStack_f8;
|
||||
cXyz local_104;
|
||||
cXyz cStack_110;
|
||||
cXyz cStack_11c;
|
||||
cXyz local_128;
|
||||
cXyz cStack_134;
|
||||
cM3dGLin acStack_ec;
|
||||
cXyz cStack_140;
|
||||
cXyz cStack_14c;
|
||||
f32 dVar17;
|
||||
f32 dVar18 = FLT_MAX;
|
||||
int bVar5 = FALSE;
|
||||
int rv = -1;
|
||||
dVar17 = -10000000.0f;
|
||||
for (int i = 0; i < field_0x8; i++, pcVar12++) {
|
||||
if ((field_0xc & (1 << i)) == 0 &&
|
||||
(param_4 == 0 || pcVar12->mType == 3))
|
||||
{
|
||||
MtxP dst = mModel->getAnmMtx(pcVar12->mJntNum);
|
||||
mDoMtx_stack_c::copy(dst);
|
||||
mDoMtx_stack_c::multVec(pcVar12->field_0x8, &local_128);
|
||||
if (pcVar12->field_0x0 == 0) {
|
||||
acStack_a0.Set(local_128, pcVar12->field_0x4);
|
||||
int iVar6 = cM3d_Cross_LinSph_CrossPos(acStack_a0, *param_1, &cStack_110,
|
||||
&cStack_11c);
|
||||
if (iVar6 != 0) {
|
||||
if (iVar6 == 1) {
|
||||
cStack_f8 = cStack_110;
|
||||
} else {
|
||||
f32 dVar15 = cStack_11c.abs2(param_1->GetStart());
|
||||
f32 dVar16 = cStack_110.abs2(param_1->GetStart());
|
||||
if (dVar16 < dVar15) {
|
||||
cStack_f8 = cStack_110;
|
||||
} else {
|
||||
cStack_f8 = cStack_11c;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
local_104 = *param_2 - local_128;
|
||||
local_104.normalizeZP();
|
||||
cStack_f8 = local_128 + local_104 * pcVar12->field_0x4;
|
||||
}
|
||||
} else if (pcVar12->field_0x0 == 1) {
|
||||
mDoMtx_stack_c::multVec(pcVar12->field_0x8 + 1, &cStack_134);
|
||||
local_104 = cStack_134 - local_128;
|
||||
int bVar13;
|
||||
if (local_104.absXZ() > 0.01f) {
|
||||
mDoMtx_stack_c::transS(local_128);
|
||||
mDoMtx_stack_c::XrotM(cM_atan2s(-local_104.absXZ(), local_104.y));
|
||||
mDoMtx_stack_c::YrotM(cM_atan2s(-local_104.x, local_104.z));
|
||||
mDoMtx_stack_c::transM(-local_128.x, -local_128.y, -local_128.z);
|
||||
mDoMtx_stack_c::multVec(&cStack_134, &cStack_11c);
|
||||
mDoMtx_stack_c::multVec(¶m_1->GetStartP(), &cStack_140);
|
||||
mDoMtx_stack_c::multVec(¶m_1->GetEndP(), &cStack_14c);
|
||||
acStack_ec.SetStartEnd(cStack_140, cStack_14c);
|
||||
bVar13 = 1;
|
||||
} else {
|
||||
cStack_11c = cStack_134;
|
||||
acStack_ec.SetStartEnd(param_1->GetStart(), param_1->GetEnd());
|
||||
bVar13 = 0;
|
||||
}
|
||||
acStack_b8.Set(local_128, pcVar12->field_0x4,
|
||||
cStack_11c.y - local_128.y);
|
||||
if (cM3d_Cross_CylLin(&acStack_b8, &acStack_ec, &cStack_110, &cStack_11c)) {
|
||||
if (bVar13) {
|
||||
mDoMtx_stack_c::inverse();
|
||||
mDoMtx_stack_c::multVec(&cStack_110, &cStack_f8);
|
||||
} else {
|
||||
cStack_f8 = cStack_110;
|
||||
}
|
||||
} else {
|
||||
acStack_ec.SetStartEnd(local_128, cStack_134);
|
||||
f32 dVar15 = cM3d_lineVsPosSuisenCross(&acStack_ec, param_2,
|
||||
&cStack_110);
|
||||
local_104 = *param_2 - cStack_110;
|
||||
f32 dVar16 = local_104.abs2();
|
||||
if (dVar16 < 9.999999747378752e-05f) {
|
||||
cStack_110 = acStack_ec.GetStart() - acStack_ec.GetEnd();
|
||||
cStack_11c = param_1->GetStart() - param_1->GetEnd();
|
||||
f32 inprod = cStack_110.inprod(cStack_11c);
|
||||
if (inprod > 0.0f) {
|
||||
cStack_f8 = acStack_ec.GetEnd();
|
||||
} else if (inprod < 0.0f) {
|
||||
cStack_f8 = acStack_ec.GetStart();
|
||||
} else if (dVar15 < 0.5f) {
|
||||
cStack_f8 = acStack_ec.GetStart();
|
||||
} else {
|
||||
cStack_f8 = acStack_ec.GetEnd();
|
||||
}
|
||||
} else {
|
||||
if (dVar15 >= 0.0f && dVar15 <= 1.0f) {
|
||||
cStack_f8 = cStack_110 + (local_104 / JMAFastSqrt(dVar16)) * pcVar12->field_0x4;
|
||||
} else {
|
||||
cStack_110 = acStack_ec.GetStart() - acStack_ec.GetEnd();
|
||||
cStack_11c = param_1->GetStart() - param_1->GetEnd();
|
||||
f32 dVar14 = cStack_110.inprod(cStack_11c);
|
||||
if (dVar14 > 0.0f) {
|
||||
cStack_110 = acStack_ec.GetEnd();
|
||||
} else {
|
||||
if (dVar14 < 0.0f) {
|
||||
cStack_110 = acStack_ec.GetStart();
|
||||
} else {
|
||||
if (dVar15 < 0.5f) {
|
||||
cStack_110 = acStack_ec.GetStart();
|
||||
} else {
|
||||
cStack_110 = acStack_ec.GetEnd();
|
||||
}
|
||||
}
|
||||
}
|
||||
cStack_f8 = cStack_110 + (local_104 / JMAFastSqrt(dVar16)) * pcVar12->field_0x4;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
} else {
|
||||
mDoMtx_stack_c::multVecSR(pcVar12->field_0x8 + 1, &local_104);
|
||||
acStack_d0.SetupNP0(local_104, local_128);
|
||||
if (cM3d_Cross_LinPla(param_1, &acStack_d0, &cStack_f8, true, true)) {
|
||||
if (!(local_128.abs(cStack_f8) < pcVar12->field_0x4)) {
|
||||
local_104 = cStack_f8 - local_128;
|
||||
local_104.normalizeZP();
|
||||
cStack_f8 = local_128 + local_104 * pcVar12->field_0x4;
|
||||
}
|
||||
} else {
|
||||
if (acStack_d0.crossInfLin(*param_2, param_1->GetEnd(), cStack_f8)) {
|
||||
local_104 = cStack_f8 - local_128;
|
||||
local_104.normalizeZP();
|
||||
cStack_f8 = local_128 + local_104 * pcVar12->field_0x4;
|
||||
} else {
|
||||
f32 pla = cM3d_SignedLenPlaAndPos(&acStack_d0, param_2);
|
||||
local_104.normalizeZP();
|
||||
cStack_f8 = *param_2 - local_104 * pla;
|
||||
}
|
||||
}
|
||||
}
|
||||
f32 cross = cM3d_lineVsPosSuisenCross(param_1, &cStack_f8, &cStack_110);
|
||||
f32 dVar16 = cStack_f8.abs2(cStack_110);
|
||||
if (dVar16 < 9.999999747378752e-05f) {
|
||||
if (!bVar5 || dVar17 < cross) {
|
||||
dVar17 = cross;
|
||||
*param_3 = cStack_f8;
|
||||
rv = i;
|
||||
bVar5 = TRUE;
|
||||
}
|
||||
} else {
|
||||
if (!bVar5 && (dVar18 >= dVar16)) {
|
||||
dVar18 = dVar16;
|
||||
*param_3 = cStack_f8;
|
||||
rv = i;
|
||||
}
|
||||
}
|
||||
}
|
||||
;
|
||||
}
|
||||
return rv;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80036A5C-80036AA4 03139C 0048+00 1/0 3/3 0/0 .text __dt__8cM3dGLinFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
extern "C" asm void __dt__8cM3dGLinFv() {
|
||||
nofralloc
|
||||
#include "asm/d/d_jnt_col/__dt__8cM3dGLinFv.s"
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80036AA4-80036AEC 0313E4 0048+00 1/0 0/0 0/0 .text __dt__8cM3dGSphFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm cM3dGSph::~cM3dGSph() {
|
||||
nofralloc
|
||||
#include "asm/d/d_jnt_col/__dt__8cM3dGSphFv.s"
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80036AEC-80036C44 03142C 0158+00 0/0 0/0 1/1 .text
|
||||
* getArrowOffsetPosAndAngle__9dJntCol_cCFPC4cXyzPC5csXyzP4cXyzP4cXyz */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm int dJntCol_c::getArrowOffsetPosAndAngle(cXyz const* param_0, csXyz const* param_1,
|
||||
cXyz* param_2, cXyz* param_3) const {
|
||||
nofralloc
|
||||
#include "asm/d/d_jnt_col/getArrowOffsetPosAndAngle__9dJntCol_cCFPC4cXyzPC5csXyzP4cXyzP4cXyz.s"
|
||||
int dJntCol_c::getArrowOffsetPosAndAngle(cXyz const* param_1, csXyz const* param_2,
|
||||
cXyz* param_3, cXyz* param_4) const {
|
||||
cM3dGLin acStack_34;
|
||||
cXyz cStack_40;
|
||||
setNowLine(&acStack_34, param_1, param_2, &cStack_40);
|
||||
cXyz cStack_4c;
|
||||
int iVar1 = searchNearPos(&acStack_34, param_1, &cStack_4c, 0);
|
||||
if (iVar1 < 0) {
|
||||
return -3;
|
||||
}
|
||||
const dJntColData_c* jntColData = &mData[iVar1];
|
||||
if (jntColData->mType == 0) {
|
||||
return -3;
|
||||
}
|
||||
if (jntColData->mType == 2) {
|
||||
return -1;
|
||||
}
|
||||
if (jntColData->mType == 3) {
|
||||
return -2;
|
||||
}
|
||||
mDoMtx_stack_c::copy(mModel->getAnmMtx(jntColData->mJntNum));
|
||||
mDoMtx_stack_c::inverse();
|
||||
mDoMtx_stack_c::multVecSR(&cStack_40, param_4);
|
||||
mDoMtx_stack_c::multVec(&cStack_4c, param_3);
|
||||
return jntColData->mJntNum;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80036C44-80036FA8 031584 0364+00 0/0 3/3 0/0 .text
|
||||
* getHitmarkPosAndAngle__9dJntCol_cCFPC4cXyzPC5csXyzP4cXyzP5csXyzi */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm int dJntCol_c::getHitmarkPosAndAngle(cXyz const* param_0, csXyz const* param_1, cXyz* param_2,
|
||||
csXyz* param_3, int param_4) const {
|
||||
nofralloc
|
||||
#include "asm/d/d_jnt_col/getHitmarkPosAndAngle__9dJntCol_cCFPC4cXyzPC5csXyzP4cXyzP5csXyzi.s"
|
||||
int dJntCol_c::getHitmarkPosAndAngle(cXyz const* param_1, csXyz const* param_2, cXyz* param_3,
|
||||
csXyz* param_4, int param_5) const {
|
||||
cM3dGLin acStack_54;
|
||||
cXyz cStack_60;
|
||||
setNowLine(&acStack_54, param_1, param_2, &cStack_60);
|
||||
int iVar3 = searchNearPos(&acStack_54, param_1, param_3, param_5);
|
||||
if (iVar3 < 0) {
|
||||
return -1;
|
||||
}
|
||||
const dJntColData_c* jntColData = &mData[iVar3];
|
||||
cXyz cStack_6c;
|
||||
cXyz local_78;
|
||||
mDoMtx_stack_c::copy(mModel->getAnmMtx(jntColData->mJntNum));
|
||||
mDoMtx_stack_c::multVec(jntColData->field_0x8, &cStack_6c);
|
||||
if (jntColData->field_0x0 == 0) {
|
||||
local_78 = *param_3 - cStack_6c;
|
||||
} else if (jntColData->field_0x0 == 1) {
|
||||
cXyz cStack_84;
|
||||
cXyz cStack_90;
|
||||
mDoMtx_stack_c::multVec(jntColData->field_0x8 + 1, &cStack_84);
|
||||
cM3d_lineVsPosSuisenCross(cStack_6c, cStack_84, *param_3, &cStack_90);
|
||||
local_78 = *param_3 - cStack_90;
|
||||
if (local_78.abs2() < 9.999999747378752e-05f) {
|
||||
if (param_3->abs2(cStack_6c) < param_3->abs2(cStack_84)) {
|
||||
local_78 = cStack_6c - cStack_84;
|
||||
} else {
|
||||
local_78 = cStack_84 - cStack_6c;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
mDoMtx_stack_c::multVecSR(jntColData->field_0x8 + 1, &local_78);
|
||||
}
|
||||
param_4->x = cM_atan2s(local_78.y, local_78.absXZ());
|
||||
param_4->y = cM_atan2s(-local_78.x, -local_78.z);
|
||||
param_4->z = 0;
|
||||
return iVar3;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80036FA8-80037038 0318E8 0090+00 0/0 0/0 1/1 .text
|
||||
* setArrowPosAndAngle__9dJntCol_cFPC4cXyzPC4cXyziP4cXyzP5csXyz */
|
||||
|
||||
Reference in New Issue
Block a user