Compare commits

...

2 Commits

Author SHA1 Message Date
SuperDude88 a01c01b582 Move restore_from_speedrun_mode
I think it makes more sense to have this in the same place the overrides are set
2026-07-06 20:29:39 -04:00
SuperDude88 552b3ad353 Deduplicate Speedrun Overrides
Avoids issues where only one is updated + makes sense organizationally
2026-07-06 19:59:43 -04:00
3 changed files with 16 additions and 50 deletions
+1
View File
@@ -37,5 +37,6 @@ struct SpeedrunInfo {
extern SpeedrunInfo m_speedrunInfo; extern SpeedrunInfo m_speedrunInfo;
void resetForSpeedrunMode(); void resetForSpeedrunMode();
void restoreFromSpeedrunMode();
} // namespace dusk } // namespace dusk
+12
View File
@@ -1,5 +1,6 @@
#include "dusk/speedrun.h" #include "dusk/speedrun.h"
#include "dusk/settings.h" #include "dusk/settings.h"
#include "dusk/config.hpp"
#include "m_Do/m_Do_main.h" #include "m_Do/m_Do_main.h"
#include <aurora/aurora.h> #include <aurora/aurora.h>
@@ -44,4 +45,15 @@ void resetForSpeedrunMode() {
getSettings().game.debugFlyCam.setSpeedrunValue(false); getSettings().game.debugFlyCam.setSpeedrunValue(false);
} }
static void clear_speedrun_overrides() {
config::EnumerateRegistered([](config::ConfigVarBase& cvar) {
cvar.clearSpeedrunOverride();
});
}
void restoreFromSpeedrunMode() {
clear_speedrun_overrides();
aurora_set_pause_on_focus_lost(getSettings().game.pauseOnFocusLost.getValue());
}
} // namespace dusk } // namespace dusk
+3 -50
View File
@@ -15,6 +15,7 @@
#include "dusk/io.hpp" #include "dusk/io.hpp"
#include "dusk/livesplit.h" #include "dusk/livesplit.h"
#include "dusk/discord_presence.hpp" #include "dusk/discord_presence.hpp"
#include "dusk/speedrun.h"
#include "graphics_tuner.hpp" #include "graphics_tuner.hpp"
#include "m_Do/m_Do_main.h" #include "m_Do/m_Do_main.h"
#include "menu_bar.hpp" #include "menu_bar.hpp"
@@ -218,54 +219,6 @@ AuroraBackend configured_backend() {
return configuredBackend; return configuredBackend;
} }
void reset_for_speedrun_mode() {
mDoMain::developmentMode = -1;
getSettings().game.enableTurboKeybind.setSpeedrunValue(false);
getSettings().game.damageMultiplier.setSpeedrunValue(1);
getSettings().game.instantDeath.setSpeedrunValue(false);
getSettings().game.noHeartDrops.setSpeedrunValue(false);
getSettings().game.autoSave.setSpeedrunValue(false);
getSettings().game.sunsSong.setSpeedrunValue(false);
getSettings().game.infiniteHearts.setSpeedrunValue(false);
getSettings().game.infiniteArrows.setSpeedrunValue(false);
getSettings().game.infiniteSeeds.setSpeedrunValue(false);
getSettings().game.infiniteBombs.setSpeedrunValue(false);
getSettings().game.infiniteOil.setSpeedrunValue(false);
getSettings().game.infiniteOxygen.setSpeedrunValue(false);
getSettings().game.infiniteRupees.setSpeedrunValue(false);
getSettings().game.enableIndefiniteItemDrops.setSpeedrunValue(false);
getSettings().game.moonJump.setSpeedrunValue(false);
getSettings().game.superClawshot.setSpeedrunValue(false);
getSettings().game.alwaysGreatspin.setSpeedrunValue(false);
getSettings().game.enableFastIronBoots.setSpeedrunValue(false);
getSettings().game.canTransformAnywhere.setSpeedrunValue(false);
getSettings().game.fastRoll.setSpeedrunValue(false);
getSettings().game.fastSpinner.setSpeedrunValue(false);
getSettings().game.armorRupeeDrain.setSpeedrunValue(MagicArmorMode::NORMAL);
getSettings().game.invincibleEnemies.setSpeedrunValue(false);
getSettings().game.pauseOnFocusLost.setSpeedrunValue(false);
aurora_set_pause_on_focus_lost(false);
getSettings().backend.enableAdvancedSettings.setSpeedrunValue(false);
getSettings().game.recordingMode.setSpeedrunValue(false);
getSettings().game.debugFlyCam.setSpeedrunValue(false);
}
void clear_speedrun_overrides() {
config::EnumerateRegistered([](config::ConfigVarBase& cvar) {
cvar.clearSpeedrunOverride();
});
}
void restore_from_speedrun_mode() {
clear_speedrun_overrides();
aurora_set_pause_on_focus_lost(getSettings().game.pauseOnFocusLost.getValue());
}
std::filesystem::path normalized_display_path(const std::filesystem::path& path) { std::filesystem::path normalized_display_path(const std::filesystem::path& path) {
std::error_code ec; std::error_code ec;
auto normalized = std::filesystem::weakly_canonical(path, ec); auto normalized = std::filesystem::weakly_canonical(path, ec);
@@ -1325,9 +1278,9 @@ SettingsWindow::SettingsWindow(bool prelaunch) : mPrelaunch(prelaunch) {
.onChange = .onChange =
[](bool enabled) { [](bool enabled) {
if (enabled) { if (enabled) {
reset_for_speedrun_mode(); resetForSpeedrunMode();
} else { } else {
restore_from_speedrun_mode(); restoreFromSpeedrunMode();
if (getSettings().game.liveSplitEnabled) { if (getSettings().game.liveSplitEnabled) {
speedrun::disconnectLiveSplit(); speedrun::disconnectLiveSplit();
} }