/
rewinder.js
62 lines (53 loc) · 1.94 KB
/
rewinder.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
var getGlobals = undefined;
var resetToRewindedLevel = undefined;
// (() => {
// let globalData = [];
// let saveInterval = 1;
// let dataLimit = 30;
// resetToRewindedLevel = function (val) {
// globalData.length = val;
// }
// let filterSavedData = function () {
// for (let i = 0; i < dataLimit; i++) {
// globalData[i] = globalData[i * 2];
// }
// globalData.length = dataLimit;
// }
// let saveGlobals = function () {
// if (gameState.pause) return;
// var keyValues = [];
// for (var prop in this) {
// if (typeof (this[prop]) !== 'function' && !BASE_GLOBALS.includes(prop) && prop !== prop.toUpperCase()
// && !['rewindedLevel', 'ctx', 'canvas', 'bgCtx', 'pacEnemies', 'gameState'].includes(prop)) {
// keyValues.push(prop + "=" + JSON.stringify(this[prop]));
// } else if (prop === 'pacEnemies') {
// keyValues.push(prop + "=" + JSON.stringify(this[prop].map(x => x.toJSON())));
// }
// }
// globalData.push(keyValues);
// if (globalData.length && !(globalData.length % (2 * dataLimit))) {
// filterSavedData();
// saveInterval += 1;
// }
// }
// getGlobals = function () {
// return globalData
// }
// setInterval(saveGlobals, saveInterval * 1000)
// })();
var rewindedLevel = 1000;
function rewind(hash) {
// rewindedLevel = val;
// let newGlobals = getGlobals()[val];
// newGlobals.forEach(newGlobal => {
// if (!newGlobal.includes('pacEnemies'))
// this[newGlobal.split('=')[0]] = JSON.parse(newGlobal.split('=')[1]);
// else
// this[newGlobal.split('=')[0]].forEach((x, i) => x.fromJSON(JSON.parse(newGlobal.split('=')[1])[i]))
// });
restoreSnap(hash)
gameState.rewind = true;
draw()
drawBackdrop()
gameState.rewind = false;
}