From df3c435ac8071603321346f00dd661003d597876 Mon Sep 17 00:00:00 2001 From: Tyler McGavran Date: Mon, 21 Aug 2023 00:23:57 -0400 Subject: [PATCH] Versus mode Bomb Kart stuff (#375) Signed-off-by: Taggerung --- asm/bss_MainSeg.s | 12 +- .../code_80005FD0/func_8000DD78.s | 138 ------- .../hud_renderer/func_800507D8.s | 67 --- .../hud_renderer/func_80050C68.s | 126 ------ .../hud_renderer/func_80056AC0.s | 79 ---- .../hud_renderer/func_80056E24.s | 108 ----- .../hud_renderer/func_80056FCC.s | 83 ---- .../hud_renderer/func_80057114.s | 144 ------- ctx_includes.c | 3 +- data/data_0DD0A0_1.s | 41 ++ include/bomb_kart.h | 63 +++ include/objects.h | 2 - src/code_80005FD0.c | 305 +++++++------- src/code_80005FD0.h | 45 +- src/code_80057C60.c | 35 +- src/code_8006E9C0.c | 3 +- src/code_80071F00.c | 25 +- src/hud_renderer.c | 384 +++++------------- src/hud_renderer.h | 13 +- 19 files changed, 424 insertions(+), 1252 deletions(-) delete mode 100644 asm/non_matchings/code_80005FD0/func_8000DD78.s delete mode 100644 asm/non_matchings/hud_renderer/func_800507D8.s delete mode 100644 asm/non_matchings/hud_renderer/func_80050C68.s delete mode 100644 asm/non_matchings/hud_renderer/func_80056AC0.s delete mode 100644 asm/non_matchings/hud_renderer/func_80056E24.s delete mode 100644 asm/non_matchings/hud_renderer/func_80056FCC.s delete mode 100644 asm/non_matchings/hud_renderer/func_80057114.s create mode 100644 include/bomb_kart.h diff --git a/asm/bss_MainSeg.s b/asm/bss_MainSeg.s index 0126c8f8b..44d9fc48c 100644 --- a/asm/bss_MainSeg.s +++ b/asm/bss_MainSeg.s @@ -71,23 +71,27 @@ glabel D_80163DD8 glabel D_80163DE4 .skip 4 +# D_80163DE8 should actually be of size 588 (0x54 * 7) +# D_80163E2C is a fake variable glabel D_80163DE8 -.skip 66 - -glabel D_80163E2A -.skip 2 +.skip 68 glabel D_80163E2C .skip 520 +# end D_80163DE8 glabel D_80164034 .skip 4 +# Seemingly an array of UnkActorInner, related to the VS mode Bomb Karts +# D_80164038 should be of size 448 (0x40 * 7) +# D_801640F4 is a fake variable glabel D_80164038 .skip 188 glabel D_801640F4 .skip 260 +# end D_80164038 glabel gUnexpiredActorsList .skip 224 diff --git a/asm/non_matchings/code_80005FD0/func_8000DD78.s b/asm/non_matchings/code_80005FD0/func_8000DD78.s deleted file mode 100644 index 18b2043e5..000000000 --- a/asm/non_matchings/code_80005FD0/func_8000DD78.s +++ /dev/null @@ -1,138 +0,0 @@ -glabel func_8000DD78 -/* 00E978 8000DD78 27BDFF98 */ addiu $sp, $sp, -0x68 -/* 00E97C 8000DD7C F7BA0038 */ sdc1 $f26, 0x38($sp) -/* 00E980 8000DD80 3C0144FA */ li $at, 0x44FA0000 # 2000.000000 -/* 00E984 8000DD84 4481D000 */ mtc1 $at, $f26 -/* 00E988 8000DD88 AFB60058 */ sw $s6, 0x58($sp) -/* 00E98C 8000DD8C AFB50054 */ sw $s5, 0x54($sp) -/* 00E990 8000DD90 AFB40050 */ sw $s4, 0x50($sp) -/* 00E994 8000DD94 AFB20048 */ sw $s2, 0x48($sp) -/* 00E998 8000DD98 AFB00040 */ sw $s0, 0x40($sp) -/* 00E99C 8000DD9C F7B80030 */ sdc1 $f24, 0x30($sp) -/* 00E9A0 8000DDA0 3C014000 */ li $at, 0x40000000 # 2.000000 -/* 00E9A4 8000DDA4 AFBE0060 */ sw $fp, 0x60($sp) -/* 00E9A8 8000DDA8 AFB7005C */ sw $s7, 0x5c($sp) -/* 00E9AC 8000DDAC AFB3004C */ sw $s3, 0x4c($sp) -/* 00E9B0 8000DDB0 3C108016 */ lui $s0, %hi(D_80163DE8) # $s0, 0x8016 -/* 00E9B4 8000DDB4 3C128016 */ lui $s2, %hi(D_80164038) # $s2, 0x8016 -/* 00E9B8 8000DDB8 3C148016 */ lui $s4, %hi(D_80164550) # $s4, 0x8016 -/* 00E9BC 8000DDBC 3C15800E */ lui $s5, %hi(D_800DCC08) -/* 00E9C0 8000DDC0 3C16800E */ lui $s6, %hi(gCurrentCourseId) -/* 00E9C4 8000DDC4 4481C000 */ mtc1 $at, $f24 -/* 00E9C8 8000DDC8 AFBF0064 */ sw $ra, 0x64($sp) -/* 00E9CC 8000DDCC AFB10044 */ sw $s1, 0x44($sp) -/* 00E9D0 8000DDD0 F7B60028 */ sdc1 $f22, 0x28($sp) -/* 00E9D4 8000DDD4 F7B40020 */ sdc1 $f20, 0x20($sp) -/* 00E9D8 8000DDD8 26D6C5A0 */ addiu $s6, %lo(gCurrentCourseId) # addiu $s6, $s6, -0x3a60 -/* 00E9DC 8000DDDC 26B5CC08 */ addiu $s5, %lo(D_800DCC08) # addiu $s5, $s5, -0x33f8 -/* 00E9E0 8000DDE0 26944550 */ addiu $s4, %lo(D_80164550) # addiu $s4, $s4, 0x4550 -/* 00E9E4 8000DDE4 26524038 */ addiu $s2, %lo(D_80164038) # addiu $s2, $s2, 0x4038 -/* 00E9E8 8000DDE8 26103DE8 */ addiu $s0, %lo(D_80163DE8) # addiu $s0, $s0, 0x3de8 -/* 00E9EC 8000DDEC 00009825 */ move $s3, $zero -/* 00E9F0 8000DDF0 24170004 */ li $s7, 4 -/* 00E9F4 8000DDF4 241E0014 */ li $fp, 20 -.L8000DDF8: -/* 00E9F8 8000DDF8 86C20000 */ lh $v0, ($s6) -/* 00E9FC 8000DDFC 00027080 */ sll $t6, $v0, 2 -/* 00EA00 8000DE00 01C27021 */ addu $t6, $t6, $v0 -/* 00EA04 8000DE04 000E7080 */ sll $t6, $t6, 2 -/* 00EA08 8000DE08 01C27021 */ addu $t6, $t6, $v0 -/* 00EA0C 8000DE0C 000E70C0 */ sll $t6, $t6, 3 -/* 00EA10 8000DE10 02AE7821 */ addu $t7, $s5, $t6 -/* 00EA14 8000DE14 12E20011 */ beq $s7, $v0, .L8000DE5C -/* 00EA18 8000DE18 01F38821 */ addu $s1, $t7, $s3 -/* 00EA1C 8000DE1C 505E0018 */ beql $v0, $fp, .L8000DE80 -/* 00EA20 8000DE20 962D0000 */ lhu $t5, ($s1) -/* 00EA24 8000DE24 96390000 */ lhu $t9, ($s1) -/* 00EA28 8000DE28 8E980000 */ lw $t8, ($s4) -/* 00EA2C 8000DE2C 001940C0 */ sll $t0, $t9, 3 -/* 00EA30 8000DE30 03081021 */ addu $v0, $t8, $t0 -/* 00EA34 8000DE34 84490000 */ lh $t1, ($v0) -/* 00EA38 8000DE38 844A0002 */ lh $t2, 2($v0) -/* 00EA3C 8000DE3C 844B0004 */ lh $t3, 4($v0) -/* 00EA40 8000DE40 44892000 */ mtc1 $t1, $f4 -/* 00EA44 8000DE44 448A3000 */ mtc1 $t2, $f6 -/* 00EA48 8000DE48 448B4000 */ mtc1 $t3, $f8 -/* 00EA4C 8000DE4C 46802520 */ cvt.s.w $f20, $f4 -/* 00EA50 8000DE50 468030A0 */ cvt.s.w $f2, $f6 -/* 00EA54 8000DE54 10000016 */ b .L8000DEB0 -/* 00EA58 8000DE58 468045A0 */ cvt.s.w $f22, $f8 -.L8000DE5C: -/* 00EA5C 8000DE5C C636000C */ lwc1 $f22, 0xc($s1) -/* 00EA60 8000DE60 C6340008 */ lwc1 $f20, 8($s1) -/* 00EA64 8000DE64 4600D386 */ mov.s $f14, $f26 -/* 00EA68 8000DE68 4406B000 */ mfc1 $a2, $f22 -/* 00EA6C 8000DE6C 0C0AB870 */ jal func_802AE1C0 -/* 00EA70 8000DE70 4600A306 */ mov.s $f12, $f20 -/* 00EA74 8000DE74 1000000E */ b .L8000DEB0 -/* 00EA78 8000DE78 46000086 */ mov.s $f2, $f0 -/* 00EA7C 8000DE7C 962D0000 */ lhu $t5, ($s1) -.L8000DE80: -/* 00EA80 8000DE80 8E8C000C */ lw $t4, 0xc($s4) -/* 00EA84 8000DE84 000D70C0 */ sll $t6, $t5, 3 -/* 00EA88 8000DE88 018E1021 */ addu $v0, $t4, $t6 -/* 00EA8C 8000DE8C 844F0000 */ lh $t7, ($v0) -/* 00EA90 8000DE90 84590002 */ lh $t9, 2($v0) -/* 00EA94 8000DE94 84580004 */ lh $t8, 4($v0) -/* 00EA98 8000DE98 448F5000 */ mtc1 $t7, $f10 -/* 00EA9C 8000DE9C 44998000 */ mtc1 $t9, $f16 -/* 00EAA0 8000DEA0 44989000 */ mtc1 $t8, $f18 -/* 00EAA4 8000DEA4 46805520 */ cvt.s.w $f20, $f10 -/* 00EAA8 8000DEA8 468080A0 */ cvt.s.w $f2, $f16 -/* 00EAAC 8000DEAC 468095A0 */ cvt.s.w $f22, $f18 -.L8000DEB0: -/* 00EAB0 8000DEB0 E6140000 */ swc1 $f20, ($s0) -/* 00EAB4 8000DEB4 E6020004 */ swc1 $f2, 4($s0) -/* 00EAB8 8000DEB8 E6160008 */ swc1 $f22, 8($s0) -/* 00EABC 8000DEBC E614000C */ swc1 $f20, 0xc($s0) -/* 00EAC0 8000DEC0 E6020010 */ swc1 $f2, 0x10($s0) -/* 00EAC4 8000DEC4 E6160014 */ swc1 $f22, 0x14($s0) -/* 00EAC8 8000DEC8 E6140018 */ swc1 $f20, 0x18($s0) -/* 00EACC 8000DECC E602001C */ swc1 $f2, 0x1c($s0) -/* 00EAD0 8000DED0 E6160020 */ swc1 $f22, 0x20($s0) -/* 00EAD4 8000DED4 E6140024 */ swc1 $f20, 0x24($s0) -/* 00EAD8 8000DED8 E6020028 */ swc1 $f2, 0x28($s0) -/* 00EADC 8000DEDC E616002C */ swc1 $f22, 0x2c($s0) -/* 00EAE0 8000DEE0 E6140030 */ swc1 $f20, 0x30($s0) -/* 00EAE4 8000DEE4 E6020034 */ swc1 $f2, 0x34($s0) -/* 00EAE8 8000DEE8 E6160038 */ swc1 $f22, 0x38($s0) -/* 00EAEC 8000DEEC 96280000 */ lhu $t0, ($s1) -/* 00EAF0 8000DEF0 240A0001 */ li $t2, 1 -/* 00EAF4 8000DEF4 4405C000 */ mfc1 $a1, $f24 -/* 00EAF8 8000DEF8 A6080042 */ sh $t0, 0x42($s0) -/* 00EAFC 8000DEFC C6240004 */ lwc1 $f4, 4($s1) -/* 00EB00 8000DF00 A6000046 */ sh $zero, 0x46($s0) -/* 00EB04 8000DF04 A6000048 */ sh $zero, 0x48($s0) -/* 00EB08 8000DF08 E604003C */ swc1 $f4, 0x3c($s0) -/* 00EB0C 8000DF0C 96290002 */ lhu $t1, 2($s1) -/* 00EB10 8000DF10 4406A000 */ mfc1 $a2, $f20 -/* 00EB14 8000DF14 44071000 */ mfc1 $a3, $f2 -/* 00EB18 8000DF18 A600004A */ sh $zero, 0x4a($s0) -/* 00EB1C 8000DF1C A60A004C */ sh $t2, 0x4c($s0) -/* 00EB20 8000DF20 E6020050 */ swc1 $f2, 0x50($s0) -/* 00EB24 8000DF24 E7B60010 */ swc1 $f22, 0x10($sp) -/* 00EB28 8000DF28 02402025 */ move $a0, $s2 -/* 00EB2C 8000DF2C 0C0AB772 */ jal func_802ADDC8 -/* 00EB30 8000DF30 A6090044 */ sh $t1, 0x44($s0) -/* 00EB34 8000DF34 3C0B8016 */ lui $t3, %hi(gUnexpiredActorsList) # $t3, 0x8016 -/* 00EB38 8000DF38 256B41F8 */ addiu $t3, %lo(gUnexpiredActorsList) # addiu $t3, $t3, 0x41f8 -/* 00EB3C 8000DF3C 26520040 */ addiu $s2, $s2, 0x40 -/* 00EB40 8000DF40 26730018 */ addiu $s3, $s3, 0x18 -/* 00EB44 8000DF44 164BFFAC */ bne $s2, $t3, .L8000DDF8 -/* 00EB48 8000DF48 26100054 */ addiu $s0, $s0, 0x54 -/* 00EB4C 8000DF4C 8FBF0064 */ lw $ra, 0x64($sp) -/* 00EB50 8000DF50 D7B40020 */ ldc1 $f20, 0x20($sp) -/* 00EB54 8000DF54 D7B60028 */ ldc1 $f22, 0x28($sp) -/* 00EB58 8000DF58 D7B80030 */ ldc1 $f24, 0x30($sp) -/* 00EB5C 8000DF5C D7BA0038 */ ldc1 $f26, 0x38($sp) -/* 00EB60 8000DF60 8FB00040 */ lw $s0, 0x40($sp) -/* 00EB64 8000DF64 8FB10044 */ lw $s1, 0x44($sp) -/* 00EB68 8000DF68 8FB20048 */ lw $s2, 0x48($sp) -/* 00EB6C 8000DF6C 8FB3004C */ lw $s3, 0x4c($sp) -/* 00EB70 8000DF70 8FB40050 */ lw $s4, 0x50($sp) -/* 00EB74 8000DF74 8FB50054 */ lw $s5, 0x54($sp) -/* 00EB78 8000DF78 8FB60058 */ lw $s6, 0x58($sp) -/* 00EB7C 8000DF7C 8FB7005C */ lw $s7, 0x5c($sp) -/* 00EB80 8000DF80 8FBE0060 */ lw $fp, 0x60($sp) -/* 00EB84 8000DF84 03E00008 */ jr $ra -/* 00EB88 8000DF88 27BD0068 */ addiu $sp, $sp, 0x68 diff --git a/asm/non_matchings/hud_renderer/func_800507D8.s b/asm/non_matchings/hud_renderer/func_800507D8.s deleted file mode 100644 index 2ab019c75..000000000 --- a/asm/non_matchings/hud_renderer/func_800507D8.s +++ /dev/null @@ -1,67 +0,0 @@ -glabel func_800507D8 -/* 0513D8 800507D8 308EFFFF */ andi $t6, $a0, 0xffff -/* 0513DC 800507DC 000E7880 */ sll $t7, $t6, 2 -/* 0513E0 800507E0 01EE7821 */ addu $t7, $t7, $t6 -/* 0513E4 800507E4 000F7880 */ sll $t7, $t7, 2 -/* 0513E8 800507E8 01EE7821 */ addu $t7, $t7, $t6 -/* 0513EC 800507EC 000F7880 */ sll $t7, $t7, 2 -/* 0513F0 800507F0 3C028016 */ lui $v0, %hi(D_80163E2A) # 0x8016 -/* 0513F4 800507F4 004F1021 */ addu $v0, $v0, $t7 -/* 0513F8 800507F8 94423E2A */ lhu $v0, %lo(D_80163E2A)($v0) # 0x3e2a($v0) -/* 0513FC 800507FC AFA40000 */ sw $a0, ($sp) -/* 051400 80050800 01C02025 */ move $a0, $t6 -/* 051404 80050804 10400013 */ beqz $v0, .L80050854 -/* 051408 80050808 00001825 */ move $v1, $zero -/* 05140C 8005080C 0002C0C0 */ sll $t8, $v0, 3 -/* 051410 80050810 0302C023 */ subu $t8, $t8, $v0 -/* 051414 80050814 0018C080 */ sll $t8, $t8, 2 -/* 051418 80050818 0302C021 */ addu $t8, $t8, $v0 -/* 05141C 8005081C 3C198016 */ lui $t9, %hi(D_80164430) # $t9, 0x8016 -/* 051420 80050820 97394430 */ lhu $t9, %lo(D_80164430)($t9) -/* 051424 80050824 0018C140 */ sll $t8, $t8, 5 -/* 051428 80050828 0319001A */ div $zero, $t8, $t9 -/* 05142C 8005082C 00001812 */ mflo $v1 -/* 051430 80050830 17200002 */ bnez $t9, .L8005083C -/* 051434 80050834 00000000 */ nop -/* 051438 80050838 0007000D */ break 7 -.L8005083C: -/* 05143C 8005083C 2401FFFF */ li $at, -1 -/* 051440 80050840 17210004 */ bne $t9, $at, .L80050854 -/* 051444 80050844 3C018000 */ lui $at, 0x8000 -/* 051448 80050848 17010002 */ bne $t8, $at, .L80050854 -/* 05144C 8005084C 00000000 */ nop -/* 051450 80050850 0006000D */ break 6 -.L80050854: -/* 051454 80050854 28610104 */ slti $at, $v1, 0x104 -/* 051458 80050858 50200005 */ beql $at, $zero, .L80050870 -/* 05145C 8005085C 286101D0 */ slti $at, $v1, 0x1d0 -/* 051460 80050860 ACA30000 */ sw $v1, ($a1) -/* 051464 80050864 03E00008 */ jr $ra -/* 051468 80050868 ACC00000 */ sw $zero, ($a2) - -/* 05146C 8005086C 286101D0 */ slti $at, $v1, 0x1d0 -.L80050870: -/* 051470 80050870 10200005 */ beqz $at, .L80050888 -/* 051474 80050874 24080104 */ li $t0, 260 -/* 051478 80050878 ACA80000 */ sw $t0, ($a1) -/* 05147C 8005087C 2469FEFC */ addiu $t1, $v1, -0x104 -/* 051480 80050880 03E00008 */ jr $ra -/* 051484 80050884 ACC90000 */ sw $t1, ($a2) - -.L80050888: -/* 051488 80050888 286102D4 */ slti $at, $v1, 0x2d4 -/* 05148C 8005088C 10200007 */ beqz $at, .L800508AC -/* 051490 80050890 240D03A0 */ li $t5, 928 -/* 051494 80050894 240A02D4 */ li $t2, 724 -/* 051498 80050898 01435823 */ subu $t3, $t2, $v1 -/* 05149C 8005089C ACAB0000 */ sw $t3, ($a1) -/* 0514A0 800508A0 240C00CC */ li $t4, 204 -/* 0514A4 800508A4 03E00008 */ jr $ra -/* 0514A8 800508A8 ACCC0000 */ sw $t4, ($a2) - -.L800508AC: -/* 0514AC 800508AC ACA00000 */ sw $zero, ($a1) -/* 0514B0 800508B0 01A37023 */ subu $t6, $t5, $v1 -/* 0514B4 800508B4 ACCE0000 */ sw $t6, ($a2) -/* 0514B8 800508B8 03E00008 */ jr $ra -/* 0514BC 800508BC 00000000 */ nop diff --git a/asm/non_matchings/hud_renderer/func_80050C68.s b/asm/non_matchings/hud_renderer/func_80050C68.s deleted file mode 100644 index c10208310..000000000 --- a/asm/non_matchings/hud_renderer/func_80050C68.s +++ /dev/null @@ -1,126 +0,0 @@ -.section .late_rodata - -glabel D_800EE064 -.float 0.6 - -.section .text - -glabel func_80050C68 -/* 051868 80050C68 27BDFF70 */ addiu $sp, $sp, -0x90 -/* 05186C 80050C6C AFB20028 */ sw $s2, 0x28($sp) -/* 051870 80050C70 AFB00020 */ sw $s0, 0x20($sp) -/* 051874 80050C74 AFBE0040 */ sw $fp, 0x40($sp) -/* 051878 80050C78 AFB7003C */ sw $s7, 0x3c($sp) -/* 05187C 80050C7C AFB60038 */ sw $s6, 0x38($sp) -/* 051880 80050C80 AFB10024 */ sw $s1, 0x24($sp) -/* 051884 80050C84 F7B40018 */ sdc1 $f20, 0x18($sp) -/* 051888 80050C88 3C108015 */ lui $s0, %hi(gDisplayListHead) # $s0, 0x8015 -/* 05188C 80050C8C 3C128016 */ lui $s2, %hi(D_80163DE8) # $s2, 0x8016 -/* 051890 80050C90 3C01800F */ lui $at, %hi(D_800EE064) # $at, 0x800f -/* 051894 80050C94 AFBF0044 */ sw $ra, 0x44($sp) -/* 051898 80050C98 AFB50034 */ sw $s5, 0x34($sp) -/* 05189C 80050C9C AFB40030 */ sw $s4, 0x30($sp) -/* 0518A0 80050CA0 AFB3002C */ sw $s3, 0x2c($sp) -/* 0518A4 80050CA4 C434E064 */ lwc1 $f20, %lo(D_800EE064)($at) -/* 0518A8 80050CA8 26523DE8 */ addiu $s2, %lo(D_80163DE8) # addiu $s2, $s2, 0x3de8 -/* 0518AC 80050CAC 26100298 */ addiu $s0, %lo(gDisplayListHead) # addiu $s0, $s0, 0x298 -/* 0518B0 80050CB0 00008825 */ move $s1, $zero -/* 0518B4 80050CB4 3C160600 */ lui $s6, 0x600 -/* 0518B8 80050CB8 24170004 */ li $s7, 4 -/* 0518BC 80050CBC 27BE0088 */ addiu $fp, $sp, 0x88 -.L80050CC0: -/* 0518C0 80050CC0 96420044 */ lhu $v0, 0x44($s2) -/* 0518C4 80050CC4 52E2004B */ beql $s7, $v0, .L80050DF4 -/* 0518C8 80050CC8 26310001 */ addiu $s1, $s1, 1 -/* 0518CC 80050CCC 10400048 */ beqz $v0, .L80050DF0 -/* 0518D0 80050CD0 3224FFFF */ andi $a0, $s1, 0xffff -/* 0518D4 80050CD4 3C130D00 */ lui $s3, %hi(D_0D007DB8) # $s3, 0xd00 -/* 0518D8 80050CD8 3C140D02 */ lui $s4, %hi(gTLUTPortraitBombKartAndQuestionMark) # $s4, 0xd02 -/* 0518DC 80050CDC 3C150D00 */ lui $s5, %hi(D_0D0069E0) # $s5, 0xd00 -/* 0518E0 80050CE0 26B569E0 */ addiu $s5, %lo(D_0D0069E0) # addiu $s5, $s5, 0x69e0 -/* 0518E4 80050CE4 2694B4D8 */ addiu $s4, %lo(gTLUTPortraitBombKartAndQuestionMark) # addiu $s4, $s4, -0x4b28 -/* 0518E8 80050CE8 26737DB8 */ addiu $s3, %lo(D_0D007DB8) # addiu $s3, $s3, 0x7db8 -/* 0518EC 80050CEC 03C02825 */ move $a1, $fp -/* 0518F0 80050CF0 0C0141F6 */ jal func_800507D8 -/* 0518F4 80050CF4 27A60084 */ addiu $a2, $sp, 0x84 -/* 0518F8 80050CF8 8E020000 */ lw $v0, ($s0) -/* 0518FC 80050CFC 3C18FD10 */ lui $t8, 0xfd10 -/* 051900 80050D00 3C0DE800 */ lui $t5, 0xe800 -/* 051904 80050D04 244E0008 */ addiu $t6, $v0, 8 -/* 051908 80050D08 AE0E0000 */ sw $t6, ($s0) -/* 05190C 80050D0C AC530004 */ sw $s3, 4($v0) -/* 051910 80050D10 AC560000 */ sw $s6, ($v0) -/* 051914 80050D14 8E020000 */ lw $v0, ($s0) -/* 051918 80050D18 3C040D02 */ lui $a0, %hi(gTexturePortraitBombKart) # $a0, 0xd02 -/* 05191C 80050D1C 2484D6D8 */ addiu $a0, %lo(gTexturePortraitBombKart) # addiu $a0, $a0, -0x2928 -/* 051920 80050D20 244F0008 */ addiu $t7, $v0, 8 -/* 051924 80050D24 AE0F0000 */ sw $t7, ($s0) -/* 051928 80050D28 AC540004 */ sw $s4, 4($v0) -/* 05192C 80050D2C AC580000 */ sw $t8, ($v0) -/* 051930 80050D30 8E020000 */ lw $v0, ($s0) -/* 051934 80050D34 3C0FF500 */ lui $t7, (0xF5000100 >> 16) # lui $t7, 0xf500 -/* 051938 80050D38 35EF0100 */ ori $t7, (0xF5000100 & 0xFFFF) # ori $t7, $t7, 0x100 -/* 05193C 80050D3C 24590008 */ addiu $t9, $v0, 8 -/* 051940 80050D40 AE190000 */ sw $t9, ($s0) -/* 051944 80050D44 AC400004 */ sw $zero, 4($v0) -/* 051948 80050D48 AC4D0000 */ sw $t5, ($v0) -/* 05194C 80050D4C 8E020000 */ lw $v0, ($s0) -/* 051950 80050D50 3C180700 */ lui $t8, 0x700 -/* 051954 80050D54 3C0DE600 */ lui $t5, 0xe600 -/* 051958 80050D58 244E0008 */ addiu $t6, $v0, 8 -/* 05195C 80050D5C AE0E0000 */ sw $t6, ($s0) -/* 051960 80050D60 AC580004 */ sw $t8, 4($v0) -/* 051964 80050D64 AC4F0000 */ sw $t7, ($v0) -/* 051968 80050D68 8E020000 */ lw $v0, ($s0) -/* 05196C 80050D6C 3C18073F */ lui $t8, (0x073FC000 >> 16) # lui $t8, 0x73f -/* 051970 80050D70 3718C000 */ ori $t8, (0x073FC000 & 0xFFFF) # ori $t8, $t8, 0xc000 -/* 051974 80050D74 24590008 */ addiu $t9, $v0, 8 -/* 051978 80050D78 AE190000 */ sw $t9, ($s0) -/* 05197C 80050D7C AC400004 */ sw $zero, 4($v0) -/* 051980 80050D80 AC4D0000 */ sw $t5, ($v0) -/* 051984 80050D84 8E020000 */ lw $v0, ($s0) -/* 051988 80050D88 3C0FF000 */ lui $t7, 0xf000 -/* 05198C 80050D8C 3C0DE700 */ lui $t5, 0xe700 -/* 051990 80050D90 244E0008 */ addiu $t6, $v0, 8 -/* 051994 80050D94 AE0E0000 */ sw $t6, ($s0) -/* 051998 80050D98 AC580004 */ sw $t8, 4($v0) -/* 05199C 80050D9C AC4F0000 */ sw $t7, ($v0) -/* 0519A0 80050DA0 8E020000 */ lw $v0, ($s0) -/* 0519A4 80050DA4 24050020 */ li $a1, 32 -/* 0519A8 80050DA8 24060020 */ li $a2, 32 -/* 0519AC 80050DAC 24590008 */ addiu $t9, $v0, 8 -/* 0519B0 80050DB0 AE190000 */ sw $t9, ($s0) -/* 0519B4 80050DB4 AC400004 */ sw $zero, 4($v0) -/* 0519B8 80050DB8 0C0114A9 */ jal func_800452A4 -/* 0519BC 80050DBC AC4D0000 */ sw $t5, ($v0) -/* 0519C0 80050DC0 8FA40088 */ lw $a0, 0x88($sp) -/* 0519C4 80050DC4 8FA50084 */ lw $a1, 0x84($sp) -/* 0519C8 80050DC8 4407A000 */ mfc1 $a3, $f20 -/* 0519CC 80050DCC 00003025 */ move $a2, $zero -/* 0519D0 80050DD0 24840020 */ addiu $a0, $a0, 0x20 -/* 0519D4 80050DD4 0C0108CC */ jal func_80042330 -/* 0519D8 80050DD8 24A50012 */ addiu $a1, $a1, 0x12 -/* 0519DC 80050DDC 8E020000 */ lw $v0, ($s0) -/* 0519E0 80050DE0 244E0008 */ addiu $t6, $v0, 8 -/* 0519E4 80050DE4 AE0E0000 */ sw $t6, ($s0) -/* 0519E8 80050DE8 AC550004 */ sw $s5, 4($v0) -/* 0519EC 80050DEC AC560000 */ sw $s6, ($v0) -.L80050DF0: -/* 0519F0 80050DF0 26310001 */ addiu $s1, $s1, 1 -.L80050DF4: -/* 0519F4 80050DF4 24010007 */ li $at, 7 -/* 0519F8 80050DF8 1621FFB1 */ bne $s1, $at, .L80050CC0 -/* 0519FC 80050DFC 26520054 */ addiu $s2, $s2, 0x54 -/* 051A00 80050E00 8FBF0044 */ lw $ra, 0x44($sp) -/* 051A04 80050E04 D7B40018 */ ldc1 $f20, 0x18($sp) -/* 051A08 80050E08 8FB00020 */ lw $s0, 0x20($sp) -/* 051A0C 80050E0C 8FB10024 */ lw $s1, 0x24($sp) -/* 051A10 80050E10 8FB20028 */ lw $s2, 0x28($sp) -/* 051A14 80050E14 8FB3002C */ lw $s3, 0x2c($sp) -/* 051A18 80050E18 8FB40030 */ lw $s4, 0x30($sp) -/* 051A1C 80050E1C 8FB50034 */ lw $s5, 0x34($sp) -/* 051A20 80050E20 8FB60038 */ lw $s6, 0x38($sp) -/* 051A24 80050E24 8FB7003C */ lw $s7, 0x3c($sp) -/* 051A28 80050E28 8FBE0040 */ lw $fp, 0x40($sp) -/* 051A2C 80050E2C 03E00008 */ jr $ra -/* 051A30 80050E30 27BD0090 */ addiu $sp, $sp, 0x90 diff --git a/asm/non_matchings/hud_renderer/func_80056AC0.s b/asm/non_matchings/hud_renderer/func_80056AC0.s deleted file mode 100644 index 0b29a5e1a..000000000 --- a/asm/non_matchings/hud_renderer/func_80056AC0.s +++ /dev/null @@ -1,79 +0,0 @@ -glabel func_80056AC0 -/* 0576C0 80056AC0 27BDFFB8 */ addiu $sp, $sp, -0x48 -/* 0576C4 80056AC4 F7B40018 */ sdc1 $f20, 0x18($sp) -/* 0576C8 80056AC8 AFBE0040 */ sw $fp, 0x40($sp) -/* 0576CC 80056ACC AFB50034 */ sw $s5, 0x34($sp) -/* 0576D0 80056AD0 AFB3002C */ sw $s3, 0x2c($sp) -/* 0576D4 80056AD4 3C014000 */ li $at, 0x40000000 # 2.000000 -/* 0576D8 80056AD8 AFB7003C */ sw $s7, 0x3c($sp) -/* 0576DC 80056ADC AFB60038 */ sw $s6, 0x38($sp) -/* 0576E0 80056AE0 AFB40030 */ sw $s4, 0x30($sp) -/* 0576E4 80056AE4 AFB20028 */ sw $s2, 0x28($sp) -/* 0576E8 80056AE8 3C138018 */ lui $s3, %hi(D_80183DD8) # $s3, 0x8018 -/* 0576EC 80056AEC 3C158016 */ lui $s5, %hi(D_80165C18) # $s5, 0x8016 -/* 0576F0 80056AF0 3C1E800E */ lui $fp, %hi(gPlayerOne) # $fp, 0x800e -/* 0576F4 80056AF4 4481A800 */ mtc1 $at, $f21 -/* 0576F8 80056AF8 4480A000 */ mtc1 $zero, $f20 -/* 0576FC 80056AFC 0080A025 */ move $s4, $a0 -/* 057700 80056B00 AFBF0044 */ sw $ra, 0x44($sp) -/* 057704 80056B04 AFB10024 */ sw $s1, 0x24($sp) -/* 057708 80056B08 AFB00020 */ sw $s0, 0x20($sp) -/* 05770C 80056B0C 27DEC4DC */ addiu $fp, %lo(gPlayerOne) # addiu $fp, $fp, -0x3b24 -/* 057710 80056B10 26B55C18 */ addiu $s5, %lo(D_80165C18) # addiu $s5, $s5, 0x5c18 -/* 057714 80056B14 26733DD8 */ addiu $s3, %lo(D_80183DD8) # addiu $s3, $s3, 0x3dd8 -/* 057718 80056B18 00009025 */ move $s2, $zero -/* 05771C 80056B1C 241600E0 */ li $s6, 224 -/* 057720 80056B20 24170DD8 */ li $s7, 3544 -.L80056B24: -/* 057724 80056B24 8E700000 */ lw $s0, ($s3) -/* 057728 80056B28 02160019 */ multu $s0, $s6 -/* 05772C 80056B2C 00007012 */ mflo $t6 -/* 057730 80056B30 02AE1821 */ addu $v1, $s5, $t6 -/* 057734 80056B34 846F00A6 */ lh $t7, 0xa6($v1) -/* 057738 80056B38 51E0001D */ beql $t7, $zero, .L80056BB0 -/* 05773C 80056B3C 26520001 */ addiu $s2, $s2, 1 -/* 057740 80056B40 02570019 */ multu $s2, $s7 -/* 057744 80056B44 8FD90000 */ lw $t9, ($fp) -/* 057748 80056B48 847100A0 */ lh $s1, 0xa0($v1) -/* 05774C 80056B4C 02002025 */ move $a0, $s0 -/* 057750 80056B50 02802825 */ move $a1, $s4 -/* 057754 80056B54 02203025 */ move $a2, $s1 -/* 057758 80056B58 0000C012 */ mflo $t8 -/* 05775C 80056B5C 03191021 */ addu $v0, $t8, $t9 -/* 057760 80056B60 C4440014 */ lwc1 $f4, 0x14($v0) -/* 057764 80056B64 E4640004 */ swc1 $f4, 4($v1) -/* 057768 80056B68 C4460018 */ lwc1 $f6, 0x18($v0) -/* 05776C 80056B6C 46003221 */ cvt.d.s $f8, $f6 -/* 057770 80056B70 46344281 */ sub.d $f10, $f8, $f20 -/* 057774 80056B74 46205420 */ cvt.s.d $f16, $f10 -/* 057778 80056B78 E4700008 */ swc1 $f16, 8($v1) -/* 05777C 80056B7C C452001C */ lwc1 $f18, 0x1c($v0) -/* 057780 80056B80 E472000C */ swc1 $f18, 0xc($v1) -/* 057784 80056B84 C4440074 */ lwc1 $f4, 0x74($v0) -/* 057788 80056B88 0C0158F7 */ jal func_800563DC -/* 05778C 80056B8C E4640044 */ swc1 $f4, 0x44($v1) -/* 057790 80056B90 02002025 */ move $a0, $s0 -/* 057794 80056B94 02802825 */ move $a1, $s4 -/* 057798 80056B98 0C0159A7 */ jal func_8005669C -/* 05779C 80056B9C 02203025 */ move $a2, $s1 -/* 0577A0 80056BA0 02002025 */ move $a0, $s0 -/* 0577A4 80056BA4 0C015A28 */ jal func_800568A0 -/* 0577A8 80056BA8 02802825 */ move $a1, $s4 -/* 0577AC 80056BAC 26520001 */ addiu $s2, $s2, 1 -.L80056BB0: -/* 0577B0 80056BB0 24010004 */ li $at, 4 -/* 0577B4 80056BB4 1641FFDB */ bne $s2, $at, .L80056B24 -/* 0577B8 80056BB8 26730004 */ addiu $s3, $s3, 4 -/* 0577BC 80056BBC 8FBF0044 */ lw $ra, 0x44($sp) -/* 0577C0 80056BC0 D7B40018 */ ldc1 $f20, 0x18($sp) -/* 0577C4 80056BC4 8FB00020 */ lw $s0, 0x20($sp) -/* 0577C8 80056BC8 8FB10024 */ lw $s1, 0x24($sp) -/* 0577CC 80056BCC 8FB20028 */ lw $s2, 0x28($sp) -/* 0577D0 80056BD0 8FB3002C */ lw $s3, 0x2c($sp) -/* 0577D4 80056BD4 8FB40030 */ lw $s4, 0x30($sp) -/* 0577D8 80056BD8 8FB50034 */ lw $s5, 0x34($sp) -/* 0577DC 80056BDC 8FB60038 */ lw $s6, 0x38($sp) -/* 0577E0 80056BE0 8FB7003C */ lw $s7, 0x3c($sp) -/* 0577E4 80056BE4 8FBE0040 */ lw $fp, 0x40($sp) -/* 0577E8 80056BE8 03E00008 */ jr $ra -/* 0577EC 80056BEC 27BD0048 */ addiu $sp, $sp, 0x48 diff --git a/asm/non_matchings/hud_renderer/func_80056E24.s b/asm/non_matchings/hud_renderer/func_80056E24.s deleted file mode 100644 index 178a9855c..000000000 --- a/asm/non_matchings/hud_renderer/func_80056E24.s +++ /dev/null @@ -1,108 +0,0 @@ -glabel func_80056E24 -/* 057A24 80056E24 00047880 */ sll $t7, $a0, 2 -/* 057A28 80056E28 01E47821 */ addu $t7, $t7, $a0 -/* 057A2C 80056E2C 27BDFF78 */ addiu $sp, $sp, -0x88 -/* 057A30 80056E30 000F7880 */ sll $t7, $t7, 2 -/* 057A34 80056E34 01E47821 */ addu $t7, $t7, $a0 -/* 057A38 80056E38 3C188016 */ lui $t8, %hi(D_80163DE8) # $t8, 0x8016 -/* 057A3C 80056E3C AFB00018 */ sw $s0, 0x18($sp) -/* 057A40 80056E40 27183DE8 */ addiu $t8, %lo(D_80163DE8) # addiu $t8, $t8, 0x3de8 -/* 057A44 80056E44 000F7880 */ sll $t7, $t7, 2 -/* 057A48 80056E48 3C108018 */ lui $s0, %hi(D_80183E80) # $s0, 0x8018 -/* 057A4C 80056E4C 3C088015 */ lui $t0, %hi(gDisplayListHead) # $t0, 0x8015 -/* 057A50 80056E50 01F8C821 */ addu $t9, $t7, $t8 -/* 057A54 80056E54 25080298 */ addiu $t0, %lo(gDisplayListHead) # addiu $t0, $t0, 0x298 -/* 057A58 80056E58 26103E80 */ addiu $s0, %lo(D_80183E80) # addiu $s0, $s0, 0x3e80 -/* 057A5C 80056E5C AFBF001C */ sw $ra, 0x1c($sp) -/* 057A60 80056E60 AFA5008C */ sw $a1, 0x8c($sp) -/* 057A64 80056E64 272B0054 */ addiu $t3, $t9, 0x54 -/* 057A68 80056E68 27AE002C */ addiu $t6, $sp, 0x2c -.L80056E6C: -/* 057A6C 80056E6C 8F210000 */ lw $at, ($t9) -/* 057A70 80056E70 2739000C */ addiu $t9, $t9, 0xc -/* 057A74 80056E74 25CE000C */ addiu $t6, $t6, 0xc -/* 057A78 80056E78 ADC1FFF4 */ sw $at, -0xc($t6) -/* 057A7C 80056E7C 8F21FFF8 */ lw $at, -8($t9) -/* 057A80 80056E80 ADC1FFF8 */ sw $at, -8($t6) -/* 057A84 80056E84 8F21FFFC */ lw $at, -4($t9) -/* 057A88 80056E88 172BFFF8 */ bne $t9, $t3, .L80056E6C -/* 057A8C 80056E8C ADC1FFFC */ sw $at, -4($t6) -/* 057A90 80056E90 8D030000 */ lw $v1, ($t0) -/* 057A94 80056E94 340C8000 */ li $t4, 32768 -/* 057A98 80056E98 3C180D00 */ lui $t8, %hi(D_0D0079C8) # $t8, 0xd00 -/* 057A9C 80056E9C 246D0008 */ addiu $t5, $v1, 8 -/* 057AA0 80056EA0 A6000000 */ sh $zero, ($s0) -/* 057AA4 80056EA4 A60C0004 */ sh $t4, 4($s0) -/* 057AA8 80056EA8 AD0D0000 */ sw $t5, ($t0) -/* 057AAC 80056EAC 271879C8 */ addiu $t8, %lo(D_0D0079C8) # addiu $t8, $t8, 0x79c8 -/* 057AB0 80056EB0 3C0F0600 */ lui $t7, 0x600 -/* 057AB4 80056EB4 3C040D03 */ lui $a0, %hi(D_0D02AA58) # $a0, 0xd03 -/* 057AB8 80056EB8 2484AA58 */ addiu $a0, %lo(D_0D02AA58) # addiu $a0, $a0, -0x55a8 -/* 057ABC 80056EBC 24050010 */ li $a1, 16 -/* 057AC0 80056EC0 24060010 */ li $a2, 16 -/* 057AC4 80056EC4 AC6F0000 */ sw $t7, ($v1) -/* 057AC8 80056EC8 0C010F54 */ jal func_80043D50 -/* 057ACC 80056ECC AC780004 */ sw $t8, 4($v1) -/* 057AD0 80056ED0 C7AC0038 */ lwc1 $f12, 0x38($sp) -/* 057AD4 80056ED4 C7AE0040 */ lwc1 $f14, 0x40($sp) -/* 057AD8 80056ED8 0C01062B */ jal func_800418AC -/* 057ADC 80056EDC 8FA6008C */ lw $a2, 0x8c($sp) -/* 057AE0 80056EE0 3C063E19 */ lui $a2, (0x3E19999A >> 16) # lui $a2, 0x3e19 -/* 057AE4 80056EE4 3C070D00 */ lui $a3, %hi(D_0D005770) # $a3, 0xd00 -/* 057AE8 80056EE8 A6020002 */ sh $v0, 2($s0) -/* 057AEC 80056EEC 24E75770 */ addiu $a3, %lo(D_0D005770) # addiu $a3, $a3, 0x5770 -/* 057AF0 80056EF0 34C6999A */ ori $a2, (0x3E19999A & 0xFFFF) # ori $a2, $a2, 0x999a -/* 057AF4 80056EF4 27A40038 */ addiu $a0, $sp, 0x38 -/* 057AF8 80056EF8 0C010C6C */ jal func_800431B0 -/* 057AFC 80056EFC 02002825 */ move $a1, $s0 -/* 057B00 80056F00 C7AC0044 */ lwc1 $f12, 0x44($sp) -/* 057B04 80056F04 C7AE004C */ lwc1 $f14, 0x4c($sp) -/* 057B08 80056F08 0C01062B */ jal func_800418AC -/* 057B0C 80056F0C 8FA6008C */ lw $a2, 0x8c($sp) -/* 057B10 80056F10 3C063E19 */ lui $a2, (0x3E19999A >> 16) # lui $a2, 0x3e19 -/* 057B14 80056F14 3C070D00 */ lui $a3, %hi(D_0D005770) # $a3, 0xd00 -/* 057B18 80056F18 A6020002 */ sh $v0, 2($s0) -/* 057B1C 80056F1C 24E75770 */ addiu $a3, %lo(D_0D005770) # addiu $a3, $a3, 0x5770 -/* 057B20 80056F20 34C6999A */ ori $a2, (0x3E19999A & 0xFFFF) # ori $a2, $a2, 0x999a -/* 057B24 80056F24 27A40044 */ addiu $a0, $sp, 0x44 -/* 057B28 80056F28 0C010C6C */ jal func_800431B0 -/* 057B2C 80056F2C 02002825 */ move $a1, $s0 -/* 057B30 80056F30 C7AC0050 */ lwc1 $f12, 0x50($sp) -/* 057B34 80056F34 C7AE0058 */ lwc1 $f14, 0x58($sp) -/* 057B38 80056F38 0C01062B */ jal func_800418AC -/* 057B3C 80056F3C 8FA6008C */ lw $a2, 0x8c($sp) -/* 057B40 80056F40 3C063E19 */ lui $a2, (0x3E19999A >> 16) # lui $a2, 0x3e19 -/* 057B44 80056F44 3C070D00 */ lui $a3, %hi(D_0D005770) # $a3, 0xd00 -/* 057B48 80056F48 A6020002 */ sh $v0, 2($s0) -/* 057B4C 80056F4C 24E75770 */ addiu $a3, %lo(D_0D005770) # addiu $a3, $a3, 0x5770 -/* 057B50 80056F50 34C6999A */ ori $a2, (0x3E19999A & 0xFFFF) # ori $a2, $a2, 0x999a -/* 057B54 80056F54 27A40050 */ addiu $a0, $sp, 0x50 -/* 057B58 80056F58 0C010C6C */ jal func_800431B0 -/* 057B5C 80056F5C 02002825 */ move $a1, $s0 -/* 057B60 80056F60 C7AC005C */ lwc1 $f12, 0x5c($sp) -/* 057B64 80056F64 C7AE0064 */ lwc1 $f14, 0x64($sp) -/* 057B68 80056F68 0C01062B */ jal func_800418AC -/* 057B6C 80056F6C 8FA6008C */ lw $a2, 0x8c($sp) -/* 057B70 80056F70 3C063E19 */ lui $a2, (0x3E19999A >> 16) # lui $a2, 0x3e19 -/* 057B74 80056F74 3C070D00 */ lui $a3, %hi(D_0D005770) # $a3, 0xd00 -/* 057B78 80056F78 A6020002 */ sh $v0, 2($s0) -/* 057B7C 80056F7C 24E75770 */ addiu $a3, %lo(D_0D005770) # addiu $a3, $a3, 0x5770 -/* 057B80 80056F80 34C6999A */ ori $a2, (0x3E19999A & 0xFFFF) # ori $a2, $a2, 0x999a -/* 057B84 80056F84 27A4005C */ addiu $a0, $sp, 0x5c -/* 057B88 80056F88 0C010C6C */ jal func_800431B0 -/* 057B8C 80056F8C 02002825 */ move $a1, $s0 -/* 057B90 80056F90 3C048015 */ lui $a0, %hi(gDisplayListHead) # $a0, 0x8015 -/* 057B94 80056F94 24840298 */ addiu $a0, %lo(gDisplayListHead) # addiu $a0, $a0, 0x298 -/* 057B98 80056F98 8C830000 */ lw $v1, ($a0) -/* 057B9C 80056F9C 3C0B0001 */ lui $t3, (0x00010001 >> 16) # lui $t3, 1 -/* 057BA0 80056FA0 356B0001 */ ori $t3, (0x00010001 & 0xFFFF) # ori $t3, $t3, 1 -/* 057BA4 80056FA4 246A0008 */ addiu $t2, $v1, 8 -/* 057BA8 80056FA8 AC8A0000 */ sw $t2, ($a0) -/* 057BAC 80056FAC 3C09BB00 */ lui $t1, 0xbb00 -/* 057BB0 80056FB0 AC690000 */ sw $t1, ($v1) -/* 057BB4 80056FB4 AC6B0004 */ sw $t3, 4($v1) -/* 057BB8 80056FB8 8FBF001C */ lw $ra, 0x1c($sp) -/* 057BBC 80056FBC 8FB00018 */ lw $s0, 0x18($sp) -/* 057BC0 80056FC0 27BD0088 */ addiu $sp, $sp, 0x88 -/* 057BC4 80056FC4 03E00008 */ jr $ra -/* 057BC8 80056FC8 00000000 */ nop diff --git a/asm/non_matchings/hud_renderer/func_80056FCC.s b/asm/non_matchings/hud_renderer/func_80056FCC.s deleted file mode 100644 index 99f00ac03..000000000 --- a/asm/non_matchings/hud_renderer/func_80056FCC.s +++ /dev/null @@ -1,83 +0,0 @@ -glabel func_80056FCC -/* 057BCC 80056FCC 00047880 */ sll $t7, $a0, 2 -/* 057BD0 80056FD0 01E47821 */ addu $t7, $t7, $a0 -/* 057BD4 80056FD4 000F7880 */ sll $t7, $t7, 2 -/* 057BD8 80056FD8 01E47821 */ addu $t7, $t7, $a0 -/* 057BDC 80056FDC 3C188016 */ lui $t8, %hi(D_80163DE8) # $t8, 0x8016 -/* 057BE0 80056FE0 27183DE8 */ addiu $t8, %lo(D_80163DE8) # addiu $t8, $t8, 0x3de8 -/* 057BE4 80056FE4 000F7880 */ sll $t7, $t7, 2 -/* 057BE8 80056FE8 01F81021 */ addu $v0, $t7, $t8 -/* 057BEC 80056FEC C4460050 */ lwc1 $f6, 0x50($v0) -/* 057BF0 80056FF0 3C013FF0 */ li $at, 0x3FF00000 # 1.875000 -/* 057BF4 80056FF4 44815800 */ mtc1 $at, $f11 -/* 057BF8 80056FF8 44805000 */ mtc1 $zero, $f10 -/* 057BFC 80056FFC 46003221 */ cvt.d.s $f8, $f6 -/* 057C00 80057000 27BDFF90 */ addiu $sp, $sp, -0x70 -/* 057C04 80057004 462A4400 */ add.d $f16, $f8, $f10 -/* 057C08 80057008 C4440000 */ lwc1 $f4, ($v0) -/* 057C0C 8005700C AFA40070 */ sw $a0, 0x70($sp) -/* 057C10 80057010 8FB90070 */ lw $t9, 0x70($sp) -/* 057C14 80057014 3C068018 */ lui $a2, %hi(D_80183E50) # $a2, 0x8018 -/* 057C18 80057018 24C63E50 */ addiu $a2, %lo(D_80183E50) # addiu $a2, $a2, 0x3e50 -/* 057C1C 8005701C 462084A0 */ cvt.s.d $f18, $f16 -/* 057C20 80057020 3C013F00 */ li $at, 0x3F000000 # 0.500000 -/* 057C24 80057024 E4C40000 */ swc1 $f4, ($a2) -/* 057C28 80057028 C4440008 */ lwc1 $f4, 8($v0) -/* 057C2C 8005702C 44813000 */ mtc1 $at, $f6 -/* 057C30 80057030 3C0A8016 */ lui $t2, %hi(D_80164038) # $t2, 0x8016 -/* 057C34 80057034 00194180 */ sll $t0, $t9, 6 -/* 057C38 80057038 AFBF001C */ sw $ra, 0x1c($sp) -/* 057C3C 8005703C 25090030 */ addiu $t1, $t0, 0x30 -/* 057C40 80057040 254A4038 */ addiu $t2, %lo(D_80164038) # addiu $t2, $t2, 0x4038 -/* 057C44 80057044 E4D20004 */ swc1 $f18, 4($a2) -/* 057C48 80057048 012A2821 */ addu $a1, $t1, $t2 -/* 057C4C 8005704C 27A40030 */ addiu $a0, $sp, 0x30 -/* 057C50 80057050 00003825 */ move $a3, $zero -/* 057C54 80057054 E4C40008 */ swc1 $f4, 8($a2) -/* 057C58 80057058 0C010A88 */ jal func_80042A20 -/* 057C5C 8005705C E7A60010 */ swc1 $f6, 0x10($sp) -/* 057C60 80057060 3C068019 */ lui $a2, %hi(D_8018D120) # $a2, 0x8019 -/* 057C64 80057064 24C6D120 */ addiu $a2, %lo(D_8018D120) # addiu $a2, $a2, -0x2ee0 -/* 057C68 80057068 8CCC0000 */ lw $t4, ($a2) -/* 057C6C 8005706C 3C0B8015 */ lui $t3, %hi(gGfxPool) # $t3, 0x8015 -/* 057C70 80057070 8D6BEF40 */ lw $t3, %lo(gGfxPool)($t3) -/* 057C74 80057074 000C6980 */ sll $t5, $t4, 6 -/* 057C78 80057078 27A50030 */ addiu $a1, $sp, 0x30 -/* 057C7C 8005707C 016D2021 */ addu $a0, $t3, $t5 -/* 057C80 80057080 0C008860 */ jal func_80022180 -/* 057C84 80057084 248402C0 */ addiu $a0, $a0, 0x2c0 -/* 057C88 80057088 3C058015 */ lui $a1, %hi(gDisplayListHead) # $a1, 0x8015 -/* 057C8C 8005708C 24A50298 */ addiu $a1, %lo(gDisplayListHead) # addiu $a1, $a1, 0x298 -/* 057C90 80057090 8CA20000 */ lw $v0, ($a1) -/* 057C94 80057094 3C0F0102 */ lui $t7, (0x01020040 >> 16) # lui $t7, 0x102 -/* 057C98 80057098 3C068019 */ lui $a2, %hi(D_8018D120) # $a2, 0x8019 -/* 057C9C 8005709C 244E0008 */ addiu $t6, $v0, 8 -/* 057CA0 800570A0 ACAE0000 */ sw $t6, ($a1) -/* 057CA4 800570A4 35EF0040 */ ori $t7, (0x01020040 & 0xFFFF) # ori $t7, $t7, 0x40 -/* 057CA8 800570A8 24C6D120 */ addiu $a2, %lo(D_8018D120) # addiu $a2, $a2, -0x2ee0 -/* 057CAC 800570AC AC4F0000 */ sw $t7, ($v0) -/* 057CB0 800570B0 8CD90000 */ lw $t9, ($a2) -/* 057CB4 800570B4 3C188015 */ lui $t8, %hi(gGfxPool) # $t8, 0x8015 -/* 057CB8 800570B8 8F18EF40 */ lw $t8, %lo(gGfxPool)($t8) -/* 057CBC 800570BC 00194180 */ sll $t0, $t9, 6 -/* 057CC0 800570C0 3C011FFF */ lui $at, (0x1FFFFFFF >> 16) # lui $at, 0x1fff -/* 057CC4 800570C4 03084821 */ addu $t1, $t8, $t0 -/* 057CC8 800570C8 252A02C0 */ addiu $t2, $t1, 0x2c0 -/* 057CCC 800570CC 3421FFFF */ ori $at, (0x1FFFFFFF & 0xFFFF) # ori $at, $at, 0xffff -/* 057CD0 800570D0 01416024 */ and $t4, $t2, $at -/* 057CD4 800570D4 AC4C0004 */ sw $t4, 4($v0) -/* 057CD8 800570D8 8CCB0000 */ lw $t3, ($a2) -/* 057CDC 800570DC 8CA20000 */ lw $v0, ($a1) -/* 057CE0 800570E0 3C190D00 */ lui $t9, %hi(D_0D007B98) # $t9, 0xd00 -/* 057CE4 800570E4 256D0001 */ addiu $t5, $t3, 1 -/* 057CE8 800570E8 244E0008 */ addiu $t6, $v0, 8 -/* 057CEC 800570EC ACCD0000 */ sw $t5, ($a2) -/* 057CF0 800570F0 ACAE0000 */ sw $t6, ($a1) -/* 057CF4 800570F4 27397B98 */ addiu $t9, %lo(D_0D007B98) # addiu $t9, $t9, 0x7b98 -/* 057CF8 800570F8 3C0F0600 */ lui $t7, 0x600 -/* 057CFC 800570FC AC4F0000 */ sw $t7, ($v0) -/* 057D00 80057100 AC590004 */ sw $t9, 4($v0) -/* 057D04 80057104 8FBF001C */ lw $ra, 0x1c($sp) -/* 057D08 80057108 27BD0070 */ addiu $sp, $sp, 0x70 -/* 057D0C 8005710C 03E00008 */ jr $ra -/* 057D10 80057110 00000000 */ nop diff --git a/asm/non_matchings/hud_renderer/func_80057114.s b/asm/non_matchings/hud_renderer/func_80057114.s deleted file mode 100644 index bcc1f898d..000000000 --- a/asm/non_matchings/hud_renderer/func_80057114.s +++ /dev/null @@ -1,144 +0,0 @@ -glabel func_80057114 -/* 057D14 80057114 27BDFFC0 */ addiu $sp, $sp, -0x40 -/* 057D18 80057118 3C0E800E */ lui $t6, %hi(gGamestate) # $t6, 0x800e -/* 057D1C 8005711C 8DCEC50C */ lw $t6, %lo(gGamestate)($t6) -/* 057D20 80057120 AFBE0038 */ sw $fp, 0x38($sp) -/* 057D24 80057124 24010005 */ li $at, 5 -/* 057D28 80057128 0080F025 */ move $fp, $a0 -/* 057D2C 8005712C AFBF003C */ sw $ra, 0x3c($sp) -/* 057D30 80057130 AFB70034 */ sw $s7, 0x34($sp) -/* 057D34 80057134 AFB60030 */ sw $s6, 0x30($sp) -/* 057D38 80057138 AFB5002C */ sw $s5, 0x2c($sp) -/* 057D3C 8005713C AFB40028 */ sw $s4, 0x28($sp) -/* 057D40 80057140 AFB30024 */ sw $s3, 0x24($sp) -/* 057D44 80057144 AFB20020 */ sw $s2, 0x20($sp) -/* 057D48 80057148 AFB1001C */ sw $s1, 0x1c($sp) -/* 057D4C 8005714C 15C10002 */ bne $t6, $at, .L80057158 -/* 057D50 80057150 AFB00018 */ sw $s0, 0x18($sp) -/* 057D54 80057154 0000F025 */ move $fp, $zero -.L80057158: -/* 057D58 80057158 001E7880 */ sll $t7, $fp, 2 -/* 057D5C 8005715C 01FE7823 */ subu $t7, $t7, $fp -/* 057D60 80057160 000F78C0 */ sll $t7, $t7, 3 -/* 057D64 80057164 3C18800E */ lui $t8, %hi(camera1) # $t8, 0x800e -/* 057D68 80057168 8F18DB40 */ lw $t8, %lo(camera1)($t8) -/* 057D6C 8005716C 01FE7823 */ subu $t7, $t7, $fp -/* 057D70 80057170 000F78C0 */ sll $t7, $t7, 3 -/* 057D74 80057174 17C00023 */ bnez $fp, .L80057204 -/* 057D78 80057178 01F8B821 */ addu $s7, $t7, $t8 -/* 057D7C 8005717C 3C118018 */ lui $s1, %hi(D_80183DD8) # $s1, 0x8018 -/* 057D80 80057180 3C138016 */ lui $s3, %hi(D_80163DE8) # $s3, 0x8016 -/* 057D84 80057184 26733DE8 */ addiu $s3, %lo(D_80163DE8) # addiu $s3, $s3, 0x3de8 -/* 057D88 80057188 26313DD8 */ addiu $s1, %lo(D_80183DD8) # addiu $s1, $s1, 0x3dd8 -/* 057D8C 8005718C 00009025 */ move $s2, $zero -/* 057D90 80057190 3C160020 */ lui $s6, 0x20 -/* 057D94 80057194 24150001 */ li $s5, 1 -/* 057D98 80057198 24140054 */ li $s4, 84 -.L8005719C: -/* 057D9C 8005719C 8E300000 */ lw $s0, ($s1) -/* 057DA0 800571A0 02C02825 */ move $a1, $s6 -/* 057DA4 800571A4 0C01C88F */ jal func_8007223C -/* 057DA8 800571A8 02002025 */ move $a0, $s0 -/* 057DAC 800571AC 10400006 */ beqz $v0, .L800571C8 -/* 057DB0 800571B0 02002025 */ move $a0, $s0 -/* 057DB4 800571B4 02540019 */ multu $s2, $s4 -/* 057DB8 800571B8 0000C812 */ mflo $t9 -/* 057DBC 800571BC 02794021 */ addu $t0, $s3, $t9 -/* 057DC0 800571C0 1000000A */ b .L800571EC -/* 057DC4 800571C4 A500004A */ sh $zero, 0x4a($t0) -.L800571C8: -/* 057DC8 800571C8 3C09800E */ lui $t1, %hi(gGamestate) # $t1, 0x800e -/* 057DCC 800571CC 8D29C50C */ lw $t1, %lo(gGamestate)($t1) -/* 057DD0 800571D0 24010005 */ li $at, 5 -/* 057DD4 800571D4 11210005 */ beq $t1, $at, .L800571EC -/* 057DD8 800571D8 00000000 */ nop -/* 057DDC 800571DC 02540019 */ multu $s2, $s4 -/* 057DE0 800571E0 00005012 */ mflo $t2 -/* 057DE4 800571E4 026A5821 */ addu $t3, $s3, $t2 -/* 057DE8 800571E8 A575004A */ sh $s5, 0x4a($t3) -.L800571EC: -/* 057DEC 800571EC 0C01C87A */ jal func_800721E8 -/* 057DF0 800571F0 02C02825 */ move $a1, $s6 -/* 057DF4 800571F4 26520001 */ addiu $s2, $s2, 1 -/* 057DF8 800571F8 24010007 */ li $at, 7 -/* 057DFC 800571FC 1641FFE7 */ bne $s2, $at, .L8005719C -/* 057E00 80057200 26310004 */ addiu $s1, $s1, 4 -.L80057204: -/* 057E04 80057204 3C118016 */ lui $s1, %hi(D_80163DE8) # $s1, 0x8016 -/* 057E08 80057208 3C138018 */ lui $s3, %hi(D_80183E80) # $s3, 0x8018 -/* 057E0C 8005720C 3C160020 */ lui $s6, 0x20 -/* 057E10 80057210 26733E80 */ addiu $s3, %lo(D_80183E80) # addiu $s3, $s3, 0x3e80 -/* 057E14 80057214 26313DE8 */ addiu $s1, %lo(D_80163DE8) # addiu $s1, $s1, 0x3de8 -/* 057E18 80057218 00009025 */ move $s2, $zero -.L8005721C: -/* 057E1C 8005721C 96350044 */ lhu $s5, 0x44($s1) -/* 057E20 80057220 00126080 */ sll $t4, $s2, 2 -/* 057E24 80057224 3C108018 */ lui $s0, %hi(D_80183DD8) # 0x8018 -/* 057E28 80057228 12A00031 */ beqz $s5, .L800572F0 -/* 057E2C 8005722C 020C8021 */ addu $s0, $s0, $t4 -/* 057E30 80057230 8E103DD8 */ lw $s0, %lo(D_80183DD8)($s0) # 0x3dd8($s0) -/* 057E34 80057234 3C0E8016 */ lui $t6, %hi(D_80165C18) # $t6, 0x8016 -/* 057E38 80057238 25CE5C18 */ addiu $t6, %lo(D_80165C18) # addiu $t6, $t6, 0x5c18 -/* 057E3C 8005723C 001068C0 */ sll $t5, $s0, 3 -/* 057E40 80057240 01B06823 */ subu $t5, $t5, $s0 -/* 057E44 80057244 000D6940 */ sll $t5, $t5, 5 -/* 057E48 80057248 C6240000 */ lwc1 $f4, ($s1) -/* 057E4C 8005724C C6260004 */ lwc1 $f6, 4($s1) -/* 057E50 80057250 C6280008 */ lwc1 $f8, 8($s1) -/* 057E54 80057254 01AE1021 */ addu $v0, $t5, $t6 -/* 057E58 80057258 03C02825 */ move $a1, $fp -/* 057E5C 8005725C 240631C4 */ li $a2, 12740 -/* 057E60 80057260 240701F4 */ li $a3, 500 -/* 057E64 80057264 02002025 */ move $a0, $s0 -/* 057E68 80057268 E4440004 */ swc1 $f4, 4($v0) -/* 057E6C 8005726C E4460008 */ swc1 $f6, 8($v0) -/* 057E70 80057270 0C0228D9 */ jal func_8008A364 -/* 057E74 80057274 E448000C */ swc1 $f8, 0xc($v0) -/* 057E78 80057278 0040A025 */ move $s4, $v0 -/* 057E7C 8005727C 02002025 */ move $a0, $s0 -/* 057E80 80057280 0C01C88F */ jal func_8007223C -/* 057E84 80057284 3C050004 */ lui $a1, 4 -/* 057E88 80057288 10400019 */ beqz $v0, .L800572F0 -/* 057E8C 8005728C 02002025 */ move $a0, $s0 -/* 057E90 80057290 0C01C870 */ jal func_800721C0 -/* 057E94 80057294 02C02825 */ move $a1, $s6 -/* 057E98 80057298 A6600000 */ sh $zero, ($s3) -/* 057E9C 8005729C C62C0000 */ lwc1 $f12, ($s1) -/* 057EA0 800572A0 C62E0008 */ lwc1 $f14, 8($s1) -/* 057EA4 800572A4 0C01062B */ jal func_800418AC -/* 057EA8 800572A8 02E03025 */ move $a2, $s7 -/* 057EAC 800572AC 340F8000 */ li $t7, 32768 -/* 057EB0 800572B0 A6620002 */ sh $v0, 2($s3) -/* 057EB4 800572B4 A66F0004 */ sh $t7, 4($s3) -/* 057EB8 800572B8 02002025 */ move $a0, $s0 -/* 057EBC 800572BC 03C02825 */ move $a1, $fp -/* 057EC0 800572C0 0C0158F7 */ jal func_800563DC -/* 057EC4 800572C4 240600FF */ li $a2, 255 -/* 057EC8 800572C8 02402025 */ move $a0, $s2 -/* 057ECC 800572CC 0C015B89 */ jal func_80056E24 -/* 057ED0 800572D0 02E02825 */ move $a1, $s7 -/* 057ED4 800572D4 2E814E21 */ sltiu $at, $s4, 0x4e21 -/* 057ED8 800572D8 10200005 */ beqz $at, .L800572F0 -/* 057EDC 800572DC 24010004 */ li $at, 4 -/* 057EE0 800572E0 52A10004 */ beql $s5, $at, .L800572F4 -/* 057EE4 800572E4 26520001 */ addiu $s2, $s2, 1 -/* 057EE8 800572E8 0C015BF3 */ jal func_80056FCC -/* 057EEC 800572EC 02402025 */ move $a0, $s2 -.L800572F0: -/* 057EF0 800572F0 26520001 */ addiu $s2, $s2, 1 -.L800572F4: -/* 057EF4 800572F4 24010007 */ li $at, 7 -/* 057EF8 800572F8 1641FFC8 */ bne $s2, $at, .L8005721C -/* 057EFC 800572FC 26310054 */ addiu $s1, $s1, 0x54 -/* 057F00 80057300 8FBF003C */ lw $ra, 0x3c($sp) -/* 057F04 80057304 8FB00018 */ lw $s0, 0x18($sp) -/* 057F08 80057308 8FB1001C */ lw $s1, 0x1c($sp) -/* 057F0C 8005730C 8FB20020 */ lw $s2, 0x20($sp) -/* 057F10 80057310 8FB30024 */ lw $s3, 0x24($sp) -/* 057F14 80057314 8FB40028 */ lw $s4, 0x28($sp) -/* 057F18 80057318 8FB5002C */ lw $s5, 0x2c($sp) -/* 057F1C 8005731C 8FB60030 */ lw $s6, 0x30($sp) -/* 057F20 80057320 8FB70034 */ lw $s7, 0x34($sp) -/* 057F24 80057324 8FBE0038 */ lw $fp, 0x38($sp) -/* 057F28 80057328 03E00008 */ jr $ra -/* 057F2C 8005732C 27BD0040 */ addiu $sp, $sp, 0x40 diff --git a/ctx_includes.c b/ctx_includes.c index 0e445ef07..efad5d72c 100644 --- a/ctx_includes.c +++ b/ctx_includes.c @@ -5,6 +5,7 @@ #include "include/libc/stdlib.h" #include "include/libc/string.h" #include "include/actor_types.h" +#include "include/bomb_kart.h" #include "include/common_structs.h" #include "include/config.h" #include "include/course_offsets.h" @@ -87,6 +88,7 @@ #include "src/math_util_2.h" #include "src/memory.h" #include "src/menus.h" +#include "src/podium_ceremony_actors.h" #include "src/profiler.h" #include "src/race_logic.h" #include "src/render_courses.h" @@ -111,7 +113,6 @@ #include "src/code_800AF9B0.h" #include "src/code_800B45E0.h" #include "src/code_80280000.h" -#include "src/podium_ceremony_actors.h" #include "src/code_80281780.h" #include "src/code_80281C40.h" #include "src/code_802AAA70.h" diff --git a/data/data_0DD0A0_1.s b/data/data_0DD0A0_1.s index bca9e0475..4bdb881ca 100644 --- a/data/data_0DD0A0_1.s +++ b/data/data_0DD0A0_1.s @@ -120,6 +120,7 @@ glabel D_800DCBB4 .endm glabel D_800DCC08 +# Mario Raceway Bomb Kart spawns Entry800DCC08 0x0028, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0 Entry800DCC08 0x0064, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0 Entry800DCC08 0x0109, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0 @@ -127,6 +128,8 @@ Entry800DCC08 0x011d, 0x0001, 0.8333333, 0.0, 0.0, 0.0, 0.0 Entry800DCC08 0x01a4, 0x0001, 0.8333333, 0.0, 0.0, 0.0, 0.0 Entry800DCC08 0x0000, 0x0000, 0.8333333, 0.0, 0.0, 0.0, 0.0 Entry800DCC08 0x0000, 0x0000, 0.8333333, 0.0, 0.0, 0.0, 0.0 + +# Choco Mountain Bomb Kart spawns Entry800DCC08 0x008c, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0 Entry800DCC08 0x00a5, 0x0001, 0.8333333, 0.0, 0.0, 0.0, 0.0 Entry800DCC08 0x014a, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0 @@ -134,6 +137,8 @@ Entry800DCC08 0x0226, 0x0001, 0.8333333, 0.0, 0.0, 0.0, 0.0 Entry800DCC08 0x0253, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0 Entry800DCC08 0x0000, 0x0000, 0.8333333, 0.0, 0.0, 0.0, 0.0 Entry800DCC08 0x0000, 0x0000, 0.8333333, 0.0, 0.0, 0.0, 0.0 + +# Bowser Castle Bomb Kart spawns Entry800DCC08 0x0032, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0 Entry800DCC08 0x0096, 0x0001, 0.8333333, 0.0, 0.0, 0.0, 0.0 Entry800DCC08 0x00c8, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0 @@ -141,6 +146,8 @@ Entry800DCC08 0x0104, 0x0001, 0.8333333, 0.0, 0.0, 0.0, 0.0 Entry800DCC08 0x01b3, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0 Entry800DCC08 0x0000, 0x0000, 0.8333333, 0.0, 0.0, 0.0, 0.0 Entry800DCC08 0x0000, 0x0000, 0.8333333, 0.0, 0.0, 0.0, 0.0 + +# Banshee Boardwalk Bomb Kart spawns Entry800DCC08 0x006e, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0 Entry800DCC08 0x00be, 0x0001, 0.8333333, 0.0, 0.0, 0.0, 0.0 Entry800DCC08 0x00fa, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0 @@ -148,6 +155,8 @@ Entry800DCC08 0x01db, 0x0001, 0.8333333, 0.0, 0.0, 0.0, 0.0 Entry800DCC08 0x0262, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0 Entry800DCC08 0x0000, 0x0000, 0.8333333, 0.0, 0.0, 0.0, 0.0 Entry800DCC08 0x0000, 0x0000, 0.8333333, 0.0, 0.0, 0.0, 0.0 + +# Yoshi Valley Bomb Kart spawns Entry800DCC08 0x0000, 0x0000, 0.8333333, -1533.0, -682.0, -103.0, 0.0 Entry800DCC08 0x000a, 0x0000, 0.8333333, -1565.0, -619.0, -109.0, 0.0 Entry800DCC08 0x0014, 0x0000, 0.8333333, -1529.0, -579.0, -109.0, 0.0 @@ -155,6 +164,8 @@ Entry800DCC08 0x001e, 0x0000, 0.8333333, -1588.0, -534.0, -106.0, 0.0 Entry800DCC08 0x0028, 0x0000, 0.8333333, -1598.0, -207.0, -105.0, 0.0 Entry800DCC08 0x0032, 0x0000, 0.8333333, -1646.0, -147.0, -93.0, 0.0 Entry800DCC08 0x003c, 0x0000, 0.8333333, -2532.0, -445.0, -90.0, 0.0 + +# Frappe Snowland Bomb Kart spawns Entry800DCC08 0x0032, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0 Entry800DCC08 0x0064, 0x0001, 0.8333333, 0.0, 0.0, 0.0, 0.0 Entry800DCC08 0x0096, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0 @@ -162,6 +173,8 @@ Entry800DCC08 0x0122, 0x0001, 0.8333333, 0.0, 0.0, 0.0, 0.0 Entry800DCC08 0x015e, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0 Entry800DCC08 0x0000, 0x0000, 0.8333333, 0.0, 0.0, 0.0, 0.0 Entry800DCC08 0x0000, 0x0000, 0.8333333, 0.0, 0.0, 0.0, 0.0 + +# Koopa Troopa Beach Bomb Kart spawns Entry800DCC08 0x003c, 0x0001, 0.8333333, 0.0, 0.0, 0.0, 0.0 Entry800DCC08 0x0078, 0x0001, 0.8333333, 0.0, 0.0, 0.0, 0.0 Entry800DCC08 0x00c8, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0 @@ -169,6 +182,8 @@ Entry800DCC08 0x0118, 0x0001, 0.8333333, 0.0, 0.0, 0.0, 0.0 Entry800DCC08 0x01b3, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0 Entry800DCC08 0x0000, 0x0000, 0.8333333, 0.0, 0.0, 0.0, 0.0 Entry800DCC08 0x0000, 0x0000, 0.8333333, 0.0, 0.0, 0.0, 0.0 + +# Royal Raceway Bomb Kart spawns Entry800DCC08 0x0032, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0 Entry800DCC08 0x0064, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0 Entry800DCC08 0x0128, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0 @@ -176,6 +191,8 @@ Entry800DCC08 0x0190, 0x0001, 0.8333333, 0.0, 0.0, 0.0, 0.0 Entry800DCC08 0x02ea, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0 Entry800DCC08 0x0000, 0x0000, 0.8333333, 0.0, 0.0, 0.0, 0.0 Entry800DCC08 0x0000, 0x0000, 0.8333333, 0.0, 0.0, 0.0, 0.0 + +# Luigi Raceway Bomb Kart spawns Entry800DCC08 0x0032, 0x0001, 0.8333333, 0.0, 0.0, 0.0, 0.0 Entry800DCC08 0x00c8, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0 Entry800DCC08 0x0131, 0x0001, 0.8333333, 0.0, 0.0, 0.0, 0.0 @@ -183,6 +200,8 @@ Entry800DCC08 0x01b8, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0 Entry800DCC08 0x0203, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0 Entry800DCC08 0x0000, 0x0000, 0.8333333, 0.0, 0.0, 0.0, 0.0 Entry800DCC08 0x0000, 0x0000, 0.8333333, 0.0, 0.0, 0.0, 0.0 + +# Moo Moo Farm Bomb Kart spawns Entry800DCC08 0x0032, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0 Entry800DCC08 0x008c, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0 Entry800DCC08 0x00e1, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0 @@ -190,6 +209,8 @@ Entry800DCC08 0x013c, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0 Entry800DCC08 0x01b2, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0 Entry800DCC08 0x0000, 0x0000, 0.8333333, 0.0, 0.0, 0.0, 0.0 Entry800DCC08 0x0000, 0x0000, 0.8333333, 0.0, 0.0, 0.0, 0.0 + +# Toads Turnpike Bomb Kart spawns Entry800DCC08 0x0032, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0 Entry800DCC08 0x0064, 0x0001, 0.8333333, 0.0, 0.0, 0.0, 0.0 Entry800DCC08 0x0096, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0 @@ -197,6 +218,8 @@ Entry800DCC08 0x00c8, 0x0001, 0.8333333, 0.0, 0.0, 0.0, 0.0 Entry800DCC08 0x00fa, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0 Entry800DCC08 0x0000, 0x0000, 0.8333333, 0.0, 0.0, 0.0, 0.0 Entry800DCC08 0x0000, 0x0000, 0.8333333, 0.0, 0.0, 0.0, 0.0 + +# Kalamari Desert Bomb Kart spawns Entry800DCC08 0x0032, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0 Entry800DCC08 0x008a, 0x0001, 0.8333333, 0.0, 0.0, 0.0, 0.0 Entry800DCC08 0x0118, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0 @@ -204,6 +227,8 @@ Entry800DCC08 0x0194, 0x0001, 0.8333333, 0.0, 0.0, 0.0, 0.0 Entry800DCC08 0x01fe, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0 Entry800DCC08 0x0000, 0x0000, 0.8333333, 0.0, 0.0, 0.0, 0.0 Entry800DCC08 0x0000, 0x0000, 0.8333333, 0.0, 0.0, 0.0, 0.0 + +# Sherbet Land Bomb Kart spawns Entry800DCC08 0x0032, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0 Entry800DCC08 0x0064, 0x0001, 0.8333333, 0.0, 0.0, 0.0, 0.0 Entry800DCC08 0x0096, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0 @@ -211,6 +236,8 @@ Entry800DCC08 0x00c8, 0x0001, 0.8333333, 0.0, 0.0, 0.0, 0.0 Entry800DCC08 0x00fa, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0 Entry800DCC08 0x0000, 0x0000, 0.8333333, 0.0, 0.0, 0.0, 0.0 Entry800DCC08 0x0000, 0x0000, 0.8333333, 0.0, 0.0, 0.0, 0.0 + +# Rainbow Road Bomb Kart spawns Entry800DCC08 0x0032, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0 Entry800DCC08 0x0064, 0x0001, 0.8333333, 0.0, 0.0, 0.0, 0.0 Entry800DCC08 0x0096, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0 @@ -218,6 +245,8 @@ Entry800DCC08 0x00c8, 0x0001, 0.8333333, 0.0, 0.0, 0.0, 0.0 Entry800DCC08 0x00fa, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0 Entry800DCC08 0x0000, 0x0000, 0.8333333, 0.0, 0.0, 0.0, 0.0 Entry800DCC08 0x0000, 0x0000, 0.8333333, 0.0, 0.0, 0.0, 0.0 + +# Wario Stadium Bomb Kart spawns Entry800DCC08 0x0032, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0 Entry800DCC08 0x0064, 0x0001, 0.8333333, 0.0, 0.0, 0.0, 0.0 Entry800DCC08 0x0096, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0 @@ -225,6 +254,8 @@ Entry800DCC08 0x00c8, 0x0001, 0.8333333, 0.0, 0.0, 0.0, 0.0 Entry800DCC08 0x00fa, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0 Entry800DCC08 0x0000, 0x0000, 0.8333333, 0.0, 0.0, 0.0, 0.0 Entry800DCC08 0x0000, 0x0000, 0.8333333, 0.0, 0.0, 0.0, 0.0 + +# Block Fort Bomb Kart spawns Entry800DCC08 0x0014, 0x0000, 1.0, 0.0, 0.0, 0.0, 0.0 Entry800DCC08 0x0028, 0x0000, 1.0, 0.0, 0.0, 0.0, 0.0 Entry800DCC08 0x003c, 0x0000, 1.0, 0.0, 0.0, 0.0, 0.0 @@ -232,6 +263,8 @@ Entry800DCC08 0x0050, 0x0000, 1.0, 0.0, 0.0, 0.0, 0.0 Entry800DCC08 0x0064, 0x0000, 1.0, 0.0, 0.0, 0.0, 0.0 Entry800DCC08 0x0078, 0x0000, 1.0, 0.0, 0.0, 0.0, 0.0 Entry800DCC08 0x008c, 0x0000, 1.0, 0.0, 0.0, 0.0, 0.0 + +# Skyscraper Bomb Kart spawns Entry800DCC08 0x0014, 0x0000, 1.0, 0.0, 0.0, 0.0, 0.0 Entry800DCC08 0x0028, 0x0000, 1.0, 0.0, 0.0, 0.0, 0.0 Entry800DCC08 0x003c, 0x0000, 1.0, 0.0, 0.0, 0.0, 0.0 @@ -239,6 +272,8 @@ Entry800DCC08 0x0050, 0x0000, 1.0, 0.0, 0.0, 0.0, 0.0 Entry800DCC08 0x0064, 0x0000, 1.0, 0.0, 0.0, 0.0, 0.0 Entry800DCC08 0x0078, 0x0000, 1.0, 0.0, 0.0, 0.0, 0.0 Entry800DCC08 0x008c, 0x0000, 1.0, 0.0, 0.0, 0.0, 0.0 + +# Double Deck Bomb Kart spawns Entry800DCC08 0x0014, 0x0000, 1.0, 0.0, 0.0, 0.0, 0.0 Entry800DCC08 0x0028, 0x0000, 1.0, 0.0, 0.0, 0.0, 0.0 Entry800DCC08 0x003c, 0x0000, 1.0, 0.0, 0.0, 0.0, 0.0 @@ -246,6 +281,8 @@ Entry800DCC08 0x0050, 0x0000, 1.0, 0.0, 0.0, 0.0, 0.0 Entry800DCC08 0x0064, 0x0000, 1.0, 0.0, 0.0, 0.0, 0.0 Entry800DCC08 0x0078, 0x0000, 1.0, 0.0, 0.0, 0.0, 0.0 Entry800DCC08 0x008c, 0x0000, 1.0, 0.0, 0.0, 0.0, 0.0 + +# DK Jungle Bomb Kart spawns Entry800DCC08 0x0032, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0 Entry800DCC08 0x0064, 0x0001, 0.8333333, 0.0, 0.0, 0.0, 0.0 Entry800DCC08 0x0096, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0 @@ -253,6 +290,8 @@ Entry800DCC08 0x00be, 0x0001, 0.8333333, 0.0, 0.0, 0.0, 0.0 Entry800DCC08 0x00fa, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0 Entry800DCC08 0x0000, 0x0000, 0.8333333, 0.0, 0.0, 0.0, 0.0 Entry800DCC08 0x0000, 0x0000, 0.8333333, 0.0, 0.0, 0.0, 0.0 + +# Big Donut Bomb Kart spawns Entry800DCC08 0x0014, 0x0000, 1.0, 0.0, 0.0, 0.0, 0.0 Entry800DCC08 0x0028, 0x0000, 1.0, 0.0, 0.0, 0.0, 0.0 Entry800DCC08 0x003c, 0x0000, 1.0, 0.0, 0.0, 0.0, 0.0 @@ -260,6 +299,8 @@ Entry800DCC08 0x0050, 0x0000, 1.0, 0.0, 0.0, 0.0, 0.0 Entry800DCC08 0x0064, 0x0000, 1.0, 0.0, 0.0, 0.0, 0.0 Entry800DCC08 0x0078, 0x0000, 1.0, 0.0, 0.0, 0.0, 0.0 Entry800DCC08 0x008c, 0x0000, 1.0, 0.0, 0.0, 0.0, 0.0 + +# Award Ceremony Bomb Kart spawns Entry800DCC08 0x0003, 0x0005, 1.250000, 0.0, 0.0, 0.0, 0.0 Entry800DCC08 0x0028, 0x0000, 1.0, 0.0, 0.0, 0.0, 0.0 Entry800DCC08 0x003c, 0x0000, 1.0, 0.0, 0.0, 0.0, 0.0 diff --git a/include/bomb_kart.h b/include/bomb_kart.h new file mode 100644 index 000000000..428bf3531 --- /dev/null +++ b/include/bomb_kart.h @@ -0,0 +1,63 @@ +#ifndef BOMB_KART_H +#define BOMB_KART_H + +#include "common_structs.h" + +#define NUM_BOMB_KARTS_MAX 7 +#define NUM_BOMB_KARTS_VERSUS 7 +#define NUM_BOMB_KARTS_BATTLE 4 + +#define BOMB_STATE_INACTIVE 0 +#define BOMB_STATE_CCW 1 +#define BOMB_STATE_CW 2 +#define BOMB_STATE_STATIONARY 3 // Paused? +#define BOMB_STATE_EXPLODED 4 // Or maybe exploding? +#define BOMB_STATE_UNKNOWN 5 + +typedef struct { + /* 0x00 */ u16 wayPointIndex; + /* 0x02 */ u16 startingState; + /* 0x04 */ f32 unk_04; // Used to set the value of unk_3C in struct_D_80163DE8_entry + /* 0x08 */ f32 startingXPos; + /* 0x0C */ f32 startingZPos; + /** + * These 2 never seem to get referenced. They also only have non-zero + * data for the Yoshi Valley set of spawns + **/ + /* 0x10 */ f32 unk_10; + /* 0x14 */ f32 unk_14; +} BombKartSpawn; // size = 0x18 + +typedef struct { + /** + * This struct is in part representative of the + * bomb kart hazards in VS mode. + * There may be objects associated with them too + **/ + /* 0x00 */ Vec3f bombPos; + /* 0x0C */ Vec3f wheel1Pos; + /* 0x18 */ Vec3f wheel2Pos; + /* 0x24 */ Vec3f wheel3Pos; + /* 0x30 */ Vec3f wheel4Pos; + /* 0x3C */ f32 unk_3C; + /* 0x40 */ s16 someRot; // seems like an angle of some variety, can't figure out its purpose + /* 0x42 */ u16 wayPointIndex; // probably the waypoint that the bomb circles + /* 0x44 */ u16 state; + /* 0x46 */ s16 bounceTimer; // timer? state? height? + /* 0x48 */ s16 circleTimer; // timer? state? Somehow controls how it circles around + /* 0x4A */ s16 unk_4A; + /* 0x4C */ s16 unk_4C; + /* 0x4E */ // s16 compilerPadding; + /* 0x50 */ f32 yPos; // Y position of the center of the circle +} struct_D_80163DE8_entry; // size = 0x54 + +// Indexes for the objects associated with the Bomb Karts +extern s32 D_80183DD8[NUM_BOMB_KARTS_MAX]; + +extern struct_D_80163DE8_entry D_80163DE8[NUM_BOMB_KARTS_MAX]; +extern UnkActorInner D_80164038[NUM_BOMB_KARTS_MAX]; + +// data/data_0DD0A0_1.s +extern BombKartSpawn D_800DCC08[NUM_COURSES][NUM_BOMB_KARTS_MAX]; + +#endif diff --git a/include/objects.h b/include/objects.h index 2ff7b3162..d86e5d581 100644 --- a/include/objects.h +++ b/include/objects.h @@ -4,7 +4,6 @@ #include "common_structs.h" #define OBJECT_LIST_SIZE 0x226 -#define D_80183DD8_SIZE 7 #define SOME_OBJECT_INDEX_LIST_SIZE 32 typedef struct @@ -89,7 +88,6 @@ extern struct_80165C18_entry D_80165C18[]; * Lakitu? **/ extern s32 D_80183DB8[]; -extern s32 D_80183DD8[]; // Appears to be a list of object list indices for the Item Window part of the HUD extern s32 gItemWindowObjectByPlayerId[]; diff --git a/src/code_80005FD0.c b/src/code_80005FD0.c index 1b7eadd33..66ceeaac3 100644 --- a/src/code_80005FD0.c +++ b/src/code_80005FD0.c @@ -16,6 +16,7 @@ #include "vehicles.h" #include "hud_renderer.h" #include "code_80057C60.h" +#include "bomb_kart.h" // Strings, presented by google translate! // Note that these are EUC-JP encoded, see: @@ -4309,94 +4310,74 @@ void func_8000DBAC(Vec3f arg0, s16 *arg1, f32 arg2) { GLOBAL_ASM("asm/non_matchings/code_80005FD0/func_8000DBAC.s") #endif -#ifdef MIPS_TO_C -//generated by m2c commit 3b40ab93768f52ac241c5ae84ef58ef6bc4cb1de -extern ? D_80163DE8; -extern UnkActorInner D_80164038; -extern ? gUnexpiredActorsList; -static struct _struct_D_800DCC08_0xA8 D_800DCC08[0]; /* unable to generate initializer */ -s16 gCurrentCourseId; /* unable to generate initializer */ - void func_8000DD78(void) { - ? *var_s0; UnkActorInner *var_s2; - f32 var_f20; - f32 var_f22; - f32 var_f2; - s16 temp_v0; + f32 startingXPos; + f32 startingZPos; + f32 startingYPos; s32 var_s3; - struct TrackWayPoint *temp_v0_2; - void *temp_s1; - void *temp_v0_3; + struct TrackWayPoint *temp_v0; + struct_D_80163DE8_entry *var_s0; + BombKartSpawn *temp_s1; - var_s2 = &D_80164038; - var_s0 = &D_80163DE8; - var_s3 = 0; - do { - temp_v0 = gCurrentCourseId; - temp_s1 = &D_800DCC08[temp_v0] + var_s3; - if (temp_v0 != 4) { - if (temp_v0 != 0x0014) { - temp_v0_2 = &D_80164550->unk0[temp_s1->unk0]; - var_f20 = (f32) temp_v0_2->wayPointX; - var_f2 = (f32) temp_v0_2->wayPointY; - var_f22 = (f32) temp_v0_2->wayPointZ; - } else { - temp_v0_3 = D_80164550->unkC + (temp_s1->unk0 * 8); - var_f20 = (f32) temp_v0_3->unk0; - var_f2 = (f32) temp_v0_3->unk2; - var_f22 = (f32) temp_v0_3->unk4; - } - } else { - var_f22 = temp_s1->unkC; - var_f20 = temp_s1->unk8; - var_f2 = func_802AE1C0(var_f20, 2000.0f, var_f22); + for (var_s3 = 0; var_s3 < NUM_BOMB_KARTS_VERSUS; var_s3++) { + temp_s1 = &D_800DCC08[gCurrentCourseId][var_s3]; + switch (gCurrentCourseId) { + case COURSE_YOSHI_VALLEY: + startingXPos = temp_s1->startingXPos; + startingZPos = temp_s1->startingZPos; + startingYPos = func_802AE1C0(startingXPos, 2000.0f, startingZPos); + break; + case COURSE_AWARD_CEREMONY: + temp_v0 = &D_80164550[3][temp_s1->wayPointIndex]; + startingXPos = temp_v0->wayPointX; + startingYPos = temp_v0->wayPointY; + startingZPos = temp_v0->wayPointZ; + break; + default: + temp_v0 = &D_80164550[0][temp_s1->wayPointIndex]; + startingXPos = temp_v0->wayPointX; + startingYPos = temp_v0->wayPointY; + startingZPos = temp_v0->wayPointZ; + break; } - var_s0->unk0 = var_f20; - var_s0->unk4 = var_f2; - var_s0->unk8 = var_f22; - var_s0->unkC = var_f20; - var_s0->unk10 = var_f2; - var_s0->unk14 = var_f22; - var_s0->unk18 = var_f20; - var_s0->unk1C = var_f2; - var_s0->unk20 = var_f22; - var_s0->unk24 = var_f20; - var_s0->unk28 = var_f2; - var_s0->unk2C = var_f22; - var_s0->unk30 = var_f20; - var_s0->unk34 = var_f2; - var_s0->unk38 = var_f22; - var_s0->unk42 = (u16) temp_s1->unk0; - var_s0->unk46 = 0; - var_s0->unk48 = 0; - var_s0->unk3C = (f32) temp_s1->unk4; - var_s0->unk4A = 0; - var_s0->unk4C = 1; - var_s0->unk50 = var_f2; - var_s0->unk44 = (u16) temp_s1->unk2; - func_802ADDC8(var_s2, 2.0f, var_f20, var_f2, var_f22); - var_s2 += 0x40; - var_s3 += 0x18; - var_s0 += 0x54; - } while (var_s2 != &gUnexpiredActorsList); + D_80163DE8[var_s3].bombPos[0] = startingXPos; + D_80163DE8[var_s3].bombPos[1] = startingYPos; + D_80163DE8[var_s3].bombPos[2] = startingZPos; + D_80163DE8[var_s3].wheel1Pos[0] = startingXPos; + D_80163DE8[var_s3].wheel1Pos[1] = startingYPos; + D_80163DE8[var_s3].wheel1Pos[2] = startingZPos; + D_80163DE8[var_s3].wheel2Pos[0] = startingXPos; + D_80163DE8[var_s3].wheel2Pos[1] = startingYPos; + D_80163DE8[var_s3].wheel2Pos[2] = startingZPos; + D_80163DE8[var_s3].wheel3Pos[0] = startingXPos; + D_80163DE8[var_s3].wheel3Pos[1] = startingYPos; + D_80163DE8[var_s3].wheel3Pos[2] = startingZPos; + D_80163DE8[var_s3].wheel4Pos[0] = startingXPos; + D_80163DE8[var_s3].wheel4Pos[1] = startingYPos; + D_80163DE8[var_s3].wheel4Pos[2] = startingZPos; + D_80163DE8[var_s3].wayPointIndex = temp_s1->wayPointIndex; + D_80163DE8[var_s3].unk_3C = temp_s1->unk_04; + D_80163DE8[var_s3].bounceTimer = 0; + D_80163DE8[var_s3].circleTimer = 0; + D_80163DE8[var_s3].state = temp_s1->startingState; + D_80163DE8[var_s3].unk_4A = 0; + D_80163DE8[var_s3].unk_4C = 1; + D_80163DE8[var_s3].yPos = startingYPos; + func_802ADDC8(&D_80164038[var_s3], 2.0f, startingXPos, startingYPos, startingZPos); + } } -#else -GLOBAL_ASM("asm/non_matchings/code_80005FD0/func_8000DD78.s") -#endif #ifdef MIPS_TO_C -//generated by m2c commit 3b40ab93768f52ac241c5ae84ef58ef6bc4cb1de +//generated by m2c commit eefca95b040d7ee0c617bc58f9ac6cd1cf7bce87 on Aug-17-2023 extern f32 D_80162FB0; extern f32 D_80162FC0; extern s16 D_8016347C; extern s16 D_8016347E; -extern ? D_80163DE8; -extern UnkActorInner D_80164038; +extern ? D_80164038; extern u16 D_8016443E; extern s32 D_8016455C; extern u16 D_801645CE; -extern s8 D_8018EDF3; s16 gCurrentCourseId; /* unable to generate initializer */ void func_8000DF8C(s32 arg0) { @@ -4418,7 +4399,6 @@ void func_8000DF8C(s32 arg0) { s32 sp4C; /* compiler-managed */ s32 sp48; /* compiler-managed */ s32 sp44; - Player *temp_v0; Player *var_v0; UnkActorInner *temp_a0_4; f32 temp_f0; @@ -4450,12 +4430,11 @@ void func_8000DF8C(s32 arg0) { f64 temp_f10; f64 temp_f4; f64 temp_f8; - s16 temp_v0_6; + s16 temp_v0_5; s32 temp_a0; s32 temp_a0_2; s32 temp_a0_3; s32 temp_at; - s32 temp_t0; s32 temp_t2; s32 temp_t2_2; s32 temp_t6; @@ -4464,46 +4443,43 @@ void func_8000DF8C(s32 arg0) { s32 temp_t9_2; s32 var_a0; s8 var_v1; - struct TrackWayPoint *temp_a3_2; - struct TrackWayPoint *temp_v0_3; - struct TrackWayPoint *temp_v0_5; - struct TrackWayPoint *temp_v0_8; + struct TrackWayPoint *temp_v0_2; + struct TrackWayPoint *temp_v0_4; + struct TrackWayPoint *temp_v0_7; struct TrackWayPoint *temp_v1_2; - u16 temp_a3; + struct_D_80163DE8_entry *temp_s0; u16 temp_t4; u16 temp_t9; - u16 temp_v0_2; - u16 temp_v0_4; + u16 temp_v0; + u16 temp_v0_3; u16 var_s1; - void *temp_s0; - void *temp_v0_7; + void *temp_v0_6; void *temp_v1; - temp_s0 = (arg0 * 0x54) + &D_80163DE8; - temp_t9 = temp_s0->unk44; + temp_s0 = &D_80163DE8[arg0]; + temp_t9 = (u16) temp_s0->state; temp_t2 = temp_t9 & 0xFFFF; sp4C = temp_t2; sp7E = temp_t9; - if ((temp_t2 != 0) && ((temp_s0->unk4A != 1) || (gCurrentCourseId == 0x0014))) { - var_f22 = temp_s0->unk0; - var_f20 = temp_s0->unk4; - var_f24 = temp_s0->unk8; - spCA = temp_s0->unk42; - spC4 = temp_s0->unk3C; - spC2 = temp_s0->unk40; - sp7C = temp_s0->unk46; - var_s1 = temp_s0->unk48; + if ((temp_t2 != 0) && (((u16) temp_s0->unk_4A != 1) || (gCurrentCourseId == 0x0014))) { + var_f22 = temp_s0->bombPos[0]; + var_f20 = temp_s0->bombPos[1]; + var_f24 = temp_s0->bombPos[2]; + spCA = (u16) temp_s0->wayPointIndex; + spC4 = temp_s0->unk_3C; + spC2 = (u16) temp_s0->someRot; + sp7C = (u16) temp_s0->bounceTimer; + var_s1 = (u16) temp_s0->circleTimer; if ((sp4C != 0) && (sp4C != 4)) { if (gCurrentCourseId == 0x0014) { if (D_8016347E == (s16) 1U) { - temp_v0 = gPlayerFour; - temp_f0 = var_f22 - temp_v0->pos[0]; - temp_f2 = var_f20 - temp_v0->pos[1]; - temp_f12 = var_f24 - temp_v0->pos[2]; + temp_f0 = var_f22 - gPlayerFour->pos[0]; + temp_f2 = var_f20 - gPlayerFour->pos[1]; + temp_f12 = var_f24 - gPlayerFour->pos[2]; if (((temp_f0 * temp_f0) + (temp_f2 * temp_f2) + (temp_f12 * temp_f12)) < 25.0f) { sp7E = 4; - temp_v0->statusEffects |= 0x400000; - temp_v0->unk_000 &= ~0x2000; + gPlayerFour->statusEffects |= 0x400000; + gPlayerFour->unk_000 &= ~0x2000; var_s1 = 0; sp4C = 4; } @@ -4540,77 +4516,75 @@ void func_8000DF8C(s32 arg0) { case 1: temp_t4 = ((s32) (var_s1 + 0x164) % 360) & 0xFFFF; temp_t6 = ((s32) (temp_t4 * 0xFFFF) / 360) & 0xFFFF; - temp_v0_2 = temp_t4; + temp_v0 = temp_t4; var_s1 = temp_t4; - sp48 = (s32) temp_v0_2; + sp48 = (s32) temp_v0; sp44 = temp_t6; sp118 = (f32) ((f64) coss((u16) temp_t6) * 25.0); temp_f0_3 = sins((u16) sp44); - temp_v0_3 = &(*D_80164550)[spCA]; - var_f20 = temp_s0->unk50 + 3.5f; + temp_v0_2 = &(*D_80164550)[spCA]; + var_f20 = temp_s0->yPos + 3.5f; temp_t7 = ((s32) (((s32) (sp48 + 1) % 360) * 0xFFFF) / 360) & 0xFFFF; - var_f22 = (f32) temp_v0_3->wayPointX + sp118; + var_f22 = (f32) temp_v0_2->wayPointX + sp118; D_80162FB0.unk4 = var_f20; D_80162FB0.unk0 = var_f22; sp44 = temp_t7; - sp110 = temp_v0_3; - var_f24 = (f32) temp_v0_3->wayPointZ + (f32) ((f64) temp_f0_3 * 25.0); + sp110 = temp_v0_2; + var_f24 = (f32) temp_v0_2->wayPointZ + (f32) ((f64) temp_f0_3 * 25.0); D_80162FB0.unk8 = var_f24; sp118 = (f32) ((f64) coss((u16) temp_t7) * 25.0); temp_f10 = (f64) sins((u16) sp44); - D_80162FC0.unk0 = (f32) temp_v0_3->wayPointX + sp118; - D_80162FC0.unk4 = (f32) temp_v0_3->wayPointY; - D_80162FC0.unk8 = (f32) ((f32) temp_v0_3->wayPointZ + (f32) (temp_f10 * 25.0)); + D_80162FC0.unk0 = (f32) temp_v0_2->wayPointX + sp118; + D_80162FC0.unk4 = (f32) temp_v0_2->wayPointY; + D_80162FC0.unk8 = (f32) ((f32) temp_v0_2->wayPointZ + (f32) (temp_f10 * 25.0)); spC2 = (u16) ((s32) (func_802B5224(&D_80162FB0, &D_80162FC0) * 0xFFFF) / 65520); break; case 2: - temp_v0_4 = ((s32) (var_s1 + 4) % 360) & 0xFFFF; - temp_a0 = ((s32) (temp_v0_4 * 0xFFFF) / 360) & 0xFFFF; - var_s1 = temp_v0_4; + temp_v0_3 = ((s32) (var_s1 + 4) % 360) & 0xFFFF; + temp_a0 = ((s32) (temp_v0_3 * 0xFFFF) / 360) & 0xFFFF; + var_s1 = temp_v0_3; sp44 = temp_a0; - sp48 = (s32) temp_v0_4; + sp48 = (s32) temp_v0_3; sp118 = (f32) ((f64) coss((u16) temp_a0) * 25.0); - temp_v0_5 = &(*D_80164550)[spCA]; - var_f22 = (f32) temp_v0_5->wayPointX + sp118; - var_f20 = temp_s0->unk50 + 3.5f; + temp_v0_4 = &(*D_80164550)[spCA]; + var_f22 = (f32) temp_v0_4->wayPointX + sp118; + var_f20 = temp_s0->yPos + 3.5f; temp_f4 = (f64) sins((u16) temp_a0) * 25.0; temp_a0_2 = ((s32) (((s32) (sp48 + 1) % 360) * 0xFFFF) / 360) & 0xFFFF; D_80162FB0.unk0 = var_f22; D_80162FB0.unk4 = var_f20; sp44 = temp_a0_2; - sp110 = temp_v0_5; - var_f24 = (f32) temp_v0_5->wayPointZ + (f32) temp_f4; + sp110 = temp_v0_4; + var_f24 = (f32) temp_v0_4->wayPointZ + (f32) temp_f4; D_80162FB0.unk8 = var_f24; sp118 = (f32) ((f64) coss((u16) temp_a0_2) * 25.0); temp_f8 = (f64) sins((u16) temp_a0_2); - D_80162FC0.unk0 = (f32) temp_v0_5->wayPointX + sp118; - D_80162FC0.unk4 = (f32) temp_v0_5->wayPointY; - D_80162FC0.unk8 = (f32) ((f32) temp_v0_5->wayPointZ + (f32) (temp_f8 * 25.0)); + D_80162FC0.unk0 = (f32) temp_v0_4->wayPointX + sp118; + D_80162FC0.unk4 = (f32) temp_v0_4->wayPointY; + D_80162FC0.unk8 = (f32) ((f32) temp_v0_4->wayPointZ + (f32) (temp_f8 * 25.0)); spC2 = (u16) ((s32) (func_802B5224(&D_80162FB0, &D_80162FC0) * 0xFFFF) / 65520); default: break; case 3: spC2 = 0; - var_f20 = temp_s0->unk50 + 3.5f; + var_f20 = temp_s0->yPos + 3.5f; break; case 5: if ((D_8016347C == 0) || ((s32) D_8016443E < 5)) { } else { - temp_v0_6 = func_8000D2B4(var_f22, var_f20, var_f24, (s16) spCA, 3); - temp_a0_3 = temp_v0_6 & 0xFFFF; - spCA = temp_v0_6; + temp_v0_5 = func_8000D2B4(var_f22, var_f20, var_f24, (s16) spCA, 3); + temp_a0_3 = temp_v0_5 & 0xFFFF; + spCA = temp_v0_5; if ((temp_a0_3 < 0) || ((s32) D_801645CE < temp_a0_3)) { spCA = 0; } if ((s32) spCA < 0x1A) { - temp_a3 = D_801645CE; - temp_t0 = D_8016455C; - temp_v0_7 = (((s32) (spCA + 1) % (s32) temp_a3) * 8) + temp_t0; - D_80162FB0.unk0 = (f32) temp_v0_7->unk0; - temp_v1 = (((s32) (spCA + 2) % (s32) temp_a3) * 8) + temp_t0; - D_80162FB0.unk4 = (f32) temp_v0_7->unk2; - D_80162FB0.unk8 = (f32) temp_v0_7->unk4; + temp_v0_6 = (((s32) (spCA + 1) % (s32) D_801645CE) * 8) + D_8016455C; + D_80162FB0.unk0 = (f32) temp_v0_6->unk0; + temp_v1 = (((s32) (spCA + 2) % (s32) D_801645CE) * 8) + D_8016455C; + D_80162FB0.unk4 = (f32) temp_v0_6->unk2; + D_80162FB0.unk8 = (f32) temp_v0_6->unk4; D_80162FC0.unk0 = (f32) temp_v1->unk0; D_80162FC0.unk4 = (f32) temp_v1->unk2; D_80162FC0.unk8 = (f32) temp_v1->unk4; @@ -4630,7 +4604,7 @@ void func_8000DF8C(s32 arg0) { spF0 = temp_f16; temp_f0_4 = sqrtf((temp_f14 * temp_f14) + (temp_f16 * temp_f16)); if (temp_f0_4 > 0.01f) { - temp_f2_3 = temp_s0->unk3C; + temp_f2_3 = temp_s0->unk_3C; var_f22 += (temp_f2_3 * temp_f14) / temp_f0_4; var_f24 += (temp_f2_3 * temp_f16) / temp_f0_4; } else { @@ -4641,18 +4615,17 @@ void func_8000DF8C(s32 arg0) { sp48 = temp_a0_4; var_f20 = func_802ABE30(var_f22, 2000.0f, var_f24, temp_a0_4->unk3A) + 3.5f; if ((f64) var_f20 < -1000.0) { - var_f20 = temp_s0->unk4; + var_f20 = temp_s0->bombPos[1]; } func_802ADDC8(temp_a0_4, 10.0f, var_f22, var_f20, var_f24); } break; case 4: - temp_a3_2 = *D_80164550; - temp_v0_8 = &temp_a3_2[spCA]; - D_80162FB0.unk0 = (f32) temp_v0_8->wayPointX; - D_80162FB0.unk4 = (f32) temp_v0_8->wayPointY; - D_80162FB0.unk8 = (f32) temp_v0_8->wayPointZ; - temp_v1_2 = &temp_a3_2[(s32) (spCA + 1) % (s32) *gWaypointCountByPathIndex]; + temp_v0_7 = &(*D_80164550)[spCA]; + D_80162FB0.unk0 = (f32) temp_v0_7->wayPointX; + D_80162FB0.unk4 = (f32) temp_v0_7->wayPointY; + D_80162FB0.unk8 = (f32) temp_v0_7->wayPointZ; + temp_v1_2 = &(*D_80164550)[(s32) (spCA + 1) % (s32) *gWaypointCountByPathIndex]; D_80162FC0.unk0 = (f32) temp_v1_2->wayPointX; D_80162FC0.unk4 = (f32) temp_v1_2->wayPointY; var_f6 = (f32) var_s1; @@ -4707,28 +4680,28 @@ void func_8000DF8C(s32 arg0) { } temp_f12_5 = -var_f18; temp_f0_5 = var_f18 + sp118; - temp_s0->unkC = (f32) ((sp118 - var_f18) + var_f22); - temp_s0->unk18 = (f32) (temp_f0_5 + var_f22); - temp_s0->unk10 = spAC; - temp_s0->unk14 = (f32) (temp_f0_5 + var_f24); + temp_s0->wheel1Pos[0] = (sp118 - var_f18) + var_f22; + temp_s0->wheel2Pos[0] = temp_f0_5 + var_f22; + temp_s0->wheel1Pos[1] = spAC; + temp_s0->wheel1Pos[2] = temp_f0_5 + var_f24; temp_f2_5 = -sp118; - temp_s0->unk1C = spA0; - temp_s0->unk20 = (f32) ((var_f18 - sp118) + var_f24); - temp_s0->unk24 = (f32) ((temp_f2_5 - var_f18) + var_f22); - temp_s0->unk2C = (f32) (temp_f12_5 + sp118 + var_f24); - temp_s0->unk28 = sp94; - temp_s0->unk30 = (f32) (temp_f2_5 + var_f18 + var_f22); - temp_s0->unk0 = var_f22; - temp_s0->unk38 = (f32) ((temp_f12_5 - sp118) + var_f24); - temp_s0->unk4 = var_f20; - temp_s0->unk8 = var_f24; - temp_s0->unk34 = sp88; - temp_s0->unk42 = spCA; - temp_s0->unk3C = spC4; - temp_s0->unk40 = spC2; - temp_s0->unk44 = sp7E; - temp_s0->unk48 = var_s1; - temp_s0->unk46 = sp7C; + temp_s0->wheel2Pos[1] = spA0; + temp_s0->wheel2Pos[2] = (var_f18 - sp118) + var_f24; + temp_s0->wheel3Pos[0] = (temp_f2_5 - var_f18) + var_f22; + temp_s0->wheel3Pos[2] = temp_f12_5 + sp118 + var_f24; + temp_s0->wheel3Pos[1] = sp94; + temp_s0->wheel4Pos[0] = temp_f2_5 + var_f18 + var_f22; + temp_s0->bombPos[0] = var_f22; + temp_s0->wheel4Pos[2] = (temp_f12_5 - sp118) + var_f24; + temp_s0->bombPos[1] = var_f20; + temp_s0->bombPos[2] = var_f24; + temp_s0->wheel4Pos[1] = sp88; + temp_s0->wayPointIndex = (s16) spCA; + temp_s0->unk_3C = spC4; + temp_s0->someRot = (s16) spC2; + temp_s0->state = (s16) sp7E; + temp_s0->circleTimer = (s16) var_s1; + temp_s0->bounceTimer = (s16) sp7C; } } #else @@ -11507,7 +11480,7 @@ extern s16 D_8016347C; extern s16 D_8016347E; extern s32 D_80163480; extern s32 D_80163484; -extern u16 D_80163E2C; +extern u16 D_80163E2C; // This is really D_80163DE8.state void func_8001C14C(void) { Player *temp_s0; @@ -11574,7 +11547,7 @@ GLOBAL_ASM("asm/non_matchings/code_80005FD0/func_8001C14C.s") void func_8001C3C4(s32 arg0) { if (gCurrentCourseId == COURSE_AWARD_CEREMONY) { - if (D_80163E2A >= 16) { + if (D_80163DE8[0].wayPointIndex >= 16) { func_80057114(3); } } else { diff --git a/src/code_80005FD0.h b/src/code_80005FD0.h index f33c3863b..ee7a23295 100644 --- a/src/code_80005FD0.h +++ b/src/code_80005FD0.h @@ -28,32 +28,31 @@ struct unexpiredActors { /* Function Prototypes */ -f32 func_80014EE4(f32 arg0, s32 arg1); -void func_8001C14C(void); -void func_800070F4(void); -void func_80019DF4(void); -void func_80019C50(s32); -void func_80019FB4(s32); -void func_80019D2C(Camera*, Player*, s32); -void func_80019E58(void); s16 func_80005FD0(Vec3f, Vec3f); + s32 func_80006018(f32, f32, f32, f32, f32, f32, f32, f32); void func_80006114(Vec3f, Vec3f, s16); s32 func_800061DC(Vec3f, f32, s32); + +void func_800070F4(void); void func_800074D4(); s32 func_80007BF8(u16, u16, u16, u16, u16); + void func_80008DC0(s32); s32 func_80008E58(s32, s32); void func_80008F38(s32); + void func_80009000(s32); void func_800090F0(s32, Player*); void func_800097E0(void); void func_80009B60(s32); + s32 func_8000B7E4(s32, u16); s32 func_8000B820(s32); f32 func_8000B874(f32, f32, u16, s32); void func_8000B95C(s32, u16, s32); s16 func_8000BD94(f32, f32, f32, s32); + s16 func_8000C0BC(f32, f32, f32, u16, s32*); s16 func_8000C884(f32, f32, f32, s16, s32, u16); s16 func_8000C9DC(f32, f32, f32, s16, s32); @@ -61,24 +60,29 @@ void func_8000CBA4(f32, f32, f32, s16*); void func_8000CBF8(f32, f32, f32, s16*, s32); s16 func_8000CC88(f32, f32, f32, Player*, s32, s32*); s16 func_8000CD24(f32, f32, f32, s16, Player*, s32, s32); + s16 func_8000D24C(f32, f32, f32, s32*); s16 func_8000D2B4(f32, f32, f32, s16, s32); s16 func_8000D33C(f32, f32, f32, s16, s32); s16 func_8000D6D0(Vec3f, s16*, f32, f32, s32, s32); s16 func_8000D940(Vec3f, s16*, f32, f32, s32); s16 func_8000DBAC(Vec3f, s16*, f32); +void func_8000DD78(); +void func_8000DF8C(s32); + s32 func_8000ED14(s32, s16); s32 func_8000ED80(s32); s32 func_8000EDC8(s32); -void func_8000DF8C(s32); s32 func_8000EE10(s32); void func_8000EE58(s32); -void func_8000EF20(); void func_8000EEDC(); void func_8000EF20(); +void func_8000EF20(); + void func_8000F0E0(); void func_8000F124(); void func_8000F2BC(struct TrackWayPoint*, size_t); + void func_80010218(s32); f32 func_80010480(s32, u16); void func_800107C4(s32); @@ -86,19 +90,23 @@ s16 func_80010CB0(s32, s32); void func_80010DBC(s32); f32 func_80010F40(f32, f32, f32, s32); f32 func_80010FA0(f32, f32, f32, s32); + s32 process_path_data(struct TrackWayPoint*, struct TrackWayPoint*); void func_80011AB8(s32); void func_80011AE4(s32); + void func_80012220(VehicleStuff*); void func_800122D8(); void func_80012A48(TrainCarStuff*, s16); void func_80012AC0(); void func_80012DC0(s32, Player*); + void func_800133C4(); void func_80013854(Player*); f32 func_80013C74(s16, s16); void func_80013D20(VehicleStuff*); void func_80013F7C(s32, Player*, VehicleStuff*, f32, f32, s32, u32); + f32 func_800145A8(s16, f32, s16); void func_800146B8(s32, s32, VehicleStuff*); void func_8001487C(); @@ -114,21 +122,32 @@ void func_80014C78(); void func_80014CC0(s32, Player*); void func_80014D08(s32); void func_80014D30(s32, s32); +f32 func_80014EE4(f32 arg0, s32 arg1); + void func_8001530C(); void func_80015314(s32, s32, s32); void func_80015390(Camera*, Player*, s32); + void func_8001968C(); -void func_8001C05C(); +void func_80019C50(s32); +void func_80019D2C(Camera*, Player*, s32); void func_80019DE4(); +void func_80019DF4(void); +void func_80019E58(void); +void func_80019ED0(void); +void func_80019FB4(s32); + void func_8001A0A4(u16*, Camera*, Player*, s8, s32); void func_8001A0DC(u16*, Camera*, Player*, s8, s32); s32 func_8001A310(s32, s32); +void func_8001A588(u16*, Camera*, Player*, s8, s32); void func_8001ABE0(s32, s32); void func_8001ABEC(struct struct_801642D8*); + +void func_8001C05C(); +void func_8001C14C(void); void func_8001C3C4(s32); void func_8001C42C(); -void func_80019ED0(void); -void func_8001A588(u16*, Camera*, Player*, s8, s32); /* This is where I'd put my static data, if I had any */ // 0 or 1, only 1 when when in extra (mirror) mode diff --git a/src/code_80057C60.c b/src/code_80057C60.c index 9016e634a..329e2aac3 100644 --- a/src/code_80057C60.c +++ b/src/code_80057C60.c @@ -19,6 +19,7 @@ #include "common_textures.h" #include "audio/external.h" #include "objects.h" +#include "bomb_kart.h" // WARNING: this macro is undef'd at the end of this file #define MAKE_RGB(r,g,b) (((r) << 0x10) | ((g) << 0x08) | (b << 0x00)) @@ -2536,31 +2537,25 @@ void func_8005D18C(void) { } } } -extern u16 D_80163DE8[]; -extern struct_80165C18_entry D_80164034[]; void func_8005D1F4(s32 arg0) { + s32 playerWaypoint; + s32 bombWaypoint; s32 var_a2; - u16 temp_a0; - struct_8018CA70_entry* temp_v1; - u16 new_var3; - if (gModeSelection == 2) { - u16 waypoint = gNearestWaypointByPlayerId[arg0]; - temp_v1 = &D_8018CA70[arg0]; - temp_v1->unk_74 = 0; - for (var_a2 = 0; var_a2 != 294; var_a2 += 42) { - temp_a0 = D_80163DE8[var_a2 + 0x22]; - if ((temp_a0 != 4) && (temp_a0 != 0)) { - new_var3 = D_80163DE8[var_a2 + 0x21]; - if (((new_var3 - waypoint) >= (-5)) && (new_var3 - waypoint) < 0x1F) { - temp_v1->unk_74 = 1; - return; - } - } - } + s32 waypointDiff; - var_a2 = 0; + if (gModeSelection == 2) { + playerWaypoint = gNearestWaypointByPlayerId[arg0]; + D_8018CA70[arg0].unk_74 = 0; + for (var_a2 = 0; var_a2 < NUM_BOMB_KARTS_VERSUS; var_a2++) { + if ((D_80163DE8[var_a2].state == BOMB_STATE_EXPLODED) || (D_80163DE8[var_a2].state == BOMB_STATE_INACTIVE)) continue; + bombWaypoint = D_80163DE8[var_a2].wayPointIndex; + waypointDiff = bombWaypoint - playerWaypoint; + if ((waypointDiff < -5) || (waypointDiff > 0x1E)) continue; + D_8018CA70[arg0].unk_74 = 1; + break; + } } } diff --git a/src/code_8006E9C0.c b/src/code_8006E9C0.c index 4922e6048..c6e282f56 100644 --- a/src/code_8006E9C0.c +++ b/src/code_8006E9C0.c @@ -5,6 +5,7 @@ #include "code_8006E9C0.h" #include "code_80071F00.h" #include "objects.h" +#include "bomb_kart.h" #include "variables.h" #include "common_textures.h" #include @@ -1047,7 +1048,7 @@ void func_80070190(void) { find_unused_obj_index(&D_8018C030[loopIndex]); } - for(loopIndex = 0; loopIndex < D_80183DD8_SIZE; loopIndex++) { + for(loopIndex = 0; loopIndex < NUM_BOMB_KARTS_VERSUS; loopIndex++) { find_unused_obj_index(&D_80183DD8[loopIndex]); } } diff --git a/src/code_80071F00.c b/src/code_80071F00.c index cc810066f..2bbae752a 100644 --- a/src/code_80071F00.c +++ b/src/code_80071F00.c @@ -7077,18 +7077,14 @@ void func_8008275C(s32 objectIndex) { } #ifdef MIPS_TO_C -//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc -void func_80082714(s32, s32); /* extern */ -void func_8008275C(s32); /* extern */ +//generated by m2c commit eefca95b040d7ee0c617bc58f9ac6cd1cf7bce87 on Aug-17-2023 extern s16 D_80165900; extern s8 D_80165908; extern s8 D_80165A90; -extern f32 D_80183E40; extern s32 D_80183F2C; -extern s32 gGamestate; +extern s16 gCutsceneShotTimer; void func_80082870(void) { - s16 temp_v0; s32 *var_s4; s32 temp_s0; s32 var_s3; @@ -7106,23 +7102,22 @@ void func_80082870(void) { func_800722CC(temp_s0, 2); if (D_80165A90 != 0) { D_80165A90 = 0; - D_80183E40.unk0 = 0.0f; - D_80183E40.unk4 = 0.0f; - D_80183E40.unk8 = 0.0f; + D_80183E40->unk0 = 0.0f; + D_80183E40->unk4 = 0.0f; + D_80183E40->unk8 = 0.0f; if (gGamestate != 9) { - func_800C98B8(temp_s1->pos, &D_80183E40, 0x19017043U); + func_800C98B8(temp_s1->pos, D_80183E40, 0x19017043U); } else if (gCutsceneShotTimer < 0x97) { - func_800C98B8(D_80165C18[D_80183F2C].pos, &D_80183E40, 0x19017043U); + func_800C98B8(D_80165C18[D_80183F2C].pos, D_80183E40, 0x19017043U); } } } } var_s3 += 1; var_s4 += 4; - } while (var_s3 != 0xA); - temp_v0 = D_80165900; - if (temp_v0 != 0) { - D_80165900 = temp_v0 - 1; + } while (var_s3 != 0x0000000A); + if (D_80165900 != 0) { + D_80165900 -= 1; } else { if (gGamestate != 9) { D_80165900 = 0x003C; diff --git a/src/hud_renderer.c b/src/hud_renderer.c index 328f584cc..040e5c308 100644 --- a/src/hud_renderer.c +++ b/src/hud_renderer.c @@ -15,6 +15,8 @@ #include "math_util_2.h" #include "objects.h" #include "variables.h" +#include "waypoints.h" +#include "bomb_kart.h" #include "common_textures.h" #include "code_8001F980.h" #include "code_80004740.h" @@ -3250,41 +3252,27 @@ s32 func_80050644(u16 arg0, s32 *arg1, s32 *arg2) { return var_v0; } -#ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -extern u16 D_80163E2A; -extern u16 D_80164430; +void func_800507D8(u16 bombIndex, s32 *arg1, s32 *arg2) { + s32 temp_v0 = D_80163DE8[bombIndex].wayPointIndex; + s32 var_v1 = 0; -void func_800507D8(s32 arg0, s32 *arg1, s32 *arg2) { - u16 temp_v0; - s32 phi_v1; - - temp_v0 = *(&D_80163E2A + ((arg0 & 0xFFFF) * 0x54)); - phi_v1 = 0; if (temp_v0 != 0) { - phi_v1 = (temp_v0 * 0x3A0) / D_80164430; + var_v1 = (s32) (temp_v0 * 0x3A0) / (s32) D_80164430; } - if (phi_v1 < 0x104) { - *arg1 = phi_v1; + if (var_v1 < 0x104) { + *arg1 = var_v1; *arg2 = 0; - return; + } else if (var_v1 < 0x1D0) { + *arg1 = 0x00000104; + *arg2 = var_v1 - 0x104; + } else if (var_v1 < 0x2D4) { + *arg1 = 0x2D4 - var_v1; + *arg2 = 0x000000CC; + } else { + *arg1 = 0; + *arg2 = 0x3A0 - var_v1; } - if (phi_v1 < 0x1D0) { - *arg1 = 0x104; - *arg2 = phi_v1 - 0x104; - return; - } - if (phi_v1 < 0x2D4) { - *arg1 = 0x2D4 - phi_v1; - *arg2 = 0xCC; - return; - } - *arg1 = 0; - *arg2 = 0x3A0 - phi_v1; } -#else -GLOBAL_ASM("asm/non_matchings/hud_renderer/func_800507D8.s") -#endif #ifdef MIPS_TO_C //generated by m2c commit b7eac665cffd02361f73cec283ef16d0a35a0e5b @@ -3388,74 +3376,24 @@ block_20: GLOBAL_ASM("asm/non_matchings/hud_renderer/func_800508C0.s") #endif -#ifdef MIPS_TO_C -//generated by m2c commit b7eac665cffd02361f73cec283ef16d0a35a0e5b -? func_800507D8(s32, s32 *, s32 *); /* extern */ -extern ? D_80163DE8; - void func_80050C68(void) { + s32 stackPadding0; s32 sp88; s32 sp84; - ? *var_s2; - Gfx *temp_v0_2; - Gfx *temp_v0_3; - Gfx *temp_v0_4; - Gfx *temp_v0_5; - Gfx *temp_v0_6; - Gfx *temp_v0_7; - Gfx *temp_v0_8; - Gfx *temp_v0_9; + s32 stackPadding1; s32 var_s1; - u16 temp_v0; - var_s2 = &D_80163DE8; - var_s1 = 0; - do { - temp_v0 = var_s2->unk44; - if ((temp_v0 != 4) && (temp_v0 != 0)) { - func_800507D8(var_s1 & 0xFFFF, &sp88, &sp84); - temp_v0_2 = gDisplayListHead; - gDisplayListHead = temp_v0_2 + 8; - temp_v0_2->words.w1 = (u32) D_0D007DB8; - temp_v0_2->words.w0 = 0x06000000; - temp_v0_3 = gDisplayListHead; - gDisplayListHead = temp_v0_3 + 8; - temp_v0_3->words.w1 = (u32) gTLUTPortraitBombKartAndQuestionMark; - temp_v0_3->words.w0 = 0xFD100000; - temp_v0_4 = gDisplayListHead; - gDisplayListHead = temp_v0_4 + 8; - temp_v0_4->words.w1 = 0; - temp_v0_4->words.w0 = 0xE8000000; - temp_v0_5 = gDisplayListHead; - gDisplayListHead = temp_v0_5 + 8; - temp_v0_5->words.w1 = 0x07000000; - temp_v0_5->words.w0 = 0xF5000100; - temp_v0_6 = gDisplayListHead; - gDisplayListHead = temp_v0_6 + 8; - temp_v0_6->words.w1 = 0; - temp_v0_6->words.w0 = 0xE6000000; - temp_v0_7 = gDisplayListHead; - gDisplayListHead = temp_v0_7 + 8; - temp_v0_7->words.w1 = 0x073FC000; - temp_v0_7->words.w0 = 0xF0000000; - temp_v0_8 = gDisplayListHead; - gDisplayListHead = temp_v0_8 + 8; - temp_v0_8->words.w1 = 0; - temp_v0_8->words.w0 = 0xE7000000; + for (var_s1 = 0; var_s1 < NUM_BOMB_KARTS_VERSUS; var_s1++) { + if ((D_80163DE8[var_s1].state != BOMB_STATE_EXPLODED) && (D_80163DE8[var_s1].state != BOMB_STATE_INACTIVE)) { + func_800507D8(var_s1, &sp88, &sp84); + gSPDisplayList(gDisplayListHead++, D_0D007DB8); + gDPLoadTLUT_pal256(gDisplayListHead++, gTLUTPortraitBombKartAndQuestionMark); func_800452A4(gTexturePortraitBombKart, 0x00000020, 0x00000020); func_80042330(sp88 + 0x20, sp84 + 0x12, 0U, 0.6f); - temp_v0_9 = gDisplayListHead; - gDisplayListHead = temp_v0_9 + 8; - temp_v0_9->words.w1 = (u32) D_0D0069E0; - temp_v0_9->words.w0 = 0x06000000; + gSPDisplayList(gDisplayListHead++, D_0D0069E0); } - var_s1 += 1; - var_s2 += 0x54; - } while (var_s1 != 7); + } } -#else -GLOBAL_ASM("asm/non_matchings/hud_renderer/func_80050C68.s") -#endif #ifdef NON_MATCHING @@ -5597,88 +5535,58 @@ void func_80056A94(s32 arg0) { func_80072428(D_80183DD8[arg0]); } -#ifdef MIPS_TO_C -//generated by m2c commit b7eac665cffd02361f73cec283ef16d0a35a0e5b -? func_800563DC(s32, s32, s16); /* extern */ -? func_8005669C(s32, s32, s16); /* extern */ - -void func_80056AC0(s32 arg0) { +void func_80056AC0(s32 cameraId) { Player *temp_v0; - s16 temp_s1; - s32 *var_s3; + s32 temp_s1; s32 temp_s0; s32 var_s2; struct_80165C18_entry *temp_v1; - var_s3 = D_80183DD8; - var_s2 = 0; - do { - temp_s0 = *var_s3; + for (var_s2 = 0; var_s2 < NUM_BOMB_KARTS_BATTLE; var_s2++) { + temp_s0 = D_80183DD8[var_s2]; temp_v1 = &D_80165C18[temp_s0]; if (temp_v1->unk_0A6 != 0) { temp_s1 = temp_v1->unk_0A0; temp_v0 = &gPlayerOne[var_s2]; temp_v1->pos[0] = temp_v0->pos[0]; - temp_v1->pos[1] = (f32) ((f64) temp_v0->pos[1] - 2.0); + temp_v1->pos[1] = temp_v0->pos[1] - 2.0; temp_v1->pos[2] = temp_v0->pos[2]; temp_v1->unk_044 = temp_v0->unk_074; - func_800563DC(temp_s0, arg0, temp_s1); - func_8005669C(temp_s0, arg0, temp_s1); - func_800568A0(temp_s0, arg0); + func_800563DC(temp_s0, cameraId, temp_s1); + func_8005669C(temp_s0, cameraId, temp_s1); + func_800568A0(temp_s0, cameraId); } - var_s2 += 1; - var_s3 += 4; - } while (var_s2 != 4); + } } -#else -GLOBAL_ASM("asm/non_matchings/hud_renderer/func_80056AC0.s") -#endif #ifdef MIPS_TO_C -//generated by m2c commit b7eac665cffd02361f73cec283ef16d0a35a0e5b +//generated by m2c commit eefca95b040d7ee0c617bc58f9ac6cd1cf7bce87 on Aug-17-2023 ? func_800562E4(s32, s32, ?); /* extern */ -extern ? D_80163DE8; extern u32 D_801655CC; -extern f32 D_80183E40; extern f32 D_80183E44; -extern u16 D_80183E80; extern s16 D_80183E84; extern s32 D_8018D400; static ? D_800E471C; /* unable to generate initializer */ -void func_80056BF0(s32 arg0) { - f32 sp40; +void func_80056BF0(s32 bombIndex) { + struct_D_80163DE8_entry sp40; Gfx *temp_v1; - f32 *var_t6; - s32 *var_t9; - s32 temp_at; s32 temp_s0; s32 temp_v0; s32 temp_v0_2; - void *temp_t3; - var_t9 = (arg0 * 0x54) + &D_80163DE8; - temp_t3 = var_t9 + 0x54; - var_t6 = &sp40; - do { - temp_at = *var_t9; - var_t9 += 0xC; - var_t6 += 0xC; - var_t6->unk-C = temp_at; - var_t6->unk-8 = (s32) var_t9->unk-8; - var_t6->unk-4 = (s32) var_t9->unk-4; - } while (var_t9 != temp_t3); - D_80183E40.unk0 = sp40; - D_80183E40.unk4 = (f32) ((f64) sp44 + 1.0); - D_80183E40.unk8 = sp48; - func_800480B4(&D_80183E40, &D_80183E80, 0.25f, (s32) D_0D02A858, (s32) ((*(&D_800E471C + ((u32) D_801655CC % 6U)) << 0xA) + D_0D029858), D_0D005AE0, 0x00000020, 0x00000020, 0x00000020, 0x00000020); + M2C_MEMCPY_ALIGNED(&sp40, &D_80163DE8[bombIndex], 0x54); + D_80183E40->unk0 = (bitwise f32) sp40; + D_80183E40->unk4 = (f32) ((f64) sp40.bombPos[1] + 1.0); + D_80183E40->unk8 = sp40.bombPos[2]; + func_800480B4(D_80183E40, D_80183E80, 0.25f, (u8 *) D_0D02A858, (*(&D_800E471C + ((u32) D_801655CC % 6U)) << 0xA) + D_0D029858, D_0D005AE0, 0x00000020, 0x00000020, 0x00000020, 0x00000020); temp_v1 = gDisplayListHead; temp_s0 = D_8018D400; gDisplayListHead = temp_v1 + 8; temp_v1->words.w0 = 0x06000000; temp_v1->words.w1 = (u32) D_0D007B00; func_8004B414(0, 0, 0, 0x000000FF); - D_80183E44 = (f32) ((f64) sp44 + 5.0); + D_80183E44 = (f32) ((f64) sp40.bombPos[1] + 5.0); D_80183E84 = 0; func_800562E4(temp_s0 % 3, temp_s0 % 4, 0xFF); temp_v0 = temp_s0 + 1; @@ -5692,180 +5600,88 @@ void func_80056BF0(s32 arg0) { GLOBAL_ASM("asm/non_matchings/hud_renderer/func_80056BF0.s") #endif -#ifdef MIPS_TO_C -//generated by m2c commit b7eac665cffd02361f73cec283ef16d0a35a0e5b -extern ? D_80163DE8; -extern s16 D_80183E80; +void func_80056E24(s32 bombIndex, Vec3f arg1) { + s32 stackPadding[2]; + struct_D_80163DE8_entry sp2C = D_80163DE8[bombIndex]; -void func_80056E24(s32 arg0, f32 *arg1) { - f32 sp5C; - f32 sp50; - f32 sp44; - f32 sp38; - ? sp2C; - ? *var_t6; - Gfx *temp_v1; - Gfx *temp_v1_2; - s32 *var_t9; - s32 temp_at; - void *temp_t3; - - var_t9 = (arg0 * 0x54) + &D_80163DE8; - temp_t3 = var_t9 + 0x54; - var_t6 = &sp2C; - do { - temp_at = *var_t9; - var_t9 += 0xC; - var_t6 += 0xC; - var_t6->unk-C = temp_at; - var_t6->unk-8 = (s32) var_t9->unk-8; - var_t6->unk-4 = (s32) var_t9->unk-4; - } while (var_t9 != temp_t3); - temp_v1 = gDisplayListHead; - D_80183E80.unk0 = 0; - D_80183E80.unk4 = 0x8000; - gDisplayListHead = temp_v1 + 8; - temp_v1->words.w0 = 0x06000000; - temp_v1->words.w1 = (u32) D_0D0079C8; + D_80183E80[0] = 0; + D_80183E80[2] = 0x8000; + gSPDisplayList(gDisplayListHead++, D_0D0079C8); func_80043D50(D_0D02AA58, 0x00000010, 0x00000010); - D_80183E80.unk2 = func_800418AC(sp38, sp40, arg1); - func_800431B0(&sp38, &D_80183E80, 0.15f, D_0D005770); - D_80183E80.unk2 = func_800418AC(sp44, sp4C, arg1); - func_800431B0(&sp44, &D_80183E80, 0.15f, D_0D005770); - D_80183E80.unk2 = func_800418AC(sp50, sp58, arg1); - func_800431B0(&sp50, &D_80183E80, 0.15f, D_0D005770); - D_80183E80.unk2 = func_800418AC(sp5C, sp64, arg1); - func_800431B0(&sp5C, &D_80183E80, 0.15f, D_0D005770); - temp_v1_2 = gDisplayListHead; - gDisplayListHead = temp_v1_2 + 8; - temp_v1_2->words.w0 = 0xBB000000; - temp_v1_2->words.w1 = 0x00010001; + D_80183E80[1] = func_800418AC(sp2C.wheel1Pos[0], sp2C.wheel1Pos[2], arg1); + func_800431B0(sp2C.wheel1Pos, D_80183E80, 0.15f, D_0D005770); + D_80183E80[1] = func_800418AC(sp2C.wheel2Pos[0], sp2C.wheel2Pos[2], arg1); + func_800431B0(sp2C.wheel2Pos, D_80183E80, 0.15f, D_0D005770); + D_80183E80[1] = func_800418AC(sp2C.wheel3Pos[0], sp2C.wheel3Pos[2], arg1); + func_800431B0(sp2C.wheel3Pos, D_80183E80, 0.15f, D_0D005770); + D_80183E80[1] = func_800418AC(sp2C.wheel4Pos[0], sp2C.wheel4Pos[2], arg1); + func_800431B0(sp2C.wheel4Pos, D_80183E80, 0.15f, D_0D005770); + gSPTexture(gDisplayListHead++, 1, 1, 0, G_TX_RENDERTILE, G_OFF); } -#else -GLOBAL_ASM("asm/non_matchings/hud_renderer/func_80056E24.s") -#endif -#ifdef MIPS_TO_C -//generated by m2c commit b7eac665cffd02361f73cec283ef16d0a35a0e5b -extern Gfx D_0D007B98[]; -extern Vec3f D_80183E50; +void func_80056FCC(s32 bombIndex) { + Mat4 sp30; + struct_D_80163DE8_entry *temp_v0; -struct UnkStruct_80163DE8 { - f32 unk0[61]; - //f32 unk4[60]; -}; -extern struct_80165C18_entry D_80163DE8[]; - -struct struct_80056FCC { - Vec3f u0; - Vec3f uC; - Vec3f u18; - Vec3f u24; - Vec3f u30; - s8 pad[140]; -}; -extern struct struct_80056FCC D_80164038[]; - -void func_80056FCC(s32 arg0) { - Mat4 mtx; - struct struct_80056FCC *tmp = &D_80164038[arg0]; - struct_80165C18_entry *tmp2 = &D_80163DE8[arg0]; - - //temp_v0 = D_80163DE8[arg0]; - D_80183E50[0] = tmp2->sizeScaling ;// pos[0]; - D_80183E50[1] = tmp2->unk_050 + 1.0; - D_80183E50[2] = tmp2->sizeScaling; - func_80042A20(mtx, tmp->u30, D_80183E50, 0U, 0.5f); - func_80022180(&gGfxPool->mtxPool[D_8018D120 + 0xB], mtx); + temp_v0 = &D_80163DE8[bombIndex]; + D_80183E50[0] = temp_v0->bombPos[0]; + D_80183E50[1] = temp_v0->yPos + 1.0; + D_80183E50[2] = temp_v0->bombPos[2]; + func_80042A20(sp30, D_80164038[bombIndex].unk60, D_80183E50, 0U, 0.5f); + func_80022180(&gGfxPool->mtxPool[D_8018D120 + 0xB], sp30); gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->mtxPool[D_8018D120 + 0xB]), G_MTX_LOAD | G_MTX_NOPUSH| G_MTX_MODELVIEW); D_8018D120++; gSPDisplayList(gDisplayListHead++, D_0D007B98); - - // gDisplayListHead = temp_v0_2 + 8; - // temp_v0_2->words.w0 = 0x01020040; - // temp_v0_2->words.w1 = (s32) (&gGfxPool->mtxPool[D_8018D120] + 0x2C0) & 0x1FFFFFFF; - // temp_v0_3 = gDisplayListHead; - // D_8018D120 += 1; - // gDisplayListHead = temp_v0_3 + 8; - // temp_v0_3->words.w0 = 0x06000000; - // temp_v0_3->words.w1 = (u32) &D_0D007B98; } -#else -GLOBAL_ASM("asm/non_matchings/hud_renderer/func_80056FCC.s") -#endif - -#ifdef MIPS_TO_C -//generated by m2c commit b7eac665cffd02361f73cec283ef16d0a35a0e5b -? func_800563DC(s32, s32, ?); /* extern */ -? func_80056E24(s32, Camera *); /* extern */ -? func_80056FCC(s32); /* extern */ -extern ? D_80163DE8; -extern ? D_80183E80; -extern s32 gGamestate; void func_80057114(s32 cameraId) { - ? *var_s1_2; Camera *temp_s7; - s32 *var_s1; s32 temp_s0; - s32 temp_s0_2; - s32 var_fp; + s32 temp_s4; s32 var_s2; - s32 var_s2_2; - struct_80165C18_entry *temp_v0; - u16 temp_s5; - u32 temp_s4; + s32 state; + struct_D_80163DE8_entry *var_s1_2; - var_fp = cameraId; if (gGamestate == 5) { - var_fp = 0; + cameraId = 0; } - temp_s7 = &camera1[var_fp]; - if (var_fp == 0) { - var_s1 = D_80183DD8; - var_s2 = 0; - do { - temp_s0 = *var_s1; + temp_s7 = &camera1[cameraId]; + if (cameraId == 0) { + for (var_s2 = 0; var_s2 < NUM_BOMB_KARTS_VERSUS; var_s2++) { + temp_s0 = D_80183DD8[var_s2]; if (func_8007223C(temp_s0, 0x00200000) != 0) { - (&D_80163DE8 + (var_s2 * 0x54))->unk4A = 0; + D_80163DE8[var_s2].unk_4A = 0; } else if (gGamestate != 5) { - (&D_80163DE8 + (var_s2 * 0x54))->unk4A = 1; + D_80163DE8[var_s2].unk_4A = 1; } func_800721E8(temp_s0, 0x00200000); - var_s2 += 1; - var_s1 += 4; - } while (var_s2 != 7); + } } - var_s1_2 = &D_80163DE8; - var_s2_2 = 0; - do { - temp_s5 = var_s1_2->unk44; - if (temp_s5 != 0) { - temp_s0_2 = D_80183DD8[var_s2_2]; - temp_v0 = &D_80165C18[temp_s0_2]; - temp_v0->pos[0] = var_s1_2->unk0; - temp_v0->pos[1] = var_s1_2->unk4; - temp_v0->pos[2] = var_s1_2->unk8; - temp_s4 = func_8008A364(temp_s0_2, var_fp, 0x31C4U, 0x000001F4); - if (func_8007223C(temp_s0_2, 0x00040000) != 0) { - func_800721C0(temp_s0_2, 0x00200000); - D_80183E80.unk0 = 0; - D_80183E80.unk2 = func_800418AC(var_s1_2->unk0, var_s1_2->unk8, temp_s7->pos); - D_80183E80.unk4 = 0x8000; - func_800563DC(temp_s0_2, var_fp, 0xFF); - func_80056E24(var_s2_2, temp_s7); - if ((temp_s4 < 0x4E21U) && (temp_s5 != 4)) { - func_80056FCC(var_s2_2); + + for (var_s2 = 0; var_s2 < NUM_BOMB_KARTS_VERSUS; var_s2++) { + var_s1_2 = &D_80163DE8[var_s2]; + // huh??? + state = var_s1_2->state; + if (var_s1_2->state != BOMB_STATE_INACTIVE) { + temp_s0 = D_80183DD8[var_s2]; + D_80165C18[temp_s0].pos[0] = var_s1_2->bombPos[0]; + D_80165C18[temp_s0].pos[1] = var_s1_2->bombPos[1]; + D_80165C18[temp_s0].pos[2] = var_s1_2->bombPos[2]; + temp_s4 = func_8008A364(temp_s0, cameraId, 0x31C4U, 0x000001F4); + if (func_8007223C(temp_s0, 0x00040000) != 0) { + func_800721C0(temp_s0, 0x00200000); + D_80183E80[0] = 0; + D_80183E80[1] = func_800418AC(var_s1_2->bombPos[0], var_s1_2->bombPos[2], temp_s7->pos); + D_80183E80[2] = 0x8000; + func_800563DC(temp_s0, cameraId, 0x000000FF); + func_80056E24(var_s2, temp_s7->pos); + if (((u32) temp_s4 < 0x4E21U) && (state != BOMB_STATE_EXPLODED)) { + func_80056FCC(var_s2); } } } - var_s2_2 += 1; - var_s1_2 += 0x54; - } while (var_s2_2 != 7); + } } -#else -GLOBAL_ASM("asm/non_matchings/hud_renderer/func_80057114.s") -#endif UNUSED void func_80057330(void) { diff --git a/src/hud_renderer.h b/src/hud_renderer.h index 649a3df28..0fa002b60 100644 --- a/src/hud_renderer.h +++ b/src/hud_renderer.h @@ -301,6 +301,8 @@ void func_8004FDB4(f32, f32, s16, s16, s16, s32, s32, s32, s32); void func_80050320(); s32 func_80050644(u16, s32*, s32*); +void func_800507D8(u16, s32*, s32*); +void func_80050C68(); void func_80050E34(s32, s32); void func_800514BC(); @@ -372,14 +374,17 @@ void func_80055FA0(s32, s32); void func_80056160(s32); void func_80056188(s32); +void func_800563DC(s32, s32, s32); void func_800568A0(s32, s32); void func_8005669C(s32, s32, s32); void func_800569F4(s32); void func_80056A40(s32, s32); void func_80056A94(s32); void func_80056AC0(s32); +void func_80056E24(s32, Vec3f); +void func_80056FCC(s32); -//void debug_print_number(s32*, s32*, u8*,u32); +void func_80057114(s32); void func_8005762C(s32*,s32*,s32,u32); void func_80057330(); void func_80057338(); @@ -390,6 +395,8 @@ void func_800573D4(); void func_800573DC(); void func_800573E4(s32, s32, s8); void debug_wrap_text(s32*, s32*); +void debug_print_string(s32*, s32*, char*); +void debug_print_number(s32*, s32*, s32, u32); void func_80057708(); void load_debug_font(); void func_80057778(); @@ -403,6 +410,10 @@ void func_80057960(s32, s32, char*, u32); void func_800579B8(s32, s32, char*); void func_800579F8(s32, s32, char*, u32); void func_80057A50(s32, s32, char*, u32); +void func_80057AA8(s32, s32, char*, u32); +void func_80057B14(s32, s32, char*, u32); +void func_80057B80(s32, s32, char*, u32); +void func_80057BEC(s32, s32, char*, u32); extern s32 D_80165860; extern s32 D_8016586C;