func_8005EC6C OK!

This commit is contained in:
mzxrules 2020-04-02 14:50:58 -04:00
parent 01f5bc92c8
commit 8c2da636cd
4 changed files with 244 additions and 356 deletions

View File

@ -0,0 +1,183 @@
.late_rodata
glabel D_8013AD00
.float 0.008
.text
glabel func_8005EEE0
/* AD6080 8005EEE0 27BDFF58 */ addiu $sp, $sp, -0xa8
/* AD6084 8005EEE4 AFBF005C */ sw $ra, 0x5c($sp)
/* AD6088 8005EEE8 AFBE0058 */ sw $fp, 0x58($sp)
/* AD608C 8005EEEC AFB70054 */ sw $s7, 0x54($sp)
/* AD6090 8005EEF0 AFB60050 */ sw $s6, 0x50($sp)
/* AD6094 8005EEF4 AFB5004C */ sw $s5, 0x4c($sp)
/* AD6098 8005EEF8 AFB40048 */ sw $s4, 0x48($sp)
/* AD609C 8005EEFC AFB30044 */ sw $s3, 0x44($sp)
/* AD60A0 8005EF00 AFB20040 */ sw $s2, 0x40($sp)
/* AD60A4 8005EF04 AFB1003C */ sw $s1, 0x3c($sp)
/* AD60A8 8005EF08 AFB00038 */ sw $s0, 0x38($sp)
/* AD60AC 8005EF0C F7B60030 */ sdc1 $f22, 0x30($sp)
/* AD60B0 8005EF10 F7B40028 */ sdc1 $f20, 0x28($sp)
/* AD60B4 8005EF14 AFA400A8 */ sw $a0, 0xa8($sp)
/* AD60B8 8005EF18 AFA500AC */ sw $a1, 0xac($sp)
/* AD60BC 8005EF1C 8CEE0018 */ lw $t6, 0x18($a3)
/* AD60C0 8005EF20 00C08825 */ move $s1, $a2
/* AD60C4 8005EF24 00E0A825 */ move $s5, $a3
/* AD60C8 8005EF28 19C00086 */ blez $t6, .L8005F144
/* AD60CC 8005EF2C 00E0B825 */ move $s7, $a3
/* AD60D0 8005EF30 8CEF001C */ lw $t7, 0x1c($a3)
/* AD60D4 8005EF34 51E00084 */ beql $t7, $zero, .L8005F148
/* AD60D8 8005EF38 8FBF005C */ lw $ra, 0x5c($sp)
/* AD60DC 8005EF3C 84D80040 */ lh $t8, 0x40($a2)
/* AD60E0 8005EF40 5B000081 */ blezl $t8, .L8005F148
/* AD60E4 8005EF44 8FBF005C */ lw $ra, 0x5c($sp)
/* AD60E8 8005EF48 84D90042 */ lh $t9, 0x42($a2)
/* AD60EC 8005EF4C 24D40018 */ addiu $s4, $a2, 0x18
/* AD60F0 8005EF50 5B20007D */ blezl $t9, .L8005F148
/* AD60F4 8005EF54 8FBF005C */ lw $ra, 0x5c($sp)
/* AD60F8 8005EF58 0C0177CB */ jal func_8005DF2C
/* AD60FC 8005EF5C 02802025 */ move $a0, $s4
/* AD6100 8005EF60 24160001 */ li $s6, 1
/* AD6104 8005EF64 50560078 */ beql $v0, $s6, .L8005F148
/* AD6108 8005EF68 8FBF005C */ lw $ra, 0x5c($sp)
/* AD610C 8005EF6C 8EA80018 */ lw $t0, 0x18($s5)
/* AD6110 8005EF70 8EB0001C */ lw $s0, 0x1c($s5)
/* AD6114 8005EF74 27BE009C */ addiu $fp, $sp, 0x9c
/* AD6118 8005EF78 00084980 */ sll $t1, $t0, 6
/* AD611C 8005EF7C 02095021 */ addu $t2, $s0, $t1
/* AD6120 8005EF80 020A082B */ sltu $at, $s0, $t2
/* AD6124 8005EF84 1020006F */ beqz $at, .L8005F144
/* AD6128 8005EF88 27B30088 */ addiu $s3, $sp, 0x88
/* AD612C 8005EF8C 3C013F80 */ li $at, 0x3F800000 # 0.000000
/* AD6130 8005EF90 4481B000 */ mtc1 $at, $f22
/* AD6134 8005EF94 3C018014 */ lui $at, %hi(D_8013AD00)
/* AD6138 8005EF98 C434AD00 */ lwc1 $f20, %lo(D_8013AD00)($at)
/* AD613C 8005EF9C 27B2007C */ addiu $s2, $sp, 0x7c
.L8005EFA0:
/* AD6140 8005EFA0 0C0177D4 */ jal func_8005DF50
/* AD6144 8005EFA4 02002025 */ move $a0, $s0
/* AD6148 8005EFA8 1056005E */ beq $v0, $s6, .L8005F124
/* AD614C 8005EFAC 02802025 */ move $a0, $s4
/* AD6150 8005EFB0 0C0177DD */ jal func_8005DF74
/* AD6154 8005EFB4 02002825 */ move $a1, $s0
/* AD6158 8005EFB8 1056005A */ beq $v0, $s6, .L8005F124
/* AD615C 8005EFBC 26040030 */ addiu $a0, $s0, 0x30
/* AD6160 8005EFC0 26250040 */ addiu $a1, $s1, 0x40
/* AD6164 8005EFC4 03C03025 */ move $a2, $fp
/* AD6168 8005EFC8 0C033F69 */ jal func_800CFDA4
/* AD616C 8005EFCC 27A70098 */ addiu $a3, $sp, 0x98
/* AD6170 8005EFD0 50400055 */ beql $v0, $zero, .L8005F128
/* AD6174 8005EFD4 8EEC0018 */ lw $t4, 0x18($s7)
/* AD6178 8005EFD8 862B0046 */ lh $t3, 0x46($s1)
/* AD617C 8005EFDC 02602025 */ move $a0, $s3
/* AD6180 8005EFE0 448B2000 */ mtc1 $t3, $f4
/* AD6184 8005EFE4 00000000 */ nop
/* AD6188 8005EFE8 468021A0 */ cvt.s.w $f6, $f4
/* AD618C 8005EFEC E7A6007C */ swc1 $f6, 0x7c($sp)
/* AD6190 8005EFF0 862C0048 */ lh $t4, 0x48($s1)
/* AD6194 8005EFF4 448C4000 */ mtc1 $t4, $f8
/* AD6198 8005EFF8 00000000 */ nop
/* AD619C 8005EFFC 468042A0 */ cvt.s.w $f10, $f8
/* AD61A0 8005F000 E7AA0080 */ swc1 $f10, 0x80($sp)
/* AD61A4 8005F004 862D004A */ lh $t5, 0x4a($s1)
/* AD61A8 8005F008 448D8000 */ mtc1 $t5, $f16
/* AD61AC 8005F00C 00000000 */ nop
/* AD61B0 8005F010 468084A0 */ cvt.s.w $f18, $f16
/* AD61B4 8005F014 E7B20084 */ swc1 $f18, 0x84($sp)
/* AD61B8 8005F018 860E0030 */ lh $t6, 0x30($s0)
/* AD61BC 8005F01C 448E2000 */ mtc1 $t6, $f4
/* AD61C0 8005F020 00000000 */ nop
/* AD61C4 8005F024 468021A0 */ cvt.s.w $f6, $f4
/* AD61C8 8005F028 C7A40098 */ lwc1 $f4, 0x98($sp)
/* AD61CC 8005F02C 46002005 */ abs.s $f0, $f4
/* AD61D0 8005F030 E7A60070 */ swc1 $f6, 0x70($sp)
/* AD61D4 8005F034 860F0032 */ lh $t7, 0x32($s0)
/* AD61D8 8005F038 4614003C */ c.lt.s $f0, $f20
/* AD61DC 8005F03C 448F4000 */ mtc1 $t7, $f8
/* AD61E0 8005F040 00000000 */ nop
/* AD61E4 8005F044 468042A0 */ cvt.s.w $f10, $f8
/* AD61E8 8005F048 E7AA0074 */ swc1 $f10, 0x74($sp)
/* AD61EC 8005F04C 86180034 */ lh $t8, 0x34($s0)
/* AD61F0 8005F050 44988000 */ mtc1 $t8, $f16
/* AD61F4 8005F054 00000000 */ nop
/* AD61F8 8005F058 468084A0 */ cvt.s.w $f18, $f16
/* AD61FC 8005F05C 45010021 */ bc1t .L8005F0E4
/* AD6200 8005F060 E7B20078 */ swc1 $f18, 0x78($sp)
/* AD6204 8005F064 86190036 */ lh $t9, 0x36($s0)
/* AD6208 8005F068 C7A20070 */ lwc1 $f2, 0x70($sp)
/* AD620C 8005F06C C7AA007C */ lwc1 $f10, 0x7c($sp)
/* AD6210 8005F070 44993000 */ mtc1 $t9, $f6
/* AD6214 8005F074 02602025 */ move $a0, $s3
/* AD6218 8005F078 46803220 */ cvt.s.w $f8, $f6
/* AD621C 8005F07C 46044003 */ div.s $f0, $f8, $f4
/* AD6220 8005F080 4616003E */ c.le.s $f0, $f22
/* AD6224 8005F084 00000000 */ nop
/* AD6228 8005F088 45000012 */ bc1f .L8005F0D4
/* AD622C 8005F08C 00000000 */ nop
/* AD6230 8005F090 46025401 */ sub.s $f16, $f10, $f2
/* AD6234 8005F094 C7AC0074 */ lwc1 $f12, 0x74($sp)
/* AD6238 8005F098 C7A80080 */ lwc1 $f8, 0x80($sp)
/* AD623C 8005F09C C7AE0078 */ lwc1 $f14, 0x78($sp)
/* AD6240 8005F0A0 46008482 */ mul.s $f18, $f16, $f0
/* AD6244 8005F0A4 460C4101 */ sub.s $f4, $f8, $f12
/* AD6248 8005F0A8 46002282 */ mul.s $f10, $f4, $f0
/* AD624C 8005F0AC 46029180 */ add.s $f6, $f18, $f2
/* AD6250 8005F0B0 C7B20084 */ lwc1 $f18, 0x84($sp)
/* AD6254 8005F0B4 E7A60088 */ swc1 $f6, 0x88($sp)
/* AD6258 8005F0B8 460E9181 */ sub.s $f6, $f18, $f14
/* AD625C 8005F0BC 460C5400 */ add.s $f16, $f10, $f12
/* AD6260 8005F0C0 46003202 */ mul.s $f8, $f6, $f0
/* AD6264 8005F0C4 E7B0008C */ swc1 $f16, 0x8c($sp)
/* AD6268 8005F0C8 460E4100 */ add.s $f4, $f8, $f14
/* AD626C 8005F0CC 10000007 */ b .L8005F0EC
/* AD6270 8005F0D0 E7A40090 */ swc1 $f4, 0x90($sp)
.L8005F0D4:
/* AD6274 8005F0D4 0C01DF90 */ jal Math_Vec3f_Copy
/* AD6278 8005F0D8 02402825 */ move $a1, $s2
/* AD627C 8005F0DC 10000004 */ b .L8005F0F0
/* AD6280 8005F0E0 27A80070 */ addiu $t0, $sp, 0x70
.L8005F0E4:
/* AD6284 8005F0E4 0C01DF90 */ jal Math_Vec3f_Copy
/* AD6288 8005F0E8 02402825 */ move $a1, $s2
.L8005F0EC:
/* AD628C 8005F0EC 27A80070 */ addiu $t0, $sp, 0x70
.L8005F0F0:
/* AD6290 8005F0F0 AFA80018 */ sw $t0, 0x18($sp)
/* AD6294 8005F0F4 8FA400A8 */ lw $a0, 0xa8($sp)
/* AD6298 8005F0F8 02202825 */ move $a1, $s1
/* AD629C 8005F0FC 02803025 */ move $a2, $s4
/* AD62A0 8005F100 02403825 */ move $a3, $s2
/* AD62A4 8005F104 AFB50010 */ sw $s5, 0x10($sp)
/* AD62A8 8005F108 AFB00014 */ sw $s0, 0x14($sp)
/* AD62AC 8005F10C 0C017A07 */ jal func_8005E81C
/* AD62B0 8005F110 AFB3001C */ sw $s3, 0x1c($sp)
/* AD62B4 8005F114 92A90013 */ lbu $t1, 0x13($s5)
/* AD62B8 8005F118 312A0040 */ andi $t2, $t1, 0x40
/* AD62BC 8005F11C 5140000A */ beql $t2, $zero, .L8005F148
/* AD62C0 8005F120 8FBF005C */ lw $ra, 0x5c($sp)
.L8005F124:
/* AD62C4 8005F124 8EEC0018 */ lw $t4, 0x18($s7)
.L8005F128:
/* AD62C8 8005F128 8EEB001C */ lw $t3, 0x1c($s7)
/* AD62CC 8005F12C 26100040 */ addiu $s0, $s0, 0x40
/* AD62D0 8005F130 000C6980 */ sll $t5, $t4, 6
/* AD62D4 8005F134 016D7021 */ addu $t6, $t3, $t5
/* AD62D8 8005F138 020E082B */ sltu $at, $s0, $t6
/* AD62DC 8005F13C 1420FF98 */ bnez $at, .L8005EFA0
/* AD62E0 8005F140 00000000 */ nop
.L8005F144:
/* AD62E4 8005F144 8FBF005C */ lw $ra, 0x5c($sp)
.L8005F148:
/* AD62E8 8005F148 D7B40028 */ ldc1 $f20, 0x28($sp)
/* AD62EC 8005F14C D7B60030 */ ldc1 $f22, 0x30($sp)
/* AD62F0 8005F150 8FB00038 */ lw $s0, 0x38($sp)
/* AD62F4 8005F154 8FB1003C */ lw $s1, 0x3c($sp)
/* AD62F8 8005F158 8FB20040 */ lw $s2, 0x40($sp)
/* AD62FC 8005F15C 8FB30044 */ lw $s3, 0x44($sp)
/* AD6300 8005F160 8FB40048 */ lw $s4, 0x48($sp)
/* AD6304 8005F164 8FB5004C */ lw $s5, 0x4c($sp)
/* AD6308 8005F168 8FB60050 */ lw $s6, 0x50($sp)
/* AD630C 8005F16C 8FB70054 */ lw $s7, 0x54($sp)
/* AD6310 8005F170 8FBE0058 */ lw $fp, 0x58($sp)
/* AD6314 8005F174 03E00008 */ jr $ra
/* AD6318 8005F178 27BD00A8 */ addiu $sp, $sp, 0xa8

