3 matches in code_80057C60 (#480)

Signed-off-by: Taggerung <tyler.taggerung@email.com>
This commit is contained in:
Tyler McGavran
2023-11-03 00:09:47 -04:00
committed by GitHub
parent a1f432e9dc
commit 0f3bc7ca1a
5 changed files with 156 additions and 1685 deletions
@@ -1,185 +0,0 @@
.section .late_rodata
glabel D_800EE7D0
.float 0.1
.word 0x00000000
glabel D_800EE7D8
.double -3.8
.section .text
glabel func_8006A50C
/* 06B10C 8006A50C 27BDFFB8 */ addiu $sp, $sp, -0x48
/* 06B110 8006A510 AFB00024 */ sw $s0, 0x24($sp)
/* 06B114 8006A514 44856000 */ mtc1 $a1, $f12
/* 06B118 8006A518 00078600 */ sll $s0, $a3, 0x18
/* 06B11C 8006A51C 83A5005B */ lb $a1, 0x5b($sp)
/* 06B120 8006A520 00107603 */ sra $t6, $s0, 0x18
/* 06B124 8006A524 000E7880 */ sll $t7, $t6, 2
/* 06B128 8006A528 01EE7823 */ subu $t7, $t7, $t6
/* 06B12C 8006A52C 000F7840 */ sll $t7, $t7, 1
/* 06B130 8006A530 3C198019 */ lui $t9, %hi(gPlayerBalloonStatus) # $t9, 0x8019
/* 06B134 8006A534 00051040 */ sll $v0, $a1, 1
/* 06B138 8006A538 01E2C021 */ addu $t8, $t7, $v0
/* 06B13C 8006A53C 2739D5F0 */ addiu $t9, %lo(gPlayerBalloonStatus) # addiu $t9, $t9, -0x2a10
/* 06B140 8006A540 03194021 */ addu $t0, $t8, $t9
/* 06B144 8006A544 A5000000 */ sh $zero, ($t0)
/* 06B148 8006A548 000E4880 */ sll $t1, $t6, 2
/* 06B14C 8006A54C 3C01800F */ lui $at, %hi(D_800EE7D0) # $at, 0x800f
/* 06B150 8006A550 C424E7D0 */ lwc1 $f4, %lo(D_800EE7D0)($at)
/* 06B154 8006A554 012E4823 */ subu $t1, $t1, $t6
/* 06B158 8006A558 00094880 */ sll $t1, $t1, 2
/* 06B15C 8006A55C 00051880 */ sll $v1, $a1, 2
/* 06B160 8006A560 01235021 */ addu $t2, $t1, $v1
/* 06B164 8006A564 3C018019 */ lui $at, %hi(D_8018D650)
/* 06B168 8006A568 000E5880 */ sll $t3, $t6, 2
/* 06B16C 8006A56C 002A0821 */ addu $at, $at, $t2
/* 06B170 8006A570 016E5823 */ subu $t3, $t3, $t6
/* 06B174 8006A574 44800000 */ mtc1 $zero, $f0
/* 06B178 8006A578 000B5880 */ sll $t3, $t3, 2
/* 06B17C 8006A57C E424D650 */ swc1 $f4, %lo(D_8018D650)($at)
/* 06B180 8006A580 3C018019 */ lui $at, %hi(D_8018D6B0)
/* 06B184 8006A584 01636021 */ addu $t4, $t3, $v1
/* 06B188 8006A588 000E6880 */ sll $t5, $t6, 2
/* 06B18C 8006A58C 01C08025 */ move $s0, $t6
/* 06B190 8006A590 002C0821 */ addu $at, $at, $t4
/* 06B194 8006A594 01AE6823 */ subu $t5, $t5, $t6
/* 06B198 8006A598 000D6880 */ sll $t5, $t5, 2
/* 06B19C 8006A59C E420D6B0 */ swc1 $f0, %lo(D_8018D6B0)($at)
/* 06B1A0 8006A5A0 3C018019 */ lui $at, %hi(D_8018D710)
/* 06B1A4 8006A5A4 01A37021 */ addu $t6, $t5, $v1
/* 06B1A8 8006A5A8 00107880 */ sll $t7, $s0, 2
/* 06B1AC 8006A5AC 002E0821 */ addu $at, $at, $t6
/* 06B1B0 8006A5B0 01F07823 */ subu $t7, $t7, $s0
/* 06B1B4 8006A5B4 000F7840 */ sll $t7, $t7, 1
/* 06B1B8 8006A5B8 E420D710 */ swc1 $f0, %lo(D_8018D710)($at)
/* 06B1BC 8006A5BC 3C018019 */ lui $at, %hi(D_8018D770)
/* 06B1C0 8006A5C0 01E2C021 */ addu $t8, $t7, $v0
/* 06B1C4 8006A5C4 0010C880 */ sll $t9, $s0, 2
/* 06B1C8 8006A5C8 00380821 */ addu $at, $at, $t8
/* 06B1CC 8006A5CC 0330C823 */ subu $t9, $t9, $s0
/* 06B1D0 8006A5D0 A420D770 */ sh $zero, %lo(D_8018D770)($at)
/* 06B1D4 8006A5D4 0019C840 */ sll $t9, $t9, 1
/* 06B1D8 8006A5D8 03224821 */ addu $t1, $t9, $v0
/* 06B1DC 8006A5DC 3C018019 */ lui $at, %hi(D_8018D7A0)
/* 06B1E0 8006A5E0 00105080 */ sll $t2, $s0, 2
/* 06B1E4 8006A5E4 00290821 */ addu $at, $at, $t1
/* 06B1E8 8006A5E8 01505023 */ subu $t2, $t2, $s0
/* 06B1EC 8006A5EC A420D7A0 */ sh $zero, %lo(D_8018D7A0)($at)
/* 06B1F0 8006A5F0 000A5040 */ sll $t2, $t2, 1
/* 06B1F4 8006A5F4 01425821 */ addu $t3, $t2, $v0
/* 06B1F8 8006A5F8 3C018019 */ lui $at, %hi(D_8018D7D0)
/* 06B1FC 8006A5FC 00106880 */ sll $t5, $s0, 2
/* 06B200 8006A600 002B0821 */ addu $at, $at, $t3
/* 06B204 8006A604 01B06823 */ subu $t5, $t5, $s0
/* 06B208 8006A608 A420D7D0 */ sh $zero, %lo(D_8018D7D0)($at)
/* 06B20C 8006A60C 000D6840 */ sll $t5, $t5, 1
/* 06B210 8006A610 01A27021 */ addu $t6, $t5, $v0
/* 06B214 8006A614 3C018019 */ lui $at, %hi(D_8018D800)
/* 06B218 8006A618 0010C080 */ sll $t8, $s0, 2
/* 06B21C 8006A61C 002E0821 */ addu $at, $at, $t6
/* 06B220 8006A620 240C0005 */ li $t4, 5
/* 06B224 8006A624 0310C023 */ subu $t8, $t8, $s0
/* 06B228 8006A628 A42CD800 */ sh $t4, %lo(D_8018D800)($at)
/* 06B22C 8006A62C 0018C040 */ sll $t8, $t8, 1
/* 06B230 8006A630 0302C821 */ addu $t9, $t8, $v0
/* 06B234 8006A634 3C018019 */ lui $at, %hi(D_8018D830)
/* 06B238 8006A638 00390821 */ addu $at, $at, $t9
/* 06B23C 8006A63C 240F0001 */ li $t7, 1
/* 06B240 8006A640 AFBF002C */ sw $ra, 0x2c($sp)
/* 06B244 8006A644 AFB10028 */ sw $s1, 0x28($sp)
/* 06B248 8006A648 AFA70054 */ sw $a3, 0x54($sp)
/* 06B24C 8006A64C A42FD830 */ sh $t7, %lo(D_8018D830)($at)
/* 06B250 8006A650 8489002E */ lh $t1, 0x2e($a0)
/* 06B254 8006A654 00106080 */ sll $t4, $s0, 2
/* 06B258 8006A658 848B00C0 */ lh $t3, 0xc0($a0)
/* 06B25C 8006A65C 01906023 */ subu $t4, $t4, $s0
/* 06B260 8006A660 000C6040 */ sll $t4, $t4, 1
/* 06B264 8006A664 01827021 */ addu $t6, $t4, $v0
/* 06B268 8006A668 3C018019 */ lui $at, %hi(D_8018D620)
/* 06B26C 8006A66C 00095023 */ negu $t2, $t1
/* 06B270 8006A670 002E0821 */ addu $at, $at, $t6
/* 06B274 8006A674 014B6823 */ subu $t5, $t2, $t3
/* 06B278 8006A678 A42DD620 */ sh $t5, %lo(D_8018D620)($at)
/* 06B27C 8006A67C 3C014080 */ li $at, 0x40800000 # 4.000000
/* 06B280 8006A680 44867000 */ mtc1 $a2, $f14
/* 06B284 8006A684 44813000 */ mtc1 $at, $f6
/* 06B288 8006A688 3C01800F */ lui $at, %hi(D_800EE7D8)
/* 06B28C 8006A68C D42AE7D8 */ ldc1 $f10, %lo(D_800EE7D8)($at)
/* 06B290 8006A690 46007221 */ cvt.d.s $f8, $f14
/* 06B294 8006A694 00808825 */ move $s1, $a0
/* 06B298 8006A698 462A4400 */ add.d $f16, $f8, $f10
/* 06B29C 8006A69C E7A60010 */ swc1 $f6, 0x10($sp)
/* 06B2A0 8006A6A0 44076000 */ mfc1 $a3, $f12
/* 06B2A4 8006A6A4 27A40044 */ addiu $a0, $sp, 0x44
/* 06B2A8 8006A6A8 462084A0 */ cvt.s.d $f18, $f16
/* 06B2AC 8006A6AC 27A6003C */ addiu $a2, $sp, 0x3c
/* 06B2B0 8006A6B0 27A50040 */ addiu $a1, $sp, 0x40
/* 06B2B4 8006A6B4 E7B20014 */ swc1 $f18, 0x14($sp)
/* 06B2B8 8006A6B8 8638002E */ lh $t8, 0x2e($s1)
/* 06B2BC 8006A6BC AFA80034 */ sw $t0, 0x34($sp)
/* 06B2C0 8006A6C0 AFA30030 */ sw $v1, 0x30($sp)
/* 06B2C4 8006A6C4 00187823 */ negu $t7, $t8
/* 06B2C8 8006A6C8 AFAF0018 */ sw $t7, 0x18($sp)
/* 06B2CC 8006A6CC AFA20038 */ sw $v0, 0x38($sp)
/* 06B2D0 8006A6D0 0C018AC6 */ jal func_80062B18
/* 06B2D4 8006A6D4 AFA0001C */ sw $zero, 0x1c($sp)
/* 06B2D8 8006A6D8 C6240014 */ lwc1 $f4, 0x14($s1)
/* 06B2DC 8006A6DC C7A60044 */ lwc1 $f6, 0x44($sp)
/* 06B2E0 8006A6E0 8FA30030 */ lw $v1, 0x30($sp)
/* 06B2E4 8006A6E4 0010C880 */ sll $t9, $s0, 2
/* 06B2E8 8006A6E8 46062200 */ add.s $f8, $f4, $f6
/* 06B2EC 8006A6EC 0330C823 */ subu $t9, $t9, $s0
/* 06B2F0 8006A6F0 0019C880 */ sll $t9, $t9, 2
/* 06B2F4 8006A6F4 3C018019 */ lui $at, %hi(D_8018D4D0)
/* 06B2F8 8006A6F8 03234821 */ addu $t1, $t9, $v1
/* 06B2FC 8006A6FC 00290821 */ addu $at, $at, $t1
/* 06B300 8006A700 E428D4D0 */ swc1 $f8, %lo(D_8018D4D0)($at)
/* 06B304 8006A704 C62A001C */ lwc1 $f10, 0x1c($s1)
/* 06B308 8006A708 C7B0003C */ lwc1 $f16, 0x3c($sp)
/* 06B30C 8006A70C 00105080 */ sll $t2, $s0, 2
/* 06B310 8006A710 01505023 */ subu $t2, $t2, $s0
/* 06B314 8006A714 46105480 */ add.s $f18, $f10, $f16
/* 06B318 8006A718 000A5080 */ sll $t2, $t2, 2
/* 06B31C 8006A71C 3C018019 */ lui $at, %hi(D_8018D590)
/* 06B320 8006A720 01435821 */ addu $t3, $t2, $v1
/* 06B324 8006A724 002B0821 */ addu $at, $at, $t3
/* 06B328 8006A728 E432D590 */ swc1 $f18, %lo(D_8018D590)($at)
/* 06B32C 8006A72C C6260070 */ lwc1 $f6, 0x70($s1)
/* 06B330 8006A730 C6240018 */ lwc1 $f4, 0x18($s1)
/* 06B334 8006A734 C7AA0040 */ lwc1 $f10, 0x40($sp)
/* 06B338 8006A738 00106080 */ sll $t4, $s0, 2
/* 06B33C 8006A73C 46062201 */ sub.s $f8, $f4, $f6
/* 06B340 8006A740 01906023 */ subu $t4, $t4, $s0
/* 06B344 8006A744 000C6080 */ sll $t4, $t4, 2
/* 06B348 8006A748 8FA80034 */ lw $t0, 0x34($sp)
/* 06B34C 8006A74C 460A4400 */ add.s $f16, $f8, $f10
/* 06B350 8006A750 3C018019 */ lui $at, %hi(D_8018D530)
/* 06B354 8006A754 01836821 */ addu $t5, $t4, $v1
/* 06B358 8006A758 002D0821 */ addu $at, $at, $t5
/* 06B35C 8006A75C E430D530 */ swc1 $f16, %lo(D_8018D530)($at)
/* 06B360 8006A760 950E0000 */ lhu $t6, ($t0)
/* 06B364 8006A764 8FA20038 */ lw $v0, 0x38($sp)
/* 06B368 8006A768 0010C880 */ sll $t9, $s0, 2
/* 06B36C 8006A76C 0330C823 */ subu $t9, $t9, $s0
/* 06B370 8006A770 87AF005E */ lh $t7, 0x5e($sp)
/* 06B374 8006A774 0019C840 */ sll $t9, $t9, 1
/* 06B378 8006A778 35D80001 */ ori $t8, $t6, 1
/* 06B37C 8006A77C 3C018019 */ lui $at, %hi(D_8018D860)
/* 06B380 8006A780 00105080 */ sll $t2, $s0, 2
/* 06B384 8006A784 A5180000 */ sh $t8, ($t0)
/* 06B388 8006A788 03224821 */ addu $t1, $t9, $v0
/* 06B38C 8006A78C 00290821 */ addu $at, $at, $t1
/* 06B390 8006A790 01505023 */ subu $t2, $t2, $s0
/* 06B394 8006A794 8FBF002C */ lw $ra, 0x2c($sp)
/* 06B398 8006A798 000A5040 */ sll $t2, $t2, 1
/* 06B39C 8006A79C A42FD860 */ sh $t7, %lo(D_8018D860)($at)
/* 06B3A0 8006A7A0 3C018019 */ lui $at, %hi(D_8018D890)
/* 06B3A4 8006A7A4 01425821 */ addu $t3, $t2, $v0
/* 06B3A8 8006A7A8 002B0821 */ addu $at, $at, $t3
/* 06B3AC 8006A7AC 8FB00024 */ lw $s0, 0x24($sp)
/* 06B3B0 8006A7B0 8FB10028 */ lw $s1, 0x28($sp)
/* 06B3B4 8006A7B4 A420D890 */ sh $zero, %lo(D_8018D890)($at)
/* 06B3B8 8006A7B8 03E00008 */ jr $ra
/* 06B3BC 8006A7BC 27BD0048 */ addiu $sp, $sp, 0x48
@@ -1,586 +0,0 @@
.section .late_rodata
glabel D_800EE7E0
.double 0.0006
glabel D_800EE7E8
.double -0.003
glabel D_800EE7F0
.double 0.05
glabel D_800EE7F8
.float 0.05
.word 0x00000000
glabel D_800EE800
.double -0.05
glabel D_800EE808
.float -0.05
.word 0x00000000
glabel D_800EE810
.double 0.06
glabel D_800EE818
.float 0.06
.word 0x00000000
glabel D_800EE820
.double -0.06
glabel D_800EE828
.float -0.06
.word 0x00000000
glabel D_800EE830
.double -3.2
glabel D_800EE838
.double 0.2
.section .data
glabel D_800E4914
.float 9.0, 10.0, 9.0, 8.0
.float 10.0, 9.5, 9.5, 11.0
.section .text
glabel func_8006A7C0
/* 06B3C0 8006A7C0 27BDFF60 */ addiu $sp, $sp, -0xa0
/* 06B3C4 8006A7C4 3C18800E */ lui $t8, %hi(D_800E4914) # $t8, 0x800e
/* 06B3C8 8006A7C8 AFBF002C */ sw $ra, 0x2c($sp)
/* 06B3CC 8006A7CC AFB10028 */ sw $s1, 0x28($sp)
/* 06B3D0 8006A7D0 AFB00024 */ sw $s0, 0x24($sp)
/* 06B3D4 8006A7D4 AFA500A4 */ sw $a1, 0xa4($sp)
/* 06B3D8 8006A7D8 AFA600A8 */ sw $a2, 0xa8($sp)
/* 06B3DC 8006A7DC AFA700AC */ sw $a3, 0xac($sp)
/* 06B3E0 8006A7E0 27184914 */ addiu $t8, %lo(D_800E4914) # addiu $t8, $t8, 0x4914
/* 06B3E4 8006A7E4 8F010000 */ lw $at, ($t8)
/* 06B3E8 8006A7E8 8F0C0004 */ lw $t4, 4($t8)
/* 06B3EC 8006A7EC 27AF0080 */ addiu $t7, $sp, 0x80
/* 06B3F0 8006A7F0 ADE10000 */ sw $at, ($t7)
/* 06B3F4 8006A7F4 8F010008 */ lw $at, 8($t8)
/* 06B3F8 8006A7F8 ADEC0004 */ sw $t4, 4($t7)
/* 06B3FC 8006A7FC 8F0C000C */ lw $t4, 0xc($t8)
/* 06B400 8006A800 ADE10008 */ sw $at, 8($t7)
/* 06B404 8006A804 8F010010 */ lw $at, 0x10($t8)
/* 06B408 8006A808 ADEC000C */ sw $t4, 0xc($t7)
/* 06B40C 8006A80C 8F0C0014 */ lw $t4, 0x14($t8)
/* 06B410 8006A810 ADE10010 */ sw $at, 0x10($t7)
/* 06B414 8006A814 8F010018 */ lw $at, 0x18($t8)
/* 06B418 8006A818 ADEC0014 */ sw $t4, 0x14($t7)
/* 06B41C 8006A81C 8F0C001C */ lw $t4, 0x1c($t8)
/* 06B420 8006A820 ADE10018 */ sw $at, 0x18($t7)
/* 06B424 8006A824 3C014190 */ li $at, 0x41900000 # 18.000000
/* 06B428 8006A828 ADEC001C */ sw $t4, 0x1c($t7)
/* 06B42C 8006A82C C48C0094 */ lwc1 $f12, 0x94($a0)
/* 06B430 8006A830 44812000 */ mtc1 $at, $f4
/* 06B434 8006A834 3C014358 */ li $at, 0x43580000 # 216.000000
/* 06B438 8006A838 44815000 */ mtc1 $at, $f10
/* 06B43C 8006A83C 46046183 */ div.s $f6, $f12, $f4
/* 06B440 8006A840 3C014120 */ li $at, 0x41200000 # 10.000000
/* 06B444 8006A844 44819000 */ mtc1 $at, $f18
/* 06B448 8006A848 00078600 */ sll $s0, $a3, 0x18
/* 06B44C 8006A84C 00107603 */ sra $t6, $s0, 0x18
/* 06B450 8006A850 83AD00B3 */ lb $t5, 0xb3($sp)
/* 06B454 8006A854 01C08025 */ move $s0, $t6
/* 06B458 8006A858 000E7080 */ sll $t6, $t6, 2
/* 06B45C 8006A85C 01D07023 */ subu $t6, $t6, $s0
/* 06B460 8006A860 000E7040 */ sll $t6, $t6, 1
/* 06B464 8006A864 3C198019 */ lui $t9, %hi(gPlayerBalloonStatus) # $t9, 0x8019
/* 06B468 8006A868 000D4040 */ sll $t0, $t5, 1
/* 06B46C 8006A86C 01C85821 */ addu $t3, $t6, $t0
/* 06B470 8006A870 2739D5F0 */ addiu $t9, %lo(gPlayerBalloonStatus) # addiu $t9, $t9, -0x2a10
/* 06B474 8006A874 01797821 */ addu $t7, $t3, $t9
/* 06B478 8006A878 AFAF0058 */ sw $t7, 0x58($sp)
/* 06B47C 8006A87C 24010002 */ li $at, 2
/* 06B480 8006A880 00107080 */ sll $t6, $s0, 2
/* 06B484 8006A884 00808825 */ move $s1, $a0
/* 06B488 8006A888 01D07023 */ subu $t6, $t6, $s0
/* 06B48C 8006A88C 000D4880 */ sll $t1, $t5, 2
/* 06B490 8006A890 46003207 */ neg.s $f8, $f6
/* 06B494 8006A894 460A4402 */ mul.s $f16, $f8, $f10
/* 06B498 8006A898 46128103 */ div.s $f4, $f16, $f18
/* 06B49C 8006A89C E7A4006C */ swc1 $f4, 0x6c($sp)
/* 06B4A0 8006A8A0 95F80000 */ lhu $t8, ($t7)
/* 06B4A4 8006A8A4 330C0002 */ andi $t4, $t8, 2
/* 06B4A8 8006A8A8 5181008E */ beql $t4, $at, .L8006AAE4
/* 06B4AC 8006A8AC 00105880 */ sll $t3, $s0, 2
/* 06B4B0 8006A8B0 46006187 */ neg.s $f6, $f12
/* 06B4B4 8006A8B4 3C01800F */ lui $at, %hi(D_800EE7E0)
/* 06B4B8 8006A8B8 D42AE7E0 */ ldc1 $f10, %lo(D_800EE7E0)($at)
/* 06B4BC 8006A8BC 46003221 */ cvt.d.s $f8, $f6
/* 06B4C0 8006A8C0 3C01800F */ lui $at, %hi(D_800EE7E8)
/* 06B4C4 8006A8C4 462A4402 */ mul.d $f16, $f8, $f10
/* 06B4C8 8006A8C8 000E7080 */ sll $t6, $t6, 2
/* 06B4CC 8006A8CC 3C198019 */ lui $t9, %hi(D_8018D650) # $t9, 0x8019
/* 06B4D0 8006A8D0 D432E7E8 */ ldc1 $f18, %lo(D_800EE7E8)($at)
/* 06B4D4 8006A8D4 2739D650 */ addiu $t9, %lo(D_8018D650) # addiu $t9, $t9, -0x29b0
/* 06B4D8 8006A8D8 01C95821 */ addu $t3, $t6, $t1
/* 06B4DC 8006A8DC 01792821 */ addu $a1, $t3, $t9
/* 06B4E0 8006A8E0 C4A60000 */ lwc1 $f6, ($a1)
/* 06B4E4 8006A8E4 46309100 */ add.d $f4, $f18, $f16
/* 06B4E8 8006A8E8 3C01800F */ lui $at, %hi(D_800EE7F0)
/* 06B4EC 8006A8EC 00107880 */ sll $t7, $s0, 2
/* 06B4F0 8006A8F0 46003221 */ cvt.d.s $f8, $f6
/* 06B4F4 8006A8F4 00106880 */ sll $t5, $s0, 2
/* 06B4F8 8006A8F8 46244280 */ add.d $f10, $f8, $f4
/* 06B4FC 8006A8FC 01F07823 */ subu $t7, $t7, $s0
/* 06B500 8006A900 01B06823 */ subu $t5, $t5, $s0
/* 06B504 8006A904 000F7880 */ sll $t7, $t7, 2
/* 06B508 8006A908 462054A0 */ cvt.s.d $f18, $f10
/* 06B50C 8006A90C 3C0C8019 */ lui $t4, %hi(D_8018D6B0) # $t4, 0x8019
/* 06B510 8006A910 000D6880 */ sll $t5, $t5, 2
/* 06B514 8006A914 3C0B8019 */ lui $t3, %hi(D_8018D710) # $t3, 0x8019
/* 06B518 8006A918 E4B20000 */ swc1 $f18, ($a1)
/* 06B51C 8006A91C C4A20000 */ lwc1 $f2, ($a1)
/* 06B520 8006A920 D430E7F0 */ ldc1 $f16, %lo(D_800EE7F0)($at)
/* 06B524 8006A924 258CD6B0 */ addiu $t4, %lo(D_8018D6B0) # addiu $t4, $t4, -0x2950
/* 06B528 8006A928 46001021 */ cvt.d.s $f0, $f2
/* 06B52C 8006A92C 01E9C021 */ addu $t8, $t7, $t1
/* 06B530 8006A930 4620803E */ c.le.d $f16, $f0
/* 06B534 8006A934 256BD710 */ addiu $t3, %lo(D_8018D710) # addiu $t3, $t3, -0x28f0
/* 06B538 8006A938 01A97021 */ addu $t6, $t5, $t1
/* 06B53C 8006A93C 030C1821 */ addu $v1, $t8, $t4
/* 06B540 8006A940 45000006 */ bc1f .L8006A95C
/* 06B544 8006A944 01CB5021 */ addu $t2, $t6, $t3
/* 06B548 8006A948 3C01800F */ lui $at, %hi(D_800EE7F8) # $at, 0x800f
/* 06B54C 8006A94C C426E7F8 */ lwc1 $f6, %lo(D_800EE7F8)($at)
/* 06B550 8006A950 E4A60000 */ swc1 $f6, ($a1)
/* 06B554 8006A954 C4A20000 */ lwc1 $f2, ($a1)
/* 06B558 8006A958 46001021 */ cvt.d.s $f0, $f2
.L8006A95C:
/* 06B55C 8006A95C 3C01800F */ lui $at, %hi(D_800EE800)
/* 06B560 8006A960 D428E800 */ ldc1 $f8, %lo(D_800EE800)($at)
/* 06B564 8006A964 3C01800F */ lui $at, %hi(D_800EE808) # $at, 0x800f
/* 06B568 8006A968 2404000B */ li $a0, 11
/* 06B56C 8006A96C 4628003E */ c.le.d $f0, $f8
/* 06B570 8006A970 00000000 */ nop
/* 06B574 8006A974 45020005 */ bc1fl .L8006A98C
/* 06B578 8006A978 C46A0000 */ lwc1 $f10, ($v1)
/* 06B57C 8006A97C C424E808 */ lwc1 $f4, %lo(D_800EE808)($at)
/* 06B580 8006A980 E4A40000 */ swc1 $f4, ($a1)
/* 06B584 8006A984 C4A20000 */ lwc1 $f2, ($a1)
/* 06B588 8006A988 C46A0000 */ lwc1 $f10, ($v1)
.L8006A98C:
/* 06B58C 8006A98C 3C01800F */ lui $at, %hi(D_800EE810)
/* 06B590 8006A990 46025480 */ add.s $f18, $f10, $f2
/* 06B594 8006A994 E4720000 */ swc1 $f18, ($v1)
/* 06B598 8006A998 C46C0000 */ lwc1 $f12, ($v1)
/* 06B59C 8006A99C D430E810 */ ldc1 $f16, %lo(D_800EE810)($at)
/* 06B5A0 8006A9A0 3C01800F */ lui $at, %hi(D_800EE818) # $at, 0x800f
/* 06B5A4 8006A9A4 46006021 */ cvt.d.s $f0, $f12
/* 06B5A8 8006A9A8 4620803E */ c.le.d $f16, $f0
/* 06B5AC 8006A9AC 00000000 */ nop
/* 06B5B0 8006A9B0 45000005 */ bc1f .L8006A9C8
/* 06B5B4 8006A9B4 00000000 */ nop
/* 06B5B8 8006A9B8 C426E818 */ lwc1 $f6, %lo(D_800EE818)($at)
/* 06B5BC 8006A9BC E4660000 */ swc1 $f6, ($v1)
/* 06B5C0 8006A9C0 C46C0000 */ lwc1 $f12, ($v1)
/* 06B5C4 8006A9C4 46006021 */ cvt.d.s $f0, $f12
.L8006A9C8:
/* 06B5C8 8006A9C8 3C01800F */ lui $at, %hi(D_800EE820)
/* 06B5CC 8006A9CC D428E820 */ ldc1 $f8, %lo(D_800EE820)($at)
/* 06B5D0 8006A9D0 3C01800F */ lui $at, %hi(D_800EE828) # $at, 0x800f
/* 06B5D4 8006A9D4 4628003E */ c.le.d $f0, $f8
/* 06B5D8 8006A9D8 00000000 */ nop
/* 06B5DC 8006A9DC 45020005 */ bc1fl .L8006A9F4
/* 06B5E0 8006A9E0 C54A0000 */ lwc1 $f10, ($t2)
/* 06B5E4 8006A9E4 C424E828 */ lwc1 $f4, %lo(D_800EE828)($at)
/* 06B5E8 8006A9E8 E4640000 */ swc1 $f4, ($v1)
/* 06B5EC 8006A9EC C46C0000 */ lwc1 $f12, ($v1)
/* 06B5F0 8006A9F0 C54A0000 */ lwc1 $f10, ($t2)
.L8006A9F4:
/* 06B5F4 8006A9F4 44800000 */ mtc1 $zero, $f0
/* 06B5F8 8006A9F8 460C5480 */ add.s $f18, $f10, $f12
/* 06B5FC 8006A9FC E5520000 */ swc1 $f18, ($t2)
/* 06B600 8006AA00 C5500000 */ lwc1 $f16, ($t2)
/* 06B604 8006AA04 4600803C */ c.lt.s $f16, $f0
/* 06B608 8006AA08 00000000 */ nop
/* 06B60C 8006AA0C 45020014 */ bc1fl .L8006AA60
/* 06B610 8006AA10 862F002E */ lh $t7, 0x2e($s1)
/* 06B614 8006AA14 AFA30060 */ sw $v1, 0x60($sp)
/* 06B618 8006AA18 AFA50050 */ sw $a1, 0x50($sp)
/* 06B61C 8006AA1C AFA8005C */ sw $t0, 0x5c($sp)
/* 06B620 8006AA20 0C0ADF8D */ jal random_int
/* 06B624 8006AA24 AFAA004C */ sw $t2, 0x4c($sp)
/* 06B628 8006AA28 2401000A */ li $at, 10
/* 06B62C 8006AA2C 0041001A */ div $zero, $v0, $at
/* 06B630 8006AA30 0000C812 */ mflo $t9
/* 06B634 8006AA34 44993000 */ mtc1 $t9, $f6
/* 06B638 8006AA38 44800000 */ mtc1 $zero, $f0
/* 06B63C 8006AA3C 8FA30060 */ lw $v1, 0x60($sp)
/* 06B640 8006AA40 46803220 */ cvt.s.w $f8, $f6
/* 06B644 8006AA44 8FA50050 */ lw $a1, 0x50($sp)
/* 06B648 8006AA48 8FAA004C */ lw $t2, 0x4c($sp)
/* 06B64C 8006AA4C 8FA8005C */ lw $t0, 0x5c($sp)
/* 06B650 8006AA50 E4600000 */ swc1 $f0, ($v1)
/* 06B654 8006AA54 E5400000 */ swc1 $f0, ($t2)
/* 06B658 8006AA58 E4A80000 */ swc1 $f8, ($a1)
/* 06B65C 8006AA5C 862F002E */ lh $t7, 0x2e($s1)
.L8006AA60:
/* 06B660 8006AA60 00107080 */ sll $t6, $s0, 2
/* 06B664 8006AA64 862C00C0 */ lh $t4, 0xc0($s1)
/* 06B668 8006AA68 01D07023 */ subu $t6, $t6, $s0
/* 06B66C 8006AA6C 000E7040 */ sll $t6, $t6, 1
/* 06B670 8006AA70 01C85821 */ addu $t3, $t6, $t0
/* 06B674 8006AA74 3C018019 */ lui $at, %hi(D_8018D620)
/* 06B678 8006AA78 000FC023 */ negu $t8, $t7
/* 06B67C 8006AA7C 002B0821 */ addu $at, $at, $t3
/* 06B680 8006AA80 030C6823 */ subu $t5, $t8, $t4
/* 06B684 8006AA84 A42DD620 */ sh $t5, %lo(D_8018D620)($at)
/* 06B688 8006AA88 3C014336 */ li $at, 0x43360000 # 182.000000
/* 06B68C 8006AA8C 44815000 */ mtc1 $at, $f10
/* 06B690 8006AA90 C6240094 */ lwc1 $f4, 0x94($s1)
/* 06B694 8006AA94 0010C880 */ sll $t9, $s0, 2
/* 06B698 8006AA98 0330C823 */ subu $t9, $t9, $s0
/* 06B69C 8006AA9C 460A2482 */ mul.s $f18, $f4, $f10
/* 06B6A0 8006AAA0 0019C840 */ sll $t9, $t9, 1
/* 06B6A4 8006AAA4 3C188019 */ lui $t8, %hi(D_8018D890) # $t8, 0x8019
/* 06B6A8 8006AAA8 2718D890 */ addiu $t8, %lo(D_8018D890) # addiu $t8, $t8, -0x2770
/* 06B6AC 8006AAAC 03287821 */ addu $t7, $t9, $t0
/* 06B6B0 8006AAB0 3C063DCC */ lui $a2, (0x3DCCCCCD >> 16) # lui $a2, 0x3dcc
/* 06B6B4 8006AAB4 34C6CCCD */ ori $a2, (0x3DCCCCCD & 0xFFFF) # ori $a2, $a2, 0xcccd
/* 06B6B8 8006AAB8 4600940D */ trunc.w.s $f16, $f18
/* 06B6BC 8006AABC 01F82021 */ addu $a0, $t7, $t8
/* 06B6C0 8006AAC0 AFA8005C */ sw $t0, 0x5c($sp)
/* 06B6C4 8006AAC4 44058000 */ mfc1 $a1, $f16
/* 06B6C8 8006AAC8 00000000 */ nop
/* 06B6CC 8006AACC 00057400 */ sll $t6, $a1, 0x10
/* 06B6D0 8006AAD0 0C00898D */ jal move_s16_towards
/* 06B6D4 8006AAD4 000E2C03 */ sra $a1, $t6, 0x10
/* 06B6D8 8006AAD8 8FA8005C */ lw $t0, 0x5c($sp)
/* 06B6DC 8006AADC C62C0094 */ lwc1 $f12, 0x94($s1)
/* 06B6E0 8006AAE0 00105880 */ sll $t3, $s0, 2
.L8006AAE4:
/* 06B6E4 8006AAE4 01705823 */ subu $t3, $t3, $s0
/* 06B6E8 8006AAE8 83A900B3 */ lb $t1, 0xb3($sp)
/* 06B6EC 8006AAEC 000B5840 */ sll $t3, $t3, 1
/* 06B6F0 8006AAF0 0168C821 */ addu $t9, $t3, $t0
/* 06B6F4 8006AAF4 3C0F8019 */ lui $t7, %hi(D_8018D830) # $t7, 0x8019
/* 06B6F8 8006AAF8 00106080 */ sll $t4, $s0, 2
/* 06B6FC 8006AAFC 01906023 */ subu $t4, $t4, $s0
/* 06B700 8006AB00 25EFD830 */ addiu $t7, %lo(D_8018D830) # addiu $t7, $t7, -0x27d0
/* 06B704 8006AB04 032F3021 */ addu $a2, $t9, $t7
/* 06B708 8006AB08 000C6080 */ sll $t4, $t4, 2
/* 06B70C 8006AB0C 00105880 */ sll $t3, $s0, 2
/* 06B710 8006AB10 0009C080 */ sll $t8, $t1, 2
/* 06B714 8006AB14 01987021 */ addu $t6, $t4, $t8
/* 06B718 8006AB18 01705823 */ subu $t3, $t3, $s0
/* 06B71C 8006AB1C 84CC0000 */ lh $t4, ($a2)
/* 06B720 8006AB20 000B5840 */ sll $t3, $t3, 1
/* 06B724 8006AB24 3C0F8019 */ lui $t7, %hi(D_8018D620) # $t7, 0x8019
/* 06B728 8006AB28 25EFD620 */ addiu $t7, %lo(D_8018D620) # addiu $t7, $t7, -0x29e0
/* 06B72C 8006AB2C 0168C821 */ addu $t9, $t3, $t0
/* 06B730 8006AB30 03004825 */ move $t1, $t8
/* 06B734 8006AB34 3C0D8019 */ lui $t5, %hi(D_8018D710) # $t5, 0x8019
/* 06B738 8006AB38 24070001 */ li $a3, 1
/* 06B73C 8006AB3C 25ADD710 */ addiu $t5, %lo(D_8018D710) # addiu $t5, $t5, -0x28f0
/* 06B740 8006AB40 032FC021 */ addu $t8, $t9, $t7
/* 06B744 8006AB44 AFB80050 */ sw $t8, 0x50($sp)
/* 06B748 8006AB48 14EC001C */ bne $a3, $t4, .L8006ABBC
/* 06B74C 8006AB4C 01CD5021 */ addu $t2, $t6, $t5
/* 06B750 8006AB50 0010C880 */ sll $t9, $s0, 2
/* 06B754 8006AB54 0330C823 */ subu $t9, $t9, $s0
/* 06B758 8006AB58 00107080 */ sll $t6, $s0, 2
/* 06B75C 8006AB5C 01D07023 */ subu $t6, $t6, $s0
/* 06B760 8006AB60 0019C840 */ sll $t9, $t9, 1
/* 06B764 8006AB64 3C188019 */ lui $t8, %hi(D_8018D800) # $t8, 0x8019
/* 06B768 8006AB68 2718D800 */ addiu $t8, %lo(D_8018D800) # addiu $t8, $t8, -0x2800
/* 06B76C 8006AB6C 03287821 */ addu $t7, $t9, $t0
/* 06B770 8006AB70 000E7040 */ sll $t6, $t6, 1
/* 06B774 8006AB74 01C86821 */ addu $t5, $t6, $t0
/* 06B778 8006AB78 01F82821 */ addu $a1, $t7, $t8
/* 06B77C 8006AB7C 84AE0000 */ lh $t6, ($a1)
/* 06B780 8006AB80 3C0B8019 */ lui $t3, %hi(D_8018D770) # $t3, 0x8019
/* 06B784 8006AB84 256BD770 */ addiu $t3, %lo(D_8018D770) # addiu $t3, $t3, -0x2890
/* 06B788 8006AB88 448E2000 */ mtc1 $t6, $f4
/* 06B78C 8006AB8C 01AB1021 */ addu $v0, $t5, $t3
/* 06B790 8006AB90 844C0000 */ lh $t4, ($v0)
/* 06B794 8006AB94 468022A0 */ cvt.s.w $f10, $f4
/* 06B798 8006AB98 448C3000 */ mtc1 $t4, $f6
/* 06B79C 8006AB9C 00000000 */ nop
/* 06B7A0 8006ABA0 46803220 */ cvt.s.w $f8, $f6
/* 06B7A4 8006ABA4 460C5481 */ sub.s $f18, $f10, $f12
/* 06B7A8 8006ABA8 46124400 */ add.s $f16, $f8, $f18
/* 06B7AC 8006ABAC 4600818D */ trunc.w.s $f6, $f16
/* 06B7B0 8006ABB0 440B3000 */ mfc1 $t3, $f6
/* 06B7B4 8006ABB4 1000001C */ b .L8006AC28
/* 06B7B8 8006ABB8 A44B0000 */ sh $t3, ($v0)
.L8006ABBC:
/* 06B7BC 8006ABBC 00106080 */ sll $t4, $s0, 2
/* 06B7C0 8006ABC0 01906023 */ subu $t4, $t4, $s0
/* 06B7C4 8006ABC4 0010C880 */ sll $t9, $s0, 2
/* 06B7C8 8006ABC8 0330C823 */ subu $t9, $t9, $s0
/* 06B7CC 8006ABCC 000C6040 */ sll $t4, $t4, 1
/* 06B7D0 8006ABD0 3C0D8019 */ lui $t5, %hi(D_8018D800) # $t5, 0x8019
/* 06B7D4 8006ABD4 25ADD800 */ addiu $t5, %lo(D_8018D800) # addiu $t5, $t5, -0x2800
/* 06B7D8 8006ABD8 01887021 */ addu $t6, $t4, $t0
/* 06B7DC 8006ABDC 0019C840 */ sll $t9, $t9, 1
/* 06B7E0 8006ABE0 03287821 */ addu $t7, $t9, $t0
/* 06B7E4 8006ABE4 01CD2821 */ addu $a1, $t6, $t5
/* 06B7E8 8006ABE8 84B90000 */ lh $t9, ($a1)
/* 06B7EC 8006ABEC 3C188019 */ lui $t8, %hi(D_8018D770) # $t8, 0x8019
/* 06B7F0 8006ABF0 2718D770 */ addiu $t8, %lo(D_8018D770) # addiu $t8, $t8, -0x2890
/* 06B7F4 8006ABF4 44994000 */ mtc1 $t9, $f8
/* 06B7F8 8006ABF8 01F81021 */ addu $v0, $t7, $t8
/* 06B7FC 8006ABFC 844B0000 */ lh $t3, ($v0)
/* 06B800 8006AC00 468044A0 */ cvt.s.w $f18, $f8
/* 06B804 8006AC04 448B2000 */ mtc1 $t3, $f4
/* 06B808 8006AC08 00000000 */ nop
/* 06B80C 8006AC0C 468022A0 */ cvt.s.w $f10, $f4
/* 06B810 8006AC10 460C9400 */ add.s $f16, $f18, $f12
/* 06B814 8006AC14 46105180 */ add.s $f6, $f10, $f16
/* 06B818 8006AC18 4600310D */ trunc.w.s $f4, $f6
/* 06B81C 8006AC1C 44182000 */ mfc1 $t8, $f4
/* 06B820 8006AC20 00000000 */ nop
/* 06B824 8006AC24 A4580000 */ sh $t8, ($v0)
.L8006AC28:
/* 06B828 8006AC28 84430000 */ lh $v1, ($v0)
/* 06B82C 8006AC2C 00106880 */ sll $t5, $s0, 2
/* 06B830 8006AC30 01B06823 */ subu $t5, $t5, $s0
/* 06B834 8006AC34 2861000B */ slti $at, $v1, 0xb
/* 06B838 8006AC38 14200004 */ bnez $at, .L8006AC4C
/* 06B83C 8006AC3C 000D6840 */ sll $t5, $t5, 1
/* 06B840 8006AC40 240C000B */ li $t4, 11
/* 06B844 8006AC44 A44C0000 */ sh $t4, ($v0)
/* 06B848 8006AC48 84430000 */ lh $v1, ($v0)
.L8006AC4C:
/* 06B84C 8006AC4C 2861FFF6 */ slti $at, $v1, -0xa
/* 06B850 8006AC50 10200004 */ beqz $at, .L8006AC64
/* 06B854 8006AC54 01A85821 */ addu $t3, $t5, $t0
/* 06B858 8006AC58 240EFFF5 */ li $t6, -11
/* 06B85C 8006AC5C A44E0000 */ sh $t6, ($v0)
/* 06B860 8006AC60 84430000 */ lh $v1, ($v0)
.L8006AC64:
/* 06B864 8006AC64 3C198019 */ lui $t9, %hi(D_8018D7A0) # $t9, 0x8019
/* 06B868 8006AC68 2739D7A0 */ addiu $t9, %lo(D_8018D7A0) # addiu $t9, $t9, -0x2860
/* 06B86C 8006AC6C 01791021 */ addu $v0, $t3, $t9
/* 06B870 8006AC70 844F0000 */ lh $t7, ($v0)
/* 06B874 8006AC74 00106880 */ sll $t5, $s0, 2
/* 06B878 8006AC78 01B06823 */ subu $t5, $t5, $s0
/* 06B87C 8006AC7C 01E3C021 */ addu $t8, $t7, $v1
/* 06B880 8006AC80 A4580000 */ sh $t8, ($v0)
/* 06B884 8006AC84 84440000 */ lh $a0, ($v0)
/* 06B888 8006AC88 000D6840 */ sll $t5, $t5, 1
/* 06B88C 8006AC8C 01A85821 */ addu $t3, $t5, $t0
/* 06B890 8006AC90 28810029 */ slti $at, $a0, 0x29
/* 06B894 8006AC94 14200004 */ bnez $at, .L8006ACA8
/* 06B898 8006AC98 3C198019 */ lui $t9, %hi(D_8018D7D0) # $t9, 0x8019
/* 06B89C 8006AC9C 240C0029 */ li $t4, 41
/* 06B8A0 8006ACA0 A44C0000 */ sh $t4, ($v0)
/* 06B8A4 8006ACA4 84440000 */ lh $a0, ($v0)
.L8006ACA8:
/* 06B8A8 8006ACA8 2881FFD8 */ slti $at, $a0, -0x28
/* 06B8AC 8006ACAC 10200004 */ beqz $at, .L8006ACC0
/* 06B8B0 8006ACB0 2739D7D0 */ addiu $t9, %lo(D_8018D7D0) # addiu $t9, $t9, -0x2830
/* 06B8B4 8006ACB4 240EFFD7 */ li $t6, -41
/* 06B8B8 8006ACB8 A44E0000 */ sh $t6, ($v0)
/* 06B8BC 8006ACBC 84440000 */ lh $a0, ($v0)
.L8006ACC0:
/* 06B8C0 8006ACC0 01791821 */ addu $v1, $t3, $t9
/* 06B8C4 8006ACC4 846F0000 */ lh $t7, ($v1)
/* 06B8C8 8006ACC8 01E4C021 */ addu $t8, $t7, $a0
/* 06B8CC 8006ACCC A4780000 */ sh $t8, ($v1)
/* 06B8D0 8006ACD0 846C0000 */ lh $t4, ($v1)
/* 06B8D4 8006ACD4 24040008 */ li $a0, 8
/* 06B8D8 8006ACD8 2981038E */ slti $at, $t4, 0x38e
/* 06B8DC 8006ACDC 54200015 */ bnel $at, $zero, .L8006AD34
/* 06B8E0 8006ACE0 846B0000 */ lh $t3, ($v1)
/* 06B8E4 8006ACE4 AFA30060 */ sw $v1, 0x60($sp)
/* 06B8E8 8006ACE8 AFA50034 */ sw $a1, 0x34($sp)
/* 06B8EC 8006ACEC AFA6003C */ sw $a2, 0x3c($sp)
/* 06B8F0 8006ACF0 AFA8005C */ sw $t0, 0x5c($sp)
/* 06B8F4 8006ACF4 AFA90054 */ sw $t1, 0x54($sp)
/* 06B8F8 8006ACF8 0C0ADF8D */ jal random_int
/* 06B8FC 8006ACFC AFAA004C */ sw $t2, 0x4c($sp)
/* 06B900 8006AD00 8FA6003C */ lw $a2, 0x3c($sp)
/* 06B904 8006AD04 8FA50034 */ lw $a1, 0x34($sp)
/* 06B908 8006AD08 24070001 */ li $a3, 1
/* 06B90C 8006AD0C 84CD0000 */ lh $t5, ($a2)
/* 06B910 8006AD10 00027023 */ negu $t6, $v0
/* 06B914 8006AD14 8FA30060 */ lw $v1, 0x60($sp)
/* 06B918 8006AD18 8FA8005C */ lw $t0, 0x5c($sp)
/* 06B91C 8006AD1C 8FA90054 */ lw $t1, 0x54($sp)
/* 06B920 8006AD20 8FAA004C */ lw $t2, 0x4c($sp)
/* 06B924 8006AD24 10ED0002 */ beq $a3, $t5, .L8006AD30
/* 06B928 8006AD28 A4AE0000 */ sh $t6, ($a1)
/* 06B92C 8006AD2C A4C70000 */ sh $a3, ($a2)
.L8006AD30:
/* 06B930 8006AD30 846B0000 */ lh $t3, ($v1)
.L8006AD34:
/* 06B934 8006AD34 24040008 */ li $a0, 8
/* 06B938 8006AD38 2961FC73 */ slti $at, $t3, -0x38d
/* 06B93C 8006AD3C 50200012 */ beql $at, $zero, .L8006AD88
/* 06B940 8006AD40 962F0254 */ lhu $t7, 0x254($s1)
/* 06B944 8006AD44 AFA50034 */ sw $a1, 0x34($sp)
/* 06B948 8006AD48 AFA6003C */ sw $a2, 0x3c($sp)
/* 06B94C 8006AD4C AFA8005C */ sw $t0, 0x5c($sp)
/* 06B950 8006AD50 AFA90054 */ sw $t1, 0x54($sp)
/* 06B954 8006AD54 0C0ADF8D */ jal random_int
/* 06B958 8006AD58 AFAA004C */ sw $t2, 0x4c($sp)
/* 06B95C 8006AD5C 8FA6003C */ lw $a2, 0x3c($sp)
/* 06B960 8006AD60 8FA50034 */ lw $a1, 0x34($sp)
/* 06B964 8006AD64 2403FFFF */ li $v1, -1
/* 06B968 8006AD68 84D90000 */ lh $t9, ($a2)
/* 06B96C 8006AD6C 8FA8005C */ lw $t0, 0x5c($sp)
/* 06B970 8006AD70 8FA90054 */ lw $t1, 0x54($sp)
/* 06B974 8006AD74 8FAA004C */ lw $t2, 0x4c($sp)
/* 06B978 8006AD78 10790002 */ beq $v1, $t9, .L8006AD84
/* 06B97C 8006AD7C A4A20000 */ sh $v0, ($a1)
/* 06B980 8006AD80 A4C30000 */ sh $v1, ($a2)
.L8006AD84:
/* 06B984 8006AD84 962F0254 */ lhu $t7, 0x254($s1)
.L8006AD88:
/* 06B988 8006AD88 C5520000 */ lwc1 $f18, ($t2)
/* 06B98C 8006AD8C 3C01800F */ lui $at, %hi(D_800EE830)
/* 06B990 8006AD90 000FC080 */ sll $t8, $t7, 2
/* 06B994 8006AD94 03B86021 */ addu $t4, $sp, $t8
/* 06B998 8006AD98 C5880080 */ lwc1 $f8, 0x80($t4)
/* 06B99C 8006AD9C D424E830 */ ldc1 $f4, %lo(D_800EE830)($at)
/* 06B9A0 8006ADA0 C7B000A8 */ lwc1 $f16, 0xa8($sp)
/* 06B9A4 8006ADA4 46124281 */ sub.s $f10, $f8, $f18
/* 06B9A8 8006ADA8 3C013F80 */ li $at, 0x3F800000 # 1.000000
/* 06B9AC 8006ADAC C7B2006C */ lwc1 $f18, 0x6c($sp)
/* 06B9B0 8006ADB0 460081A1 */ cvt.d.s $f6, $f16
/* 06B9B4 8006ADB4 E7AA0010 */ swc1 $f10, 0x10($sp)
/* 06B9B8 8006ADB8 44815000 */ mtc1 $at, $f10
/* 06B9BC 8006ADBC 46243200 */ add.d $f8, $f6, $f4
/* 06B9C0 8006ADC0 8FAE0050 */ lw $t6, 0x50($sp)
/* 06B9C4 8006ADC4 460A9402 */ mul.s $f16, $f18, $f10
/* 06B9C8 8006ADC8 27A40078 */ addiu $a0, $sp, 0x78
/* 06B9CC 8006ADCC 27A50074 */ addiu $a1, $sp, 0x74
/* 06B9D0 8006ADD0 27A60070 */ addiu $a2, $sp, 0x70
/* 06B9D4 8006ADD4 8FA700A4 */ lw $a3, 0xa4($sp)
/* 06B9D8 8006ADD8 460081A1 */ cvt.d.s $f6, $f16
/* 06B9DC 8006ADDC 46264100 */ add.d $f4, $f8, $f6
/* 06B9E0 8006ADE0 462024A0 */ cvt.s.d $f18, $f4
/* 06B9E4 8006ADE4 E7B20014 */ swc1 $f18, 0x14($sp)
/* 06B9E8 8006ADE8 85CD0000 */ lh $t5, ($t6)
/* 06B9EC 8006ADEC 000D5823 */ negu $t3, $t5
/* 06B9F0 8006ADF0 AFAB0018 */ sw $t3, 0x18($sp)
/* 06B9F4 8006ADF4 86390206 */ lh $t9, 0x206($s1)
/* 06B9F8 8006ADF8 AFA90054 */ sw $t1, 0x54($sp)
/* 06B9FC 8006ADFC AFA8005C */ sw $t0, 0x5c($sp)
/* 06BA00 8006AE00 00197823 */ negu $t7, $t9
/* 06BA04 8006AE04 000FC040 */ sll $t8, $t7, 1
/* 06BA08 8006AE08 0C018AC6 */ jal func_80062B18
/* 06BA0C 8006AE0C AFB8001C */ sw $t8, 0x1c($sp)
/* 06BA10 8006AE10 8FAC0058 */ lw $t4, 0x58($sp)
/* 06BA14 8006AE14 24010002 */ li $at, 2
/* 06BA18 8006AE18 0010C880 */ sll $t9, $s0, 2
/* 06BA1C 8006AE1C 958E0000 */ lhu $t6, ($t4)
/* 06BA20 8006AE20 8FA8005C */ lw $t0, 0x5c($sp)
/* 06BA24 8006AE24 8FA90054 */ lw $t1, 0x54($sp)
/* 06BA28 8006AE28 31CD0002 */ andi $t5, $t6, 2
/* 06BA2C 8006AE2C 11A10029 */ beq $t5, $at, .L8006AED4
/* 06BA30 8006AE30 0330C823 */ subu $t9, $t9, $s0
/* 06BA34 8006AE34 C62A0018 */ lwc1 $f10, 0x18($s1)
/* 06BA38 8006AE38 C6300070 */ lwc1 $f16, 0x70($s1)
/* 06BA3C 8006AE3C C7A60074 */ lwc1 $f6, 0x74($sp)
/* 06BA40 8006AE40 00105880 */ sll $t3, $s0, 2
/* 06BA44 8006AE44 46105201 */ sub.s $f8, $f10, $f16
/* 06BA48 8006AE48 01705823 */ subu $t3, $t3, $s0
/* 06BA4C 8006AE4C 000B5880 */ sll $t3, $t3, 2
/* 06BA50 8006AE50 0169C821 */ addu $t9, $t3, $t1
/* 06BA54 8006AE54 46064100 */ add.s $f4, $f8, $f6
/* 06BA58 8006AE58 3C018019 */ lui $at, %hi(D_8018D530)
/* 06BA5C 8006AE5C 00390821 */ addu $at, $at, $t9
/* 06BA60 8006AE60 C7AA0078 */ lwc1 $f10, 0x78($sp)
/* 06BA64 8006AE64 E424D530 */ swc1 $f4, %lo(D_8018D530)($at)
/* 06BA68 8006AE68 C6320014 */ lwc1 $f18, 0x14($s1)
/* 06BA6C 8006AE6C 00107880 */ sll $t7, $s0, 2
/* 06BA70 8006AE70 01F07823 */ subu $t7, $t7, $s0
/* 06BA74 8006AE74 460A9400 */ add.s $f16, $f18, $f10
/* 06BA78 8006AE78 000F7880 */ sll $t7, $t7, 2
/* 06BA7C 8006AE7C 01E9C021 */ addu $t8, $t7, $t1
/* 06BA80 8006AE80 3C018019 */ lui $at, %hi(D_8018D4D0)
/* 06BA84 8006AE84 00380821 */ addu $at, $at, $t8
/* 06BA88 8006AE88 E430D4D0 */ swc1 $f16, %lo(D_8018D4D0)($at)
/* 06BA8C 8006AE8C C628001C */ lwc1 $f8, 0x1c($s1)
/* 06BA90 8006AE90 C7A60070 */ lwc1 $f6, 0x70($sp)
/* 06BA94 8006AE94 00106080 */ sll $t4, $s0, 2
/* 06BA98 8006AE98 01906023 */ subu $t4, $t4, $s0
/* 06BA9C 8006AE9C 46064100 */ add.s $f4, $f8, $f6
/* 06BAA0 8006AEA0 000C6080 */ sll $t4, $t4, 2
/* 06BAA4 8006AEA4 01897021 */ addu $t6, $t4, $t1
/* 06BAA8 8006AEA8 3C018019 */ lui $at, %hi(D_8018D590)
/* 06BAAC 8006AEAC 00106880 */ sll $t5, $s0, 2
/* 06BAB0 8006AEB0 002E0821 */ addu $at, $at, $t6
/* 06BAB4 8006AEB4 01B06823 */ subu $t5, $t5, $s0
/* 06BAB8 8006AEB8 E424D590 */ swc1 $f4, %lo(D_8018D590)($at)
/* 06BABC 8006AEBC 000D6840 */ sll $t5, $t5, 1
/* 06BAC0 8006AEC0 01A85821 */ addu $t3, $t5, $t0
/* 06BAC4 8006AEC4 3C018019 */ lui $at, %hi(D_8018D8D0)
/* 06BAC8 8006AEC8 002B0821 */ addu $at, $at, $t3
/* 06BACC 8006AECC 1000003B */ b .L8006AFBC
/* 06BAD0 8006AED0 A420D8D0 */ sh $zero, %lo(D_8018D8D0)($at)
.L8006AED4:
/* 06BAD4 8006AED4 0019C880 */ sll $t9, $t9, 2
/* 06BAD8 8006AED8 3C188019 */ lui $t8, %hi(D_8018D530) # $t8, 0x8019
/* 06BADC 8006AEDC 2718D530 */ addiu $t8, %lo(D_8018D530) # addiu $t8, $t8, -0x2ad0
/* 06BAE0 8006AEE0 03297821 */ addu $t7, $t9, $t1
/* 06BAE4 8006AEE4 01F81021 */ addu $v0, $t7, $t8
/* 06BAE8 8006AEE8 C4520000 */ lwc1 $f18, ($v0)
/* 06BAEC 8006AEEC 3C01800F */ lui $at, %hi(D_800EE838)
/* 06BAF0 8006AEF0 D430E838 */ ldc1 $f16, %lo(D_800EE838)($at)
/* 06BAF4 8006AEF4 460092A1 */ cvt.d.s $f10, $f18
/* 06BAF8 8006AEF8 00106080 */ sll $t4, $s0, 2
/* 06BAFC 8006AEFC 01906023 */ subu $t4, $t4, $s0
/* 06BB00 8006AF00 46305200 */ add.d $f8, $f10, $f16
/* 06BB04 8006AF04 000C6040 */ sll $t4, $t4, 1
/* 06BB08 8006AF08 3C0D8019 */ lui $t5, %hi(D_8018D8D0) # $t5, 0x8019
/* 06BB0C 8006AF0C 25ADD8D0 */ addiu $t5, %lo(D_8018D8D0) # addiu $t5, $t5, -0x2730
/* 06BB10 8006AF10 01887021 */ addu $t6, $t4, $t0
/* 06BB14 8006AF14 01CD1821 */ addu $v1, $t6, $t5
/* 06BB18 8006AF18 846B0000 */ lh $t3, ($v1)
/* 06BB1C 8006AF1C 00107880 */ sll $t7, $s0, 2
/* 06BB20 8006AF20 462041A0 */ cvt.s.d $f6, $f8
/* 06BB24 8006AF24 01F07823 */ subu $t7, $t7, $s0
/* 06BB28 8006AF28 000F7840 */ sll $t7, $t7, 1
/* 06BB2C 8006AF2C 3C0C8019 */ lui $t4, %hi(D_8018D890) # $t4, 0x8019
/* 06BB30 8006AF30 258CD890 */ addiu $t4, %lo(D_8018D890) # addiu $t4, $t4, -0x2770
/* 06BB34 8006AF34 01E8C021 */ addu $t8, $t7, $t0
/* 06BB38 8006AF38 3C063DCC */ lui $a2, (0x3DCCCCCD >> 16) # lui $a2, 0x3dcc
/* 06BB3C 8006AF3C 25790001 */ addiu $t9, $t3, 1
/* 06BB40 8006AF40 E4460000 */ swc1 $f6, ($v0)
/* 06BB44 8006AF44 A4790000 */ sh $t9, ($v1)
/* 06BB48 8006AF48 34C6CCCD */ ori $a2, (0x3DCCCCCD & 0xFFFF) # ori $a2, $a2, 0xcccd
/* 06BB4C 8006AF4C 030C2021 */ addu $a0, $t8, $t4
/* 06BB50 8006AF50 AFA30060 */ sw $v1, 0x60($sp)
/* 06BB54 8006AF54 00002825 */ move $a1, $zero
/* 06BB58 8006AF58 0C00898D */ jal move_s16_towards
/* 06BB5C 8006AF5C AFA8005C */ sw $t0, 0x5c($sp)
/* 06BB60 8006AF60 8FA8005C */ lw $t0, 0x5c($sp)
/* 06BB64 8006AF64 00107080 */ sll $t6, $s0, 2
/* 06BB68 8006AF68 01D07023 */ subu $t6, $t6, $s0
/* 06BB6C 8006AF6C 000E7040 */ sll $t6, $t6, 1
/* 06BB70 8006AF70 3C0B8019 */ lui $t3, %hi(D_8018D860) # $t3, 0x8019
/* 06BB74 8006AF74 256BD860 */ addiu $t3, %lo(D_8018D860) # addiu $t3, $t3, -0x27a0
/* 06BB78 8006AF78 3C063DCC */ lui $a2, (0x3DCCCCCD >> 16) # lui $a2, 0x3dcc
/* 06BB7C 8006AF7C 01C86821 */ addu $t5, $t6, $t0
/* 06BB80 8006AF80 01AB2021 */ addu $a0, $t5, $t3
/* 06BB84 8006AF84 34C6CCCD */ ori $a2, (0x3DCCCCCD & 0xFFFF) # ori $a2, $a2, 0xcccd
/* 06BB88 8006AF88 0C00898D */ jal move_s16_towards
/* 06BB8C 8006AF8C 00002825 */ move $a1, $zero
/* 06BB90 8006AF90 8FA30060 */ lw $v1, 0x60($sp)
/* 06BB94 8006AF94 00102E00 */ sll $a1, $s0, 0x18
/* 06BB98 8006AF98 00057E03 */ sra $t7, $a1, 0x18
/* 06BB9C 8006AF9C 84790000 */ lh $t9, ($v1)
/* 06BBA0 8006AFA0 01E02825 */ move $a1, $t7
/* 06BBA4 8006AFA4 02202025 */ move $a0, $s1
/* 06BBA8 8006AFA8 2B210078 */ slti $at, $t9, 0x78
/* 06BBAC 8006AFAC 54200004 */ bnel $at, $zero, .L8006AFC0
/* 06BBB0 8006AFB0 8FBF002C */ lw $ra, 0x2c($sp)
/* 06BBB4 8006AFB4 0C01AE5D */ jal func_8006B974
/* 06BBB8 8006AFB8 83A600B3 */ lb $a2, 0xb3($sp)
.L8006AFBC:
/* 06BBBC 8006AFBC 8FBF002C */ lw $ra, 0x2c($sp)
.L8006AFC0:
/* 06BBC0 8006AFC0 8FB00024 */ lw $s0, 0x24($sp)
/* 06BBC4 8006AFC4 8FB10028 */ lw $s1, 0x28($sp)
/* 06BBC8 8006AFC8 03E00008 */ jr $ra
/* 06BBCC 8006AFCC 27BD00A0 */ addiu $sp, $sp, 0xa0
@@ -1,556 +0,0 @@
.section .late_rodata
glabel D_800EE840
.float 0.3
.word 0x00000000
glabel D_800EE848
.double 1.8
glabel D_800EE850
.float 1.8
.word 0x00000000
glabel D_800EE858
.double 0.3
glabel D_800EE860
.float 0.3
.section .data
glabel D_800E4934
.word 0x00c80100, 0x00007001, 0x00107951, 0x00005970
.word 0x00705500, 0x007a7e00, 0x00772c24, 0x00301458
glabel D_800E4954
.word 0x00dc0000, 0x00008c06, 0x00000051, 0x00000000
.word 0x00000000, 0x00000000, 0x00000000, 0x00000000
.section .text
glabel func_8006AFD0
/* 06BBD0 8006AFD0 27BDFE80 */ addiu $sp, $sp, -0x180
/* 06BBD4 8006AFD4 3C19800E */ lui $t9, %hi(D_800E4934) # $t9, 0x800e
/* 06BBD8 8006AFD8 AFBF0034 */ sw $ra, 0x34($sp)
/* 06BBDC 8006AFDC AFB00030 */ sw $s0, 0x30($sp)
/* 06BBE0 8006AFE0 F7B40028 */ sdc1 $f20, 0x28($sp)
/* 06BBE4 8006AFE4 AFA50184 */ sw $a1, 0x184($sp)
/* 06BBE8 8006AFE8 AFA60188 */ sw $a2, 0x188($sp)
/* 06BBEC 8006AFEC AFA7018C */ sw $a3, 0x18c($sp)
/* 06BBF0 8006AFF0 27394934 */ addiu $t9, %lo(D_800E4934) # addiu $t9, $t9, 0x4934
/* 06BBF4 8006AFF4 8F210000 */ lw $at, ($t9)
/* 06BBF8 8006AFF8 27AA00F0 */ addiu $t2, $sp, 0xf0
/* 06BBFC 8006AFFC 00077E00 */ sll $t7, $a3, 0x18
/* 06BC00 8006B000 AD410000 */ sw $at, ($t2)
/* 06BC04 8006B004 8F380004 */ lw $t8, 4($t9)
/* 06BC08 8006B008 000F3E03 */ sra $a3, $t7, 0x18
/* 06BC0C 8006B00C 3C0F800E */ lui $t7, %hi(D_800E4954) # $t7, 0x800e
/* 06BC10 8006B010 AD580004 */ sw $t8, 4($t2)
/* 06BC14 8006B014 8F210008 */ lw $at, 8($t9)
/* 06BC18 8006B018 25EF4954 */ addiu $t7, %lo(D_800E4954) # addiu $t7, $t7, 0x4954
/* 06BC1C 8006B01C 27AB00D0 */ addiu $t3, $sp, 0xd0
/* 06BC20 8006B020 AD410008 */ sw $at, 8($t2)
/* 06BC24 8006B024 8F38000C */ lw $t8, 0xc($t9)
/* 06BC28 8006B028 00058600 */ sll $s0, $a1, 0x18
/* 06BC2C 8006B02C 00107603 */ sra $t6, $s0, 0x18
/* 06BC30 8006B030 AD58000C */ sw $t8, 0xc($t2)
/* 06BC34 8006B034 8F210010 */ lw $at, 0x10($t9)
/* 06BC38 8006B038 01C08025 */ move $s0, $t6
/* 06BC3C 8006B03C AD410010 */ sw $at, 0x10($t2)
/* 06BC40 8006B040 8F380014 */ lw $t8, 0x14($t9)
/* 06BC44 8006B044 AD580014 */ sw $t8, 0x14($t2)
/* 06BC48 8006B048 8F210018 */ lw $at, 0x18($t9)
/* 06BC4C 8006B04C AD410018 */ sw $at, 0x18($t2)
/* 06BC50 8006B050 8F38001C */ lw $t8, 0x1c($t9)
/* 06BC54 8006B054 AD58001C */ sw $t8, 0x1c($t2)
/* 06BC58 8006B058 8DE10000 */ lw $at, ($t7)
/* 06BC5C 8006B05C AD610000 */ sw $at, ($t3)
/* 06BC60 8006B060 8DF80004 */ lw $t8, 4($t7)
/* 06BC64 8006B064 AD780004 */ sw $t8, 4($t3)
/* 06BC68 8006B068 8DE10008 */ lw $at, 8($t7)
/* 06BC6C 8006B06C AD610008 */ sw $at, 8($t3)
/* 06BC70 8006B070 8DF8000C */ lw $t8, 0xc($t7)
/* 06BC74 8006B074 AD78000C */ sw $t8, 0xc($t3)
/* 06BC78 8006B078 8DE10010 */ lw $at, 0x10($t7)
/* 06BC7C 8006B07C AD610010 */ sw $at, 0x10($t3)
/* 06BC80 8006B080 8DF80014 */ lw $t8, 0x14($t7)
/* 06BC84 8006B084 AD780014 */ sw $t8, 0x14($t3)
/* 06BC88 8006B088 8DE10018 */ lw $at, 0x18($t7)
/* 06BC8C 8006B08C AD610018 */ sw $at, 0x18($t3)
/* 06BC90 8006B090 8DF8001C */ lw $t8, 0x1c($t7)
/* 06BC94 8006B094 AD78001C */ sw $t8, 0x1c($t3)
/* 06BC98 8006B098 94880254 */ lhu $t0, 0x254($a0)
/* 06BC9C 8006B09C 0008C880 */ sll $t9, $t0, 2
/* 06BCA0 8006B0A0 01597021 */ addu $t6, $t2, $t9
/* 06BCA4 8006B0A4 8DC20000 */ lw $v0, ($t6)
/* 06BCA8 8006B0A8 03204025 */ move $t0, $t9
/* 06BCAC 8006B0AC 00027C03 */ sra $t7, $v0, 0x10
/* 06BCB0 8006B0B0 31F800FF */ andi $t8, $t7, 0xff
/* 06BCB4 8006B0B4 0002CA03 */ sra $t9, $v0, 8
/* 06BCB8 8006B0B8 A7B80128 */ sh $t8, 0x128($sp)
/* 06BCBC 8006B0BC 332E00FF */ andi $t6, $t9, 0xff
/* 06BCC0 8006B0C0 304F00FF */ andi $t7, $v0, 0xff
/* 06BCC4 8006B0C4 A7AE0126 */ sh $t6, 0x126($sp)
/* 06BCC8 8006B0C8 A7AF0124 */ sh $t7, 0x124($sp)
/* 06BCCC 8006B0CC 0168C021 */ addu $t8, $t3, $t0
/* 06BCD0 8006B0D0 8F030000 */ lw $v1, ($t8)
/* 06BCD4 8006B0D4 0003CC03 */ sra $t9, $v1, 0x10
/* 06BCD8 8006B0D8 332E00FF */ andi $t6, $t9, 0xff
/* 06BCDC 8006B0DC A7AE0122 */ sh $t6, 0x122($sp)
/* 06BCE0 8006B0E0 00037A03 */ sra $t7, $v1, 8
/* 06BCE4 8006B0E4 31F800FF */ andi $t8, $t7, 0xff
/* 06BCE8 8006B0E8 00077040 */ sll $t6, $a3, 1
/* 06BCEC 8006B0EC 008E7821 */ addu $t7, $a0, $t6
/* 06BCF0 8006B0F0 307900FF */ andi $t9, $v1, 0xff
/* 06BCF4 8006B0F4 A7B80120 */ sh $t8, 0x120($sp)
/* 06BCF8 8006B0F8 A7B9011E */ sh $t9, 0x11e($sp)
/* 06BCFC 8006B0FC AFAF0054 */ sw $t7, 0x54($sp)
/* 06BD00 8006B100 85EE0048 */ lh $t6, 0x48($t7)
/* 06BD04 8006B104 8498002E */ lh $t8, 0x2e($a0)
/* 06BD08 8006B108 849900C0 */ lh $t9, 0xc0($a0)
/* 06BD0C 8006B10C 030E7821 */ addu $t7, $t8, $t6
/* 06BD10 8006B110 01F94821 */ addu $t1, $t7, $t9
/* 06BD14 8006B114 3138FFFF */ andi $t8, $t1, 0xffff
/* 06BD18 8006B118 03004825 */ move $t1, $t8
/* 06BD1C 8006B11C 05210003 */ bgez $t1, .L8006B12C
/* 06BD20 8006B120 000971C3 */ sra $t6, $t1, 7
/* 06BD24 8006B124 2521007F */ addiu $at, $t1, 0x7f
/* 06BD28 8006B128 000171C3 */ sra $t6, $at, 7
.L8006B12C:
/* 06BD2C 8006B12C 01C0C025 */ move $t8, $t6
/* 06BD30 8006B130 001875C0 */ sll $t6, $t8, 0x17
/* 06BD34 8006B134 14F00004 */ bne $a3, $s0, .L8006B148
/* 06BD38 8006B138 000E4C03 */ sra $t1, $t6, 0x10
/* 06BD3C 8006B13C 3C01800F */ lui $at, %hi(D_800EE840) # $at, 0x800f
/* 06BD40 8006B140 10000038 */ b .L8006B224
/* 06BD44 8006B144 C434E840 */ lwc1 $f20, %lo(D_800EE840)($at)
.L8006B148:
/* 06BD48 8006B148 C4920014 */ lwc1 $f18, 0x14($a0)
/* 06BD4C 8006B14C C490001C */ lwc1 $f16, 0x1c($a0)
/* 06BD50 8006B150 0007C880 */ sll $t9, $a3, 2
/* 06BD54 8006B154 0327C823 */ subu $t9, $t9, $a3
/* 06BD58 8006B158 0019C8C0 */ sll $t9, $t9, 3
/* 06BD5C 8006B15C 0327C823 */ subu $t9, $t9, $a3
/* 06BD60 8006B160 3C188016 */ lui $t8, %hi(cameras) # $t8, 0x8016
/* 06BD64 8006B164 0019C8C0 */ sll $t9, $t9, 3
/* 06BD68 8006B168 271846F0 */ addiu $t8, %lo(cameras) # addiu $t8, $t8, 0x46f0
/* 06BD6C 8006B16C 03381021 */ addu $v0, $t9, $t8
/* 06BD70 8006B170 C44E0000 */ lwc1 $f14, ($v0)
/* 06BD74 8006B174 C44C0008 */ lwc1 $f12, 8($v0)
/* 06BD78 8006B178 3C0E800E */ lui $t6, %hi(gActiveScreenMode) # $t6, 0x800e
/* 06BD7C 8006B17C 8DCEC52C */ lw $t6, %lo(gActiveScreenMode)($t6)
/* 06BD80 8006B180 460E9501 */ sub.s $f20, $f18, $f14
/* 06BD84 8006B184 24010003 */ li $at, 3
/* 06BD88 8006B188 11C1000B */ beq $t6, $at, .L8006B1B8
/* 06BD8C 8006B18C 460C8001 */ sub.s $f0, $f16, $f12
/* 06BD90 8006B190 4614A402 */ mul.s $f16, $f20, $f20
/* 06BD94 8006B194 A7A9011C */ sh $t1, 0x11c($sp)
/* 06BD98 8006B198 46000482 */ mul.s $f18, $f0, $f0
/* 06BD9C 8006B19C 0C033850 */ jal sqrtf
/* 06BDA0 8006B1A0 46128300 */ add.s $f12, $f16, $f18
/* 06BDA4 8006B1A4 3C014396 */ li $at, 0x43960000 # 300.000000
/* 06BDA8 8006B1A8 44812000 */ mtc1 $at, $f4
/* 06BDAC 8006B1AC 87A9011C */ lh $t1, 0x11c($sp)
/* 06BDB0 8006B1B0 1000000A */ b .L8006B1DC
/* 06BDB4 8006B1B4 46040503 */ div.s $f20, $f0, $f4
.L8006B1B8:
/* 06BDB8 8006B1B8 4614A182 */ mul.s $f6, $f20, $f20
/* 06BDBC 8006B1BC A7A9011C */ sh $t1, 0x11c($sp)
/* 06BDC0 8006B1C0 46000202 */ mul.s $f8, $f0, $f0
/* 06BDC4 8006B1C4 0C033850 */ jal sqrtf
/* 06BDC8 8006B1C8 46083300 */ add.s $f12, $f6, $f8
/* 06BDCC 8006B1CC 3C014348 */ li $at, 0x43480000 # 200.000000
/* 06BDD0 8006B1D0 44815000 */ mtc1 $at, $f10
/* 06BDD4 8006B1D4 87A9011C */ lh $t1, 0x11c($sp)
/* 06BDD8 8006B1D8 460A0503 */ div.s $f20, $f0, $f10
.L8006B1DC:
/* 06BDDC 8006B1DC 3C01800F */ lui $at, %hi(D_800EE848)
/* 06BDE0 8006B1E0 D430E848 */ ldc1 $f16, %lo(D_800EE848)($at)
/* 06BDE4 8006B1E4 4600A021 */ cvt.d.s $f0, $f20
/* 06BDE8 8006B1E8 3C01800F */ lui $at, %hi(D_800EE850) # $at, 0x800f
/* 06BDEC 8006B1EC 4620803E */ c.le.d $f16, $f0
/* 06BDF0 8006B1F0 00000000 */ nop
/* 06BDF4 8006B1F4 45000003 */ bc1f .L8006B204
/* 06BDF8 8006B1F8 00000000 */ nop
/* 06BDFC 8006B1FC C434E850 */ lwc1 $f20, %lo(D_800EE850)($at)
/* 06BE00 8006B200 4600A021 */ cvt.d.s $f0, $f20
.L8006B204:
/* 06BE04 8006B204 3C01800F */ lui $at, %hi(D_800EE858)
/* 06BE08 8006B208 D432E858 */ ldc1 $f18, %lo(D_800EE858)($at)
/* 06BE0C 8006B20C 3C01800F */ lui $at, %hi(D_800EE860) # $at, 0x800f
/* 06BE10 8006B210 4632003E */ c.le.d $f0, $f18
/* 06BE14 8006B214 00000000 */ nop
/* 06BE18 8006B218 45020003 */ bc1fl .L8006B228
/* 06BE1C 8006B21C 87A2018A */ lh $v0, 0x18a($sp)
/* 06BE20 8006B220 C434E860 */ lwc1 $f20, %lo(D_800EE860)($at)
.L8006B224:
/* 06BE24 8006B224 87A2018A */ lh $v0, 0x18a($sp)
.L8006B228:
/* 06BE28 8006B228 0010C880 */ sll $t9, $s0, 2
/* 06BE2C 8006B22C 0330C823 */ subu $t9, $t9, $s0
/* 06BE30 8006B230 0019C880 */ sll $t9, $t9, 2
/* 06BE34 8006B234 00027880 */ sll $t7, $v0, 2
/* 06BE38 8006B238 032FC021 */ addu $t8, $t9, $t7
/* 06BE3C 8006B23C 3C018019 */ lui $at, %hi(D_8018D4D0)
/* 06BE40 8006B240 00107080 */ sll $t6, $s0, 2
/* 06BE44 8006B244 00380821 */ addu $at, $at, $t8
/* 06BE48 8006B248 01D07023 */ subu $t6, $t6, $s0
/* 06BE4C 8006B24C C424D4D0 */ lwc1 $f4, %lo(D_8018D4D0)($at)
/* 06BE50 8006B250 01E01025 */ move $v0, $t7
/* 06BE54 8006B254 000E7080 */ sll $t6, $t6, 2
/* 06BE58 8006B258 01CF7821 */ addu $t7, $t6, $t7
/* 06BE5C 8006B25C 3C018019 */ lui $at, %hi(D_8018D530)
/* 06BE60 8006B260 0010C880 */ sll $t9, $s0, 2
/* 06BE64 8006B264 002F0821 */ addu $at, $at, $t7
/* 06BE68 8006B268 0330C823 */ subu $t9, $t9, $s0
/* 06BE6C 8006B26C C426D530 */ lwc1 $f6, %lo(D_8018D530)($at)
/* 06BE70 8006B270 0019C880 */ sll $t9, $t9, 2
/* 06BE74 8006B274 0322C021 */ addu $t8, $t9, $v0
/* 06BE78 8006B278 3C018019 */ lui $at, %hi(D_8018D590)
/* 06BE7C 8006B27C 00380821 */ addu $at, $at, $t8
/* 06BE80 8006B280 C428D590 */ lwc1 $f8, %lo(D_8018D590)($at)
/* 06BE84 8006B284 3124FFFF */ andi $a0, $t1, 0xffff
/* 06BE88 8006B288 AFA40044 */ sw $a0, 0x44($sp)
/* 06BE8C 8006B28C E7A40134 */ swc1 $f4, 0x134($sp)
/* 06BE90 8006B290 E7A60138 */ swc1 $f6, 0x138($sp)
/* 06BE94 8006B294 0C0AE00E */ jal coss
/* 06BE98 8006B298 E7A8013C */ swc1 $f8, 0x13c($sp)
/* 06BE9C 8006B29C 87A2018A */ lh $v0, 0x18a($sp)
/* 06BEA0 8006B2A0 00107880 */ sll $t7, $s0, 2
/* 06BEA4 8006B2A4 01F07823 */ subu $t7, $t7, $s0
/* 06BEA8 8006B2A8 000F7840 */ sll $t7, $t7, 1
/* 06BEAC 8006B2AC 3C188019 */ lui $t8, %hi(D_8018D890) # $t8, 0x8019
/* 06BEB0 8006B2B0 00027040 */ sll $t6, $v0, 1
/* 06BEB4 8006B2B4 01EEC821 */ addu $t9, $t7, $t6
/* 06BEB8 8006B2B8 2718D890 */ addiu $t8, %lo(D_8018D890) # addiu $t8, $t8, -0x2770
/* 06BEBC 8006B2BC 03381821 */ addu $v1, $t9, $t8
/* 06BEC0 8006B2C0 01C01025 */ move $v0, $t6
/* 06BEC4 8006B2C4 846E0000 */ lh $t6, ($v1)
/* 06BEC8 8006B2C8 97A40046 */ lhu $a0, 0x46($sp)
/* 06BECC 8006B2CC 000E7880 */ sll $t7, $t6, 2
/* 06BED0 8006B2D0 448F5000 */ mtc1 $t7, $f10
/* 06BED4 8006B2D4 8FAE0054 */ lw $t6, 0x54($sp)
/* 06BED8 8006B2D8 46805420 */ cvt.s.w $f16, $f10
/* 06BEDC 8006B2DC 46100482 */ mul.s $f18, $f0, $f16
/* 06BEE0 8006B2E0 46009107 */ neg.s $f4, $f18
/* 06BEE4 8006B2E4 4600218D */ trunc.w.s $f6, $f4
/* 06BEE8 8006B2E8 44183000 */ mfc1 $t8, $f6
/* 06BEEC 8006B2EC 00000000 */ nop
/* 06BEF0 8006B2F0 A7B8012C */ sh $t8, 0x12c($sp)
/* 06BEF4 8006B2F4 85CF0048 */ lh $t7, 0x48($t6)
/* 06BEF8 8006B2F8 AFA3003C */ sw $v1, 0x3c($sp)
/* 06BEFC 8006B2FC AFA20040 */ sw $v0, 0x40($sp)
/* 06BF00 8006B300 0C0AE00E */ jal coss
/* 06BF04 8006B304 A7AF012E */ sh $t7, 0x12e($sp)
/* 06BF08 8006B308 E7A00058 */ swc1 $f0, 0x58($sp)
/* 06BF0C 8006B30C 0C0AE006 */ jal sins
/* 06BF10 8006B310 97A40046 */ lhu $a0, 0x46($sp)
/* 06BF14 8006B314 8FA20040 */ lw $v0, 0x40($sp)
/* 06BF18 8006B318 0010C880 */ sll $t9, $s0, 2
/* 06BF1C 8006B31C 0330C823 */ subu $t9, $t9, $s0
/* 06BF20 8006B320 0019C840 */ sll $t9, $t9, 1
/* 06BF24 8006B324 3C0E8019 */ lui $t6, %hi(D_8018D860)
/* 06BF28 8006B328 0322C021 */ addu $t8, $t9, $v0
/* 06BF2C 8006B32C 01D87021 */ addu $t6, $t6, $t8
/* 06BF30 8006B330 85CED860 */ lh $t6, %lo(D_8018D860)($t6)
/* 06BF34 8006B334 00107880 */ sll $t7, $s0, 2
/* 06BF38 8006B338 01F07823 */ subu $t7, $t7, $s0
/* 06BF3C 8006B33C 448E4000 */ mtc1 $t6, $f8
/* 06BF40 8006B340 8FAE003C */ lw $t6, 0x3c($sp)
/* 06BF44 8006B344 000F7840 */ sll $t7, $t7, 1
/* 06BF48 8006B348 468042A0 */ cvt.s.w $f10, $f8
/* 06BF4C 8006B34C 01E2C821 */ addu $t9, $t7, $v0
/* 06BF50 8006B350 C7B00058 */ lwc1 $f16, 0x58($sp)
/* 06BF54 8006B354 85CF0000 */ lh $t7, ($t6)
/* 06BF58 8006B358 3C188019 */ lui $t8, %hi(D_8018D7D0)
/* 06BF5C 8006B35C 0319C021 */ addu $t8, $t8, $t9
/* 06BF60 8006B360 46105482 */ mul.s $f18, $f10, $f16
/* 06BF64 8006B364 000FC8C0 */ sll $t9, $t7, 3
/* 06BF68 8006B368 44995000 */ mtc1 $t9, $f10
/* 06BF6C 8006B36C 8718D7D0 */ lh $t8, %lo(D_8018D7D0)($t8)
/* 06BF70 8006B370 27A40140 */ addiu $a0, $sp, 0x140
/* 06BF74 8006B374 27A50134 */ addiu $a1, $sp, 0x134
/* 06BF78 8006B378 46805420 */ cvt.s.w $f16, $f10
/* 06BF7C 8006B37C 44982000 */ mtc1 $t8, $f4
/* 06BF80 8006B380 27A6012C */ addiu $a2, $sp, 0x12c
/* 06BF84 8006B384 468021A0 */ cvt.s.w $f6, $f4
/* 06BF88 8006B388 46100102 */ mul.s $f4, $f0, $f16
/* 06BF8C 8006B38C 46123201 */ sub.s $f8, $f6, $f18
/* 06BF90 8006B390 46044181 */ sub.s $f6, $f8, $f4
/* 06BF94 8006B394 4600348D */ trunc.w.s $f18, $f6
/* 06BF98 8006B398 440E9000 */ mfc1 $t6, $f18
/* 06BF9C 8006B39C 0C008784 */ jal mtxf_translate_rotate
/* 06BFA0 8006B3A0 A7AE0130 */ sh $t6, 0x130($sp)
/* 06BFA4 8006B3A4 27B00140 */ addiu $s0, $sp, 0x140
/* 06BFA8 8006B3A8 4405A000 */ mfc1 $a1, $f20
/* 06BFAC 8006B3AC 0C0087E1 */ jal mtxf_scale2
/* 06BFB0 8006B3B0 02002025 */ move $a0, $s0
/* 06BFB4 8006B3B4 3C198016 */ lui $t9, %hi(gMatrixEffectCount) # $t9, 0x8016
/* 06BFB8 8006B3B8 87394AF0 */ lh $t9, %lo(gMatrixEffectCount)($t9)
/* 06BFBC 8006B3BC 3C0F8015 */ lui $t7, %hi(gGfxPool) # $t7, 0x8015
/* 06BFC0 8006B3C0 8DEFEF40 */ lw $t7, %lo(gGfxPool)($t7)
/* 06BFC4 8006B3C4 0019C180 */ sll $t8, $t9, 6
/* 06BFC8 8006B3C8 3401FAC0 */ li $at, 64192
/* 06BFCC 8006B3CC 01F82021 */ addu $a0, $t7, $t8
/* 06BFD0 8006B3D0 00812021 */ addu $a0, $a0, $at
/* 06BFD4 8006B3D4 0C008860 */ jal convert_to_fixed_point_matrix
/* 06BFD8 8006B3D8 02002825 */ move $a1, $s0
/* 06BFDC 8006B3DC 3C038015 */ lui $v1, %hi(gDisplayListHead) # $v1, 0x8015
/* 06BFE0 8006B3E0 24630298 */ addiu $v1, %lo(gDisplayListHead) # addiu $v1, $v1, 0x298
/* 06BFE4 8006B3E4 8C620000 */ lw $v0, ($v1)
/* 06BFE8 8006B3E8 3C190102 */ lui $t9, (0x01020040 >> 16) # lui $t9, 0x102
/* 06BFEC 8006B3EC 37390040 */ ori $t9, (0x01020040 & 0xFFFF) # ori $t9, $t9, 0x40
/* 06BFF0 8006B3F0 244E0008 */ addiu $t6, $v0, 8
/* 06BFF4 8006B3F4 AC6E0000 */ sw $t6, ($v1)
/* 06BFF8 8006B3F8 3C188016 */ lui $t8, %hi(gMatrixEffectCount) # $t8, 0x8016
/* 06BFFC 8006B3FC AC590000 */ sw $t9, ($v0)
/* 06C000 8006B400 87184AF0 */ lh $t8, %lo(gMatrixEffectCount)($t8)
/* 06C004 8006B404 3C0F8015 */ lui $t7, %hi(gGfxPool) # $t7, 0x8015
/* 06C008 8006B408 8DEFEF40 */ lw $t7, %lo(gGfxPool)($t7)
/* 06C00C 8006B40C 00187180 */ sll $t6, $t8, 6
/* 06C010 8006B410 3401FAC0 */ li $at, 64192
/* 06C014 8006B414 01EEC821 */ addu $t9, $t7, $t6
/* 06C018 8006B418 0321C021 */ addu $t8, $t9, $at
/* 06C01C 8006B41C 3C011FFF */ lui $at, (0x1FFFFFFF >> 16) # lui $at, 0x1fff
/* 06C020 8006B420 3421FFFF */ ori $at, (0x1FFFFFFF & 0xFFFF) # ori $at, $at, 0xffff
/* 06C024 8006B424 03017824 */ and $t7, $t8, $at
/* 06C028 8006B428 AC4F0004 */ sw $t7, 4($v0)
/* 06C02C 8006B42C 8C620000 */ lw $v0, ($v1)
/* 06C030 8006B430 3C190D01 */ lui $t9, %hi(D_0D008DB8) # $t9, 0xd01
/* 06C034 8006B434 3C100600 */ lui $s0, 0x600
/* 06C038 8006B438 244E0008 */ addiu $t6, $v0, 8
/* 06C03C 8006B43C AC6E0000 */ sw $t6, ($v1)
/* 06C040 8006B440 27398DB8 */ addiu $t9, %lo(D_0D008DB8) # addiu $t9, $t9, -0x7248
/* 06C044 8006B444 AC590004 */ sw $t9, 4($v0)
/* 06C048 8006B448 AC500000 */ sw $s0, ($v0)
/* 06C04C 8006B44C 8C620000 */ lw $v0, ($v1)
/* 06C050 8006B450 3C0E800E */ lui $t6, %hi(D_800E52D0) # $t6, 0x800e
/* 06C054 8006B454 25CE52D0 */ addiu $t6, %lo(D_800E52D0) # addiu $t6, $t6, 0x52d0
/* 06C058 8006B458 24580008 */ addiu $t8, $v0, 8
/* 06C05C 8006B45C AC780000 */ sw $t8, ($v1)
/* 06C060 8006B460 3C0FFD10 */ lui $t7, 0xfd10
/* 06C064 8006B464 AC4F0000 */ sw $t7, ($v0)
/* 06C068 8006B468 AC4E0004 */ sw $t6, 4($v0)
/* 06C06C 8006B46C 8C620000 */ lw $v0, ($v1)
/* 06C070 8006B470 3C18E800 */ lui $t8, 0xe800
/* 06C074 8006B474 3C0EF500 */ lui $t6, (0xF5000100 >> 16) # lui $t6, 0xf500
/* 06C078 8006B478 24590008 */ addiu $t9, $v0, 8
/* 06C07C 8006B47C AC790000 */ sw $t9, ($v1)
/* 06C080 8006B480 AC580000 */ sw $t8, ($v0)
/* 06C084 8006B484 AC400004 */ sw $zero, 4($v0)
/* 06C088 8006B488 8C620000 */ lw $v0, ($v1)
/* 06C08C 8006B48C 3C190700 */ lui $t9, 0x700
/* 06C090 8006B490 35CE0100 */ ori $t6, (0xF5000100 & 0xFFFF) # ori $t6, $t6, 0x100
/* 06C094 8006B494 244F0008 */ addiu $t7, $v0, 8
/* 06C098 8006B498 AC6F0000 */ sw $t7, ($v1)
/* 06C09C 8006B49C AC4E0000 */ sw $t6, ($v0)
/* 06C0A0 8006B4A0 AC590004 */ sw $t9, 4($v0)
/* 06C0A4 8006B4A4 8C620000 */ lw $v0, ($v1)
/* 06C0A8 8006B4A8 3C0FE600 */ lui $t7, 0xe600
/* 06C0AC 8006B4AC 3C19F000 */ lui $t9, 0xf000
/* 06C0B0 8006B4B0 24580008 */ addiu $t8, $v0, 8
/* 06C0B4 8006B4B4 AC780000 */ sw $t8, ($v1)
/* 06C0B8 8006B4B8 AC4F0000 */ sw $t7, ($v0)
/* 06C0BC 8006B4BC AC400004 */ sw $zero, 4($v0)
/* 06C0C0 8006B4C0 8C620000 */ lw $v0, ($v1)
/* 06C0C4 8006B4C4 3C18073F */ lui $t8, (0x073FC000 >> 16) # lui $t8, 0x73f
/* 06C0C8 8006B4C8 3718C000 */ ori $t8, (0x073FC000 & 0xFFFF) # ori $t8, $t8, 0xc000
/* 06C0CC 8006B4CC 244E0008 */ addiu $t6, $v0, 8
/* 06C0D0 8006B4D0 AC6E0000 */ sw $t6, ($v1)
/* 06C0D4 8006B4D4 AC590000 */ sw $t9, ($v0)
/* 06C0D8 8006B4D8 AC580004 */ sw $t8, 4($v0)
/* 06C0DC 8006B4DC 8C620000 */ lw $v0, ($v1)
/* 06C0E0 8006B4E0 3C0EE700 */ lui $t6, 0xe700
/* 06C0E4 8006B4E4 34198000 */ li $t9, 32768
/* 06C0E8 8006B4E8 244F0008 */ addiu $t7, $v0, 8
/* 06C0EC 8006B4EC AC6F0000 */ sw $t7, ($v1)
/* 06C0F0 8006B4F0 AFA200B0 */ sw $v0, 0xb0($sp)
/* 06C0F4 8006B4F4 AC4E0000 */ sw $t6, ($v0)
/* 06C0F8 8006B4F8 AC400004 */ sw $zero, 4($v0)
/* 06C0FC 8006B4FC 8C620000 */ lw $v0, ($v1)
/* 06C100 8006B500 3C0FBA00 */ lui $t7, (0xBA000E02 >> 16) # lui $t7, 0xba00
/* 06C104 8006B504 35EF0E02 */ ori $t7, (0xBA000E02 & 0xFFFF) # ori $t7, $t7, 0xe02
/* 06C108 8006B508 24580008 */ addiu $t8, $v0, 8
/* 06C10C 8006B50C AC780000 */ sw $t8, ($v1)
/* 06C110 8006B510 AFA200AC */ sw $v0, 0xac($sp)
/* 06C114 8006B514 AC4F0000 */ sw $t7, ($v0)
/* 06C118 8006B518 8FB800AC */ lw $t8, 0xac($sp)
/* 06C11C 8006B51C AF190004 */ sw $t9, 4($t8)
/* 06C120 8006B520 87AE011E */ lh $t6, 0x11e($sp)
/* 06C124 8006B524 87AF0120 */ lh $t7, 0x120($sp)
/* 06C128 8006B528 241900D8 */ li $t9, 216
/* 06C12C 8006B52C AFB90018 */ sw $t9, 0x18($sp)
/* 06C130 8006B530 87A70122 */ lh $a3, 0x122($sp)
/* 06C134 8006B534 87A60124 */ lh $a2, 0x124($sp)
/* 06C138 8006B538 87A50126 */ lh $a1, 0x126($sp)
/* 06C13C 8006B53C 87A40128 */ lh $a0, 0x128($sp)
/* 06C140 8006B540 AFAE0014 */ sw $t6, 0x14($sp)
/* 06C144 8006B544 0C012D85 */ jal func_8004B614
/* 06C148 8006B548 AFAF0010 */ sw $t7, 0x10($sp)
/* 06C14C 8006B54C 3C038015 */ lui $v1, %hi(gDisplayListHead) # $v1, 0x8015
/* 06C150 8006B550 24630298 */ addiu $v1, %lo(gDisplayListHead) # addiu $v1, $v1, 0x298
/* 06C154 8006B554 8C620000 */ lw $v0, ($v1)
/* 06C158 8006B558 3C0FB900 */ lui $t7, (0xB900031D >> 16) # lui $t7, 0xb900
/* 06C15C 8006B55C 3C0E0050 */ lui $t6, (0x00505978 >> 16) # lui $t6, 0x50
/* 06C160 8006B560 24580008 */ addiu $t8, $v0, 8
/* 06C164 8006B564 AC780000 */ sw $t8, ($v1)
/* 06C168 8006B568 35CE5978 */ ori $t6, (0x00505978 & 0xFFFF) # ori $t6, $t6, 0x5978
/* 06C16C 8006B56C 35EF031D */ ori $t7, (0xB900031D & 0xFFFF) # ori $t7, $t7, 0x31d
/* 06C170 8006B570 AC4F0000 */ sw $t7, ($v0)
/* 06C174 8006B574 AC4E0004 */ sw $t6, 4($v0)
/* 06C178 8006B578 8C620000 */ lw $v0, ($v1)
/* 06C17C 8006B57C 3C18FD50 */ lui $t8, 0xfd50
/* 06C180 8006B580 3C0F8019 */ lui $t7, %hi(D_8018D4BC) # $t7, 0x8019
/* 06C184 8006B584 24590008 */ addiu $t9, $v0, 8
/* 06C188 8006B588 AC790000 */ sw $t9, ($v1)
/* 06C18C 8006B58C AC580000 */ sw $t8, ($v0)
/* 06C190 8006B590 8DEFD4BC */ lw $t7, %lo(D_8018D4BC)($t7)
/* 06C194 8006B594 3C180708 */ lui $t8, (0x07080200 >> 16) # lui $t8, 0x708
/* 06C198 8006B598 37180200 */ ori $t8, (0x07080200 & 0xFFFF) # ori $t8, $t8, 0x200
/* 06C19C 8006B59C AC4F0004 */ sw $t7, 4($v0)
/* 06C1A0 8006B5A0 8C620000 */ lw $v0, ($v1)
/* 06C1A4 8006B5A4 3C19F550 */ lui $t9, 0xf550
/* 06C1A8 8006B5A8 3C1F0D01 */ lui $ra, %hi(common_square_plain_render) # $ra, 0xd01
/* 06C1AC 8006B5AC 244E0008 */ addiu $t6, $v0, 8
/* 06C1B0 8006B5B0 AC6E0000 */ sw $t6, ($v1)
/* 06C1B4 8006B5B4 AC580004 */ sw $t8, 4($v0)
/* 06C1B8 8006B5B8 AC590000 */ sw $t9, ($v0)
/* 06C1BC 8006B5BC 8C620000 */ lw $v0, ($v1)
/* 06C1C0 8006B5C0 3C0EE600 */ lui $t6, 0xe600
/* 06C1C4 8006B5C4 3C18F300 */ lui $t8, 0xf300
/* 06C1C8 8006B5C8 244F0008 */ addiu $t7, $v0, 8
/* 06C1CC 8006B5CC AC6F0000 */ sw $t7, ($v1)
/* 06C1D0 8006B5D0 AC400004 */ sw $zero, 4($v0)
/* 06C1D4 8006B5D4 AC4E0000 */ sw $t6, ($v0)
/* 06C1D8 8006B5D8 8C620000 */ lw $v0, ($v1)
/* 06C1DC 8006B5DC 3C0F073F */ lui $t7, (0x073FF100 >> 16) # lui $t7, 0x73f
/* 06C1E0 8006B5E0 35EFF100 */ ori $t7, (0x073FF100 & 0xFFFF) # ori $t7, $t7, 0xf100
/* 06C1E4 8006B5E4 24590008 */ addiu $t9, $v0, 8
/* 06C1E8 8006B5E8 AC790000 */ sw $t9, ($v1)
/* 06C1EC 8006B5EC AC4F0004 */ sw $t7, 4($v0)
/* 06C1F0 8006B5F0 AC580000 */ sw $t8, ($v0)
/* 06C1F4 8006B5F4 8C620000 */ lw $v0, ($v1)
/* 06C1F8 8006B5F8 3C19E700 */ lui $t9, 0xe700
/* 06C1FC 8006B5FC 3C0FF548 */ lui $t7, (0xF5481000 >> 16) # lui $t7, 0xf548
/* 06C200 8006B600 244E0008 */ addiu $t6, $v0, 8
/* 06C204 8006B604 AC6E0000 */ sw $t6, ($v1)
/* 06C208 8006B608 AC400004 */ sw $zero, 4($v0)
/* 06C20C 8006B60C AC590000 */ sw $t9, ($v0)
/* 06C210 8006B610 8C620000 */ lw $v0, ($v1)
/* 06C214 8006B614 3C0E0008 */ lui $t6, (0x00080200 >> 16) # lui $t6, 8
/* 06C218 8006B618 35CE0200 */ ori $t6, (0x00080200 & 0xFFFF) # ori $t6, $t6, 0x200
/* 06C21C 8006B61C 24580008 */ addiu $t8, $v0, 8
/* 06C220 8006B620 AC780000 */ sw $t8, ($v1)
/* 06C224 8006B624 35EF1000 */ ori $t7, (0xF5481000 & 0xFFFF) # ori $t7, $t7, 0x1000
/* 06C228 8006B628 AC4F0000 */ sw $t7, ($v0)
/* 06C22C 8006B62C AC4E0004 */ sw $t6, 4($v0)
/* 06C230 8006B630 8C620000 */ lw $v0, ($v1)
/* 06C234 8006B634 3C0F000F */ lui $t7, (0x000FC07C >> 16) # lui $t7, 0xf
/* 06C238 8006B638 35EFC07C */ ori $t7, (0x000FC07C & 0xFFFF) # ori $t7, $t7, 0xc07c
/* 06C23C 8006B63C 24590008 */ addiu $t9, $v0, 8
/* 06C240 8006B640 AC790000 */ sw $t9, ($v1)
/* 06C244 8006B644 3C18F200 */ lui $t8, 0xf200
/* 06C248 8006B648 AC580000 */ sw $t8, ($v0)
/* 06C24C 8006B64C AC4F0004 */ sw $t7, 4($v0)
/* 06C250 8006B650 8C620000 */ lw $v0, ($v1)
/* 06C254 8006B654 3C18800E */ lui $t8, %hi(gBalloonVertexPlane1) # $t8, 0x800e
/* 06C258 8006B658 3C190400 */ lui $t9, (0x0400103F >> 16) # lui $t9, 0x400
/* 06C25C 8006B65C 244E0008 */ addiu $t6, $v0, 8
/* 06C260 8006B660 AC6E0000 */ sw $t6, ($v1)
/* 06C264 8006B664 3739103F */ ori $t9, (0x0400103F & 0xFFFF) # ori $t9, $t9, 0x103f
/* 06C268 8006B668 27185250 */ addiu $t8, %lo(gBalloonVertexPlane1) # addiu $t8, $t8, 0x5250
/* 06C26C 8006B66C AC580004 */ sw $t8, 4($v0)
/* 06C270 8006B670 AC590000 */ sw $t9, ($v0)
/* 06C274 8006B674 8C620000 */ lw $v0, ($v1)
/* 06C278 8006B678 27FF8C78 */ addiu $ra, %lo(common_square_plain_render) # addiu $ra, $ra, -0x7388
/* 06C27C 8006B67C 3C19FD50 */ lui $t9, 0xfd50
/* 06C280 8006B680 244F0008 */ addiu $t7, $v0, 8
/* 06C284 8006B684 AC6F0000 */ sw $t7, ($v1)
/* 06C288 8006B688 AC5F0004 */ sw $ra, 4($v0)
/* 06C28C 8006B68C AC500000 */ sw $s0, ($v0)
/* 06C290 8006B690 8C620000 */ lw $v0, ($v1)
/* 06C294 8006B694 3C188019 */ lui $t8, %hi(D_8018D4C0) # $t8, 0x8019
/* 06C298 8006B698 244E0008 */ addiu $t6, $v0, 8
/* 06C29C 8006B69C AC6E0000 */ sw $t6, ($v1)
/* 06C2A0 8006B6A0 AC590000 */ sw $t9, ($v0)
/* 06C2A4 8006B6A4 8F18D4C0 */ lw $t8, %lo(D_8018D4C0)($t8)
/* 06C2A8 8006B6A8 3C19F550 */ lui $t9, 0xf550
/* 06C2AC 8006B6AC 270FFFC0 */ addiu $t7, $t8, -0x40
/* 06C2B0 8006B6B0 AC4F0004 */ sw $t7, 4($v0)
/* 06C2B4 8006B6B4 8C620000 */ lw $v0, ($v1)
/* 06C2B8 8006B6B8 3C180708 */ lui $t8, (0x07080200 >> 16) # lui $t8, 0x708
/* 06C2BC 8006B6BC 37180200 */ ori $t8, (0x07080200 & 0xFFFF) # ori $t8, $t8, 0x200
/* 06C2C0 8006B6C0 244E0008 */ addiu $t6, $v0, 8
/* 06C2C4 8006B6C4 AC6E0000 */ sw $t6, ($v1)
/* 06C2C8 8006B6C8 AC580004 */ sw $t8, 4($v0)
/* 06C2CC 8006B6CC AC590000 */ sw $t9, ($v0)
/* 06C2D0 8006B6D0 8C620000 */ lw $v0, ($v1)
/* 06C2D4 8006B6D4 3C0EE600 */ lui $t6, 0xe600
/* 06C2D8 8006B6D8 3C18F300 */ lui $t8, 0xf300
/* 06C2DC 8006B6DC 244F0008 */ addiu $t7, $v0, 8
/* 06C2E0 8006B6E0 AC6F0000 */ sw $t7, ($v1)
/* 06C2E4 8006B6E4 AC400004 */ sw $zero, 4($v0)
/* 06C2E8 8006B6E8 AC4E0000 */ sw $t6, ($v0)
/* 06C2EC 8006B6EC 8C620000 */ lw $v0, ($v1)
/* 06C2F0 8006B6F0 3C0F073F */ lui $t7, (0x073FF100 >> 16) # lui $t7, 0x73f
/* 06C2F4 8006B6F4 35EFF100 */ ori $t7, (0x073FF100 & 0xFFFF) # ori $t7, $t7, 0xf100
/* 06C2F8 8006B6F8 24590008 */ addiu $t9, $v0, 8
/* 06C2FC 8006B6FC AC790000 */ sw $t9, ($v1)
/* 06C300 8006B700 AC4F0004 */ sw $t7, 4($v0)
/* 06C304 8006B704 AC580000 */ sw $t8, ($v0)
/* 06C308 8006B708 8C620000 */ lw $v0, ($v1)
/* 06C30C 8006B70C 3C19E700 */ lui $t9, 0xe700
/* 06C310 8006B710 3C0FF548 */ lui $t7, (0xF5481000 >> 16) # lui $t7, 0xf548
/* 06C314 8006B714 244E0008 */ addiu $t6, $v0, 8
/* 06C318 8006B718 AC6E0000 */ sw $t6, ($v1)
/* 06C31C 8006B71C AC400004 */ sw $zero, 4($v0)
/* 06C320 8006B720 AC590000 */ sw $t9, ($v0)
/* 06C324 8006B724 8C620000 */ lw $v0, ($v1)
/* 06C328 8006B728 3C0E0008 */ lui $t6, (0x00080200 >> 16) # lui $t6, 8
/* 06C32C 8006B72C 35CE0200 */ ori $t6, (0x00080200 & 0xFFFF) # ori $t6, $t6, 0x200
/* 06C330 8006B730 24580008 */ addiu $t8, $v0, 8
/* 06C334 8006B734 AC780000 */ sw $t8, ($v1)
/* 06C338 8006B738 35EF1000 */ ori $t7, (0xF5481000 & 0xFFFF) # ori $t7, $t7, 0x1000
/* 06C33C 8006B73C AC4F0000 */ sw $t7, ($v0)
/* 06C340 8006B740 AC4E0004 */ sw $t6, 4($v0)
/* 06C344 8006B744 8C620000 */ lw $v0, ($v1)
/* 06C348 8006B748 3C0F000F */ lui $t7, (0x000FC07C >> 16) # lui $t7, 0xf
/* 06C34C 8006B74C 35EFC07C */ ori $t7, (0x000FC07C & 0xFFFF) # ori $t7, $t7, 0xc07c
/* 06C350 8006B750 24590008 */ addiu $t9, $v0, 8
/* 06C354 8006B754 AC790000 */ sw $t9, ($v1)
/* 06C358 8006B758 3C18F200 */ lui $t8, 0xf200
/* 06C35C 8006B75C AC580000 */ sw $t8, ($v0)
/* 06C360 8006B760 AC4F0004 */ sw $t7, 4($v0)
/* 06C364 8006B764 8C620000 */ lw $v0, ($v1)
/* 06C368 8006B768 3C18800E */ lui $t8, %hi(gBalloonVertexPlane2) # $t8, 0x800e
/* 06C36C 8006B76C 3C190400 */ lui $t9, (0x0400103F >> 16) # lui $t9, 0x400
/* 06C370 8006B770 244E0008 */ addiu $t6, $v0, 8
/* 06C374 8006B774 AC6E0000 */ sw $t6, ($v1)
/* 06C378 8006B778 3739103F */ ori $t9, (0x0400103F & 0xFFFF) # ori $t9, $t9, 0x103f
/* 06C37C 8006B77C 27185290 */ addiu $t8, %lo(gBalloonVertexPlane2) # addiu $t8, $t8, 0x5290
/* 06C380 8006B780 AC580004 */ sw $t8, 4($v0)
/* 06C384 8006B784 AC590000 */ sw $t9, ($v0)
/* 06C388 8006B788 8C620000 */ lw $v0, ($v1)
/* 06C38C 8006B78C 3C180001 */ lui $t8, (0x00010001 >> 16) # lui $t8, 1
/* 06C390 8006B790 37180001 */ ori $t8, (0x00010001 & 0xFFFF) # ori $t8, $t8, 1
/* 06C394 8006B794 244F0008 */ addiu $t7, $v0, 8
/* 06C398 8006B798 AC6F0000 */ sw $t7, ($v1)
/* 06C39C 8006B79C AC5F0004 */ sw $ra, 4($v0)
/* 06C3A0 8006B7A0 AC500000 */ sw $s0, ($v0)
/* 06C3A4 8006B7A4 8C620000 */ lw $v0, ($v1)
/* 06C3A8 8006B7A8 3C19BB00 */ lui $t9, 0xbb00
/* 06C3AC 8006B7AC 244E0008 */ addiu $t6, $v0, 8
/* 06C3B0 8006B7B0 AC6E0000 */ sw $t6, ($v1)
/* 06C3B4 8006B7B4 AC580004 */ sw $t8, 4($v0)
/* 06C3B8 8006B7B8 AC590000 */ sw $t9, ($v0)
/* 06C3BC 8006B7BC 3C028016 */ lui $v0, %hi(gMatrixEffectCount) # $v0, 0x8016
/* 06C3C0 8006B7C0 24424AF0 */ addiu $v0, %lo(gMatrixEffectCount) # addiu $v0, $v0, 0x4af0
/* 06C3C4 8006B7C4 844F0000 */ lh $t7, ($v0)
/* 06C3C8 8006B7C8 8FBF0034 */ lw $ra, 0x34($sp)
/* 06C3CC 8006B7CC 8FB00030 */ lw $s0, 0x30($sp)
/* 06C3D0 8006B7D0 D7B40028 */ ldc1 $f20, 0x28($sp)
/* 06C3D4 8006B7D4 25EE0001 */ addiu $t6, $t7, 1
/* 06C3D8 8006B7D8 A44E0000 */ sh $t6, ($v0)
/* 06C3DC 8006B7DC 03E00008 */ jr $ra
/* 06C3E0 8006B7E0 27BD0180 */ addiu $sp, $sp, 0x180
+134 -357
View File
@@ -5415,397 +5415,182 @@ void func_8006A280(Player *player, s8 arg1, s16 arg2, s8 arg3) {
}
}
#ifdef MIPS_TO_C
//generated by m2c commit beb457dabfc7a01ec6540a5404a6a05097a13602 on Oct-14-2023
extern ? D_8018D4D0;
extern ? D_8018D530;
extern ? D_8018D590;
extern ? D_8018D620;
extern ? D_8018D650;
extern ? D_8018D6B0;
extern ? D_8018D710;
extern ? D_8018D770;
extern ? D_8018D7A0;
extern ? D_8018D7D0;
extern ? D_8018D800;
extern ? D_8018D830;
extern ? D_8018D860;
extern ? D_8018D890;
void func_8006A50C(Player *player, f32 arg1, f32 arg2, s8 arg3, s8 arg4, s16 arg5) {
f32 sp44;
f32 sp40;
f32 sp3C;
s32 sp38;
u16 *sp34;
s32 sp30;
s32 temp_v0;
s32 temp_v1;
u16 *temp_t0;
f32 someX;
f32 someY;
f32 someZ;
temp_v0 = arg4 * 2;
temp_t0 = (arg3 * 6) + temp_v0 + gPlayerBalloonStatus;
*temp_t0 = 0;
temp_v1 = arg4 * 4;
*(&D_8018D650 + ((arg3 * 0xC) + temp_v1)) = 0.1f;
*(&D_8018D6B0 + ((arg3 * 0xC) + temp_v1)) = 0.0f;
*(&D_8018D710 + ((arg3 * 0xC) + temp_v1)) = 0.0f;
*(&D_8018D770 + ((arg3 * 6) + temp_v0)) = 0;
*(&D_8018D7A0 + ((arg3 * 6) + temp_v0)) = 0;
*(&D_8018D7D0 + ((arg3 * 6) + temp_v0)) = 0;
*(&D_8018D800 + ((arg3 * 6) + temp_v0)) = 5;
*(&D_8018D830 + ((arg3 * 6) + temp_v0)) = 1;
*(&D_8018D620 + ((arg3 * 6) + temp_v0)) = -player->unk_02C[1] - player->unk_0C0;
sp34 = temp_t0;
sp30 = temp_v1;
sp38 = temp_v0;
func_80062B18(&sp44, &sp40, &sp3C, arg1, 4.0f, (f32) ((f64) arg2 + -3.8), (u16) (s32) -player->unk_02C[1], (u16) 0);
*(&D_8018D4D0 + ((arg3 * 0xC) + sp30)) = player->pos[0] + sp44;
*(&D_8018D590 + ((arg3 * 0xC) + sp30)) = player->pos[2] + sp3C;
*(&D_8018D530 + ((arg3 * 0xC) + sp30)) = (player->pos[1] - player->boundingBoxSize) + sp40;
*sp34 |= 1;
*(&D_8018D860 + ((arg3 * 6) + sp38)) = arg5;
*(&D_8018D890 + ((arg3 * 6) + sp38)) = 0;
gPlayerBalloonStatus[arg3][arg4] = 0;
D_8018D650[arg3][arg4] = 0.1f;
D_8018D6B0[arg3][arg4] = 0.0f;
D_8018D710[arg3][arg4] = 0.0f;
D_8018D770[arg3][arg4] = 0;
D_8018D7A0[arg3][arg4] = 0;
D_8018D7D0[arg3][arg4] = 0;
D_8018D800[arg3][arg4] = 5;
D_8018D830[arg3][arg4] = 1;
D_8018D620[arg3][arg4] = -player->unk_02C[1] - player->unk_0C0;
func_80062B18(&someX, &someY, &someZ, arg1, 4.0f, arg2 + -3.8, -player->unk_02C[1], 0);
D_8018D4D0[arg3][arg4] = player->pos[0] + someX;
D_8018D590[arg3][arg4] = player->pos[2] + someZ;
D_8018D530[arg3][arg4] = (player->pos[1] - player->boundingBoxSize) + someY;
gPlayerBalloonStatus[arg3][arg4] |= 1;
D_8018D860[arg3][arg4] = arg5;
D_8018D890[arg3][arg4] = 0;
}
#else
GLOBAL_ASM("asm/non_matchings/code_80057C60/func_8006A50C.s")
#endif
#ifdef MIPS_TO_C
//generated by m2c commit beb457dabfc7a01ec6540a5404a6a05097a13602 on Oct-14-2023
extern ? D_8018D4D0;
extern ? D_8018D530;
extern ? D_8018D590;
extern ? D_8018D620;
extern ? D_8018D650;
extern ? D_8018D6B0;
extern ? D_8018D710;
extern ? D_8018D770;
extern ? D_8018D7A0;
extern ? D_8018D7D0;
extern ? D_8018D800;
extern ? D_8018D830;
extern ? D_8018D860;
extern ? D_8018D890;
extern ? D_8018D8D0;
static ? D_800E4914; /* unable to generate initializer */
void func_8006A7C0(Player *player, f32 arg1, f32 arg2, s8 arg3, s8 arg4) {
? sp80;
f32 sp78;
f32 sp74;
f32 sp70;
f32 sp80[] = {
9.0f, 10.0f, 9.0f, 8.0f,
10.0f, 9.5f, 9.5f, 11.0f,
};
s32 stackPadding0;
f32 someX;
f32 someY;
f32 someZ;
f32 sp6C;
f32 *sp60;
s32 sp5C;
u16 *sp58;
s32 sp54;
f32 *sp50;
f32 *sp4C;
s16 *sp3C;
s16 *sp34;
f32 *temp_a1;
f32 *temp_t2;
f32 *temp_v0_2;
f32 *temp_v1;
f32 *temp_v1_2;
f32 *temp_v1_3;
f32 *var_t2;
f32 temp_f8;
f32 var_f12;
f64 var_f0;
f64 var_f0_2;
s16 *temp_a2;
s16 *temp_v0;
s16 *var_a1;
s16 *var_v0;
s32 temp_t1;
s32 temp_t8;
s32 var_t0;
s32 var_t1;
u16 *temp_t7;
s32 stackPadding1;
s32 stackPadding2;
sp80.unk0 = (s32) D_800E4914.unk0;
sp80.unk4 = (s32) D_800E4914.unk4;
sp80.unk8 = (s32) D_800E4914.unk8;
sp80.unkC = (s32) D_800E4914.unkC;
sp80.unk10 = (s32) D_800E4914.unk10;
sp80.unk14 = (s32) D_800E4914.unk14;
sp80.unk18 = (s32) D_800E4914.unk18;
sp80.unk1C = (s32) D_800E4914.unk1C;
var_f12 = player->unk_094;
var_t0 = arg4 * 2;
temp_t7 = (arg3 * 6) + var_t0 + gPlayerBalloonStatus;
sp58 = temp_t7;
temp_t1 = arg4 * 4;
sp6C = (-(var_f12 / 18.0f) * 216.0f) / 10.0f;
if ((*temp_t7 & 2) != 2) {
temp_a1 = (arg3 * 0xC) + temp_t1 + &D_8018D650;
*temp_a1 = (f32) ((f64) *temp_a1 + (-0.003 + ((f64) -var_f12 * 0.0006)));
var_f0 = (f64) *temp_a1;
temp_v1 = (arg3 * 0xC) + temp_t1 + &D_8018D6B0;
temp_t2 = (arg3 * 0xC) + temp_t1 + &D_8018D710;
if (var_f0 >= 0.05) {
*temp_a1 = 0.05f;
var_f0 = (f64) *temp_a1;
sp6C = (-(player->unk_094 / 18.0f) * 216.0f) / 10.0f;
if ((gPlayerBalloonStatus[arg3][arg4] & 2) != 2) {
D_8018D650[arg3][arg4] += -0.003 + (-player->unk_094 * 0.0006);
if (D_8018D650[arg3][arg4] >= 0.05) {
D_8018D650[arg3][arg4] = 0.05f;
}
if (var_f0 <= -0.05) {
*temp_a1 = -0.05f;
if (D_8018D650[arg3][arg4] <= -0.05) {
D_8018D650[arg3][arg4] = -0.05f;
}
*temp_v1 += *temp_a1;
var_f0_2 = (f64) *temp_v1;
if (var_f0_2 >= 0.06) {
*temp_v1 = 0.06f;
var_f0_2 = (f64) *temp_v1;
D_8018D6B0[arg3][arg4] += D_8018D650[arg3][arg4];
if (D_8018D6B0[arg3][arg4] >= 0.06) {
D_8018D6B0[arg3][arg4] = 0.06f;
}
if (var_f0_2 <= -0.06) {
*temp_v1 = -0.06f;
if (D_8018D6B0[arg3][arg4] <= -0.06) {
D_8018D6B0[arg3][arg4] = -0.06f;
}
*temp_t2 += *temp_v1;
if (*temp_t2 < 0.0f) {
sp60 = temp_v1;
sp50 = temp_a1;
sp5C = var_t0;
sp4C = temp_t2;
temp_f8 = (f32) (random_int(0x000BU) / 10);
*temp_v1 = 0.0f;
*temp_t2 = 0.0f;
*temp_a1 = temp_f8;
D_8018D710[arg3][arg4] += D_8018D6B0[arg3][arg4];
if (D_8018D710[arg3][arg4] < 0.0f) {
D_8018D650[arg3][arg4] = random_int(0x000BU) / 10;
D_8018D6B0[arg3][arg4] = 0.0f;
D_8018D710[arg3][arg4] = 0.0f;
}
*(&D_8018D620 + ((arg3 * 6) + var_t0)) = -player->unk_02C[1] - player->unk_0C0;
sp5C = var_t0;
move_s16_towards((arg3 * 6) + var_t0 + &D_8018D890, (s16) (s32) (player->unk_094 * 182.0f), 0.1f);
var_f12 = player->unk_094;
D_8018D620[arg3][arg4] = -player->unk_02C[1] - player->unk_0C0;
move_s16_towards(&D_8018D890[arg3][arg4], player->unk_094 * 182.0f, 0.1f);
}
temp_a2 = (arg3 * 6) + var_t0 + &D_8018D830;
temp_t8 = arg4 * 4;
var_t1 = temp_t8;
sp50 = (arg3 * 6) + var_t0 + &D_8018D620;
var_t2 = (arg3 * 0xC) + temp_t8 + &D_8018D710;
if (*temp_a2 == 1) {
var_a1 = (arg3 * 6) + var_t0 + &D_8018D800;
var_v0 = (arg3 * 6) + var_t0 + &D_8018D770;
*var_v0 = (s16) (s32) ((f32) *var_v0 + ((f32) *var_a1 - var_f12));
if (D_8018D830[arg3][arg4] == 1) {
D_8018D770[arg3][arg4] += D_8018D800[arg3][arg4] - player->unk_094;
} else {
var_a1 = (arg3 * 6) + var_t0 + &D_8018D800;
var_v0 = (arg3 * 6) + var_t0 + &D_8018D770;
*var_v0 = (s16) (s32) ((f32) *var_v0 + ((f32) *var_a1 + var_f12));
D_8018D770[arg3][arg4] += D_8018D800[arg3][arg4] + player->unk_094;
}
if (*var_v0 >= 0xB) {
*var_v0 = 0x000B;
if (D_8018D770[arg3][arg4] >= 0xB) {
D_8018D770[arg3][arg4] = 0x000B;
}
if (*var_v0 < -0xA) {
*var_v0 = -0x000B;
if (D_8018D770[arg3][arg4] < -0xA) {
D_8018D770[arg3][arg4] = -0x000B;
}
temp_v0 = (arg3 * 6) + var_t0 + &D_8018D7A0;
*temp_v0 += *var_v0;
if (*temp_v0 >= 0x29) {
*temp_v0 = 0x0029;
D_8018D7A0[arg3][arg4] += D_8018D770[arg3][arg4];
if (D_8018D7A0[arg3][arg4] >= 0x29) {
D_8018D7A0[arg3][arg4] = 0x0029;
}
if (*temp_v0 < -0x28) {
*temp_v0 = -0x0029;
if (D_8018D7A0[arg3][arg4] < -0x28) {
D_8018D7A0[arg3][arg4] = -0x0029;
}
temp_v1_2 = (arg3 * 6) + var_t0 + &D_8018D7D0;
*temp_v1_2 = (s16) (*temp_v1_2 + *temp_v0);
if (*temp_v1_2 >= 0x38E) {
sp60 = temp_v1_2;
sp34 = var_a1;
sp3C = temp_a2;
sp5C = var_t0;
sp54 = var_t1;
sp4C = var_t2;
*var_a1 = -random_int(8U);
if (*temp_a2 != 1) {
*temp_a2 = 1;
D_8018D7D0[arg3][arg4] += D_8018D7A0[arg3][arg4];
if (D_8018D7D0[arg3][arg4] >= 0x38E) {
D_8018D800[arg3][arg4] = -random_int(8U);
if (D_8018D830[arg3][arg4] != 1) {
D_8018D830[arg3][arg4] = 1;
}
}
if (*temp_v1_2 < -0x38D) {
sp34 = var_a1;
sp3C = temp_a2;
sp5C = var_t0;
sp54 = var_t1;
sp4C = var_t2;
*var_a1 = random_int(8U);
if (*temp_a2 != -1) {
*temp_a2 = -1;
if (D_8018D7D0[arg3][arg4] < -0x38D) {
D_8018D800[arg3][arg4] = random_int(8U);
if (D_8018D830[arg3][arg4] != -1) {
D_8018D830[arg3][arg4] = -1;
}
}
sp54 = var_t1;
sp5C = var_t0;
func_80062B18(&sp78, &sp74, &sp70, arg1, (sp + (player->characterId * 4))->unk80 - *var_t2, (f32) ((f64) arg2 + -3.2 + (f64) (sp6C * 1.0f)), (u16) (s32) -*sp50, (u16) (player->unk_206 * -2));
if ((*sp58 & 2) != 2) {
*(&D_8018D530 + ((arg3 * 0xC) + sp54)) = (player->pos[1] - player->boundingBoxSize) + sp74;
*(&D_8018D4D0 + ((arg3 * 0xC) + sp54)) = player->pos[0] + sp78;
*(&D_8018D590 + ((arg3 * 0xC) + sp54)) = player->pos[2] + sp70;
*(&D_8018D8D0 + ((arg3 * 6) + sp5C)) = 0;
return;
}
temp_v0_2 = (arg3 * 0xC) + sp54 + &D_8018D530;
temp_v1_3 = (arg3 * 6) + sp5C + &D_8018D8D0;
*temp_v0_2 = (f32) ((f64) *temp_v0_2 + 0.2);
*temp_v1_3 = (s16) (*temp_v1_3 + 1);
sp60 = temp_v1_3;
move_s16_towards((arg3 * 6) + sp5C + &D_8018D890, 0, 0.1f);
move_s16_towards((arg3 * 6) + sp5C + &D_8018D860, 0, 0.1f);
if (*temp_v1_3 >= 0x78) {
func_8006B974((s32) player, arg3, arg4);
func_80062B18(&someX, &someY, &someZ, arg1, sp80[player->characterId] - D_8018D710[arg3][arg4], arg2 + -3.2 + (sp6C * 1), -D_8018D620[arg3][arg4], -player->unk_206 * 2);
if ((gPlayerBalloonStatus[arg3][arg4] & 2) != 2) {
D_8018D530[arg3][arg4] = (player->pos[1] - player->boundingBoxSize) + someY;
D_8018D4D0[arg3][arg4] = player->pos[0] + someX;
D_8018D590[arg3][arg4] = player->pos[2] + someZ;
D_8018D8D0[arg3][arg4] = 0;
} else {
D_8018D530[arg3][arg4] += 0.2;
D_8018D8D0[arg3][arg4] += 1;
move_s16_towards(&D_8018D890[arg3][arg4], 0, 0.1f);
move_s16_towards(&D_8018D860[arg3][arg4], 0, 0.1f);
if (D_8018D8D0[arg3][arg4] >= 0x78) {
func_8006B974((s32) player, arg3, arg4);
}
}
}
#else
GLOBAL_ASM("asm/non_matchings/code_80057C60/func_8006A7C0.s")
#endif
#ifdef MIPS_TO_C
//generated by m2c commit beb457dabfc7a01ec6540a5404a6a05097a13602 on Oct-14-2023
extern ? D_8018D4D0;
extern ? D_8018D530;
extern ? D_8018D590;
extern ? D_8018D7D0;
extern ? D_8018D860;
extern ? D_8018D890;
static ? gBalloonVertexPlane1; /* unable to generate initializer */
static ? gBalloonVertexPlane2; /* unable to generate initializer */
static ? D_800E52D0; /* unable to generate initializer */
static ? D_800E4934; /* unable to generate initializer */
static ? D_800E4954; /* unable to generate initializer */
void func_8006AFD0(Player *player, s16 arg1, s8 arg2, s8 arg3) {
f32 sp13C;
f32 sp138;
f32 sp134;
s16 sp130;
s16 sp12E;
s16 sp12C;
s16 sp128;
s16 sp126;
s16 sp124;
s16 sp122;
s16 sp120;
s16 sp11E;
s16 sp11C;
Gfx *spB0;
Gfx *spAC;
f32 sp58;
void *sp54;
s32 sp44;
s32 sp40;
s16 *sp3C;
Camera *temp_v0_2;
Gfx *temp_v0_10;
Gfx *temp_v0_11;
Gfx *temp_v0_12;
Gfx *temp_v0_13;
Gfx *temp_v0_14;
Gfx *temp_v0_15;
Gfx *temp_v0_16;
Gfx *temp_v0_17;
Gfx *temp_v0_18;
Gfx *temp_v0_19;
Gfx *temp_v0_20;
Gfx *temp_v0_21;
Gfx *temp_v0_22;
Gfx *temp_v0_23;
Gfx *temp_v0_24;
Gfx *temp_v0_25;
Gfx *temp_v0_26;
Gfx *temp_v0_27;
Gfx *temp_v0_28;
Gfx *temp_v0_29;
Gfx *temp_v0_30;
Gfx *temp_v0_31;
Gfx *temp_v0_3;
Gfx *temp_v0_4;
Gfx *temp_v0_5;
Gfx *temp_v0_6;
Gfx *temp_v0_7;
Gfx *temp_v0_8;
Gfx *temp_v0_9;
f32 temp_f0;
f32 temp_f20;
f32 var_f20;
f64 var_f0;
s16 *temp_v1_2;
void func_8006AFD0(Player *player, s8 arg1, s16 arg2, s8 arg3) {
Mat4 sp140;
Vec3f sp134;
Vec3s sp12C;
s16 stackPadding;
s16 primRed;
s16 primGreen;
s16 primBlue;
s16 envRed;
s16 envGreen;
s16 envBlue;
s16 temp_t1;
s32 temp_a0;
s32 temp_t6;
s32 temp_t7;
s32 temp_v0;
s32 temp_v1;
u16 temp_t0;
f32 xdiff;
f32 zdiff;
f32 var_f20;
s32 primColors[] = {
MAKE_RGB(0xC8, 0x01, 0x00), MAKE_RGB(0x00, 0x70, 0x01), MAKE_RGB(0x10, 0x79, 0x51), MAKE_RGB(0x00, 0x59, 0x70),
MAKE_RGB(0x70, 0x55, 0x00), MAKE_RGB(0x7A, 0x7E, 0x00), MAKE_RGB(0x77, 0x2C, 0x24), MAKE_RGB(0x30, 0x14, 0x58),
};
s32 envColors[] = {
MAKE_RGB(0xDC, 0x00, 0x00), MAKE_RGB(0x00, 0x8C, 0x06), MAKE_RGB(0x00, 0x00, 0x51), MAKE_RGB(0x00, 0x00, 0x00),
MAKE_RGB(0x00, 0x00, 0x00), MAKE_RGB(0x00, 0x00, 0x00), MAKE_RGB(0x00, 0x00, 0x00), MAKE_RGB(0x00, 0x00, 0x00),
};
spF0[0].unk0 = D_800E4934.unk0;
spF0[0].unk4 = (s32) D_800E4934.unk4;
spF0[0].unk8 = (s32) D_800E4934.unk8;
spF0[0].unkC = (s32) D_800E4934.unkC;
spF0[0].unk10 = (s32) D_800E4934.unk10;
spF0[0].unk14 = (s32) D_800E4934.unk14;
spF0[0].unk18 = (s32) D_800E4934.unk18;
spF0[0].unk1C = (s32) D_800E4934.unk1C;
spD0[0].unk0 = D_800E4954.unk0;
spD0[0].unk4 = (s32) D_800E4954.unk4;
spD0[0].unk8 = (s32) D_800E4954.unk8;
spD0[0].unkC = (s32) D_800E4954.unkC;
spD0[0].unk10 = (s32) D_800E4954.unk10;
spD0[0].unk14 = (s32) D_800E4954.unk14;
spD0[0].unk18 = (s32) D_800E4954.unk18;
spD0[0].unk1C = (s32) D_800E4954.unk1C;
temp_t0 = player->characterId;
temp_v0 = (&spF0[0])[temp_t0];
sp128 = (temp_v0 >> 0x10) & 0xFF;
sp126 = (temp_v0 >> 8) & 0xFF;
sp124 = temp_v0 & 0xFF;
temp_v1 = (&spD0[0])[temp_t0];
sp122 = (temp_v1 >> 0x10) & 0xFF;
sp120 = (temp_v1 >> 8) & 0xFF;
sp11E = temp_v1 & 0xFF;
sp54 = player + (arg3 * 2);
temp_t1 = ((s32) ((player->unk_02C[1] + player->unk_048[arg3] + player->unk_0C0) & 0xFFFF) / 128) << 7;
if (arg3 == (s8) arg1) {
primRed = (primColors[player->characterId] >> 0x10) & 0xFF;
primGreen = (primColors[player->characterId] >> 0x08) & 0xFF;
primBlue = (primColors[player->characterId] >> 0x00) & 0xFF;
envRed = (envColors[player->characterId] >> 0x10) & 0xFF;
envGreen = (envColors[player->characterId] >> 0x08) & 0xFF;
envBlue = (envColors[player->characterId] >> 0x00) & 0xFF;
temp_t1 = (((player->unk_048[arg3] + player->unk_02C[1] + player->unk_0C0) & 0xFFFF) / 128);
temp_t1 <<= 7;
if (arg3 == arg1) {
var_f20 = 0.3f;
} else {
temp_v0_2 = &cameras[arg3];
temp_f20 = player->pos[0] - temp_v0_2->pos[0];
temp_f0 = player->pos[2] - temp_v0_2->pos[2];
// wut?
xdiff = (var_f20 = player->pos[0] - cameras[arg3].pos[0]);
zdiff = player->pos[2] - cameras[arg3].pos[2];
if (gActiveScreenMode != 3) {
sp11C = temp_t1;
var_f20 = sqrtf((temp_f20 * temp_f20) + (temp_f0 * temp_f0)) / 300.0f;
var_f20 = sqrtf((xdiff * xdiff) + (zdiff * zdiff)) / 300.0f;
} else {
sp11C = temp_t1;
var_f20 = sqrtf((temp_f20 * temp_f20) + (temp_f0 * temp_f0)) / 200.0f;
var_f20 = sqrtf((xdiff * xdiff) + (zdiff * zdiff)) / 200.0f;
}
var_f0 = (f64) var_f20;
if (var_f0 >= 1.8) {
if (var_f20 >= 1.8) {
var_f20 = 1.8f;
var_f0 = (f64) 1.8f;
}
if (var_f0 <= 0.3) {
if (var_f20 <= 0.3) {
var_f20 = 0.3f;
}
}
temp_t7 = (s16) arg2 * 4;
temp_a0 = temp_t1 & 0xFFFF;
sp44 = temp_a0;
sp134 = *(&D_8018D4D0 + (((s8) arg1 * 0xC) + temp_t7));
sp138 = *(&D_8018D530 + (((s8) arg1 * 0xC) + temp_t7));
sp13C = *(&D_8018D590 + (((s8) arg1 * 0xC) + temp_t7));
temp_t6 = (s16) arg2 * 2;
temp_v1_2 = ((s8) arg1 * 6) + temp_t6 + &D_8018D890;
sp12C = (s16) (s32) -(coss((u16) temp_a0) * (f32) (*temp_v1_2 * 4));
sp3C = temp_v1_2;
sp40 = temp_t6;
sp12E = sp54->unk48;
sp58 = coss(unksp46);
sp130 = (s16) (s32) (((f32) *(&D_8018D7D0 + (((s8) arg1 * 6) + temp_t6)) - ((f32) *(&D_8018D860 + (((s8) arg1 * 6) + temp_t6)) * sp58)) - (sins(unksp46) * (f32) (*sp3C * 8)));
mtxf_translate_rotate((f32 (*)[4]) &sp140[0], &sp134, &sp12C);
mtxf_scale2((f32 (*)[4]) &sp140[0], var_f20);
convert_to_fixed_point_matrix(&gGfxPool->mtxEffect[gMatrixEffectCount], (f32 (*)[4]) &sp140[0]);
sp134[0] = D_8018D4D0[arg1][arg2];
sp134[1] = D_8018D530[arg1][arg2];
sp134[2] = D_8018D590[arg1][arg2];
sp12C[0] = -((D_8018D890[arg1][arg2] * 4) * coss(temp_t1));
sp12C[1] = player->unk_048[arg3];
sp12C[2] = D_8018D7D0[arg1][arg2] - (D_8018D860[arg1][arg2] * coss(temp_t1)) - ((D_8018D890[arg1][arg2] * 8) * sins(temp_t1));
mtxf_translate_rotate(sp140, sp134, sp12C);
mtxf_scale2(sp140, var_f20);
convert_to_fixed_point_matrix(&gGfxPool->mtxEffect[gMatrixEffectCount], sp140);
gSPMatrix(gDisplayListHead++, PHYSICAL_TO_VIRTUAL(&gGfxPool->mtxEffect[gMatrixEffectCount], G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->mtxEffect[gMatrixEffectCount]), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
gSPDisplayList(gDisplayListHead++, D_0D008DB8);
gDPLoadTLUT_pal256(gDisplayListHead++, 0x800E52D0);
gDPLoadTLUT_pal256(gDisplayListHead++, D_800E52D0);
gDPSetTextureLUT(gDisplayListHead++, G_TT_RGBA16);
func_8004B614((s32) sp128, (s32) sp126, (s32) sp124, (s32) sp122, (s32) sp120, (s32) sp11E, 0x000000D8);
func_8004B614(primRed, primGreen, primBlue, envRed, envGreen, envBlue, 0x000000D8);
gDPSetRenderMode(gDisplayListHead++, AA_EN | Z_CMP | Z_UPD | IM_RD | CVG_DST_WRAP | ZMODE_XLU | CVG_X_ALPHA | FORCE_BL | GBL_c1(G_BL_CLR_IN, G_BL_A_IN, G_BL_CLR_MEM, G_BL_1MA), AA_EN | Z_CMP | Z_UPD | IM_RD | CVG_DST_WRAP | ZMODE_XLU | CVG_X_ALPHA | FORCE_BL | GBL_c2(G_BL_CLR_IN, G_BL_A_IN, G_BL_CLR_MEM, G_BL_1MA));
gDPLoadTextureBlock(gDisplayListHead++, D_8018D4BC, G_IM_FMT_CI, G_IM_SIZ_8b, 64, 32, 0, G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD);
@@ -5817,9 +5602,6 @@ void func_8006AFD0(Player *player, s16 arg1, s8 arg2, s8 arg3) {
gSPTexture(gDisplayListHead++, 0x0001, 0x0001, 0, G_TX_RENDERTILE, G_OFF);
gMatrixEffectCount++;
}
#else
GLOBAL_ASM("asm/non_matchings/code_80057C60/func_8006AFD0.s")
#endif
void func_8006B7E4(Player* player, s8 arg1) {
func_8006A50C(player, 0.0f, 0.0f, arg1, (s8) 0, (s16) 0);
@@ -5879,11 +5661,6 @@ void func_8006BA94(Player* player, s8 playerIndex, s8 arg2) {
}
}
// data/data_code_80071F00_2.s
extern Vtx gBalloonVertexPlane1[];
extern Vtx gBalloonVertexPlane2[];
extern u8 D_800E52D0[];
void render_balloon(Vec3f arg0, f32 arg1, s16 arg2, s16 arg3) {
Mat4 sp108;
Vec3f spFC;
+22 -1
View File
@@ -196,7 +196,7 @@ void func_8006A01C(Player*, s8, s16, s8);
void func_8006A280(Player*, s8, s16, s8);
void func_8006A50C(Player*, f32, f32, s8, s8, s16);
void func_8006A7C0(Player*, f32, f32, s8, s8);
void func_8006AFD0(Player*, s16, s8, s8);
void func_8006AFD0(Player*, s8, s16, s8);
void func_8006B7E4(Player*, s8);
void func_8006B87C(Player*, s8);
@@ -229,12 +229,33 @@ void func_8006E848(Player*, s8, s8);
void func_8006E8C4(Player*, s8, s8);
void func_8006E940(Player*, s8, s8);
// data/data_code_80071F00_2.s
extern Vtx gBalloonVertexPlane1[];
extern Vtx gBalloonVertexPlane2[];
extern u8 D_800E52D0[];
extern s16 D_800E4730[];
extern u8 **D_800E4770[];
extern u8 **D_800E47A0[];
extern s32 D_800E47DC[];
extern s32 D_800E480C[];
extern Vec3f D_8018D4D0[];
extern Vec3f D_8018D530[];
extern Vec3f D_8018D590[];
extern Vec3s D_8018D620[];
extern Vec3f D_8018D650[];
extern Vec3f D_8018D6B0[];
extern Vec3f D_8018D710[];
extern Vec3s D_8018D770[];
extern Vec3s D_8018D7A0[];
extern Vec3s D_8018D7D0[];
extern Vec3s D_8018D800[];
extern Vec3s D_8018D830[];
extern Vec3s D_8018D860[];
extern Vec3s D_8018D890[];
extern Vec3s D_8018D8D0[];
extern s8 D_801657B2;
extern s8 D_801657C8;
extern s32 D_8018D22C;