Decompile currentPlayerGiveWeaponWithArgument

This commit is contained in:
Ryan Dwyer 2020-02-05 08:22:02 +10:00
parent c21b170552
commit 7a79cebf64
5 changed files with 50 additions and 52 deletions

View File

@ -599,7 +599,7 @@ glabel currentPlayerInit
/* f011ac0: 0fc04558 */ jal func0f011560
/* f011ac4: 00000000 */ sll $zero,$zero,0x0
/* f011ac8: 8e040004 */ lw $a0,0x4($s0)
/* f011acc: 0fc4478a */ jal func0f111e28
/* f011acc: 0fc4478a */ jal currentPlayerGiveWeaponWithArgument
/* f011ad0: 8e050008 */ lw $a1,0x8($s0)
/* f011ad4: 10000004 */ beqz $zero,.L0f011ae8
/* f011ad8: 8fb80080 */ lw $t8,0x80($sp)
@ -1332,7 +1332,7 @@ glabel currentPlayerInit
//
// if (cmd[2] >= 0) {
// func0f011560(cmd[2]);
// func0f111e28(cmd[1], cmd[2]);
// currentPlayerGiveWeaponWithArgument(cmd[1], cmd[2]);
// } else {
// currentPlayerGiveWeapon(cmd[1]);
// }

View File

@ -5859,7 +5859,7 @@ glabel func0f0b72dc
/* f0b7674: 8e250008 */ lw $a1,0x8($s1)
/* f0b7678: 04a00005 */ bltz $a1,.L0f0b7690
/* f0b767c: 00000000 */ sll $zero,$zero,0x0
/* f0b7680: 0fc4478a */ jal func0f111e28
/* f0b7680: 0fc4478a */ jal currentPlayerGiveWeaponWithArgument
/* f0b7684: 8e240004 */ lw $a0,0x4($s1)
/* f0b7688: 10000016 */ beqz $zero,.L0f0b76e4
/* f0b768c: 26310010 */ addiu $s1,$s1,0x10
@ -6307,7 +6307,7 @@ glabel func0f0b7c60
/* f0b7d0c: afa30034 */ sw $v1,0x34($sp)
/* f0b7d10: 8fad0034 */ lw $t5,0x34($sp)
/* f0b7d14: 91a4005c */ lbu $a0,0x5c($t5)
/* f0b7d18: 0fc4478a */ jal func0f111e28
/* f0b7d18: 0fc4478a */ jal currentPlayerGiveWeaponWithArgument
/* f0b7d1c: 00802825 */ or $a1,$a0,$zero
/* f0b7d20: 8fae0034 */ lw $t6,0x34($sp)
/* f0b7d24: 00002025 */ or $a0,$zero,$zero

View File

