From ff0b7e24e4ec1d597c8dcab31c47c18076211b71 Mon Sep 17 00:00:00 2001 From: briaguya <70942617+briaguya-ai@users.noreply.github.com> Date: Wed, 22 Jan 2025 01:38:42 -0500 Subject: [PATCH] boot sequence logic --- .../cosmetics/CustomLogoTitle.cpp | 21 +++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/soh/soh/Enhancements/cosmetics/CustomLogoTitle.cpp b/soh/soh/Enhancements/cosmetics/CustomLogoTitle.cpp index 7c7038516..f79f5dc98 100644 --- a/soh/soh/Enhancements/cosmetics/CustomLogoTitle.cpp +++ b/soh/soh/Enhancements/cosmetics/CustomLogoTitle.cpp @@ -121,7 +121,6 @@ extern "C" void CustomLogoTitle_Draw(TitleContext* titleContext, uint8_t logoToD } extern "C" void CustomLogoTitle_Main(TitleContext* titleContext) { - static uint8_t logosDrawn = 0; static uint8_t logoToDraw = LOGO_TO_DRAW_LUS; if (CVarGetInteger(CVAR_ENHANCEMENT("BootSequence"), BOOTSEQUENCE_DEFAULT) == BOOTSEQUENCE_AUTHENTIC) { logoToDraw = LOGO_TO_DRAW_N64; @@ -141,7 +140,25 @@ extern "C" void CustomLogoTitle_Main(TitleContext* titleContext) { gSaveContext.gameMode = 1; titleContext->state.running = false; - SET_NEXT_GAMESTATE(&titleContext->state, Opening_Init, OpeningContext); + // default boot sequence is lus -> n64 -> opening + if (CVarGetInteger(CVAR_ENHANCEMENT("BootSequence"), BOOTSEQUENCE_DEFAULT) == BOOTSEQUENCE_DEFAULT) { + // if we're drawing the n64 logo in the default boot sequence + if (logoToDraw == LOGO_TO_DRAW_N64) { + // go to the opening next + SET_NEXT_GAMESTATE(&titleContext->state, Opening_Init, OpeningContext); + + // make sure to draw the lus logo on reset + logoToDraw = LOGO_TO_DRAW_LUS; + } else { // we're drawing the lus logo + // go to the title again + SET_NEXT_GAMESTATE(&titleContext->state, Title_Init, TitleContext); + + // draw the n64 logo this time + logoToDraw = LOGO_TO_DRAW_N64; + } + } else { // we're doing the authentic boot sequence, just n64 -> opening + SET_NEXT_GAMESTATE(&titleContext->state, Opening_Init, OpeningContext); + } } GameInteractor_ExecuteOnZTitleUpdate(titleContext);