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); }