From: Laurent Mazet Date: Tue, 11 Feb 2025 22:30:34 +0000 (+0100) Subject: retrieve game number from message X-Git-Url: https://secure.softndesign.org/git/?a=commitdiff_plain;h=dbb8f62cef803b05d72b8a33b9d56dc8f70f75e7;p=trivabble.git retrieve game number from message --- diff --git a/server/trivabble-server.js b/server/trivabble-server.js index 8fd47e8..97c9862 100644 --- a/server/trivabble-server.js +++ b/server/trivabble-server.js @@ -480,16 +480,22 @@ function countTiles(rack) { function joinGame(gameNumber, message) { if (!gameNumber) { - gameNumber = newGameId(); - if (message) { - //message.gameNumber = gameNumber; - gameNumber = message.gameNumber; - } + gameNumber = ((message) && (parseInt(message.gameNumber) > 0)) ? message.gameNumber : newGameId(); } + message.gameNumber = gameNumber; + - let game = games[gameNumber] || (games[gameNumber] = new Game()); - if ((message) && (message.bagFactor) && (message.bagFactor != game.factor)) { - game.init(message.boardLang, message.boardLabel, message.bagFactor); + let game; + if (games[gameNumber]) { + debuglog("Load game: ", gameNumber); + game = games[gameNumber]; + } else { + debuglog("Create new game: ", gameNumber); + game = games[gameNumber] = new Game(); + if ((message) && (message.boardLang) && (message.boardLabel) && (message.bagFactor) && + ((message.boardLang !== game.lang) || (message.boardLabel !== game.label) || (message.bagFactor !== game.factor))) { + game.init(message.boardLang, message.boardLabel, message.bagFactor); + } } return {gameNumber, game};