Decompile aiIfChrInjured

This commit is contained in:
Ryan Dwyer 2019-10-20 23:27:22 +10:00
parent 5fce6a068e
commit 33c27751a3
4 changed files with 17 additions and 49 deletions

View File

@ -14406,52 +14406,20 @@ glabel ai0152
/**
* @cmd 0165
*/
GLOBAL_ASM(
glabel ai0165
/* f05c2e4: 3c03800a */ lui $v1,0x800a
/* f05c2e8: 24639fc0 */ addiu $v1,$v1,-24640
/* f05c2ec: 8c6e0434 */ lw $t6,0x434($v1)
/* f05c2f0: 8c6f0438 */ lw $t7,0x438($v1)
/* f05c2f4: 27bdffe0 */ addiu $sp,$sp,-32
/* f05c2f8: afbf0014 */ sw $ra,0x14($sp)
/* f05c2fc: 01cf3821 */ addu $a3,$t6,$t7
/* f05c300: 90e50002 */ lbu $a1,0x2($a3)
/* f05c304: afa7001c */ sw $a3,0x1c($sp)
/* f05c308: 0fc126d1 */ jal chrFindById
/* f05c30c: 8c640424 */ lw $a0,0x424($v1)
/* f05c310: 3c03800a */ lui $v1,0x800a
/* f05c314: 24639fc0 */ addiu $v1,$v1,-24640
/* f05c318: 10400012 */ beqz $v0,.L0f05c364
/* f05c31c: 8fa7001c */ lw $a3,0x1c($sp)
/* f05c320: 8c580018 */ lw $t8,0x18($v0)
/* f05c324: 0018c800 */ sll $t9,$t8,0x0
/* f05c328: 0723000f */ bgezl $t9,.L0f05c368
/* f05c32c: 8c6b0438 */ lw $t3,0x438($v1)
/* f05c330: 8c490018 */ lw $t1,0x18($v0)
/* f05c334: 3c017fff */ lui $at,0x7fff
/* f05c338: 3421ffff */ ori $at,$at,0xffff
/* f05c33c: 01215024 */ and $t2,$t1,$at
/* f05c340: ac4a0018 */ sw $t2,0x18($v0)
/* f05c344: 90e60003 */ lbu $a2,0x3($a3)
/* f05c348: 8c650438 */ lw $a1,0x438($v1)
/* f05c34c: 0fc13583 */ jal chraiGoToLabel
/* f05c350: 8c640434 */ lw $a0,0x434($v1)
/* f05c354: 3c03800a */ lui $v1,0x800a
/* f05c358: 24639fc0 */ addiu $v1,$v1,-24640
/* f05c35c: 10000004 */ beqz $zero,.L0f05c370
/* f05c360: ac620438 */ sw $v0,0x438($v1)
.L0f05c364:
/* f05c364: 8c6b0438 */ lw $t3,0x438($v1)
.L0f05c368:
/* f05c368: 256c0004 */ addiu $t4,$t3,0x4
/* f05c36c: ac6c0438 */ sw $t4,0x438($v1)
.L0f05c370:
/* f05c370: 8fbf0014 */ lw $ra,0x14($sp)
/* f05c374: 27bd0020 */ addiu $sp,$sp,0x20
/* f05c378: 00001025 */ or $v0,$zero,$zero
/* f05c37c: 03e00008 */ jr $ra
/* f05c380: 00000000 */ sll $zero,$zero,0x0
);
bool aiIfChrInjured(void)
{
u8 *cmd = g_Vars.ailist + g_Vars.aioffset;
struct chrdata *chr = chrFindById(g_Vars.chrdata, cmd[2]);
if (chr && (chr->chrflags & CHRFLAG3_INJURED)) {
chr->chrflags &= ~CHRFLAG3_INJURED;
g_Vars.aioffset = chraiGoToLabel(g_Vars.ailist, g_Vars.aioffset, cmd[3]);
} else {
g_Vars.aioffset += 4;
}
return false;
}
/**
* @cmd 0166

View File

@ -225,7 +225,7 @@
#define CHRFLAG3_10000000 0x10000000 // Not used in scripts
#define CHRFLAG3_20000000 0x20000000 // Not used in scripts
#define CHRFLAG3_40000000 0x40000000 // Not used in scripts
#define CHRFLAG3_80000000 0x80000000 // Not used in scripts
#define CHRFLAG3_INJURED 0x80000000
#define CMD_LABEL 0x0002
#define CMD_END 0x0004

View File

@ -334,7 +334,7 @@
/*0x0157*/ bool aiSetTintedGlassEnabled(void);
/*0x015b*/ bool aiAudioPlayMusic(void);
/*0x015c*/ bool aiAudioRestartMusic(void);
/*0x0165*/ bool ai0165(void);
/*0x0165*/ bool aiIfChrInjured(void);
/*0x0166*/ bool ai0166(void);
/*0x0167*/ bool ai0167(void);
/*0x0168*/ bool ai0168(void);

View File

@ -14310,7 +14310,7 @@ bool (*command_pointers[])(void) = {
/*0x0162*/ NULL,
/*0x0163*/ NULL,
/*0x0164*/ NULL,
/*0x0165*/ ai0165,
/*0x0165*/ aiIfChrInjured,
/*0x0166*/ ai0166,
/*0x0167*/ ai0167,
/*0x0168*/ ai0168,