diff options
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) + } +} |
