From acb35ca4cfc30ff8b19543d7139a92e2540f2390 Mon Sep 17 00:00:00 2001 From: Ryan Dwyer Date: Mon, 20 Jan 2020 19:57:28 +1000 Subject: [PATCH] Decompile mpGetNumUnlockedPresets --- src/game/game_176d70.c | 16 +++++++------- src/game/game_187770.c | 40 +++++++++++----------------------- src/include/game/game_187770.h | 2 +- 3 files changed, 22 insertions(+), 36 deletions(-) diff --git a/src/game/game_176d70.c b/src/game/game_176d70.c index 50ea3fc32..27b79d23e 100644 --- a/src/game/game_176d70.c +++ b/src/game/game_176d70.c @@ -5585,7 +5585,7 @@ glabel menuhandler0017bab4 /* f17bae0: 8c2f8150 */ lw $t7,%lo(var7f1b8150)($at) /* f17bae4: 01e00008 */ jr $t7 /* f17bae8: 00000000 */ sll $zero,$zero,0x0 -/* f17baec: 0fc63703 */ jal func0f18dc0c +/* f17baec: 0fc63703 */ jal mpGetNumUnlockedPresets /* f17baf0: afa70038 */ sw $a3,0x38($sp) /* f17baf4: 8fa70038 */ lw $a3,0x38($sp) /* f17baf8: 3c038007 */ lui $v1,0x8007 @@ -5597,7 +5597,7 @@ glabel menuhandler0017bab4 /* f17bb10: 00594021 */ addu $t0,$v0,$t9 /* f17bb14: 100000c0 */ beqz $zero,.L0f17be18 /* f17bb18: ace80000 */ sw $t0,0x0($a3) -/* f17bb1c: 0fc63703 */ jal func0f18dc0c +/* f17bb1c: 0fc63703 */ jal mpGetNumUnlockedPresets /* f17bb20: afa70038 */ sw $a3,0x38($sp) /* f17bb24: 8fa70038 */ lw $a3,0x38($sp) /* f17bb28: 3c098007 */ lui $t1,0x8007 @@ -5613,7 +5613,7 @@ glabel menuhandler0017bab4 /* f17bb4c: 8d295bc4 */ lw $t1,0x5bc4($t1) /* f17bb50: 512000b2 */ beqzl $t1,.L0f17be1c /* f17bb54: 00001025 */ or $v0,$zero,$zero -/* f17bb58: 0fc63703 */ jal func0f18dc0c +/* f17bb58: 0fc63703 */ jal mpGetNumUnlockedPresets /* f17bb5c: afa70038 */ sw $a3,0x38($sp) /* f17bb60: 8fa70038 */ lw $a3,0x38($sp) /* f17bb64: 3c0a8007 */ lui $t2,0x8007 @@ -5638,7 +5638,7 @@ glabel menuhandler0017bab4 /* f17bbb0: 8c421440 */ lw $v0,0x1440($v0) /* f17bbb4: 0fc5fe8a */ jal func0f17fa28 /* f17bbb8: afa70038 */ sw $a3,0x38($sp) -/* f17bbbc: 0fc63703 */ jal func0f18dc0c +/* f17bbbc: 0fc63703 */ jal mpGetNumUnlockedPresets /* f17bbc0: 00000000 */ sll $zero,$zero,0x0 /* f17bbc4: 8fa70038 */ lw $a3,0x38($sp) /* f17bbc8: 3c188007 */ lui $t8,0x8007 @@ -5654,7 +5654,7 @@ glabel menuhandler0017bab4 /* f17bbec: 8f185bc4 */ lw $t8,0x5bc4($t8) /* f17bbf0: 53000019 */ beqzl $t8,.L0f17bc58 /* f17bbf4: 8faf0034 */ lw $t7,0x34($sp) -/* f17bbf8: 0fc63703 */ jal func0f18dc0c +/* f17bbf8: 0fc63703 */ jal mpGetNumUnlockedPresets /* f17bbfc: afa70038 */ sw $a3,0x38($sp) /* f17bc00: 8fa70038 */ lw $a3,0x38($sp) /* f17bc04: 3c198007 */ lui $t9,0x8007 @@ -5737,7 +5737,7 @@ glabel menuhandler0017bab4 /* f17bd2c: 1000003a */ beqz $zero,.L0f17be18 /* f17bd30: ace00008 */ sw $zero,0x8($a3) .L0f17bd34: -/* f17bd34: 0fc63703 */ jal func0f18dc0c +/* f17bd34: 0fc63703 */ jal mpGetNumUnlockedPresets /* f17bd38: afa70038 */ sw $a3,0x38($sp) /* f17bd3c: 8fa70038 */ lw $a3,0x38($sp) /* f17bd40: 3c0f8007 */ lui $t7,0x8007 @@ -5756,7 +5756,7 @@ glabel menuhandler0017bab4 /* f17bd74: 03024021 */ addu $t0,$t8,$v0 /* f17bd78: 10000027 */ beqz $zero,.L0f17be18 /* f17bd7c: ace80008 */ sw $t0,0x8($a3) -/* f17bd80: 0fc63703 */ jal func0f18dc0c +/* f17bd80: 0fc63703 */ jal mpGetNumUnlockedPresets /* f17bd84: afa70038 */ sw $a3,0x38($sp) /* f17bd88: 8fa70038 */ lw $a3,0x38($sp) /* f17bd8c: 3c0a8007 */ lui $t2,0x8007 @@ -5778,7 +5778,7 @@ glabel menuhandler0017bab4 /* f17bdcc: 10000012 */ beqz $zero,.L0f17be18 /* f17bdd0: ac29ee1c */ sw $t1,-0x11e4($at) .L0f17bdd4: -/* f17bdd4: 0fc63703 */ jal func0f18dc0c +/* f17bdd4: 0fc63703 */ jal mpGetNumUnlockedPresets /* f17bdd8: afa70038 */ sw $a3,0x38($sp) /* f17bddc: 3c0d8007 */ lui $t5,0x8007 /* f17bde0: 8dad1448 */ lw $t5,0x1448($t5) diff --git a/src/game/game_187770.c b/src/game/game_187770.c index aef3cfc97..2142cef89 100644 --- a/src/game/game_187770.c +++ b/src/game/game_187770.c @@ -7438,33 +7438,19 @@ bool mpIsPresetUnlocked(s32 presetnum) return true; } -GLOBAL_ASM( -glabel func0f18dc0c -/* f18dc0c: 27bdffd8 */ addiu $sp,$sp,-40 -/* f18dc10: afb20020 */ sw $s2,0x20($sp) -/* f18dc14: afb1001c */ sw $s1,0x1c($sp) -/* f18dc18: afb00018 */ sw $s0,0x18($sp) -/* f18dc1c: afbf0024 */ sw $ra,0x24($sp) -/* f18dc20: 00008825 */ or $s1,$zero,$zero -/* f18dc24: 00008025 */ or $s0,$zero,$zero -/* f18dc28: 2412000e */ addiu $s2,$zero,0xe -.L0f18dc2c: -/* f18dc2c: 0fc636e1 */ jal mpIsPresetUnlocked -/* f18dc30: 02002025 */ or $a0,$s0,$zero -/* f18dc34: 10400002 */ beqz $v0,.L0f18dc40 -/* f18dc38: 26100001 */ addiu $s0,$s0,0x1 -/* f18dc3c: 26310001 */ addiu $s1,$s1,0x1 -.L0f18dc40: -/* f18dc40: 1612fffa */ bne $s0,$s2,.L0f18dc2c -/* f18dc44: 00000000 */ sll $zero,$zero,0x0 -/* f18dc48: 8fbf0024 */ lw $ra,0x24($sp) -/* f18dc4c: 02201025 */ or $v0,$s1,$zero -/* f18dc50: 8fb1001c */ lw $s1,0x1c($sp) -/* f18dc54: 8fb00018 */ lw $s0,0x18($sp) -/* f18dc58: 8fb20020 */ lw $s2,0x20($sp) -/* f18dc5c: 03e00008 */ jr $ra -/* f18dc60: 27bd0028 */ addiu $sp,$sp,0x28 -); +s32 mpGetNumUnlockedPresets(void) +{ + s32 numunlocked = 0; + s32 i; + + for (i = 0; i != NUM_MPPRESETS; i++) { + if (mpIsPresetUnlocked(i)) { + numunlocked++; + } + } + + return numunlocked; +} GLOBAL_ASM( glabel func0f18dc64 diff --git a/src/include/game/game_187770.h b/src/include/game/game_187770.h index 291a08ad4..77335cfb5 100644 --- a/src/include/game/game_187770.h +++ b/src/include/game/game_187770.h @@ -105,7 +105,7 @@ u32 func0f18d9fc(void); u32 func0f18dac0(void); u32 mpGetNumPresets(void); bool mpIsPresetUnlocked(s32 presetnum); -u32 func0f18dc0c(void); +s32 mpGetNumUnlockedPresets(void); u32 func0f18dc64(void); u32 func0f18dcec(void); u32 func0f18dec4(void);