Decompile aiTryEquipWeapon
This commit is contained in:
parent
907e932755
commit
b80739fa4d
|
|
@ -64,39 +64,6 @@ const u32 var7f1a9c44[] = {0x3dcccccd};
|
|||
const u32 var7f1a9c48[] = {0x3dcccccd};
|
||||
const u32 var7f1a9c4c[] = {0x3dcccccd};
|
||||
const u32 var7f1a9c50[] = {0x3dcccccd};
|
||||
const u32 var7f1a9c54[] = {0x7f05592c};
|
||||
const u32 var7f1a9c58[] = {0x7f05592c};
|
||||
const u32 var7f1a9c5c[] = {0x7f05592c};
|
||||
const u32 var7f1a9c60[] = {0x7f05592c};
|
||||
const u32 var7f1a9c64[] = {0x7f05592c};
|
||||
const u32 var7f1a9c68[] = {0x7f05592c};
|
||||
const u32 var7f1a9c6c[] = {0x7f05592c};
|
||||
const u32 var7f1a9c70[] = {0x7f05592c};
|
||||
const u32 var7f1a9c74[] = {0x7f05592c};
|
||||
const u32 var7f1a9c78[] = {0x7f05592c};
|
||||
const u32 var7f1a9c7c[] = {0x7f05592c};
|
||||
const u32 var7f1a9c80[] = {0x7f05592c};
|
||||
const u32 var7f1a9c84[] = {0x7f05592c};
|
||||
const u32 var7f1a9c88[] = {0x7f05592c};
|
||||
const u32 var7f1a9c8c[] = {0x7f055948};
|
||||
const u32 var7f1a9c90[] = {0x7f05592c};
|
||||
const u32 var7f1a9c94[] = {0x7f05592c};
|
||||
const u32 var7f1a9c98[] = {0x7f05592c};
|
||||
const u32 var7f1a9c9c[] = {0x7f05592c};
|
||||
const u32 var7f1a9ca0[] = {0x7f05592c};
|
||||
const u32 var7f1a9ca4[] = {0x7f05592c};
|
||||
const u32 var7f1a9ca8[] = {0x7f05592c};
|
||||
const u32 var7f1a9cac[] = {0x7f05592c};
|
||||
const u32 var7f1a9cb0[] = {0x7f05592c};
|
||||
const u32 var7f1a9cb4[] = {0x7f05592c};
|
||||
const u32 var7f1a9cb8[] = {0x7f05592c};
|
||||
const u32 var7f1a9cbc[] = {0x7f05592c};
|
||||
const u32 var7f1a9cc0[] = {0x7f0559ac};
|
||||
const u32 var7f1a9cc4[] = {0x7f05592c};
|
||||
const u32 var7f1a9cc8[] = {0x7f05592c};
|
||||
const u32 var7f1a9ccc[] = {0x7f05592c};
|
||||
const u32 var7f1a9cd0[] = {0x7f05592c};
|
||||
const u32 var7f1a9cd4[] = {0x7f05592c};
|
||||
|
||||
/**
|
||||
* @cmd 0000
|
||||
|
|
@ -5234,156 +5201,78 @@ glabel aiSpawnChrAtChr
|
|||
/**
|
||||
* @cmd 00c8
|
||||
*/
|
||||
GLOBAL_ASM(
|
||||
glabel aiTryEquipWeapon
|
||||
/* f05580c: 3c09800a */ lui $t1,%hi(g_Vars)
|
||||
/* f055810: 25299fc0 */ addiu $t1,$t1,%lo(g_Vars)
|
||||
/* f055814: 8d250438 */ lw $a1,0x438($t1)
|
||||
/* f055818: 8d2e0434 */ lw $t6,0x434($t1)
|
||||
/* f05581c: 27bdffd8 */ addiu $sp,$sp,-40
|
||||
/* f055820: afbf0014 */ sw $ra,0x14($sp)
|
||||
/* f055824: 01c54021 */ addu $t0,$t6,$a1
|
||||
/* f055828: 91190006 */ lbu $t9,0x6($t0)
|
||||
/* f05582c: 910f0005 */ lbu $t7,0x5($t0)
|
||||
/* f055830: 910c0007 */ lbu $t4,0x7($t0)
|
||||
/* f055834: 00195400 */ sll $t2,$t9,0x10
|
||||
/* f055838: 000fc600 */ sll $t8,$t7,0x18
|
||||
/* f05583c: 91190002 */ lbu $t9,0x2($t0)
|
||||
/* f055840: 030a5825 */ or $t3,$t8,$t2
|
||||
/* f055844: 910a0003 */ lbu $t2,0x3($t0)
|
||||
/* f055848: 8d220424 */ lw $v0,0x424($t1)
|
||||
/* f05584c: 000c6a00 */ sll $t5,$t4,0x8
|
||||
/* f055850: 910f0008 */ lbu $t7,0x8($t0)
|
||||
/* f055854: 0019c200 */ sll $t8,$t9,0x8
|
||||
/* f055858: 016d7025 */ or $t6,$t3,$t5
|
||||
/* f05585c: 030a6025 */ or $t4,$t8,$t2
|
||||
/* f055860: afac001c */ sw $t4,0x1c($sp)
|
||||
/* f055864: 00001825 */ or $v1,$zero,$zero
|
||||
/* f055868: 10400065 */ beqz $v0,.L0f055a00
|
||||
/* f05586c: 01cf3825 */ or $a3,$t6,$t7
|
||||
/* f055870: 8c4b001c */ lw $t3,0x1c($v0)
|
||||
/* f055874: 11600062 */ beqz $t3,.L0f055a00
|
||||
/* f055878: 00000000 */ sll $zero,$zero,0x0
|
||||
/* f05587c: 8c4d0020 */ lw $t5,0x20($v0)
|
||||
/* f055880: 24040014 */ addiu $a0,$zero,0x14
|
||||
/* f055884: 11a0005e */ beqz $t5,.L0f055a00
|
||||
/* f055888: 00000000 */ sll $zero,$zero,0x0
|
||||
/* f05588c: afa70020 */ sw $a3,0x20($sp)
|
||||
/* f055890: 0fc41b99 */ jal cheatIsActive
|
||||
/* f055894: afa80024 */ sw $t0,0x24($sp)
|
||||
/* f055898: 8fa5001c */ lw $a1,0x1c($sp)
|
||||
/* f05589c: 10400012 */ beqz $v0,.L0f0558e8
|
||||
/* f0558a0: 8fa70020 */ lw $a3,0x20($sp)
|
||||
/* f0558a4: 3c01efff */ lui $at,0xefff
|
||||
/* f0558a8: 3421ffff */ ori $at,$at,0xffff
|
||||
/* f0558ac: 8fb90024 */ lw $t9,0x24($sp)
|
||||
/* f0558b0: 00e17024 */ and $t6,$a3,$at
|
||||
/* f0558b4: 3c012000 */ lui $at,0x2000
|
||||
/* f0558b8: 3c04800a */ lui $a0,0x800a
|
||||
/* f0558bc: 01c13825 */ or $a3,$t6,$at
|
||||
/* f0558c0: 8c84a3e4 */ lw $a0,-0x5c1c($a0)
|
||||
/* f0558c4: 0fc22eb4 */ jal func0f08bad0
|
||||
/* f0558c8: 93260004 */ lbu $a2,0x4($t9)
|
||||
/* f0558cc: 3c05800a */ lui $a1,0x800a
|
||||
/* f0558d0: 3c09800a */ lui $t1,%hi(g_Vars)
|
||||
/* f0558d4: 25299fc0 */ addiu $t1,$t1,%lo(g_Vars)
|
||||
/* f0558d8: 8ca5a3f8 */ lw $a1,-0x5c08($a1)
|
||||
/* f0558dc: 00401825 */ or $v1,$v0,$zero
|
||||
/* f0558e0: 10000047 */ beqz $zero,.L0f055a00
|
||||
/* f0558e4: 8fa80024 */ lw $t0,0x24($sp)
|
||||
.L0f0558e8:
|
||||
/* f0558e8: 24040012 */ addiu $a0,$zero,0x12
|
||||
/* f0558ec: 0fc41b99 */ jal cheatIsActive
|
||||
/* f0558f0: afa70020 */ sw $a3,0x20($sp)
|
||||
/* f0558f4: 8fa5001c */ lw $a1,0x1c($sp)
|
||||
/* f0558f8: 10400036 */ beqz $v0,.L0f0559d4
|
||||
/* f0558fc: 8fa70020 */ lw $a3,0x20($sp)
|
||||
/* f055900: 8fb80024 */ lw $t8,0x24($sp)
|
||||
/* f055904: 93060004 */ lbu $a2,0x4($t8)
|
||||
/* f055908: 24cafffe */ addiu $t2,$a2,-2
|
||||
/* f05590c: 2d410021 */ sltiu $at,$t2,0x21
|
||||
/* f055910: 10200026 */ beqz $at,.L0f0559ac
|
||||
/* f055914: 000a5080 */ sll $t2,$t2,0x2
|
||||
/* f055918: 3c017f1b */ lui $at,%hi(var7f1a9c54)
|
||||
/* f05591c: 002a0821 */ addu $at,$at,$t2
|
||||
/* f055920: 8c2a9c54 */ lw $t2,%lo(var7f1a9c54)($at)
|
||||
/* f055924: 01400008 */ jr $t2
|
||||
/* f055928: 00000000 */ sll $zero,$zero,0x0
|
||||
/* f05592c: 3c04800a */ lui $a0,0x800a
|
||||
/* f055930: 8c84a3e4 */ lw $a0,-0x5c1c($a0)
|
||||
/* f055934: 24050108 */ addiu $a1,$zero,0x108
|
||||
/* f055938: 0fc22eb4 */ jal func0f08bad0
|
||||
/* f05593c: 24060018 */ addiu $a2,$zero,0x18
|
||||
/* f055940: 1000001e */ beqz $zero,.L0f0559bc
|
||||
/* f055944: 00401825 */ or $v1,$v0,$zero
|
||||
/* f055948: 3c0c800a */ lui $t4,0x800a
|
||||
/* f05594c: 8d8ca474 */ lw $t4,-0x5b8c($t4)
|
||||
/* f055950: 24010033 */ addiu $at,$zero,0x33
|
||||
/* f055954: 1581000e */ bne $t4,$at,.L0f055990
|
||||
/* f055958: 00000000 */ sll $zero,$zero,0x0
|
||||
/* f05595c: 0fc5b367 */ jal getDifficulty
|
||||
/* f055960: afa70020 */ sw $a3,0x20($sp)
|
||||
/* f055964: 24010002 */ addiu $at,$zero,0x2
|
||||
/* f055968: 8fa5001c */ lw $a1,0x1c($sp)
|
||||
/* f05596c: 14410008 */ bne $v0,$at,.L0f055990
|
||||
/* f055970: 8fa70020 */ lw $a3,0x20($sp)
|
||||
/* f055974: 8fab0024 */ lw $t3,0x24($sp)
|
||||
/* f055978: 3c04800a */ lui $a0,0x800a
|
||||
/* f05597c: 8c84a3e4 */ lw $a0,-0x5c1c($a0)
|
||||
/* f055980: 0fc22eb4 */ jal func0f08bad0
|
||||
/* f055984: 91660004 */ lbu $a2,0x4($t3)
|
||||
/* f055988: 1000000c */ beqz $zero,.L0f0559bc
|
||||
/* f05598c: 00401825 */ or $v1,$v0,$zero
|
||||
.L0f055990:
|
||||
/* f055990: 3c04800a */ lui $a0,0x800a
|
||||
/* f055994: 8c84a3e4 */ lw $a0,-0x5c1c($a0)
|
||||
/* f055998: 24050108 */ addiu $a1,$zero,0x108
|
||||
/* f05599c: 0fc22eb4 */ jal func0f08bad0
|
||||
/* f0559a0: 24060018 */ addiu $a2,$zero,0x18
|
||||
/* f0559a4: 10000005 */ beqz $zero,.L0f0559bc
|
||||
/* f0559a8: 00401825 */ or $v1,$v0,$zero
|
||||
.L0f0559ac:
|
||||
/* f0559ac: 3c04800a */ lui $a0,0x800a
|
||||
/* f0559b0: 0fc22eb4 */ jal func0f08bad0
|
||||
/* f0559b4: 8c84a3e4 */ lw $a0,-0x5c1c($a0)
|
||||
/* f0559b8: 00401825 */ or $v1,$v0,$zero
|
||||
.L0f0559bc:
|
||||
/* f0559bc: 3c05800a */ lui $a1,0x800a
|
||||
/* f0559c0: 3c09800a */ lui $t1,%hi(g_Vars)
|
||||
/* f0559c4: 25299fc0 */ addiu $t1,$t1,%lo(g_Vars)
|
||||
/* f0559c8: 8ca5a3f8 */ lw $a1,-0x5c08($a1)
|
||||
/* f0559cc: 1000000c */ beqz $zero,.L0f055a00
|
||||
/* f0559d0: 8fa80024 */ lw $t0,0x24($sp)
|
||||
.L0f0559d4:
|
||||
/* f0559d4: 8fad0024 */ lw $t5,0x24($sp)
|
||||
/* f0559d8: 3c04800a */ lui $a0,0x800a
|
||||
/* f0559dc: 8c84a3e4 */ lw $a0,-0x5c1c($a0)
|
||||
/* f0559e0: 0fc22eb4 */ jal func0f08bad0
|
||||
/* f0559e4: 91a60004 */ lbu $a2,0x4($t5)
|
||||
/* f0559e8: 3c05800a */ lui $a1,0x800a
|
||||
/* f0559ec: 3c09800a */ lui $t1,%hi(g_Vars)
|
||||
/* f0559f0: 25299fc0 */ addiu $t1,$t1,%lo(g_Vars)
|
||||
/* f0559f4: 8ca5a3f8 */ lw $a1,-0x5c08($a1)
|
||||
/* f0559f8: 00401825 */ or $v1,$v0,$zero
|
||||
/* f0559fc: 8fa80024 */ lw $t0,0x24($sp)
|
||||
.L0f055a00:
|
||||
/* f055a00: 10600007 */ beqz $v1,.L0f055a20
|
||||
/* f055a04: 24ae000a */ addiu $t6,$a1,0xa
|
||||
/* f055a08: 8d240434 */ lw $a0,0x434($t1)
|
||||
/* f055a0c: 0fc13583 */ jal chraiGoToLabel
|
||||
/* f055a10: 91060009 */ lbu $a2,0x9($t0)
|
||||
/* f055a14: 3c01800a */ lui $at,0x800a
|
||||
/* f055a18: 10000002 */ beqz $zero,.L0f055a24
|
||||
/* f055a1c: ac22a3f8 */ sw $v0,-0x5c08($at)
|
||||
.L0f055a20:
|
||||
/* f055a20: ad2e0438 */ sw $t6,0x438($t1)
|
||||
.L0f055a24:
|
||||
/* f055a24: 8fbf0014 */ lw $ra,0x14($sp)
|
||||
/* f055a28: 27bd0028 */ addiu $sp,$sp,0x28
|
||||
/* f055a2c: 00001025 */ or $v0,$zero,$zero
|
||||
/* f055a30: 03e00008 */ jr $ra
|
||||
/* f055a34: 00000000 */ sll $zero,$zero,0x0
|
||||
);
|
||||
bool aiTryEquipWeapon(void)
|
||||
{
|
||||
u8 *cmd = g_Vars.ailist + g_Vars.aioffset;
|
||||
u32 flags = (cmd[6] << 16) | (cmd[7] << 8) | cmd[8] | (cmd[5] << 24);
|
||||
u32 model = cmd[3] | (cmd[2] << 8);
|
||||
struct prop *prop = NULL;
|
||||
|
||||
if (g_Vars.chrdata && g_Vars.chrdata->prop && g_Vars.chrdata->unk020) {
|
||||
if (cheatIsActive(CHEAT_MARQUIS)) {
|
||||
flags &= ~0x10000000;
|
||||
flags |= 0x20000000;
|
||||
|
||||
prop = func0f08bad0(g_Vars.chrdata, model, cmd[4], flags);
|
||||
} else if (cheatIsActive(CHEAT_ENEMYROCKETS)) {
|
||||
switch (cmd[4]) {
|
||||
case WEAPON_FALCON2:
|
||||
case WEAPON_FALCON2_SILENCER:
|
||||
case WEAPON_FALCON2_SCOPE:
|
||||
case WEAPON_MAGSEC4:
|
||||
case WEAPON_MAULER:
|
||||
case WEAPON_PHOENIX:
|
||||
case WEAPON_DY357MAGNUM:
|
||||
case WEAPON_DY357LX:
|
||||
case WEAPON_CMP150:
|
||||
case WEAPON_CYCLONE:
|
||||
case WEAPON_CALLISTONTG:
|
||||
case WEAPON_RCP120:
|
||||
case WEAPON_LAPTOPGUN:
|
||||
case WEAPON_DRAGON:
|
||||
case WEAPON_AR34:
|
||||
case WEAPON_SUPERDRAGON:
|
||||
case WEAPON_SHOTGUN:
|
||||
case WEAPON_REAPER:
|
||||
case WEAPON_SNIPERRIFLE:
|
||||
case WEAPON_FARSIGHTXR20:
|
||||
case WEAPON_DEVASTATOR:
|
||||
case WEAPON_ROCKETLAUNCHER:
|
||||
case WEAPON_SLAYER:
|
||||
case WEAPON_COMBATKNIFE:
|
||||
case WEAPON_CROSSBOW:
|
||||
case WEAPON_TRANQUILIZER:
|
||||
case WEAPON_GRENADE:
|
||||
case WEAPON_NBOMB:
|
||||
case WEAPON_TIMEDMINE:
|
||||
case WEAPON_PROXIMITYMINE:
|
||||
case WEAPON_REMOTEMINE:
|
||||
prop = func0f08bad0(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);
|
||||
} else {
|
||||
prop = func0f08bad0(g_Vars.chrdata, MODEL_CHRDYROCKET, WEAPON_ROCKETLAUNCHER, flags);
|
||||
}
|
||||
break;
|
||||
default:
|
||||
prop = func0f08bad0(g_Vars.chrdata, model, cmd[4], flags);
|
||||
break;
|
||||
}
|
||||
} else {
|
||||
prop = func0f08bad0(g_Vars.chrdata, model, cmd[4], flags);
|
||||
}
|
||||
}
|
||||
|
||||
if (prop) {
|
||||
g_Vars.aioffset = chraiGoToLabel(g_Vars.ailist, g_Vars.aioffset, cmd[9]);
|
||||
} else {
|
||||
g_Vars.aioffset += 10;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* @cmd 00c9
|
||||
|
|
|
|||
Loading…
Reference in New Issue