Decompile func0f03abd0

This commit is contained in:
Ryan Dwyer 2021-05-18 20:09:57 +10:00
parent 1f713a8c4c
commit bdec6cd6a2
2 changed files with 32 additions and 115 deletions

View File

@ -8210,7 +8210,7 @@ u32 var8006827c = 0x0000006b;
u32 var80068280 = 0x0000001b;
u32 var80068284 = 0x00000016;
s32 chrGoToPos(struct chrdata *chr, struct coord *pos, s16 *room, u32 flags)
bool chrGoToPos(struct chrdata *chr, struct coord *pos, s16 *room, u32 flags)
{
struct prop *prop = chr->prop;
struct waypoint *nextwaypoint;
@ -9834,121 +9834,38 @@ bool chrGoToProp(struct chrdata *chr, struct prop *prop, s32 speed)
return false;
}
bool func0f03abd0(struct chrdata *chr, struct coord *pos, u32 flags)
{
s16 roomlist1[21];
s16 roomlist2[21];
if (chrIsReadyForOrders(chr)) {
#if VERSION >= VERSION_NTSC_1_0
GLOBAL_ASM(
glabel func0f03abd0
/* f03abd0: 27bdff78 */ addiu $sp,$sp,-136
/* f03abd4: afbf0024 */ sw $ra,0x24($sp)
/* f03abd8: afb00020 */ sw $s0,0x20($sp)
/* f03abdc: afa40088 */ sw $a0,0x88($sp)
/* f03abe0: afa5008c */ sw $a1,0x8c($sp)
/* f03abe4: 0fc0e686 */ jal chrIsReadyForOrders
/* f03abe8: afa60090 */ sw $a2,0x90($sp)
/* f03abec: 10400026 */ beqz $v0,.L0f03ac88
/* f03abf0: 3c0e8006 */ lui $t6,%hi(var80062cbc)
/* f03abf4: 8dce2cbc */ lw $t6,%lo(var80062cbc)($t6)
/* f03abf8: 8faf0088 */ lw $t7,0x88($sp)
/* f03abfc: 00008025 */ or $s0,$zero,$zero
/* f03ac00: 29c10009 */ slti $at,$t6,0x9
/* f03ac04: 14200008 */ bnez $at,.L0f03ac28
/* f03ac08: 8fa4008c */ lw $a0,0x8c($sp)
/* f03ac0c: 8df80014 */ lw $t8,0x14($t7)
/* f03ac10: 0018ca40 */ sll $t9,$t8,0x9
/* f03ac14: 07230005 */ bgezl $t9,.L0f03ac2c
/* f03ac18: 27a5005c */ addiu $a1,$sp,0x5c
/* f03ac1c: 8de80114 */ lw $t0,0x114($t7)
/* f03ac20: 00084b40 */ sll $t1,$t0,0xd
/* f03ac24: 05210018 */ bgez $t1,.L0f03ac88
.L0f03ac28:
/* f03ac28: 27a5005c */ addiu $a1,$sp,0x5c
.L0f03ac2c:
/* f03ac2c: 27a60030 */ addiu $a2,$sp,0x30
/* f03ac30: 24070014 */ addiu $a3,$zero,0x14
/* f03ac34: 0fc58865 */ jal func0f162194
/* f03ac38: afa00010 */ sw $zero,0x10($sp)
/* f03ac3c: 87aa005c */ lh $t2,0x5c($sp)
/* f03ac40: 2402ffff */ addiu $v0,$zero,-1
/* f03ac44: 87ab0030 */ lh $t3,0x30($sp)
/* f03ac48: 104a0003 */ beq $v0,$t2,.L0f03ac58
/* f03ac4c: 8fa40088 */ lw $a0,0x88($sp)
/* f03ac50: 10000004 */ b .L0f03ac64
/* f03ac54: 27b0005c */ addiu $s0,$sp,0x5c
.L0f03ac58:
/* f03ac58: 104b0002 */ beq $v0,$t3,.L0f03ac64
/* f03ac5c: 00000000 */ nop
/* f03ac60: 27b00030 */ addiu $s0,$sp,0x30
.L0f03ac64:
/* f03ac64: 12000008 */ beqz $s0,.L0f03ac88
/* f03ac68: 8fa5008c */ lw $a1,0x8c($sp)
/* f03ac6c: 02003025 */ or $a2,$s0,$zero
/* f03ac70: 0fc0e10f */ jal chrGoToPos
/* f03ac74: 8fa70090 */ lw $a3,0x90($sp)
/* f03ac78: 50400004 */ beqzl $v0,.L0f03ac8c
/* f03ac7c: 00001025 */ or $v0,$zero,$zero
/* f03ac80: 10000002 */ b .L0f03ac8c
/* f03ac84: 24020001 */ addiu $v0,$zero,0x1
.L0f03ac88:
/* f03ac88: 00001025 */ or $v0,$zero,$zero
.L0f03ac8c:
/* f03ac8c: 8fbf0024 */ lw $ra,0x24($sp)
/* f03ac90: 8fb00020 */ lw $s0,0x20($sp)
/* f03ac94: 27bd0088 */ addiu $sp,$sp,0x88
/* f03ac98: 03e00008 */ jr $ra
/* f03ac9c: 00000000 */ nop
);
if (var80062cbc < 9
|| (chr->hidden & CHRHFLAG_00400000) == 0
|| (chr->flags & CHRCFLAG_00040000))
#else
GLOBAL_ASM(
glabel func0f03abd0
/* f03a478: 27bdff78 */ addiu $sp,$sp,-136
/* f03a47c: afbf0024 */ sw $ra,0x24($sp)
/* f03a480: afb00020 */ sw $s0,0x20($sp)
/* f03a484: afa40088 */ sw $a0,0x88($sp)
/* f03a488: afa5008c */ sw $a1,0x8c($sp)
/* f03a48c: 0fc0e4cc */ jal chrIsReadyForOrders
/* f03a490: afa60090 */ sw $a2,0x90($sp)
/* f03a494: 1040001e */ beqz $v0,.NB0f03a510
/* f03a498: 3c0e8006 */ lui $t6,0x8006
/* f03a49c: 8dce51c0 */ lw $t6,0x51c0($t6)
/* f03a4a0: 00008025 */ or $s0,$zero,$zero
/* f03a4a4: 8fa4008c */ lw $a0,0x8c($sp)
/* f03a4a8: 29c1000a */ slti $at,$t6,0xa
/* f03a4ac: 10200018 */ beqz $at,.NB0f03a510
/* f03a4b0: 27a5005c */ addiu $a1,$sp,0x5c
/* f03a4b4: 27a60030 */ addiu $a2,$sp,0x30
/* f03a4b8: 24070014 */ addiu $a3,$zero,0x14
/* f03a4bc: 0fc57265 */ jal func0f162194
/* f03a4c0: afa00010 */ sw $zero,0x10($sp)
/* f03a4c4: 87af005c */ lh $t7,0x5c($sp)
/* f03a4c8: 2402ffff */ addiu $v0,$zero,-1
/* f03a4cc: 87b80030 */ lh $t8,0x30($sp)
/* f03a4d0: 104f0003 */ beq $v0,$t7,.NB0f03a4e0
/* f03a4d4: 8fa40088 */ lw $a0,0x88($sp)
/* f03a4d8: 10000004 */ beqz $zero,.NB0f03a4ec
/* f03a4dc: 27b0005c */ addiu $s0,$sp,0x5c
.NB0f03a4e0:
/* f03a4e0: 10580002 */ beq $v0,$t8,.NB0f03a4ec
/* f03a4e4: 00000000 */ sll $zero,$zero,0x0
/* f03a4e8: 27b00030 */ addiu $s0,$sp,0x30
.NB0f03a4ec:
/* f03a4ec: 12000008 */ beqz $s0,.NB0f03a510
/* f03a4f0: 8fa5008c */ lw $a1,0x8c($sp)
/* f03a4f4: 02003025 */ or $a2,$s0,$zero
/* f03a4f8: 0fc0df57 */ jal chrGoToPos
/* f03a4fc: 8fa70090 */ lw $a3,0x90($sp)
/* f03a500: 50400004 */ beqzl $v0,.NB0f03a514
/* f03a504: 00001025 */ or $v0,$zero,$zero
/* f03a508: 10000002 */ beqz $zero,.NB0f03a514
/* f03a50c: 24020001 */ addiu $v0,$zero,0x1
.NB0f03a510:
/* f03a510: 00001025 */ or $v0,$zero,$zero
.NB0f03a514:
/* f03a514: 8fbf0024 */ lw $ra,0x24($sp)
/* f03a518: 8fb00020 */ lw $s0,0x20($sp)
/* f03a51c: 27bd0088 */ addiu $sp,$sp,0x88
/* f03a520: 03e00008 */ jr $ra
/* f03a524: 00000000 */ sll $zero,$zero,0x0
);
if (var80062cbc < 10)
#endif
{
s16 *rooms = NULL;
func0f162194(pos, roomlist1, roomlist2, 20, NULL);
if (roomlist1[0] != -1) {
rooms = roomlist1;
} else if (roomlist2[0] != -1) {
rooms = roomlist2;
}
if (rooms != NULL && chrGoToPos(chr, pos, rooms, flags)) {
return true;
}
}
}
return false;
}
s32 func0f03aca0(struct chrdata *chr, f32 arg1, u8 arg2)
{

View File

@ -91,7 +91,7 @@ void func0f0375b0(struct chrdata *chr);
void func0f0375e8(struct chrdata *chr, struct waydata *waydata, f32 arg2, struct coord *arg3, s16 *rooms);
void chrCalculatePosition(struct chrdata *chr, struct coord *pos);
void chrGoPosChooseAnimation(struct chrdata *chr);
s32 chrGoToPos(struct chrdata *chr, struct coord *pos, s16 *room, u32 flags);
bool chrGoToPos(struct chrdata *chr, struct coord *pos, s16 *rooms, u32 flags);
u32 func0f038868(void);
void func0f038b9c(struct chrdata *chr, struct path *path);
bool chrCanSeeEntity(struct chrdata *chr, struct coord *pos, s16 *rooms, bool arg3, u32 entitytype, u32 entityid);
@ -111,7 +111,7 @@ bool chrTryAttackRun(struct chrdata *chr);
bool chrTryAttackRoll(struct chrdata *chr);
bool chrTryAttackAmount(struct chrdata *chr, u32 arg1, u32 arg2, u8 arg3, u8 arg4);
bool chrGoToPad(struct chrdata *chr, s32 padnum, u32 speed);
void func0f03abd0(struct chrdata *chr, struct coord *pos, s32 arg2);
bool func0f03abd0(struct chrdata *chr, struct coord *pos, u32 flags);
s32 func0f03aca0(struct chrdata *chr, f32 arg1, u8 arg2);
bool chrTryRunFromTarget(struct chrdata *chr);
u32 func0f03b1e0(struct chrdata *chr);