diff options
| author | Jérémy Zurcher <jeremy@asynk.ch> | 2016-02-10 11:20:46 +0100 | 
|---|---|---|
| committer | Jérémy Zurcher <jeremy@asynk.ch> | 2016-02-10 11:20:46 +0100 | 
| commit | 3719043c562e6235f2f62f5b9ac79320fad7f6ae (patch) | |
| tree | cf42c691ee176eacbe5b553beb7e700766f7588d /core/src/ch/asynk/rustanddust | |
| parent | 4f3e3b341317288bf2da57aca90d86a1e9c8f956 (diff) | |
| download | RustAndDust-3719043c562e6235f2f62f5b9ac79320fad7f6ae.zip RustAndDust-3719043c562e6235f2f62f5b9ac79320fad7f6ae.tar.gz | |
Map5Marshal: load/unload entryZones and exitZones
Diffstat (limited to 'core/src/ch/asynk/rustanddust')
| -rw-r--r-- | core/src/ch/asynk/rustanddust/game/map/Map5Marshal.java | 53 | 
1 files changed, 53 insertions, 0 deletions
| diff --git a/core/src/ch/asynk/rustanddust/game/map/Map5Marshal.java b/core/src/ch/asynk/rustanddust/game/map/Map5Marshal.java index 60198a2..4bc0509 100644 --- a/core/src/ch/asynk/rustanddust/game/map/Map5Marshal.java +++ b/core/src/ch/asynk/rustanddust/game/map/Map5Marshal.java @@ -15,7 +15,9 @@ import ch.asynk.rustanddust.engine.Orientation;  import ch.asynk.rustanddust.engine.SelectedTile;  import ch.asynk.rustanddust.RustAndDust; +import ch.asynk.rustanddust.game.Map;  import ch.asynk.rustanddust.game.Hex; +import ch.asynk.rustanddust.game.Zone;  import ch.asynk.rustanddust.game.Player;  import ch.asynk.rustanddust.game.Army;  import ch.asynk.rustanddust.game.Unit; @@ -124,6 +126,38 @@ public abstract class Map5Marshal extends Map4Orders              json.writeObjectEnd();          }          json.writeArrayEnd(); +        json.writeArrayStart("e"); +        for (Zone z: entryZones) { +            json.writeObjectStart(); +            json.writeValue("a", z.allowedMoves); +            json.writeValue("o", z.orientation.r()); +            json.writeArrayStart("t"); +            for (Tile t : z) { +                json.writeArrayStart(); +                json.writeValue(t.getCol()); +                json.writeValue(t.getRow()); +                json.writeArrayEnd(); +            } +            json.writeArrayEnd(); +            json.writeObjectEnd(); +        } +        json.writeArrayEnd(); +        json.writeArrayStart("x"); +        for (Zone z: exitZones) { +            json.writeObjectStart(); +            json.writeValue("a", z.allowedMoves); +            json.writeValue("o", z.orientation.r()); +            json.writeArrayStart("t"); +            for (Tile t : z) { +                json.writeArrayStart(); +                json.writeValue(t.getCol()); +                json.writeValue(t.getRow()); +                json.writeArrayEnd(); +            } +            json.writeArrayEnd(); +            json.writeObjectEnd(); +        } +        json.writeArrayEnd();      }      // orders @@ -294,6 +328,25 @@ public abstract class Map5Marshal extends Map4Orders              h.claim(army);              showObjective(h, army);          } +        a = v.get("e"); +        for (int i = 0; i < a.size; i++) +            entryZones.add(loadZone(a.get(i))); +        a = v.get("x"); +        for (int i = 0; i < a.size; i++) +            exitZones.add(loadZone(a.get(i))); +    } + +    private Zone loadZone(JsonValue v) +    { +        JsonValue t = v.get("t"); +        Zone z = new Zone((Map) this, t.size); +        z.allowedMoves = v.getInt("a"); +        z.orientation = Orientation.fromRotation(v.getInt("o")); +        for (int j = 0; j < t.size; j++) { +            JsonValue h = t.get(j); +            z.add(getHex(h.getInt(0), h.getInt(1))); +        } +        return z;      }      private void loadOrders(JsonValue v) | 
