Decompile aiUnlockDoor
This commit is contained in:
parent
01588e056c
commit
6c64d3ad49
|
|
@ -3683,44 +3683,21 @@ bool aiLockDoor(void)
|
|||
/**
|
||||
* @cmd 0071
|
||||
*/
|
||||
GLOBAL_ASM(
|
||||
glabel ai0071
|
||||
/* f0524e4: 3c06800a */ lui $a2,%hi(g_Vars)
|
||||
/* f0524e8: 24c69fc0 */ addiu $a2,$a2,%lo(g_Vars)
|
||||
/* f0524ec: 8cce0434 */ lw $t6,0x434($a2)
|
||||
/* f0524f0: 8ccf0438 */ lw $t7,0x438($a2)
|
||||
/* f0524f4: 27bdffe0 */ addiu $sp,$sp,-32
|
||||
/* f0524f8: afbf0014 */ sw $ra,0x14($sp)
|
||||
/* f0524fc: 01cf2821 */ addu $a1,$t6,$t7
|
||||
/* f052500: 90a40002 */ lbu $a0,0x2($a1)
|
||||
/* f052504: 0fc2556c */ jal objFindByTagId
|
||||
/* f052508: afa5001c */ sw $a1,0x1c($sp)
|
||||
/* f05250c: 3c06800a */ lui $a2,%hi(g_Vars)
|
||||
/* f052510: 24c69fc0 */ addiu $a2,$a2,%lo(g_Vars)
|
||||
/* f052514: 1040000d */ beqz $v0,.L0f05254c
|
||||
/* f052518: 8fa5001c */ lw $a1,0x1c($sp)
|
||||
/* f05251c: 8c430014 */ lw $v1,0x14($v0)
|
||||
/* f052520: 5060000b */ beqzl $v1,.L0f052550
|
||||
/* f052524: 8cca0438 */ lw $t2,0x438($a2)
|
||||
/* f052528: 90780000 */ lbu $t8,0x0($v1)
|
||||
/* f05252c: 24010002 */ addiu $at,$zero,0x2
|
||||
/* f052530: 57010007 */ bnel $t8,$at,.L0f052550
|
||||
/* f052534: 8cca0438 */ lw $t2,0x438($a2)
|
||||
/* f052538: 90a30003 */ lbu $v1,0x3($a1)
|
||||
/* f05253c: 8c590074 */ lw $t9,0x74($v0)
|
||||
/* f052540: 00604027 */ nor $t0,$v1,$zero
|
||||
/* f052544: 03284824 */ and $t1,$t9,$t0
|
||||
/* f052548: ac490074 */ sw $t1,0x74($v0)
|
||||
.L0f05254c:
|
||||
/* f05254c: 8cca0438 */ lw $t2,0x438($a2)
|
||||
.L0f052550:
|
||||
/* f052550: 8fbf0014 */ lw $ra,0x14($sp)
|
||||
/* f052554: 27bd0020 */ addiu $sp,$sp,0x20
|
||||
/* f052558: 254b0004 */ addiu $t3,$t2,0x4
|
||||
/* f05255c: accb0438 */ sw $t3,0x438($a2)
|
||||
/* f052560: 03e00008 */ jr $ra
|
||||
/* f052564: 00001025 */ or $v0,$zero,$zero
|
||||
);
|
||||
bool aiUnlockDoor(void)
|
||||
{
|
||||
u8 *cmd = g_Vars.ailist + g_Vars.aioffset;
|
||||
struct defaultobj *obj = objFindByTagId(cmd[2]);
|
||||
|
||||
if (obj && obj->pos && obj->pos->type == POSITIONTYPE_DOOR) {
|
||||
struct doorobj *door = (struct doorobj *) obj;
|
||||
u8 bits = cmd[3];
|
||||
door->lockbits = door->lockbits & ~bits;
|
||||
}
|
||||
|
||||
g_Vars.aioffset += 4;
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* @cmd 0072
|
||||
|
|
|
|||
|
|
@ -115,7 +115,7 @@
|
|||
/*0x006e*/ bool aiIfDoorState(void);
|
||||
/*0x006f*/ bool aiIfObjectIsDoor(void);
|
||||
/*0x0070*/ bool aiLockDoor(void);
|
||||
/*0x0071*/ bool ai0071(void);
|
||||
/*0x0071*/ bool aiUnlockDoor(void);
|
||||
/*0x0072*/ bool ai0072(void);
|
||||
/*0x0073*/ bool ai0073(void);
|
||||
/*0x0074*/ bool ai0074(void);
|
||||
|
|
|
|||
|
|
@ -14245,7 +14245,7 @@ bool (*g_CommandPointers[])(void) = {
|
|||
/*0x006e*/ aiIfDoorState,
|
||||
/*0x006f*/ aiIfObjectIsDoor,
|
||||
/*0x0070*/ aiLockDoor,
|
||||
/*0x0071*/ ai0071,
|
||||
/*0x0071*/ aiUnlockDoor,
|
||||
/*0x0072*/ ai0072,
|
||||
/*0x0073*/ ai0073,
|
||||
/*0x0074*/ ai0074,
|
||||
|
|
|
|||
Loading…
Reference in New Issue