From: Stefan F. <ste...@us...> - 2012-04-09 16:25:37
|
LocalisedText.properties | 3 +- data/1830/Game.xml | 4 +++ data/1830/Map.xml | 4 +-- data/18AL/Game.xml | 1 data/18TN/Game.xml | 1 rails/game/MapHex.java | 17 +++++++++++++ rails/game/TrainManager.java | 2 - rails/ui/swing/hexmap/GUITile.java | 47 +++++++++++++++++++++---------------- 8 files changed, 55 insertions(+), 24 deletions(-) New commits: commit 82d4e5c70e67e20c53a885aa19b6c81bb78f2f0c Author: Stefan Frey <ste...@we...> Date: Mon Apr 9 11:57:22 2012 +0200 Fixed wrong train obsoleting in 1830 variants (coalfields et.al.), reported by Arne Osterlund. Added new attribute ObsoleteTrainFor for TrainManager in Game.xml Added reporting for train obsoleting and rusting in ReportWindow. diff --git a/LocalisedText.properties b/LocalisedText.properties index 463e3ae..b1fad5b 100644 --- a/LocalisedText.properties +++ b/LocalisedText.properties @@ -734,7 +734,8 @@ TokenLayingHexMismatch=Token laid in {0} but special property is for {1}: mismat TRADE_TREASURY_SHARES_TITLE=Rails: Game Status - TRADING TREASURY SHARES OF COMPANY {0} TrainInfo={0}-train, price: {1}, quantity: {2} TrainsAvailable={0}-trains are now available. -TrainsObsolete=All {0}-trains are obsolete and will be removed after the next run. +TrainsObsolete.ALL=All {0}-trains are obsolete and will be removed after the next run. +TrainsObsolete.EXCEPT_TRIGGERING=All {0}-trains (except those owned by the active company) are obsolete and will be removed after the next run. TrainsObsoleteRusted=Obsolete Train {0} of company {1} rusted. TrainsRusted=All {0}-trains have rusted and have been removed. TREASURY_SHARES=<html>Treasury<br>shares diff --git a/data/1830/Game.xml b/data/1830/Game.xml index f6c1ffe..c39bf20 100644 --- a/data/1830/Game.xml +++ b/data/1830/Game.xml @@ -118,6 +118,10 @@ <Component name="StockMarket" class="rails.game.StockMarket" file="StockMarket.xml"/> <Component name="TrainManager" class="rails.game.TrainManager"> + <IfOption name="Variant" + value="Coalfields,Reading,Coalfields&Reading"> + <Attributes ObsoleteTrainFor="ALL" /> + </IfOption> <Defaults> <Reach base="stops" countTowns="yes"/> <!-- Alternative values: diff --git a/data/18AL/Game.xml b/data/18AL/Game.xml index 8cc9911..52712bf 100644 --- a/data/18AL/Game.xml +++ b/data/18AL/Game.xml @@ -58,6 +58,7 @@ <Component name="StockMarket" class="rails.game.StockMarket" file="StockMarket.xml"/> <Component name="TrainManager" class="rails.game.TrainManager"> + <Attributes ObsoleteTrainFor="EXCEPT_TRIGGERING" /> <Defaults class="rails.game.specific._18AL.NameableTrain"> <Reach base="stops" countTowns="no"/> <Score towns="yes"/> diff --git a/data/18TN/Game.xml b/data/18TN/Game.xml index 62f3209..a5957bf 100644 --- a/data/18TN/Game.xml +++ b/data/18TN/Game.xml @@ -53,6 +53,7 @@ <Component name="StockMarket" class="rails.game.StockMarket" file="StockMarket.xml"/> <Component name="TrainManager" class="rails.game.TrainManager"> + <Attributes ObsoleteTrainFor="EXCEPT_TRIGGERING" /> <Defaults> <Reach base="stops" countTowns="yes"/> <!-- Alternative values: diff --git a/rails/game/TrainManager.java b/rails/game/TrainManager.java index 2b18b83..b99b128 100644 --- a/rails/game/TrainManager.java +++ b/rails/game/TrainManager.java @@ -1 +1 @@ -/* $Header: /Users/blentz/rails_rcs/cvs/18xx/rails/game/TrainManager.java,v 1.28 2010/04/21 21:25:50 evos Exp $ */ package rails.game; import java.util.*; import org.apache.log4j.Logger; import rails.common.LocalText; import rails.common.parser.ConfigurableComponentI; import rails.common.parser.ConfigurationException; import rails.common.parser.Tag; import rails.game.move.ObjectMove; import rails.game.state.BooleanState; import rails.game.state.IntegerState; public class TrainManager implements ConfigurableComponentI { // Static attributes protected List<TrainType> lTrainTypes = new ArrayList<TrainType>(); protected Map<String, TrainType> mTrainTypes = new HashMap<String, TrainType>(); protected List<TrainCertificateType> trainCertTypes = new ArrayList<TrainCertificateType>(); protected Map<String, TrainCertificateType> trainCertTypeMap = new HashMap<String, TrainCertificateType>(); protected Map<String, TrainI> trainMap = new HashMap<String, TrainI>(); protected Map<TrainCertificateType, List<TrainI>> trainsPerCertType = new HashMap<TrainCertificateType, List<TrainI>>(); protected TrainType defaultType = null; // Only required locally and in ChoiceType private boolean removeTrain = false; // Dynamic attributes protected IntegerState newTypeIndex; protected Map<String, Integer> lastIndexPerType = new HashMap<String, Integer>(); protected boolean trainsHaveRusted = false; protected boolean phaseHasChanged = false; protected boolean trainAvailabilityChanged = false; protected List<PublicCompanyI> companiesWithExcessTrains; protected GameManagerI gameManager = null; protected Bank bank = null; /** Required for the sell-train-to-foreigners feature of some games */ protected BooleanState anyTrainBought = new BooleanState ("AnyTrainBought", false); // Triggered phase changes protected Map<TrainCertificateType, Map<Integer, |