Decompile mpCombatChallengesMenuDialog

This commit is contained in:
Ryan Dwyer 2020-09-12 19:32:22 +10:00
parent e3646a37ab
commit 233aec3729
4 changed files with 28 additions and 87 deletions

View File

@ -158,7 +158,7 @@ struct menudialog menudialog_mpcombatchallenges = {
MENUDIALOGTYPE_DEFAULT,
L_MPMENU(50), // "Combat Challenges"
menuitems_mpcombatchallenges,
menudialog0017eb34,
mpCombatChallengesMenuDialog,
0x00000000,
NULL,
};

View File

@ -1443,7 +1443,7 @@ struct menudialog menudialog_mpchallengedetails = {
MENUDIALOGTYPE_DEFAULT,
(u32)&mpMenuTextChallengeName,
menuitems_mpchallengedetails,
menudialog0017eb34,
mpCombatChallengesMenuDialog,
0x00000808,
NULL,
};
@ -1455,7 +1455,7 @@ struct menudialog menudialog_mpchallengedetails2 = {
MENUDIALOGTYPE_DEFAULT,
(u32)&mpMenuTextChallengeName,
menuitems_mpchallengedetails,
menudialog0017eb34,
mpCombatChallengesMenuDialog,
0x00000808,
&menudialog_mpgamesetup2,
};
@ -1490,7 +1490,7 @@ struct menudialog menudialog_mpcombatchallenges2 = {
MENUDIALOGTYPE_DEFAULT,
L_MPMENU(50), // "Combat Challenges"
menuitems_mpcombatchallenges2,
menudialog0017eb34,
mpCombatChallengesMenuDialog,
0x00000000,
NULL,
};

View File

