Attempt to decompile aibotGiveAmmo
This commit is contained in:
parent
51e037ca80
commit
845c8cd59d
|
|
@ -21692,7 +21692,7 @@ glabel currentPlayerGetAmmoCount
|
|||
);
|
||||
|
||||
GLOBAL_ASM(
|
||||
glabel func0f0a98f4
|
||||
glabel ammotypeGetMaxCapacity
|
||||
/* f0a98f4: 00047080 */ sll $t6,$a0,0x2
|
||||
/* f0a98f8: 01c47023 */ subu $t6,$t6,$a0
|
||||
/* f0a98fc: 000e7080 */ sll $t6,$t6,0x2
|
||||
|
|
|
|||
|
|
@ -789,7 +789,7 @@ glabel var7f1b8ea8
|
|||
/* f190df4: 9124005c */ lbu $a0,0x5c($t1)
|
||||
/* f190df8: 0fc6666c */ jal func0f1999b0
|
||||
/* f190dfc: 9125005f */ lbu $a1,0x5f($t1)
|
||||
/* f190e00: 0fc2a63d */ jal func0f0a98f4
|
||||
/* f190e00: 0fc2a63d */ jal ammotypeGetMaxCapacity
|
||||
/* f190e04: 00402025 */ or $a0,$v0,$zero
|
||||
/* f190e08: 0202082a */ slt $at,$s0,$v0
|
||||
/* f190e0c: 54200004 */ bnezl $at,.L0f190e20
|
||||
|
|
@ -823,7 +823,7 @@ glabel var7f1b8ea8
|
|||
/* f190e70: 0fc6672e */ jal func0f199cb8
|
||||
/* f190e74: 8dc402d4 */ lw $a0,0x2d4($t6)
|
||||
/* f190e78: 8e04005c */ lw $a0,0x5c($s0)
|
||||
/* f190e7c: 0fc2a63d */ jal func0f0a98f4
|
||||
/* f190e7c: 0fc2a63d */ jal ammotypeGetMaxCapacity
|
||||
/* f190e80: afa20034 */ sw $v0,0x34($sp)
|
||||
/* f190e84: 8fa50034 */ lw $a1,0x34($sp)
|
||||
/* f190e88: 00a2082a */ slt $at,$a1,$v0
|
||||
|
|
@ -865,7 +865,7 @@ glabel var7f1b8ea8
|
|||
/* f190f0c: 0fc6672e */ jal func0f199cb8
|
||||
/* f190f10: afa30028 */ sw $v1,0x28($sp)
|
||||
/* f190f14: 02002025 */ or $a0,$s0,$zero
|
||||
/* f190f18: 0fc2a63d */ jal func0f0a98f4
|
||||
/* f190f18: 0fc2a63d */ jal ammotypeGetMaxCapacity
|
||||
/* f190f1c: afa20034 */ sw $v0,0x34($sp)
|
||||
/* f190f20: 8fa50034 */ lw $a1,0x34($sp)
|
||||
/* f190f24: 8fa30028 */ lw $v1,0x28($sp)
|
||||
|
|
@ -4384,13 +4384,13 @@ glabel var7f1b8f50
|
|||
/* f1941f4: 8e640000 */ lw $a0,0x0($s3)
|
||||
/* f1941f8: 0fc6666c */ jal func0f1999b0
|
||||
/* f1941fc: 00002825 */ or $a1,$zero,$zero
|
||||
/* f194200: 0fc2a63d */ jal func0f0a98f4
|
||||
/* f194200: 0fc2a63d */ jal ammotypeGetMaxCapacity
|
||||
/* f194204: 00402025 */ or $a0,$v0,$zero
|
||||
/* f194208: 0040b825 */ or $s7,$v0,$zero
|
||||
/* f19420c: 8e640000 */ lw $a0,0x0($s3)
|
||||
/* f194210: 0fc6666c */ jal func0f1999b0
|
||||
/* f194214: 24050001 */ addiu $a1,$zero,0x1
|
||||
/* f194218: 0fc2a63d */ jal func0f0a98f4
|
||||
/* f194218: 0fc2a63d */ jal ammotypeGetMaxCapacity
|
||||
/* f19421c: 00402025 */ or $a0,$v0,$zero
|
||||
/* f194220: 8e650000 */ lw $a1,0x0($s3)
|
||||
/* f194224: 3c038008 */ lui $v1,%hi(var80087eb4)
|
||||
|
|
@ -4660,7 +4660,7 @@ glabel var7f1b8f50
|
|||
/* f1945d0: 0fc6672e */ jal func0f199cb8
|
||||
/* f1945d4: 00003025 */ or $a2,$zero,$zero
|
||||
/* f1945d8: 00409025 */ or $s2,$v0,$zero
|
||||
/* f1945dc: 0fc2a63d */ jal func0f0a98f4
|
||||
/* f1945dc: 0fc2a63d */ jal ammotypeGetMaxCapacity
|
||||
/* f1945e0: 02002025 */ or $a0,$s0,$zero
|
||||
/* f1945e4: 0242082a */ slt $at,$s2,$v0
|
||||
/* f1945e8: 10200008 */ beqz $at,.L0f19460c
|
||||
|
|
|
|||
|
|
@ -203,7 +203,7 @@ glabel func0f199be4
|
|||
/* f199c1c: 00a02025 */ or $a0,$a1,$zero
|
||||
/* f199c20: 0fc6666c */ jal func0f1999b0
|
||||
/* f199c24: 00c02825 */ or $a1,$a2,$zero
|
||||
/* f199c28: 0fc2a63d */ jal func0f0a98f4
|
||||
/* f199c28: 0fc2a63d */ jal ammotypeGetMaxCapacity
|
||||
/* f199c2c: 00402025 */ or $a0,$v0,$zero
|
||||
/* f199c30: 10000007 */ beqz $zero,.L0f199c50
|
||||
/* f199c34: 00401825 */ or $v1,$v0,$zero
|
||||
|
|
@ -260,7 +260,7 @@ glabel func0f199cb8
|
|||
/* f199ce0: 31cf0001 */ andi $t7,$t6,0x1
|
||||
/* f199ce4: 51e00007 */ beqzl $t7,.L0f199d04
|
||||
/* f199ce8: 8cf8001c */ lw $t8,0x1c($a3)
|
||||
/* f199cec: 0fc2a63d */ jal func0f0a98f4
|
||||
/* f199cec: 0fc2a63d */ jal ammotypeGetMaxCapacity
|
||||
/* f199cf0: afa70020 */ sw $a3,0x20($sp)
|
||||
/* f199cf4: 8fa70020 */ lw $a3,0x20($sp)
|
||||
/* f199cf8: 10000005 */ beqz $zero,.L0f199d10
|
||||
|
|
@ -393,7 +393,7 @@ glabel func0f199e3c
|
|||
/* f199eb0: 8fa40024 */ lw $a0,0x24($sp)
|
||||
/* f199eb4: 0fc6666c */ jal func0f1999b0
|
||||
/* f199eb8: afa30018 */ sw $v1,0x18($sp)
|
||||
/* f199ebc: 0fc2a63d */ jal func0f0a98f4
|
||||
/* f199ebc: 0fc2a63d */ jal ammotypeGetMaxCapacity
|
||||
/* f199ec0: 00402025 */ or $a0,$v0,$zero
|
||||
/* f199ec4: 8fa30018 */ lw $v1,0x18($sp)
|
||||
/* f199ec8: 8c6c0000 */ lw $t4,0x0($v1)
|
||||
|
|
@ -436,7 +436,7 @@ glabel aibotGiveAmmo
|
|||
/* f199f40: 8c680000 */ lw $t0,0x0($v1)
|
||||
/* f199f44: 01064821 */ addu $t1,$t0,$a2
|
||||
/* f199f48: ac690000 */ sw $t1,0x0($v1)
|
||||
/* f199f4c: 0fc2a63d */ jal func0f0a98f4
|
||||
/* f199f4c: 0fc2a63d */ jal ammotypeGetMaxCapacity
|
||||
/* f199f50: afa30018 */ sw $v1,0x18($sp)
|
||||
/* f199f54: 8fa30018 */ lw $v1,0x18($sp)
|
||||
/* f199f58: 8c6a0000 */ lw $t2,0x0($v1)
|
||||
|
|
@ -455,6 +455,29 @@ glabel aibotGiveAmmo
|
|||
/* f199f80: 00000000 */ sll $zero,$zero,0x0
|
||||
);
|
||||
|
||||
// Mismatches because the target saves the heldquantity pointer to the stack
|
||||
// before calling to ammotypeGetMaxCapacity, despite it already being saved.
|
||||
//void aibotGiveAmmo(struct aibot *aibot, u32 ammotype, s32 quantity)
|
||||
//{
|
||||
// s32 max;
|
||||
// s32 *heldquantity = &aibot->ammotypes->quantities[ammotype];
|
||||
//
|
||||
// if (!aibot || (aibot->unk064 & 1) || quantity <= 0) {
|
||||
// return;
|
||||
// }
|
||||
//
|
||||
// dprint();
|
||||
//
|
||||
// *heldquantity += quantity;
|
||||
// max = ammotypeGetMaxCapacity(ammotype);
|
||||
//
|
||||
// if (*heldquantity > max) {
|
||||
// *heldquantity = max;
|
||||
// }
|
||||
//
|
||||
// dprint();
|
||||
//}
|
||||
|
||||
GLOBAL_ASM(
|
||||
glabel func0f199f84
|
||||
.late_rodata
|
||||
|
|
|
|||
|
|
@ -1364,7 +1364,7 @@ glabel var7f1b93ec
|
|||
/* f19dbc0: 00402025 */ or $a0,$v0,$zero
|
||||
/* f19dbc4: 0fc2a685 */ jal weaponGetAmmoType
|
||||
/* f19dbc8: 00002825 */ or $a1,$zero,$zero
|
||||
/* f19dbcc: 0fc2a63d */ jal func0f0a98f4
|
||||
/* f19dbcc: 0fc2a63d */ jal ammotypeGetMaxCapacity
|
||||
/* f19dbd0: 00402025 */ or $a0,$v0,$zero
|
||||
/* f19dbd4: 920f0448 */ lbu $t7,0x448($s0)
|
||||
/* f19dbd8: 26310004 */ addiu $s1,$s1,0x4
|
||||
|
|
@ -1386,7 +1386,7 @@ glabel var7f1b93ec
|
|||
.L0f19dc14:
|
||||
/* f19dc14: 10000073 */ beqz $zero,.L0f19dde4
|
||||
/* f19dc18: 92220000 */ lbu $v0,0x0($s1)
|
||||
/* f19dc1c: 0fc2a63d */ jal func0f0a98f4
|
||||
/* f19dc1c: 0fc2a63d */ jal ammotypeGetMaxCapacity
|
||||
/* f19dc20: 2404000b */ addiu $a0,$zero,0xb
|
||||
/* f19dc24: 92080448 */ lbu $t0,0x448($s0)
|
||||
/* f19dc28: 26310004 */ addiu $s1,$s1,0x4
|
||||
|
|
@ -2346,7 +2346,7 @@ glabel func0f19e900
|
|||
/* f19e90c: 0fc2a685 */ jal weaponGetAmmoType
|
||||
/* f19e910: 00002825 */ or $a1,$zero,$zero
|
||||
/* f19e914: afa20020 */ sw $v0,0x20($sp)
|
||||
/* f19e918: 0fc2a63d */ jal func0f0a98f4
|
||||
/* f19e918: 0fc2a63d */ jal ammotypeGetMaxCapacity
|
||||
/* f19e91c: 00402025 */ or $a0,$v0,$zero
|
||||
/* f19e920: 0fc6757d */ jal func0f19d5f4
|
||||
/* f19e924: afa2001c */ sw $v0,0x1c($sp)
|
||||
|
|
@ -3897,7 +3897,7 @@ glabel var7f1b94e4
|
|||
/* f19fd4c: 0fc2a685 */ jal weaponGetAmmoType
|
||||
/* f19fd50: 00002825 */ or $a1,$zero,$zero
|
||||
/* f19fd54: 00408825 */ or $s1,$v0,$zero
|
||||
/* f19fd58: 0fc2a63d */ jal func0f0a98f4
|
||||
/* f19fd58: 0fc2a63d */ jal ammotypeGetMaxCapacity
|
||||
/* f19fd5c: 00402025 */ or $a0,$v0,$zero
|
||||
/* f19fd60: 00408025 */ or $s0,$v0,$zero
|
||||
/* f19fd64: 02402025 */ or $a0,$s2,$zero
|
||||
|
|
@ -3940,7 +3940,7 @@ glabel var7f1b94e4
|
|||
.L0f19fde8:
|
||||
/* f19fde8: 5641001d */ bnel $s2,$at,.L0f19fe60
|
||||
/* f19fdec: a2a0045a */ sb $zero,0x45a($s5)
|
||||
/* f19fdf0: 0fc2a63d */ jal func0f0a98f4
|
||||
/* f19fdf0: 0fc2a63d */ jal ammotypeGetMaxCapacity
|
||||
/* f19fdf4: 2404000b */ addiu $a0,$zero,0xb
|
||||
/* f19fdf8: 86a30478 */ lh $v1,0x478($s5)
|
||||
/* f19fdfc: 00408025 */ or $s0,$v0,$zero
|
||||
|
|
|
|||
|
|
@ -39207,7 +39207,7 @@ glabel func0f088028
|
|||
/* f088048: 0fc2a5dc */ jal ammoGetQuantity
|
||||
/* f08804c: 00000000 */ sll $zero,$zero,0x0
|
||||
/* f088050: afa20020 */ sw $v0,0x20($sp)
|
||||
/* f088054: 0fc2a63d */ jal func0f0a98f4
|
||||
/* f088054: 0fc2a63d */ jal ammotypeGetMaxCapacity
|
||||
/* f088058: 02002025 */ or $a0,$s0,$zero
|
||||
/* f08805c: 8faf0020 */ lw $t7,0x20($sp)
|
||||
/* f088060: 01e2082a */ slt $at,$t7,$v0
|
||||
|
|
@ -40104,7 +40104,7 @@ glabel var7f1aae70
|
|||
/* f088ccc: 0fc2a5dc */ jal ammoGetQuantity
|
||||
/* f088cd0: afa20054 */ sw $v0,0x54($sp)
|
||||
/* f088cd4: 8fa4006c */ lw $a0,0x6c($sp)
|
||||
/* f088cd8: 0fc2a63d */ jal func0f0a98f4
|
||||
/* f088cd8: 0fc2a63d */ jal ammotypeGetMaxCapacity
|
||||
/* f088cdc: afa2003c */ sw $v0,0x3c($sp)
|
||||
/* f088ce0: 8fa6003c */ lw $a2,0x3c($sp)
|
||||
/* f088ce4: 8fa50054 */ lw $a1,0x54($sp)
|
||||
|
|
@ -40135,7 +40135,7 @@ glabel var7f1aae70
|
|||
/* f088d40: 0fc2a5dc */ jal ammoGetQuantity
|
||||
/* f088d44: 2404000b */ addiu $a0,$zero,0xb
|
||||
/* f088d48: 2404000b */ addiu $a0,$zero,0xb
|
||||
/* f088d4c: 0fc2a63d */ jal func0f0a98f4
|
||||
/* f088d4c: 0fc2a63d */ jal ammotypeGetMaxCapacity
|
||||
/* f088d50: afa2003c */ sw $v0,0x3c($sp)
|
||||
/* f088d54: 8fa6003c */ lw $a2,0x3c($sp)
|
||||
/* f088d58: 00c2082a */ slt $at,$a2,$v0
|
||||
|
|
@ -40638,7 +40638,7 @@ glabel var7f1aae84
|
|||
/* f08940c: 0fc2a5dc */ jal ammoGetQuantity
|
||||
/* f089410: 8e04005c */ lw $a0,0x5c($s0)
|
||||
/* f089414: 8e04005c */ lw $a0,0x5c($s0)
|
||||
/* f089418: 0fc2a63d */ jal func0f0a98f4
|
||||
/* f089418: 0fc2a63d */ jal ammotypeGetMaxCapacity
|
||||
/* f08941c: afa20030 */ sw $v0,0x30($sp)
|
||||
/* f089420: 8fa30030 */ lw $v1,0x30($sp)
|
||||
/* f089424: 0062082a */ slt $at,$v1,$v0
|
||||
|
|
@ -40745,7 +40745,7 @@ glabel var7f1aae84
|
|||
/* f08958c: 0fc2a5dc */ jal ammoGetQuantity
|
||||
/* f089590: afa30028 */ sw $v1,0x28($sp)
|
||||
/* f089594: 02002025 */ or $a0,$s0,$zero
|
||||
/* f089598: 0fc2a63d */ jal func0f0a98f4
|
||||
/* f089598: 0fc2a63d */ jal ammotypeGetMaxCapacity
|
||||
/* f08959c: afa20030 */ sw $v0,0x30($sp)
|
||||
/* f0895a0: 8fa30030 */ lw $v1,0x30($sp)
|
||||
/* f0895a4: 0062082a */ slt $at,$v1,$v0
|
||||
|
|
|
|||
|
|
@ -154,7 +154,7 @@ void func0f0a95ec(u32 arg0, u32 arg1);
|
|||
void currentPlayerGiveAmmo(s32 ammotype, s32 quantity);
|
||||
s32 ammoGetQuantity(u32 type);
|
||||
s32 currentPlayerGetAmmoCount(s8 arg0);
|
||||
u32 func0f0a98f4(void);
|
||||
s32 ammotypeGetMaxCapacity(u32 ammotype);
|
||||
bool ammotypeAllowsUnlimitedAmmo(u32 ammotype);
|
||||
u32 func0f0a9980(void);
|
||||
s32 weaponGetAmmoType(s32 weaponnum, u32 func);
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@ u32 func0f199be4(void);
|
|||
u32 func0f199cb8(void);
|
||||
u32 func0f199d70(void);
|
||||
void func0f199e3c(struct aibot *aibot, u32 weaponnum, bool proxy, u32 qty);
|
||||
void aibotGiveAmmo(struct aibot *aibot, u32 ammotype, u32 qty);
|
||||
void aibotGiveAmmo(struct aibot *aibot, u32 ammotype, s32 quantity);
|
||||
u32 func0f199f84(void);
|
||||
bool func0f19a29c(u32 value, bool fallback);
|
||||
u32 func0f19a2dc(u32 value);
|
||||
|
|
|
|||
|
|
@ -137,8 +137,8 @@ struct animdata {
|
|||
/*0x20*/ struct anim *anim;
|
||||
};
|
||||
|
||||
struct aibot_01c {
|
||||
u32 unk00[33];
|
||||
struct aibotammotype {
|
||||
s32 quantities[33];
|
||||
};
|
||||
|
||||
struct aibot {
|
||||
|
|
@ -150,7 +150,7 @@ struct aibot {
|
|||
/*0x010*/ struct prop *prop;
|
||||
/*0x014*/ u32 unk014;
|
||||
/*0x018*/ u32 unk018;
|
||||
/*0x01c*/ struct aibot_01c *unk01c;
|
||||
/*0x01c*/ struct aibotammotype *ammotypes;
|
||||
/*0x020*/ u32 unk020;
|
||||
/*0x024*/ u32 unk024;
|
||||
/*0x028*/ u32 unk028;
|
||||
|
|
|
|||
Loading…
Reference in New Issue