From 336335b48395608baded60614f618aa64e6b609e Mon Sep 17 00:00:00 2001 From: Ryan Dwyer Date: Fri, 10 Apr 2020 22:38:23 +1000 Subject: [PATCH] Decompile dtGetNumCompleted --- src/game/game_19c990.c | 44 ++++++++++++---------------------- src/game/game_1a3340.c | 2 +- src/include/game/game_19c990.h | 4 ++-- 3 files changed, 18 insertions(+), 32 deletions(-) diff --git a/src/game/game_19c990.c b/src/game/game_19c990.c index 41d62744e..1f77b3d51 100644 --- a/src/game/game_19c990.c +++ b/src/game/game_19c990.c @@ -5930,7 +5930,7 @@ void dtEnd(void) } GLOBAL_ASM( -glabel func0f1a1c98 +glabel dtIsComplete /* f1a1c98: 27bdffd8 */ addiu $sp,$sp,-40 /* f1a1c9c: 3c0e8009 */ lui $t6,%hi(var80088ae0) /* f1a1ca0: afbf0014 */ sw $ra,0x14($sp) @@ -5966,33 +5966,19 @@ glabel func0f1a1c98 /* f1a1d0c: 00000000 */ sll $zero,$zero,0x0 ); -GLOBAL_ASM( -glabel func0f1a1d10 -/* f1a1d10: 27bdffd8 */ addiu $sp,$sp,-40 -/* f1a1d14: afb20020 */ sw $s2,0x20($sp) -/* f1a1d18: afb1001c */ sw $s1,0x1c($sp) -/* f1a1d1c: afb00018 */ sw $s0,0x18($sp) -/* f1a1d20: afbf0024 */ sw $ra,0x24($sp) -/* f1a1d24: 00008825 */ or $s1,$zero,$zero -/* f1a1d28: 00008025 */ or $s0,$zero,$zero -/* f1a1d2c: 2412000a */ addiu $s2,$zero,0xa -.L0f1a1d30: -/* f1a1d30: 0fc68726 */ jal func0f1a1c98 -/* f1a1d34: 02002025 */ or $a0,$s0,$zero -/* f1a1d38: 10400002 */ beqz $v0,.L0f1a1d44 -/* f1a1d3c: 26100001 */ addiu $s0,$s0,0x1 -/* f1a1d40: 26310001 */ addiu $s1,$s1,0x1 -.L0f1a1d44: -/* f1a1d44: 1612fffa */ bne $s0,$s2,.L0f1a1d30 -/* f1a1d48: 00000000 */ sll $zero,$zero,0x0 -/* f1a1d4c: 8fbf0024 */ lw $ra,0x24($sp) -/* f1a1d50: 02201025 */ or $v0,$s1,$zero -/* f1a1d54: 8fb1001c */ lw $s1,0x1c($sp) -/* f1a1d58: 8fb00018 */ lw $s0,0x18($sp) -/* f1a1d5c: 8fb20020 */ lw $s2,0x20($sp) -/* f1a1d60: 03e00008 */ jr $ra -/* f1a1d64: 27bd0028 */ addiu $sp,$sp,0x28 -); +s32 dtGetNumCompleted(void) +{ + s32 count = 0; + s32 i; + + for (i = 0; i < 10; i++) { + if (dtIsComplete(i)) { + count++; + } + } + + return count; +} s32 func0f1a1d68(s32 wantindex) { @@ -6000,7 +5986,7 @@ s32 func0f1a1d68(s32 wantindex) s32 i; for (i = 0; i < 10; i++) { - if (func0f1a1c98(i)) { + if (dtIsComplete(i)) { index++; } diff --git a/src/game/game_1a3340.c b/src/game/game_1a3340.c index 9833eb552..1c44a66a4 100644 --- a/src/game/game_1a3340.c +++ b/src/game/game_1a3340.c @@ -3096,7 +3096,7 @@ glabel var7f1b9994 /* f1a6408: 8c2e997c */ lw $t6,%lo(var7f1b997c)($at) /* f1a640c: 01c00008 */ jr $t6 /* f1a6410: 00000000 */ sll $zero,$zero,0x0 -/* f1a6414: 0fc68744 */ jal func0f1a1d10 +/* f1a6414: 0fc68744 */ jal dtGetNumCompleted /* f1a6418: afa60020 */ sw $a2,0x20($sp) /* f1a641c: 8fa60020 */ lw $a2,0x20($sp) /* f1a6420: 1000001a */ beqz $zero,.L0f1a648c diff --git a/src/include/game/game_19c990.h b/src/include/game/game_19c990.h index 43055235c..5792a0d16 100644 --- a/src/include/game/game_19c990.h +++ b/src/include/game/game_19c990.h @@ -81,8 +81,8 @@ void dtTick(void); void func0f1a1ac0(void); void dtBegin(void); void dtEnd(void); -bool func0f1a1c98(s32 index); -u32 func0f1a1d10(void); +bool dtIsComplete(s32 index); +s32 dtGetNumCompleted(void); s32 func0f1a1d68(s32 wantindex); u32 dtGetWeaponByDeviceIndex(s32 deviceindex); u32 ciGetStageFlagByDeviceIndex(u32 deviceindex);