From: Stefan F. <ste...@us...> - 2010-03-03 21:34:22
|
Update of /cvsroot/rails/18xx/rails/game In directory sfp-cvsdas-1.v30.ch3.sourceforge.com:/tmp/cvs-serv9005/rails/game Modified Files: OperatingRound.java Log Message: Changed tileLaysPerColour state support from GenericState to MapChange. Index: OperatingRound.java =================================================================== RCS file: /cvsroot/rails/18xx/rails/game/OperatingRound.java,v retrieving revision 1.111 retrieving revision 1.112 diff -C2 -d -r1.111 -r1.112 *** OperatingRound.java 3 Mar 2010 00:44:51 -0000 1.111 --- OperatingRound.java 3 Mar 2010 21:34:11 -0000 1.112 *************** *** 12,16 **** import rails.game.state.EnumState; import rails.game.state.IntegerState; ! import rails.game.state.GenericState; import rails.util.LocalText; --- 12,16 ---- import rails.game.state.EnumState; import rails.game.state.IntegerState; ! //import rails.game.state.GenericState; import rails.util.LocalText; *************** *** 47,53 **** protected List<LayTile> currentNormalTileLays = new ArrayList<LayTile>(); ! // protected Map<String, Integer> tileLaysPerColour = ! // new HashMap<String, Integer>(); ! protected GenericState<Map<String,Integer>> tileLaysPerColourState = null; protected List<LayBaseToken> currentNormalTokenLays = --- 47,53 ---- protected List<LayTile> currentNormalTileLays = new ArrayList<LayTile>(); ! protected Map<String, Integer> tileLaysPerColour = ! new HashMap<String, Integer>(); ! // protected GenericState<Map<String,Integer>> tileLaysPerColourState = null; protected List<LayBaseToken> currentNormalTokenLays = *************** *** 448,458 **** protected boolean checkNormalTileLay(TileI tile, boolean update) { ! Map<String,Integer> tileLaysPerColour = tileLaysPerColourState.getObject(); ! if (tileLaysPerColour.isEmpty()) return false; ! String colour = tile.getColourName(); Integer oldAllowedNumberObject = tileLaysPerColour.get(colour); if (oldAllowedNumberObject == null) return false; int oldAllowedNumber = oldAllowedNumberObject.intValue(); if (oldAllowedNumber <= 0) return false; --- 448,460 ---- protected boolean checkNormalTileLay(TileI tile, boolean update) { ! // Map<String,Integer> tileLaysPerColour = tileLaysPerColourState.getObject(); ! // if (tileLaysPerColour.isEmpty()) return false; + String colour = tile.getColourName(); Integer oldAllowedNumberObject = tileLaysPerColour.get(colour); + if (oldAllowedNumberObject == null) return false; + int oldAllowedNumber = oldAllowedNumberObject.intValue(); if (oldAllowedNumber <= 0) return false; *************** *** 467,484 **** */ ! Map<String,Integer> tileLaysPerColourUpdated = new HashMap<String, Integer>(); // new (empty) map if (oldAllowedNumber <= 1) { ! // tileLaysPerColour.clear(); log.debug("No more normal tile lays allowed"); currentNormalTileLays.clear(); } else { ! // tileLaysPerColour.clear(); // Remove all other colours ! tileLaysPerColourUpdated.put(colour, new Integer(oldAllowedNumber - 1)); ! log.debug((oldAllowedNumber - 1) + " more " + colour + " tile lays allowed"); } ! tileLaysPerColourState.set(tileLaysPerColourUpdated); return true; --- 469,493 ---- */ ! // Map<String,Integer> tileLaysPerColourUpdated = new HashMap<String, Integer>(); // new (empty) map if (oldAllowedNumber <= 1) { ! for (String key:tileLaysPerColour.keySet()) ! new MapChange<String,Integer>(tileLaysPerColour, key, new Integer(0)); log.debug("No more normal tile lays allowed"); currentNormalTileLays.clear(); } else { ! // tileLaysPerColourUpdated.put(colour, new Integer(oldAllowedNumber - 1)); ! for (String key:tileLaysPerColour.keySet()) ! if (colour.equals(key)) ! new MapChange<String,Integer> ! (tileLaysPerColour, colour, new Integer(oldAllowedNumber-1)); ! else ! new MapChange<String,Integer>(tileLaysPerColour, key, new Integer(0)); ! ! log.debug((oldAllowedNumber - 1) + " more " + colour + " tile lays allowed"); } ! // tileLaysPerColourState.set(tileLaysPerColourUpdated); return true; *************** *** 1178,1182 **** protected void getNormalTileLays() { ! Map<String,Integer> tileLaysPerColour = new HashMap<String, Integer>(getCurrentPhase().getTileColours()); // Clone --- 1187,1192 ---- protected void getNormalTileLays() { ! // Map<String,Integer> ! tileLaysPerColour = new HashMap<String, Integer>(getCurrentPhase().getTileColours()); // Clone *************** *** 1189,1193 **** // store state ! tileLaysPerColourState = new GenericState<Map<String,Integer>>("tileLaysPerColour", tileLaysPerColour); } --- 1199,1203 ---- // store state ! // tileLaysPerColourState = new GenericState<Map<String,Integer>>("tileLaysPerColour", tileLaysPerColour); } *************** *** 1197,1203 **** currentNormalTileLays.clear(); ! Map<String,Integer> tileLaysPerColour = (Map<String,Integer>)(tileLaysPerColourState.getObject()); ! ! if (!tileLaysPerColour.isEmpty()) { currentNormalTileLays.add(new LayTile(tileLaysPerColour)); } --- 1207,1217 ---- currentNormalTileLays.clear(); ! // Map<String,Integer> tileLaysPerColour = (Map<String,Integer>)(tileLaysPerColourState.getObject()); ! ! int sumLays = 0; ! for (Integer i: tileLaysPerColour.values()) ! sumLays = sumLays + i; ! if (sumLays != 0) { ! // if (!tileLaysPerColour.isEmpty()) { currentNormalTileLays.add(new LayTile(tileLaysPerColour)); } |