From 10737ba3f255aa141afc8646ceb8ee1e45555b8b Mon Sep 17 00:00:00 2001 From: Fen Dweller Date: Tue, 17 Dec 2019 13:49:27 -0500 Subject: [PATCH] Safely handle inability to load/save --- gorge.js | 61 ++++++++++++++++++++++++++++++++------------------------ 1 file changed, 35 insertions(+), 26 deletions(-) diff --git a/gorge.js b/gorge.js index bd4d608..3e68528 100644 --- a/gorge.js +++ b/gorge.js @@ -938,41 +938,50 @@ function save(e) { } function saveGame() { - let storage = window.localStorage; + try { + let storage = window.localStorage; - storage.setItem("save-version", "0.0.1"); + storage.setItem("save-version", "0.0.1"); - storage.setItem("ownedUpgrades", JSON.stringify(ownedUpgrades)); + storage.setItem("ownedUpgrades", JSON.stringify(ownedUpgrades)); - storage.setItem("resources", JSON.stringify(resources)); + storage.setItem("resources", JSON.stringify(resources)); - storage.setItem("belongings", JSON.stringify(belongings)); + storage.setItem("belongings", JSON.stringify(belongings)); + } catch(e) { + clickPopup("Can't save - no access to local storage.", "info", [window.innerWidth/2, window.innerHeight/5]); + } } function load() { - let storage = window.localStorage; - - if (!storage.getItem("save-version")) { - return; - } - - let newOwnedUpgrades = JSON.parse(storage.getItem("ownedUpgrades")); - - for (const [key, value] of Object.entries(newOwnedUpgrades)) { - ownedUpgrades[key] = value; - } - - let newResources = JSON.parse(storage.getItem("resources")); - - for (const [key, value] of Object.entries(newResources)) { - resources[key] = value; - } - - let newBelongings = JSON.parse(storage.getItem("belongings")); + try { + let storage = window.localStorage; - for (const [key, value] of Object.entries(newBelongings)) { - belongings[key] = value; + if (!storage.getItem("save-version")) { + return; + } + + let newOwnedUpgrades = JSON.parse(storage.getItem("ownedUpgrades")); + + for (const [key, value] of Object.entries(newOwnedUpgrades)) { + ownedUpgrades[key] = value; + } + + let newResources = JSON.parse(storage.getItem("resources")); + + for (const [key, value] of Object.entries(newResources)) { + resources[key] = value; + } + + let newBelongings = JSON.parse(storage.getItem("belongings")); + + for (const [key, value] of Object.entries(newBelongings)) { + belongings[key] = value; + } + } catch(e) { + clickPopup("Can't load - no access to local storage.", "info", [window.innerWidth/2, window.innerHeight/5]); } + } function reset() {