diff options
| author | historia <[not public]> | 2026-09-16 17:05:17 -0400 |
|---|---|---|
| committer | historia <[not public]> | 2026-09-16 17:05:17 -0400 |
| commit | 1dad15698845d370e998f7cc5feb8aece3fab58f (patch) | |
| tree | 8d58058782de9f422573e1f8efd5d130ce7d1ce9 /internal/game/save.go | |
| parent | a6cf03a6ae98e4fb675da25046d148e92bcf7206 (diff) | |
| download | thehouseoficarus-1dad15698845d370e998f7cc5feb8aece3fab58f.tar.gz | |
refactor: remove dead code, consolidate save/error handling, add lint gate
Diffstat (limited to 'internal/game/save.go')
| -rw-r--r-- | internal/game/save.go | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/internal/game/save.go b/internal/game/save.go new file mode 100644 index 0000000..8e1af3d --- /dev/null +++ b/internal/game/save.go @@ -0,0 +1,26 @@ +package game + +import ( + "log" + + "thehouseoficarus/internal/player" +) + +// Best-effort persistence helpers. Gameplay code re-saves a character or +// account after most state changes; a save failure there is not recoverable +// by the caller, so these helpers log it once in one place instead of +// silently discarding it at ~100 call sites. Lifecycle transactions (create, +// delete, rename, migration) intentionally do NOT use these: they must +// propagate save errors to the caller. + +func (g *Game) saveCharacter(p *player.Player) { + if err := g.AccountStore.SaveCharacter(p); err != nil { + log.Printf("save character %s: %v", p.Name, err) + } +} + +func (g *Game) saveAccount(acc *player.Account) { + if err := g.AccountStore.SaveAccount(acc); err != nil { + log.Printf("save account %s: %v", acc.Name, err) + } +} |
