summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTed Newman <Tawling@users.noreply.github.com>2024-02-15 17:52:46 -0800
committerGitHub <noreply@github.com>2024-02-15 19:52:46 -0600
commitbbac8f8da40adfb86d82066f5ce6aa041abb3a58 (patch)
tree6fef59d136198fbedd97c6e8387fdff446924181
parent2c5cb58ef6fec2d690b4bd3f307d9927496069d6 (diff)
[Fixes] Fix for Zora hint dialogue condition with an inverted flag check (#3920)
* [Fixes] Fix for Zora hint dialogue condition with an inverted flag check * Base dialogue off of ruto's letter flag * simplify condition
-rw-r--r--soh/soh/SohMenuBar.cpp2
-rw-r--r--soh/src/overlays/actors/ovl_En_Zo/z_en_zo.c8
2 files changed, 7 insertions, 3 deletions
diff --git a/soh/soh/SohMenuBar.cpp b/soh/soh/SohMenuBar.cpp
index 5f41f1e25..4450d3aa1 100644
--- a/soh/soh/SohMenuBar.cpp
+++ b/soh/soh/SohMenuBar.cpp
@@ -1236,6 +1236,8 @@ void DrawEnhancementsMenu() {
UIWidgets::PaddedEnhancementCheckbox("Fix Darunia dancing too fast", "gEnhancements.FixDaruniaDanceSpeed",
true, false, false, "", UIWidgets::CheckboxGraphics::Cross, true);
UIWidgets::Tooltip("Fixes Darunia's dancing speed so he dances to the beat of Saria's Song, like in vanilla.");
+ UIWidgets::PaddedEnhancementCheckbox("Fix Zora hint dialogue", "gFixZoraHintDialogue", true, false);
+ UIWidgets::Tooltip("Fixes one Zora's dialogue giving a hint about bringing Ruto's Letter to King Zora to properly occur before moving King Zora rather than after");
ImGui::EndMenu();
}
diff --git a/soh/src/overlays/actors/ovl_En_Zo/z_en_zo.c b/soh/src/overlays/actors/ovl_En_Zo/z_en_zo.c
index 561ebf81b..f5275618b 100644
--- a/soh/src/overlays/actors/ovl_En_Zo/z_en_zo.c
+++ b/soh/src/overlays/actors/ovl_En_Zo/z_en_zo.c
@@ -361,7 +361,7 @@ void EnZo_SpawnSplashes(EnZo* this) {
}
}
-u16 func_80B61024(PlayState* play, Actor* thisx) {
+u16 EnZo_GetTextId(PlayState* play, Actor* thisx) {
u16 textId;
textId = Text_GetFaceReaction(play, 29);
@@ -427,7 +427,9 @@ u16 func_80B61024(PlayState* play, Actor* thisx) {
return 0x402D;
}
- if (Flags_GetEventChkInf(EVENTCHKINF_KING_ZORA_MOVED)) {
+ if (Flags_GetEventChkInf(EVENTCHKINF_KING_ZORA_MOVED) ||
+ (CVarGetInteger("gFixZoraHintDialogue", 0) &&
+ Flags_GetEventChkInf(EVENTCHKINF_OBTAINED_RUTOS_LETTER))) {
return 0x4010;
}
if (Flags_GetEventChkInf(EVENTCHKINF_SPOKE_TO_A_ZORA)) {
@@ -520,7 +522,7 @@ void EnZo_Dialog(EnZo* this, PlayState* play) {
}
Npc_TrackPoint(&this->actor, &this->interactInfo, 11, this->trackingMode);
if (this->canSpeak == true) {
- Npc_UpdateTalking(play, &this->actor, &this->interactInfo.talkState, this->dialogRadius, func_80B61024,
+ Npc_UpdateTalking(play, &this->actor, &this->interactInfo.talkState, this->dialogRadius, EnZo_GetTextId,
func_80B61298);
}
}