From bf8d3e22cf32b32ff383a565b226400c3c105f2a Mon Sep 17 00:00:00 2001 From: Fazana <52551480+FazanaJ@users.noreply.github.com> Date: Thu, 3 Nov 2022 17:40:16 +0000 Subject: [PATCH] Carl sagans christmas wishlist (#278) * match func_800A4154 * match func_800A497C * nonmatching func_800A8474 * match func_800A3884 * Update game_ui.h * quick fixes * match func_800A4F50 and func_800A45F0 * Update game_ui.h --- asm/non_matchings/game_ui/func_800A1248.s | 2 +- asm/non_matchings/game_ui/func_800A1C04.s | 2 +- asm/non_matchings/game_ui/func_800A277C.s | 6 +- asm/non_matchings/game_ui/func_800A3884.s | 301 ------- asm/non_matchings/game_ui/func_800A4154.s | 315 ------- asm/non_matchings/game_ui/func_800A45F0.s | 114 --- asm/non_matchings/game_ui/func_800A497C.s | 186 ----- asm/non_matchings/game_ui/func_800A4F50.s | 747 ----------------- asm/non_matchings/game_ui/func_800A8474.s | 2 +- include/structs.h | 10 +- src/game_ui.c | 953 +++++++++++++++++++++- src/game_ui.h | 156 +++- src/menu.c | 20 +- 13 files changed, 1069 insertions(+), 1745 deletions(-) delete mode 100644 asm/non_matchings/game_ui/func_800A3884.s delete mode 100644 asm/non_matchings/game_ui/func_800A4154.s delete mode 100644 asm/non_matchings/game_ui/func_800A45F0.s delete mode 100644 asm/non_matchings/game_ui/func_800A497C.s delete mode 100644 asm/non_matchings/game_ui/func_800A4F50.s diff --git a/asm/non_matchings/game_ui/func_800A1248.s b/asm/non_matchings/game_ui/func_800A1248.s index 131c59df..f519cb42 100644 --- a/asm/non_matchings/game_ui/func_800A1248.s +++ b/asm/non_matchings/game_ui/func_800A1248.s @@ -114,7 +114,7 @@ glabel func_800A1248 /* 0A1FD8 800A13D8 AFA70044 */ sw $a3, 0x44($sp) /* 0A1FDC 800A13DC 8FA40044 */ lw $a0, 0x44($sp) /* 0A1FE0 800A13E0 8FA50050 */ lw $a1, 0x50($sp) -/* 0A1FE4 800A13E4 0C029055 */ jal func_800A4154 +/* 0A1FE4 800A13E4 0C029055 */ jal render_racer_bananas /* 0A1FE8 800A13E8 00000000 */ nop /* 0A1FEC 800A13EC 8FA4004C */ lw $a0, 0x4c($sp) /* 0A1FF0 800A13F0 8FA50050 */ lw $a1, 0x50($sp) diff --git a/asm/non_matchings/game_ui/func_800A1C04.s b/asm/non_matchings/game_ui/func_800A1C04.s index de0f4299..62a959e7 100644 --- a/asm/non_matchings/game_ui/func_800A1C04.s +++ b/asm/non_matchings/game_ui/func_800A1C04.s @@ -149,7 +149,7 @@ glabel func_800A1C04 /* 0A2A20 800A1E20 8FBF0014 */ lw $ra, 0x14($sp) /* 0A2A24 800A1E24 8FA50048 */ lw $a1, 0x48($sp) .L800A1E28: -/* 0A2A28 800A1E28 0C029055 */ jal func_800A4154 +/* 0A2A28 800A1E28 0C029055 */ jal render_racer_bananas /* 0A2A2C 800A1E2C 00E02025 */ move $a0, $a3 .L800A1E30: /* 0A2A30 800A1E30 0C01A142 */ jal func_80068508 diff --git a/asm/non_matchings/game_ui/func_800A277C.s b/asm/non_matchings/game_ui/func_800A277C.s index 278c13d0..8c3081da 100644 --- a/asm/non_matchings/game_ui/func_800A277C.s +++ b/asm/non_matchings/game_ui/func_800A277C.s @@ -862,7 +862,7 @@ glabel func_800A277C /* 0A3FCC 800A33CC 8FA400A0 */ lw $a0, 0xa0($sp) .L800A33D0: /* 0A3FD0 800A33D0 8FA500C8 */ lw $a1, 0xc8($sp) -/* 0A3FD4 800A33D4 0C0293D4 */ jal func_800A4F50 +/* 0A3FD4 800A33D4 0C0293D4 */ jal render_lap_count /* 0A3FD8 800A33D8 00000000 */ nop /* 0A3FDC 800A33DC 8FA400A0 */ lw $a0, 0xa0($sp) /* 0A3FE0 800A33E0 8FA500C8 */ lw $a1, 0xc8($sp) @@ -870,7 +870,7 @@ glabel func_800A277C /* 0A3FE8 800A33E8 00000000 */ nop /* 0A3FEC 800A33EC 8FA400A0 */ lw $a0, 0xa0($sp) /* 0A3FF0 800A33F0 8FA500C8 */ lw $a1, 0xc8($sp) -/* 0A3FF4 800A33F4 0C029055 */ jal func_800A4154 +/* 0A3FF4 800A33F4 0C029055 */ jal render_racer_bananas /* 0A3FF8 800A33F8 00000000 */ nop /* 0A3FFC 800A33FC 8FA400A0 */ lw $a0, 0xa0($sp) /* 0A4000 800A3400 8FA500C8 */ lw $a1, 0xc8($sp) @@ -882,7 +882,7 @@ glabel func_800A277C /* 0A4018 800A3418 00000000 */ nop /* 0A401C 800A341C 8FA400C4 */ lw $a0, 0xc4($sp) /* 0A4020 800A3420 8FA500C8 */ lw $a1, 0xc8($sp) -/* 0A4024 800A3424 0C028E21 */ jal func_800A3884 +/* 0A4024 800A3424 0C028E21 */ jal render_speedometer /* 0A4028 800A3428 00000000 */ nop /* 0A402C 800A342C 0C00382C */ jal func_8000E0B0 /* 0A4030 800A3430 00000000 */ nop diff --git a/asm/non_matchings/game_ui/func_800A3884.s b/asm/non_matchings/game_ui/func_800A3884.s deleted file mode 100644 index 12b0c2f3..00000000 --- a/asm/non_matchings/game_ui/func_800A3884.s +++ /dev/null @@ -1,301 +0,0 @@ -.late_rodata -glabel D_800E8740 -.float 25744.0 - -.text -glabel func_800A3884 -/* 0A4484 800A3884 3C0E8012 */ lui $t6, %hi(D_80126D37) # $t6, 0x8012 -/* 0A4488 800A3888 91CE6D37 */ lbu $t6, %lo(D_80126D37)($t6) -/* 0A448C 800A388C 27BDFFD8 */ addiu $sp, $sp, -0x28 -/* 0A4490 800A3890 24010001 */ li $at, 1 -/* 0A4494 800A3894 AFBF0014 */ sw $ra, 0x14($sp) -/* 0A4498 800A3898 15C1010E */ bne $t6, $at, .L800A3CD4 -/* 0A449C 800A389C AFA5002C */ sw $a1, 0x2c($sp) -/* 0A44A0 800A38A0 0C019944 */ jal check_if_showing_cutscene_camera -/* 0A44A4 800A38A4 AFA40028 */ sw $a0, 0x28($sp) -/* 0A44A8 800A38A8 8FA40028 */ lw $a0, 0x28($sp) -/* 0A44AC 800A38AC 1440010A */ bnez $v0, .L800A3CD8 -/* 0A44B0 800A38B0 8FBF0014 */ lw $ra, 0x14($sp) -/* 0A44B4 800A38B4 8C820064 */ lw $v0, 0x64($a0) -/* 0A44B8 800A38B8 00000000 */ nop -/* 0A44BC 800A38BC 804F01D8 */ lb $t7, 0x1d8($v0) -/* 0A44C0 800A38C0 00000000 */ nop -/* 0A44C4 800A38C4 15E00104 */ bnez $t7, .L800A3CD8 -/* 0A44C8 800A38C8 8FBF0014 */ lw $ra, 0x14($sp) -/* 0A44CC 800A38CC 805801D6 */ lb $t8, 0x1d6($v0) -/* 0A44D0 800A38D0 24010002 */ li $at, 2 -/* 0A44D4 800A38D4 1701000F */ bne $t8, $at, .L800A3914 -/* 0A44D8 800A38D8 00000000 */ nop -/* 0A44DC 800A38DC C480001C */ lwc1 $f0, 0x1c($a0) -/* 0A44E0 800A38E0 C4820020 */ lwc1 $f2, 0x20($a0) -/* 0A44E4 800A38E4 46000102 */ mul.s $f4, $f0, $f0 -/* 0A44E8 800A38E8 C48E0024 */ lwc1 $f14, 0x24($a0) -/* 0A44EC 800A38EC AFA20020 */ sw $v0, 0x20($sp) -/* 0A44F0 800A38F0 46021182 */ mul.s $f6, $f2, $f2 -/* 0A44F4 800A38F4 00000000 */ nop -/* 0A44F8 800A38F8 460E7282 */ mul.s $f10, $f14, $f14 -/* 0A44FC 800A38FC 46062200 */ add.s $f8, $f4, $f6 -/* 0A4500 800A3900 0C0326B4 */ jal sqrtf -/* 0A4504 800A3904 460A4300 */ add.s $f12, $f8, $f10 -/* 0A4508 800A3908 8FA20020 */ lw $v0, 0x20($sp) -/* 0A450C 800A390C 1000000A */ b .L800A3938 -/* 0A4510 800A3910 00000000 */ nop -.L800A3914: -/* 0A4514 800A3914 C480001C */ lwc1 $f0, 0x1c($a0) -/* 0A4518 800A3918 C48E0024 */ lwc1 $f14, 0x24($a0) -/* 0A451C 800A391C 46000402 */ mul.s $f16, $f0, $f0 -/* 0A4520 800A3920 AFA20020 */ sw $v0, 0x20($sp) -/* 0A4524 800A3924 460E7482 */ mul.s $f18, $f14, $f14 -/* 0A4528 800A3928 0C0326B4 */ jal sqrtf -/* 0A452C 800A392C 46128300 */ add.s $f12, $f16, $f18 -/* 0A4530 800A3930 8FA20020 */ lw $v0, 0x20($sp) -/* 0A4534 800A3934 00000000 */ nop -.L800A3938: -/* 0A4538 800A3938 3C01800E */ lui $at, %hi(D_800E2838) # $at, 0x800e -/* 0A453C 800A393C C4242838 */ lwc1 $f4, %lo(D_800E2838)($at) -/* 0A4540 800A3940 44806000 */ mtc1 $zero, $f12 -/* 0A4544 800A3944 4600203C */ c.lt.s $f4, $f0 -/* 0A4548 800A3948 3C01800E */ lui $at, %hi(D_800E2838) # $at, 0x800e -/* 0A454C 800A394C 45000002 */ bc1f .L800A3958 -/* 0A4550 800A3950 00000000 */ nop -/* 0A4554 800A3954 E4202838 */ swc1 $f0, %lo(D_800E2838)($at) -.L800A3958: -/* 0A4558 800A3958 3C014080 */ li $at, 0x40800000 # 4.000000 -/* 0A455C 800A395C 44813000 */ mtc1 $at, $f6 -/* 0A4560 800A3960 805901E6 */ lb $t9, 0x1e6($v0) -/* 0A4564 800A3964 46060082 */ mul.s $f2, $f0, $f6 -/* 0A4568 800A3968 13200004 */ beqz $t9, .L800A397C -/* 0A456C 800A396C 3C0140E0 */ li $at, 0x40E00000 # 7.000000 -/* 0A4570 800A3970 44814000 */ mtc1 $at, $f8 -/* 0A4574 800A3974 00000000 */ nop -/* 0A4578 800A3978 46081080 */ add.s $f2, $f2, $f8 -.L800A397C: -/* 0A457C 800A397C 3C0142C8 */ li $at, 0x42C80000 # 100.000000 -/* 0A4580 800A3980 44810000 */ mtc1 $at, $f0 -/* 0A4584 800A3984 3C01800F */ lui $at, %hi(D_800E8740) # $at, 0x800f -/* 0A4588 800A3988 4602003C */ c.lt.s $f0, $f2 -/* 0A458C 800A398C 00000000 */ nop -/* 0A4590 800A3990 45000002 */ bc1f .L800A399C -/* 0A4594 800A3994 00000000 */ nop -/* 0A4598 800A3998 46000086 */ mov.s $f2, $f0 -.L800A399C: -/* 0A459C 800A399C C44A002C */ lwc1 $f10, 0x2c($v0) -/* 0A45A0 800A39A0 00000000 */ nop -/* 0A45A4 800A39A4 460A603C */ c.lt.s $f12, $f10 -/* 0A45A8 800A39A8 00000000 */ nop -/* 0A45AC 800A39AC 45000002 */ bc1f .L800A39B8 -/* 0A45B0 800A39B0 00000000 */ nop -/* 0A45B4 800A39B4 46006086 */ mov.s $f2, $f12 -.L800A39B8: -/* 0A45B8 800A39B8 C42C8740 */ lwc1 $f12, %lo(D_800E8740)($at) -/* 0A45BC 800A39BC 3C014396 */ li $at, 0x43960000 # 300.000000 -/* 0A45C0 800A39C0 46020081 */ sub.s $f2, $f0, $f2 -/* 0A45C4 800A39C4 44818000 */ mtc1 $at, $f16 -/* 0A45C8 800A39C8 00000000 */ nop -/* 0A45CC 800A39CC 46101082 */ mul.s $f2, $f2, $f16 -/* 0A45D0 800A39D0 4602603C */ c.lt.s $f12, $f2 -/* 0A45D4 800A39D4 00000000 */ nop -/* 0A45D8 800A39D8 45000002 */ bc1f .L800A39E4 -/* 0A45DC 800A39DC 00000000 */ nop -/* 0A45E0 800A39E0 46006086 */ mov.s $f2, $f12 -.L800A39E4: -/* 0A45E4 800A39E4 0C01BAA8 */ jal is_game_paused -/* 0A45E8 800A39E8 E7A20024 */ swc1 $f2, 0x24($sp) -/* 0A45EC 800A39EC C7A20024 */ lwc1 $f2, 0x24($sp) -/* 0A45F0 800A39F0 1440002E */ bnez $v0, .L800A3AAC -/* 0A45F4 800A39F4 3C0D8012 */ lui $t5, %hi(gHUDNumPlayers) # $t5, 0x8012 -/* 0A45F8 800A39F8 3C028012 */ lui $v0, %hi(D_80126CDC) # $v0, 0x8012 -/* 0A45FC 800A39FC 8C426CDC */ lw $v0, %lo(D_80126CDC)($v0) -/* 0A4600 800A3A00 3C014100 */ li $at, 0x41000000 # 8.000000 -/* 0A4604 800A3A04 844804C4 */ lh $t0, 0x4c4($v0) -/* 0A4608 800A3A08 00000000 */ nop -/* 0A460C 800A3A0C 44889000 */ mtc1 $t0, $f18 -/* 0A4610 800A3A10 00000000 */ nop -/* 0A4614 800A3A14 46809020 */ cvt.s.w $f0, $f18 -/* 0A4618 800A3A18 4600103C */ c.lt.s $f2, $f0 -/* 0A461C 800A3A1C 00000000 */ nop -/* 0A4620 800A3A20 45000012 */ bc1f .L800A3A6C -/* 0A4624 800A3A24 00000000 */ nop -/* 0A4628 800A3A28 3C014000 */ li $at, 0x40000000 # 2.000000 -/* 0A462C 800A3A2C 44813000 */ mtc1 $at, $f6 -/* 0A4630 800A3A30 46001101 */ sub.s $f4, $f2, $f0 -/* 0A4634 800A3A34 00000000 */ nop -/* 0A4638 800A3A38 46062203 */ div.s $f8, $f4, $f6 -/* 0A463C 800A3A3C 46080280 */ add.s $f10, $f0, $f8 -/* 0A4640 800A3A40 4449F800 */ cfc1 $t1, $31 -/* 0A4644 800A3A44 00000000 */ nop -/* 0A4648 800A3A48 35210003 */ ori $at, $t1, 3 -/* 0A464C 800A3A4C 38210002 */ xori $at, $at, 2 -/* 0A4650 800A3A50 44C1F800 */ ctc1 $at, $31 -/* 0A4654 800A3A54 00000000 */ nop -/* 0A4658 800A3A58 46005424 */ cvt.w.s $f16, $f10 -/* 0A465C 800A3A5C 440A8000 */ mfc1 $t2, $f16 -/* 0A4660 800A3A60 44C9F800 */ ctc1 $t1, $31 -/* 0A4664 800A3A64 10000011 */ b .L800A3AAC -/* 0A4668 800A3A68 A44A04C4 */ sh $t2, 0x4c4($v0) -.L800A3A6C: -/* 0A466C 800A3A6C 46001481 */ sub.s $f18, $f2, $f0 -/* 0A4670 800A3A70 44812000 */ mtc1 $at, $f4 -/* 0A4674 800A3A74 00000000 */ nop -/* 0A4678 800A3A78 46049183 */ div.s $f6, $f18, $f4 -/* 0A467C 800A3A7C 46060200 */ add.s $f8, $f0, $f6 -/* 0A4680 800A3A80 444BF800 */ cfc1 $t3, $31 -/* 0A4684 800A3A84 00000000 */ nop -/* 0A4688 800A3A88 35610003 */ ori $at, $t3, 3 -/* 0A468C 800A3A8C 38210002 */ xori $at, $at, 2 -/* 0A4690 800A3A90 44C1F800 */ ctc1 $at, $31 -/* 0A4694 800A3A94 00000000 */ nop -/* 0A4698 800A3A98 460042A4 */ cvt.w.s $f10, $f8 -/* 0A469C 800A3A9C 440C5000 */ mfc1 $t4, $f10 -/* 0A46A0 800A3AA0 44CBF800 */ ctc1 $t3, $31 -/* 0A46A4 800A3AA4 A44C04C4 */ sh $t4, 0x4c4($v0) -/* 0A46A8 800A3AA8 00000000 */ nop -.L800A3AAC: -/* 0A46AC 800A3AAC 8DAD6D0C */ lw $t5, %lo(gHUDNumPlayers)($t5) -/* 0A46B0 800A3AB0 3C0E800E */ lui $t6, %hi(D_800E27A4) # $t6, 0x800e -/* 0A46B4 800A3AB4 01CD7021 */ addu $t6, $t6, $t5 -/* 0A46B8 800A3AB8 81CE27A4 */ lb $t6, %lo(D_800E27A4)($t6) -/* 0A46BC 800A3ABC 3C0F8012 */ lui $t7, %hi(D_80126CD3) # $t7, 0x8012 -/* 0A46C0 800A3AC0 15C00084 */ bnez $t6, .L800A3CD4 -/* 0A46C4 800A3AC4 3C048012 */ lui $a0, %hi(gHUDCurrDisplayList) # $a0, 0x8012 -/* 0A46C8 800A3AC8 81EF6CD3 */ lb $t7, %lo(D_80126CD3)($t7) -/* 0A46CC 800A3ACC 24846CFC */ addiu $a0, %lo(gHUDCurrDisplayList) # addiu $a0, $a0, 0x6cfc -/* 0A46D0 800A3AD0 31F80002 */ andi $t8, $t7, 2 -/* 0A46D4 800A3AD4 1300001F */ beqz $t8, .L800A3B54 -/* 0A46D8 800A3AD8 3C058012 */ lui $a1, %hi(gHUDCurrMatrix) # $a1, 0x8012 -/* 0A46DC 800A3ADC 3C198012 */ lui $t9, %hi(D_80126CD0) # $t9, 0x8012 -/* 0A46E0 800A3AE0 83396CD0 */ lb $t9, %lo(D_80126CD0)($t9) -/* 0A46E4 800A3AE4 3C088012 */ lui $t0, %hi(D_8012718B) # $t0, 0x8012 -/* 0A46E8 800A3AE8 44998000 */ mtc1 $t9, $f16 -/* 0A46EC 800A3AEC 9108718B */ lbu $t0, %lo(D_8012718B)($t0) -/* 0A46F0 800A3AF0 468084A0 */ cvt.s.w $f18, $f16 -/* 0A46F4 800A3AF4 3C01437F */ li $at, 0x437F0000 # 255.000000 -/* 0A46F8 800A3AF8 44810000 */ mtc1 $at, $f0 -/* 0A46FC 800A3AFC 44883000 */ mtc1 $t0, $f6 -/* 0A4700 800A3B00 46009102 */ mul.s $f4, $f18, $f0 -/* 0A4704 800A3B04 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 -/* 0A4708 800A3B08 05010004 */ bgez $t0, .L800A3B1C -/* 0A470C 800A3B0C 46803220 */ cvt.s.w $f8, $f6 -/* 0A4710 800A3B10 44815000 */ mtc1 $at, $f10 -/* 0A4714 800A3B14 00000000 */ nop -/* 0A4718 800A3B18 460A4200 */ add.s $f8, $f8, $f10 -.L800A3B1C: -/* 0A471C 800A3B1C 00000000 */ nop -/* 0A4720 800A3B20 46082403 */ div.s $f16, $f4, $f8 -/* 0A4724 800A3B24 46100481 */ sub.s $f18, $f0, $f16 -/* 0A4728 800A3B28 4449F800 */ cfc1 $t1, $31 -/* 0A472C 800A3B2C 00000000 */ nop -/* 0A4730 800A3B30 35210003 */ ori $at, $t1, 3 -/* 0A4734 800A3B34 38210002 */ xori $at, $at, 2 -/* 0A4738 800A3B38 44C1F800 */ ctc1 $at, $31 -/* 0A473C 800A3B3C 00000000 */ nop -/* 0A4740 800A3B40 460091A4 */ cvt.w.s $f6, $f18 -/* 0A4744 800A3B44 440A3000 */ mfc1 $t2, $f6 -/* 0A4748 800A3B48 44C9F800 */ ctc1 $t1, $31 -/* 0A474C 800A3B4C 10000003 */ b .L800A3B5C -/* 0A4750 800A3B50 AFAA001C */ sw $t2, 0x1c($sp) -.L800A3B54: -/* 0A4754 800A3B54 240B00FF */ li $t3, 255 -/* 0A4758 800A3B58 AFAB001C */ sw $t3, 0x1c($sp) -.L800A3B5C: -/* 0A475C 800A3B5C 3C078012 */ lui $a3, %hi(D_80126CDC) # $a3, 0x8012 -/* 0A4760 800A3B60 8CE76CDC */ lw $a3, %lo(D_80126CDC)($a3) -/* 0A4764 800A3B64 3C068012 */ lui $a2, %hi(gHUDCurrTriList) # $a2, 0x8012 -/* 0A4768 800A3B68 24C66D04 */ addiu $a2, %lo(gHUDCurrTriList) # addiu $a2, $a2, 0x6d04 -/* 0A476C 800A3B6C 24A56D00 */ addiu $a1, %lo(gHUDCurrMatrix) # addiu $a1, $a1, 0x6d00 -/* 0A4770 800A3B70 0C02A980 */ jal func_800AA600 -/* 0A4774 800A3B74 24E705A0 */ addiu $a3, $a3, 0x5a0 -/* 0A4778 800A3B78 3C048012 */ lui $a0, %hi(gHUDCurrDisplayList) # $a0, 0x8012 -/* 0A477C 800A3B7C 0C01ECF4 */ jal func_8007B3D0 -/* 0A4780 800A3B80 24846CFC */ addiu $a0, %lo(gHUDCurrDisplayList) # addiu $a0, $a0, 0x6cfc -/* 0A4784 800A3B84 0C01EFC7 */ jal func_8007BF1C -/* 0A4788 800A3B88 24040001 */ li $a0, 1 -/* 0A478C 800A3B8C 3C048012 */ lui $a0, %hi(gHUDCurrDisplayList) # $a0, 0x8012 -/* 0A4790 800A3B90 24846CFC */ addiu $a0, %lo(gHUDCurrDisplayList) # addiu $a0, $a0, 0x6cfc -/* 0A4794 800A3B94 8C830000 */ lw $v1, ($a0) -/* 0A4798 800A3B98 3C0DFA00 */ lui $t5, 0xfa00 -/* 0A479C 800A3B9C 246C0008 */ addiu $t4, $v1, 8 -/* 0A47A0 800A3BA0 AC8C0000 */ sw $t4, ($a0) -/* 0A47A4 800A3BA4 AC6D0000 */ sw $t5, ($v1) -/* 0A47A8 800A3BA8 8FAE001C */ lw $t6, 0x1c($sp) -/* 0A47AC 800A3BAC 2401FF00 */ li $at, -256 -/* 0A47B0 800A3BB0 31CF00FF */ andi $t7, $t6, 0xff -/* 0A47B4 800A3BB4 01E1C025 */ or $t8, $t7, $at -/* 0A47B8 800A3BB8 3C078012 */ lui $a3, %hi(D_80126CDC) # $a3, 0x8012 -/* 0A47BC 800A3BBC AC780004 */ sw $t8, 4($v1) -/* 0A47C0 800A3BC0 8CE76CDC */ lw $a3, %lo(D_80126CDC)($a3) -/* 0A47C4 800A3BC4 3C058012 */ lui $a1, %hi(gHUDCurrMatrix) # $a1, 0x8012 -/* 0A47C8 800A3BC8 3C068012 */ lui $a2, %hi(gHUDCurrTriList) # $a2, 0x8012 -/* 0A47CC 800A3BCC 24C66D04 */ addiu $a2, %lo(gHUDCurrTriList) # addiu $a2, $a2, 0x6d04 -/* 0A47D0 800A3BD0 24A56D00 */ addiu $a1, %lo(gHUDCurrMatrix) # addiu $a1, $a1, 0x6d00 -/* 0A47D4 800A3BD4 0C02A980 */ jal func_800AA600 -/* 0A47D8 800A3BD8 24E704C0 */ addiu $a3, $a3, 0x4c0 -/* 0A47DC 800A3BDC 0C01EFC7 */ jal func_8007BF1C -/* 0A47E0 800A3BE0 00002025 */ move $a0, $zero -/* 0A47E4 800A3BE4 3C078012 */ lui $a3, %hi(D_80126CDC) # $a3, 0x8012 -/* 0A47E8 800A3BE8 8CE76CDC */ lw $a3, %lo(D_80126CDC)($a3) -/* 0A47EC 800A3BEC 3C048012 */ lui $a0, %hi(gHUDCurrDisplayList) # $a0, 0x8012 -/* 0A47F0 800A3BF0 3C058012 */ lui $a1, %hi(gHUDCurrMatrix) # $a1, 0x8012 -/* 0A47F4 800A3BF4 3C068012 */ lui $a2, %hi(gHUDCurrTriList) # $a2, 0x8012 -/* 0A47F8 800A3BF8 24C66D04 */ addiu $a2, %lo(gHUDCurrTriList) # addiu $a2, $a2, 0x6d04 -/* 0A47FC 800A3BFC 24A56D00 */ addiu $a1, %lo(gHUDCurrMatrix) # addiu $a1, $a1, 0x6d00 -/* 0A4800 800A3C00 24846CFC */ addiu $a0, %lo(gHUDCurrDisplayList) # addiu $a0, $a0, 0x6cfc -/* 0A4804 800A3C04 0C02A980 */ jal func_800AA600 -/* 0A4808 800A3C08 24E704E0 */ addiu $a3, $a3, 0x4e0 -/* 0A480C 800A3C0C 3C078012 */ lui $a3, %hi(D_80126CDC) # $a3, 0x8012 -/* 0A4810 800A3C10 8CE76CDC */ lw $a3, %lo(D_80126CDC)($a3) -/* 0A4814 800A3C14 3C048012 */ lui $a0, %hi(gHUDCurrDisplayList) # $a0, 0x8012 -/* 0A4818 800A3C18 3C058012 */ lui $a1, %hi(gHUDCurrMatrix) # $a1, 0x8012 -/* 0A481C 800A3C1C 3C068012 */ lui $a2, %hi(gHUDCurrTriList) # $a2, 0x8012 -/* 0A4820 800A3C20 24C66D04 */ addiu $a2, %lo(gHUDCurrTriList) # addiu $a2, $a2, 0x6d04 -/* 0A4824 800A3C24 24A56D00 */ addiu $a1, %lo(gHUDCurrMatrix) # addiu $a1, $a1, 0x6d00 -/* 0A4828 800A3C28 24846CFC */ addiu $a0, %lo(gHUDCurrDisplayList) # addiu $a0, $a0, 0x6cfc -/* 0A482C 800A3C2C 0C02A980 */ jal func_800AA600 -/* 0A4830 800A3C30 24E70500 */ addiu $a3, $a3, 0x500 -/* 0A4834 800A3C34 3C078012 */ lui $a3, %hi(D_80126CDC) # $a3, 0x8012 -/* 0A4838 800A3C38 8CE76CDC */ lw $a3, %lo(D_80126CDC)($a3) -/* 0A483C 800A3C3C 3C048012 */ lui $a0, %hi(gHUDCurrDisplayList) # $a0, 0x8012 -/* 0A4840 800A3C40 3C058012 */ lui $a1, %hi(gHUDCurrMatrix) # $a1, 0x8012 -/* 0A4844 800A3C44 3C068012 */ lui $a2, %hi(gHUDCurrTriList) # $a2, 0x8012 -/* 0A4848 800A3C48 24C66D04 */ addiu $a2, %lo(gHUDCurrTriList) # addiu $a2, $a2, 0x6d04 -/* 0A484C 800A3C4C 24A56D00 */ addiu $a1, %lo(gHUDCurrMatrix) # addiu $a1, $a1, 0x6d00 -/* 0A4850 800A3C50 24846CFC */ addiu $a0, %lo(gHUDCurrDisplayList) # addiu $a0, $a0, 0x6cfc -/* 0A4854 800A3C54 0C02A980 */ jal func_800AA600 -/* 0A4858 800A3C58 24E70520 */ addiu $a3, $a3, 0x520 -/* 0A485C 800A3C5C 3C078012 */ lui $a3, %hi(D_80126CDC) # $a3, 0x8012 -/* 0A4860 800A3C60 8CE76CDC */ lw $a3, %lo(D_80126CDC)($a3) -/* 0A4864 800A3C64 3C048012 */ lui $a0, %hi(gHUDCurrDisplayList) # $a0, 0x8012 -/* 0A4868 800A3C68 3C058012 */ lui $a1, %hi(gHUDCurrMatrix) # $a1, 0x8012 -/* 0A486C 800A3C6C 3C068012 */ lui $a2, %hi(gHUDCurrTriList) # $a2, 0x8012 -/* 0A4870 800A3C70 24C66D04 */ addiu $a2, %lo(gHUDCurrTriList) # addiu $a2, $a2, 0x6d04 -/* 0A4874 800A3C74 24A56D00 */ addiu $a1, %lo(gHUDCurrMatrix) # addiu $a1, $a1, 0x6d00 -/* 0A4878 800A3C78 24846CFC */ addiu $a0, %lo(gHUDCurrDisplayList) # addiu $a0, $a0, 0x6cfc -/* 0A487C 800A3C7C 0C02A980 */ jal func_800AA600 -/* 0A4880 800A3C80 24E70540 */ addiu $a3, $a3, 0x540 -/* 0A4884 800A3C84 3C078012 */ lui $a3, %hi(D_80126CDC) # $a3, 0x8012 -/* 0A4888 800A3C88 8CE76CDC */ lw $a3, %lo(D_80126CDC)($a3) -/* 0A488C 800A3C8C 3C048012 */ lui $a0, %hi(gHUDCurrDisplayList) # $a0, 0x8012 -/* 0A4890 800A3C90 3C058012 */ lui $a1, %hi(gHUDCurrMatrix) # $a1, 0x8012 -/* 0A4894 800A3C94 3C068012 */ lui $a2, %hi(gHUDCurrTriList) # $a2, 0x8012 -/* 0A4898 800A3C98 24C66D04 */ addiu $a2, %lo(gHUDCurrTriList) # addiu $a2, $a2, 0x6d04 -/* 0A489C 800A3C9C 24A56D00 */ addiu $a1, %lo(gHUDCurrMatrix) # addiu $a1, $a1, 0x6d00 -/* 0A48A0 800A3CA0 24846CFC */ addiu $a0, %lo(gHUDCurrDisplayList) # addiu $a0, $a0, 0x6cfc -/* 0A48A4 800A3CA4 0C02A980 */ jal func_800AA600 -/* 0A48A8 800A3CA8 24E70560 */ addiu $a3, $a3, 0x560 -/* 0A48AC 800A3CAC 3C078012 */ lui $a3, %hi(D_80126CDC) # $a3, 0x8012 -/* 0A48B0 800A3CB0 8CE76CDC */ lw $a3, %lo(D_80126CDC)($a3) -/* 0A48B4 800A3CB4 3C048012 */ lui $a0, %hi(gHUDCurrDisplayList) # $a0, 0x8012 -/* 0A48B8 800A3CB8 3C058012 */ lui $a1, %hi(gHUDCurrMatrix) # $a1, 0x8012 -/* 0A48BC 800A3CBC 3C068012 */ lui $a2, %hi(gHUDCurrTriList) # $a2, 0x8012 -/* 0A48C0 800A3CC0 24C66D04 */ addiu $a2, %lo(gHUDCurrTriList) # addiu $a2, $a2, 0x6d04 -/* 0A48C4 800A3CC4 24A56D00 */ addiu $a1, %lo(gHUDCurrMatrix) # addiu $a1, $a1, 0x6d00 -/* 0A48C8 800A3CC8 24846CFC */ addiu $a0, %lo(gHUDCurrDisplayList) # addiu $a0, $a0, 0x6cfc -/* 0A48CC 800A3CCC 0C02A980 */ jal func_800AA600 -/* 0A48D0 800A3CD0 24E70580 */ addiu $a3, $a3, 0x580 -.L800A3CD4: -/* 0A48D4 800A3CD4 8FBF0014 */ lw $ra, 0x14($sp) -.L800A3CD8: -/* 0A48D8 800A3CD8 27BD0028 */ addiu $sp, $sp, 0x28 -/* 0A48DC 800A3CDC 03E00008 */ jr $ra -/* 0A48E0 800A3CE0 00000000 */ nop - diff --git a/asm/non_matchings/game_ui/func_800A4154.s b/asm/non_matchings/game_ui/func_800A4154.s deleted file mode 100644 index d5dba3b4..00000000 --- a/asm/non_matchings/game_ui/func_800A4154.s +++ /dev/null @@ -1,315 +0,0 @@ -glabel func_800A4154 -/* 0A4D54 800A4154 27BDFFC0 */ addiu $sp, $sp, -0x40 -/* 0A4D58 800A4158 AFBF001C */ sw $ra, 0x1c($sp) -/* 0A4D5C 800A415C AFB00018 */ sw $s0, 0x18($sp) -/* 0A4D60 800A4160 AFA40040 */ sw $a0, 0x40($sp) -/* 0A4D64 800A4164 AFA50044 */ sw $a1, 0x44($sp) -/* 0A4D68 800A4168 84820000 */ lh $v0, ($a0) -/* 0A4D6C 800A416C 2401FFFF */ li $at, -1 -/* 0A4D70 800A4170 1041002B */ beq $v0, $at, .L800A4220 -/* 0A4D74 800A4174 3C038012 */ lui $v1, %hi(gHUDNumPlayers) # $v1, 0x8012 -/* 0A4D78 800A4178 8C636D0C */ lw $v1, %lo(gHUDNumPlayers)($v1) -/* 0A4D7C 800A417C 3C19800E */ lui $t9, %hi(D_800E2794) # $t9, 0x800e -/* 0A4D80 800A4180 1860000F */ blez $v1, .L800A41C0 -/* 0A4D84 800A4184 00037880 */ sll $t7, $v1, 2 -/* 0A4D88 800A4188 01E2C021 */ addu $t8, $t7, $v0 -/* 0A4D8C 800A418C 0338C821 */ addu $t9, $t9, $t8 -/* 0A4D90 800A4190 93392794 */ lbu $t9, %lo(D_800E2794)($t9) -/* 0A4D94 800A4194 24010002 */ li $at, 2 -/* 0A4D98 800A4198 13210009 */ beq $t9, $at, .L800A41C0 -/* 0A4D9C 800A419C 3C0A8012 */ lui $t2, %hi(D_80126D60) # $t2, 0x8012 -/* 0A4DA0 800A41A0 8D4A6D60 */ lw $t2, %lo(D_80126D60)($t2) -/* 0A4DA4 800A41A4 24010041 */ li $at, 65 -/* 0A4DA8 800A41A8 8142004C */ lb $v0, 0x4c($t2) -/* 0A4DAC 800A41AC 00000000 */ nop -/* 0A4DB0 800A41B0 10410003 */ beq $v0, $at, .L800A41C0 -/* 0A4DB4 800A41B4 24010040 */ li $at, 64 -/* 0A4DB8 800A41B8 1441010A */ bne $v0, $at, .L800A45E4 -/* 0A4DBC 800A41BC 8FBF001C */ lw $ra, 0x1c($sp) -.L800A41C0: -/* 0A4DC0 800A41C0 8FAB0040 */ lw $t3, 0x40($sp) -/* 0A4DC4 800A41C4 00000000 */ nop -/* 0A4DC8 800A41C8 816C01D8 */ lb $t4, 0x1d8($t3) -/* 0A4DCC 800A41CC 00000000 */ nop -/* 0A4DD0 800A41D0 15800104 */ bnez $t4, .L800A45E4 -/* 0A4DD4 800A41D4 8FBF001C */ lw $ra, 0x1c($sp) -/* 0A4DD8 800A41D8 18600011 */ blez $v1, .L800A4220 -/* 0A4DDC 800A41DC 00000000 */ nop -/* 0A4DE0 800A41E0 81620193 */ lb $v0, 0x193($t3) -/* 0A4DE4 800A41E4 00000000 */ nop -/* 0A4DE8 800A41E8 1840000D */ blez $v0, .L800A4220 -/* 0A4DEC 800A41EC 00026880 */ sll $t5, $v0, 2 -/* 0A4DF0 800A41F0 016D7021 */ addu $t6, $t3, $t5 -/* 0A4DF4 800A41F4 8DCF0128 */ lw $t7, 0x128($t6) -/* 0A4DF8 800A41F8 3C188012 */ lui $t8, %hi(D_80126D60) # $t8, 0x8012 -/* 0A4DFC 800A41FC 29E100B4 */ slti $at, $t7, 0xb4 -/* 0A4E00 800A4200 10200007 */ beqz $at, .L800A4220 -/* 0A4E04 800A4204 00000000 */ nop -/* 0A4E08 800A4208 8F186D60 */ lw $t8, %lo(D_80126D60)($t8) -/* 0A4E0C 800A420C 00000000 */ nop -/* 0A4E10 800A4210 8319004C */ lb $t9, 0x4c($t8) -/* 0A4E14 800A4214 00000000 */ nop -/* 0A4E18 800A4218 332A0040 */ andi $t2, $t9, 0x40 -/* 0A4E1C 800A421C 114000F0 */ beqz $t2, .L800A45E0 -.L800A4220: -/* 0A4E20 800A4220 3C108012 */ lui $s0, %hi(D_80126CDC) # $s0, 0x8012 -/* 0A4E24 800A4224 26106CDC */ addiu $s0, %lo(D_80126CDC) # addiu $s0, $s0, 0x6cdc -/* 0A4E28 800A4228 8E070000 */ lw $a3, ($s0) -/* 0A4E2C 800A422C 3C048012 */ lui $a0, %hi(gHUDCurrDisplayList) # $a0, 0x8012 -/* 0A4E30 800A4230 3C058012 */ lui $a1, %hi(gHUDCurrMatrix) # $a1, 0x8012 -/* 0A4E34 800A4234 3C068012 */ lui $a2, %hi(gHUDCurrTriList) # $a2, 0x8012 -/* 0A4E38 800A4238 24C66D04 */ addiu $a2, %lo(gHUDCurrTriList) # addiu $a2, $a2, 0x6d04 -/* 0A4E3C 800A423C 24A56D00 */ addiu $a1, %lo(gHUDCurrMatrix) # addiu $a1, $a1, 0x6d00 -/* 0A4E40 800A4240 24846CFC */ addiu $a0, %lo(gHUDCurrDisplayList) # addiu $a0, $a0, 0x6cfc -/* 0A4E44 800A4244 0C02A980 */ jal func_800AA600 -/* 0A4E48 800A4248 24E70240 */ addiu $a3, $a3, 0x240 -/* 0A4E4C 800A424C 8FA60040 */ lw $a2, 0x40($sp) -/* 0A4E50 800A4250 8E020000 */ lw $v0, ($s0) -/* 0A4E54 800A4254 80C40185 */ lb $a0, 0x185($a2) -/* 0A4E58 800A4258 00000000 */ nop -/* 0A4E5C 800A425C AFA4003C */ sw $a0, 0x3c($sp) -/* 0A4E60 800A4260 804500FA */ lb $a1, 0xfa($v0) -/* 0A4E64 800A4264 904300F9 */ lbu $v1, 0xf9($v0) -/* 0A4E68 800A4268 14A0000A */ bnez $a1, .L800A4294 -/* 0A4E6C 800A426C 00000000 */ nop -/* 0A4E70 800A4270 804C00FB */ lb $t4, 0xfb($v0) -/* 0A4E74 800A4274 240B0002 */ li $t3, 2 -/* 0A4E78 800A4278 108C0006 */ beq $a0, $t4, .L800A4294 -/* 0A4E7C 800A427C 00000000 */ nop -/* 0A4E80 800A4280 A04B00FA */ sb $t3, 0xfa($v0) -/* 0A4E84 800A4284 8E0E0000 */ lw $t6, ($s0) -/* 0A4E88 800A4288 80CD0185 */ lb $t5, 0x185($a2) -/* 0A4E8C 800A428C 10000024 */ b .L800A4320 -/* 0A4E90 800A4290 A1CD00FB */ sb $t5, 0xfb($t6) -.L800A4294: -/* 0A4E94 800A4294 10A00022 */ beqz $a1, .L800A4320 -/* 0A4E98 800A4298 3C014000 */ li $at, 0x40000000 # 2.000000 -/* 0A4E9C 800A429C 44812000 */ mtc1 $at, $f4 -/* 0A4EA0 800A42A0 00000000 */ nop -/* 0A4EA4 800A42A4 E4440388 */ swc1 $f4, 0x388($v0) -/* 0A4EA8 800A42A8 8FAF0044 */ lw $t7, 0x44($sp) -/* 0A4EAC 800A42AC 8E020000 */ lw $v0, ($s0) -/* 0A4EB0 800A42B0 000FC080 */ sll $t8, $t7, 2 -/* 0A4EB4 800A42B4 030FC023 */ subu $t8, $t8, $t7 -/* 0A4EB8 800A42B8 0018C080 */ sll $t8, $t8, 2 -/* 0A4EBC 800A42BC 844A00F8 */ lh $t2, 0xf8($v0) -/* 0A4EC0 800A42C0 030FC021 */ addu $t8, $t8, $t7 -/* 0A4EC4 800A42C4 00781821 */ addu $v1, $v1, $t8 -/* 0A4EC8 800A42C8 307900FF */ andi $t9, $v1, 0xff -/* 0A4ECC 800A42CC 314C00FF */ andi $t4, $t2, 0xff -/* 0A4ED0 800A42D0 032C082A */ slt $at, $t9, $t4 -/* 0A4ED4 800A42D4 10200012 */ beqz $at, .L800A4320 -/* 0A4ED8 800A42D8 03201825 */ move $v1, $t9 -/* 0A4EDC 800A42DC 804B00FA */ lb $t3, 0xfa($v0) -/* 0A4EE0 800A42E0 24040001 */ li $a0, 1 -/* 0A4EE4 800A42E4 256DFFFF */ addiu $t5, $t3, -1 -/* 0A4EE8 800A42E8 A04D00FA */ sb $t5, 0xfa($v0) -/* 0A4EEC 800A42EC 8E020000 */ lw $v0, ($s0) -/* 0A4EF0 800A42F0 00000000 */ nop -/* 0A4EF4 800A42F4 804E00FA */ lb $t6, 0xfa($v0) -/* 0A4EF8 800A42F8 00000000 */ nop -/* 0A4EFC 800A42FC 15C00008 */ bnez $t6, .L800A4320 -/* 0A4F00 800A4300 00000000 */ nop -/* 0A4F04 800A4304 A044039B */ sb $a0, 0x39b($v0) -/* 0A4F08 800A4308 8E180000 */ lw $t8, ($s0) -/* 0A4F0C 800A430C 240F0006 */ li $t7, 6 -/* 0A4F10 800A4310 A30F039A */ sb $t7, 0x39a($t8) -/* 0A4F14 800A4314 8E190000 */ lw $t9, ($s0) -/* 0A4F18 800A4318 00001825 */ move $v1, $zero -/* 0A4F1C 800A431C A7240398 */ sh $a0, 0x398($t9) -.L800A4320: -/* 0A4F20 800A4320 14600048 */ bnez $v1, .L800A4444 -/* 0A4F24 800A4324 00601025 */ move $v0, $v1 -/* 0A4F28 800A4328 24040001 */ li $a0, 1 -/* 0A4F2C 800A432C 0C01EFC7 */ jal func_8007BF1C -/* 0A4F30 800A4330 AFA30024 */ sw $v1, 0x24($sp) -/* 0A4F34 800A4334 0C019826 */ jal set_viewport_tv_type -/* 0A4F38 800A4338 24040001 */ li $a0, 1 -/* 0A4F3C 800A433C 8E070000 */ lw $a3, ($s0) -/* 0A4F40 800A4340 3C048012 */ lui $a0, %hi(gHUDCurrDisplayList) # $a0, 0x8012 -/* 0A4F44 800A4344 3C058012 */ lui $a1, %hi(gHUDCurrMatrix) # $a1, 0x8012 -/* 0A4F48 800A4348 3C068012 */ lui $a2, %hi(gHUDCurrTriList) # $a2, 0x8012 -/* 0A4F4C 800A434C 24C66D04 */ addiu $a2, %lo(gHUDCurrTriList) # addiu $a2, $a2, 0x6d04 -/* 0A4F50 800A4350 24A56D00 */ addiu $a1, %lo(gHUDCurrMatrix) # addiu $a1, $a1, 0x6d00 -/* 0A4F54 800A4354 24846CFC */ addiu $a0, %lo(gHUDCurrDisplayList) # addiu $a0, $a0, 0x6cfc -/* 0A4F58 800A4358 0C02A980 */ jal func_800AA600 -/* 0A4F5C 800A435C 24E70360 */ addiu $a3, $a3, 0x360 -/* 0A4F60 800A4360 0C019826 */ jal set_viewport_tv_type -/* 0A4F64 800A4364 00002025 */ move $a0, $zero -/* 0A4F68 800A4368 0C01EFC7 */ jal func_8007BF1C -/* 0A4F6C 800A436C 00002025 */ move $a0, $zero -/* 0A4F70 800A4370 8FAA0024 */ lw $t2, 0x24($sp) -/* 0A4F74 800A4374 8E0C0000 */ lw $t4, ($s0) -/* 0A4F78 800A4378 00000000 */ nop -/* 0A4F7C 800A437C A58A00F8 */ sh $t2, 0xf8($t4) -/* 0A4F80 800A4380 8E020000 */ lw $v0, ($s0) -/* 0A4F84 800A4384 00000000 */ nop -/* 0A4F88 800A4388 804B039B */ lb $t3, 0x39b($v0) -/* 0A4F8C 800A438C 00000000 */ nop -/* 0A4F90 800A4390 1160004D */ beqz $t3, .L800A44C8 -/* 0A4F94 800A4394 8FA9003C */ lw $t1, 0x3c($sp) -/* 0A4F98 800A4398 804D039A */ lb $t5, 0x39a($v0) -/* 0A4F9C 800A439C 8FAE0044 */ lw $t6, 0x44($sp) -/* 0A4FA0 800A43A0 24040006 */ li $a0, 6 -/* 0A4FA4 800A43A4 01AE7823 */ subu $t7, $t5, $t6 -/* 0A4FA8 800A43A8 A04F039A */ sb $t7, 0x39a($v0) -/* 0A4FAC 800A43AC 8E020000 */ lw $v0, ($s0) -/* 0A4FB0 800A43B0 00000000 */ nop -/* 0A4FB4 800A43B4 8058039A */ lb $t8, 0x39a($v0) -/* 0A4FB8 800A43B8 00000000 */ nop -/* 0A4FBC 800A43BC 07010011 */ bgez $t8, .L800A4404 -/* 0A4FC0 800A43C0 00000000 */ nop -/* 0A4FC4 800A43C4 A044039A */ sb $a0, 0x39a($v0) -/* 0A4FC8 800A43C8 8E020000 */ lw $v0, ($s0) -/* 0A4FCC 800A43CC 00000000 */ nop -/* 0A4FD0 800A43D0 84430398 */ lh $v1, 0x398($v0) -/* 0A4FD4 800A43D4 00000000 */ nop -/* 0A4FD8 800A43D8 14830009 */ bne $a0, $v1, .L800A4400 -/* 0A4FDC 800A43DC 246C0001 */ addiu $t4, $v1, 1 -/* 0A4FE0 800A43E0 A4400398 */ sh $zero, 0x398($v0) -/* 0A4FE4 800A43E4 8E020000 */ lw $v0, ($s0) -/* 0A4FE8 800A43E8 00000000 */ nop -/* 0A4FEC 800A43EC 8059039B */ lb $t9, 0x39b($v0) -/* 0A4FF0 800A43F0 00000000 */ nop -/* 0A4FF4 800A43F4 272AFFFF */ addiu $t2, $t9, -1 -/* 0A4FF8 800A43F8 10000002 */ b .L800A4404 -/* 0A4FFC 800A43FC A04A039B */ sb $t2, 0x39b($v0) -.L800A4400: -/* 0A5000 800A4400 A44C0398 */ sh $t4, 0x398($v0) -.L800A4404: -/* 0A5004 800A4404 0C019826 */ jal set_viewport_tv_type -/* 0A5008 800A4408 24040001 */ li $a0, 1 -/* 0A500C 800A440C 8E070000 */ lw $a3, ($s0) -/* 0A5010 800A4410 3C048012 */ lui $a0, %hi(gHUDCurrDisplayList) # $a0, 0x8012 -/* 0A5014 800A4414 3C058012 */ lui $a1, %hi(gHUDCurrMatrix) # $a1, 0x8012 -/* 0A5018 800A4418 3C068012 */ lui $a2, %hi(gHUDCurrTriList) # $a2, 0x8012 -/* 0A501C 800A441C 24C66D04 */ addiu $a2, %lo(gHUDCurrTriList) # addiu $a2, $a2, 0x6d04 -/* 0A5020 800A4420 24A56D00 */ addiu $a1, %lo(gHUDCurrMatrix) # addiu $a1, $a1, 0x6d00 -/* 0A5024 800A4424 24846CFC */ addiu $a0, %lo(gHUDCurrDisplayList) # addiu $a0, $a0, 0x6cfc -/* 0A5028 800A4428 0C02A980 */ jal func_800AA600 -/* 0A502C 800A442C 24E70380 */ addiu $a3, $a3, 0x380 -/* 0A5030 800A4430 0C019826 */ jal set_viewport_tv_type -/* 0A5034 800A4434 00002025 */ move $a0, $zero -/* 0A5038 800A4438 8E020000 */ lw $v0, ($s0) -/* 0A503C 800A443C 10000022 */ b .L800A44C8 -/* 0A5040 800A4440 8FA9003C */ lw $t1, 0x3c($sp) -.L800A4444: -/* 0A5044 800A4444 8E0D0000 */ lw $t5, ($s0) -/* 0A5048 800A4448 244B0080 */ addiu $t3, $v0, 0x80 -/* 0A504C 800A444C 00002025 */ move $a0, $zero -/* 0A5050 800A4450 0C01A142 */ jal func_80068508 -/* 0A5054 800A4454 A5AB00F8 */ sh $t3, 0xf8($t5) -/* 0A5058 800A4458 0C01EFC7 */ jal func_8007BF1C -/* 0A505C 800A445C 24040001 */ li $a0, 1 -/* 0A5060 800A4460 0C019826 */ jal set_viewport_tv_type -/* 0A5064 800A4464 24040001 */ li $a0, 1 -/* 0A5068 800A4468 8E070000 */ lw $a3, ($s0) -/* 0A506C 800A446C 3C048012 */ lui $a0, %hi(gHUDCurrDisplayList) # $a0, 0x8012 -/* 0A5070 800A4470 3C058012 */ lui $a1, %hi(gHUDCurrMatrix) # $a1, 0x8012 -/* 0A5074 800A4474 3C068012 */ lui $a2, %hi(gHUDCurrTriList) # $a2, 0x8012 -/* 0A5078 800A4478 24C66D04 */ addiu $a2, %lo(gHUDCurrTriList) # addiu $a2, $a2, 0x6d04 -/* 0A507C 800A447C 24A56D00 */ addiu $a1, %lo(gHUDCurrMatrix) # addiu $a1, $a1, 0x6d00 -/* 0A5080 800A4480 24846CFC */ addiu $a0, %lo(gHUDCurrDisplayList) # addiu $a0, $a0, 0x6cfc -/* 0A5084 800A4484 0C02A980 */ jal func_800AA600 -/* 0A5088 800A4488 24E700E0 */ addiu $a3, $a3, 0xe0 -/* 0A508C 800A448C 0C01EFC7 */ jal func_8007BF1C -/* 0A5090 800A4490 00002025 */ move $a0, $zero -/* 0A5094 800A4494 0C019826 */ jal set_viewport_tv_type -/* 0A5098 800A4498 00002025 */ move $a0, $zero -/* 0A509C 800A449C 0C01A142 */ jal func_80068508 -/* 0A50A0 800A44A0 24040001 */ li $a0, 1 -/* 0A50A4 800A44A4 8E020000 */ lw $v0, ($s0) -/* 0A50A8 800A44A8 00000000 */ nop -/* 0A50AC 800A44AC 844E00F8 */ lh $t6, 0xf8($v0) -/* 0A50B0 800A44B0 00000000 */ nop -/* 0A50B4 800A44B4 25CFFF80 */ addiu $t7, $t6, -0x80 -/* 0A50B8 800A44B8 A44F00F8 */ sh $t7, 0xf8($v0) -/* 0A50BC 800A44BC 8E020000 */ lw $v0, ($s0) -/* 0A50C0 800A44C0 00000000 */ nop -/* 0A50C4 800A44C4 8FA9003C */ lw $t1, 0x3c($sp) -.L800A44C8: -/* 0A50C8 800A44C8 2408000A */ li $t0, 10 -/* 0A50CC 800A44CC 0128001A */ div $zero, $t1, $t0 -/* 0A50D0 800A44D0 15000002 */ bnez $t0, .L800A44DC -/* 0A50D4 800A44D4 00000000 */ nop -/* 0A50D8 800A44D8 0007000D */ break 7 -.L800A44DC: -/* 0A50DC 800A44DC 2401FFFF */ li $at, -1 -/* 0A50E0 800A44E0 15010004 */ bne $t0, $at, .L800A44F4 -/* 0A50E4 800A44E4 3C018000 */ lui $at, 0x8000 -/* 0A50E8 800A44E8 15210002 */ bne $t1, $at, .L800A44F4 -/* 0A50EC 800A44EC 00000000 */ nop -/* 0A50F0 800A44F0 0006000D */ break 6 -.L800A44F4: -/* 0A50F4 800A44F4 00001812 */ mflo $v1 -/* 0A50F8 800A44F8 1060001A */ beqz $v1, .L800A4564 -/* 0A50FC 800A44FC 00000000 */ nop -/* 0A5100 800A4500 0128001A */ div $zero, $t1, $t0 -/* 0A5104 800A4504 A4430118 */ sh $v1, 0x118($v0) -/* 0A5108 800A4508 8E190000 */ lw $t9, ($s0) -/* 0A510C 800A450C 15000002 */ bnez $t0, .L800A4518 -/* 0A5110 800A4510 00000000 */ nop -/* 0A5114 800A4514 0007000D */ break 7 -.L800A4518: -/* 0A5118 800A4518 2401FFFF */ li $at, -1 -/* 0A511C 800A451C 15010004 */ bne $t0, $at, .L800A4530 -/* 0A5120 800A4520 3C018000 */ lui $at, 0x8000 -/* 0A5124 800A4524 15210002 */ bne $t1, $at, .L800A4530 -/* 0A5128 800A4528 00000000 */ nop -/* 0A512C 800A452C 0006000D */ break 6 -.L800A4530: -/* 0A5130 800A4530 3C048012 */ lui $a0, %hi(gHUDCurrDisplayList) # $a0, 0x8012 -/* 0A5134 800A4534 3C058012 */ lui $a1, %hi(gHUDCurrMatrix) # $a1, 0x8012 -/* 0A5138 800A4538 3C068012 */ lui $a2, %hi(gHUDCurrTriList) # $a2, 0x8012 -/* 0A513C 800A453C 24C66D04 */ addiu $a2, %lo(gHUDCurrTriList) # addiu $a2, $a2, 0x6d04 -/* 0A5140 800A4540 24A56D00 */ addiu $a1, %lo(gHUDCurrMatrix) # addiu $a1, $a1, 0x6d00 -/* 0A5144 800A4544 24846CFC */ addiu $a0, %lo(gHUDCurrDisplayList) # addiu $a0, $a0, 0x6cfc -/* 0A5148 800A4548 0000C010 */ mfhi $t8 -/* 0A514C 800A454C A7380138 */ sh $t8, 0x138($t9) -/* 0A5150 800A4550 8E070000 */ lw $a3, ($s0) -/* 0A5154 800A4554 0C02A980 */ jal func_800AA600 -/* 0A5158 800A4558 24E70120 */ addiu $a3, $a3, 0x120 -/* 0A515C 800A455C 1000000F */ b .L800A459C -/* 0A5160 800A4560 8E070000 */ lw $a3, ($s0) -.L800A4564: -/* 0A5164 800A4564 0128001A */ div $zero, $t1, $t0 -/* 0A5168 800A4568 15000002 */ bnez $t0, .L800A4574 -/* 0A516C 800A456C 00000000 */ nop -/* 0A5170 800A4570 0007000D */ break 7 -.L800A4574: -/* 0A5174 800A4574 2401FFFF */ li $at, -1 -/* 0A5178 800A4578 15010004 */ bne $t0, $at, .L800A458C -/* 0A517C 800A457C 3C018000 */ lui $at, 0x8000 -/* 0A5180 800A4580 15210002 */ bne $t1, $at, .L800A458C -/* 0A5184 800A4584 00000000 */ nop -/* 0A5188 800A4588 0006000D */ break 6 -.L800A458C: -/* 0A518C 800A458C 00005010 */ mfhi $t2 -/* 0A5190 800A4590 A44A0118 */ sh $t2, 0x118($v0) -/* 0A5194 800A4594 00000000 */ nop -/* 0A5198 800A4598 8E070000 */ lw $a3, ($s0) -.L800A459C: -/* 0A519C 800A459C 3C048012 */ lui $a0, %hi(gHUDCurrDisplayList) # $a0, 0x8012 -/* 0A51A0 800A45A0 3C058012 */ lui $a1, %hi(gHUDCurrMatrix) # $a1, 0x8012 -/* 0A51A4 800A45A4 3C068012 */ lui $a2, %hi(gHUDCurrTriList) # $a2, 0x8012 -/* 0A51A8 800A45A8 24C66D04 */ addiu $a2, %lo(gHUDCurrTriList) # addiu $a2, $a2, 0x6d04 -/* 0A51AC 800A45AC 24A56D00 */ addiu $a1, %lo(gHUDCurrMatrix) # addiu $a1, $a1, 0x6d00 -/* 0A51B0 800A45B0 24846CFC */ addiu $a0, %lo(gHUDCurrDisplayList) # addiu $a0, $a0, 0x6cfc -/* 0A51B4 800A45B4 0C02A980 */ jal func_800AA600 -/* 0A51B8 800A45B8 24E70100 */ addiu $a3, $a3, 0x100 -/* 0A51BC 800A45BC 3C038012 */ lui $v1, %hi(gHUDCurrDisplayList) # $v1, 0x8012 -/* 0A51C0 800A45C0 8C636CFC */ lw $v1, %lo(gHUDCurrDisplayList)($v1) -/* 0A51C4 800A45C4 3C018012 */ lui $at, %hi(gHUDCurrDisplayList) # $at, 0x8012 -/* 0A51C8 800A45C8 246C0008 */ addiu $t4, $v1, 8 -/* 0A51CC 800A45CC AC2C6CFC */ sw $t4, %lo(gHUDCurrDisplayList)($at) -/* 0A51D0 800A45D0 3C0BFA00 */ lui $t3, 0xfa00 -/* 0A51D4 800A45D4 240DFFFF */ li $t5, -1 -/* 0A51D8 800A45D8 AC6D0004 */ sw $t5, 4($v1) -/* 0A51DC 800A45DC AC6B0000 */ sw $t3, ($v1) -.L800A45E0: -/* 0A51E0 800A45E0 8FBF001C */ lw $ra, 0x1c($sp) -.L800A45E4: -/* 0A51E4 800A45E4 8FB00018 */ lw $s0, 0x18($sp) -/* 0A51E8 800A45E8 03E00008 */ jr $ra -/* 0A51EC 800A45EC 27BD0040 */ addiu $sp, $sp, 0x40 - diff --git a/asm/non_matchings/game_ui/func_800A45F0.s b/asm/non_matchings/game_ui/func_800A45F0.s deleted file mode 100644 index ad6326b7..00000000 --- a/asm/non_matchings/game_ui/func_800A45F0.s +++ /dev/null @@ -1,114 +0,0 @@ -glabel func_800A45F0 -/* 0A51F0 800A45F0 27BDFFB0 */ addiu $sp, $sp, -0x50 -/* 0A51F4 800A45F4 AFB7003C */ sw $s7, 0x3c($sp) -/* 0A51F8 800A45F8 444EF800 */ cfc1 $t6, $31 -/* 0A51FC 800A45FC 3C178012 */ lui $s7, %hi(D_80126CDC) # $s7, 0x8012 -/* 0A5200 800A4600 26F76CDC */ addiu $s7, %lo(D_80126CDC) # addiu $s7, $s7, 0x6cdc -/* 0A5204 800A4604 AFB10024 */ sw $s1, 0x24($sp) -/* 0A5208 800A4608 8EF10000 */ lw $s1, ($s7) -/* 0A520C 800A460C 35C10003 */ ori $at, $t6, 3 -/* 0A5210 800A4610 AFBF0044 */ sw $ra, 0x44($sp) -/* 0A5214 800A4614 AFBE0040 */ sw $fp, 0x40($sp) -/* 0A5218 800A4618 AFB60038 */ sw $s6, 0x38($sp) -/* 0A521C 800A461C AFB50034 */ sw $s5, 0x34($sp) -/* 0A5220 800A4620 AFB40030 */ sw $s4, 0x30($sp) -/* 0A5224 800A4624 AFB3002C */ sw $s3, 0x2c($sp) -/* 0A5228 800A4628 AFB20028 */ sw $s2, 0x28($sp) -/* 0A522C 800A462C AFB00020 */ sw $s0, 0x20($sp) -/* 0A5230 800A4630 E7B50018 */ swc1 $f21, 0x18($sp) -/* 0A5234 800A4634 E7B4001C */ swc1 $f20, 0x1c($sp) -/* 0A5238 800A4638 38210002 */ xori $at, $at, 2 -/* 0A523C 800A463C 44C1F800 */ ctc1 $at, $31 -/* 0A5240 800A4640 C6240410 */ lwc1 $f4, 0x410($s1) -/* 0A5244 800A4644 3C028012 */ lui $v0, %hi(D_80126D37) # $v0, 0x8012 -/* 0A5248 800A4648 460021A4 */ cvt.w.s $f6, $f4 -/* 0A524C 800A464C 90426D37 */ lbu $v0, %lo(D_80126D37)($v0) -/* 0A5250 800A4650 440F3000 */ mfc1 $t7, $f6 -/* 0A5254 800A4654 44CEF800 */ ctc1 $t6, $31 -/* 0A5258 800A4658 28410003 */ slti $at, $v0, 3 -/* 0A525C 800A465C 0080B025 */ move $s6, $a0 -/* 0A5260 800A4660 14200008 */ bnez $at, .L800A4684 -/* 0A5264 800A4664 AFAF0048 */ sw $t7, 0x48($sp) -/* 0A5268 800A4668 24010003 */ li $at, 3 -/* 0A526C 800A466C 14410017 */ bne $v0, $at, .L800A46CC -/* 0A5270 800A4670 3C014040 */ lui $at, 0x4040 -/* 0A5274 800A4674 84980000 */ lh $t8, ($a0) -/* 0A5278 800A4678 2401FFFF */ li $at, -1 -/* 0A527C 800A467C 17010013 */ bne $t8, $at, .L800A46CC -/* 0A5280 800A4680 3C014040 */ lui $at, 0x4040 -.L800A4684: -/* 0A5284 800A4684 82D90003 */ lb $t9, 3($s6) -/* 0A5288 800A4688 3C128012 */ lui $s2, %hi(D_80126CD5) # $s2, 0x8012 -/* 0A528C 800A468C 27280038 */ addiu $t0, $t9, 0x38 -/* 0A5290 800A4690 A6280646 */ sh $t0, 0x646($s1) -/* 0A5294 800A4694 8EE70000 */ lw $a3, ($s7) -/* 0A5298 800A4698 26526CD5 */ addiu $s2, %lo(D_80126CD5) # addiu $s2, $s2, 0x6cd5 -/* 0A529C 800A469C 241E0001 */ li $fp, 1 -/* 0A52A0 800A46A0 3C048012 */ lui $a0, %hi(gHUDCurrDisplayList) # $a0, 0x8012 -/* 0A52A4 800A46A4 3C058012 */ lui $a1, %hi(gHUDCurrMatrix) # $a1, 0x8012 -/* 0A52A8 800A46A8 3C068012 */ lui $a2, %hi(gHUDCurrTriList) # $a2, 0x8012 -/* 0A52AC 800A46AC A25E0000 */ sb $fp, ($s2) -/* 0A52B0 800A46B0 24C66D04 */ addiu $a2, %lo(gHUDCurrTriList) # addiu $a2, $a2, 0x6d04 -/* 0A52B4 800A46B4 24A56D00 */ addiu $a1, %lo(gHUDCurrMatrix) # addiu $a1, $a1, 0x6d00 -/* 0A52B8 800A46B8 24846CFC */ addiu $a0, %lo(gHUDCurrDisplayList) # addiu $a0, $a0, 0x6cfc -/* 0A52BC 800A46BC 0C02A980 */ jal func_800AA600 -/* 0A52C0 800A46C0 24E70640 */ addiu $a3, $a3, 0x640 -/* 0A52C4 800A46C4 A2400000 */ sb $zero, ($s2) -/* 0A52C8 800A46C8 3C014040 */ li $at, 0x40400000 # 3.000000 -.L800A46CC: -/* 0A52CC 800A46CC 3C128012 */ lui $s2, %hi(D_80126CD5) # $s2, 0x8012 -/* 0A52D0 800A46D0 3C15800E */ lui $s5, %hi(D_800E2834) # $s5, 0x800e -/* 0A52D4 800A46D4 3C138080 */ lui $s3, (0x80808080 >> 16) # lui $s3, 0x8080 -/* 0A52D8 800A46D8 4481A000 */ mtc1 $at, $f20 -/* 0A52DC 800A46DC 26526CD5 */ addiu $s2, %lo(D_80126CD5) # addiu $s2, $s2, 0x6cd5 -/* 0A52E0 800A46E0 241E0001 */ li $fp, 1 -/* 0A52E4 800A46E4 36738080 */ ori $s3, (0x80808080 & 0xFFFF) # ori $s3, $s3, 0x8080 -/* 0A52E8 800A46E8 26B52834 */ addiu $s5, %lo(D_800E2834) # addiu $s5, $s5, 0x2834 -/* 0A52EC 800A46EC 00008025 */ move $s0, $zero -/* 0A52F0 800A46F0 2414000A */ li $s4, 10 -.L800A46F4: -/* 0A52F4 800A46F4 82C90193 */ lb $t1, 0x193($s6) -/* 0A52F8 800A46F8 8EF10000 */ lw $s1, ($s7) -/* 0A52FC 800A46FC 0209082A */ slt $at, $s0, $t1 -/* 0A5300 800A4700 14200002 */ bnez $at, .L800A470C -/* 0A5304 800A4704 3C048012 */ lui $a0, %hi(gHUDCurrDisplayList) # $a0, 0x8012 -/* 0A5308 800A4708 AEB30000 */ sw $s3, ($s5) -.L800A470C: -/* 0A530C 800A470C 3C058012 */ lui $a1, %hi(gHUDCurrMatrix) # $a1, 0x8012 -/* 0A5310 800A4710 3C068012 */ lui $a2, %hi(gHUDCurrTriList) # $a2, 0x8012 -/* 0A5314 800A4714 A25E0000 */ sb $fp, ($s2) -/* 0A5318 800A4718 24C66D04 */ addiu $a2, %lo(gHUDCurrTriList) # addiu $a2, $a2, 0x6d04 -/* 0A531C 800A471C 24A56D00 */ addiu $a1, %lo(gHUDCurrMatrix) # addiu $a1, $a1, 0x6d00 -/* 0A5320 800A4720 24846CFC */ addiu $a0, %lo(gHUDCurrDisplayList) # addiu $a0, $a0, 0x6cfc -/* 0A5324 800A4724 0C02A980 */ jal func_800AA600 -/* 0A5328 800A4728 26270400 */ addiu $a3, $s1, 0x400 -/* 0A532C 800A472C 8EF10000 */ lw $s1, ($s7) -/* 0A5330 800A4730 A2400000 */ sb $zero, ($s2) -/* 0A5334 800A4734 C6280410 */ lwc1 $f8, 0x410($s1) -/* 0A5338 800A4738 26100001 */ addiu $s0, $s0, 1 -/* 0A533C 800A473C 46144281 */ sub.s $f10, $f8, $f20 -/* 0A5340 800A4740 1614FFEC */ bne $s0, $s4, .L800A46F4 -/* 0A5344 800A4744 E62A0410 */ swc1 $f10, 0x410($s1) -/* 0A5348 800A4748 8FAA0048 */ lw $t2, 0x48($sp) -/* 0A534C 800A474C 8EEB0000 */ lw $t3, ($s7) -/* 0A5350 800A4750 448A8000 */ mtc1 $t2, $f16 -/* 0A5354 800A4754 240CFFFE */ li $t4, -2 -/* 0A5358 800A4758 468084A0 */ cvt.s.w $f18, $f16 -/* 0A535C 800A475C E5720410 */ swc1 $f18, 0x410($t3) -/* 0A5360 800A4760 8FBF0044 */ lw $ra, 0x44($sp) -/* 0A5364 800A4764 AEAC0000 */ sw $t4, ($s5) -/* 0A5368 800A4768 A2400000 */ sb $zero, ($s2) -/* 0A536C 800A476C 8FB20028 */ lw $s2, 0x28($sp) -/* 0A5370 800A4770 8FB50034 */ lw $s5, 0x34($sp) -/* 0A5374 800A4774 8FBE0040 */ lw $fp, 0x40($sp) -/* 0A5378 800A4778 8FB7003C */ lw $s7, 0x3c($sp) -/* 0A537C 800A477C 8FB60038 */ lw $s6, 0x38($sp) -/* 0A5380 800A4780 8FB40030 */ lw $s4, 0x30($sp) -/* 0A5384 800A4784 8FB3002C */ lw $s3, 0x2c($sp) -/* 0A5388 800A4788 8FB10024 */ lw $s1, 0x24($sp) -/* 0A538C 800A478C 8FB00020 */ lw $s0, 0x20($sp) -/* 0A5390 800A4790 C7B4001C */ lwc1 $f20, 0x1c($sp) -/* 0A5394 800A4794 C7B50018 */ lwc1 $f21, 0x18($sp) -/* 0A5398 800A4798 03E00008 */ jr $ra -/* 0A539C 800A479C 27BD0050 */ addiu $sp, $sp, 0x50 - diff --git a/asm/non_matchings/game_ui/func_800A497C.s b/asm/non_matchings/game_ui/func_800A497C.s deleted file mode 100644 index ae07738b..00000000 --- a/asm/non_matchings/game_ui/func_800A497C.s +++ /dev/null @@ -1,186 +0,0 @@ -glabel func_800A497C -/* 0A557C 800A497C 27BDFFD0 */ addiu $sp, $sp, -0x30 -/* 0A5580 800A4980 3C028012 */ lui $v0, %hi(D_80126CDC) # $v0, 0x8012 -/* 0A5584 800A4984 8C426CDC */ lw $v0, %lo(D_80126CDC)($v0) -/* 0A5588 800A4988 AFBF001C */ sw $ra, 0x1c($sp) -/* 0A558C 800A498C AFB00018 */ sw $s0, 0x18($sp) -/* 0A5590 800A4990 AFA40030 */ sw $a0, 0x30($sp) -/* 0A5594 800A4994 A3A00027 */ sb $zero, 0x27($sp) -/* 0A5598 800A4998 24470700 */ addiu $a3, $v0, 0x700 -/* 0A559C 800A499C 80E3001A */ lb $v1, 0x1a($a3) -/* 0A55A0 800A49A0 24040018 */ li $a0, 24 -/* 0A55A4 800A49A4 1060000B */ beqz $v1, .L800A49D4 -/* 0A55A8 800A49A8 24500740 */ addiu $s0, $v0, 0x740 -/* 0A55AC 800A49AC 24010001 */ li $at, 1 -/* 0A55B0 800A49B0 1061001F */ beq $v1, $at, .L800A4A30 -/* 0A55B4 800A49B4 24020002 */ li $v0, 2 -/* 0A55B8 800A49B8 1062005F */ beq $v1, $v0, .L800A4B38 -/* 0A55BC 800A49BC 00055880 */ sll $t3, $a1, 2 -/* 0A55C0 800A49C0 24020003 */ li $v0, 3 -/* 0A55C4 800A49C4 10620074 */ beq $v1, $v0, .L800A4B98 -/* 0A55C8 800A49C8 00000000 */ nop -/* 0A55CC 800A49CC 10000074 */ b .L800A4BA0 -/* 0A55D0 800A49D0 83AD0027 */ lb $t5, 0x27($sp) -.L800A49D4: -/* 0A55D4 800A49D4 0C0002F8 */ jal set_music_player_voice_limit -/* 0A55D8 800A49D8 AFA7002C */ sw $a3, 0x2c($sp) -/* 0A55DC 800A49DC 0C0002CD */ jal play_music -/* 0A55E0 800A49E0 24040019 */ li $a0, 25 -/* 0A55E4 800A49E4 24040016 */ li $a0, 22 -/* 0A55E8 800A49E8 0C000741 */ jal play_sound_global -/* 0A55EC 800A49EC 00002825 */ move $a1, $zero -/* 0A55F0 800A49F0 3C058012 */ lui $a1, %hi(gHUDVoiceSoundMask) # $a1, 0x8012 -/* 0A55F4 800A49F4 24A56D40 */ addiu $a1, %lo(gHUDVoiceSoundMask) # addiu $a1, $a1, 0x6d40 -/* 0A55F8 800A49F8 0C000741 */ jal play_sound_global -/* 0A55FC 800A49FC 24040102 */ li $a0, 258 -/* 0A5600 800A4A00 3C02800E */ lui $v0, %hi(D_800E2770) # $v0, 0x800e -/* 0A5604 800A4A04 24422770 */ addiu $v0, %lo(D_800E2770) # addiu $v0, $v0, 0x2770 -/* 0A5608 800A4A08 8FAF0030 */ lw $t7, 0x30($sp) -/* 0A560C 800A4A0C 240E007F */ li $t6, 127 -/* 0A5610 800A4A10 A04E0002 */ sb $t6, 2($v0) -/* 0A5614 800A4A14 A0400003 */ sb $zero, 3($v0) -/* 0A5618 800A4A18 85F80000 */ lh $t8, ($t7) -/* 0A561C 800A4A1C 8FA7002C */ lw $a3, 0x2c($sp) -/* 0A5620 800A4A20 24190001 */ li $t9, 1 -/* 0A5624 800A4A24 A058000C */ sb $t8, 0xc($v0) -/* 0A5628 800A4A28 1000005C */ b .L800A4B9C -/* 0A562C 800A4A2C A0F9001A */ sb $t9, 0x1a($a3) -.L800A4A30: -/* 0A5630 800A4A30 00054080 */ sll $t0, $a1, 2 -/* 0A5634 800A4A34 01054023 */ subu $t0, $t0, $a1 -/* 0A5638 800A4A38 00084080 */ sll $t0, $t0, 2 -/* 0A563C 800A4A3C 01054021 */ addu $t0, $t0, $a1 -/* 0A5640 800A4A40 44882000 */ mtc1 $t0, $f4 -/* 0A5644 800A4A44 C4E6000C */ lwc1 $f6, 0xc($a3) -/* 0A5648 800A4A48 46802020 */ cvt.s.w $f0, $f4 -/* 0A564C 800A4A4C 3C01C1B8 */ li $at, 0xC1B80000 # -23.000000 -/* 0A5650 800A4A50 44811000 */ mtc1 $at, $f2 -/* 0A5654 800A4A54 46003200 */ add.s $f8, $f6, $f0 -/* 0A5658 800A4A58 E4E8000C */ swc1 $f8, 0xc($a3) -/* 0A565C 800A4A5C C4EA000C */ lwc1 $f10, 0xc($a3) -/* 0A5660 800A4A60 00000000 */ nop -/* 0A5664 800A4A64 460A103C */ c.lt.s $f2, $f10 -/* 0A5668 800A4A68 00000000 */ nop -/* 0A566C 800A4A6C 45000002 */ bc1f .L800A4A78 -/* 0A5670 800A4A70 00000000 */ nop -/* 0A5674 800A4A74 E4E2000C */ swc1 $f2, 0xc($a3) -.L800A4A78: -/* 0A5678 800A4A78 C610000C */ lwc1 $f16, 0xc($s0) -/* 0A567C 800A4A7C 3C0141B0 */ li $at, 0x41B00000 # 22.000000 -/* 0A5680 800A4A80 46008481 */ sub.s $f18, $f16, $f0 -/* 0A5684 800A4A84 44816000 */ mtc1 $at, $f12 -/* 0A5688 800A4A88 E612000C */ swc1 $f18, 0xc($s0) -/* 0A568C 800A4A8C C602000C */ lwc1 $f2, 0xc($s0) -/* 0A5690 800A4A90 00000000 */ nop -/* 0A5694 800A4A94 460C103C */ c.lt.s $f2, $f12 -/* 0A5698 800A4A98 00000000 */ nop -/* 0A569C 800A4A9C 45000004 */ bc1f .L800A4AB0 -/* 0A56A0 800A4AA0 00000000 */ nop -/* 0A56A4 800A4AA4 E60C000C */ swc1 $f12, 0xc($s0) -/* 0A56A8 800A4AA8 C602000C */ lwc1 $f2, 0xc($s0) -/* 0A56AC 800A4AAC 00000000 */ nop -.L800A4AB0: -/* 0A56B0 800A4AB0 46026032 */ c.eq.s $f12, $f2 -/* 0A56B4 800A4AB4 24090001 */ li $t1, 1 -/* 0A56B8 800A4AB8 45000038 */ bc1f .L800A4B9C -/* 0A56BC 800A4ABC A3A90027 */ sb $t1, 0x27($sp) -/* 0A56C0 800A4AC0 80EA001B */ lb $t2, 0x1b($a3) -/* 0A56C4 800A4AC4 240DFF88 */ li $t5, -120 -/* 0A56C8 800A4AC8 01455821 */ addu $t3, $t2, $a1 -/* 0A56CC 800A4ACC A0EB001B */ sb $t3, 0x1b($a3) -/* 0A56D0 800A4AD0 80EC001B */ lb $t4, 0x1b($a3) -/* 0A56D4 800A4AD4 00002825 */ move $a1, $zero -/* 0A56D8 800A4AD8 29810078 */ slti $at, $t4, 0x78 -/* 0A56DC 800A4ADC 14200005 */ bnez $at, .L800A4AF4 -/* 0A56E0 800A4AE0 24040016 */ li $a0, 22 -/* 0A56E4 800A4AE4 80EE001C */ lb $t6, 0x1c($a3) -/* 0A56E8 800A4AE8 A0ED001B */ sb $t5, 0x1b($a3) -/* 0A56EC 800A4AEC 25CF0001 */ addiu $t7, $t6, 1 -/* 0A56F0 800A4AF0 A0EF001C */ sb $t7, 0x1c($a3) -.L800A4AF4: -/* 0A56F4 800A4AF4 80F8001C */ lb $t8, 0x1c($a3) -/* 0A56F8 800A4AF8 24020002 */ li $v0, 2 -/* 0A56FC 800A4AFC 14580028 */ bne $v0, $t8, .L800A4BA0 -/* 0A5700 800A4B00 83AD0027 */ lb $t5, 0x27($sp) -/* 0A5704 800A4B04 A0E2001A */ sb $v0, 0x1a($a3) -/* 0A5708 800A4B08 0C000741 */ jal play_sound_global -/* 0A570C 800A4B0C AFA7002C */ sw $a3, 0x2c($sp) -/* 0A5710 800A4B10 8FB90030 */ lw $t9, 0x30($sp) -/* 0A5714 800A4B14 3C02800E */ lui $v0, %hi(D_800E2770) # $v0, 0x800e -/* 0A5718 800A4B18 24422770 */ addiu $v0, %lo(D_800E2770) # addiu $v0, $v0, 0x2770 -/* 0A571C 800A4B1C 8049000C */ lb $t1, 0xc($v0) -/* 0A5720 800A4B20 87280000 */ lh $t0, ($t9) -/* 0A5724 800A4B24 8FA7002C */ lw $a3, 0x2c($sp) -/* 0A5728 800A4B28 1509001C */ bne $t0, $t1, .L800A4B9C -/* 0A572C 800A4B2C 240AFFFF */ li $t2, -1 -/* 0A5730 800A4B30 1000001A */ b .L800A4B9C -/* 0A5734 800A4B34 A04A0003 */ sb $t2, 3($v0) -.L800A4B38: -/* 0A5738 800A4B38 01655823 */ subu $t3, $t3, $a1 -/* 0A573C 800A4B3C 000B5880 */ sll $t3, $t3, 2 -/* 0A5740 800A4B40 01655821 */ addu $t3, $t3, $a1 -/* 0A5744 800A4B44 448B2000 */ mtc1 $t3, $f4 -/* 0A5748 800A4B48 C4E6000C */ lwc1 $f6, 0xc($a3) -/* 0A574C 800A4B4C 46802020 */ cvt.s.w $f0, $f4 -/* 0A5750 800A4B50 240C0001 */ li $t4, 1 -/* 0A5754 800A4B54 3C014348 */ li $at, 0x43480000 # 200.000000 -/* 0A5758 800A4B58 46003200 */ add.s $f8, $f6, $f0 -/* 0A575C 800A4B5C 44819000 */ mtc1 $at, $f18 -/* 0A5760 800A4B60 E4E8000C */ swc1 $f8, 0xc($a3) -/* 0A5764 800A4B64 C60A000C */ lwc1 $f10, 0xc($s0) -/* 0A5768 800A4B68 24020003 */ li $v0, 3 -/* 0A576C 800A4B6C 46005400 */ add.s $f16, $f10, $f0 -/* 0A5770 800A4B70 E610000C */ swc1 $f16, 0xc($s0) -/* 0A5774 800A4B74 A3AC0027 */ sb $t4, 0x27($sp) -/* 0A5778 800A4B78 C4E4000C */ lwc1 $f4, 0xc($a3) -/* 0A577C 800A4B7C 00000000 */ nop -/* 0A5780 800A4B80 4604903C */ c.lt.s $f18, $f4 -/* 0A5784 800A4B84 00000000 */ nop -/* 0A5788 800A4B88 45000005 */ bc1f .L800A4BA0 -/* 0A578C 800A4B8C 83AD0027 */ lb $t5, 0x27($sp) -/* 0A5790 800A4B90 10000002 */ b .L800A4B9C -/* 0A5794 800A4B94 A0E2001A */ sb $v0, 0x1a($a3) -.L800A4B98: -/* 0A5798 800A4B98 A0E2001A */ sb $v0, 0x1a($a3) -.L800A4B9C: -/* 0A579C 800A4B9C 83AD0027 */ lb $t5, 0x27($sp) -.L800A4BA0: -/* 0A57A0 800A4BA0 00000000 */ nop -/* 0A57A4 800A4BA4 11A0001F */ beqz $t5, .L800A4C24 -/* 0A57A8 800A4BA8 3C048012 */ lui $a0, %hi(gHUDCurrDisplayList) # $a0, 0x8012 -/* 0A57AC 800A4BAC 24846CFC */ addiu $a0, %lo(gHUDCurrDisplayList) # addiu $a0, $a0, 0x6cfc -/* 0A57B0 800A4BB0 8C830000 */ lw $v1, ($a0) -/* 0A57B4 800A4BB4 3C0FFA00 */ lui $t7, 0xfa00 -/* 0A57B8 800A4BB8 246E0008 */ addiu $t6, $v1, 8 -/* 0A57BC 800A4BBC AC8E0000 */ sw $t6, ($a0) -/* 0A57C0 800A4BC0 2418FFD2 */ li $t8, -46 -/* 0A57C4 800A4BC4 3C058012 */ lui $a1, %hi(gHUDCurrMatrix) # $a1, 0x8012 -/* 0A57C8 800A4BC8 3C068012 */ lui $a2, %hi(gHUDCurrTriList) # $a2, 0x8012 -/* 0A57CC 800A4BCC 24C66D04 */ addiu $a2, %lo(gHUDCurrTriList) # addiu $a2, $a2, 0x6d04 -/* 0A57D0 800A4BD0 24A56D00 */ addiu $a1, %lo(gHUDCurrMatrix) # addiu $a1, $a1, 0x6d00 -/* 0A57D4 800A4BD4 AC780004 */ sw $t8, 4($v1) -/* 0A57D8 800A4BD8 0C02A980 */ jal func_800AA600 -/* 0A57DC 800A4BDC AC6F0000 */ sw $t7, ($v1) -/* 0A57E0 800A4BE0 3C048012 */ lui $a0, %hi(gHUDCurrDisplayList) # $a0, 0x8012 -/* 0A57E4 800A4BE4 3C058012 */ lui $a1, %hi(gHUDCurrMatrix) # $a1, 0x8012 -/* 0A57E8 800A4BE8 3C068012 */ lui $a2, %hi(gHUDCurrTriList) # $a2, 0x8012 -/* 0A57EC 800A4BEC 24846CFC */ addiu $a0, %lo(gHUDCurrDisplayList) # addiu $a0, $a0, 0x6cfc -/* 0A57F0 800A4BF0 24C66D04 */ addiu $a2, %lo(gHUDCurrTriList) # addiu $a2, $a2, 0x6d04 -/* 0A57F4 800A4BF4 24A56D00 */ addiu $a1, %lo(gHUDCurrMatrix) # addiu $a1, $a1, 0x6d00 -/* 0A57F8 800A4BF8 0C02A980 */ jal func_800AA600 -/* 0A57FC 800A4BFC 02003825 */ move $a3, $s0 -/* 0A5800 800A4C00 3C048012 */ lui $a0, %hi(gHUDCurrDisplayList) # $a0, 0x8012 -/* 0A5804 800A4C04 24846CFC */ addiu $a0, %lo(gHUDCurrDisplayList) # addiu $a0, $a0, 0x6cfc -/* 0A5808 800A4C08 8C830000 */ lw $v1, ($a0) -/* 0A580C 800A4C0C 3C08FA00 */ lui $t0, 0xfa00 -/* 0A5810 800A4C10 24790008 */ addiu $t9, $v1, 8 -/* 0A5814 800A4C14 AC990000 */ sw $t9, ($a0) -/* 0A5818 800A4C18 2409FFFF */ li $t1, -1 -/* 0A581C 800A4C1C AC690004 */ sw $t1, 4($v1) -/* 0A5820 800A4C20 AC680000 */ sw $t0, ($v1) -.L800A4C24: -/* 0A5824 800A4C24 8FBF001C */ lw $ra, 0x1c($sp) -/* 0A5828 800A4C28 8FB00018 */ lw $s0, 0x18($sp) -/* 0A582C 800A4C2C 03E00008 */ jr $ra -/* 0A5830 800A4C30 27BD0030 */ addiu $sp, $sp, 0x30 - diff --git a/asm/non_matchings/game_ui/func_800A4F50.s b/asm/non_matchings/game_ui/func_800A4F50.s deleted file mode 100644 index 0c6d4b7f..00000000 --- a/asm/non_matchings/game_ui/func_800A4F50.s +++ /dev/null @@ -1,747 +0,0 @@ -glabel func_800A4F50 -/* 0A5B50 800A4F50 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 0A5B54 800A4F54 AFBF0014 */ sw $ra, 0x14($sp) -/* 0A5B58 800A4F58 AFA40018 */ sw $a0, 0x18($sp) -/* 0A5B5C 800A4F5C AFA5001C */ sw $a1, 0x1c($sp) -/* 0A5B60 800A4F60 808F01D8 */ lb $t7, 0x1d8($a0) -/* 0A5B64 800A4F64 3C028012 */ lui $v0, %hi(gHUDNumPlayers) # $v0, 0x8012 -/* 0A5B68 800A4F68 15E00089 */ bnez $t7, .L800A5190 -/* 0A5B6C 800A4F6C 00000000 */ nop -/* 0A5B70 800A4F70 8C426D0C */ lw $v0, %lo(gHUDNumPlayers)($v0) -/* 0A5B74 800A4F74 00000000 */ nop -/* 0A5B78 800A4F78 1840000B */ blez $v0, .L800A4FA8 -/* 0A5B7C 800A4F7C 00000000 */ nop -/* 0A5B80 800A4F80 80830193 */ lb $v1, 0x193($a0) -/* 0A5B84 800A4F84 00000000 */ nop -/* 0A5B88 800A4F88 18600007 */ blez $v1, .L800A4FA8 -/* 0A5B8C 800A4F8C 0003C080 */ sll $t8, $v1, 2 -/* 0A5B90 800A4F90 0098C821 */ addu $t9, $a0, $t8 -/* 0A5B94 800A4F94 8F2B0128 */ lw $t3, 0x128($t9) -/* 0A5B98 800A4F98 00000000 */ nop -/* 0A5B9C 800A4F9C 296100B4 */ slti $at, $t3, 0xb4 -/* 0A5BA0 800A4FA0 1420007B */ bnez $at, .L800A5190 -/* 0A5BA4 800A4FA4 00000000 */ nop -.L800A4FA8: -/* 0A5BA8 800A4FA8 1840000B */ blez $v0, .L800A4FD8 -/* 0A5BAC 800A4FAC 3C198012 */ lui $t9, %hi(D_80126D60) # $t9, 0x8012 -/* 0A5BB0 800A4FB0 8FAD0018 */ lw $t5, 0x18($sp) -/* 0A5BB4 800A4FB4 00026080 */ sll $t4, $v0, 2 -/* 0A5BB8 800A4FB8 85AF0000 */ lh $t7, ($t5) -/* 0A5BBC 800A4FBC 3C18800E */ lui $t8, %hi(D_800E2794) # $t8, 0x800e -/* 0A5BC0 800A4FC0 018F7021 */ addu $t6, $t4, $t7 -/* 0A5BC4 800A4FC4 030EC021 */ addu $t8, $t8, $t6 -/* 0A5BC8 800A4FC8 93182794 */ lbu $t8, %lo(D_800E2794)($t8) -/* 0A5BCC 800A4FCC 24010003 */ li $at, 3 -/* 0A5BD0 800A4FD0 1701006F */ bne $t8, $at, .L800A5190 -/* 0A5BD4 800A4FD4 00000000 */ nop -.L800A4FD8: -/* 0A5BD8 800A4FD8 8FAD0018 */ lw $t5, 0x18($sp) -/* 0A5BDC 800A4FDC 8F396D60 */ lw $t9, %lo(D_80126D60)($t9) -/* 0A5BE0 800A4FE0 81AC0194 */ lb $t4, 0x194($t5) -/* 0A5BE4 800A4FE4 832B004B */ lb $t3, 0x4b($t9) -/* 0A5BE8 800A4FE8 258F0001 */ addiu $t7, $t4, 1 -/* 0A5BEC 800A4FEC 156F0029 */ bne $t3, $t7, .L800A5094 -/* 0A5BF0 800A4FF0 28410002 */ slti $at, $v0, 2 -/* 0A5BF4 800A4FF4 10200027 */ beqz $at, .L800A5094 -/* 0A5BF8 800A4FF8 3C088012 */ lui $t0, %hi(D_80126CDC) # $t0, 0x8012 -/* 0A5BFC 800A4FFC 25086CDC */ addiu $t0, %lo(D_80126CDC) # addiu $t0, $t0, 0x6cdc -/* 0A5C00 800A5000 8D020000 */ lw $v0, ($t0) -/* 0A5C04 800A5004 8FB8001C */ lw $t8, 0x1c($sp) -/* 0A5C08 800A5008 804E021A */ lb $t6, 0x21a($v0) -/* 0A5C0C 800A500C 3C048012 */ lui $a0, %hi(gHUDCurrDisplayList) # $a0, 0x8012 -/* 0A5C10 800A5010 01D8C821 */ addu $t9, $t6, $t8 -/* 0A5C14 800A5014 A059021A */ sb $t9, 0x21a($v0) -/* 0A5C18 800A5018 8D020000 */ lw $v0, ($t0) -/* 0A5C1C 800A501C 3C058012 */ lui $a1, %hi(gHUDCurrMatrix) # $a1, 0x8012 -/* 0A5C20 800A5020 804D021A */ lb $t5, 0x21a($v0) -/* 0A5C24 800A5024 24A56D00 */ addiu $a1, %lo(gHUDCurrMatrix) # addiu $a1, $a1, 0x6d00 -/* 0A5C28 800A5028 29A10007 */ slti $at, $t5, 7 -/* 0A5C2C 800A502C 14200015 */ bnez $at, .L800A5084 -/* 0A5C30 800A5030 24846CFC */ addiu $a0, %lo(gHUDCurrDisplayList) # addiu $a0, $a0, 0x6cfc -/* 0A5C34 800A5034 844C0218 */ lh $t4, 0x218($v0) -/* 0A5C38 800A5038 00000000 */ nop -/* 0A5C3C 800A503C 258B0001 */ addiu $t3, $t4, 1 -/* 0A5C40 800A5040 A44B0218 */ sh $t3, 0x218($v0) -/* 0A5C44 800A5044 8D020000 */ lw $v0, ($t0) -/* 0A5C48 800A5048 00000000 */ nop -/* 0A5C4C 800A504C 804F021A */ lb $t7, 0x21a($v0) -/* 0A5C50 800A5050 00000000 */ nop -/* 0A5C54 800A5054 25EEFFFA */ addiu $t6, $t7, -6 -/* 0A5C58 800A5058 A04E021A */ sb $t6, 0x21a($v0) -/* 0A5C5C 800A505C 8D020000 */ lw $v0, ($t0) -/* 0A5C60 800A5060 00000000 */ nop -/* 0A5C64 800A5064 84580218 */ lh $t8, 0x218($v0) -/* 0A5C68 800A5068 00000000 */ nop -/* 0A5C6C 800A506C 2B010005 */ slti $at, $t8, 5 -/* 0A5C70 800A5070 14200004 */ bnez $at, .L800A5084 -/* 0A5C74 800A5074 00000000 */ nop -/* 0A5C78 800A5078 A4400218 */ sh $zero, 0x218($v0) -/* 0A5C7C 800A507C 8D020000 */ lw $v0, ($t0) -/* 0A5C80 800A5080 00000000 */ nop -.L800A5084: -/* 0A5C84 800A5084 3C068012 */ lui $a2, %hi(gHUDCurrTriList) # $a2, 0x8012 -/* 0A5C88 800A5088 24C66D04 */ addiu $a2, %lo(gHUDCurrTriList) # addiu $a2, $a2, 0x6d04 -/* 0A5C8C 800A508C 0C02A980 */ jal func_800AA600 -/* 0A5C90 800A5090 24470200 */ addiu $a3, $v0, 0x200 -.L800A5094: -/* 0A5C94 800A5094 3C088012 */ lui $t0, %hi(D_80126CDC) # $t0, 0x8012 -/* 0A5C98 800A5098 25086CDC */ addiu $t0, %lo(D_80126CDC) # addiu $t0, $t0, 0x6cdc -/* 0A5C9C 800A509C 8D070000 */ lw $a3, ($t0) -/* 0A5CA0 800A50A0 3C048012 */ lui $a0, %hi(gHUDCurrDisplayList) # $a0, 0x8012 -/* 0A5CA4 800A50A4 3C058012 */ lui $a1, %hi(gHUDCurrMatrix) # $a1, 0x8012 -/* 0A5CA8 800A50A8 3C068012 */ lui $a2, %hi(gHUDCurrTriList) # $a2, 0x8012 -/* 0A5CAC 800A50AC 24C66D04 */ addiu $a2, %lo(gHUDCurrTriList) # addiu $a2, $a2, 0x6d04 -/* 0A5CB0 800A50B0 24A56D00 */ addiu $a1, %lo(gHUDCurrMatrix) # addiu $a1, $a1, 0x6d00 -/* 0A5CB4 800A50B4 24846CFC */ addiu $a0, %lo(gHUDCurrDisplayList) # addiu $a0, $a0, 0x6cfc -/* 0A5CB8 800A50B8 0C02A980 */ jal func_800AA600 -/* 0A5CBC 800A50BC 24E70060 */ addiu $a3, $a3, 0x60 -/* 0A5CC0 800A50C0 3C0A8012 */ lui $t2, %hi(D_80126D60) # $t2, 0x8012 -/* 0A5CC4 800A50C4 254A6D60 */ addiu $t2, %lo(D_80126D60) # addiu $t2, $t2, 0x6d60 -/* 0A5CC8 800A50C8 8D590000 */ lw $t9, ($t2) -/* 0A5CCC 800A50CC 8FA90018 */ lw $t1, 0x18($sp) -/* 0A5CD0 800A50D0 8322004B */ lb $v0, 0x4b($t9) -/* 0A5CD4 800A50D4 81230194 */ lb $v1, 0x194($t1) -/* 0A5CD8 800A50D8 244DFFFF */ addiu $t5, $v0, -1 -/* 0A5CDC 800A50DC 3C088012 */ lui $t0, %hi(D_80126CDC) # $t0, 0x8012 -/* 0A5CE0 800A50E0 006D082A */ slt $at, $v1, $t5 -/* 0A5CE4 800A50E4 14200004 */ bnez $at, .L800A50F8 -/* 0A5CE8 800A50E8 25086CDC */ addiu $t0, %lo(D_80126CDC) # addiu $t0, $t0, 0x6cdc -/* 0A5CEC 800A50EC 8D0C0000 */ lw $t4, ($t0) -/* 0A5CF0 800A50F0 10000004 */ b .L800A5104 -/* 0A5CF4 800A50F4 A5820098 */ sh $v0, 0x98($t4) -.L800A50F8: -/* 0A5CF8 800A50F8 8D0F0000 */ lw $t7, ($t0) -/* 0A5CFC 800A50FC 246B0001 */ addiu $t3, $v1, 1 -/* 0A5D00 800A5100 A5EB0098 */ sh $t3, 0x98($t7) -.L800A5104: -/* 0A5D04 800A5104 8D4E0000 */ lw $t6, ($t2) -/* 0A5D08 800A5108 8D190000 */ lw $t9, ($t0) -/* 0A5D0C 800A510C 81D8004B */ lb $t8, 0x4b($t6) -/* 0A5D10 800A5110 3C048012 */ lui $a0, %hi(gHUDCurrDisplayList) # $a0, 0x8012 -/* 0A5D14 800A5114 A73800D8 */ sh $t8, 0xd8($t9) -/* 0A5D18 800A5118 8D070000 */ lw $a3, ($t0) -/* 0A5D1C 800A511C 3C058012 */ lui $a1, %hi(gHUDCurrMatrix) # $a1, 0x8012 -/* 0A5D20 800A5120 3C068012 */ lui $a2, %hi(gHUDCurrTriList) # $a2, 0x8012 -/* 0A5D24 800A5124 24C66D04 */ addiu $a2, %lo(gHUDCurrTriList) # addiu $a2, $a2, 0x6d04 -/* 0A5D28 800A5128 24A56D00 */ addiu $a1, %lo(gHUDCurrMatrix) # addiu $a1, $a1, 0x6d00 -/* 0A5D2C 800A512C 24846CFC */ addiu $a0, %lo(gHUDCurrDisplayList) # addiu $a0, $a0, 0x6cfc -/* 0A5D30 800A5130 0C02A980 */ jal func_800AA600 -/* 0A5D34 800A5134 24E70080 */ addiu $a3, $a3, 0x80 -/* 0A5D38 800A5138 3C088012 */ lui $t0, %hi(D_80126CDC) # $t0, 0x8012 -/* 0A5D3C 800A513C 25086CDC */ addiu $t0, %lo(D_80126CDC) # addiu $t0, $t0, 0x6cdc -/* 0A5D40 800A5140 8D070000 */ lw $a3, ($t0) -/* 0A5D44 800A5144 3C048012 */ lui $a0, %hi(gHUDCurrDisplayList) # $a0, 0x8012 -/* 0A5D48 800A5148 3C058012 */ lui $a1, %hi(gHUDCurrMatrix) # $a1, 0x8012 -/* 0A5D4C 800A514C 3C068012 */ lui $a2, %hi(gHUDCurrTriList) # $a2, 0x8012 -/* 0A5D50 800A5150 24C66D04 */ addiu $a2, %lo(gHUDCurrTriList) # addiu $a2, $a2, 0x6d04 -/* 0A5D54 800A5154 24A56D00 */ addiu $a1, %lo(gHUDCurrMatrix) # addiu $a1, $a1, 0x6d00 -/* 0A5D58 800A5158 24846CFC */ addiu $a0, %lo(gHUDCurrDisplayList) # addiu $a0, $a0, 0x6cfc -/* 0A5D5C 800A515C 0C02A980 */ jal func_800AA600 -/* 0A5D60 800A5160 24E700A0 */ addiu $a3, $a3, 0xa0 -/* 0A5D64 800A5164 3C088012 */ lui $t0, %hi(D_80126CDC) # $t0, 0x8012 -/* 0A5D68 800A5168 25086CDC */ addiu $t0, %lo(D_80126CDC) # addiu $t0, $t0, 0x6cdc -/* 0A5D6C 800A516C 8D070000 */ lw $a3, ($t0) -/* 0A5D70 800A5170 3C048012 */ lui $a0, %hi(gHUDCurrDisplayList) # $a0, 0x8012 -/* 0A5D74 800A5174 3C058012 */ lui $a1, %hi(gHUDCurrMatrix) # $a1, 0x8012 -/* 0A5D78 800A5178 3C068012 */ lui $a2, %hi(gHUDCurrTriList) # $a2, 0x8012 -/* 0A5D7C 800A517C 24C66D04 */ addiu $a2, %lo(gHUDCurrTriList) # addiu $a2, $a2, 0x6d04 -/* 0A5D80 800A5180 24A56D00 */ addiu $a1, %lo(gHUDCurrMatrix) # addiu $a1, $a1, 0x6d00 -/* 0A5D84 800A5184 24846CFC */ addiu $a0, %lo(gHUDCurrDisplayList) # addiu $a0, $a0, 0x6cfc -/* 0A5D88 800A5188 0C02A980 */ jal func_800AA600 -/* 0A5D8C 800A518C 24E700C0 */ addiu $a3, $a3, 0xc0 -.L800A5190: -/* 0A5D90 800A5190 3C0D8012 */ lui $t5, %hi(gHUDNumPlayers) # $t5, 0x8012 -/* 0A5D94 800A5194 8DAD6D0C */ lw $t5, %lo(gHUDNumPlayers)($t5) -/* 0A5D98 800A5198 24010001 */ li $at, 1 -/* 0A5D9C 800A519C 15A10003 */ bne $t5, $at, .L800A51AC -/* 0A5DA0 800A51A0 00000000 */ nop -/* 0A5DA4 800A51A4 0C01EFC7 */ jal func_8007BF1C -/* 0A5DA8 800A51A8 24040001 */ li $a0, 1 -.L800A51AC: -/* 0A5DAC 800A51AC 0C01BAA8 */ jal is_game_paused -/* 0A5DB0 800A51B0 00000000 */ nop -/* 0A5DB4 800A51B4 3C088012 */ lui $t0, %hi(D_80126CDC) # $t0, 0x8012 -/* 0A5DB8 800A51B8 8FA90018 */ lw $t1, 0x18($sp) -/* 0A5DBC 800A51BC 14400223 */ bnez $v0, .L800A5A4C -/* 0A5DC0 800A51C0 25086CDC */ addiu $t0, %lo(D_80126CDC) # addiu $t0, $t0, 0x6cdc -/* 0A5DC4 800A51C4 81230193 */ lb $v1, 0x193($t1) -/* 0A5DC8 800A51C8 00000000 */ nop -/* 0A5DCC 800A51CC 00036080 */ sll $t4, $v1, 2 -/* 0A5DD0 800A51D0 012C5821 */ addu $t3, $t1, $t4 -/* 0A5DD4 800A51D4 8D6F0128 */ lw $t7, 0x128($t3) -/* 0A5DD8 800A51D8 00000000 */ nop -/* 0A5DDC 800A51DC 29E1001E */ slti $at, $t7, 0x1e -/* 0A5DE0 800A51E0 102000BF */ beqz $at, .L800A54E0 -/* 0A5DE4 800A51E4 00000000 */ nop -/* 0A5DE8 800A51E8 8D020000 */ lw $v0, ($t0) -/* 0A5DEC 800A51EC 00000000 */ nop -/* 0A5DF0 800A51F0 804E03DA */ lb $t6, 0x3da($v0) -/* 0A5DF4 800A51F4 00000000 */ nop -/* 0A5DF8 800A51F8 15C000B9 */ bnez $t6, .L800A54E0 -/* 0A5DFC 800A51FC 00000000 */ nop -/* 0A5E00 800A5200 813801D8 */ lb $t8, 0x1d8($t1) -/* 0A5E04 800A5204 24060001 */ li $a2, 1 -/* 0A5E08 800A5208 170000B5 */ bnez $t8, .L800A54E0 -/* 0A5E0C 800A520C 00000000 */ nop -/* 0A5E10 800A5210 14C30058 */ bne $a2, $v1, .L800A5374 -/* 0A5E14 800A5214 3C198012 */ lui $t9, %hi(D_80126D60) # $t9, 0x8012 -/* 0A5E18 800A5218 8F396D60 */ lw $t9, %lo(D_80126D60)($t9) -/* 0A5E1C 800A521C 240C0002 */ li $t4, 2 -/* 0A5E20 800A5220 832D004B */ lb $t5, 0x4b($t9) -/* 0A5E24 800A5224 24040016 */ li $a0, 22 -/* 0A5E28 800A5228 29A10003 */ slti $at, $t5, 3 -/* 0A5E2C 800A522C 14200051 */ bnez $at, .L800A5374 -/* 0A5E30 800A5230 00000000 */ nop -/* 0A5E34 800A5234 A04C03DA */ sb $t4, 0x3da($v0) -/* 0A5E38 800A5238 8D0B0000 */ lw $t3, ($t0) -/* 0A5E3C 800A523C 00002825 */ move $a1, $zero -/* 0A5E40 800A5240 A16603DB */ sb $a2, 0x3db($t3) -/* 0A5E44 800A5244 8D0F0000 */ lw $t7, ($t0) -/* 0A5E48 800A5248 0C000741 */ jal play_sound_global -/* 0A5E4C 800A524C A1E003DD */ sb $zero, 0x3dd($t7) -/* 0A5E50 800A5250 3C028012 */ lui $v0, %hi(gHUDNumPlayers) # $v0, 0x8012 -/* 0A5E54 800A5254 8C426D0C */ lw $v0, %lo(gHUDNumPlayers)($v0) -/* 0A5E58 800A5258 3C088012 */ lui $t0, %hi(D_80126CDC) # $t0, 0x8012 -/* 0A5E5C 800A525C 8FA90018 */ lw $t1, 0x18($sp) -/* 0A5E60 800A5260 10400006 */ beqz $v0, .L800A527C -/* 0A5E64 800A5264 25086CDC */ addiu $t0, %lo(D_80126CDC) # addiu $t0, $t0, 0x6cdc -/* 0A5E68 800A5268 24010001 */ li $at, 1 -/* 0A5E6C 800A526C 10410012 */ beq $v0, $at, .L800A52B8 -/* 0A5E70 800A5270 240FFFF0 */ li $t7, -16 -/* 0A5E74 800A5274 1000001E */ b .L800A52F0 -/* 0A5E78 800A5278 24010002 */ li $at, 2 -.L800A527C: -/* 0A5E7C 800A527C 8D180000 */ lw $t8, ($t0) -/* 0A5E80 800A5280 240EFFEB */ li $t6, -21 -/* 0A5E84 800A5284 A30E03DC */ sb $t6, 0x3dc($t8) -/* 0A5E88 800A5288 8D0D0000 */ lw $t5, ($t0) -/* 0A5E8C 800A528C 24190020 */ li $t9, 32 -/* 0A5E90 800A5290 3C01C348 */ li $at, 0xC3480000 # -200.000000 -/* 0A5E94 800A5294 A1B903FC */ sb $t9, 0x3fc($t5) -/* 0A5E98 800A5298 8D0C0000 */ lw $t4, ($t0) -/* 0A5E9C 800A529C 44812000 */ mtc1 $at, $f4 -/* 0A5EA0 800A52A0 3C014353 */ li $at, 0x43530000 # 211.000000 -/* 0A5EA4 800A52A4 E58403CC */ swc1 $f4, 0x3cc($t4) -/* 0A5EA8 800A52A8 8D0B0000 */ lw $t3, ($t0) -/* 0A5EAC 800A52AC 44813000 */ mtc1 $at, $f6 -/* 0A5EB0 800A52B0 1000008B */ b .L800A54E0 -/* 0A5EB4 800A52B4 E56603EC */ swc1 $f6, 0x3ec($t3) -.L800A52B8: -/* 0A5EB8 800A52B8 8D0E0000 */ lw $t6, ($t0) -/* 0A5EBC 800A52BC 2418001B */ li $t8, 27 -/* 0A5EC0 800A52C0 A1CF03DC */ sb $t7, 0x3dc($t6) -/* 0A5EC4 800A52C4 8D190000 */ lw $t9, ($t0) -/* 0A5EC8 800A52C8 3C01C348 */ li $at, 0xC3480000 # -200.000000 -/* 0A5ECC 800A52CC A33803FC */ sb $t8, 0x3fc($t9) -/* 0A5ED0 800A52D0 8D0D0000 */ lw $t5, ($t0) -/* 0A5ED4 800A52D4 44814000 */ mtc1 $at, $f8 -/* 0A5ED8 800A52D8 3C014353 */ li $at, 0x43530000 # 211.000000 -/* 0A5EDC 800A52DC E5A803CC */ swc1 $f8, 0x3cc($t5) -/* 0A5EE0 800A52E0 8D0C0000 */ lw $t4, ($t0) -/* 0A5EE4 800A52E4 44815000 */ mtc1 $at, $f10 -/* 0A5EE8 800A52E8 1000007D */ b .L800A54E0 -/* 0A5EEC 800A52EC E58A03EC */ swc1 $f10, 0x3ec($t4) -.L800A52F0: -/* 0A5EF0 800A52F0 85220000 */ lh $v0, ($t1) -/* 0A5EF4 800A52F4 240CFFA6 */ li $t4, -90 -/* 0A5EF8 800A52F8 10400011 */ beqz $v0, .L800A5340 -/* 0A5EFC 800A52FC 240FFFC5 */ li $t7, -59 -/* 0A5F00 800A5300 1041000F */ beq $v0, $at, .L800A5340 -/* 0A5F04 800A5304 240B003C */ li $t3, 60 -/* 0A5F08 800A5308 8D0F0000 */ lw $t7, ($t0) -/* 0A5F0C 800A530C 240E005B */ li $t6, 91 -/* 0A5F10 800A5310 A1EB03DC */ sb $t3, 0x3dc($t7) -/* 0A5F14 800A5314 8D180000 */ lw $t8, ($t0) -/* 0A5F18 800A5318 3C01C28C */ li $at, 0xC28C0000 # -70.000000 -/* 0A5F1C 800A531C A30E03FC */ sb $t6, 0x3fc($t8) -/* 0A5F20 800A5320 8D190000 */ lw $t9, ($t0) -/* 0A5F24 800A5324 44818000 */ mtc1 $at, $f16 -/* 0A5F28 800A5328 3C01435D */ li $at, 0x435D0000 # 221.000000 -/* 0A5F2C 800A532C E73003CC */ swc1 $f16, 0x3cc($t9) -/* 0A5F30 800A5330 8D0D0000 */ lw $t5, ($t0) -/* 0A5F34 800A5334 44819000 */ mtc1 $at, $f18 -/* 0A5F38 800A5338 10000069 */ b .L800A54E0 -/* 0A5F3C 800A533C E5B203EC */ swc1 $f18, 0x3ec($t5) -.L800A5340: -/* 0A5F40 800A5340 8D0B0000 */ lw $t3, ($t0) -/* 0A5F44 800A5344 3C01C35C */ li $at, 0xC35C0000 # -220.000000 -/* 0A5F48 800A5348 A16C03DC */ sb $t4, 0x3dc($t3) -/* 0A5F4C 800A534C 8D0E0000 */ lw $t6, ($t0) -/* 0A5F50 800A5350 44812000 */ mtc1 $at, $f4 -/* 0A5F54 800A5354 A1CF03FC */ sb $t7, 0x3fc($t6) -/* 0A5F58 800A5358 8D180000 */ lw $t8, ($t0) -/* 0A5F5C 800A535C 3C01428E */ li $at, 0x428E0000 # 71.000000 -/* 0A5F60 800A5360 E70403CC */ swc1 $f4, 0x3cc($t8) -/* 0A5F64 800A5364 8D190000 */ lw $t9, ($t0) -/* 0A5F68 800A5368 44813000 */ mtc1 $at, $f6 -/* 0A5F6C 800A536C 1000005C */ b .L800A54E0 -/* 0A5F70 800A5370 E72603EC */ swc1 $f6, 0x3ec($t9) -.L800A5374: -/* 0A5F74 800A5374 3C0D8012 */ lui $t5, %hi(D_80126D60) # $t5, 0x8012 -/* 0A5F78 800A5378 8DAD6D60 */ lw $t5, %lo(D_80126D60)($t5) -/* 0A5F7C 800A537C 246B0001 */ addiu $t3, $v1, 1 -/* 0A5F80 800A5380 81AC004B */ lb $t4, 0x4b($t5) -/* 0A5F84 800A5384 00000000 */ nop -/* 0A5F88 800A5388 158B0055 */ bne $t4, $t3, .L800A54E0 -/* 0A5F8C 800A538C 00000000 */ nop -/* 0A5F90 800A5390 10600053 */ beqz $v1, .L800A54E0 -/* 0A5F94 800A5394 240F0003 */ li $t7, 3 -/* 0A5F98 800A5398 A04F03DA */ sb $t7, 0x3da($v0) -/* 0A5F9C 800A539C 8D180000 */ lw $t8, ($t0) -/* 0A5FA0 800A53A0 240EFFFF */ li $t6, -1 -/* 0A5FA4 800A53A4 A30E03DB */ sb $t6, 0x3db($t8) -/* 0A5FA8 800A53A8 8D190000 */ lw $t9, ($t0) -/* 0A5FAC 800A53AC 24040016 */ li $a0, 22 -/* 0A5FB0 800A53B0 00002825 */ move $a1, $zero -/* 0A5FB4 800A53B4 0C000741 */ jal play_sound_global -/* 0A5FB8 800A53B8 A32003DD */ sb $zero, 0x3dd($t9) -/* 0A5FBC 800A53BC 3C028012 */ lui $v0, %hi(gHUDNumPlayers) # $v0, 0x8012 -/* 0A5FC0 800A53C0 8C426D0C */ lw $v0, %lo(gHUDNumPlayers)($v0) -/* 0A5FC4 800A53C4 3C088012 */ lui $t0, %hi(D_80126CDC) # $t0, 0x8012 -/* 0A5FC8 800A53C8 8FA90018 */ lw $t1, 0x18($sp) -/* 0A5FCC 800A53CC 10400006 */ beqz $v0, .L800A53E8 -/* 0A5FD0 800A53D0 25086CDC */ addiu $t0, %lo(D_80126CDC) # addiu $t0, $t0, 0x6cdc -/* 0A5FD4 800A53D4 24010001 */ li $at, 1 -/* 0A5FD8 800A53D8 10410012 */ beq $v0, $at, .L800A5424 -/* 0A5FDC 800A53DC 24190029 */ li $t9, 41 -/* 0A5FE0 800A53E0 1000001E */ b .L800A545C -/* 0A5FE4 800A53E4 24010002 */ li $at, 2 -.L800A53E8: -/* 0A5FE8 800A53E8 8D0C0000 */ lw $t4, ($t0) -/* 0A5FEC 800A53EC 240D0033 */ li $t5, 51 -/* 0A5FF0 800A53F0 A18D03DC */ sb $t5, 0x3dc($t4) -/* 0A5FF4 800A53F4 8D0F0000 */ lw $t7, ($t0) -/* 0A5FF8 800A53F8 240BFFD7 */ li $t3, -41 -/* 0A5FFC 800A53FC 3C014352 */ li $at, 0x43520000 # 210.000000 -/* 0A6000 800A5400 A1EB03BC */ sb $t3, 0x3bc($t7) -/* 0A6004 800A5404 8D0E0000 */ lw $t6, ($t0) -/* 0A6008 800A5408 44814000 */ mtc1 $at, $f8 -/* 0A600C 800A540C 3C01C348 */ li $at, 0xC3480000 # -200.000000 -/* 0A6010 800A5410 E5C803CC */ swc1 $f8, 0x3cc($t6) -/* 0A6014 800A5414 8D180000 */ lw $t8, ($t0) -/* 0A6018 800A5418 44815000 */ mtc1 $at, $f10 -/* 0A601C 800A541C 10000030 */ b .L800A54E0 -/* 0A6020 800A5420 E70A03AC */ swc1 $f10, 0x3ac($t8) -.L800A5424: -/* 0A6024 800A5424 8D0D0000 */ lw $t5, ($t0) -/* 0A6028 800A5428 240CFFE1 */ li $t4, -31 -/* 0A602C 800A542C A1B903DC */ sb $t9, 0x3dc($t5) -/* 0A6030 800A5430 8D0B0000 */ lw $t3, ($t0) -/* 0A6034 800A5434 3C014352 */ li $at, 0x43520000 # 210.000000 -/* 0A6038 800A5438 A16C03BC */ sb $t4, 0x3bc($t3) -/* 0A603C 800A543C 8D0F0000 */ lw $t7, ($t0) -/* 0A6040 800A5440 44818000 */ mtc1 $at, $f16 -/* 0A6044 800A5444 3C01C348 */ li $at, 0xC3480000 # -200.000000 -/* 0A6048 800A5448 E5F003CC */ swc1 $f16, 0x3cc($t7) -/* 0A604C 800A544C 8D0E0000 */ lw $t6, ($t0) -/* 0A6050 800A5450 44819000 */ mtc1 $at, $f18 -/* 0A6054 800A5454 10000022 */ b .L800A54E0 -/* 0A6058 800A5458 E5D203AC */ swc1 $f18, 0x3ac($t6) -.L800A545C: -/* 0A605C 800A545C 85220000 */ lh $v0, ($t1) -/* 0A6060 800A5460 240EFFCE */ li $t6, -50 -/* 0A6064 800A5464 10400011 */ beqz $v0, .L800A54AC -/* 0A6068 800A5468 2419FF9C */ li $t9, -100 -/* 0A606C 800A546C 1041000F */ beq $v0, $at, .L800A54AC -/* 0A6070 800A5470 24180064 */ li $t8, 100 -/* 0A6074 800A5474 8D190000 */ lw $t9, ($t0) -/* 0A6078 800A5478 240D0032 */ li $t5, 50 -/* 0A607C 800A547C A33803DC */ sb $t8, 0x3dc($t9) -/* 0A6080 800A5480 8D0C0000 */ lw $t4, ($t0) -/* 0A6084 800A5484 3C0142C8 */ li $at, 0x42C80000 # 100.000000 -/* 0A6088 800A5488 A18D03BC */ sb $t5, 0x3bc($t4) -/* 0A608C 800A548C 8D0B0000 */ lw $t3, ($t0) -/* 0A6090 800A5490 44812000 */ mtc1 $at, $f4 -/* 0A6094 800A5494 3C01C248 */ li $at, 0xC2480000 # -50.000000 -/* 0A6098 800A5498 E56403CC */ swc1 $f4, 0x3cc($t3) -/* 0A609C 800A549C 8D0F0000 */ lw $t7, ($t0) -/* 0A60A0 800A54A0 44813000 */ mtc1 $at, $f6 -/* 0A60A4 800A54A4 1000000E */ b .L800A54E0 -/* 0A60A8 800A54A8 E5E603AC */ swc1 $f6, 0x3ac($t7) -.L800A54AC: -/* 0A60AC 800A54AC 8D180000 */ lw $t8, ($t0) -/* 0A60B0 800A54B0 3C014248 */ li $at, 0x42480000 # 50.000000 -/* 0A60B4 800A54B4 A30E03DC */ sb $t6, 0x3dc($t8) -/* 0A60B8 800A54B8 8D0D0000 */ lw $t5, ($t0) -/* 0A60BC 800A54BC 44814000 */ mtc1 $at, $f8 -/* 0A60C0 800A54C0 A1B903BC */ sb $t9, 0x3bc($t5) -/* 0A60C4 800A54C4 8D0C0000 */ lw $t4, ($t0) -/* 0A60C8 800A54C8 3C01C348 */ li $at, 0xC3480000 # -200.000000 -/* 0A60CC 800A54CC E58803CC */ swc1 $f8, 0x3cc($t4) -/* 0A60D0 800A54D0 8D0B0000 */ lw $t3, ($t0) -/* 0A60D4 800A54D4 44815000 */ mtc1 $at, $f10 -/* 0A60D8 800A54D8 00000000 */ nop -/* 0A60DC 800A54DC E56A03AC */ swc1 $f10, 0x3ac($t3) -.L800A54E0: -/* 0A60E0 800A54E0 8D020000 */ lw $v0, ($t0) -/* 0A60E4 800A54E4 24060001 */ li $a2, 1 -/* 0A60E8 800A54E8 804303DA */ lb $v1, 0x3da($v0) -/* 0A60EC 800A54EC 24010002 */ li $at, 2 -/* 0A60F0 800A54F0 10600156 */ beqz $v1, .L800A5A4C -/* 0A60F4 800A54F4 00000000 */ nop -/* 0A60F8 800A54F8 146100AA */ bne $v1, $at, .L800A57A4 -/* 0A60FC 800A54FC 24010003 */ li $at, 3 -/* 0A6100 800A5500 804303DB */ lb $v1, 0x3db($v0) -/* 0A6104 800A5504 8FA4001C */ lw $a0, 0x1c($sp) -/* 0A6108 800A5508 14C30063 */ bne $a2, $v1, .L800A5698 -/* 0A610C 800A550C 2401FFFF */ li $at, -1 -/* 0A6110 800A5510 00047880 */ sll $t7, $a0, 2 -/* 0A6114 800A5514 01E47823 */ subu $t7, $t7, $a0 -/* 0A6118 800A5518 804303DC */ lb $v1, 0x3dc($v0) -/* 0A611C 800A551C 000F7880 */ sll $t7, $t7, 2 -/* 0A6120 800A5520 01E47821 */ addu $t7, $t7, $a0 -/* 0A6124 800A5524 006F7023 */ subu $t6, $v1, $t7 -/* 0A6128 800A5528 448E8000 */ mtc1 $t6, $f16 -/* 0A612C 800A552C C44003CC */ lwc1 $f0, 0x3cc($v0) -/* 0A6130 800A5530 468084A0 */ cvt.s.w $f18, $f16 -/* 0A6134 800A5534 01E02025 */ move $a0, $t7 -/* 0A6138 800A5538 240FFFFF */ li $t7, -1 -/* 0A613C 800A553C 4612003C */ c.lt.s $f0, $f18 -/* 0A6140 800A5540 00002825 */ move $a1, $zero -/* 0A6144 800A5544 45000007 */ bc1f .L800A5564 -/* 0A6148 800A5548 00000000 */ nop -/* 0A614C 800A554C 44842000 */ mtc1 $a0, $f4 -/* 0A6150 800A5550 00000000 */ nop -/* 0A6154 800A5554 468021A0 */ cvt.s.w $f6, $f4 -/* 0A6158 800A5558 46060200 */ add.s $f8, $f0, $f6 -/* 0A615C 800A555C 10000005 */ b .L800A5574 -/* 0A6160 800A5560 E44803CC */ swc1 $f8, 0x3cc($v0) -.L800A5564: -/* 0A6164 800A5564 44835000 */ mtc1 $v1, $f10 -/* 0A6168 800A5568 00000000 */ nop -/* 0A616C 800A556C 46805420 */ cvt.s.w $f16, $f10 -/* 0A6170 800A5570 E45003CC */ swc1 $f16, 0x3cc($v0) -.L800A5574: -/* 0A6174 800A5574 8D020000 */ lw $v0, ($t0) -/* 0A6178 800A5578 00000000 */ nop -/* 0A617C 800A557C 804303FC */ lb $v1, 0x3fc($v0) -/* 0A6180 800A5580 C44003EC */ lwc1 $f0, 0x3ec($v0) -/* 0A6184 800A5584 0064C021 */ addu $t8, $v1, $a0 -/* 0A6188 800A5588 44989000 */ mtc1 $t8, $f18 -/* 0A618C 800A558C 00000000 */ nop -/* 0A6190 800A5590 46809120 */ cvt.s.w $f4, $f18 -/* 0A6194 800A5594 4600203C */ c.lt.s $f4, $f0 -/* 0A6198 800A5598 00000000 */ nop -/* 0A619C 800A559C 45000007 */ bc1f .L800A55BC -/* 0A61A0 800A55A0 00000000 */ nop -/* 0A61A4 800A55A4 44843000 */ mtc1 $a0, $f6 -/* 0A61A8 800A55A8 00000000 */ nop -/* 0A61AC 800A55AC 46803220 */ cvt.s.w $f8, $f6 -/* 0A61B0 800A55B0 46080281 */ sub.s $f10, $f0, $f8 -/* 0A61B4 800A55B4 10000005 */ b .L800A55CC -/* 0A61B8 800A55B8 E44A03EC */ swc1 $f10, 0x3ec($v0) -.L800A55BC: -/* 0A61BC 800A55BC 44838000 */ mtc1 $v1, $f16 -/* 0A61C0 800A55C0 00000000 */ nop -/* 0A61C4 800A55C4 468084A0 */ cvt.s.w $f18, $f16 -/* 0A61C8 800A55C8 E45203EC */ swc1 $f18, 0x3ec($v0) -.L800A55CC: -/* 0A61CC 800A55CC 81390193 */ lb $t9, 0x193($t1) -/* 0A61D0 800A55D0 24040016 */ li $a0, 22 -/* 0A61D4 800A55D4 00196880 */ sll $t5, $t9, 2 -/* 0A61D8 800A55D8 012D6021 */ addu $t4, $t1, $t5 -/* 0A61DC 800A55DC 8D8B0128 */ lw $t3, 0x128($t4) -/* 0A61E0 800A55E0 00000000 */ nop -/* 0A61E4 800A55E4 2961003C */ slti $at, $t3, 0x3c -/* 0A61E8 800A55E8 14200007 */ bnez $at, .L800A5608 -/* 0A61EC 800A55EC 00000000 */ nop -/* 0A61F0 800A55F0 8D0E0000 */ lw $t6, ($t0) -/* 0A61F4 800A55F4 0C000741 */ jal play_sound_global -/* 0A61F8 800A55F8 A1CF03DB */ sb $t7, 0x3db($t6) -/* 0A61FC 800A55FC 3C088012 */ lui $t0, %hi(D_80126CDC) # $t0, 0x8012 -/* 0A6200 800A5600 25086CDC */ addiu $t0, %lo(D_80126CDC) # addiu $t0, $t0, 0x6cdc -/* 0A6204 800A5604 24060001 */ li $a2, 1 -.L800A5608: -/* 0A6208 800A5608 8D020000 */ lw $v0, ($t0) -/* 0A620C 800A560C 00000000 */ nop -/* 0A6210 800A5610 805803DC */ lb $t8, 0x3dc($v0) -/* 0A6214 800A5614 C44403CC */ lwc1 $f4, 0x3cc($v0) -/* 0A6218 800A5618 44983000 */ mtc1 $t8, $f6 -/* 0A621C 800A561C 00000000 */ nop -/* 0A6220 800A5620 46803220 */ cvt.s.w $f8, $f6 -/* 0A6224 800A5624 46082032 */ c.eq.s $f4, $f8 -/* 0A6228 800A5628 00000000 */ nop -/* 0A622C 800A562C 45000037 */ bc1f .L800A570C -/* 0A6230 800A5630 00000000 */ nop -/* 0A6234 800A5634 805903FC */ lb $t9, 0x3fc($v0) -/* 0A6238 800A5638 C44A03EC */ lwc1 $f10, 0x3ec($v0) -/* 0A623C 800A563C 44998000 */ mtc1 $t9, $f16 -/* 0A6240 800A5640 00000000 */ nop -/* 0A6244 800A5644 468084A0 */ cvt.s.w $f18, $f16 -/* 0A6248 800A5648 46125032 */ c.eq.s $f10, $f18 -/* 0A624C 800A564C 00000000 */ nop -/* 0A6250 800A5650 4500002E */ bc1f .L800A570C -/* 0A6254 800A5654 00000000 */ nop -/* 0A6258 800A5658 804D03DD */ lb $t5, 0x3dd($v0) -/* 0A625C 800A565C 3C058012 */ lui $a1, %hi(gHUDVoiceSoundMask) # $a1, 0x8012 -/* 0A6260 800A5660 15A0002A */ bnez $t5, .L800A570C -/* 0A6264 800A5664 24A56D40 */ addiu $a1, %lo(gHUDVoiceSoundMask) # addiu $a1, $a1, 0x6d40 -/* 0A6268 800A5668 8CAC0000 */ lw $t4, ($a1) -/* 0A626C 800A566C 00000000 */ nop -/* 0A6270 800A5670 15800007 */ bnez $t4, .L800A5690 -/* 0A6274 800A5674 00000000 */ nop -/* 0A6278 800A5678 0C000741 */ jal play_sound_global -/* 0A627C 800A567C 24040100 */ li $a0, 256 -/* 0A6280 800A5680 3C088012 */ lui $t0, %hi(D_80126CDC) # $t0, 0x8012 -/* 0A6284 800A5684 25086CDC */ addiu $t0, %lo(D_80126CDC) # addiu $t0, $t0, 0x6cdc -/* 0A6288 800A5688 8D020000 */ lw $v0, ($t0) -/* 0A628C 800A568C 24060001 */ li $a2, 1 -.L800A5690: -/* 0A6290 800A5690 1000001E */ b .L800A570C -/* 0A6294 800A5694 A04603DD */ sb $a2, 0x3dd($v0) -.L800A5698: -/* 0A6298 800A5698 1461001C */ bne $v1, $at, .L800A570C -/* 0A629C 800A569C 00000000 */ nop -/* 0A62A0 800A56A0 8FAB001C */ lw $t3, 0x1c($sp) -/* 0A62A4 800A56A4 C44403CC */ lwc1 $f4, 0x3cc($v0) -/* 0A62A8 800A56A8 000B7880 */ sll $t7, $t3, 2 -/* 0A62AC 800A56AC 01EB7823 */ subu $t7, $t7, $t3 -/* 0A62B0 800A56B0 000F7880 */ sll $t7, $t7, 2 -/* 0A62B4 800A56B4 01EB7821 */ addu $t7, $t7, $t3 -/* 0A62B8 800A56B8 448F3000 */ mtc1 $t7, $f6 -/* 0A62BC 800A56BC 3C01C348 */ li $at, 0xC3480000 # -200.000000 -/* 0A62C0 800A56C0 46803020 */ cvt.s.w $f0, $f6 -/* 0A62C4 800A56C4 44813000 */ mtc1 $at, $f6 -/* 0A62C8 800A56C8 46002201 */ sub.s $f8, $f4, $f0 -/* 0A62CC 800A56CC E44803CC */ swc1 $f8, 0x3cc($v0) -/* 0A62D0 800A56D0 8D020000 */ lw $v0, ($t0) -/* 0A62D4 800A56D4 00000000 */ nop -/* 0A62D8 800A56D8 C45003EC */ lwc1 $f16, 0x3ec($v0) -/* 0A62DC 800A56DC 00000000 */ nop -/* 0A62E0 800A56E0 46008280 */ add.s $f10, $f16, $f0 -/* 0A62E4 800A56E4 E44A03EC */ swc1 $f10, 0x3ec($v0) -/* 0A62E8 800A56E8 8D020000 */ lw $v0, ($t0) -/* 0A62EC 800A56EC 00000000 */ nop -/* 0A62F0 800A56F0 C45203CC */ lwc1 $f18, 0x3cc($v0) -/* 0A62F4 800A56F4 00000000 */ nop -/* 0A62F8 800A56F8 4606903C */ c.lt.s $f18, $f6 -/* 0A62FC 800A56FC 00000000 */ nop -/* 0A6300 800A5700 45000002 */ bc1f .L800A570C -/* 0A6304 800A5704 00000000 */ nop -/* 0A6308 800A5708 A04003DA */ sb $zero, 0x3da($v0) -.L800A570C: -/* 0A630C 800A570C 3C048012 */ lui $a0, %hi(gHUDCurrDisplayList) # $a0, 0x8012 -/* 0A6310 800A5710 24846CFC */ addiu $a0, %lo(gHUDCurrDisplayList) # addiu $a0, $a0, 0x6cfc -/* 0A6314 800A5714 8C820000 */ lw $v0, ($a0) -/* 0A6318 800A5718 3C18FA00 */ lui $t8, 0xfa00 -/* 0A631C 800A571C 244E0008 */ addiu $t6, $v0, 8 -/* 0A6320 800A5720 AC8E0000 */ sw $t6, ($a0) -/* 0A6324 800A5724 2419FFA0 */ li $t9, -96 -/* 0A6328 800A5728 AC590004 */ sw $t9, 4($v0) -/* 0A632C 800A572C AC580000 */ sw $t8, ($v0) -/* 0A6330 800A5730 8D070000 */ lw $a3, ($t0) -/* 0A6334 800A5734 3C058012 */ lui $a1, %hi(gHUDCurrMatrix) # $a1, 0x8012 -/* 0A6338 800A5738 3C068012 */ lui $a2, %hi(gHUDCurrTriList) # $a2, 0x8012 -/* 0A633C 800A573C 24C66D04 */ addiu $a2, %lo(gHUDCurrTriList) # addiu $a2, $a2, 0x6d04 -/* 0A6340 800A5740 24A56D00 */ addiu $a1, %lo(gHUDCurrMatrix) # addiu $a1, $a1, 0x6d00 -/* 0A6344 800A5744 0C02A980 */ jal func_800AA600 -/* 0A6348 800A5748 24E703E0 */ addiu $a3, $a3, 0x3e0 -/* 0A634C 800A574C 3C088012 */ lui $t0, %hi(D_80126CDC) # $t0, 0x8012 -/* 0A6350 800A5750 25086CDC */ addiu $t0, %lo(D_80126CDC) # addiu $t0, $t0, 0x6cdc -/* 0A6354 800A5754 8D070000 */ lw $a3, ($t0) -/* 0A6358 800A5758 3C048012 */ lui $a0, %hi(gHUDCurrDisplayList) # $a0, 0x8012 -/* 0A635C 800A575C 3C058012 */ lui $a1, %hi(gHUDCurrMatrix) # $a1, 0x8012 -/* 0A6360 800A5760 3C068012 */ lui $a2, %hi(gHUDCurrTriList) # $a2, 0x8012 -/* 0A6364 800A5764 24C66D04 */ addiu $a2, %lo(gHUDCurrTriList) # addiu $a2, $a2, 0x6d04 -/* 0A6368 800A5768 24A56D00 */ addiu $a1, %lo(gHUDCurrMatrix) # addiu $a1, $a1, 0x6d00 -/* 0A636C 800A576C 24846CFC */ addiu $a0, %lo(gHUDCurrDisplayList) # addiu $a0, $a0, 0x6cfc -/* 0A6370 800A5770 0C02A980 */ jal func_800AA600 -/* 0A6374 800A5774 24E703C0 */ addiu $a3, $a3, 0x3c0 -/* 0A6378 800A5778 3C048012 */ lui $a0, %hi(gHUDCurrDisplayList) # $a0, 0x8012 -/* 0A637C 800A577C 24846CFC */ addiu $a0, %lo(gHUDCurrDisplayList) # addiu $a0, $a0, 0x6cfc -/* 0A6380 800A5780 8C820000 */ lw $v0, ($a0) -/* 0A6384 800A5784 3C0CFA00 */ lui $t4, 0xfa00 -/* 0A6388 800A5788 244D0008 */ addiu $t5, $v0, 8 -/* 0A638C 800A578C AC8D0000 */ sw $t5, ($a0) -/* 0A6390 800A5790 240BFFFF */ li $t3, -1 -/* 0A6394 800A5794 AC4B0004 */ sw $t3, 4($v0) -/* 0A6398 800A5798 100000AC */ b .L800A5A4C -/* 0A639C 800A579C AC4C0000 */ sw $t4, ($v0) -/* 0A63A0 800A57A0 24010003 */ li $at, 3 -.L800A57A4: -/* 0A63A4 800A57A4 146100A9 */ bne $v1, $at, .L800A5A4C -/* 0A63A8 800A57A8 00000000 */ nop -/* 0A63AC 800A57AC 804303DB */ lb $v1, 0x3db($v0) -/* 0A63B0 800A57B0 2401FFFF */ li $at, -1 -/* 0A63B4 800A57B4 14610064 */ bne $v1, $at, .L800A5948 -/* 0A63B8 800A57B8 00000000 */ nop -/* 0A63BC 800A57BC 8FA4001C */ lw $a0, 0x1c($sp) -/* 0A63C0 800A57C0 804303DC */ lb $v1, 0x3dc($v0) -/* 0A63C4 800A57C4 00047880 */ sll $t7, $a0, 2 -/* 0A63C8 800A57C8 01E47823 */ subu $t7, $t7, $a0 -/* 0A63CC 800A57CC 000F7880 */ sll $t7, $t7, 2 -/* 0A63D0 800A57D0 01E47821 */ addu $t7, $t7, $a0 -/* 0A63D4 800A57D4 006F7021 */ addu $t6, $v1, $t7 -/* 0A63D8 800A57D8 448E2000 */ mtc1 $t6, $f4 -/* 0A63DC 800A57DC C44003CC */ lwc1 $f0, 0x3cc($v0) -/* 0A63E0 800A57E0 46802220 */ cvt.s.w $f8, $f4 -/* 0A63E4 800A57E4 01E02025 */ move $a0, $t7 -/* 0A63E8 800A57E8 00002825 */ move $a1, $zero -/* 0A63EC 800A57EC 4600403C */ c.lt.s $f8, $f0 -/* 0A63F0 800A57F0 00000000 */ nop -/* 0A63F4 800A57F4 45000007 */ bc1f .L800A5814 -/* 0A63F8 800A57F8 00000000 */ nop -/* 0A63FC 800A57FC 44848000 */ mtc1 $a0, $f16 -/* 0A6400 800A5800 00000000 */ nop -/* 0A6404 800A5804 468082A0 */ cvt.s.w $f10, $f16 -/* 0A6408 800A5808 460A0481 */ sub.s $f18, $f0, $f10 -/* 0A640C 800A580C 10000005 */ b .L800A5824 -/* 0A6410 800A5810 E45203CC */ swc1 $f18, 0x3cc($v0) -.L800A5814: -/* 0A6414 800A5814 44833000 */ mtc1 $v1, $f6 -/* 0A6418 800A5818 00000000 */ nop -/* 0A641C 800A581C 46803120 */ cvt.s.w $f4, $f6 -/* 0A6420 800A5820 E44403CC */ swc1 $f4, 0x3cc($v0) -.L800A5824: -/* 0A6424 800A5824 8D020000 */ lw $v0, ($t0) -/* 0A6428 800A5828 00000000 */ nop -/* 0A642C 800A582C 804303BC */ lb $v1, 0x3bc($v0) -/* 0A6430 800A5830 C44003AC */ lwc1 $f0, 0x3ac($v0) -/* 0A6434 800A5834 0064C023 */ subu $t8, $v1, $a0 -/* 0A6438 800A5838 44984000 */ mtc1 $t8, $f8 -/* 0A643C 800A583C 00000000 */ nop -/* 0A6440 800A5840 46804420 */ cvt.s.w $f16, $f8 -/* 0A6444 800A5844 4610003C */ c.lt.s $f0, $f16 -/* 0A6448 800A5848 00000000 */ nop -/* 0A644C 800A584C 45000007 */ bc1f .L800A586C -/* 0A6450 800A5850 00000000 */ nop -/* 0A6454 800A5854 44845000 */ mtc1 $a0, $f10 -/* 0A6458 800A5858 00000000 */ nop -/* 0A645C 800A585C 468054A0 */ cvt.s.w $f18, $f10 -/* 0A6460 800A5860 46120180 */ add.s $f6, $f0, $f18 -/* 0A6464 800A5864 10000005 */ b .L800A587C -/* 0A6468 800A5868 E44603AC */ swc1 $f6, 0x3ac($v0) -.L800A586C: -/* 0A646C 800A586C 44832000 */ mtc1 $v1, $f4 -/* 0A6470 800A5870 00000000 */ nop -/* 0A6474 800A5874 46802220 */ cvt.s.w $f8, $f4 -/* 0A6478 800A5878 E44803AC */ swc1 $f8, 0x3ac($v0) -.L800A587C: -/* 0A647C 800A587C 81390193 */ lb $t9, 0x193($t1) -/* 0A6480 800A5880 24040016 */ li $a0, 22 -/* 0A6484 800A5884 00196880 */ sll $t5, $t9, 2 -/* 0A6488 800A5888 012D6021 */ addu $t4, $t1, $t5 -/* 0A648C 800A588C 8D8B0128 */ lw $t3, 0x128($t4) -/* 0A6490 800A5890 00000000 */ nop -/* 0A6494 800A5894 2961003C */ slti $at, $t3, 0x3c -/* 0A6498 800A5898 14200007 */ bnez $at, .L800A58B8 -/* 0A649C 800A589C 00000000 */ nop -/* 0A64A0 800A58A0 8D0F0000 */ lw $t7, ($t0) -/* 0A64A4 800A58A4 0C000741 */ jal play_sound_global -/* 0A64A8 800A58A8 A1E603DB */ sb $a2, 0x3db($t7) -/* 0A64AC 800A58AC 3C088012 */ lui $t0, %hi(D_80126CDC) # $t0, 0x8012 -/* 0A64B0 800A58B0 25086CDC */ addiu $t0, %lo(D_80126CDC) # addiu $t0, $t0, 0x6cdc -/* 0A64B4 800A58B4 24060001 */ li $a2, 1 -.L800A58B8: -/* 0A64B8 800A58B8 8D020000 */ lw $v0, ($t0) -/* 0A64BC 800A58BC 00000000 */ nop -/* 0A64C0 800A58C0 804E03DC */ lb $t6, 0x3dc($v0) -/* 0A64C4 800A58C4 C45003CC */ lwc1 $f16, 0x3cc($v0) -/* 0A64C8 800A58C8 448E5000 */ mtc1 $t6, $f10 -/* 0A64CC 800A58CC 00000000 */ nop -/* 0A64D0 800A58D0 468054A0 */ cvt.s.w $f18, $f10 -/* 0A64D4 800A58D4 46128032 */ c.eq.s $f16, $f18 -/* 0A64D8 800A58D8 00000000 */ nop -/* 0A64DC 800A58DC 45000037 */ bc1f .L800A59BC -/* 0A64E0 800A58E0 00000000 */ nop -/* 0A64E4 800A58E4 805803BC */ lb $t8, 0x3bc($v0) -/* 0A64E8 800A58E8 C44603AC */ lwc1 $f6, 0x3ac($v0) -/* 0A64EC 800A58EC 44982000 */ mtc1 $t8, $f4 -/* 0A64F0 800A58F0 00000000 */ nop -/* 0A64F4 800A58F4 46802220 */ cvt.s.w $f8, $f4 -/* 0A64F8 800A58F8 46083032 */ c.eq.s $f6, $f8 -/* 0A64FC 800A58FC 00000000 */ nop -/* 0A6500 800A5900 4500002E */ bc1f .L800A59BC -/* 0A6504 800A5904 00000000 */ nop -/* 0A6508 800A5908 805903DD */ lb $t9, 0x3dd($v0) -/* 0A650C 800A590C 3C058012 */ lui $a1, %hi(gHUDVoiceSoundMask) # $a1, 0x8012 -/* 0A6510 800A5910 1720002A */ bnez $t9, .L800A59BC -/* 0A6514 800A5914 24A56D40 */ addiu $a1, %lo(gHUDVoiceSoundMask) # addiu $a1, $a1, 0x6d40 -/* 0A6518 800A5918 8CAD0000 */ lw $t5, ($a1) -/* 0A651C 800A591C 00000000 */ nop -/* 0A6520 800A5920 15A00007 */ bnez $t5, .L800A5940 -/* 0A6524 800A5924 00000000 */ nop -/* 0A6528 800A5928 0C000741 */ jal play_sound_global -/* 0A652C 800A592C 24040101 */ li $a0, 257 -/* 0A6530 800A5930 3C088012 */ lui $t0, %hi(D_80126CDC) # $t0, 0x8012 -/* 0A6534 800A5934 25086CDC */ addiu $t0, %lo(D_80126CDC) # addiu $t0, $t0, 0x6cdc -/* 0A6538 800A5938 8D020000 */ lw $v0, ($t0) -/* 0A653C 800A593C 24060001 */ li $a2, 1 -.L800A5940: -/* 0A6540 800A5940 1000001E */ b .L800A59BC -/* 0A6544 800A5944 A04603DD */ sb $a2, 0x3dd($v0) -.L800A5948: -/* 0A6548 800A5948 14C3001C */ bne $a2, $v1, .L800A59BC -/* 0A654C 800A594C 00000000 */ nop -/* 0A6550 800A5950 8FAC001C */ lw $t4, 0x1c($sp) -/* 0A6554 800A5954 C45003CC */ lwc1 $f16, 0x3cc($v0) -/* 0A6558 800A5958 000C5880 */ sll $t3, $t4, 2 -/* 0A655C 800A595C 016C5823 */ subu $t3, $t3, $t4 -/* 0A6560 800A5960 000B5880 */ sll $t3, $t3, 2 -/* 0A6564 800A5964 016C5821 */ addu $t3, $t3, $t4 -/* 0A6568 800A5968 448B5000 */ mtc1 $t3, $f10 -/* 0A656C 800A596C 3C014348 */ li $at, 0x43480000 # 200.000000 -/* 0A6570 800A5970 46805020 */ cvt.s.w $f0, $f10 -/* 0A6574 800A5974 44814000 */ mtc1 $at, $f8 -/* 0A6578 800A5978 46008480 */ add.s $f18, $f16, $f0 -/* 0A657C 800A597C E45203CC */ swc1 $f18, 0x3cc($v0) -/* 0A6580 800A5980 8D020000 */ lw $v0, ($t0) -/* 0A6584 800A5984 00000000 */ nop -/* 0A6588 800A5988 C44403AC */ lwc1 $f4, 0x3ac($v0) -/* 0A658C 800A598C 00000000 */ nop -/* 0A6590 800A5990 46002181 */ sub.s $f6, $f4, $f0 -/* 0A6594 800A5994 E44603AC */ swc1 $f6, 0x3ac($v0) -/* 0A6598 800A5998 8D020000 */ lw $v0, ($t0) -/* 0A659C 800A599C 00000000 */ nop -/* 0A65A0 800A59A0 C44A03CC */ lwc1 $f10, 0x3cc($v0) -/* 0A65A4 800A59A4 00000000 */ nop -/* 0A65A8 800A59A8 460A403C */ c.lt.s $f8, $f10 -/* 0A65AC 800A59AC 00000000 */ nop -/* 0A65B0 800A59B0 45000002 */ bc1f .L800A59BC -/* 0A65B4 800A59B4 00000000 */ nop -/* 0A65B8 800A59B8 A04003DA */ sb $zero, 0x3da($v0) -.L800A59BC: -/* 0A65BC 800A59BC 3C048012 */ lui $a0, %hi(gHUDCurrDisplayList) # $a0, 0x8012 -/* 0A65C0 800A59C0 24846CFC */ addiu $a0, %lo(gHUDCurrDisplayList) # addiu $a0, $a0, 0x6cfc -/* 0A65C4 800A59C4 8C820000 */ lw $v0, ($a0) -/* 0A65C8 800A59C8 3C0EFA00 */ lui $t6, 0xfa00 -/* 0A65CC 800A59CC 244F0008 */ addiu $t7, $v0, 8 -/* 0A65D0 800A59D0 AC8F0000 */ sw $t7, ($a0) -/* 0A65D4 800A59D4 2418FFA0 */ li $t8, -96 -/* 0A65D8 800A59D8 AC580004 */ sw $t8, 4($v0) -/* 0A65DC 800A59DC AC4E0000 */ sw $t6, ($v0) -/* 0A65E0 800A59E0 8D070000 */ lw $a3, ($t0) -/* 0A65E4 800A59E4 3C058012 */ lui $a1, %hi(gHUDCurrMatrix) # $a1, 0x8012 -/* 0A65E8 800A59E8 3C068012 */ lui $a2, %hi(gHUDCurrTriList) # $a2, 0x8012 -/* 0A65EC 800A59EC 24C66D04 */ addiu $a2, %lo(gHUDCurrTriList) # addiu $a2, $a2, 0x6d04 -/* 0A65F0 800A59F0 24A56D00 */ addiu $a1, %lo(gHUDCurrMatrix) # addiu $a1, $a1, 0x6d00 -/* 0A65F4 800A59F4 0C02A980 */ jal func_800AA600 -/* 0A65F8 800A59F8 24E703A0 */ addiu $a3, $a3, 0x3a0 -/* 0A65FC 800A59FC 3C088012 */ lui $t0, %hi(D_80126CDC) # $t0, 0x8012 -/* 0A6600 800A5A00 25086CDC */ addiu $t0, %lo(D_80126CDC) # addiu $t0, $t0, 0x6cdc -/* 0A6604 800A5A04 8D070000 */ lw $a3, ($t0) -/* 0A6608 800A5A08 3C048012 */ lui $a0, %hi(gHUDCurrDisplayList) # $a0, 0x8012 -/* 0A660C 800A5A0C 3C058012 */ lui $a1, %hi(gHUDCurrMatrix) # $a1, 0x8012 -/* 0A6610 800A5A10 3C068012 */ lui $a2, %hi(gHUDCurrTriList) # $a2, 0x8012 -/* 0A6614 800A5A14 24C66D04 */ addiu $a2, %lo(gHUDCurrTriList) # addiu $a2, $a2, 0x6d04 -/* 0A6618 800A5A18 24A56D00 */ addiu $a1, %lo(gHUDCurrMatrix) # addiu $a1, $a1, 0x6d00 -/* 0A661C 800A5A1C 24846CFC */ addiu $a0, %lo(gHUDCurrDisplayList) # addiu $a0, $a0, 0x6cfc -/* 0A6620 800A5A20 0C02A980 */ jal func_800AA600 -/* 0A6624 800A5A24 24E703C0 */ addiu $a3, $a3, 0x3c0 -/* 0A6628 800A5A28 3C028012 */ lui $v0, %hi(gHUDCurrDisplayList) # $v0, 0x8012 -/* 0A662C 800A5A2C 8C426CFC */ lw $v0, %lo(gHUDCurrDisplayList)($v0) -/* 0A6630 800A5A30 3C018012 */ lui $at, %hi(gHUDCurrDisplayList) # $at, 0x8012 -/* 0A6634 800A5A34 24590008 */ addiu $t9, $v0, 8 -/* 0A6638 800A5A38 AC396CFC */ sw $t9, %lo(gHUDCurrDisplayList)($at) -/* 0A663C 800A5A3C 3C0DFA00 */ lui $t5, 0xfa00 -/* 0A6640 800A5A40 240CFFFF */ li $t4, -1 -/* 0A6644 800A5A44 AC4C0004 */ sw $t4, 4($v0) -/* 0A6648 800A5A48 AC4D0000 */ sw $t5, ($v0) -.L800A5A4C: -/* 0A664C 800A5A4C 0C01EFC7 */ jal func_8007BF1C -/* 0A6650 800A5A50 00002025 */ move $a0, $zero -/* 0A6654 800A5A54 8FBF0014 */ lw $ra, 0x14($sp) -/* 0A6658 800A5A58 27BD0018 */ addiu $sp, $sp, 0x18 -/* 0A665C 800A5A5C 03E00008 */ jr $ra -/* 0A6660 800A5A60 00000000 */ nop - diff --git a/asm/non_matchings/game_ui/func_800A8474.s b/asm/non_matchings/game_ui/func_800A8474.s index bf5acbc2..32af15ec 100644 --- a/asm/non_matchings/game_ui/func_800A8474.s +++ b/asm/non_matchings/game_ui/func_800A8474.s @@ -792,7 +792,7 @@ glabel func_800A8474 .L800A8FD4: /* 0A9BD4 800A8FD4 E7A0004C */ swc1 $f0, 0x4c($sp) /* 0A9BD8 800A8FD8 E7A20048 */ swc1 $f2, 0x48($sp) -/* 0A9BDC 800A8FDC 0C029055 */ jal func_800A4154 +/* 0A9BDC 800A8FDC 0C029055 */ jal render_racer_bananas /* 0A9BE0 800A8FE0 E7AE0044 */ swc1 $f14, 0x44($sp) /* 0A9BE4 800A8FE4 8E420000 */ lw $v0, ($s2) /* 0A9BE8 800A8FE8 C7A0004C */ lwc1 $f0, 0x4c($sp) diff --git a/include/structs.h b/include/structs.h index 67aa9eae..f5f8df2c 100644 --- a/include/structs.h +++ b/include/structs.h @@ -500,7 +500,9 @@ typedef struct LevelModel { /* 0x1C */ s16 unk1C; /* 0x1E */ s16 unk1E; /* 0x20 */ s32 unk20; //spriteIndex? - u8 pad24[0x14]; +/* 0x24 */ u16 unk24; +/* 0x26 */ u16 unk26; + u8 pad28[0x10]; /* 0x38 */ u32 minimapColor; /* 0x3C */ s16 unk3C; /* 0x3E */ s16 unk3E; @@ -1514,4 +1516,10 @@ typedef struct unk80042178 { u8 pad0[0x20]; } unk80042178; +typedef struct ByteColour { + u8 red; + u8 green; + u8 blue; +} ByteColour; + #endif diff --git a/src/game_ui.c b/src/game_ui.c index 53d72dc5..02bb2264 100644 --- a/src/game_ui.c +++ b/src/game_ui.c @@ -144,22 +144,47 @@ s8 D_800E27AC[12] = { u8 D_800E27B8 = 0; -u8 D_800E27BC[120] = { - 0xFF, 0xA0, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x80, - 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xAF, 0x00, 0x00, - 0xFF, 0x80, 0xFF, 0x00, 0x00, 0xFF, 0x80, 0xBE, - 0x80, 0x80, 0x80, 0x00, 0x00, 0xFF, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x40, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x40, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x00, 0x40, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x40, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +ByteColour D_800E27BC[40] = { + { 255, 160, 0 }, + { 255, 255, 0 }, + { 0, 128, 255 }, + { 255, 255, 255 }, + { 0, 175, 0 }, + { 0, 255, 128 }, + { 255, 0, 0 }, + { 255, 128, 190 }, + { 128, 128, 128 }, + { 0, 0, 255 }, + { 0, 0, 0 }, + { 0, 0, 0 }, + { 0, 0, 0 }, + { 0, 0, 0 }, + { 0, 0, 0 }, + { 32, 0, 0 }, + { 0, 0, 0 }, + { 0, 0, 64 }, + { 0, 0, 0 }, + { 0, 0, 0 }, + { 0, 96, 0 }, + { 0, 0, 0 }, + { 0, 0, 0 }, + { 128, 0, 0 }, + { 0, 0, 0 }, + { 0, 0, 0 }, + { 0, 64, 0 }, + { 0, 0, 0 }, + { 0, 32, 0 }, + { 64, 0, 0 }, + { 0, 0, 0 }, + { 64, 0, 64 }, + { 0, 0, 0 }, + { 0, 0, 96 }, + { 0, 64, 0 }, + { 0, 0, 0 }, + { 0, 128, 0 }, + { 64, 0, 0 }, + { 0, 0, 0 }, + { 0, 0, 0 }, }; s32 D_800E2834 = -2; @@ -194,12 +219,12 @@ s8 D_80126CD3; s8 gRaceStartShowHudStep; s8 D_80126CD5; -s32 D_80126CD8; +u8 *D_80126CD8; unk80126CDC *D_80126CDC; unk80126CDC *D_80126CE0[3]; -s32 D_80126CEC; -s32 D_80126CF0; -s32 D_80126CF4; +unk80126CDC *D_80126CEC; +s16 *D_80126CF0; +s32 *D_80126CF4; s32 D_80126CF8; Gfx *gHUDCurrDisplayList; Matrix *gHUDCurrMatrix; @@ -359,7 +384,7 @@ void render_hud(Gfx **dList, Matrix **mtx, TriangleList **tris, Object *arg3, s3 init_rdp_and_framebuffer(&gHUDCurrDisplayList); func_8007AE28(-1); func_8007AE0C(2); - func_8007BF1C(0); + func_8007BF1C(FALSE); if (check_if_showing_cutscene_camera() == FALSE && D_80126D34 == 0 && racer->racer.playerIndex == PLAYER_ONE) { if (D_80126D35 != 0) { D_80126D28 = cosine_s(D_80126D2C) * D_80126D30 * 8.0f; @@ -435,12 +460,12 @@ void render_hud(Gfx **dList, Matrix **mtx, TriangleList **tris, Object *arg3, s3 } else if (get_viewport_count() == VIEWPORTS_COUNT_1_PLAYER && racer->racer.unk1AC == 1) { if (is_in_two_player_adventure()) { if (get_current_level_race_type() == RACETYPE_BOSS) { - goto block_93; + goto showFinish; } goto block_95; } -block_93: - func_800A497C(racer, updateRate); +showFinish: + render_race_finish_position(racer, updateRate); } else { block_95: func_800A6254(racer, updateRate); @@ -448,7 +473,7 @@ block_95: func_80068508(0); } D_80126CD1 = 0; - func_8007BF1C(1); + func_8007BF1C(TRUE); if (D_80127180) { (&D_80126D80)[D_80127180].texture = NULL; render_textured_rectangle(&gHUDCurrDisplayList, &D_80126D80, 0, 0, 255, 255, 255, 255); @@ -484,13 +509,13 @@ void func_800A0DC0(s32 arg0, Object *arg1, s32 updateRate) { render_race_start(arg0, updateRate); if (D_80126D60->race_type == RACETYPE_DEFAULT) { - func_800A4F50(racer, updateRate); + render_lap_count(racer, updateRate); } - func_800A4154(racer, updateRate); + render_racer_bananas(racer, updateRate); render_race_time(racer, updateRate); func_800A4C44(racer, updateRate); - func_800A3884(arg1, updateRate); + render_speedometer(arg1, updateRate); if (D_80127188 && racer->raceFinished == FALSE) { func_800A47A0(racer, updateRate); @@ -640,10 +665,10 @@ void render_hud_race_boss(s32 arg0, Object *arg1, s32 updateRate) { level = get_current_level_header(); if (level->laps > 1) { - func_800A4F50(temp, updateRate); + render_lap_count(temp, updateRate); } - func_800A3884(arg1, updateRate); + render_speedometer(arg1, updateRate); func_800A4C44(temp, updateRate); func_80068508(0); } @@ -653,11 +678,11 @@ void func_800A263C(s32 arg0, Object *arg1, s32 updateRate) { func_80068508(1); render_wrong_way_text(temp, updateRate); - func_800A4F50(temp, updateRate); + render_lap_count(temp, updateRate); func_800A4C44(temp, updateRate); render_race_time(temp, updateRate); render_race_start(arg0, updateRate); - func_800A3884(arg1, updateRate); + render_speedometer(arg1, updateRate); func_80068508(0); } @@ -673,7 +698,7 @@ void render_hud_hubworld(Object *obj, s32 updateRate) { obj64 = obj->unk64; func_80068508(1); func_800A718C(obj64); - func_800A3884(obj, updateRate); + render_speedometer(obj, updateRate); if (is_in_two_player_adventure()) { temp_a3 = &D_80126CDC[1]; temp_a3->unk6 = (get_settings()->racers[1].character + 0x38); @@ -690,7 +715,73 @@ void func_800A3870(void) { D_80126CDC->unk4C4 = 0x6490; } -GLOBAL_ASM("asm/non_matchings/game_ui/func_800A3884.s") +/** + * When enabled, displays speed of the player in the bottom right corner, replacing the minimap. + * Speed is calculated by normalising racer velocity. then scaling the angle of the needle with that number. +*/ +void render_speedometer(Object *obj, UNUSED s32 updateRate) { + f32 vel; + Object_64* racer64; + s32 opacity; + + if (D_80126D37 == 1) { + if (!check_if_showing_cutscene_camera()) { + racer64 = obj->unk64; + if (racer64->racer.raceFinished == FALSE) { + if (racer64->racer.unk1D6 == 2) { + vel = sqrtf((obj->segment.x_velocity * obj->segment.x_velocity) + (obj->segment.y_velocity * obj->segment.y_velocity) + (obj->segment.z_velocity * obj->segment.z_velocity)); + } else { + vel = sqrtf((obj->segment.x_velocity * obj->segment.x_velocity) + (obj->segment.z_velocity * obj->segment.z_velocity)); + } + if (D_800E2838 < vel) { + D_800E2838 = vel; + } + vel *= 4.0f; + if (racer64->racer.drift_direction != 0) { + vel += 7.0f; + } + if (vel > 100.0f) { + vel = 100.0f; + } + if (racer64->racer.velocity > 0.0f) { + vel = 0.0f; + } + vel = 100.0f - vel; + vel *= 300.0f; + if (vel > 25744.0f) { + vel = 25744.0f; + } + if (!is_game_paused()) { + if (vel < D_80126CDC->unk4C4) { + D_80126CDC->unk4C4 += ((vel - D_80126CDC->unk4C4) / 2); + } else { + D_80126CDC->unk4C4 += ((vel - D_80126CDC->unk4C4) / 8); + } + } + if (D_800E27A4[gHUDNumPlayers] == 0) { + if (D_80126CD3 & 2) { + opacity = 255.0f - ((D_80126CD0 * 255.0f) / D_8012718B); + } else { + opacity = 255; + } + func_800AA600(&gHUDCurrDisplayList, &gHUDCurrMatrix, &gHUDCurrTriList, (unk80126CDC* ) &D_80126CDC->unk4C6[0xDA]); + func_8007B3D0(&gHUDCurrDisplayList); + func_8007BF1C(TRUE); + gDPSetPrimColor(gHUDCurrDisplayList++, 0, 0, 255, 255, 255, opacity); + func_800AA600(&gHUDCurrDisplayList, &gHUDCurrMatrix, &gHUDCurrTriList, (unk80126CDC* ) &D_80126CDC->unk49E[0x22]); + func_8007BF1C(FALSE); + func_800AA600(&gHUDCurrDisplayList, &gHUDCurrMatrix, &gHUDCurrTriList, (unk80126CDC* ) &D_80126CDC->unk4C6[0x1A]); + func_800AA600(&gHUDCurrDisplayList, &gHUDCurrMatrix, &gHUDCurrTriList, (unk80126CDC* ) &D_80126CDC->unk4C6[0x3A]); + func_800AA600(&gHUDCurrDisplayList, &gHUDCurrMatrix, &gHUDCurrTriList, (unk80126CDC* ) &D_80126CDC->unk4C6[0x5A]); + func_800AA600(&gHUDCurrDisplayList, &gHUDCurrMatrix, &gHUDCurrTriList, (unk80126CDC* ) &D_80126CDC->unk4C6[0x7A]); + func_800AA600(&gHUDCurrDisplayList, &gHUDCurrMatrix, &gHUDCurrTriList, (unk80126CDC* ) &D_80126CDC->unk4C6[0x9A]); + func_800AA600(&gHUDCurrDisplayList, &gHUDCurrMatrix, &gHUDCurrTriList, (unk80126CDC* ) &D_80126CDC->unk4C6[0xBA]); + } + } + } + } +} + /** * Call the functions that render the "Get Ready" and "GO!" as well as their countdowns to control fade. @@ -704,7 +795,7 @@ void render_race_start(s32 arg0, s32 updateRate) { D_800E2770[1].unk3 = -1; } if (gHUDNumPlayers == 1) { - func_8007BF1C(1); + func_8007BF1C(TRUE); } if (arg0 > 0) { if (D_80126D34) { @@ -761,17 +852,361 @@ void render_race_start(s32 arg0, s32 updateRate) { gRaceStartShowHudStep++; } } - func_8007BF1C(0); + func_8007BF1C(FALSE); } } -GLOBAL_ASM("asm/non_matchings/game_ui/func_800A4154.s") -GLOBAL_ASM("asm/non_matchings/game_ui/func_800A45F0.s") +/** + * Renders the banana counter on screen. + * When a banana is collected, render sparkles and animate the banana. for a brief moment. +*/ +void render_racer_bananas(Object_64 *obj, s32 updateRate) { + s32 bananas; + s16 temp_v1; + s32 temp_lo; + u8 var_v1; + if(obj->racer.playerIndex == PLAYER_COMPUTER || ((gHUDNumPlayers < 1 || D_800E2794[gHUDNumPlayers][obj->racer.playerIndex] == 2 || D_80126D60->race_type == 0x41 || D_80126D60->race_type == 0x40) && obj->racer.raceFinished == FALSE) && (gHUDNumPlayers < 1 || (obj->racer.lapCount < 1) || obj->racer.lap_times[obj->racer.lapCount] >= 180 || D_80126D60->race_type & 0x40)) { + func_800AA600(&gHUDCurrDisplayList, (Matrix *) &gHUDCurrMatrix, (TriangleList *) &gHUDCurrTriList, (unk80126CDC *) &D_80126CDC->unk240); + bananas = obj->racer.bananas; + var_v1 = D_80126CDC->unkF8; + if ((D_80126CDC->unkFA == 0) && (D_80126CDC->unkFB != obj->racer.bananas)) { + D_80126CDC->unkFA = 2; + D_80126CDC->unkFB = obj->racer.bananas; + } else if (D_80126CDC->unkFA) { + D_80126CDC->unk388 = 2.0f; + var_v1 += updateRate * 13; + if (var_v1 < (D_80126CDC->unkF8 & 0xFF)) { + D_80126CDC->unkFA--; + if (D_80126CDC->unkFA == 0) { + D_80126CDC->unk39B = 1; + D_80126CDC->unk39A = 6; + var_v1 = 0; + D_80126CDC->unk398 = 1; + } + } + } + if (var_v1 == 0) { + func_8007BF1C(TRUE); + set_viewport_tv_type(TV_TYPE_NTSC); + func_800AA600(&gHUDCurrDisplayList, (Matrix *) &gHUDCurrMatrix, (TriangleList *) &gHUDCurrTriList, (unk80126CDC *) &D_80126CDC->unk360); + set_viewport_tv_type(TV_TYPE_PAL); + func_8007BF1C(FALSE); + D_80126CDC->unkF8 = var_v1; + if (D_80126CDC->unk39B) { + D_80126CDC->unk39A -= updateRate; + if (D_80126CDC->unk39A < 0) { + D_80126CDC->unk39A = 6; + if (D_80126CDC->unk398 == 6) { + D_80126CDC->unk398 = 0; + D_80126CDC->unk39B--; + } else { + D_80126CDC->unk398++; + } + } + set_viewport_tv_type(TV_TYPE_NTSC); + func_800AA600(&gHUDCurrDisplayList, (Matrix *) &gHUDCurrMatrix, (TriangleList *) &gHUDCurrTriList, (unk80126CDC *) &D_80126CDC->unk380); + set_viewport_tv_type(TV_TYPE_PAL); + } + } else { + D_80126CDC->unkF8 = var_v1 + 128; + func_80068508(0); + func_8007BF1C(TRUE); + set_viewport_tv_type(TV_TYPE_NTSC); + func_800AA600(&gHUDCurrDisplayList, (Matrix *) &gHUDCurrMatrix, (TriangleList *) &gHUDCurrTriList, (unk80126CDC *) &D_80126CDC->unkE0); + func_8007BF1C(FALSE); + set_viewport_tv_type(TV_TYPE_PAL); + func_80068508(1); + D_80126CDC->unkF8 -= 128; + } + temp_lo = bananas / 10; + if (temp_lo) { + D_80126CDC->unk118 = temp_lo; + D_80126CDC->unk138 = bananas % 10; + func_800AA600(&gHUDCurrDisplayList, (Matrix *) &gHUDCurrMatrix, (TriangleList *) &gHUDCurrTriList, (unk80126CDC *) &D_80126CDC->unk120); + } else { + D_80126CDC->unk118 = bananas % 10; + } + func_800AA600(&gHUDCurrDisplayList, (Matrix *) &gHUDCurrMatrix, (TriangleList *) &gHUDCurrTriList, (unk80126CDC *) &D_80126CDC->unk100); + gDPSetPrimColor(gHUDCurrDisplayList++, 0, 0, 255, 255, 255, 255); + } +} + +void func_800A45F0(Object_Racer* racer) { + s32 i; + s32 sp48; + + sp48 = D_80126CDC->unk410; + if (D_80126D37 < 3 || (D_80126D37 == 3 && racer->playerIndex == PLAYER_COMPUTER)) { + D_80126CDC->unk646 = racer->characterId + 56; + D_80126CD5 = TRUE; + func_800AA600(&gHUDCurrDisplayList, &gHUDCurrMatrix, &gHUDCurrTriList, (unk80126CDC* ) &D_80126CDC->unk640); + D_80126CD5 = FALSE; + } + for (i = 0; i < 10; i++) { + if (i >= racer->lapCount) { + D_800E2834 = 0x80808080; + } + D_80126CD5 = TRUE; + func_800AA600(&gHUDCurrDisplayList, &gHUDCurrMatrix, &gHUDCurrTriList, (unk80126CDC* ) &D_80126CDC->unk400); + D_80126CD5 = FALSE; + D_80126CDC->unk410 -= 3.0f; + } + D_80126CDC->unk410 = sp48; + D_800E2834 = -2; + D_80126CD5 = 0; +} + GLOBAL_ASM("asm/non_matchings/game_ui/func_800A47A0.s") -GLOBAL_ASM("asm/non_matchings/game_ui/func_800A497C.s") + +/** + * Plays the race finish fanfare and displays what position you finished + * in the middle of the screen. + * Uses a 3 step process to play the sounds, display the position, then slide it offscreen. +*/ +void render_race_finish_position(Object_64 *obj, s32 updateRate) { + unk800A497C* temp_a3; + unk800A497C* temp_s0; + s8 drawPosition; + + temp_a3 = &D_80126CDC->unk700; + temp_s0 = &D_80126CDC->unk700 + 16; // Hacky workaround to the struct being assumed to be 0x720 bytes. + //temp_s0 = &D_80126CDC->unk740; + drawPosition = FALSE; + switch (temp_a3->unk1A) { + case 0: + set_music_player_voice_limit(24); + play_music(SEQUENCE_FIRST_PLACE); + play_sound_global(SOUND_WHOOSH1, NULL); + play_sound_global(SOUND_VOICE_TT_FINISH, &gHUDVoiceSoundMask); + D_800E2770->unk2 = 127; + D_800E2770->unk3 = 0; + D_800E2770->unkC = obj->racer.playerIndex; + temp_a3->unk1A = 1; + break; + case 1: + temp_a3->unkC += updateRate * 13; + if (temp_a3->unkC > -23.0f) { + temp_a3->unkC = -23.0f; + } + temp_s0->unkC -= updateRate * 13; + if (temp_s0->unkC < 22.0f) { + temp_s0->unkC = 22.0f; + } + drawPosition = TRUE; + if (temp_s0->unkC == 22.0f) { + temp_a3->unk1B += updateRate; + if (temp_a3->unk1B >= 120) { + temp_a3->unk1B = -120; + temp_a3->unk1C = temp_a3->unk1C + 1; + } + if (temp_a3->unk1C == 2) { + temp_a3->unk1A = 2; + play_sound_global(SOUND_WHOOSH1, NULL); + if (D_800E2770->unkC == obj->racer.playerIndex) { + D_800E2770->unk3 = -1; + } + } + } + break; + case 2: + temp_a3->unkC += updateRate * 13; + temp_s0->unkC += updateRate * 13; + drawPosition = TRUE; + if (temp_a3->unkC > 200.0f) { + temp_a3->unk1A = 3; + } + break; + case 3: + temp_a3->unk1A = 3; + break; + } + if (drawPosition) { + gDPSetPrimColor(gHUDCurrDisplayList++, 0, 0, 255, 255, 255, 210); + func_800AA600(&gHUDCurrDisplayList, &gHUDCurrMatrix, &gHUDCurrTriList, (unk80126CDC* ) temp_a3); + func_800AA600(&gHUDCurrDisplayList, &gHUDCurrMatrix, &gHUDCurrTriList, temp_s0); + gDPSetPrimColor(gHUDCurrDisplayList++, 0, 0, 255, 255, 255, 255); + } +} + + UNUSED void func_800A4C34(UNUSED s32 arg0, UNUSED s32 arg1, UNUSED s32 arg2) {} + GLOBAL_ASM("asm/non_matchings/game_ui/func_800A4C44.s") -GLOBAL_ASM("asm/non_matchings/game_ui/func_800A4F50.s") + +/** + * Displays the current lap number onscreen. + * Also displays the "Lap 2" and "Final Lap" messages when the line is crossed. + * In multiplayer, shows a cut down display, if the display setting is set to show laps. +*/ +void render_lap_count(Object_64 *obj, s32 updateRate) { + if (obj->racer.raceFinished == FALSE && (gHUDNumPlayers <= 0 || obj->racer.lapCount <= 0 || obj->racer.lap_times[obj->racer.lapCount] >= 180) + && (gHUDNumPlayers <= 0 || D_800E2794[gHUDNumPlayers][obj->racer.playerIndex] == 3)) { + if (D_80126D60->laps == (0, obj->racer.unk194 + 1) && gHUDNumPlayers < 2) { + D_80126CDC->unk21A += updateRate; + if (D_80126CDC->unk21A > 6) { + D_80126CDC->unk218++; + D_80126CDC->unk21A -= 6; + if (D_80126CDC->unk218 > 4) { + D_80126CDC->unk218 = 0; + } + } + func_800AA600(&gHUDCurrDisplayList, &gHUDCurrMatrix, &gHUDCurrTriList, (unk80126CDC* ) &D_80126CDC->unk200); + } + func_800AA600(&gHUDCurrDisplayList, &gHUDCurrMatrix, &gHUDCurrTriList, (unk80126CDC* ) &D_80126CDC->unk60); + if (obj->racer.unk194 >= D_80126D60->laps - 1) { + D_80126CDC->unk98 = D_80126D60->laps; + } else { + D_80126CDC->unk98 = obj->racer.unk194 + 1; + } + D_80126CDC->unkD8 = D_80126D60->laps; + func_800AA600(&gHUDCurrDisplayList, &gHUDCurrMatrix, &gHUDCurrTriList, (unk80126CDC* ) &D_80126CDC->unk68[0x18]); + func_800AA600(&gHUDCurrDisplayList, &gHUDCurrMatrix, &gHUDCurrTriList, (unk80126CDC* ) &D_80126CDC->unk68[0x38]); + func_800AA600(&gHUDCurrDisplayList, &gHUDCurrMatrix, &gHUDCurrTriList, (unk80126CDC* ) &D_80126CDC->unk68[0x58]); + } + if (gHUDNumPlayers == 1) { + func_8007BF1C(TRUE); + } + if (is_game_paused() == FALSE) { + if (obj->racer.lap_times[obj->racer.lapCount] < 30 && D_80126CDC->unk3DA == 0 && obj->racer.raceFinished == FALSE) { + if ((obj->racer.lapCount == 1) && D_80126D60->laps >= 3) { + D_80126CDC->unk3DA = 2; + D_80126CDC->unk3DB = 1; + D_80126CDC->unk3DD = 0; + play_sound_global(SOUND_WHOOSH1, NULL); + switch (gHUDNumPlayers) { + case 0: + D_80126CDC->unk3DC = -21; + D_80126CDC->unk3FC = 32; + D_80126CDC->unk3CC = -200.0f; + D_80126CDC->unk3EC = 211.0f; + break; + case 1: + D_80126CDC->unk3DC = -16; + D_80126CDC->unk3FC = 27; + D_80126CDC->unk3CC = -200.0f; + D_80126CDC->unk3EC = 211.0f; + break; + default: + if (obj->racer.playerIndex != PLAYER_ONE && obj->racer.playerIndex != PLAYER_THREE) { + D_80126CDC->unk3DC = 60; + D_80126CDC->unk3FC = 91; + D_80126CDC->unk3CC = -70.0f; + D_80126CDC->unk3EC = 221.0f; + } else { + D_80126CDC->unk3DC = -90; + D_80126CDC->unk3FC = -59; + D_80126CDC->unk3CC = -220.0f; + D_80126CDC->unk3EC = 71.0f; + } + break; + } + } else if (D_80126D60->laps == (0, obj->racer.lapCount + 1) && obj->racer.lapCount != 0) { + D_80126CDC->unk3DA = 3; + D_80126CDC->unk3DB = -1; + D_80126CDC->unk3DD = 0; + play_sound_global(SOUND_WHOOSH1, NULL); + switch (gHUDNumPlayers) { + case 0: + D_80126CDC->unk3DC = 51; + D_80126CDC->unk3BC = -41; + D_80126CDC->unk3CC = 210.0f; + D_80126CDC->unk3AC = -200.0f; + break; + case 1: + D_80126CDC->unk3DC = 41; + D_80126CDC->unk3BC = -31; + D_80126CDC->unk3CC = 210.0f; + D_80126CDC->unk3AC = -200.0f; + break; + default: + if (obj->racer.playerIndex != PLAYER_ONE && obj->racer.playerIndex != PLAYER_THREE) { + D_80126CDC->unk3DC = 100; + D_80126CDC->unk3BC = 50; + D_80126CDC->unk3CC = 100.0f; + D_80126CDC->unk3AC = -50.0f; + } else { + D_80126CDC->unk3DC = -50; + D_80126CDC->unk3BC = -100; + D_80126CDC->unk3CC = 50.0f; + D_80126CDC->unk3AC = -200.0f; + } + break; + } + } + } + if (D_80126CDC->unk3DA != 0) { + if (D_80126CDC->unk3DA == 2) { + if (D_80126CDC->unk3DB == 1) { + if (D_80126CDC->unk3CC < D_80126CDC->unk3DC - (updateRate * 13)) { + D_80126CDC->unk3CC = D_80126CDC->unk3CC + (updateRate * 13); + } else { + D_80126CDC->unk3CC = D_80126CDC->unk3DC; + } + if (D_80126CDC->unk3EC > D_80126CDC->unk3FC + (updateRate * 13)) { + D_80126CDC->unk3EC = D_80126CDC->unk3EC - (updateRate * 13); + } else { + D_80126CDC->unk3EC = D_80126CDC->unk3FC; + } + if (obj->racer.lap_times[obj->racer.lapCount] >= 60) { + D_80126CDC->unk3DB = -1; + play_sound_global(SOUND_WHOOSH1, NULL); + } + if (D_80126CDC->unk3CC == ((0, D_80126CDC))->unk3DC && D_80126CDC->unk3EC == ((0, D_80126CDC))->unk3FC && D_80126CDC->unk3DD == 0) { + if (gHUDVoiceSoundMask == NULL) { + play_sound_global(SOUND_VOICE_TT_LAP2, &gHUDVoiceSoundMask); + } + D_80126CDC->unk3DD = 1; + } + } else if (D_80126CDC->unk3DB == -1) { + D_80126CDC->unk3CC = D_80126CDC->unk3CC - (updateRate * 13); + D_80126CDC->unk3EC = D_80126CDC->unk3EC + (updateRate * 13); + if (D_80126CDC->unk3CC < -200.0f) { + D_80126CDC->unk3DA = 0; + } + } + gDPSetPrimColor(gHUDCurrDisplayList++, 0, 0, 255, 255, 255, 160); + func_800AA600(&gHUDCurrDisplayList, &gHUDCurrMatrix, &gHUDCurrTriList, (unk80126CDC* ) &D_80126CDC->unk39C[0x44]); + func_800AA600(&gHUDCurrDisplayList, &gHUDCurrMatrix, &gHUDCurrTriList, (unk80126CDC* ) &D_80126CDC->unk39C[0x24]); + gDPSetPrimColor(gHUDCurrDisplayList++, 0, 0, 255, 255, 255, 255); + } else if (D_80126CDC->unk3DA == 3) { + if (D_80126CDC->unk3DB == -1) { + if (D_80126CDC->unk3CC > D_80126CDC->unk3DC + (updateRate * 13)) { + D_80126CDC->unk3CC = D_80126CDC->unk3CC - (updateRate * 13); + } else { + D_80126CDC->unk3CC = D_80126CDC->unk3DC; + } + if (D_80126CDC->unk3AC < D_80126CDC->unk3BC - (updateRate * 13)) { + D_80126CDC->unk3AC = D_80126CDC->unk3AC + (updateRate * 13); + } else { + D_80126CDC->unk3AC = D_80126CDC->unk3BC; + } + if (obj->racer.lap_times[obj->racer.lapCount] >= 0x3C) { + D_80126CDC->unk3DB = 1; + play_sound_global(SOUND_WHOOSH1, NULL); + } + if (D_80126CDC->unk3CC == ((0, D_80126CDC))->unk3DC && D_80126CDC->unk3AC == ((0, D_80126CDC))->unk3BC && D_80126CDC->unk3DD == 0) { + if (gHUDVoiceSoundMask == NULL) { + play_sound_global(SOUND_VOICE_TT_FINAL_LAP, &gHUDVoiceSoundMask); + } + D_80126CDC->unk3DD = 1; + } + } else if (D_80126CDC->unk3DB == 1) { + D_80126CDC->unk3CC = D_80126CDC->unk3CC + (updateRate * 13); + D_80126CDC->unk3AC = D_80126CDC->unk3AC - (updateRate * 13); + if (D_80126CDC->unk3CC > 200.0f) { + D_80126CDC->unk3DA = 0; + } + } + + gDPSetPrimColor(gHUDCurrDisplayList++, 0, 0, 255, 255, 255, 160); + func_800AA600(&gHUDCurrDisplayList, &gHUDCurrMatrix, &gHUDCurrTriList, (unk80126CDC* ) &D_80126CDC->unk39C[4]); + func_800AA600(&gHUDCurrDisplayList, &gHUDCurrMatrix, &gHUDCurrTriList, (unk80126CDC* ) &D_80126CDC->unk39C[0x24]); + gDPSetPrimColor(gHUDCurrDisplayList++, 0, 0, 255, 255, 255, 255); + } + } + } + func_8007BF1C(FALSE); +} /** * Players going the wrong way will be nagged by T.T to turn around. @@ -782,7 +1217,7 @@ void render_wrong_way_text(Object_64* obj, s32 updateRate) { f32 textPosTarget; if (gHUDNumPlayers == 1) { - func_8007BF1C(1); + func_8007BF1C(TRUE); } if (obj->racer.unk1FC > 120 && (gHUDNumPlayers || D_80126CDC->unk46C == D_80126CDC->unk47A[2]) && !is_game_paused()) { if ((gWrongWayNagPrefix || gWrongWayNagTimer == 0) && gHUDVoiceSoundMask == NULL) { @@ -856,7 +1291,7 @@ void render_wrong_way_text(Object_64* obj, s32 updateRate) { D_80126CDC->unk46C = D_80126CDC->unk49C - 200; play_sound_global(SOUND_WHOOSH1, NULL); } - func_8007BF1C(0); + func_8007BF1C(FALSE); } GLOBAL_ASM("asm/non_matchings/game_ui/func_800A5F18.s") @@ -950,10 +1385,10 @@ void render_weapon_hud(Object *obj, s32 updateRate) { D_80126CDC->unk48 *= 0.75; } if (D_80126CDC->unk48 != 1.0) { - func_8007BF1C(1); + func_8007BF1C(TRUE); } func_800AA600(&gHUDCurrDisplayList, &gHUDCurrMatrix, &gHUDCurrTriList, &D_80126CDC->unk40); - func_8007BF1C(0); + func_8007BF1C(FALSE); if (racerObj->racer.balloon_quantity > 3) { D_80126CDC->unk63A = -128; } @@ -1078,7 +1513,437 @@ s8 func_800A8458(void) { return D_800E27A4[gHUDNumPlayers]; } +#ifdef NON_MATCHING +s32 func_800A8474(Gfx **dList, Matrix **mtx, TriangleList **triList, s32 updateRate) { + LevelModel *lvlMdl; // sp158 + s32 sp154; + Object **sp150; + Object_Racer *someRacer; + s32 sp144; + s32 sp140; + ObjectTransform_800A8474 objTrans; // sp120 + f32 sp11C; + f32 sp118; + f32 sp114; + s32 sp113; + s32 mapOpacity; + s32 opacity; + s32 spF4; + s32 spF0; + s32 spE4; + s32 spE0; + s32 i; + s32 racerCount; + s32 spBC; + Object **racerGroup; + ObjectSegment *someObjSeg; + Object_Racer *curRacerObj; + f32 temp_f14; + f32 var_f12; + f32 var_f16; + f32 var_f18; + s32 temp_f16; + s32 temp_f6; + s32 temp_s0; + s32 temp_s0_2; + s32 temp_s0_3; + s32 temp_s1; + s32 temp_s1_2; + s32 temp_s1_3; + s32 temp_s3; + Object *temp_v0_8; + s32 var_a0_5; + s32 var_a1; + Object *someRacerObj; + ByteColour *charColour; + s32 temp; + s32 temp2; + + func_800A0BD4(updateRate); + + D_80126CD8[1] = 0; + D_80126CD8[23] = 0; + D_80126CD8[8] = 0; + D_80126CD8[17] = 0; + D_80127180 = 0; + + if (D_80126CD3 & 2) { + mapOpacity = 255.0f - ((D_80126CD0 * 255.0f) / D_8012718B); + } else { + mapOpacity = 255; + } + + for (i = 0; i < D_80126CF8; i++) { + if (D_80126CF4[i] && i != 40) { + if (++D_80126CD8[i] > 60) { + if ((D_80126CF0[i] & (0x4000 | 0x8000)) == (0x4000 | 0x8000)) { + free_texture(D_80126CF4[i]); + } else if (D_80126CF0[i] & 0x8000) { + free_sprite(D_80126CF4[i]); + } else if (D_80126CF0[i] & 0x4000) { + gParticlePtrList_addObject(D_80126CF4[i]); + } else { + func_8005FF40(D_80126CF4[i]); + } + D_80126CF4[i] = 0; + } + } + } + D_80126D60 = get_current_level_header(); + sp150 = func_8001BA90(&sp140); + gHUDCurrDisplayList = *dList; + gHUDCurrMatrix = *mtx; + gHUDCurrTriList = *triList; + if (D_80126D60->race_type == RACETYPE_CHALLENGE_EGGS) { + if (D_80126D37 == 2 && D_800E27A4[gHUDNumPlayers] == 0) { + func_800A14F0(NULL, updateRate); + func_8007B3D0(&gHUDCurrDisplayList); + } else { + if (D_80126D37 == 3) { + curRacerObj = NULL; + for(i = 0; i < sp140; i++) { + if (sp150[i]->unk64->racer.playerIndex == PLAYER_COMPUTER) { + curRacerObj = &sp150[i]->unk64->racer; + } + } + if (curRacerObj != NULL) { + temp_s0 = D_80126CDC->unk64C; + temp_s1 = D_80126CDC->unk650; + spF4 = D_80126CDC->unk66C; + spF0 = D_80126CDC->unk670; + D_80126CDC->unk64C = 225.0f; + D_80126CDC->unk66C = 221.0f; + D_80126CDC->unk670 = 197.0f; + D_80126CDC->unk650 = 165.0f; + if (osTvType == TV_TYPE_PAL) { + D_80126CDC->unk64C -= 4.0f; + D_80126CDC->unk66C -= 4.0f; + D_80126CDC->unk650 *= 1.1; + D_80126CDC->unk670 *= 1.1; + } + func_800A19A4(curRacerObj, updateRate); + D_800E2834 = -2; + D_80126CDC->unk64C = temp_s0; + D_80126CDC->unk650 = temp_s1; + D_80126CDC->unk66C = spF4; + D_80126CDC->unk670 = spF0; + } + } + } + } else if (D_80126D60->race_type == RACETYPE_CHALLENGE_BATTLE) { + if (D_80126D37 == 2 && D_800E27A4[gHUDNumPlayers] == 0) { + func_80068508(1); + func_8007BF1C(FALSE); + func_80067F2C(&gHUDCurrDisplayList, &gHUDCurrMatrix); + func_800A1E48(0, updateRate); + func_80068508(0); + func_8007B3D0(&gHUDCurrDisplayList); + func_8007BF1C(TRUE); + } else { + if (D_80126D37 == 3) { + curRacerObj = NULL; + for(var_a1 = 0; var_a1 < sp140; var_a1++) { + if (sp150[var_a1]->unk64->racer.playerIndex == PLAYER_COMPUTER) { + curRacerObj = &sp150[var_a1]->unk64->racer; + } + } + if (curRacerObj != NULL) { + D_80126CDC = (unk80126CDC* ) D_80126CEC; + spE4 = D_80126CEC->unk64C; + spE0 = D_80126CEC->unk650; + func_8007BF1C(FALSE); + func_80067F2C(&gHUDCurrDisplayList, &gHUDCurrMatrix); + func_80068508(1); + D_80126CDC->unk64C = 225.0f; + if (osTvType == TV_TYPE_PAL) { + D_80126CDC->unk650 = 181.5f; + } else { + D_80126CDC->unk650 = 165.0f; + } + if (osTvType == TV_TYPE_PAL) { + var_a0_5 = (66.0f - D_80126CDC->unk36C) - 4.0f; + sp144 = -114.0f - D_80126CDC->unk370; + } else { + var_a0_5 = 66.0f - D_80126CDC->unk36C; + sp144 = -100.0f - D_80126CDC->unk370; + } + D_80126CDC->unk36C += var_a0_5; + D_80126CDC->unk370 += sp144; + D_80126CDC->unkEC += var_a0_5; + D_80126CDC->unkF0 += sp144; + D_80126CDC->unk38C += var_a0_5; + D_80126CDC->unk390 += sp144; + D_80126CDC->unk10C += var_a0_5; + D_80126CDC->unk110 -= sp144 + 1; + D_80126CDC->unk12C += var_a0_5; + D_80126CDC->unk130 -= sp144 + 1; + D_80126CDC->unk24C += var_a0_5; + D_80126CDC->unk250 -= sp144; + D_80126CDC->unk646 = curRacerObj->characterId + 56; + if (osTvType == TV_TYPE_PAL) { + D_80126CDC->unk64C = D_80126CDC->unk64C - 4.0f; + D_80126CDC->unk66C = D_80126CDC->unk66C - 4.0f; + } + D_80126CD5 = TRUE; + func_800AA600(&gHUDCurrDisplayList, &gHUDCurrMatrix, &gHUDCurrTriList, (unk80126CDC* ) &D_80126CDC->unk640); + D_80126CD5 = FALSE; + if (D_80126CDC->unkFB == 0 && curRacerObj->bananas == 10) { + D_80126CDC->unkFB = curRacerObj->bananas; + } + render_racer_bananas((Object_64 *)curRacerObj, updateRate); + D_80126CDC->unk36C -= var_a0_5; + D_80126CDC->unk370 -= sp144; + D_80126CDC->unkEC -= var_a0_5; + D_80126CDC->unkF0 -= sp144; + D_80126CDC->unk38C -= var_a0_5; + D_80126CDC->unk390 -= sp144; + D_80126CDC->unk10C -= var_a0_5; + D_80126CDC->unk110 += sp144 + 1; + D_80126CDC->unk12C -= var_a0_5; + D_80126CDC->unk130 += sp144 + 1; + D_80126CDC->unk24C -= var_a0_5; + D_80126CDC->unk250 += sp144; + D_80126CDC->unk64C = spE4; + D_80126CDC->unk650 = spE0; + func_8007BF1C(TRUE); + func_8007B3D0(&gHUDCurrDisplayList); + func_80068508(0); + } + } + } + } else if (D_80126D60->race_type == RACETYPE_CHALLENGE_BANANAS) { + if ((D_80126D37 == 2) && (D_800E27A4[gHUDNumPlayers] == 0)) { + temp_s0_2 = D_80126CDC->unk64C; + temp_s1_2 = D_80126CDC->unk650; + temp_s3 = D_80126CDC->unk40C; + spBC = D_80126CDC->unk410; + racerGroup = get_racer_objects(&racerCount); + for (i = 0; i < racerCount; i++) { + func_800A45F0(&racerGroup[i]->unk64->racer); + if (osTvType == TV_TYPE_PAL) { + D_80126CDC->unk650 += 66.0; + D_80126CDC->unk410 += 66.0; + } else { + D_80126CDC->unk650 += 55.0f; + D_80126CDC->unk410 += 55.0f; + } + } + D_80126CDC->unk64C = temp_s0_2; + D_80126CDC->unk650 = temp_s1_2; + D_80126CDC->unk40C = temp_s3; + D_80126CDC->unk410 = spBC; + } else if (D_80126D37 == 3) { + curRacerObj = NULL; + for(var_a1 = 0; var_a1 < sp140; var_a1++) { + if (sp150[var_a1]->unk64->racer.playerIndex == PLAYER_COMPUTER) { + curRacerObj = &sp150[var_a1]->unk64->racer; + } + } + if (curRacerObj != NULL) { + temp_s0_3 = D_80126CDC->unk64C; + temp_s1_3 = D_80126CDC->unk650; + temp_f16 = D_80126CDC->unk40C; + temp_f6 = D_80126CDC->unk410; + D_80126CDC->unk64C = 225.0f; + D_80126CDC->unk650 = 165.0f; + D_80126CDC->unk40C = 209.0f; + D_80126CDC->unk410 = 193.0f; + if (osTvType == TV_TYPE_PAL) { + D_80126CDC->unk64C = D_80126CDC->unk64C - 4.0f; + D_80126CDC->unk40C = D_80126CDC->unk40C - 4.0f; + D_80126CDC->unk650 = D_80126CDC->unk650 * 1.1; + D_80126CDC->unk410 = D_80126CDC->unk410 * 1.1; + D_80126CDC->unk650 = (s32) D_80126CDC->unk650; + D_80126CDC->unk410 = (s32) D_80126CDC->unk410; + } + func_800A45F0(curRacerObj); + D_80126CDC->unk64C = temp_s0_3; + D_80126CDC->unk650 = temp_s1_3; + D_80126CDC->unk40C = temp_f16; + D_80126CDC->unk410 = temp_f6; + } + } + } + if (D_80127180 != 0) { + (&D_80126D80)[D_80127180].texture = NULL; + render_textured_rectangle(&gHUDCurrDisplayList, &D_80126D80, 0, 0, 255, 255, 255, 255); + } + *dList = gHUDCurrDisplayList; + *mtx = gHUDCurrMatrix; + *triList = gHUDCurrTriList; + if (!(D_80126D60->unkBC & 1)) { + sp113 = TRUE; + for(var_a1 = 0; var_a1 < sp140; var_a1++) { + if (&sp150[var_a1]->unk64->racer != NULL && + sp150[var_a1]->unk64->racer.playerIndex != PLAYER_COMPUTER && + sp150[var_a1]->unk64->racer.raceFinished == FALSE) { + sp113 = FALSE; + } + } + if ((gHUDNumPlayers != 2 || func_8006EAB0() == 0) && (!check_if_showing_cutscene_camera() && !sp113)) { + if (D_800E27A4[gHUDNumPlayers] != 1) { + return sp113; + } else { + func_8007B3D0(&gHUDCurrDisplayList); + func_80067F2C(&gHUDCurrDisplayList, &gHUDCurrMatrix); + lvlMdl = get_current_level_model(); + if (lvlMdl != NULL) { + someObjSeg = func_80069D20(); + func_80068508(1); + sp154 = lvlMdl->unk20; + switch (gHUDNumPlayers) { + default: + D_80126D58 = 135; + D_80126D5C = -98; + break; + case 1: + D_80126D58 = 135; + D_80126D5C = -D_80126D20 / 2; + break; + case 2: + if (get_current_level_race_type() == RACETYPE_CHALLENGE_EGGS || + get_current_level_race_type() == RACETYPE_CHALLENGE_BATTLE || + get_current_level_race_type() == RACETYPE_CHALLENGE_BANANAS) { + D_80126D58 = (D_80126D1C / 2) - 8; + D_80126D5C = -D_80126D20 / 2; + } else { + D_80126D58 = ( D_80126D1C / 2) + 72; + D_80126D5C = -60 - (D_80126D20 / 2); + } + break; + case 3: + D_80126D58 = (D_80126D1C / 2) - 8; + D_80126D5C = -D_80126D20 / 2; + break; + } + if (osTvType == TV_TYPE_PAL) { + D_80126D5C *= 1.2; + } + func_8007BF1C(FALSE); + objTrans.trans.x_position = D_80126D58 + D_80126D24 + D_80126D28; + objTrans.trans.y_position = D_80126D5C; + if (osTvType == TV_TYPE_PAL) { + objTrans.trans.x_position -= 4.0f; + } + objTrans.trans.z_rotation = -someObjSeg->trans.z_rotation; + objTrans.trans.x_rotation = 0; + if (get_filtered_cheats() & CHEAT_MIRRORED_TRACKS) { + objTrans.trans.y_rotation = -0x8000; + objTrans.trans.x_position -= D_80126D1C; + } else { + objTrans.trans.y_rotation = 0; + } + objTrans.unk18 = 0; + objTrans.trans.scale = 1.0f; + opacity = mapOpacity; + objTrans.trans.z_position = 0.0f; + if (mapOpacity > 160) { + mapOpacity = 160; + } + if (D_80126D37 == 3) { + gDPSetPrimColor(gHUDCurrDisplayList++, 0, 0, 255, 255, 255, mapOpacity); + } else { + gDPSetPrimColor(gHUDCurrDisplayList++, 0, 0, gMinimapRed, gMinimapGreen, gMinimapBlue, mapOpacity); + } + func_80068BF4(&gHUDCurrDisplayList, &gHUDCurrMatrix, &gHUDCurrTriList, (ObjectSegment* ) &objTrans.trans, (unk80068BF4* ) sp154, 0); + sp11C = (lvlMdl->unk3E - lvlMdl->unk3C) / (f32) (lvlMdl->unk46 - lvlMdl->unk44); + sp118 = sine_s((lvlMdl->unk24 * 0xFFFF) / 360); + sp114 = cosine_s((lvlMdl->unk24 * 0xFFFF) / 360); + if (func_8000E4D8() && func_8001B288()) { + temp_v0_8 = func_8001B2E0(); + if (temp_v0_8 != NULL) { + func_800AA3EC(temp_v0_8->segment.trans.x_position, temp_v0_8->segment.trans.z_position, sp114, sp118, sp11C); + D_80126CDC->unk1E6 = 14; + D_80126CDC->unk1E4 = 0; + D_80126CDC->unk1E8 = 1.0f; + temp = (opacity * (f32) temp_v0_8->segment.unk38.half.upper) * 0.0078125; + gDPSetPrimColor(gHUDCurrDisplayList++, 0, 0, 60, 60, 60, temp); + func_800AA600(&gHUDCurrDisplayList, &gHUDCurrMatrix, &gHUDCurrTriList, (unk80126CDC* ) &D_80126CDC->unk1E0); + } + } + temp_v0_8 = func_8001B640(); + if (temp_v0_8 != NULL) { + func_800AA3EC(temp_v0_8->segment.trans.x_position, temp_v0_8->segment.trans.z_position, sp114, sp118, sp11C); + D_80126CDC->unk1E4 = 0; + temp = (opacity * (f32) temp_v0_8->segment.unk38.half.upper) * 0.0078125; + gDPSetPrimColor(gHUDCurrDisplayList++, 0, 0, D_800E27BC[8].red, D_800E27BC[8].green, D_800E27BC[8].blue, temp); + D_80126CDC->unk1E8 = 1.0f; + D_80126CDC->unk1E6 = 14; + func_800AA600(&gHUDCurrDisplayList, &gHUDCurrMatrix, &gHUDCurrTriList, (unk80126CDC* ) &D_80126CDC->unk1E0); + } + if (D_80126D60->race_type == RACETYPE_HUBWORLD) { + temp_v0_8 = func_80018C6C(); + if (temp_v0_8 != NULL) { + D_80126CDC->unk1E6 = 14; + func_800AA3EC(temp_v0_8->segment.trans.x_position, temp_v0_8->segment.trans.z_position, sp114, sp118, sp11C); + D_80126CDC->unk1E4 = 0; + gDPSetPrimColor(gHUDCurrDisplayList++, 0, 0, 255, 0, 255, opacity); + D_80126CDC->unk1E8 = 1.0f; + func_800AA600(&gHUDCurrDisplayList, &gHUDCurrMatrix, &gHUDCurrTriList, (unk80126CDC* ) &D_80126CDC->unk1E0); + } + } + for(i = sp140 - 1; i >= 0; i--) { + someRacerObj = sp150[i]; + someRacer = &someRacerObj->unk64->racer; + if (someRacer != NULL) { + func_800AA3EC(someRacerObj->segment.trans.x_position, someRacerObj->segment.trans.z_position, sp114, sp118, sp11C); + if (someRacer->playerIndex != PLAYER_COMPUTER) { + D_80126CDC->unk1F0 -= 1.0f; + D_80126CDC->unk1E6 = 27; + D_80126CDC->unk1E4 = someRacerObj->segment.trans.y_rotation - ((lvlMdl->unk24 * 0xFFFF) / 360); + if (get_filtered_cheats() & CHEAT_MIRRORED_TRACKS) { + D_80126CDC->unk1E4 = 0xFFFF - D_80126CDC->unk1E4; + } + func_8007BF1C(TRUE); + } else { + D_80126CDC->unk1E4 = 0; + D_80126CDC->unk1E6 = 14; + } + if (func_8002341C() && someRacer->unk1D6 == 10) { + gDPSetPrimColor(gHUDCurrDisplayList++, 0, 0, 255, 0, 255, opacity); + } else { + charColour = &D_800E27BC[someRacer->characterId]; + gDPSetPrimColor(gHUDCurrDisplayList++, 0, 0, charColour->red, charColour->green, charColour->blue, opacity); + } + if (!(get_current_level_race_type() & RACETYPE_CHALLENGE) || (!someRacer->raceFinished)) { + if (osTvType == TV_TYPE_PAL) { + D_80126CDC->unk1EC -= 4.0f; + } + if (get_current_level_race_type() == RACETYPE_CHALLENGE_BATTLE) { + switch (someRacer->unk212) { + case 0: + D_80126CDC->unk1E8 = 0.8f; + break; + case 1: + D_80126CDC->unk1E8 = 1.0f; + break; + case 2: + case 3: + D_80126CDC->unk1E8 = 1.2f; + break; + } + } else { + D_80126CDC->unk1E8 = 1.0f; + } + func_800AA600(&gHUDCurrDisplayList, &gHUDCurrMatrix, &gHUDCurrTriList, (unk80126CDC* ) &D_80126CDC->unk1E0); + } + func_8007BF1C(FALSE); + } + } + gDPPipeSync(gHUDCurrDisplayList++); + func_80068508(0); + func_8007BF1C(TRUE); + *dList = gHUDCurrDisplayList; + *mtx = gHUDCurrMatrix; + *triList = gHUDCurrTriList; + } + } + } + } +} +#else GLOBAL_ASM("asm/non_matchings/game_ui/func_800A8474.s") +#endif GLOBAL_ASM("asm/non_matchings/game_ui/func_800AA3EC.s") GLOBAL_ASM("asm/non_matchings/game_ui/func_800AA600.s") GLOBAL_ASM("asm/non_matchings/game_ui/func_800AAFD0.s") diff --git a/src/game_ui.h b/src/game_ui.h index 775f428e..ebff0e51 100644 --- a/src/game_ui.h +++ b/src/game_ui.h @@ -47,9 +47,37 @@ typedef struct unk80126CDC { s8 unk5D; s8 unk5E; s8 unk5F; - struct unk80126CDC *unk60; // Not sure if this is correct. + struct unk80126CDC *unk60; s8 unk64[4]; - u8 unk68[0xD8]; + u8 unk68[0x30]; + s16 unk98; + s16 unk9A; + u8 unk9C[0x3C]; + s16 unkD8; + s8 unkDA[0x6]; + struct unk80126CDC *unkE0; + u8 unkE4[0x8]; + f32 unkEC; + f32 unkF0; + u8 unkF4[0x4]; + s16 unkF8; + s8 unkFA; + s8 unkFB; + u8 unkFC[0x4]; + struct unk80126CDC *unk100; + u8 unk104[0x8]; + f32 unk10C; + f32 unk110; + u8 unk114[0x4]; + s16 unk118; + u8 unk11A[0x6]; + struct unk80126CDC *unk120; + u8 unk124[0x8]; + f32 unk12C; + f32 unk130; + u8 unk134[0x4]; + s16 unk138; + u8 unk13A[0x6]; u8 unk140; u8 unk141; u8 unk142[0x18]; @@ -62,12 +90,25 @@ typedef struct unk80126CDC { f32 unk18C; u8 pad190[0xA]; s8 unk19A[1]; - u8 pad19C[0x65]; - struct unk80126CDC *unk200; // Not sure if this is correct. + u8 pad19C[0x44]; + struct unk80126CDC *unk1E0; + s16 unk1E4; + s16 unk1E6; + f32 unk1E8; + f32 unk1EC; + f32 unk1F0; + u8 pad1F4[0xC]; + struct unk80126CDC *unk200; u8 unk204[0x14]; s16 unk218; - s16 unk21A; - u8 unk21C[0xD0]; + s8 unk21A; + s8 unk21B; + u8 unk21C[0x24]; + struct unk80126CDC *unk240; + u8 unk244[0x8]; + f32 unk24C; + f32 unk250; + u8 unk254[0x98]; f32 unk2EC; f32 unk2F0; u8 unk2F4[0x1C]; @@ -82,7 +123,48 @@ typedef struct unk80126CDC { s16 unk342; u8 unk344[0xC]; f32 unk350; - u8 unk354[0xCC]; + s32 unk354; + s32 unk358; + s32 unk35C; + s32 unk360; + u8 pad364[0x8]; + f32 unk36C; + f32 unk370; + u8 pad374[0xC]; + struct unk80126CDC *unk380; + f32 unk384; + f32 unk388; + f32 unk38C; + f32 unk390; + u8 pad394[0x4]; + s16 unk398; + s8 unk39A; + s8 unk39B; + u8 unk39C[0x10]; + f32 unk3AC; + u8 unk3B0[0xC]; + s8 unk3BC; + s8 unk3BD[0xF]; + f32 unk3CC; + u8 unk3D0[0xA]; + s8 unk3DA; + s8 unk3DB; + s8 unk3DC; + s8 unk3DD; + s8 unk3DE; + s8 unk3DF; + u8 unk3E0[0xC]; + f32 unk3EC; + u8 unk3F0[0xC]; + s8 unk3FC; + u8 unk3FD; + u8 unk3FE; + u8 unk3FF; + struct unk80126CDC *unk400; + u8 unk404[0x8]; + f32 unk40C; + f32 unk410; + u8 unk414[0xC]; struct IndicatorArrow *courseIndicator; u8 unk424[0x1C]; s16 unk440; @@ -110,16 +192,28 @@ typedef struct unk80126CDC { s8 unk49C; s8 unk49D; s8 unk49E[0x25]; - u16 unk4C4; + s16 unk4C4; u8 unk4C6[0x15A]; struct unk80126CDC *unk620; u8 unk624[0x14]; s16 unk638; s8 unk63A; s8 unk63B; - u8 unk63C[0x3E]; + u8 unk63C[0x4]; + struct unk80126CDC *unk640; + s16 unk644; + s16 unk646; + u8 unk648[0x4]; + f32 unk64C; + f32 unk650; + u8 unk654[0x18]; + f32 unk66C; + f32 unk670; + u8 unk674[0x6]; s8 unk67A; - s8 unk67B[0xA4]; + s8 unk67B[0x85]; + struct unk80126CDC *unk700; + s8 unk704[0x1C]; } unk80126CDC; typedef struct { @@ -153,6 +247,21 @@ typedef struct unk800E2770 { s8 unkF; } unk800E2770; +typedef struct unk800A497C { + u8 pad0[0xC]; + f32 unkC; + u8 pad10[0xA]; + s8 unk1A; + s8 unk1B; + s8 unk1C; + s8 unk1D; +} unk800A497C; + +typedef struct ObjectTransform_800A8474 { + ObjectTransform trans; + s16 unk18; +} ObjectTransform_800A8474; + extern unk80126CDC *D_80126CDC; extern Gfx *gHUDCurrDisplayList; extern Matrix *gHUDCurrMatrix; @@ -184,27 +293,32 @@ void render_hud_hubworld(Object *obj, s32 updateRate); void render_hud(Gfx **dList, Matrix **mtx, TriangleList **tris, Object *arg3, s32 updateRate); void render_weapon_hud(Object *obj, s32 updateRate); void render_race_start(s32 arg0, s32 updateRate); +void render_racer_bananas(Object_64 *obj, s32 updateRate); +void render_race_finish_position(Object_64 *obj, s32 updateRate); +void render_speedometer(Object *obj, s32 updateRate); +void render_lap_count(Object_64 *obj, s32 updateRate); // Non Matching void func_800A14F0(Object *, s32); -void func_800A4F50(Object_64 *arg0, s32 arg1); -void func_800A4154(Object_64 *arg0, s32 arg1); -void func_800A4C44(Object_64 *arg0, s32 arg1); -void func_800A3884(Object *arg0, s32 arg1); -void func_800A47A0(Object_64 *arg0, s32 arg1); -void func_800A718C(Object_64 *); -void func_800AA600(Gfx **arg0, u32 *arg1, u32 *arg2, unk80126CDC *arg3); +void func_800A4C44(Object_64 *obj, s32 updateRate); +void func_800A47A0(Object_64 *obj, s32 updateRate); +void func_800A718C(Object_64 *obj); +void func_800AA600(Gfx **dList, Matrix **mtx, TriangleList **triList, unk80126CDC *arg3); void func_8009ECF0(s32 viewPortCount); void func_800A003C(void); -void func_800A8474(Gfx **gfx, Mtx **mtx, VertexList **vtx, s32 updateRate); +s32 func_800A8474(Gfx **dList, Matrix **mtx, TriangleList **triList, s32 updateRate); void func_800A7FBC(s32, s32, s32 minutes, s32 seconds, s32 hundredths, s32); void func_800A1248(s32, Object*, s32); void func_800A1C04(s32, Object*, s32); void func_800A277C(s32, Object*, s32); -void func_800A497C(Object_64*, s32); -void func_800A6254(Object_64*, s32); -void func_800A6E30(Object_64*, s32); +void func_800A6254(Object_64* obj, s32 updateRate); +void func_800A6E30(Object_64* obj, s32 updateRate); void func_800A7A60(Object*, Gfx**); void func_800095E8(s32, f32, f32, f32, s32, s32, f32, s32*); +void func_800A0BD4(s32); +void func_800A19A4(Object_Racer*, s32 updateRate); +void func_800A1E48(s32, s32); +void func_800A45F0(Object_Racer*); +void func_800AA3EC(f32, f32, f32, f32, f32); #endif diff --git a/src/menu.c b/src/menu.c index 17e26f79..43bbd766 100644 --- a/src/menu.c +++ b/src/menu.c @@ -1965,7 +1965,7 @@ void show_timestamp(s32 frameCount, s32 xPos, s32 yPos, u8 red, u8 green, u8 blu } get_timestamp_from_frames(frameCount, &minutes, &seconds, &hundredths); func_80068508(1); - func_8007BF1C(0); + func_8007BF1C(FALSE); gMenuImageStack[imageIndex].unk18 = minutes / 10; gMenuImageStack[imageIndex].unkC = xPos; @@ -2005,7 +2005,7 @@ void show_timestamp(s32 frameCount, s32 xPos, s32 yPos, u8 red, u8 green, u8 blu func_8009CA60(imageIndex); func_80068508(0); - func_8007BF1C(1); + func_8007BF1C(TRUE); sMenuGuiColourR = (u8)255; sMenuGuiColourG = (u8)255; sMenuGuiColourB = (u8)255; @@ -2198,7 +2198,7 @@ void draw_menu_elements(s32 arg0, MenuElement *elem, f32 arg2) { func_8007B3D0(&sMenuCurrDisplayList); } func_80068508(1); - func_8007BF1C(0); + func_8007BF1C(FALSE); gMenuImageStack[elem->unk14_a.value].unkC = xPos - 0xA0; gMenuImageStack[elem->unk14_a.value].unk10 = (-yPos - D_800DF7A0) + 0x78; gMenuImageStack[elem->unk14_a.value].unk18 = elem->textFont; @@ -2213,7 +2213,7 @@ void draw_menu_elements(s32 arg0, MenuElement *elem, f32 arg2) { sMenuGuiOpacity = elem->opacity; func_8009CA60(elem->unk14_a.value); func_80068508(0); - func_8007BF1C(1); + func_8007BF1C(TRUE); break; case 6: func_80080E90( @@ -4979,7 +4979,7 @@ void render_file_select_menu(UNUSED s32 updateRate) { for (i = 0; i < 3; i++) { if (gSavefileInfo[i].isStarted != 0) { s2 = 0xB; - func_8007BF1C(0); + func_8007BF1C(FALSE); if (gSavefileInfo[i].isAdventure2 != 0) { s2 = 0xC; } @@ -4995,7 +4995,7 @@ void render_file_select_menu(UNUSED s32 updateRate) { render_menu_image(s5, gFileSelectElementPos[8] + gFileSelectButtons[i].x, gFileSelectElementPos[9] + gFileSelectButtons[i].y, 0, 0, 0, 128); sMenuGuiColourG = 255; sMenuGuiColourB = 255; - func_8007BF1C(1); + func_8007BF1C(TRUE); } else { set_text_colour(255, 255, 255, 64, 255); draw_text(&sMenuCurrDisplayList, gFileSelectElementPos[4] + gFileSelectButtons[i].x, gFileSelectElementPos[5] + gFileSelectButtons[i].y + y, gMenuText[ASSET_MENU_TEXT_NEW], ALIGN_MIDDLE_CENTER); @@ -5908,7 +5908,7 @@ void render_track_select_setup_ui(s32 updateRate) { set_text_colour(0xFF, 0xFF, 0xFF, 0, 0xFF); draw_text(&sMenuCurrDisplayList, gTwoPlayerRacerCountMenu.textPos[2] + gTwoPlayerRacerCountMenu.x - 1, gTwoPlayerRacerCountMenu.textPos[3] + gTwoPlayerRacerCountMenu.y - 1, gMenuText[ASSET_MENU_TEXT_NUMBEROFRACERS], ALIGN_MIDDLE_CENTER); func_80068508(1); - func_8007BF1C(0); + func_8007BF1C(FALSE); for (i = 0; i < 3; i++) { s32 index = i * 2; if (i == gMultiplayerSelectedNumberOfRacers) { @@ -5930,13 +5930,13 @@ void render_track_select_setup_ui(s32 updateRate) { sMenuGuiColourG = 0xFF; sMenuGuiColourB = 0xFF; } - func_8007BF1C(1); + func_8007BF1C(TRUE); func_80068508(0); } } } if (D_801269C8 < 4) { - func_8007BF1C(0); + func_8007BF1C(FALSE); i = 11; if (gIsInAdventureTwo) { i = 12; @@ -5950,7 +5950,7 @@ void render_track_select_setup_ui(s32 updateRate) { gMenuImageStack[i].unkC = 120.0f; func_8009CA60(i); } - func_8007BF1C(1); + func_8007BF1C(TRUE); } if ((gNumberOfActivePlayers == 1) && (D_801263E0 >= 0) && (func_80092BE0(gTrackIdForPreview) >= 0)) { // Render small T.T. icon.