Don't require input for credits textboxes (#2193)

* Don't require input for credits textboxes

* Use cvar instead of rando flag
This commit is contained in:
Garrett Cox 2023-01-23 16:47:54 -06:00 committed by GitHub
parent beb414eb0a
commit 0629140357
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 23 additions and 1 deletions

View File

@ -175,7 +175,8 @@ const std::vector<const char*> enhancementsCvars = {
"gBombchuBowlingAmmunition",
"gCreditsFix",
"gSilverRupeeJingleExtend",
"gStaticExplosionRadius"
"gStaticExplosionRadius",
"gNoInputForCredits",
};
const std::vector<const char*> randomizerCvars = {
@ -617,6 +618,8 @@ const std::vector<PresetEntry> randomizerPresetEntries = {
PRESET_ENTRY_S32("gPauseLiveLink", 16),
// Frames to wait
PRESET_ENTRY_S32("gMinFrameCount", 200),
PRESET_ENTRY_S32("gNoInputForCredits", 1),
};
const std::vector<PresetEntry> s6PresetEntries = {

View File

@ -641,6 +641,8 @@ namespace GameMenuBar {
UIWidgets::Tooltip("Allows graves to be pulled when child during the day");
UIWidgets::PaddedEnhancementCheckbox("Dogs follow you everywhere", "gDogFollowsEverywhere", true, false);
UIWidgets::Tooltip("Allows dogs to follow you anywhere you go, even if you leave the market");
UIWidgets::PaddedEnhancementCheckbox("Don't require input for Credits sequence", "gNoInputForCredits", true, false);
UIWidgets::Tooltip("Removes the input requirement on textboxes after defeating Ganon, allowing Credits sequence to continue to progress");
// Blue Fire Arrows
bool forceEnableBlueFireArrows = gSaveContext.n64ddFlag &&

View File

@ -1180,6 +1180,23 @@ void Message_Decode(PlayState* play) {
while (true) {
phi_s1 = temp_s2 = msgCtx->msgBufDecoded[decodedBufPos] = font->msgBuf[msgCtx->msgBufPos];
// Don't require input for credits textboxes in randomizer
if (CVarGetInteger("gNoInputForCredits", 0) && (
msgCtx->textId == 0x706F ||
msgCtx->textId == 0x7091 ||
msgCtx->textId == 0x7092 ||
msgCtx->textId == 0x7093 ||
msgCtx->textId == 0x7094 ||
msgCtx->textId == 0x7095
)) {
if (temp_s2 == MESSAGE_BOX_BREAK) {
phi_s1 = temp_s2 = msgCtx->msgBufDecoded[decodedBufPos] = font->msgBuf[msgCtx->msgBufPos] = MESSAGE_BOX_BREAK_DELAYED;
} else if (temp_s2 == MESSAGE_END) {
phi_s1 = temp_s2 = msgCtx->msgBufDecoded[decodedBufPos] = font->msgBuf[msgCtx->msgBufPos] = MESSAGE_FADE2;
phi_s1 = temp_s2 = msgCtx->msgBufDecoded[++decodedBufPos] = font->msgBuf[++msgCtx->msgBufPos] = MESSAGE_END;
}
}
if (temp_s2 == MESSAGE_BOX_BREAK || temp_s2 == MESSAGE_TEXTID || temp_s2 == MESSAGE_BOX_BREAK_DELAYED ||
temp_s2 == MESSAGE_EVENT || temp_s2 == MESSAGE_END) {
// Textbox decoding ends with any of the above text control characters