Decompile filemgrHandleSetLanguage
This commit is contained in:
parent
7a74aa38b8
commit
3172bb3503
|
|
@ -40,7 +40,7 @@ bool bossfileLoadFull(void)
|
|||
bossfileLoad();
|
||||
|
||||
#if VERSION >= VERSION_PAL_BETA
|
||||
langSetEuropean(g_Vars.unk000482);
|
||||
langSetEuropean(g_Vars.language);
|
||||
#endif
|
||||
|
||||
return true;
|
||||
|
|
@ -116,7 +116,7 @@ void bossfileLoad(void)
|
|||
|
||||
g_BossFile.unk89 = savebufferReadBits(&buffer, 1);
|
||||
|
||||
g_Vars.unk000482 = savebufferReadBits(&buffer, 4);
|
||||
g_Vars.language = savebufferReadBits(&buffer, 4);
|
||||
|
||||
for (i = 0; i < 8; i++) {
|
||||
savebufferReadString(&buffer, g_BossFile.teamnames[i], 1);
|
||||
|
|
@ -164,7 +164,7 @@ void bossfileSave(void)
|
|||
savebufferWriteGuid(&buffer, &guid);
|
||||
|
||||
savebufferOr(&buffer, g_BossFile.unk89, 1);
|
||||
savebufferOr(&buffer, g_Vars.unk000482, 4);
|
||||
savebufferOr(&buffer, g_Vars.language, 4);
|
||||
|
||||
for (i = 0; i < 8; i++) {
|
||||
func0f0d55a4(&buffer, g_BossFile.teamnames[i]);
|
||||
|
|
@ -215,7 +215,7 @@ void bossfileSetDefaults(void)
|
|||
g_BossFile.locktype = MPLOCKTYPE_NONE;
|
||||
g_Vars.bossfileid = 0;
|
||||
g_Vars.bossdeviceserial = 0;
|
||||
g_Vars.unk000482 = (PAL ? 7 : 0);
|
||||
g_Vars.language = (PAL ? 7 : 0);
|
||||
g_AltTitleUnlocked = 0;
|
||||
g_AltTitleEnabled = false;
|
||||
|
||||
|
|
|
|||
|
|
@ -58,64 +58,25 @@ struct menudialogdef g_FilemgrRenameMenuDialog;
|
|||
#endif
|
||||
|
||||
#if PAL
|
||||
s32 func0f1088d0pf(s32 operation, struct menuitem *item, union handlerdata *data);
|
||||
s32 filemgrHandleSetLanguage(s32 operation, struct menuitem *item, union handlerdata *data)
|
||||
{
|
||||
if (operation == MENUOP_SET) {
|
||||
g_Vars.language = item->param;
|
||||
langSetEuropean(g_Vars.language);
|
||||
menuPopDialog();
|
||||
}
|
||||
|
||||
#if VERSION >= VERSION_PAL_FINAL
|
||||
GLOBAL_ASM(
|
||||
glabel func0f1088d0pf
|
||||
/* f1088d0: 27bdffe8 */ addiu $sp,$sp,-24
|
||||
/* f1088d4: 24010006 */ li $at,0x6
|
||||
/* f1088d8: afbf0014 */ sw $ra,0x14($sp)
|
||||
/* f1088dc: 14810009 */ bne $a0,$at,.PF0f108904
|
||||
/* f1088e0: afa60020 */ sw $a2,0x20($sp)
|
||||
/* f1088e4: 90ae0001 */ lbu $t6,0x1($a1)
|
||||
/* f1088e8: 3c02800a */ lui $v0,0x800a
|
||||
/* f1088ec: 2442a510 */ addiu $v0,$v0,-23280
|
||||
/* f1088f0: a44e0482 */ sh $t6,0x482($v0)
|
||||
/* f1088f4: 0fc5bdd7 */ jal langSetEuropean
|
||||
/* f1088f8: 31c4ffff */ andi $a0,$t6,0xffff
|
||||
/* f1088fc: 0fc3cf8c */ jal menuPopDialog
|
||||
/* f108900: 00000000 */ nop
|
||||
.PF0f108904:
|
||||
/* f108904: 8fbf0014 */ lw $ra,0x14($sp)
|
||||
/* f108908: 27bd0018 */ addiu $sp,$sp,0x18
|
||||
/* f10890c: 00001025 */ move $v0,$zero
|
||||
/* f108910: 03e00008 */ jr $ra
|
||||
/* f108914: 00000000 */ nop
|
||||
);
|
||||
#else
|
||||
GLOBAL_ASM(
|
||||
glabel func0f1088d0pf
|
||||
/* f108630: 27bdffe8 */ addiu $sp,$sp,-24
|
||||
/* f108634: 24010006 */ li $at,0x6
|
||||
/* f108638: afbf0014 */ sw $ra,0x14($sp)
|
||||
/* f10863c: 14810009 */ bne $a0,$at,.PB0f108664
|
||||
/* f108640: afa60020 */ sw $a2,0x20($sp)
|
||||
/* f108644: 90ae0001 */ lbu $t6,0x1($a1)
|
||||
/* f108648: 3c02800a */ lui $v0,0x800a
|
||||
/* f10864c: 2442e4d0 */ addiu $v0,$v0,-6960
|
||||
/* f108650: a44e0482 */ sh $t6,0x482($v0)
|
||||
/* f108654: 0fc5c097 */ jal langSetEuropean
|
||||
/* f108658: 31c4ffff */ andi $a0,$t6,0xffff
|
||||
/* f10865c: 0fc3cf12 */ jal menuPopDialog
|
||||
/* f108660: 00000000 */ nop
|
||||
.PB0f108664:
|
||||
/* f108664: 8fbf0014 */ lw $ra,0x14($sp)
|
||||
/* f108668: 27bd0018 */ addiu $sp,$sp,0x18
|
||||
/* f10866c: 00001025 */ move $v0,$zero
|
||||
/* f108670: 03e00008 */ jr $ra
|
||||
/* f108674: 00000000 */ nop
|
||||
);
|
||||
#endif
|
||||
return 0;
|
||||
}
|
||||
|
||||
struct menuitem g_ChooseLanguageMenuItems[] = {
|
||||
{ MENUITEMTYPE_LABEL, 0, 0x00004010, L_MPWEAPONS_261, 0x00000000, 0x00000000 }, // "Choose your language:"
|
||||
{ MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000 },
|
||||
{ MENUITEMTYPE_SELECTABLE, LANGUAGE_PAL_EN, 0x00000020, L_MPWEAPONS_262, 0x00000000, func0f1088d0pf }, // "English"
|
||||
{ MENUITEMTYPE_SELECTABLE, LANGUAGE_PAL_FR, 0x00000020, L_MPWEAPONS_263, 0x00000000, func0f1088d0pf }, // "French"
|
||||
{ MENUITEMTYPE_SELECTABLE, LANGUAGE_PAL_DE, 0x00000020, L_MPWEAPONS_264, 0x00000000, func0f1088d0pf }, // "German"
|
||||
{ MENUITEMTYPE_SELECTABLE, LANGUAGE_PAL_IT, 0x00000020, L_MPWEAPONS_265, 0x00000000, func0f1088d0pf }, // "Italian"
|
||||
{ MENUITEMTYPE_SELECTABLE, LANGUAGE_PAL_ES, 0x00000020, L_MPWEAPONS_266, 0x00000000, func0f1088d0pf }, // "Spanish"
|
||||
{ MENUITEMTYPE_SELECTABLE, LANGUAGE_PAL_EN, 0x00000020, L_MPWEAPONS_262, 0x00000000, filemgrHandleSetLanguage }, // "English"
|
||||
{ MENUITEMTYPE_SELECTABLE, LANGUAGE_PAL_FR, 0x00000020, L_MPWEAPONS_263, 0x00000000, filemgrHandleSetLanguage }, // "French"
|
||||
{ MENUITEMTYPE_SELECTABLE, LANGUAGE_PAL_DE, 0x00000020, L_MPWEAPONS_264, 0x00000000, filemgrHandleSetLanguage }, // "German"
|
||||
{ MENUITEMTYPE_SELECTABLE, LANGUAGE_PAL_IT, 0x00000020, L_MPWEAPONS_265, 0x00000000, filemgrHandleSetLanguage }, // "Italian"
|
||||
{ MENUITEMTYPE_SELECTABLE, LANGUAGE_PAL_ES, 0x00000020, L_MPWEAPONS_266, 0x00000000, filemgrHandleSetLanguage }, // "Spanish"
|
||||
{ MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000 },
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -85,7 +85,7 @@ void fmbReset(void)
|
|||
menuPushRootDialog(&g_FilemgrFileSelect4MbMenuDialog, MENUROOT_4MBFILEMGR);
|
||||
|
||||
#if PAL
|
||||
if (g_Vars.unk000482 >= 6) {
|
||||
if (g_Vars.language >= 6) {
|
||||
menuPushDialog(&g_ChooseLanguageMenuDialog);
|
||||
}
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -120,21 +120,21 @@ void gamefileApplyOptions(struct gamefile *file)
|
|||
g_Vars.antiradaron = pakHasBitflag(GAMEFILEFLAG_ANTIRADARON, file->flags) ? 1 : 0;
|
||||
|
||||
#if VERSION >= VERSION_PAL_BETA
|
||||
g_Vars.unk000482 = 0;
|
||||
g_Vars.language = 0;
|
||||
|
||||
if (pakHasBitflag(GAMEFILEFLAG_44, file->flags)) {
|
||||
g_Vars.unk000482 |= 0x01;
|
||||
if (pakHasBitflag(GAMEFILEFLAG_LANGBIT1, file->flags)) {
|
||||
g_Vars.language |= 0x01;
|
||||
}
|
||||
|
||||
if (pakHasBitflag(GAMEFILEFLAG_45, file->flags)) {
|
||||
g_Vars.unk000482 |= 0x02;
|
||||
if (pakHasBitflag(GAMEFILEFLAG_LANGBIT2, file->flags)) {
|
||||
g_Vars.language |= 0x02;
|
||||
}
|
||||
|
||||
if (pakHasBitflag(GAMEFILEFLAG_46, file->flags)) {
|
||||
g_Vars.unk000482 |= 0x04;
|
||||
if (pakHasBitflag(GAMEFILEFLAG_LANGBIT3, file->flags)) {
|
||||
g_Vars.language |= 0x04;
|
||||
}
|
||||
|
||||
langSetEuropean(g_Vars.unk000482);
|
||||
langSetEuropean(g_Vars.language);
|
||||
#endif
|
||||
}
|
||||
|
||||
|
|
@ -216,9 +216,9 @@ void gamefileLoadDefaults(struct gamefile *file)
|
|||
pakSetBitflag(GAMEFILEFLAG_ANTIPLAYERNUM, file->flags, 1);
|
||||
|
||||
#if VERSION >= VERSION_PAL_BETA
|
||||
pakSetBitflag(GAMEFILEFLAG_44, g_GameFile.flags, ((g_Vars.unk000482 & 0x01) == 0x01));
|
||||
pakSetBitflag(GAMEFILEFLAG_45, g_GameFile.flags, ((g_Vars.unk000482 & 0x02) == 0x02));
|
||||
pakSetBitflag(GAMEFILEFLAG_46, g_GameFile.flags, ((g_Vars.unk000482 & 0x04) == 0x04));
|
||||
pakSetBitflag(GAMEFILEFLAG_LANGBIT1, g_GameFile.flags, ((g_Vars.language & 0x01) == 0x01));
|
||||
pakSetBitflag(GAMEFILEFLAG_LANGBIT2, g_GameFile.flags, ((g_Vars.language & 0x02) == 0x02));
|
||||
pakSetBitflag(GAMEFILEFLAG_LANGBIT3, g_GameFile.flags, ((g_Vars.language & 0x04) == 0x04));
|
||||
#endif
|
||||
|
||||
file->unk1e = 0;
|
||||
|
|
@ -455,9 +455,9 @@ s32 gamefileSave(s32 device, s32 fileid, u16 deviceserial)
|
|||
pakSetBitflag(GAMEFILEFLAG_ANTIRADARON, g_GameFile.flags, g_Vars.antiradaron == 1);
|
||||
|
||||
#if VERSION >= VERSION_PAL_BETA
|
||||
pakSetBitflag(GAMEFILEFLAG_44, g_GameFile.flags, (g_Vars.unk000482 & 0x01) == 0x01);
|
||||
pakSetBitflag(GAMEFILEFLAG_45, g_GameFile.flags, (g_Vars.unk000482 & 0x02) == 0x02);
|
||||
pakSetBitflag(GAMEFILEFLAG_46, g_GameFile.flags, (g_Vars.unk000482 & 0x04) == 0x04);
|
||||
pakSetBitflag(GAMEFILEFLAG_LANGBIT1, g_GameFile.flags, (g_Vars.language & 0x01) == 0x01);
|
||||
pakSetBitflag(GAMEFILEFLAG_LANGBIT2, g_GameFile.flags, (g_Vars.language & 0x02) == 0x02);
|
||||
pakSetBitflag(GAMEFILEFLAG_LANGBIT3, g_GameFile.flags, (g_Vars.language & 0x04) == 0x04);
|
||||
#endif
|
||||
|
||||
if (device >= 0) {
|
||||
|
|
|
|||
|
|
@ -1091,9 +1091,9 @@
|
|||
#define GAMEFILEFLAG_FOUNDTIMEDMINE 0x41
|
||||
#define GAMEFILEFLAG_FOUNDPROXYMINE 0x42
|
||||
#define GAMEFILEFLAG_FOUNDREMOTEMINE 0x43
|
||||
#define GAMEFILEFLAG_44 0x44
|
||||
#define GAMEFILEFLAG_45 0x45
|
||||
#define GAMEFILEFLAG_46 0x46
|
||||
#define GAMEFILEFLAG_LANGBIT1 0x44
|
||||
#define GAMEFILEFLAG_LANGBIT2 0x45
|
||||
#define GAMEFILEFLAG_LANGBIT3 0x46
|
||||
#define GAMEFILEFLAG_HOWTO_HOVERCRATE 0x47
|
||||
#define GAMEFILEFLAG_HOWTO_HOVERBIKE 0x48
|
||||
#define GAMEFILEFLAG_HOWTO_DOORS 0x49
|
||||
|
|
|
|||
|
|
@ -191,7 +191,7 @@ struct g_vars {
|
|||
/*000478*/ bool aibuddiesspawned;
|
||||
/*00047c*/ s32 bossfileid;
|
||||
/*000480*/ u16 bossdeviceserial;
|
||||
/*000482*/ u16 unk000482;
|
||||
/*000482*/ u16 language;
|
||||
/*000484*/ s32 mphilltime;
|
||||
/*000488*/ s32 totalkills;
|
||||
/*00048c*/ bool unk00048c;
|
||||
|
|
|
|||
Loading…
Reference in New Issue