From f084840e88428a008a7abddc5bc0c324a5c9a689 Mon Sep 17 00:00:00 2001 From: Ryan Dwyer Date: Tue, 2 Jun 2020 19:45:49 +1000 Subject: [PATCH] Decompile func0f01d8c0 --- src/game/data/data_020df0.c | 2 +- src/game/game_01d860.c | 72 ++++++----------------------- src/gvars/gvars.c | 4 +- src/include/game/data/data_020df0.h | 2 +- src/include/game/game_1668e0.h | 2 +- src/include/gvars/gvars.h | 4 +- 6 files changed, 21 insertions(+), 65 deletions(-) diff --git a/src/game/data/data_020df0.c b/src/game/data/data_020df0.c index ce20c515a..5260d695b 100644 --- a/src/game/data/data_020df0.c +++ b/src/game/data/data_020df0.c @@ -7523,7 +7523,7 @@ u32 var80082040 = 0x00000000; u32 var80082044 = 0x00000000; u32 var80082048 = 0x00000000; u32 var8008204c = 0x00000000; -u32 var80082050 = 0x00000000; +s32 var80082050 = 0; u32 var80082054 = 0x00000000; u32 var80082058 = 0x00000000; u32 var8008205c = 0x00000000; diff --git a/src/game/game_01d860.c b/src/game/game_01d860.c index d8d689fd7..0d35dd6ea 100644 --- a/src/game/game_01d860.c +++ b/src/game/game_01d860.c @@ -24,61 +24,17 @@ void func0f01d860(void) } } -GLOBAL_ASM( -glabel func0f01d8c0 -/* f01d8c0: 27bdffd0 */ addiu $sp,$sp,-48 -/* f01d8c4: afb40028 */ sw $s4,0x28($sp) -/* f01d8c8: 3c148008 */ lui $s4,%hi(var80082050) -/* f01d8cc: 26942050 */ addiu $s4,$s4,%lo(var80082050) -/* f01d8d0: 8e8e0000 */ lw $t6,0x0($s4) -/* f01d8d4: afb00018 */ sw $s0,0x18($sp) -/* f01d8d8: afbf002c */ sw $ra,0x2c($sp) -/* f01d8dc: afb30024 */ sw $s3,0x24($sp) -/* f01d8e0: afb20020 */ sw $s2,0x20($sp) -/* f01d8e4: afb1001c */ sw $s1,0x1c($sp) -/* f01d8e8: 19c0001e */ blez $t6,.L0f01d964 -/* f01d8ec: 00008025 */ or $s0,$zero,$zero -/* f01d8f0: 3c13800a */ lui $s3,%hi(var800a6668) -/* f01d8f4: 3c12800a */ lui $s2,%hi(var800a6660) -/* f01d8f8: 26526660 */ addiu $s2,$s2,%lo(var800a6660) -/* f01d8fc: 26736668 */ addiu $s3,$s3,%lo(var800a6668) -/* f01d900: 00008825 */ or $s1,$zero,$zero -/* f01d904: 8e6f0000 */ lw $t7,0x0($s3) -.L0f01d908: -/* f01d908: 01f1c021 */ addu $t8,$t7,$s1 -/* f01d90c: 87190000 */ lh $t9,0x0($t8) -/* f01d910: 0722000f */ bltzl $t9,.L0f01d950 -/* f01d914: 8e8e0000 */ lw $t6,0x0($s4) -/* f01d918: 8e480000 */ lw $t0,0x0($s2) -/* f01d91c: 01101021 */ addu $v0,$t0,$s0 -/* f01d920: 90490000 */ lbu $t1,0x0($v0) -/* f01d924: 252a0001 */ addiu $t2,$t1,0x1 -/* f01d928: a04a0000 */ sb $t2,0x0($v0) -/* f01d92c: 8e4b0000 */ lw $t3,0x0($s2) -/* f01d930: 01706021 */ addu $t4,$t3,$s0 -/* f01d934: 918d0000 */ lbu $t5,0x0($t4) -/* f01d938: 29a10002 */ slti $at,$t5,0x2 -/* f01d93c: 54200004 */ bnezl $at,.L0f01d950 -/* f01d940: 8e8e0000 */ lw $t6,0x0($s4) -/* f01d944: 0fc59a5b */ jal func0f16696c -/* f01d948: 02002025 */ or $a0,$s0,$zero -/* f01d94c: 8e8e0000 */ lw $t6,0x0($s4) -.L0f01d950: -/* f01d950: 26100001 */ addiu $s0,$s0,0x1 -/* f01d954: 26310002 */ addiu $s1,$s1,0x2 -/* f01d958: 020e082a */ slt $at,$s0,$t6 -/* f01d95c: 5420ffea */ bnezl $at,.L0f01d908 -/* f01d960: 8e6f0000 */ lw $t7,0x0($s3) -.L0f01d964: -/* f01d964: 8fbf002c */ lw $ra,0x2c($sp) -/* f01d968: 8fb00018 */ lw $s0,0x18($sp) -/* f01d96c: 8fb1001c */ lw $s1,0x1c($sp) -/* f01d970: 8fb20020 */ lw $s2,0x20($sp) -/* f01d974: 8fb30024 */ lw $s3,0x24($sp) -/* f01d978: 8fb40028 */ lw $s4,0x28($sp) -/* f01d97c: 03e00008 */ jr $ra -/* f01d980: 27bd0030 */ addiu $sp,$sp,0x30 -/* f01d984: 00000000 */ sll $zero,$zero,0x0 -/* f01d988: 00000000 */ sll $zero,$zero,0x0 -/* f01d98c: 00000000 */ sll $zero,$zero,0x0 -); +void func0f01d8c0(void) +{ + s32 i; + + for (i = 0; i < var80082050; i++) { + if (var800a6668[i] >= 0) { + var800a6660[i]++; + + if (var800a6660[i] > 1) { + func0f16696c(i); + } + } + } +} diff --git a/src/gvars/gvars.c b/src/gvars/gvars.c index 45c681ddc..220e4a8c2 100644 --- a/src/gvars/gvars.c +++ b/src/gvars/gvars.c @@ -19511,9 +19511,9 @@ u32 var800a6650 = 0; u32 var800a6654 = 0; u32 var800a6658 = 0; u32 var800a665c = 0; -u32 var800a6660 = 0; +u8 *var800a6660 = NULL; u32 var800a6664 = 0; -u32 var800a6668 = 0; +s16 *var800a6668 = NULL; u32 var800a666c = 0; u32 var800a6670 = 0; u32 var800a6674 = 0; diff --git a/src/include/game/data/data_020df0.h b/src/include/game/data/data_020df0.h index 5b993d837..4b0f52ae5 100644 --- a/src/include/game/data/data_020df0.h +++ b/src/include/game/data/data_020df0.h @@ -271,7 +271,7 @@ extern struct stagetableentry g_Stages[61]; extern u32 var80081018; extern u32 var80081058; extern struct smallsky smallskies[]; -extern u32 var80082050; +extern s32 var80082050; extern void *filetable[]; extern u32 var80084008; extern u32 var80084010; diff --git a/src/include/game/game_1668e0.h b/src/include/game/game_1668e0.h index 3c5fa3dee..663ea857c 100644 --- a/src/include/game/game_1668e0.h +++ b/src/include/game/game_1668e0.h @@ -6,7 +6,7 @@ void currentPlayerSetLastRoomForOffset(s32 room); u32 func0f1668f0(void); u32 func0f16692c(void); -u32 func0f16696c(void); +void func0f16696c(s32 arg0); u32 func0f1669fc(void); u32 func0f166a6c(void); u32 func0f166c20(void); diff --git a/src/include/gvars/gvars.h b/src/include/gvars/gvars.h index a99326e48..10c6aaf0e 100644 --- a/src/include/gvars/gvars.h +++ b/src/include/gvars/gvars.h @@ -753,8 +753,8 @@ extern u32 var800a6618; extern u32 var800a661c; extern u32 var800a6620; extern u32 var800a6630; -extern u32 var800a6660; -extern u32 var800a6668; +extern u8 *var800a6660; +extern s16 *var800a6668; extern u32 var800a666c; extern struct fileinfo g_FileInfo[NUM_FILES]; extern u32 var800aa580;