diff --git a/soh/assets/custom/accessibility/texts/kaleidoscope_eng.json b/soh/assets/custom/accessibility/texts/kaleidoscope_eng.json index a89c12889..04fc1f8f2 100644 --- a/soh/assets/custom/accessibility/texts/kaleidoscope_eng.json +++ b/soh/assets/custom/accessibility/texts/kaleidoscope_eng.json @@ -2,6 +2,7 @@ "health": "Health - $0 Hearts", "magic": "Magic - $0", "rupees": "Rupees - $0", + "keys": "Keys - $0", "floor": "Floor $0", "basement": "Basement $0", "item_menu": "Select Item", diff --git a/soh/assets/custom/accessibility/texts/kaleidoscope_fra.json b/soh/assets/custom/accessibility/texts/kaleidoscope_fra.json index 116c19a41..93e0058dc 100644 --- a/soh/assets/custom/accessibility/texts/kaleidoscope_fra.json +++ b/soh/assets/custom/accessibility/texts/kaleidoscope_fra.json @@ -2,6 +2,7 @@ "health": "Vie - $0 Coeurs", "magic": "Magie - $0", "rupees": "Rubis - $0", + "keys": "Clés - $0", "floor": "Étage $0", "basement": "Sous-sol $0", "item_menu": "Inventaire", diff --git a/soh/assets/custom/accessibility/texts/kaleidoscope_ger.json b/soh/assets/custom/accessibility/texts/kaleidoscope_ger.json index 649790da3..f66b82736 100644 --- a/soh/assets/custom/accessibility/texts/kaleidoscope_ger.json +++ b/soh/assets/custom/accessibility/texts/kaleidoscope_ger.json @@ -2,6 +2,7 @@ "health": "Energie - $0 Herzen", "magic": "Magie - $0", "rupees": "Rubine - $0", + "keys": "Schlüssel - $0", "floor": "Etage $0", "basement": "Keller $0", "item_menu": "Gegenstände", diff --git a/soh/soh/Enhancements/tts/tts.cpp b/soh/soh/Enhancements/tts/tts.cpp index 13dd9f183..1dc8a1ba6 100644 --- a/soh/soh/Enhancements/tts/tts.cpp +++ b/soh/soh/Enhancements/tts/tts.cpp @@ -370,9 +370,16 @@ void RegisterOnKaleidoscopeUpdateHook() { auto translation = GetParameritizedText("magic", TEXT_BANK_KALEIDO, arg); SpeechSynthesizer::Instance->Speak(translation.c_str(), GetLanguageCode()); } else if (CHECK_BTN_ALL(input->press.button, BTN_DDOWN)) { - snprintf(arg, sizeof(arg), "%d", gSaveContext.rupees); - auto translation = GetParameritizedText("rupees", TEXT_BANK_KALEIDO, arg); - SpeechSynthesizer::Instance->Speak(translation.c_str(), GetLanguageCode()); + if (gPlayState->sceneNum >= SCENE_FOREST_TEMPLE && gPlayState->sceneNum <= SCENE_INSIDE_GANONS_CASTLE) { + snprintf(arg, sizeof(arg), "%d", + std::max(gSaveContext.inventory.dungeonKeys[gPlayState->sceneNum], (s8)0)); + auto translation = GetParameritizedText("keys", TEXT_BANK_KALEIDO, arg); + SpeechSynthesizer::Instance->Speak(translation.c_str(), GetLanguageCode()); + } else { + snprintf(arg, sizeof(arg), "%d", gSaveContext.rupees); + auto translation = GetParameritizedText("rupees", TEXT_BANK_KALEIDO, arg); + SpeechSynthesizer::Instance->Speak(translation.c_str(), GetLanguageCode()); + } } else if (CHECK_BTN_ALL(input->press.button, BTN_DRIGHT)) { // TODO: announce timer? }