diff --git a/src/game/game_176d70.c b/src/game/game_176d70.c index 9b1d4a4ce..91f79431e 100644 --- a/src/game/game_176d70.c +++ b/src/game/game_176d70.c @@ -9082,41 +9082,18 @@ glabel menuhandlerMpLock /* f17ee5c: 00000000 */ sll $zero,$zero,0x0 ); -GLOBAL_ASM( -glabel menuhandler0017ee60 -/* f17ee60: 27bdffe8 */ addiu $sp,$sp,-24 -/* f17ee64: 24010006 */ addiu $at,$zero,0x6 -/* f17ee68: afbf0014 */ sw $ra,0x14($sp) -/* f17ee6c: afa5001c */ sw $a1,0x1c($sp) -/* f17ee70: 14810013 */ bne $a0,$at,.L0f17eec0 -/* f17ee74: afa60020 */ sw $a2,0x20($sp) -/* f17ee78: 3c0e8007 */ lui $t6,0x8007 -/* f17ee7c: 8dce1448 */ lw $t6,0x1448($t6) -/* f17ee80: 3c18800b */ lui $t8,0x800b -/* f17ee84: 24050002 */ addiu $a1,$zero,0x2 -/* f17ee88: 000e7880 */ sll $t7,$t6,0x2 -/* f17ee8c: 01ee7821 */ addu $t7,$t7,$t6 -/* f17ee90: 000f7940 */ sll $t7,$t7,0x5 -/* f17ee94: 030fc021 */ addu $t8,$t8,$t7 -/* f17ee98: 8f18c804 */ lw $t8,-0x37fc($t8) -/* f17ee9c: 3c048008 */ lui $a0,%hi(menudialog_mpsavechr) -/* f17eea0: 17000005 */ bnez $t8,.L0f17eeb8 -/* f17eea4: 00000000 */ sll $zero,$zero,0x0 -/* f17eea8: 0fc42947 */ jal func0f10a51c -/* f17eeac: 24040006 */ addiu $a0,$zero,0x6 -/* f17eeb0: 10000004 */ beqz $zero,.L0f17eec4 -/* f17eeb4: 8fbf0014 */ lw $ra,0x14($sp) -.L0f17eeb8: -/* f17eeb8: 0fc3cbd3 */ jal menuPushDialog -/* f17eebc: 24844c88 */ addiu $a0,$a0,%lo(menudialog_mpsavechr) -.L0f17eec0: -/* f17eec0: 8fbf0014 */ lw $ra,0x14($sp) -.L0f17eec4: -/* f17eec4: 27bd0018 */ addiu $sp,$sp,0x18 -/* f17eec8: 00001025 */ or $v0,$zero,$zero -/* f17eecc: 03e00008 */ jr $ra -/* f17eed0: 00000000 */ sll $zero,$zero,0x0 -); +s32 menuhandlerMpSavePlayer(u32 operation, struct menu_item *item, s32 *value) +{ + if (operation == MENUOP_SET) { + if (g_MpChrs[g_MpPlayerNum].unk4c == 0) { + func0f10a51c(6, 2); + } else { + menuPushDialog(&g_MpSaveChrMenuDialog); + } + } + + return 0; +} GLOBAL_ASM( glabel func0f17eed4 diff --git a/src/include/game/game_176d70.h b/src/include/game/game_176d70.h index daa2ca9f3..5d778afed 100644 --- a/src/include/game/game_176d70.h +++ b/src/include/game/game_176d70.h @@ -209,7 +209,7 @@ s32 menuhandler0017e38c(u32 operation, struct menu_item *item, s32 *value); s32 menuhandler0017e4d4(u32, u32, u32 *); s32 menuhandler0017e9d8(u32 operation, struct menu_item *item, s32 *value); s32 menuhandler0017ec64(u32 operation, struct menu_item *item, s32 *value); -s32 menuhandler0017ee60(u32, u32, u32 *); +s32 menuhandlerMpSavePlayer(u32 operation, struct menu_item *item, s32 *value); s32 menuhandler0017ef30(u32, u32, u32 *); s32 menuhandlerQuickTeamSeparator(u32 operation, struct menu_item *item, s32 *value); s32 menuhandler0017f4fc(u32, u32, u32 *); diff --git a/src/include/setup/setup_020df0.h b/src/include/setup/setup_020df0.h index 71a30cde9..0b3921d10 100644 --- a/src/include/setup/setup_020df0.h +++ b/src/include/setup/setup_020df0.h @@ -254,7 +254,7 @@ extern u32 var80084bf8; extern u32 var80084c00[]; extern u16 mpcontrolstyles[]; extern u16 mpaimmodes[]; -extern struct menu_dialog menudialog_mpsavechr; +extern struct menu_dialog g_MpSaveChrMenuDialog; extern struct menu_dialog menudialog_mpsavesetupname; extern struct menu_dialog menudialog_mpsavesetup; extern u32 var800851bc; diff --git a/src/setup/setup_0160b0.c b/src/setup/setup_0160b0.c index ff3eb6eed..267108e7a 100644 --- a/src/setup/setup_0160b0.c +++ b/src/setup/setup_0160b0.c @@ -3723,7 +3723,7 @@ struct menu_item menuitems_mpplayersetup[] = { { MENUITEMTYPE_SELECTABLE, 0, 0x00000004, 0x00005023, 0x00000000, &menudialog_mpplayerstats }, // "Statistics" { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, { MENUITEMTYPE_SELECTABLE, 0, 0x00000004, 0x0000501d, 0x00000000, &menudialog_mploadplayer }, // "Load Player" - { MENUITEMTYPE_SELECTABLE, 0, 0x00000000, (u32)&func0f17eed4, 0x00000000, menuhandler0017ee60 }, + { MENUITEMTYPE_SELECTABLE, 0, 0x00000000, (u32)&func0f17eed4, 0x00000000, menuhandlerMpSavePlayer }, { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, }; diff --git a/src/setup/setup_020df0.c b/src/setup/setup_020df0.c index c214de065..9830ff062 100644 --- a/src/setup/setup_020df0.c +++ b/src/setup/setup_020df0.c @@ -10345,7 +10345,7 @@ struct menu_item menuitems_mpsavechr[] = { }; // 2aca8 -struct menu_dialog menudialog_mpsavechr = { +struct menu_dialog g_MpSaveChrMenuDialog = { MENUDIALOGTYPE_DEFAULT, 0x50be, // "Confirm" menuitems_mpsavechr, @@ -11108,7 +11108,7 @@ struct menu_item menuitems_mpplayersetup4[] = { { MENUITEMTYPE_SELECTABLE, 0, 0x00000004, 0x00005023, 0x00000000, &menudialog_mpplayerstats }, // "Statistics" { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, { MENUITEMTYPE_SELECTABLE, 0, 0x00000004, 0x0000501d, 0x00000000, &menudialog_mploadplayer }, // "Load Player" - { MENUITEMTYPE_SELECTABLE, 0, 0x00000000, (u32)&func0f17eed4, 0x00000000, menuhandler0017ee60 }, + { MENUITEMTYPE_SELECTABLE, 0, 0x00000000, (u32)&func0f17eed4, 0x00000000, menuhandlerMpSavePlayer }, { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, };