From 566e0491311a3d3fd2d44f1bfc0e109230ee53cd Mon Sep 17 00:00:00 2001 From: Ryan Dwyer Date: Wed, 18 Dec 2019 19:35:02 +1000 Subject: [PATCH] Decompile func0f039368 --- src/game/chr/chr.c | 35 ++++++++++++----------------------- src/include/game/chr/chr.h | 4 ++-- 2 files changed, 14 insertions(+), 25 deletions(-) diff --git a/src/game/chr/chr.c b/src/game/chr/chr.c index 01fec0054..5c406fde3 100644 --- a/src/game/chr/chr.c +++ b/src/game/chr/chr.c @@ -31553,29 +31553,18 @@ glabel func0f03922c /* f039364: 27bd0070 */ addiu $sp,$sp,0x70 ); -GLOBAL_ASM( -glabel func0f039368 -/* f039368: 27bdffe0 */ addiu $sp,$sp,-32 -/* f03936c: afbf0014 */ sw $ra,0x14($sp) -/* f039370: 0fc0a221 */ jal chrGetTargetPosition -/* f039374: afa40020 */ sw $a0,0x20($sp) -/* f039378: 8fa40020 */ lw $a0,0x20($sp) -/* f03937c: 8c450004 */ lw $a1,0x4($v0) -/* f039380: 0fc0e48b */ jal func0f03922c -/* f039384: 00003025 */ or $a2,$zero,$zero -/* f039388: 10400005 */ beqz $v0,.L0f0393a0 -/* f03938c: 00401825 */ or $v1,$v0,$zero -/* f039390: 8fa40020 */ lw $a0,0x20($sp) -/* f039394: 0fc0e3cc */ jal func0f038f30 -/* f039398: afa2001c */ sw $v0,0x1c($sp) -/* f03939c: 8fa3001c */ lw $v1,0x1c($sp) -.L0f0393a0: -/* f0393a0: 8fbf0014 */ lw $ra,0x14($sp) -/* f0393a4: 27bd0020 */ addiu $sp,$sp,0x20 -/* f0393a8: 00601025 */ or $v0,$v1,$zero -/* f0393ac: 03e00008 */ jr $ra -/* f0393b0: 00000000 */ sll $zero,$zero,0x0 -); +u32 func0f039368(struct chrdata *chr) +{ + u32 result; + struct position *pos = chrGetTargetPosition(chr); + result = func0f03922c(chr, pos->chr, 0); + + if (result) { + func0f038f30(chr); + } + + return result; +} GLOBAL_ASM( glabel func0f0393b4 diff --git a/src/include/game/chr/chr.h b/src/include/game/chr/chr.h index a0f9c7b02..0f97b0b84 100644 --- a/src/include/game/chr/chr.h +++ b/src/include/game/chr/chr.h @@ -221,10 +221,10 @@ u32 func0f03843c(struct chrdata *chr, struct coord *coord, s16 *room_id, u32 spe struct path *pathFindById(u32 path_id); u32 func0f038868(void); void func0f038b9c(struct chrdata *chr, struct path *path); -u32 func0f038f30(void); +void func0f038f30(struct chrdata *chr); u32 func0f038f40(void); u32 func0f0391ec(struct chrdata *chr, struct coord *coord, s16 *room, u32 arg3); -u32 func0f03922c(void); +u32 func0f03922c(struct chrdata *chr, void *arg1, s32 arg2); u32 func0f039368(struct chrdata *chr); u32 func0f0393b4(struct chrdata *chr, struct coord *coord, s16 *room); u32 func0f039474(void);