Decompile objIsHealthy

This commit is contained in:
Ryan Dwyer 2020-03-29 20:02:01 +10:00
parent 9c28a1698f
commit bdc9ea0ebc
5 changed files with 26 additions and 34 deletions

View File

@ -2347,7 +2347,7 @@ bool aiDestroyObject(void)
u8 *cmd = g_Vars.ailist + g_Vars.aioffset;
struct defaultobj *obj = objFindByTagId(cmd[2]);
if (obj && obj->prop && func0f0687b8(obj) == 0) {
if (obj && obj->prop && objIsBroken(obj) == 0) {
struct defaultobj *entity = obj->prop->obj;
if (entity->obj == MODEL_ELVIS_SAUCER) {

View File

@ -215,7 +215,7 @@ glabel func0f0d7240
/* f0d72b4: 10000018 */ beqz $zero,.L0f0d7318
/* f0d72b8: 24020001 */ addiu $v0,$zero,0x1
.L0f0d72bc:
/* f0d72bc: 0fc1a1ee */ jal func0f0687b8
/* f0d72bc: 0fc1a1ee */ jal objIsBroken
/* f0d72c0: 00000000 */ sll $zero,$zero,0x0
/* f0d72c4: 58400014 */ blezl $v0,.L0f0d7318
/* f0d72c8: 24020001 */ addiu $v0,$zero,0x1

View File

@ -839,7 +839,7 @@ glabel var7f1b8ea8
/* f190ea8: 8df00004 */ lw $s0,0x4($t7)
/* f190eac: 24180001 */ addiu $t8,$zero,0x1
/* f190eb0: afb80064 */ sw $t8,0x64($sp)
/* f190eb4: 0fc1a1ee */ jal func0f0687b8
/* f190eb4: 0fc1a1ee */ jal objIsBroken
/* f190eb8: 8fa40084 */ lw $a0,0x84($sp)
/* f190ebc: 10400005 */ beqz $v0,.L0f190ed4
/* f190ec0: 02001825 */ or $v1,$s0,$zero

View File

@ -2902,7 +2902,7 @@ glabel func0f068760
);
GLOBAL_ASM(
glabel func0f0687b8
glabel objIsBroken
/* f0687b8: 908e0002 */ lbu $t6,0x2($a0)
/* f0687bc: 31cf0040 */ andi $t7,$t6,0x40
/* f0687c0: 55e00004 */ bnezl $t7,.L0f0687d4
@ -30777,7 +30777,7 @@ glabel func0f0809c4
/* f080d40: 1000001e */ beqz $zero,.L0f080dbc
/* f080d44: ae0b0034 */ sw $t3,0x34($s0)
.L0f080d48:
/* f080d48: 0fc1a1ee */ jal func0f0687b8
/* f080d48: 0fc1a1ee */ jal objIsBroken
/* f080d4c: 8fa40074 */ lw $a0,0x74($sp)
/* f080d50: 8e080030 */ lw $t0,0x30($s0)
/* f080d54: 240e0001 */ addiu $t6,$zero,0x1
@ -32150,7 +32150,7 @@ glabel var7f1aa838
/* f0820b0: 968f0014 */ lhu $t7,0x14($s4)
/* f0820b4: 8d8d0010 */ lw $t5,0x10($t4)
/* f0820b8: 000f7080 */ sll $t6,$t7,0x2
/* f0820bc: 0fc1a1ee */ jal func0f0687b8
/* f0820bc: 0fc1a1ee */ jal objIsBroken
/* f0820c0: 01ae9821 */ addu $s3,$t5,$t6
/* f0820c4: 86840010 */ lh $a0,0x10($s4)
/* f0820c8: 24050001 */ addiu $a1,$zero,0x1
@ -34652,7 +34652,7 @@ glabel func0f0841dc
/* f0841fc: 01cf082a */ slt $at,$t6,$t7
/* f084200: 54200006 */ bnezl $at,.L0f08421c
/* f084204: 86180004 */ lh $t8,0x4($s0)
/* f084208: 0fc1a1ee */ jal func0f0687b8
/* f084208: 0fc1a1ee */ jal objIsBroken
/* f08420c: 00000000 */ sll $zero,$zero,0x0
/* f084210: 504000dc */ beqzl $v0,.L0f084584
/* f084214: 8fbf0024 */ lw $ra,0x24($sp)
@ -34688,7 +34688,7 @@ glabel func0f0841dc
/* f08427c: afa30068 */ sw $v1,0x68($sp)
.L0f084280:
/* f084280: afa5006c */ sw $a1,0x6c($sp)
/* f084284: 0fc1a1ee */ jal func0f0687b8
/* f084284: 0fc1a1ee */ jal objIsBroken
/* f084288: a7a60066 */ sh $a2,0x66($sp)
/* f08428c: 14400079 */ bnez $v0,.L0f084474
/* f084290: 8fa30068 */ lw $v1,0x68($sp)
@ -34856,7 +34856,7 @@ glabel func0f0841dc
/* f0844f0: 0fc4a640 */ jal func0f129900
/* f0844f4: afaf0010 */ sw $t7,0x10($sp)
.L0f0844f8:
/* f0844f8: 0fc1a1ee */ jal func0f0687b8
/* f0844f8: 0fc1a1ee */ jal objIsBroken
/* f0844fc: 02002025 */ or $a0,$s0,$zero
/* f084500: 58400012 */ blezl $v0,.L0f08454c
/* f084504: 8fad0030 */ lw $t5,0x30($sp)
@ -35923,7 +35923,7 @@ glabel var7f1aab30
.L0f085318:
/* f085318: 14410006 */ bne $v0,$at,.L0f085334
/* f08531c: 02002025 */ or $a0,$s0,$zero
/* f085320: 0fc1a1ee */ jal func0f0687b8
/* f085320: 0fc1a1ee */ jal objIsBroken
/* f085324: e7ac00c4 */ swc1 $f12,0xc4($sp)
/* f085328: 24010001 */ addiu $at,$zero,0x1
/* f08532c: 10410197 */ beq $v0,$at,.L0f08598c
@ -36038,7 +36038,7 @@ glabel var7f1aab30
/* f0854b4: 46046302 */ mul.s $f12,$f12,$f4
/* f0854b8: 00000000 */ sll $zero,$zero,0x0
.L0f0854bc:
/* f0854bc: 0fc1a1ee */ jal func0f0687b8
/* f0854bc: 0fc1a1ee */ jal objIsBroken
/* f0854c0: e7ac00c4 */ swc1 $f12,0xc4($sp)
/* f0854c4: 1440000d */ bnez $v0,.L0f0854fc
/* f0854c8: c7ac00c4 */ lwc1 $f12,0xc4($sp)
@ -36138,7 +36138,7 @@ glabel var7f1aab30
.L0f085618:
/* f085618: 5441005c */ bnel $v0,$at,.L0f08578c
/* f08561c: 24010039 */ addiu $at,$zero,0x39
/* f085620: 0fc1a1ee */ jal func0f0687b8
/* f085620: 0fc1a1ee */ jal objIsBroken
/* f085624: 02002025 */ or $a0,$s0,$zero
/* f085628: 24010001 */ addiu $at,$zero,0x1
/* f08562c: 144100c7 */ bne $v0,$at,.L0f08594c
@ -36252,7 +36252,7 @@ glabel var7f1aab30
/* f0857c0: 3c014000 */ lui $at,0x4000
/* f0857c4: 02002025 */ or $a0,$s0,$zero
/* f0857c8: 01e14825 */ or $t1,$t7,$at
/* f0857cc: 0fc1a1ee */ jal func0f0687b8
/* f0857cc: 0fc1a1ee */ jal objIsBroken
/* f0857d0: ae090008 */ sw $t1,0x8($s0)
/* f0857d4: 24010001 */ addiu $at,$zero,0x1
/* f0857d8: 1441005c */ bne $v0,$at,.L0f08594c
@ -36266,7 +36266,7 @@ glabel var7f1aab30
.L0f0857f8:
/* f0857f8: 5441000c */ bnel $v0,$at,.L0f08582c
/* f0857fc: 2401000a */ addiu $at,$zero,0xa
/* f085800: 0fc1a1ee */ jal func0f0687b8
/* f085800: 0fc1a1ee */ jal objIsBroken
/* f085804: 02002025 */ or $a0,$s0,$zero
/* f085808: 24010001 */ addiu $at,$zero,0x1
/* f08580c: 1441004f */ bne $v0,$at,.L0f08594c
@ -36280,7 +36280,7 @@ glabel var7f1aab30
.L0f08582c:
/* f08582c: 5441000c */ bnel $v0,$at,.L0f085860
/* f085830: 2401000b */ addiu $at,$zero,0xb
/* f085834: 0fc1a1ee */ jal func0f0687b8
/* f085834: 0fc1a1ee */ jal objIsBroken
/* f085838: 02002025 */ or $a0,$s0,$zero
/* f08583c: 24010001 */ addiu $at,$zero,0x1
/* f085840: 14410042 */ bne $v0,$at,.L0f08594c
@ -36294,7 +36294,7 @@ glabel var7f1aab30
.L0f085860:
/* f085860: 54410018 */ bnel $v0,$at,.L0f0858c4
/* f085864: 24010024 */ addiu $at,$zero,0x24
/* f085868: 0fc1a1ee */ jal func0f0687b8
/* f085868: 0fc1a1ee */ jal objIsBroken
/* f08586c: 02002025 */ or $a0,$s0,$zero
/* f085870: 24010001 */ addiu $at,$zero,0x1
/* f085874: 14410035 */ bne $v0,$at,.L0f08594c
@ -36320,7 +36320,7 @@ glabel var7f1aab30
.L0f0858c4:
/* f0858c4: 5441000c */ bnel $v0,$at,.L0f0858f8
/* f0858c8: 24010015 */ addiu $at,$zero,0x15
/* f0858cc: 0fc1a1ee */ jal func0f0687b8
/* f0858cc: 0fc1a1ee */ jal objIsBroken
/* f0858d0: 02002025 */ or $a0,$s0,$zero
/* f0858d4: 24010001 */ addiu $at,$zero,0x1
/* f0858d8: 1441001c */ bne $v0,$at,.L0f08594c
@ -36334,7 +36334,7 @@ glabel var7f1aab30
.L0f0858f8:
/* f0858f8: 14410014 */ bne $v0,$at,.L0f08594c
/* f0858fc: 00000000 */ sll $zero,$zero,0x0
/* f085900: 0fc1a1ee */ jal func0f0687b8
/* f085900: 0fc1a1ee */ jal objIsBroken
/* f085904: 02002025 */ or $a0,$s0,$zero
/* f085908: 5440000e */ bnezl $v0,.L0f085944
/* f08590c: 44803000 */ mtc1 $zero,$f6
@ -36355,7 +36355,7 @@ glabel var7f1aab30
/* f085944: 00000000 */ sll $zero,$zero,0x0
/* f085948: e6060060 */ swc1 $f6,0x60($s0)
.L0f08594c:
/* f08594c: 0fc1a1ee */ jal func0f0687b8
/* f08594c: 0fc1a1ee */ jal objIsBroken
/* f085950: 02002025 */ or $a0,$s0,$zero
/* f085954: 24010001 */ addiu $at,$zero,0x1
/* f085958: 5441000d */ bnel $v0,$at,.L0f085990
@ -37509,18 +37509,10 @@ glabel propobjGetCiTagId
/* f0869a4: 27bd0040 */ addiu $sp,$sp,0x40
);
GLOBAL_ASM(
glabel objIsHealthy
/* f0869a8: 27bdffe8 */ addiu $sp,$sp,-24
/* f0869ac: afbf0014 */ sw $ra,0x14($sp)
/* f0869b0: 0fc1a1ee */ jal func0f0687b8
/* f0869b4: 00000000 */ sll $zero,$zero,0x0
/* f0869b8: 8fbf0014 */ lw $ra,0x14($sp)
/* f0869bc: 2c4e0001 */ sltiu $t6,$v0,0x1
/* f0869c0: 01c01025 */ or $v0,$t6,$zero
/* f0869c4: 03e00008 */ jr $ra
/* f0869c8: 27bd0018 */ addiu $sp,$sp,0x18
);
bool objIsHealthy(struct defaultobj *obj)
{
return !objIsBroken(obj);
}
GLOBAL_ASM(
glabel func0f0869cc
@ -40305,7 +40297,7 @@ glabel var7f1aae84
/* f089544: 8d300004 */ lw $s0,0x4($t1)
/* f089548: 240a0001 */ addiu $t2,$zero,0x1
/* f08954c: afaa0064 */ sw $t2,0x64($sp)
/* f089550: 0fc1a1ee */ jal func0f0687b8
/* f089550: 0fc1a1ee */ jal objIsBroken
/* f089554: 00a02025 */ or $a0,$a1,$zero
/* f089558: 10400003 */ beqz $v0,.L0f089568
/* f08955c: 02001825 */ or $v1,$s0,$zero

View File

@ -62,7 +62,7 @@ u32 func0f068694(void);
u32 func0f0686e0(void);
u32 func0f0686f0(void);
u32 func0f068760(void);
s32 func0f0687b8(struct defaultobj *obj);
bool objIsBroken(struct defaultobj *obj);
u32 func0f0687e4(void);
u32 func0f0688f4(void);
u32 func0f06896c(void);
@ -226,7 +226,7 @@ u32 func0f0859a0(void);
u32 func0f085e00(void);
u32 func0f085eac(void);
u32 propobjGetCiTagId(struct prop *prop);
u32 objIsHealthy(struct defaultobj *obj);
bool objIsHealthy(struct defaultobj *obj);
u32 func0f0869cc(void);
bool currentPlayerTryMountHoverbike(struct prop *prop);
bool propobjInteract(struct prop *prop);