diff --git a/src/game/game_0b0fd0.c b/src/game/game_0b0fd0.c index 935db0a40..c8df51a02 100644 --- a/src/game/game_0b0fd0.c +++ b/src/game/game_0b0fd0.c @@ -395,108 +395,21 @@ u16 weaponGetModelNum2(s32 weaponnum) return weaponGetModelNum(weaponnum); } -GLOBAL_ASM( -glabel gsetPopulateFromCurrentPlayer -/* f0b1af0: 3c06800a */ lui $a2,%hi(g_Vars) -/* f0b1af4: 24c69fc0 */ addiu $a2,$a2,%lo(g_Vars) -/* f0b1af8: 8cce0284 */ lw $t6,0x284($a2) -/* f0b1afc: 00041100 */ sll $v0,$a0,0x4 -/* f0b1b00: 00441023 */ subu $v0,$v0,$a0 -/* f0b1b04: 81cf1580 */ lb $t7,0x1580($t6) -/* f0b1b08: 00021080 */ sll $v0,$v0,0x2 -/* f0b1b0c: 00441021 */ addu $v0,$v0,$a0 -/* f0b1b10: a0af0000 */ sb $t7,0x0($a1) -/* f0b1b14: 8cd80284 */ lw $t8,0x284($a2) -/* f0b1b18: 000210c0 */ sll $v0,$v0,0x3 -/* f0b1b1c: 00441021 */ addu $v0,$v0,$a0 -/* f0b1b20: 00021080 */ sll $v0,$v0,0x2 -/* f0b1b24: 0302c821 */ addu $t9,$t8,$v0 -/* f0b1b28: 9328063b */ lbu $t0,0x63b($t9) -/* f0b1b2c: 24010006 */ addiu $at,$zero,0x6 -/* f0b1b30: 31e300ff */ andi $v1,$t7,0xff -/* f0b1b34: a0a80003 */ sb $t0,0x3($a1) -/* f0b1b38: 8cc90284 */ lw $t1,0x284($a2) -/* f0b1b3c: 01225021 */ addu $t2,$t1,$v0 -/* f0b1b40: 914b063a */ lbu $t3,0x63a($t2) -/* f0b1b44: a0ab0002 */ sb $t3,0x2($a1) -/* f0b1b48: 8ccc0284 */ lw $t4,0x284($a2) -/* f0b1b4c: 01826821 */ addu $t5,$t4,$v0 -/* f0b1b50: 91ae0639 */ lbu $t6,0x639($t5) -/* f0b1b54: 1461002a */ bne $v1,$at,.L0f0b1c00 -/* f0b1b58: a0ae0001 */ sb $t6,0x1($a1) -/* f0b1b5c: 8ccf0284 */ lw $t7,0x284($a2) -/* f0b1b60: 3c014120 */ lui $at,0x4120 -/* f0b1b64: 44813000 */ mtc1 $at,$f6 -/* f0b1b68: 01e2c021 */ addu $t8,$t7,$v0 -/* f0b1b6c: c7040874 */ lwc1 $f4,0x874($t8) -/* f0b1b70: 24080001 */ addiu $t0,$zero,0x1 -/* f0b1b74: 3c014f00 */ lui $at,0x4f00 -/* f0b1b78: 46062202 */ mul.s $f8,$f4,$f6 -/* f0b1b7c: 4459f800 */ cfc1 $t9,$31 -/* f0b1b80: 44c8f800 */ ctc1 $t0,$31 -/* f0b1b84: 00000000 */ nop -/* f0b1b88: 460042a4 */ cvt.w.s $f10,$f8 -/* f0b1b8c: 4448f800 */ cfc1 $t0,$31 -/* f0b1b90: 00000000 */ nop -/* f0b1b94: 31080078 */ andi $t0,$t0,0x78 -/* f0b1b98: 51000013 */ beqzl $t0,.L0f0b1be8 -/* f0b1b9c: 44085000 */ mfc1 $t0,$f10 -/* f0b1ba0: 44815000 */ mtc1 $at,$f10 -/* f0b1ba4: 24080001 */ addiu $t0,$zero,0x1 -/* f0b1ba8: 460a4281 */ sub.s $f10,$f8,$f10 -/* f0b1bac: 44c8f800 */ ctc1 $t0,$31 -/* f0b1bb0: 00000000 */ nop -/* f0b1bb4: 460052a4 */ cvt.w.s $f10,$f10 -/* f0b1bb8: 4448f800 */ cfc1 $t0,$31 -/* f0b1bbc: 00000000 */ nop -/* f0b1bc0: 31080078 */ andi $t0,$t0,0x78 -/* f0b1bc4: 15000005 */ bnez $t0,.L0f0b1bdc -/* f0b1bc8: 00000000 */ nop -/* f0b1bcc: 44085000 */ mfc1 $t0,$f10 -/* f0b1bd0: 3c018000 */ lui $at,0x8000 -/* f0b1bd4: 10000007 */ b .L0f0b1bf4 -/* f0b1bd8: 01014025 */ or $t0,$t0,$at -.L0f0b1bdc: -/* f0b1bdc: 10000005 */ b .L0f0b1bf4 -/* f0b1be0: 2408ffff */ addiu $t0,$zero,-1 -/* f0b1be4: 44085000 */ mfc1 $t0,$f10 -.L0f0b1be8: -/* f0b1be8: 00000000 */ nop -/* f0b1bec: 0500fffb */ bltz $t0,.L0f0b1bdc -/* f0b1bf0: 00000000 */ nop -.L0f0b1bf4: -/* f0b1bf4: 44d9f800 */ ctc1 $t9,$31 -/* f0b1bf8: a0a80002 */ sb $t0,0x2($a1) -/* f0b1bfc: 90a30000 */ lbu $v1,0x0($a1) -.L0f0b1c00: -/* f0b1c00: 2401001d */ addiu $at,$zero,0x1d -/* f0b1c04: 14610005 */ bne $v1,$at,.L0f0b1c1c -/* f0b1c08: 00000000 */ nop -/* f0b1c0c: 8cc90284 */ lw $t1,0x284($a2) -/* f0b1c10: 01225021 */ addu $t2,$t1,$v0 -/* f0b1c14: 8d4c0b90 */ lw $t4,0xb90($t2) -/* f0b1c18: a0ac0002 */ sb $t4,0x2($a1) -.L0f0b1c1c: -/* f0b1c1c: 03e00008 */ jr $ra -/* f0b1c20: 00000000 */ nop -); +void gsetPopulateFromCurrentPlayer(s32 handnum, struct gset *gset) +{ + gset->weaponnum = g_Vars.currentplayer->gunctrl.weaponnum; + gset->weaponfunc = g_Vars.currentplayer->hands[handnum].gset.weaponfunc; + gset->unk063a = g_Vars.currentplayer->hands[handnum].gset.unk063a; + gset->unk0639 = g_Vars.currentplayer->hands[handnum].gset.unk0639; -// Mismatch: regalloc -//void gsetPopulateFromCurrentPlayer(s32 handnum, struct gset *gset) -//{ -// gset->weaponnum = g_Vars.currentplayer->weaponnum; -// gset->weaponfunc = g_Vars.currentplayer->hands[handnum].weaponfunc; -// gset->unk063a = g_Vars.currentplayer->hands[handnum].unk063a; -// gset->unk0639 = g_Vars.currentplayer->hands[handnum].unk0639; -// -// if (gset->weaponnum == WEAPON_MAULER) { -// gset->unk063a = g_Vars.currentplayer->hands[handnum].matmot1 * 10.0f; -// } -// -// if (gset->weaponnum == WEAPON_LASER) { -// gset->unk063a = g_Vars.currentplayer->hands[handnum].burstbullets; -// } -//} + if (gset->weaponnum == WEAPON_MAULER) { + gset->unk063a = g_Vars.currentplayer->hands[handnum].matmot1 * 10.0f; + } + + if (gset->weaponnum == WEAPON_LASER) { + gset->unk063a = g_Vars.currentplayer->hands[handnum].burstbullets & 0xff; + } +} struct inventory_ammo *gsetGetAmmoDefinition(struct gset *gset) {