From 166a6691fc9b7a289ee7f457ab089d0710cdd40c Mon Sep 17 00:00:00 2001 From: KiritoDev <36680385+KiritoDv@users.noreply.github.com> Date: Sat, 17 Dec 2022 18:08:32 -0600 Subject: [PATCH 1/7] Fixed nintendo switch debug flags (#2202) --- CMakeLists.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) 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() From d3f2da2a8f6d9d8ef59d802c67ccee3a90de667a Mon Sep 17 00:00:00 2001 From: Garrett Cox Date: Sat, 17 Dec 2022 18:21:00 -0600 Subject: [PATCH 2/7] [#1803] Fix hookshot target offset on retail rom (#2189) --- soh/assets/xml/GC_NMQ_PAL_F/objects/object_d_hsblock.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) 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 @@ - - + + From be38b416441e060286c501851393dd76a3a8708e Mon Sep 17 00:00:00 2001 From: Garrett Cox Date: Sat, 17 Dec 2022 18:51:52 -0600 Subject: [PATCH 3/7] [#361] Fix ganon boss offset on retail rom (#2190) --- soh/assets/xml/GC_NMQ_PAL_F/overlays/ovl_Boss_Ganon2.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 @@ - + From c4b077d83b01d7830d731b7d96d43a37ef122723 Mon Sep 17 00:00:00 2001 From: Adam Bird Date: Sat, 17 Dec 2022 20:06:23 -0500 Subject: [PATCH 4/7] fix warp song hints not being set if gossip stones are turned off (#2197) --- soh/soh/Enhancements/randomizer/3drando/fill.cpp | 6 ++++++ soh/soh/Enhancements/randomizer/3drando/hints.cpp | 1 - soh/soh/Enhancements/randomizer/3drando/hints.hpp | 1 + 3 files changed, 7 insertions(+), 1 deletion(-) 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(); From 51f3e3701020c6850a80d78e3ca056d7bef59cca Mon Sep 17 00:00:00 2001 From: Adam Bird Date: Sun, 18 Dec 2022 20:07:35 -0500 Subject: [PATCH 5/7] fix medi goron not selling randomized item and continuously selling knifes (#2206) --- soh/src/overlays/actors/ovl_En_Gm/z_en_gm.c | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/soh/src/overlays/actors/ovl_En_Gm/z_en_gm.c b/soh/src/overlays/actors/ovl_En_Gm/z_en_gm.c index c9f95bbfd..414c35d3a 100644 --- a/soh/src/overlays/actors/ovl_En_Gm/z_en_gm.c +++ b/soh/src/overlays/actors/ovl_En_Gm/z_en_gm.c @@ -93,13 +93,13 @@ void EnGm_Destroy(Actor* thisx, PlayState* play) { s32 func_80A3D7C8(void) { if (LINK_AGE_IN_YEARS == YEARS_CHILD) { return 0; - } else if (!(gBitFlags[2] & gSaveContext.inventory.equipment)) { - return 1; - } else if (gBitFlags[3] & gSaveContext.inventory.equipment) { - return 2; } else if ((gSaveContext.n64ddFlag && Randomizer_GetSettingValue(RSK_SHUFFLE_MERCHANTS) != RO_SHUFFLE_MERCHANTS_OFF) && - (gBitFlags[2] & gSaveContext.inventory.equipment)) { + !Flags_GetRandomizerInf(RAND_INF_MERCHANTS_MEDIGORON)) { return 1; + } else if (!(gBitFlags[2] & gSaveContext.inventory.equipment)) { // Don't have giant's knife + return 1; + } else if (gBitFlags[3] & gSaveContext.inventory.equipment) { // Have broken giant's knife + return 2; } else { return 3; } @@ -256,7 +256,6 @@ void EnGm_ProcessChoiceIndex(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; 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); } - } } From 4999df539567620a411110c1032e7fc6af129ea9 Mon Sep 17 00:00:00 2001 From: PurpleHato Date: Mon, 19 Dec 2022 03:07:05 +0100 Subject: [PATCH 6/7] TWEAK: Rando Text (French / German) (#2204) * TWEAK: Some Rando Text French and German tweaks (German made by Timmy_GamerNepgear on Discord) Tweak: water control level style to fits Navi's style textboxes * TWEAK: %c instead of %w --- soh/soh/Enhancements/randomizer/randomizer.cpp | 18 +++++++++--------- soh/soh/z_message_OTR.cpp | 12 ++++++------ 2 files changed, 15 insertions(+), 15 deletions(-) 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/z_message_OTR.cpp b/soh/soh/z_message_OTR.cpp index e65d12bba..894bcab85 100644 --- a/soh/soh/z_message_OTR.cpp +++ b/soh/soh/z_message_OTR.cpp @@ -95,7 +95,7 @@ extern "C" void OTRMessage_Init() { TEXTBOX_TYPE_BLUE, TEXTBOX_POS_BOTTOM, "You got a %rGold Skulltula Token%w!&You've collected %r{{gsCount}}%w tokens&in total!\x0E\x3C", - "Du erhälst ein %rGoldene&Skulltula-Symbol%w! Du hast&insgesamt %r{{gsCount}}%w symbol gesammelt!\x0E\x3C", + "Ein %rGoldenes Skulltula-Symbol%w!&Du hast nun insgesamt %r{{gsCount}}%w Golende&Skulltula-Symbole gesammelt!\x0E\x3C", "Vous obtenez un %rSymbole de&Skulltula d'or%w! Vous avez&collecté %r{{gsCount}}%w symboles en tout!\x0E\x3C" } ); @@ -104,7 +104,7 @@ extern "C" void OTRMessage_Init() { TEXTBOX_TYPE_BLUE, TEXTBOX_POS_BOTTOM, "You got a %rGold Skulltula Token%w!&You've collected %r{{gsCount}}%w tokens&in total!", - "Du erhälst ein %rGoldene&Skulltula-Symbol%w! Du hast&insgesamt %r{{gsCount}}%w symbol gesammelt!", + "Ein %rGoldenes Skulltula-Symbol%w!&Du hast nun insgesamt %r{{gsCount}}%w Golende&Skulltula-Symbole gesammelt!", "Vous obtenez un %rSymbole de&Skulltula d'or%w! Vous avez&collecté %r{{gsCount}}%w symboles en tout!" } ); @@ -131,7 +131,7 @@ extern "C" void OTRMessage_Init() { TEXTBOX_TYPE_BLUE, TEXTBOX_POS_BOTTOM, "You got a %rHeart Container%w!&You've collected %r{{heartContainerCount}}%w containers&in total!", - "Du erhältst ein %rHerzgefäß%w! Du&hast insgesamt %r{{heartContainerCount}}%w Gefäße&gesammelt!", + "Ein %rHerzcontainer%w!&Du hast nun insgesamt %r{{heartContainerCount}}%w&Herzcontainer gesammelt!", "Vous obtenez un %rCoeur&d'Energie%w! Vous en avez&collecté %r{{heartContainerCount}}%w en tout!" } ); @@ -140,7 +140,7 @@ extern "C" void OTRMessage_Init() { TEXTBOX_TYPE_BLUE, TEXTBOX_POS_BOTTOM, "You got a %rHeart Piece%w!&You've collected %r{{heartPieceCount}}%w pieces&in total!", - "Du erhältst ein %rHerzteil%w! Du hast&insgesamt %r{{heartPieceCount}}%w Teile&gesammelt!", + "Ein %rHerzteil%w!&Du hast nun insgesamt %r{{heartPieceCount}}%w&Herteile gesammelt!", "Vous obtenez un %rQuart de&Coeur%w! Vous en avez collecté&%r{{heartPieceCount}}%w en tout!" } ); @@ -149,8 +149,8 @@ extern "C" void OTRMessage_Init() { TEXTBOX_TYPE_BLACK, TEXTBOX_POS_BOTTOM, "You look bored. Wanna go out for a&walk?\x1B&%gYes&No%w", - "Du siehst gelangweilt aus.&Willst du einen Spaziergang machen?\x1B&%gJa&Nein%w", //TODO: AI translated, replace with actual translation - "Tu as l'air de t'ennuyer. Tu veux&aller faire une promenade?\x1B&%gOui&Non%w", //TODO: AI translated, replace with actual translation + "Du siehst gelangweilt aus.&Willst du einen Spaziergang machen?\x1B&%gJa&Nein%w", + "Tu as l'air de t'ennuyer. Tu veux&aller faire un tour?\x1B&%gOui&Non%w", } ); } From 56ac27b8f4b64a231a07f070fce30d5c42fccac0 Mon Sep 17 00:00:00 2001 From: Christopher Leggett Date: Mon, 19 Dec 2022 05:12:36 -0500 Subject: [PATCH 7/7] Fixes crash during randomization of individual sound effects. (#2203) * Fixes randomization of individual sound effects. * Re-adds the mistakenly removed const specifier. * Implements new randomization syntax that actually fixes the crash. * Increases default width of sfx editor menu. The default width was cutting off a lot of the text in the dropdowns due to the added Randomize button. --- soh/soh/Enhancements/sfx-editor/SfxEditor.cpp | 22 +++++++++---------- 1 file changed, 10 insertions(+), 12 deletions(-) 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::map