From c2cd684314f16cd5b17461f549eb9d2aaf8fa717 Mon Sep 17 00:00:00 2001 From: Ryan Dwyer Date: Thu, 7 Jan 2021 13:27:10 +1000 Subject: [PATCH] Decompile func0f0658e8 --- src/game/game_0601b0.c | 39 ++++++++++++---------------------- src/include/game/game_0601b0.h | 2 +- 2 files changed, 14 insertions(+), 27 deletions(-) diff --git a/src/game/game_0601b0.c b/src/game/game_0601b0.c index 63393bc7c..5422bb765 100644 --- a/src/game/game_0601b0.c +++ b/src/game/game_0601b0.c @@ -6129,32 +6129,19 @@ glabel arrayIntersects /* f0658e4: 00000000 */ nop ); -GLOBAL_ASM( -glabel func0f0658e8 -/* f0658e8: 3c18800a */ lui $t8,%hi(var8009cda4) -/* f0658ec: 8f18cda4 */ lw $t8,%lo(var8009cda4)($t8) -/* f0658f0: afa40000 */ sw $a0,0x0($sp) -/* f0658f4: 00047400 */ sll $t6,$a0,0x10 -/* f0658f8: 0005c900 */ sll $t9,$a1,0x4 -/* f0658fc: 000e2403 */ sra $a0,$t6,0x10 -/* f065900: 00001825 */ or $v1,$zero,$zero -/* f065904: 2402000e */ addiu $v0,$zero,0xe -/* f065908: 03193021 */ addu $a2,$t8,$t9 -.L0f06590c: -/* f06590c: 84c80000 */ lh $t0,0x0($a2) -/* f065910: 24630002 */ addiu $v1,$v1,0x2 -/* f065914: 05010004 */ bgez $t0,.L0f065928 -/* f065918: 00000000 */ nop -/* f06591c: a4c40000 */ sh $a0,0x0($a2) -/* f065920: 03e00008 */ jr $ra -/* f065924: 24020001 */ addiu $v0,$zero,0x1 -.L0f065928: -/* f065928: 1462fff8 */ bne $v1,$v0,.L0f06590c -/* f06592c: 24c60002 */ addiu $a2,$a2,0x2 -/* f065930: 00001025 */ or $v0,$zero,$zero -/* f065934: 03e00008 */ jr $ra -/* f065938: 00000000 */ nop -); +bool func0f0658e8(s16 arg0, s32 arg1) +{ + s32 i; + + for (i = 0; i < 7; i++) { + if (var8009cda4[arg1].unk00[i] < 0) { + var8009cda4[arg1].unk00[i] = arg0; + return true; + } + } + + return false; +} GLOBAL_ASM( glabel func0f06593c diff --git a/src/include/game/game_0601b0.h b/src/include/game/game_0601b0.h index fe5192d56..cd2b94696 100644 --- a/src/include/game/game_0601b0.h +++ b/src/include/game/game_0601b0.h @@ -44,7 +44,7 @@ u32 func0f06554c(void); void roomsCopy(s16 *srcrooms, s16 *dstrooms); void func0f0657d8(s16 *newrooms, s16 *rooms, u32 arg2); bool arrayIntersects(s16 *a, s16 *b); -u32 func0f0658e8(void); +bool func0f0658e8(s16 arg0, s32 arg1); u32 func0f06593c(void); void func0f0659e4(struct prop *prop, s16 room); void func0f065ae0(struct prop *prop, s16 room);