mirror of
https://gitlab.com/ryandwyer/perfect-dark
synced 2026-09-04 02:09:35 -04:00
Decompile aiUnsetObjFlags2
This commit is contained in:
@@ -6234,49 +6234,20 @@ bool aiSetObjFlag2(void)
|
||||
/**
|
||||
* @cmd 00ae
|
||||
*/
|
||||
GLOBAL_ASM(
|
||||
glabel ai00ae
|
||||
/* f054984: 3c03800a */ lui $v1,0x800a
|
||||
/* f054988: 24639fc0 */ addiu $v1,$v1,-24640
|
||||
/* f05498c: 8c6e0434 */ lw $t6,0x434($v1)
|
||||
/* f054990: 8c6f0438 */ lw $t7,0x438($v1)
|
||||
/* f054994: 27bdffe0 */ addiu $sp,$sp,-32
|
||||
/* f054998: afbf0014 */ sw $ra,0x14($sp)
|
||||
/* f05499c: 01cf1021 */ addu $v0,$t6,$t7
|
||||
/* f0549a0: 90580003 */ lbu $t8,0x3($v0)
|
||||
/* f0549a4: 90480004 */ lbu $t0,0x4($v0)
|
||||
/* f0549a8: 904b0005 */ lbu $t3,0x5($v0)
|
||||
/* f0549ac: 904e0006 */ lbu $t6,0x6($v0)
|
||||
/* f0549b0: 0018ce00 */ sll $t9,$t8,0x18
|
||||
/* f0549b4: 00084c00 */ sll $t1,$t0,0x10
|
||||
/* f0549b8: 03295025 */ or $t2,$t9,$t1
|
||||
/* f0549bc: 000b6200 */ sll $t4,$t3,0x8
|
||||
/* f0549c0: 014c6825 */ or $t5,$t2,$t4
|
||||
/* f0549c4: 01ae7825 */ or $t7,$t5,$t6
|
||||
/* f0549c8: afaf0018 */ sw $t7,0x18($sp)
|
||||
/* f0549cc: 0fc2556c */ jal objFindByTagId
|
||||
/* f0549d0: 90440002 */ lbu $a0,0x2($v0)
|
||||
/* f0549d4: 3c03800a */ lui $v1,0x800a
|
||||
/* f0549d8: 10400009 */ beqz $v0,.L0f054a00
|
||||
/* f0549dc: 24639fc0 */ addiu $v1,$v1,-24640
|
||||
/* f0549e0: 8c580014 */ lw $t8,0x14($v0)
|
||||
/* f0549e4: 8fb90018 */ lw $t9,0x18($sp)
|
||||
/* f0549e8: 53000006 */ beqzl $t8,.L0f054a04
|
||||
/* f0549ec: 8c6a0438 */ lw $t2,0x438($v1)
|
||||
/* f0549f0: 8c48000c */ lw $t0,0xc($v0)
|
||||
/* f0549f4: 03204827 */ nor $t1,$t9,$zero
|
||||
/* f0549f8: 01095824 */ and $t3,$t0,$t1
|
||||
/* f0549fc: ac4b000c */ sw $t3,0xc($v0)
|
||||
.L0f054a00:
|
||||
/* f054a00: 8c6a0438 */ lw $t2,0x438($v1)
|
||||
.L0f054a04:
|
||||
/* f054a04: 8fbf0014 */ lw $ra,0x14($sp)
|
||||
/* f054a08: 27bd0020 */ addiu $sp,$sp,0x20
|
||||
/* f054a0c: 254c0007 */ addiu $t4,$t2,0x7
|
||||
/* f054a10: ac6c0438 */ sw $t4,0x438($v1)
|
||||
/* f054a14: 03e00008 */ jr $ra
|
||||
/* f054a18: 00001025 */ or $v0,$zero,$zero
|
||||
);
|
||||
bool aiUnsetObjFlag2(void)
|
||||
{
|
||||
u8 *cmd = g_Vars.ailist + g_Vars.aioffset;
|
||||
u32 flags = (cmd[4] << 16) | (cmd[5] << 8) | cmd[6] | (cmd[3] << 24);
|
||||
struct defaultobj *obj = objFindByTagId(cmd[2]);
|
||||
|
||||
if (obj && obj->pos) {
|
||||
obj->flags2 &= ~flags;
|
||||
}
|
||||
|
||||
g_Vars.aioffset += 7;
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* @cmd 00af
|
||||
|
||||
@@ -176,7 +176,7 @@
|
||||
/*0x00ab*/ bool aiUnsetObjFlag(void);
|
||||
/*0x00ac*/ bool ai00ac(void);
|
||||
/*0x00ad*/ bool aiSetObjFlag2(void);
|
||||
/*0x00ae*/ bool ai00ae(void);
|
||||
/*0x00ae*/ bool aiUnsetObjFlag2(void);
|
||||
/*0x00af*/ bool ai00af(void);
|
||||
/*0x00b0*/ bool aiSetChrPreset(void);
|
||||
/*0x00b1*/ bool aiSetChrTarget(void);
|
||||
|
||||
@@ -14127,7 +14127,7 @@ bool (*command_pointers[])(void) = {
|
||||
/*0x00ab*/ aiUnsetObjFlag,
|
||||
/*0x00ac*/ ai00ac,
|
||||
/*0x00ad*/ aiSetObjFlag2,
|
||||
/*0x00ae*/ ai00ae,
|
||||
/*0x00ae*/ aiUnsetObjFlag2,
|
||||
/*0x00af*/ ai00af,
|
||||
/*0x00b0*/ aiSetChrPreset,
|
||||
/*0x00b1*/ aiSetChrTarget,
|
||||
|
||||
Reference in New Issue
Block a user