Ability to save state
This commit is contained in:
parent
4de12e0532
commit
5e920f760d
@ -104,3 +104,11 @@ Menu.prototype.getPosition = function (itemIndex) {
|
|||||||
return this.items[itemIndex].position;
|
return this.items[itemIndex].position;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
function SaveInfo(time, position, variables, characterNames, backgroundType, backgroundName) {
|
||||||
|
this.time = time;
|
||||||
|
this.position = position;
|
||||||
|
this.variables = variables;
|
||||||
|
this.characterNames = characterNames;
|
||||||
|
this.backgroundType = backgroundType;
|
||||||
|
this.backgroundName = backgroundName;
|
||||||
|
}
|
@ -1,4 +1,4 @@
|
|||||||
/* global TextUtils, PathResolver, ViewActivity, transitions, Transition */
|
/* global TextUtils, PathResolver, ViewActivity, transitions, Transition, rpyscript, Variables */
|
||||||
|
|
||||||
function Views(parser) {
|
function Views(parser) {
|
||||||
this.parser = parser;
|
this.parser = parser;
|
||||||
@ -383,6 +383,10 @@ Views.prototype.showMainMenu = function () {
|
|||||||
this.addMainMenuItem("Следующая сцена", function() {
|
this.addMainMenuItem("Следующая сцена", function() {
|
||||||
views.parser.nextScene();
|
views.parser.nextScene();
|
||||||
});
|
});
|
||||||
|
this.addMainMenuItem("Сохранить", function() {
|
||||||
|
$('#menu').hide();
|
||||||
|
views.saveState();
|
||||||
|
});
|
||||||
this.addMainMenuItem("Закрыть", function() {
|
this.addMainMenuItem("Закрыть", function() {
|
||||||
$('#menu').hide();
|
$('#menu').hide();
|
||||||
});
|
});
|
||||||
@ -550,4 +554,22 @@ Views.prototype.stopAmbience = function (fade) {
|
|||||||
} else {
|
} else {
|
||||||
this.ambiencePlayerAudio.pause();
|
this.ambiencePlayerAudio.pause();
|
||||||
}
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
Views.prototype.saveState = function () {
|
||||||
|
var saves = JSON.parse(localStorage.saves || null) || {};
|
||||||
|
saves[rpyscript] = saves[rpyscript] || [];
|
||||||
|
saves[rpyscript].push(this.createSave());
|
||||||
|
localStorage.saves = JSON.stringify(saves);
|
||||||
|
};
|
||||||
|
|
||||||
|
Views.prototype.createSave = function () {
|
||||||
|
var save = new SaveInfo();
|
||||||
|
save.position = this.parser.lastPosition;
|
||||||
|
save.time = String(new Date());
|
||||||
|
save.variables = Variables.variables;
|
||||||
|
save.characterNames = this.characters.names;
|
||||||
|
save.backgroundType = this.backgroundType;
|
||||||
|
save.backgroundName = this.backgroundName;
|
||||||
|
return save;
|
||||||
};
|
};
|
Loading…
Reference in New Issue
Block a user