feat: wrap hardcoded strings in LanguageManager::GetString() for randomizer trackers

- randomizer_item_tracker.cpp: ~60 strings (CVarCheckbox, CVarCombobox, CVarSliderInt, widget names, tooltips, item names)
- randomizer_check_tracker.cpp: ~35 strings (CVarCheckbox, CVarCombobox, CVarSliderFloat, widget names, tooltips)
- randomizer_entrance_tracker.cpp: ~300 strings (CVarCheckbox, CVarCombobox, CVarRadioButton, entrance source/destination names, group names, tooltips)
- Plandomizer.cpp: ~50 strings (ImGui buttons, separator text, tab items, area names, tooltips)
This commit is contained in:
2026-04-04 23:52:32 -06:00
parent 5656d48efe
commit e358f07f92
4 changed files with 175 additions and 175 deletions

View File

@@ -536,21 +536,21 @@ void PlandomizerSaveSpoilerLog() {
spoilerSave["file_hash"] = { plandoHash[0], plandoHash[1], plandoHash[2], plandoHash[3], plandoHash[4] };
for (auto& import : plandoHintData) {
spoilerSave["Gossip Stone Hints"][import.hintName] = { { "type", import.hintType.c_str() },
{ "message", import.hintText.c_str() } };
spoilerSave["Gossip Stone Hints"][import.hintName] = { { LanguageManager::Instance().GetString("type").c_str(), import.hintType.c_str() },
{ LanguageManager::Instance().GetString("message").c_str(), import.hintText.c_str() } };
}
for (auto& import : plandoLogData) {
if (import.checkRewardItem.GetRandomizerGet() == RG_ICE_TRAP) {
spoilerSave["locations"][import.checkName] = { { "item", import.checkRewardItem.GetName().english },
{ "model", import.iceTrapModel.GetName().english },
{ "trickName", import.iceTrapName.c_str() } };
spoilerSave["locations"][import.checkName] = { { LanguageManager::Instance().GetString("item").c_str(), import.checkRewardItem.GetName().english },
{ LanguageManager::Instance().GetString("model").c_str(), import.iceTrapModel.GetName().english },
{ LanguageManager::Instance().GetString("trickName").c_str(), import.iceTrapName.c_str() } };
if (import.shopPrice > -1) {
spoilerSave["locations"][import.checkName]["price"] = import.shopPrice;
}
} else if (import.shopPrice > -1) {
spoilerSave["locations"][import.checkName] = { { "item", import.checkRewardItem.GetName().english },
{ "price", import.shopPrice } };
spoilerSave["locations"][import.checkName] = { { LanguageManager::Instance().GetString("item").c_str(), import.checkRewardItem.GetName().english },
{ LanguageManager::Instance().GetString("price").c_str(), import.shopPrice } };
} else {
spoilerSave["locations"][import.checkName] = import.checkRewardItem.GetName().english;
}
@@ -687,7 +687,7 @@ void PlandomizerOverlayText(std::pair<Rando::Item, uint32_t> drawObject) {
textPos = ImVec2(imageMin.x + 2, imageMin.y + 2);
ImGui::SetCursorScreenPos(textPos);
ImGui::Text("+");
ImGui::Text(LanguageManager::Instance().GetString("+").c_str());
}
if (extractNumberInParentheses(drawObject.first.GetName().english.c_str()) != "" &&
extractNumberInParentheses(drawObject.first.GetName().english.c_str()) != "WINNER" &&
@@ -728,7 +728,7 @@ void PlandomizerOverlayText(std::pair<Rando::Item, uint32_t> drawObject) {
}
void PlandomizerDrawItemPopup(uint32_t index) {
if (shouldPopup && ImGui::BeginPopup("ItemList")) {
if (shouldPopup && ImGui::BeginPopup(LanguageManager::Instance().GetString("ItemList").c_str())) {
PlandoPushImageButtonStyle();
ImGui::SeparatorText(LanguageManager::Instance().GetString("Resources").c_str());
ImGui::BeginTable("Infinite Item Table", 7);
@@ -806,7 +806,7 @@ void PlandomizerDrawItemPopup(uint32_t index) {
}
void PlandomizerDrawIceTrapPopUp(uint32_t index) {
if (shouldTrapPopup && ImGui::BeginPopup("TrapList")) {
if (shouldTrapPopup && ImGui::BeginPopup(LanguageManager::Instance().GetString("TrapList").c_str())) {
ImGui::BeginTable("Ice Trap Table", 8);
PlandoPushImageButtonStyle();
for (auto& items : itemImageMap) {
@@ -864,7 +864,7 @@ void PlandomizerDrawShopSlider(uint32_t index) {
UIWidgets::SliderInt("Price:", &plandoLogData[index].shopPrice,
UIWidgets::IntSliderOptions()
.Color(THEME_COLOR)
.Format("%d Rupees")
.Format(LanguageManager::Instance().GetString("%d Rupees").c_str())
.Min(0)
.Max(999)
.LabelPosition(UIWidgets::LabelPositions::Near)
@@ -996,7 +996,7 @@ void PlandomizerDrawOptions() {
if (spoilerLogData.size() > 0) {
if (ImGui::BeginTable("HashIcons", 5)) {
for (int i = 0; i < 5; i++) {
ImGui::TableSetupColumn("Icon", ImGuiTableColumnFlags_WidthFixed, 34.0f);
ImGui::TableSetupColumn(LanguageManager::Instance().GetString("Icon").c_str(), ImGuiTableColumnFlags_WidthFixed, 34.0f);
}
ImGui::TableNextColumn();
@@ -1086,7 +1086,7 @@ void PlandomizerDrawOptions() {
}
ImGui::SameLine();
ImGui::SetNextItemWidth(150);
if (ImGui::InputText("##ItemSearch", itemFilterSearch, sizeof(itemFilterSearch), ImGuiInputTextFlags_EnterReturnsTrue)) {
if (ImGui::InputText(LanguageManager::Instance().GetString("##ItemSearch").c_str(), itemFilterSearch, sizeof(itemFilterSearch), ImGuiInputTextFlags_EnterReturnsTrue)) {
if (strlen(itemFilterSearch) > 0) {
for (int i = 0; i < (int32_t)itemFilterNames.size(); i++) {
std::string lowerSearch = itemFilterSearch;
@@ -1108,7 +1108,7 @@ void PlandomizerDrawOptions() {
.Color(THEME_COLOR)
.Size(UIWidgets::Sizes::Inline)
.Padding(ImVec2(8.f, 6.f))
.Tooltip("Sort items A-Z"))) {
.Tooltip(LanguageManager::Instance().GetString("Sort items A-Z").c_str()))) {
std::vector<std::pair<std::string, RandomizerGet>> sorted;
for (size_t i = 1; i < itemFilterNames.size(); i++) {
sorted.push_back({ itemFilterNames[i], itemFilterList[i] });
@@ -1148,7 +1148,7 @@ void PlandomizerDrawHintsWindow() {
uint32_t index = 0;
std::string hintInputText;
ImGui::BeginChild("Hints");
ImGui::BeginChild(LanguageManager::Instance().GetString("Hints").c_str());
if (ImGui::BeginTable("Hints Window", 1, ImGuiTableFlags_BordersInnerV | ImGuiTableFlags_ScrollY)) {
ImGui::TableSetupColumn(LanguageManager::Instance().GetString("Hint Entries").c_str());
ImGui::TableSetupScrollFreeze(0, 1);
@@ -1171,7 +1171,7 @@ void PlandomizerDrawHintsWindow() {
.Color(THEME_COLOR)
.Padding(ImVec2(10.f, 6.f))
.Size(UIWidgets::Sizes::Inline)
.Tooltip("Randomize Hint"))) {
.Tooltip(LanguageManager::Instance().GetString("Randomize Hint").c_str()))) {
PlandomizerRandomizeHint(HINT_SINGLE, index);
}
ImGui::SameLine();
@@ -1194,7 +1194,7 @@ void PlandomizerDrawHintsWindow() {
void PlandomizerDrawLocationsWindow(RandomizerCheckArea rcArea) {
uint32_t index = 0;
ImGui::BeginChild("Locations");
ImGui::BeginChild(LanguageManager::Instance().GetString("Locations").c_str());
if (ImGui::BeginTable("Locations Window", 4, ImGuiTableFlags_BordersInnerV | ImGuiTableFlags_ScrollY)) {
ImGui::TableSetupColumn(LanguageManager::Instance().GetString("Spoiler Log Check Name").c_str(), ImGuiTableColumnFlags_WidthFixed, 250.0f);
ImGui::TableSetupColumn(LanguageManager::Instance().GetString("Spoiler Log Reward").c_str(), ImGuiTableColumnFlags_WidthFixed, 190.0f);
@@ -1243,7 +1243,7 @@ void PlandomizerDrawLocationsWindow(RandomizerCheckArea rcArea) {
}
void PlandomizerDrawSpoilerTable() {
ImGui::BeginChild("Main");
ImGui::BeginChild(LanguageManager::Instance().GetString("Main").c_str());
UIWidgets::PushStyleTabs(THEME_COLOR);
if (ImGui::BeginTabBar("Check Tabs")) {
if (ImGui::BeginTabItem(LanguageManager::Instance().GetString("Gossip Stones").c_str())) {

View File

@@ -1038,7 +1038,7 @@ void CheckTrackerWindow::DrawElement() {
#else
float headerHeight = 20.0f;
#endif
if (!ImGui::BeginTable("Check Tracker", 1, 0)) {
if (!ImGui::BeginTable(LanguageManager::Instance().GetString("Check Tracker").c_str(), 1, 0)) {
Trackers::EndFloatWindows();
return;
}
@@ -1122,7 +1122,7 @@ void CheckTrackerWindow::DrawElement() {
// Checks Section Lead-in
ImGui::TableNextRow();
ImGui::TableNextColumn();
if (!ImGui::BeginTable("CheckTracker##Checks", 1, ImGuiTableFlags_ScrollY)) {
if (!ImGui::BeginTable(LanguageManager::Instance().GetString("CheckTracker##Checks").c_str(), 1, ImGuiTableFlags_ScrollY)) {
ImGui::EndTable();
Trackers::EndFloatWindows();
return;
@@ -2117,7 +2117,7 @@ void CheckTrackerWindow::Draw() {
void CheckTrackerSettingsWindow::DrawElement() {
ImGui::PushStyleVar(ImGuiStyleVar_CellPadding, { 8.0f, 8.0f });
if (ImGui::BeginTable("CheckTrackerSettingsTable", 2, ImGuiTableFlags_BordersH | ImGuiTableFlags_BordersV)) {
if (ImGui::BeginTable(LanguageManager::Instance().GetString("CheckTrackerSettingsTable").c_str(), 2, ImGuiTableFlags_BordersH | ImGuiTableFlags_BordersV)) {
ImGui::TableSetupColumn(LanguageManager::Instance().GetString("General settings").c_str(), ImGuiTableColumnFlags_WidthStretch, 200.0f);
ImGui::TableSetupColumn(LanguageManager::Instance().GetString("Section settings").c_str(), ImGuiTableColumnFlags_WidthStretch, 200.0f);
ImGui::TableHeadersRow();
@@ -2127,9 +2127,9 @@ void CheckTrackerSettingsWindow::DrawElement() {
SohGui::GetSohMenu()->MenuDrawItem(windowTypeWidget, ImGui::GetContentRegionAvail().x, THEME_COLOR);
UIWidgets::CVarSliderFloat("Font Size", CVAR_TRACKER_CHECK("FontSize"),
UIWidgets::CVarSliderFloat(LanguageManager::Instance().GetString("Font Size").c_str(), CVAR_TRACKER_CHECK("FontSize"),
UIWidgets::FloatSliderOptions()
.Tooltip("Sets the font size used in the check tracker.")
.Tooltip(LanguageManager::Instance().GetString("Sets the font size used in the check tracker.").c_str())
.Format("%.1f")
.Step(0.1f)
.Min(0.3f)
@@ -2138,11 +2138,11 @@ void CheckTrackerSettingsWindow::DrawElement() {
.DefaultValue(1.0f));
if (CVarGetInteger(CVAR_TRACKER_CHECK("WindowType"), TRACKER_WINDOW_WINDOW) == TRACKER_WINDOW_FLOATING) {
UIWidgets::CVarCheckbox("Enable Dragging", CVAR_TRACKER_CHECK("Draggable"),
UIWidgets::CVarCheckbox(LanguageManager::Instance().GetString("Enable Dragging").c_str(), CVAR_TRACKER_CHECK("Draggable"),
UIWidgets::CheckboxOptions().Color(THEME_COLOR));
UIWidgets::CVarCheckbox("Only Enable While Paused", CVAR_TRACKER_CHECK("ShowOnlyPaused"),
UIWidgets::CVarCheckbox(LanguageManager::Instance().GetString("Only Enable While Paused").c_str(), CVAR_TRACKER_CHECK("ShowOnlyPaused"),
UIWidgets::CheckboxOptions().Color(THEME_COLOR));
UIWidgets::CVarCombobox("Display Mode", CVAR_TRACKER_CHECK("DisplayType"), showMode,
UIWidgets::CVarCombobox(LanguageManager::Instance().GetString("Display Mode").c_str(), CVAR_TRACKER_CHECK("DisplayType"), showMode,
UIWidgets::ComboboxOptions()
.LabelPosition(UIWidgets::LabelPositions::Far)
.ComponentAlignment(UIWidgets::ComponentAlignments::Right)
@@ -2150,13 +2150,13 @@ void CheckTrackerSettingsWindow::DrawElement() {
.DefaultIndex(0));
if (CVarGetInteger(CVAR_TRACKER_CHECK("DisplayType"), TRACKER_DISPLAY_ALWAYS) ==
TRACKER_DISPLAY_COMBO_BUTTON) {
UIWidgets::CVarCombobox("Combo Button 1", CVAR_TRACKER_CHECK("ComboButton1"), buttonStrings,
UIWidgets::CVarCombobox(LanguageManager::Instance().GetString("Combo Button 1").c_str(), CVAR_TRACKER_CHECK("ComboButton1"), buttonStrings,
UIWidgets::ComboboxOptions()
.LabelPosition(UIWidgets::LabelPositions::Far)
.ComponentAlignment(UIWidgets::ComponentAlignments::Right)
.Color(THEME_COLOR)
.DefaultIndex(TRACKER_COMBO_BUTTON_L));
UIWidgets::CVarCombobox("Combo Button 2", CVAR_TRACKER_CHECK("ComboButton2"), buttonStrings,
UIWidgets::CVarCombobox(LanguageManager::Instance().GetString("Combo Button 2").c_str(), CVAR_TRACKER_CHECK("ComboButton2"), buttonStrings,
UIWidgets::ComboboxOptions()
.LabelPosition(UIWidgets::LabelPositions::Far)
.ComponentAlignment(UIWidgets::ComponentAlignments::Right)
@@ -2182,20 +2182,20 @@ void CheckTrackerSettingsWindow::DrawElement() {
UIWidgets::CVarCheckbox(
"Filter Empty Areas", CVAR_TRACKER_CHECK("HideFilteredAreas"),
UIWidgets::CheckboxOptions()
.Tooltip("If enabled, will hide area headers that have no locations matching filter")
.Tooltip(LanguageManager::Instance().GetString("If enabled, will hide area headers that have no locations matching filter").c_str())
.Color(THEME_COLOR)
.DefaultValue(true));
ImGui::SeparatorText(LanguageManager::Instance().GetString("Tracker Header Visibility").c_str());
UIWidgets::CVarCheckbox("Hidden Items Toggle", CVAR_TRACKER_CHECK("HiddenItemsToggleVisible"),
UIWidgets::CVarCheckbox(LanguageManager::Instance().GetString("Hidden Items Toggle").c_str(), CVAR_TRACKER_CHECK("HiddenItemsToggleVisible"),
UIWidgets::CheckboxOptions().Color(THEME_COLOR).DefaultValue(true));
UIWidgets::CVarCheckbox("Available Checks Toggle", CVAR_TRACKER_CHECK("AvailableChecksToggleVisible"),
UIWidgets::CVarCheckbox(LanguageManager::Instance().GetString("Available Checks Toggle").c_str(), CVAR_TRACKER_CHECK("AvailableChecksToggleVisible"),
UIWidgets::CheckboxOptions().Color(THEME_COLOR).DefaultValue(true));
UIWidgets::CVarCheckbox("Expand/Collapse Buttons", CVAR_TRACKER_CHECK("ExpandCollapseButtonsVisible"),
UIWidgets::CVarCheckbox(LanguageManager::Instance().GetString("Expand/Collapse Buttons").c_str(), CVAR_TRACKER_CHECK("ExpandCollapseButtonsVisible"),
UIWidgets::CheckboxOptions().Color(THEME_COLOR).DefaultValue(false));
UIWidgets::CVarCheckbox("Search Input", CVAR_TRACKER_CHECK("SearchInputVisible"),
UIWidgets::CVarCheckbox(LanguageManager::Instance().GetString("Search Input").c_str(), CVAR_TRACKER_CHECK("SearchInputVisible"),
UIWidgets::CheckboxOptions().Color(THEME_COLOR).DefaultValue(true));
UIWidgets::CVarCheckbox("Check Totals", CVAR_TRACKER_CHECK("CheckTotalsVisible"),
UIWidgets::CVarCheckbox(LanguageManager::Instance().GetString("Check Totals").c_str(), CVAR_TRACKER_CHECK("CheckTotalsVisible"),
UIWidgets::CheckboxOptions().Color(THEME_COLOR).DefaultValue(true));
ImGui::TableNextColumn();
@@ -2265,13 +2265,13 @@ void CheckTrackerWindow::UpdateElement() {
}
void RegisterCheckTrackerWidgets() {
backgroundColorWidget = { .name = "Background Color##CheckTracker", .type = WidgetType::WIDGET_CVAR_COLOR_PICKER };
backgroundColorWidget = { .name = LanguageManager::Instance().GetString("Background Color##CheckTracker"), .type = WidgetType::WIDGET_CVAR_COLOR_PICKER };
backgroundColorWidget.CVar(CVAR_TRACKER_CHECK("BgColor"))
.Options(
ColorPickerOptions().Color(THEME_COLOR).DefaultValue(Color_Bg_Default).UseAlpha().ShowReset().ShowRandom());
SohGui::GetSohMenu()->AddSearchWidget({ backgroundColorWidget, "Randomizer", "Check Tracker", "General Settings" });
windowTypeWidget = { .name = "Window Type##CheckTracker", .type = WidgetType::WIDGET_CVAR_COMBOBOX };
windowTypeWidget = { .name = LanguageManager::Instance().GetString("Window Type##CheckTracker"), .type = WidgetType::WIDGET_CVAR_COMBOBOX };
windowTypeWidget.CVar(CVAR_TRACKER_CHECK("WindowType"))
.Options(ComboboxOptions()
.DefaultIndex(TRACKER_WINDOW_WINDOW)
@@ -2281,7 +2281,7 @@ void RegisterCheckTrackerWidgets() {
.ComboMap(windowType));
SohGui::GetSohMenu()->AddSearchWidget({ windowTypeWidget, "Randomizer", "Check Tracker", "General Settings" });
dungeonSpoilerWidget = { .name = "Vanilla/MQ Dungeon Spoilers", .type = WidgetType::WIDGET_CVAR_CHECKBOX };
dungeonSpoilerWidget = { .name = LanguageManager::Instance().GetString("Vanilla/MQ Dungeon Spoilers"), .type = WidgetType::WIDGET_CVAR_CHECKBOX };
dungeonSpoilerWidget.CVar(CVAR_TRACKER_CHECK("MQSpoilers"))
.Options(CheckboxOptions()
.Color(THEME_COLOR)
@@ -2289,12 +2289,12 @@ void RegisterCheckTrackerWidgets() {
"Otherwise, Vanilla/MQ dungeon locations must be unlocked."));
SohGui::GetSohMenu()->AddSearchWidget({ dungeonSpoilerWidget, "Randomizer", "Check Tracker", "General Settings" });
hideUnshuffledShopWidget = { .name = "Hide Unshuffled Shop Item Checks", .type = WidgetType::WIDGET_CVAR_CHECKBOX };
hideUnshuffledShopWidget = { .name = LanguageManager::Instance().GetString("Hide Unshuffled Shop Item Checks"), .type = WidgetType::WIDGET_CVAR_CHECKBOX };
hideUnshuffledShopWidget.CVar(CVAR_TRACKER_CHECK("HideUnshuffledShopChecks"))
.Options(
CheckboxOptions()
.Color(THEME_COLOR)
.Tooltip("If enabled, will prevent the tracker from displaying slots with non-shop-item shuffles."))
.Tooltip(LanguageManager::Instance().GetString("If enabled, will prevent the tracker from displaying slots with non-shop-item shuffles.").c_str()))
.Callback([&](WidgetInfo& info) {
hideShopUnshuffledChecks = CVarGetInteger(CVAR_TRACKER_CHECK("HideUnshuffledShopChecks"), 0);
UpdateFilters();
@@ -2302,25 +2302,25 @@ void RegisterCheckTrackerWidgets() {
SohGui::GetSohMenu()->AddSearchWidget(
{ hideUnshuffledShopWidget, "Randomizer", "Check Tracker", "General Settings" });
showGSWidget = { .name = "Always Show Gold Skulltulas", .type = WidgetType::WIDGET_CVAR_CHECKBOX };
showGSWidget = { .name = LanguageManager::Instance().GetString("Always Show Gold Skulltulas"), .type = WidgetType::WIDGET_CVAR_CHECKBOX };
showGSWidget.CVar(CVAR_TRACKER_CHECK("AlwaysShowGSLocs"))
.Options(CheckboxOptions()
.Color(THEME_COLOR)
.Tooltip("If enabled, will show GS locations in the tracker regardless of tokensanity settings."))
.Tooltip(LanguageManager::Instance().GetString("If enabled, will show GS locations in the tracker regardless of tokensanity settings.").c_str()))
.Callback([&](WidgetInfo& info) {
alwaysShowGS = !alwaysShowGS;
UpdateFilters();
});
SohGui::GetSohMenu()->AddSearchWidget({ showGSWidget, "Randomizer", "Check Tracker", "General Settings" });
showLogicWidget = { .name = "Show Logic", .type = WidgetType::WIDGET_CVAR_CHECKBOX };
showLogicWidget = { .name = LanguageManager::Instance().GetString("Show Logic"), .type = WidgetType::WIDGET_CVAR_CHECKBOX };
showLogicWidget.CVar(CVAR_TRACKER_CHECK("ShowLogic"))
.Options(CheckboxOptions()
.Color(THEME_COLOR)
.Tooltip("If enabled, will show a check's logic when hovering over it."));
.Tooltip(LanguageManager::Instance().GetString("If enabled, will show a check's logic when hovering over it.").c_str()));
SohGui::GetSohMenu()->AddSearchWidget({ showLogicWidget, "Randomizer", "Check Tracker", "General Settings" });
checkAvailabilityWidget = { .name = "Enable Available Checks", .type = WidgetType::WIDGET_CVAR_CHECKBOX };
checkAvailabilityWidget = { .name = LanguageManager::Instance().GetString("Enable Available Checks"), .type = WidgetType::WIDGET_CVAR_CHECKBOX };
checkAvailabilityWidget.CVar(CVAR_TRACKER_CHECK("EnableAvailableChecks"))
.Options(CheckboxOptions()
.Color(THEME_COLOR)

View File

@@ -53,31 +53,31 @@ static ImVec2 presetPos;
static ImVec2 presetSize;
static std::string spoilerEntranceGroupNames[] = {
"Spawns/Warp Songs/Owls",
"Kokiri Forest",
"Lost Woods",
"Sacred Forest Meadow",
"Kakariko Village",
"Graveyard",
"Death Mountain Trail",
"Death Mountain Crater",
"Goron City",
"Zora's River",
"Zora's Domain",
"Zora's Fountain",
"Hyrule Field",
"Lon Lon Ranch",
"Lake Hylia",
"Gerudo Valley",
"Gerudo Fortress",
"Haunted Wasteland",
"Desert Colossus",
"Market",
"Hyrule Castle",
LanguageManager::Instance().GetString("Spawns/Warp Songs/Owls").c_str(),
LanguageManager::Instance().GetString("Kokiri Forest").c_str(),
LanguageManager::Instance().GetString("Lost Woods").c_str(),
LanguageManager::Instance().GetString("Sacred Forest Meadow").c_str(),
LanguageManager::Instance().GetString("Kakariko Village").c_str(),
LanguageManager::Instance().GetString("Graveyard").c_str(),
LanguageManager::Instance().GetString("Death Mountain Trail").c_str(),
LanguageManager::Instance().GetString("Death Mountain Crater").c_str(),
LanguageManager::Instance().GetString("Goron City").c_str(),
LanguageManager::Instance().GetString("Zora's River").c_str(),
LanguageManager::Instance().GetString("Zora's Domain").c_str(),
LanguageManager::Instance().GetString("Zora's Fountain").c_str(),
LanguageManager::Instance().GetString("Hyrule Field").c_str(),
LanguageManager::Instance().GetString("Lon Lon Ranch").c_str(),
LanguageManager::Instance().GetString("Lake Hylia").c_str(),
LanguageManager::Instance().GetString("Gerudo Valley").c_str(),
LanguageManager::Instance().GetString("Gerudo Fortress").c_str(),
LanguageManager::Instance().GetString("Haunted Wasteland").c_str(),
LanguageManager::Instance().GetString("Desert Colossus").c_str(),
LanguageManager::Instance().GetString("Market").c_str(),
LanguageManager::Instance().GetString("Hyrule Castle").c_str(),
};
static std::string groupTypeNames[] = {
"One Way", "Overworld", "Interior", "Fortress", "Grotto", "Dungeon",
LanguageManager::Instance().GetString("One Way").c_str(), LanguageManager::Instance().GetString("Overworld").c_str(), LanguageManager::Instance().GetString("Interior").c_str(), LanguageManager::Instance().GetString("Fortress").c_str(), LanguageManager::Instance().GetString("Grotto").c_str(), LanguageManager::Instance().GetString("Dungeon").c_str(),
};
// Entrance data for the tracker taken from the 3ds rando entrance tracker, and supplemented with scene/spawn info and
@@ -713,7 +713,7 @@ void InitEntranceTrackingData() {
void EntranceTrackerSettingsWindow::DrawElement() {
ImGui::TextWrapped("The entrance tracker will only track shuffled entrances");
ImGui::TextWrapped(LanguageManager::Instance().GetString("The entrance tracker will only track shuffled entrances").c_str());
Spacer(0);
ImGui::TableNextColumn();
@@ -722,10 +722,10 @@ void EntranceTrackerSettingsWindow::DrawElement() {
SohGui::GetSohMenu()->MenuDrawItem(windowTypeWidget, ImGui::GetContentRegionAvail().x, THEME_COLOR);
if (CVarGetInteger(CVAR_TRACKER_ENTRANCE("WindowType"), TRACKER_WINDOW_WINDOW) == TRACKER_WINDOW_FLOATING) {
CVarCheckbox("Enable Dragging", CVAR_TRACKER_ENTRANCE("Draggable"), CheckboxOptions().Color(THEME_COLOR));
CVarCheckbox("Only Enable While Paused", CVAR_TRACKER_ENTRANCE("ShowOnlyPaused"),
CVarCheckbox(LanguageManager::Instance().GetString("Enable Dragging").c_str(), CVAR_TRACKER_ENTRANCE("Draggable"), CheckboxOptions().Color(THEME_COLOR));
CVarCheckbox(LanguageManager::Instance().GetString("Only Enable While Paused").c_str(), CVAR_TRACKER_ENTRANCE("ShowOnlyPaused"),
CheckboxOptions().Color(THEME_COLOR));
CVarCombobox("Display Mode", CVAR_TRACKER_ENTRANCE("DisplayType"), showMode,
CVarCombobox(LanguageManager::Instance().GetString("Display Mode").c_str(), CVAR_TRACKER_ENTRANCE("DisplayType"), showMode,
ComboboxOptions()
.LabelPosition(LabelPositions::Far)
.ComponentAlignment(ComponentAlignments::Right)
@@ -733,13 +733,13 @@ void EntranceTrackerSettingsWindow::DrawElement() {
.DefaultIndex(0));
if (CVarGetInteger(CVAR_TRACKER_ENTRANCE("DisplayType"), TRACKER_DISPLAY_ALWAYS) ==
TRACKER_DISPLAY_COMBO_BUTTON) {
CVarCombobox("Combo Button 1", CVAR_TRACKER_ENTRANCE("ComboButton1"), buttonStrings,
CVarCombobox(LanguageManager::Instance().GetString("Combo Button 1").c_str(), CVAR_TRACKER_ENTRANCE("ComboButton1"), buttonStrings,
ComboboxOptions()
.LabelPosition(LabelPositions::Far)
.ComponentAlignment(ComponentAlignments::Right)
.Color(THEME_COLOR)
.DefaultIndex(TRACKER_COMBO_BUTTON_L));
CVarCombobox("Combo Button 2", CVAR_TRACKER_ENTRANCE("ComboButton2"), buttonStrings,
CVarCombobox(LanguageManager::Instance().GetString("Combo Button 2").c_str(), CVAR_TRACKER_ENTRANCE("ComboButton2"), buttonStrings,
ComboboxOptions()
.LabelPosition(LabelPositions::Far)
.ComponentAlignment(ComponentAlignments::Right)
@@ -920,7 +920,7 @@ void EntranceTrackerWindow::DrawElement() {
}
// Begin tracker list
ImGui::BeginChild("ChildEntranceTrackerLocations", ImVec2(0, -8));
ImGui::BeginChild(LanguageManager::Instance().GetString("ChildEntranceTrackerLocations").c_str(), ImVec2(0, -8));
bool showTo = CVarGetInteger(CVAR_TRACKER_ENTRANCE("ShowTo"), 0);
bool showFrom = CVarGetInteger(CVAR_TRACKER_ENTRANCE("ShowFrom"), 0);
bool collapseUndiscovered = CVarGetInteger(CVAR_TRACKER_ENTRANCE("CollapseUndiscovered"), 0);
@@ -1083,7 +1083,7 @@ void EntranceTrackerWindow::InitElement() {
}
void RegisterCheckTrackerWidgets() {
backgroundColorWidget = { .name = "Background Color##EntranceTracker",
backgroundColorWidget = { .name = LanguageManager::Instance().GetString("Background Color##EntranceTracker"),
.type = WidgetType::WIDGET_CVAR_COLOR_PICKER };
backgroundColorWidget.CVar(CVAR_TRACKER_ENTRANCE("BgColor"))
.Options(
@@ -1091,7 +1091,7 @@ void RegisterCheckTrackerWidgets() {
SohGui::GetSohMenu()->AddSearchWidget(
{ backgroundColorWidget, "Randomizer", "Entrance Tracker", "General Settings" });
windowTypeWidget = { .name = "Window Type##EntranceTracker", .type = WidgetType::WIDGET_CVAR_COMBOBOX };
windowTypeWidget = { .name = LanguageManager::Instance().GetString("Window Type##EntranceTracker"), .type = WidgetType::WIDGET_CVAR_COMBOBOX };
windowTypeWidget.CVar(CVAR_TRACKER_ENTRANCE("WindowType"))
.Options(ComboboxOptions()
.DefaultIndex(TRACKER_WINDOW_WINDOW)

View File

@@ -880,7 +880,7 @@ void DrawItem(ItemTrackerItem item) {
actualItemId = item.id;
hasItem = IS_RANDO && (OTRGlobals::Instance->gRandomizer->GetRandoSettingValue(RSK_TRIFORCE_HUNT) !=
RO_TRIFORCE_HUNT_OFF);
itemName = "Triforce Piece";
itemName = LanguageManager::Instance().GetString("Triforce Piece");
break;
case ITEM_NAYRUS_LOVE:
if (IS_RANDO && OTRGlobals::Instance->gRandomizer->GetRandoSettingValue(RSK_ROCS_FEATHER)) {
@@ -890,310 +890,310 @@ void DrawItem(ItemTrackerItem item) {
case RG_ROCS_FEATHER:
actualItemId = item.id;
hasItem = Flags_GetRandomizerInf(RAND_INF_OBTAINED_ROCS_FEATHER);
itemName = "Roc's Feather";
itemName = LanguageManager::Instance().GetString("Roc's Feather");
break;
case RG_DEATH_MOUNTAIN_CRATER_BEAN_SOUL:
actualItemId = item.id;
hasItem = Flags_GetRandomizerInf(RAND_INF_DEATH_MOUNTAIN_CRATER_BEAN_SOUL);
itemName = "Death Mountain Crater Bean Soul";
itemName = LanguageManager::Instance().GetString("Death Mountain Crater Bean Soul");
break;
case RG_DEATH_MOUNTAIN_TRAIL_BEAN_SOUL:
actualItemId = item.id;
hasItem = Flags_GetRandomizerInf(RAND_INF_DEATH_MOUNTAIN_TRAIL_BEAN_SOUL);
itemName = "Death Mountain Trail Bean Soul";
itemName = LanguageManager::Instance().GetString("Death Mountain Trail Bean Soul");
break;
case RG_DESERT_COLOSSUS_BEAN_SOUL:
actualItemId = item.id;
hasItem = Flags_GetRandomizerInf(RAND_INF_DESERT_COLOSSUS_BEAN_SOUL);
itemName = "Desert Colossus Bean Soul";
itemName = LanguageManager::Instance().GetString("Desert Colossus Bean Soul");
break;
case RG_GERUDO_VALLEY_BEAN_SOUL:
actualItemId = item.id;
hasItem = Flags_GetRandomizerInf(RAND_INF_GERUDO_VALLEY_BEAN_SOUL);
itemName = "Gerudo Valley Bean Soul";
itemName = LanguageManager::Instance().GetString("Gerudo Valley Bean Soul");
break;
case RG_GRAVEYARD_BEAN_SOUL:
actualItemId = item.id;
hasItem = Flags_GetRandomizerInf(RAND_INF_GRAVEYARD_BEAN_SOUL);
itemName = "Graveyard Bean Soul";
itemName = LanguageManager::Instance().GetString("Graveyard Bean Soul");
break;
case RG_KOKIRI_FOREST_BEAN_SOUL:
actualItemId = item.id;
hasItem = Flags_GetRandomizerInf(RAND_INF_KOKIRI_FOREST_BEAN_SOUL);
itemName = "Kokiri Forest Bean Soul";
itemName = LanguageManager::Instance().GetString("Kokiri Forest Bean Soul");
break;
case RG_LAKE_HYLIA_BEAN_SOUL:
actualItemId = item.id;
hasItem = Flags_GetRandomizerInf(RAND_INF_LAKE_HYLIA_BEAN_SOUL);
itemName = "Lake Hylia Bean Soul";
itemName = LanguageManager::Instance().GetString("Lake Hylia Bean Soul");
break;
case RG_LOST_WOODS_BRIDGE_BEAN_SOUL:
actualItemId = item.id;
hasItem = Flags_GetRandomizerInf(RAND_INF_LOST_WOODS_BRIDGE_BEAN_SOUL);
itemName = "Lost Woods Bridge Bean Soul";
itemName = LanguageManager::Instance().GetString("Lost Woods Bridge Bean Soul");
break;
case RG_LOST_WOODS_BEAN_SOUL:
actualItemId = item.id;
hasItem = Flags_GetRandomizerInf(RAND_INF_LOST_WOODS_BEAN_SOUL);
itemName = "Lost Woods Theatre Bean Soul";
itemName = LanguageManager::Instance().GetString("Lost Woods Theatre Bean Soul");
break;
case RG_ZORAS_RIVER_BEAN_SOUL:
actualItemId = item.id;
hasItem = Flags_GetRandomizerInf(RAND_INF_ZORAS_RIVER_BEAN_SOUL);
itemName = "Zora's River Bean Soul";
itemName = LanguageManager::Instance().GetString("Zora's River Bean Soul");
break;
case RG_GOHMA_SOUL:
actualItemId = item.id;
hasItem = HasBossSoul(RAND_INF_GOHMA_SOUL);
itemName = "Gohma's Soul";
itemName = LanguageManager::Instance().GetString("Gohma's Soul");
break;
case RG_KING_DODONGO_SOUL:
actualItemId = item.id;
hasItem = HasBossSoul(RAND_INF_KING_DODONGO_SOUL);
itemName = "King Dodongo's Soul";
itemName = LanguageManager::Instance().GetString("King Dodongo's Soul");
break;
case RG_BARINADE_SOUL:
actualItemId = item.id;
hasItem = HasBossSoul(RAND_INF_BARINADE_SOUL);
itemName = "Barinade's Soul";
itemName = LanguageManager::Instance().GetString("Barinade's Soul");
break;
case RG_PHANTOM_GANON_SOUL:
actualItemId = item.id;
hasItem = HasBossSoul(RAND_INF_PHANTOM_GANON_SOUL);
itemName = "Phantom Ganon's Soul";
itemName = LanguageManager::Instance().GetString("Phantom Ganon's Soul");
break;
case RG_VOLVAGIA_SOUL:
actualItemId = item.id;
hasItem = HasBossSoul(RAND_INF_VOLVAGIA_SOUL);
itemName = "Volvagia's Soul";
itemName = LanguageManager::Instance().GetString("Volvagia's Soul");
break;
case RG_MORPHA_SOUL:
actualItemId = item.id;
hasItem = HasBossSoul(RAND_INF_MORPHA_SOUL);
itemName = "Morpha's Soul";
itemName = LanguageManager::Instance().GetString("Morpha's Soul");
break;
case RG_BONGO_BONGO_SOUL:
actualItemId = item.id;
hasItem = HasBossSoul(RAND_INF_BONGO_BONGO_SOUL);
itemName = "Bongo Bongo's Soul";
itemName = LanguageManager::Instance().GetString("Bongo Bongo's Soul");
break;
case RG_TWINROVA_SOUL:
actualItemId = item.id;
hasItem = HasBossSoul(RAND_INF_TWINROVA_SOUL);
itemName = "Twinrova's Soul";
itemName = LanguageManager::Instance().GetString("Twinrova's Soul");
break;
case RG_GANON_SOUL:
actualItemId = item.id;
hasItem = HasBossSoul(RAND_INF_GANON_SOUL);
itemName = "Ganon's Soul";
itemName = LanguageManager::Instance().GetString("Ganon's Soul");
break;
case RG_SPEAK_DEKU:
actualItemId = item.id;
hasItem = Flags_GetRandomizerInf(RAND_INF_CAN_SPEAK_DEKU);
itemName = "Deku Jabber Nut";
itemName = LanguageManager::Instance().GetString("Deku Jabber Nut");
break;
case RG_SPEAK_GERUDO:
actualItemId = item.id;
hasItem = Flags_GetRandomizerInf(RAND_INF_CAN_SPEAK_GERUDO);
itemName = "Gerudo Jabber Nut";
itemName = LanguageManager::Instance().GetString("Gerudo Jabber Nut");
break;
case RG_SPEAK_GORON:
actualItemId = item.id;
hasItem = Flags_GetRandomizerInf(RAND_INF_CAN_SPEAK_GORON);
itemName = "Goron Jabber Nut";
itemName = LanguageManager::Instance().GetString("Goron Jabber Nut");
break;
case RG_SPEAK_HYLIAN:
actualItemId = item.id;
hasItem = Flags_GetRandomizerInf(RAND_INF_CAN_SPEAK_HYLIAN);
itemName = "Hylian Jabber Nut";
itemName = LanguageManager::Instance().GetString("Hylian Jabber Nut");
break;
case RG_SPEAK_KOKIRI:
actualItemId = item.id;
hasItem = Flags_GetRandomizerInf(RAND_INF_CAN_SPEAK_KOKIRI);
itemName = "Kokiri Jabber Nut";
itemName = LanguageManager::Instance().GetString("Kokiri Jabber Nut");
break;
case RG_SPEAK_ZORA:
actualItemId = item.id;
hasItem = Flags_GetRandomizerInf(RAND_INF_CAN_SPEAK_ZORA);
itemName = "Zora Jabber Nut";
itemName = LanguageManager::Instance().GetString("Zora Jabber Nut");
break;
case RG_OCARINA_A_BUTTON:
actualItemId = item.id;
hasItem = Flags_GetRandomizerInf(RAND_INF_HAS_OCARINA_A);
itemName = "Ocarina A Button";
itemName = LanguageManager::Instance().GetString("Ocarina A Button");
break;
case RG_OCARINA_C_UP_BUTTON:
actualItemId = item.id;
hasItem = Flags_GetRandomizerInf(RAND_INF_HAS_OCARINA_C_UP);
itemName = "Ocarina C Up Button";
itemName = LanguageManager::Instance().GetString("Ocarina C Up Button");
break;
case RG_OCARINA_C_DOWN_BUTTON:
actualItemId = item.id;
hasItem = Flags_GetRandomizerInf(RAND_INF_HAS_OCARINA_C_DOWN);
itemName = "Ocarina C Down Button";
itemName = LanguageManager::Instance().GetString("Ocarina C Down Button");
break;
case RG_OCARINA_C_LEFT_BUTTON:
actualItemId = item.id;
hasItem = Flags_GetRandomizerInf(RAND_INF_HAS_OCARINA_C_LEFT);
itemName = "Ocarina C Left Button";
itemName = LanguageManager::Instance().GetString("Ocarina C Left Button");
break;
case RG_OCARINA_C_RIGHT_BUTTON:
actualItemId = item.id;
hasItem = Flags_GetRandomizerInf(RAND_INF_HAS_OCARINA_C_RIGHT);
itemName = "Ocarina C Right Button";
itemName = LanguageManager::Instance().GetString("Ocarina C Right Button");
break;
case ITEM_FISHING_POLE:
actualItemId = item.id;
hasItem = IS_RANDO && Flags_GetRandomizerInf(RAND_INF_FISHING_POLE_FOUND);
itemName = "Fishing Pole";
itemName = LanguageManager::Instance().GetString("Fishing Pole");
break;
case RG_GUARD_HOUSE_KEY:
actualItemId = item.id;
hasItem = Flags_GetRandomizerInf(RAND_INF_GUARD_HOUSE_KEY_OBTAINED);
itemName = "Guard House Key";
itemName = LanguageManager::Instance().GetString("Guard House Key");
break;
case RG_MARKET_BAZAAR_KEY:
actualItemId = item.id;
hasItem = Flags_GetRandomizerInf(RAND_INF_MARKET_BAZAAR_KEY_OBTAINED);
itemName = "Market Bazaar Key";
itemName = LanguageManager::Instance().GetString("Market Bazaar Key");
break;
case RG_MARKET_POTION_SHOP_KEY:
actualItemId = item.id;
hasItem = Flags_GetRandomizerInf(RAND_INF_MARKET_POTION_SHOP_KEY_OBTAINED);
itemName = "Market Potion Shop Key";
itemName = LanguageManager::Instance().GetString("Market Potion Shop Key");
break;
case RG_MASK_SHOP_KEY:
actualItemId = item.id;
hasItem = Flags_GetRandomizerInf(RAND_INF_MASK_SHOP_KEY_OBTAINED);
itemName = "Mask Shop Key";
itemName = LanguageManager::Instance().GetString("Mask Shop Key");
break;
case RG_MARKET_SHOOTING_GALLERY_KEY:
actualItemId = item.id;
hasItem = Flags_GetRandomizerInf(RAND_INF_MARKET_SHOOTING_GALLERY_KEY_OBTAINED);
itemName = "Market Shooting Gallery Key";
itemName = LanguageManager::Instance().GetString("Market Shooting Gallery Key");
break;
case RG_BOMBCHU_BOWLING_KEY:
actualItemId = item.id;
hasItem = Flags_GetRandomizerInf(RAND_INF_BOMBCHU_BOWLING_KEY_OBTAINED);
itemName = "Bombchu Bowling Key";
itemName = LanguageManager::Instance().GetString("Bombchu Bowling Key");
break;
case RG_TREASURE_CHEST_GAME_BUILDING_KEY:
actualItemId = item.id;
hasItem = Flags_GetRandomizerInf(RAND_INF_TREASURE_CHEST_GAME_BUILDING_KEY_OBTAINED);
itemName = "Treasure Chest Game Building Key";
itemName = LanguageManager::Instance().GetString("Treasure Chest Game Building Key");
break;
case RG_BOMBCHU_SHOP_KEY:
actualItemId = item.id;
hasItem = Flags_GetRandomizerInf(RAND_INF_BOMBCHU_SHOP_KEY_OBTAINED);
itemName = "Bombchu Shop Key";
itemName = LanguageManager::Instance().GetString("Bombchu Shop Key");
break;
case RG_RICHARDS_HOUSE_KEY:
actualItemId = item.id;
hasItem = Flags_GetRandomizerInf(RAND_INF_RICHARDS_HOUSE_KEY_OBTAINED);
itemName = "Richards House Key";
itemName = LanguageManager::Instance().GetString("Richards House Key");
break;
case RG_ALLEY_HOUSE_KEY:
actualItemId = item.id;
hasItem = Flags_GetRandomizerInf(RAND_INF_ALLEY_HOUSE_KEY_OBTAINED);
itemName = "Alley House Key";
itemName = LanguageManager::Instance().GetString("Alley House Key");
break;
case RG_KAK_BAZAAR_KEY:
actualItemId = item.id;
hasItem = Flags_GetRandomizerInf(RAND_INF_KAK_BAZAAR_KEY_OBTAINED);
itemName = "Kak Bazaar Key";
itemName = LanguageManager::Instance().GetString("Kak Bazaar Key");
break;
case RG_KAK_POTION_SHOP_KEY:
actualItemId = item.id;
hasItem = Flags_GetRandomizerInf(RAND_INF_KAK_POTION_SHOP_KEY_OBTAINED);
itemName = "Kak Potion Shop Key";
itemName = LanguageManager::Instance().GetString("Kak Potion Shop Key");
break;
case RG_BOSS_HOUSE_KEY:
actualItemId = item.id;
hasItem = Flags_GetRandomizerInf(RAND_INF_BOSS_HOUSE_KEY_OBTAINED);
itemName = "Boss House Key";
itemName = LanguageManager::Instance().GetString("Boss House Key");
break;
case RG_GRANNYS_POTION_SHOP_KEY:
actualItemId = item.id;
hasItem = Flags_GetRandomizerInf(RAND_INF_GRANNYS_POTION_SHOP_KEY_OBTAINED);
itemName = "Granny's Potion Shop Key";
itemName = LanguageManager::Instance().GetString("Granny's Potion Shop Key");
break;
case RG_SKULLTULA_HOUSE_KEY:
actualItemId = item.id;
hasItem = Flags_GetRandomizerInf(RAND_INF_SKULLTULA_HOUSE_KEY_OBTAINED);
itemName = "Skulltula House Key";
itemName = LanguageManager::Instance().GetString("Skulltula House Key");
break;
case RG_IMPAS_HOUSE_KEY:
actualItemId = item.id;
hasItem = Flags_GetRandomizerInf(RAND_INF_IMPAS_HOUSE_KEY_OBTAINED);
itemName = "Impa's House Key";
itemName = LanguageManager::Instance().GetString("Impa's House Key");
break;
case RG_WINDMILL_KEY:
actualItemId = item.id;
hasItem = Flags_GetRandomizerInf(RAND_INF_WINDMILL_KEY_OBTAINED);
itemName = "Windmill Key";
itemName = LanguageManager::Instance().GetString("Windmill Key");
break;
case RG_KAK_SHOOTING_GALLERY_KEY:
actualItemId = item.id;
hasItem = Flags_GetRandomizerInf(RAND_INF_KAK_SHOOTING_GALLERY_KEY_OBTAINED);
itemName = "Kak Shooting Gallery Key";
itemName = LanguageManager::Instance().GetString("Kak Shooting Gallery Key");
break;
case RG_DAMPES_HUT_KEY:
actualItemId = item.id;
hasItem = Flags_GetRandomizerInf(RAND_INF_DAMPES_HUT_KEY_OBTAINED);
itemName = "Dampé's Hut Key";
itemName = LanguageManager::Instance().GetString("Dampé's Hut Key");
break;
case RG_TALONS_HOUSE_KEY:
actualItemId = item.id;
hasItem = Flags_GetRandomizerInf(RAND_INF_TALONS_HOUSE_KEY_OBTAINED);
itemName = "Talon's House Key";
itemName = LanguageManager::Instance().GetString("Talon's House Key");
break;
case RG_STABLES_KEY:
actualItemId = item.id;
hasItem = Flags_GetRandomizerInf(RAND_INF_STABLES_KEY_OBTAINED);
itemName = "Stables Key";
itemName = LanguageManager::Instance().GetString("Stables Key");
break;
case RG_BACK_TOWER_KEY:
actualItemId = item.id;
hasItem = Flags_GetRandomizerInf(RAND_INF_BACK_TOWER_KEY_OBTAINED);
itemName = "Back Tower Key";
itemName = LanguageManager::Instance().GetString("Back Tower Key");
break;
case RG_HYLIA_LAB_KEY:
actualItemId = item.id;
hasItem = Flags_GetRandomizerInf(RAND_INF_HYLIA_LAB_KEY_OBTAINED);
itemName = "Hylia Lab Key";
itemName = LanguageManager::Instance().GetString("Hylia Lab Key");
break;
case RG_FISHING_HOLE_KEY:
actualItemId = item.id;
hasItem = Flags_GetRandomizerInf(RAND_INF_FISHING_HOLE_KEY_OBTAINED);
itemName = "Fishing Hole Key";
itemName = LanguageManager::Instance().GetString("Fishing Hole Key");
break;
case RG_BRONZE_SCALE:
actualItemId = item.id;
hasItem = Flags_GetRandomizerInf(RAND_INF_CAN_SWIM);
itemName = "Swim";
itemName = LanguageManager::Instance().GetString("Swim");
break;
case RG_CRAWL:
actualItemId = item.id;
hasItem = Flags_GetRandomizerInf(RAND_INF_CAN_CRAWL);
itemName = "Crawl";
itemName = LanguageManager::Instance().GetString("Crawl");
break;
case RG_CLIMB:
actualItemId = item.id;
hasItem = Flags_GetRandomizerInf(RAND_INF_CAN_CLIMB);
itemName = "Climb";
itemName = LanguageManager::Instance().GetString("Climb");
break;
case RG_POWER_BRACELET:
actualItemId = item.id;
hasItem = Flags_GetRandomizerInf(RAND_INF_CAN_GRAB);
itemName = "Grab";
itemName = LanguageManager::Instance().GetString("Grab");
break;
case RG_OPEN_CHEST:
actualItemId = item.id;
hasItem = Flags_GetRandomizerInf(RAND_INF_CAN_OPEN_CHEST);
itemName = "Open";
itemName = LanguageManager::Instance().GetString("Open");
break;
}
@@ -2044,14 +2044,14 @@ void ItemTrackerSettingsWindow::DrawElement() {
SohGui::mSohMenu->MenuDrawItem(windowTypeWidget, 250, THEME_COLOR);
if (CVarGetInteger(CVAR_TRACKER_ITEM("WindowType"), TRACKER_WINDOW_FLOATING) == TRACKER_WINDOW_FLOATING) {
if (CVarCheckbox("Enable Dragging", CVAR_TRACKER_ITEM("Draggable"), CheckboxOptions().Color(THEME_COLOR))) {
if (CVarCheckbox(LanguageManager::Instance().GetString("Enable Dragging").c_str(), CVAR_TRACKER_ITEM("Draggable"), CheckboxOptions().Color(THEME_COLOR))) {
shouldUpdateVectors = true;
}
if (CVarCheckbox("Only Enable While Paused", CVAR_TRACKER_ITEM("ShowOnlyPaused"),
if (CVarCheckbox(LanguageManager::Instance().GetString("Only Enable While Paused").c_str(), CVAR_TRACKER_ITEM("ShowOnlyPaused"),
CheckboxOptions().Color(THEME_COLOR))) {
shouldUpdateVectors = true;
}
if (CVarCombobox("Display Mode", CVAR_TRACKER_ITEM("DisplayType.Main"), showMode,
if (CVarCombobox(LanguageManager::Instance().GetString("Display Mode").c_str(), CVAR_TRACKER_ITEM("DisplayType.Main"), showMode,
ComboboxOptions()
.DefaultIndex(TRACKER_DISPLAY_ALWAYS)
.ComponentAlignment(ComponentAlignments::Right)
@@ -2061,7 +2061,7 @@ void ItemTrackerSettingsWindow::DrawElement() {
}
if (CVarGetInteger(CVAR_TRACKER_ITEM("DisplayType.Main"), TRACKER_DISPLAY_ALWAYS) ==
TRACKER_DISPLAY_COMBO_BUTTON) {
if (CVarCombobox("Combo Button 1", CVAR_TRACKER_ITEM("ComboButton1"), buttonStrings,
if (CVarCombobox(LanguageManager::Instance().GetString("Combo Button 1").c_str(), CVAR_TRACKER_ITEM("ComboButton1"), buttonStrings,
ComboboxOptions()
.DefaultIndex(TRACKER_COMBO_BUTTON_L)
.ComponentAlignment(ComponentAlignments::Right)
@@ -2069,7 +2069,7 @@ void ItemTrackerSettingsWindow::DrawElement() {
.Color(THEME_COLOR))) {
shouldUpdateVectors = true;
}
if (CVarCombobox("Combo Button 2", CVAR_TRACKER_ITEM("ComboButton2"), buttonStrings,
if (CVarCombobox(LanguageManager::Instance().GetString("Combo Button 2").c_str(), CVAR_TRACKER_ITEM("ComboButton2"), buttonStrings,
ComboboxOptions()
.DefaultIndex(TRACKER_COMBO_BUTTON_R)
.ComponentAlignment(ComponentAlignments::Right)
@@ -2080,11 +2080,11 @@ void ItemTrackerSettingsWindow::DrawElement() {
}
}
ImGui::Separator();
CVarSliderInt("Icon size : %dpx", CVAR_TRACKER_ITEM("IconSize"),
CVarSliderInt(LanguageManager::Instance().GetString("Icon size : %dpx").c_str(), CVAR_TRACKER_ITEM("IconSize"),
IntSliderOptions().Min(25).Max(128).DefaultValue(36).Color(THEME_COLOR));
CVarSliderInt("Icon margins : %dpx", CVAR_TRACKER_ITEM("IconSpacing"),
CVarSliderInt(LanguageManager::Instance().GetString("Icon margins : %dpx").c_str(), CVAR_TRACKER_ITEM("IconSpacing"),
IntSliderOptions().Min(-5).Max(50).DefaultValue(12).Color(THEME_COLOR));
CVarSliderInt("Text size : %dpx", CVAR_TRACKER_ITEM("TextSize"),
CVarSliderInt(LanguageManager::Instance().GetString("Text size : %dpx").c_str(), CVAR_TRACKER_ITEM("TextSize"),
IntSliderOptions().Min(1).Max(30).DefaultValue(13).Color(THEME_COLOR));
ImGui::NewLine();
@@ -2093,7 +2093,7 @@ void ItemTrackerSettingsWindow::DrawElement() {
ITEM_TRACKER_NUMBER_CURRENT_CAPACITY_ONLY ||
CVarGetInteger(CVAR_TRACKER_ITEM("ItemCountType"), ITEM_TRACKER_NUMBER_CURRENT_CAPACITY_ONLY) ==
ITEM_TRACKER_NUMBER_CURRENT_AMMO_ONLY) {
if (CVarCheckbox("Align count to left side", CVAR_TRACKER_ITEM("ItemCountAlignLeft"),
if (CVarCheckbox(LanguageManager::Instance().GetString("Align count to left side").c_str(), CVAR_TRACKER_ITEM("ItemCountAlignLeft"),
CheckboxOptions().Color(THEME_COLOR))) {
shouldUpdateVectors = true;
}
@@ -2104,7 +2104,7 @@ void ItemTrackerSettingsWindow::DrawElement() {
ImGui::TableNextColumn();
if (CVarCombobox("Inventory", CVAR_TRACKER_ITEM("DisplayType.Inventory"), displayTypes,
if (CVarCombobox(LanguageManager::Instance().GetString("Inventory").c_str(), CVAR_TRACKER_ITEM("DisplayType.Inventory"), displayTypes,
ComboboxOptions()
.DefaultIndex(SECTION_DISPLAY_MAIN_WINDOW)
.ComponentAlignment(ComponentAlignments::Right)
@@ -2112,7 +2112,7 @@ void ItemTrackerSettingsWindow::DrawElement() {
.Color(THEME_COLOR))) {
shouldUpdateVectors = true;
}
if (CVarCombobox("Equipment", CVAR_TRACKER_ITEM("DisplayType.Equipment"), displayTypes,
if (CVarCombobox(LanguageManager::Instance().GetString("Equipment").c_str(), CVAR_TRACKER_ITEM("DisplayType.Equipment"), displayTypes,
ComboboxOptions()
.DefaultIndex(SECTION_DISPLAY_MAIN_WINDOW)
.ComponentAlignment(ComponentAlignments::Right)
@@ -2120,7 +2120,7 @@ void ItemTrackerSettingsWindow::DrawElement() {
.Color(THEME_COLOR))) {
shouldUpdateVectors = true;
}
if (CVarCombobox("Misc", CVAR_TRACKER_ITEM("DisplayType.Misc"), displayTypes,
if (CVarCombobox(LanguageManager::Instance().GetString("Misc").c_str(), CVAR_TRACKER_ITEM("DisplayType.Misc"), displayTypes,
ComboboxOptions()
.DefaultIndex(SECTION_DISPLAY_MAIN_WINDOW)
.ComponentAlignment(ComponentAlignments::Right)
@@ -2128,7 +2128,7 @@ void ItemTrackerSettingsWindow::DrawElement() {
.Color(THEME_COLOR))) {
shouldUpdateVectors = true;
}
if (CVarCombobox("Dungeon Rewards", CVAR_TRACKER_ITEM("DisplayType.DungeonRewards"), displayTypes,
if (CVarCombobox(LanguageManager::Instance().GetString("Dungeon Rewards").c_str(), CVAR_TRACKER_ITEM("DisplayType.DungeonRewards"), displayTypes,
ComboboxOptions()
.DefaultIndex(SECTION_DISPLAY_MAIN_WINDOW)
.ComponentAlignment(ComponentAlignments::Right)
@@ -2138,12 +2138,12 @@ void ItemTrackerSettingsWindow::DrawElement() {
}
if (CVarGetInteger(CVAR_TRACKER_ITEM("DisplayType.DungeonRewards"), SECTION_DISPLAY_MAIN_WINDOW) ==
SECTION_DISPLAY_SEPARATE) {
if (CVarCheckbox("Circle display", CVAR_TRACKER_ITEM("DungeonRewardsLayout"),
if (CVarCheckbox(LanguageManager::Instance().GetString("Circle display").c_str(), CVAR_TRACKER_ITEM("DungeonRewardsLayout"),
CheckboxOptions().DefaultValue(false).Color(THEME_COLOR))) {
shouldUpdateVectors = true;
}
}
if (CVarCombobox("Songs", CVAR_TRACKER_ITEM("DisplayType.Songs"), displayTypes,
if (CVarCombobox(LanguageManager::Instance().GetString("Songs").c_str(), CVAR_TRACKER_ITEM("DisplayType.Songs"), displayTypes,
ComboboxOptions()
.DefaultIndex(SECTION_DISPLAY_MAIN_WINDOW)
.ComponentAlignment(ComponentAlignments::Right)
@@ -2156,12 +2156,12 @@ void ItemTrackerSettingsWindow::DrawElement() {
SECTION_DISPLAY_HIDDEN) {
if (CVarGetInteger(CVAR_TRACKER_ITEM("DisplayType.DungeonItems"), SECTION_DISPLAY_HIDDEN) ==
SECTION_DISPLAY_SEPARATE) {
if (CVarCheckbox("Horizontal display", CVAR_TRACKER_ITEM("DungeonItems.Layout"),
if (CVarCheckbox(LanguageManager::Instance().GetString("Horizontal display").c_str(), CVAR_TRACKER_ITEM("DungeonItems.Layout"),
CheckboxOptions().DefaultValue(true).Color(THEME_COLOR))) {
shouldUpdateVectors = true;
}
}
if (CVarCheckbox("Maps and compasses", CVAR_TRACKER_ITEM("DungeonItems.DisplayMaps"),
if (CVarCheckbox(LanguageManager::Instance().GetString("Maps and compasses").c_str(), CVAR_TRACKER_ITEM("DungeonItems.DisplayMaps"),
CheckboxOptions().DefaultValue(true).Color(THEME_COLOR))) {
shouldUpdateVectors = true;
}
@@ -2175,7 +2175,7 @@ void ItemTrackerSettingsWindow::DrawElement() {
SohGui::mSohMenu->MenuDrawItem(overworldKeysTracking, 250, THEME_COLOR);
SohGui::mSohMenu->MenuDrawItem(fishingPoleTracking, 250, THEME_COLOR);
if (CVarCombobox("Total Checks", CVAR_TRACKER_ITEM("TotalChecks.DisplayType"), minimalDisplayTypes,
if (CVarCombobox(LanguageManager::Instance().GetString("Total Checks").c_str(), CVAR_TRACKER_ITEM("TotalChecks.DisplayType"), minimalDisplayTypes,
ComboboxOptions()
.DefaultIndex(SECTION_DISPLAY_MINIMAL_HIDDEN)
.ComponentAlignment(ComponentAlignments::Right)
@@ -2206,13 +2206,13 @@ void ItemTrackerWindow::InitElement() {
}
void RegisterItemTrackerWidgets() {
backgroundColor = { .name = "Background Color##ItemTracker", .type = WidgetType::WIDGET_CVAR_COLOR_PICKER };
backgroundColor = { .name = LanguageManager::Instance().GetString("Background Color##ItemTracker"), .type = WidgetType::WIDGET_CVAR_COLOR_PICKER };
backgroundColor.CVar(CVAR_TRACKER_ITEM("BgColor"))
.Options(
ColorPickerOptions().Color(THEME_COLOR).DefaultValue({ 0, 0, 0, 0 }).UseAlpha().ShowReset().ShowRandom());
SohGui::mSohMenu->AddSearchWidget({ backgroundColor, "Randomizer", "Item Tracker", "General Settings" });
windowTypeWidget = { .name = "Window Type##ItemTracker", .type = WidgetType::WIDGET_CVAR_COMBOBOX };
windowTypeWidget = { .name = LanguageManager::Instance().GetString("Window Type##ItemTracker"), .type = WidgetType::WIDGET_CVAR_COMBOBOX };
windowTypeWidget.CVar(CVAR_TRACKER_ITEM("WindowType"))
.Options(ComboboxOptions()
.DefaultIndex(TRACKER_WINDOW_FLOATING)
@@ -2225,7 +2225,7 @@ void RegisterItemTrackerWidgets() {
enableDraggingWidget;
onlyPausedWidget;
ammoTracking = { .name = "Ammo/Capacity Tracking", .type = WidgetType::WIDGET_CVAR_COMBOBOX };
ammoTracking = { .name = LanguageManager::Instance().GetString("Ammo/Capacity Tracking"), .type = WidgetType::WIDGET_CVAR_COMBOBOX };
ammoTracking.CVar(CVAR_TRACKER_ITEM("ItemCountType"))
.Options(ComboboxOptions()
.DefaultIndex(ITEM_TRACKER_NUMBER_CURRENT_CAPACITY_ONLY)
@@ -2237,7 +2237,7 @@ void RegisterItemTrackerWidgets() {
"\n\nNote: items without capacity upgrades will track ammo even in capacity mode"));
SohGui::mSohMenu->AddSearchWidget({ ammoTracking, "Randomizer", "Item Tracker", "General Settings" });
keyTracking = { .name = "Key Count Tracking", .type = WidgetType::WIDGET_CVAR_COMBOBOX };
keyTracking = { .name = LanguageManager::Instance().GetString("Key Count Tracking"), .type = WidgetType::WIDGET_CVAR_COMBOBOX };
keyTracking.CVar(CVAR_TRACKER_ITEM("KeyCounts"))
.Options(ComboboxOptions()
.DefaultIndex(KEYS_COLLECTED_MAX)
@@ -2245,10 +2245,10 @@ void RegisterItemTrackerWidgets() {
.LabelPosition(LabelPositions::Far)
.Color(THEME_COLOR)
.ComboMap(itemTrackerKeyTrackOptions)
.Tooltip("Customize what numbers are shown for key tracking."));
.Tooltip(LanguageManager::Instance().GetString("Customize what numbers are shown for key tracking.").c_str()));
SohGui::mSohMenu->AddSearchWidget({ keyTracking, "Randomizer", "Item Tracker", "General Settings" });
triforcePieceTracking = { .name = "Triforce Pieces", .type = WidgetType::WIDGET_CVAR_COMBOBOX };
triforcePieceTracking = { .name = LanguageManager::Instance().GetString("Triforce Pieces"), .type = WidgetType::WIDGET_CVAR_COMBOBOX };
triforcePieceTracking.CVar(CVAR_TRACKER_ITEM("DisplayType.TriforcePieces"))
.Options(ComboboxOptions()
.DefaultIndex(SECTION_DISPLAY_HIDDEN)
@@ -2259,7 +2259,7 @@ void RegisterItemTrackerWidgets() {
.Callback([](WidgetInfo& info) { shouldUpdateVectors = true; });
SohGui::mSohMenu->AddSearchWidget({ triforcePieceTracking, "Randomizer", "Item Tracker", "General Settings" });
dungeonItemTracking = { .name = "Dungeon Items", .type = WidgetType::WIDGET_CVAR_COMBOBOX };
dungeonItemTracking = { .name = LanguageManager::Instance().GetString("Dungeon Items"), .type = WidgetType::WIDGET_CVAR_COMBOBOX };
dungeonItemTracking.CVar(CVAR_TRACKER_ITEM("DisplayType.DungeonItems"))
.Options(ComboboxOptions()
.DefaultIndex(SECTION_DISPLAY_HIDDEN)
@@ -2272,7 +2272,7 @@ void RegisterItemTrackerWidgets() {
SohGui::mSohMenu->AddSearchWidget(
{ dungeonItemTracking, "Randomizer", "Item Tracker", "General Settings", "keys maps compasses icon" });
gregTracking = { .name = "Greg", .type = WidgetType::WIDGET_CVAR_COMBOBOX };
gregTracking = { .name = LanguageManager::Instance().GetString("Greg"), .type = WidgetType::WIDGET_CVAR_COMBOBOX };
gregTracking.CVar(CVAR_TRACKER_ITEM("DisplayType.Greg"))
.Options(ComboboxOptions()
.DefaultIndex(SECTION_DISPLAY_EXTENDED_HIDDEN)
@@ -2284,7 +2284,7 @@ void RegisterItemTrackerWidgets() {
;
SohGui::mSohMenu->AddSearchWidget({ gregTracking, "Randomizer", "Item Tracker", "General Settings", "icon" });
beanSoulsTracking = { .name = "Bean Souls", .type = WidgetType::WIDGET_CVAR_COMBOBOX };
beanSoulsTracking = { .name = LanguageManager::Instance().GetString("Bean Souls"), .type = WidgetType::WIDGET_CVAR_COMBOBOX };
beanSoulsTracking.CVar(CVAR_TRACKER_ITEM("DisplayType.BeanSouls"))
.Options(ComboboxOptions()
.DefaultIndex(SECTION_DISPLAY_HIDDEN)
@@ -2296,7 +2296,7 @@ void RegisterItemTrackerWidgets() {
;
SohGui::mSohMenu->AddSearchWidget({ beanSoulsTracking, "Randomizer", "Item Tracker", "General Settings", "icon" });
bossSoulsTracking = { .name = "Boss Souls", .type = WidgetType::WIDGET_CVAR_COMBOBOX };
bossSoulsTracking = { .name = LanguageManager::Instance().GetString("Boss Souls"), .type = WidgetType::WIDGET_CVAR_COMBOBOX };
bossSoulsTracking.CVar(CVAR_TRACKER_ITEM("DisplayType.BossSouls"))
.Options(ComboboxOptions()
.DefaultIndex(SECTION_DISPLAY_HIDDEN)
@@ -2308,7 +2308,7 @@ void RegisterItemTrackerWidgets() {
;
SohGui::mSohMenu->AddSearchWidget({ bossSoulsTracking, "Randomizer", "Item Tracker", "General Settings", "icon" });
jabberNutsTracking = { .name = "Jabber Nuts", .type = WidgetType::WIDGET_CVAR_COMBOBOX };
jabberNutsTracking = { .name = LanguageManager::Instance().GetString("Jabber Nuts"), .type = WidgetType::WIDGET_CVAR_COMBOBOX };
jabberNutsTracking.CVar(CVAR_TRACKER_ITEM("DisplayType.JabberNuts"))
.Options(ComboboxOptions()
.DefaultIndex(SECTION_DISPLAY_HIDDEN)
@@ -2320,7 +2320,7 @@ void RegisterItemTrackerWidgets() {
;
SohGui::mSohMenu->AddSearchWidget({ jabberNutsTracking, "Randomizer", "Item Tracker", "General Settings", "icon" });
triforcePieceCount = { .name = "Triforce Piece Count Tracking", .type = WidgetType::WIDGET_CVAR_COMBOBOX };
triforcePieceCount = { .name = LanguageManager::Instance().GetString("Triforce Piece Count Tracking"), .type = WidgetType::WIDGET_CVAR_COMBOBOX };
triforcePieceCount.CVar(CVAR_TRACKER_ITEM("TriforcePieceCounts"))
.Options(ComboboxOptions()
.DefaultIndex(TRIFORCE_PIECE_COLLECTED_REQUIRED_MAX)
@@ -2328,10 +2328,10 @@ void RegisterItemTrackerWidgets() {
.LabelPosition(LabelPositions::Far)
.Color(THEME_COLOR)
.ComboMap(itemTrackerTriforcePieceTrackOptions)
.Tooltip("Customize what numbers are shown for triforce piece tracking."));
.Tooltip(LanguageManager::Instance().GetString("Customize what numbers are shown for triforce piece tracking.").c_str()));
SohGui::mSohMenu->AddSearchWidget({ triforcePieceCount, "Randomizer", "Item Tracker", "General Settings" });
ocarinaButtonTracking = { .name = "Ocarina Buttons", .type = WidgetType::WIDGET_CVAR_COMBOBOX };
ocarinaButtonTracking = { .name = LanguageManager::Instance().GetString("Ocarina Buttons"), .type = WidgetType::WIDGET_CVAR_COMBOBOX };
ocarinaButtonTracking.CVar(CVAR_TRACKER_ITEM("DisplayType.OcarinaButtons"))
.Options(ComboboxOptions()
.DefaultIndex(SECTION_DISPLAY_HIDDEN)
@@ -2344,7 +2344,7 @@ void RegisterItemTrackerWidgets() {
SohGui::mSohMenu->AddSearchWidget(
{ ocarinaButtonTracking, "Randomizer", "Item Tracker", "General Settings", "icon" });
overworldKeysTracking = { .name = "Overworld Keys", .type = WidgetType::WIDGET_CVAR_COMBOBOX };
overworldKeysTracking = { .name = LanguageManager::Instance().GetString("Overworld Keys"), .type = WidgetType::WIDGET_CVAR_COMBOBOX };
overworldKeysTracking.CVar(CVAR_TRACKER_ITEM("DisplayType.OverworldKeys"))
.Options(ComboboxOptions()
.DefaultIndex(SECTION_DISPLAY_HIDDEN)
@@ -2357,7 +2357,7 @@ void RegisterItemTrackerWidgets() {
SohGui::mSohMenu->AddSearchWidget(
{ overworldKeysTracking, "Randomizer", "Item Tracker", "General Settings", "icon" });
fishingPoleTracking = { .name = "Fishing Pole", .type = WidgetType::WIDGET_CVAR_COMBOBOX };
fishingPoleTracking = { .name = LanguageManager::Instance().GetString("Fishing Pole"), .type = WidgetType::WIDGET_CVAR_COMBOBOX };
fishingPoleTracking.CVar(CVAR_TRACKER_ITEM("DisplayType.FishingPole"))
.Options(ComboboxOptions()
.DefaultIndex(SECTION_DISPLAY_EXTENDED_HIDDEN)
@@ -2370,9 +2370,9 @@ void RegisterItemTrackerWidgets() {
SohGui::mSohMenu->AddSearchWidget(
{ fishingPoleTracking, "Randomizer", "Item Tracker", "General Settings", "icon" });
personalNotesWiget = { .name = "Personal notes", .type = WidgetType::WIDGET_CVAR_COMBOBOX };
personalNotesWiget = { .name = LanguageManager::Instance().GetString("Personal notes"), .type = WidgetType::WIDGET_CVAR_COMBOBOX };
static const char* notesDisabledTooltip =
"Disabled because tracker is set to floating and display combo is enabled.";
LanguageManager::Instance().GetString("Disabled because tracker is set to floating and display combo is enabled.").c_str();
personalNotesWiget.CVar(CVAR_TRACKER_ITEM("DisplayType.Notes"))
.Options(ComboboxOptions()
.DefaultIndex(SECTION_DISPLAY_HIDDEN)
@@ -2384,11 +2384,11 @@ void RegisterItemTrackerWidgets() {
;
SohGui::mSohMenu->AddSearchWidget({ personalNotesWiget, "Randomizer", "Item Tracker", "General Settings" });
hookshotIdentWidget = { .name = "Show Hookshot Identifiers", .type = WidgetType::WIDGET_CVAR_CHECKBOX };
hookshotIdentWidget = { .name = LanguageManager::Instance().GetString("Show Hookshot Identifiers"), .type = WidgetType::WIDGET_CVAR_CHECKBOX };
hookshotIdentWidget.CVar(CVAR_TRACKER_ITEM("HookshotIdentifier"))
.Options(CheckboxOptions()
.Color(THEME_COLOR)
.Tooltip("Shows an 'H' or an 'L' to more easily distinguish between Hookshot and Longshot."));
.Tooltip(LanguageManager::Instance().GetString("Shows an 'H' or an 'L' to more easily distinguish between Hookshot and Longshot.").c_str()));
SohGui::mSohMenu->AddSearchWidget({ hookshotIdentWidget, "Randomizer", "Item Tracker", "General Settings" });
}