Добавлена поддержка hard пауз

This commit is contained in:
Victor 2015-05-03 13:48:28 +03:00
parent d454d99d62
commit 76fcda0728
2 changed files with 18 additions and 4 deletions

View File

@ -217,8 +217,14 @@ public final class Parser {
if (match(token, TokenType.RENPY_PAUSE)) {
consume(TokenType.LPAREN);
final double pause = consumeDouble();
ViewActivity.getInstance().pause((int)(1000 * pause));
boolean hard = false;
if (!lookMatch(0, TokenType.RPAREN)) {
consume(TokenType.WORD); // hard
consume(TokenType.EQ);
hard = consumeBoolean();
}
consume(TokenType.RPAREN);
ViewActivity.getInstance().pause((int)(1000 * pause), hard);
return true;
}
@ -700,6 +706,10 @@ public final class Parser {
return Double.parseDouble(consume(TokenType.NUMBER).getText());
}
private boolean consumeBoolean() {
return "true".equalsIgnoreCase(consume(TokenType.WORD).getText());
}
private FadeInfo matchFade() {
final FadeInfo result = new FadeInfo();
if (match(TokenType.FADEIN)) {

View File

@ -57,6 +57,8 @@ public final class ViewActivity extends Activity implements TouchGesture.OnTouch
private Characters characters;
private Map<String, ImageView> spriteInContainer;
private DisplayMetrics displayMetrics;
private boolean blockTap;
@Override
protected void onCreate(Bundle savedInstanceState) {
@ -147,7 +149,7 @@ public final class ViewActivity extends Activity implements TouchGesture.OnTouch
public void onTouchGesture(TouchGestureType type) {
switch (type) {
case SINGLE_TAP:
Parser.getInstance().next();
if (!blockTap) Parser.getInstance().next();
break;
case SWIPE:
Dialogs.with(this).showMenu(R.array.menu_items, menu);
@ -194,6 +196,7 @@ public final class ViewActivity extends Activity implements TouchGesture.OnTouch
}
public void background(String type, String name, String effect) {
text("");
spritesClear();
if (name.equalsIgnoreCase("black")) background.setImageResource(android.R.color.black);
else if (name.equalsIgnoreCase("white")) background.setImageResource(android.R.color.white);
@ -280,8 +283,8 @@ public final class ViewActivity extends Activity implements TouchGesture.OnTouch
}
}
public void pause(final long duration) {
text("");
public void pause(final long duration, final boolean hard) {
blockTap = hard;
new Thread(new Runnable() {
@Override
public void run() {
@ -489,6 +492,7 @@ public final class ViewActivity extends Activity implements TouchGesture.OnTouch
private final Runnable nextCommandRunnable = new Runnable() {
@Override
public void run() {
blockTap = false;
Parser.getInstance().next();
}
};