From aff4c8d1458063c75c2f03bbc53eab30ee3a2a14 Mon Sep 17 00:00:00 2001 From: MisterErwin Date: Sat, 13 Feb 2021 14:15:09 +0100 Subject: [PATCH] Do not change rooms if scene failed to load Sometimes a following room fails to load (e.g., #582) and instead of fading to black (as no scene is active) when trying to enter that next room, the player will stay in the old room and an error is logged (as throwing one crashes the game). --- front/src/Phaser/Game/GameScene.ts | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/front/src/Phaser/Game/GameScene.ts b/front/src/Phaser/Game/GameScene.ts index a5f29364..359aca7e 100644 --- a/front/src/Phaser/Game/GameScene.ts +++ b/front/src/Phaser/Game/GameScene.ts @@ -716,6 +716,10 @@ export class GameScene extends ResizableScene implements CenterListener { if (!roomId) throw new Error('Could not find the room from its exit key: '+exitKey); urlManager.pushStartLayerNameToUrl(hash); if (roomId !== this.scene.key) { + if (this.scene.get(roomId) === null) { + console.error("next room not loaded", exitKey); + return; + } this.cleanupClosingScene(); this.scene.stop(); this.scene.remove(this.scene.key);