[Bugfix] Restore Ganondorf Lights Hint (#7363)

This commit is contained in:
Chris
2026-10-10 22:35:34 -04:00
committed by GitHub
parent eea5129a8c
commit 7e510f69ff
3 changed files with 13 additions and 4 deletions
@@ -2,7 +2,9 @@
#include <libultraship/bridge/consolevariablebridge.h>
#include "soh/Enhancements/custom-message/CustomMessageTypes.h"
#include "soh/Enhancements/game-interactor/GameInteractor.h"
#include "soh/Enhancements/randomizer/SeedContext.h"
#include "soh/ShipInit.hpp"
extern "C" {
@@ -29,7 +31,13 @@ void RegisterGanonIntros() {
}
});
COND_VB_SHOULD(VB_PLAY_GANONDORF_INTRO_CS, CVAR_VALUE || IS_RANDO || IS_BOSS_RUSH, { *should = false; });
COND_VB_SHOULD(VB_PLAY_GANONDORF_INTRO_CS, CVAR_VALUE || IS_RANDO || IS_BOSS_RUSH, {
va_arg(args, void*);
u16 textId = va_arg(args, int);
if (textId != TEXT_GANONDORF || !IS_RANDO || !RAND_GET_OPTION(RSK_GANONDORF_HINT)) {
*should = false;
}
});
// Skip Ganon rising from the rubble, transforming and landing. Skip to knocking sword away.
COND_VB_SHOULD(VB_PLAY_GANON_INTRO_CS, CVAR_VALUE, {
@@ -2234,6 +2234,7 @@ typedef enum {
// ```
// #### `args`
// - `*BossGanon`
// - `u16` text ID
VB_PLAY_GANONDORF_INTRO_CS,
// #### `result`
@@ -918,7 +918,7 @@ void BossGanon_IntroCutscene(BossGanon* this, PlayState* play) {
this->csTimer = 0;
this->csCamFov = 60.0f;
BossGanon_SetIntroCsCamera(this, 12);
if (GameInteractor_Should(VB_PLAY_GANONDORF_INTRO_CS, true, this)) {
if (GameInteractor_Should(VB_PLAY_GANONDORF_INTRO_CS, true, this, 0x70CB)) {
Message_StartTextbox(play, 0x70CB, NULL);
}
}
@@ -942,7 +942,7 @@ void BossGanon_IntroCutscene(BossGanon* this, PlayState* play) {
this->csState = 19;
this->csTimer = 0;
if (GameInteractor_Should(VB_PLAY_GANONDORF_INTRO_CS, true, this)) {
if (GameInteractor_Should(VB_PLAY_GANONDORF_INTRO_CS, true, this, 0x70CC)) {
Message_StartTextbox(play, 0x70CC, NULL);
}
Animation_MorphToPlayOnce(&this->skelAnime, &gGanondorfRaiseHandStartAnim, -5.0f);
@@ -985,7 +985,7 @@ void BossGanon_IntroCutscene(BossGanon* this, PlayState* play) {
}
if ((this->csTimer > 80) && (Message_GetState(&play->msgCtx) == TEXT_STATE_NONE)) {
if (!GameInteractor_Should(VB_PLAY_GANONDORF_INTRO_CS, true, this)) {
if (!GameInteractor_Should(VB_PLAY_GANONDORF_INTRO_CS, true, this, 0)) {
this->timers[2] = 30;
this->csCamAt.x = this->unk_1FC.x - 10.0f;
this->csCamAt.y = this->unk_1FC.y + 30.0f;