Skip to content

Commit 65e2987

Browse files
authored
Consolidate the Enhancements menu (#349)
* Consolidate the Enhancements menu * Merge "main" branch again * added Preferences separator
1 parent c0d1d22 commit 65e2987

1 file changed

Lines changed: 63 additions & 66 deletions

File tree

src/dusk/imgui/ImGuiMenuEnhancements.cpp

Lines changed: 63 additions & 66 deletions
Original file line numberDiff line numberDiff line change
@@ -9,107 +9,117 @@ namespace dusk {
99

1010
void ImGuiMenuEnhancements::draw() {
1111
if (ImGui::BeginMenu("Enhancements")) {
12-
if (ImGui::BeginMenu("Quality of Life")) {
13-
config::ImGuiCheckbox("Quick Transform (R+Y)", getSettings().game.enableQuickTransform);
12+
if (ImGui::BeginMenu("Gameplay")) {
13+
ImGui::SeparatorText("Preferences");
14+
15+
config::ImGuiCheckbox("Mirror Mode", getSettings().game.enableMirrorMode);
1416
if (ImGui::IsItemHovered()) {
15-
ImGui::SetTooltip("Allows you to quickly transform between forms\n"
16-
"without having to talk to Midna.");
17+
ImGui::SetTooltip("Mirrors the world horizontally, matching the Wii version of the game.");
1718
}
1819

19-
config::ImGuiCheckbox("Sun's Song (R+X)", getSettings().game.sunsSong);
20+
config::ImGuiCheckbox("Disable Main HUD", getSettings().game.disableMainHUD);
2021
if (ImGui::IsItemHovered()) {
21-
ImGui::SetTooltip("Allows Wolf Link to howl and change the time of day.");
22+
ImGui::SetTooltip("Disables the main HUD of the game.\n"
23+
"Useful for recording or a more immersive experience!");
2224
}
2325

24-
config::ImGuiCheckbox("Bigger Wallets", getSettings().game.biggerWallets);
26+
ImGui::SeparatorText("Difficulty");
27+
28+
config::ImGuiSliderInt("Damage Multiplier", getSettings().game.damageMultiplier, 1, 8, "x%d");
29+
30+
config::ImGuiCheckbox("Instant Death", getSettings().game.instantDeath);
2531
if (ImGui::IsItemHovered()) {
26-
ImGui::SetTooltip("Wallet sizes are like in the HD version. (500, 1000, 2000)");
32+
ImGui::SetTooltip("Any hit will instantly kill you.");
2733
}
2834

29-
config::ImGuiCheckbox("No Rupee Returns", getSettings().game.noReturnRupees);
35+
config::ImGuiCheckbox("No Heart Drops", getSettings().game.noHeartDrops);
3036
if (ImGui::IsItemHovered()) {
31-
ImGui::SetTooltip("Always collect Rupees even if your Wallet is too full.");
37+
ImGui::SetTooltip("Hearts will never drop from enemies,\n"
38+
"pots and various other places.");
3239
}
3340

34-
config::ImGuiCheckbox("Disable Rupee Cutscenes", getSettings().game.disableRupeeCutscenes);
41+
ImGui::SeparatorText("Quality of Life");
42+
43+
config::ImGuiCheckbox("Bigger Wallets", getSettings().game.biggerWallets);
3544
if (ImGui::IsItemHovered()) {
36-
ImGui::SetTooltip("Rupees won't play cutscenes after you've collected them the first time.");
45+
ImGui::SetTooltip("Wallet sizes are like in the HD version. (500, 1000, 2000)");
3746
}
3847

39-
config::ImGuiCheckbox("No Sword Recoil", getSettings().game.noSwordRecoil);
48+
config::ImGuiCheckbox("Disable Rupee Cutscenes", getSettings().game.disableRupeeCutscenes);
4049
if (ImGui::IsItemHovered()) {
41-
ImGui::SetTooltip("Link won't recoil when his sword hits walls.");
50+
ImGui::SetTooltip("Rupees won't play cutscenes after you've collected them the first time.");
4251
}
4352

4453
config::ImGuiCheckbox("Faster Climbing", getSettings().game.fastClimbing);
4554
if (ImGui::IsItemHovered()) {
4655
ImGui::SetTooltip("Quicker climbing on ladders and vines like the HD version.");
4756
}
4857

58+
config::ImGuiCheckbox("Faster Tears of Light", getSettings().game.fastTears);
59+
if (ImGui::IsItemHovered()) {
60+
ImGui::SetTooltip("Tears of Light dropped by Shadow Insects pop out faster like the HD version.");
61+
}
62+
63+
config::ImGuiCheckbox("Instant Saves", getSettings().game.instantSaves);
64+
if (ImGui::IsItemHovered()) {
65+
ImGui::SetTooltip("Skip the delay when writing to the Memory Card.");
66+
}
67+
4968
config::ImGuiCheckbox("No Climbing Miss Animation", getSettings().game.noMissClimbing);
5069
if (ImGui::IsItemHovered()) {
5170
ImGui::SetTooltip("Prevents Link from playing a struggle animation\n"
5271
"when grabbing ledges or climbing on vines.");
5372
}
5473

55-
config::ImGuiCheckbox("Faster Tears of Light", getSettings().game.fastTears);
74+
config::ImGuiCheckbox("No Rupee Returns", getSettings().game.noReturnRupees);
5675
if (ImGui::IsItemHovered()) {
57-
ImGui::SetTooltip("Tears of Light dropped by Shadow Insects pop out faster like the HD version.");
76+
ImGui::SetTooltip("Always collect Rupees even if your Wallet is too full.");
5877
}
5978

60-
config::ImGuiCheckbox("Hide TV Settings Screen", getSettings().game.hideTvSettingsScreen);
79+
config::ImGuiCheckbox("No Sword Recoil", getSettings().game.noSwordRecoil);
6180
if (ImGui::IsItemHovered()) {
62-
ImGui::SetTooltip("Hides the TV calibration screen shown when loading a save.");
81+
ImGui::SetTooltip("Link won't recoil when his sword hits walls.");
6382
}
6483

65-
config::ImGuiCheckbox("Skip Warning Screen", getSettings().game.skipWarningScreen);
84+
config::ImGuiCheckbox("Skip TV Settings Screen", getSettings().game.hideTvSettingsScreen);
6685
if (ImGui::IsItemHovered()) {
67-
ImGui::SetTooltip("Skips the warning screen shown when loading the game.");
86+
ImGui::SetTooltip("Skip the TV calibration screen shown when loading a save.");
6887
}
6988

70-
config::ImGuiCheckbox("Instant Saves", getSettings().game.instantSaves);
89+
config::ImGuiCheckbox("Skip Warning Screen", getSettings().game.skipWarningScreen);
7190
if (ImGui::IsItemHovered()) {
72-
ImGui::SetTooltip("Skip the delay when writing to the Memory Card.");
91+
ImGui::SetTooltip("Skip the warning screen shown when starting the game.");
7392
}
7493

75-
ImGui::EndMenu();
76-
}
77-
78-
if (ImGui::BeginMenu("Preferences")) {
79-
config::ImGuiCheckbox("Mirror Mode", getSettings().game.enableMirrorMode);
94+
config::ImGuiCheckbox("Sun's Song (R+X)", getSettings().game.sunsSong);
8095
if (ImGui::IsItemHovered()) {
81-
ImGui::SetTooltip("Mirrors the world, matching the Wii version of the game.");
96+
ImGui::SetTooltip("Allows Wolf Link to howl and change the time of day.");
8297
}
8398

84-
config::ImGuiCheckbox("Invert Camera X Axis", getSettings().game.invertCameraXAxis);
85-
86-
config::ImGuiCheckbox("Disable Main HUD", getSettings().game.disableMainHUD);
99+
config::ImGuiCheckbox("Quick Transform (R+Y)", getSettings().game.enableQuickTransform);
87100
if (ImGui::IsItemHovered()) {
88-
ImGui::SetTooltip("Disables the main HUD of the game.\n"
89-
"Useful for recording or a more immersive experience!");
101+
ImGui::SetTooltip("Transform instantly by pressing R and Y simultaneously.");
90102
}
91103

92104
ImGui::EndMenu();
93105
}
94106

95107
if (ImGui::BeginMenu("Graphics")) {
108+
config::ImGuiSliderInt("Shadow Resolution", getSettings().game.shadowResolutionMultiplier, 1, 8, "x%d");
109+
if (ImGui::IsItemHovered()) {
110+
ImGui::SetTooltip("Improves the shadow resolution, making them higher quality.");
111+
}
112+
96113
config::ImGuiCheckbox("Unlock Framerate", getSettings().game.enableFrameInterpolation);
97114
const bool frameInterpolationHovered = ImGui::IsItemHovered();
98-
99115
ImGui::SameLine();
100116
ImGui::PushStyleColor(ImGuiCol_Text, ImVec4(1.0f, 0.72f, 0.2f, 1.0f));
101117
ImGui::TextUnformatted("[EXPERIMENTAL]");
102118
ImGui::PopStyleColor();
103-
104119
if (frameInterpolationHovered || ImGui::IsItemHovered()) {
105120
ImGui::SetTooltip("Uses inter-frame interpolation to enable higher frame rates.\nVisual artifacts, animation glitches, or instability may occur.");
106121
}
107122

108-
config::ImGuiSliderInt("Shadow Resolution", getSettings().game.shadowResolutionMultiplier, 1, 8, "x%d");
109-
if (ImGui::IsItemHovered()) {
110-
ImGui::SetTooltip("Improves the shadow resolution, making them higher quality.");
111-
}
112-
113123
ImGui::EndMenu();
114124
}
115125

@@ -128,6 +138,10 @@ namespace dusk {
128138
}
129139

130140
if (ImGui::BeginMenu("Input")) {
141+
config::ImGuiCheckbox("Invert Camera X Axis", getSettings().game.invertCameraXAxis);
142+
143+
ImGui::SeparatorText("Gyro");
144+
131145
config::ImGuiCheckbox("Gyro Aim", getSettings().game.enableGyroAim);
132146
if (ImGui::IsItemHovered()) {
133147
ImGui::SetTooltip("Enables the gyroscope on supported controllers while aiming the\n"
@@ -139,9 +153,18 @@ namespace dusk {
139153
config::ImGuiCheckbox("Invert Gyro Pitch", getSettings().game.gyroAimInvertPitch);
140154
config::ImGuiCheckbox("Invert Gyro Yaw", getSettings().game.gyroAimInvertYaw);
141155

156+
ImGui::SeparatorText("Tools");
157+
158+
config::ImGuiCheckbox("Turbo Key", getSettings().game.enableTurboKeybind);
159+
if (ImGui::IsItemHovered()) {
160+
ImGui::SetTooltip("Hold TAB to increase game speed by up to 4x.");
161+
}
162+
142163
ImGui::EndMenu();
143164
}
144165

166+
ImGui::Separator();
167+
145168
if (ImGui::BeginMenu("Cheats")) {
146169
config::ImGuiCheckbox("Fast Iron Boots", getSettings().game.enableFastIronBoots);
147170

@@ -163,23 +186,6 @@ namespace dusk {
163186
ImGui::EndMenu();
164187
}
165188

166-
if (ImGui::BeginMenu("Difficulty")) {
167-
config::ImGuiSliderInt("Damage Multiplier", getSettings().game.damageMultiplier, 1, 8, "x%d");
168-
169-
config::ImGuiCheckbox("No Heart Drops", getSettings().game.noHeartDrops);
170-
if (ImGui::IsItemHovered()) {
171-
ImGui::SetTooltip("Hearts will never drop from enemies,\n"
172-
"pots and various other places.");
173-
}
174-
175-
config::ImGuiCheckbox("Instant Death", getSettings().game.instantDeath);
176-
if (ImGui::IsItemHovered()) {
177-
ImGui::SetTooltip("Any hit will instantly kill you.");
178-
}
179-
180-
ImGui::EndMenu();
181-
}
182-
183189
if (ImGui::BeginMenu("Technical")) {
184190
config::ImGuiCheckbox("Restore Wii 1.0 Glitches", getSettings().game.restoreWiiGlitches);
185191
if (ImGui::IsItemHovered()) {
@@ -190,15 +196,6 @@ namespace dusk {
190196
ImGui::EndMenu();
191197
}
192198

193-
if (ImGui::BeginMenu("Tools")) {
194-
config::ImGuiCheckbox("Turbo Key", getSettings().game.enableTurboKeybind);
195-
if (ImGui::IsItemHovered()) {
196-
ImGui::SetTooltip("Hold TAB to increase game speed by up to 4x.");
197-
}
198-
199-
ImGui::EndMenu();
200-
}
201-
202199
ImGui::EndMenu();
203200
}
204201
}

0 commit comments

Comments
 (0)