|
From: <ev...@us...> - 2011-01-29 16:48:28
|
Revision: 1476
http://rails.svn.sourceforge.net/rails/?rev=1476&view=rev
Author: evos
Date: 2011-01-29 16:48:22 +0000 (Sat, 29 Jan 2011)
Log Message:
-----------
Allow game option names with localised parameters.
Applies to 18Kaas to display "Version of Map"
Modified Paths:
--------------
trunk/18xx/LocalisedText.properties
trunk/18xx/data/18Kaas/Game.xml
trunk/18xx/data/GamesList.xml
trunk/18xx/rails/game/GameOption.java
Modified: trunk/18xx/LocalisedText.properties
===================================================================
--- trunk/18xx/LocalisedText.properties 2011-01-28 19:49:39 UTC (rev 1475)
+++ trunk/18xx/LocalisedText.properties 2011-01-29 16:48:22 UTC (rev 1476)
@@ -644,6 +644,7 @@
Variant=Variant
VariantIs=Variant is {0}.
Version=Version
+VersionOf=version of {0}
WantToReplaceToken=Do you want to replace the {0} home token with one of {1}?
WarningNeedCash=Warning: {0} will be deducted from the company revenue or from your personal cash
WHICH_PRICE=Which price?
Modified: trunk/18xx/data/18Kaas/Game.xml
===================================================================
--- trunk/18xx/data/18Kaas/Game.xml 2011-01-28 19:49:39 UTC (rev 1475)
+++ trunk/18xx/data/18Kaas/Game.xml 2011-01-29 16:48:22 UTC (rev 1476)
@@ -2,7 +2,7 @@
<ComponentManager>
<Component name="GameManager" class="rails.game.GameManager">
<Game name="18Kaas"/>
- <GameOption name="Version" values="v1,v2" default="v2" />
+ <GameOption name="VersionOf" parm="{MAP}" values="v1,v2" default="v2" />
<GameOption name="RouteAwareness" values="Highlight,Deactivate" default="Deactivate" />
<GameOption name="RevenueCalculation" values="Suggest,Deactivate" default="Deactivate" />
<GameOption name="18KaasRuhrgebiedDoublesOnlyMajors" type="toggle" default="yes" />
Modified: trunk/18xx/data/GamesList.xml
===================================================================
--- trunk/18xx/data/GamesList.xml 2011-01-28 19:49:39 UTC (rev 1475)
+++ trunk/18xx/data/GamesList.xml 2011-01-29 16:48:22 UTC (rev 1476)
@@ -139,7 +139,8 @@
Should work, but has not been extensively tested. Limitations as with 1830.
</Description>
- <Option name="Version" values="v1,v2" default="v2" />
+ <Option name="VersionOf" parm="{MAP}" values="v1,v2" default="v2" />
+ <!-- Note: a parameter in braces {...} will be localised for display-->
<Option name="RouteAwareness" values="Highlight,Deactivate" default="Highlight" />
<Option name="RevenueCalculation" values="Suggest,Deactivate" default="Suggest" />
<Option name="18KaasRuhrgebiedDoublesOnlyMajors" type="toggle" default="yes" />
Modified: trunk/18xx/rails/game/GameOption.java
===================================================================
--- trunk/18xx/rails/game/GameOption.java 2011-01-28 19:49:39 UTC (rev 1475)
+++ trunk/18xx/rails/game/GameOption.java 2011-01-29 16:48:22 UTC (rev 1476)
@@ -2,6 +2,8 @@
package rails.game;
import java.util.*;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
import rails.util.LocalText;
@@ -27,10 +29,14 @@
// Some other common game options
public static final String VARIANT = "Variant";
+ // A regex to match parameters against
+ private static final Pattern pattern = Pattern.compile("\\{(.*)\\}");
public GameOption(String name, String[] parameters) {
this.name = name;
- if (parameters != null) parm = parameters.clone();
+ if (parameters != null) {
+ parm = parameters.clone();
+ }
parametrisedName = constructParametrisedName (name, parameters);
optionsMap.put(parametrisedName, this);
}
@@ -50,7 +56,15 @@
}
public String getLocalisedName() {
- return LocalText.getText(name, (Object[]) parm);
+ String[] localisedParms = null;
+ if (parm != null) {
+ localisedParms = parm.clone();
+ for (int i=0; i<parm.length; i++) {
+ Matcher m = pattern.matcher(parm[i]);
+ if (m.matches()) localisedParms[i] = LocalText.getText(m.group(1));
+ }
+ }
+ return LocalText.getText(name, (Object[]) localisedParms);
}
public String getType() {
@@ -61,12 +75,6 @@
return isBoolean;
}
- /*
- public void setParameters(String[] parameters) {
- parm = parameters.clone();
- }
- */
-
public void setAllowedValues(List<String> values) {
allowedValues = values;
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|