@ -5532,88 +5532,29 @@ char *mpMenuTextChallengeName(struct menuitem *item)
return g_StringPointer;
}
GLOBAL_ASM(
glabel menudialog0017eb34
/* f17eb34: 27bdffe8 */ addiu $sp,$sp,-24
/* f17eb38: 24010066 */ addiu $at,$zero,0x66
/* f17eb3c: afbf0014 */ sw $ra,0x14($sp)
/* f17eb40: afa40018 */ sw $a0,0x18($sp)
/* f17eb44: 1481002c */ bne $a0,$at,.L0f17ebf8
/* f17eb48: afa60020 */ sw $a2,0x20($sp)
/* f17eb4c: 3c0f800b */ lui $t7,%hi(g_MpSetup+0x88)
/* f17eb50: 91efcc10 */ lbu $t7,%lo(g_MpSetup+0x88)($t7)
/* f17eb54: 24010005 */ addiu $at,$zero,0x5
/* f17eb58: 3c188007 */ lui $t8,%hi(g_MpPlayerNum)
/* f17eb5c: 55e10027 */ bnel $t7,$at,.L0f17ebfc
/* f17eb60: 8fad0018 */ lw $t5,0x18($sp)
/* f17eb64: 8f181448 */ lw $t8,%lo(g_MpPlayerNum)($t8)
/* f17eb68: 3c02800a */ lui $v0,%hi(g_Menus+0x4f8)
/* f17eb6c: 0018c8c0 */ sll $t9,$t8,0x3
/* f17eb70: 0338c823 */ subu $t9,$t9,$t8
/* f17eb74: 0019c880 */ sll $t9,$t9,0x2
/* f17eb78: 0338c821 */ addu $t9,$t9,$t8
/* f17eb7c: 0019c8c0 */ sll $t9,$t9,0x3
/* f17eb80: 0338c823 */ subu $t9,$t9,$t8
/* f17eb84: 0019c900 */ sll $t9,$t9,0x4
/* f17eb88: 00591021 */ addu $v0,$v0,$t9
/* f17eb8c: 8c42e4f8 */ lw $v0,%lo(g_Menus+0x4f8)($v0)
/* f17eb90: 5040001a */ beqzl $v0,.L0f17ebfc
/* f17eb94: 8fad0018 */ lw $t5,0x18($sp)
/* f17eb98: 8c480000 */ lw $t0,0x0($v0)
/* f17eb9c: 54a80017 */ bnel $a1,$t0,.L0f17ebfc
/* f17eba0: 8fad0018 */ lw $t5,0x18($sp)
/* f17eba4: 0fc6709d */ jal mpIsChallengeLoaded
/* f17eba8: 00000000 */ nop
/* f17ebac: 14400012 */ bnez $v0,.L0f17ebf8
/* f17ebb0: 3c098007 */ lui $t1,%hi(g_MpPlayerNum)
/* f17ebb4: 8d291448 */ lw $t1,%lo(g_MpPlayerNum)($t1)
/* f17ebb8: 3c0b800a */ lui $t3,%hi(g_Menus)
/* f17ebbc: 256be000 */ addiu $t3,$t3,%lo(g_Menus)
/* f17ebc0: 000950c0 */ sll $t2,$t1,0x3
/* f17ebc4: 01495023 */ subu $t2,$t2,$t1
/* f17ebc8: 000a5080 */ sll $t2,$t2,0x2
/* f17ebcc: 01495021 */ addu $t2,$t2,$t1
/* f17ebd0: 000a50c0 */ sll $t2,$t2,0x3
/* f17ebd4: 01495023 */ subu $t2,$t2,$t1
/* f17ebd8: 000a5100 */ sll $t2,$t2,0x4
/* f17ebdc: 014b1021 */ addu $v0,$t2,$t3
/* f17ebe0: 3c0c4fac */ lui $t4,0x4fac
/* f17ebe4: 358c5ace */ ori $t4,$t4,0x5ace
/* f17ebe8: ac4c0850 */ sw $t4,0x850($v0)
/* f17ebec: 8c440844 */ lw $a0,0x844($v0)
/* f17ebf0: 0fc67091 */ jal mpLoadAndStoreCurrentChallenge
/* f17ebf4: 8c450848 */ lw $a1,0x848($v0)
.L0f17ebf8:
/* f17ebf8: 8fad0018 */ lw $t5,0x18($sp)
.L0f17ebfc:
/* f17ebfc: 24010065 */ addiu $at,$zero,0x65
/* f17ec00: 3c0e8007 */ lui $t6,%hi(g_MpPlayerNum)
/* f17ec04: 55a10013 */ bnel $t5,$at,.L0f17ec54
/* f17ec08: 8fbf0014 */ lw $ra,0x14($sp)
/* f17ec0c: 8dce1448 */ lw $t6,%lo(g_MpPlayerNum)($t6)
/* f17ec10: 3c18800a */ lui $t8,%hi(g_Menus+0x850)
/* f17ec14: 3c014fac */ lui $at,0x4fac
/* f17ec18: 000e78c0 */ sll $t7,$t6,0x3
/* f17ec1c: 01ee7823 */ subu $t7,$t7,$t6
/* f17ec20: 000f7880 */ sll $t7,$t7,0x2
/* f17ec24: 01ee7821 */ addu $t7,$t7,$t6
/* f17ec28: 000f78c0 */ sll $t7,$t7,0x3
/* f17ec2c: 01ee7823 */ subu $t7,$t7,$t6
/* f17ec30: 000f7900 */ sll $t7,$t7,0x4
/* f17ec34: 030fc021 */ addu $t8,$t8,$t7
/* f17ec38: 8f18e850 */ lw $t8,%lo(g_Menus+0x850)($t8)
/* f17ec3c: 34215ace */ ori $at,$at,0x5ace
/* f17ec40: 57010004 */ bnel $t8,$at,.L0f17ec54
/* f17ec44: 8fbf0014 */ lw $ra,0x14($sp)
/* f17ec48: 0fc6709a */ jal mpClearCurrentChallenge
/* f17ec4c: 00000000 */ nop
/* f17ec50: 8fbf0014 */ lw $ra,0x14($sp)
.L0f17ec54:
/* f17ec54: 27bd0018 */ addiu $sp,$sp,0x18
/* f17ec58: 00001025 */ or $v0,$zero,$zero
/* f17ec5c: 03e00008 */ jr $ra
/* f17ec60: 00000000 */ nop
);
s32 mpCombatChallengesMenuDialog(u32 operation, struct menudialog *dialog, union handlerdata *data)
{
if (operation == MENUOP_TICK) {
if (g_MpSetupSaveFile.locktype == MPLOCKTYPE_CHALLENGE
&& g_Menus[g_MpPlayerNum].curframe
&& g_Menus[g_MpPlayerNum].curframe->dialog == dialog
&& !mpIsChallengeLoaded()) {
g_Menus[g_MpPlayerNum].unk850 = 0x4fac5ace;
mpLoadAndStoreCurrentChallenge(
g_Menus[g_MpPlayerNum].mpconfigbuffer,
g_Menus[g_MpPlayerNum].mpconfigbufferlen);
}
}
if (operation == MENUOP_CLOSE) {
if (g_Menus[g_MpPlayerNum].unk850 == 0x4fac5ace) {
mpClearCurrentChallenge();
}
}
return 0;
}
s32 menuhandler0017ec64(u32 operation, struct menuitem *item, union handlerdata *data)
{

View File

@ -58,7 +58,7 @@ u32 func0f17e318(void);
s32 menudialog0017e3fc(u32 operation, struct menudialog *dialog, union handlerdata *data);
s32 menuhandler0017e4d4(u32 operation, struct menuitem *item, union handlerdata *data);
char *mpMenuTextChallengeName(struct menuitem *item);
s32 menudialog0017eb34(u32 operation, struct menudialog *dialog, union handlerdata *data);
s32 mpCombatChallengesMenuDialog(u32 operation, struct menudialog *dialog, union handlerdata *data);
char *mpMenuTextSavePlayerOrCopy(struct menuitem *item);
char *mpMenuTextArenaName(struct menuitem *item);
char *mpMenuTextWeaponSetName(struct menuitem *item);