diff --git a/CMakeLists.txt b/CMakeLists.txt index f4b762b3b..85ea03232 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -49,8 +49,8 @@ endif() # Global configuration types ################################################################################ if (CMAKE_SYSTEM_NAME STREQUAL "NintendoSwitch") -set(CMAKE_C_FLAGS_DEBUG "-O3 -ffast-math") -set(CMAKE_CXX_FLAGS_DEBUG "-O3 -ffast-math") +set(CMAKE_C_FLAGS_DEBUG "-g -ffast-math -DDEBUG") +set(CMAKE_CXX_FLAGS_DEBUG "-g -ffast-math -DDEBUG") set(CMAKE_C_FLAGS_RELEASE "-O3 -ffast-math -DNDEBUG") set(CMAKE_CXX_FLAGS_RELEASE "-O3 -ffast-math -DNDEBUG") else() diff --git a/soh/assets/xml/GC_NMQ_PAL_F/objects/object_d_hsblock.xml b/soh/assets/xml/GC_NMQ_PAL_F/objects/object_d_hsblock.xml index b9111b38b..4bb50c2b4 100644 --- a/soh/assets/xml/GC_NMQ_PAL_F/objects/object_d_hsblock.xml +++ b/soh/assets/xml/GC_NMQ_PAL_F/objects/object_d_hsblock.xml @@ -1,7 +1,7 @@ - - + + diff --git a/soh/assets/xml/GC_NMQ_PAL_F/overlays/ovl_Boss_Ganon2.xml b/soh/assets/xml/GC_NMQ_PAL_F/overlays/ovl_Boss_Ganon2.xml index dfb01ba07..8b0e9d31d 100644 --- a/soh/assets/xml/GC_NMQ_PAL_F/overlays/ovl_Boss_Ganon2.xml +++ b/soh/assets/xml/GC_NMQ_PAL_F/overlays/ovl_Boss_Ganon2.xml @@ -21,7 +21,7 @@ - + diff --git a/soh/soh/Enhancements/randomizer/3drando/fill.cpp b/soh/soh/Enhancements/randomizer/3drando/fill.cpp index af5d54e0e..20ea61f15 100644 --- a/soh/soh/Enhancements/randomizer/3drando/fill.cpp +++ b/soh/soh/Enhancements/randomizer/3drando/fill.cpp @@ -909,6 +909,9 @@ void VanillaFill() { CreateItemOverrides(); CreateEntranceOverrides(); CreateAlwaysIncludedMessages(); + if (ShuffleWarpSongs) { + CreateWarpSongTexts(); + } } void ClearProgress() { @@ -1071,6 +1074,9 @@ int Fill() { if (ShuffleMerchants.Is(SHUFFLEMERCHANTS_HINTS)) { CreateMerchantsHints(); } + if (ShuffleWarpSongs) { + CreateWarpSongTexts(); + } return 1; } //Unsuccessful placement diff --git a/soh/soh/Enhancements/randomizer/3drando/hints.cpp b/soh/soh/Enhancements/randomizer/3drando/hints.cpp index 785ad5cc9..8516ecb76 100644 --- a/soh/soh/Enhancements/randomizer/3drando/hints.cpp +++ b/soh/soh/Enhancements/randomizer/3drando/hints.cpp @@ -779,7 +779,6 @@ void CreateAllHints() { CreateGanonText(); CreateAltarText(); - CreateWarpSongTexts(); SPDLOG_DEBUG("\nNOW CREATING HINTS\n"); const HintSetting& hintSetting = hintSettingTable[Settings::HintDistribution.Value()]; diff --git a/soh/soh/Enhancements/randomizer/3drando/hints.hpp b/soh/soh/Enhancements/randomizer/3drando/hints.hpp index 9f184f762..568708a79 100644 --- a/soh/soh/Enhancements/randomizer/3drando/hints.hpp +++ b/soh/soh/Enhancements/randomizer/3drando/hints.hpp @@ -220,6 +220,7 @@ extern std::array conditionalAlwaysHints; extern uint32_t GetHintRegionHintKey(const uint32_t area); extern void CreateAllHints(); extern void CreateMerchantsHints(); +extern void CreateWarpSongTexts(); Text& GetChildAltarText(); Text& GetAdultAltarText(); diff --git a/soh/soh/Enhancements/randomizer/randomizer.cpp b/soh/soh/Enhancements/randomizer/randomizer.cpp index bb58d3240..0f38f64bf 100644 --- a/soh/soh/Enhancements/randomizer/randomizer.cpp +++ b/soh/soh/Enhancements/randomizer/randomizer.cpp @@ -342,20 +342,20 @@ void Randomizer::LoadHintLocations(const char* spoilerFileName) { CustomMessageManager::Instance->CreateMessage(Randomizer::hintMessageTableID, TEXT_WARP_RANDOM_REPLACED_TEXT, { TEXTBOX_TYPE_BLACK, TEXTBOX_POS_BOTTOM, "Warp to&{{location}}?\x1B&%gOK&No%w\x02", - "Warp to&{{location}}?\x1B&%gOK&No%w\x02", // TODO: German translation + "Zu {{location}}?\x1B&%gOK&No%w\x02", "Se téléporter vers&{{location}}?\x1B&%gOK!&Non%w\x02" }); CustomMessageManager::Instance->CreateMessage(Randomizer::hintMessageTableID, TEXT_LAKE_HYLIA_WATER_SWITCH_SIGN, { TEXTBOX_TYPE_WOODEN, TEXTBOX_POS_BOTTOM, "Water level control system.&Keep away!", "Wasserstand Kontrollsystem&Finger weg!", - "Contrôle du niveau de l'eau.&Ne pas toucher!" + "Système de contrôle du niveau&d'eau.&Ne pas toucher!" }); CustomMessageManager::Instance->CreateMessage(Randomizer::hintMessageTableID, TEXT_LAKE_HYLIA_WATER_SWITCH_NAVI, - { TEXTBOX_TYPE_BLACK, TEXTBOX_POS_BOTTOM, - "This switch is rustier than you think.^Something must be wrong with the&pipe system in the Water Temple.", - "Dieser Schalter scheint rostiger zu&sein als er aussieht.^Etwas muss mit dem Leitungssystem&im Wassertempel nicht stimmen.", - "Cet interrupteur est très rouillé.^Quelque chose ne va pas avec&la tuyauterie du Temple de l'Eau." + { TEXTBOX_TYPE_BLUE, TEXTBOX_POS_BOTTOM, + "%cThis switch is rustier than you think.^%cSomething must be wrong with the&pipe system in the %bWater Temple%c.", + "%cDieser Schalter scheint rostiger zu&sein als er aussieht.^%cEtwas muss mit dem Leitungssystem&im %bWassertempel%c nicht stimmen.", + "%cCet interrupteur est très rouillé.^%cIl doit y avoir un problème avec&la tuyauterie du %bTemple de l'Eau%c." }); } @@ -471,9 +471,9 @@ void Randomizer::LoadMerchantMessages(const char* spoilerFileName) { { TEXTBOX_TYPE_BLACK, TEXTBOX_POS_TOP, - "Finally! Now I can go back to being &an %rarms dealer!%w", + "Finally! Now I can go back to being &an %rarms dealer%w!", "Endlich! Schon bald kann ich wieder &%rKrabbelminen-Händler%w sein!", - "Squalala! Je vais enfin pouvoir &%rprendre des vacances!%w" + "Squalala! Je vais enfin pouvoir &%rprendre des vacances%w!" } ); @@ -4203,7 +4203,7 @@ CustomMessageEntry Randomizer::GetWarpSongMessage(u16 textId, bool mysterious) { if (mysterious) { std::vector locationName ={ "a mysterious place", - "a mysterious place", // TODO: German translation + "ein mysteriöser Ort", "un endroit mystérieux", }; diff --git a/soh/soh/Enhancements/sfx-editor/SfxEditor.cpp b/soh/soh/Enhancements/sfx-editor/SfxEditor.cpp index 0334f6b61..43d0534c4 100644 --- a/soh/soh/Enhancements/sfx-editor/SfxEditor.cpp +++ b/soh/soh/Enhancements/sfx-editor/SfxEditor.cpp @@ -297,19 +297,17 @@ void Draw_SfxTab(const std::string& tabId, const std::mapactor, play, itemEntry, 415.0f, 10.0f); - Flags_SetRandomizerInf(RAND_INF_MERCHANTS_MEDIGORON); gSaveContext.infTable[11] |= 2; this->actionFunc = func_80A3DF00; } else { @@ -276,6 +275,11 @@ void EnGm_ProcessChoiceIndex(EnGm* this, PlayState* play) { void func_80A3DF00(EnGm* this, PlayState* play) { if (Actor_HasParent(&this->actor, play)) { + if (gSaveContext.n64ddFlag && Randomizer_GetSettingValue(RSK_SHUFFLE_MERCHANTS) != RO_SHUFFLE_MERCHANTS_OFF && + !Flags_GetRandomizerInf(RAND_INF_MERCHANTS_MEDIGORON)) { + Flags_SetRandomizerInf(RAND_INF_MERCHANTS_MEDIGORON); + } + this->actor.parent = NULL; this->actionFunc = func_80A3DF60; } else { @@ -284,14 +288,12 @@ void func_80A3DF00(EnGm* this, PlayState* play) { GetItemEntry itemEntry = Randomizer_GetItemFromKnownCheck(RC_GC_MEDIGORON, GI_SWORD_KNIFE); gSaveContext.pendingSale = itemEntry.itemId; GiveItemEntryFromActor(&this->actor, play, itemEntry, 415.0f, 10.0f); - Flags_SetRandomizerInf(RAND_INF_MERCHANTS_MEDIGORON); gSaveContext.infTable[11] |= 2; } else { gSaveContext.pendingSale = ItemTable_Retrieve(GI_SWORD_KNIFE).itemId; func_8002F434(&this->actor, play, GI_SWORD_KNIFE, 415.0f, 10.0f); } - } }