From 623954781c2f7f878cba84adbdd292821b05f257 Mon Sep 17 00:00:00 2001 From: forkless Date: Sun, 31 May 2026 19:33:56 +0200 Subject: [PATCH] Improve game-running exit message --- release_notes.txt | 19 +++++++++++++++++++ src/main.rs | 7 ++++++- 2 files changed, 25 insertions(+), 1 deletion(-) create mode 100644 release_notes.txt diff --git a/release_notes.txt b/release_notes.txt new file mode 100644 index 0000000..a5cc621 --- /dev/null +++ b/release_notes.txt @@ -0,0 +1,19 @@ +v0.1.0 — First public release + +NotAlterra is an unofficial Subnautica 2 save-file manager. +Cross-platform terminal application. No admin, no network. + +Pre-compiled binaries — no installation, no dependencies. Just download, +extract, and run. + +Features: +• Recover .sav from .bak with rollback and slot-aware targeting +• Full backup / restore (savegame_* files only) with pre-restore snapshots +• UE5 Config (.ini) management — backup, restore, guarded delete +• GVAS save inspector with full metadata dump +• Online / Local detection with mode-change and name-change warnings +• Auto-locates save folders (Windows, Proton/Steam Deck) +• Game-running guard, transaction log, and backup safety checks +• Keyboard-driven TUI with popups, pickers, and resize support + +Builds: Linux (amd64) • Windows x64 console diff --git a/src/main.rs b/src/main.rs index 4f07418..ce7ad92 100644 --- a/src/main.rs +++ b/src/main.rs @@ -143,7 +143,12 @@ fn run_app(terminal: &mut Terminal) -> Result<()> { // Guard: exit if game is running if guard::game_running() { - println!("Subnautica 2 is running. Close the game and relaunch NotAlterra."); + println!("NotAlterra has detected that Subnautica 2 is currently running.\n"); +println!("The game holds file locks on your save files while active."); +println!("Backing up or restoring saves while the game is running can result in"); +println!("incomplete, corrupt, or overwritten save files.\n"); +println!("To protect your save files, NotAlterra will now exit.\n"); +println!(" → Close Subnautica 2, then relaunch NotAlterra."); return Ok(()); }