1
0
Fork 0
mirror of https://github.com/zeldaret/oot.git synced 2025-05-11 19:43:44 +00:00

bgcheck OK (#613)

* bgcheck OK

* Remove comments
This commit is contained in:
Synray 2021-01-08 19:14:43 -08:00 committed by GitHub
parent 1ff2f0f849
commit 7a171488d2
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 84 additions and 1443 deletions

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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`