mirror of
https://github.com/TwilitRealm/dusklight
synced 2026-09-02 08:43:42 -04:00
Reapply settings changes on top of #209
This commit is contained in:
@@ -184,7 +184,7 @@ namespace dusk {
|
||||
m_isLaunchInitialized = true;
|
||||
}
|
||||
|
||||
getTransientSettings().skipFrameRateLimit = settings::game::enableTurboKeybind && ImGui::IsKeyDown(ImGuiKey_Tab);
|
||||
getTransientSettings().skipFrameRateLimit = getSettings().game.enableTurboKeybind && ImGui::IsKeyDown(ImGuiKey_Tab);
|
||||
|
||||
if ((ImGui::IsKeyDown(ImGuiKey_LeftCtrl) || ImGui::IsKeyDown(ImGuiKey_RightCtrl)) &&
|
||||
ImGui::IsKeyPressed(ImGuiKey_R))
|
||||
|
||||
@@ -10,45 +10,45 @@ namespace dusk {
|
||||
void ImGuiMenuEnhancements::draw() {
|
||||
if (ImGui::BeginMenu("Enhancements")) {
|
||||
if (ImGui::BeginMenu("Quality of Life")) {
|
||||
config::ImGuiCheckbox("Quick Transform (R+Y)", settings::game::enableQuickTransform);
|
||||
config::ImGuiCheckbox("Quick Transform (R+Y)", getSettings().game.enableQuickTransform);
|
||||
|
||||
config::ImGuiCheckbox("Bigger Wallets", settings::game::biggerWallets);
|
||||
config::ImGuiCheckbox("Bigger Wallets", getSettings().game.biggerWallets);
|
||||
if (ImGui::IsItemHovered()) {
|
||||
ImGui::SetTooltip("Wallet sizes are like in the HD version (500, 1000, 2000)");
|
||||
}
|
||||
|
||||
config::ImGuiCheckbox("No Rupee Returns", settings::game::noReturnRupees);
|
||||
config::ImGuiCheckbox("No Rupee Returns", getSettings().game.noReturnRupees);
|
||||
if (ImGui::IsItemHovered()) {
|
||||
ImGui::SetTooltip("Always collect Rupees even if your Wallet is too full");
|
||||
}
|
||||
|
||||
config::ImGuiCheckbox("Disable Rupee Cutscenes", settings::game::disableRupeeCutscenes);
|
||||
config::ImGuiCheckbox("Disable Rupee Cutscenes", getSettings().game.disableRupeeCutscenes);
|
||||
if (ImGui::IsItemHovered()) {
|
||||
ImGui::SetTooltip("Rupees won't play cutscenes after you've collected them the first time");
|
||||
}
|
||||
|
||||
config::ImGuiCheckbox("No Sword Recoil", settings::game::noSwordRecoil);
|
||||
config::ImGuiCheckbox("No Sword Recoil", getSettings().game.noSwordRecoil);
|
||||
if (ImGui::IsItemHovered()) {
|
||||
ImGui::SetTooltip("Link won't recoil when his sword hits walls");
|
||||
}
|
||||
|
||||
config::ImGuiCheckbox("Faster Climbing", settings::game::fastClimbing);
|
||||
config::ImGuiCheckbox("Faster Climbing", getSettings().game.fastClimbing);
|
||||
if (ImGui::IsItemHovered()) {
|
||||
ImGui::SetTooltip("Quicker climbing on ladders and vines like the HD version");
|
||||
}
|
||||
|
||||
config::ImGuiCheckbox("No Climbing Miss Animation", settings::game::noMissClimbing);
|
||||
config::ImGuiCheckbox("No Climbing Miss Animation", getSettings().game.noMissClimbing);
|
||||
if (ImGui::IsItemHovered()) {
|
||||
ImGui::SetTooltip("Prevents Link from playing a struggle animation\n"
|
||||
"when using the Clawshot on vines at a weird angle");
|
||||
}
|
||||
|
||||
config::ImGuiCheckbox("Faster Tears of Light", settings::game::fastTears);
|
||||
config::ImGuiCheckbox("Faster Tears of Light", getSettings().game.fastTears);
|
||||
if (ImGui::IsItemHovered()) {
|
||||
ImGui::SetTooltip("Tears of Light dropped by Shadow Insects pop out faster like the HD version");
|
||||
}
|
||||
|
||||
config::ImGuiCheckbox("Hide TV Settings Screen", settings::game::hideTvSettingsScreen);
|
||||
config::ImGuiCheckbox("Hide TV Settings Screen", getSettings().game.hideTvSettingsScreen);
|
||||
if (ImGui::IsItemHovered()) {
|
||||
ImGui::SetTooltip("Hides the TV calibration screen shown when loading a save");
|
||||
}
|
||||
@@ -57,20 +57,20 @@ namespace dusk {
|
||||
}
|
||||
|
||||
if (ImGui::BeginMenu("Preferences")) {
|
||||
config::ImGuiCheckbox("Mirror Mode", settings::game::enableMirrorMode);
|
||||
config::ImGuiCheckbox("Mirror Mode", getSettings().game.enableMirrorMode);
|
||||
if (ImGui::IsItemHovered()) {
|
||||
ImGui::SetTooltip("Mirrors the world, matching the Wii version of the game");
|
||||
}
|
||||
|
||||
config::ImGuiCheckbox("Invert Camera X Axis", settings::game::invertCameraXAxis);
|
||||
config::ImGuiCheckbox("Invert Camera X Axis", getSettings().game.invertCameraXAxis);
|
||||
|
||||
ImGui::EndMenu();
|
||||
}
|
||||
|
||||
if (ImGui::BeginMenu("Graphics")) {
|
||||
config::ImGuiCheckbox("Native Bloom", settings::game::enableBloom);
|
||||
config::ImGuiCheckbox("Native Bloom", getSettings().game.enableBloom);
|
||||
|
||||
config::ImGuiCheckbox("Water Projection Offset", settings::game::useWaterProjectionOffset);
|
||||
config::ImGuiCheckbox("Water Projection Offset", getSettings().game.useWaterProjectionOffset);
|
||||
if (ImGui::IsItemHovered()) {
|
||||
ImGui::SetTooltip("Adds GC-specific -0.01 transS offset\n"
|
||||
"that causes ~6px ghost artifacts in water reflections");
|
||||
@@ -80,12 +80,12 @@ namespace dusk {
|
||||
}
|
||||
|
||||
if (ImGui::BeginMenu("Audio")) {
|
||||
config::ImGuiCheckbox("No Low HP Sound", settings::game::noLowHpSound);
|
||||
config::ImGuiCheckbox("No Low HP Sound", getSettings().game.noLowHpSound);
|
||||
if (ImGui::IsItemHovered()) {
|
||||
ImGui::SetTooltip("Disable the beeping sound when having low health");
|
||||
}
|
||||
|
||||
config::ImGuiCheckbox("Non-Stop Midna's Lament", settings::game::midnasLamentNonStop);
|
||||
config::ImGuiCheckbox("Non-Stop Midna's Lament", getSettings().game.midnasLamentNonStop);
|
||||
if (ImGui::IsItemHovered()) {
|
||||
ImGui::SetTooltip("Prevents enemy music while Midna's Lament is playing");
|
||||
}
|
||||
@@ -94,9 +94,9 @@ namespace dusk {
|
||||
}
|
||||
|
||||
if (ImGui::BeginMenu("Cheats")) {
|
||||
config::ImGuiCheckbox("Fast Iron Boots", settings::game::enableFastIronBoots);
|
||||
config::ImGuiCheckbox("Fast Iron Boots", getSettings().game.enableFastIronBoots);
|
||||
|
||||
config::ImGuiCheckbox("Can Transform Anywhere", settings::game::canTransformAnywhere);
|
||||
config::ImGuiCheckbox("Can Transform Anywhere", getSettings().game.canTransformAnywhere);
|
||||
if (ImGui::IsItemHovered()) {
|
||||
ImGui::SetTooltip("Allows you to transform even if NPCs are looking");
|
||||
}
|
||||
@@ -105,9 +105,9 @@ namespace dusk {
|
||||
}
|
||||
|
||||
if (ImGui::BeginMenu("Difficulty")) {
|
||||
config::ImGuiSliderInt("Damage Multiplier", settings::game::damageMultiplier, 1, 8, "x%d");
|
||||
config::ImGuiSliderInt("Damage Multiplier", getSettings().game.damageMultiplier, 1, 8, "x%d");
|
||||
|
||||
config::ImGuiCheckbox("Instant Death", settings::game::instantDeath);
|
||||
config::ImGuiCheckbox("Instant Death", getSettings().game.instantDeath);
|
||||
if (ImGui::IsItemHovered()) {
|
||||
ImGui::SetTooltip("Any hit will instantly kill you");
|
||||
}
|
||||
@@ -116,7 +116,7 @@ namespace dusk {
|
||||
}
|
||||
|
||||
if (ImGui::BeginMenu("Technical")) {
|
||||
config::ImGuiCheckbox("Restore Wii 1.0 Glitches", settings::game::restoreWiiGlitches);
|
||||
config::ImGuiCheckbox("Restore Wii 1.0 Glitches", getSettings().game.restoreWiiGlitches);
|
||||
if (ImGui::IsItemHovered()) {
|
||||
ImGui::SetTooltip("Restores patched glitches from Wii USA 1.0,\n"
|
||||
"the first released version");
|
||||
|
||||
@@ -15,8 +15,8 @@
|
||||
|
||||
namespace dusk {
|
||||
void ImGuiMenuGame::ToggleFullscreen() {
|
||||
settings::video::enableFullscreen.setValue(!settings::video::enableFullscreen);
|
||||
VISetWindowFullscreen(settings::video::enableFullscreen);
|
||||
getSettings().video.enableFullscreen.setValue(!getSettings().video.enableFullscreen);
|
||||
VISetWindowFullscreen(getSettings().video.enableFullscreen);
|
||||
config::Save();
|
||||
}
|
||||
|
||||
@@ -40,8 +40,8 @@ namespace dusk {
|
||||
|
||||
if (ImGui::BeginMenu("Audio")) {
|
||||
ImGui::Text("Master Volume");
|
||||
config::ImGuiSliderInt("##masterVolume", settings::audio::masterVolume, 0, 100);
|
||||
config::ImGuiCheckbox("Enable Reverb", settings::audio::enableReverb);
|
||||
config::ImGuiSliderInt("##masterVolume", getSettings().audio.masterVolume, 0, 100);
|
||||
config::ImGuiCheckbox("Enable Reverb", getSettings().audio.enableReverb);
|
||||
/*
|
||||
// TODO: Implement additional settings
|
||||
ImGui::Text("Main Music Volume");
|
||||
@@ -61,8 +61,8 @@ namespace dusk {
|
||||
}
|
||||
*/
|
||||
|
||||
audio::SetMasterVolume(settings::audio::masterVolume / 100.0f);
|
||||
audio::EnableReverb = settings::audio::enableReverb;
|
||||
audio::SetMasterVolume(getSettings().audio.masterVolume / 100.0f);
|
||||
audio::EnableReverb = getSettings().audio.enableReverb;
|
||||
|
||||
ImGui::EndMenu();
|
||||
}
|
||||
|
||||
@@ -51,7 +51,7 @@ namespace dusk {
|
||||
ImGui::MenuItem("Audio Debug", hotkeys::SHOW_AUDIO_DEBUG, &m_showAudioDebug);
|
||||
ImGui::MenuItem("OSReport Force", nullptr, &OSReportReallyForceEnable);
|
||||
ImGui::Separator();
|
||||
config::ImGuiMenuItem("Enable Turbo Key", hotkeys::TURBO, settings::game::enableTurboKeybind);
|
||||
config::ImGuiMenuItem("Enable Turbo Key", hotkeys::TURBO, getSettings().game.enableTurboKeybind);
|
||||
ImGui::EndMenu();
|
||||
}
|
||||
|
||||
|
||||
@@ -11,7 +11,11 @@ using namespace dusk::io;
|
||||
#define fseek(a, b, c) _fseeki64(a, b, c)
|
||||
#else
|
||||
#define MODE_TYPE char
|
||||
#if _MSVC_VER
|
||||
#define MODE(val) ##val
|
||||
#else
|
||||
#define MODE(val) val
|
||||
#endif
|
||||
#endif
|
||||
|
||||
static FILE* ThrowIfNotOpen(const FileStream& file) {
|
||||
|
||||
+85
-81
@@ -1,95 +1,99 @@
|
||||
#include "dusk/settings.h"
|
||||
#include "dusk/config.hpp"
|
||||
|
||||
namespace dusk::settings {
|
||||
namespace video {
|
||||
ConfigVar<bool> enableFullscreen("video.enableFullscreen", false);
|
||||
namespace dusk {
|
||||
|
||||
UserSettings g_userSettings = {
|
||||
.video = {
|
||||
.enableFullscreen {"video.enableFullscreen", false},
|
||||
},
|
||||
|
||||
.audio = {
|
||||
.masterVolume {"audio.masterVolume", 80},
|
||||
.mainMusicVolume {"audio.mainMusicVolume", 100},
|
||||
.subMusicVolume {"audio.subMusicVolume", 100},
|
||||
.soundEffectsVolume {"audio.soundEffectsVolume", 100},
|
||||
.fanfareVolume {"audio.fanfareVolume", 100},
|
||||
.enableReverb {"audio.enableReverb", true},
|
||||
},
|
||||
|
||||
.game = {
|
||||
// Quality of Life
|
||||
.enableQuickTransform {"game.enableQuickTransform", false},
|
||||
.hideTvSettingsScreen {"game.hideTvSettingsScreen", false},
|
||||
.biggerWallets {"game.biggerWallets", false},
|
||||
.noReturnRupees {"game.noReturnRupees", false},
|
||||
.disableRupeeCutscenes {"game.disableRupeeCutscenes", false},
|
||||
.noSwordRecoil {"game.noSwordRecoil", false},
|
||||
.damageMultiplier {"game.damageMultiplier", 1},
|
||||
.instantDeath {"game.instantDeath", false},
|
||||
.fastClimbing {"game.fastClimbing", false},
|
||||
.noMissClimbing {"game.noMissClimbing", false},
|
||||
.fastTears {"game.fastTears", false},
|
||||
|
||||
// Preferences
|
||||
.enableMirrorMode {"game.enableMirrorMode", false},
|
||||
.invertCameraXAxis {"game.invertCameraXAxis", false},
|
||||
|
||||
// Graphics
|
||||
.enableBloom {"game.enableBloom", true},
|
||||
.useWaterProjectionOffset {"game.useWaterProjectionOffset", false},
|
||||
|
||||
// Audio
|
||||
.noLowHpSound {"game.noLowHpSound", false},
|
||||
.midnasLamentNonStop {"game.midnasLamentNonStop", false},
|
||||
|
||||
// Cheats
|
||||
.enableFastIronBoots {"game.enableFastIronBoots", false},
|
||||
.canTransformAnywhere {"game.canTransformAnywhere", false},
|
||||
|
||||
// Technical
|
||||
.restoreWiiGlitches {"game.restoreWiiGlitches", false},
|
||||
|
||||
// Controls
|
||||
.enableTurboKeybind {"game.enableTurboKeybind", true},
|
||||
},
|
||||
};
|
||||
|
||||
UserSettings& getSettings() {
|
||||
return g_userSettings;
|
||||
}
|
||||
|
||||
namespace audio {
|
||||
ConfigVar<int> masterVolume("audio.masterVolume", 80);
|
||||
ConfigVar<int> mainMusicVolume("audio.mainMusicVolume", 100);
|
||||
ConfigVar<int> subMusicVolume("audio.subMusicVolume", 100);
|
||||
ConfigVar<int> soundEffectsVolume("audio.soundEffectsVolume", 100);
|
||||
ConfigVar<int> fanfareVolume("audio.fanfareVolume", 100);
|
||||
ConfigVar<bool> enableReverb("audio.enableReverb", true);
|
||||
}
|
||||
|
||||
namespace game {
|
||||
// Quality of Life
|
||||
ConfigVar<bool> enableQuickTransform("game.enableQuickTransform", false);
|
||||
ConfigVar<bool> hideTvSettingsScreen("game.hideTvSettingsScreen", false);
|
||||
ConfigVar<bool> biggerWallets("game.biggerWallets", false);
|
||||
ConfigVar<bool> noReturnRupees("game.noReturnRupees", false);
|
||||
ConfigVar<bool> disableRupeeCutscenes("game.disableRupeeCutscenes", false);
|
||||
ConfigVar<bool> noSwordRecoil("game.noSwordRecoil", false);
|
||||
ConfigVar<int> damageMultiplier("game.damageMultiplier", 1);
|
||||
ConfigVar<bool> instantDeath("game.instantDeath", false);
|
||||
ConfigVar<bool> fastClimbing("game.fastClimbing", false);
|
||||
ConfigVar<bool> fastTears("game.fastTears", false);
|
||||
ConfigVar<bool> noMissClimbing("game.noMissClimbing", false);
|
||||
|
||||
// Preferences
|
||||
ConfigVar<bool> enableMirrorMode("game.enableMirrorMode", false);
|
||||
ConfigVar<bool> invertCameraXAxis("game.invertCameraXAxis", false);
|
||||
|
||||
// Graphics
|
||||
ConfigVar<bool> enableBloom("game.enableBloom", true);
|
||||
ConfigVar<bool> useWaterProjectionOffset("game.useWaterProjectionOffset", false);
|
||||
|
||||
// Audio
|
||||
ConfigVar<bool> noLowHpSound("game.noLowHpSound", false);
|
||||
ConfigVar<bool> midnasLamentNonStop("game.midnasLamentNonStop", false);
|
||||
|
||||
// Cheats
|
||||
ConfigVar<bool> enableFastIronBoots("game.enableFastIronBoots", false);
|
||||
ConfigVar<bool> canTransformAnywhere("game.canTransformAnywhere", false);
|
||||
|
||||
// Technical
|
||||
ConfigVar<bool> restoreWiiGlitches("game.restoreWiiGlitches", false);
|
||||
|
||||
// Controls
|
||||
ConfigVar<bool> enableTurboKeybind("game.enableTurboKeybind", true);
|
||||
}
|
||||
|
||||
void Register() {
|
||||
void registerSettings() {
|
||||
// Video
|
||||
Register(video::enableFullscreen);
|
||||
Register(g_userSettings.video.enableFullscreen);
|
||||
|
||||
// Audio
|
||||
Register(audio::masterVolume);
|
||||
Register(audio::mainMusicVolume);
|
||||
Register(audio::subMusicVolume);
|
||||
Register(audio::soundEffectsVolume);
|
||||
Register(audio::fanfareVolume);
|
||||
Register(audio::enableReverb);
|
||||
Register(g_userSettings.audio.masterVolume);
|
||||
Register(g_userSettings.audio.mainMusicVolume);
|
||||
Register(g_userSettings.audio.subMusicVolume);
|
||||
Register(g_userSettings.audio.soundEffectsVolume);
|
||||
Register(g_userSettings.audio.fanfareVolume);
|
||||
Register(g_userSettings.audio.enableReverb);
|
||||
|
||||
// Game
|
||||
Register(game::enableQuickTransform);
|
||||
Register(game::hideTvSettingsScreen);
|
||||
Register(game::biggerWallets);
|
||||
Register(game::noReturnRupees);
|
||||
Register(game::disableRupeeCutscenes);
|
||||
Register(game::noSwordRecoil);
|
||||
Register(game::damageMultiplier);
|
||||
Register(game::instantDeath);
|
||||
Register(game::fastClimbing);
|
||||
Register(game::fastTears);
|
||||
Register(game::enableMirrorMode);
|
||||
Register(game::invertCameraXAxis);
|
||||
Register(game::enableBloom);
|
||||
Register(game::useWaterProjectionOffset);
|
||||
Register(game::enableFastIronBoots);
|
||||
Register(game::canTransformAnywhere);
|
||||
Register(game::restoreWiiGlitches);
|
||||
Register(game::noMissClimbing);
|
||||
Register(game::noLowHpSound);
|
||||
Register(game::midnasLamentNonStop);
|
||||
Register(game::enableTurboKeybind);
|
||||
Register(g_userSettings.game.enableQuickTransform);
|
||||
Register(g_userSettings.game.hideTvSettingsScreen);
|
||||
Register(g_userSettings.game.biggerWallets);
|
||||
Register(g_userSettings.game.noReturnRupees);
|
||||
Register(g_userSettings.game.disableRupeeCutscenes);
|
||||
Register(g_userSettings.game.noSwordRecoil);
|
||||
Register(g_userSettings.game.damageMultiplier);
|
||||
Register(g_userSettings.game.instantDeath);
|
||||
Register(g_userSettings.game.fastClimbing);
|
||||
Register(g_userSettings.game.fastTears);
|
||||
Register(g_userSettings.game.enableMirrorMode);
|
||||
Register(g_userSettings.game.invertCameraXAxis);
|
||||
Register(g_userSettings.game.enableBloom);
|
||||
Register(g_userSettings.game.useWaterProjectionOffset);
|
||||
Register(g_userSettings.game.enableFastIronBoots);
|
||||
Register(g_userSettings.game.canTransformAnywhere);
|
||||
Register(g_userSettings.game.restoreWiiGlitches);
|
||||
Register(g_userSettings.game.noMissClimbing);
|
||||
Register(g_userSettings.game.noLowHpSound);
|
||||
Register(g_userSettings.game.midnasLamentNonStop);
|
||||
Register(g_userSettings.game.enableTurboKeybind);
|
||||
}
|
||||
}
|
||||
|
||||
namespace dusk {
|
||||
|
||||
// Transient settings
|
||||
|
||||
|
||||
Reference in New Issue
Block a user