Decompile chrGiveWeapon

This commit is contained in:
Ryan Dwyer
2020-05-11 22:56:05 +10:00
parent da889ce28c
commit 88d80e2a56
7 changed files with 31 additions and 35 deletions
+2 -2
View File
@@ -15016,9 +15016,9 @@ s32 chrConsiderGrenadeThrow(struct chrdata *chr, u32 entitytype, u32 entityid)
}
if (stageGetIndex(g_Vars.stagenum) == STAGEINDEX_MBR) {
prop = func0f08bad0(chr, 0x112, WEAPON_NBOMB, flags);
prop = chrGiveWeapon(chr, 0x112, WEAPON_NBOMB, flags);
} else {
prop = func0f08bad0(chr, 0x112, WEAPON_GRENADE, flags);
prop = chrGiveWeapon(chr, 0x112, WEAPON_GRENADE, flags);
}
if (prop) {
+8 -8
View File
@@ -4425,7 +4425,7 @@ bool aiTryEquipWeapon(void)
flags &= ~0x10000000;
flags |= 0x20000000;
prop = func0f08bad0(g_Vars.chrdata, model, cmd[4], flags);
prop = chrGiveWeapon(g_Vars.chrdata, model, cmd[4], flags);
} else if (cheatIsActive(CHEAT_ENEMYROCKETS)) {
switch (cmd[4]) {
case WEAPON_FALCON2:
@@ -4459,21 +4459,21 @@ bool aiTryEquipWeapon(void)
case WEAPON_TIMEDMINE:
case WEAPON_PROXIMITYMINE:
case WEAPON_REMOTEMINE:
prop = func0f08bad0(g_Vars.chrdata, MODEL_CHRDYROCKET, WEAPON_ROCKETLAUNCHER, flags);
prop = chrGiveWeapon(g_Vars.chrdata, MODEL_CHRDYROCKET, WEAPON_ROCKETLAUNCHER, flags);
break;
case WEAPON_K7AVENGER:
if (g_Vars.stagenum == STAGE_INVESTIGATION && getDifficulty() == DIFF_PA) {
prop = func0f08bad0(g_Vars.chrdata, model, cmd[4], flags);
prop = chrGiveWeapon(g_Vars.chrdata, model, cmd[4], flags);
} else {
prop = func0f08bad0(g_Vars.chrdata, MODEL_CHRDYROCKET, WEAPON_ROCKETLAUNCHER, flags);
prop = chrGiveWeapon(g_Vars.chrdata, MODEL_CHRDYROCKET, WEAPON_ROCKETLAUNCHER, flags);
}
break;
default:
prop = func0f08bad0(g_Vars.chrdata, model, cmd[4], flags);
prop = chrGiveWeapon(g_Vars.chrdata, model, cmd[4], flags);
break;
}
} else {
prop = func0f08bad0(g_Vars.chrdata, model, cmd[4], flags);
prop = chrGiveWeapon(g_Vars.chrdata, model, cmd[4], flags);
}
}
@@ -4543,7 +4543,7 @@ bool aiDuplicateChr(void)
if (srcweapon0prop) {
srcweapon0 = srcweapon0prop->weapon;
cloneweapon0prop = func0f08bad0(clone, srcweapon0->base.obj, srcweapon0->weapon_id, 0);
cloneweapon0prop = chrGiveWeapon(clone, srcweapon0->base.obj, srcweapon0->weapon_id, 0);
if (cloneweapon0prop) {
cloneweapon0 = cloneweapon0prop->weapon;
@@ -4554,7 +4554,7 @@ bool aiDuplicateChr(void)
if (srcweapon1prop) {
srcweapon1 = srcweapon1prop->weapon;
cloneweapon1prop = func0f08bad0(clone, srcweapon1->base.obj, srcweapon1->weapon_id, 0x10000000);
cloneweapon1prop = chrGiveWeapon(clone, srcweapon1->base.obj, srcweapon1->weapon_id, 0x10000000);
if (cloneweapon1prop) {
cloneweapon1 = cloneweapon1prop->weapon;
+10 -10
View File
@@ -9687,7 +9687,7 @@ glabel var7f1ad6ac
/* f0bee84: 02002025 */ or $a0,$s0,$zero
/* f0bee88: 240500f5 */ addiu $a1,$zero,0xf5
/* f0bee8c: 24060002 */ addiu $a2,$zero,0x2
/* f0bee90: 0fc22eb4 */ jal func0f08bad0
/* f0bee90: 0fc22eb4 */ jal chrGiveWeapon
/* f0bee94: 00003825 */ or $a3,$zero,$zero
.L0f0bee98:
/* f0bee98: 0fc41b99 */ jal cheatIsActive
@@ -9885,7 +9885,7 @@ glabel var7f1ad6ac
/* f0bf174: 02002025 */ or $a0,$s0,$zero
/* f0bf178: 24050101 */ addiu $a1,$zero,0x101
/* f0bf17c: 24060010 */ addiu $a2,$zero,0x10
/* f0bf180: 0fc22eb4 */ jal func0f08bad0
/* f0bf180: 0fc22eb4 */ jal chrGiveWeapon
/* f0bf184: 00003825 */ or $a3,$zero,$zero
.L0f0bf188:
/* f0bf188: 0fc41b99 */ jal cheatIsActive
@@ -9986,12 +9986,12 @@ glabel var7f1ad6ac
/* f0bf2f4: 02002025 */ or $a0,$s0,$zero
/* f0bf2f8: 240500f9 */ addiu $a1,$zero,0xf9
/* f0bf2fc: 24060009 */ addiu $a2,$zero,0x9
/* f0bf300: 0fc22eb4 */ jal func0f08bad0
/* f0bf300: 0fc22eb4 */ jal chrGiveWeapon
/* f0bf304: 00003825 */ or $a3,$zero,$zero
/* f0bf308: 02002025 */ or $a0,$s0,$zero
/* f0bf30c: 240500f8 */ addiu $a1,$zero,0xf8
/* f0bf310: 24060008 */ addiu $a2,$zero,0x8
/* f0bf314: 0fc22eb4 */ jal func0f08bad0
/* f0bf314: 0fc22eb4 */ jal chrGiveWeapon
/* f0bf318: 3c071000 */ lui $a3,0x1000
.L0f0bf31c:
/* f0bf31c: 0fc41b99 */ jal cheatIsActive
@@ -10091,7 +10091,7 @@ glabel var7f1ad6ac
/* f0bf484: 02002025 */ or $a0,$s0,$zero
/* f0bf488: 24050104 */ addiu $a1,$zero,0x104
/* f0bf48c: 2406000d */ addiu $a2,$zero,0xd
/* f0bf490: 0fc22eb4 */ jal func0f08bad0
/* f0bf490: 0fc22eb4 */ jal chrGiveWeapon
/* f0bf494: 00003825 */ or $a3,$zero,$zero
.L0f0bf498:
/* f0bf498: 8fae0058 */ lw $t6,0x58($sp)
@@ -11173,7 +11173,7 @@ glabel var7f1ad6ac
// chr->hidden |= CHRHFLAG_CLOAKED;
// chr->cloakfade_00 = 0;
//
// func0f08bad0(chr, MODEL_CHRFALCON2, WEAPON_FALCON2, 0);
// chrGiveWeapon(chr, MODEL_CHRFALCON2, WEAPON_FALCON2, 0);
// }
// }
//
@@ -11267,7 +11267,7 @@ glabel var7f1ad6ac
// chr->hidden |= CHRHFLAG_CLOAKED;
// chr->cloakfade_00 = 0;
//
// func0f08bad0(chr, MODEL_CHRAVENGER, WEAPON_K7AVENGER, 0);
// chrGiveWeapon(chr, MODEL_CHRAVENGER, WEAPON_K7AVENGER, 0);
// }
// }
//
@@ -11315,8 +11315,8 @@ glabel var7f1ad6ac
// chr->hidden |= CHRHFLAG_CLOAKED;
// chr->cloakfade_00 = 0;
//
// func0f08bad0(chr, MODEL_CHRDY357TRENT, WEAPON_DY357LX, 0);
// func0f08bad0(chr, MODEL_CHRDY357, WEAPON_DY357MAGNUM, 0x10000000);
// chrGiveWeapon(chr, MODEL_CHRDY357TRENT, WEAPON_DY357LX, 0);
// chrGiveWeapon(chr, MODEL_CHRDY357, WEAPON_DY357MAGNUM, 0x10000000);
// }
// }
//
@@ -11364,7 +11364,7 @@ glabel var7f1ad6ac
// chr->hidden |= CHRHFLAG_CLOAKED;
// chr->cloakfade_00 = 0;
//
// func0f08bad0(chr, MODEL_CHRRCP120, WEAPON_RCP120, 0);
// chrGiveWeapon(chr, MODEL_CHRRCP120, WEAPON_RCP120, 0);
// }
// }
//
+2 -2
View File
@@ -5110,7 +5110,7 @@ glabel var7f1b8fc8
/* f194d48: 02802025 */ or $a0,$s4,$zero
/* f194d4c: 00402825 */ or $a1,$v0,$zero
/* f194d50: 8e460020 */ lw $a2,0x20($s2)
/* f194d54: 0fc22eb4 */ jal func0f08bad0
/* f194d54: 0fc22eb4 */ jal chrGiveWeapon
/* f194d58: 00003825 */ or $a3,$zero,$zero
/* f194d5c: 02802025 */ or $a0,$s4,$zero
/* f194d60: 00002825 */ or $a1,$zero,$zero
@@ -5122,7 +5122,7 @@ glabel var7f1b8fc8
/* f194d78: 15210008 */ bne $t1,$at,.L0f194d9c
/* f194d7c: 02202825 */ or $a1,$s1,$zero
/* f194d80: 8e460020 */ lw $a2,0x20($s2)
/* f194d84: 0fc22eb4 */ jal func0f08bad0
/* f194d84: 0fc22eb4 */ jal chrGiveWeapon
/* f194d88: 3c071000 */ lui $a3,0x1000
/* f194d8c: 02802025 */ or $a0,$s4,$zero
/* f194d90: 24050001 */ addiu $a1,$zero,0x1
+1 -1
View File
@@ -2410,7 +2410,7 @@ glabel func0f1994b0
/* f1996d4: 8fa60064 */ lw $a2,0x64($sp)
/* f1996d8: 55e00008 */ bnezl $t7,.L0f1996fc
/* f1996dc: 8fa40064 */ lw $a0,0x64($sp)
/* f1996e0: 0fc22eb4 */ jal func0f08bad0
/* f1996e0: 0fc22eb4 */ jal chrGiveWeapon
/* f1996e4: 3c071000 */ lui $a3,0x1000
/* f1996e8: 02402025 */ or $a0,$s2,$zero
/* f1996ec: 24050001 */ addiu $a1,$zero,0x1
+6 -10
View File
@@ -42839,17 +42839,13 @@ glabel func0f08b8e8
/* f08bacc: 27bd00a0 */ addiu $sp,$sp,0xa0
);
struct prop *chrGiveWeapon(struct chrdata *chr, s32 model, s32 weapon_id, u32 flags)
{
return func0f08b8e8(chr, model, weapon_id, flags, 0, 0);
}
GLOBAL_ASM(
glabel func0f08bad0
/* f08bad0: 27bdffe0 */ addiu $sp,$sp,-32
/* f08bad4: afbf001c */ sw $ra,0x1c($sp)
/* f08bad8: afa00010 */ sw $zero,0x10($sp)
/* f08badc: 0fc22e3a */ jal func0f08b8e8
/* f08bae0: afa00014 */ sw $zero,0x14($sp)
/* f08bae4: 8fbf001c */ lw $ra,0x1c($sp)
/* f08bae8: 27bd0020 */ addiu $sp,$sp,0x20
/* f08baec: 03e00008 */ jr $ra
/* f08baf0: 00000000 */ sll $zero,$zero,0x0
glabel func0f08baf4
/* f08baf4: 27bdffe0 */ addiu $sp,$sp,-32
/* f08baf8: afbf001c */ sw $ra,0x1c($sp)
/* f08bafc: afa40020 */ sw $a0,0x20($sp)
+2 -2
View File
@@ -276,8 +276,8 @@ u32 func0f08b27c(void);
u32 func0f08b658(void);
u32 func0f08b880(void);
void chrSetWeaponFlag4(struct chrdata *chr, s32 slot);
void func0f08b8e8(struct chrdata *chr, s32 weapon_id, s32 arg2, u32 flags, s32 arg4, s32 arg5);
struct prop *func0f08bad0(struct chrdata *chr, s32 model, s32 weapon_id, u32 flags);
struct prop *func0f08b8e8(struct chrdata *chr, s32 weapon_id, s32 arg2, u32 flags, s32 arg4, s32 arg5);
struct prop *chrGiveWeapon(struct chrdata *chr, s32 model, s32 weapon_id, u32 flags);
u32 func0f08bb3c(void);
void func0f08bb5c(struct prop *prop, bool firing, s32 room);
s32 func0f08bc5c(struct prop *prop);