From 4ad55f35b874ab0cd25832600687dda8b5769caa Mon Sep 17 00:00:00 2001 From: Carl Worth Date: Sun, 8 Mar 2026 19:01:04 -0400 Subject: [PATCH] lmno: Add game specific restore() operation to reconsstruct Set objects The game state save logic serializes any Set objects as arrays, so we need this extra little bit of code to re-construct Set objects from arrays at time of restore. --- anagrams.js | 5 +++++ empathy.js | 9 +++++++++ letterrip.js | 5 +++++ 3 files changed, 19 insertions(+) diff --git a/anagrams.js b/anagrams.js index 7a6a250..c0e3be8 100644 --- a/anagrams.js +++ b/anagrams.js @@ -849,6 +849,11 @@ class Anagrams extends Game { })}\n\n`); } } + + restore(data) { + super.restore(data); + this.state.done_players = new Set(this.state.done_players); + } } Anagrams.router = express.Router(); diff --git a/empathy.js b/empathy.js index d6b007b..7dc850d 100644 --- a/empathy.js +++ b/empathy.js @@ -641,6 +641,15 @@ class Empathy extends Game { /* And broadcast the scores to all connected clients. */ this.broadcast_event_object('scores', this.state.scores); } + + restore(data) { + super.restore(data); + this.state.players_answering = new Set(this.state.players_answering); + this.state.end_answers = new Set(this.state.end_answers); + this.state.players_judging = new Set(this.state.players_judging); + this.state.end_judging = new Set(this.state.end_judging); + this.state.new_game_votes = new Set(this.state.new_game_votes); + } } Empathy.router = express.Router(); diff --git a/letterrip.js b/letterrip.js index a1e4fc8..3bdeaad 100644 --- a/letterrip.js +++ b/letterrip.js @@ -524,6 +524,11 @@ class LetterRip extends Game { })}\n\n`); } } + + restore(data) { + super.restore(data); + this.state.stuck = new Set(this.state.stuck); + } } LetterRip.router = express.Router(); -- 2.45.2