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

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 List<Token> tokens;
private final int tokensCount; private final int tokensCount;
private int position; private int position, lastPosition;
private final Map<String, Integer> labels; private final Map<String, Integer> labels;
/** Оптимизация, чтобы каждый раз не искать endmenu/endif, /** Оптимизация, чтобы каждый раз не искать endmenu/endif,
@ -55,6 +55,7 @@ public final class Parser {
this.tokens = tokens; this.tokens = tokens;
tokensCount = tokens.size(); tokensCount = tokens.size();
this.position = position; this.position = position;
lastPosition = position;
labels = new HashMap<String, Integer>(); labels = new HashMap<String, Integer>();
hasEndMenu = false; hasEndMenu = false;
hasEndIf = false; hasEndIf = false;
@ -70,6 +71,10 @@ public final class Parser {
return tokensCount; return tokensCount;
} }
public int getLastPosition() {
return lastPosition;
}
public int getPosition() { public int getPosition() {
return position; return position;
} }
@ -86,6 +91,7 @@ public final class Parser {
} }
public void next() { 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 long timestamp = System.currentTimeMillis();
final SaveInfo info = new SaveInfo(); final SaveInfo info = new SaveInfo();
info.setPath(scriptPath); info.setPath(scriptPath);
info.setPosition(Parser.getInstance().getPosition()); info.setPosition(Parser.getInstance().getLastPosition());
info.setTime(timestamp); info.setTime(timestamp);
info.setVariables(Variables.getVariables()); info.setVariables(Variables.getVariables());
try { try {