Add storage-backed story history

This commit is contained in:
2026-05-15 21:58:30 +02:00
parent f2e786d5bc
commit 42582352d6
16 changed files with 1048 additions and 113 deletions
+6 -4
View File
@@ -138,11 +138,12 @@ async function handleGameApi(socket, method, args) {
case 'loadGame':
case 'loadGame()': {
const slot = normalizeSaveSlot(args[0]);
if (!slots.has(slot)) {
const browserSave = typeof args[1] === 'string' ? args[1] : null;
if (!browserSave && !slots.has(slot)) {
return { success: false, error: 'missing_save', result: false };
}
const engine = getOrCreateEngine(socket.id);
socket.emit('narrativeResponse', engine.loadGame(slots.get(slot)));
socket.emit('narrativeResponse', engine.loadGame(browserSave || slots.get(slot)));
socket.emit('gameLoaded', { slot });
return { success: true, result: true, running: true, slot };
}
@@ -153,9 +154,10 @@ async function handleGameApi(socket, method, args) {
return { success: false, error: 'game_not_running', result: false };
}
const slot = normalizeSaveSlot(args[0]);
slots.set(slot, engine.saveGame());
const savedState = engine.saveGame();
slots.set(slot, savedState);
socket.emit('gameSaved', { slot });
return { success: true, result: true, slot };
return { success: true, result: true, slot, savedState };
}
case 'hasSaveGame':
case 'hasSaveGame()': {