diff --git a/src/game/game_102240.c b/src/game/game_102240.c index 8982dd2d5..ac06b3c04 100644 --- a/src/game/game_102240.c +++ b/src/game/game_102240.c @@ -783,47 +783,24 @@ s32 menuhandlerCutsceneSubtitles(u32 operation, struct menu_item *item, bool *en return 0; } -GLOBAL_ASM( -glabel menuhandlerAlternativeTitle -/* f102c18: 24010006 */ addiu $at,$zero,0x6 -/* f102c1c: 10810014 */ beq $a0,$at,.L0f102c70 -/* f102c20: afa50004 */ sw $a1,0x4($sp) -/* f102c24: 24010008 */ addiu $at,$zero,0x8 -/* f102c28: 1081000f */ beq $a0,$at,.L0f102c68 -/* f102c2c: 3c02800a */ lui $v0,0x800a -/* f102c30: 24010018 */ addiu $at,$zero,0x18 -/* f102c34: 14810016 */ bne $a0,$at,.L0f102c90 -/* f102c38: 3c02800a */ lui $v0,%hi(g_Vars) -/* f102c3c: 24429fc0 */ addiu $v0,$v0,%lo(g_Vars) -/* f102c40: 8c4e04b4 */ lw $t6,0x4b4($v0) -/* f102c44: 24010026 */ addiu $at,$zero,0x26 -/* f102c48: 3c0f800a */ lui $t7,0x800a -/* f102c4c: 15c10004 */ bne $t6,$at,.L0f102c60 -/* f102c50: 00000000 */ sll $zero,$zero,0x0 -/* f102c54: 91ef232b */ lbu $t7,0x232b($t7) -/* f102c58: 55e0000e */ bnezl $t7,.L0f102c94 -/* f102c5c: 00001025 */ or $v0,$zero,$zero -.L0f102c60: -/* f102c60: 03e00008 */ jr $ra -/* f102c64: 24020001 */ addiu $v0,$zero,0x1 -.L0f102c68: -/* f102c68: 03e00008 */ jr $ra -/* f102c6c: 9042232c */ lbu $v0,0x232c($v0) -.L0f102c70: -/* f102c70: 8cd80000 */ lw $t8,0x0($a2) -/* f102c74: 3c02800a */ lui $v0,%hi(g_Vars) -/* f102c78: 3c01800a */ lui $at,0x800a -/* f102c7c: 24429fc0 */ addiu $v0,$v0,%lo(g_Vars) -/* f102c80: a038232c */ sb $t8,0x232c($at) -/* f102c84: 8c590458 */ lw $t9,0x458($v0) -/* f102c88: 37280004 */ ori $t0,$t9,0x4 -/* f102c8c: ac480458 */ sw $t0,0x458($v0) -.L0f102c90: -/* f102c90: 00001025 */ or $v0,$zero,$zero -.L0f102c94: -/* f102c94: 03e00008 */ jr $ra -/* f102c98: 00000000 */ sll $zero,$zero,0x0 -); +s32 menuhandlerAlternativeTitle(u32 operation, struct menu_item *item, bool *enable) +{ + switch (operation) { + case MENUOP_24: + if (g_Vars.stagenum != STAGE_CITRAINING || var800a2328[3] == 0) { + return true; + } + break; + case MENUOP_GET: + return g_AltTitle; + case MENUOP_SET: + g_AltTitle = *enable; + g_Vars.unk000458 |= 4; + break; + } + + return 0; +} GLOBAL_ASM( glabel menuhandlerHiRes diff --git a/src/gvars/gvars.c b/src/gvars/gvars.c index 67c908202..6398fb0c2 100644 --- a/src/gvars/gvars.c +++ b/src/gvars/gvars.c @@ -20357,8 +20357,8 @@ u32 var800a2318 = 0; u32 var800a231c = 0; u32 var800a2320 = 0; u32 var800a2324 = 0; -u32 var800a2328 = 0; -u32 var800a232c = 0; +u8 var800a2328[] = {0, 0, 0, 0}; +u8 g_AltTitle = 0; u32 var800a2330 = 0; u32 var800a2334 = 0; u32 var800a2338 = 0; diff --git a/src/include/constants.h b/src/include/constants.h index 013591629..6cb37cf40 100644 --- a/src/include/constants.h +++ b/src/include/constants.h @@ -465,6 +465,7 @@ #define MENUOP_SET 6 #define MENUOP_GET 8 #define MENUOP_CHECKDISABLED 12 +#define MENUOP_24 24 // Object flags - bank 0 (object struct offset 0x08) #define OBJECTFLAG0_00000001 0x00000001 // Not used in scripts diff --git a/src/include/gvars/gvars.h b/src/include/gvars/gvars.h index 91b9b6b81..faf533c1f 100644 --- a/src/include/gvars/gvars.h +++ b/src/include/gvars/gvars.h @@ -687,6 +687,8 @@ extern u32 var800a21f0; extern struct savefile_solo g_SoloSaveFile; extern u32 var800a22c0; extern u32 var800a22d0; +extern u8 var800a2328[4]; +extern u8 g_AltTitle; extern u32 var800a2330; extern u32 var800a2344; extern u32 var800a2350;