@ -558,9 +558,9 @@ bool currentPlayerGiveWeapon(s32 weaponnum)
item = func0f111928();
if (item) {
item->unk00 = 1;
item->weapon04 = weaponnum;
item->weapon06 = -1;
item->type = 1;
item->type1.weapon1 = weaponnum;
item->type1.weapon2 = -1;
func0f11179c(item);
}
@ -570,44 +570,29 @@ bool currentPlayerGiveWeapon(s32 weaponnum)
return false;
}
GLOBAL_ASM(
glabel func0f111e28
/* f111e28: 27bdffe8 */ addiu $sp,$sp,-24
/* f111e2c: afbf0014 */ sw $ra,0x14($sp)
/* f111e30: afa40018 */ sw $a0,0x18($sp)
/* f111e34: 0fc446ac */ jal func0f111ab0
/* f111e38: afa5001c */ sw $a1,0x1c($sp)
/* f111e3c: 14400014 */ bnez $v0,.L0f111e90
/* f111e40: 8fa40018 */ lw $a0,0x18($sp)
/* f111e44: 0fc2c5f0 */ jal weaponHasFlag
/* f111e48: 24051000 */ addiu $a1,$zero,0x1000
/* f111e4c: 1040000e */ beqz $v0,.L0f111e88
/* f111e50: 00000000 */ sll $zero,$zero,0x0
/* f111e54: 0fc4464a */ jal func0f111928
/* f111e58: 00000000 */ sll $zero,$zero,0x0
/* f111e5c: 10400008 */ beqz $v0,.L0f111e80
/* f111e60: 00402025 */ or $a0,$v0,$zero
/* f111e64: 240e0003 */ addiu $t6,$zero,0x3
/* f111e68: ac4e0000 */ sw $t6,0x0($v0)
/* f111e6c: 8faf0018 */ lw $t7,0x18($sp)
/* f111e70: ac4f0004 */ sw $t7,0x4($v0)
/* f111e74: 8fb8001c */ lw $t8,0x1c($sp)
/* f111e78: 0fc445e7 */ jal func0f11179c
/* f111e7c: ac580008 */ sw $t8,0x8($v0)
.L0f111e80:
/* f111e80: 10000004 */ beqz $zero,.L0f111e94
/* f111e84: 24020001 */ addiu $v0,$zero,0x1
.L0f111e88:
/* f111e88: 10000002 */ beqz $zero,.L0f111e94
/* f111e8c: 00001025 */ or $v0,$zero,$zero
.L0f111e90:
/* f111e90: 00001025 */ or $v0,$zero,$zero
.L0f111e94:
/* f111e94: 8fbf0014 */ lw $ra,0x14($sp)
/* f111e98: 27bd0018 */ addiu $sp,$sp,0x18
/* f111e9c: 03e00008 */ jr $ra
/* f111ea0: 00000000 */ sll $zero,$zero,0x0
);
bool currentPlayerGiveWeaponWithArgument(s32 weapon1, s32 weapon2)
{
if (func0f111ab0(weapon1, weapon2) == 0) {
if (weaponHasFlag(weapon1, WEAPONFLAG_00001000)) {
struct invitem *item = func0f111928();
if (item) {
item->type = 3;
item->type3.weapon1 = weapon1;
item->type3.weapon2 = weapon2;
func0f11179c(item);
}
return true;
} else {
return false;
}
} else {
return false;
}
return false;
}
GLOBAL_ASM(
glabel func0f111ea4
@ -856,7 +841,7 @@ glabel func0f1120f0
/* f1121f4: 8fa30024 */ lw $v1,0x24($sp)
/* f1121f8: 10640007 */ beq $v1,$a0,.L0f112218
/* f1121fc: 02002825 */ or $a1,$s0,$zero
/* f112200: 0fc4478a */ jal func0f111e28
/* f112200: 0fc4478a */ jal currentPlayerGiveWeaponWithArgument
/* f112204: 02002025 */ or $a0,$s0,$zero
/* f112208: 10400003 */ beqz $v0,.L0f112218
/* f11220c: 00003825 */ or $a3,$zero,$zero
@ -900,7 +885,7 @@ glabel func0f1120f0
/* f112290: 000e78c0 */ sll $t7,$t6,0x3
/* f112294: 05e10009 */ bgez $t7,.L0f1122bc
/* f112298: 00000000 */ sll $zero,$zero,0x0
/* f11229c: 0fc4478a */ jal func0f111e28
/* f11229c: 0fc4478a */ jal currentPlayerGiveWeaponWithArgument
/* f1122a0: 00c02025 */ or $a0,$a2,$zero
/* f1122a4: 10400003 */ beqz $v0,.L0f1122b4
/* f1122a8: 00000000 */ sll $zero,$zero,0x0
@ -910,7 +895,7 @@ glabel func0f1120f0
/* f1122b4: 10000007 */ beqz $zero,.L0f1122d4
/* f1122b8: 00003825 */ or $a3,$zero,$zero
.L0f1122bc:
/* f1122bc: 0fc4478a */ jal func0f111e28
/* f1122bc: 0fc4478a */ jal currentPlayerGiveWeaponWithArgument
/* f1122c0: 00c02825 */ or $a1,$a2,$zero
/* f1122c4: 10400003 */ beqz $v0,.L0f1122d4
/* f1122c8: 00003825 */ or $a3,$zero,$zero

View File

@ -20,7 +20,7 @@ bool currentPlayerCanHaveAllGunsWeapon(s32 weaponnum);
bool currentPlayerCanHaveWeapon(s32 weaponnum);
bool func0f111cf8(s32 weapon1, s32 weapon2);
bool currentPlayerGiveWeapon(s32 weaponnum);
void func0f111e28(s32 weapon, s32 weaponarg);
bool currentPlayerGiveWeaponWithArgument(s32 weapon1, s32 weapon2);
void func0f111ea4(u32 arg0);
u32 func0f111fcc(void);
u32 func0f112054(void);

View File

@ -5067,10 +5067,23 @@ struct memorypool {
/*0x10*/ u32 unk10;
};
struct invitem_type1 {
s16 weapon1;
s16 weapon2;
};
struct invitem_type3 {
s32 weapon1;
s32 weapon2;
};
struct invitem {
/*0x00*/ u32 unk00;
/*0x04*/ s16 weapon04;
/*0x06*/ s16 weapon06;
/*0x00*/ u32 type;
union {
struct invitem_type1 type1;
struct invitem_type3 type3;
};
};
#endif