diff --git a/src/game/bondgun.c b/src/game/bondgun.c index 5ab7c247c..d2092add1 100644 --- a/src/game/bondgun.c +++ b/src/game/bondgun.c @@ -2816,1749 +2816,188 @@ bool bgun0f099188(struct hand *hand, s32 gunfunc) return bgun0f0990b0(func, weapon); } -#if VERSION >= VERSION_JPN_FINAL -GLOBAL_ASM( -glabel bgunTickIncIdle -/* f09a0dc: 27bdffc0 */ addiu $sp,$sp,-64 -/* f09a0e0: afbf001c */ sw $ra,0x1c($sp) -/* f09a0e4: afb00018 */ sw $s0,0x18($sp) -/* f09a0e8: 00c08025 */ move $s0,$a2 -/* f09a0ec: afa40040 */ sw $a0,0x40($sp) -/* f09a0f0: afa50044 */ sw $a1,0x44($sp) -/* f09a0f4: 0fc2a73f */ jal bgunIsUsingSecondaryFunction -/* f09a0f8: afa7004c */ sw $a3,0x4c($sp) -/* f09a0fc: 44802000 */ mtc1 $zero,$f4 -/* f09a100: afa20038 */ sw $v0,0x38($sp) -/* f09a104: a20005dc */ sb $zero,0x5dc($s0) -/* f09a108: ae000558 */ sw $zero,0x558($s0) -/* f09a10c: e60405fc */ swc1 $f4,0x5fc($s0) -/* f09a110: 0fc2731c */ jal bgunIsReadyToSwitch -/* f09a114: 8fa40044 */ lw $a0,0x44($sp) -/* f09a118: 10400007 */ beqz $v0,.JF0f09a138 -/* f09a11c: 8fa40044 */ lw $a0,0x44($sp) -/* f09a120: 0fc2770c */ jal bgunSetState -/* f09a124: 24050005 */ li $a1,0x5 -/* f09a128: 50400004 */ beqzl $v0,.JF0f09a13c -/* f09a12c: 8fae0038 */ lw $t6,0x38($sp) -/* f09a130: 1000014a */ b .JF0f09a65c -/* f09a134: 8fa2004c */ lw $v0,0x4c($sp) -.JF0f09a138: -/* f09a138: 8fae0038 */ lw $t6,0x38($sp) -.JF0f09a13c: -/* f09a13c: 920f0003 */ lbu $t7,0x3($s0) -/* f09a140: 02003025 */ move $a2,$s0 -/* f09a144: 55cf0005 */ bnel $t6,$t7,.JF0f09a15c -/* f09a148: 92090690 */ lbu $t1,0x690($s0) -/* f09a14c: 92180690 */ lbu $t8,0x690($s0) -/* f09a150: 3319fffd */ andi $t9,$t8,0xfffd -/* f09a154: a2190690 */ sb $t9,0x690($s0) -/* f09a158: 92090690 */ lbu $t1,0x690($s0) -.JF0f09a15c: -/* f09a15c: 820b0008 */ lb $t3,0x8($s0) -/* f09a160: 312afffe */ andi $t2,$t1,0xfffe -/* f09a164: 11600106 */ beqz $t3,.JF0f09a580 -/* f09a168: a20a0690 */ sb $t2,0x690($s0) -/* f09a16c: 92040003 */ lbu $a0,0x3($s0) -/* f09a170: 0fc266dd */ jal bgun0f098ca0 -/* f09a174: 8fa50040 */ lw $a1,0x40($sp) -/* f09a178: 92030003 */ lbu $v1,0x3($s0) -/* f09a17c: 8fac0038 */ lw $t4,0x38($sp) -/* f09a180: 00404025 */ move $t0,$v0 -/* f09a184: 1183003a */ beq $t4,$v1,.JF0f09a270 -/* f09a188: 00000000 */ nop -/* f09a18c: 8e0d0024 */ lw $t5,0x24($s0) -/* f09a190: 24010009 */ li $at,0x9 -/* f09a194: 11a10036 */ beq $t5,$at,.JF0f09a270 -/* f09a198: 00000000 */ nop -/* f09a19c: 8e0e0690 */ lw $t6,0x690($s0) -/* f09a1a0: 24190001 */ li $t9,0x1 -/* f09a1a4: 24070001 */ li $a3,0x1 -/* f09a1a8: 000ec180 */ sll $t8,$t6,0x6 -/* f09a1ac: 0701000a */ bgez $t8,.JF0f09a1d8 -/* f09a1b0: 03232023 */ subu $a0,$t9,$v1 -/* f09a1b4: 8fa50040 */ lw $a1,0x40($sp) -/* f09a1b8: 02003025 */ move $a2,$s0 -/* f09a1bc: afa7002c */ sw $a3,0x2c($sp) -/* f09a1c0: 0fc266dd */ jal bgun0f098ca0 -/* f09a1c4: afa20034 */ sw $v0,0x34($sp) -/* f09a1c8: 8fa7002c */ lw $a3,0x2c($sp) -/* f09a1cc: 04410002 */ bgez $v0,.JF0f09a1d8 -/* f09a1d0: 8fa80034 */ lw $t0,0x34($sp) -/* f09a1d4: 00003825 */ move $a3,$zero -.JF0f09a1d8: -/* f09a1d8: 10e00018 */ beqz $a3,.JF0f09a23c -/* f09a1dc: 8fa90040 */ lw $t1,0x40($sp) -/* f09a1e0: 8d2a0000 */ lw $t2,0x0($t1) -/* f09a1e4: 2401001a */ li $at,0x1a -/* f09a1e8: 15410014 */ bne $t2,$at,.JF0f09a23c -/* f09a1ec: 00000000 */ nop -/* f09a1f0: 1500000f */ bnez $t0,.JF0f09a230 -/* f09a1f4: 00000000 */ nop -/* f09a1f8: ae00001c */ sw $zero,0x1c($s0) -/* f09a1fc: ae000018 */ sw $zero,0x18($s0) -/* f09a200: 8fab0038 */ lw $t3,0x38($sp) -/* f09a204: 24050001 */ li $a1,0x1 -/* f09a208: a20b0003 */ sb $t3,0x3($s0) -/* f09a20c: afa80034 */ sw $t0,0x34($sp) -/* f09a210: afa7002c */ sw $a3,0x2c($sp) -/* f09a214: 0fc2770c */ jal bgunSetState -/* f09a218: 8fa40044 */ lw $a0,0x44($sp) -/* f09a21c: 8fa7002c */ lw $a3,0x2c($sp) -/* f09a220: 10400006 */ beqz $v0,.JF0f09a23c -/* f09a224: 8fa80034 */ lw $t0,0x34($sp) -/* f09a228: 1000010c */ b .JF0f09a65c -/* f09a22c: 8fa2004c */ lw $v0,0x4c($sp) -.JF0f09a230: -/* f09a230: 05010002 */ bgez $t0,.JF0f09a23c -/* f09a234: 00000000 */ nop -/* f09a238: 00003825 */ move $a3,$zero -.JF0f09a23c: -/* f09a23c: 10e0000c */ beqz $a3,.JF0f09a270 -/* f09a240: 00000000 */ nop -/* f09a244: 920c0690 */ lbu $t4,0x690($s0) -/* f09a248: 24050007 */ li $a1,0x7 -/* f09a24c: 318dfffd */ andi $t5,$t4,0xfffd -/* f09a250: a20d0690 */ sb $t5,0x690($s0) -/* f09a254: afa80034 */ sw $t0,0x34($sp) -/* f09a258: 0fc2770c */ jal bgunSetState -/* f09a25c: 8fa40044 */ lw $a0,0x44($sp) -/* f09a260: 10400003 */ beqz $v0,.JF0f09a270 -/* f09a264: 8fa80034 */ lw $t0,0x34($sp) -/* f09a268: 100000fc */ b .JF0f09a65c -/* f09a26c: 8fa2004c */ lw $v0,0x4c($sp) -.JF0f09a270: -/* f09a270: 05010071 */ bgez $t0,.JF0f09a438 -/* f09a274: 8fae0040 */ lw $t6,0x40($sp) -/* f09a278: 8dc40000 */ lw $a0,0x0($t6) -/* f09a27c: 0fc2ca10 */ jal weaponHasFlag -/* f09a280: 24050001 */ li $a1,0x1 -/* f09a284: 1040000f */ beqz $v0,.JF0f09a2c4 -/* f09a288: 8faf0040 */ lw $t7,0x40($sp) -/* f09a28c: 8df80000 */ lw $t8,0x0($t7) -/* f09a290: 24010022 */ li $at,0x22 -/* f09a294: 8fb90044 */ lw $t9,0x44($sp) -/* f09a298: 17010004 */ bne $t8,$at,.JF0f09a2ac -/* f09a29c: 8fa40044 */ lw $a0,0x44($sp) -/* f09a2a0: 24010001 */ li $at,0x1 -/* f09a2a4: 13210007 */ beq $t9,$at,.JF0f09a2c4 -/* f09a2a8: 00000000 */ nop -.JF0f09a2ac: -/* f09a2ac: 0fc2770c */ jal bgunSetState -/* f09a2b0: 24050008 */ li $a1,0x8 -/* f09a2b4: 10400003 */ beqz $v0,.JF0f09a2c4 -/* f09a2b8: 00000000 */ nop -/* f09a2bc: 100000e7 */ b .JF0f09a65c -/* f09a2c0: 8fa2004c */ lw $v0,0x4c($sp) -.JF0f09a2c4: -/* f09a2c4: 3c09800a */ lui $t1,0x800a -/* f09a2c8: 8d29a8b4 */ lw $t1,-0x574c($t1) -/* f09a2cc: 8fa50040 */ lw $a1,0x40($sp) -/* f09a2d0: 02003025 */ move $a2,$s0 -/* f09a2d4: 81241580 */ lb $a0,0x1580($t1) -/* f09a2d8: 0004102a */ slt $v0,$zero,$a0 -/* f09a2dc: 50400016 */ beqzl $v0,.JF0f09a338 -/* f09a2e0: 8fab0038 */ lw $t3,0x38($sp) -/* f09a2e4: 28820024 */ slti $v0,$a0,0x24 -/* f09a2e8: 10400012 */ beqz $v0,.JF0f09a334 -/* f09a2ec: 3c0a800a */ lui $t2,0x800a -/* f09a2f0: 8d4aa8b8 */ lw $t2,-0x5748($t2) -/* f09a2f4: 2483ffff */ addiu $v1,$a0,-1 -/* f09a2f8: 000368c3 */ sra $t5,$v1,0x3 -/* f09a2fc: 8d4b0070 */ lw $t3,0x70($t2) -/* f09a300: 3c0f800b */ lui $t7,0x800b -/* f09a304: 30780007 */ andi $t8,$v1,0x7 -/* f09a308: 000b6080 */ sll $t4,$t3,0x2 -/* f09a30c: 018b6021 */ addu $t4,$t4,$t3 -/* f09a310: 000c6140 */ sll $t4,$t4,0x5 -/* f09a314: 018d7021 */ addu $t6,$t4,$t5 -/* f09a318: 01ee7821 */ addu $t7,$t7,$t6 -/* f09a31c: 91efd27f */ lbu $t7,-0x2d81($t7) -/* f09a320: 24190001 */ li $t9,0x1 -/* f09a324: 03194804 */ sllv $t1,$t9,$t8 -/* f09a328: 01e91024 */ and $v0,$t7,$t1 -/* f09a32c: 0002502b */ sltu $t2,$zero,$v0 -/* f09a330: 01401025 */ move $v0,$t2 -.JF0f09a334: -/* f09a334: 8fab0038 */ lw $t3,0x38($sp) -.JF0f09a338: -/* f09a338: 544b0092 */ bnel $v0,$t3,.JF0f09a584 -/* f09a33c: 8fae0044 */ lw $t6,0x44($sp) -/* f09a340: 920c0003 */ lbu $t4,0x3($s0) -/* f09a344: 240d0001 */ li $t5,0x1 -/* f09a348: 0fc266dd */ jal bgun0f098ca0 -/* f09a34c: 01ac2023 */ subu $a0,$t5,$t4 -/* f09a350: 920e0003 */ lbu $t6,0x3($s0) -/* f09a354: 24190001 */ li $t9,0x1 -/* f09a358: afa20030 */ sw $v0,0x30($sp) -/* f09a35c: 02002025 */ move $a0,$s0 -/* f09a360: 0fc26820 */ jal bgun0f099188 -/* f09a364: 032e2823 */ subu $a1,$t9,$t6 -/* f09a368: 1040001a */ beqz $v0,.JF0f09a3d4 -/* f09a36c: 8fa30030 */ lw $v1,0x30($sp) -/* f09a370: 8fb80040 */ lw $t8,0x40($sp) -/* f09a374: 24010014 */ li $at,0x14 -/* f09a378: 8f0f0000 */ lw $t7,0x0($t8) -/* f09a37c: 11e10015 */ beq $t7,$at,.JF0f09a3d4 -/* f09a380: 00000000 */ nop -/* f09a384: 8f090008 */ lw $t1,0x8($t8) -/* f09a388: 02002025 */ move $a0,$s0 -/* f09a38c: 24190001 */ li $t9,0x1 -/* f09a390: 8d2a0000 */ lw $t2,0x0($t1) -/* f09a394: 000a6f40 */ sll $t5,$t2,0x1d -/* f09a398: 05a3000e */ bgezl $t5,.JF0f09a3d4 -/* f09a39c: 2403ffff */ li $v1,-1 -/* f09a3a0: 920c0003 */ lbu $t4,0x3($s0) -/* f09a3a4: afa30030 */ sw $v1,0x30($sp) -/* f09a3a8: 0fc2c84e */ jal weaponGetFunction -/* f09a3ac: 032c2823 */ subu $a1,$t9,$t4 -/* f09a3b0: 8c4e0000 */ lw $t6,0x0($v0) -/* f09a3b4: 24010003 */ li $at,0x3 -/* f09a3b8: 8fa30030 */ lw $v1,0x30($sp) -/* f09a3bc: 31cf00ff */ andi $t7,$t6,0xff -/* f09a3c0: 11e10004 */ beq $t7,$at,.JF0f09a3d4 -/* f09a3c4: 00000000 */ nop -/* f09a3c8: 10000002 */ b .JF0f09a3d4 -/* f09a3cc: 2403ffff */ li $v1,-1 -/* f09a3d0: 2403ffff */ li $v1,-1 -.JF0f09a3d4: -/* f09a3d4: 04610005 */ bgez $v1,.JF0f09a3ec -/* f09a3d8: 8fab0040 */ lw $t3,0x40($sp) -/* f09a3dc: 92090690 */ lbu $t1,0x690($s0) -/* f09a3e0: 352a0001 */ ori $t2,$t1,0x1 -/* f09a3e4: 10000066 */ b .JF0f09a580 -/* f09a3e8: a20a0690 */ sb $t2,0x690($s0) -.JF0f09a3ec: -/* f09a3ec: 8d640000 */ lw $a0,0x0($t3) -/* f09a3f0: 0fc2ca10 */ jal weaponHasFlag -/* f09a3f4: 3c050400 */ lui $a1,0x400 -/* f09a3f8: 50400006 */ beqzl $v0,.JF0f09a414 -/* f09a3fc: 920c0690 */ lbu $t4,0x690($s0) -/* f09a400: 920d0003 */ lbu $t5,0x3($s0) -/* f09a404: 24010001 */ li $at,0x1 -/* f09a408: 55a1005e */ bnel $t5,$at,.JF0f09a584 -/* f09a40c: 8fae0044 */ lw $t6,0x44($sp) -/* f09a410: 920c0690 */ lbu $t4,0x690($s0) -.JF0f09a414: -/* f09a414: 24050007 */ li $a1,0x7 -/* f09a418: 358e0002 */ ori $t6,$t4,0x2 -/* f09a41c: a20e0690 */ sb $t6,0x690($s0) -/* f09a420: 0fc2770c */ jal bgunSetState -/* f09a424: 8fa40044 */ lw $a0,0x44($sp) -/* f09a428: 50400056 */ beqzl $v0,.JF0f09a584 -/* f09a42c: 8fae0044 */ lw $t6,0x44($sp) -/* f09a430: 1000008a */ b .JF0f09a65c -/* f09a434: 8fa2004c */ lw $v0,0x4c($sp) -.JF0f09a438: -/* f09a438: 5500001c */ bnezl $t0,.JF0f09a4ac -/* f09a43c: 8e0d000c */ lw $t5,0xc($s0) -/* f09a440: 8e0f000c */ lw $t7,0xc($s0) -/* f09a444: 8fb80040 */ lw $t8,0x40($sp) -/* f09a448: 24050001 */ li $a1,0x1 -/* f09a44c: 51e0000f */ beqzl $t7,.JF0f09a48c -/* f09a450: ae00001c */ sw $zero,0x1c($s0) -/* f09a454: 8f090000 */ lw $t1,0x0($t8) -/* f09a458: 5120000c */ beqzl $t1,.JF0f09a48c -/* f09a45c: ae00001c */ sw $zero,0x1c($s0) -/* f09a460: 920a0690 */ lbu $t2,0x690($s0) -/* f09a464: 24050003 */ li $a1,0x3 -/* f09a468: 314bff7f */ andi $t3,$t2,0xff7f -/* f09a46c: a20b0690 */ sb $t3,0x690($s0) -/* f09a470: 0fc2770c */ jal bgunSetState -/* f09a474: 8fa40044 */ lw $a0,0x44($sp) -/* f09a478: 50400042 */ beqzl $v0,.JF0f09a584 -/* f09a47c: 8fae0044 */ lw $t6,0x44($sp) -/* f09a480: 10000076 */ b .JF0f09a65c -/* f09a484: 8fa2004c */ lw $v0,0x4c($sp) -/* f09a488: ae00001c */ sw $zero,0x1c($s0) -.JF0f09a48c: -/* f09a48c: ae000018 */ sw $zero,0x18($s0) -/* f09a490: 0fc2770c */ jal bgunSetState -/* f09a494: 8fa40044 */ lw $a0,0x44($sp) -/* f09a498: 5040003a */ beqzl $v0,.JF0f09a584 -/* f09a49c: 8fae0044 */ lw $t6,0x44($sp) -/* f09a4a0: 1000006e */ b .JF0f09a65c -/* f09a4a4: 8fa2004c */ lw $v0,0x4c($sp) -/* f09a4a8: 8e0d000c */ lw $t5,0xc($s0) -.JF0f09a4ac: -/* f09a4ac: 8fb80040 */ lw $t8,0x40($sp) -/* f09a4b0: 55a0000a */ bnezl $t5,.JF0f09a4dc -/* f09a4b4: 8f090000 */ lw $t1,0x0($t8) -/* f09a4b8: 8e1906d4 */ lw $t9,0x6d4($s0) -/* f09a4bc: 001976c0 */ sll $t6,$t9,0x1b -/* f09a4c0: 05c3001c */ bgezl $t6,.JF0f09a534 -/* f09a4c4: 8e020024 */ lw $v0,0x24($s0) -/* f09a4c8: 920f0003 */ lbu $t7,0x3($s0) -/* f09a4cc: 24010001 */ li $at,0x1 -/* f09a4d0: 55e10018 */ bnel $t7,$at,.JF0f09a534 -/* f09a4d4: 8e020024 */ lw $v0,0x24($s0) -/* f09a4d8: 8f090000 */ lw $t1,0x0($t8) -.JF0f09a4dc: -/* f09a4dc: 3c0a800a */ lui $t2,0x800a -/* f09a4e0: 51200014 */ beqzl $t1,.JF0f09a534 -/* f09a4e4: 8e020024 */ lw $v0,0x24($s0) -/* f09a4e8: 8d4aa8b4 */ lw $t2,-0x574c($t2) -/* f09a4ec: 240b0001 */ li $t3,0x1 -/* f09a4f0: 24050004 */ li $a1,0x4 -/* f09a4f4: ad401600 */ sw $zero,0x1600($t2) -/* f09a4f8: 920d06d7 */ lbu $t5,0x6d7($s0) -/* f09a4fc: ae0b0020 */ sw $t3,0x20($s0) -/* f09a500: ae000018 */ sw $zero,0x18($s0) -/* f09a504: 31b9ffef */ andi $t9,$t5,0xffef -/* f09a508: ae00001c */ sw $zero,0x1c($s0) -/* f09a50c: ae000014 */ sw $zero,0x14($s0) -/* f09a510: a21906d7 */ sb $t9,0x6d7($s0) -/* f09a514: afa80034 */ sw $t0,0x34($sp) -/* f09a518: 0fc2770c */ jal bgunSetState -/* f09a51c: 8fa40044 */ lw $a0,0x44($sp) -/* f09a520: 10400003 */ beqz $v0,.JF0f09a530 -/* f09a524: 8fa80034 */ lw $t0,0x34($sp) -/* f09a528: 1000004c */ b .JF0f09a65c -/* f09a52c: 8fa2004c */ lw $v0,0x4c($sp) -.JF0f09a530: -/* f09a530: 8e020024 */ lw $v0,0x24($s0) -.JF0f09a534: -/* f09a534: 24010009 */ li $at,0x9 -/* f09a538: 50400012 */ beqzl $v0,.JF0f09a584 -/* f09a53c: 8fae0044 */ lw $t6,0x44($sp) -/* f09a540: ae020020 */ sw $v0,0x20($s0) -/* f09a544: ae00001c */ sw $zero,0x1c($s0) -/* f09a548: ae000018 */ sw $zero,0x18($s0) -/* f09a54c: 1441000c */ bne $v0,$at,.JF0f09a580 -/* f09a550: ae000024 */ sw $zero,0x24($s0) -/* f09a554: 29010002 */ slti $at,$t0,0x2 -/* f09a558: 5020000a */ beqzl $at,.JF0f09a584 -/* f09a55c: 8fae0044 */ lw $t6,0x44($sp) -/* f09a560: 05000007 */ bltz $t0,.JF0f09a580 -/* f09a564: 8fa40044 */ lw $a0,0x44($sp) -/* f09a568: 0fc2770c */ jal bgunSetState -/* f09a56c: 24050001 */ li $a1,0x1 -/* f09a570: 50400004 */ beqzl $v0,.JF0f09a584 -/* f09a574: 8fae0044 */ lw $t6,0x44($sp) -/* f09a578: 10000038 */ b .JF0f09a65c -/* f09a57c: 8fa2004c */ lw $v0,0x4c($sp) -.JF0f09a580: -/* f09a580: 8fae0044 */ lw $t6,0x44($sp) -.JF0f09a584: -/* f09a584: 8faf0040 */ lw $t7,0x40($sp) -/* f09a588: 55c00034 */ bnezl $t6,.JF0f09a65c -/* f09a58c: 00001025 */ move $v0,$zero -/* f09a590: 8df80008 */ lw $t8,0x8($t7) -/* f09a594: 8fb90044 */ lw $t9,0x44($sp) -/* f09a598: 3c0d800a */ lui $t5,0x800a -/* f09a59c: 8f090000 */ lw $t1,0x0($t8) -/* f09a5a0: 00196100 */ sll $t4,$t9,0x4 -/* f09a5a4: 01996023 */ subu $t4,$t4,$t9 -/* f09a5a8: 00095f40 */ sll $t3,$t1,0x1d -/* f09a5ac: 05610005 */ bgez $t3,.JF0f09a5c4 -/* f09a5b0: 000c6080 */ sll $t4,$t4,0x2 -/* f09a5b4: 0fc28b57 */ jal bgunAutoSwitchWeapon -/* f09a5b8: 00000000 */ nop -/* f09a5bc: 10000027 */ b .JF0f09a65c -/* f09a5c0: 00001025 */ move $v0,$zero -.JF0f09a5c4: -/* f09a5c4: 01996021 */ addu $t4,$t4,$t9 -/* f09a5c8: 8dada8b4 */ lw $t5,-0x574c($t5) -/* f09a5cc: 920e0690 */ lbu $t6,0x690($s0) -/* f09a5d0: 000c60c0 */ sll $t4,$t4,0x3 -/* f09a5d4: 01996021 */ addu $t4,$t4,$t9 -/* f09a5d8: 000c6080 */ sll $t4,$t4,0x2 -/* f09a5dc: 01ac1023 */ subu $v0,$t5,$t4 -/* f09a5e0: 31cf0001 */ andi $t7,$t6,0x1 -/* f09a5e4: 15e00004 */ bnez $t7,.JF0f09a5f8 -/* f09a5e8: 24420ddc */ addiu $v0,$v0,0xddc -/* f09a5ec: 82180008 */ lb $t8,0x8($s0) -/* f09a5f0: 57000012 */ bnezl $t8,.JF0f09a63c -/* f09a5f4: 904c0690 */ lbu $t4,0x690($v0) -.JF0f09a5f8: -/* f09a5f8: 90490690 */ lbu $t1,0x690($v0) -/* f09a5fc: 312a0001 */ andi $t2,$t1,0x1 -/* f09a600: 55400005 */ bnezl $t2,.JF0f09a618 -/* f09a604: 8e19000c */ lw $t9,0xc($s0) -/* f09a608: 804b0008 */ lb $t3,0x8($v0) -/* f09a60c: 5560000b */ bnezl $t3,.JF0f09a63c -/* f09a610: 904c0690 */ lbu $t4,0x690($v0) -/* f09a614: 8e19000c */ lw $t9,0xc($s0) -.JF0f09a618: -/* f09a618: 17200004 */ bnez $t9,.JF0f09a62c -/* f09a61c: 00000000 */ nop -/* f09a620: 8c4d000c */ lw $t5,0xc($v0) -/* f09a624: 51a00005 */ beqzl $t5,.JF0f09a63c -/* f09a628: 904c0690 */ lbu $t4,0x690($v0) -.JF0f09a62c: -/* f09a62c: 0fc28b57 */ jal bgunAutoSwitchWeapon -/* f09a630: afa20024 */ sw $v0,0x24($sp) -/* f09a634: 8fa20024 */ lw $v0,0x24($sp) -/* f09a638: 904c0690 */ lbu $t4,0x690($v0) -.JF0f09a63c: -/* f09a63c: 3198fffe */ andi $t8,$t4,0xfffe -/* f09a640: a0580690 */ sb $t8,0x690($v0) -/* f09a644: 920a0690 */ lbu $t2,0x690($s0) -/* f09a648: 33090001 */ andi $t1,$t8,0x1 -/* f09a64c: 314bfffe */ andi $t3,$t2,0xfffe -/* f09a650: 012bc825 */ or $t9,$t1,$t3 -/* f09a654: a2190690 */ sb $t9,0x690($s0) -/* f09a658: 00001025 */ move $v0,$zero -.JF0f09a65c: -/* f09a65c: 8fbf001c */ lw $ra,0x1c($sp) -/* f09a660: 8fb00018 */ lw $s0,0x18($sp) -/* f09a664: 27bd0040 */ addiu $sp,$sp,0x40 -/* f09a668: 03e00008 */ jr $ra -/* f09a66c: 00000000 */ nop -); -#elif VERSION >= VERSION_PAL_FINAL -GLOBAL_ASM( -glabel bgunTickIncIdle -/* f099270: 27bdffc0 */ addiu $sp,$sp,-64 -/* f099274: afbf001c */ sw $ra,0x1c($sp) -/* f099278: afb00018 */ sw $s0,0x18($sp) -/* f09927c: 00c08025 */ move $s0,$a2 -/* f099280: afa40040 */ sw $a0,0x40($sp) -/* f099284: afa50044 */ sw $a1,0x44($sp) -/* f099288: 0fc2a432 */ jal bgunIsUsingSecondaryFunction -/* f09928c: afa7004c */ sw $a3,0x4c($sp) -/* f099290: 44802000 */ mtc1 $zero,$f4 -/* f099294: afa20038 */ sw $v0,0x38($sp) -/* f099298: a20005dc */ sb $zero,0x5dc($s0) -/* f09929c: ae000558 */ sw $zero,0x558($s0) -/* f0992a0: e60405fc */ swc1 $f4,0x5fc($s0) -/* f0992a4: 0fc26ffc */ jal bgunIsReadyToSwitch -/* f0992a8: 8fa40044 */ lw $a0,0x44($sp) -/* f0992ac: 10400007 */ beqz $v0,.PF0f0992cc -/* f0992b0: 8fa40044 */ lw $a0,0x44($sp) -/* f0992b4: 0fc273ec */ jal bgunSetState -/* f0992b8: 24050005 */ li $a1,0x5 -/* f0992bc: 50400004 */ beqzl $v0,.PF0f0992d0 -/* f0992c0: 8fae0038 */ lw $t6,0x38($sp) -/* f0992c4: 1000014a */ b .PF0f0997f0 -/* f0992c8: 8fa2004c */ lw $v0,0x4c($sp) -.PF0f0992cc: -/* f0992cc: 8fae0038 */ lw $t6,0x38($sp) -.PF0f0992d0: -/* f0992d0: 920f0003 */ lbu $t7,0x3($s0) -/* f0992d4: 02003025 */ move $a2,$s0 -/* f0992d8: 55cf0005 */ bnel $t6,$t7,.PF0f0992f0 -/* f0992dc: 92090690 */ lbu $t1,0x690($s0) -/* f0992e0: 92180690 */ lbu $t8,0x690($s0) -/* f0992e4: 3319fffd */ andi $t9,$t8,0xfffd -/* f0992e8: a2190690 */ sb $t9,0x690($s0) -/* f0992ec: 92090690 */ lbu $t1,0x690($s0) -.PF0f0992f0: -/* f0992f0: 820b0008 */ lb $t3,0x8($s0) -/* f0992f4: 312afffe */ andi $t2,$t1,0xfffe -/* f0992f8: 11600106 */ beqz $t3,.PF0f099714 -/* f0992fc: a20a0690 */ sb $t2,0x690($s0) -/* f099300: 92040003 */ lbu $a0,0x3($s0) -/* f099304: 0fc26348 */ jal bgun0f098ca0 -/* f099308: 8fa50040 */ lw $a1,0x40($sp) -/* f09930c: 92030003 */ lbu $v1,0x3($s0) -/* f099310: 8fac0038 */ lw $t4,0x38($sp) -/* f099314: 00404025 */ move $t0,$v0 -/* f099318: 1183003a */ beq $t4,$v1,.PF0f099404 -/* f09931c: 00000000 */ nop -/* f099320: 8e0d0024 */ lw $t5,0x24($s0) -/* f099324: 24010009 */ li $at,0x9 -/* f099328: 11a10036 */ beq $t5,$at,.PF0f099404 -/* f09932c: 00000000 */ nop -/* f099330: 8e0e0690 */ lw $t6,0x690($s0) -/* f099334: 24190001 */ li $t9,0x1 -/* f099338: 24070001 */ li $a3,0x1 -/* f09933c: 000ec180 */ sll $t8,$t6,0x6 -/* f099340: 0701000a */ bgez $t8,.PF0f09936c -/* f099344: 03232023 */ subu $a0,$t9,$v1 -/* f099348: 8fa50040 */ lw $a1,0x40($sp) -/* f09934c: 02003025 */ move $a2,$s0 -/* f099350: afa7002c */ sw $a3,0x2c($sp) -/* f099354: 0fc26348 */ jal bgun0f098ca0 -/* f099358: afa20034 */ sw $v0,0x34($sp) -/* f09935c: 8fa7002c */ lw $a3,0x2c($sp) -/* f099360: 04410002 */ bgez $v0,.PF0f09936c -/* f099364: 8fa80034 */ lw $t0,0x34($sp) -/* f099368: 00003825 */ move $a3,$zero -.PF0f09936c: -/* f09936c: 10e00018 */ beqz $a3,.PF0f0993d0 -/* f099370: 8fa90040 */ lw $t1,0x40($sp) -/* f099374: 8d2a0000 */ lw $t2,0x0($t1) -/* f099378: 2401001a */ li $at,0x1a -/* f09937c: 15410014 */ bne $t2,$at,.PF0f0993d0 -/* f099380: 00000000 */ nop -/* f099384: 1500000f */ bnez $t0,.PF0f0993c4 -/* f099388: 00000000 */ nop -/* f09938c: ae00001c */ sw $zero,0x1c($s0) -/* f099390: ae000018 */ sw $zero,0x18($s0) -/* f099394: 8fab0038 */ lw $t3,0x38($sp) -/* f099398: 24050001 */ li $a1,0x1 -/* f09939c: a20b0003 */ sb $t3,0x3($s0) -/* f0993a0: afa80034 */ sw $t0,0x34($sp) -/* f0993a4: afa7002c */ sw $a3,0x2c($sp) -/* f0993a8: 0fc273ec */ jal bgunSetState -/* f0993ac: 8fa40044 */ lw $a0,0x44($sp) -/* f0993b0: 8fa7002c */ lw $a3,0x2c($sp) -/* f0993b4: 10400006 */ beqz $v0,.PF0f0993d0 -/* f0993b8: 8fa80034 */ lw $t0,0x34($sp) -/* f0993bc: 1000010c */ b .PF0f0997f0 -/* f0993c0: 8fa2004c */ lw $v0,0x4c($sp) -.PF0f0993c4: -/* f0993c4: 05010002 */ bgez $t0,.PF0f0993d0 -/* f0993c8: 00000000 */ nop -/* f0993cc: 00003825 */ move $a3,$zero -.PF0f0993d0: -/* f0993d0: 10e0000c */ beqz $a3,.PF0f099404 -/* f0993d4: 00000000 */ nop -/* f0993d8: 920c0690 */ lbu $t4,0x690($s0) -/* f0993dc: 24050007 */ li $a1,0x7 -/* f0993e0: 318dfffd */ andi $t5,$t4,0xfffd -/* f0993e4: a20d0690 */ sb $t5,0x690($s0) -/* f0993e8: afa80034 */ sw $t0,0x34($sp) -/* f0993ec: 0fc273ec */ jal bgunSetState -/* f0993f0: 8fa40044 */ lw $a0,0x44($sp) -/* f0993f4: 10400003 */ beqz $v0,.PF0f099404 -/* f0993f8: 8fa80034 */ lw $t0,0x34($sp) -/* f0993fc: 100000fc */ b .PF0f0997f0 -/* f099400: 8fa2004c */ lw $v0,0x4c($sp) -.PF0f099404: -/* f099404: 05010071 */ bgez $t0,.PF0f0995cc -/* f099408: 8fae0040 */ lw $t6,0x40($sp) -/* f09940c: 8dc40000 */ lw $a0,0x0($t6) -/* f099410: 0fc2c720 */ jal weaponHasFlag -/* f099414: 24050001 */ li $a1,0x1 -/* f099418: 1040000f */ beqz $v0,.PF0f099458 -/* f09941c: 8faf0040 */ lw $t7,0x40($sp) -/* f099420: 8df80000 */ lw $t8,0x0($t7) -/* f099424: 24010022 */ li $at,0x22 -/* f099428: 8fb90044 */ lw $t9,0x44($sp) -/* f09942c: 17010004 */ bne $t8,$at,.PF0f099440 -/* f099430: 8fa40044 */ lw $a0,0x44($sp) -/* f099434: 24010001 */ li $at,0x1 -/* f099438: 13210007 */ beq $t9,$at,.PF0f099458 -/* f09943c: 00000000 */ nop -.PF0f099440: -/* f099440: 0fc273ec */ jal bgunSetState -/* f099444: 24050008 */ li $a1,0x8 -/* f099448: 10400003 */ beqz $v0,.PF0f099458 -/* f09944c: 00000000 */ nop -/* f099450: 100000e7 */ b .PF0f0997f0 -/* f099454: 8fa2004c */ lw $v0,0x4c($sp) -.PF0f099458: -/* f099458: 3c09800a */ lui $t1,0x800a -/* f09945c: 8d29a794 */ lw $t1,-0x586c($t1) -/* f099460: 8fa50040 */ lw $a1,0x40($sp) -/* f099464: 02003025 */ move $a2,$s0 -/* f099468: 81241580 */ lb $a0,0x1580($t1) -/* f09946c: 0004102a */ slt $v0,$zero,$a0 -/* f099470: 50400016 */ beqzl $v0,.PF0f0994cc -/* f099474: 8fab0038 */ lw $t3,0x38($sp) -/* f099478: 28820024 */ slti $v0,$a0,0x24 -/* f09947c: 10400012 */ beqz $v0,.PF0f0994c8 -/* f099480: 3c0a800a */ lui $t2,0x800a -/* f099484: 8d4aa798 */ lw $t2,-0x5868($t2) -/* f099488: 2483ffff */ addiu $v1,$a0,-1 -/* f09948c: 000368c3 */ sra $t5,$v1,0x3 -/* f099490: 8d4b0070 */ lw $t3,0x70($t2) -/* f099494: 3c0f800b */ lui $t7,0x800b -/* f099498: 30780007 */ andi $t8,$v1,0x7 -/* f09949c: 000b6080 */ sll $t4,$t3,0x2 -/* f0994a0: 018b6021 */ addu $t4,$t4,$t3 -/* f0994a4: 000c6140 */ sll $t4,$t4,0x5 -/* f0994a8: 018d7021 */ addu $t6,$t4,$t5 -/* f0994ac: 01ee7821 */ addu $t7,$t7,$t6 -/* f0994b0: 91efcdef */ lbu $t7,-0x3211($t7) -/* f0994b4: 24190001 */ li $t9,0x1 -/* f0994b8: 03194804 */ sllv $t1,$t9,$t8 -/* f0994bc: 01e91024 */ and $v0,$t7,$t1 -/* f0994c0: 0002502b */ sltu $t2,$zero,$v0 -/* f0994c4: 01401025 */ move $v0,$t2 -.PF0f0994c8: -/* f0994c8: 8fab0038 */ lw $t3,0x38($sp) -.PF0f0994cc: -/* f0994cc: 544b0092 */ bnel $v0,$t3,.PF0f099718 -/* f0994d0: 8fae0044 */ lw $t6,0x44($sp) -/* f0994d4: 920c0003 */ lbu $t4,0x3($s0) -/* f0994d8: 240d0001 */ li $t5,0x1 -/* f0994dc: 0fc26348 */ jal bgun0f098ca0 -/* f0994e0: 01ac2023 */ subu $a0,$t5,$t4 -/* f0994e4: 920e0003 */ lbu $t6,0x3($s0) -/* f0994e8: 24190001 */ li $t9,0x1 -/* f0994ec: afa20030 */ sw $v0,0x30($sp) -/* f0994f0: 02002025 */ move $a0,$s0 -/* f0994f4: 0fc26485 */ jal bgun0f099188 -/* f0994f8: 032e2823 */ subu $a1,$t9,$t6 -/* f0994fc: 1040001a */ beqz $v0,.PF0f099568 -/* f099500: 8fa30030 */ lw $v1,0x30($sp) -/* f099504: 8fb80040 */ lw $t8,0x40($sp) -/* f099508: 24010014 */ li $at,0x14 -/* f09950c: 8f0f0000 */ lw $t7,0x0($t8) -/* f099510: 11e10015 */ beq $t7,$at,.PF0f099568 -/* f099514: 00000000 */ nop -/* f099518: 8f090008 */ lw $t1,0x8($t8) -/* f09951c: 02002025 */ move $a0,$s0 -/* f099520: 24190001 */ li $t9,0x1 -/* f099524: 8d2a0000 */ lw $t2,0x0($t1) -/* f099528: 000a6f40 */ sll $t5,$t2,0x1d -/* f09952c: 05a3000e */ bgezl $t5,.PF0f099568 -/* f099530: 2403ffff */ li $v1,-1 -/* f099534: 920c0003 */ lbu $t4,0x3($s0) -/* f099538: afa30030 */ sw $v1,0x30($sp) -/* f09953c: 0fc2c55e */ jal weaponGetFunction -/* f099540: 032c2823 */ subu $a1,$t9,$t4 -/* f099544: 8c4e0000 */ lw $t6,0x0($v0) -/* f099548: 24010003 */ li $at,0x3 -/* f09954c: 8fa30030 */ lw $v1,0x30($sp) -/* f099550: 31cf00ff */ andi $t7,$t6,0xff -/* f099554: 11e10004 */ beq $t7,$at,.PF0f099568 -/* f099558: 00000000 */ nop -/* f09955c: 10000002 */ b .PF0f099568 -/* f099560: 2403ffff */ li $v1,-1 -/* f099564: 2403ffff */ li $v1,-1 -.PF0f099568: -/* f099568: 04610005 */ bgez $v1,.PF0f099580 -/* f09956c: 8fab0040 */ lw $t3,0x40($sp) -/* f099570: 92090690 */ lbu $t1,0x690($s0) -/* f099574: 352a0001 */ ori $t2,$t1,0x1 -/* f099578: 10000066 */ b .PF0f099714 -/* f09957c: a20a0690 */ sb $t2,0x690($s0) -.PF0f099580: -/* f099580: 8d640000 */ lw $a0,0x0($t3) -/* f099584: 0fc2c720 */ jal weaponHasFlag -/* f099588: 3c050400 */ lui $a1,0x400 -/* f09958c: 50400006 */ beqzl $v0,.PF0f0995a8 -/* f099590: 920c0690 */ lbu $t4,0x690($s0) -/* f099594: 920d0003 */ lbu $t5,0x3($s0) -/* f099598: 24010001 */ li $at,0x1 -/* f09959c: 55a1005e */ bnel $t5,$at,.PF0f099718 -/* f0995a0: 8fae0044 */ lw $t6,0x44($sp) -/* f0995a4: 920c0690 */ lbu $t4,0x690($s0) -.PF0f0995a8: -/* f0995a8: 24050007 */ li $a1,0x7 -/* f0995ac: 358e0002 */ ori $t6,$t4,0x2 -/* f0995b0: a20e0690 */ sb $t6,0x690($s0) -/* f0995b4: 0fc273ec */ jal bgunSetState -/* f0995b8: 8fa40044 */ lw $a0,0x44($sp) -/* f0995bc: 50400056 */ beqzl $v0,.PF0f099718 -/* f0995c0: 8fae0044 */ lw $t6,0x44($sp) -/* f0995c4: 1000008a */ b .PF0f0997f0 -/* f0995c8: 8fa2004c */ lw $v0,0x4c($sp) -.PF0f0995cc: -/* f0995cc: 5500001c */ bnezl $t0,.PF0f099640 -/* f0995d0: 8e0d000c */ lw $t5,0xc($s0) -/* f0995d4: 8e0f000c */ lw $t7,0xc($s0) -/* f0995d8: 8fb80040 */ lw $t8,0x40($sp) -/* f0995dc: 24050001 */ li $a1,0x1 -/* f0995e0: 51e0000f */ beqzl $t7,.PF0f099620 -/* f0995e4: ae00001c */ sw $zero,0x1c($s0) -/* f0995e8: 8f090000 */ lw $t1,0x0($t8) -/* f0995ec: 5120000c */ beqzl $t1,.PF0f099620 -/* f0995f0: ae00001c */ sw $zero,0x1c($s0) -/* f0995f4: 920a0690 */ lbu $t2,0x690($s0) -/* f0995f8: 24050003 */ li $a1,0x3 -/* f0995fc: 314bff7f */ andi $t3,$t2,0xff7f -/* f099600: a20b0690 */ sb $t3,0x690($s0) -/* f099604: 0fc273ec */ jal bgunSetState -/* f099608: 8fa40044 */ lw $a0,0x44($sp) -/* f09960c: 50400042 */ beqzl $v0,.PF0f099718 -/* f099610: 8fae0044 */ lw $t6,0x44($sp) -/* f099614: 10000076 */ b .PF0f0997f0 -/* f099618: 8fa2004c */ lw $v0,0x4c($sp) -/* f09961c: ae00001c */ sw $zero,0x1c($s0) -.PF0f099620: -/* f099620: ae000018 */ sw $zero,0x18($s0) -/* f099624: 0fc273ec */ jal bgunSetState -/* f099628: 8fa40044 */ lw $a0,0x44($sp) -/* f09962c: 5040003a */ beqzl $v0,.PF0f099718 -/* f099630: 8fae0044 */ lw $t6,0x44($sp) -/* f099634: 1000006e */ b .PF0f0997f0 -/* f099638: 8fa2004c */ lw $v0,0x4c($sp) -/* f09963c: 8e0d000c */ lw $t5,0xc($s0) -.PF0f099640: -/* f099640: 8fb80040 */ lw $t8,0x40($sp) -/* f099644: 55a0000a */ bnezl $t5,.PF0f099670 -/* f099648: 8f090000 */ lw $t1,0x0($t8) -/* f09964c: 8e1906d4 */ lw $t9,0x6d4($s0) -/* f099650: 001976c0 */ sll $t6,$t9,0x1b -/* f099654: 05c3001c */ bgezl $t6,.PF0f0996c8 -/* f099658: 8e020024 */ lw $v0,0x24($s0) -/* f09965c: 920f0003 */ lbu $t7,0x3($s0) -/* f099660: 24010001 */ li $at,0x1 -/* f099664: 55e10018 */ bnel $t7,$at,.PF0f0996c8 -/* f099668: 8e020024 */ lw $v0,0x24($s0) -/* f09966c: 8f090000 */ lw $t1,0x0($t8) -.PF0f099670: -/* f099670: 3c0a800a */ lui $t2,0x800a -/* f099674: 51200014 */ beqzl $t1,.PF0f0996c8 -/* f099678: 8e020024 */ lw $v0,0x24($s0) -/* f09967c: 8d4aa794 */ lw $t2,-0x586c($t2) -/* f099680: 240b0001 */ li $t3,0x1 -/* f099684: 24050004 */ li $a1,0x4 -/* f099688: ad401600 */ sw $zero,0x1600($t2) -/* f09968c: 920d06d7 */ lbu $t5,0x6d7($s0) -/* f099690: ae0b0020 */ sw $t3,0x20($s0) -/* f099694: ae000018 */ sw $zero,0x18($s0) -/* f099698: 31b9ffef */ andi $t9,$t5,0xffef -/* f09969c: ae00001c */ sw $zero,0x1c($s0) -/* f0996a0: ae000014 */ sw $zero,0x14($s0) -/* f0996a4: a21906d7 */ sb $t9,0x6d7($s0) -/* f0996a8: afa80034 */ sw $t0,0x34($sp) -/* f0996ac: 0fc273ec */ jal bgunSetState -/* f0996b0: 8fa40044 */ lw $a0,0x44($sp) -/* f0996b4: 10400003 */ beqz $v0,.PF0f0996c4 -/* f0996b8: 8fa80034 */ lw $t0,0x34($sp) -/* f0996bc: 1000004c */ b .PF0f0997f0 -/* f0996c0: 8fa2004c */ lw $v0,0x4c($sp) -.PF0f0996c4: -/* f0996c4: 8e020024 */ lw $v0,0x24($s0) -.PF0f0996c8: -/* f0996c8: 24010009 */ li $at,0x9 -/* f0996cc: 50400012 */ beqzl $v0,.PF0f099718 -/* f0996d0: 8fae0044 */ lw $t6,0x44($sp) -/* f0996d4: ae020020 */ sw $v0,0x20($s0) -/* f0996d8: ae00001c */ sw $zero,0x1c($s0) -/* f0996dc: ae000018 */ sw $zero,0x18($s0) -/* f0996e0: 1441000c */ bne $v0,$at,.PF0f099714 -/* f0996e4: ae000024 */ sw $zero,0x24($s0) -/* f0996e8: 29010002 */ slti $at,$t0,0x2 -/* f0996ec: 5020000a */ beqzl $at,.PF0f099718 -/* f0996f0: 8fae0044 */ lw $t6,0x44($sp) -/* f0996f4: 05000007 */ bltz $t0,.PF0f099714 -/* f0996f8: 8fa40044 */ lw $a0,0x44($sp) -/* f0996fc: 0fc273ec */ jal bgunSetState -/* f099700: 24050001 */ li $a1,0x1 -/* f099704: 50400004 */ beqzl $v0,.PF0f099718 -/* f099708: 8fae0044 */ lw $t6,0x44($sp) -/* f09970c: 10000038 */ b .PF0f0997f0 -/* f099710: 8fa2004c */ lw $v0,0x4c($sp) -.PF0f099714: -/* f099714: 8fae0044 */ lw $t6,0x44($sp) -.PF0f099718: -/* f099718: 8faf0040 */ lw $t7,0x40($sp) -/* f09971c: 55c00034 */ bnezl $t6,.PF0f0997f0 -/* f099720: 00001025 */ move $v0,$zero -/* f099724: 8df80008 */ lw $t8,0x8($t7) -/* f099728: 8fb90044 */ lw $t9,0x44($sp) -/* f09972c: 3c0d800a */ lui $t5,0x800a -/* f099730: 8f090000 */ lw $t1,0x0($t8) -/* f099734: 00196100 */ sll $t4,$t9,0x4 -/* f099738: 01996023 */ subu $t4,$t4,$t9 -/* f09973c: 00095f40 */ sll $t3,$t1,0x1d -/* f099740: 05610005 */ bgez $t3,.PF0f099758 -/* f099744: 000c6080 */ sll $t4,$t4,0x2 -/* f099748: 0fc2884a */ jal bgunAutoSwitchWeapon -/* f09974c: 00000000 */ nop -/* f099750: 10000027 */ b .PF0f0997f0 -/* f099754: 00001025 */ move $v0,$zero -.PF0f099758: -/* f099758: 01996021 */ addu $t4,$t4,$t9 -/* f09975c: 8dada794 */ lw $t5,-0x586c($t5) -/* f099760: 920e0690 */ lbu $t6,0x690($s0) -/* f099764: 000c60c0 */ sll $t4,$t4,0x3 -/* f099768: 01996021 */ addu $t4,$t4,$t9 -/* f09976c: 000c6080 */ sll $t4,$t4,0x2 -/* f099770: 01ac1023 */ subu $v0,$t5,$t4 -/* f099774: 31cf0001 */ andi $t7,$t6,0x1 -/* f099778: 15e00004 */ bnez $t7,.PF0f09978c -/* f09977c: 24420ddc */ addiu $v0,$v0,0xddc -/* f099780: 82180008 */ lb $t8,0x8($s0) -/* f099784: 57000012 */ bnezl $t8,.PF0f0997d0 -/* f099788: 904c0690 */ lbu $t4,0x690($v0) -.PF0f09978c: -/* f09978c: 90490690 */ lbu $t1,0x690($v0) -/* f099790: 312a0001 */ andi $t2,$t1,0x1 -/* f099794: 55400005 */ bnezl $t2,.PF0f0997ac -/* f099798: 8e19000c */ lw $t9,0xc($s0) -/* f09979c: 804b0008 */ lb $t3,0x8($v0) -/* f0997a0: 5560000b */ bnezl $t3,.PF0f0997d0 -/* f0997a4: 904c0690 */ lbu $t4,0x690($v0) -/* f0997a8: 8e19000c */ lw $t9,0xc($s0) -.PF0f0997ac: -/* f0997ac: 17200004 */ bnez $t9,.PF0f0997c0 -/* f0997b0: 00000000 */ nop -/* f0997b4: 8c4d000c */ lw $t5,0xc($v0) -/* f0997b8: 51a00005 */ beqzl $t5,.PF0f0997d0 -/* f0997bc: 904c0690 */ lbu $t4,0x690($v0) -.PF0f0997c0: -/* f0997c0: 0fc2884a */ jal bgunAutoSwitchWeapon -/* f0997c4: afa20024 */ sw $v0,0x24($sp) -/* f0997c8: 8fa20024 */ lw $v0,0x24($sp) -/* f0997cc: 904c0690 */ lbu $t4,0x690($v0) -.PF0f0997d0: -/* f0997d0: 3198fffe */ andi $t8,$t4,0xfffe -/* f0997d4: a0580690 */ sb $t8,0x690($v0) -/* f0997d8: 920a0690 */ lbu $t2,0x690($s0) -/* f0997dc: 33090001 */ andi $t1,$t8,0x1 -/* f0997e0: 314bfffe */ andi $t3,$t2,0xfffe -/* f0997e4: 012bc825 */ or $t9,$t1,$t3 -/* f0997e8: a2190690 */ sb $t9,0x690($s0) -/* f0997ec: 00001025 */ move $v0,$zero -.PF0f0997f0: -/* f0997f0: 8fbf001c */ lw $ra,0x1c($sp) -/* f0997f4: 8fb00018 */ lw $s0,0x18($sp) -/* f0997f8: 27bd0040 */ addiu $sp,$sp,0x40 -/* f0997fc: 03e00008 */ jr $ra -/* f099800: 00000000 */ nop -); -#elif VERSION >= VERSION_PAL_BETA -GLOBAL_ASM( -glabel bgunTickIncIdle -/* f0991c0: 27bdffc0 */ addiu $sp,$sp,-64 -/* f0991c4: afbf001c */ sw $ra,0x1c($sp) -/* f0991c8: afb00018 */ sw $s0,0x18($sp) -/* f0991cc: 00c08025 */ move $s0,$a2 -/* f0991d0: afa40040 */ sw $a0,0x40($sp) -/* f0991d4: afa50044 */ sw $a1,0x44($sp) -/* f0991d8: 0fc2a406 */ jal bgunIsUsingSecondaryFunction -/* f0991dc: afa7004c */ sw $a3,0x4c($sp) -/* f0991e0: 44802000 */ mtc1 $zero,$f4 -/* f0991e4: afa20038 */ sw $v0,0x38($sp) -/* f0991e8: a20005dc */ sb $zero,0x5dc($s0) -/* f0991ec: ae000558 */ sw $zero,0x558($s0) -/* f0991f0: e60405fc */ swc1 $f4,0x5fc($s0) -/* f0991f4: 0fc26fd0 */ jal bgunIsReadyToSwitch -/* f0991f8: 8fa40044 */ lw $a0,0x44($sp) -/* f0991fc: 10400007 */ beqz $v0,.PB0f09921c -/* f099200: 8fa40044 */ lw $a0,0x44($sp) -/* f099204: 0fc273c0 */ jal bgunSetState -/* f099208: 24050005 */ li $a1,0x5 -/* f09920c: 50400004 */ beqzl $v0,.PB0f099220 -/* f099210: 8fae0038 */ lw $t6,0x38($sp) -/* f099214: 1000014a */ b .PB0f099740 -/* f099218: 8fa2004c */ lw $v0,0x4c($sp) -.PB0f09921c: -/* f09921c: 8fae0038 */ lw $t6,0x38($sp) -.PB0f099220: -/* f099220: 920f0003 */ lbu $t7,0x3($s0) -/* f099224: 02003025 */ move $a2,$s0 -/* f099228: 55cf0005 */ bnel $t6,$t7,.PB0f099240 -/* f09922c: 92090690 */ lbu $t1,0x690($s0) -/* f099230: 92180690 */ lbu $t8,0x690($s0) -/* f099234: 3319fffd */ andi $t9,$t8,0xfffd -/* f099238: a2190690 */ sb $t9,0x690($s0) -/* f09923c: 92090690 */ lbu $t1,0x690($s0) -.PB0f099240: -/* f099240: 820b0008 */ lb $t3,0x8($s0) -/* f099244: 312afffe */ andi $t2,$t1,0xfffe -/* f099248: 11600106 */ beqz $t3,.PB0f099664 -/* f09924c: a20a0690 */ sb $t2,0x690($s0) -/* f099250: 92040003 */ lbu $a0,0x3($s0) -/* f099254: 0fc2631c */ jal bgun0f098ca0 -/* f099258: 8fa50040 */ lw $a1,0x40($sp) -/* f09925c: 92030003 */ lbu $v1,0x3($s0) -/* f099260: 8fac0038 */ lw $t4,0x38($sp) -/* f099264: 00404025 */ move $t0,$v0 -/* f099268: 1183003a */ beq $t4,$v1,.PB0f099354 -/* f09926c: 00000000 */ nop -/* f099270: 8e0d0024 */ lw $t5,0x24($s0) -/* f099274: 24010009 */ li $at,0x9 -/* f099278: 11a10036 */ beq $t5,$at,.PB0f099354 -/* f09927c: 00000000 */ nop -/* f099280: 8e0e0690 */ lw $t6,0x690($s0) -/* f099284: 24190001 */ li $t9,0x1 -/* f099288: 24070001 */ li $a3,0x1 -/* f09928c: 000ec180 */ sll $t8,$t6,0x6 -/* f099290: 0701000a */ bgez $t8,.PB0f0992bc -/* f099294: 03232023 */ subu $a0,$t9,$v1 -/* f099298: 8fa50040 */ lw $a1,0x40($sp) -/* f09929c: 02003025 */ move $a2,$s0 -/* f0992a0: afa7002c */ sw $a3,0x2c($sp) -/* f0992a4: 0fc2631c */ jal bgun0f098ca0 -/* f0992a8: afa20034 */ sw $v0,0x34($sp) -/* f0992ac: 8fa7002c */ lw $a3,0x2c($sp) -/* f0992b0: 04410002 */ bgez $v0,.PB0f0992bc -/* f0992b4: 8fa80034 */ lw $t0,0x34($sp) -/* f0992b8: 00003825 */ move $a3,$zero -.PB0f0992bc: -/* f0992bc: 10e00018 */ beqz $a3,.PB0f099320 -/* f0992c0: 8fa90040 */ lw $t1,0x40($sp) -/* f0992c4: 8d2a0000 */ lw $t2,0x0($t1) -/* f0992c8: 2401001a */ li $at,0x1a -/* f0992cc: 15410014 */ bne $t2,$at,.PB0f099320 -/* f0992d0: 00000000 */ nop -/* f0992d4: 1500000f */ bnez $t0,.PB0f099314 -/* f0992d8: 00000000 */ nop -/* f0992dc: ae00001c */ sw $zero,0x1c($s0) -/* f0992e0: ae000018 */ sw $zero,0x18($s0) -/* f0992e4: 8fab0038 */ lw $t3,0x38($sp) -/* f0992e8: 24050001 */ li $a1,0x1 -/* f0992ec: a20b0003 */ sb $t3,0x3($s0) -/* f0992f0: afa80034 */ sw $t0,0x34($sp) -/* f0992f4: afa7002c */ sw $a3,0x2c($sp) -/* f0992f8: 0fc273c0 */ jal bgunSetState -/* f0992fc: 8fa40044 */ lw $a0,0x44($sp) -/* f099300: 8fa7002c */ lw $a3,0x2c($sp) -/* f099304: 10400006 */ beqz $v0,.PB0f099320 -/* f099308: 8fa80034 */ lw $t0,0x34($sp) -/* f09930c: 1000010c */ b .PB0f099740 -/* f099310: 8fa2004c */ lw $v0,0x4c($sp) -.PB0f099314: -/* f099314: 05010002 */ bgez $t0,.PB0f099320 -/* f099318: 00000000 */ nop -/* f09931c: 00003825 */ move $a3,$zero -.PB0f099320: -/* f099320: 10e0000c */ beqz $a3,.PB0f099354 -/* f099324: 00000000 */ nop -/* f099328: 920c0690 */ lbu $t4,0x690($s0) -/* f09932c: 24050007 */ li $a1,0x7 -/* f099330: 318dfffd */ andi $t5,$t4,0xfffd -/* f099334: a20d0690 */ sb $t5,0x690($s0) -/* f099338: afa80034 */ sw $t0,0x34($sp) -/* f09933c: 0fc273c0 */ jal bgunSetState -/* f099340: 8fa40044 */ lw $a0,0x44($sp) -/* f099344: 10400003 */ beqz $v0,.PB0f099354 -/* f099348: 8fa80034 */ lw $t0,0x34($sp) -/* f09934c: 100000fc */ b .PB0f099740 -/* f099350: 8fa2004c */ lw $v0,0x4c($sp) -.PB0f099354: -/* f099354: 05010071 */ bgez $t0,.PB0f09951c -/* f099358: 8fae0040 */ lw $t6,0x40($sp) -/* f09935c: 8dc40000 */ lw $a0,0x0($t6) -/* f099360: 0fc2c6f4 */ jal weaponHasFlag -/* f099364: 24050001 */ li $a1,0x1 -/* f099368: 1040000f */ beqz $v0,.PB0f0993a8 -/* f09936c: 8faf0040 */ lw $t7,0x40($sp) -/* f099370: 8df80000 */ lw $t8,0x0($t7) -/* f099374: 24010022 */ li $at,0x22 -/* f099378: 8fb90044 */ lw $t9,0x44($sp) -/* f09937c: 17010004 */ bne $t8,$at,.PB0f099390 -/* f099380: 8fa40044 */ lw $a0,0x44($sp) -/* f099384: 24010001 */ li $at,0x1 -/* f099388: 13210007 */ beq $t9,$at,.PB0f0993a8 -/* f09938c: 00000000 */ nop -.PB0f099390: -/* f099390: 0fc273c0 */ jal bgunSetState -/* f099394: 24050008 */ li $a1,0x8 -/* f099398: 10400003 */ beqz $v0,.PB0f0993a8 -/* f09939c: 00000000 */ nop -/* f0993a0: 100000e7 */ b .PB0f099740 -/* f0993a4: 8fa2004c */ lw $v0,0x4c($sp) -.PB0f0993a8: -/* f0993a8: 3c09800a */ lui $t1,0x800a -/* f0993ac: 8d29e754 */ lw $t1,-0x18ac($t1) -/* f0993b0: 8fa50040 */ lw $a1,0x40($sp) -/* f0993b4: 02003025 */ move $a2,$s0 -/* f0993b8: 81241580 */ lb $a0,0x1580($t1) -/* f0993bc: 0004102a */ slt $v0,$zero,$a0 -/* f0993c0: 50400016 */ beqzl $v0,.PB0f09941c -/* f0993c4: 8fab0038 */ lw $t3,0x38($sp) -/* f0993c8: 28820024 */ slti $v0,$a0,0x24 -/* f0993cc: 10400012 */ beqz $v0,.PB0f099418 -/* f0993d0: 3c0a800a */ lui $t2,0x800a -/* f0993d4: 8d4ae758 */ lw $t2,-0x18a8($t2) -/* f0993d8: 2483ffff */ addiu $v1,$a0,-1 -/* f0993dc: 000368c3 */ sra $t5,$v1,0x3 -/* f0993e0: 8d4b0070 */ lw $t3,0x70($t2) -/* f0993e4: 3c0f800b */ lui $t7,0x800b -/* f0993e8: 30780007 */ andi $t8,$v1,0x7 -/* f0993ec: 000b6080 */ sll $t4,$t3,0x2 -/* f0993f0: 018b6021 */ addu $t4,$t4,$t3 -/* f0993f4: 000c6140 */ sll $t4,$t4,0x5 -/* f0993f8: 018d7021 */ addu $t6,$t4,$t5 -/* f0993fc: 01ee7821 */ addu $t7,$t7,$t6 -/* f099400: 91ef0e6f */ lbu $t7,0xe6f($t7) -/* f099404: 24190001 */ li $t9,0x1 -/* f099408: 03194804 */ sllv $t1,$t9,$t8 -/* f09940c: 01e91024 */ and $v0,$t7,$t1 -/* f099410: 0002502b */ sltu $t2,$zero,$v0 -/* f099414: 01401025 */ move $v0,$t2 -.PB0f099418: -/* f099418: 8fab0038 */ lw $t3,0x38($sp) -.PB0f09941c: -/* f09941c: 544b0092 */ bnel $v0,$t3,.PB0f099668 -/* f099420: 8fae0044 */ lw $t6,0x44($sp) -/* f099424: 920c0003 */ lbu $t4,0x3($s0) -/* f099428: 240d0001 */ li $t5,0x1 -/* f09942c: 0fc2631c */ jal bgun0f098ca0 -/* f099430: 01ac2023 */ subu $a0,$t5,$t4 -/* f099434: 920e0003 */ lbu $t6,0x3($s0) -/* f099438: 24190001 */ li $t9,0x1 -/* f09943c: afa20030 */ sw $v0,0x30($sp) -/* f099440: 02002025 */ move $a0,$s0 -/* f099444: 0fc26459 */ jal bgun0f099188 -/* f099448: 032e2823 */ subu $a1,$t9,$t6 -/* f09944c: 1040001a */ beqz $v0,.PB0f0994b8 -/* f099450: 8fa30030 */ lw $v1,0x30($sp) -/* f099454: 8fb80040 */ lw $t8,0x40($sp) -/* f099458: 24010014 */ li $at,0x14 -/* f09945c: 8f0f0000 */ lw $t7,0x0($t8) -/* f099460: 11e10015 */ beq $t7,$at,.PB0f0994b8 -/* f099464: 00000000 */ nop -/* f099468: 8f090008 */ lw $t1,0x8($t8) -/* f09946c: 02002025 */ move $a0,$s0 -/* f099470: 24190001 */ li $t9,0x1 -/* f099474: 8d2a0000 */ lw $t2,0x0($t1) -/* f099478: 000a6f40 */ sll $t5,$t2,0x1d -/* f09947c: 05a3000e */ bgezl $t5,.PB0f0994b8 -/* f099480: 2403ffff */ li $v1,-1 -/* f099484: 920c0003 */ lbu $t4,0x3($s0) -/* f099488: afa30030 */ sw $v1,0x30($sp) -/* f09948c: 0fc2c532 */ jal weaponGetFunction -/* f099490: 032c2823 */ subu $a1,$t9,$t4 -/* f099494: 8c4e0000 */ lw $t6,0x0($v0) -/* f099498: 24010003 */ li $at,0x3 -/* f09949c: 8fa30030 */ lw $v1,0x30($sp) -/* f0994a0: 31cf00ff */ andi $t7,$t6,0xff -/* f0994a4: 11e10004 */ beq $t7,$at,.PB0f0994b8 -/* f0994a8: 00000000 */ nop -/* f0994ac: 10000002 */ b .PB0f0994b8 -/* f0994b0: 2403ffff */ li $v1,-1 -/* f0994b4: 2403ffff */ li $v1,-1 -.PB0f0994b8: -/* f0994b8: 04610005 */ bgez $v1,.PB0f0994d0 -/* f0994bc: 8fab0040 */ lw $t3,0x40($sp) -/* f0994c0: 92090690 */ lbu $t1,0x690($s0) -/* f0994c4: 352a0001 */ ori $t2,$t1,0x1 -/* f0994c8: 10000066 */ b .PB0f099664 -/* f0994cc: a20a0690 */ sb $t2,0x690($s0) -.PB0f0994d0: -/* f0994d0: 8d640000 */ lw $a0,0x0($t3) -/* f0994d4: 0fc2c6f4 */ jal weaponHasFlag -/* f0994d8: 3c050400 */ lui $a1,0x400 -/* f0994dc: 50400006 */ beqzl $v0,.PB0f0994f8 -/* f0994e0: 920c0690 */ lbu $t4,0x690($s0) -/* f0994e4: 920d0003 */ lbu $t5,0x3($s0) -/* f0994e8: 24010001 */ li $at,0x1 -/* f0994ec: 55a1005e */ bnel $t5,$at,.PB0f099668 -/* f0994f0: 8fae0044 */ lw $t6,0x44($sp) -/* f0994f4: 920c0690 */ lbu $t4,0x690($s0) -.PB0f0994f8: -/* f0994f8: 24050007 */ li $a1,0x7 -/* f0994fc: 358e0002 */ ori $t6,$t4,0x2 -/* f099500: a20e0690 */ sb $t6,0x690($s0) -/* f099504: 0fc273c0 */ jal bgunSetState -/* f099508: 8fa40044 */ lw $a0,0x44($sp) -/* f09950c: 50400056 */ beqzl $v0,.PB0f099668 -/* f099510: 8fae0044 */ lw $t6,0x44($sp) -/* f099514: 1000008a */ b .PB0f099740 -/* f099518: 8fa2004c */ lw $v0,0x4c($sp) -.PB0f09951c: -/* f09951c: 5500001c */ bnezl $t0,.PB0f099590 -/* f099520: 8e0d000c */ lw $t5,0xc($s0) -/* f099524: 8e0f000c */ lw $t7,0xc($s0) -/* f099528: 8fb80040 */ lw $t8,0x40($sp) -/* f09952c: 24050001 */ li $a1,0x1 -/* f099530: 51e0000f */ beqzl $t7,.PB0f099570 -/* f099534: ae00001c */ sw $zero,0x1c($s0) -/* f099538: 8f090000 */ lw $t1,0x0($t8) -/* f09953c: 5120000c */ beqzl $t1,.PB0f099570 -/* f099540: ae00001c */ sw $zero,0x1c($s0) -/* f099544: 920a0690 */ lbu $t2,0x690($s0) -/* f099548: 24050003 */ li $a1,0x3 -/* f09954c: 314bff7f */ andi $t3,$t2,0xff7f -/* f099550: a20b0690 */ sb $t3,0x690($s0) -/* f099554: 0fc273c0 */ jal bgunSetState -/* f099558: 8fa40044 */ lw $a0,0x44($sp) -/* f09955c: 50400042 */ beqzl $v0,.PB0f099668 -/* f099560: 8fae0044 */ lw $t6,0x44($sp) -/* f099564: 10000076 */ b .PB0f099740 -/* f099568: 8fa2004c */ lw $v0,0x4c($sp) -/* f09956c: ae00001c */ sw $zero,0x1c($s0) -.PB0f099570: -/* f099570: ae000018 */ sw $zero,0x18($s0) -/* f099574: 0fc273c0 */ jal bgunSetState -/* f099578: 8fa40044 */ lw $a0,0x44($sp) -/* f09957c: 5040003a */ beqzl $v0,.PB0f099668 -/* f099580: 8fae0044 */ lw $t6,0x44($sp) -/* f099584: 1000006e */ b .PB0f099740 -/* f099588: 8fa2004c */ lw $v0,0x4c($sp) -/* f09958c: 8e0d000c */ lw $t5,0xc($s0) -.PB0f099590: -/* f099590: 8fb80040 */ lw $t8,0x40($sp) -/* f099594: 55a0000a */ bnezl $t5,.PB0f0995c0 -/* f099598: 8f090000 */ lw $t1,0x0($t8) -/* f09959c: 8e1906d4 */ lw $t9,0x6d4($s0) -/* f0995a0: 001976c0 */ sll $t6,$t9,0x1b -/* f0995a4: 05c3001c */ bgezl $t6,.PB0f099618 -/* f0995a8: 8e020024 */ lw $v0,0x24($s0) -/* f0995ac: 920f0003 */ lbu $t7,0x3($s0) -/* f0995b0: 24010001 */ li $at,0x1 -/* f0995b4: 55e10018 */ bnel $t7,$at,.PB0f099618 -/* f0995b8: 8e020024 */ lw $v0,0x24($s0) -/* f0995bc: 8f090000 */ lw $t1,0x0($t8) -.PB0f0995c0: -/* f0995c0: 3c0a800a */ lui $t2,0x800a -/* f0995c4: 51200014 */ beqzl $t1,.PB0f099618 -/* f0995c8: 8e020024 */ lw $v0,0x24($s0) -/* f0995cc: 8d4ae754 */ lw $t2,-0x18ac($t2) -/* f0995d0: 240b0001 */ li $t3,0x1 -/* f0995d4: 24050004 */ li $a1,0x4 -/* f0995d8: ad401600 */ sw $zero,0x1600($t2) -/* f0995dc: 920d06d7 */ lbu $t5,0x6d7($s0) -/* f0995e0: ae0b0020 */ sw $t3,0x20($s0) -/* f0995e4: ae000018 */ sw $zero,0x18($s0) -/* f0995e8: 31b9ffef */ andi $t9,$t5,0xffef -/* f0995ec: ae00001c */ sw $zero,0x1c($s0) -/* f0995f0: ae000014 */ sw $zero,0x14($s0) -/* f0995f4: a21906d7 */ sb $t9,0x6d7($s0) -/* f0995f8: afa80034 */ sw $t0,0x34($sp) -/* f0995fc: 0fc273c0 */ jal bgunSetState -/* f099600: 8fa40044 */ lw $a0,0x44($sp) -/* f099604: 10400003 */ beqz $v0,.PB0f099614 -/* f099608: 8fa80034 */ lw $t0,0x34($sp) -/* f09960c: 1000004c */ b .PB0f099740 -/* f099610: 8fa2004c */ lw $v0,0x4c($sp) -.PB0f099614: -/* f099614: 8e020024 */ lw $v0,0x24($s0) -.PB0f099618: -/* f099618: 24010009 */ li $at,0x9 -/* f09961c: 50400012 */ beqzl $v0,.PB0f099668 -/* f099620: 8fae0044 */ lw $t6,0x44($sp) -/* f099624: ae020020 */ sw $v0,0x20($s0) -/* f099628: ae00001c */ sw $zero,0x1c($s0) -/* f09962c: ae000018 */ sw $zero,0x18($s0) -/* f099630: 1441000c */ bne $v0,$at,.PB0f099664 -/* f099634: ae000024 */ sw $zero,0x24($s0) -/* f099638: 29010002 */ slti $at,$t0,0x2 -/* f09963c: 5020000a */ beqzl $at,.PB0f099668 -/* f099640: 8fae0044 */ lw $t6,0x44($sp) -/* f099644: 05000007 */ bltz $t0,.PB0f099664 -/* f099648: 8fa40044 */ lw $a0,0x44($sp) -/* f09964c: 0fc273c0 */ jal bgunSetState -/* f099650: 24050001 */ li $a1,0x1 -/* f099654: 50400004 */ beqzl $v0,.PB0f099668 -/* f099658: 8fae0044 */ lw $t6,0x44($sp) -/* f09965c: 10000038 */ b .PB0f099740 -/* f099660: 8fa2004c */ lw $v0,0x4c($sp) -.PB0f099664: -/* f099664: 8fae0044 */ lw $t6,0x44($sp) -.PB0f099668: -/* f099668: 8faf0040 */ lw $t7,0x40($sp) -/* f09966c: 55c00034 */ bnezl $t6,.PB0f099740 -/* f099670: 00001025 */ move $v0,$zero -/* f099674: 8df80008 */ lw $t8,0x8($t7) -/* f099678: 8fb90044 */ lw $t9,0x44($sp) -/* f09967c: 3c0d800a */ lui $t5,0x800a -/* f099680: 8f090000 */ lw $t1,0x0($t8) -/* f099684: 00196100 */ sll $t4,$t9,0x4 -/* f099688: 01996023 */ subu $t4,$t4,$t9 -/* f09968c: 00095f40 */ sll $t3,$t1,0x1d -/* f099690: 05610005 */ bgez $t3,.PB0f0996a8 -/* f099694: 000c6080 */ sll $t4,$t4,0x2 -/* f099698: 0fc2881e */ jal bgunAutoSwitchWeapon -/* f09969c: 00000000 */ nop -/* f0996a0: 10000027 */ b .PB0f099740 -/* f0996a4: 00001025 */ move $v0,$zero -.PB0f0996a8: -/* f0996a8: 01996021 */ addu $t4,$t4,$t9 -/* f0996ac: 8dade754 */ lw $t5,-0x18ac($t5) -/* f0996b0: 920e0690 */ lbu $t6,0x690($s0) -/* f0996b4: 000c60c0 */ sll $t4,$t4,0x3 -/* f0996b8: 01996021 */ addu $t4,$t4,$t9 -/* f0996bc: 000c6080 */ sll $t4,$t4,0x2 -/* f0996c0: 01ac1023 */ subu $v0,$t5,$t4 -/* f0996c4: 31cf0001 */ andi $t7,$t6,0x1 -/* f0996c8: 15e00004 */ bnez $t7,.PB0f0996dc -/* f0996cc: 24420ddc */ addiu $v0,$v0,0xddc -/* f0996d0: 82180008 */ lb $t8,0x8($s0) -/* f0996d4: 57000012 */ bnezl $t8,.PB0f099720 -/* f0996d8: 904c0690 */ lbu $t4,0x690($v0) -.PB0f0996dc: -/* f0996dc: 90490690 */ lbu $t1,0x690($v0) -/* f0996e0: 312a0001 */ andi $t2,$t1,0x1 -/* f0996e4: 55400005 */ bnezl $t2,.PB0f0996fc -/* f0996e8: 8e19000c */ lw $t9,0xc($s0) -/* f0996ec: 804b0008 */ lb $t3,0x8($v0) -/* f0996f0: 5560000b */ bnezl $t3,.PB0f099720 -/* f0996f4: 904c0690 */ lbu $t4,0x690($v0) -/* f0996f8: 8e19000c */ lw $t9,0xc($s0) -.PB0f0996fc: -/* f0996fc: 17200004 */ bnez $t9,.PB0f099710 -/* f099700: 00000000 */ nop -/* f099704: 8c4d000c */ lw $t5,0xc($v0) -/* f099708: 51a00005 */ beqzl $t5,.PB0f099720 -/* f09970c: 904c0690 */ lbu $t4,0x690($v0) -.PB0f099710: -/* f099710: 0fc2881e */ jal bgunAutoSwitchWeapon -/* f099714: afa20024 */ sw $v0,0x24($sp) -/* f099718: 8fa20024 */ lw $v0,0x24($sp) -/* f09971c: 904c0690 */ lbu $t4,0x690($v0) -.PB0f099720: -/* f099720: 3198fffe */ andi $t8,$t4,0xfffe -/* f099724: a0580690 */ sb $t8,0x690($v0) -/* f099728: 920a0690 */ lbu $t2,0x690($s0) -/* f09972c: 33090001 */ andi $t1,$t8,0x1 -/* f099730: 314bfffe */ andi $t3,$t2,0xfffe -/* f099734: 012bc825 */ or $t9,$t1,$t3 -/* f099738: a2190690 */ sb $t9,0x690($s0) -/* f09973c: 00001025 */ move $v0,$zero -.PB0f099740: -/* f099740: 8fbf001c */ lw $ra,0x1c($sp) -/* f099744: 8fb00018 */ lw $s0,0x18($sp) -/* f099748: 27bd0040 */ addiu $sp,$sp,0x40 -/* f09974c: 03e00008 */ jr $ra -/* f099750: 00000000 */ nop -); -#else -GLOBAL_ASM( -glabel bgunTickIncIdle -/* f0991e4: 27bdffc0 */ addiu $sp,$sp,-64 -/* f0991e8: afbf001c */ sw $ra,0x1c($sp) -/* f0991ec: afb00018 */ sw $s0,0x18($sp) -/* f0991f0: 00c08025 */ or $s0,$a2,$zero -/* f0991f4: afa40040 */ sw $a0,0x40($sp) -/* f0991f8: afa50044 */ sw $a1,0x44($sp) -/* f0991fc: 0fc2a31f */ jal bgunIsUsingSecondaryFunction -/* f099200: afa7004c */ sw $a3,0x4c($sp) -/* f099204: afa20038 */ sw $v0,0x38($sp) -/* f099208: 8e0e0684 */ lw $t6,0x684($s0) -/* f09920c: 44802000 */ mtc1 $zero,$f4 -/* f099210: a20005dc */ sb $zero,0x5dc($s0) -/* f099214: ae000558 */ sw $zero,0x558($s0) -/* f099218: ae0e0688 */ sw $t6,0x688($s0) -/* f09921c: e60405fc */ swc1 $f4,0x5fc($s0) -/* f099220: 0fc26f56 */ jal bgunIsReadyToSwitch -/* f099224: 8fa40044 */ lw $a0,0x44($sp) -/* f099228: 10400007 */ beqz $v0,.L0f099248 -/* f09922c: 8fa40044 */ lw $a0,0x44($sp) -/* f099230: 0fc27346 */ jal bgunSetState -/* f099234: 24050005 */ addiu $a1,$zero,0x5 -/* f099238: 50400004 */ beqzl $v0,.L0f09924c -/* f09923c: 8faf0038 */ lw $t7,0x38($sp) -/* f099240: 1000014a */ b .L0f09976c -/* f099244: 8fa2004c */ lw $v0,0x4c($sp) -.L0f099248: -/* f099248: 8faf0038 */ lw $t7,0x38($sp) -.L0f09924c: -/* f09924c: 92180003 */ lbu $t8,0x3($s0) -/* f099250: 02003025 */ or $a2,$s0,$zero -/* f099254: 55f80005 */ bnel $t7,$t8,.L0f09926c -/* f099258: 920a0690 */ lbu $t2,0x690($s0) -/* f09925c: 92190690 */ lbu $t9,0x690($s0) -/* f099260: 3329fffd */ andi $t1,$t9,0xfffd -/* f099264: a2090690 */ sb $t1,0x690($s0) -/* f099268: 920a0690 */ lbu $t2,0x690($s0) -.L0f09926c: -/* f09926c: 820c0008 */ lb $t4,0x8($s0) -/* f099270: 314bfffe */ andi $t3,$t2,0xfffe -/* f099274: 11800106 */ beqz $t4,.L0f099690 -/* f099278: a20b0690 */ sb $t3,0x690($s0) -/* f09927c: 92040003 */ lbu $a0,0x3($s0) -/* f099280: 0fc26328 */ jal bgun0f098ca0 -/* f099284: 8fa50040 */ lw $a1,0x40($sp) -/* f099288: 92030003 */ lbu $v1,0x3($s0) -/* f09928c: 8fad0038 */ lw $t5,0x38($sp) -/* f099290: 00404025 */ or $t0,$v0,$zero -/* f099294: 11a3003a */ beq $t5,$v1,.L0f099380 -/* f099298: 00000000 */ nop -/* f09929c: 8e0e0024 */ lw $t6,0x24($s0) -/* f0992a0: 24010009 */ addiu $at,$zero,0x9 -/* f0992a4: 11c10036 */ beq $t6,$at,.L0f099380 -/* f0992a8: 00000000 */ nop -/* f0992ac: 8e0f0690 */ lw $t7,0x690($s0) -/* f0992b0: 24090001 */ addiu $t1,$zero,0x1 -/* f0992b4: 24070001 */ addiu $a3,$zero,0x1 -/* f0992b8: 000fc980 */ sll $t9,$t7,0x6 -/* f0992bc: 0721000a */ bgez $t9,.L0f0992e8 -/* f0992c0: 01232023 */ subu $a0,$t1,$v1 -/* f0992c4: 8fa50040 */ lw $a1,0x40($sp) -/* f0992c8: 02003025 */ or $a2,$s0,$zero -/* f0992cc: afa7002c */ sw $a3,0x2c($sp) -/* f0992d0: 0fc26328 */ jal bgun0f098ca0 -/* f0992d4: afa20034 */ sw $v0,0x34($sp) -/* f0992d8: 8fa7002c */ lw $a3,0x2c($sp) -/* f0992dc: 04410002 */ bgez $v0,.L0f0992e8 -/* f0992e0: 8fa80034 */ lw $t0,0x34($sp) -/* f0992e4: 00003825 */ or $a3,$zero,$zero -.L0f0992e8: -/* f0992e8: 10e00018 */ beqz $a3,.L0f09934c -/* f0992ec: 8faa0040 */ lw $t2,0x40($sp) -/* f0992f0: 8d4b0000 */ lw $t3,0x0($t2) -/* f0992f4: 2401001a */ addiu $at,$zero,0x1a -/* f0992f8: 15610014 */ bne $t3,$at,.L0f09934c -/* f0992fc: 00000000 */ nop -/* f099300: 1500000f */ bnez $t0,.L0f099340 -/* f099304: 00000000 */ nop -/* f099308: ae00001c */ sw $zero,0x1c($s0) -/* f09930c: ae000018 */ sw $zero,0x18($s0) -/* f099310: 8fac0038 */ lw $t4,0x38($sp) -/* f099314: 24050001 */ addiu $a1,$zero,0x1 -/* f099318: a20c0003 */ sb $t4,0x3($s0) -/* f09931c: afa80034 */ sw $t0,0x34($sp) -/* f099320: afa7002c */ sw $a3,0x2c($sp) -/* f099324: 0fc27346 */ jal bgunSetState -/* f099328: 8fa40044 */ lw $a0,0x44($sp) -/* f09932c: 8fa7002c */ lw $a3,0x2c($sp) -/* f099330: 10400006 */ beqz $v0,.L0f09934c -/* f099334: 8fa80034 */ lw $t0,0x34($sp) -/* f099338: 1000010c */ b .L0f09976c -/* f09933c: 8fa2004c */ lw $v0,0x4c($sp) -.L0f099340: -/* f099340: 05010002 */ bgez $t0,.L0f09934c -/* f099344: 00000000 */ nop -/* f099348: 00003825 */ or $a3,$zero,$zero -.L0f09934c: -/* f09934c: 10e0000c */ beqz $a3,.L0f099380 -/* f099350: 00000000 */ nop -/* f099354: 920d0690 */ lbu $t5,0x690($s0) -/* f099358: 24050007 */ addiu $a1,$zero,0x7 -/* f09935c: 31aefffd */ andi $t6,$t5,0xfffd -/* f099360: a20e0690 */ sb $t6,0x690($s0) -/* f099364: afa80034 */ sw $t0,0x34($sp) -/* f099368: 0fc27346 */ jal bgunSetState -/* f09936c: 8fa40044 */ lw $a0,0x44($sp) -/* f099370: 10400003 */ beqz $v0,.L0f099380 -/* f099374: 8fa80034 */ lw $t0,0x34($sp) -/* f099378: 100000fc */ b .L0f09976c -/* f09937c: 8fa2004c */ lw $v0,0x4c($sp) -.L0f099380: -/* f099380: 05010071 */ bgez $t0,.L0f099548 -/* f099384: 8faf0040 */ lw $t7,0x40($sp) -/* f099388: 8de40000 */ lw $a0,0x0($t7) -/* f09938c: 0fc2c5f0 */ jal weaponHasFlag -/* f099390: 24050001 */ addiu $a1,$zero,0x1 -/* f099394: 1040000f */ beqz $v0,.L0f0993d4 -/* f099398: 8fb80040 */ lw $t8,0x40($sp) -/* f09939c: 8f190000 */ lw $t9,0x0($t8) -/* f0993a0: 24010022 */ addiu $at,$zero,0x22 -/* f0993a4: 8fa90044 */ lw $t1,0x44($sp) -/* f0993a8: 17210004 */ bne $t9,$at,.L0f0993bc -/* f0993ac: 8fa40044 */ lw $a0,0x44($sp) -/* f0993b0: 24010001 */ addiu $at,$zero,0x1 -/* f0993b4: 11210007 */ beq $t1,$at,.L0f0993d4 -/* f0993b8: 00000000 */ nop -.L0f0993bc: -/* f0993bc: 0fc27346 */ jal bgunSetState -/* f0993c0: 24050008 */ addiu $a1,$zero,0x8 -/* f0993c4: 10400003 */ beqz $v0,.L0f0993d4 -/* f0993c8: 00000000 */ nop -/* f0993cc: 100000e7 */ b .L0f09976c -/* f0993d0: 8fa2004c */ lw $v0,0x4c($sp) -.L0f0993d4: -/* f0993d4: 3c0a800a */ lui $t2,%hi(g_Vars+0x284) -/* f0993d8: 8d4aa244 */ lw $t2,%lo(g_Vars+0x284)($t2) -/* f0993dc: 8fa50040 */ lw $a1,0x40($sp) -/* f0993e0: 02003025 */ or $a2,$s0,$zero -/* f0993e4: 81441580 */ lb $a0,0x1580($t2) -/* f0993e8: 0004102a */ slt $v0,$zero,$a0 -/* f0993ec: 50400016 */ beqzl $v0,.L0f099448 -/* f0993f0: 8fac0038 */ lw $t4,0x38($sp) -/* f0993f4: 28820024 */ slti $v0,$a0,0x24 -/* f0993f8: 10400012 */ beqz $v0,.L0f099444 -/* f0993fc: 3c0b800a */ lui $t3,%hi(g_Vars+0x288) -/* f099400: 8d6ba248 */ lw $t3,%lo(g_Vars+0x288)($t3) -/* f099404: 2483ffff */ addiu $v1,$a0,-1 -/* f099408: 000370c3 */ sra $t6,$v1,0x3 -/* f09940c: 8d6c0070 */ lw $t4,0x70($t3) -/* f099410: 3c18800b */ lui $t8,%hi(g_PlayerConfigsArray+0x97) -/* f099414: 30790007 */ andi $t9,$v1,0x7 -/* f099418: 000c6880 */ sll $t5,$t4,0x2 -/* f09941c: 01ac6821 */ addu $t5,$t5,$t4 -/* f099420: 000d6940 */ sll $t5,$t5,0x5 -/* f099424: 01ae7821 */ addu $t7,$t5,$t6 -/* f099428: 030fc021 */ addu $t8,$t8,$t7 -/* f09942c: 9318c84f */ lbu $t8,%lo(g_PlayerConfigsArray+0x97)($t8) -/* f099430: 24090001 */ addiu $t1,$zero,0x1 -/* f099434: 03295004 */ sllv $t2,$t1,$t9 -/* f099438: 030a1024 */ and $v0,$t8,$t2 -/* f09943c: 0002582b */ sltu $t3,$zero,$v0 -/* f099440: 01601025 */ or $v0,$t3,$zero -.L0f099444: -/* f099444: 8fac0038 */ lw $t4,0x38($sp) -.L0f099448: -/* f099448: 544c0092 */ bnel $v0,$t4,.L0f099694 -/* f09944c: 8faf0044 */ lw $t7,0x44($sp) -/* f099450: 920d0003 */ lbu $t5,0x3($s0) -/* f099454: 240e0001 */ addiu $t6,$zero,0x1 -/* f099458: 0fc26328 */ jal bgun0f098ca0 -/* f09945c: 01cd2023 */ subu $a0,$t6,$t5 -/* f099460: 920f0003 */ lbu $t7,0x3($s0) -/* f099464: 24090001 */ addiu $t1,$zero,0x1 -/* f099468: afa20030 */ sw $v0,0x30($sp) -/* f09946c: 02002025 */ or $a0,$s0,$zero -/* f099470: 0fc26462 */ jal bgun0f099188 -/* f099474: 012f2823 */ subu $a1,$t1,$t7 -/* f099478: 1040001a */ beqz $v0,.L0f0994e4 -/* f09947c: 8fa30030 */ lw $v1,0x30($sp) -/* f099480: 8fb90040 */ lw $t9,0x40($sp) -/* f099484: 24010014 */ addiu $at,$zero,0x14 -/* f099488: 8f380000 */ lw $t8,0x0($t9) -/* f09948c: 13010015 */ beq $t8,$at,.L0f0994e4 -/* f099490: 00000000 */ nop -/* f099494: 8f2a0008 */ lw $t2,0x8($t9) -/* f099498: 02002025 */ or $a0,$s0,$zero -/* f09949c: 24090001 */ addiu $t1,$zero,0x1 -/* f0994a0: 8d4b0000 */ lw $t3,0x0($t2) -/* f0994a4: 000b7740 */ sll $t6,$t3,0x1d -/* f0994a8: 05c3000e */ bgezl $t6,.L0f0994e4 -/* f0994ac: 2403ffff */ addiu $v1,$zero,-1 -/* f0994b0: 920d0003 */ lbu $t5,0x3($s0) -/* f0994b4: afa30030 */ sw $v1,0x30($sp) -/* f0994b8: 0fc2c42e */ jal weaponGetFunction -/* f0994bc: 012d2823 */ subu $a1,$t1,$t5 -/* f0994c0: 8c4f0000 */ lw $t7,0x0($v0) -/* f0994c4: 24010003 */ addiu $at,$zero,0x3 -/* f0994c8: 8fa30030 */ lw $v1,0x30($sp) -/* f0994cc: 31f800ff */ andi $t8,$t7,0xff -/* f0994d0: 13010004 */ beq $t8,$at,.L0f0994e4 -/* f0994d4: 00000000 */ nop -/* f0994d8: 10000002 */ b .L0f0994e4 -/* f0994dc: 2403ffff */ addiu $v1,$zero,-1 -/* f0994e0: 2403ffff */ addiu $v1,$zero,-1 -.L0f0994e4: -/* f0994e4: 04610005 */ bgez $v1,.L0f0994fc -/* f0994e8: 8fac0040 */ lw $t4,0x40($sp) -/* f0994ec: 920a0690 */ lbu $t2,0x690($s0) -/* f0994f0: 354b0001 */ ori $t3,$t2,0x1 -/* f0994f4: 10000066 */ b .L0f099690 -/* f0994f8: a20b0690 */ sb $t3,0x690($s0) -.L0f0994fc: -/* f0994fc: 8d840000 */ lw $a0,0x0($t4) -/* f099500: 0fc2c5f0 */ jal weaponHasFlag -/* f099504: 3c050400 */ lui $a1,0x400 -/* f099508: 50400006 */ beqzl $v0,.L0f099524 -/* f09950c: 920d0690 */ lbu $t5,0x690($s0) -/* f099510: 920e0003 */ lbu $t6,0x3($s0) -/* f099514: 24010001 */ addiu $at,$zero,0x1 -/* f099518: 55c1005e */ bnel $t6,$at,.L0f099694 -/* f09951c: 8faf0044 */ lw $t7,0x44($sp) -/* f099520: 920d0690 */ lbu $t5,0x690($s0) -.L0f099524: -/* f099524: 24050007 */ addiu $a1,$zero,0x7 -/* f099528: 35af0002 */ ori $t7,$t5,0x2 -/* f09952c: a20f0690 */ sb $t7,0x690($s0) -/* f099530: 0fc27346 */ jal bgunSetState -/* f099534: 8fa40044 */ lw $a0,0x44($sp) -/* f099538: 50400056 */ beqzl $v0,.L0f099694 -/* f09953c: 8faf0044 */ lw $t7,0x44($sp) -/* f099540: 1000008a */ b .L0f09976c -/* f099544: 8fa2004c */ lw $v0,0x4c($sp) -.L0f099548: -/* f099548: 5500001c */ bnezl $t0,.L0f0995bc -/* f09954c: 8e0e000c */ lw $t6,0xc($s0) -/* f099550: 8e18000c */ lw $t8,0xc($s0) -/* f099554: 8fb90040 */ lw $t9,0x40($sp) -/* f099558: 24050001 */ addiu $a1,$zero,0x1 -/* f09955c: 5300000f */ beqzl $t8,.L0f09959c -/* f099560: ae00001c */ sw $zero,0x1c($s0) -/* f099564: 8f2a0000 */ lw $t2,0x0($t9) -/* f099568: 5140000c */ beqzl $t2,.L0f09959c -/* f09956c: ae00001c */ sw $zero,0x1c($s0) -/* f099570: 920b0690 */ lbu $t3,0x690($s0) -/* f099574: 24050003 */ addiu $a1,$zero,0x3 -/* f099578: 316cff7f */ andi $t4,$t3,0xff7f -/* f09957c: a20c0690 */ sb $t4,0x690($s0) -/* f099580: 0fc27346 */ jal bgunSetState -/* f099584: 8fa40044 */ lw $a0,0x44($sp) -/* f099588: 50400042 */ beqzl $v0,.L0f099694 -/* f09958c: 8faf0044 */ lw $t7,0x44($sp) -/* f099590: 10000076 */ b .L0f09976c -/* f099594: 8fa2004c */ lw $v0,0x4c($sp) -/* f099598: ae00001c */ sw $zero,0x1c($s0) -.L0f09959c: -/* f09959c: ae000018 */ sw $zero,0x18($s0) -/* f0995a0: 0fc27346 */ jal bgunSetState -/* f0995a4: 8fa40044 */ lw $a0,0x44($sp) -/* f0995a8: 5040003a */ beqzl $v0,.L0f099694 -/* f0995ac: 8faf0044 */ lw $t7,0x44($sp) -/* f0995b0: 1000006e */ b .L0f09976c -/* f0995b4: 8fa2004c */ lw $v0,0x4c($sp) -/* f0995b8: 8e0e000c */ lw $t6,0xc($s0) -.L0f0995bc: -/* f0995bc: 8fb90040 */ lw $t9,0x40($sp) -/* f0995c0: 55c0000a */ bnezl $t6,.L0f0995ec -/* f0995c4: 8f2a0000 */ lw $t2,0x0($t9) -/* f0995c8: 8e0906d4 */ lw $t1,0x6d4($s0) -/* f0995cc: 00097ec0 */ sll $t7,$t1,0x1b -/* f0995d0: 05e3001c */ bgezl $t7,.L0f099644 -/* f0995d4: 8e020024 */ lw $v0,0x24($s0) -/* f0995d8: 92180003 */ lbu $t8,0x3($s0) -/* f0995dc: 24010001 */ addiu $at,$zero,0x1 -/* f0995e0: 57010018 */ bnel $t8,$at,.L0f099644 -/* f0995e4: 8e020024 */ lw $v0,0x24($s0) -/* f0995e8: 8f2a0000 */ lw $t2,0x0($t9) -.L0f0995ec: -/* f0995ec: 3c0b800a */ lui $t3,%hi(g_Vars+0x284) -/* f0995f0: 51400014 */ beqzl $t2,.L0f099644 -/* f0995f4: 8e020024 */ lw $v0,0x24($s0) -/* f0995f8: 8d6ba244 */ lw $t3,%lo(g_Vars+0x284)($t3) -/* f0995fc: 240c0001 */ addiu $t4,$zero,0x1 -/* f099600: 24050004 */ addiu $a1,$zero,0x4 -/* f099604: ad601600 */ sw $zero,0x1600($t3) -/* f099608: 920e06d7 */ lbu $t6,0x6d7($s0) -/* f09960c: ae0c0020 */ sw $t4,0x20($s0) -/* f099610: ae000018 */ sw $zero,0x18($s0) -/* f099614: 31c9ffef */ andi $t1,$t6,0xffef -/* f099618: ae00001c */ sw $zero,0x1c($s0) -/* f09961c: ae000014 */ sw $zero,0x14($s0) -/* f099620: a20906d7 */ sb $t1,0x6d7($s0) -/* f099624: afa80034 */ sw $t0,0x34($sp) -/* f099628: 0fc27346 */ jal bgunSetState -/* f09962c: 8fa40044 */ lw $a0,0x44($sp) -/* f099630: 10400003 */ beqz $v0,.L0f099640 -/* f099634: 8fa80034 */ lw $t0,0x34($sp) -/* f099638: 1000004c */ b .L0f09976c -/* f09963c: 8fa2004c */ lw $v0,0x4c($sp) -.L0f099640: -/* f099640: 8e020024 */ lw $v0,0x24($s0) -.L0f099644: -/* f099644: 24010009 */ addiu $at,$zero,0x9 -/* f099648: 50400012 */ beqzl $v0,.L0f099694 -/* f09964c: 8faf0044 */ lw $t7,0x44($sp) -/* f099650: ae020020 */ sw $v0,0x20($s0) -/* f099654: ae00001c */ sw $zero,0x1c($s0) -/* f099658: ae000018 */ sw $zero,0x18($s0) -/* f09965c: 1441000c */ bne $v0,$at,.L0f099690 -/* f099660: ae000024 */ sw $zero,0x24($s0) -/* f099664: 29010002 */ slti $at,$t0,0x2 -/* f099668: 5020000a */ beqzl $at,.L0f099694 -/* f09966c: 8faf0044 */ lw $t7,0x44($sp) -/* f099670: 05000007 */ bltz $t0,.L0f099690 -/* f099674: 8fa40044 */ lw $a0,0x44($sp) -/* f099678: 0fc27346 */ jal bgunSetState -/* f09967c: 24050001 */ addiu $a1,$zero,0x1 -/* f099680: 50400004 */ beqzl $v0,.L0f099694 -/* f099684: 8faf0044 */ lw $t7,0x44($sp) -/* f099688: 10000038 */ b .L0f09976c -/* f09968c: 8fa2004c */ lw $v0,0x4c($sp) -.L0f099690: -/* f099690: 8faf0044 */ lw $t7,0x44($sp) -.L0f099694: -/* f099694: 8fb80040 */ lw $t8,0x40($sp) -/* f099698: 55e00034 */ bnezl $t7,.L0f09976c -/* f09969c: 00001025 */ or $v0,$zero,$zero -/* f0996a0: 8f190008 */ lw $t9,0x8($t8) -/* f0996a4: 8fa90044 */ lw $t1,0x44($sp) -/* f0996a8: 3c0e800a */ lui $t6,%hi(g_Vars+0x284) -/* f0996ac: 8f2a0000 */ lw $t2,0x0($t9) -/* f0996b0: 00096900 */ sll $t5,$t1,0x4 -/* f0996b4: 01a96823 */ subu $t5,$t5,$t1 -/* f0996b8: 000a6740 */ sll $t4,$t2,0x1d -/* f0996bc: 05810005 */ bgez $t4,.L0f0996d4 -/* f0996c0: 000d6880 */ sll $t5,$t5,0x2 -/* f0996c4: 0fc2877d */ jal bgunAutoSwitchWeapon -/* f0996c8: 00000000 */ nop -/* f0996cc: 10000027 */ b .L0f09976c -/* f0996d0: 00001025 */ or $v0,$zero,$zero -.L0f0996d4: -/* f0996d4: 01a96821 */ addu $t5,$t5,$t1 -/* f0996d8: 8dcea244 */ lw $t6,%lo(g_Vars+0x284)($t6) -/* f0996dc: 920f0690 */ lbu $t7,0x690($s0) -/* f0996e0: 000d68c0 */ sll $t5,$t5,0x3 -/* f0996e4: 01a96821 */ addu $t5,$t5,$t1 -/* f0996e8: 000d6880 */ sll $t5,$t5,0x2 -/* f0996ec: 01cd1023 */ subu $v0,$t6,$t5 -/* f0996f0: 31f80001 */ andi $t8,$t7,0x1 -/* f0996f4: 17000004 */ bnez $t8,.L0f099708 -/* f0996f8: 24420ddc */ addiu $v0,$v0,0xddc -/* f0996fc: 82190008 */ lb $t9,0x8($s0) -/* f099700: 57200012 */ bnezl $t9,.L0f09974c -/* f099704: 904d0690 */ lbu $t5,0x690($v0) -.L0f099708: -/* f099708: 904a0690 */ lbu $t2,0x690($v0) -/* f09970c: 314b0001 */ andi $t3,$t2,0x1 -/* f099710: 55600005 */ bnezl $t3,.L0f099728 -/* f099714: 8e09000c */ lw $t1,0xc($s0) -/* f099718: 804c0008 */ lb $t4,0x8($v0) -/* f09971c: 5580000b */ bnezl $t4,.L0f09974c -/* f099720: 904d0690 */ lbu $t5,0x690($v0) -/* f099724: 8e09000c */ lw $t1,0xc($s0) -.L0f099728: -/* f099728: 15200004 */ bnez $t1,.L0f09973c -/* f09972c: 00000000 */ nop -/* f099730: 8c4e000c */ lw $t6,0xc($v0) -/* f099734: 51c00005 */ beqzl $t6,.L0f09974c -/* f099738: 904d0690 */ lbu $t5,0x690($v0) -.L0f09973c: -/* f09973c: 0fc2877d */ jal bgunAutoSwitchWeapon -/* f099740: afa20024 */ sw $v0,0x24($sp) -/* f099744: 8fa20024 */ lw $v0,0x24($sp) -/* f099748: 904d0690 */ lbu $t5,0x690($v0) -.L0f09974c: -/* f09974c: 31b9fffe */ andi $t9,$t5,0xfffe -/* f099750: a0590690 */ sb $t9,0x690($v0) -/* f099754: 920b0690 */ lbu $t3,0x690($s0) -/* f099758: 332a0001 */ andi $t2,$t9,0x1 -/* f09975c: 316cfffe */ andi $t4,$t3,0xfffe -/* f099760: 014c4825 */ or $t1,$t2,$t4 -/* f099764: a2090690 */ sb $t1,0x690($s0) -/* f099768: 00001025 */ or $v0,$zero,$zero -.L0f09976c: -/* f09976c: 8fbf001c */ lw $ra,0x1c($sp) -/* f099770: 8fb00018 */ lw $s0,0x18($sp) -/* f099774: 27bd0040 */ addiu $sp,$sp,0x40 -/* f099778: 03e00008 */ jr $ra -/* f09977c: 00000000 */ nop -); -#endif +s32 bgunTickIncIdle(struct handweaponinfo *info, s32 handnum, struct hand *hand, s32 lvupdate) +{ + bool usesec; + s32 gunfunc = bgunIsUsingSecondaryFunction(); + s32 sp34; + s32 sp30; + bool changefunc; + s32 next; + struct hand *lhand; + struct weaponfunc *func; -// Mismatch: regalloc -//s32 bgunTickIncIdle(struct handweaponinfo *info, s32 handnum, struct hand *hand, s32 lvupdate) -//{ -// bool usesec; -// s32 gunfunc = bgunIsUsingSecondaryFunction(); -// s32 sp34; -// s32 sp30; -// bool changefunc; -// s32 next; -// struct hand *lhand; -// struct weaponfunc *func; -// -// hand->lastdirvalid = false; -// hand->burstbullets = 0; -//#if VERSION < VERSION_PAL_FINAL -// hand->animframeincfreal = hand->animframeinc; -//#endif -// hand->shotremainder = 0; -// -// // If ready to change gun due to manual switch, just do that -// if (bgunIsReadyToSwitch(handnum) && bgunSetState(handnum, HANDSTATE_CHANGEGUN)) { -// return lvupdate; -// } -// -// if (gunfunc == hand->gset.weaponfunc) { -// hand->unk0cc8_07 = false; -// } -// -// hand->unk0cc8_08 = false; -// -// if (hand->inuse) { -// sp34 = bgun0f098ca0(hand->gset.weaponfunc, info, hand); -// -// // Handle changing gun function -// if (gunfunc != hand->gset.weaponfunc && hand->modenext != HANDMODE_RELOAD) { -// changefunc = true; -// -// if (hand->unk0cc8_07 && bgun0f098ca0(1 - hand->gset.weaponfunc, info, hand) < 0) { -// changefunc = false; -// } -// -// if (changefunc && info->weaponnum == WEAPON_COMBATKNIFE) { -// if (sp34 == 0) { -// hand->count60 = 0; -// hand->count = 0; -// hand->gset.weaponfunc = gunfunc; -// -// if (bgunSetState(handnum, HANDSTATE_RELOAD)) { -// return lvupdate; -// } -// } else { -// if (sp34 < 0) { -// changefunc = false; -// } -// } -// } -// -// if (changefunc) { -// hand->unk0cc8_07 = false; -// -// if (bgunSetState(handnum, HANDSTATE_CHANGEFUNC)) { -// return lvupdate; -// } -// } -// } -// -// if (sp34 < 0) { -// // Attempted to shoot with no ammo -// -// // Consider switching to another weapon -// if (weaponHasFlag(info->weaponnum, WEAPONFLAG_00000001) -// && (info->weaponnum != WEAPON_REMOTEMINE || handnum != HAND_LEFT) -// && bgunSetState(handnum, HANDSTATE_AUTOSWITCH)) { -// return lvupdate; -// } -// -// // Consider switching to other gun function -// usesec = g_Vars.currentplayer->gunctrl.weaponnum >= WEAPON_UNARMED -// && g_Vars.currentplayer->gunctrl.weaponnum <= WEAPON_COMBATBOOST -// && (g_PlayerConfigsArray[g_Vars.currentplayerstats->mpindex].gunfuncs[(g_Vars.currentplayer->gunctrl.weaponnum - 1) >> 3] & (1 << (g_Vars.currentplayer->gunctrl.weaponnum - 1 & 7))); -// -// if (usesec == gunfunc) { -// sp30 = bgun0f098ca0(1 - hand->gset.weaponfunc, info, hand); -// -// if (bgun0f099188(hand, 1 - hand->gset.weaponfunc) -// && info->weaponnum != WEAPON_REAPER) { -// if (info->gunctrl->wantammo) { -// func = weaponGetFunction(&hand->gset, 1 - hand->gset.weaponfunc); -// -// if ((func->type & 0xff) != INVENTORYFUNCTYPE_CLOSE) { -// sp30 = -1; -// } -// } else { -// sp30 = -1; -// } -// } -// -// if (sp30 < 0) { -// hand->unk0cc8_08 = true; -// } else { -// if (!weaponHasFlag(info->weaponnum, WEAPONFLAG_04000000) -// || hand->gset.weaponfunc == FUNC_SECONDARY) { -// hand->unk0cc8_07 = true; -// -// if (bgunSetState(handnum, HANDSTATE_CHANGEFUNC)) { -// return lvupdate; -// } -// } -// } -// } -// } else if (sp34 == 0) { -// // Clip is empty -// if (hand->triggeron && info->weaponnum != WEAPON_NONE) { -// hand->unk0cc8_01 = false; -// -// if (bgunSetState(handnum, HANDSTATE_ATTACKEMPTY)) { -// return lvupdate; -// } -// } else { -// hand->count60 = 0; -// hand->count = 0; -// -// if (bgunSetState(handnum, HANDSTATE_RELOAD)) { -// return lvupdate; -// } -// } -// } else { -// // Clip has ammo -// if (hand->triggeron || (hand->unk0d0f_03 && hand->gset.weaponfunc == FUNC_SECONDARY)) { -// if (info->weaponnum != WEAPON_NONE) { -// g_Vars.currentplayer->doautoselect = false; -// -// hand->mode = HANDMODE_1; -// hand->count = 0; -// hand->count60 = 0; -// hand->triggerreleased = false; -// -// hand->unk0d0f_03 = false; -// -// if (bgunSetState(handnum, HANDSTATE_ATTACK)) { -// return lvupdate; -// } -// } -// } -// -// // Not attacking, but the player may have attempted -// // to change guns or reload while firing -// if (hand->modenext != HANDMODE_NONE) { -// next = hand->modenext; -// -// hand->mode = hand->modenext; -// hand->count60 = 0; -// hand->count = 0; -// hand->modenext = HANDMODE_NONE; -// -// if (next == HANDMODE_RELOAD && sp34 < 2 && sp34 >= 0) { -// if (bgunSetState(handnum, HANDSTATE_RELOAD)) { -// return lvupdate; -// } -// } -// } -// } -// } -// -// // 698 -// if (handnum == HAND_RIGHT) { -// if (info->gunctrl->wantammo) { -// bgunAutoSwitchWeapon(); -// } else { -// lhand = &g_Vars.currentplayer->hands[1] - handnum; -// -// if ((hand->unk0cc8_08 || !hand->inuse) -// && (lhand->unk0cc8_08 || !lhand->inuse) -// && (hand->triggeron || lhand->triggeron)) { -// bgunAutoSwitchWeapon(); -// } -// -// hand->unk0cc8_08 = lhand->unk0cc8_08 = false; -// } -// } -// -// return 0; -//} + hand->lastdirvalid = false; + hand->burstbullets = 0; +#if VERSION < VERSION_PAL_BETA + hand->animframeincfreal = hand->animframeinc; +#endif + hand->shotremainder = 0; + + // If ready to change gun due to manual switch, just do that + if (bgunIsReadyToSwitch(handnum) && bgunSetState(handnum, HANDSTATE_CHANGEGUN)) { + return lvupdate; + } + + if (gunfunc == hand->gset.weaponfunc) { + hand->unk0cc8_07 = false; + } + + hand->unk0cc8_08 = false; + + if (hand->inuse) { + sp34 = bgun0f098ca0(hand->gset.weaponfunc, info, hand); + + // Handle changing gun function + if (gunfunc != hand->gset.weaponfunc && hand->modenext != HANDMODE_RELOAD) { + changefunc = true; + + if (hand->unk0cc8_07 && bgun0f098ca0(1 - hand->gset.weaponfunc, info, hand) < 0) { + changefunc = false; + } + + if (changefunc && info->weaponnum == WEAPON_COMBATKNIFE) { + if (sp34 == 0) { + hand->count60 = 0; + hand->count = 0; + hand->gset.weaponfunc = gunfunc; + + if (bgunSetState(handnum, HANDSTATE_RELOAD)) { + return lvupdate; + } + } else { + if (sp34 < 0) { + changefunc = false; + } + } + } + + if (changefunc) { + hand->unk0cc8_07 = false; + + if (bgunSetState(handnum, HANDSTATE_CHANGEFUNC)) { + return lvupdate; + } + } + } + + if (sp34 < 0) { + // Attempted to shoot with no ammo + + // Consider switching to another weapon + if (weaponHasFlag(info->weaponnum, WEAPONFLAG_00000001) + && (info->weaponnum != WEAPON_REMOTEMINE || handnum != HAND_LEFT) + && bgunSetState(handnum, HANDSTATE_AUTOSWITCH)) { + return lvupdate; + } + + // Consider switching to other gun function + usesec = g_Vars.currentplayer->gunctrl.weaponnum >= WEAPON_UNARMED + && g_Vars.currentplayer->gunctrl.weaponnum <= WEAPON_COMBATBOOST + && (g_PlayerConfigsArray[g_Vars.currentplayerstats->mpindex].gunfuncs[(g_Vars.currentplayer->gunctrl.weaponnum - 1) >> 3] & (1 << (g_Vars.currentplayer->gunctrl.weaponnum - 1 & 7))); + + if (usesec == gunfunc) { + sp30 = bgun0f098ca0(1 - hand->gset.weaponfunc, info, hand); + + if (bgun0f099188(hand, 1 - hand->gset.weaponfunc) + && info->weaponnum != WEAPON_REAPER) { + if (info->gunctrl->wantammo) { + func = weaponGetFunction(&hand->gset, 1 - hand->gset.weaponfunc); + + if ((func->type & 0xff) != INVENTORYFUNCTYPE_CLOSE) { + sp30 = -1; + } + } else { + sp30 = -1; + } + } + + if (sp30 < 0) { + hand->unk0cc8_08 = true; + } else { + if (!weaponHasFlag(info->weaponnum, WEAPONFLAG_04000000) + || hand->gset.weaponfunc == FUNC_SECONDARY) { + hand->unk0cc8_07 = true; + + if (bgunSetState(handnum, HANDSTATE_CHANGEFUNC)) { + return lvupdate; + } + } + } + } + } else if (sp34 == 0) { + // Clip is empty + if (hand->triggeron && info->weaponnum != WEAPON_NONE) { + hand->unk0cc8_01 = false; + + if (bgunSetState(handnum, HANDSTATE_ATTACKEMPTY)) { + return lvupdate; + } + } else { + hand->count60 = 0; + hand->count = 0; + + if (bgunSetState(handnum, HANDSTATE_RELOAD)) { + return lvupdate; + } + } + } else { + // Clip has ammo + if (hand->triggeron || (hand->unk0d0f_03 && hand->gset.weaponfunc == FUNC_SECONDARY)) { + if (info->weaponnum != WEAPON_NONE) { + g_Vars.currentplayer->doautoselect = false; + + hand->mode = HANDMODE_1; + hand->count = 0; + hand->count60 = 0; + hand->triggerreleased = false; + + hand->unk0d0f_03 = false; + + if (bgunSetState(handnum, HANDSTATE_ATTACK)) { + return lvupdate; + } + } + } + + // Not attacking, but the player may have attempted + // to change guns or reload while firing + if (hand->modenext != HANDMODE_NONE) { + next = hand->modenext; + + hand->mode = hand->modenext; + hand->count60 = 0; + hand->count = 0; + hand->modenext = HANDMODE_NONE; + + if (next == HANDMODE_RELOAD && sp34 < 2 && sp34 >= 0) { + if (bgunSetState(handnum, HANDSTATE_RELOAD)) { + if (handnum && handnum && handnum); + return lvupdate; + } + } + } + } + } + + if (handnum == HAND_RIGHT) { + if (info->gunctrl->wantammo) { + bgunAutoSwitchWeapon(); + } else { + lhand = &g_Vars.currentplayer->hands[1] - handnum; + + if ((hand->unk0cc8_08 || !hand->inuse) + && (lhand->unk0cc8_08 || !lhand->inuse) + && (hand->triggeron || lhand->triggeron)) { + bgunAutoSwitchWeapon(); + } + + hand->unk0cc8_08 = lhand->unk0cc8_08 = false; + } + } + + return 0; +} void bgun0f099780(struct hand *hand, f32 angle) {