From: <ev...@us...> - 2011-06-22 11:57:01
|
Revision: 1582 http://rails.svn.sourceforge.net/rails/?rev=1582&view=rev Author: evos Date: 2011-06-22 11:56:55 +0000 (Wed, 22 Jun 2011) Log Message: ----------- Fixed 1830 PM config bug, and added a check for this and related errors. Modified Paths: -------------- trunk/18xx/data/1830/Game.xml trunk/18xx/rails/game/TrainManager.java Modified: trunk/18xx/data/1830/Game.xml =================================================================== --- trunk/18xx/data/1830/Game.xml 2011-06-21 21:25:49 UTC (rev 1581) +++ trunk/18xx/data/1830/Game.xml 2011-06-22 11:56:55 UTC (rev 1582) @@ -173,13 +173,13 @@ <IfOption name="WithOptional6Train" value="no"> <Attributes quantity="2"/> </IfOption> - <IfOption name="Variant" value="Pere Marquette,Coalfields,Reading"> + <IfOption name="Variant" value="Coalfields,Reading"> <Attributes quantity="3" releasedTrain="7,D"/> </IfOption> <IfOption name="Variant" value="Coalfields&Reading"> <Attributes quantity="4" releasedTrain="7,D"/> </IfOption> - <IfOption name="Variant" value="Simple,Wabash"> + <IfOption name="Variant" value="Pere Marquette,Simple,Wabash"> <Attributes quantity="3"/> </IfOption> </TrainType> Modified: trunk/18xx/rails/game/TrainManager.java =================================================================== --- trunk/18xx/rails/game/TrainManager.java 2011-06-21 21:25:49 UTC (rev 1581) +++ trunk/18xx/rails/game/TrainManager.java 2011-06-22 11:56:55 UTC (rev 1582) @@ -138,11 +138,15 @@ // Finish initialisation of the train types Map<Integer, String> rustedTrainTypeNames; - TrainCertificateType rustedType; + TrainCertificateType releasedType, rustedType; for (TrainCertificateType type : trainCertTypes) { if (type.getReleasedTrainTypeNames() != null) { List<TrainCertificateType> rtts = new ArrayList<TrainCertificateType>(2); for (String ttName : type.getReleasedTrainTypeNames().split(",")) { + releasedType = trainCertTypeMap.get(ttName); + if (releasedType == null) { + throw new ConfigurationException ("Train type "+type.getName()+" releases undefined type "+ttName); + } rtts.add (trainCertTypeMap.get(ttName)); } type.setReleasedTrainTypes(rtts); @@ -150,7 +154,11 @@ rustedTrainTypeNames = type.getRustedTrainTypeNames(); if (rustedTrainTypeNames != null) { for (int index : rustedTrainTypeNames.keySet()) { - rustedType = trainCertTypeMap.get(rustedTrainTypeNames.get(index)); + String ttName = rustedTrainTypeNames.get(index); + rustedType = trainCertTypeMap.get(ttName); + if (rustedType == null) { + throw new ConfigurationException ("Train type "+type.getName()+" rusts undefined type "+ttName); + } type.setRustedTrainType(index, rustedType); rustedType.setPermanent(false); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |