Decompile menuhandlerMpSaveSettings

This commit is contained in:
Ryan Dwyer 2020-01-02 17:19:38 +10:00
parent 98c12cca25
commit 3f9b89aee2
10 changed files with 46 additions and 58 deletions

View File

@ -3660,7 +3660,8 @@ s32 menuhandlerMpCheckboxOption(u32 operation, struct menu_item *item, s32 *valu
s32 menuhandlerMpTeamsEnabled(u32 operation, struct menu_item *item, s32 *value)
{
if (operation == MENUOP_CHECKDISABLED) {
if (var800acb98 == 5 || var800acb98 == 4) {
if (g_MpSetup.scenario == MPSCENARIO_CAPTURETHECASE ||
g_MpSetup.scenario == MPSCENARIO_KINGOFTHEHILL) {
return true;
}
@ -3791,8 +3792,8 @@ glabel menuhandler00179ad0
/* f179ae4: afa60020 */ sw $a2,0x20($sp)
/* f179ae8: 0fc3cdb7 */ jal menuPopDialog
/* f179aec: 00000000 */ sll $zero,$zero,0x0
/* f179af0: 3c04800b */ lui $a0,%hi(var800acba8)
/* f179af4: 2484cba8 */ addiu $a0,$a0,%lo(var800acba8)
/* f179af0: 3c04800b */ lui $a0,0x800b
/* f179af4: 2484cba8 */ addiu $a0,$a0,-13400
/* f179af8: 24050004 */ addiu $a1,$zero,0x4
/* f179afc: 0fc42539 */ jal func0f1094e4
/* f179b00: 00003025 */ or $a2,$zero,$zero
@ -9855,38 +9856,19 @@ glabel menuhandler0017ef30
/* f17efb8: 00000000 */ sll $zero,$zero,0x0
);
GLOBAL_ASM(
glabel menuhandlerMpSaveSettings
/* f17efbc: 27bdffe8 */ addiu $sp,$sp,-24
/* f17efc0: 24010006 */ addiu $at,$zero,0x6
/* f17efc4: afbf0014 */ sw $ra,0x14($sp)
/* f17efc8: afa5001c */ sw $a1,0x1c($sp)
/* f17efcc: 14810010 */ bne $a0,$at,.L0f17f010
/* f17efd0: afa60020 */ sw $a2,0x20($sp)
/* f17efd4: 3c02800b */ lui $v0,%hi(g_MpSetup)
/* f17efd8: 2442cb88 */ addiu $v0,$v0,%lo(g_MpSetup)
/* f17efdc: 8c4e0020 */ lw $t6,0x20($v0)
/* f17efe0: 3c048008 */ lui $a0,%hi(menudialog_mpsavesetupname)
/* f17efe4: 15c00005 */ bnez $t6,.L0f17effc
/* f17efe8: 00000000 */ sll $zero,$zero,0x0
/* f17efec: 0fc3cbd3 */ jal menuPushDialog
/* f17eff0: 24844cdc */ addiu $a0,$a0,%lo(menudialog_mpsavesetupname)
/* f17eff4: 10000007 */ beqz $zero,.L0f17f014
/* f17eff8: 8fbf0014 */ lw $ra,0x14($sp)
.L0f17effc:
/* f17effc: 0fc420c9 */ jal func0f108324
/* f17f000: 94440024 */ lhu $a0,0x24($v0)
/* f17f004: 3c048008 */ lui $a0,%hi(menudialog_mpsavesetup)
/* f17f008: 0fc3cbd3 */ jal menuPushDialog
/* f17f00c: 24844d80 */ addiu $a0,$a0,%lo(menudialog_mpsavesetup)
.L0f17f010:
/* f17f010: 8fbf0014 */ lw $ra,0x14($sp)
.L0f17f014:
/* f17f014: 27bd0018 */ addiu $sp,$sp,0x18
/* f17f018: 00001025 */ or $v0,$zero,$zero
/* f17f01c: 03e00008 */ jr $ra
/* f17f020: 00000000 */ sll $zero,$zero,0x0
);
s32 menuhandlerMpSaveSettings(u32 operation, struct menu_item *item, s32 *value)
{
if (operation == MENUOP_SET) {
if (g_MpSetup.saved == false) {
menuPushDialog(&menudialog_mpsavesetupname);
} else {
func0f108324(g_MpSetup.unk24);
menuPushDialog(&menudialog_mpsavesetup);
}
}
return 0;
}
GLOBAL_ASM(
glabel func0f17f024
@ -16757,10 +16739,10 @@ glabel menudialog00184ec0
/* f184f08: 030fc021 */ addu $t8,$t8,$t7
/* f184f0c: 001940c0 */ sll $t0,$t9,0x3
/* f184f10: 8f18e4f8 */ lw $t8,-0x1b08($t8)
/* f184f14: 3c098008 */ lui $t1,%hi(g_MpOptionsDialogs)
/* f184f14: 3c098008 */ lui $t1,%hi(g_MpScenarios)
/* f184f18: 01194021 */ addu $t0,$t0,$t9
/* f184f1c: 000840c0 */ sll $t0,$t0,0x3
/* f184f20: 25296f98 */ addiu $t1,$t1,%lo(g_MpOptionsDialogs)
/* f184f20: 25296f98 */ addiu $t1,$t1,%lo(g_MpScenarios)
/* f184f24: 01095021 */ addu $t2,$t0,$t1
/* f184f28: 8d4b0000 */ lw $t3,0x0($t2)
/* f184f2c: 8f040000 */ lw $a0,0x0($t8)
@ -17086,7 +17068,7 @@ glabel menuhandler00185068
s32 menuhandlerMpOpenOptions(u32 operation, struct menu_item *item, s32 *value)
{
if (operation == MENUOP_SET) {
menuPushDialog(g_MpOptionsDialogs[var800acb98].dialog);
menuPushDialog(g_MpScenarios[g_MpSetup.scenario].optionsdialog);
}
return 0;
@ -17386,9 +17368,9 @@ glabel func0f185774
/* f185794: 254acb88 */ addiu $t2,$t2,%lo(g_MpSetup)
/* f185798: 914f0010 */ lbu $t7,0x10($t2)
/* f18579c: 240b0048 */ addiu $t3,$zero,0x48
/* f1857a0: 3c088008 */ lui $t0,%hi(g_MpOptionsDialogs)
/* f1857a0: 3c088008 */ lui $t0,%hi(g_MpScenarios)
/* f1857a4: 01eb0019 */ multu $t7,$t3
/* f1857a8: 25086f98 */ addiu $t0,$t0,%lo(g_MpOptionsDialogs)
/* f1857a8: 25086f98 */ addiu $t0,$t0,%lo(g_MpScenarios)
/* f1857ac: 0000c012 */ mflo $t8
/* f1857b0: 0118c821 */ addu $t9,$t0,$t8
/* f1857b4: 8f2c0018 */ lw $t4,0x18($t9)

View File

View File

@ -31002,12 +31002,6 @@ u32 var800acb7c = 0;
u32 var800acb80 = 0;
u32 var800acb84 = 0;
struct mpsetup g_MpSetup = {0};
u8 var800acb98 = 0;
u32 var800acb9c = 0;
u32 var800acba0 = 0;
u32 var800acba4 = 0;
u32 var800acba8 = 0;
u32 var800acbac = 0;
u32 var800acbb0 = 0;
u32 var800acbb4 = 0;
u32 var800acbb8 = 0;

View File

@ -469,6 +469,13 @@
#define MENUOP_CHECKPREFOCUSED 15
#define MENUOP_CHECKHIDDEN 24
#define MPSCENARIO_COMBAT 0
#define MPSCENARIO_HOLDTHEBRIEFCASE 1
#define MPSCENARIO_HACKERCENTRAL 2
#define MPSCENARIO_POPACAP 3
#define MPSCENARIO_KINGOFTHEHILL 4
#define MPSCENARIO_CAPTURETHECASE 5
// Object flags - bank 0 (object struct offset 0x08)
#define OBJECTFLAG0_00000001 0x00000001 // Not used in scripts
#define OBJECTFLAG0_00000002 0x00000002 // Not used in scripts

View File

@ -7,7 +7,7 @@ u32 func0f107fb0(void);
u32 func0f108078(void);
u32 func0f1080d0(void);
u32 func0f1082b0(void);
u32 func0f108324(void);
void func0f108324(s32 arg0);
u32 func0f1083b0(void);
u32 func0f1083d0(void);
u32 func0f108424(void);

View File

@ -245,7 +245,7 @@ s32 menuhandlerMpOpenOptions(u32 operation, struct menu_item *item, s32 *value);
s32 menuhandlerMpQuickteamOption(u32, u32, u32 *);
s32 menuhandlerMpRestoreHandicapDefaults(u32, u32, u32 *);
s32 menuhandlerMpRestoreScoreDefaults(u32 operation, struct menu_item *item, s32 *value);
s32 menuhandlerMpSaveSettings(u32, u32, u32 *);
s32 menuhandlerMpSaveSettings(u32 operation, struct menu_item *item, s32 *value);
s32 menuhandlerMpScore(u32, u32, u32 *);
s32 menuhandlerMpSimulantBody(u32, u32, u32 *);
s32 menuhandlerMpSimulantDifficulty(u32, u32, u32 *);

View File

@ -851,8 +851,6 @@ extern u32 var800aca38;
extern u32 var800acad8;
extern u32 var800acb78;
extern struct mpsetup g_MpSetup;
extern u8 var800acb98;
extern u32 var800acba8;
extern u32 var800acbb0;
extern u8 var800acc10;
extern u32 var800acc20;

View File

@ -256,6 +256,7 @@ extern u16 mpcontrolstyles[];
extern u16 mpaimmodes[];
extern struct menu_dialog menudialog_mpsavechr;
extern struct menu_dialog menudialog_mpsavesetupname;
extern struct menu_dialog menudialog_mpsavesetup;
extern u32 var800851bc;
extern u32 var800851cc;
extern u32 var80085448;
@ -286,7 +287,7 @@ extern struct menu_dialog menudialog_mphilloptions;
extern struct menu_dialog menudialog_mphackeroptions;
extern u32 var80086e14;
extern struct menu_dialog menudialog_mppopacapoptions;
extern struct mpoptionsdialoginfo g_MpOptionsDialogs[];
extern struct mpscenario g_MpScenarios[];
extern u16 mpscenarios[];
extern u32 var8008716c;
extern u32 var800871fc;

View File

@ -4001,14 +4001,20 @@ struct missionconfig {
};
struct mpsetup {
u32 unk00;
u32 unk04;
u32 unk08;
u32 options;
/*0x8009cb88*/ u32 unk00;
/*0x8009cb8c*/ u32 unk04;
/*0x8009cb90*/ u32 unk08;
/*0x8009cb94*/ u32 options;
/*0x8009cb98*/ u8 scenario;
/*0x8009cb9c*/ u32 unk14;
/*0x8009cba0*/ u32 unk18;
/*0x8009cba4*/ u32 unk1c;
/*0x8009cba8*/ bool saved;
/*0x8009cbac*/ u16 unk24;
};
struct mpoptionsdialoginfo {
struct menu_dialog *dialog;
struct mpscenario {
struct menu_dialog *optionsdialog;
void *unk04;
void *unk08;
void *unk0c;

View File

@ -11546,7 +11546,7 @@ struct menu_dialog menudialog_mppopacapoptions = {
};
// 2cfb8
struct mpoptionsdialoginfo g_MpOptionsDialogs[] = {
struct mpscenario g_MpScenarios[] = {
{ &menudialog_mpcombatoptions, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL },
{ &menudialog_mpbriefcaseoptions, func0f17ff80, func0f17ffdc, func0f1802bc, func0f1802e0, func0f180600, func0f18079c, func0f180960, func0f180a68, func0f180b1c, func0f180c48, NULL, NULL, NULL, NULL, NULL, NULL, NULL },
{ &menudialog_mphackeroptions, func0f182b90, func0f182b9c, func0f182e98, func0f1830a4, func0f183380, func0f1839a8, func0f183bb4, func0f183d10, func0f184218, func0f184344, NULL, NULL, NULL, NULL, NULL, NULL, NULL },