- // TODO: general methods to access/retrieve from storage, to be generalized
- // https://developer.mozilla.org/fr/docs/Web/API/API_IndexedDB
- // https://dexie.org/
- getStoragePrefix: function(mode) {
- let prefix = "";
- if (mode == "computer")
- prefix = "comp-";
- else if (mode == "friend")
- prefix = "anlz-";
- return prefix;
- },
- setStorage: function() {
- if (this.mode=="human")
- {
- localStorage.setItem("myid", this.myid);
- localStorage.setItem("oppid", this.oppid);
- localStorage.setItem("gameId", this.gameId);
- }
- const prefix = this.getStoragePrefix(this.mode);
- localStorage.setItem(prefix+"variant", variant);
- localStorage.setItem(prefix+"mycolor", this.mycolor);
- localStorage.setItem(prefix+"fenStart", this.fenStart);
- localStorage.setItem(prefix+"moves", JSON.stringify(this.vr.moves));
- localStorage.setItem(prefix+"fen", this.vr.getFen());
- localStorage.setItem(prefix+"score", "*");
- },
- updateStorage: function() {
- const prefix = this.getStoragePrefix(this.mode);
- localStorage.setItem(prefix+"moves", JSON.stringify(this.vr.moves));
- localStorage.setItem(prefix+"fen", this.vr.getFen());
- if (this.score != "*")
- localStorage.setItem(prefix+"score", this.score);
- },
- // "computer mode" clearing is done through the menu
- clearStorage: function() {
- if (this.mode == "human")
- {
- delete localStorage["myid"];
- delete localStorage["oppid"];
- delete localStorage["gameId"];
- }
- const prefix = this.getStoragePrefix(this.mode);
- delete localStorage[prefix+"variant"];
- delete localStorage[prefix+"mycolor"];
- delete localStorage[prefix+"fenStart"];
- delete localStorage[prefix+"moves"];
- delete localStorage[prefix+"fen"];
- delete localStorage[prefix+"score"];
- },
- clearCurrentGame: function(e) {
- this.getRidOfTooltip(e.currentTarget);
- this.clearStorage();
- location.reload(); //to see clearing effects
- },
+// TODO: general methods to access/retrieve from storage, to be generalized
+// https://developer.mozilla.org/fr/docs/Web/API/API_IndexedDB
+// https://dexie.org/
+function setStorage(myid, oppid, gameId, variant, mycolor, fenStart)
+{
+ localStorage.setItem("myid", myid);
+ localStorage.setItem("oppid", oppid);
+ localStorage.setItem("gameId", gameId);
+ localStorage.setItem("variant", variant);
+ localStorage.setItem("mycolor", mycolor);
+ localStorage.setItem("fenStart", fenStart);
+ localStorage.setItem("moves", []);
+}
+
+function updateStorage(move)
+{
+ let moves = JSON.parse(localStorage.getItem("moves"));
+ moves.push(move);
+ localStorage.setItem("moves", JSON.stringify(moves));
+}
+
+// "computer mode" clearing is done through the menu
+function clearStorage()
+{
+ delete localStorage["myid"];
+ delete localStorage["oppid"];
+ delete localStorage["gameId"];
+ delete localStorage["variant"];
+ delete localStorage["mycolor"];
+ delete localStorage["fenStart"];
+ delete localStorage["moves"];
+}
+
+function getGameFromStorage(gameId)
+{
+ let game = {};
+ if (localStorage.getItem("gameId") === gameId)
+ {
+ // Retrieve running game from localStorage
+ game.score = localStorage.getItem("score");
+ game.oppid = localStorage.getItem("oppid");
+ game.mycolor = localStorage.getItem("mycolor");
+ game.fenStart = localStorage.getItem("fenStart");
+ game.moves = localStorage.getItem("moves");
+ }
+ else
+ {
+ // Find the game in indexedDB: TODO
+ }
+}