Skip to content

Commit

Permalink
Add option to disable crash recovery saves (closes #2004)
Browse files Browse the repository at this point in the history
  • Loading branch information
LordMonoxide committed Feb 1, 2025
1 parent 8fc5cb6 commit 4069d48
Show file tree
Hide file tree
Showing 4 changed files with 23 additions and 1 deletion.
4 changes: 3 additions & 1 deletion src/main/java/legend/game/Main.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

import legend.core.GameEngine;
import legend.core.Version;
import legend.game.modding.coremod.CoreMod;
import legend.game.saves.SaveFailedException;
import legend.game.saves.SavedGame;
import org.apache.logging.log4j.LogManager;
Expand All @@ -11,6 +12,7 @@
import java.util.List;
import java.util.Locale;

import static legend.core.GameEngine.CONFIG;
import static legend.core.GameEngine.SAVES;
import static legend.game.Scus94491BpeSegment_8004.engineState_8004dd20;
import static legend.game.Scus94491BpeSegment_8004.lastSavableEngineState;
Expand Down Expand Up @@ -39,7 +41,7 @@ public static void main(final String[] args) {
} catch(final Throwable e) {
boolean generatedCrashSave = false;

if(gameState_800babc8 != null) {
if(gameState_800babc8 != null && CONFIG.getConfig(CoreMod.CREATE_CRASH_SAVE_CONFIG.get())) {
final List<SavedGame> saves = gameState_800babc8.campaign.loadAllSaves();
final String name = SAVES.generateSaveName(saves, "Crash Recovery");

Expand Down
2 changes: 2 additions & 0 deletions src/main/java/legend/game/modding/coremod/CoreMod.java
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@
import legend.game.modding.coremod.config.ControllerDeadzoneConfigEntry;
import legend.game.modding.coremod.config.ControllerKeybindConfigEntry;
import legend.game.modding.coremod.config.ControllerKeybindsConfigEntry;
import legend.game.modding.coremod.config.CreateCrashSaveConfigEntry;
import legend.game.modding.coremod.config.EnabledModsConfigEntry;
import legend.game.modding.coremod.config.EncounterRateConfigEntry;
import legend.game.modding.coremod.config.FullscreenConfigEntry;
Expand Down Expand Up @@ -101,6 +102,7 @@ public class CoreMod {
public static final RegistryDelegate<MusicPitchResolutionConfigEntry> MUSIC_PITCH_RESOLUTION_CONFIG = CONFIG_REGISTRAR.register("music_pitch_resolution", MusicPitchResolutionConfigEntry::new);
public static final RegistryDelegate<MusicSampleRateConfigEntry> MUSIC_SAMPLE_RATE_CONFIG = CONFIG_REGISTRAR.register("music_sample_rate", MusicSampleRateConfigEntry::new);
public static final RegistryDelegate<MusicEffectsOverTimeGranularityConfigEntry> MUSIC_EFFECTS_OVER_TIME_GRANULARITY_CONFIG = CONFIG_REGISTRAR.register("music_effects_over_time_granularity", MusicEffectsOverTimeGranularityConfigEntry::new);
public static final RegistryDelegate<CreateCrashSaveConfigEntry> CREATE_CRASH_SAVE_CONFIG = CONFIG_REGISTRAR.register("create_crash_save", CreateCrashSaveConfigEntry::new);

/** Config isn't actually used, but adds a button to the options screen to open the keybinds screen */
public static final RegistryDelegate<ConfigEntry<Void>> CONTROLLER_KEYBINDS_CONFIG = CONFIG_REGISTRAR.register("controller_keybinds", ControllerKeybindsConfigEntry::new);
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
package legend.game.modding.coremod.config;

import legend.game.saves.BoolConfigEntry;
import legend.game.saves.ConfigCategory;
import legend.game.saves.ConfigStorageLocation;

public class CreateCrashSaveConfigEntry extends BoolConfigEntry {
public CreateCrashSaveConfigEntry() {
super(true, ConfigStorageLocation.GLOBAL, ConfigCategory.GAMEPLAY);
}

@Override
public boolean hasHelp() {
return true;
}
}
2 changes: 2 additions & 0 deletions src/main/resources/lod_core/lang/en.lang
Original file line number Diff line number Diff line change
Expand Up @@ -83,6 +83,8 @@ lod_core.config.music_effects_over_time_granularity.label = Effects Granularity
lod_core.config.music_effects_over_time_granularity.Retail = Retail
lod_core.config.music_effects_over_time_granularity.Finer = Finer
lod_core.config.music_effects_over_time_granularity.Finest = Finest
lod_core.config.create_crash_save.label=Auto-Save on Crash
lod_core.config.create_crash_save.help=If the game crashes, attempt to save the game\nautomatically (does not overwrite existing save)

# FMV config
lod_core.config.fmv.skip_keyboard = Press ENTER to skip
Expand Down

0 comments on commit 4069d48

Please sign in to comment.