|
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, |