No longer do we set the players in an explicit call to

GameManager.setPlayers(), now it is simply provided as part of the game
config object which is cleaner and makes the information available during
the initialization and permissions checking phases.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1778 542714f4-19e9-0310-aa3c-eee0fc999fb1
This commit is contained in:
Michael Bayne
2002-10-06 00:53:15 +00:00
parent 4da35c0f0b
commit 37c4f866fd
5 changed files with 29 additions and 40 deletions
@@ -1,5 +1,5 @@
//
// $Id: SimulatorManager.java,v 1.12 2002/08/14 19:07:51 mdb Exp $
// $Id: SimulatorManager.java,v 1.13 2002/10/06 00:53:15 mdb Exp $
package com.threerings.micasa.simulator.server;
@@ -90,19 +90,18 @@ public class SimulatorManager
// been started up (which is done by the place registry
// once the game object creation has completed)
// configure the game config with the player names
config.players = new String[_playerCount];
config.players[0] = _source.username;
for (int ii = 1; ii < _playerCount; ii++) {
config.players[ii] = "simulant" + ii;
}
// we needn't hang around and wait for game object
// creation if it's just us
CreationObserver obs = (_playerCount == 1) ? null : this;
_gmgr = (GameManager)_plreg.createPlace(config, obs);
// give the game manager the player names
String[] names = new String[_playerCount];
names[0] = _source.username;
for (int ii = 1; ii < _playerCount; ii++) {
names[ii] = "simulant" + ii;
}
_gmgr.setPlayers(names);
for (int ii = 1; ii < _playerCount; ii++) {
// mark all simulants as AI players
_gmgr.setAI(ii, skill);
@@ -1,5 +1,5 @@
//
// $Id: GameConfig.java,v 1.12 2002/09/06 22:52:27 shaper Exp $
// $Id: GameConfig.java,v 1.13 2002/10/06 00:53:15 mdb Exp $
package com.threerings.parlor.game;
@@ -25,6 +25,10 @@ import com.threerings.parlor.client.GameConfigurator;
*/
public abstract class GameConfig extends PlaceConfig
{
/** The usernames of the players involved in this game, or an empty
* array if such information is not needed by this particular game. */
public String[] players = new String[0];
/** Indicates whether or not this game is rated. */
public boolean rated = true;
@@ -1,5 +1,5 @@
//
// $Id: GameManager.java,v 1.45 2002/10/06 00:44:16 mdb Exp $
// $Id: GameManager.java,v 1.46 2002/10/06 00:53:15 mdb Exp $
package com.threerings.parlor.game;
@@ -48,6 +48,12 @@ public class GameManager extends PlaceManager
// save off a casted reference to our config
_gameconfig = (GameConfig)_config;
// keep this around for now, we'll need it later
_players = _gameconfig.players;
// instantiate a player oid array which we'll fill in later
_playerOids = new int[_players.length];
}
/**
@@ -153,26 +159,6 @@ public class GameManager extends PlaceManager
{
}
/**
* Provides the game manager with a list of the usernames of all
* players in the game. This happens before startup and before the
* game object has been created. Note that party games may
* subsequently add or remove players via {@link #addPlayer} and
* {@link #removePlayer}, and so should be sure to handle a changing
* player list gracefully.
*
* @param players the usernames of all of the players in this game or
* a zero-length array if the game has no specific set of players.
*/
public void setPlayers (String[] players)
{
// keep this around for now, we'll need it later
_players = players;
// instantiate a player oid array which we'll fill in later
_playerOids = new int[players.length];
}
/**
* Sets the specified player as an AI with the specified skill. It is
* assumed that this will be set soon after the player names for all
@@ -1,5 +1,5 @@
//
// $Id: ParlorManager.java,v 1.19 2002/08/14 19:07:54 mdb Exp $
// $Id: ParlorManager.java,v 1.20 2002/10/06 00:53:15 mdb Exp $
package com.threerings.parlor.server;
@@ -182,6 +182,10 @@ public class ParlorManager
try {
Log.info("Creating game manager [invite=" + invite + "].");
// configure the game config with the player info
invite.config.players = new String[] {
invite.invitee.username, invite.inviter.username };
// create the game manager and begin it's initialization
// process. the game manager will take care of notifying the
// players that the game has been created once it has been
@@ -190,10 +194,6 @@ public class ParlorManager
GameManager gmgr = (GameManager)
_plreg.createPlace(invite.config, null);
// provide the game manager with the player list
gmgr.setPlayers(new String[] {
invite.invitee.username, invite.inviter.username });
} catch (Exception e) {
Log.warning("Unable to create game manager [invite=" + invite +
", error=" + e + "].");
@@ -1,5 +1,5 @@
//
// $Id: TableManager.java,v 1.7 2002/08/14 19:07:54 mdb Exp $
// $Id: TableManager.java,v 1.8 2002/10/06 00:53:15 mdb Exp $
package com.threerings.parlor.server;
@@ -262,6 +262,9 @@ public class TableManager
try {
Log.info("Creating game manager [config=" + config + "].");
// configure the game config with the players array
config.players = players;
// create the game manager and begin it's initialization
// process. the game manager will take care of notifying the
// players that the game has been created once it has been
@@ -269,9 +272,6 @@ public class TableManager
// game object creation has completed)
gmgr = (GameManager)CrowdServer.plreg.createPlace(config, this);
// provide the game manager with some initialization info
gmgr.setPlayers(players);
} catch (Exception e) {
Log.warning("Unable to create game manager [config=" + config +
", players=" + StringUtil.toString(players) + "].");