Columns in childs & code style changes

This commit is contained in:
aMannus 2022-08-26 09:56:34 +02:00
parent 31c4b683d1
commit b43f77caba

View File

@ -3185,7 +3185,7 @@ void DrawRandoEditor(bool& open) {
"Timer", "Timer",
"Zelda Gasp (Adult)" }; "Zelda Gasp (Adult)" };
ImGui::SetNextWindowSize(ImVec2(830, 600), ImGuiCond_FirstUseEver); ImGui::SetNextWindowSize(ImVec2(920, 563), ImGuiCond_FirstUseEver);
if (!ImGui::Begin("Randomizer Editor", &open, ImGuiWindowFlags_NoFocusOnAppearing)) { if (!ImGui::Begin("Randomizer Editor", &open, ImGuiWindowFlags_NoFocusOnAppearing)) {
ImGui::End(); ImGui::End();
return; return;
@ -3232,12 +3232,13 @@ void DrawRandoEditor(bool& open) {
// COLUMN 1 - OPEN SETTINGS // COLUMN 1 - OPEN SETTINGS
ImGui::TableNextColumn(); ImGui::TableNextColumn();
window->DC.CurrLineTextBaseOffset = 0.0f; window->DC.CurrLineTextBaseOffset = 0.0f;
ImGui::BeginChild("ChildOpenSettings", ImVec2(0, -8));
ImGui::PushItemWidth(-FLT_MIN); ImGui::PushItemWidth(-FLT_MIN);
if (CVar_GetS32("gRandomizeAllOpenSettings", 0) != 1) {
// Forest // Forest
ImGui::Text(Settings::OpenForest.GetName().c_str()); ImGui::Text(Settings::OpenForest.GetName().c_str());
InsertHelpHoverText("Closed - Kokiri sword & shield are required to access " InsertHelpHoverText(
"Closed - Kokiri sword & shield are required to access "
"the Deku Tree, and completing the Deku Tree is required to " "the Deku Tree, and completing the Deku Tree is required to "
"access the Hyrule Field exit.\n" "access the Hyrule Field exit.\n"
"\n" "\n"
@ -3246,34 +3247,44 @@ void DrawRandoEditor(bool& open) {
"to access the tree.\n" "to access the tree.\n"
"\n" "\n"
"Open - Mido no longer blocks the path to the Deku Tree. Kokiri " "Open - Mido no longer blocks the path to the Deku Tree. Kokiri "
"boy no longer blocks the path out of the forest."); "boy no longer blocks the path out of the forest."
);
SohImGui::EnhancementCombobox("gRandomizeForest", randoForest, 3, 0); SohImGui::EnhancementCombobox("gRandomizeForest", randoForest, 3, 0);
PaddedSeparator(); PaddedSeparator();
// Kakariko Gate // Kakariko Gate
ImGui::Text(Settings::OpenKakariko.GetName().c_str()); ImGui::Text(Settings::OpenKakariko.GetName().c_str());
InsertHelpHoverText("Closed - The gate will remain closed until Zelda's letter " InsertHelpHoverText(
"Closed - The gate will remain closed until Zelda's letter "
"is shown to the guard.\n" "is shown to the guard.\n"
"\n" "\n"
"Open - The gate is always open. The happy mask shop " "Open - The gate is always open. The happy mask shop "
"will open immediately after obtaining Zelda's letter."); "will open immediately after obtaining Zelda's letter."
);
SohImGui::EnhancementCombobox("gRandomizeKakarikoGate", randoKakarikoGate, 2, 0); SohImGui::EnhancementCombobox("gRandomizeKakarikoGate", randoKakarikoGate, 2, 0);
PaddedSeparator(); PaddedSeparator();
// Door of Time // Door of Time
ImGui::Text(Settings::OpenDoorOfTime.GetName().c_str()); ImGui::Text(Settings::OpenDoorOfTime.GetName().c_str());
InsertHelpHoverText("Closed - The Ocarina of Time, the Song of Time and all " InsertHelpHoverText(
"Closed - The Ocarina of Time, the Song of Time and all "
"three spiritual stones are required to open the Door of Time.\n" "three spiritual stones are required to open the Door of Time.\n"
"\n" "\n"
"Song only - Play the Song of Time in front of the Door of " "Song only - Play the Song of Time in front of the Door of "
"Time to open it.\n" "Time to open it.\n"
"\n" "\n"
"Open - The Door of Time is permanently open with no requirements."); "Open - The Door of Time is permanently open with no requirements."
);
SohImGui::EnhancementCombobox("gRandomizeDoorOfTime", randoDoorOfTime, 3, 0); SohImGui::EnhancementCombobox("gRandomizeDoorOfTime", randoDoorOfTime, 3, 0);
PaddedSeparator(); PaddedSeparator();
// Zora's Fountain // Zora's Fountain
ImGui::Text(Settings::ZorasFountain.GetName().c_str()); ImGui::Text(Settings::ZorasFountain.GetName().c_str());
InsertHelpHoverText("Closed - King Zora obstructs the way to Zora's Fountain. " InsertHelpHoverText(
"Closed - King Zora obstructs the way to Zora's Fountain. "
"Ruto's letter must be shown as child Link in order to move " "Ruto's letter must be shown as child Link in order to move "
"him in both time periods.\n" "him in both time periods.\n"
"\n" "\n"
@ -3281,26 +3292,32 @@ void DrawRandoEditor(bool& open) {
"as child Link. Zora's Fountain starts open as adult.\n" "as child Link. Zora's Fountain starts open as adult.\n"
"\n" "\n"
"Open - King Zora has already mweeped out of the way in both " "Open - King Zora has already mweeped out of the way in both "
"time periods. Ruto's Letter is removed from the item pool."); "time periods. Ruto's Letter is removed from the item pool."
);
SohImGui::EnhancementCombobox("gRandomizeZorasFountain", randoZorasFountain, 3, 0); SohImGui::EnhancementCombobox("gRandomizeZorasFountain", randoZorasFountain, 3, 0);
PaddedSeparator(); PaddedSeparator();
// Gerudo Fortress // Gerudo Fortress
ImGui::Text(Settings::GerudoFortress.GetName().c_str()); ImGui::Text(Settings::GerudoFortress.GetName().c_str());
InsertHelpHoverText("Sets the amount of carpenters required to repair the bridge " InsertHelpHoverText(
"Sets the amount of carpenters required to repair the bridge "
"in Gerudo Valley.\n" "in Gerudo Valley.\n"
"\n" "\n"
"Normal - All 4 carpenters are required to be saved.\n" "Normal - All 4 carpenters are required to be saved.\n"
"\n" "\n"
"Fast - Only the bottom left carpenter requires rescuing.\n" "Fast - Only the bottom left carpenter requires rescuing.\n"
"\n" "\n"
"Open - The bridge is repaired from the start."); "Open - The bridge is repaired from the start."
);
SohImGui::EnhancementCombobox("gRandomizeGerudoFortress", randoGerudoFortress, 3, 0); SohImGui::EnhancementCombobox("gRandomizeGerudoFortress", randoGerudoFortress, 3, 0);
PaddedSeparator(); PaddedSeparator();
// Rainbow Bridge // Rainbow Bridge
ImGui::Text(Settings::Bridge.GetName().c_str()); ImGui::Text(Settings::Bridge.GetName().c_str());
InsertHelpHoverText("Alters the requirements to open the bridge to Ganon's Castle.\n" InsertHelpHoverText(
"Alters the requirements to open the bridge to Ganon's Castle.\n"
"\n" "\n"
"Vanilla - Obtain the Shadow Medallion, Spirit Medallion and Light Arrows.\n" "Vanilla - Obtain the Shadow Medallion, Spirit Medallion and Light Arrows.\n"
"\n" "\n"
@ -3317,7 +3334,9 @@ void DrawRandoEditor(bool& open) {
"are considered complete after stepping in to the blue warp after " "are considered complete after stepping in to the blue warp after "
"the boss.\n" "the boss.\n"
"\n" "\n"
"Tokens - Obtain the specified amount of Skulltula tokens."); "Tokens - Obtain the specified amount of Skulltula tokens."
);
SohImGui::EnhancementCombobox("gRandomizeRainbowBridge", randoRainbowBridge, 7, 0); SohImGui::EnhancementCombobox("gRandomizeRainbowBridge", randoRainbowBridge, 7, 0);
ImGui::PopItemWidth(); ImGui::PopItemWidth();
switch (CVar_GetS32("gRandomizeRainbowBridge", 0)) { switch (CVar_GetS32("gRandomizeRainbowBridge", 0)) {
@ -3351,6 +3370,7 @@ void DrawRandoEditor(bool& open) {
"gRandomizeTokenCount", 1, 100, "", 100, true); "gRandomizeTokenCount", 1, 100, "", 100, true);
break; break;
} }
PaddedSeparator(); PaddedSeparator();
// Random Ganon's Trials // Random Ganon's Trials
@ -3366,16 +3386,19 @@ void DrawRandoEditor(bool& open) {
RANDTODO: Switch back to slider when pre-completing some of Ganon's Trials is properly implemnted. RANDTODO: Switch back to slider when pre-completing some of Ganon's Trials is properly implemnted.
} }
*/ */
SohImGui::EnhancementCheckbox("Skip Ganon's Trials", "gRandomizeGanonTrialCount"); SohImGui::EnhancementCheckbox("Skip Ganon's Trials", "gRandomizeGanonTrialCount");
InsertHelpHoverText( InsertHelpHoverText(
"Sets whether or not Ganon's Castle Trials are required to enter Ganon's Tower."); "Sets whether or not Ganon's Castle Trials are required to enter Ganon's Tower."
} );
ImGui::EndChild();
// COLUMN 2 - Shuffle Settings // COLUMN 2 - Shuffle Settings
ImGui::TableNextColumn(); ImGui::TableNextColumn();
window->DC.CurrLineTextBaseOffset = 0.0f; window->DC.CurrLineTextBaseOffset = 0.0f;
ImGui::BeginChild("ChildShuffleSettings", ImVec2(0,-8));
ImGui::PushItemWidth(-FLT_MIN); ImGui::PushItemWidth(-FLT_MIN);
if (CVar_GetS32("gRandomizeAllShuffleSettings", 0) != 1) {
// Shuffle Songs // Shuffle Songs
ImGui::Text(Settings::ShuffleSongs.GetName().c_str()); ImGui::Text(Settings::ShuffleSongs.GetName().c_str());
@ -3392,6 +3415,7 @@ void DrawRandoEditor(bool& open) {
"Anywhere - Songs can appear at any location."); "Anywhere - Songs can appear at any location.");
SohImGui::EnhancementCombobox("gRandomizeShuffleSongs", randoShuffleSongs, 3, 0); SohImGui::EnhancementCombobox("gRandomizeShuffleSongs", randoShuffleSongs, 3, 0);
PaddedSeparator(); PaddedSeparator();
// Shuffle Scrubs // Shuffle Scrubs
@ -3406,11 +3430,13 @@ void DrawRandoEditor(bool& open) {
"Random - Scrubs will be shuffled and their item will cost will be between 0-95 rupees.\n" "Random - Scrubs will be shuffled and their item will cost will be between 0-95 rupees.\n"
); );
SohImGui::EnhancementCombobox("gRandomizeShuffleScrubs", randoShuffleScrubs, 4, 0); SohImGui::EnhancementCombobox("gRandomizeShuffleScrubs", randoShuffleScrubs, 4, 0);
PaddedSeparator(); PaddedSeparator();
// Shuffle Tokens // Shuffle Tokens
ImGui::Text(Settings::Tokensanity.GetName().c_str()); ImGui::Text(Settings::Tokensanity.GetName().c_str());
InsertHelpHoverText("Shuffles Golden Skulltula Tokens into the item pool. This means " InsertHelpHoverText(
"Shuffles Golden Skulltula Tokens into the item pool. This means "
"Golden Skulltulas can contain other items as well.\n" "Golden Skulltulas can contain other items as well.\n"
"\n" "\n"
"Off - GS tokens will not be shuffled.\n" "Off - GS tokens will not be shuffled.\n"
@ -3419,15 +3445,19 @@ void DrawRandoEditor(bool& open) {
"\n" "\n"
"Overworld - Only shuffle GS tokens that are outside of dungeons.\n" "Overworld - Only shuffle GS tokens that are outside of dungeons.\n"
"\n" "\n"
"All Tokens - Shuffle all 100 GS tokens."); "All Tokens - Shuffle all 100 GS tokens."
);
SohImGui::EnhancementCombobox("gRandomizeShuffleTokens", randoShuffleTokens, 4, 0); SohImGui::EnhancementCombobox("gRandomizeShuffleTokens", randoShuffleTokens, 4, 0);
PaddedSeparator(); PaddedSeparator();
SohImGui::EnhancementCheckbox("Nighttime GS expect Sun's Song", "gRandomizeGsExpectSunsSong"); SohImGui::EnhancementCheckbox("Nighttime GS expect Sun's Song", "gRandomizeGsExpectSunsSong");
InsertHelpHoverText("All Golden Skulltulas that require nighttime to appear will only be " InsertHelpHoverText(
"expected to be collected after getting Sun's Song."); "All Golden Skulltulas that require nighttime to appear will only be "
PaddedSeparator(); "expected to be collected after getting Sun's Song."
);
PaddedSeparator();
// Shuffle Cows // Shuffle Cows
SohImGui::EnhancementCheckbox(Settings::ShuffleCows.GetName().c_str(), "gRandomizeShuffleCows"); SohImGui::EnhancementCheckbox(Settings::ShuffleCows.GetName().c_str(), "gRandomizeShuffleCows");
@ -3437,23 +3467,28 @@ void DrawRandoEditor(bool& open) {
// Shuffle Adult Trade Quest // Shuffle Adult Trade Quest
SohImGui::EnhancementCheckbox(Settings::ShuffleAdultTradeQuest.GetName().c_str(), SohImGui::EnhancementCheckbox(Settings::ShuffleAdultTradeQuest.GetName().c_str(),
"gRandomizeShuffleAdultTrade"); "gRandomizeShuffleAdultTrade");
InsertHelpHoverText("Adds all of the adult trade quest items into the pool, each of which " InsertHelpHoverText(
"Adds all of the adult trade quest items into the pool, each of which "
"can be traded for a unique reward.\n" "can be traded for a unique reward.\n"
"\n" "\n"
"You will be able to choose which of your owned adult trade items is visible " "You will be able to choose which of your owned adult trade items is visible "
"in the inventory by selecting the item with A and using the control stick or " "in the inventory by selecting the item with A and using the control stick or "
"D-pad.\n" "D-pad.\n"
"\n" "\n"
"If disabled, only the Claim Check will be found in the pool."); "If disabled, only the Claim Check will be found in the pool."
);
PaddedSeparator(); PaddedSeparator();
if (CVar_GetS32("gRandomizeStartingKokiriSword", 0) == 0) { if (CVar_GetS32("gRandomizeStartingKokiriSword", 0) == 0) {
// Shuffle Kokiri Sword // Shuffle Kokiri Sword
SohImGui::EnhancementCheckbox(Settings::ShuffleKokiriSword.GetName().c_str(), SohImGui::EnhancementCheckbox(Settings::ShuffleKokiriSword.GetName().c_str(),
"gRandomizeShuffleKokiriSword"); "gRandomizeShuffleKokiriSword");
InsertHelpHoverText("Shuffles the Kokiri Sword into the item pool.\n" InsertHelpHoverText(
"Shuffles the Kokiri Sword into the item pool.\n"
"\n" "\n"
"This will require the use of sticks until the Kokiri Sword is found."); "This will require the use of sticks until the Kokiri Sword is found."
);
PaddedSeparator(); PaddedSeparator();
} }
@ -3486,7 +3521,8 @@ void DrawRandoEditor(bool& open) {
} }
ImGui::PopItemFlag(); ImGui::PopItemFlag();
} }
InsertHelpHoverText("Shuffles the Weird Egg from Malon in to the item pool. Enabling " InsertHelpHoverText(
"Shuffles the Weird Egg from Malon in to the item pool. Enabling "
"\"Skip Child Zelda\" disables this feature.\n" "\"Skip Child Zelda\" disables this feature.\n"
"\n" "\n"
"The Weird Egg is required to unlock several events:\n" "The Weird Egg is required to unlock several events:\n"
@ -3494,32 +3530,41 @@ void DrawRandoEditor(bool& open) {
" - Saria's song in Sacred Forest Meadow\n" " - Saria's song in Sacred Forest Meadow\n"
" - Epona's song and chicken minigame at Lon Lon Ranch\n" " - Epona's song and chicken minigame at Lon Lon Ranch\n"
" - Zelda's letter for Kakariko gate (if set to closed)\n" " - Zelda's letter for Kakariko gate (if set to closed)\n"
" - Happy Mask Shop sidequest\n"); " - Happy Mask Shop sidequest\n"
);
PaddedSeparator(); PaddedSeparator();
// Shuffle Gerudo Membership Card // Shuffle Gerudo Membership Card
SohImGui::EnhancementCheckbox(Settings::ShuffleGerudoToken.GetName().c_str(), SohImGui::EnhancementCheckbox(Settings::ShuffleGerudoToken.GetName().c_str(),
"gRandomizeShuffleGerudoToken"); "gRandomizeShuffleGerudoToken");
InsertHelpHoverText("Shuffles the Gerudo Membership Card into the item pool.\n" InsertHelpHoverText(
"Shuffles the Gerudo Membership Card into the item pool.\n"
"\n" "\n"
"The Gerudo Card is required to enter the Gerudo Training Grounds, opening " "The Gerudo Card is required to enter the Gerudo Training Grounds, opening "
"the gate to Haunted Wasteland and the Horseback Archery minigame."); "the gate to Haunted Wasteland and the Horseback Archery minigame."
);
PaddedSeparator(); PaddedSeparator();
// Shuffle Frog Song Rupees // Shuffle Frog Song Rupees
SohImGui::EnhancementCheckbox(Settings::ShuffleFrogSongRupees.GetName().c_str(), SohImGui::EnhancementCheckbox(Settings::ShuffleFrogSongRupees.GetName().c_str(),
"gRandomizeShuffleFrogSongRupees"); "gRandomizeShuffleFrogSongRupees");
InsertHelpHoverText("Shuffles 5 Purple Rupees into to the item pool, and allows\n" InsertHelpHoverText(
"Shuffles 5 Purple Rupees into to the item pool, and allows\n"
"you to earn items by playing songs at the Frog Choir.\n" "you to earn items by playing songs at the Frog Choir.\n"
"\n" "\n"
"This setting does not effect the item earned from playing\n" "This setting does not effect the item earned from playing\n"
"the Song of Storms and the frog song minigame."); "the Song of Storms and the frog song minigame."
} );
ImGui::PopItemWidth(); ImGui::PopItemWidth();
ImGui::EndChild();
// COLUMN 3 - Shuffle Dungeon Items // COLUMN 3 - Shuffle Dungeon Items
ImGui::TableNextColumn(); ImGui::TableNextColumn();
window->DC.CurrLineTextBaseOffset = 0.0f; window->DC.CurrLineTextBaseOffset = 0.0f;
ImGui::BeginChild("ChildShuffleDungeonItems", ImVec2(0, -8));
ImGui::PushItemWidth(-FLT_MIN); ImGui::PushItemWidth(-FLT_MIN);
// Shuffle Dungeon Rewards // Shuffle Dungeon Rewards
@ -3536,11 +3581,13 @@ void DrawRandoEditor(bool& open) {
"\n" "\n"
"Anywhere - Spiritual stones and medallions can appear anywhere."); "Anywhere - Spiritual stones and medallions can appear anywhere.");
SohImGui::EnhancementCombobox("gRandomizeShuffleDungeonReward", randoShuffleDungeonRewards, 4, 0); SohImGui::EnhancementCombobox("gRandomizeShuffleDungeonReward", randoShuffleDungeonRewards, 4, 0);
PaddedSeparator(); PaddedSeparator();
// Maps & Compasses // Maps & Compasses
ImGui::Text(Settings::MapsAndCompasses.GetName().c_str()); ImGui::Text(Settings::MapsAndCompasses.GetName().c_str());
InsertHelpHoverText("Start with - You will start with Maps & Compasses from all dungeons.\n" InsertHelpHoverText(
"Start with - You will start with Maps & Compasses from all dungeons.\n"
"\n" "\n"
"Vanilla - Maps & Compasses will appear in their vanilla locations.\n" "Vanilla - Maps & Compasses will appear in their vanilla locations.\n"
"\n" "\n"
@ -3550,13 +3597,16 @@ void DrawRandoEditor(bool& open) {
"\n" "\n"
"Overworld - Maps & Compasses can only appear outside of dungeons.\n" "Overworld - Maps & Compasses can only appear outside of dungeons.\n"
"\n" "\n"
"Anywhere - Maps & Compasses can appear anywhere in the world."); "Anywhere - Maps & Compasses can appear anywhere in the world."
);
SohImGui::EnhancementCombobox("gRandomizeStartingMapsCompasses", randoShuffleMapsAndCompasses, 6, 2); SohImGui::EnhancementCombobox("gRandomizeStartingMapsCompasses", randoShuffleMapsAndCompasses, 6, 2);
PaddedSeparator(); PaddedSeparator();
// Keysanity // Keysanity
ImGui::Text(Settings::Keysanity.GetName().c_str()); ImGui::Text(Settings::Keysanity.GetName().c_str());
InsertHelpHoverText("Start with - You will start with all Small Keys from all dungeons.\n" InsertHelpHoverText(
"Start with - You will start with all Small Keys from all dungeons.\n"
"\n" "\n"
"Vanilla - Small Keys will appear in their vanilla locations.\n" "Vanilla - Small Keys will appear in their vanilla locations.\n"
"\n" "\n"
@ -3566,25 +3616,31 @@ void DrawRandoEditor(bool& open) {
"\n" "\n"
"Overworld - Small Keys can only appear outside of dungeons.\n" "Overworld - Small Keys can only appear outside of dungeons.\n"
"\n" "\n"
"Anywhere - Small Keys can appear anywhere in the world."); "Anywhere - Small Keys can appear anywhere in the world."
);
SohImGui::EnhancementCombobox("gRandomizeKeysanity", randoShuffleSmallKeys, 6, 2); SohImGui::EnhancementCombobox("gRandomizeKeysanity", randoShuffleSmallKeys, 6, 2);
PaddedSeparator(); PaddedSeparator();
// Gerudo Keys // Gerudo Keys
ImGui::Text(Settings::GerudoKeys.GetName().c_str()); ImGui::Text(Settings::GerudoKeys.GetName().c_str());
InsertHelpHoverText("Vanilla - Thieve's Hideout Keys will appear in their vanilla locations.\n" InsertHelpHoverText(
"Vanilla - Thieve's Hideout Keys will appear in their vanilla locations.\n"
"\n" "\n"
"Any dungeon - Thieve's Hideout Keys can only appear inside of any dungon.\n" "Any dungeon - Thieve's Hideout Keys can only appear inside of any dungon.\n"
"\n" "\n"
"Overworld - Thieve's Hideout Keys can only appear outside of dungeons.\n" "Overworld - Thieve's Hideout Keys can only appear outside of dungeons.\n"
"\n" "\n"
"Anywhere - Thieve's Hideout Keys can appear anywhere in the world."); "Anywhere - Thieve's Hideout Keys can appear anywhere in the world."
);
SohImGui::EnhancementCombobox("gRandomizeGerudoKeys", randoShuffleGerudoFortressKeys, 4, 0); SohImGui::EnhancementCombobox("gRandomizeGerudoKeys", randoShuffleGerudoFortressKeys, 4, 0);
PaddedSeparator(); PaddedSeparator();
// Boss Keysanity // Boss Keysanity
ImGui::Text(Settings::BossKeysanity.GetName().c_str()); ImGui::Text(Settings::BossKeysanity.GetName().c_str());
InsertHelpHoverText("Start with - You will start with Boss keys from all dungeons.\n" InsertHelpHoverText(
"Start with - You will start with Boss keys from all dungeons.\n"
"\n" "\n"
"Vanilla - Boss Keys will appear in their vanilla locations.\n" "Vanilla - Boss Keys will appear in their vanilla locations.\n"
"\n" "\n"
@ -3594,13 +3650,16 @@ void DrawRandoEditor(bool& open) {
"\n" "\n"
"Overworld - Boss Keys can only appear outside of dungeons.\n" "Overworld - Boss Keys can only appear outside of dungeons.\n"
"\n" "\n"
"Anywhere - Boss Keys can appear anywhere in the world."); "Anywhere - Boss Keys can appear anywhere in the world."
);
SohImGui::EnhancementCombobox("gRandomizeBossKeysanity", randoShuffleBossKeys, 6, 2); SohImGui::EnhancementCombobox("gRandomizeBossKeysanity", randoShuffleBossKeys, 6, 2);
PaddedSeparator(); PaddedSeparator();
// Ganon's Boss Key // Ganon's Boss Key
ImGui::Text(Settings::GanonsBossKey.GetName().c_str()); ImGui::Text(Settings::GanonsBossKey.GetName().c_str());
InsertHelpHoverText("Vanilla - Ganon's Boss Key will appear in the vanilla location.\n" InsertHelpHoverText(
"Vanilla - Ganon's Boss Key will appear in the vanilla location.\n"
"\n" "\n"
"Own dungeon - Ganon's Boss Key can appear anywhere inside Ganon's Castle.\n" "Own dungeon - Ganon's Boss Key can appear anywhere inside Ganon's Castle.\n"
"\n" "\n"
@ -3610,10 +3669,12 @@ void DrawRandoEditor(bool& open) {
"\n" "\n"
"Overworld - Ganon's Boss Key Key can only appear outside of dungeons.\n" "Overworld - Ganon's Boss Key Key can only appear outside of dungeons.\n"
"\n" "\n"
"Anywhere - Ganon's Boss Key Key can appear anywhere in the world."); "Anywhere - Ganon's Boss Key Key can appear anywhere in the world."
);
SohImGui::EnhancementCombobox("gRandomizeShuffleGanonBossKey", randoShuffleGanonsBossKey, 6, 1); SohImGui::EnhancementCombobox("gRandomizeShuffleGanonBossKey", randoShuffleGanonsBossKey, 6, 1);
ImGui::PopItemWidth(); ImGui::PopItemWidth();
ImGui::EndChild();
ImGui::EndTable(); ImGui::EndTable();
} }
ImGui::PopStyleVar(1); ImGui::PopStyleVar(1);
@ -3634,17 +3695,20 @@ void DrawRandoEditor(bool& open) {
// COLUMN 1 - TIME SAVERS // COLUMN 1 - TIME SAVERS
ImGui::TableNextColumn(); ImGui::TableNextColumn();
window->DC.CurrLineTextBaseOffset = 0.0f; window->DC.CurrLineTextBaseOffset = 0.0f;
ImGui::BeginChild("ChildTimeSavers", ImVec2(0, -8));
// Cuccos to return // Cuccos to return
SohImGui::EnhancementSliderInt("Cuccos to return: %d", "##RandoCuccosToReturn", SohImGui::EnhancementSliderInt("Cuccos to return: %d", "##RandoCuccosToReturn",
"gRandomizeCuccosToReturn", 0, 7, "", 7, true); "gRandomizeCuccosToReturn", 0, 7, "", 7, true);
InsertHelpHoverText("The amount of cuccos needed to claim the reward from Anju the cucco lady"); InsertHelpHoverText("The amount of cuccos needed to claim the reward from Anju the cucco lady");
PaddedSeparator(); PaddedSeparator();
// Big Poe Target Count // Big Poe Target Count
SohImGui::EnhancementSliderInt("Big Poe Target Count: %d", "##RandoBigPoeTargetCount", SohImGui::EnhancementSliderInt("Big Poe Target Count: %d", "##RandoBigPoeTargetCount",
"gRandomizeBigPoeTargetCount", 1, 10, "", 10, true); "gRandomizeBigPoeTargetCount", 1, 10, "", 10, true);
InsertHelpHoverText("The Poe collector will give a reward for turning in this many Big Poes."); InsertHelpHoverText("The Poe collector will give a reward for turning in this many Big Poes.");
PaddedSeparator(); PaddedSeparator();
// Skip child stealth // Skip child stealth
@ -3697,17 +3761,23 @@ void DrawRandoEditor(bool& open) {
"The cutscenes of the Poes in Forest Temple and Darunia in Fire Temple will not be skipped. " "The cutscenes of the Poes in Forest Temple and Darunia in Fire Temple will not be skipped. "
"These cutscenes are only useful for glitched gameplay and can be safely skipped otherwise."); "These cutscenes are only useful for glitched gameplay and can be safely skipped otherwise.");
ImGui::EndChild();
// COLUMN 2 - WORLD SETTINGS // COLUMN 2 - WORLD SETTINGS
ImGui::TableNextColumn(); ImGui::TableNextColumn();
window->DC.CurrLineTextBaseOffset = 0.0f; window->DC.CurrLineTextBaseOffset = 0.0f;
ImGui::BeginChild("ChildWorldSettings", ImVec2(0, -8));
ImGui::PushItemWidth(-FLT_MIN); ImGui::PushItemWidth(-FLT_MIN);
ImGui::Text("Coming soon"); ImGui::Text("Coming soon");
ImGui::PopItemWidth(); ImGui::PopItemWidth();
ImGui::EndChild();
// COLUMN 3 - ITEM POOL & HINT SETTINGS // COLUMN 3 - ITEM POOL & HINT SETTINGS
ImGui::TableNextColumn(); ImGui::TableNextColumn();
window->DC.CurrLineTextBaseOffset = 0.0f; window->DC.CurrLineTextBaseOffset = 0.0f;
ImGui::BeginChild("ChildItemPoolHintSettings", ImVec2(0, -8));
ImGui::PushItemWidth(-FLT_MIN); ImGui::PushItemWidth(-FLT_MIN);
ImGui::Text(Settings::ItemPoolValue.GetName().c_str()); ImGui::Text(Settings::ItemPoolValue.GetName().c_str());
@ -3791,6 +3861,7 @@ void DrawRandoEditor(bool& open) {
} }
ImGui::PopItemWidth(); ImGui::PopItemWidth();
ImGui::EndChild();
ImGui::EndTable(); ImGui::EndTable();
} }
ImGui::PopStyleVar(1); ImGui::PopStyleVar(1);
@ -3924,31 +3995,40 @@ void DrawRandoEditor(bool& open) {
ImGui::TableNextColumn(); ImGui::TableNextColumn();
ImGui::PushItemWidth(170.0); ImGui::PushItemWidth(170.0);
ImGui::Text("Logic Rules"); ImGui::Text("Logic Rules");
InsertHelpHoverText("Glitchless - No glitches are required, but may require some minor tricks.\n" InsertHelpHoverText(
"Glitchless - No glitches are required, but may require some minor tricks.\n"
"\n" "\n"
"No logic - Item placement is completely random. MAY BE IMPOSSIBLE TO BEAT."); "No logic - Item placement is completely random. MAY BE IMPOSSIBLE TO BEAT."
);
SohImGui::EnhancementCombobox("gRandomizeLogicRules", randoLogicRules, 2, 0); SohImGui::EnhancementCombobox("gRandomizeLogicRules", randoLogicRules, 2, 0);
ImGui::PopItemWidth(); ImGui::PopItemWidth();
ImGui::EndTable(); ImGui::EndTable();
} }
if (ImGui::BeginTable("tableRandoTricksGlitches", 2, ImGuiTableFlags_BordersH | ImGuiTableFlags_BordersV)) { if (ImGui::BeginTable("tableRandoTricksGlitches", 2, ImGuiTableFlags_BordersH | ImGuiTableFlags_BordersV)) {
ImGui::TableSetupColumn("Enable Tricks", ImGuiTableColumnFlags_WidthStretch, 200.0f); ImGui::TableSetupColumn("Disabled", ImGuiTableColumnFlags_WidthStretch, 200.0f);
ImGui::TableSetupColumn("Enable Glitches", ImGuiTableColumnFlags_WidthStretch, 200.0f); ImGui::TableSetupColumn("Enabled", ImGuiTableColumnFlags_WidthStretch, 200.0f);
ImGui::PushItemFlag(ImGuiItemFlags_Disabled, true); ImGui::PushItemFlag(ImGuiItemFlags_Disabled, true);
ImGui::TableHeadersRow(); ImGui::TableHeadersRow();
ImGui::PopItemFlag(); ImGui::PopItemFlag();
ImGui::TableNextRow(); ImGui::TableNextRow();
// COLUMN 1 - ENABLE TRICKS // COLUMN 1 - DISABLED TRICKS AND GLITCHES
ImGui::TableNextColumn(); ImGui::TableNextColumn();
window->DC.CurrLineTextBaseOffset = 0.0f; window->DC.CurrLineTextBaseOffset = 0.0f;
ImGui::BeginChild("ChildTricksGlitchesDisabled", ImVec2(0, -8));
ImGui::Text("Coming soon"); ImGui::Text("Coming soon");
// COLUMN 2 - ENABLE GLITCHES ImGui::EndChild();
// COLUMN 2 - ENABLED TRICKS AND GLITCHES
ImGui::TableNextColumn(); ImGui::TableNextColumn();
window->DC.CurrLineTextBaseOffset = 0.0f; window->DC.CurrLineTextBaseOffset = 0.0f;
ImGui::BeginChild("ChildTricksGlitchesEnabled", ImVec2(0, -8));
ImGui::Text("Coming soon"); ImGui::Text("Coming soon");
ImGui::EndChild();
ImGui::EndTable(); ImGui::EndTable();
} }
ImGui::PopStyleVar(1); ImGui::PopStyleVar(1);
@ -3970,15 +4050,21 @@ void DrawRandoEditor(bool& open) {
// COLUMN 1 - STARTING EQUIPMENT // COLUMN 1 - STARTING EQUIPMENT
ImGui::TableNextColumn(); ImGui::TableNextColumn();
window->DC.CurrLineTextBaseOffset = 0.0f; window->DC.CurrLineTextBaseOffset = 0.0f;
ImGui::BeginChild("ChildStartingEquipment", ImVec2(0, -8));
SohImGui::EnhancementCheckbox(Settings::StartingKokiriSword.GetName().c_str(), SohImGui::EnhancementCheckbox(Settings::StartingKokiriSword.GetName().c_str(),
"gRandomizeStartingKokiriSword"); "gRandomizeStartingKokiriSword");
PaddedSeparator(); PaddedSeparator();
SohImGui::EnhancementCheckbox(Settings::StartingDekuShield.GetName().c_str(), SohImGui::EnhancementCheckbox(Settings::StartingDekuShield.GetName().c_str(),
"gRandomizeStartingDekuShield"); "gRandomizeStartingDekuShield");
ImGui::EndChild();
// COLUMN 2 - STARTING ITEMS // COLUMN 2 - STARTING ITEMS
ImGui::TableNextColumn(); ImGui::TableNextColumn();
window->DC.CurrLineTextBaseOffset = 0.0f; window->DC.CurrLineTextBaseOffset = 0.0f;
ImGui::BeginChild("ChildStartingItems", ImVec2(0, -8));
SohImGui::EnhancementCheckbox(Settings::StartingOcarina.GetName().c_str(), "gRandomizeStartingOcarina"); SohImGui::EnhancementCheckbox(Settings::StartingOcarina.GetName().c_str(), "gRandomizeStartingOcarina");
PaddedSeparator(); PaddedSeparator();
SohImGui::EnhancementCheckbox(Settings::StartingConsumables.GetName().c_str(), SohImGui::EnhancementCheckbox(Settings::StartingConsumables.GetName().c_str(),
@ -3987,11 +4073,16 @@ void DrawRandoEditor(bool& open) {
SohImGui::EnhancementCheckbox("Full Wallets", "gRandomizeFullWallets"); SohImGui::EnhancementCheckbox("Full Wallets", "gRandomizeFullWallets");
InsertHelpHoverText("Start with a full wallet. All wallet upgrades come filled with rupees."); InsertHelpHoverText("Start with a full wallet. All wallet upgrades come filled with rupees.");
ImGui::EndChild();
// COLUMN 3 - STARTING SONGS // COLUMN 3 - STARTING SONGS
ImGui::TableNextColumn(); ImGui::TableNextColumn();
window->DC.CurrLineTextBaseOffset = 0.0f; window->DC.CurrLineTextBaseOffset = 0.0f;
ImGui::BeginChild("ChildStartingSongs", ImVec2(0, -8));
ImGui::Text("Coming soon"); ImGui::Text("Coming soon");
ImGui::EndChild();
ImGui::EndTable(); ImGui::EndTable();
} }
ImGui::PopStyleVar(1); ImGui::PopStyleVar(1);