From a13655d6febaf1a01e1dc877263e0394bc772cba Mon Sep 17 00:00:00 2001 From: Ryan Dwyer Date: Wed, 1 Jan 2020 23:40:25 +1000 Subject: [PATCH] Decompile menuhandlerMpClearAllSimulants --- src/game/game_176d70.c | 41 +++++++++++----------------------- src/game/game_187770.c | 2 +- src/game/game_1999b0.c | 2 +- src/include/game/game_176d70.h | 2 +- src/include/game/game_187770.h | 2 +- 5 files changed, 17 insertions(+), 32 deletions(-) diff --git a/src/game/game_176d70.c b/src/game/game_176d70.c index 439dfc13d..9d9137f14 100644 --- a/src/game/game_176d70.c +++ b/src/game/game_176d70.c @@ -7558,7 +7558,7 @@ glabel menuhandlerMpDeleteSimulant /* f17cf90: 01ee7823 */ subu $t7,$t7,$t6 /* f17cf94: 000f7900 */ sll $t7,$t7,0x4 /* f17cf98: 008f2021 */ addu $a0,$a0,$t7 -/* f17cf9c: 0fc632ff */ jal func0f18cbfc +/* f17cf9c: 0fc632ff */ jal mpRemoveSimulant /* f17cfa0: 8c84ee1c */ lw $a0,-0x11e4($a0) /* f17cfa4: 0fc3cdb7 */ jal menuPopDialog /* f17cfa8: 00000000 */ sll $zero,$zero,0x0 @@ -7685,32 +7685,17 @@ glabel menuhandlerMpChangeSimulantType /* f17d158: 00001025 */ or $v0,$zero,$zero ); -GLOBAL_ASM( -glabel menuhandlerMpClearAllSimulants -/* f17d15c: 27bdffe0 */ addiu $sp,$sp,-32 -/* f17d160: 24010006 */ addiu $at,$zero,0x6 -/* f17d164: afbf001c */ sw $ra,0x1c($sp) -/* f17d168: afb10018 */ sw $s1,0x18($sp) -/* f17d16c: afb00014 */ sw $s0,0x14($sp) -/* f17d170: afa50024 */ sw $a1,0x24($sp) -/* f17d174: 14810008 */ bne $a0,$at,.L0f17d198 -/* f17d178: afa60028 */ sw $a2,0x28($sp) -/* f17d17c: 00008025 */ or $s0,$zero,$zero -/* f17d180: 24110008 */ addiu $s1,$zero,0x8 -.L0f17d184: -/* f17d184: 0fc632ff */ jal func0f18cbfc -/* f17d188: 02002025 */ or $a0,$s0,$zero -/* f17d18c: 26100001 */ addiu $s0,$s0,0x1 -/* f17d190: 1611fffc */ bne $s0,$s1,.L0f17d184 -/* f17d194: 00000000 */ sll $zero,$zero,0x0 -.L0f17d198: -/* f17d198: 8fbf001c */ lw $ra,0x1c($sp) -/* f17d19c: 8fb00014 */ lw $s0,0x14($sp) -/* f17d1a0: 8fb10018 */ lw $s1,0x18($sp) -/* f17d1a4: 27bd0020 */ addiu $sp,$sp,0x20 -/* f17d1a8: 03e00008 */ jr $ra -/* f17d1ac: 00001025 */ or $v0,$zero,$zero -); +s32 menuhandlerMpClearAllSimulants(u32 operation, struct menu_item *item, s32 *value) +{ + if (operation == MENUOP_SET) { + s32 i; + for (i = 0; i < 8; i++) { + mpRemoveSimulant(i); + } + } + + return 0; +} GLOBAL_ASM( glabel menuhandlerMpAddSimulant @@ -10008,7 +9993,7 @@ glabel func0f17f100 /* f17f118: afb00018 */ sw $s0,0x18($sp) /* f17f11c: 00008025 */ or $s0,$zero,$zero .L0f17f120: -/* f17f120: 0fc632ff */ jal func0f18cbfc +/* f17f120: 0fc632ff */ jal mpRemoveSimulant /* f17f124: 02002025 */ or $a0,$s0,$zero /* f17f128: 26100001 */ addiu $s0,$s0,0x1 /* f17f12c: 2a010008 */ slti $at,$s0,0x8 diff --git a/src/game/game_187770.c b/src/game/game_187770.c index db73942ad..7d0db56f5 100644 --- a/src/game/game_187770.c +++ b/src/game/game_187770.c @@ -6494,7 +6494,7 @@ glabel func0f18cbb8 ); GLOBAL_ASM( -glabel func0f18cbfc +glabel mpRemoveSimulant /* f18cbfc: 3c02800b */ lui $v0,%hi(g_MpSetup) /* f18cc00: 2442cb88 */ addiu $v0,$v0,%lo(g_MpSetup) /* f18cc04: 00045080 */ sll $t2,$a0,0x2 diff --git a/src/game/game_1999b0.c b/src/game/game_1999b0.c index b207d005b..7f29b156c 100644 --- a/src/game/game_1999b0.c +++ b/src/game/game_1999b0.c @@ -2044,7 +2044,7 @@ glabel func0f19afdc /* f19b4d8: 01e84824 */ and $t1,$t7,$t0 /* f19b4dc: 51200004 */ beqzl $t1,.L0f19b4f0 /* f19b4e0: 26100001 */ addiu $s0,$s0,0x1 -/* f19b4e4: 0fc632ff */ jal func0f18cbfc +/* f19b4e4: 0fc632ff */ jal mpRemoveSimulant /* f19b4e8: 02002025 */ or $a0,$s0,$zero /* f19b4ec: 26100001 */ addiu $s0,$s0,0x1 .L0f19b4f0: diff --git a/src/include/game/game_176d70.h b/src/include/game/game_176d70.h index 167698b58..7d467ea82 100644 --- a/src/include/game/game_176d70.h +++ b/src/include/game/game_176d70.h @@ -224,7 +224,7 @@ s32 menuhandlerMpChangeSimulantType(u32, u32, u32 *); s32 menuhandlerMpCharacterBody(u32, u32, u32 *); s32 menuhandlerMpCharacterHead(u32, u32, u32 *); s32 menuhandlerMpCheckboxOption(u32 operation, struct menu_item *item, s32 *value); -s32 menuhandlerMpClearAllSimulants(u32, u32, u32 *); +s32 menuhandlerMpClearAllSimulants(u32 operation, struct menu_item *item, s32 *value); s32 menuhandlerMpControlCheckbox(u32, u32, u32 *); s32 menuhandlerMpControlStyle(u32, u32, u32 *); s32 menuhandlerMpDeleteSimulant(u32, u32, u32 *); diff --git a/src/include/game/game_187770.h b/src/include/game/game_187770.h index 4f2fbbcc7..00a41af2c 100644 --- a/src/include/game/game_187770.h +++ b/src/include/game/game_187770.h @@ -86,7 +86,7 @@ u32 func0f18c8b8(void); u32 func0f18c984(void); u32 func0f18cb60(void); u32 func0f18cbb8(void); -u32 func0f18cbfc(void); +void mpRemoveSimulant(s32 simindex); u32 func0f18cc64(void); u32 func0f18cc8c(void); u32 func0f18ccf8(void);