diff --git a/src/phases.ts b/src/phases.ts index 8a9f96075de..8556e9dbcdd 100644 --- a/src/phases.ts +++ b/src/phases.ts @@ -414,6 +414,8 @@ export class ReloadSessionPhase extends Phase { delayElapsed = true; }); + this.scene.gameData.clearLocalData(); + (this.systemDataStr ? this.scene.gameData.initSystem(this.systemDataStr) : this.scene.gameData.loadSystem()).then(() => { if (delayElapsed) this.end(); diff --git a/src/system/game-data.ts b/src/system/game-data.ts index 3fdadfddc25..ad3f64ae4c1 100644 --- a/src/system/game-data.ts +++ b/src/system/game-data.ts @@ -359,11 +359,8 @@ export class GameData { if (cachedSystemData.timestamp > systemData.timestamp) { console.debug('Use cached system'); systemData = cachedSystemData; - } else { - localStorage.removeItem(`data_${loggedInUser.username}`); - for (let s = 0; s < 5; s++) - localStorage.removeItem(`sessionData${s ? s : ''}_${loggedInUser.username}`); - } + } else + this.clearLocalData(); } console.debug(systemData); @@ -512,15 +509,19 @@ export class GameData { if (!response.valid) { this.scene.clearPhaseQueue(); this.scene.unshiftPhase(new ReloadSessionPhase(this.scene, JSON.stringify(response.systemData))); - localStorage.removeItem(`data_${loggedInUser.username}`); - for (let s = 0; s < 5; s++) - localStorage.removeItem(`sessionData${s ? s : ''}_${loggedInUser.username}`); + this.clearLocalData(); return false; } return true; } + public clearLocalData(): void { + localStorage.removeItem(`data_${loggedInUser.username}`); + for (let s = 0; s < 5; s++) + localStorage.removeItem(`sessionData${s ? s : ''}_${loggedInUser.username}`); + } + public saveSetting(setting: Setting, valueIndex: integer): boolean { let settings: object = {}; if (localStorage.hasOwnProperty('settings'))