From 7a171488d2a63cdd3e7f1db08096c0101549e5d5 Mon Sep 17 00:00:00 2001 From: Synray <31429825+Synray@users.noreply.github.com> Date: Fri, 8 Jan 2021 19:14:43 -0800 Subject: [PATCH] bgcheck OK (#613) * bgcheck OK * Remove comments --- .../code/z_bgcheck/BgCheck_SphVsDynaWall.s | 151 ---- .../BgCheck_SphVsDynaWallInBgActor.s | 524 -------------- .../code/z_bgcheck/BgCheck_SphVsStaticWall.s | 652 ------------------ src/code/z_bgcheck.c | 200 +++--- 4 files changed, 84 insertions(+), 1443 deletions(-) delete mode 100644 asm/non_matchings/code/z_bgcheck/BgCheck_SphVsDynaWall.s delete mode 100644 asm/non_matchings/code/z_bgcheck/BgCheck_SphVsDynaWallInBgActor.s delete mode 100644 asm/non_matchings/code/z_bgcheck/BgCheck_SphVsStaticWall.s diff --git a/asm/non_matchings/code/z_bgcheck/BgCheck_SphVsDynaWall.s b/asm/non_matchings/code/z_bgcheck/BgCheck_SphVsDynaWall.s deleted file mode 100644 index 06629b3805..0000000000 --- a/asm/non_matchings/code/z_bgcheck/BgCheck_SphVsDynaWall.s +++ /dev/null @@ -1,151 +0,0 @@ -glabel BgCheck_SphVsDynaWall -/* AB7B48 800409A8 27BDFF60 */ addiu $sp, $sp, -0xa0 -/* AB7B4C 800409AC 8FAF00B0 */ lw $t7, 0xb0($sp) -/* AB7B50 800409B0 AFBF0064 */ sw $ra, 0x64($sp) -/* AB7B54 800409B4 AFBE0060 */ sw $fp, 0x60($sp) -/* AB7B58 800409B8 AFB7005C */ sw $s7, 0x5c($sp) -/* AB7B5C 800409BC AFB60058 */ sw $s6, 0x58($sp) -/* AB7B60 800409C0 AFB50054 */ sw $s5, 0x54($sp) -/* AB7B64 800409C4 AFB40050 */ sw $s4, 0x50($sp) -/* AB7B68 800409C8 AFB3004C */ sw $s3, 0x4c($sp) -/* AB7B6C 800409CC AFB20048 */ sw $s2, 0x48($sp) -/* AB7B70 800409D0 AFB10044 */ sw $s1, 0x44($sp) -/* AB7B74 800409D4 AFB00040 */ sw $s0, 0x40($sp) -/* AB7B78 800409D8 F7B40038 */ sdc1 $f20, 0x38($sp) -/* AB7B7C 800409DC AFA500A4 */ sw $a1, 0xa4($sp) -/* AB7B80 800409E0 AFA00090 */ sw $zero, 0x90($sp) -/* AB7B84 800409E4 8DF90000 */ lw $t9, ($t7) -/* AB7B88 800409E8 27AE0094 */ addiu $t6, $sp, 0x94 -/* AB7B8C 800409EC 0080A825 */ move $s5, $a0 -/* AB7B90 800409F0 ADD90000 */ sw $t9, ($t6) -/* AB7B94 800409F4 8DF80004 */ lw $t8, 4($t7) -/* AB7B98 800409F8 00C0B825 */ move $s7, $a2 -/* AB7B9C 800409FC 00E0F025 */ move $fp, $a3 -/* AB7BA0 80040A00 ADD80004 */ sw $t8, 4($t6) -/* AB7BA4 80040A04 8DF90008 */ lw $t9, 8($t7) -/* AB7BA8 80040A08 0000A025 */ move $s4, $zero -/* AB7BAC 80040A0C 0080B025 */ move $s6, $a0 -/* AB7BB0 80040A10 ADD90008 */ sw $t9, 8($t6) -/* AB7BB4 80040A14 C7B400B4 */ lwc1 $f20, 0xb4($sp) -.L80040A18: -/* AB7BB8 80040A18 96C813DC */ lhu $t0, 0x13dc($s6) -/* AB7BBC 80040A1C 00141080 */ sll $v0, $s4, 2 -/* AB7BC0 80040A20 00541023 */ subu $v0, $v0, $s4 -/* AB7BC4 80040A24 31090001 */ andi $t1, $t0, 1 -/* AB7BC8 80040A28 1120005C */ beqz $t1, .L80040B9C -/* AB7BCC 80040A2C 000210C0 */ sll $v0, $v0, 3 -/* AB7BD0 80040A30 00541021 */ addu $v0, $v0, $s4 -/* AB7BD4 80040A34 00021080 */ sll $v0, $v0, 2 -/* AB7BD8 80040A38 02A29821 */ addu $s3, $s5, $v0 -/* AB7BDC 80040A3C 8E6B0054 */ lw $t3, 0x54($s3) -/* AB7BE0 80040A40 8FAA00C0 */ lw $t2, 0xc0($sp) -/* AB7BE4 80040A44 02A21821 */ addu $v1, $s5, $v0 -/* AB7BE8 80040A48 C7A40098 */ lwc1 $f4, 0x98($sp) -/* AB7BEC 80040A4C 514B0054 */ beql $t2, $t3, .L80040BA0 -/* AB7BF0 80040A50 26940001 */ addiu $s4, $s4, 1 -/* AB7BF4 80040A54 C46600B0 */ lwc1 $f6, 0xb0($v1) -/* AB7BF8 80040A58 24700054 */ addiu $s0, $v1, 0x54 -/* AB7BFC 80040A5C 4606203C */ c.lt.s $f4, $f6 -/* AB7C00 80040A60 00000000 */ nop -/* AB7C04 80040A64 4503004E */ bc1tl .L80040BA0 -/* AB7C08 80040A68 26940001 */ addiu $s4, $s4, 1 -/* AB7C0C 80040A6C C6080060 */ lwc1 $f8, 0x60($s0) -/* AB7C10 80040A70 4604403C */ c.lt.s $f8, $f4 -/* AB7C14 80040A74 00000000 */ nop -/* AB7C18 80040A78 45030049 */ bc1tl .L80040BA0 -/* AB7C1C 80040A7C 26940001 */ addiu $s4, $s4, 1 -/* AB7C20 80040A80 4600A28D */ trunc.w.s $f10, $f20 -/* AB7C24 80040A84 860D005A */ lh $t5, 0x5a($s0) -/* AB7C28 80040A88 860F0054 */ lh $t7, 0x54($s0) -/* AB7C2C 80040A8C 86180058 */ lh $t8, 0x58($s0) -/* AB7C30 80040A90 44125000 */ mfc1 $s2, $f10 -/* AB7C34 80040A94 448F9000 */ mtc1 $t7, $f18 -/* AB7C38 80040A98 44982000 */ mtc1 $t8, $f4 -/* AB7C3C 80040A9C 00129400 */ sll $s2, $s2, 0x10 -/* AB7C40 80040AA0 00129403 */ sra $s2, $s2, 0x10 -/* AB7C44 80040AA4 01B27021 */ addu $t6, $t5, $s2 -/* AB7C48 80040AA8 A60E005A */ sh $t6, 0x5a($s0) -/* AB7C4C 80040AAC 8602005A */ lh $v0, 0x5a($s0) -/* AB7C50 80040AB0 468091A0 */ cvt.s.w $f6, $f18 -/* AB7C54 80040AB4 C7A80094 */ lwc1 $f8, 0x94($sp) -/* AB7C58 80040AB8 44828000 */ mtc1 $v0, $f16 -/* AB7C5C 80040ABC 26110054 */ addiu $s1, $s0, 0x54 -/* AB7C60 80040AC0 02202025 */ move $a0, $s1 -/* AB7C64 80040AC4 46808020 */ cvt.s.w $f0, $f16 -/* AB7C68 80040AC8 C7B0009C */ lwc1 $f16, 0x9c($sp) -/* AB7C6C 80040ACC 468022A0 */ cvt.s.w $f10, $f4 -/* AB7C70 80040AD0 46000482 */ mul.s $f18, $f0, $f0 -/* AB7C74 80040AD4 46083081 */ sub.s $f2, $f6, $f8 -/* AB7C78 80040AD8 46105301 */ sub.s $f12, $f10, $f16 -/* AB7C7C 80040ADC 46021182 */ mul.s $f6, $f2, $f2 -/* AB7C80 80040AE0 00000000 */ nop -/* AB7C84 80040AE4 460C6102 */ mul.s $f4, $f12, $f12 -/* AB7C88 80040AE8 46043280 */ add.s $f10, $f6, $f4 -/* AB7C8C 80040AEC 460A903C */ c.lt.s $f18, $f10 -/* AB7C90 80040AF0 00000000 */ nop -/* AB7C94 80040AF4 4501000C */ bc1t .L80040B28 -/* AB7C98 80040AF8 00000000 */ nop -/* AB7C9C 80040AFC 44054000 */ mfc1 $a1, $f8 -/* AB7CA0 80040B00 0C03413C */ jal Math3D_XYInSphere -/* AB7CA4 80040B04 8FA60098 */ lw $a2, 0x98($sp) -/* AB7CA8 80040B08 1440000A */ bnez $v0, .L80040B34 -/* AB7CAC 80040B0C 02202025 */ move $a0, $s1 -/* AB7CB0 80040B10 8FA50098 */ lw $a1, 0x98($sp) -/* AB7CB4 80040B14 0C034158 */ jal Math3D_YZInSphere -/* AB7CB8 80040B18 8FA6009C */ lw $a2, 0x9c($sp) -/* AB7CBC 80040B1C 54400006 */ bnezl $v0, .L80040B38 -/* AB7CC0 80040B20 8608005A */ lh $t0, 0x5a($s0) -/* AB7CC4 80040B24 8602005A */ lh $v0, 0x5a($s0) -.L80040B28: -/* AB7CC8 80040B28 0052C823 */ subu $t9, $v0, $s2 -/* AB7CCC 80040B2C 1000001B */ b .L80040B9C -/* AB7CD0 80040B30 A619005A */ sh $t9, 0x5a($s0) -.L80040B34: -/* AB7CD4 80040B34 8608005A */ lh $t0, 0x5a($s0) -.L80040B38: -/* AB7CD8 80040B38 27AC0094 */ addiu $t4, $sp, 0x94 -/* AB7CDC 80040B3C 02A02025 */ move $a0, $s5 -/* AB7CE0 80040B40 01124823 */ subu $t1, $t0, $s2 -/* AB7CE4 80040B44 A609005A */ sh $t1, 0x5a($s0) -/* AB7CE8 80040B48 8FAB00BC */ lw $t3, 0xbc($sp) -/* AB7CEC 80040B4C 8FAA00B8 */ lw $t2, 0xb8($sp) -/* AB7CF0 80040B50 AFB40028 */ sw $s4, 0x28($sp) -/* AB7CF4 80040B54 E7B40024 */ swc1 $f20, 0x24($sp) -/* AB7CF8 80040B58 AFAC0020 */ sw $t4, 0x20($sp) -/* AB7CFC 80040B5C AFBE0014 */ sw $fp, 0x14($sp) -/* AB7D00 80040B60 AFB70010 */ sw $s7, 0x10($sp) -/* AB7D04 80040B64 97A500A6 */ lhu $a1, 0xa6($sp) -/* AB7D08 80040B68 26A60050 */ addiu $a2, $s5, 0x50 -/* AB7D0C 80040B6C 26670060 */ addiu $a3, $s3, 0x60 -/* AB7D10 80040B70 AFAB001C */ sw $t3, 0x1c($sp) -/* AB7D14 80040B74 0C0100A1 */ jal BgCheck_SphVsDynaWallInBgActor -/* AB7D18 80040B78 AFAA0018 */ sw $t2, 0x18($sp) -/* AB7D1C 80040B7C 50400008 */ beql $v0, $zero, .L80040BA0 -/* AB7D20 80040B80 26940001 */ addiu $s4, $s4, 1 -/* AB7D24 80040B84 C6F00000 */ lwc1 $f16, ($s7) -/* AB7D28 80040B88 240D0001 */ li $t5, 1 -/* AB7D2C 80040B8C E7B00094 */ swc1 $f16, 0x94($sp) -/* AB7D30 80040B90 C7C60000 */ lwc1 $f6, ($fp) -/* AB7D34 80040B94 AFAD0090 */ sw $t5, 0x90($sp) -/* AB7D38 80040B98 E7A6009C */ swc1 $f6, 0x9c($sp) -.L80040B9C: -/* AB7D3C 80040B9C 26940001 */ addiu $s4, $s4, 1 -.L80040BA0: -/* AB7D40 80040BA0 24010032 */ li $at, 50 -/* AB7D44 80040BA4 1681FF9C */ bne $s4, $at, .L80040A18 -/* AB7D48 80040BA8 26D60002 */ addiu $s6, $s6, 2 -/* AB7D4C 80040BAC 8FBF0064 */ lw $ra, 0x64($sp) -/* AB7D50 80040BB0 8FA20090 */ lw $v0, 0x90($sp) -/* AB7D54 80040BB4 D7B40038 */ ldc1 $f20, 0x38($sp) -/* AB7D58 80040BB8 8FB00040 */ lw $s0, 0x40($sp) -/* AB7D5C 80040BBC 8FB10044 */ lw $s1, 0x44($sp) -/* AB7D60 80040BC0 8FB20048 */ lw $s2, 0x48($sp) -/* AB7D64 80040BC4 8FB3004C */ lw $s3, 0x4c($sp) -/* AB7D68 80040BC8 8FB40050 */ lw $s4, 0x50($sp) -/* AB7D6C 80040BCC 8FB50054 */ lw $s5, 0x54($sp) -/* AB7D70 80040BD0 8FB60058 */ lw $s6, 0x58($sp) -/* AB7D74 80040BD4 8FB7005C */ lw $s7, 0x5c($sp) -/* AB7D78 80040BD8 8FBE0060 */ lw $fp, 0x60($sp) -/* AB7D7C 80040BDC 03E00008 */ jr $ra -/* AB7D80 80040BE0 27BD00A0 */ addiu $sp, $sp, 0xa0 - diff --git a/asm/non_matchings/code/z_bgcheck/BgCheck_SphVsDynaWallInBgActor.s b/asm/non_matchings/code/z_bgcheck/BgCheck_SphVsDynaWallInBgActor.s deleted file mode 100644 index d76f4bae5f..0000000000 --- a/asm/non_matchings/code/z_bgcheck/BgCheck_SphVsDynaWallInBgActor.s +++ /dev/null @@ -1,524 +0,0 @@ -.rdata -glabel D_80138EF0 - .asciz "!IS_ZERO(ac_size)" - .balign 4 - -glabel D_80138F04 - .asciz "../z_bgcheck.c" - .balign 4 - -glabel D_80138F14 - .asciz "!IS_ZERO(ac_size)" - .balign 4 - -glabel D_80138F28 - .asciz "../z_bgcheck.c" - .balign 4 - -.late_rodata -glabel D_80138FB4 - .float 0.008 - -glabel D_80138FB8 - .float 0.4 - -glabel D_80138FBC - .float 0.008 - -glabel D_80138FC0 - .float 0.4 - -.text -glabel BgCheck_SphVsDynaWallInBgActor -/* AB7424 80040284 27BDFF28 */ addiu $sp, $sp, -0xd8 -/* AB7428 80040288 AFBF0064 */ sw $ra, 0x64($sp) -/* AB742C 8004028C AFB50060 */ sw $s5, 0x60($sp) -/* AB7430 80040290 AFB4005C */ sw $s4, 0x5c($sp) -/* AB7434 80040294 AFB30058 */ sw $s3, 0x58($sp) -/* AB7438 80040298 AFB20054 */ sw $s2, 0x54($sp) -/* AB743C 8004029C AFB10050 */ sw $s1, 0x50($sp) -/* AB7440 800402A0 AFB0004C */ sw $s0, 0x4c($sp) -/* AB7444 800402A4 F7B80040 */ sdc1 $f24, 0x40($sp) -/* AB7448 800402A8 F7B60038 */ sdc1 $f22, 0x38($sp) -/* AB744C 800402AC F7B40030 */ sdc1 $f20, 0x30($sp) -/* AB7450 800402B0 AFA400D8 */ sw $a0, 0xd8($sp) -/* AB7454 800402B4 AFA500DC */ sw $a1, 0xdc($sp) -/* AB7458 800402B8 AFA700E4 */ sw $a3, 0xe4($sp) -/* AB745C 800402BC AFA000CC */ sw $zero, 0xcc($sp) -/* AB7460 800402C0 94EF0000 */ lhu $t7, ($a3) -/* AB7464 800402C4 3413FFFF */ li $s3, 65535 -/* AB7468 800402C8 00C09025 */ move $s2, $a2 -/* AB746C 800402CC 166F0003 */ bne $s3, $t7, .L800402DC -/* AB7470 800402D0 8FB800F8 */ lw $t8, 0xf8($sp) -/* AB7474 800402D4 100001A8 */ b .L80040978 -/* AB7478 800402D8 00001025 */ move $v0, $zero -.L800402DC: -/* AB747C 800402DC 8F080000 */ lw $t0, ($t8) -/* AB7480 800402E0 27B500AC */ addiu $s5, $sp, 0xac -/* AB7484 800402E4 24140006 */ li $s4, 6 -/* AB7488 800402E8 AEA80000 */ sw $t0, ($s5) -/* AB748C 800402EC 8F190004 */ lw $t9, 4($t8) -/* AB7490 800402F0 AEB90004 */ sw $t9, 4($s5) -/* AB7494 800402F4 8F080008 */ lw $t0, 8($t8) -/* AB7498 800402F8 AEA80008 */ sw $t0, 8($s5) -/* AB749C 800402FC 8FAA00E4 */ lw $t2, 0xe4($sp) -/* AB74A0 80040300 8E4913F8 */ lw $t1, 0x13f8($s2) -/* AB74A4 80040304 C7B600FC */ lwc1 $f22, 0xfc($sp) -/* AB74A8 80040308 954B0000 */ lhu $t3, ($t2) -/* AB74AC 8004030C 000B6080 */ sll $t4, $t3, 2 -/* AB74B0 80040310 012C8821 */ addu $s1, $t1, $t4 -.L80040314: -/* AB74B4 80040314 86220000 */ lh $v0, ($s1) -/* AB74B8 80040318 8E4D13F0 */ lw $t5, 0x13f0($s2) -/* AB74BC 8004031C 27A500C0 */ addiu $a1, $sp, 0xc0 -/* AB74C0 80040320 00027100 */ sll $t6, $v0, 4 -/* AB74C4 80040324 01AE8021 */ addu $s0, $t5, $t6 -/* AB74C8 80040328 02002025 */ move $a0, $s0 -/* AB74CC 8004032C 27A600BC */ addiu $a2, $sp, 0xbc -/* AB74D0 80040330 0C00E275 */ jal CollisionPoly_GetNormalF -/* AB74D4 80040334 27A700B8 */ addiu $a3, $sp, 0xb8 -/* AB74D8 80040338 C7AC00C0 */ lwc1 $f12, 0xc0($sp) -/* AB74DC 8004033C C7AE00B8 */ lwc1 $f14, 0xb8($sp) -/* AB74E0 80040340 3C018014 */ lui $at, %hi(D_80138FB4) -/* AB74E4 80040344 460C6102 */ mul.s $f4, $f12, $f12 -/* AB74E8 80040348 C4288FB4 */ lwc1 $f8, %lo(D_80138FB4)($at) -/* AB74EC 8004034C 3C048014 */ lui $a0, %hi(D_80138EF0) # $a0, 0x8014 -/* AB74F0 80040350 460E7182 */ mul.s $f6, $f14, $f14 -/* AB74F4 80040354 3C058014 */ lui $a1, %hi(D_80138F04) # $a1, 0x8014 -/* AB74F8 80040358 24A58F04 */ addiu $a1, %lo(D_80138F04) # addiu $a1, $a1, -0x70fc -/* AB74FC 8004035C 24848EF0 */ addiu $a0, %lo(D_80138EF0) # addiu $a0, $a0, -0x7110 -/* AB7500 80040360 46062000 */ add.s $f0, $f4, $f6 -/* AB7504 80040364 46000504 */ sqrt.s $f20, $f0 -/* AB7508 80040368 4600A005 */ abs.s $f0, $f20 -/* AB750C 8004036C 4608003C */ c.lt.s $f0, $f8 -/* AB7510 80040370 00000000 */ nop -/* AB7514 80040374 45020004 */ bc1fl .L80040388 -/* AB7518 80040378 860F000E */ lh $t7, 0xe($s0) -/* AB751C 8004037C 0C0007FC */ jal __assert -/* AB7520 80040380 24061CD6 */ li $a2, 7382 -/* AB7524 80040384 860F000E */ lh $t7, 0xe($s0) -.L80040388: -/* AB7528 80040388 AFB50010 */ sw $s5, 0x10($sp) -/* AB752C 8004038C C7AC00C0 */ lwc1 $f12, 0xc0($sp) -/* AB7530 80040390 448F5000 */ mtc1 $t7, $f10 -/* AB7534 80040394 C7AE00BC */ lwc1 $f14, 0xbc($sp) -/* AB7538 80040398 8FA600B8 */ lw $a2, 0xb8($sp) -/* AB753C 8004039C 468052A0 */ cvt.s.w $f10, $f10 -/* AB7540 800403A0 44075000 */ mfc1 $a3, $f10 -/* AB7544 800403A4 0C0332C3 */ jal Math3D_DistPlaneToPos -/* AB7548 800403A8 00000000 */ nop -/* AB754C 800403AC 46000606 */ mov.s $f24, $f0 -/* AB7550 800403B0 46000005 */ abs.s $f0, $f0 -/* AB7554 800403B4 97B800DE */ lhu $t8, 0xde($sp) -/* AB7558 800403B8 4600B03C */ c.lt.s $f22, $f0 -/* AB755C 800403BC 00000000 */ nop -/* AB7560 800403C0 45030008 */ bc1tl .L800403E4 -/* AB7564 800403C4 96220002 */ lhu $v0, 2($s1) -/* AB7568 800403C8 96020002 */ lhu $v0, 2($s0) -/* AB756C 800403CC 33190007 */ andi $t9, $t8, 7 -/* AB7570 800403D0 00194340 */ sll $t0, $t9, 0xd -/* AB7574 800403D4 00485024 */ and $t2, $v0, $t0 -/* AB7578 800403D8 11400008 */ beqz $t2, .L800403FC -/* AB757C 800403DC 3C013F80 */ li $at, 0x3F800000 # 0.000000 -/* AB7580 800403E0 96220002 */ lhu $v0, 2($s1) -.L800403E4: -/* AB7584 800403E4 52620093 */ beql $s3, $v0, .L80040634 -/* AB7588 800403E8 8FA800E4 */ lw $t0, 0xe4($sp) -/* AB758C 800403EC 8E4B13F8 */ lw $t3, 0x13f8($s2) -/* AB7590 800403F0 00024880 */ sll $t1, $v0, 2 -/* AB7594 800403F4 1000FFC7 */ b .L80040314 -/* AB7598 800403F8 01698821 */ addu $s1, $t3, $t1 -.L800403FC: -/* AB759C 800403FC 44812000 */ mtc1 $at, $f4 -/* AB75A0 80040400 C7AE00B8 */ lwc1 $f14, 0xb8($sp) -/* AB75A4 80040404 3C018014 */ lui $at, %hi(D_80138FB8) -/* AB75A8 80040408 46142403 */ div.s $f16, $f4, $f20 -/* AB75AC 8004040C C4268FB8 */ lwc1 $f6, %lo(D_80138FB8)($at) -/* AB75B0 80040410 304E1FFF */ andi $t6, $v0, 0x1fff -/* AB75B4 80040414 46007005 */ abs.s $f0, $f14 -/* AB75B8 80040418 46100482 */ mul.s $f18, $f0, $f16 -/* AB75BC 8004041C 4606903C */ c.lt.s $f18, $f6 -/* AB75C0 80040420 00000000 */ nop -/* AB75C4 80040424 45000008 */ bc1f .L80040448 -/* AB75C8 80040428 00000000 */ nop -/* AB75CC 8004042C 96220002 */ lhu $v0, 2($s1) -/* AB75D0 80040430 52620080 */ beql $s3, $v0, .L80040634 -/* AB75D4 80040434 8FA800E4 */ lw $t0, 0xe4($sp) -/* AB75D8 80040438 8E4C13F8 */ lw $t4, 0x13f8($s2) -/* AB75DC 8004043C 00026880 */ sll $t5, $v0, 2 -/* AB75E0 80040440 1000FFB4 */ b .L80040314 -/* AB75E4 80040444 018D8821 */ addu $s1, $t4, $t5 -.L80040448: -/* AB75E8 80040448 01D40019 */ multu $t6, $s4 -/* AB75EC 8004044C 96080004 */ lhu $t0, 4($s0) -/* AB75F0 80040450 8E4513F4 */ lw $a1, 0x13f4($s2) -/* AB75F4 80040454 310A1FFF */ andi $t2, $t0, 0x1fff -/* AB75F8 80040458 00007812 */ mflo $t7 -/* AB75FC 8004045C 00AFC021 */ addu $t8, $a1, $t7 -/* AB7600 80040460 87190004 */ lh $t9, 4($t8) -/* AB7604 80040464 01540019 */ multu $t2, $s4 -/* AB7608 80040468 44994000 */ mtc1 $t9, $f8 -/* AB760C 8004046C 00000000 */ nop -/* AB7610 80040470 46804320 */ cvt.s.w $f12, $f8 -/* AB7614 80040474 00005812 */ mflo $t3 -/* AB7618 80040478 00AB4821 */ addu $t1, $a1, $t3 -/* AB761C 8004047C 852C0004 */ lh $t4, 4($t1) -/* AB7620 80040480 46006086 */ mov.s $f2, $f12 -/* AB7624 80040484 448C5000 */ mtc1 $t4, $f10 -/* AB7628 80040488 00000000 */ nop -/* AB762C 8004048C 46805020 */ cvt.s.w $f0, $f10 -/* AB7630 80040490 4602003C */ c.lt.s $f0, $f2 -/* AB7634 80040494 00000000 */ nop -/* AB7638 80040498 45020004 */ bc1fl .L800404AC -/* AB763C 8004049C 4600603C */ c.lt.s $f12, $f0 -/* AB7640 800404A0 10000006 */ b .L800404BC -/* AB7644 800404A4 46000086 */ mov.s $f2, $f0 -/* AB7648 800404A8 4600603C */ c.lt.s $f12, $f0 -.L800404AC: -/* AB764C 800404AC 00000000 */ nop -/* AB7650 800404B0 45020003 */ bc1fl .L800404C0 -/* AB7654 800404B4 960D0006 */ lhu $t5, 6($s0) -/* AB7658 800404B8 46000306 */ mov.s $f12, $f0 -.L800404BC: -/* AB765C 800404BC 960D0006 */ lhu $t5, 6($s0) -.L800404C0: -/* AB7660 800404C0 000D7080 */ sll $t6, $t5, 2 -/* AB7664 800404C4 01CD7023 */ subu $t6, $t6, $t5 -/* AB7668 800404C8 000E7040 */ sll $t6, $t6, 1 -/* AB766C 800404CC 00AE7821 */ addu $t7, $a1, $t6 -/* AB7670 800404D0 85F80004 */ lh $t8, 4($t7) -/* AB7674 800404D4 44982000 */ mtc1 $t8, $f4 -/* AB7678 800404D8 00000000 */ nop -/* AB767C 800404DC 46802020 */ cvt.s.w $f0, $f4 -/* AB7680 800404E0 4602003C */ c.lt.s $f0, $f2 -/* AB7684 800404E4 00000000 */ nop -/* AB7688 800404E8 45020004 */ bc1fl .L800404FC -/* AB768C 800404EC 4600603C */ c.lt.s $f12, $f0 -/* AB7690 800404F0 10000006 */ b .L8004050C -/* AB7694 800404F4 46000086 */ mov.s $f2, $f0 -/* AB7698 800404F8 4600603C */ c.lt.s $f12, $f0 -.L800404FC: -/* AB769C 800404FC 00000000 */ nop -/* AB76A0 80040500 45020003 */ bc1fl .L80040510 -/* AB76A4 80040504 46161081 */ sub.s $f2, $f2, $f22 -/* AB76A8 80040508 46000306 */ mov.s $f12, $f0 -.L8004050C: -/* AB76AC 8004050C 46161081 */ sub.s $f2, $f2, $f22 -.L80040510: -/* AB76B0 80040510 C7AE00B4 */ lwc1 $f14, 0xb4($sp) -/* AB76B4 80040514 46166300 */ add.s $f12, $f12, $f22 -/* AB76B8 80040518 4602703C */ c.lt.s $f14, $f2 -/* AB76BC 8004051C 00000000 */ nop -/* AB76C0 80040520 45030008 */ bc1tl .L80040544 -/* AB76C4 80040524 96220002 */ lhu $v0, 2($s1) -/* AB76C8 80040528 460E603C */ c.lt.s $f12, $f14 -/* AB76CC 8004052C 02002025 */ move $a0, $s0 -/* AB76D0 80040530 8FAA00F8 */ lw $t2, 0xf8($sp) -/* AB76D4 80040534 27AB00D0 */ addiu $t3, $sp, 0xd0 -/* AB76D8 80040538 45020009 */ bc1fl .L80040560 -/* AB76DC 8004053C 8D470004 */ lw $a3, 4($t2) -/* AB76E0 80040540 96220002 */ lhu $v0, 2($s1) -.L80040544: -/* AB76E4 80040544 5262003B */ beql $s3, $v0, .L80040634 -/* AB76E8 80040548 8FA800E4 */ lw $t0, 0xe4($sp) -/* AB76EC 8004054C 8E5913F8 */ lw $t9, 0x13f8($s2) -/* AB76F0 80040550 00024080 */ sll $t0, $v0, 2 -/* AB76F4 80040554 1000FF6F */ b .L80040314 -/* AB76F8 80040558 03288821 */ addu $s1, $t9, $t0 -/* AB76FC 8004055C 8D470004 */ lw $a3, 4($t2) -.L80040560: -/* AB7700 80040560 E7B20090 */ swc1 $f18, 0x90($sp) -/* AB7704 80040564 E7B00070 */ swc1 $f16, 0x70($sp) -/* AB7708 80040568 AFAB0010 */ sw $t3, 0x10($sp) -/* AB770C 8004056C 0C00E400 */ jal CollisionPoly_CheckZIntersectApprox -/* AB7710 80040570 8FA600AC */ lw $a2, 0xac($sp) -/* AB7714 80040574 C7B00070 */ lwc1 $f16, 0x70($sp) -/* AB7718 80040578 10400026 */ beqz $v0, .L80040614 -/* AB771C 8004057C C7B20090 */ lwc1 $f18, 0x90($sp) -/* AB7720 80040580 4612B203 */ div.s $f8, $f22, $f18 -/* AB7724 80040584 C7AE00B4 */ lwc1 $f14, 0xb4($sp) -/* AB7728 80040588 C7A600D0 */ lwc1 $f6, 0xd0($sp) -/* AB772C 8004058C 460E3081 */ sub.s $f2, $f6, $f14 -/* AB7730 80040590 C7AE00B8 */ lwc1 $f14, 0xb8($sp) -/* AB7734 80040594 46001005 */ abs.s $f0, $f2 -/* AB7738 80040598 4608003E */ c.le.s $f0, $f8 -/* AB773C 8004059C 00000000 */ nop -/* AB7740 800405A0 4502001D */ bc1fl .L80040618 -/* AB7744 800405A4 96220002 */ lhu $v0, 2($s1) -/* AB7748 800405A8 460E1102 */ mul.s $f4, $f2, $f14 -/* AB774C 800405AC 3C014080 */ li $at, 0x40800000 # 0.000000 -/* AB7750 800405B0 44815000 */ mtc1 $at, $f10 -/* AB7754 800405B4 C7AC00C0 */ lwc1 $f12, 0xc0($sp) -/* AB7758 800405B8 8FA400D8 */ lw $a0, 0xd8($sp) -/* AB775C 800405BC 02002825 */ move $a1, $s0 -/* AB7760 800405C0 02A03025 */ move $a2, $s5 -/* AB7764 800405C4 460A203E */ c.le.s $f4, $f10 -/* AB7768 800405C8 27A700B4 */ addiu $a3, $sp, 0xb4 -/* AB776C 800405CC 240C0001 */ li $t4, 1 -/* AB7770 800405D0 45020011 */ bc1fl .L80040618 -/* AB7774 800405D4 96220002 */ lhu $v0, 2($s1) -/* AB7778 800405D8 C7A600BC */ lwc1 $f6, 0xbc($sp) -/* AB777C 800405DC 8FA900F0 */ lw $t1, 0xf0($sp) -/* AB7780 800405E0 E7AC0010 */ swc1 $f12, 0x10($sp) -/* AB7784 800405E4 E7AE0018 */ swc1 $f14, 0x18($sp) -/* AB7788 800405E8 E7B0001C */ swc1 $f16, 0x1c($sp) -/* AB778C 800405EC E7B80020 */ swc1 $f24, 0x20($sp) -/* AB7790 800405F0 E7B60024 */ swc1 $f22, 0x24($sp) -/* AB7794 800405F4 AFAC00CC */ sw $t4, 0xcc($sp) -/* AB7798 800405F8 E7A60014 */ swc1 $f6, 0x14($sp) -/* AB779C 800405FC 0C00E68F */ jal BgCheck_ComputeWallDisplacement -/* AB77A0 80040600 AFA90028 */ sw $t1, 0x28($sp) -/* AB77A4 80040604 10400003 */ beqz $v0, .L80040614 -/* AB77A8 80040608 8FAD0100 */ lw $t5, 0x100($sp) -/* AB77AC 8004060C 8FAE00F4 */ lw $t6, 0xf4($sp) -/* AB77B0 80040610 ADCD0000 */ sw $t5, ($t6) -.L80040614: -/* AB77B4 80040614 96220002 */ lhu $v0, 2($s1) -.L80040618: -/* AB77B8 80040618 52620006 */ beql $s3, $v0, .L80040634 -/* AB77BC 8004061C 8FA800E4 */ lw $t0, 0xe4($sp) -/* AB77C0 80040620 8E4F13F8 */ lw $t7, 0x13f8($s2) -/* AB77C4 80040624 0002C080 */ sll $t8, $v0, 2 -/* AB77C8 80040628 1000FF3A */ b .L80040314 -/* AB77CC 8004062C 01F88821 */ addu $s1, $t7, $t8 -/* AB77D0 80040630 8FA800E4 */ lw $t0, 0xe4($sp) -.L80040634: -/* AB77D4 80040634 8E5913F8 */ lw $t9, 0x13f8($s2) -/* AB77D8 80040638 950A0000 */ lhu $t2, ($t0) -/* AB77DC 8004063C 000A5880 */ sll $t3, $t2, 2 -/* AB77E0 80040640 032B8821 */ addu $s1, $t9, $t3 -.L80040644: -/* AB77E4 80040644 86220000 */ lh $v0, ($s1) -/* AB77E8 80040648 8E4913F0 */ lw $t1, 0x13f0($s2) -/* AB77EC 8004064C 27A500C0 */ addiu $a1, $sp, 0xc0 -/* AB77F0 80040650 00026100 */ sll $t4, $v0, 4 -/* AB77F4 80040654 012C8021 */ addu $s0, $t1, $t4 -/* AB77F8 80040658 02002025 */ move $a0, $s0 -/* AB77FC 8004065C 27A600BC */ addiu $a2, $sp, 0xbc -/* AB7800 80040660 0C00E275 */ jal CollisionPoly_GetNormalF -/* AB7804 80040664 27A700B8 */ addiu $a3, $sp, 0xb8 -/* AB7808 80040668 C7AC00C0 */ lwc1 $f12, 0xc0($sp) -/* AB780C 8004066C C7AE00B8 */ lwc1 $f14, 0xb8($sp) -/* AB7810 80040670 3C018014 */ lui $at, %hi(D_80138FBC) -/* AB7814 80040674 460C6202 */ mul.s $f8, $f12, $f12 -/* AB7818 80040678 C4248FBC */ lwc1 $f4, %lo(D_80138FBC)($at) -/* AB781C 8004067C 3C048014 */ lui $a0, %hi(D_80138F14) # $a0, 0x8014 -/* AB7820 80040680 460E7282 */ mul.s $f10, $f14, $f14 -/* AB7824 80040684 3C058014 */ lui $a1, %hi(D_80138F28) # $a1, 0x8014 -/* AB7828 80040688 24A58F28 */ addiu $a1, %lo(D_80138F28) # addiu $a1, $a1, -0x70d8 -/* AB782C 8004068C 24848F14 */ addiu $a0, %lo(D_80138F14) # addiu $a0, $a0, -0x70ec -/* AB7830 80040690 460A4000 */ add.s $f0, $f8, $f10 -/* AB7834 80040694 46000504 */ sqrt.s $f20, $f0 -/* AB7838 80040698 4600A005 */ abs.s $f0, $f20 -/* AB783C 8004069C 4604003C */ c.lt.s $f0, $f4 -/* AB7840 800406A0 00000000 */ nop -/* AB7844 800406A4 45020004 */ bc1fl .L800406B8 -/* AB7848 800406A8 860D000E */ lh $t5, 0xe($s0) -/* AB784C 800406AC 0C0007FC */ jal __assert -/* AB7850 800406B0 24061D41 */ li $a2, 7489 -/* AB7854 800406B4 860D000E */ lh $t5, 0xe($s0) -.L800406B8: -/* AB7858 800406B8 AFB50010 */ sw $s5, 0x10($sp) -/* AB785C 800406BC C7AC00C0 */ lwc1 $f12, 0xc0($sp) -/* AB7860 800406C0 448D3000 */ mtc1 $t5, $f6 -/* AB7864 800406C4 C7AE00BC */ lwc1 $f14, 0xbc($sp) -/* AB7868 800406C8 8FA600B8 */ lw $a2, 0xb8($sp) -/* AB786C 800406CC 468031A0 */ cvt.s.w $f6, $f6 -/* AB7870 800406D0 44073000 */ mfc1 $a3, $f6 -/* AB7874 800406D4 0C0332C3 */ jal Math3D_DistPlaneToPos -/* AB7878 800406D8 00000000 */ nop -/* AB787C 800406DC 46000606 */ mov.s $f24, $f0 -/* AB7880 800406E0 46000005 */ abs.s $f0, $f0 -/* AB7884 800406E4 97AE00DE */ lhu $t6, 0xde($sp) -/* AB7888 800406E8 4600B03C */ c.lt.s $f22, $f0 -/* AB788C 800406EC 00000000 */ nop -/* AB7890 800406F0 45030008 */ bc1tl .L80040714 -/* AB7894 800406F4 96220002 */ lhu $v0, 2($s1) -/* AB7898 800406F8 96020002 */ lhu $v0, 2($s0) -/* AB789C 800406FC 31CF0007 */ andi $t7, $t6, 7 -/* AB78A0 80040700 000FC340 */ sll $t8, $t7, 0xd -/* AB78A4 80040704 00584024 */ and $t0, $v0, $t8 -/* AB78A8 80040708 11000008 */ beqz $t0, .L8004072C -/* AB78AC 8004070C 3C013F80 */ li $at, 0x3F800000 # 0.000000 -/* AB78B0 80040710 96220002 */ lhu $v0, 2($s1) -.L80040714: -/* AB78B4 80040714 52620092 */ beql $s3, $v0, .L80040960 -/* AB78B8 80040718 C7A400AC */ lwc1 $f4, 0xac($sp) -/* AB78BC 8004071C 8E4A13F8 */ lw $t2, 0x13f8($s2) -/* AB78C0 80040720 0002C880 */ sll $t9, $v0, 2 -/* AB78C4 80040724 1000FFC7 */ b .L80040644 -/* AB78C8 80040728 01598821 */ addu $s1, $t2, $t9 -.L8004072C: -/* AB78CC 8004072C 44814000 */ mtc1 $at, $f8 -/* AB78D0 80040730 C7AC00C0 */ lwc1 $f12, 0xc0($sp) -/* AB78D4 80040734 3C018014 */ lui $at, %hi(D_80138FC0) -/* AB78D8 80040738 46144403 */ div.s $f16, $f8, $f20 -/* AB78DC 8004073C C42A8FC0 */ lwc1 $f10, %lo(D_80138FC0)($at) -/* AB78E0 80040740 304C1FFF */ andi $t4, $v0, 0x1fff -/* AB78E4 80040744 46006005 */ abs.s $f0, $f12 -/* AB78E8 80040748 46100482 */ mul.s $f18, $f0, $f16 -/* AB78EC 8004074C 460A903C */ c.lt.s $f18, $f10 -/* AB78F0 80040750 00000000 */ nop -/* AB78F4 80040754 45000008 */ bc1f .L80040778 -/* AB78F8 80040758 00000000 */ nop -/* AB78FC 8004075C 96220002 */ lhu $v0, 2($s1) -/* AB7900 80040760 5262007F */ beql $s3, $v0, .L80040960 -/* AB7904 80040764 C7A400AC */ lwc1 $f4, 0xac($sp) -/* AB7908 80040768 8E4B13F8 */ lw $t3, 0x13f8($s2) -/* AB790C 8004076C 00024880 */ sll $t1, $v0, 2 -/* AB7910 80040770 1000FFB4 */ b .L80040644 -/* AB7914 80040774 01698821 */ addu $s1, $t3, $t1 -.L80040778: -/* AB7918 80040778 01940019 */ multu $t4, $s4 -/* AB791C 8004077C 96180004 */ lhu $t8, 4($s0) -/* AB7920 80040780 8E4513F4 */ lw $a1, 0x13f4($s2) -/* AB7924 80040784 33081FFF */ andi $t0, $t8, 0x1fff -/* AB7928 80040788 00006812 */ mflo $t5 -/* AB792C 8004078C 00AD7021 */ addu $t6, $a1, $t5 -/* AB7930 80040790 85CF0000 */ lh $t7, ($t6) -/* AB7934 80040794 01140019 */ multu $t0, $s4 -/* AB7938 80040798 448F2000 */ mtc1 $t7, $f4 -/* AB793C 8004079C 00000000 */ nop -/* AB7940 800407A0 46802320 */ cvt.s.w $f12, $f4 -/* AB7944 800407A4 00005012 */ mflo $t2 -/* AB7948 800407A8 00AAC821 */ addu $t9, $a1, $t2 -/* AB794C 800407AC 872B0000 */ lh $t3, ($t9) -/* AB7950 800407B0 46006086 */ mov.s $f2, $f12 -/* AB7954 800407B4 448B3000 */ mtc1 $t3, $f6 -/* AB7958 800407B8 00000000 */ nop -/* AB795C 800407BC 46803020 */ cvt.s.w $f0, $f6 -/* AB7960 800407C0 4602003C */ c.lt.s $f0, $f2 -/* AB7964 800407C4 00000000 */ nop -/* AB7968 800407C8 45020004 */ bc1fl .L800407DC -/* AB796C 800407CC 4600603C */ c.lt.s $f12, $f0 -/* AB7970 800407D0 10000006 */ b .L800407EC -/* AB7974 800407D4 46000086 */ mov.s $f2, $f0 -/* AB7978 800407D8 4600603C */ c.lt.s $f12, $f0 -.L800407DC: -/* AB797C 800407DC 00000000 */ nop -/* AB7980 800407E0 45020003 */ bc1fl .L800407F0 -/* AB7984 800407E4 96090006 */ lhu $t1, 6($s0) -/* AB7988 800407E8 46000306 */ mov.s $f12, $f0 -.L800407EC: -/* AB798C 800407EC 96090006 */ lhu $t1, 6($s0) -.L800407F0: -/* AB7990 800407F0 00096080 */ sll $t4, $t1, 2 -/* AB7994 800407F4 01896023 */ subu $t4, $t4, $t1 -/* AB7998 800407F8 000C6040 */ sll $t4, $t4, 1 -/* AB799C 800407FC 00AC6821 */ addu $t5, $a1, $t4 -/* AB79A0 80040800 85AE0000 */ lh $t6, ($t5) -/* AB79A4 80040804 448E4000 */ mtc1 $t6, $f8 -/* AB79A8 80040808 00000000 */ nop -/* AB79AC 8004080C 46804020 */ cvt.s.w $f0, $f8 -/* AB79B0 80040810 4602003C */ c.lt.s $f0, $f2 -/* AB79B4 80040814 00000000 */ nop -/* AB79B8 80040818 45020004 */ bc1fl .L8004082C -/* AB79BC 8004081C 4600603C */ c.lt.s $f12, $f0 -/* AB79C0 80040820 10000006 */ b .L8004083C -/* AB79C4 80040824 46000086 */ mov.s $f2, $f0 -/* AB79C8 80040828 4600603C */ c.lt.s $f12, $f0 -.L8004082C: -/* AB79CC 8004082C 00000000 */ nop -/* AB79D0 80040830 45020003 */ bc1fl .L80040840 -/* AB79D4 80040834 46161081 */ sub.s $f2, $f2, $f22 -/* AB79D8 80040838 46000306 */ mov.s $f12, $f0 -.L8004083C: -/* AB79DC 8004083C 46161081 */ sub.s $f2, $f2, $f22 -.L80040840: -/* AB79E0 80040840 C7AE00AC */ lwc1 $f14, 0xac($sp) -/* AB79E4 80040844 46166300 */ add.s $f12, $f12, $f22 -/* AB79E8 80040848 4602703C */ c.lt.s $f14, $f2 -/* AB79EC 8004084C 00000000 */ nop -/* AB79F0 80040850 45030008 */ bc1tl .L80040874 -/* AB79F4 80040854 96220002 */ lhu $v0, 2($s1) -/* AB79F8 80040858 460E603C */ c.lt.s $f12, $f14 -/* AB79FC 8004085C 02002025 */ move $a0, $s0 -/* AB7A00 80040860 8FA800F8 */ lw $t0, 0xf8($sp) -/* AB7A04 80040864 8FA700B4 */ lw $a3, 0xb4($sp) -/* AB7A08 80040868 45000008 */ bc1f .L8004088C -/* AB7A0C 8004086C 27AA00D0 */ addiu $t2, $sp, 0xd0 -/* AB7A10 80040870 96220002 */ lhu $v0, 2($s1) -.L80040874: -/* AB7A14 80040874 5262003A */ beql $s3, $v0, .L80040960 -/* AB7A18 80040878 C7A400AC */ lwc1 $f4, 0xac($sp) -/* AB7A1C 8004087C 8E4F13F8 */ lw $t7, 0x13f8($s2) -/* AB7A20 80040880 0002C080 */ sll $t8, $v0, 2 -/* AB7A24 80040884 1000FF6F */ b .L80040644 -/* AB7A28 80040888 01F88821 */ addu $s1, $t7, $t8 -.L8004088C: -/* AB7A2C 8004088C 8D060004 */ lw $a2, 4($t0) -/* AB7A30 80040890 E7B20090 */ swc1 $f18, 0x90($sp) -/* AB7A34 80040894 E7B00070 */ swc1 $f16, 0x70($sp) -/* AB7A38 80040898 0C00E3D8 */ jal CollisionPoly_CheckXIntersectApprox -/* AB7A3C 8004089C AFAA0010 */ sw $t2, 0x10($sp) -/* AB7A40 800408A0 C7B00070 */ lwc1 $f16, 0x70($sp) -/* AB7A44 800408A4 10400026 */ beqz $v0, .L80040940 -/* AB7A48 800408A8 C7B20090 */ lwc1 $f18, 0x90($sp) -/* AB7A4C 800408AC 4612B103 */ div.s $f4, $f22, $f18 -/* AB7A50 800408B0 C7AE00AC */ lwc1 $f14, 0xac($sp) -/* AB7A54 800408B4 C7AA00D0 */ lwc1 $f10, 0xd0($sp) -/* AB7A58 800408B8 C7AC00C0 */ lwc1 $f12, 0xc0($sp) -/* AB7A5C 800408BC 460E5081 */ sub.s $f2, $f10, $f14 -/* AB7A60 800408C0 46001005 */ abs.s $f0, $f2 -/* AB7A64 800408C4 4604003E */ c.le.s $f0, $f4 -/* AB7A68 800408C8 00000000 */ nop -/* AB7A6C 800408CC 4502001D */ bc1fl .L80040944 -/* AB7A70 800408D0 96220002 */ lhu $v0, 2($s1) -/* AB7A74 800408D4 460C1202 */ mul.s $f8, $f2, $f12 -/* AB7A78 800408D8 3C014080 */ li $at, 0x40800000 # 0.000000 -/* AB7A7C 800408DC 44813000 */ mtc1 $at, $f6 -/* AB7A80 800408E0 C7AE00B8 */ lwc1 $f14, 0xb8($sp) -/* AB7A84 800408E4 8FA400D8 */ lw $a0, 0xd8($sp) -/* AB7A88 800408E8 02002825 */ move $a1, $s0 -/* AB7A8C 800408EC 02A03025 */ move $a2, $s5 -/* AB7A90 800408F0 4606403E */ c.le.s $f8, $f6 -/* AB7A94 800408F4 27A700B4 */ addiu $a3, $sp, 0xb4 -/* AB7A98 800408F8 240B0001 */ li $t3, 1 -/* AB7A9C 800408FC 45020011 */ bc1fl .L80040944 -/* AB7AA0 80040900 96220002 */ lhu $v0, 2($s1) -/* AB7AA4 80040904 C7AA00BC */ lwc1 $f10, 0xbc($sp) -/* AB7AA8 80040908 8FB900F0 */ lw $t9, 0xf0($sp) -/* AB7AAC 8004090C E7AC0010 */ swc1 $f12, 0x10($sp) -/* AB7AB0 80040910 E7AE0018 */ swc1 $f14, 0x18($sp) -/* AB7AB4 80040914 E7B0001C */ swc1 $f16, 0x1c($sp) -/* AB7AB8 80040918 E7B80020 */ swc1 $f24, 0x20($sp) -/* AB7ABC 8004091C E7B60024 */ swc1 $f22, 0x24($sp) -/* AB7AC0 80040920 AFAB00CC */ sw $t3, 0xcc($sp) -/* AB7AC4 80040924 E7AA0014 */ swc1 $f10, 0x14($sp) -/* AB7AC8 80040928 0C00E68F */ jal BgCheck_ComputeWallDisplacement -/* AB7ACC 8004092C AFB90028 */ sw $t9, 0x28($sp) -/* AB7AD0 80040930 10400003 */ beqz $v0, .L80040940 -/* AB7AD4 80040934 8FA90100 */ lw $t1, 0x100($sp) -/* AB7AD8 80040938 8FAC00F4 */ lw $t4, 0xf4($sp) -/* AB7ADC 8004093C AD890000 */ sw $t1, ($t4) -.L80040940: -/* AB7AE0 80040940 96220002 */ lhu $v0, 2($s1) -.L80040944: -/* AB7AE4 80040944 52620006 */ beql $s3, $v0, .L80040960 -/* AB7AE8 80040948 C7A400AC */ lwc1 $f4, 0xac($sp) -/* AB7AEC 8004094C 8E4D13F8 */ lw $t5, 0x13f8($s2) -/* AB7AF0 80040950 00027080 */ sll $t6, $v0, 2 -/* AB7AF4 80040954 1000FF3B */ b .L80040644 -/* AB7AF8 80040958 01AE8821 */ addu $s1, $t5, $t6 -/* AB7AFC 8004095C C7A400AC */ lwc1 $f4, 0xac($sp) -.L80040960: -/* AB7B00 80040960 8FAF00E8 */ lw $t7, 0xe8($sp) -/* AB7B04 80040964 E5E40000 */ swc1 $f4, ($t7) -/* AB7B08 80040968 8FB800EC */ lw $t8, 0xec($sp) -/* AB7B0C 8004096C C7A600B4 */ lwc1 $f6, 0xb4($sp) -/* AB7B10 80040970 E7060000 */ swc1 $f6, ($t8) -/* AB7B14 80040974 8FA200CC */ lw $v0, 0xcc($sp) -.L80040978: -/* AB7B18 80040978 8FBF0064 */ lw $ra, 0x64($sp) -/* AB7B1C 8004097C D7B40030 */ ldc1 $f20, 0x30($sp) -/* AB7B20 80040980 D7B60038 */ ldc1 $f22, 0x38($sp) -/* AB7B24 80040984 D7B80040 */ ldc1 $f24, 0x40($sp) -/* AB7B28 80040988 8FB0004C */ lw $s0, 0x4c($sp) -/* AB7B2C 8004098C 8FB10050 */ lw $s1, 0x50($sp) -/* AB7B30 80040990 8FB20054 */ lw $s2, 0x54($sp) -/* AB7B34 80040994 8FB30058 */ lw $s3, 0x58($sp) -/* AB7B38 80040998 8FB4005C */ lw $s4, 0x5c($sp) -/* AB7B3C 8004099C 8FB50060 */ lw $s5, 0x60($sp) -/* AB7B40 800409A0 03E00008 */ jr $ra -/* AB7B44 800409A4 27BD00D8 */ addiu $sp, $sp, 0xd8 - diff --git a/asm/non_matchings/code/z_bgcheck/BgCheck_SphVsStaticWall.s b/asm/non_matchings/code/z_bgcheck/BgCheck_SphVsStaticWall.s deleted file mode 100644 index 7b41803f21..0000000000 --- a/asm/non_matchings/code/z_bgcheck/BgCheck_SphVsStaticWall.s +++ /dev/null @@ -1,652 +0,0 @@ -.rdata -glabel D_80138784 - .asciz "!IS_ZERO(ac_size)" - .balign 4 - -glabel D_80138798 - .asciz "../z_bgcheck.c" - .balign 4 - -glabel D_801387A8 - .asciz "!IS_ZERO(ac_size)" - .balign 4 - -glabel D_801387BC - .asciz "../z_bgcheck.c" - .balign 4 - -.late_rodata -glabel D_80138F5C - .float 0.00003051851 - -glabel D_80138F60 - .float 0.008 - -glabel D_80138F64 - .float 0.4 - -glabel D_80138F68 - .float 0.00003051851 - -glabel D_80138F6C - .float 0.008 - -glabel D_80138F70 - .float 0.4 - -.text -glabel BgCheck_SphVsStaticWall -/* AB0C8C 80039AEC 27BDFEF8 */ addiu $sp, $sp, -0x108 -/* AB0C90 80039AF0 AFBF008C */ sw $ra, 0x8c($sp) -/* AB0C94 80039AF4 AFBE0088 */ sw $fp, 0x88($sp) -/* AB0C98 80039AF8 AFB70084 */ sw $s7, 0x84($sp) -/* AB0C9C 80039AFC AFB60080 */ sw $s6, 0x80($sp) -/* AB0CA0 80039B00 AFB5007C */ sw $s5, 0x7c($sp) -/* AB0CA4 80039B04 AFB40078 */ sw $s4, 0x78($sp) -/* AB0CA8 80039B08 AFB30074 */ sw $s3, 0x74($sp) -/* AB0CAC 80039B0C AFB20070 */ sw $s2, 0x70($sp) -/* AB0CB0 80039B10 AFB1006C */ sw $s1, 0x6c($sp) -/* AB0CB4 80039B14 AFB00068 */ sw $s0, 0x68($sp) -/* AB0CB8 80039B18 F7BE0060 */ sdc1 $f30, 0x60($sp) -/* AB0CBC 80039B1C F7BC0058 */ sdc1 $f28, 0x58($sp) -/* AB0CC0 80039B20 F7BA0050 */ sdc1 $f26, 0x50($sp) -/* AB0CC4 80039B24 F7B80048 */ sdc1 $f24, 0x48($sp) -/* AB0CC8 80039B28 F7B60040 */ sdc1 $f22, 0x40($sp) -/* AB0CCC 80039B2C F7B40038 */ sdc1 $f20, 0x38($sp) -/* AB0CD0 80039B30 AFA40108 */ sw $a0, 0x108($sp) -/* AB0CD4 80039B34 AFA60110 */ sw $a2, 0x110($sp) -/* AB0CD8 80039B38 AFA70114 */ sw $a3, 0x114($sp) -/* AB0CDC 80039B3C AFA000E8 */ sw $zero, 0xe8($sp) -/* AB0CE0 80039B40 948F0002 */ lhu $t7, 2($a0) -/* AB0CE4 80039B44 3414FFFF */ li $s4, 65535 -/* AB0CE8 80039B48 00A09825 */ move $s3, $a1 -/* AB0CEC 80039B4C 168F0003 */ bne $s4, $t7, .L80039B5C -/* AB0CF0 80039B50 8FB6011C */ lw $s6, 0x11c($sp) -/* AB0CF4 80039B54 10000210 */ b .L8003A398 -/* AB0CF8 80039B58 00001025 */ move $v0, $zero -.L80039B5C: -/* AB0CFC 80039B5C 8ED90000 */ lw $t9, ($s6) -/* AB0D00 80039B60 27B700FC */ addiu $s7, $sp, 0xfc -/* AB0D04 80039B64 241E0006 */ li $fp, 6 -/* AB0D08 80039B68 AEF90000 */ sw $t9, ($s7) -/* AB0D0C 80039B6C 8ED80004 */ lw $t8, 4($s6) -/* AB0D10 80039B70 24150006 */ li $s5, 6 -/* AB0D14 80039B74 AEF80004 */ sw $t8, 4($s7) -/* AB0D18 80039B78 8ED90008 */ lw $t9, 8($s6) -/* AB0D1C 80039B7C AEF90008 */ sw $t9, 8($s7) -/* AB0D20 80039B80 8E620000 */ lw $v0, ($s3) -/* AB0D24 80039B84 8FA90108 */ lw $t1, 0x108($sp) -/* AB0D28 80039B88 C7BC0120 */ lwc1 $f28, 0x120($sp) -/* AB0D2C 80039B8C 8C480018 */ lw $t0, 0x18($v0) -/* AB0D30 80039B90 AFA800E0 */ sw $t0, 0xe0($sp) -/* AB0D34 80039B94 952A0002 */ lhu $t2, 2($t1) -/* AB0D38 80039B98 8E630048 */ lw $v1, 0x48($s3) -/* AB0D3C 80039B9C 8C520010 */ lw $s2, 0x10($v0) -/* AB0D40 80039BA0 000A5880 */ sll $t3, $t2, 2 -/* AB0D44 80039BA4 006B8821 */ addu $s1, $v1, $t3 -.L80039BA8: -/* AB0D48 80039BA8 86220000 */ lh $v0, ($s1) -/* AB0D4C 80039BAC 8FAD00E0 */ lw $t5, 0xe0($sp) -/* AB0D50 80039BB0 C6C00004 */ lwc1 $f0, 4($s6) -/* AB0D54 80039BB4 00026100 */ sll $t4, $v0, 4 -/* AB0D58 80039BB8 018D8021 */ addu $s0, $t4, $t5 -/* AB0D5C 80039BBC 960E0002 */ lhu $t6, 2($s0) -/* AB0D60 80039BC0 31CF1FFF */ andi $t7, $t6, 0x1fff -/* AB0D64 80039BC4 01F50019 */ multu $t7, $s5 -/* AB0D68 80039BC8 0000C012 */ mflo $t8 -/* AB0D6C 80039BCC 0258C821 */ addu $t9, $s2, $t8 -/* AB0D70 80039BD0 87280002 */ lh $t0, 2($t9) -/* AB0D74 80039BD4 44882000 */ mtc1 $t0, $f4 -/* AB0D78 80039BD8 00000000 */ nop -/* AB0D7C 80039BDC 468021A0 */ cvt.s.w $f6, $f4 -/* AB0D80 80039BE0 4606003C */ c.lt.s $f0, $f6 -/* AB0D84 80039BE4 00000000 */ nop -/* AB0D88 80039BE8 45020020 */ bc1fl .L80039C6C -/* AB0D8C 80039BEC 860B0008 */ lh $t3, 8($s0) -/* AB0D90 80039BF0 96090004 */ lhu $t1, 4($s0) -/* AB0D94 80039BF4 312A1FFF */ andi $t2, $t1, 0x1fff -/* AB0D98 80039BF8 01550019 */ multu $t2, $s5 -/* AB0D9C 80039BFC 00005812 */ mflo $t3 -/* AB0DA0 80039C00 024B6021 */ addu $t4, $s2, $t3 -/* AB0DA4 80039C04 858D0002 */ lh $t5, 2($t4) -/* AB0DA8 80039C08 448D4000 */ mtc1 $t5, $f8 -/* AB0DAC 80039C0C 00000000 */ nop -/* AB0DB0 80039C10 468042A0 */ cvt.s.w $f10, $f8 -/* AB0DB4 80039C14 460A003C */ c.lt.s $f0, $f10 -/* AB0DB8 80039C18 00000000 */ nop -/* AB0DBC 80039C1C 45020013 */ bc1fl .L80039C6C -/* AB0DC0 80039C20 860B0008 */ lh $t3, 8($s0) -/* AB0DC4 80039C24 960E0006 */ lhu $t6, 6($s0) -/* AB0DC8 80039C28 01DE0019 */ multu $t6, $fp -/* AB0DCC 80039C2C 00007812 */ mflo $t7 -/* AB0DD0 80039C30 024FC021 */ addu $t8, $s2, $t7 -/* AB0DD4 80039C34 87190002 */ lh $t9, 2($t8) -/* AB0DD8 80039C38 44992000 */ mtc1 $t9, $f4 -/* AB0DDC 80039C3C 00000000 */ nop -/* AB0DE0 80039C40 468021A0 */ cvt.s.w $f6, $f4 -/* AB0DE4 80039C44 4606003C */ c.lt.s $f0, $f6 -/* AB0DE8 80039C48 00000000 */ nop -/* AB0DEC 80039C4C 45020007 */ bc1fl .L80039C6C -/* AB0DF0 80039C50 860B0008 */ lh $t3, 8($s0) -/* AB0DF4 80039C54 8FA80108 */ lw $t0, 0x108($sp) -/* AB0DF8 80039C58 95090002 */ lhu $t1, 2($t0) -/* AB0DFC 80039C5C 00095080 */ sll $t2, $t1, 2 -/* AB0E00 80039C60 100000DC */ b .L80039FD4 -/* AB0E04 80039C64 006A8821 */ addu $s1, $v1, $t2 -/* AB0E08 80039C68 860B0008 */ lh $t3, 8($s0) -.L80039C6C: -/* AB0E0C 80039C6C 860C000A */ lh $t4, 0xa($s0) -/* AB0E10 80039C70 860D000C */ lh $t5, 0xc($s0) -/* AB0E14 80039C74 448B4000 */ mtc1 $t3, $f8 -/* AB0E18 80039C78 448C2000 */ mtc1 $t4, $f4 -/* AB0E1C 80039C7C 3C018014 */ lui $at, %hi(D_80138F5C) -/* AB0E20 80039C80 468042A0 */ cvt.s.w $f10, $f8 -/* AB0E24 80039C84 C4228F5C */ lwc1 $f2, %lo(D_80138F5C)($at) -/* AB0E28 80039C88 448D4000 */ mtc1 $t5, $f8 -/* AB0E2C 80039C8C 860E000E */ lh $t6, 0xe($s0) -/* AB0E30 80039C90 AFB70010 */ sw $s7, 0x10($sp) -/* AB0E34 80039C94 468021A0 */ cvt.s.w $f6, $f4 -/* AB0E38 80039C98 46025582 */ mul.s $f22, $f10, $f2 -/* AB0E3C 80039C9C 468042A0 */ cvt.s.w $f10, $f8 -/* AB0E40 80039CA0 46023682 */ mul.s $f26, $f6, $f2 -/* AB0E44 80039CA4 448E4000 */ mtc1 $t6, $f8 -/* AB0E48 80039CA8 4600B306 */ mov.s $f12, $f22 -/* AB0E4C 80039CAC 46025602 */ mul.s $f24, $f10, $f2 -/* AB0E50 80039CB0 4600D386 */ mov.s $f14, $f26 -/* AB0E54 80039CB4 4616B102 */ mul.s $f4, $f22, $f22 -/* AB0E58 80039CB8 00000000 */ nop -/* AB0E5C 80039CBC 4618C182 */ mul.s $f6, $f24, $f24 -/* AB0E60 80039CC0 4406C000 */ mfc1 $a2, $f24 -/* AB0E64 80039CC4 46804220 */ cvt.s.w $f8, $f8 -/* AB0E68 80039CC8 46062000 */ add.s $f0, $f4, $f6 -/* AB0E6C 80039CCC 44074000 */ mfc1 $a3, $f8 -/* AB0E70 80039CD0 0C0332C3 */ jal Math3D_DistPlaneToPos -/* AB0E74 80039CD4 46000504 */ sqrt.s $f20, $f0 -/* AB0E78 80039CD8 46000786 */ mov.s $f30, $f0 -/* AB0E7C 80039CDC 46000005 */ abs.s $f0, $f0 -/* AB0E80 80039CE0 97B80112 */ lhu $t8, 0x112($sp) -/* AB0E84 80039CE4 4600E03C */ c.lt.s $f28, $f0 -/* AB0E88 80039CE8 00000000 */ nop -/* AB0E8C 80039CEC 45030008 */ bc1tl .L80039D10 -/* AB0E90 80039CF0 96220002 */ lhu $v0, 2($s1) -/* AB0E94 80039CF4 960F0002 */ lhu $t7, 2($s0) -/* AB0E98 80039CF8 33190007 */ andi $t9, $t8, 7 -/* AB0E9C 80039CFC 00194340 */ sll $t0, $t9, 0xd -/* AB0EA0 80039D00 01E84824 */ and $t1, $t7, $t0 -/* AB0EA4 80039D04 1120000F */ beqz $t1, .L80039D44 -/* AB0EA8 80039D08 3C018014 */ lui $at, %hi(D_80138F60) -/* AB0EAC 80039D0C 96220002 */ lhu $v0, 2($s1) -.L80039D10: -/* AB0EB0 80039D10 56820009 */ bnel $s4, $v0, .L80039D38 -/* AB0EB4 80039D14 8E630048 */ lw $v1, 0x48($s3) -/* AB0EB8 80039D18 8FAB0108 */ lw $t3, 0x108($sp) -/* AB0EBC 80039D1C 8E6A0048 */ lw $t2, 0x48($s3) -/* AB0EC0 80039D20 C6C00004 */ lwc1 $f0, 4($s6) -/* AB0EC4 80039D24 956C0002 */ lhu $t4, 2($t3) -/* AB0EC8 80039D28 000C6880 */ sll $t5, $t4, 2 -/* AB0ECC 80039D2C 100000A9 */ b .L80039FD4 -/* AB0ED0 80039D30 014D8821 */ addu $s1, $t2, $t5 -/* AB0ED4 80039D34 8E630048 */ lw $v1, 0x48($s3) -.L80039D38: -/* AB0ED8 80039D38 00027080 */ sll $t6, $v0, 2 -/* AB0EDC 80039D3C 1000FF9A */ b .L80039BA8 -/* AB0EE0 80039D40 006E8821 */ addu $s1, $v1, $t6 -.L80039D44: -/* AB0EE4 80039D44 C42A8F60 */ lwc1 $f10, %lo(D_80138F60)($at) -/* AB0EE8 80039D48 4600A005 */ abs.s $f0, $f20 -/* AB0EEC 80039D4C 3C048014 */ lui $a0, %hi(D_80138784) # $a0, 0x8014 -/* AB0EF0 80039D50 460A003C */ c.lt.s $f0, $f10 -/* AB0EF4 80039D54 3C058014 */ lui $a1, %hi(D_80138798) # $a1, 0x8014 -/* AB0EF8 80039D58 24A58798 */ addiu $a1, %lo(D_80138798) # addiu $a1, $a1, -0x7868 -/* AB0EFC 80039D5C 24848784 */ addiu $a0, %lo(D_80138784) # addiu $a0, $a0, -0x787c -/* AB0F00 80039D60 45020004 */ bc1fl .L80039D74 -/* AB0F04 80039D64 3C013F80 */ lui $at, 0x3f80 -/* AB0F08 80039D68 0C0007FC */ jal __assert -/* AB0F0C 80039D6C 24060B26 */ li $a2, 2854 -/* AB0F10 80039D70 3C013F80 */ li $at, 0x3F800000 # 0.000000 -.L80039D74: -/* AB0F14 80039D74 44812000 */ mtc1 $at, $f4 -/* AB0F18 80039D78 4600C005 */ abs.s $f0, $f24 -/* AB0F1C 80039D7C 3C018014 */ lui $at, %hi(D_80138F64) -/* AB0F20 80039D80 46142383 */ div.s $f14, $f4, $f20 -/* AB0F24 80039D84 C4268F64 */ lwc1 $f6, %lo(D_80138F64)($at) -/* AB0F28 80039D88 460E0402 */ mul.s $f16, $f0, $f14 -/* AB0F2C 80039D8C 4606803C */ c.lt.s $f16, $f6 -/* AB0F30 80039D90 00000000 */ nop -/* AB0F34 80039D94 45020010 */ bc1fl .L80039DD8 -/* AB0F38 80039D98 960B0002 */ lhu $t3, 2($s0) -/* AB0F3C 80039D9C 96220002 */ lhu $v0, 2($s1) -/* AB0F40 80039DA0 56820009 */ bnel $s4, $v0, .L80039DC8 -/* AB0F44 80039DA4 8E630048 */ lw $v1, 0x48($s3) -/* AB0F48 80039DA8 8FB90108 */ lw $t9, 0x108($sp) -/* AB0F4C 80039DAC 8E780048 */ lw $t8, 0x48($s3) -/* AB0F50 80039DB0 C6C00004 */ lwc1 $f0, 4($s6) -/* AB0F54 80039DB4 972F0002 */ lhu $t7, 2($t9) -/* AB0F58 80039DB8 000F4080 */ sll $t0, $t7, 2 -/* AB0F5C 80039DBC 10000085 */ b .L80039FD4 -/* AB0F60 80039DC0 03088821 */ addu $s1, $t8, $t0 -/* AB0F64 80039DC4 8E630048 */ lw $v1, 0x48($s3) -.L80039DC8: -/* AB0F68 80039DC8 00024880 */ sll $t1, $v0, 2 -/* AB0F6C 80039DCC 1000FF76 */ b .L80039BA8 -/* AB0F70 80039DD0 00698821 */ addu $s1, $v1, $t1 -/* AB0F74 80039DD4 960B0002 */ lhu $t3, 2($s0) -.L80039DD8: -/* AB0F78 80039DD8 96190004 */ lhu $t9, 4($s0) -/* AB0F7C 80039DDC 316C1FFF */ andi $t4, $t3, 0x1fff -/* AB0F80 80039DE0 01950019 */ multu $t4, $s5 -/* AB0F84 80039DE4 332F1FFF */ andi $t7, $t9, 0x1fff -/* AB0F88 80039DE8 00005012 */ mflo $t2 -/* AB0F8C 80039DEC 024A6821 */ addu $t5, $s2, $t2 -/* AB0F90 80039DF0 85AE0004 */ lh $t6, 4($t5) -/* AB0F94 80039DF4 01F50019 */ multu $t7, $s5 -/* AB0F98 80039DF8 448E4000 */ mtc1 $t6, $f8 -/* AB0F9C 80039DFC 00000000 */ nop -/* AB0FA0 80039E00 46804320 */ cvt.s.w $f12, $f8 -/* AB0FA4 80039E04 0000C012 */ mflo $t8 -/* AB0FA8 80039E08 02584021 */ addu $t0, $s2, $t8 -/* AB0FAC 80039E0C 85090004 */ lh $t1, 4($t0) -/* AB0FB0 80039E10 46006086 */ mov.s $f2, $f12 -/* AB0FB4 80039E14 44895000 */ mtc1 $t1, $f10 -/* AB0FB8 80039E18 00000000 */ nop -/* AB0FBC 80039E1C 46805020 */ cvt.s.w $f0, $f10 -/* AB0FC0 80039E20 4602003C */ c.lt.s $f0, $f2 -/* AB0FC4 80039E24 00000000 */ nop -/* AB0FC8 80039E28 45020004 */ bc1fl .L80039E3C -/* AB0FCC 80039E2C 4600603C */ c.lt.s $f12, $f0 -/* AB0FD0 80039E30 10000006 */ b .L80039E4C -/* AB0FD4 80039E34 46000086 */ mov.s $f2, $f0 -/* AB0FD8 80039E38 4600603C */ c.lt.s $f12, $f0 -.L80039E3C: -/* AB0FDC 80039E3C 00000000 */ nop -/* AB0FE0 80039E40 45020003 */ bc1fl .L80039E50 -/* AB0FE4 80039E44 960B0006 */ lhu $t3, 6($s0) -/* AB0FE8 80039E48 46000306 */ mov.s $f12, $f0 -.L80039E4C: -/* AB0FEC 80039E4C 960B0006 */ lhu $t3, 6($s0) -.L80039E50: -/* AB0FF0 80039E50 017E0019 */ multu $t3, $fp -/* AB0FF4 80039E54 00006012 */ mflo $t4 -/* AB0FF8 80039E58 024C5021 */ addu $t2, $s2, $t4 -/* AB0FFC 80039E5C 854D0004 */ lh $t5, 4($t2) -/* AB1000 80039E60 448D2000 */ mtc1 $t5, $f4 -/* AB1004 80039E64 00000000 */ nop -/* AB1008 80039E68 46802020 */ cvt.s.w $f0, $f4 -/* AB100C 80039E6C 4602003C */ c.lt.s $f0, $f2 -/* AB1010 80039E70 00000000 */ nop -/* AB1014 80039E74 45020004 */ bc1fl .L80039E88 -/* AB1018 80039E78 4600603C */ c.lt.s $f12, $f0 -/* AB101C 80039E7C 10000006 */ b .L80039E98 -/* AB1020 80039E80 46000086 */ mov.s $f2, $f0 -/* AB1024 80039E84 4600603C */ c.lt.s $f12, $f0 -.L80039E88: -/* AB1028 80039E88 00000000 */ nop -/* AB102C 80039E8C 45020003 */ bc1fl .L80039E9C -/* AB1030 80039E90 461C1081 */ sub.s $f2, $f2, $f28 -/* AB1034 80039E94 46000306 */ mov.s $f12, $f0 -.L80039E98: -/* AB1038 80039E98 461C1081 */ sub.s $f2, $f2, $f28 -.L80039E9C: -/* AB103C 80039E9C C7B20104 */ lwc1 $f18, 0x104($sp) -/* AB1040 80039EA0 461C6300 */ add.s $f12, $f12, $f28 -/* AB1044 80039EA4 4602903C */ c.lt.s $f18, $f2 -/* AB1048 80039EA8 00000000 */ nop -/* AB104C 80039EAC 45030008 */ bc1tl .L80039ED0 -/* AB1050 80039EB0 96220002 */ lhu $v0, 2($s1) -/* AB1054 80039EB4 4612603C */ c.lt.s $f12, $f18 -/* AB1058 80039EB8 02002025 */ move $a0, $s0 -/* AB105C 80039EBC 02402825 */ move $a1, $s2 -/* AB1060 80039EC0 8FA600FC */ lw $a2, 0xfc($sp) -/* AB1064 80039EC4 4500000F */ bc1f .L80039F04 -/* AB1068 80039EC8 27A900EC */ addiu $t1, $sp, 0xec -/* AB106C 80039ECC 96220002 */ lhu $v0, 2($s1) -.L80039ED0: -/* AB1070 80039ED0 56820009 */ bnel $s4, $v0, .L80039EF8 -/* AB1074 80039ED4 8E630048 */ lw $v1, 0x48($s3) -/* AB1078 80039ED8 8FB90108 */ lw $t9, 0x108($sp) -/* AB107C 80039EDC 8E6E0048 */ lw $t6, 0x48($s3) -/* AB1080 80039EE0 C6C00004 */ lwc1 $f0, 4($s6) -/* AB1084 80039EE4 972F0002 */ lhu $t7, 2($t9) -/* AB1088 80039EE8 000FC080 */ sll $t8, $t7, 2 -/* AB108C 80039EEC 10000039 */ b .L80039FD4 -/* AB1090 80039EF0 01D88821 */ addu $s1, $t6, $t8 -/* AB1094 80039EF4 8E630048 */ lw $v1, 0x48($s3) -.L80039EF8: -/* AB1098 80039EF8 00024080 */ sll $t0, $v0, 2 -/* AB109C 80039EFC 1000FF2A */ b .L80039BA8 -/* AB10A0 80039F00 00688821 */ addu $s1, $v1, $t0 -.L80039F04: -/* AB10A4 80039F04 8EC70004 */ lw $a3, 4($s6) -/* AB10A8 80039F08 E7B000B8 */ swc1 $f16, 0xb8($sp) -/* AB10AC 80039F0C E7AE009C */ swc1 $f14, 0x9c($sp) -/* AB10B0 80039F10 0C00E400 */ jal CollisionPoly_CheckZIntersectApprox -/* AB10B4 80039F14 AFA90010 */ sw $t1, 0x10($sp) -/* AB10B8 80039F18 C7AE009C */ lwc1 $f14, 0x9c($sp) -/* AB10BC 80039F1C 1040001F */ beqz $v0, .L80039F9C -/* AB10C0 80039F20 C7B000B8 */ lwc1 $f16, 0xb8($sp) -/* AB10C4 80039F24 4610E203 */ div.s $f8, $f28, $f16 -/* AB10C8 80039F28 C7B20104 */ lwc1 $f18, 0x104($sp) -/* AB10CC 80039F2C C7A600EC */ lwc1 $f6, 0xec($sp) -/* AB10D0 80039F30 46123081 */ sub.s $f2, $f6, $f18 -/* AB10D4 80039F34 46001005 */ abs.s $f0, $f2 -/* AB10D8 80039F38 4608003E */ c.le.s $f0, $f8 -/* AB10DC 80039F3C 00000000 */ nop -/* AB10E0 80039F40 45020017 */ bc1fl .L80039FA0 -/* AB10E4 80039F44 96220002 */ lhu $v0, 2($s1) -/* AB10E8 80039F48 46181102 */ mul.s $f4, $f2, $f24 -/* AB10EC 80039F4C 3C014080 */ li $at, 0x40800000 # 0.000000 -/* AB10F0 80039F50 44815000 */ mtc1 $at, $f10 -/* AB10F4 80039F54 02602025 */ move $a0, $s3 -/* AB10F8 80039F58 02002825 */ move $a1, $s0 -/* AB10FC 80039F5C 02E03025 */ move $a2, $s7 -/* AB1100 80039F60 27A70104 */ addiu $a3, $sp, 0x104 -/* AB1104 80039F64 460A203E */ c.le.s $f4, $f10 -/* AB1108 80039F68 240C0001 */ li $t4, 1 -/* AB110C 80039F6C 4502000C */ bc1fl .L80039FA0 -/* AB1110 80039F70 96220002 */ lhu $v0, 2($s1) -/* AB1114 80039F74 8FAB0124 */ lw $t3, 0x124($sp) -/* AB1118 80039F78 E7B60010 */ swc1 $f22, 0x10($sp) -/* AB111C 80039F7C E7BA0014 */ swc1 $f26, 0x14($sp) -/* AB1120 80039F80 E7B80018 */ swc1 $f24, 0x18($sp) -/* AB1124 80039F84 E7AE001C */ swc1 $f14, 0x1c($sp) -/* AB1128 80039F88 E7BE0020 */ swc1 $f30, 0x20($sp) -/* AB112C 80039F8C E7BC0024 */ swc1 $f28, 0x24($sp) -/* AB1130 80039F90 AFAC00E8 */ sw $t4, 0xe8($sp) -/* AB1134 80039F94 0C00E68F */ jal BgCheck_ComputeWallDisplacement -/* AB1138 80039F98 AFAB0028 */ sw $t3, 0x28($sp) -.L80039F9C: -/* AB113C 80039F9C 96220002 */ lhu $v0, 2($s1) -.L80039FA0: -/* AB1140 80039FA0 56820009 */ bnel $s4, $v0, .L80039FC8 -/* AB1144 80039FA4 8E630048 */ lw $v1, 0x48($s3) -/* AB1148 80039FA8 8FAD0108 */ lw $t5, 0x108($sp) -/* AB114C 80039FAC 8E6A0048 */ lw $t2, 0x48($s3) -/* AB1150 80039FB0 C6C00004 */ lwc1 $f0, 4($s6) -/* AB1154 80039FB4 95B90002 */ lhu $t9, 2($t5) -/* AB1158 80039FB8 00197880 */ sll $t7, $t9, 2 -/* AB115C 80039FBC 10000005 */ b .L80039FD4 -/* AB1160 80039FC0 014F8821 */ addu $s1, $t2, $t7 -/* AB1164 80039FC4 8E630048 */ lw $v1, 0x48($s3) -.L80039FC8: -/* AB1168 80039FC8 00027080 */ sll $t6, $v0, 2 -/* AB116C 80039FCC 1000FEF6 */ b .L80039BA8 -/* AB1170 80039FD0 006E8821 */ addu $s1, $v1, $t6 -.L80039FD4: -/* AB1174 80039FD4 86220000 */ lh $v0, ($s1) -/* AB1178 80039FD8 8FA800E0 */ lw $t0, 0xe0($sp) -/* AB117C 80039FDC 0002C100 */ sll $t8, $v0, 4 -/* AB1180 80039FE0 03088021 */ addu $s0, $t8, $t0 -/* AB1184 80039FE4 96090002 */ lhu $t1, 2($s0) -/* AB1188 80039FE8 312B1FFF */ andi $t3, $t1, 0x1fff -/* AB118C 80039FEC 01750019 */ multu $t3, $s5 -/* AB1190 80039FF0 00006012 */ mflo $t4 -/* AB1194 80039FF4 024C6821 */ addu $t5, $s2, $t4 -/* AB1198 80039FF8 85B90002 */ lh $t9, 2($t5) -/* AB119C 80039FFC 44993000 */ mtc1 $t9, $f6 -/* AB11A0 8003A000 00000000 */ nop -/* AB11A4 8003A004 46803220 */ cvt.s.w $f8, $f6 -/* AB11A8 8003A008 4608003C */ c.lt.s $f0, $f8 -/* AB11AC 8003A00C 00000000 */ nop -/* AB11B0 8003A010 4502001B */ bc1fl .L8003A080 -/* AB11B4 8003A014 86190008 */ lh $t9, 8($s0) -/* AB11B8 8003A018 960A0004 */ lhu $t2, 4($s0) -/* AB11BC 8003A01C 314F1FFF */ andi $t7, $t2, 0x1fff -/* AB11C0 8003A020 01F50019 */ multu $t7, $s5 -/* AB11C4 8003A024 00007012 */ mflo $t6 -/* AB11C8 8003A028 024EC021 */ addu $t8, $s2, $t6 -/* AB11CC 8003A02C 87080002 */ lh $t0, 2($t8) -/* AB11D0 8003A030 44885000 */ mtc1 $t0, $f10 -/* AB11D4 8003A034 00000000 */ nop -/* AB11D8 8003A038 46805120 */ cvt.s.w $f4, $f10 -/* AB11DC 8003A03C 4604003C */ c.lt.s $f0, $f4 -/* AB11E0 8003A040 00000000 */ nop -/* AB11E4 8003A044 4502000E */ bc1fl .L8003A080 -/* AB11E8 8003A048 86190008 */ lh $t9, 8($s0) -/* AB11EC 8003A04C 96090006 */ lhu $t1, 6($s0) -/* AB11F0 8003A050 013E0019 */ multu $t1, $fp -/* AB11F4 8003A054 00005812 */ mflo $t3 -/* AB11F8 8003A058 024B6021 */ addu $t4, $s2, $t3 -/* AB11FC 8003A05C 858D0002 */ lh $t5, 2($t4) -/* AB1200 8003A060 448D3000 */ mtc1 $t5, $f6 -/* AB1204 8003A064 00000000 */ nop -/* AB1208 8003A068 46803220 */ cvt.s.w $f8, $f6 -/* AB120C 8003A06C 4608003C */ c.lt.s $f0, $f8 -/* AB1210 8003A070 00000000 */ nop -/* AB1214 8003A074 450300C2 */ bc1tl .L8003A380 -/* AB1218 8003A078 C7A800FC */ lwc1 $f8, 0xfc($sp) -/* AB121C 8003A07C 86190008 */ lh $t9, 8($s0) -.L8003A080: -/* AB1220 8003A080 860A000A */ lh $t2, 0xa($s0) -/* AB1224 8003A084 860F000C */ lh $t7, 0xc($s0) -/* AB1228 8003A088 44995000 */ mtc1 $t9, $f10 -/* AB122C 8003A08C 448A3000 */ mtc1 $t2, $f6 -/* AB1230 8003A090 3C018014 */ lui $at, %hi(D_80138F68) -/* AB1234 8003A094 46805120 */ cvt.s.w $f4, $f10 -/* AB1238 8003A098 C4228F68 */ lwc1 $f2, %lo(D_80138F68)($at) -/* AB123C 8003A09C 448F5000 */ mtc1 $t7, $f10 -/* AB1240 8003A0A0 860E000E */ lh $t6, 0xe($s0) -/* AB1244 8003A0A4 AFB70010 */ sw $s7, 0x10($sp) -/* AB1248 8003A0A8 46803220 */ cvt.s.w $f8, $f6 -/* AB124C 8003A0AC 46022582 */ mul.s $f22, $f4, $f2 -/* AB1250 8003A0B0 46805120 */ cvt.s.w $f4, $f10 -/* AB1254 8003A0B4 46024682 */ mul.s $f26, $f8, $f2 -/* AB1258 8003A0B8 448E5000 */ mtc1 $t6, $f10 -/* AB125C 8003A0BC 4600B306 */ mov.s $f12, $f22 -/* AB1260 8003A0C0 46022602 */ mul.s $f24, $f4, $f2 -/* AB1264 8003A0C4 4600D386 */ mov.s $f14, $f26 -/* AB1268 8003A0C8 4616B182 */ mul.s $f6, $f22, $f22 -/* AB126C 8003A0CC 00000000 */ nop -/* AB1270 8003A0D0 4618C202 */ mul.s $f8, $f24, $f24 -/* AB1274 8003A0D4 4406C000 */ mfc1 $a2, $f24 -/* AB1278 8003A0D8 468052A0 */ cvt.s.w $f10, $f10 -/* AB127C 8003A0DC 46083000 */ add.s $f0, $f6, $f8 -/* AB1280 8003A0E0 44075000 */ mfc1 $a3, $f10 -/* AB1284 8003A0E4 0C0332C3 */ jal Math3D_DistPlaneToPos -/* AB1288 8003A0E8 46000504 */ sqrt.s $f20, $f0 -/* AB128C 8003A0EC 46000786 */ mov.s $f30, $f0 -/* AB1290 8003A0F0 46000005 */ abs.s $f0, $f0 -/* AB1294 8003A0F4 97A80112 */ lhu $t0, 0x112($sp) -/* AB1298 8003A0F8 4600E03C */ c.lt.s $f28, $f0 -/* AB129C 8003A0FC 00000000 */ nop -/* AB12A0 8003A100 45030008 */ bc1tl .L8003A124 -/* AB12A4 8003A104 96220002 */ lhu $v0, 2($s1) -/* AB12A8 8003A108 96180002 */ lhu $t8, 2($s0) -/* AB12AC 8003A10C 31090007 */ andi $t1, $t0, 7 -/* AB12B0 8003A110 00095B40 */ sll $t3, $t1, 0xd -/* AB12B4 8003A114 030B6024 */ and $t4, $t8, $t3 -/* AB12B8 8003A118 11800008 */ beqz $t4, .L8003A13C -/* AB12BC 8003A11C 3C018014 */ lui $at, %hi(D_80138F6C) -/* AB12C0 8003A120 96220002 */ lhu $v0, 2($s1) -.L8003A124: -/* AB12C4 8003A124 52820096 */ beql $s4, $v0, .L8003A380 -/* AB12C8 8003A128 C7A800FC */ lwc1 $f8, 0xfc($sp) -/* AB12CC 8003A12C 8E6D0048 */ lw $t5, 0x48($s3) -/* AB12D0 8003A130 0002C880 */ sll $t9, $v0, 2 -/* AB12D4 8003A134 1000008F */ b .L8003A374 -/* AB12D8 8003A138 01B98821 */ addu $s1, $t5, $t9 -.L8003A13C: -/* AB12DC 8003A13C C4248F6C */ lwc1 $f4, %lo(D_80138F6C)($at) -/* AB12E0 8003A140 4600A005 */ abs.s $f0, $f20 -/* AB12E4 8003A144 3C048014 */ lui $a0, %hi(D_801387A8) # $a0, 0x8014 -/* AB12E8 8003A148 4604003C */ c.lt.s $f0, $f4 -/* AB12EC 8003A14C 3C058014 */ lui $a1, %hi(D_801387BC) # $a1, 0x8014 -/* AB12F0 8003A150 24A587BC */ addiu $a1, %lo(D_801387BC) # addiu $a1, $a1, -0x7844 -/* AB12F4 8003A154 248487A8 */ addiu $a0, %lo(D_801387A8) # addiu $a0, $a0, -0x7858 -/* AB12F8 8003A158 45020004 */ bc1fl .L8003A16C -/* AB12FC 8003A15C 3C013F80 */ lui $at, 0x3f80 -/* AB1300 8003A160 0C0007FC */ jal __assert -/* AB1304 8003A164 24060B94 */ li $a2, 2964 -/* AB1308 8003A168 3C013F80 */ li $at, 0x3F800000 # 0.000000 -.L8003A16C: -/* AB130C 8003A16C 44813000 */ mtc1 $at, $f6 -/* AB1310 8003A170 4600B005 */ abs.s $f0, $f22 -/* AB1314 8003A174 3C018014 */ lui $at, %hi(D_80138F70) -/* AB1318 8003A178 46143383 */ div.s $f14, $f6, $f20 -/* AB131C 8003A17C C4288F70 */ lwc1 $f8, %lo(D_80138F70)($at) -/* AB1320 8003A180 460E0402 */ mul.s $f16, $f0, $f14 -/* AB1324 8003A184 4608803C */ c.lt.s $f16, $f8 -/* AB1328 8003A188 00000000 */ nop -/* AB132C 8003A18C 45020009 */ bc1fl .L8003A1B4 -/* AB1330 8003A190 960E0002 */ lhu $t6, 2($s0) -/* AB1334 8003A194 96220002 */ lhu $v0, 2($s1) -/* AB1338 8003A198 52820079 */ beql $s4, $v0, .L8003A380 -/* AB133C 8003A19C C7A800FC */ lwc1 $f8, 0xfc($sp) -/* AB1340 8003A1A0 8E6A0048 */ lw $t2, 0x48($s3) -/* AB1344 8003A1A4 00027880 */ sll $t7, $v0, 2 -/* AB1348 8003A1A8 10000072 */ b .L8003A374 -/* AB134C 8003A1AC 014F8821 */ addu $s1, $t2, $t7 -/* AB1350 8003A1B0 960E0002 */ lhu $t6, 2($s0) -.L8003A1B4: -/* AB1354 8003A1B4 960C0004 */ lhu $t4, 4($s0) -/* AB1358 8003A1B8 31C81FFF */ andi $t0, $t6, 0x1fff -/* AB135C 8003A1BC 01150019 */ multu $t0, $s5 -/* AB1360 8003A1C0 318D1FFF */ andi $t5, $t4, 0x1fff -/* AB1364 8003A1C4 00004812 */ mflo $t1 -/* AB1368 8003A1C8 0249C021 */ addu $t8, $s2, $t1 -/* AB136C 8003A1CC 870B0000 */ lh $t3, ($t8) -/* AB1370 8003A1D0 01B50019 */ multu $t5, $s5 -/* AB1374 8003A1D4 448B5000 */ mtc1 $t3, $f10 -/* AB1378 8003A1D8 00000000 */ nop -/* AB137C 8003A1DC 46805320 */ cvt.s.w $f12, $f10 -/* AB1380 8003A1E0 0000C812 */ mflo $t9 -/* AB1384 8003A1E4 02595021 */ addu $t2, $s2, $t9 -/* AB1388 8003A1E8 854F0000 */ lh $t7, ($t2) -/* AB138C 8003A1EC 46006086 */ mov.s $f2, $f12 -/* AB1390 8003A1F0 448F2000 */ mtc1 $t7, $f4 -/* AB1394 8003A1F4 00000000 */ nop -/* AB1398 8003A1F8 46802020 */ cvt.s.w $f0, $f4 -/* AB139C 8003A1FC 4602003C */ c.lt.s $f0, $f2 -/* AB13A0 8003A200 00000000 */ nop -/* AB13A4 8003A204 45020004 */ bc1fl .L8003A218 -/* AB13A8 8003A208 4600603C */ c.lt.s $f12, $f0 -/* AB13AC 8003A20C 10000006 */ b .L8003A228 -/* AB13B0 8003A210 46000086 */ mov.s $f2, $f0 -/* AB13B4 8003A214 4600603C */ c.lt.s $f12, $f0 -.L8003A218: -/* AB13B8 8003A218 00000000 */ nop -/* AB13BC 8003A21C 45020003 */ bc1fl .L8003A22C -/* AB13C0 8003A220 960E0006 */ lhu $t6, 6($s0) -/* AB13C4 8003A224 46000306 */ mov.s $f12, $f0 -.L8003A228: -/* AB13C8 8003A228 960E0006 */ lhu $t6, 6($s0) -.L8003A22C: -/* AB13CC 8003A22C 01DE0019 */ multu $t6, $fp -/* AB13D0 8003A230 00004012 */ mflo $t0 -/* AB13D4 8003A234 02484821 */ addu $t1, $s2, $t0 -/* AB13D8 8003A238 85380000 */ lh $t8, ($t1) -/* AB13DC 8003A23C 44983000 */ mtc1 $t8, $f6 -/* AB13E0 8003A240 00000000 */ nop -/* AB13E4 8003A244 46803020 */ cvt.s.w $f0, $f6 -/* AB13E8 8003A248 4602003C */ c.lt.s $f0, $f2 -/* AB13EC 8003A24C 00000000 */ nop -/* AB13F0 8003A250 45020004 */ bc1fl .L8003A264 -/* AB13F4 8003A254 4600603C */ c.lt.s $f12, $f0 -/* AB13F8 8003A258 10000006 */ b .L8003A274 -/* AB13FC 8003A25C 46000086 */ mov.s $f2, $f0 -/* AB1400 8003A260 4600603C */ c.lt.s $f12, $f0 -.L8003A264: -/* AB1404 8003A264 00000000 */ nop -/* AB1408 8003A268 45020003 */ bc1fl .L8003A278 -/* AB140C 8003A26C 461C1081 */ sub.s $f2, $f2, $f28 -/* AB1410 8003A270 46000306 */ mov.s $f12, $f0 -.L8003A274: -/* AB1414 8003A274 461C1081 */ sub.s $f2, $f2, $f28 -.L8003A278: -/* AB1418 8003A278 C7B200FC */ lwc1 $f18, 0xfc($sp) -/* AB141C 8003A27C 461C6300 */ add.s $f12, $f12, $f28 -/* AB1420 8003A280 4602903C */ c.lt.s $f18, $f2 -/* AB1424 8003A284 00000000 */ nop -/* AB1428 8003A288 45030008 */ bc1tl .L8003A2AC -/* AB142C 8003A28C 96220002 */ lhu $v0, 2($s1) -/* AB1430 8003A290 4612603C */ c.lt.s $f12, $f18 -/* AB1434 8003A294 02002025 */ move $a0, $s0 -/* AB1438 8003A298 02402825 */ move $a1, $s2 -/* AB143C 8003A29C 8FA70104 */ lw $a3, 0x104($sp) -/* AB1440 8003A2A0 45000008 */ bc1f .L8003A2C4 -/* AB1444 8003A2A4 27AD00EC */ addiu $t5, $sp, 0xec -/* AB1448 8003A2A8 96220002 */ lhu $v0, 2($s1) -.L8003A2AC: -/* AB144C 8003A2AC 52820034 */ beql $s4, $v0, .L8003A380 -/* AB1450 8003A2B0 C7A800FC */ lwc1 $f8, 0xfc($sp) -/* AB1454 8003A2B4 8E6B0048 */ lw $t3, 0x48($s3) -/* AB1458 8003A2B8 00026080 */ sll $t4, $v0, 2 -/* AB145C 8003A2BC 1000002D */ b .L8003A374 -/* AB1460 8003A2C0 016C8821 */ addu $s1, $t3, $t4 -.L8003A2C4: -/* AB1464 8003A2C4 8EC60004 */ lw $a2, 4($s6) -/* AB1468 8003A2C8 E7B000B8 */ swc1 $f16, 0xb8($sp) -/* AB146C 8003A2CC E7AE009C */ swc1 $f14, 0x9c($sp) -/* AB1470 8003A2D0 0C00E3D8 */ jal CollisionPoly_CheckXIntersectApprox -/* AB1474 8003A2D4 AFAD0010 */ sw $t5, 0x10($sp) -/* AB1478 8003A2D8 C7AE009C */ lwc1 $f14, 0x9c($sp) -/* AB147C 8003A2DC 1040001F */ beqz $v0, .L8003A35C -/* AB1480 8003A2E0 C7B000B8 */ lwc1 $f16, 0xb8($sp) -/* AB1484 8003A2E4 4610E283 */ div.s $f10, $f28, $f16 -/* AB1488 8003A2E8 C7B200FC */ lwc1 $f18, 0xfc($sp) -/* AB148C 8003A2EC C7A800EC */ lwc1 $f8, 0xec($sp) -/* AB1490 8003A2F0 46124081 */ sub.s $f2, $f8, $f18 -/* AB1494 8003A2F4 46001005 */ abs.s $f0, $f2 -/* AB1498 8003A2F8 460A003E */ c.le.s $f0, $f10 -/* AB149C 8003A2FC 00000000 */ nop -/* AB14A0 8003A300 45020017 */ bc1fl .L8003A360 -/* AB14A4 8003A304 96220002 */ lhu $v0, 2($s1) -/* AB14A8 8003A308 46161182 */ mul.s $f6, $f2, $f22 -/* AB14AC 8003A30C 3C014080 */ li $at, 0x40800000 # 0.000000 -/* AB14B0 8003A310 44812000 */ mtc1 $at, $f4 -/* AB14B4 8003A314 02602025 */ move $a0, $s3 -/* AB14B8 8003A318 02002825 */ move $a1, $s0 -/* AB14BC 8003A31C 02E03025 */ move $a2, $s7 -/* AB14C0 8003A320 27A70104 */ addiu $a3, $sp, 0x104 -/* AB14C4 8003A324 4604303E */ c.le.s $f6, $f4 -/* AB14C8 8003A328 240A0001 */ li $t2, 1 -/* AB14CC 8003A32C 4502000C */ bc1fl .L8003A360 -/* AB14D0 8003A330 96220002 */ lhu $v0, 2($s1) -/* AB14D4 8003A334 8FB90124 */ lw $t9, 0x124($sp) -/* AB14D8 8003A338 E7B60010 */ swc1 $f22, 0x10($sp) -/* AB14DC 8003A33C E7BA0014 */ swc1 $f26, 0x14($sp) -/* AB14E0 8003A340 E7B80018 */ swc1 $f24, 0x18($sp) -/* AB14E4 8003A344 E7AE001C */ swc1 $f14, 0x1c($sp) -/* AB14E8 8003A348 E7BE0020 */ swc1 $f30, 0x20($sp) -/* AB14EC 8003A34C E7BC0024 */ swc1 $f28, 0x24($sp) -/* AB14F0 8003A350 AFAA00E8 */ sw $t2, 0xe8($sp) -/* AB14F4 8003A354 0C00E68F */ jal BgCheck_ComputeWallDisplacement -/* AB14F8 8003A358 AFB90028 */ sw $t9, 0x28($sp) -.L8003A35C: -/* AB14FC 8003A35C 96220002 */ lhu $v0, 2($s1) -.L8003A360: -/* AB1500 8003A360 52820007 */ beql $s4, $v0, .L8003A380 -/* AB1504 8003A364 C7A800FC */ lwc1 $f8, 0xfc($sp) -/* AB1508 8003A368 8E6F0048 */ lw $t7, 0x48($s3) -/* AB150C 8003A36C 00027080 */ sll $t6, $v0, 2 -/* AB1510 8003A370 01EE8821 */ addu $s1, $t7, $t6 -.L8003A374: -/* AB1514 8003A374 1000FF17 */ b .L80039FD4 -/* AB1518 8003A378 C6C00004 */ lwc1 $f0, 4($s6) -/* AB151C 8003A37C C7A800FC */ lwc1 $f8, 0xfc($sp) -.L8003A380: -/* AB1520 8003A380 8FA80114 */ lw $t0, 0x114($sp) -/* AB1524 8003A384 E5080000 */ swc1 $f8, ($t0) -/* AB1528 8003A388 8FA90118 */ lw $t1, 0x118($sp) -/* AB152C 8003A38C C7AA0104 */ lwc1 $f10, 0x104($sp) -/* AB1530 8003A390 E52A0000 */ swc1 $f10, ($t1) -/* AB1534 8003A394 8FA200E8 */ lw $v0, 0xe8($sp) -.L8003A398: -/* AB1538 8003A398 8FBF008C */ lw $ra, 0x8c($sp) -/* AB153C 8003A39C D7B40038 */ ldc1 $f20, 0x38($sp) -/* AB1540 8003A3A0 D7B60040 */ ldc1 $f22, 0x40($sp) -/* AB1544 8003A3A4 D7B80048 */ ldc1 $f24, 0x48($sp) -/* AB1548 8003A3A8 D7BA0050 */ ldc1 $f26, 0x50($sp) -/* AB154C 8003A3AC D7BC0058 */ ldc1 $f28, 0x58($sp) -/* AB1550 8003A3B0 D7BE0060 */ ldc1 $f30, 0x60($sp) -/* AB1554 8003A3B4 8FB00068 */ lw $s0, 0x68($sp) -/* AB1558 8003A3B8 8FB1006C */ lw $s1, 0x6c($sp) -/* AB155C 8003A3BC 8FB20070 */ lw $s2, 0x70($sp) -/* AB1560 8003A3C0 8FB30074 */ lw $s3, 0x74($sp) -/* AB1564 8003A3C4 8FB40078 */ lw $s4, 0x78($sp) -/* AB1568 8003A3C8 8FB5007C */ lw $s5, 0x7c($sp) -/* AB156C 8003A3CC 8FB60080 */ lw $s6, 0x80($sp) -/* AB1570 8003A3D0 8FB70084 */ lw $s7, 0x84($sp) -/* AB1574 8003A3D4 8FBE0088 */ lw $fp, 0x88($sp) -/* AB1578 8003A3D8 03E00008 */ jr $ra -/* AB157C 8003A3DC 27BD0108 */ addiu $sp, $sp, 0x108 - diff --git a/src/code/z_bgcheck.c b/src/code/z_bgcheck.c index 1880878ebb..c4c54874d5 100644 --- a/src/code/z_bgcheck.c +++ b/src/code/z_bgcheck.c @@ -637,39 +637,33 @@ s32 BgCheck_ComputeWallDisplacement(CollisionContext* colCtx, CollisionPoly* pol * `outX` `outZ` return the displaced x,z coordinates, * `outPoly` returns the pointer to the nearest poly collided with, or NULL */ -s32 BgCheck_SphVsStaticWall(StaticLookup* lookup, CollisionContext* colCtx, u16 xpFlags, f32* outX, f32* outZ, - Vec3f* pos, f32 radius, CollisionPoly** outPoly); -#ifdef NON_MATCHING -// regalloc issues s32 BgCheck_SphVsStaticWall(StaticLookup* lookup, CollisionContext* colCtx, u16 xpFlags, f32* outX, f32* outZ, Vec3f* pos, f32 radius, CollisionPoly** outPoly) { - // f32 sp104; - Vec3f resultPos; // spFC + Vec3f resultPos; f32 temp_f2; f32 temp_f2_2; - f32 planeDist; // f30 - f32 intersect; // spEC - s32 result; // spE8 - CollisionPoly* curPoly; // s0 - CollisionPoly* polyList; // spE0 - SSNode* curNode; // s1 - // f32 temp_f0; // pad - f32 invNormalXZ; // sp9C //f14 - f32 temp_f0_3; // f0 - f32 xTemp; // f0 + f32 planeDist; + f32 intersect; + s32 result; + CollisionPoly* curPoly; + CollisionPoly* polyList; + SSNode* curNode; + f32 invNormalXZ; + f32 zTemp; + f32 xTemp; s32 polyId; - f32 normalXZ; // f20 - f32 nx; // f22 - f32 ny; // f26 - f32 nz; // f24 - f32 temp_f16; // spB8 - Vec3s* vtxList; // s2 - u16 pad; // temp_v0; + f32 normalXZ; + f32 nx; + f32 ny; + f32 nz; + f32 temp_f16; + Vec3s* vtxList; + u16 pad; - f32 zMin; // f2 - f32 zMax; // f12 - f32 xMin; // f2 - f32 xMax; // f12 + f32 zMin; + f32 zMax; + f32 xMin; + f32 xMax; result = false; if (lookup->wall.head == SS_NULL) { @@ -716,19 +710,20 @@ s32 BgCheck_SphVsStaticWall(StaticLookup* lookup, CollisionContext* colCtx, u16 } // compute curPoly zMin/zMax - zMin = zMax = vtxList[COLPOLY_VTX_INDEX(curPoly->flags_vIA)].z; - temp_f0_3 = vtxList[COLPOLY_VTX_INDEX(curPoly->flags_vIB)].z; + zTemp = vtxList[COLPOLY_VTX_INDEX(curPoly->flags_vIA)].z; + zMax = zMin = zTemp; + zTemp = vtxList[COLPOLY_VTX_INDEX(curPoly->flags_vIB)].z; - if (temp_f0_3 < zMin) { - zMin = temp_f0_3; - } else if (zMax < temp_f0_3) { - zMax = temp_f0_3; + if (zTemp < zMin) { + zMin = zTemp; + } else if (zMax < zTemp) { + zMax = zTemp; } - temp_f0_3 = vtxList[curPoly->vIC].z; - if (temp_f0_3 < zMin) { - zMin = temp_f0_3; - } else if (temp_f0_3 > zMax) { - zMax = temp_f0_3; + zTemp = vtxList[curPoly->vIC].z; + if (zTemp < zMin) { + zMin = zTemp; + } else if (zTemp > zMax) { + zMax = zTemp; } zMin -= radius; @@ -743,9 +738,8 @@ s32 BgCheck_SphVsStaticWall(StaticLookup* lookup, CollisionContext* colCtx, u16 } } if (CollisionPoly_CheckZIntersectApprox(curPoly, vtxList, resultPos.x, pos->y, &intersect)) { - temp_f2 = intersect - resultPos.z; - if (fabsf(temp_f2) <= radius / temp_f16) { - if (temp_f2 * nz <= 4.0f) { + if (fabsf(intersect - resultPos.z) <= radius / temp_f16) { + if ((intersect - resultPos.z) * nz <= 4.0f) { BgCheck_ComputeWallDisplacement(colCtx, curPoly, &resultPos.x, &resultPos.z, nx, ny, nz, invNormalXZ, planeDist, radius, outPoly); result = true; @@ -796,19 +790,20 @@ s32 BgCheck_SphVsStaticWall(StaticLookup* lookup, CollisionContext* colCtx, u16 } // compute curPoly xMin/xMax - xMin = xMax = vtxList[COLPOLY_VTX_INDEX(curPoly->flags_vIA)].x; - temp_f0_3 = vtxList[COLPOLY_VTX_INDEX(curPoly->flags_vIB)].x; + xTemp = vtxList[COLPOLY_VTX_INDEX(curPoly->flags_vIA)].x; + xMax = xMin = xTemp; + xTemp = vtxList[COLPOLY_VTX_INDEX(curPoly->flags_vIB)].x; - if (temp_f0_3 < xMin) { - xMin = temp_f0_3; - } else if (xMax < temp_f0_3) { - xMax = temp_f0_3; + if (xTemp < xMin) { + xMin = xTemp; + } else if (xMax < xTemp) { + xMax = xTemp; } - temp_f0_3 = vtxList[curPoly->vIC].x; - if (temp_f0_3 < xMin) { - xMin = temp_f0_3; - } else if (xMax < temp_f0_3) { - xMax = temp_f0_3; + xTemp = vtxList[curPoly->vIC].x; + if (xTemp < xMin) { + xMin = xTemp; + } else if (xMax < xTemp) { + xMax = xTemp; } xMin -= radius; @@ -823,9 +818,8 @@ s32 BgCheck_SphVsStaticWall(StaticLookup* lookup, CollisionContext* colCtx, u16 } } if (CollisionPoly_CheckXIntersectApprox(curPoly, vtxList, pos->y, resultPos.z, &intersect)) { - temp_f2 = intersect - resultPos.x; - if (fabsf(temp_f2) <= radius / temp_f16) { - if (temp_f2 * nx <= 4.0f) { + if (fabsf(intersect - resultPos.x) <= radius / temp_f16) { + if ((intersect - resultPos.x) * nx <= 4.0f) { BgCheck_ComputeWallDisplacement(colCtx, curPoly, &resultPos.x, &resultPos.z, nx, ny, nz, invNormalXZ, planeDist, radius, outPoly); result = true; @@ -844,9 +838,6 @@ s32 BgCheck_SphVsStaticWall(StaticLookup* lookup, CollisionContext* colCtx, u16 *outZ = resultPos.z; return result; } -#else -#pragma GLOBAL_ASM("asm/non_matchings/code/z_bgcheck/BgCheck_SphVsStaticWall.s") -#endif /** * Tests for collision with a static poly ceiling @@ -3171,36 +3162,31 @@ f32 BgCheck_RaycastFloorDyna(DynaRaycast* dynaRaycast) { * `outPoly` returns the pointer to the nearest poly collided with, or NULL * `outBgId` returns `bgId` if the poly SurfaceType's wall damage flag is not set, else ? */ -s32 BgCheck_SphVsDynaWallInBgActor(CollisionContext* colCtx, u16 xpFlags, DynaCollisionContext* dyna, SSList* ssList, - f32* outX, f32* outZ, CollisionPoly** outPoly, s32* outBgId, Vec3f* pos, f32 radius, - s32 bgId); -#ifdef NON_MATCHING -// regalloc s32 BgCheck_SphVsDynaWallInBgActor(CollisionContext* colCtx, u16 xpFlags, DynaCollisionContext* dyna, SSList* ssList, f32* outX, f32* outZ, CollisionPoly** outPoly, s32* outBgId, Vec3f* pos, f32 radius, s32 bgId) { f32 temp; - f32 intersect; // spD0 - s32 result = false; // spCC + f32 intersect; + s32 result = false; CollisionPoly* poly; - SSNode* curNode; // curNode s1 - f32 nx; // spC0 - f32 ny; // spBC - f32 nz; // spB8 - Vec3f resultPos; // spAC; + SSNode* curNode; + f32 nx; + f32 ny; + f32 nz; + Vec3f resultPos; s16 polyId; - f32 zTemp; // f0 - f32 xTemp; // f0 - f32 normalXZ; // f20 - f32 invNormalXZ; // sp70 //f16 - f32 planeDist; // f24 - f32 temp_f18; // sp90 - f32 zIntersectDist; // f2 - f32 xIntersectDist; // f2 - f32 zMin; // f2 - f32 zMax; // f12 - f32 xMin; // f2 - f32 xMax; // f12 + f32 zTemp; + f32 xTemp; + f32 normalXZ; + f32 invNormalXZ; + f32 planeDist; + f32 temp_f18; + f32 zIntersectDist; + f32 xIntersectDist; + f32 zMin; + f32 zMax; + f32 xMin; + f32 xMax; if (ssList->head == SS_NULL) { return result; @@ -3234,13 +3220,13 @@ s32 BgCheck_SphVsDynaWallInBgActor(CollisionContext* colCtx, u16 xpFlags, DynaCo continue; } } - // ab75e8 // compute poly zMin/zMax - zMin = zMax = dyna->vtxList[COLPOLY_VTX_INDEX(poly->flags_vIA)].z; // 7610 + zTemp = dyna->vtxList[COLPOLY_VTX_INDEX(poly->flags_vIA)].z; + zMax = zMin = zTemp; zTemp = dyna->vtxList[COLPOLY_VTX_INDEX(poly->flags_vIB)].z; - if (zTemp < zMin) { // 7630 + if (zTemp < zMin) { zMin = zTemp; } else if (zTemp > zMax) { zMax = zTemp; @@ -3249,7 +3235,7 @@ s32 BgCheck_SphVsDynaWallInBgActor(CollisionContext* colCtx, u16 xpFlags, DynaCo zTemp = dyna->vtxList[poly->vIC].z; if (zTemp < zMin) { zMin = zTemp; - } else if (zMax < zTemp) { // 76A0 + } else if (zMax < zTemp) { zMax = zTemp; } @@ -3264,10 +3250,8 @@ s32 BgCheck_SphVsDynaWallInBgActor(CollisionContext* colCtx, u16 xpFlags, DynaCo } } if (CollisionPoly_CheckZIntersectApprox(poly, dyna->vtxList, resultPos.x, pos->y, &intersect)) { - // zIntersectDist = ; if (fabsf(intersect - resultPos.z) <= radius / temp_f18) { if ((intersect - resultPos.z) * nz <= 4.0f) { - // ab779c if (BgCheck_ComputeWallDisplacement(colCtx, poly, &resultPos.x, &resultPos.z, nx, ny, nz, invNormalXZ, planeDist, radius, outPoly)) { *outBgId = bgId; @@ -3276,14 +3260,12 @@ s32 BgCheck_SphVsDynaWallInBgActor(CollisionContext* colCtx, u16 xpFlags, DynaCo } } } - // ab77b4 if (curNode->next == SS_NULL) { break; } curNode = &dyna->polyNodes.tbl[curNode->next]; } - // ab77d0 curNode = &dyna->polyNodes.tbl[ssList->head]; while (true) { polyId = curNode->polyId; @@ -3314,7 +3296,8 @@ s32 BgCheck_SphVsDynaWallInBgActor(CollisionContext* colCtx, u16 xpFlags, DynaCo } // compute poly xMin/xMax - xMin = xMax = dyna->vtxList[COLPOLY_VTX_INDEX(poly->flags_vIA)].x; + xTemp = dyna->vtxList[COLPOLY_VTX_INDEX(poly->flags_vIA)].x; + xMax = xMin = xTemp; xTemp = dyna->vtxList[COLPOLY_VTX_INDEX(poly->flags_vIB)].x; if (xTemp < xMin) { @@ -3339,12 +3322,11 @@ s32 BgCheck_SphVsDynaWallInBgActor(CollisionContext* colCtx, u16 xpFlags, DynaCo continue; } } - // 7a2c + if (CollisionPoly_CheckXIntersectApprox(poly, dyna->vtxList, pos->y, resultPos.z, &intersect)) { xIntersectDist = intersect - resultPos.x; if (fabsf(xIntersectDist) <= radius / temp_f18) { if (xIntersectDist * nx <= 4.0f) { - // ab7ac8 if (BgCheck_ComputeWallDisplacement(colCtx, poly, &resultPos.x, &resultPos.z, nx, ny, nz, invNormalXZ, planeDist, radius, outPoly)) { *outBgId = bgId; @@ -3362,9 +3344,6 @@ s32 BgCheck_SphVsDynaWallInBgActor(CollisionContext* colCtx, u16 xpFlags, DynaCo *outZ = resultPos.z; return result; } -#else -#pragma GLOBAL_ASM("asm/non_matchings/code/z_bgcheck/BgCheck_SphVsDynaWallInBgActor.s") -#endif /** * Performs collision detection on all dyna poly walls using sphere `pos`, `radius` @@ -3374,32 +3353,24 @@ s32 BgCheck_SphVsDynaWallInBgActor(CollisionContext* colCtx, u16 xpFlags, DynaCo * `outBgId` returns the index of the BgActor that owns `outPoly` * If `actor` is not NULL, an BgActor bound to that actor will be ignored */ -s32 BgCheck_SphVsDynaWall(CollisionContext* colCtx, u16 xpFlags, f32* outX, f32* outZ, Vec3f* pos, f32 radius, - CollisionPoly** outPoly, s32* outBgId, Actor* actor); -#ifdef NON_MATCHING -// Codegen Issues s32 BgCheck_SphVsDynaWall(CollisionContext* colCtx, u16 xpFlags, f32* outX, f32* outZ, Vec3f* pos, f32 radius, CollisionPoly** outPoly, s32* outBgId, Actor* actor) { - Vec3f resultPos; // sp9C - s32 result; // sp90; - f32 r; // f0 - f32 dz; // f12 - f32 dx; // f2 - // s16 temp_s2; - BgActor* bgActor; // s0 - // Sphere16* temp_s1; - s32 i; // s4 - BgActor* list; + Vec3f resultPos; + s32 result; + f32 r; + f32 dz; + f32 dx; + BgActor* bgActor; + s32 i; result = false; resultPos = *pos; - list = colCtx->dyna.bgActors; for (i = 0; i < BG_ACTOR_MAX; i++) { if (!(colCtx->dyna.bgActorFlags[i] & 1)) { continue; } - if (list[i].actor == actor) { + if ((colCtx->dyna.bgActors + i)->actor == actor) { continue; } bgActor = &colCtx->dyna.bgActors[i]; @@ -3419,7 +3390,7 @@ s32 BgCheck_SphVsDynaWall(CollisionContext* colCtx, u16 xpFlags, f32* outX, f32* continue; } bgActor->boundingSphere.radius -= (s16)radius; - if (BgCheck_SphVsDynaWallInBgActor(colCtx, xpFlags, &colCtx->dyna, &colCtx->dyna.bgActors[i].dynaLookup.wall, + if (BgCheck_SphVsDynaWallInBgActor(colCtx, xpFlags, &colCtx->dyna, &(colCtx->dyna.bgActors + i)->dynaLookup.wall, outX, outZ, outPoly, outBgId, &resultPos, radius, i)) { resultPos.x = *outX; resultPos.z = *outZ; @@ -3428,9 +3399,6 @@ s32 BgCheck_SphVsDynaWall(CollisionContext* colCtx, u16 xpFlags, f32* outX, f32* } return result; } -#else -#pragma GLOBAL_ASM("asm/non_matchings/code/z_bgcheck/BgCheck_SphVsDynaWall.s") -#endif /** * Tests for collision with a dyna poly ceiling, starting at `ssList`