Исправлено некорректное восстановление позиции при загрузке сохранений

This commit is contained in:
Victor 2015-05-03 14:33:24 +03:00
parent dfb05629a0
commit 8e198f3616
2 changed files with 8 additions and 2 deletions

View File

@ -35,7 +35,7 @@ public final class Parser {
private final List<Token> tokens;
private final int tokensCount;
private int position;
private int position, lastPosition;
private final Map<String, Integer> labels;
/** Оптимизация, чтобы каждый раз не искать endmenu/endif,
@ -55,6 +55,7 @@ public final class Parser {
this.tokens = tokens;
tokensCount = tokens.size();
this.position = position;
lastPosition = position;
labels = new HashMap<String, Integer>();
hasEndMenu = false;
hasEndIf = false;
@ -69,6 +70,10 @@ public final class Parser {
public int getTokensCount() {
return tokensCount;
}
public int getLastPosition() {
return lastPosition;
}
public int getPosition() {
return position;
@ -86,6 +91,7 @@ public final class Parser {
}
public void next() {
lastPosition = position;
// Команды разделяются на терминальные и нетерминальные.
// Нетерминальные подготавливают сцену к выводу.
// Терминальные выводят всё на экран и ожидают следующего вызова.

View File

@ -477,7 +477,7 @@ public final class ViewActivity extends Activity implements TouchGesture.OnTouch
final long timestamp = System.currentTimeMillis();
final SaveInfo info = new SaveInfo();
info.setPath(scriptPath);
info.setPosition(Parser.getInstance().getPosition());
info.setPosition(Parser.getInstance().getLastPosition());
info.setTime(timestamp);
info.setVariables(Variables.getVariables());
try {