#include "dusk/settings.h" #include "dusk/config.hpp" namespace dusk { UserSettings g_userSettings = { .video = { .enableFullscreen {"video.enableFullscreen", false}, .enableVsync {"video.enableVsync", true}, .lockAspectRatio {"video.lockAspectRatio", 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}, .instantSaves {"game.instantSaves", 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}, .fastSpinner {"game.fastSpinner", false}, .freeMagicArmor {"game.freeMagicArmor", false}, // Technical .restoreWiiGlitches {"game.restoreWiiGlitches", false}, // Controls .enableTurboKeybind {"game.enableTurboKeybind", true}, }, .backend = { .isoPath {"backend.isoPath", ""}, .skipPreLaunchUI {"backend.skipPreLaunchUI", false} } }; UserSettings& getSettings() { return g_userSettings; } void registerSettings() { // Video Register(g_userSettings.video.enableFullscreen); Register(g_userSettings.video.enableVsync); Register(g_userSettings.video.lockAspectRatio); // Audio 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(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.instantSaves); 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.freeMagicArmor); 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); Register(g_userSettings.game.fastSpinner); Register(g_userSettings.backend.isoPath); Register(g_userSettings.backend.skipPreLaunchUI); } // Transient settings static TransientSettings g_transientSettings = { .collisionView = { .enableTerrainView = false, .enableWireframe = false, .enableAtView = false, .enableTgView = false, .enableCoView = false, .terrainViewOpacity = 50.0f, .colliderViewOpacity = 50.0f, .drawRange = 100.0f, }, .skipFrameRateLimit = false, }; TransientSettings& getTransientSettings() { return g_transientSettings; } }