Decompile doorIsOpenOrOpening

This commit is contained in:
Ryan Dwyer
2021-01-31 22:18:22 +10:00
parent a4b6d2e3bf
commit 7571968b58
2 changed files with 25 additions and 46 deletions
+24 -45
View File
@@ -3785,53 +3785,32 @@ glabel func0f00a1f8
/* f00a39c: 27bd0048 */ addiu $sp,$sp,0x48
/* f00a3a0: 03e00008 */ jr $ra
/* f00a3a4: 00000000 */ nop
/* f00a3a8: 27bdffe8 */ addiu $sp,$sp,-24
/* f00a3ac: afbf0014 */ sw $ra,0x14($sp)
/* f00a3b0: 0fc2556c */ jal objFindByTagId
/* f00a3b4: 00000000 */ nop
/* f00a3b8: 1040001f */ beqz $v0,.L0f00a438
/* f00a3bc: 8fbf0014 */ lw $ra,0x14($sp)
/* f00a3c0: 8c4e0014 */ lw $t6,0x14($v0)
/* f00a3c4: 51c0001d */ beqzl $t6,.L0f00a43c
/* f00a3c8: 00001025 */ or $v0,$zero,$zero
/* f00a3cc: 904f0003 */ lbu $t7,0x3($v0)
/* f00a3d0: 24040001 */ addiu $a0,$zero,0x1
/* f00a3d4: 548f0019 */ bnel $a0,$t7,.L0f00a43c
/* f00a3d8: 00001025 */ or $v0,$zero,$zero
/* f00a3dc: 80430084 */ lb $v1,0x84($v0)
/* f00a3e0: 1460000b */ bnez $v1,.L0f00a410
/* f00a3e4: 00000000 */ nop
/* f00a3e8: 44802000 */ mtc1 $zero,$f4
/* f00a3ec: c446007c */ lwc1 $f6,0x7c($v0)
/* f00a3f0: 4604303e */ c.le.s $f6,$f4
/* f00a3f4: 00000000 */ nop
/* f00a3f8: 45000003 */ bc1f .L0f00a408
/* f00a3fc: 00000000 */ nop
/* f00a400: 1000000e */ b .L0f00a43c
/* f00a404: 00001025 */ or $v0,$zero,$zero
.L0f00a408:
/* f00a408: 1000000c */ b .L0f00a43c
/* f00a40c: 24020001 */ addiu $v0,$zero,0x1
.L0f00a410:
/* f00a410: 14830003 */ bne $a0,$v1,.L0f00a420
/* f00a414: 24010002 */ addiu $at,$zero,0x2
/* f00a418: 10000008 */ b .L0f00a43c
/* f00a41c: 24020001 */ addiu $v0,$zero,0x1
.L0f00a420:
/* f00a420: 14610003 */ bne $v1,$at,.L0f00a430
/* f00a424: 00000000 */ nop
/* f00a428: 10000004 */ b .L0f00a43c
/* f00a42c: 00001025 */ or $v0,$zero,$zero
.L0f00a430:
/* f00a430: 10000002 */ b .L0f00a43c
/* f00a434: 00001025 */ or $v0,$zero,$zero
.L0f00a438:
/* f00a438: 00001025 */ or $v0,$zero,$zero
.L0f00a43c:
/* f00a43c: 03e00008 */ jr $ra
/* f00a440: 27bd0018 */ addiu $sp,$sp,0x18
);
bool doorIsOpenOrOpening(s32 tagnum)
{
struct defaultobj *obj = objFindByTagId(tagnum);
if (obj && obj->prop && obj->type == OBJTYPE_DOOR) {
struct doorobj *door = (struct doorobj *)obj;
if (door->mode == DOORMODE_IDLE) {
if (door->frac <= 0) {
return false;
}
return true;
} else if (door->mode == DOORMODE_OPENING) {
return true;
} else if (door->mode == DOORMODE_CLOSING) {
return false;
} else {
return false;
}
}
return false;
}
GLOBAL_ASM(
glabel func0f00a444
/* f00a444: 27bdffe8 */ addiu $sp,$sp,-24
+1 -1
View File
@@ -1204,7 +1204,7 @@ struct doorobj { // objtype 0x01
/*0x72*/ u16 doortype;
/*0x74*/ u32 keyflags;
/*0x78*/ s32 autoclosetime;
/*0x7c*/ f32 frac;
/*0x7c*/ f32 frac; // 0 = closed, maxfrac = fully open
/*0x80*/ f32 fracspeed;
/*0x84*/ s8 mode;
/*0x85*/ u8 glasshits;