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};