|
From: <mp...@us...> - 2012-06-05 10:29:50
|
Revision: 9879
http://freecol.svn.sourceforge.net/freecol/?rev=9879&view=rev
Author: mpope
Date: 2012-06-05 10:29:40 +0000 (Tue, 05 Jun 2012)
Log Message:
-----------
Clarify settlement name loading.
Modified Paths:
--------------
freecol/trunk/src/net/sf/freecol/client/control/InGameController.java
freecol/trunk/src/net/sf/freecol/client/gui/panel/MapEditorTransformPanel.java
freecol/trunk/src/net/sf/freecol/common/model/Player.java
freecol/trunk/src/net/sf/freecol/server/control/InGameController.java
freecol/trunk/src/net/sf/freecol/server/generator/SimpleMapGenerator.java
Modified: freecol/trunk/src/net/sf/freecol/client/control/InGameController.java
===================================================================
--- freecol/trunk/src/net/sf/freecol/client/control/InGameController.java 2012-06-05 10:17:55 UTC (rev 9878)
+++ freecol/trunk/src/net/sf/freecol/client/control/InGameController.java 2012-06-05 10:29:40 UTC (rev 9879)
@@ -1461,12 +1461,7 @@
}
// Get and check the name.
- String name = player.getSettlementName();
- if (Player.ASSIGN_SETTLEMENT_NAME.equals(name)) {
- player.installSettlementNames(Messages.getSettlementNames(player),
- null);
- name = player.getSettlementName();
- }
+ String name = player.getSettlementName(null);
name = gui.showInputDialog(tile,
StringTemplate.key("nameColony.text"), name,
"nameColony.yes", "nameColony.no", true);
Modified: freecol/trunk/src/net/sf/freecol/client/gui/panel/MapEditorTransformPanel.java
===================================================================
--- freecol/trunk/src/net/sf/freecol/client/gui/panel/MapEditorTransformPanel.java 2012-06-05 10:17:55 UTC (rev 9878)
+++ freecol/trunk/src/net/sf/freecol/client/gui/panel/MapEditorTransformPanel.java 2012-06-05 10:29:40 UTC (rev 9879)
@@ -382,11 +382,7 @@
if (settlement == null) {
UnitType skill = ((IndianNationType) nativePlayer.getNationType()).getSkills().get(0)
.getObject();
- String name = nativePlayer.getSettlementName();
- if (Player.ASSIGN_SETTLEMENT_NAME.equals(name)) {
- nativePlayer.installSettlementNames(Messages.getSettlementNames(nativePlayer), null);
- name = nativePlayer.getSettlementName();
- }
+ String name = nativePlayer.getSettlementName(null);
settlement = new ServerIndianSettlement(t.getGame(), nativePlayer, name, t, false,
skill, new HashSet<Player>(), null);
nativePlayer.addSettlement(settlement);
Modified: freecol/trunk/src/net/sf/freecol/common/model/Player.java
===================================================================
--- freecol/trunk/src/net/sf/freecol/common/model/Player.java 2012-06-05 10:17:55 UTC (rev 9878)
+++ freecol/trunk/src/net/sf/freecol/common/model/Player.java 2012-06-05 10:29:40 UTC (rev 9879)
@@ -838,46 +838,49 @@
* Installs suitable settlement names (and the capital if native)
* into the player name cache.
*
- * @param names A list of settlement names with the fallback prefix first.
- * @param random A <code>Random</code> number source.
+ * @param random An optional pseudo-random number source.
*/
- public void installSettlementNames(List<String> names, Random random) {
+ private void initializeSettlementNames(Random random) {
if (settlementNames == null) {
settlementNames = new ArrayList<String>();
- settlementNames.addAll(names);
+ settlementNames.addAll(Messages.getSettlementNames(this));
settlementFallback = settlementNames.remove(0);
if (isIndian()) {
capitalName = settlementNames.remove(0);
if (random != null) {
Collections.shuffle(settlementNames, random);
}
+ } else {
+ capitalName = null;
}
+ logger.info("Installed " + settlementNames.size()
+ + " settlement names for player " + this);
}
- logger.info("Installed " + names.size()
- + " settlement names for player " + this.toString());
}
/**
* Gets the name of this players capital. Only meaningful to natives.
*
+ * @param random An optional pseudo-random number source.
* @return The name of this players capital.
*/
- public String getCapitalName() {
- return (capitalName == null) ? ASSIGN_SETTLEMENT_NAME : capitalName;
+ public String getCapitalName(Random random) {
+ if (isEuropean()) return null;
+ if (capitalName == null) initializeSettlementNames(random);
+ return capitalName;
}
/**
* Gets a settlement name suitable for this player.
*
+ * @param random An optional pseudo-random number source.
* @return A new settlement name.
*/
- public String getSettlementName() {
+ public String getSettlementName(Random random) {
Game game = getGame();
+ if (settlementNames == null) initializeSettlementNames(random);
- // ASSIGN_SETTLEMENT_NAME can be sent with buildColony and a
- // default name will be filled in.
- if (settlementNames == null) return ASSIGN_SETTLEMENT_NAME;
-
+ // Try the names in the players national name list.
while (!settlementNames.isEmpty()) {
String name = settlementNames.remove(0);
if (game.getSettlement(name) == null) return name;
Modified: freecol/trunk/src/net/sf/freecol/server/control/InGameController.java
===================================================================
--- freecol/trunk/src/net/sf/freecol/server/control/InGameController.java 2012-06-05 10:17:55 UTC (rev 9878)
+++ freecol/trunk/src/net/sf/freecol/server/control/InGameController.java 2012-06-05 10:29:40 UTC (rev 9879)
@@ -2780,13 +2780,7 @@
Tile tile = unit.getTile();
Settlement settlement;
if (Player.ASSIGN_SETTLEMENT_NAME.equals(name)) {
- name = serverPlayer.getSettlementName();
- if (Player.ASSIGN_SETTLEMENT_NAME.equals(name)) {
- // Load settlement names on demand.
- serverPlayer.installSettlementNames(Messages
- .getSettlementNames(serverPlayer), random);
- name = serverPlayer.getSettlementName();
- }
+ name = serverPlayer.getSettlementName(random);
}
if (serverPlayer.isEuropean()) {
settlement = new ServerColony(game, serverPlayer, name, tile);
Modified: freecol/trunk/src/net/sf/freecol/server/generator/SimpleMapGenerator.java
===================================================================
--- freecol/trunk/src/net/sf/freecol/server/generator/SimpleMapGenerator.java 2012-06-05 10:17:55 UTC (rev 9878)
+++ freecol/trunk/src/net/sf/freecol/server/generator/SimpleMapGenerator.java 2012-06-05 10:29:40 UTC (rev 9879)
@@ -638,17 +638,11 @@
* @return The <code>IndianSettlement</code> just being placed
* on the map.
*/
- private IndianSettlement placeIndianSettlement(Player player, boolean capital,
- Position position, Map map) {
+ private IndianSettlement placeIndianSettlement(Player player,
+ boolean capital, Position position, Map map) {
final Tile tile = map.getTile(position);
- String name = (capital) ? player.getCapitalName()
- : player.getSettlementName();
- if (Player.ASSIGN_SETTLEMENT_NAME.equals(name)) {
- player.installSettlementNames(Messages.getSettlementNames(player),
- random);
- name = (capital) ? player.getCapitalName()
- : player.getSettlementName();
- }
+ String name = (capital) ? player.getCapitalName(random)
+ : player.getSettlementName(random);
UnitType skill
= generateSkillForLocation(map, tile, player.getNationType());
IndianSettlement settlement
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|