mirror of
https://github.com/HarbourMasters/Shipwright.git
synced 2025-08-14 10:37:17 -07:00
Automatically break long tooltip lines (#925)
* Remove manual newlines from the middle of sentences in tooltips and automatically break long lines instead * Move split functionality into header so randomizer tooltips can use it * Rewrite logic to be O(n) * Found another typo * Move helper function to libultraship to (hopefully) get Jenkins happy * Fix typo I made when fixing the typo before * Remove unneeded header * Parameterize line length in case variable line length is desired in the future
This commit is contained in:
parent
99ecccfaab
commit
7a45380123
6 changed files with 271 additions and 257 deletions
|
@ -1,10 +1,11 @@
|
|||
#include "ImGuiHelpers.h"
|
||||
#include "../../../../libultraship/libultraship/ImGuiImpl.h"
|
||||
|
||||
// Adds a text tooltip for the previous ImGui item
|
||||
void SetLastItemHoverText(const std::string& text) {
|
||||
if (ImGui::IsItemHovered()) {
|
||||
ImGui::BeginTooltip();
|
||||
ImGui::Text(text.c_str());
|
||||
ImGui::Text(SohImGui::BreakTooltip(text, 60).c_str());
|
||||
ImGui::EndTooltip();
|
||||
}
|
||||
}
|
||||
|
@ -15,7 +16,7 @@ void InsertHelpHoverText(const std::string& text) {
|
|||
ImGui::TextColored(ImVec4(0.7f, 0.7f, 0.7f, 1.0f), "?");
|
||||
if (ImGui::IsItemHovered()) {
|
||||
ImGui::BeginTooltip();
|
||||
ImGui::Text(text.c_str());
|
||||
ImGui::Text(SohImGui::BreakTooltip(text, 60).c_str());
|
||||
ImGui::EndTooltip();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1435,7 +1435,7 @@ void DrawPlayerTab() {
|
|||
InsertHelpHoverText("Link's speed along the Y plane. Caps at -20");
|
||||
|
||||
ImGui::InputScalar("Wall Height", ImGuiDataType_Float, &player->wallHeight);
|
||||
InsertHelpHoverText("\"height used to determine whether link can climb or grab a ledge at the top\"");
|
||||
InsertHelpHoverText("Height used to determine whether Link can climb or grab a ledge at the top");
|
||||
|
||||
ImGui::InputScalar("Invincibility Timer", ImGuiDataType_S8, &player->invincibilityTimer);
|
||||
InsertHelpHoverText("Can't take damage while this is nonzero");
|
||||
|
|
|
@ -3542,21 +3542,21 @@ void DrawRandoEditor(bool& open) {
|
|||
switch (CVar_GetS32("gRandomizeForest", 1)) {
|
||||
case 1:
|
||||
InsertHelpHoverText("Mido no longer blocks the path to the Deku Tree\n"
|
||||
"The Kokiri boy no longer blocks the path\nout of the forest.");
|
||||
"The Kokiri boy no longer blocks the path out of the forest.");
|
||||
break;
|
||||
case 2:
|
||||
InsertHelpHoverText(
|
||||
"The Kokiri boy no longer blocks the path out of the forest\nMido "
|
||||
"still blocks the path to the Deku\nTree, requiring the Kokiri Sword "
|
||||
"and a Deku Shield to\naccess the Deku Tree.");
|
||||
"still blocks the path to the Deku Tree, requiring the Kokiri Sword "
|
||||
"and a Deku Shield to access the Deku Tree.");
|
||||
break;
|
||||
case 0:
|
||||
InsertHelpHoverText(
|
||||
"Beating Deku Tree is logically required to leave\nthe forest area "
|
||||
"(Kokiri Forest / Loost Woods / Sacred\nForest Meadow / Deku Tree) "
|
||||
"while the Kokiri Sword\nand a Deku Shield are required to access the "
|
||||
"Deku\nTree Items needed for this will be guaranteed\ninside the "
|
||||
"forest area.\nThis settins is incompatible with starting as adult.");
|
||||
"Beating Deku Tree is logically required to leave the forest area "
|
||||
"(Kokiri Forest / Lost Woods / Sacred Forest Meadow / Deku Tree) "
|
||||
"while the Kokiri Sword and a Deku Shield are required to access the "
|
||||
"Deku Tree\nItems needed for this will be guaranteed inside the "
|
||||
"forest area.\nThis setting is incompatible with starting as adult.");
|
||||
break;
|
||||
}
|
||||
SohImGui::EnhancementCombobox("gRandomizeForest", randoForest, 3, 1);
|
||||
|
@ -3566,13 +3566,13 @@ void DrawRandoEditor(bool& open) {
|
|||
switch (CVar_GetS32("gRandomizeKakarikoGate", 0)) {
|
||||
case 0:
|
||||
InsertHelpHoverText(
|
||||
"The gate and the Happy Mask Shop both remain\nclosed until showing "
|
||||
"Zelda's Letter to the guard\nin Kakariko.");
|
||||
"The gate and the Happy Mask Shop both remain closed until showing "
|
||||
"Zelda's Letter to the guard in Kakariko.");
|
||||
break;
|
||||
case 1:
|
||||
InsertHelpHoverText(
|
||||
"The gate is always open instead of needing\nZelda's Letter.\nThe Happy Mask Shop "
|
||||
"opens upon obtaining \n Zelda's Letter without needing to show\nit to the guard.");
|
||||
"The gate is always open instead of needing Zelda's Letter.\nThe Happy Mask Shop "
|
||||
"opens upon obtaining Zelda's Letter without needing to show it to the guard.");
|
||||
break;
|
||||
}
|
||||
SohImGui::EnhancementCombobox("gRandomizeKakarikoGate", randoKakarikoGate, 2, 1);
|
||||
|
@ -3583,16 +3583,16 @@ void DrawRandoEditor(bool& open) {
|
|||
switch (CVar_GetS32("gRandomizeDoorOfTime", 0)) {
|
||||
case 0:
|
||||
InsertHelpHoverText(
|
||||
"The Door of Time starts opened instead of needing\nto play the Song of Time.");
|
||||
"The Door of Time starts opened instead of needing to play the Song of Time.");
|
||||
break;
|
||||
case 1:
|
||||
InsertHelpHoverText(
|
||||
"Only an Ocarina and the Song of Time need to be\nfound to open the Door of Time.");
|
||||
"Only an Ocarina and the Song of Time need to be found to open the Door of Time.");
|
||||
break;
|
||||
case 2:
|
||||
InsertHelpHoverText(
|
||||
"The Ocarina of Time, the Song of Time and\nall Spiritual Stones need to "
|
||||
"be found to\nopen the Door of Time.");
|
||||
"The Ocarina of Time, the Song of Time and all Spiritual Stones need to "
|
||||
"be found to open the Door of Time.");
|
||||
break;
|
||||
}
|
||||
SohImGui::EnhancementCombobox("gRandomizeDoorOfTime", randoDoorOfTime, 3, 0);
|
||||
|
@ -3604,17 +3604,17 @@ void DrawRandoEditor(bool& open) {
|
|||
case 0:
|
||||
InsertHelpHoverText(
|
||||
"King Zora obstructs the way to Zora's Fountain.\nRuto's Letter must be "
|
||||
"shown as child in order to\nmove him from both eras.");
|
||||
"shown as child in order to move him from both eras.");
|
||||
break;
|
||||
case 1:
|
||||
InsertHelpHoverText(
|
||||
"King Zora is always moved in the adult era.\nThis means Ruto's Letter is "
|
||||
"only required to\naccess Zora's fountain as child.");
|
||||
"only required to access Zora's fountain as child.");
|
||||
break;
|
||||
case 2:
|
||||
InsertHelpHoverText(
|
||||
"King Zora starts as moved in both the child and\nadult eras.\nThis also "
|
||||
"removes Ruto's Letter from the\npool since it can't be used.");
|
||||
"King Zora starts as moved in both the child and adult eras.\nThis also "
|
||||
"removes Ruto's Letter from the pool since it can't be used.");
|
||||
break;
|
||||
}
|
||||
SohImGui::EnhancementCombobox("gRandomizeZorasFountain", randoZorasFountain, 3, 0);
|
||||
|
@ -3631,9 +3631,9 @@ void DrawRandoEditor(bool& open) {
|
|||
break;
|
||||
case 2:
|
||||
InsertHelpHoverText(
|
||||
"The carpenters are rescued from the start of the\ngame and if \"Shuffle "
|
||||
"Gerudo Card\" is disabled,\nthe player starts with the Gerudo Card in "
|
||||
"the\ninventory allowing access to Gerudo Training\nGrounds.");
|
||||
"The carpenters are rescued from the start of the game and if \"Shuffle "
|
||||
"Gerudo Card\" is disabled, the player starts with the Gerudo Card in "
|
||||
"the inventory allowing access to Gerudo Training Grounds.");
|
||||
break;
|
||||
}
|
||||
SohImGui::EnhancementCombobox("gRandomizeGerudoFortress", randoGerudoFortress, 3, 1);
|
||||
|
@ -3644,41 +3644,40 @@ void DrawRandoEditor(bool& open) {
|
|||
SohImGui::EnhancementCombobox("gRandomizeRainbowBridge", randoRainbowBridge, 7, 3);
|
||||
switch (CVar_GetS32("gRandomizeRainbowBridge", 3)) {
|
||||
case 1:
|
||||
InsertHelpHoverText("The Rainbow Bridge requires Shadow and Spirit\nMedallions as well "
|
||||
InsertHelpHoverText("The Rainbow Bridge requires Shadow and Spirit Medallions as well "
|
||||
"as Light Arrows.");
|
||||
break;
|
||||
case 2:
|
||||
InsertHelpHoverText("The Rainbow Bridge requires collecting a\nconfigurable number of "
|
||||
InsertHelpHoverText("The Rainbow Bridge requires collecting a configurable number of "
|
||||
"Spiritual Stones.");
|
||||
SohImGui::EnhancementSliderInt("Stone Count: %d", "##RandoStoneCount",
|
||||
"gRandomizeStoneCount", 0, 3, "");
|
||||
SetLastItemHoverText(
|
||||
"Sets the number of Spiritual Stones required to\nspawn the Rainbow Bridge.");
|
||||
"Sets the number of Spiritual Stones required to spawn the Rainbow Bridge.");
|
||||
break;
|
||||
case 3:
|
||||
SohImGui::EnhancementSliderInt("Medallion Count: %d", "##RandoMedallionCount",
|
||||
"gRandomizeMedallionCount", 0, 6, "", 6);
|
||||
SetLastItemHoverText(
|
||||
"The Rainbow Bridge requires collecting a\nconfigurable number of Medallions.");
|
||||
"The Rainbow Bridge requires collecting a configurable number of Medallions.");
|
||||
break;
|
||||
case 4:
|
||||
SohImGui::EnhancementSliderInt("Reward Count: %d", "##RandoRewardCount",
|
||||
"gRandomizeRewardCount", 0, 9, "");
|
||||
SetLastItemHoverText("The Rainbow Bridge requires collecting a\nconfigurable number of "
|
||||
SetLastItemHoverText("The Rainbow Bridge requires collecting a configurable number of "
|
||||
"Dungeon Rewards.");
|
||||
break;
|
||||
case 5:
|
||||
SohImGui::EnhancementSliderInt("Dungeon Count: %d", "##RandoDungeonCount",
|
||||
"gRandomizeDungeonCount", 0, 8, "");
|
||||
SetLastItemHoverText(
|
||||
"The Rainbow Bridge requires completing a\nconfigurable number of "
|
||||
"Dungeons.\n\nDungeons "
|
||||
"are considered complete when Link steps\ninto the blue warp at the end of them.");
|
||||
"The Rainbow Bridge requires completing a configurable number of Dungeons.\nDungeons "
|
||||
"are considered complete when Link steps into the blue warp at the end of them.");
|
||||
break;
|
||||
case 6:
|
||||
SohImGui::EnhancementSliderInt("Token Count: %d", "##RandoTokenCount",
|
||||
"gRandomizeTokenCount", 0, 100, "");
|
||||
SetLastItemHoverText("The Rainbow Bridge requires collecting a\nconfigurable number of "
|
||||
SetLastItemHoverText("The Rainbow Bridge requires collecting a configurable number of "
|
||||
"Gold Skulltula Tokens.");
|
||||
break;
|
||||
}
|
||||
|
@ -3687,17 +3686,17 @@ void DrawRandoEditor(bool& open) {
|
|||
// Random Ganon's Trials
|
||||
/*
|
||||
ImGui::Text("Random Ganon's Trials");
|
||||
InsertHelpHoverText("Sets a random number or required trials to enter\nGanon's Tower.");
|
||||
InsertHelpHoverText("Sets a random number or required trials to enter Ganon's Tower.");
|
||||
SohImGui::EnhancementCombobox("gRandomizeGanonTrial", randoGanonsTrial, 2, 0);
|
||||
if (CVar_GetS32("gRandomizeGanonTrial", 0) == 0) {
|
||||
*/
|
||||
//SohImGui::EnhancementSliderInt("Ganon's Trial Count: %d", "##RandoTrialCount",
|
||||
// "gRandomizeGanonTrialCount", 0, 6, "");
|
||||
//InsertHelpHoverText("Set the number of trials required to enter\nGanon's Tower.");
|
||||
//InsertHelpHoverText("Set the number of trials required to enter Ganon's Tower.");
|
||||
// RANDTODO: Switch back to slider when pre-completing some of Ganon's Trials is properly implemnted.
|
||||
SohImGui::EnhancementCheckbox("Skip Ganon's Trials", "gRandomizeGanonTrialCount");
|
||||
InsertHelpHoverText(
|
||||
"Sets whether or not Ganon's Castle Trials are required\nto enter Ganon's Tower.");
|
||||
"Sets whether or not Ganon's Castle Trials are required to enter Ganon's Tower.");
|
||||
|
||||
// }
|
||||
ImGui::Separator();
|
||||
|
@ -3716,9 +3715,9 @@ void DrawRandoEditor(bool& open) {
|
|||
// Starting Age
|
||||
// ImGui::Text("Starting Age");
|
||||
// InsertHelpHoverText(
|
||||
// "Choose which age Link will start as.\n\nStarting as adult means you start with the "
|
||||
// "Master\nSword "
|
||||
// "in your inventory.\n\nOnly the child option is compatible with Closed\nForest.");
|
||||
// "Choose which age Link will start as.\nStarting as adult means you start with the "
|
||||
// "Master Sword in your inventory.\nOnly the child option is compatible with "
|
||||
// "Closed Forest.");
|
||||
// SohImGui::EnhancementCombobox("gRandomizeStartingAge", randoStartingAge, 3, 0);
|
||||
// ImGui::Separator();
|
||||
|
||||
|
@ -3726,31 +3725,26 @@ void DrawRandoEditor(bool& open) {
|
|||
// Shuffle Entrances
|
||||
// ImGui::Text("Shuffle Entrances");
|
||||
// InsertHelpHoverText("Shuffle where the entrances between areas lead to.\n"
|
||||
// "If turned on, select which kinds of entrances you\n"
|
||||
// "want shuffled in the options below. Note that some\n"
|
||||
// "types of entrances can have widly varying\ngeneration times.");
|
||||
// "If turned on, select which kinds of entrances you "
|
||||
// "want shuffled in the options below.\n Note that some "
|
||||
// "types of entrances can have widly varying generation times.");
|
||||
// SohImGui::EnhancementCombobox("gRandomizeShuffleEntrances", randoShuffleEntrances, 2, 0);
|
||||
// if (CVar_GetS32("gRandomizeShuffleEntrances", 0) == 1) {
|
||||
// ImGui::Indent();
|
||||
// ImGui::Text("Shuffle Dungeons Entrances");
|
||||
// InsertHelpHoverText(
|
||||
// "Shuffle the pool of dungeon entrances, including\nBottom of the Well, Ice caven and "
|
||||
// "Gerudo\n"
|
||||
// "Training Grounds However, Ganon's Caslte is not\nshuffled.\n\nAdditionally, the "
|
||||
// "entrance "
|
||||
// "of "
|
||||
// "Deku Tree, Fire\nTemple and Bottom of the Well are opened for both\nadult and child.");
|
||||
// "Shuffle the pool of dungeon entrances, including Bottom of the Well, Ice Cavern and "
|
||||
// "Gerudo Training Grounds\nGanon's Castle is not shuffled.\nAdditionally, the entrance "
|
||||
// "of Deku Tree, Fire Temple and Bottom of the Well are open for both adult and child.");
|
||||
// SohImGui::EnhancementCombobox("gRandomizeShuffleDungeonsEntrances",
|
||||
// randoShuffleDungeonsEntrances, 2, 0);
|
||||
// ImGui::Text("Shuffle Overworld Entrances");
|
||||
// InsertHelpHoverText(
|
||||
// "Shuffle the pool of Overworld entrances, which\ncorresponds to almost all loading "
|
||||
// "zones "
|
||||
// "between\nOverworld areas.\n\nSome entrances are unshuffled to avoid issues:\n- Hyrule "
|
||||
// "Castle "
|
||||
// "Courtyard and Garden entrance\n- Both Market Back Alley entrances\n- Gerudo Valley to "
|
||||
// "Lake "
|
||||
// "Hylia (unless entrances\nare decoupled).");
|
||||
// "Shuffle the pool of Overworld entrances, which corresponds to almost all loading "
|
||||
// "zones between Overworld areas.\nSome entrances are unshuffled to avoid issues:\n"
|
||||
// "- Hyrule Castle Courtyard and Garden entrance\n"
|
||||
// "- Both Market Back Alley entrances\n"
|
||||
// "- Gerudo Valley to Lake Hylia (unless entrances are decoupled)");
|
||||
// SohImGui::EnhancementCombobox("gRandomizeShuffleOverworldEntrances",
|
||||
// randoShuffleOverworldEntrances, 2, 0);
|
||||
// ImGui::Text("Shuffle Interiors Entrances");
|
||||
|
@ -3759,8 +3753,8 @@ void DrawRandoEditor(bool& open) {
|
|||
// randoShuffleInteriorsEntrances, 2, 0);
|
||||
// ImGui::Text("Shuffle Grottos Entrances");
|
||||
// InsertHelpHoverText(
|
||||
// "Shuffle the pool of grotto entrances, including\nall graves, small Fairy "
|
||||
// "fountains and the Lost\nWoods Stage.");
|
||||
// "Shuffle the pool of grotto entrances, including all graves, small Fairy "
|
||||
// "fountains and the Lost Woods Stage.");
|
||||
// SohImGui::EnhancementCombobox("gRandomizeShuffleGrottosEntrances",
|
||||
// randoShuffleGrottosEntrances, 2, 0);
|
||||
// ImGui::Unindent();
|
||||
|
@ -3771,9 +3765,8 @@ void DrawRandoEditor(bool& open) {
|
|||
// Bombchus in Logic
|
||||
// ImGui::Text("Bombchus in Logic");
|
||||
// InsertHelpHoverText(
|
||||
// "Bombchus are properly considered in logic.\nThey can be replenished in shops "
|
||||
// "or trough\nbombchu "
|
||||
// "drops, if those are enabled.\nBombchu Bowling is opened by bombchus.");
|
||||
// "Bombchus are properly considered in logic.\nThey can be replenished in shops or "
|
||||
// "through bombchu drops, if those are enabled.\nBombchu Bowling is opened by bombchus.");
|
||||
// SohImGui::EnhancementCombobox("gRandomizeBombchusInLogic", randoBombchusInLogic, 3, 0);
|
||||
// ImGui::Separator();
|
||||
|
||||
|
@ -3783,17 +3776,17 @@ void DrawRandoEditor(bool& open) {
|
|||
// switch (CVar_GetS32("gRandomizeAmmoDrops", 0)) {
|
||||
// case 0:
|
||||
// InsertHelpHoverText(
|
||||
// "Bombs, arrows, seeds, nuts, sticks and\nmagic jars appear as normal.\n"
|
||||
// "Bombs, arrows, seeds, nuts, sticks and magic jars appear as normal.\n"
|
||||
// "Bombchus can sometimes replace bomb drops.");
|
||||
// break;
|
||||
// case 1:
|
||||
// InsertHelpHoverText(
|
||||
// "All ammo drops will be replaced by blue rupees,\nexcept for Deku Sticks.\n"
|
||||
// "All ammo drops will be replaced by blue rupees, except for Deku Sticks.\n"
|
||||
// "Ammo upgrades will only refill ammo by 10 units.");
|
||||
// break;
|
||||
// case 2:
|
||||
// InsertHelpHoverText(
|
||||
// "Bombs, arrow, seeds, nuts, sticks and\nmagic jars appear as normal.");
|
||||
// "Bombs, arrow, seeds, nuts, sticks and magic jars appear as normal.");
|
||||
// break;
|
||||
// }
|
||||
// SohImGui::EnhancementCombobox("gRandomizeAmmoDrops", randoAmmoDrops, 3, 0);
|
||||
|
@ -3843,20 +3836,19 @@ void DrawRandoEditor(bool& open) {
|
|||
switch (CVar_GetS32("gRandomizeShuffleDungeonReward", 0)) {
|
||||
case 0:
|
||||
InsertHelpHoverText(
|
||||
"Medallions and Spiritual Stones will be given as\nrewards for beating "
|
||||
"dungeons.\n\nThis "
|
||||
"setting will force Link's Pocket to be a\nMedallion or a Spiritual Stone.");
|
||||
"Medallions and Spiritual Stones will be given as rewards for beating dungeons.\n"
|
||||
"This setting will force Link's Pocket to be a Medallion or a Spiritual Stone.");
|
||||
break;
|
||||
case 1:
|
||||
InsertHelpHoverText(
|
||||
"Medallions and Spiritual Stones can only appear\ninside of dungeons.");
|
||||
"Medallions and Spiritual Stones can only appear inside of dungeons.");
|
||||
break;
|
||||
case 2:
|
||||
InsertHelpHoverText(
|
||||
"Medallions and Spiritual Stones can only appear\noutside dungeons.");
|
||||
"Medallions and Spiritual Stones can only appear outside dungeons.");
|
||||
break;
|
||||
case 3:
|
||||
InsertHelpHoverText("Medallions and Spiritual Stones can appear\nanywhere.");
|
||||
InsertHelpHoverText("Medallions and Spiritual Stones can appear anywhere.");
|
||||
break;
|
||||
}
|
||||
SohImGui::EnhancementCombobox("gRandomizeShuffleDungeonReward", randoShuffleDungeonRewards, 4,
|
||||
|
@ -3869,16 +3861,16 @@ void DrawRandoEditor(bool& open) {
|
|||
// ImGui::Text("Link's Pocket");
|
||||
// switch (CVar_GetS32("gRandomizeLinksPocket", 0)) {
|
||||
// case 0:
|
||||
// InsertHelpHoverText("Link will start with a Dungeon Reward in his\ninventory.");
|
||||
// InsertHelpHoverText("Link will start with a Dungeon Reward in his inventory.");
|
||||
// break;
|
||||
// case 1:
|
||||
// InsertHelpHoverText("Link will receive a random advancement item at the\nbeginning "
|
||||
// InsertHelpHoverText("Link will receive a random advancement item at the beginning "
|
||||
// "of the playtrough.");
|
||||
// break;
|
||||
// case 2:
|
||||
// InsertHelpHoverText(
|
||||
// "Link will recieve a random item from the item pool\nat the beginning "
|
||||
// "of the playthrought.");
|
||||
// "Link will recieve a random item from the item pool at the beginning "
|
||||
// "of the playthrough.");
|
||||
// break;
|
||||
// case 3:
|
||||
// InsertHelpHoverText("Link will start with a very useful green rupee.");
|
||||
|
@ -3893,16 +3885,15 @@ void DrawRandoEditor(bool& open) {
|
|||
ImGui::Text("Shuffle Songs");
|
||||
switch (CVar_GetS32("gRandomizeShuffleSongs", 0)) {
|
||||
case 0:
|
||||
InsertHelpHoverText("Songs will only appear at locations that normally\nteach songs.");
|
||||
InsertHelpHoverText("Songs will only appear at locations that normally teach songs.");
|
||||
break;
|
||||
case 1:
|
||||
InsertHelpHoverText("Songs appear at the end of dungeons.\nFor major dungeons, they "
|
||||
"will be at the boss "
|
||||
"heart container location.\nThe remaining 4 songs are placed "
|
||||
"at:\n- Zelda's Lullaby "
|
||||
"location\n- Ice Cavern's Serenade of Water Location\n- Bottom of "
|
||||
"the Well's Lens of "
|
||||
"Truth Location\n- Gerudo Training Ground's Ice Arrow Location.");
|
||||
"will be at the boss heart container location.\nThe remaining 4 "
|
||||
"songs are placed at:\n- Zelda's Lullaby location\n"
|
||||
"- Ice Cavern's Serenade of Water Location\n"
|
||||
"- Bottom of the Well's Lens of Truth Location\n"
|
||||
"- Gerudo Training Ground's Ice Arrow Location.");
|
||||
break;
|
||||
case 2:
|
||||
InsertHelpHoverText("Songs can appear in any location");
|
||||
|
@ -3919,32 +3910,32 @@ void DrawRandoEditor(bool& open) {
|
|||
// InsertHelpHoverText("All shop items will be the same as vanilla.");
|
||||
// break;
|
||||
// case 1:
|
||||
// InsertHelpHoverText("Vanilla shop items will be shuffled among\ndifferent shops.");
|
||||
// InsertHelpHoverText("Vanilla shop items will be shuffled among different shops.");
|
||||
// break;
|
||||
// case 2:
|
||||
// InsertHelpHoverText(
|
||||
// "Vanilla shop items will be shuffled among different shops, and each "
|
||||
// "shop will contain\n1 non-vanilla shop item.");
|
||||
// "shop will contain 1 non-vanilla shop item.");
|
||||
// break;
|
||||
// case 3:
|
||||
// InsertHelpHoverText(
|
||||
// "Vanilla shop items will be shuffled among different shops, and each "
|
||||
// "shop will contain\n2 non-vanilla shop items.");
|
||||
// "shop will contain 2 non-vanilla shop items.");
|
||||
// break;
|
||||
// case 4:
|
||||
// InsertHelpHoverText(
|
||||
// "Vanilla shop items will be shuffled among different shops, and each "
|
||||
// "shop will contain\n3 non-vanilla shop items.");
|
||||
// "shop will contain 3 non-vanilla shop items.");
|
||||
// break;
|
||||
// case 5:
|
||||
// InsertHelpHoverText(
|
||||
// "Vanilla shop items will be shuffled among different shops, and each "
|
||||
// "shop will contain\n4 non-vanilla shop items.");
|
||||
// "shop will contain 4 non-vanilla shop items.");
|
||||
// break;
|
||||
// case 6:
|
||||
// InsertHelpHoverText(
|
||||
// "Vanilla shop items will be shuffled among different shops, and each "
|
||||
// "shop will contain\n1 to 4 non-vanilla shop items.");
|
||||
// "shop will contain 1 to 4 non-vanilla shop items.");
|
||||
// break;
|
||||
// }
|
||||
// SohImGui::EnhancementCombobox("gRandomizeShopsanity", randoShopsanity, 7, 0);
|
||||
|
@ -3959,16 +3950,15 @@ void DrawRandoEditor(bool& open) {
|
|||
// break;
|
||||
// case 1:
|
||||
// InsertHelpHoverText(
|
||||
// "This only shuffles 65 location that are\nwithing dungeons, increasing the value "
|
||||
// "of "
|
||||
// "most\ndungeons and making internal dungeon exploration\nmore diverse.");
|
||||
// "This only shuffles 65 location that are within dungeons, increasing the value "
|
||||
// "of most dungeons and making internal dungeon exploration more diverse.");
|
||||
// break;
|
||||
// case 2:
|
||||
// InsertHelpHoverText(
|
||||
// "This only shuffles the 65 locations that are\noutside of dungeons.");
|
||||
// "This only shuffles the 65 locations that are outside of dungeons.");
|
||||
// break;
|
||||
// case 3:
|
||||
// InsertHelpHoverText("Effectively adds 100 new locations for items to\nappear.");
|
||||
// InsertHelpHoverText("Effectively adds 100 new locations for items to appear.");
|
||||
// break;
|
||||
// }
|
||||
// SohImGui::EnhancementCombobox("gRandomizeTokensanity", randoTokensanity, 4, 0);
|
||||
|
@ -3980,15 +3970,15 @@ void DrawRandoEditor(bool& open) {
|
|||
// switch (CVar_GetS32("gRandomizeShuffleScrubs", 0)) {
|
||||
// case 0:
|
||||
// InsertHelpHoverText(
|
||||
// "Only the 3 Scrubs that give one-time items in the\nvanilla game (PoH, "
|
||||
// "Deku Nut capacity, and Deku\nStick capacity) will have random items.");
|
||||
// "Only the 3 Scrubs that give one-time items in the vanilla game (PoH, "
|
||||
// "Deku Nut capacity, and Deku Stick capacity) will have random items.");
|
||||
// break;
|
||||
// case 1:
|
||||
// InsertHelpHoverText("All Scrub prices will be reduced to 10 rupees each.");
|
||||
// break;
|
||||
// case 2:
|
||||
// InsertHelpHoverText("All Scrub prices will be their vanilla prices.\nThis will require "
|
||||
// "spending over 1000 rupees on\nSrubs.");
|
||||
// "spending over 1000 rupees on Scrubs.");
|
||||
// break;
|
||||
// case 3:
|
||||
// InsertHelpHoverText("All Scrub prices will be between 0 to 95 rupees.\nThis will on "
|
||||
|
@ -4002,16 +3992,16 @@ void DrawRandoEditor(bool& open) {
|
|||
// // Shuffle Cows
|
||||
// ImGui::Text("Shuffle Cows");
|
||||
// InsertHelpHoverText(
|
||||
// "Enabling this will let cows give you items upon\nperforming Epona's Song in "
|
||||
// "front of them. There\nare 9 cows.");
|
||||
// "Enabling this will let cows give you items upon performing Epona's Song in "
|
||||
// "front of them. There are 9 cows.");
|
||||
// SohImGui::EnhancementCombobox("gRandomizeShuffleCows", randoShuffleCows, 2, 0);
|
||||
// ImGui::Separator();
|
||||
|
||||
if(CVar_GetS32("gRandomizeStartingKokiriSword", 0) == 0) {
|
||||
// Shuffle Kokiri Sword
|
||||
ImGui::Text("Shuffle Kokiri Sword");
|
||||
InsertHelpHoverText("Enabling this shuffles the Kokiri Sword into the item pool.\n\nThis will "
|
||||
"require extensive use of sticks until\nthe sword is found.");
|
||||
InsertHelpHoverText("Enabling this shuffles the Kokiri Sword into the item pool.\nThis will "
|
||||
"require extensive use of sticks until the sword is found.");
|
||||
SohImGui::EnhancementCombobox("gRandomizeShuffleKokiriSword", randoShuffleKokiriSword, 2, 0);
|
||||
ImGui::Separator();
|
||||
}
|
||||
|
@ -4019,9 +4009,9 @@ void DrawRandoEditor(bool& open) {
|
|||
if(CVar_GetS32("gRandomizeStartingOcarina", 0) == 0) {
|
||||
// Shuffle Ocarinas
|
||||
ImGui::Text("Shuffle Ocarinas");
|
||||
InsertHelpHoverText("Enabling this shuffles the Fairy Ocarina and the\nOcarina of time into "
|
||||
"the item pool.\n\nThis "
|
||||
"will require finding an Ocarina before being\nable to play songs.");
|
||||
InsertHelpHoverText("Enabling this shuffles the Fairy Ocarina and the Ocarina of time into "
|
||||
"the item pool.\n"
|
||||
"This will require finding an Ocarina before being able to play songs.");
|
||||
SohImGui::EnhancementCombobox("gRandomizeShuffleOcarinas", randoShuffleOcarinas, 2, 0);
|
||||
ImGui::Separator();
|
||||
}
|
||||
|
@ -4031,11 +4021,11 @@ void DrawRandoEditor(bool& open) {
|
|||
// Shuffle Weird Egg
|
||||
ImGui::Text("Shuffle Weird Egg");
|
||||
InsertHelpHoverText(
|
||||
"Enabling this shuffles the Weird Egg from Malon\ninto the item pool.\nThis "
|
||||
"will require finding the Weird Egg to talk to\nZelda in Hyrule Castle which "
|
||||
"in turn locks\nrewards from Impa, Xaria, Malon and Talon as\nwell as the "
|
||||
"Happy Mask Sidequest. The Weird egg\nis also required for Zelda's Letter to "
|
||||
"unlock the\nKakariko Gate as child which can lock some\nprogression.");
|
||||
"Enabling this shuffles the Weird Egg from Malon into the item pool.\nThis "
|
||||
"will require finding the Weird Egg to talk to Zelda in Hyrule Castle which "
|
||||
"in turn unlocks rewards from Impa, Saria, Malon and Talon as well as the "
|
||||
"Happy Mask Sidequest.\nThe Weird egg is also required for Zelda's Letter to "
|
||||
"unlock the Kakariko Gate as child which can lock some progression.");
|
||||
SohImGui::EnhancementCombobox("gRandomizeShuffleWeirdEgg", randoShuffleWeirdEgg, 2, 0);
|
||||
ImGui::Separator();
|
||||
}
|
||||
|
@ -4043,16 +4033,16 @@ void DrawRandoEditor(bool& open) {
|
|||
// Shuffle Gerudo Membership Card
|
||||
ImGui::Text("Shuffle Gerudo Membership Card");
|
||||
InsertHelpHoverText(
|
||||
"Enabling this shuffles the Gerudo Membership Card into the\nitem pool.\n\nThe Gerudo "
|
||||
"Token is required to enter the Gerudo\nTraining Ground.");
|
||||
"Enabling this shuffles the Gerudo Membership Card into the item pool.\nThe Gerudo "
|
||||
"Token is required to enter the Gerudo Training Ground.");
|
||||
SohImGui::EnhancementCombobox("gRandomizeShuffleGerudoToken", randoShuffleGerudoToken, 2, 0);
|
||||
ImGui::Separator();
|
||||
|
||||
// todo implement magic bean 10 pack
|
||||
// // Shuffle Magic Beans
|
||||
// ImGui::Text("Shuffle Magic Beans");
|
||||
// InsertHelpHoverText("Enabling this adds a pack of 10 beans to the item\n"
|
||||
// "pool and changes the Magic Bean Salesman to sell a\n"
|
||||
// InsertHelpHoverText("Enabling this adds a pack of 10 beans to the item "
|
||||
// "pool and changes the Magic Bean Salesman to sell a "
|
||||
// "random item at a price of 60 rupees.");
|
||||
// SohImGui::EnhancementCombobox("gRandomizeShuffleMagicBeans", randoShuffleMagicBeans, 2, 0);
|
||||
// ImGui::Separator();
|
||||
|
@ -4062,13 +4052,13 @@ void DrawRandoEditor(bool& open) {
|
|||
// ImGui::Text("Shuffle Merchants");
|
||||
// if (CVar_GetS32("gRandomizeShuffleMerchants", 0) == 0) {
|
||||
// InsertHelpHoverText(
|
||||
// "Enabling this adds a Giant's Knife and a pack\nof Bombchus to the item "
|
||||
// "pool and changes both\nMediagoron and the Haunted Wasteland "
|
||||
// "Carpet\nSalesman to sell a random item once at the price\nof 200 rupees.");
|
||||
// "Enabling this adds a Giant's Knife and a pack of Bombchus to the item "
|
||||
// "pool and changes both Mediagoron and the Haunted Wasteland "
|
||||
// "Carpet Salesman to sell a random item once at the price of 200 rupees.");
|
||||
// } else if (CVar_GetS32("gRandomizeShuffleMerchants", 0) <= 2) {
|
||||
// InsertHelpHoverText(
|
||||
// "These hints will make Medigoron and the Carpet\nsalesman tell you which item they\'re "
|
||||
// "selling.\n\nThe Clearer Hints setting will affect how they\nrefer to the item.");
|
||||
// "These hints will make Medigoron and the Carpet salesman tell you which item they're "
|
||||
// "selling.\nThe Clearer Hints setting will affect how they refer to the item.");
|
||||
// }
|
||||
// SohImGui::EnhancementCombobox("gRandomizeShuffleMerchants", randoShuffleMerchants, 3, 0);
|
||||
// ImGui::Separator();
|
||||
|
@ -4077,13 +4067,10 @@ void DrawRandoEditor(bool& open) {
|
|||
// Shuffle Adult Trade
|
||||
// ImGui::Text("Shuffle Adult Trade");
|
||||
// InsertHelpHoverText(
|
||||
// "Enabling this adds all of the adult trade quest\nitems to the pool, each of which can be "
|
||||
// "traded\nfor a unique reward You will be able to choose\nwhich of your owner adult trade "
|
||||
// "items "
|
||||
// " "
|
||||
// "is visible\nin the inventory by selecting the item and using\nthe L and R buttons If "
|
||||
// "disabled "
|
||||
// "only the Claim\nCheck will be found in the pool.");
|
||||
// "Enabling this adds all of the adult trade quest items to the pool, each of which can be "
|
||||
// "traded for a unique reward.\nYou will be able to choose which of your adult trade items "
|
||||
// "are visible in the inventory by selecting the item and using the L and R buttons.\n"
|
||||
// "If disabled only the Claim Check will be found in the pool.");
|
||||
// SohImGui::EnhancementCombobox("gRandomizeShuffleAdultTrade", randoShuffleAdultTrade, 2, 0);
|
||||
}
|
||||
ImGui::PopItemWidth();
|
||||
|
@ -4114,26 +4101,26 @@ void DrawRandoEditor(bool& open) {
|
|||
// ImGui::Text("Maps / Compasses");
|
||||
// switch (CVar_GetS32("gRandomizeShuffleMapsAndCompasses", 0)) {
|
||||
// case 0:
|
||||
// InsertHelpHoverText("Maps and Compasses can only appear in their repsective dungeon.");
|
||||
// InsertHelpHoverText("Maps and Compasses can only appear in their respective dungeon.");
|
||||
// break;
|
||||
// case 1:
|
||||
// InsertHelpHoverText(
|
||||
// "Maps and Compasses can only appear in a dungeon\nbut not necessarily the "
|
||||
// "Maps and Compasses can only appear in a dungeon but not necessarily the "
|
||||
// "dungeon they are for.");
|
||||
// break;
|
||||
// case 2:
|
||||
// InsertHelpHoverText("Maps and Compasses can only appear outside of\ndungeons.");
|
||||
// InsertHelpHoverText("Maps and Compasses can only appear outside of dungeons.");
|
||||
// break;
|
||||
// case 3:
|
||||
// InsertHelpHoverText("Maps and Compasses can appear anywhere in the\nworld.");
|
||||
// InsertHelpHoverText("Maps and Compasses can appear anywhere in the world.");
|
||||
// break;
|
||||
// case 4:
|
||||
// InsertHelpHoverText(
|
||||
// "Maps and Compasses are given to you from the start.\nThis will add a "
|
||||
// "small amount of money and\nrefill items to the pool.");
|
||||
// "small amount of money and refill items to the pool.");
|
||||
// break;
|
||||
// case 5:
|
||||
// InsertHelpHoverText("Maps and Compasses will appear in their vanilla\nlocations.");
|
||||
// InsertHelpHoverText("Maps and Compasses will appear in their vanilla locations.");
|
||||
// break;
|
||||
// }
|
||||
// SohImGui::EnhancementCombobox("gRandomizeShuffleMapsAndCompasses", randoShuffleMapsAndCompasses,
|
||||
|
@ -4145,28 +4132,28 @@ void DrawRandoEditor(bool& open) {
|
|||
// ImGui::Text("Small Keys");
|
||||
// switch (CVar_GetS32("gRandomizeShuffleSmallKeys", 0)) {
|
||||
// case 0:
|
||||
// InsertHelpHoverText("Small Keys can only appear in their respective\ndungeon.");
|
||||
// InsertHelpHoverText("Small Keys can only appear in their respective dungeon.");
|
||||
// break;
|
||||
// case 1:
|
||||
// InsertHelpHoverText(
|
||||
// "Small Keys can only appear inside of any dungon,\nbut won't necessarily "
|
||||
// "be in the dungeon that the\nkey is for.\nA difficult mode since it is "
|
||||
// "more likely\nto need to enter a dungeon multiple times.");
|
||||
// "Small Keys can only appear inside of any dungon, but won't necessarily "
|
||||
// "be in the dungeon that the key is for.\nA difficult mode since it is "
|
||||
// "more likely to need to enter a dungeon multiple times.");
|
||||
// break;
|
||||
// case 2:
|
||||
// InsertHelpHoverText(
|
||||
// "Small Keys can only appear outside of dungeons.\nYou may need to enter a "
|
||||
// "dungeon multiple times to\ngain items to access the overworld locations "
|
||||
// "with\nthe keys required to finish a dungeon.");
|
||||
// "dungeon multiple times to gain items to access the overworld locations "
|
||||
// "with the keys required to finish a dungeon.");
|
||||
// break;
|
||||
// case 3:
|
||||
// InsertHelpHoverText(
|
||||
// "Small Keys can appear anywhere in the world.\nA difficult mode since it "
|
||||
// "is more likely to need to\nenter a dungeon multiple times.");
|
||||
// "is more likely to need to enter a dungeon multiple times.");
|
||||
// break;
|
||||
// case 4:
|
||||
// InsertHelpHoverText(
|
||||
// "Small Keys are given to you from the start so you\nwon't have to worry "
|
||||
// "Small Keys are given to you from the start so you won't have to worry "
|
||||
// "about locked doors.\nAn easier mode.");
|
||||
// break;
|
||||
// case 5:
|
||||
|
@ -4182,18 +4169,17 @@ void DrawRandoEditor(bool& open) {
|
|||
// switch (CVar_GetS32("gRandomizeShuffleGerudoFortressKeys", 0)) {
|
||||
// case 0:
|
||||
// InsertHelpHoverText(
|
||||
// "Gerudo Fortress Keys will appear in their vanilla\nlocation dropping "
|
||||
// "from fighting Gerudo "
|
||||
// "guard\nthat attack when trying to free the jailed\ncarpenters.");
|
||||
// "Gerudo Fortress Keys will appear in their vanilla location dropping from "
|
||||
// "fighting Gerudo guards that attack when trying to free the jailed carpenters.");
|
||||
// break;
|
||||
// case 1:
|
||||
// InsertHelpHoverText("Gerudo Fortress Keys can only appear inside of\ndungeons.");
|
||||
// InsertHelpHoverText("Gerudo Fortress Keys can only appear inside of dungeons.");
|
||||
// break;
|
||||
// case 2:
|
||||
// InsertHelpHoverText("Gerudo Fortress Keys can only appear outside of\ndungeons.");
|
||||
// InsertHelpHoverText("Gerudo Fortress Keys can only appear outside of dungeons.");
|
||||
// break;
|
||||
// case 3:
|
||||
// InsertHelpHoverText("Gerudo Fortress Keys can appear anywhere in the\nworld.");
|
||||
// InsertHelpHoverText("Gerudo Fortress Keys can appear anywhere in the world.");
|
||||
// break;
|
||||
// }
|
||||
// SohImGui::EnhancementCombobox("gRandomizeShuffleGerudoFortressKeys",
|
||||
|
@ -4205,28 +4191,27 @@ void DrawRandoEditor(bool& open) {
|
|||
// ImGui::Text("Boss Keys");
|
||||
// switch (CVar_GetS32("gRandomizeShuffleBossKeys", 0)) {
|
||||
// case 0:
|
||||
// InsertHelpHoverText("Boss Keys can only appear in their respective\ndungeons.");
|
||||
// InsertHelpHoverText("Boss Keys can only appear in their respective dungeons.");
|
||||
// break;
|
||||
// case 1:
|
||||
// InsertHelpHoverText(
|
||||
// "Boss Keys can only appear inside of any dungeon,\nbut won't necessarily "
|
||||
// "be in the dungon that the\nkey is for.\nA difficult mode since it is "
|
||||
// "more\nlikely to need to enter a dungeon multiple times.");
|
||||
// "Boss Keys can only appear inside of any dungeon, but won't necessarily "
|
||||
// "be in the dungon that the key is for.\nA difficult mode since it is "
|
||||
// "more likely to need to enter a dungeon multiple times.");
|
||||
// break;
|
||||
// case 2:
|
||||
// InsertHelpHoverText(
|
||||
// "Boss keys can only appear outside of dungeons.\nYou may need to enter a dungeon "
|
||||
// "without "
|
||||
// "the boss\nkey to get items required to find the key in the\noverworld.");
|
||||
// "Boss Keys can only appear outside of dungeons.\nYou may need to enter a dungeon "
|
||||
// "without the boss key to get items required to find the key in the overworld.");
|
||||
// break;
|
||||
// case 3:
|
||||
// InsertHelpHoverText(
|
||||
// "Boss key can appear anywhere in the overworld.\nA difficult mode since it "
|
||||
// "is more likely to need to\nenter a dungeon multiple times.");
|
||||
// "Boss Keys can appear anywhere in the overworld.\nA difficult mode since it "
|
||||
// "is more likely to need to enter a dungeon multiple times.");
|
||||
// break;
|
||||
// case 4:
|
||||
// InsertHelpHoverText(
|
||||
// "Boss Keys are given to you from the start so you\nwon't have to worry "
|
||||
// "Boss Keys are given to you from the start so you won't have to worry "
|
||||
// "about boss doors.\nAn easier mode.");
|
||||
// break;
|
||||
// case 5:
|
||||
|
@ -4245,80 +4230,80 @@ void DrawRandoEditor(bool& open) {
|
|||
switch (CVar_GetS32("gRandomizeShuffleGanonBossKey", 0)) {
|
||||
case 0:
|
||||
SetLastItemHoverText(
|
||||
"Ganon's Boss Key is given to you from the\nstart and you don't "
|
||||
"Ganon's Boss Key is given to you from the start and you don't "
|
||||
"have to worry about finding it.");
|
||||
break;
|
||||
case 1:
|
||||
SetLastItemHoverText("Ganon's Boss Key will appear in the vanilla\nlocation.");
|
||||
SetLastItemHoverText("Ganon's Boss Key will appear in the vanilla location.");
|
||||
break;
|
||||
case 2:
|
||||
SetLastItemHoverText("Ganon's Boss Key will appear somewhere inside\nGanon's Castle.");
|
||||
SetLastItemHoverText("Ganon's Boss Key will appear somewhere inside Ganon's Castle.");
|
||||
break;
|
||||
// case 0:
|
||||
// SetLastItemHoverText(
|
||||
// "Ganon's Castle Boss Key can only appear inside of\na dungeon, but not "
|
||||
// "Ganon's Castle Boss Key can only appear inside of a dungeon, but not "
|
||||
// "necessarily Ganon's Castle.");
|
||||
// break;
|
||||
// case 1:
|
||||
// SetLastItemHoverText("Ganon's Castle Boss Key can only appear outside of\ndungeons.");
|
||||
// SetLastItemHoverText("Ganon's Castle Boss Key can only appear outside of dungeons.");
|
||||
// break;
|
||||
// case 2:
|
||||
// SetLastItemHoverText("Ganon's Castle Boss Key can appear anywhere in the\nworld.");
|
||||
// SetLastItemHoverText("Ganon's Castle Boss Key can appear anywhere in the world.");
|
||||
// break;
|
||||
// case 3:
|
||||
// SetLastItemHoverText(
|
||||
// "These settings put the boss key on the Light Arrow\nCutscene location, "
|
||||
// "from Zelda in Temple of Time as\nadult, with differing requirements.");
|
||||
// "These settings put the boss key on the Light Arrow Cutscene location, "
|
||||
// "from Zelda in Temple of Time as adult, with differing requirements.");
|
||||
// break;
|
||||
// case 4:
|
||||
// SetLastItemHoverText("Ganon's Caslte Boss Key can appear anywhere in the\nworld.");
|
||||
// SetLastItemHoverText("Ganon's Castle Boss Key can appear anywhere in the world.");
|
||||
// break;
|
||||
// case 5:
|
||||
// SetLastItemHoverText(
|
||||
// "These settings put the boss key on the Light Arrow\nCutscene location, "
|
||||
// "from Zelda in Temple of Time as\nadult, with differing requirements.");
|
||||
// "These settings put the boss key on the Light Arrow Cutscene location, "
|
||||
// "from Zelda in Temple of Time as adult, with differing requirements.");
|
||||
// SohImGui::EnhancementSliderInt("Medallion Count: %d", "##RandoGanonMedallionCount",
|
||||
// "gRandomizeGanonMedallionCount", 0, 6, "");
|
||||
// InsertHelpHoverText(
|
||||
// "Set the number of Medallions required to trigger\nthe Light Arrow Cutscene.");
|
||||
// "Set the number of Medallions required to trigger the Light Arrow Cutscene.");
|
||||
// break;
|
||||
// case 6:
|
||||
// SetLastItemHoverText(
|
||||
// "These settings put the boss key on the Light Arrow\nCutscene location, "
|
||||
// "from Zelda in Temple of Time as\nadult, with differing requirements.");
|
||||
// "These settings put the boss key on the Light Arrow Cutscene location, "
|
||||
// "from Zelda in Temple of Time as adult, with differing requirements.");
|
||||
// SohImGui::EnhancementSliderInt("Stone Count: %d", "##RandoGanonStoneCount",
|
||||
// "gRandomizeGanonStoneCount", 0, 3, "");
|
||||
// InsertHelpHoverText("Set the number of Spiritual Stones required to trigger\nthe Light "
|
||||
// InsertHelpHoverText("Set the number of Spiritual Stones required to trigger the Light "
|
||||
// "Arrow Cutscene.");
|
||||
// break;
|
||||
// case 7:
|
||||
// SetLastItemHoverText(
|
||||
// "These settings put the boss key on the Light Arrow\nCutscene location, "
|
||||
// "from Zelda in Temple of Time as\nadult, with differing requirements.");
|
||||
// "These settings put the boss key on the Light Arrow Cutscene location, "
|
||||
// "from Zelda in Temple of Time as adult, with differing requirements.");
|
||||
// SohImGui::EnhancementSliderInt("Reward Count: %d", "##RandoGanonRewardCount",
|
||||
// "gRandomizeGanonRewardCount", 0, 9, "");
|
||||
// InsertHelpHoverText(
|
||||
// "Set the number of Dungeon Rewards (Spiritual\nStones and Medallions) "
|
||||
// "required to trigger the\nLight Arrow Cutscene.");
|
||||
// "Set the number of Dungeon Rewards (Spiritual Stones and Medallions) "
|
||||
// "required to trigger the Light Arrow Cutscene.");
|
||||
// break;
|
||||
// case 8:
|
||||
// SetLastItemHoverText(
|
||||
// "These settings put the boss key on the Light Arrow\nCutscene location, "
|
||||
// "from Zelda in Temple of Time as\nadult, with differing requirements.");
|
||||
// "These settings put the boss key on the Light Arrow Cutscene location, "
|
||||
// "from Zelda in Temple of Time as adult, with differing requirements.");
|
||||
// SohImGui::EnhancementSliderInt("MDungeon Count: %d", "##RandoGanonDungeonCount",
|
||||
// "gRandomizeGanonDungeonCount", 0, 8, "");
|
||||
// InsertHelpHoverText(
|
||||
// "Set the number of completed dungeons required to\ntrigger the Light Arrow "
|
||||
// "Cutscene.\n\nDungeons are considered complete when Link steps\ninto the "
|
||||
// "Set the number of completed dungeons required to trigger the Light Arrow "
|
||||
// "Cutscene.\nDungeons are considered complete when Link steps into the "
|
||||
// "blue warp at the end of them.");
|
||||
// break;
|
||||
// case 9:
|
||||
// SetLastItemHoverText(
|
||||
// "These settings put the boss key on the Light Arrow\nCutscene location, "
|
||||
// "from Zelda in Temple of Time as\nadult, with differing requirements.");
|
||||
// "These settings put the boss key on the Light Arrow Cutscene location, "
|
||||
// "from Zelda in Temple of Time as adult, with differing requirements.");
|
||||
// SohImGui::EnhancementSliderInt("Token Count: %d", "##RandoGanonTokenCount",
|
||||
// "gRandomizeGanonTokenCount", 0, 100, "");
|
||||
// InsertHelpHoverText("Set the number of Gold Skulltula Tokens required\nto trigger the "
|
||||
// InsertHelpHoverText("Set the number of Gold Skulltula Tokens required to trigger the "
|
||||
// "Light Arrow Cutscene.");
|
||||
// break;
|
||||
}
|
||||
|
@ -4342,82 +4327,82 @@ void DrawRandoEditor(bool& open) {
|
|||
// todo implement minigame repeat skip
|
||||
// // Skip Minigame repetition
|
||||
// SohImGui::EnhancementCheckbox("Skip Minigame Repetition", "gRandomizeSkipMinigameRepetition");
|
||||
// InsertHelpHoverText("Completing the second objective in the Dampe Race\nand Gerudo Archery on the "
|
||||
// "first attempt will give\nboth rewards at once for that minigame.");
|
||||
// InsertHelpHoverText("Completing the second objective in the Dampe Race and Gerudo Archery on the "
|
||||
// "first attempt will give both rewards at once for that minigame.");
|
||||
// ImGui::Separator();
|
||||
|
||||
// todo implement free scarecrow (is this already in?)
|
||||
// // Free scarecrow
|
||||
// SohImGui::EnhancementCheckbox("Free Scarecrow", "gRandomizeFreeScarecrow");
|
||||
// InsertHelpHoverText(
|
||||
// "Pulling the Ocarina near a spot at which\nPierre can spawn will do so, without "
|
||||
// "needing\nthe song.");
|
||||
// "Pulling the Ocarina near a spot at which Pierre can spawn will do so, without "
|
||||
// "needing the song.");
|
||||
// ImGui::Separator();
|
||||
|
||||
// todo implement skip poes (did we already?)
|
||||
// // Skip Four Poes cutscene
|
||||
// SohImGui::EnhancementCheckbox("Skip Four Poes Cutscene", "gRandomizeSkipFourPoesCutscene");
|
||||
// InsertHelpHoverText(
|
||||
// "The cutscene with the 4 poes in Forest Temple will\nbe skipped. If the cutscene "
|
||||
// "is not skipped, it can\nbe exploited to reach the basement early.");
|
||||
// "The cutscene with the 4 poes in Forest Temple will be skipped. If the cutscene "
|
||||
// "is not skipped, it can be exploited to reach the basement early.");
|
||||
// ImGui::Separator();
|
||||
|
||||
// todo implement skip lake hylia owl
|
||||
// // Skip Lake Hylia owl
|
||||
// SohImGui::EnhancementCheckbox("Skip Lake Hylia Owl Cutscene", "gRandomizeSkipLakeHyliaOwl");
|
||||
// InsertHelpHoverText(
|
||||
// "The owl flight cutscene in Lake Hylia will be\nskipped. This cutscene lets you "
|
||||
// "see what item\nis on top of the laboratory roof.");
|
||||
// "The owl flight cutscene in Lake Hylia will be skipped. This cutscene lets you "
|
||||
// "see what item is on top of the laboratory roof.");
|
||||
// ImGui::Separator();
|
||||
|
||||
// Cuccos to return
|
||||
SohImGui::EnhancementSliderInt("Cuccos to return: %d", "##RandoCuccosToReturn",
|
||||
"gRandomizeCuccosToReturn", 0, 7, "", 7);
|
||||
InsertHelpHoverText("The cucco Lady will give a reward for returning\nthis many of her cuccos to the pen.");
|
||||
InsertHelpHoverText("The cucco Lady will give a reward for returning this many of her cuccos to the pen.");
|
||||
ImGui::Separator();
|
||||
|
||||
// // Big Poe Target Count
|
||||
SohImGui::EnhancementSliderInt("Big Poe Target Count: %d", "##RandoBigPoeTargetCount",
|
||||
"gRandomizeBigPoeTargetCount", 1, 10, "", 10);
|
||||
InsertHelpHoverText("The Poe buyer will give a reward for turning in\nthe chosen number of Big Poes.");
|
||||
InsertHelpHoverText("The Poe buyer will give a reward for turning in the chosen number of Big Poes.");
|
||||
ImGui::Separator();
|
||||
|
||||
// // Skip child stealth
|
||||
SohImGui::EnhancementCheckbox("Skip Child Stealth", "gRandomizeSkipChildStealth");
|
||||
InsertHelpHoverText("The crawlspace into Hyrule Castle goes straight to\nZelda, skipping the guards.");
|
||||
InsertHelpHoverText("The crawlspace into Hyrule Castle goes straight to Zelda, skipping the guards.");
|
||||
ImGui::Separator();
|
||||
|
||||
// Skip Epona race
|
||||
SohImGui::EnhancementCheckbox("Skip Epona Race", "gRandomizeSkipEponaRace");
|
||||
InsertHelpHoverText("Epona can be summoned with Epona's Song without\nneeding to race Ingo.");
|
||||
InsertHelpHoverText("Epona can be summoned with Epona's Song without needing to race Ingo.");
|
||||
ImGui::Separator();
|
||||
|
||||
// Skip tower escape
|
||||
SohImGui::EnhancementCheckbox("Skip Tower Escape", "gRandomizeSkipTowerEscape");
|
||||
InsertHelpHoverText("The tower escape sequence between Ganondorf and\nGanon will be skipped.");
|
||||
InsertHelpHoverText("The tower escape sequence between Ganondorf and Ganon will be skipped.");
|
||||
ImGui::Separator();
|
||||
|
||||
// todo implement complete mask quest
|
||||
// // Complete Mask Quest
|
||||
// SohImGui::EnhancementCheckbox("Complete Mask Quest", "gRandomizeCompleteMaskQuest");
|
||||
// InsertHelpHoverText(
|
||||
// "Once the Happy Mask Shop is opened, all masks\nwill be available to be borrowed.");
|
||||
// "Once the Happy Mask Shop is opened, all masks will be available to be borrowed.");
|
||||
// ImGui::Separator();
|
||||
|
||||
// todo implement keep farores (in soh)
|
||||
// // Keep Farore's Wind Warp Point
|
||||
// SohImGui::EnhancementCheckbox("Keep Farore's Wind Warp Point", "gRandomizeKeepFaroresWindWarp");
|
||||
// InsertHelpHoverText(
|
||||
// "The Farore's Wind warp point will stay active\nafter having been warped to. The "
|
||||
// "old point will\nneed to be dispelled before setting a new one.");
|
||||
// "The Farore's Wind warp point will stay active after having been warped to.\nThe "
|
||||
// "old point will need to be dispelled before setting a new one.");
|
||||
// ImGui::Separator();
|
||||
|
||||
// todo implement skip song replays (in soh)
|
||||
// // Skip Song Replays
|
||||
// ImGui::Text("Skip Song Replays");
|
||||
// InsertHelpHoverText(
|
||||
// "The automatic replay after you play a song will\nbe skipped.\nYou can choose to "
|
||||
// "keep the SFX anyway, but you\nwill have control of Link during it.");
|
||||
// "The automatic replay after you play a song will be skipped.\nYou can choose to "
|
||||
// "keep the SFX anyway, but you will have control of Link during it.");
|
||||
// SohImGui::EnhancementCombobox("gRandomizeSkipSongReplays", randoSkipSongReplays, 3, 0);
|
||||
// ImGui::Separator();
|
||||
|
||||
|
@ -4428,12 +4413,10 @@ void DrawRandoEditor(bool& open) {
|
|||
// Gossip Stone Hints
|
||||
ImGui::Text("Gossip Stone Hints");
|
||||
InsertHelpHoverText(
|
||||
"Gossip Stones can be made to give hints about\nwhere items can be found.\nDifferent settings "
|
||||
"can "
|
||||
"be chosen to decide which\nitem is needed to speak to Gossip Stones. Choosing\nto sticl with "
|
||||
"the "
|
||||
"Mask of Trutj will make the\nhints very difficult to obtain.\nHints for \"on the way of the "
|
||||
"hero\" are locations\ntaht contain items that are required to beat the\ngame.");
|
||||
"Gossip Stones can be made to give hints about where items can be found.\nDifferent settings can "
|
||||
"be chosen to decide which item is needed to speak to Gossip Stones. \nChoosing to stick with the "
|
||||
"Mask of Truth will make the hints very difficult to obtain.\nHints for \"on the way of the "
|
||||
"hero\" are locations that contain items that are required to beat the game.");
|
||||
|
||||
SohImGui::EnhancementCombobox("gRandomizeGossipStoneHints", randoGossipStoneHints, 4, 1);
|
||||
if (CVar_GetS32("gRandomizeGossipStoneHints", 1) != 0) {
|
||||
|
@ -4443,18 +4426,18 @@ void DrawRandoEditor(bool& open) {
|
|||
switch (CVar_GetS32("gRandomizeHintClarity", 2)) {
|
||||
case 0:
|
||||
InsertHelpHoverText(
|
||||
"Sets the difficulty of hints.\nObscure: Hints are unique for each thing, but\nthe "
|
||||
"Sets the difficulty of hints.\nObscure: Hints are unique for each thing, but the "
|
||||
"writing may be confusing.\nEx: Kokiri Sword > a butter knife");
|
||||
break;
|
||||
case 1:
|
||||
InsertHelpHoverText(
|
||||
"Sets the difficulty of hints.\nAmbiguous: Hints are clearly written, "
|
||||
"but may\nrefer to more than one thing.\nEx: Kokiri Sword > a sword");
|
||||
"but may refer to more than one thing.\nEx: Kokiri Sword > a sword");
|
||||
break;
|
||||
case 2:
|
||||
InsertHelpHoverText(
|
||||
"Sets the difficulty of hints.\nClear: Hints are clearly written and "
|
||||
"are unique\nfor each thing.\nEx: Kokiri Sword > the Kokiri Sword");
|
||||
"are unique for each thing.\nEx: Kokiri Sword > the Kokiri Sword");
|
||||
break;
|
||||
}
|
||||
SohImGui::EnhancementCombobox("gRandomizeHintClarity", randoHintClarity, 3, 2);
|
||||
|
@ -4490,7 +4473,7 @@ void DrawRandoEditor(bool& open) {
|
|||
// todo implement starting time
|
||||
// // Starting Time
|
||||
// ImGui::Text("Starting Time");
|
||||
// InsertHelpHoverText("Change up Link's sleep routine.");
|
||||
// InsertHelpHoverText("Change up Link's sleep routine.");
|
||||
// SohImGui::EnhancementCombobox("gRandomizeStartingTime", randoStartingTime, 2, 0);
|
||||
// ImGui::Separator();
|
||||
|
||||
|
@ -4498,7 +4481,7 @@ void DrawRandoEditor(bool& open) {
|
|||
// // Chest Size and Color
|
||||
// ImGui::Text("Chest Size and Color");
|
||||
// InsertHelpHoverText(
|
||||
// "This option will change the appearance of all\nregular chests depending on their "
|
||||
// "This option will change the appearance of all regular chests depending on their "
|
||||
// "contents:\nMajor Items = Big Wooden Chests\nLesser Items = Small Wooden "
|
||||
// "Chests\nBoss Keys = Big Fancy Chests\nSmall Keys = Small Fancy Chests");
|
||||
// SohImGui::EnhancementCombobox("gRandomizeChestSizeAndColor", randoChestSizeAndColor, 2, 0);
|
||||
|
@ -4509,11 +4492,11 @@ void DrawRandoEditor(bool& open) {
|
|||
// switch (CVar_GetS32("gRandomize", 0)) {
|
||||
// case 0:
|
||||
// InsertHelpHoverText(
|
||||
// "All alternative traps will cause a small damage\nand no other negative effets.");
|
||||
// "All alternative traps will cause small damage and no other negative effects.");
|
||||
// break;
|
||||
// case 1:
|
||||
// InsertHelpHoverText("Some chest traps will burn your Deku Shield or\ncause a lot of damage "
|
||||
// "(with one-hit protection).");
|
||||
// InsertHelpHoverText("Some chest traps will burn your Deku Shield or cause a lot of damage "
|
||||
// "(with one-hit KO protection).");
|
||||
// break;
|
||||
// case 2:
|
||||
// InsertHelpHoverText("All traps will be the base game ice trap.");
|
||||
|
@ -4535,7 +4518,7 @@ void DrawRandoEditor(bool& open) {
|
|||
InsertHelpHoverText("Original item pool.");
|
||||
break;
|
||||
case 2:
|
||||
InsertHelpHoverText("Some excess items are removed, including health\nupgrades.");
|
||||
InsertHelpHoverText("Some excess items are removed, including health upgrades.");
|
||||
break;
|
||||
case 3:
|
||||
InsertHelpHoverText("Most excess items are removed.");
|
||||
|
@ -4555,14 +4538,14 @@ void DrawRandoEditor(bool& open) {
|
|||
break;
|
||||
case 2:
|
||||
InsertHelpHoverText(
|
||||
"Chance to add extra Ice Traps when junk items are\nadded to the item pool.");
|
||||
"Chance to add extra Ice Traps when junk items are added to the item pool.");
|
||||
break;
|
||||
case 3:
|
||||
InsertHelpHoverText("All added junk items will be Ice Traps.");
|
||||
break;
|
||||
case 4:
|
||||
InsertHelpHoverText(
|
||||
"All junk items will be replaced by Ice Traps, even\nthose in the base pool.");
|
||||
"All junk items will be replaced by Ice Traps, even those in the base pool.");
|
||||
break;
|
||||
}
|
||||
SohImGui::EnhancementCombobox("gRandomizeIceTraps", randoIceTraps, 5, 1);
|
||||
|
@ -4571,7 +4554,7 @@ void DrawRandoEditor(bool& open) {
|
|||
// todo implement double defense getitem
|
||||
// // Remove Double Defense
|
||||
// SohImGui::EnhancementCheckbox("Remove Double Defense", "gRandomizeRemoveDoubleDefense");
|
||||
// InsertHelpHoverText("If set the double defense item will be removed\nfrom the item pool for "
|
||||
// InsertHelpHoverText("If set the double defense item will be removed from the item pool for "
|
||||
// "balanced and plentiful.");
|
||||
// ImGui::Separator();
|
||||
|
||||
|
@ -4579,8 +4562,8 @@ void DrawRandoEditor(bool& open) {
|
|||
// // Prog Goron Sword
|
||||
// SohImGui::EnhancementCheckbox("Prog Goron Sword", "gRandomizeProgGoronSword");
|
||||
// InsertHelpHoverText(
|
||||
// "Giant's Knife will walays be found before Biggoron's\nSword. Medigoron only "
|
||||
// "starts selling new knives\nonce the Giant's Knife has been found\nand broken.");
|
||||
// "Giant's Knife will always be found before Biggoron's Sword.\nMedigoron only "
|
||||
// "starts selling new knives once the Giant's Knife has been found and broken.");
|
||||
// ImGui::Separator();
|
||||
ImGui::PopItemWidth();
|
||||
ImGui::EndTable();
|
||||
|
|
|
@ -985,7 +985,7 @@ void DrawItemTracker(bool& open) {
|
|||
}
|
||||
SohImGui::EnhancementCheckbox("Display \"Ammo/MaxAmo\"", "gItemTrackerAmmoDisplay");
|
||||
SohImGui::EnhancementCheckbox("Randomizer colors for Songs", "gItemTrackeSongColor");
|
||||
SohImGui::Tooltip("Will dispaly non-warp songs with randomizer\ncolors instead of pure white");
|
||||
SohImGui::Tooltip("Will display non-warp songs with randomizer colors instead of pure white");
|
||||
SohImGui::EnhancementSliderInt("Icon size : %dpx", "##ITEMTRACKERICONSIZE", "gRandoTrackIconSize", 32, 128, "");
|
||||
|
||||
SohImGui::EnhancementSliderInt("X spacing : %dpx", "##ITEMTRACKERSPACINGX", "gRandoTrackIconSpacingX", minimalSpacingX, 256,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue