Decompile ciGetFiringRangeScore

This commit is contained in:
Ryan Dwyer 2019-12-27 17:02:59 +10:00
parent 355d52c035
commit 6ac41e4011
6 changed files with 47 additions and 58 deletions

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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