Modified:
/trunk/v2/src/com/customwars/client/controller/mapeditor/CityMapEditorControl.java
/trunk/v2/src/com/customwars/client/controller/mapeditor/MapEditorController.java
/trunk/v2/src/com/customwars/client/io/loading/map/MapManager.java
/trunk/v2/src/com/customwars/client/ui/state/PlayerOptionsState.java
=======================================
---
/trunk/v2/src/com/customwars/client/controller/mapeditor/CityMapEditorControl.java
Fri Feb 18 15:15:52 2011
+++
/trunk/v2/src/com/customwars/client/controller/mapeditor/CityMapEditorControl.java
Mon Mar 14 07:04:30 2011
@@ -10,6 +10,7 @@
import com.customwars.client.model.map.Tile;
import com.customwars.client.model.map.connector.TerrainConnector;
import com.customwars.client.tools.MapUtil;
+import org.apache.log4j.Logger;
import java.awt.Color;
@@ -17,6 +18,8 @@
* Add/Remove cities from a map in map editor mode
*/
public class CityMapEditorControl implements MapEditorControl {
+ private static final Logger logger =
Logger.getLogger(CityMapEditorControl.class);
+ private static final Color NEUTRAL_COLOR =
App.getColor("plugin.neutral_color");
private final Map map;
private final TerrainConnector terrainConnector;
@@ -29,8 +32,15 @@
removePreviousCity(t);
City city = CityFactory.getCity(cityID);
+ if (NEUTRAL_COLOR.equals(color) && city.isHQ()) {
+ logger.debug("The use of a neutral HQ is not allowed");
+ city = CityFactory.getCity(0);
+ }
+
+ // Walls, pipes and other types of cities cannot be captured.
+ // They default to a neutral owner.
if (!city.canBeCaptured()) {
- color = App.getColor("plugin.neutral_color");
+ color = NEUTRAL_COLOR;
}
Player mapPlayer = map.getPlayer(color);
=======================================
---
/trunk/v2/src/com/customwars/client/controller/mapeditor/MapEditorController.java
Sun Feb 27 05:21:21 2011
+++
/trunk/v2/src/com/customwars/client/controller/mapeditor/MapEditorController.java
Mon Mar 14 07:04:30 2011
@@ -207,14 +207,14 @@
}
private void logCurrentMapSituation() {
- StringBuilder mapSituation = new StringBuilder(" " +
map.getNumPlayers() + " Player(s) ");
+ StringBuilder mapSituation = new StringBuilder(" " +
map.getNumPlayers() + " Player(s): ");
for (Player player : map.getUniquePlayers()) {
mapSituation.append(player.printStats());
mapSituation.append(' ');
}
- // Remove last ','
- mapSituation.setCharAt(mapSituation.length() - 1, ' ');
+ // Remove last ' '
+ mapSituation.deleteCharAt(mapSituation.length() - 1);
logger.debug(mapSituation.toString());
}
@@ -282,6 +282,10 @@
public void moveCursor(Direction direction) {
if (!mapEditorView.isShowingSelectPanel()) {
cursorController.moveCursor(direction);
+
+ if (constantMode) {
+ addToMap();
+ }
}
}
=======================================
--- /trunk/v2/src/com/customwars/client/io/loading/map/MapManager.java Sun
Feb 27 04:51:33 2011
+++ /trunk/v2/src/com/customwars/client/io/loading/map/MapManager.java Mon
Mar 14 07:04:30 2011
@@ -70,12 +70,13 @@
String category = map.getNumPlayers() + "P";
File categoryDir = new File(mapDirPath, category);
File mapFile = new File(categoryDir, mapFileName);
+ String currentCategory = getCategory(map);
if (mapFile.exists()) {
logger.debug("Overwriting map " + mapFileName);
+ deleteMap(map, category);
}
- String currentCategory = getCategory(map);
if (currentCategory != null && !currentCategory.equals(category)) {
// The map file to save is in another category.
// Delete the old map
@@ -160,7 +161,12 @@
private void addMapCategory(String category, Map map) {
if (mapsByCategory.containsKey(category)) {
List<Map> categoryMaps = mapsByCategory.get(category);
- categoryMaps.add(map);
+
+ if (!categoryMaps.contains(map)) {
+ categoryMaps.add(map);
+ } else {
+ logger.warn("Map name " + map.getMapName() + " in category " +
category + " is already cached");
+ }
} else {
List<Map> categoryMaps = new ArrayList<Map>();
categoryMaps.add(map);
=======================================
--- /trunk/v2/src/com/customwars/client/ui/state/PlayerOptionsState.java
Fri Feb 18 17:20:18 2011
+++ /trunk/v2/src/com/customwars/client/ui/state/PlayerOptionsState.java
Mon Mar 14 07:04:30 2011
@@ -136,7 +136,8 @@
cboTeams.setProperty("row", row);
cboTeams.setMethod("action", "teamChanged(this)", controller);
cboTeams.setBoolean("editable", false);
- ThingleUtil.fillCboWithNumbers(page, cboTeams, 1, 6, 1);
+ int maxTeams = map.getNumPlayers() + 1;
+ ThingleUtil.fillCboWithNumbers(page, cboTeams, 1, maxTeams, 1);
ThingleUtil.selectChild(cboTeams, stateSession.getTeam(player) + "");
panel.add(cboTeams);
}