diff --git a/src/game/game_102240.c b/src/game/game_102240.c index 0f6000413..69f77a56c 100644 --- a/src/game/game_102240.c +++ b/src/game/game_102240.c @@ -2946,7 +2946,7 @@ glabel func0f104664 /* f1046dc: 10000008 */ beqz $zero,.L0f104700 /* f1046e0: 00009025 */ or $s2,$zero,$zero .L0f1046e4: -/* f1046e4: 0fc6726c */ jal func0f19c9b0 +/* f1046e4: 0fc6726c */ jal ciGetFiringRangeScore /* f1046e8: 02002025 */ or $a0,$s0,$zero /* f1046ec: 1c400002 */ bgtz $v0,.L0f1046f8 /* f1046f0: 26100001 */ addiu $s0,$s0,0x1 diff --git a/src/game/game_19c990.c b/src/game/game_19c990.c index 6b7ab7c82..15a2be63e 100644 --- a/src/game/game_19c990.c +++ b/src/game/game_19c990.c @@ -410,30 +410,18 @@ glabel func0f19c990 /* f19c9ac: 00000000 */ sll $zero,$zero,0x0 ); -GLOBAL_ASM( -glabel func0f19c9b0 -/* f19c9b0: 00047083 */ sra $t6,$a0,0x2 -/* f19c9b4: 3c0f800a */ lui $t7,0x800a -/* f19c9b8: 01ee7821 */ addu $t7,$t7,$t6 -/* f19c9bc: 91ef22ac */ lbu $t7,0x22ac($t7) -/* f19c9c0: 04810004 */ bgez $a0,.L0f19c9d4 -/* f19c9c4: 30980003 */ andi $t8,$a0,0x3 -/* f19c9c8: 13000002 */ beqz $t8,.L0f19c9d4 -/* f19c9cc: 00000000 */ sll $zero,$zero,0x0 -/* f19c9d0: 2718fffc */ addiu $t8,$t8,-4 -.L0f19c9d4: -/* f19c9d4: 0018c840 */ sll $t9,$t8,0x1 -/* f19c9d8: 032f4007 */ srav $t0,$t7,$t9 -/* f19c9dc: 03e00008 */ jr $ra -/* f19c9e0: 31020003 */ andi $v0,$t0,0x3 -); +u8 ciGetFiringRangeScore(s32 weapon_id) +{ + // Data at g_FiringRangeScores is a u8 array where each score uses 2 bits + return (g_FiringRangeScores[weapon_id >> 2] >> (weapon_id % 4) * 2) & 3; +} GLOBAL_ASM( glabel func0f19c9e4 /* f19c9e4: 27bdffe8 */ addiu $sp,$sp,-24 /* f19c9e8: afbf0014 */ sw $ra,0x14($sp) /* f19c9ec: afa5001c */ sw $a1,0x1c($sp) -/* f19c9f0: 0fc6726c */ jal func0f19c9b0 +/* f19c9f0: 0fc6726c */ jal ciGetFiringRangeScore /* f19c9f4: afa40018 */ sw $a0,0x18($sp) /* f19c9f8: 8fa7001c */ lw $a3,0x1c($sp) /* f19c9fc: 8fa60018 */ lw $a2,0x18($sp) @@ -832,188 +820,188 @@ glabel func0f19cf20 /* f19cf44: 8c2e939c */ lw $t6,%lo(var7f1b939c)($at) /* f19cf48: 01c00008 */ jr $t6 /* f19cf4c: 00000000 */ sll $zero,$zero,0x0 -/* f19cf50: 0fc6726c */ jal func0f19c9b0 +/* f19cf50: 0fc6726c */ jal ciGetFiringRangeScore /* f19cf54: 00002025 */ or $a0,$zero,$zero /* f19cf58: 24100003 */ addiu $s0,$zero,0x3 /* f19cf5c: 02021026 */ xor $v0,$s0,$v0 /* f19cf60: 2c420001 */ sltiu $v0,$v0,0x1 /* f19cf64: 504000b6 */ beqzl $v0,.L0f19d240 /* f19cf68: 8fbf001c */ lw $ra,0x1c($sp) -/* f19cf6c: 0fc6726c */ jal func0f19c9b0 +/* f19cf6c: 0fc6726c */ jal ciGetFiringRangeScore /* f19cf70: 24040001 */ addiu $a0,$zero,0x1 /* f19cf74: 02021026 */ xor $v0,$s0,$v0 /* f19cf78: 2c420001 */ sltiu $v0,$v0,0x1 /* f19cf7c: 504000b0 */ beqzl $v0,.L0f19d240 /* f19cf80: 8fbf001c */ lw $ra,0x1c($sp) -/* f19cf84: 0fc6726c */ jal func0f19c9b0 +/* f19cf84: 0fc6726c */ jal ciGetFiringRangeScore /* f19cf88: 24040002 */ addiu $a0,$zero,0x2 /* f19cf8c: 02021026 */ xor $v0,$s0,$v0 /* f19cf90: 100000aa */ beqz $zero,.L0f19d23c /* f19cf94: 2c420001 */ sltiu $v0,$v0,0x1 -/* f19cf98: 0fc6726c */ jal func0f19c9b0 +/* f19cf98: 0fc6726c */ jal ciGetFiringRangeScore /* f19cf9c: 24040003 */ addiu $a0,$zero,0x3 /* f19cfa0: 24100003 */ addiu $s0,$zero,0x3 /* f19cfa4: 02021026 */ xor $v0,$s0,$v0 /* f19cfa8: 2c420001 */ sltiu $v0,$v0,0x1 /* f19cfac: 504000a4 */ beqzl $v0,.L0f19d240 /* f19cfb0: 8fbf001c */ lw $ra,0x1c($sp) -/* f19cfb4: 0fc6726c */ jal func0f19c9b0 +/* f19cfb4: 0fc6726c */ jal ciGetFiringRangeScore /* f19cfb8: 24040004 */ addiu $a0,$zero,0x4 /* f19cfbc: 02021026 */ xor $v0,$s0,$v0 /* f19cfc0: 2c420001 */ sltiu $v0,$v0,0x1 /* f19cfc4: 5040009e */ beqzl $v0,.L0f19d240 /* f19cfc8: 8fbf001c */ lw $ra,0x1c($sp) -/* f19cfcc: 0fc6726c */ jal func0f19c9b0 +/* f19cfcc: 0fc6726c */ jal ciGetFiringRangeScore /* f19cfd0: 24040005 */ addiu $a0,$zero,0x5 /* f19cfd4: 02021026 */ xor $v0,$s0,$v0 /* f19cfd8: 2c420001 */ sltiu $v0,$v0,0x1 /* f19cfdc: 50400098 */ beqzl $v0,.L0f19d240 /* f19cfe0: 8fbf001c */ lw $ra,0x1c($sp) -/* f19cfe4: 0fc6726c */ jal func0f19c9b0 +/* f19cfe4: 0fc6726c */ jal ciGetFiringRangeScore /* f19cfe8: 24040006 */ addiu $a0,$zero,0x6 /* f19cfec: 02021026 */ xor $v0,$s0,$v0 /* f19cff0: 2c420001 */ sltiu $v0,$v0,0x1 /* f19cff4: 50400092 */ beqzl $v0,.L0f19d240 /* f19cff8: 8fbf001c */ lw $ra,0x1c($sp) -/* f19cffc: 0fc6726c */ jal func0f19c9b0 +/* f19cffc: 0fc6726c */ jal ciGetFiringRangeScore /* f19d000: 24040007 */ addiu $a0,$zero,0x7 /* f19d004: 02021026 */ xor $v0,$s0,$v0 /* f19d008: 1000008c */ beqz $zero,.L0f19d23c /* f19d00c: 2c420001 */ sltiu $v0,$v0,0x1 -/* f19d010: 0fc6726c */ jal func0f19c9b0 +/* f19d010: 0fc6726c */ jal ciGetFiringRangeScore /* f19d014: 24040008 */ addiu $a0,$zero,0x8 /* f19d018: 24100003 */ addiu $s0,$zero,0x3 /* f19d01c: 02021026 */ xor $v0,$s0,$v0 /* f19d020: 2c420001 */ sltiu $v0,$v0,0x1 /* f19d024: 50400086 */ beqzl $v0,.L0f19d240 /* f19d028: 8fbf001c */ lw $ra,0x1c($sp) -/* f19d02c: 0fc6726c */ jal func0f19c9b0 +/* f19d02c: 0fc6726c */ jal ciGetFiringRangeScore /* f19d030: 24040009 */ addiu $a0,$zero,0x9 /* f19d034: 02021026 */ xor $v0,$s0,$v0 /* f19d038: 2c420001 */ sltiu $v0,$v0,0x1 /* f19d03c: 50400080 */ beqzl $v0,.L0f19d240 /* f19d040: 8fbf001c */ lw $ra,0x1c($sp) -/* f19d044: 0fc6726c */ jal func0f19c9b0 +/* f19d044: 0fc6726c */ jal ciGetFiringRangeScore /* f19d048: 2404000a */ addiu $a0,$zero,0xa /* f19d04c: 02021026 */ xor $v0,$s0,$v0 /* f19d050: 2c420001 */ sltiu $v0,$v0,0x1 /* f19d054: 5040007a */ beqzl $v0,.L0f19d240 /* f19d058: 8fbf001c */ lw $ra,0x1c($sp) -/* f19d05c: 0fc6726c */ jal func0f19c9b0 +/* f19d05c: 0fc6726c */ jal ciGetFiringRangeScore /* f19d060: 2404000b */ addiu $a0,$zero,0xb /* f19d064: 02021026 */ xor $v0,$s0,$v0 /* f19d068: 10000074 */ beqz $zero,.L0f19d23c /* f19d06c: 2c420001 */ sltiu $v0,$v0,0x1 -/* f19d070: 0fc6726c */ jal func0f19c9b0 +/* f19d070: 0fc6726c */ jal ciGetFiringRangeScore /* f19d074: 2404000c */ addiu $a0,$zero,0xc /* f19d078: 24100003 */ addiu $s0,$zero,0x3 /* f19d07c: 02021026 */ xor $v0,$s0,$v0 /* f19d080: 2c420001 */ sltiu $v0,$v0,0x1 /* f19d084: 5040006e */ beqzl $v0,.L0f19d240 /* f19d088: 8fbf001c */ lw $ra,0x1c($sp) -/* f19d08c: 0fc6726c */ jal func0f19c9b0 +/* f19d08c: 0fc6726c */ jal ciGetFiringRangeScore /* f19d090: 2404000d */ addiu $a0,$zero,0xd /* f19d094: 02021026 */ xor $v0,$s0,$v0 /* f19d098: 2c420001 */ sltiu $v0,$v0,0x1 /* f19d09c: 50400068 */ beqzl $v0,.L0f19d240 /* f19d0a0: 8fbf001c */ lw $ra,0x1c($sp) -/* f19d0a4: 0fc6726c */ jal func0f19c9b0 +/* f19d0a4: 0fc6726c */ jal ciGetFiringRangeScore /* f19d0a8: 2404000e */ addiu $a0,$zero,0xe /* f19d0ac: 02021026 */ xor $v0,$s0,$v0 /* f19d0b0: 2c420001 */ sltiu $v0,$v0,0x1 /* f19d0b4: 50400062 */ beqzl $v0,.L0f19d240 /* f19d0b8: 8fbf001c */ lw $ra,0x1c($sp) -/* f19d0bc: 0fc6726c */ jal func0f19c9b0 +/* f19d0bc: 0fc6726c */ jal ciGetFiringRangeScore /* f19d0c0: 2404000f */ addiu $a0,$zero,0xf /* f19d0c4: 02021026 */ xor $v0,$s0,$v0 /* f19d0c8: 2c420001 */ sltiu $v0,$v0,0x1 /* f19d0cc: 5040005c */ beqzl $v0,.L0f19d240 /* f19d0d0: 8fbf001c */ lw $ra,0x1c($sp) -/* f19d0d4: 0fc6726c */ jal func0f19c9b0 +/* f19d0d4: 0fc6726c */ jal ciGetFiringRangeScore /* f19d0d8: 24040010 */ addiu $a0,$zero,0x10 /* f19d0dc: 02021026 */ xor $v0,$s0,$v0 /* f19d0e0: 10000056 */ beqz $zero,.L0f19d23c /* f19d0e4: 2c420001 */ sltiu $v0,$v0,0x1 -/* f19d0e8: 0fc6726c */ jal func0f19c9b0 +/* f19d0e8: 0fc6726c */ jal ciGetFiringRangeScore /* f19d0ec: 24040011 */ addiu $a0,$zero,0x11 /* f19d0f0: 24100003 */ addiu $s0,$zero,0x3 /* f19d0f4: 02021026 */ xor $v0,$s0,$v0 /* f19d0f8: 2c420001 */ sltiu $v0,$v0,0x1 /* f19d0fc: 50400050 */ beqzl $v0,.L0f19d240 /* f19d100: 8fbf001c */ lw $ra,0x1c($sp) -/* f19d104: 0fc6726c */ jal func0f19c9b0 +/* f19d104: 0fc6726c */ jal ciGetFiringRangeScore /* f19d108: 24040012 */ addiu $a0,$zero,0x12 /* f19d10c: 02021026 */ xor $v0,$s0,$v0 /* f19d110: 2c420001 */ sltiu $v0,$v0,0x1 /* f19d114: 5040004a */ beqzl $v0,.L0f19d240 /* f19d118: 8fbf001c */ lw $ra,0x1c($sp) -/* f19d11c: 0fc6726c */ jal func0f19c9b0 +/* f19d11c: 0fc6726c */ jal ciGetFiringRangeScore /* f19d120: 24040018 */ addiu $a0,$zero,0x18 /* f19d124: 02021026 */ xor $v0,$s0,$v0 /* f19d128: 2c420001 */ sltiu $v0,$v0,0x1 /* f19d12c: 50400044 */ beqzl $v0,.L0f19d240 /* f19d130: 8fbf001c */ lw $ra,0x1c($sp) -/* f19d134: 0fc6726c */ jal func0f19c9b0 +/* f19d134: 0fc6726c */ jal ciGetFiringRangeScore /* f19d138: 24040019 */ addiu $a0,$zero,0x19 /* f19d13c: 02021026 */ xor $v0,$s0,$v0 /* f19d140: 1000003e */ beqz $zero,.L0f19d23c /* f19d144: 2c420001 */ sltiu $v0,$v0,0x1 -/* f19d148: 0fc6726c */ jal func0f19c9b0 +/* f19d148: 0fc6726c */ jal ciGetFiringRangeScore /* f19d14c: 2404001d */ addiu $a0,$zero,0x1d /* f19d150: 24100003 */ addiu $s0,$zero,0x3 /* f19d154: 02021026 */ xor $v0,$s0,$v0 /* f19d158: 2c420001 */ sltiu $v0,$v0,0x1 /* f19d15c: 50400038 */ beqzl $v0,.L0f19d240 /* f19d160: 8fbf001c */ lw $ra,0x1c($sp) -/* f19d164: 0fc6726c */ jal func0f19c9b0 +/* f19d164: 0fc6726c */ jal ciGetFiringRangeScore /* f19d168: 2404001e */ addiu $a0,$zero,0x1e /* f19d16c: 02021026 */ xor $v0,$s0,$v0 /* f19d170: 2c420001 */ sltiu $v0,$v0,0x1 /* f19d174: 50400032 */ beqzl $v0,.L0f19d240 /* f19d178: 8fbf001c */ lw $ra,0x1c($sp) -/* f19d17c: 0fc6726c */ jal func0f19c9b0 +/* f19d17c: 0fc6726c */ jal ciGetFiringRangeScore /* f19d180: 2404001f */ addiu $a0,$zero,0x1f /* f19d184: 02021026 */ xor $v0,$s0,$v0 /* f19d188: 1000002c */ beqz $zero,.L0f19d23c /* f19d18c: 2c420001 */ sltiu $v0,$v0,0x1 -/* f19d190: 0fc6726c */ jal func0f19c9b0 +/* f19d190: 0fc6726c */ jal ciGetFiringRangeScore /* f19d194: 24040013 */ addiu $a0,$zero,0x13 /* f19d198: 24100003 */ addiu $s0,$zero,0x3 /* f19d19c: 02021026 */ xor $v0,$s0,$v0 /* f19d1a0: 2c420001 */ sltiu $v0,$v0,0x1 /* f19d1a4: 50400026 */ beqzl $v0,.L0f19d240 /* f19d1a8: 8fbf001c */ lw $ra,0x1c($sp) -/* f19d1ac: 0fc6726c */ jal func0f19c9b0 +/* f19d1ac: 0fc6726c */ jal ciGetFiringRangeScore /* f19d1b0: 24040014 */ addiu $a0,$zero,0x14 /* f19d1b4: 02021026 */ xor $v0,$s0,$v0 /* f19d1b8: 2c420001 */ sltiu $v0,$v0,0x1 /* f19d1bc: 50400020 */ beqzl $v0,.L0f19d240 /* f19d1c0: 8fbf001c */ lw $ra,0x1c($sp) -/* f19d1c4: 0fc6726c */ jal func0f19c9b0 +/* f19d1c4: 0fc6726c */ jal ciGetFiringRangeScore /* f19d1c8: 2404001a */ addiu $a0,$zero,0x1a /* f19d1cc: 02021026 */ xor $v0,$s0,$v0 /* f19d1d0: 2c420001 */ sltiu $v0,$v0,0x1 /* f19d1d4: 5040001a */ beqzl $v0,.L0f19d240 /* f19d1d8: 8fbf001c */ lw $ra,0x1c($sp) -/* f19d1dc: 0fc6726c */ jal func0f19c9b0 +/* f19d1dc: 0fc6726c */ jal ciGetFiringRangeScore /* f19d1e0: 2404001c */ addiu $a0,$zero,0x1c /* f19d1e4: 02021026 */ xor $v0,$s0,$v0 /* f19d1e8: 10000014 */ beqz $zero,.L0f19d23c /* f19d1ec: 2c420001 */ sltiu $v0,$v0,0x1 -/* f19d1f0: 0fc6726c */ jal func0f19c9b0 +/* f19d1f0: 0fc6726c */ jal ciGetFiringRangeScore /* f19d1f4: 24040015 */ addiu $a0,$zero,0x15 /* f19d1f8: 24100003 */ addiu $s0,$zero,0x3 /* f19d1fc: 02021026 */ xor $v0,$s0,$v0 /* f19d200: 2c420001 */ sltiu $v0,$v0,0x1 /* f19d204: 5040000e */ beqzl $v0,.L0f19d240 /* f19d208: 8fbf001c */ lw $ra,0x1c($sp) -/* f19d20c: 0fc6726c */ jal func0f19c9b0 +/* f19d20c: 0fc6726c */ jal ciGetFiringRangeScore /* f19d210: 24040016 */ addiu $a0,$zero,0x16 /* f19d214: 02021026 */ xor $v0,$s0,$v0 /* f19d218: 2c420001 */ sltiu $v0,$v0,0x1 /* f19d21c: 50400008 */ beqzl $v0,.L0f19d240 /* f19d220: 8fbf001c */ lw $ra,0x1c($sp) -/* f19d224: 0fc6726c */ jal func0f19c9b0 +/* f19d224: 0fc6726c */ jal ciGetFiringRangeScore /* f19d228: 24040017 */ addiu $a0,$zero,0x17 /* f19d22c: 02021026 */ xor $v0,$s0,$v0 /* f19d230: 10000002 */ beqz $zero,.L0f19d23c diff --git a/src/game/game_1a3340.c b/src/game/game_1a3340.c index 922cb2670..bb39811bc 100644 --- a/src/game/game_1a3340.c +++ b/src/game/game_1a3340.c @@ -273,7 +273,7 @@ glabel menuhandler001a348c /* f1a3508: afa200a4 */ sw $v0,0xa4($sp) /* f1a350c: 0fc67330 */ jal func0f19ccc0 /* f1a3510: 00402025 */ or $a0,$v0,$zero -/* f1a3514: 0fc6726c */ jal func0f19c9b0 +/* f1a3514: 0fc6726c */ jal ciGetFiringRangeScore /* f1a3518: 00402025 */ or $a0,$v0,$zero /* f1a351c: 0fc679ea */ jal func0f19e7a8 /* f1a3520: afa200a0 */ sw $v0,0xa0($sp) @@ -285,7 +285,7 @@ glabel menuhandler001a348c /* f1a3538: 00000000 */ sll $zero,$zero,0x0 /* f1a353c: 0fc67330 */ jal func0f19ccc0 /* f1a3540: 8fa400a4 */ lw $a0,0xa4($sp) -/* f1a3544: 0fc6726c */ jal func0f19c9b0 +/* f1a3544: 0fc6726c */ jal ciGetFiringRangeScore /* f1a3548: 00402025 */ or $a0,$v0,$zero /* f1a354c: 0fc67570 */ jal func0f19d5c0 /* f1a3550: 00402025 */ or $a0,$v0,$zero @@ -316,7 +316,7 @@ glabel menuhandler001a348c /* f1a35b0: afa20090 */ sw $v0,0x90($sp) /* f1a35b4: 0fc67330 */ jal func0f19ccc0 /* f1a35b8: 00402025 */ or $a0,$v0,$zero -/* f1a35bc: 0fc6726c */ jal func0f19c9b0 +/* f1a35bc: 0fc6726c */ jal ciGetFiringRangeScore /* f1a35c0: 00402025 */ or $a0,$v0,$zero /* f1a35c4: 8fa80098 */ lw $t0,0x98($sp) /* f1a35c8: afa2008c */ sw $v0,0x8c($sp) @@ -717,7 +717,7 @@ glabel menudialog001a3af4 .L0f1a3b8c: /* f1a3b8c: 0fc67494 */ jal func0f19d250 /* f1a3b90: afa60030 */ sw $a2,0x30($sp) -/* f1a3b94: 0fc6726c */ jal func0f19c9b0 +/* f1a3b94: 0fc6726c */ jal ciGetFiringRangeScore /* f1a3b98: 00402025 */ or $a0,$v0,$zero /* f1a3b9c: 8fa60030 */ lw $a2,0x30($sp) /* f1a3ba0: 24430001 */ addiu $v1,$v0,0x1 @@ -777,7 +777,7 @@ glabel menuhandlerFrDifficulty /* f1a3c50: 00402025 */ or $a0,$v0,$zero /* f1a3c54: 0fc67330 */ jal func0f19ccc0 /* f1a3c58: 00402025 */ or $a0,$v0,$zero -/* f1a3c5c: 0fc6726c */ jal func0f19c9b0 +/* f1a3c5c: 0fc6726c */ jal ciGetFiringRangeScore /* f1a3c60: 00402025 */ or $a0,$v0,$zero /* f1a3c64: 8fae001c */ lw $t6,0x1c($sp) /* f1a3c68: 91cf0001 */ lbu $t7,0x1($t6) @@ -802,7 +802,7 @@ glabel menuhandlerFrDifficulty /* f1a3cac: 00402025 */ or $a0,$v0,$zero /* f1a3cb0: 0fc67330 */ jal func0f19ccc0 /* f1a3cb4: 00402025 */ or $a0,$v0,$zero -/* f1a3cb8: 0fc6726c */ jal func0f19c9b0 +/* f1a3cb8: 0fc6726c */ jal ciGetFiringRangeScore /* f1a3cbc: 00402025 */ or $a0,$v0,$zero /* f1a3cc0: 8fb9001c */ lw $t9,0x1c($sp) /* f1a3cc4: 93280001 */ lbu $t0,0x1($t9) diff --git a/src/gvars/gvars.c b/src/gvars/gvars.c index 5e5c47556..1b7a7be04 100644 --- a/src/gvars/gvars.c +++ b/src/gvars/gvars.c @@ -21328,7 +21328,7 @@ u16 g_BestTimes[63] = {0}; u32 var800a22a0 = 0; u32 var800a22a4 = 0; u32 var800a22a8 = 0; -u32 var800a22ac = 0; +u8 g_FiringRangeScores[] = {0, 0, 0, 0}; u32 var800a22b0 = 0; u32 var800a22b4 = 0; u32 var800a22b8 = 0; diff --git a/src/include/game/game_19c990.h b/src/include/game/game_19c990.h index 2612ad9a1..46ea05e32 100644 --- a/src/include/game/game_19c990.h +++ b/src/include/game/game_19c990.h @@ -4,7 +4,7 @@ #include "types.h" u32 func0f19c990(void); -u32 func0f19c9b0(void); +u8 ciGetFiringRangeScore(s32 weapon_id); u32 func0f19c9e4(void); u32 func0f19cad4(void); u32 func0f19cb38(void); diff --git a/src/include/gvars/gvars.h b/src/include/gvars/gvars.h index 8cbe374ab..19cc84d81 100644 --- a/src/include/gvars/gvars.h +++ b/src/include/gvars/gvars.h @@ -704,6 +704,7 @@ extern u32 var800a2204; extern u32 var800a2208; extern u32 var800a220c; extern u16 g_BestTimes[]; +extern u8 g_FiringRangeScores[]; extern u32 var800a22c0; extern u32 var800a22d0; extern u32 var800a2330;