From: Erik V. <ev...@us...> - 2008-11-29 20:01:43
|
Update of /cvsroot/rails/18xx/rails/game/action In directory 23jxhf1.ch3.sourceforge.com:/tmp/cvs-serv26165/rails/game/action Modified Files: LayTile.java Log Message: Allow selection of 1830 Erie home base station while upgrading to green. Index: LayTile.java =================================================================== RCS file: /cvsroot/rails/18xx/rails/game/action/LayTile.java,v retrieving revision 1.12 retrieving revision 1.13 diff -C2 -d -r1.12 -r1.13 *** LayTile.java 4 Jun 2008 19:00:29 -0000 1.12 --- LayTile.java 29 Nov 2008 20:01:33 -0000 1.13 *************** *** 8,15 **** --- 8,19 ---- import java.io.IOException; import java.io.ObjectInputStream; + import java.io.ObjectInputStream.GetField; import java.util.*; + import rails.game.City; + import rails.game.Company; import rails.game.MapHex; import rails.game.MapManager; + import rails.game.PublicCompanyI; import rails.game.TileI; import rails.game.TileManager; *************** *** 51,54 **** --- 55,63 ---- transient private SpecialTileLay specialProperty = null; private int specialPropertyId; + + /** + * Need base tokens be relaid? + */ + private boolean relayBaseTokens = false; /*--- Postconditions ---*/ *************** *** 64,67 **** --- 73,80 ---- /** The tile orientation */ private int orientation; + + /** Any manually assigned base token positions */ + private Map<String, Integer> relaidBaseTokens = null; + private String relaidBaseTokensString = null; public static final long serialVersionUID = 1L; *************** *** 202,205 **** --- 215,241 ---- tileColours = map; } + + + public boolean isRelayBaseTokens() { + return relayBaseTokens; + } + + public void setRelayBaseTokens(boolean relayBaseTokens) { + this.relayBaseTokens = relayBaseTokens; + } + + public void addRelayBaseToken (String companyName, Integer cityNumber) { + if (relaidBaseTokens == null) { + relaidBaseTokens = new HashMap<String, Integer>(); + } + relaidBaseTokens.put(companyName, cityNumber); + relaidBaseTokensString = Util.appendWithDelimiter(relaidBaseTokensString, + Util.appendWithDelimiter(companyName, String.valueOf(cityNumber), ":"), + ","); + } + + public Map<String, Integer> getRelaidBaseTokens() { + return relaidBaseTokens; + } public boolean equals(PossibleAction action) { *************** *** 230,234 **** b.append(" tile=").append(laidTile.getId()).append(" hex=").append( chosenHex.getName()).append(" orientation=").append( ! orientation); } return b.toString(); --- 266,270 ---- b.append(" tile=").append(laidTile.getId()).append(" hex=").append( chosenHex.getName()).append(" orientation=").append( ! orientation).append(" tokens=").append(relaidBaseTokensString); } return b.toString(); *************** *** 239,243 **** ClassNotFoundException { ! in.defaultReadObject(); MapManager mmgr = MapManager.getInstance(); --- 275,291 ---- ClassNotFoundException { ! //in.defaultReadObject(); ! // Custom reading for backwards compatibility ! ObjectInputStream.GetField fields = in.readFields(); ! locationNames = (String) fields.get("locationNames", locationNames); ! tileColours = (Map<String, Integer>) fields.get("tileColours", tileColours); ! tileIds = (int[]) fields.get("tileIds", tileIds); ! specialPropertyId = fields.get("specialPropertyId", specialPropertyId); ! laidTileId = fields.get("laidTileId", laidTileId); ! chosenHexName = (String) fields.get("chosenHexName", chosenHexName); ! orientation = fields.get("orientation", orientation); ! relayBaseTokens = fields.get("relayBaseTokens", relayBaseTokens); ! relaidBaseTokens = (Map<String,Integer>)fields.get("relaidBaseTokens", relaidBaseTokens); ! relaidBaseTokensString = (String) fields.get("relaidBaseTokensString", relaidBaseTokensString); MapManager mmgr = MapManager.getInstance(); *************** *** 265,268 **** --- 313,317 ---- chosenHex = MapManager.getInstance().getHex(chosenHexName); } + } |