View File

@ -1,11 +1,5 @@
.late_rodata
glabel D_8013ACFC
.float 0.008
glabel D_8013AD00
.float 0.008
glabel D_8013AD04
.float 0.33333334
@ -31,351 +25,7 @@ glabel D_8013AD20
.float 0.33333334
.text
glabel func_8005EC6C
/* AD5E0C 8005EC6C 27BDFF70 */ addiu $sp, $sp, -0x90
/* AD5E10 8005EC70 AFBF0044 */ sw $ra, 0x44($sp)
/* AD5E14 8005EC74 AFB60040 */ sw $s6, 0x40($sp)
/* AD5E18 8005EC78 AFB5003C */ sw $s5, 0x3c($sp)
/* AD5E1C 8005EC7C AFB40038 */ sw $s4, 0x38($sp)
/* AD5E20 8005EC80 AFB30034 */ sw $s3, 0x34($sp)
/* AD5E24 8005EC84 AFB20030 */ sw $s2, 0x30($sp)
/* AD5E28 8005EC88 AFB1002C */ sw $s1, 0x2c($sp)
/* AD5E2C 8005EC8C AFB00028 */ sw $s0, 0x28($sp)
/* AD5E30 8005EC90 AFA40090 */ sw $a0, 0x90($sp)
/* AD5E34 8005EC94 AFA50094 */ sw $a1, 0x94($sp)
/* AD5E38 8005EC98 8CCE0018 */ lw $t6, 0x18($a2)
/* AD5E3C 8005EC9C 00E09025 */ move $s2, $a3
/* AD5E40 8005ECA0 00C09825 */ move $s3, $a2
/* AD5E44 8005ECA4 59C00085 */ blezl $t6, .L8005EEBC
/* AD5E48 8005ECA8 8FBF0044 */ lw $ra, 0x44($sp)
/* AD5E4C 8005ECAC 8CCF001C */ lw $t7, 0x1c($a2)
/* AD5E50 8005ECB0 51E00082 */ beql $t7, $zero, .L8005EEBC
/* AD5E54 8005ECB4 8FBF0044 */ lw $ra, 0x44($sp)
/* AD5E58 8005ECB8 84F80040 */ lh $t8, 0x40($a3)
/* AD5E5C 8005ECBC 5B00007F */ blezl $t8, .L8005EEBC
/* AD5E60 8005ECC0 8FBF0044 */ lw $ra, 0x44($sp)
/* AD5E64 8005ECC4 84F90042 */ lh $t9, 0x42($a3)
/* AD5E68 8005ECC8 24F60018 */ addiu $s6, $a3, 0x18
/* AD5E6C 8005ECCC 02C02025 */ move $a0, $s6
/* AD5E70 8005ECD0 5B20007A */ blezl $t9, .L8005EEBC
/* AD5E74 8005ECD4 8FBF0044 */ lw $ra, 0x44($sp)
/* AD5E78 8005ECD8 0C0177D4 */ jal func_8005DF50
/* AD5E7C 8005ECDC AFA60098 */ sw $a2, 0x98($sp)
/* AD5E80 8005ECE0 24110001 */ li $s1, 1
/* AD5E84 8005ECE4 10510074 */ beq $v0, $s1, .L8005EEB8
/* AD5E88 8005ECE8 8FA30098 */ lw $v1, 0x98($sp)
/* AD5E8C 8005ECEC 8C680018 */ lw $t0, 0x18($v1)
/* AD5E90 8005ECF0 8C70001C */ lw $s0, 0x1c($v1)
/* AD5E94 8005ECF4 27B5007C */ addiu $s5, $sp, 0x7c
/* AD5E98 8005ECF8 00084980 */ sll $t1, $t0, 6
/* AD5E9C 8005ECFC 02095021 */ addu $t2, $s0, $t1
/* AD5EA0 8005ED00 020A082B */ sltu $at, $s0, $t2
/* AD5EA4 8005ED04 1020006C */ beqz $at, .L8005EEB8
/* AD5EA8 8005ED08 27B40080 */ addiu $s4, $sp, 0x80
.L8005ED0C:
/* AD5EAC 8005ED0C 0C0177CB */ jal func_8005DF2C
/* AD5EB0 8005ED10 02002025 */ move $a0, $s0
/* AD5EB4 8005ED14 10510060 */ beq $v0, $s1, .L8005EE98
/* AD5EB8 8005ED18 02002025 */ move $a0, $s0
/* AD5EBC 8005ED1C 0C0177DD */ jal func_8005DF74
/* AD5EC0 8005ED20 02C02825 */ move $a1, $s6
/* AD5EC4 8005ED24 1051005C */ beq $v0, $s1, .L8005EE98
/* AD5EC8 8005ED28 26040030 */ addiu $a0, $s0, 0x30
/* AD5ECC 8005ED2C 26450040 */ addiu $a1, $s2, 0x40
/* AD5ED0 8005ED30 02803025 */ move $a2, $s4
/* AD5ED4 8005ED34 0C033F69 */ jal func_800CFDA4
/* AD5ED8 8005ED38 02A03825 */ move $a3, $s5
/* AD5EDC 8005ED3C 50400057 */ beql $v0, $zero, .L8005EE9C
/* AD5EE0 8005ED40 8E6B0018 */ lw $t3, 0x18($s3)
/* AD5EE4 8005ED44 860B0030 */ lh $t3, 0x30($s0)
/* AD5EE8 8005ED48 3C018014 */ lui $at, %hi(D_8013ACFC)
/* AD5EEC 8005ED4C 27A40070 */ addiu $a0, $sp, 0x70
/* AD5EF0 8005ED50 448B2000 */ mtc1 $t3, $f4
/* AD5EF4 8005ED54 00000000 */ nop
/* AD5EF8 8005ED58 468021A0 */ cvt.s.w $f6, $f4
/* AD5EFC 8005ED5C E7A60064 */ swc1 $f6, 0x64($sp)
/* AD5F00 8005ED60 860C0032 */ lh $t4, 0x32($s0)
/* AD5F04 8005ED64 448C4000 */ mtc1 $t4, $f8
/* AD5F08 8005ED68 00000000 */ nop
/* AD5F0C 8005ED6C 468042A0 */ cvt.s.w $f10, $f8
/* AD5F10 8005ED70 E7AA0068 */ swc1 $f10, 0x68($sp)
/* AD5F14 8005ED74 860D0034 */ lh $t5, 0x34($s0)
/* AD5F18 8005ED78 448D8000 */ mtc1 $t5, $f16
/* AD5F1C 8005ED7C 00000000 */ nop
/* AD5F20 8005ED80 468084A0 */ cvt.s.w $f18, $f16
/* AD5F24 8005ED84 E7B2006C */ swc1 $f18, 0x6c($sp)
/* AD5F28 8005ED88 864E0046 */ lh $t6, 0x46($s2)
/* AD5F2C 8005ED8C 448E2000 */ mtc1 $t6, $f4
/* AD5F30 8005ED90 00000000 */ nop
/* AD5F34 8005ED94 468021A0 */ cvt.s.w $f6, $f4
/* AD5F38 8005ED98 C7A4007C */ lwc1 $f4, 0x7c($sp)
/* AD5F3C 8005ED9C 46002005 */ abs.s $f0, $f4
/* AD5F40 8005EDA0 E7A60058 */ swc1 $f6, 0x58($sp)
/* AD5F44 8005EDA4 864F0048 */ lh $t7, 0x48($s2)
/* AD5F48 8005EDA8 C426ACFC */ lwc1 $f6, %lo(D_8013ACFC)($at)
/* AD5F4C 8005EDAC 448F4000 */ mtc1 $t7, $f8
/* AD5F50 8005EDB0 4606003C */ c.lt.s $f0, $f6
/* AD5F54 8005EDB4 468042A0 */ cvt.s.w $f10, $f8
/* AD5F58 8005EDB8 E7AA005C */ swc1 $f10, 0x5c($sp)
/* AD5F5C 8005EDBC 8658004A */ lh $t8, 0x4a($s2)
/* AD5F60 8005EDC0 44988000 */ mtc1 $t8, $f16
/* AD5F64 8005EDC4 00000000 */ nop
/* AD5F68 8005EDC8 468084A0 */ cvt.s.w $f18, $f16
/* AD5F6C 8005EDCC 45010023 */ bc1t .L8005EE5C
/* AD5F70 8005EDD0 E7B20060 */ swc1 $f18, 0x60($sp)
/* AD5F74 8005EDD4 86590040 */ lh $t9, 0x40($s2)
/* AD5F78 8005EDD8 3C013F80 */ li $at, 0x3F800000 # 0.000000
/* AD5F7C 8005EDDC 44818000 */ mtc1 $at, $f16
/* AD5F80 8005EDE0 44994000 */ mtc1 $t9, $f8
/* AD5F84 8005EDE4 C7A20058 */ lwc1 $f2, 0x58($sp)
/* AD5F88 8005EDE8 C7B20064 */ lwc1 $f18, 0x64($sp)
/* AD5F8C 8005EDEC 468042A0 */ cvt.s.w $f10, $f8
/* AD5F90 8005EDF0 27A40070 */ addiu $a0, $sp, 0x70
/* AD5F94 8005EDF4 46045003 */ div.s $f0, $f10, $f4
/* AD5F98 8005EDF8 4610003E */ c.le.s $f0, $f16
/* AD5F9C 8005EDFC 00000000 */ nop
/* AD5FA0 8005EE00 45000012 */ bc1f .L8005EE4C
/* AD5FA4 8005EE04 00000000 */ nop
/* AD5FA8 8005EE08 46029181 */ sub.s $f6, $f18, $f2
/* AD5FAC 8005EE0C C7AC005C */ lwc1 $f12, 0x5c($sp)
/* AD5FB0 8005EE10 C7A40068 */ lwc1 $f4, 0x68($sp)
/* AD5FB4 8005EE14 C7AE0060 */ lwc1 $f14, 0x60($sp)
/* AD5FB8 8005EE18 46003202 */ mul.s $f8, $f6, $f0
/* AD5FBC 8005EE1C 460C2401 */ sub.s $f16, $f4, $f12
/* AD5FC0 8005EE20 46008482 */ mul.s $f18, $f16, $f0
/* AD5FC4 8005EE24 46024280 */ add.s $f10, $f8, $f2
/* AD5FC8 8005EE28 C7A8006C */ lwc1 $f8, 0x6c($sp)
/* AD5FCC 8005EE2C E7AA0070 */ swc1 $f10, 0x70($sp)
/* AD5FD0 8005EE30 460E4281 */ sub.s $f10, $f8, $f14
/* AD5FD4 8005EE34 460C9180 */ add.s $f6, $f18, $f12
/* AD5FD8 8005EE38 46005102 */ mul.s $f4, $f10, $f0
/* AD5FDC 8005EE3C E7A60074 */ swc1 $f6, 0x74($sp)
/* AD5FE0 8005EE40 460E2400 */ add.s $f16, $f4, $f14
/* AD5FE4 8005EE44 10000007 */ b .L8005EE64
/* AD5FE8 8005EE48 E7B00078 */ swc1 $f16, 0x78($sp)
.L8005EE4C:
/* AD5FEC 8005EE4C 0C01DF90 */ jal Math_Vec3f_Copy
/* AD5FF0 8005EE50 27A50064 */ addiu $a1, $sp, 0x64
/* AD5FF4 8005EE54 10000004 */ b .L8005EE68
/* AD5FF8 8005EE58 27A80058 */ addiu $t0, $sp, 0x58
.L8005EE5C:
/* AD5FFC 8005EE5C 0C01DF90 */ jal Math_Vec3f_Copy
/* AD6000 8005EE60 27A50064 */ addiu $a1, $sp, 0x64
.L8005EE64:
/* AD6004 8005EE64 27A80058 */ addiu $t0, $sp, 0x58
.L8005EE68:
/* AD6008 8005EE68 27A90070 */ addiu $t1, $sp, 0x70
/* AD600C 8005EE6C AFA9001C */ sw $t1, 0x1c($sp)
/* AD6010 8005EE70 AFA80018 */ sw $t0, 0x18($sp)
/* AD6014 8005EE74 8FA40090 */ lw $a0, 0x90($sp)
/* AD6018 8005EE78 8FA50098 */ lw $a1, 0x98($sp)
/* AD601C 8005EE7C 02003025 */ move $a2, $s0
/* AD6020 8005EE80 27A70064 */ addiu $a3, $sp, 0x64
/* AD6024 8005EE84 AFB20010 */ sw $s2, 0x10($sp)
/* AD6028 8005EE88 0C017A07 */ jal func_8005E81C
/* AD602C 8005EE8C AFB60014 */ sw $s6, 0x14($sp)
/* AD6030 8005EE90 1000000A */ b .L8005EEBC
/* AD6034 8005EE94 8FBF0044 */ lw $ra, 0x44($sp)
.L8005EE98:
/* AD6038 8005EE98 8E6B0018 */ lw $t3, 0x18($s3)
.L8005EE9C:
/* AD603C 8005EE9C 8E6A001C */ lw $t2, 0x1c($s3)
/* AD6040 8005EEA0 26100040 */ addiu $s0, $s0, 0x40
/* AD6044 8005EEA4 000B6180 */ sll $t4, $t3, 6
/* AD6048 8005EEA8 014C6821 */ addu $t5, $t2, $t4
/* AD604C 8005EEAC 020D082B */ sltu $at, $s0, $t5
/* AD6050 8005EEB0 1420FF96 */ bnez $at, .L8005ED0C
/* AD6054 8005EEB4 00000000 */ nop
.L8005EEB8:
/* AD6058 8005EEB8 8FBF0044 */ lw $ra, 0x44($sp)
.L8005EEBC:
/* AD605C 8005EEBC 8FB00028 */ lw $s0, 0x28($sp)
/* AD6060 8005EEC0 8FB1002C */ lw $s1, 0x2c($sp)
/* AD6064 8005EEC4 8FB20030 */ lw $s2, 0x30($sp)
/* AD6068 8005EEC8 8FB30034 */ lw $s3, 0x34($sp)
/* AD606C 8005EECC 8FB40038 */ lw $s4, 0x38($sp)
/* AD6070 8005EED0 8FB5003C */ lw $s5, 0x3c($sp)
/* AD6074 8005EED4 8FB60040 */ lw $s6, 0x40($sp)
/* AD6078 8005EED8 03E00008 */ jr $ra
/* AD607C 8005EEDC 27BD0090 */ addiu $sp, $sp, 0x90
/* AD6080 8005EEE0 27BDFF58 */ addiu $sp, $sp, -0xa8
/* AD6084 8005EEE4 AFBF005C */ sw $ra, 0x5c($sp)
/* AD6088 8005EEE8 AFBE0058 */ sw $fp, 0x58($sp)
/* AD608C 8005EEEC AFB70054 */ sw $s7, 0x54($sp)
/* AD6090 8005EEF0 AFB60050 */ sw $s6, 0x50($sp)
/* AD6094 8005EEF4 AFB5004C */ sw $s5, 0x4c($sp)
/* AD6098 8005EEF8 AFB40048 */ sw $s4, 0x48($sp)
/* AD609C 8005EEFC AFB30044 */ sw $s3, 0x44($sp)
/* AD60A0 8005EF00 AFB20040 */ sw $s2, 0x40($sp)
/* AD60A4 8005EF04 AFB1003C */ sw $s1, 0x3c($sp)
/* AD60A8 8005EF08 AFB00038 */ sw $s0, 0x38($sp)
/* AD60AC 8005EF0C F7B60030 */ sdc1 $f22, 0x30($sp)
/* AD60B0 8005EF10 F7B40028 */ sdc1 $f20, 0x28($sp)
/* AD60B4 8005EF14 AFA400A8 */ sw $a0, 0xa8($sp)
/* AD60B8 8005EF18 AFA500AC */ sw $a1, 0xac($sp)
/* AD60BC 8005EF1C 8CEE0018 */ lw $t6, 0x18($a3)
/* AD60C0 8005EF20 00C08825 */ move $s1, $a2
/* AD60C4 8005EF24 00E0A825 */ move $s5, $a3
/* AD60C8 8005EF28 19C00086 */ blez $t6, .L8005F144
/* AD60CC 8005EF2C 00E0B825 */ move $s7, $a3
/* AD60D0 8005EF30 8CEF001C */ lw $t7, 0x1c($a3)
/* AD60D4 8005EF34 51E00084 */ beql $t7, $zero, .L8005F148
/* AD60D8 8005EF38 8FBF005C */ lw $ra, 0x5c($sp)
/* AD60DC 8005EF3C 84D80040 */ lh $t8, 0x40($a2)
/* AD60E0 8005EF40 5B000081 */ blezl $t8, .L8005F148
/* AD60E4 8005EF44 8FBF005C */ lw $ra, 0x5c($sp)
/* AD60E8 8005EF48 84D90042 */ lh $t9, 0x42($a2)
/* AD60EC 8005EF4C 24D40018 */ addiu $s4, $a2, 0x18
/* AD60F0 8005EF50 5B20007D */ blezl $t9, .L8005F148
/* AD60F4 8005EF54 8FBF005C */ lw $ra, 0x5c($sp)
/* AD60F8 8005EF58 0C0177CB */ jal func_8005DF2C
/* AD60FC 8005EF5C 02802025 */ move $a0, $s4
/* AD6100 8005EF60 24160001 */ li $s6, 1
/* AD6104 8005EF64 50560078 */ beql $v0, $s6, .L8005F148
/* AD6108 8005EF68 8FBF005C */ lw $ra, 0x5c($sp)
/* AD610C 8005EF6C 8EA80018 */ lw $t0, 0x18($s5)
/* AD6110 8005EF70 8EB0001C */ lw $s0, 0x1c($s5)
/* AD6114 8005EF74 27BE009C */ addiu $fp, $sp, 0x9c
/* AD6118 8005EF78 00084980 */ sll $t1, $t0, 6
/* AD611C 8005EF7C 02095021 */ addu $t2, $s0, $t1
/* AD6120 8005EF80 020A082B */ sltu $at, $s0, $t2
/* AD6124 8005EF84 1020006F */ beqz $at, .L8005F144
/* AD6128 8005EF88 27B30088 */ addiu $s3, $sp, 0x88
/* AD612C 8005EF8C 3C013F80 */ li $at, 0x3F800000 # 0.000000
/* AD6130 8005EF90 4481B000 */ mtc1 $at, $f22
/* AD6134 8005EF94 3C018014 */ lui $at, %hi(D_8013AD00)
/* AD6138 8005EF98 C434AD00 */ lwc1 $f20, %lo(D_8013AD00)($at)
/* AD613C 8005EF9C 27B2007C */ addiu $s2, $sp, 0x7c
.L8005EFA0:
/* AD6140 8005EFA0 0C0177D4 */ jal func_8005DF50
/* AD6144 8005EFA4 02002025 */ move $a0, $s0
/* AD6148 8005EFA8 1056005E */ beq $v0, $s6, .L8005F124
/* AD614C 8005EFAC 02802025 */ move $a0, $s4
/* AD6150 8005EFB0 0C0177DD */ jal func_8005DF74
/* AD6154 8005EFB4 02002825 */ move $a1, $s0
/* AD6158 8005EFB8 1056005A */ beq $v0, $s6, .L8005F124
/* AD615C 8005EFBC 26040030 */ addiu $a0, $s0, 0x30
/* AD6160 8005EFC0 26250040 */ addiu $a1, $s1, 0x40
/* AD6164 8005EFC4 03C03025 */ move $a2, $fp
/* AD6168 8005EFC8 0C033F69 */ jal func_800CFDA4
/* AD616C 8005EFCC 27A70098 */ addiu $a3, $sp, 0x98
/* AD6170 8005EFD0 50400055 */ beql $v0, $zero, .L8005F128
/* AD6174 8005EFD4 8EEC0018 */ lw $t4, 0x18($s7)
/* AD6178 8005EFD8 862B0046 */ lh $t3, 0x46($s1)
/* AD617C 8005EFDC 02602025 */ move $a0, $s3
/* AD6180 8005EFE0 448B2000 */ mtc1 $t3, $f4
/* AD6184 8005EFE4 00000000 */ nop
/* AD6188 8005EFE8 468021A0 */ cvt.s.w $f6, $f4
/* AD618C 8005EFEC E7A6007C */ swc1 $f6, 0x7c($sp)
/* AD6190 8005EFF0 862C0048 */ lh $t4, 0x48($s1)
/* AD6194 8005EFF4 448C4000 */ mtc1 $t4, $f8
/* AD6198 8005EFF8 00000000 */ nop
/* AD619C 8005EFFC 468042A0 */ cvt.s.w $f10, $f8
/* AD61A0 8005F000 E7AA0080 */ swc1 $f10, 0x80($sp)
/* AD61A4 8005F004 862D004A */ lh $t5, 0x4a($s1)
/* AD61A8 8005F008 448D8000 */ mtc1 $t5, $f16
/* AD61AC 8005F00C 00000000 */ nop
/* AD61B0 8005F010 468084A0 */ cvt.s.w $f18, $f16
/* AD61B4 8005F014 E7B20084 */ swc1 $f18, 0x84($sp)
/* AD61B8 8005F018 860E0030 */ lh $t6, 0x30($s0)
/* AD61BC 8005F01C 448E2000 */ mtc1 $t6, $f4
/* AD61C0 8005F020 00000000 */ nop
/* AD61C4 8005F024 468021A0 */ cvt.s.w $f6, $f4
/* AD61C8 8005F028 C7A40098 */ lwc1 $f4, 0x98($sp)
/* AD61CC 8005F02C 46002005 */ abs.s $f0, $f4
/* AD61D0 8005F030 E7A60070 */ swc1 $f6, 0x70($sp)
/* AD61D4 8005F034 860F0032 */ lh $t7, 0x32($s0)
/* AD61D8 8005F038 4614003C */ c.lt.s $f0, $f20
/* AD61DC 8005F03C 448F4000 */ mtc1 $t7, $f8
/* AD61E0 8005F040 00000000 */ nop
/* AD61E4 8005F044 468042A0 */ cvt.s.w $f10, $f8
/* AD61E8 8005F048 E7AA0074 */ swc1 $f10, 0x74($sp)
/* AD61EC 8005F04C 86180034 */ lh $t8, 0x34($s0)
/* AD61F0 8005F050 44988000 */ mtc1 $t8, $f16
/* AD61F4 8005F054 00000000 */ nop
/* AD61F8 8005F058 468084A0 */ cvt.s.w $f18, $f16
/* AD61FC 8005F05C 45010021 */ bc1t .L8005F0E4
/* AD6200 8005F060 E7B20078 */ swc1 $f18, 0x78($sp)
/* AD6204 8005F064 86190036 */ lh $t9, 0x36($s0)
/* AD6208 8005F068 C7A20070 */ lwc1 $f2, 0x70($sp)
/* AD620C 8005F06C C7AA007C */ lwc1 $f10, 0x7c($sp)
/* AD6210 8005F070 44993000 */ mtc1 $t9, $f6
/* AD6214 8005F074 02602025 */ move $a0, $s3
/* AD6218 8005F078 46803220 */ cvt.s.w $f8, $f6
/* AD621C 8005F07C 46044003 */ div.s $f0, $f8, $f4
/* AD6220 8005F080 4616003E */ c.le.s $f0, $f22
/* AD6224 8005F084 00000000 */ nop
/* AD6228 8005F088 45000012 */ bc1f .L8005F0D4
/* AD622C 8005F08C 00000000 */ nop
/* AD6230 8005F090 46025401 */ sub.s $f16, $f10, $f2
/* AD6234 8005F094 C7AC0074 */ lwc1 $f12, 0x74($sp)
/* AD6238 8005F098 C7A80080 */ lwc1 $f8, 0x80($sp)
/* AD623C 8005F09C C7AE0078 */ lwc1 $f14, 0x78($sp)
/* AD6240 8005F0A0 46008482 */ mul.s $f18, $f16, $f0
/* AD6244 8005F0A4 460C4101 */ sub.s $f4, $f8, $f12
/* AD6248 8005F0A8 46002282 */ mul.s $f10, $f4, $f0
/* AD624C 8005F0AC 46029180 */ add.s $f6, $f18, $f2
/* AD6250 8005F0B0 C7B20084 */ lwc1 $f18, 0x84($sp)
/* AD6254 8005F0B4 E7A60088 */ swc1 $f6, 0x88($sp)
/* AD6258 8005F0B8 460E9181 */ sub.s $f6, $f18, $f14
/* AD625C 8005F0BC 460C5400 */ add.s $f16, $f10, $f12
/* AD6260 8005F0C0 46003202 */ mul.s $f8, $f6, $f0
/* AD6264 8005F0C4 E7B0008C */ swc1 $f16, 0x8c($sp)
/* AD6268 8005F0C8 460E4100 */ add.s $f4, $f8, $f14
/* AD626C 8005F0CC 10000007 */ b .L8005F0EC
/* AD6270 8005F0D0 E7A40090 */ swc1 $f4, 0x90($sp)
.L8005F0D4:
/* AD6274 8005F0D4 0C01DF90 */ jal Math_Vec3f_Copy
/* AD6278 8005F0D8 02402825 */ move $a1, $s2
/* AD627C 8005F0DC 10000004 */ b .L8005F0F0
/* AD6280 8005F0E0 27A80070 */ addiu $t0, $sp, 0x70
.L8005F0E4:
/* AD6284 8005F0E4 0C01DF90 */ jal Math_Vec3f_Copy
/* AD6288 8005F0E8 02402825 */ move $a1, $s2
.L8005F0EC:
/* AD628C 8005F0EC 27A80070 */ addiu $t0, $sp, 0x70
.L8005F0F0:
/* AD6290 8005F0F0 AFA80018 */ sw $t0, 0x18($sp)
/* AD6294 8005F0F4 8FA400A8 */ lw $a0, 0xa8($sp)
/* AD6298 8005F0F8 02202825 */ move $a1, $s1
/* AD629C 8005F0FC 02803025 */ move $a2, $s4
/* AD62A0 8005F100 02403825 */ move $a3, $s2
/* AD62A4 8005F104 AFB50010 */ sw $s5, 0x10($sp)
/* AD62A8 8005F108 AFB00014 */ sw $s0, 0x14($sp)
/* AD62AC 8005F10C 0C017A07 */ jal func_8005E81C
/* AD62B0 8005F110 AFB3001C */ sw $s3, 0x1c($sp)
/* AD62B4 8005F114 92A90013 */ lbu $t1, 0x13($s5)
/* AD62B8 8005F118 312A0040 */ andi $t2, $t1, 0x40
/* AD62BC 8005F11C 5140000A */ beql $t2, $zero, .L8005F148
/* AD62C0 8005F120 8FBF005C */ lw $ra, 0x5c($sp)
.L8005F124:
/* AD62C4 8005F124 8EEC0018 */ lw $t4, 0x18($s7)
.L8005F128:
/* AD62C8 8005F128 8EEB001C */ lw $t3, 0x1c($s7)
/* AD62CC 8005F12C 26100040 */ addiu $s0, $s0, 0x40
/* AD62D0 8005F130 000C6980 */ sll $t5, $t4, 6
/* AD62D4 8005F134 016D7021 */ addu $t6, $t3, $t5
/* AD62D8 8005F138 020E082B */ sltu $at, $s0, $t6
/* AD62DC 8005F13C 1420FF98 */ bnez $at, .L8005EFA0
/* AD62E0 8005F140 00000000 */ nop
.L8005F144:
/* AD62E4 8005F144 8FBF005C */ lw $ra, 0x5c($sp)
.L8005F148:
/* AD62E8 8005F148 D7B40028 */ ldc1 $f20, 0x28($sp)
/* AD62EC 8005F14C D7B60030 */ ldc1 $f22, 0x30($sp)
/* AD62F0 8005F150 8FB00038 */ lw $s0, 0x38($sp)
/* AD62F4 8005F154 8FB1003C */ lw $s1, 0x3c($sp)
/* AD62F8 8005F158 8FB20040 */ lw $s2, 0x40($sp)
/* AD62FC 8005F15C 8FB30044 */ lw $s3, 0x44($sp)
/* AD6300 8005F160 8FB40048 */ lw $s4, 0x48($sp)
/* AD6304 8005F164 8FB5004C */ lw $s5, 0x4c($sp)
/* AD6308 8005F168 8FB60050 */ lw $s6, 0x50($sp)
/* AD630C 8005F16C 8FB70054 */ lw $s7, 0x54($sp)
/* AD6310 8005F170 8FBE0058 */ lw $fp, 0x58($sp)
/* AD6314 8005F174 03E00008 */ jr $ra
/* AD6318 8005F178 27BD00A8 */ addiu $sp, $sp, 0xa8
glabel func_8005F17C
/* AD631C 8005F17C 27BDFF78 */ addiu $sp, $sp, -0x88
/* AD6320 8005F180 AFBF0044 */ sw $ra, 0x44($sp)
/* AD6324 8005F184 AFB70040 */ sw $s7, 0x40($sp)

