|
From: <mp...@us...> - 2012-06-05 10:18:09
|
Revision: 9878
http://freecol.svn.sourceforge.net/freecol/?rev=9878&view=rev
Author: mpope
Date: 2012-06-05 10:17:55 +0000 (Tue, 05 Jun 2012)
Log Message:
-----------
Clean up some initialization inconsistency.
Modified Paths:
--------------
freecol/trunk/data/strings/FreeColMessages.properties
freecol/trunk/src/net/sf/freecol/FreeCol.java
freecol/trunk/src/net/sf/freecol/client/FreeColClient.java
freecol/trunk/src/net/sf/freecol/client/control/ConnectController.java
freecol/trunk/src/net/sf/freecol/client/control/InGameController.java
freecol/trunk/src/net/sf/freecol/client/control/InGameInputHandler.java
freecol/trunk/src/net/sf/freecol/client/gui/Canvas.java
freecol/trunk/src/net/sf/freecol/client/gui/GUI.java
freecol/trunk/src/net/sf/freecol/client/gui/action/ChatAction.java
freecol/trunk/src/net/sf/freecol/client/gui/panel/GameOptionsDialog.java
freecol/trunk/src/net/sf/freecol/client/gui/panel/LoadingSavegameDialog.java
freecol/trunk/src/net/sf/freecol/client/gui/panel/NewPanel.java
freecol/trunk/src/net/sf/freecol/client/gui/panel/VictoryPanel.java
freecol/trunk/src/net/sf/freecol/server/FreeColServer.java
freecol/trunk/src/net/sf/freecol/server/ai/EuropeanAIPlayer.java
freecol/trunk/src/net/sf/freecol/server/control/InGameController.java
freecol/trunk/src/net/sf/freecol/server/control/InGameInputHandler.java
freecol/trunk/src/net/sf/freecol/server/control/PreGameController.java
freecol/trunk/src/net/sf/freecol/server/control/UserConnectionHandler.java
freecol/trunk/test/src/net/sf/freecol/client/ClientTestHelper.java
freecol/trunk/test/src/net/sf/freecol/server/ServerTestHelper.java
Modified: freecol/trunk/data/strings/FreeColMessages.properties
===================================================================
--- freecol/trunk/data/strings/FreeColMessages.properties 2012-06-04 15:08:40 UTC (rev 9877)
+++ freecol/trunk/data/strings/FreeColMessages.properties 2012-06-05 10:17:55 UTC (rev 9878)
@@ -249,7 +249,7 @@
NewWorld=New World
LoadingSavegame.title=Loading Save game
-LoadingSavegame.singleplayer=Single player
+LoadingSavegame.singlePlayer=Single player
LoadingSavegame.privateMultiplayer=Private multiplayer
LoadingSavegame.publicMultiplayer=Public multiplayer
LoadingSavegame.serverName=Server Name:
@@ -1040,9 +1040,9 @@
defeated.yes=Stay and Watch
defeated.no=Quit
-defeatedSingleplayer.text=You have been defeated!\n\nTis now the very witching time of night, When churchyards yawn and hell itself breathes out contagion to this world, now could I drink hot blood! and do such bitter business, as the day would quake to look on.
-defeatedSingleplayer.yes=Enter Revenge Mode
-defeatedSingleplayer.no=Quit
+defeatedSinglePlayer.text=You have been defeated!\n\nTis now the very witching time of night, When churchyards yawn and hell itself breathes out contagion to this world, now could I drink hot blood! and do such bitter business, as the day would quake to look on.
+defeatedSinglePlayer.yes=Enter Revenge Mode
+defeatedSinglePlayer.no=Quit
victory.text=You are victorious!
victory.yes=Quit
@@ -1436,7 +1436,7 @@
model.ability.moveToEurope.name=Move to Europe
model.ability.moveToEurope.shortDescription=This tile allows units to move to Europe.
model.ability.undead.name=Revenge mode
-model.ability.undead.shortDescription=In singleplayer mode, a player having lost may enter a revenge mode to attack his enemies.
+model.ability.undead.shortDescription=In single player mode, a player having lost may enter a revenge mode to attack his enemies.
model.ability.plunderNatives.name=Native Treasure Bonus
model.ability.plunderNatives.shortDescription=Increases the amount of plunder generated by destroying native settlements.
model.ability.avoidExcessProduction.name=Avoid excess production
Modified: freecol/trunk/src/net/sf/freecol/FreeCol.java
===================================================================
--- freecol/trunk/src/net/sf/freecol/FreeCol.java 2012-06-04 15:08:40 UTC (rev 9877)
+++ freecol/trunk/src/net/sf/freecol/FreeCol.java 2012-06-05 10:17:55 UTC (rev 9878)
@@ -975,7 +975,7 @@
if (savegameFile != null) {
XMLStream xs = null;
try {
- // Get suggestions for "singleplayer" and "public
+ // Get suggestions for "singlePlayer" and "public
// game" settings from the file:
final FreeColSavegameFile fis = new FreeColSavegameFile(savegameFile);
xs = FreeColServer.createXMLStreamReader(fis);
Modified: freecol/trunk/src/net/sf/freecol/client/FreeColClient.java
===================================================================
--- freecol/trunk/src/net/sf/freecol/client/FreeColClient.java 2012-06-04 15:08:40 UTC (rev 9877)
+++ freecol/trunk/src/net/sf/freecol/client/FreeColClient.java 2012-06-05 10:17:55 UTC (rev 9878)
@@ -113,7 +113,7 @@
private boolean mapEditor;
- private boolean singleplayer;
+ private boolean singlePlayer;
private final ActionManager actionManager;
@@ -485,14 +485,14 @@
/**
- * Is the user playing in singleplayer mode.
+ * Is the user playing in single player mode.
*
- * @return <i>true</i> if the user is playing in singleplayer mode and
+ * @return <i>true</i> if the user is playing in single player mode and
* <i>false</i> otherwise.
- * @see #setSingleplayer
+ * @see #setSinglePlayer
*/
- public boolean isSingleplayer() {
- return singleplayer;
+ public boolean isSinglePlayer() {
+ return singlePlayer;
}
/**
@@ -522,7 +522,7 @@
* Quits the application without any questions.
*/
public void quit() {
- getConnectController().quitGame(isSingleplayer());
+ getConnectController().quitGame(isSinglePlayer());
exitActions();
gui.quit();
System.exit(0);
@@ -632,14 +632,14 @@
}
/**
- * Sets whether or not this game is a singleplayer game.
+ * Sets whether or not this game is a single player game.
*
- * @param singleplayer Indicates whether or not this game is a singleplayer
- * game.
- * @see #isSingleplayer
+ * @param singlePlayer Indicates whether or not this game is a
+ * single player game.
+ * @see #isSinglePlayer
*/
- public void setSingleplayer(boolean singleplayer) {
- this.singleplayer = singleplayer;
+ public void setSinglePlayer(boolean singlePlayer) {
+ this.singlePlayer = singlePlayer;
}
/**
Modified: freecol/trunk/src/net/sf/freecol/client/control/ConnectController.java
===================================================================
--- freecol/trunk/src/net/sf/freecol/client/control/ConnectController.java 2012-06-04 15:08:40 UTC (rev 9877)
+++ freecol/trunk/src/net/sf/freecol/client/control/ConnectController.java 2012-06-05 10:17:55 UTC (rev 9878)
@@ -181,14 +181,14 @@
}
/**
- * Starts a new singleplayer game by connecting to the server.
+ * Starts a new single player game by connecting to the server.
* TODO: connect client/server directly (not using network-classes)
*
* @param specification The <code>Specification</code> for the game.
* @param userName The name to use when logging in.
* @param advantages The national <code>Advantages</code>.
*/
- public void startSingleplayerGame(Specification specification,
+ public void startSinglePlayerGame(Specification specification,
String userName, Advantages advantages) {
freeColClient.setMapEditor(false);
@@ -218,7 +218,7 @@
FreeColServer.removeAutosaves(Messages.message("clientOptions.savegames.autosave.fileprefix"));
}
freeColClient.setFreeColServer(freeColServer);
- freeColClient.setSingleplayer(true);
+ freeColClient.setSinglePlayer(true);
if (login(userName, "127.0.0.1", freeColServer.getPort())) {
freeColClient.getPreGameController().setReady(true);
gui.showStartGamePanel(freeColClient.getGame(),
@@ -247,7 +247,7 @@
userName = choice;
}
- freeColClient.setSingleplayer(false);
+ freeColClient.setSinglePlayer(false);
if (login(userName, host, port) && !freeColClient.isInGame()) {
gui.showStartGamePanel(freeColClient.getGame(),
freeColClient.getMyPlayer(), false);
@@ -338,8 +338,9 @@
// Reconnect
if (msg.getStartGame()) {
- Tile entryTile = player.getEntryLocation().getTile();
- freeColClient.setSingleplayer(msg.isSinglePlayer());
+ Tile entryTile = (player.getEntryLocation() == null) ? null
+ : player.getEntryLocation().getTile();
+ freeColClient.setSinglePlayer(msg.isSinglePlayer());
freeColClient.getPreGameController().startGame();
if (msg.isCurrentPlayer()) {
@@ -354,7 +355,7 @@
gui.setSelectedTile(entryTile, false);
}
} else {
- gui.setSelectedTile(player.getEntryLocation().getTile(), false);
+ gui.setSelectedTile(entryTile, false);
}
}
@@ -410,12 +411,12 @@
}
}
- final boolean singleplayer;
+ final boolean singlePlayer;
final String name;
final int port;
XMLStream xs = null;
try {
- // Get suggestions for "singleplayer" and "publicServer"
+ // Get suggestions for "singlePlayer" and "publicServer"
// settings from the file
final FreeColSavegameFile fis = new FreeColSavegameFile(theFile);
xs = new XMLStream(fis.getSavegameInputStream());
@@ -447,14 +448,14 @@
if (gui.showLoadingSavegameDialog(defaultPublicServer,
defaultSinglePlayer)) {
LoadingSavegameDialog lsd = gui.getLoadingSavegameDialog();
- singleplayer = lsd.isSingleplayer();
+ singlePlayer = lsd.isSinglePlayer();
name = lsd.getName();
port = lsd.getPort();
} else {
return;
}
} else {
- singleplayer = defaultSinglePlayer;
+ singlePlayer = defaultSinglePlayer;
name = null;
port = -1;
}
@@ -494,7 +495,7 @@
freeColClient.setFreeColServer(freeColServer);
final String userName = freeColServer.getOwner();
final int port = freeColServer.getPort();
- freeColClient.setSingleplayer(singleplayer);
+ freeColClient.setSinglePlayer(singlePlayer);
freeColClient.getInGameController().setGameConnected();
SwingUtilities.invokeLater(new Runnable() {
public void run() {
Modified: freecol/trunk/src/net/sf/freecol/client/control/InGameController.java
===================================================================
--- freecol/trunk/src/net/sf/freecol/client/control/InGameController.java 2012-06-04 15:08:40 UTC (rev 9877)
+++ freecol/trunk/src/net/sf/freecol/client/control/InGameController.java 2012-06-05 10:17:55 UTC (rev 9878)
@@ -3651,7 +3651,7 @@
}
// GUI management.
- if (!freeColClient.isSingleplayer()) {
+ if (!freeColClient.isSinglePlayer()) {
gui.playSound("sound.anthem." + player.getNationID());
}
displayModelMessages(true, true);
Modified: freecol/trunk/src/net/sf/freecol/client/control/InGameInputHandler.java
===================================================================
--- freecol/trunk/src/net/sf/freecol/client/control/InGameInputHandler.java 2012-06-04 15:08:40 UTC (rev 9877)
+++ freecol/trunk/src/net/sf/freecol/client/control/InGameInputHandler.java 2012-06-05 10:17:55 UTC (rev 9878)
@@ -516,12 +516,12 @@
Player myPlayer = freeColClient.getMyPlayer();
if (player == myPlayer) {
if (FreeCol.tryCompleteDebugRun(freeColClient)) freeColClient.quit();
- if (freeColClient.isSingleplayer()) {
+ if (freeColClient.isSinglePlayer()) {
if (myPlayer.getPlayerType() != Player.PlayerType.UNDEAD
&& new ShowConfirmDialogSwingTask(null,
- StringTemplate.key("defeatedSingleplayer.text"),
- "defeatedSingleplayer.yes",
- "defeatedSingleplayer.no").confirm()) {
+ StringTemplate.key("defeatedSinglePlayer.text"),
+ "defeatedSinglePlayer.yes",
+ "defeatedSinglePlayer.no").confirm()) {
freeColClient.askServer().enterRevengeMode();
} else {
freeColClient.quit();
Modified: freecol/trunk/src/net/sf/freecol/client/gui/Canvas.java
===================================================================
--- freecol/trunk/src/net/sf/freecol/client/gui/Canvas.java 2012-06-04 15:08:40 UTC (rev 9877)
+++ freecol/trunk/src/net/sf/freecol/client/gui/Canvas.java 2012-06-05 10:17:55 UTC (rev 9878)
@@ -797,7 +797,7 @@
*/
public void showChatPanel() {
// TODO: does it have state, or can we create a new one?
- if (freeColClient.isSingleplayer()) {
+ if (freeColClient.isSinglePlayer()) {
return; // In single player, no chat available
}
showSubPanel(chatPanel);
@@ -1338,12 +1338,12 @@
* after calling this method.
*
* @param publicServer Default value.
- * @param singleplayer Default value.
+ * @param singlePlayer Default value.
* @return <code>true</code> if the "ok"-button was pressed and
* <code>false</code> otherwise.
*/
- public boolean showLoadingSavegameDialog(boolean publicServer, boolean singleplayer) {
- loadingSavegameDialog.initialize(publicServer, singleplayer);
+ public boolean showLoadingSavegameDialog(boolean publicServer, boolean singlePlayer) {
+ loadingSavegameDialog.initialize(publicServer, singlePlayer);
return showFreeColDialog(loadingSavegameDialog, null);
}
Modified: freecol/trunk/src/net/sf/freecol/client/gui/GUI.java
===================================================================
--- freecol/trunk/src/net/sf/freecol/client/gui/GUI.java 2012-06-04 15:08:40 UTC (rev 9877)
+++ freecol/trunk/src/net/sf/freecol/client/gui/GUI.java 2012-06-05 10:17:55 UTC (rev 9878)
@@ -736,8 +736,8 @@
return canvas.showLoadDialog(directory, fileFilters);
}
- public boolean showLoadingSavegameDialog(boolean publicServer, boolean singleplayer) {
- return canvas.showLoadingSavegameDialog(publicServer, singleplayer);
+ public boolean showLoadingSavegameDialog(boolean publicServer, boolean singlePlayer) {
+ return canvas.showLoadingSavegameDialog(publicServer, singlePlayer);
}
Modified: freecol/trunk/src/net/sf/freecol/client/gui/action/ChatAction.java
===================================================================
--- freecol/trunk/src/net/sf/freecol/client/gui/action/ChatAction.java 2012-06-04 15:08:40 UTC (rev 9877)
+++ freecol/trunk/src/net/sf/freecol/client/gui/action/ChatAction.java 2012-06-05 10:17:55 UTC (rev 9878)
@@ -51,7 +51,7 @@
@Override
protected boolean shouldBeEnabled() {
return super.shouldBeEnabled()
- && !getFreeColClient().isSingleplayer()
+ && !getFreeColClient().isSinglePlayer()
&& (!gui.isShowingSubPanel() || getFreeColClient().getGame() != null
&& !getFreeColClient().currentPlayerIsMyPlayer());
}
Modified: freecol/trunk/src/net/sf/freecol/client/gui/panel/GameOptionsDialog.java
===================================================================
--- freecol/trunk/src/net/sf/freecol/client/gui/panel/GameOptionsDialog.java 2012-06-04 15:08:40 UTC (rev 9877)
+++ freecol/trunk/src/net/sf/freecol/client/gui/panel/GameOptionsDialog.java 2012-06-05 10:17:55 UTC (rev 9878)
@@ -59,7 +59,7 @@
// Set special cases
// Disable victory option "All humans defeated"
// when playing single player
- if (editable && getFreeColClient().isSingleplayer()) {
+ if (editable && getFreeColClient().isSinglePlayer()) {
BooleanOptionUI comp = (BooleanOptionUI) getOptionUI()
.getOptionUI(GameOptions.VICTORY_DEFEAT_HUMANS);
Modified: freecol/trunk/src/net/sf/freecol/client/gui/panel/LoadingSavegameDialog.java
===================================================================
--- freecol/trunk/src/net/sf/freecol/client/gui/panel/LoadingSavegameDialog.java 2012-06-04 15:08:40 UTC (rev 9877)
+++ freecol/trunk/src/net/sf/freecol/client/gui/panel/LoadingSavegameDialog.java 2012-06-05 10:17:55 UTC (rev 9878)
@@ -54,7 +54,7 @@
private JLabel header;
- private JRadioButton singleplayer;
+ private JRadioButton singlePlayer;
private JRadioButton privateMultiplayer;
@@ -102,9 +102,9 @@
panel.add(portField);
ButtonGroup bg = new ButtonGroup();
- singleplayer = new JRadioButton(Messages.message("LoadingSavegame.singleplayer"));
- bg.add(singleplayer);
- panel.add(singleplayer);
+ singlePlayer = new JRadioButton(Messages.message("LoadingSavegame.singlePlayer"));
+ bg.add(singlePlayer);
+ panel.add(singlePlayer);
privateMultiplayer = new JRadioButton(Messages.message("LoadingSavegame.privateMultiplayer"));
bg.add(privateMultiplayer);
panel.add(privateMultiplayer);
@@ -123,8 +123,8 @@
}
- public boolean isSingleplayer() {
- return singleplayer.isSelected();
+ public boolean isSinglePlayer() {
+ return singlePlayer.isSelected();
}
public boolean isPublic() {
@@ -140,14 +140,14 @@
return serverNameField.getName();
}
- public void initialize(boolean publicServer, boolean singleplayer) {
+ public void initialize(boolean publicServer, boolean singlePlayer) {
- this.singleplayer.setSelected(false);
+ this.singlePlayer.setSelected(false);
this.privateMultiplayer.setSelected(false);
this.publicMultiplayer.setSelected(false);
- if (singleplayer) {
- this.singleplayer.setSelected(true);
+ if (singlePlayer) {
+ this.singlePlayer.setSelected(true);
} else if (publicServer) {
this.publicMultiplayer.setSelected(true);
} else {
Modified: freecol/trunk/src/net/sf/freecol/client/gui/panel/NewPanel.java
===================================================================
--- freecol/trunk/src/net/sf/freecol/client/gui/panel/NewPanel.java 2012-06-04 15:08:40 UTC (rev 9877)
+++ freecol/trunk/src/net/sf/freecol/client/gui/panel/NewPanel.java 2012-06-05 10:17:55 UTC (rev 9878)
@@ -298,7 +298,7 @@
if (level != null) {
getSpecification().applyDifficultyLevel(level);
advantages = (Advantages) nationalAdvantages.getSelectedItem();
- connectController.startSingleplayerGame(getSpecification(), name.getText(), advantages);
+ connectController.startSinglePlayerGame(getSpecification(), name.getText(), advantages);
}
break;
case JOIN:
Modified: freecol/trunk/src/net/sf/freecol/client/gui/panel/VictoryPanel.java
===================================================================
--- freecol/trunk/src/net/sf/freecol/client/gui/panel/VictoryPanel.java 2012-06-04 15:08:40 UTC (rev 9877)
+++ freecol/trunk/src/net/sf/freecol/client/gui/panel/VictoryPanel.java 2012-06-05 10:17:55 UTC (rev 9878)
@@ -73,7 +73,7 @@
continueButton.addActionListener(this);
enterPressesWhenFocused(continueButton);
- if (getFreeColClient().isSingleplayer()) {
+ if (getFreeColClient().isSinglePlayer()) {
add(okButton, "newline 20, split 2, tag ok");
add(continueButton);
} else {
Modified: freecol/trunk/src/net/sf/freecol/server/FreeColServer.java
===================================================================
--- freecol/trunk/src/net/sf/freecol/server/FreeColServer.java 2012-06-04 15:08:40 UTC (rev 9877)
+++ freecol/trunk/src/net/sf/freecol/server/FreeColServer.java 2012-06-05 10:17:55 UTC (rev 9878)
@@ -171,7 +171,7 @@
private MapGenerator mapGenerator;
- private boolean singleplayer;
+ private boolean singlePlayer;
// The username of the player owning this server.
private String owner;
@@ -255,7 +255,7 @@
* @param publicServer This value should be set to <code>true</code> in
* order to appear on the meta server's listing.
*
- * @param singleplayer Sets the game as singleplayer (if <i>true</i>) or
+ * @param singlePlayer Sets the game as single player (if <i>true</i>) or
* multiplayer (if <i>false</i>).
*
* @param port The TCP port to use for the public socket. That is the port
@@ -269,19 +269,19 @@
*
*/
public FreeColServer(Specification specification, boolean publicServer,
- boolean singleplayer, int port, String name)
+ boolean singlePlayer, int port, String name)
throws IOException, NoRouteToServerException {
- this(specification, publicServer, singleplayer, port, name,
+ this(specification, publicServer, singlePlayer, port, name,
Advantages.SELECTABLE);
}
public FreeColServer(Specification specification, boolean publicServer,
- boolean singleplayer, int port, String name,
+ boolean singlePlayer, int port, String name,
Advantages advantages)
throws IOException, NoRouteToServerException {
this.publicServer = publicServer;
- this.singleplayer = singleplayer;
+ this.singlePlayer = singlePlayer;
this.port = port;
this.name = name;
this.random = new Random(FreeCol.getFreeColSeed());
@@ -363,7 +363,7 @@
server = serverStart(port);
try {
- loadGame(savegame, specification);
+ this.game = loadGame(savegame, specification);
} catch (FreeColException e) {
server.shutdown();
throw e;
@@ -394,23 +394,23 @@
}
/**
- * Sets the mode of the game: singleplayer/multiplayer.
+ * Sets the mode of the game: single/multiplayer.
*
- * @param singleplayer Sets the game as singleplayer (if <i>true</i>) or
+ * @param singleplayer Sets the game as single player (if <i>true</i>) or
* multiplayer (if <i>false</i>).
*/
- public void setSingleplayer(boolean singleplayer) {
- this.singleplayer = singleplayer;
+ public void setSinglePlayer(boolean singlePlayer) {
+ this.singlePlayer = singlePlayer;
}
/**
- * Checks if the user is playing in singleplayer mode.
+ * Checks if the user is playing in single player mode.
*
- * @return <i>true</i> if the user is playing in singleplayer mode,
+ * @return <i>true</i> if the user is playing in single player mode,
* <i>false</i> otherwise.
*/
- public boolean isSingleplayer() {
- return singleplayer;
+ public boolean isSinglePlayer() {
+ return singlePlayer;
}
/**
@@ -857,7 +857,7 @@
// Add the attributes:
xsw.writeAttribute("owner", username);
xsw.writeAttribute("publicServer", Boolean.toString(publicServer));
- xsw.writeAttribute("singleplayer", Boolean.toString(singleplayer));
+ xsw.writeAttribute("singleplayer", Boolean.toString(singlePlayer));
xsw.writeAttribute("version", Integer.toString(SAVEGAME_VERSION));
xsw.writeAttribute("randomState", Utils.getRandomState(random));
if (getActiveUnit() != null) {
@@ -905,7 +905,8 @@
* <code>XMLStreamException</code> have been thrown by the
* parser.
*/
- public static XMLStream createXMLStreamReader(FreeColSavegameFile fis) throws IOException {
+ public static XMLStream createXMLStreamReader(FreeColSavegameFile fis)
+ throws IOException {
return new XMLStream(fis.getSavegameInputStream());
}
@@ -921,7 +922,7 @@
* parser.
* @exception FreeColException if the savegame contains incompatible data.
*/
- public Game loadGame(final FreeColSavegameFile fis)
+ public ServerGame loadGame(final FreeColSavegameFile fis)
throws IOException, FreeColException {
return loadGame(fis, null);
}
@@ -945,8 +946,8 @@
final int savegameVersion = getSavegameVersion(fis);
ArrayList<String> serverStrings = null;
XMLStream xs = null;
+ ServerGame game = null;
try {
- ServerGame game = null;
String active = null;
xs = createXMLStreamReader(fis);
final XMLStreamReader xsr = xs.getXMLStreamReader();
@@ -955,7 +956,7 @@
logger.info("Found savegame version " + savegameVersion);
if (server != null) {
- server.setSingleplayer(FreeColObject.getAttribute(xsr,
+ server.setSinglePlayer(FreeColObject.getAttribute(xsr,
"singleplayer", true));
server.setPublicServer(FreeColObject.getAttribute(xsr,
"publicServer", false));
@@ -1015,12 +1016,12 @@
Unit u = game.getFreeColGameObject(active, Unit.class);
server.setActiveUnit(u);
}
- return game;
} catch (Exception e) {
throw new IOException("Exception: " + e.getMessage());
} finally {
if (xs != null) xs.close();
}
+ return game;
}
/**
@@ -1032,8 +1033,8 @@
* @exception FreeColException if the savegame contains incompatible data.
* @exception IOException if there is problem reading a stream.
*/
- public Game loadGame(final FreeColSavegameFile fis,
- Specification specification)
+ public ServerGame loadGame(final FreeColSavegameFile fis,
+ Specification specification)
throws FreeColException, IOException {
ServerGame game = readGame(fis, specification, this);
@@ -1062,7 +1063,7 @@
logger.info("Found unit on way to new world: "
+ u.toString());
u.setLocation(p.getHighSeas());
- u.setDestination(getGame().getMap());
+ u.setDestination(game.getMap());
}
}
}
Modified: freecol/trunk/src/net/sf/freecol/server/ai/EuropeanAIPlayer.java
===================================================================
--- freecol/trunk/src/net/sf/freecol/server/ai/EuropeanAIPlayer.java 2012-06-04 15:08:40 UTC (rev 9877)
+++ freecol/trunk/src/net/sf/freecol/server/ai/EuropeanAIPlayer.java 2012-06-05 10:17:55 UTC (rev 9878)
@@ -394,7 +394,7 @@
}
//TODO: This seems to buy units the AIPlayer can't possibly use (see BR#2566180)
- if (getAIMain().getFreeColServer().isSingleplayer()
+ if (getAIMain().getFreeColServer().isSinglePlayer()
&& getPlayer().getPlayerType() == PlayerType.COLONIAL) {
Europe europe = getPlayer().getEurope();
List<UnitType> unitTypes = spec.getUnitTypeList();
Modified: freecol/trunk/src/net/sf/freecol/server/control/InGameController.java
===================================================================
--- freecol/trunk/src/net/sf/freecol/server/control/InGameController.java 2012-06-04 15:08:40 UTC (rev 9877)
+++ freecol/trunk/src/net/sf/freecol/server/control/InGameController.java 2012-06-05 10:17:55 UTC (rev 9878)
@@ -488,7 +488,7 @@
});
DOMMessage reply;
try {
- boolean single = getFreeColServer().isSingleplayer();
+ boolean single = getFreeColServer().isSinglePlayer();
reply = future.get(FreeCol.getFreeColTimeout(single),
TimeUnit.SECONDS);
} catch (TimeoutException te) {
@@ -668,7 +668,7 @@
// that would stop revenge mode.
Player winner = game.checkForWinner();
if (winner != null
- && !(freeColServer.isSingleplayer() && winner.isAI())) {
+ && !(freeColServer.isSinglePlayer() && winner.isAI())) {
ChangeSet cs = new ChangeSet();
cs.addTrivial(See.all(), "gameEnded",
ChangePriority.CHANGE_NORMAL,
@@ -812,7 +812,7 @@
sendToList(getOtherPlayers(serverPlayer, (ServerPlayer)player), cs);
sendElement((ServerPlayer)player, cs);
if (!player.isAI()
- && freeColServer.isSingleplayer()
+ && freeColServer.isSinglePlayer()
&& debugOnlyAITurns > 0) {
continue;
}
@@ -1164,7 +1164,7 @@
public Element continuePlaying(ServerPlayer serverPlayer) {
ServerGame game = (ServerGame) getGame();
Element reply = null;
- if (!getFreeColServer().isSingleplayer()) {
+ if (!getFreeColServer().isSinglePlayer()) {
logger.warning("Can not continue playing in multiplayer!");
} else if (serverPlayer != game.checkForWinner()) {
logger.warning("Can not continue playing, as "
@@ -3863,7 +3863,7 @@
* @return An <code>Element</code> encapsulating this action.
*/
public Element enterRevengeMode(ServerPlayer serverPlayer) {
- if (!getFreeColServer().isSingleplayer()) {
+ if (!getFreeColServer().isSinglePlayer()) {
return DOMMessage.clientError("Can not enter revenge mode,"
+ " as this is not a single player game.");
}
Modified: freecol/trunk/src/net/sf/freecol/server/control/InGameInputHandler.java
===================================================================
--- freecol/trunk/src/net/sf/freecol/server/control/InGameInputHandler.java 2012-06-04 15:08:40 UTC (rev 9877)
+++ freecol/trunk/src/net/sf/freecol/server/control/InGameInputHandler.java 2012-06-05 10:17:55 UTC (rev 9878)
@@ -696,7 +696,7 @@
Element reply = null;
player.setConnected(false);
if (getFreeColServer().getGame().getCurrentPlayer() == player
- && !getFreeColServer().isSingleplayer()) {
+ && !getFreeColServer().isSinglePlayer()) {
reply = getFreeColServer().getInGameController().endTurn(player);
}
try {
Modified: freecol/trunk/src/net/sf/freecol/server/control/PreGameController.java
===================================================================
--- freecol/trunk/src/net/sf/freecol/server/control/PreGameController.java 2012-06-04 15:08:40 UTC (rev 9877)
+++ freecol/trunk/src/net/sf/freecol/server/control/PreGameController.java 2012-06-05 10:17:55 UTC (rev 9878)
@@ -74,7 +74,7 @@
}
/**
- * Updates and starts the game.
+ * Updates and starts the new game.
*
* This method performs these tasks in the given order:
*
@@ -127,7 +127,7 @@
// Initial stances and randomizations for all players.
Random random = getFreeColServer().getServerRandom();
for (Player player : game.getPlayers()) {
- ((ServerPlayer) player).startGame(random);
+ ((ServerPlayer)player).startGame(random);
if (player.isIndian()) {
// Indian players know about each other, but European colonial
// players do not.
Modified: freecol/trunk/src/net/sf/freecol/server/control/UserConnectionHandler.java
===================================================================
--- freecol/trunk/src/net/sf/freecol/server/control/UserConnectionHandler.java 2012-06-04 15:08:40 UTC (rev 9877)
+++ freecol/trunk/src/net/sf/freecol/server/control/UserConnectionHandler.java 2012-06-05 10:17:55 UTC (rev 9878)
@@ -26,6 +26,7 @@
import net.sf.freecol.FreeCol;
import net.sf.freecol.common.model.Game;
import net.sf.freecol.common.model.Player;
+import net.sf.freecol.common.model.Unit;
import net.sf.freecol.common.networking.Connection;
import net.sf.freecol.common.networking.DOMMessage;
import net.sf.freecol.common.networking.LoginMessage;
@@ -129,11 +130,53 @@
version + " != " + FreeCol.getVersion());
}
- Game game = freeColServer.getGame();
+ Game game;
+ ServerPlayer player;
Server server = freeColServer.getServer();
- if (freeColServer.getGameState()
- != FreeColServer.GameState.STARTING_GAME) {
- ServerPlayer player = (ServerPlayer)game.getPlayerByName(userName);
+ Unit active = null;
+ boolean isCurrentPlayer = false;
+ MessageHandler mh;
+ boolean starting = freeColServer.getGameState()
+ == FreeColServer.GameState.STARTING_GAME;
+ if (starting) {
+ // Wait until the game has been created.
+ // TODO: is this still needed?
+ int timeOut = 20000;
+ while (freeColServer.getGame() == null) {
+ try {
+ Thread.sleep(1000);
+ } catch (InterruptedException e) {}
+ if ((timeOut -= 1000) <= 0) {
+ return DOMMessage.createError("server.timeOut", null);
+ }
+ }
+
+ game = freeColServer.getGame();
+ if (!game.canAddNewPlayer()) {
+ return DOMMessage.createError("server.maximumPlayers", null);
+ } else if (game.playerNameInUse(userName)) {
+ return DOMMessage.createError("server.userNameInUse",
+ userName + " is already in use.");
+ }
+
+ // Create and add the new player:
+ boolean admin = game.getPlayers().size() == 0;
+ player = new ServerPlayer(game, userName, admin,
+ game.getVacantNation(),
+ connection.getSocket(), connection);
+ game.addPlayer(player);
+
+ // Send message to all players except to the new player:
+ Element add = DOMMessage.createMessage("addPlayer");
+ add.appendChild(player.toXMLElement(null, add.getOwnerDocument()));
+ server.sendToAll(add, connection);
+
+ // Ready now to handle pre-game messages.
+ mh = freeColServer.getPreGameInputHandler();
+
+ } else { // Restoring from existing game.
+ game = freeColServer.getGame();
+ player = (ServerPlayer)game.getPlayerByName(userName);
if (player == null) {
return DOMMessage.createError("server.alreadyStarted", null);
} else if (player.isConnected() && !player.isAI()) {
@@ -152,67 +195,27 @@
// If this player is the first to reconnect, it is the
// current player.
- boolean isCurrentPlayer = game.getCurrentPlayer() == null;
- if (isCurrentPlayer) game.setCurrentPlayer(player);
-
- connection.setMessageHandler(freeColServer.getInGameInputHandler());
- server.addConnection(connection);
-
- try {
- freeColServer.updateMetaServer();
- } catch (NoRouteToServerException e) {}
-
- return new LoginMessage(player, userName, version,
- true, freeColServer.isSingleplayer(), isCurrentPlayer,
- ((isCurrentPlayer) ? freeColServer.getActiveUnit() : null),
- freeColServer.getGame()).toXMLElement();
- }
-
- // TODO: is this still needed?
- int timeOut = 20000; // Wait until the game has been created:
- while (freeColServer.getGame() == null) {
- try {
- Thread.sleep(1000);
- } catch (InterruptedException e) {}
-
- timeOut -= 1000;
-
- if (timeOut <= 0) {
- return DOMMessage.createError("server.timeOut", null);
+ isCurrentPlayer = game.getCurrentPlayer() == null;
+ if (isCurrentPlayer) {
+ game.setCurrentPlayer(player);
+ active = freeColServer.getActiveUnit();
}
- }
- if (!game.canAddNewPlayer()) {
- return DOMMessage.createError("server.maximumPlayers", null);
- } else if (game.playerNameInUse(userName)) {
- return DOMMessage.createError("server.userNameInUse",
- userName + " is already in use.");
+ // Go straight into the game.
+ mh = freeColServer.getInGameInputHandler();
}
- // Create and add the new player:
- boolean admin = game.getPlayers().size() == 0;
- ServerPlayer newPlayer
- = new ServerPlayer(game, userName, admin, game.getVacantNation(),
- connection.getSocket(), connection);
- freeColServer.getGame().addPlayer(newPlayer);
-
- // Send message to all players except to the new player:
- Element add = DOMMessage.createMessage("addPlayer");
- add.appendChild(newPlayer.toXMLElement(null, add.getOwnerDocument()));
- freeColServer.getServer().sendToAll(add, connection);
-
- connection.setMessageHandler(freeColServer.getPreGameInputHandler());
+ connection.setMessageHandler(mh);
server.addConnection(connection);
try {
freeColServer.updateMetaServer();
} catch (NoRouteToServerException e) {
logger.log(Level.WARNING, "Unable to update meta-server.", e);
}
-
- return new LoginMessage(newPlayer, userName, version,
- false, freeColServer.isSingleplayer(), false,
- null,
- game).toXMLElement();
+ return new LoginMessage(player, userName, version, !starting,
+ freeColServer.isSinglePlayer(),
+ isCurrentPlayer, active,
+ game).toXMLElement();
}
/**
Modified: freecol/trunk/test/src/net/sf/freecol/client/ClientTestHelper.java
===================================================================
--- freecol/trunk/test/src/net/sf/freecol/client/ClientTestHelper.java 2012-06-04 15:08:40 UTC (rev 9877)
+++ freecol/trunk/test/src/net/sf/freecol/client/ClientTestHelper.java 2012-06-05 10:17:55 UTC (rev 9878)
@@ -34,7 +34,7 @@
FreeColClient client = new FreeColClient(null, null, false, null, false, null);
ConnectController connectController = client.getConnectController();
client.setFreeColServer(freeColServer);
- client.setSingleplayer(true);
+ client.setSinglePlayer(true);
client.setHeadless(true);
boolean connected = connectController.login(username, "127.0.0.1",
freeColServer.getPort());
Modified: freecol/trunk/test/src/net/sf/freecol/server/ServerTestHelper.java
===================================================================
--- freecol/trunk/test/src/net/sf/freecol/server/ServerTestHelper.java 2012-06-04 15:08:40 UTC (rev 9877)
+++ freecol/trunk/test/src/net/sf/freecol/server/ServerTestHelper.java 2012-06-05 10:17:55 UTC (rev 9878)
@@ -76,11 +76,11 @@
return startServer(publicServer, singlePlayer, SERVER_PORT, SERVER_NAME);
}
- public static FreeColServer startServer(boolean publicServer, boolean singleplayer, int port, String name) {
+ public static FreeColServer startServer(boolean publicServer, boolean singlePlayer, int port, String name) {
stopServer(server);
try {
// TODO: fixme! Pass tc
- server = new FreeColServer(FreeColTestCase.spec(), publicServer, singleplayer, port, name);
+ server = new FreeColServer(FreeColTestCase.spec(), publicServer, singlePlayer, port, name);
} catch (NoRouteToServerException e) {
fail(e.getMessage());
} catch (IOException e) {
@@ -91,11 +91,11 @@
return server;
}
- public static FreeColServer startServer(File file, boolean publicServer, boolean singleplayer) {
- return startServer(file, publicServer, singleplayer, SERVER_PORT, SERVER_NAME);
+ public static FreeColServer startServer(File file, boolean publicServer, boolean singlePlayer) {
+ return startServer(file, publicServer, singlePlayer, SERVER_PORT, SERVER_NAME);
}
- public static FreeColServer startServer(File file, boolean publicServer, boolean singleplayer, int port, String name) {
+ public static FreeColServer startServer(File file, boolean publicServer, boolean singlePlayer, int port, String name) {
stopServer(server);
try {
server = new FreeColServer(new FreeColSavegameFile(file), port, name);
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|