Decompile func0f0f3220
This commit is contained in:
parent
f9497d264b
commit
4054c8446c
|
|
@ -5701,193 +5701,78 @@ glabel menuPushDialog
|
|||
//}
|
||||
|
||||
#if VERSION >= VERSION_NTSC_1_0
|
||||
GLOBAL_ASM(
|
||||
glabel func0f0f3220
|
||||
/* f0f3220: 3c03800a */ lui $v1,%hi(g_MenuData+0x669)
|
||||
/* f0f3224: 00641821 */ addu $v1,$v1,$a0
|
||||
/* f0f3228: 90632029 */ lbu $v1,%lo(g_MenuData+0x669)($v1)
|
||||
/* f0f322c: 27bdffd8 */ addiu $sp,$sp,-40
|
||||
/* f0f3230: 24010004 */ addiu $at,$zero,0x4
|
||||
/* f0f3234: afbf0014 */ sw $ra,0x14($sp)
|
||||
/* f0f3238: 1461003d */ bne $v1,$at,.L0f0f3330
|
||||
/* f0f323c: 24080001 */ addiu $t0,$zero,0x1
|
||||
/* f0f3240: 3c078007 */ lui $a3,%hi(g_MpPlayerNum)
|
||||
/* f0f3244: 24e71448 */ addiu $a3,$a3,%lo(g_MpPlayerNum)
|
||||
/* f0f3248: 3c03800a */ lui $v1,%hi(g_Menus+0x2b50)
|
||||
/* f0f324c: 8ce90000 */ lw $t1,0x0($a3)
|
||||
/* f0f3250: 24630b50 */ addiu $v1,$v1,%lo(g_Menus+0x2b50)
|
||||
/* f0f3254: 24020003 */ addiu $v0,$zero,0x3
|
||||
.L0f0f3258:
|
||||
/* f0f3258: 8c6e04f8 */ lw $t6,0x4f8($v1)
|
||||
/* f0f325c: 51c00003 */ beqzl $t6,.L0f0f326c
|
||||
/* f0f3260: 2442ffff */ addiu $v0,$v0,-1
|
||||
/* f0f3264: ace20000 */ sw $v0,0x0($a3)
|
||||
/* f0f3268: 2442ffff */ addiu $v0,$v0,-1
|
||||
.L0f0f326c:
|
||||
/* f0f326c: 0441fffa */ bgez $v0,.L0f0f3258
|
||||
/* f0f3270: 2463f190 */ addiu $v1,$v1,-3696
|
||||
/* f0f3274: 8ce20000 */ lw $v0,0x0($a3)
|
||||
/* f0f3278: 3c18800a */ lui $t8,%hi(g_Menus)
|
||||
/* f0f327c: 2718e000 */ addiu $t8,$t8,%lo(g_Menus)
|
||||
/* f0f3280: 000278c0 */ sll $t7,$v0,0x3
|
||||
/* f0f3284: 01e27823 */ subu $t7,$t7,$v0
|
||||
/* f0f3288: 000f7880 */ sll $t7,$t7,0x2
|
||||
/* f0f328c: 01e27821 */ addu $t7,$t7,$v0
|
||||
/* f0f3290: 000f78c0 */ sll $t7,$t7,0x3
|
||||
/* f0f3294: 01e27823 */ subu $t7,$t7,$v0
|
||||
/* f0f3298: 000f7900 */ sll $t7,$t7,0x4
|
||||
/* f0f329c: 01f81821 */ addu $v1,$t7,$t8
|
||||
/* f0f32a0: 847904f4 */ lh $t9,0x4f4($v1)
|
||||
/* f0f32a4: 00002825 */ or $a1,$zero,$zero
|
||||
/* f0f32a8: 00003025 */ or $a2,$zero,$zero
|
||||
/* f0f32ac: 2b210002 */ slti $at,$t9,0x2
|
||||
/* f0f32b0: 54200003 */ bnezl $at,.L0f0f32c0
|
||||
/* f0f32b4: 8c6404f8 */ lw $a0,0x4f8($v1)
|
||||
/* f0f32b8: 00004025 */ or $t0,$zero,$zero
|
||||
/* f0f32bc: 8c6404f8 */ lw $a0,0x4f8($v1)
|
||||
.L0f0f32c0:
|
||||
/* f0f32c0: 1080000f */ beqz $a0,.L0f0f3300
|
||||
/* f0f32c4: 00000000 */ nop
|
||||
/* f0f32c8: 8c820000 */ lw $v0,0x0($a0)
|
||||
/* f0f32cc: 24010002 */ addiu $at,$zero,0x2
|
||||
/* f0f32d0: 3c0b8008 */ lui $t3,%hi(g_MpEndscreenChallengeCheatedMenuDialog)
|
||||
/* f0f32d4: 904a0000 */ lbu $t2,0x0($v0)
|
||||
/* f0f32d8: 256b4a40 */ addiu $t3,$t3,%lo(g_MpEndscreenChallengeCheatedMenuDialog)
|
||||
/* f0f32dc: 15410008 */ bne $t2,$at,.L0f0f3300
|
||||
/* f0f32e0: 00000000 */ nop
|
||||
/* f0f32e4: 11620005 */ beq $t3,$v0,.L0f0f32fc
|
||||
/* f0f32e8: 00004025 */ or $t0,$zero,$zero
|
||||
/* f0f32ec: 3c0c8008 */ lui $t4,%hi(g_MpEndscreenChallengeFailedMenuDialog)
|
||||
/* f0f32f0: 258c4a58 */ addiu $t4,$t4,%lo(g_MpEndscreenChallengeFailedMenuDialog)
|
||||
/* f0f32f4: 15820002 */ bne $t4,$v0,.L0f0f3300
|
||||
/* f0f32f8: 00000000 */ nop
|
||||
.L0f0f32fc:
|
||||
/* f0f32fc: 24080001 */ addiu $t0,$zero,0x1
|
||||
.L0f0f3300:
|
||||
/* f0f3300: 11000009 */ beqz $t0,.L0f0f3328
|
||||
/* f0f3304: 3c04800a */ lui $a0,%hi(g_GameFileGuid)
|
||||
/* f0f3308: 248422c0 */ addiu $a0,$a0,%lo(g_GameFileGuid)
|
||||
/* f0f330c: afa80024 */ sw $t0,0x24($sp)
|
||||
/* f0f3310: 0fc42539 */ jal filemgrSaveOrLoad
|
||||
/* f0f3314: afa9001c */ sw $t1,0x1c($sp)
|
||||
/* f0f3318: 3c078007 */ lui $a3,%hi(g_MpPlayerNum)
|
||||
/* f0f331c: 24e71448 */ addiu $a3,$a3,%lo(g_MpPlayerNum)
|
||||
/* f0f3320: 8fa80024 */ lw $t0,0x24($sp)
|
||||
/* f0f3324: 8fa9001c */ lw $t1,0x1c($sp)
|
||||
.L0f0f3328:
|
||||
/* f0f3328: 10000019 */ b .L0f0f3390
|
||||
/* f0f332c: ace90000 */ sw $t1,0x0($a3)
|
||||
.L0f0f3330:
|
||||
/* f0f3330: 28610004 */ slti $at,$v1,0x4
|
||||
/* f0f3334: 10200016 */ beqz $at,.L0f0f3390
|
||||
/* f0f3338: 3c078007 */ lui $a3,%hi(g_MpPlayerNum)
|
||||
/* f0f333c: 00037080 */ sll $t6,$v1,0x2
|
||||
/* f0f3340: 24e71448 */ addiu $a3,$a3,%lo(g_MpPlayerNum)
|
||||
/* f0f3344: 01c37021 */ addu $t6,$t6,$v1
|
||||
/* f0f3348: 8ced0000 */ lw $t5,0x0($a3)
|
||||
/* f0f334c: 000e7140 */ sll $t6,$t6,0x5
|
||||
/* f0f3350: 3c18800b */ lui $t8,%hi(g_PlayerConfigsArray)
|
||||
/* f0f3354: 2718c7b8 */ addiu $t8,$t8,%lo(g_PlayerConfigsArray)
|
||||
/* f0f3358: 25cf004c */ addiu $t7,$t6,0x4c
|
||||
/* f0f335c: ace30000 */ sw $v1,0x0($a3)
|
||||
/* f0f3360: 01f82021 */ addu $a0,$t7,$t8
|
||||
/* f0f3364: 00601025 */ or $v0,$v1,$zero
|
||||
/* f0f3368: 24050003 */ addiu $a1,$zero,0x3
|
||||
/* f0f336c: 00603025 */ or $a2,$v1,$zero
|
||||
/* f0f3370: afa80024 */ sw $t0,0x24($sp)
|
||||
/* f0f3374: 0fc42539 */ jal filemgrSaveOrLoad
|
||||
/* f0f3378: afad0018 */ sw $t5,0x18($sp)
|
||||
/* f0f337c: 8fb90018 */ lw $t9,0x18($sp)
|
||||
/* f0f3380: 3c078007 */ lui $a3,%hi(g_MpPlayerNum)
|
||||
/* f0f3384: 24e71448 */ addiu $a3,$a3,%lo(g_MpPlayerNum)
|
||||
/* f0f3388: 8fa80024 */ lw $t0,0x24($sp)
|
||||
/* f0f338c: acf90000 */ sw $t9,0x0($a3)
|
||||
.L0f0f3390:
|
||||
/* f0f3390: 11000005 */ beqz $t0,.L0f0f33a8
|
||||
/* f0f3394: 3c0a800a */ lui $t2,%hi(g_MenuData+0x66e)
|
||||
/* f0f3398: 814a202e */ lb $t2,%lo(g_MenuData+0x66e)($t2)
|
||||
/* f0f339c: 3c01800a */ lui $at,%hi(g_MenuData+0x66e)
|
||||
/* f0f33a0: 254bffff */ addiu $t3,$t2,-1
|
||||
/* f0f33a4: a02b202e */ sb $t3,%lo(g_MenuData+0x66e)($at)
|
||||
.L0f0f33a8:
|
||||
/* f0f33a8: 8fbf0014 */ lw $ra,0x14($sp)
|
||||
/* f0f33ac: 27bd0028 */ addiu $sp,$sp,0x28
|
||||
/* f0f33b0: 01001025 */ or $v0,$t0,$zero
|
||||
/* f0f33b4: 03e00008 */ jr $ra
|
||||
/* f0f33b8: 00000000 */ nop
|
||||
);
|
||||
bool func0f0f3220(s32 arg0)
|
||||
{
|
||||
bool save = true;
|
||||
s32 i;
|
||||
|
||||
if (g_MenuData.unk669[arg0] == 4) {
|
||||
s32 prevplayernum = g_MpPlayerNum;
|
||||
|
||||
for (i = 3; i >= 0; i--) {
|
||||
if (g_Menus[i].curframe) {
|
||||
g_MpPlayerNum = i;
|
||||
}
|
||||
}
|
||||
|
||||
if (g_Menus[g_MpPlayerNum].depth >= 2) {
|
||||
save = false;
|
||||
}
|
||||
|
||||
if (g_Menus[g_MpPlayerNum].curframe && g_Menus[g_MpPlayerNum].curframe->dialog->type == 2) {
|
||||
save = false;
|
||||
|
||||
if (g_Menus[g_MpPlayerNum].curframe->dialog == &g_MpEndscreenChallengeCheatedMenuDialog
|
||||
|| g_Menus[g_MpPlayerNum].curframe->dialog == &g_MpEndscreenChallengeFailedMenuDialog) {
|
||||
save = true;
|
||||
}
|
||||
}
|
||||
|
||||
if (save) {
|
||||
filemgrSaveOrLoad(&g_GameFileGuid, FILEOP_SAVE_GAME_000, 0);
|
||||
}
|
||||
|
||||
g_MpPlayerNum = prevplayernum;
|
||||
} else if (g_MenuData.unk669[arg0] < 4) {
|
||||
s32 prevplayernum = g_MpPlayerNum;
|
||||
g_MpPlayerNum = g_MenuData.unk669[arg0];
|
||||
filemgrSaveOrLoad(&g_PlayerConfigsArray[g_MpPlayerNum].fileguid, FILEOP_SAVE_MPPLAYER, g_MpPlayerNum);
|
||||
save = true;
|
||||
g_MpPlayerNum = prevplayernum;
|
||||
}
|
||||
|
||||
if (save) {
|
||||
g_MenuData.unk66e--;
|
||||
}
|
||||
|
||||
return save;
|
||||
}
|
||||
#else
|
||||
GLOBAL_ASM(
|
||||
glabel func0f0f3220
|
||||
/* f0efe3c: 3c09800a */ lui $t1,0x800a
|
||||
/* f0efe40: 25295eb0 */ addiu $t1,$t1,0x5eb0
|
||||
/* f0efe44: 01247021 */ addu $t6,$t1,$a0
|
||||
/* f0efe48: 91c30669 */ lbu $v1,0x669($t6)
|
||||
/* f0efe4c: 27bdffd8 */ addiu $sp,$sp,-40
|
||||
/* f0efe50: 24010004 */ addiu $at,$zero,0x4
|
||||
/* f0efe54: 1461001b */ bne $v1,$at,.NB0f0efec4
|
||||
/* f0efe58: afbf0014 */ sw $ra,0x14($sp)
|
||||
/* f0efe5c: 3c078007 */ lui $a3,0x8007
|
||||
/* f0efe60: 24e73af0 */ addiu $a3,$a3,0x3af0
|
||||
/* f0efe64: 3c03800a */ lui $v1,0x800a
|
||||
/* f0efe68: 8ce80000 */ lw $t0,0x0($a3)
|
||||
/* f0efe6c: 246350f4 */ addiu $v1,$v1,0x50f4
|
||||
/* f0efe70: 24020003 */ addiu $v0,$zero,0x3
|
||||
.NB0f0efe74:
|
||||
/* f0efe74: 8c6f0488 */ lw $t7,0x488($v1)
|
||||
/* f0efe78: 51e00003 */ beqzl $t7,.NB0f0efe88
|
||||
/* f0efe7c: 2442ffff */ addiu $v0,$v0,-1
|
||||
/* f0efe80: ace20000 */ sw $v0,0x0($a3)
|
||||
/* f0efe84: 2442ffff */ addiu $v0,$v0,-1
|
||||
.NB0f0efe88:
|
||||
/* f0efe88: 0441fffa */ bgez $v0,.NB0f0efe74
|
||||
/* f0efe8c: 2463f244 */ addiu $v1,$v1,-3516
|
||||
/* f0efe90: 3c04800a */ lui $a0,0x800a
|
||||
/* f0efe94: 248467b0 */ addiu $a0,$a0,0x67b0
|
||||
/* f0efe98: 00002825 */ or $a1,$zero,$zero
|
||||
/* f0efe9c: 00003025 */ or $a2,$zero,$zero
|
||||
/* f0efea0: 0fc41358 */ jal filemgrSaveOrLoad
|
||||
/* f0efea4: afa80020 */ sw $t0,0x20($sp)
|
||||
/* f0efea8: 8fa80020 */ lw $t0,0x20($sp)
|
||||
/* f0efeac: 3c078007 */ lui $a3,0x8007
|
||||
/* f0efeb0: 24e73af0 */ addiu $a3,$a3,0x3af0
|
||||
/* f0efeb4: 3c09800a */ lui $t1,0x800a
|
||||
/* f0efeb8: 25295eb0 */ addiu $t1,$t1,0x5eb0
|
||||
/* f0efebc: 10000019 */ beqz $zero,.NB0f0eff24
|
||||
/* f0efec0: ace80000 */ sw $t0,0x0($a3)
|
||||
.NB0f0efec4:
|
||||
/* f0efec4: 28610004 */ slti $at,$v1,0x4
|
||||
/* f0efec8: 10200016 */ beqz $at,.NB0f0eff24
|
||||
/* f0efecc: 3c078007 */ lui $a3,0x8007
|
||||
/* f0efed0: 0003c880 */ sll $t9,$v1,0x2
|
||||
/* f0efed4: 24e73af0 */ addiu $a3,$a3,0x3af0
|
||||
/* f0efed8: 0323c821 */ addu $t9,$t9,$v1
|
||||
/* f0efedc: 8cf80000 */ lw $t8,0x0($a3)
|
||||
/* f0efee0: 0019c940 */ sll $t9,$t9,0x5
|
||||
/* f0efee4: 3c0b800b */ lui $t3,0x800b
|
||||
/* f0efee8: 256b1068 */ addiu $t3,$t3,0x1068
|
||||
/* f0efeec: 272a004c */ addiu $t2,$t9,0x4c
|
||||
/* f0efef0: ace30000 */ sw $v1,0x0($a3)
|
||||
/* f0efef4: 014b2021 */ addu $a0,$t2,$t3
|
||||
/* f0efef8: 00601025 */ or $v0,$v1,$zero
|
||||
/* f0efefc: 24050003 */ addiu $a1,$zero,0x3
|
||||
/* f0eff00: 00603025 */ or $a2,$v1,$zero
|
||||
/* f0eff04: 0fc41358 */ jal filemgrSaveOrLoad
|
||||
/* f0eff08: afb8001c */ sw $t8,0x1c($sp)
|
||||
/* f0eff0c: 8fac001c */ lw $t4,0x1c($sp)
|
||||
/* f0eff10: 3c078007 */ lui $a3,0x8007
|
||||
/* f0eff14: 24e73af0 */ addiu $a3,$a3,0x3af0
|
||||
/* f0eff18: 3c09800a */ lui $t1,0x800a
|
||||
/* f0eff1c: 25295eb0 */ addiu $t1,$t1,0x5eb0
|
||||
/* f0eff20: acec0000 */ sw $t4,0x0($a3)
|
||||
.NB0f0eff24:
|
||||
/* f0eff24: 812d066e */ lb $t5,0x66e($t1)
|
||||
/* f0eff28: 8fbf0014 */ lw $ra,0x14($sp)
|
||||
/* f0eff2c: 27bd0028 */ addiu $sp,$sp,0x28
|
||||
/* f0eff30: 25aeffff */ addiu $t6,$t5,-1
|
||||
/* f0eff34: 03e00008 */ jr $ra
|
||||
/* f0eff38: a12e066e */ sb $t6,0x66e($t1)
|
||||
);
|
||||
void func0f0f3220(s32 arg0)
|
||||
{
|
||||
s32 i;
|
||||
|
||||
if (g_MenuData.unk669[arg0] == 4) {
|
||||
s32 prevplayernum = g_MpPlayerNum;
|
||||
|
||||
for (i = 3; i >= 0; i--) {
|
||||
if (g_Menus[i].curframe) {
|
||||
g_MpPlayerNum = i;
|
||||
}
|
||||
}
|
||||
|
||||
filemgrSaveOrLoad(&g_GameFileGuid, FILEOP_SAVE_GAME_000, 0);
|
||||
|
||||
g_MpPlayerNum = prevplayernum;
|
||||
} else if (g_MenuData.unk669[arg0] < 4) {
|
||||
s32 prevplayernum = g_MpPlayerNum;
|
||||
g_MpPlayerNum = g_MenuData.unk669[arg0];
|
||||
filemgrSaveOrLoad(&g_PlayerConfigsArray[g_MpPlayerNum].fileguid, FILEOP_SAVE_MPPLAYER, g_MpPlayerNum);
|
||||
g_MpPlayerNum = prevplayernum;
|
||||
}
|
||||
|
||||
g_MenuData.unk66e--;
|
||||
}
|
||||
#endif
|
||||
|
||||
void menuCloseDialog(void)
|
||||
|
|
|
|||
|
|
@ -39,7 +39,13 @@ u32 func0f0f2b2c(void);
|
|||
u32 func0f0f2c44(void);
|
||||
void menuOpenDialog(struct menudialog *dialog, struct menuframe *arg1, struct menu *menu);
|
||||
void menuPushDialog(struct menudialog *dialog);
|
||||
|
||||
#if VERSION >= VERSION_NTSC_1_0
|
||||
bool func0f0f3220(s32 arg0);
|
||||
#else
|
||||
void func0f0f3220(s32 arg0);
|
||||
#endif
|
||||
|
||||
void menuCloseDialog(void);
|
||||
void menuUpdateCurFrame(void);
|
||||
void menuPopDialog(void);
|
||||
|
|
|
|||
Loading…
Reference in New Issue