diff options
Diffstat (limited to 'core')
| -rw-r--r-- | core/src/ch/asynk/rustanddust/game/map/Map5Marshal.java | 38 | 
1 files changed, 24 insertions, 14 deletions
| diff --git a/core/src/ch/asynk/rustanddust/game/map/Map5Marshal.java b/core/src/ch/asynk/rustanddust/game/map/Map5Marshal.java index 3f53070..d1c31a4 100644 --- a/core/src/ch/asynk/rustanddust/game/map/Map5Marshal.java +++ b/core/src/ch/asynk/rustanddust/game/map/Map5Marshal.java @@ -54,6 +54,7 @@ public abstract class Map5Marshal extends Map4Orders          return writer.toString();      } +    // player      private void unload(Json json, Player player)      {          json.writeObjectStart(); @@ -75,6 +76,7 @@ public abstract class Map5Marshal extends Map4Orders          json.writeObjectEnd();      } +    // units      private void unload(Json json, String name, UnitList units, boolean pos)      {          json.writeArrayStart(name); @@ -82,6 +84,7 @@ public abstract class Map5Marshal extends Map4Orders          json.writeArrayEnd();      } +    // unit      private void unload(Json json, Unit unit, boolean pos)      {          json.writeObjectStart(); @@ -104,6 +107,7 @@ public abstract class Map5Marshal extends Map4Orders          json.writeObjectEnd();      } +    // map      private void unload(Json json)      {          json.writeArrayStart("o"); @@ -119,6 +123,7 @@ public abstract class Map5Marshal extends Map4Orders          json.writeArrayEnd();      } +    // orders      private void unload(Json json, OrderList orders)      {          for (Order o : orders) { @@ -133,22 +138,17 @@ public abstract class Map5Marshal extends Map4Orders                      break;                  case PROMOTE:                      json.writeValue("id", o.unit.id); -                    json.writeValue("code", o.unit.code); -                    json.writeArrayStart("p"); -                    json.writeValue(o.unitHex.getCol()); -                    json.writeValue(o.unitHex.getRow()); -                    json.writeArrayEnd();                      break;              }              json.writeObjectEnd();          }      } +    // move      private void unload(Json json, Move m)      {          json.writeValue("type", m.type);          json.writeValue("id", ((Unit) m.pawn).id); -        json.writeValue("code", ((Unit) m.pawn).code);          if (m.from != null) {              json.writeArrayStart("from");              json.writeValue(m.from.getCol()); @@ -174,13 +174,16 @@ public abstract class Map5Marshal extends Map4Orders          }      } +    // engagement      private void unload(Json json, Engagement e)      { -        unload(json, "atk", e.attacker); -        unload(json, "def", e.defender); +        json.writeArrayStart("units"); +        json.writeValue(e.attacker.id); +        json.writeValue(e.defender.id); +        json.writeArrayEnd();          json.writeArrayStart("assists");          for (Unit u : e.assists) -            unload(json, null, u); +            json.writeValue(u.id);          json.writeArrayEnd();          json.writeArrayStart("dice");          json.writeValue(e.d1); @@ -197,15 +200,22 @@ public abstract class Map5Marshal extends Map4Orders      private void unload(Json json, String key, Unit u)      { +        unload(json, key, u, true); +    } + +    // unit +    private void unload(Json json, String key, Unit u, boolean pos) +    {          if (key != null) json.writeObjectStart(key);          else json.writeObjectStart();          json.writeValue("id", u.id); -        json.writeValue("code", u.code);          Hex h = u.getHex(); -        json.writeArrayStart("p"); -        json.writeValue(h.getCol()); -        json.writeValue(h.getRow()); -        json.writeArrayEnd(); +        if (pos && (h != null)) { +            json.writeArrayStart("p"); +            json.writeValue(h.getCol()); +            json.writeValue(h.getRow()); +            json.writeArrayEnd(); +        }          json.writeObjectEnd();      }  } | 
