diff options
-rw-r--r-- | core/src/ch/asynk/rustanddust/game/battles/BattleCommon.java | 19 | ||||
-rw-r--r-- | core/src/ch/asynk/rustanddust/game/map/Map5Marshal.java | 25 |
2 files changed, 22 insertions, 22 deletions
diff --git a/core/src/ch/asynk/rustanddust/game/battles/BattleCommon.java b/core/src/ch/asynk/rustanddust/game/battles/BattleCommon.java index 50bb1bd..9fe66f8 100644 --- a/core/src/ch/asynk/rustanddust/game/battles/BattleCommon.java +++ b/core/src/ch/asynk/rustanddust/game/battles/BattleCommon.java @@ -1,8 +1,13 @@ package ch.asynk.rustanddust.game.battles; import java.util.Random; +import java.io.StringWriter; + +import com.badlogic.gdx.utils.Json; +import com.badlogic.gdx.utils.JsonValue; +import com.badlogic.gdx.utils.JsonReader; +import com.badlogic.gdx.utils.JsonWriter.OutputType; -import ch.asynk.rustanddust.game.Ctrl; import ch.asynk.rustanddust.game.Battle; import ch.asynk.rustanddust.game.Player; import ch.asynk.rustanddust.game.State; @@ -19,6 +24,8 @@ public abstract class BattleCommon implements Battle { protected final static Random random = new Random(System.currentTimeMillis()); + private final static StringWriter writer = new StringWriter(2048); + protected final Factory factory; protected int _id; @@ -101,14 +108,20 @@ public abstract class BattleCommon implements Battle public void load(int turn, String payload) { this.turnCount = turn; - map.load(payload, players); + JsonValue root = new JsonReader().parse(payload); + map.load(root, players); this.currentPlayer = players[0]; } @Override public String unload(boolean full) { - return map.unload(full, getPlayer(), getOpponent()); + Json json = new Json(OutputType.json); + writer.getBuffer().setLength(0); + json.setWriter(writer); + map.unload(json, full, getPlayer(), getOpponent()); + writer.flush(); + return writer.toString(); } @Override diff --git a/core/src/ch/asynk/rustanddust/game/map/Map5Marshal.java b/core/src/ch/asynk/rustanddust/game/map/Map5Marshal.java index ec02762..6e2fd1e 100644 --- a/core/src/ch/asynk/rustanddust/game/map/Map5Marshal.java +++ b/core/src/ch/asynk/rustanddust/game/map/Map5Marshal.java @@ -1,12 +1,8 @@ package ch.asynk.rustanddust.game.map; -import java.io.StringWriter; - import com.badlogic.gdx.graphics.Texture; import com.badlogic.gdx.utils.Json; import com.badlogic.gdx.utils.JsonValue; -import com.badlogic.gdx.utils.JsonReader; -import com.badlogic.gdx.utils.JsonWriter.OutputType; import ch.asynk.rustanddust.engine.Tile; import ch.asynk.rustanddust.engine.Path; @@ -28,7 +24,6 @@ import ch.asynk.rustanddust.game.Engagement; public abstract class Map5Marshal extends Map4Orders { - private static StringWriter writer = new StringWriter(2048); private static UnitList units = new UnitList(30); public Map5Marshal(final RustAndDust game, Texture map, SelectedTile hex) @@ -36,12 +31,8 @@ public abstract class Map5Marshal extends Map4Orders super(game, map, hex); } - public String unload(boolean full, Player player, Player opponent) + public void unload(Json json, boolean full, Player player, Player opponent) { - Json json = new Json(OutputType.json); - writer.getBuffer().setLength(0); - json.setWriter(writer); - json.writeObjectStart(); if (full) { json.writeObjectStart("map"); @@ -56,9 +47,6 @@ public abstract class Map5Marshal extends Map4Orders unload(json, orders); json.writeArrayEnd(); json.writeObjectEnd(); - - writer.flush(); - return writer.toString(); } // player @@ -266,14 +254,13 @@ public abstract class Map5Marshal extends Map4Orders } // LOAD - public void load(String payload, Player[] players) + public void load(JsonValue v, Player[] players) { units.clear(); - JsonValue root = new JsonReader().parse(payload); - loadMap(root.get("map")); - players[0] = loadPlayer(root.get("players").get(0)); - players[1] = loadPlayer(root.get("players").get(1)); - loadOrders(root.get("orders")); + loadMap(v.get("map")); + players[0] = loadPlayer(v.get("players").get(0)); + players[1] = loadPlayer(v.get("players").get(1)); + loadOrders(v.get("orders")); units.clear(); } |