From f969c3e1fa9ffb4c2b4dd7694d83414bba835b92 Mon Sep 17 00:00:00 2001 From: Ryan Dwyer Date: Sat, 12 Nov 2022 23:16:33 +1000 Subject: [PATCH] Introduce g_AmActive --- src/game/activemenu.c | 3 +++ src/game/activemenutick.c | 5 +++++ src/game/lv.c | 12 ++++++++++-- src/game/menu.c | 4 ---- src/include/bss.h | 1 + 5 files changed, 19 insertions(+), 6 deletions(-) diff --git a/src/game/activemenu.c b/src/game/activemenu.c index 909ef6cb8..c6ea26928 100644 --- a/src/game/activemenu.c +++ b/src/game/activemenu.c @@ -30,6 +30,7 @@ struct activemenu g_AmMenus[4]; struct fontchar *g_AmFont1; struct font *g_AmFont2; s32 g_AmIndex; +s32 g_AmActive; struct menudialogdef g_AmPickTargetMenuDialog; @@ -555,6 +556,7 @@ void amReset(void) } g_AmIndex = 0; + g_AmActive = false; } s16 amCalculateSlotWidth(void) @@ -739,6 +741,7 @@ void amOpen(void) g_AmMenus[g_AmIndex].origscreennum = 0; g_AmMenus[g_AmIndex].prevallbots = 0; g_AmMenus[g_AmIndex].allbots = false; + g_AmActive = true; } } diff --git a/src/game/activemenutick.c b/src/game/activemenutick.c index c2ff0c0c0..9c105faf1 100644 --- a/src/game/activemenutick.c +++ b/src/game/activemenutick.c @@ -15,6 +15,7 @@ void amTick(void) { + bool anyopen = false; s32 prevplayernum = g_Vars.currentplayernum; s32 i; @@ -41,6 +42,8 @@ void amTick(void) s32 numsamples = joyGetNumSamples(); s32 j; + anyopen = true; + for (j = 0; j < numsamples; j++) { s8 gotonextscreen = false; s8 cstickx = joyGetStickXOnSample(j, contpadnum); @@ -402,4 +405,6 @@ void amTick(void) } setCurrentPlayerNum(prevplayernum); + + g_AmActive = anyopen; } diff --git a/src/game/lv.c b/src/game/lv.c index 96034a3a7..6e15393aa 100644 --- a/src/game/lv.c +++ b/src/game/lv.c @@ -1504,7 +1504,11 @@ Gfx *lvRender(Gfx *gdl) } PROFILE(PROFILEMARKER_LVR_SKY2, gdl = sky0f1274d8(gdl)); - PROFILE(PROFILEMARKER_LVR_ACTIVEMENU, gdl = amRender(gdl)); + + if (g_AmActive) { + PROFILE(PROFILEMARKER_LVR_ACTIVEMENU, gdl = amRender(gdl)); + } + mtx00016748(1); if (g_Vars.currentplayer->menuisactive) { @@ -2047,7 +2051,11 @@ void lvTick(void) PROFILE(PROFILEMARKER_LVT_LIGHTING, lightingTick()); PROFILE(PROFILEMARKER_LVT_MODELMGR, modelmgrPrintCounts()); PROFILE(PROFILEMARKER_LVT_BOLTBEAMS, boltbeamsTick()); - PROFILE(PROFILEMARKER_LVT_ACTIVEMENU, amTick()); + + if (g_AmActive) { + PROFILE(PROFILEMARKER_LVT_ACTIVEMENU, amTick()); + } + PROFILE(PROFILEMARKER_LVT_MENU, menuTick()); PROFILE(PROFILEMARKER_LVT_SCENARIO, scenarioTick()); diff --git a/src/game/menu.c b/src/game/menu.c index bab9de7cd..e08c4d946 100644 --- a/src/game/menu.c +++ b/src/game/menu.c @@ -3114,10 +3114,6 @@ void menuClose(void) g_MenuData.count--; - if (g_MenuData.root == MENUROOT_MPPAUSE && g_Vars.currentplayer->activemenumode == AMMODE_EDIT) { - g_Vars.currentplayer->activemenumode = AMMODE_VIEW; - } - if (g_MenuData.root == MENUROOT_BOOTPAKMGR) { mainChangeToStage(STAGE_TITLE); } diff --git a/src/include/bss.h b/src/include/bss.h index cb9a1ad61..fbfe23bd1 100644 --- a/src/include/bss.h +++ b/src/include/bss.h @@ -286,6 +286,7 @@ extern u8 g_AmBotCommands[16]; extern struct mpsetup g_MpSetup; extern struct bossfile g_BossFile; extern struct chrdata *g_MpBotChrPtrs[MAX_BOTS]; +extern s32 g_AmActive; extern s32 g_BeamsActive; #endif