View File

@ -1590,7 +1590,7 @@ void func_800CC8B4(Vec3f* a, Vec3f* b, Vec3f* c, float* nx, float* ny, float* nz
// ? func_800CFC8C(?);
s32 func_800CFCAC(PosRadius* a, PosRadius* b, f32* unk, f32* dist);
// ? func_800CFD84(?);
// ? func_800CFDA4(?);
s32 func_800CFDA4(PosRadius* a, ColliderCylinderDim* b, f32* unk, f32* dist);
// ? func_800CFF14(?);
// ? func_800CFF34(?);
// ? func_800D0104(?);

View File

@ -1120,8 +1120,8 @@ void func_8005DF9C(UNK_TYPE arg0, UNK_TYPE arg1, UNK_TYPE arg2) {
#pragma GLOBAL_ASM("asm/non_matchings/code/z_collision_check/func_8005E800.s")
s32 func_8005E81C(GlobalContext* globalContext,
ColliderJntSph* left, ColliderJntSphItem* leftItem, Vec3f* leftv,
ColliderJntSph* right, ColliderJntSphItem* rightItem, Vec3f* rightv, Vec3f* unk);
Collider* left, ColliderBody* leftBody, Vec3f* leftv,
Collider* right, ColliderBody* rightBody, Vec3f* rightv, Vec3f* unk);
#pragma GLOBAL_ASM("asm/non_matchings/code/z_collision_check/func_8005E81C.s")
//Check ColliderJntSph to ColliderJntSph
@ -1161,7 +1161,7 @@ void func_8005E9C0(GlobalContext* globalCtx, CollisionCheckContext* check, Colli
else {
Math_Vec3f_Copy(&sp78, &sp6C);
}
func_8005E81C(globalCtx, left, lItem, &sp6C, right, rItem, &sp60, &sp78);
func_8005E81C(globalCtx, &left->base, &lItem->body, &sp6C, &right->base, &rItem->body, &sp60, &sp78);
if ((right->base.maskB & 0x40) == 0) {
return;
}
@ -1174,7 +1174,62 @@ void func_8005E9C0(GlobalContext* globalCtx, CollisionCheckContext* check, Colli
}
}
#pragma GLOBAL_ASM("asm/non_matchings/code/z_collision_check/func_8005EC6C.s")
//Check ColliderJntSph to ColliderCylinder
void func_8005EC6C(GlobalContext* globalCtx, CollisionCheckContext* check, Collider* l, Collider* r) {
ColliderJntSph* left = (ColliderJntSph*)l;
ColliderCylinder* right = (ColliderCylinder*)r;
ColliderJntSphItem* lItem;
f32 sp80;
f32 sp7C;
Vec3f sp70;
Vec3f sp64;
Vec3f sp58;
f32 temp_f0;
if (left->count > 0 && left->list != NULL && right->dim.radius > 0 && right->dim.height > 0) {
if (func_8005DF50(&right->body) == 1) {
return;
}
for (lItem = left->list; lItem < left->list + left->count; lItem++) {
if (func_8005DF2C(&lItem->body) == 1) {
continue;
}
if (func_8005DF74(&lItem->body, &right->body) == 1) {
continue;
}
if (func_800CFDA4(&lItem->dim.posr, &right->dim, &sp80, &sp7C) != 0) {
sp64.x = lItem->dim.posr.pos.x;
sp64.y = lItem->dim.posr.pos.y;
sp64.z = lItem->dim.posr.pos.z;
sp58.x = right->dim.position.x;
sp58.y = right->dim.position.y;
sp58.z = right->dim.position.z;
if (!(fabsf(sp7C) < 0.008f)) {
temp_f0 = right->dim.radius / sp7C;
if (temp_f0 <= 1.0f) {
sp70.x = ((sp64.x - sp58.x) * temp_f0) + sp58.x;
sp70.y = ((sp64.y - sp58.y) * temp_f0) + sp58.y;
sp70.z = ((sp64.z - sp58.z) * temp_f0) + sp58.z;
}
else {
Math_Vec3f_Copy(&sp70, &sp64);
}
}
else {
Math_Vec3f_Copy(&sp70, &sp64);
}
func_8005E81C(globalCtx, &left->base, &lItem->body, &sp64, &right->base, &right->body, &sp58, &sp70);
return;
}
}
}
}
#pragma GLOBAL_ASM("asm/non_matchings/code/z_collision_check/func_8005EEE0.s")
#pragma GLOBAL_ASM("asm/non_matchings/code/z_collision_check/func_8005F17C.s")
#pragma GLOBAL_ASM("asm/non_matchings/code/z_collision_check/func_8006110C.s")