From 0c8fac47ba04da6ed65f85ab00f72713903a1e5e Mon Sep 17 00:00:00 2001 From: Victor Date: Fri, 24 Apr 2015 17:10:32 +0300 Subject: [PATCH] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=D0=B0=20=D0=BA=D0=BE=D0=BC=D0=B0=D0=BD=D0=B4=D0=B0=20res?= =?UTF-8?q?et=5Fzone?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/com/annimon/everlastingsummer/Lexer.java | 1 + src/com/annimon/everlastingsummer/MapPlaces.java | 4 ++++ src/com/annimon/everlastingsummer/Parser.java | 7 +++++++ src/com/annimon/everlastingsummer/TokenType.java | 1 + src/com/annimon/everlastingsummer/ViewActivity.java | 4 ++++ 5 files changed, 17 insertions(+) diff --git a/src/com/annimon/everlastingsummer/Lexer.java b/src/com/annimon/everlastingsummer/Lexer.java index 75201dc..b596668 100644 --- a/src/com/annimon/everlastingsummer/Lexer.java +++ b/src/com/annimon/everlastingsummer/Lexer.java @@ -72,6 +72,7 @@ public final class Lexer { KEYWORDS.put("meet", TokenType.SET_NAME); KEYWORDS.put("disable_all_zones", TokenType.DISABLE_ALL_ZONES); KEYWORDS.put("disable_current_zone", TokenType.DISABLE_CURRENT_ZONE); + KEYWORDS.put("reset_zone", TokenType.RESET_ZONE); KEYWORDS.put("set_zone", TokenType.SET_ZONE); KEYWORDS.put("show_map", TokenType.SHOW_MAP); } diff --git a/src/com/annimon/everlastingsummer/MapPlaces.java b/src/com/annimon/everlastingsummer/MapPlaces.java index 1bc7ea8..1a05b84 100644 --- a/src/com/annimon/everlastingsummer/MapPlaces.java +++ b/src/com/annimon/everlastingsummer/MapPlaces.java @@ -32,6 +32,10 @@ public class MapPlaces { zones.remove(currentZone); } + public void resetZone(String zone) { + zones.remove(zone); + } + public void setZone(String name, String label) { zones.put(name, label); } diff --git a/src/com/annimon/everlastingsummer/Parser.java b/src/com/annimon/everlastingsummer/Parser.java index 6de864a..9fc4ceb 100644 --- a/src/com/annimon/everlastingsummer/Parser.java +++ b/src/com/annimon/everlastingsummer/Parser.java @@ -269,6 +269,13 @@ public final class Parser { ViewActivity.getInstance().disableCurrentZone(); return false; } + if (match(token, TokenType.RESET_ZONE)) { + consume(TokenType.LPAREN); + final String zone = consume(TokenType.TEXT).getText(); + consume(TokenType.RPAREN); + ViewActivity.getInstance().resetZone(zone); + return false; + } if (match(token, TokenType.SET_ZONE)) { consume(TokenType.LPAREN); final String zone = consume(TokenType.TEXT).getText(); diff --git a/src/com/annimon/everlastingsummer/TokenType.java b/src/com/annimon/everlastingsummer/TokenType.java index caff8d4..5f1f1da 100644 --- a/src/com/annimon/everlastingsummer/TokenType.java +++ b/src/com/annimon/everlastingsummer/TokenType.java @@ -71,6 +71,7 @@ public enum TokenType { SET_NAME, DISABLE_ALL_ZONES, DISABLE_CURRENT_ZONE, + RESET_ZONE, SET_ZONE, SHOW_MAP, diff --git a/src/com/annimon/everlastingsummer/ViewActivity.java b/src/com/annimon/everlastingsummer/ViewActivity.java index f66c3a6..d80aed4 100644 --- a/src/com/annimon/everlastingsummer/ViewActivity.java +++ b/src/com/annimon/everlastingsummer/ViewActivity.java @@ -345,6 +345,10 @@ public final class ViewActivity extends Activity implements TouchGesture.OnTouch places.disableCurrentZone(); } + public void resetZone(String zone) { + places.resetZone(zone); + } + public void setZone(String name, String label) { places.setZone(name, label); }