Decompile currentPlayerSetDeviceActive
This commit is contained in:
parent
ca5a8340f8
commit
80e3e833fc
|
|
@ -1168,66 +1168,35 @@ s32 currentPlayerGetDeviceState(s32 weaponnum)
|
|||
return DEVICESTATE_UNEQUIPPED;
|
||||
}
|
||||
|
||||
GLOBAL_ASM(
|
||||
glabel currentPlayerSetDeviceActive
|
||||
/* f0b1948: 27bdffe8 */ addiu $sp,$sp,-24
|
||||
/* f0b194c: afbf0014 */ sw $ra,0x14($sp)
|
||||
/* f0b1950: 0fc2c3f4 */ jal weaponFindById
|
||||
/* f0b1954: afa5001c */ sw $a1,0x1c($sp)
|
||||
/* f0b1958: 1040002b */ beqz $v0,.L0f0b1a08
|
||||
/* f0b195c: 00001825 */ or $v1,$zero,$zero
|
||||
/* f0b1960: 00402025 */ or $a0,$v0,$zero
|
||||
/* f0b1964: 24080008 */ addiu $t0,$zero,0x8
|
||||
/* f0b1968: 24070005 */ addiu $a3,$zero,0x5
|
||||
.L0f0b196c:
|
||||
/* f0b196c: 8c850014 */ lw $a1,0x14($a0)
|
||||
/* f0b1970: 24630004 */ addiu $v1,$v1,0x4
|
||||
/* f0b1974: 10a00022 */ beqz $a1,.L0f0b1a00
|
||||
/* f0b1978: 00000000 */ nop
|
||||
/* f0b197c: 8cae0000 */ lw $t6,0x0($a1)
|
||||
/* f0b1980: 00a03025 */ or $a2,$a1,$zero
|
||||
/* f0b1984: 31cf00ff */ andi $t7,$t6,0xff
|
||||
/* f0b1988: 14ef001d */ bne $a3,$t7,.L0f0b1a00
|
||||
/* f0b198c: 00000000 */ nop
|
||||
/* f0b1990: 8fb8001c */ lw $t8,0x1c($sp)
|
||||
/* f0b1994: 3c02800a */ lui $v0,%hi(g_Menus+0x20c4)
|
||||
/* f0b1998: 13000012 */ beqz $t8,.L0f0b19e4
|
||||
/* f0b199c: 00000000 */ nop
|
||||
/* f0b19a0: 8ca30014 */ lw $v1,0x14($a1)
|
||||
/* f0b19a4: 3c02800a */ lui $v0,%hi(g_Vars+0x284)
|
||||
/* f0b19a8: 3079000f */ andi $t9,$v1,0xf
|
||||
/* f0b19ac: 13200007 */ beqz $t9,.L0f0b19cc
|
||||
/* f0b19b0: 00000000 */ nop
|
||||
/* f0b19b4: 8c42a244 */ lw $v0,%lo(g_Vars+0x284)($v0)
|
||||
/* f0b19b8: 2401fff0 */ addiu $at,$zero,-16
|
||||
/* f0b19bc: 8c4900c4 */ lw $t1,%lo(g_Menus+0x20c4)($v0)
|
||||
/* f0b19c0: 01215024 */ and $t2,$t1,$at
|
||||
/* f0b19c4: ac4a00c4 */ sw $t2,0xc4($v0)
|
||||
/* f0b19c8: 8ca30014 */ lw $v1,0x14($a1)
|
||||
.L0f0b19cc:
|
||||
/* f0b19cc: 3c02800a */ lui $v0,%hi(g_Vars+0x284)
|
||||
/* f0b19d0: 8c42a244 */ lw $v0,%lo(g_Vars+0x284)($v0)
|
||||
/* f0b19d4: 8c4b00c4 */ lw $t3,0xc4($v0)
|
||||
/* f0b19d8: 01636025 */ or $t4,$t3,$v1
|
||||
/* f0b19dc: 1000000a */ b .L0f0b1a08
|
||||
/* f0b19e0: ac4c00c4 */ sw $t4,0xc4($v0)
|
||||
.L0f0b19e4:
|
||||
/* f0b19e4: 8c42a244 */ lw $v0,-0x5dbc($v0)
|
||||
/* f0b19e8: 8cce0014 */ lw $t6,0x14($a2)
|
||||
/* f0b19ec: 8c4d00c4 */ lw $t5,0xc4($v0)
|
||||
/* f0b19f0: 01c07827 */ nor $t7,$t6,$zero
|
||||
/* f0b19f4: 01afc024 */ and $t8,$t5,$t7
|
||||
/* f0b19f8: 10000003 */ b .L0f0b1a08
|
||||
/* f0b19fc: ac5800c4 */ sw $t8,0xc4($v0)
|
||||
.L0f0b1a00:
|
||||
/* f0b1a00: 1468ffda */ bne $v1,$t0,.L0f0b196c
|
||||
/* f0b1a04: 24840004 */ addiu $a0,$a0,0x4
|
||||
.L0f0b1a08:
|
||||
/* f0b1a08: 8fbf0014 */ lw $ra,0x14($sp)
|
||||
/* f0b1a0c: 27bd0018 */ addiu $sp,$sp,0x18
|
||||
/* f0b1a10: 03e00008 */ jr $ra
|
||||
/* f0b1a14: 00000000 */ nop
|
||||
);
|
||||
void currentPlayerSetDeviceActive(s32 weaponnum, bool active)
|
||||
{
|
||||
struct weapon *weapon = weaponFindById(weaponnum);
|
||||
s32 i;
|
||||
|
||||
if (!weapon) {
|
||||
return;
|
||||
}
|
||||
|
||||
for (i = 0; i < ARRAYCOUNT(weapon->functions); i++) {
|
||||
if (weapon->functions[i]) {
|
||||
struct weaponfunc_device *devicefunc = weapon->functions[i];
|
||||
|
||||
if ((devicefunc->base.type & 0xff) == INVENTORYFUNCTYPE_DEVICE) {
|
||||
if (active) {
|
||||
if (devicefunc->device & (DEVICE_NIGHTVISION | DEVICE_XRAYSCANNER | DEVICE_EYESPY | DEVICE_IRSCANNER)) {
|
||||
g_Vars.currentplayer->devicesactive &= ~(DEVICE_NIGHTVISION | DEVICE_XRAYSCANNER | DEVICE_EYESPY | DEVICE_IRSCANNER);
|
||||
}
|
||||
|
||||
g_Vars.currentplayer->devicesactive |= devicefunc->device;
|
||||
return;
|
||||
}
|
||||
|
||||
g_Vars.currentplayer->devicesactive &= ~devicefunc->device;
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
GLOBAL_ASM(
|
||||
glabel func0f0b1a18
|
||||
|
|
|
|||
Loading…
Reference in New Issue