fix game unconditionally being reset
authorRaphaël Jakse <raphael.jakse@univ-grenoble-alpes.fr>
Sun, 5 Apr 2020 10:32:31 +0000 (12:32 +0200)
committerRaphaël Jakse <raphael.jakse@univ-grenoble-alpes.fr>
Sun, 5 Apr 2020 10:32:31 +0000 (12:32 +0200)
trivabble-server.js

index f5dc09cf9dbf1f91c6530a178134f04220086a04..0345eb5476785b47ef5ee506af570ac78f9ad401 100644 (file)
@@ -418,14 +418,12 @@ function countTiles(rack) {
     return count;
 }
 
-function joinGame(gameNumber, game, playerName) {
+function joinGame(gameNumber, playerName) {
     if (!gameNumber) {
         gameNumber = newGameId();
     }
 
-    if (!game) {
-        game = games[gameNumber] = new Game();
-    }
+    const game = games[gameNumber] || (games[gameNumber] = new Game());
 
     game.playerJoined(playerName);
 
@@ -433,9 +431,9 @@ function joinGame(gameNumber, game, playerName) {
 }
 
 function handleCommand(cmd, gameNumber, playerName, response) {
-    var game = games[gameNumber];
+    var game;
 
-    ({gameNumber, game} = joinGame(gameNumber, game, playerName));
+    ({gameNumber, game} = joinGame(gameNumber, playerName));
     game.lastUpdated = new Date();
 
     var rack = null;
@@ -659,7 +657,7 @@ function handleCommand(cmd, gameNumber, playerName, response) {
 
 function handleCommands(cmds, responseAndIsES) {
     if (!cmds.cmds || !cmds.cmds.length) {
-        var {gameNumber, game} = joinGame(cmds.gameNumber, game, cmds.playerName);
+        var {gameNumber, game} = joinGame(cmds.gameNumber, cmds.playerName);
 
         writeResponse(responseAndIsES,
             JSON.stringify({