Created a PartyGameConfig interface and rejiggered party game support a

bit to incorporate it.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2261 542714f4-19e9-0310-aa3c-eee0fc999fb1
This commit is contained in:
Michael Bayne
2003-02-12 05:34:53 +00:00
parent 4db9d58cb4
commit 1a0a1c8951
4 changed files with 57 additions and 16 deletions
@@ -1,5 +1,5 @@
// //
// $Id: GameConfig.java,v 1.13 2002/10/06 00:53:15 mdb Exp $ // $Id: GameConfig.java,v 1.14 2003/02/12 05:34:53 mdb Exp $
package com.threerings.parlor.game; package com.threerings.parlor.game;
@@ -40,15 +40,6 @@ public abstract class GameConfig extends PlaceConfig
*/ */
public abstract Class getConfiguratorClass (); public abstract Class getConfiguratorClass ();
/**
* Returns whether this game is a party game. The default
* implementation returns false.
*/
public boolean isPartyGame ()
{
return false;
}
/** /**
* Returns true if this game config object is equal to the supplied * Returns true if this game config object is equal to the supplied
* object (meaning it is also a game config object and its * object (meaning it is also a game config object and its
@@ -1,5 +1,5 @@
// //
// $Id: GameController.java,v 1.20 2002/09/20 04:53:42 mdb Exp $ // $Id: GameController.java,v 1.21 2003/02/12 05:34:53 mdb Exp $
package com.threerings.parlor.game; package com.threerings.parlor.game;
@@ -236,6 +236,15 @@ public abstract class GameController extends PlaceController
}); });
} }
/**
* Used to determine if this game is a party game.
*/
protected boolean isPartyGame ()
{
return ((_config instanceof PartyGameConfig) &&
((PartyGameConfig)_config).isPartyGame());
}
/** A reference to the active parlor context. */ /** A reference to the active parlor context. */
protected ParlorContext _ctx; protected ParlorContext _ctx;
@@ -1,5 +1,5 @@
// //
// $Id: GameManager.java,v 1.59 2003/01/03 02:47:33 shaper Exp $ // $Id: GameManager.java,v 1.60 2003/02/12 05:34:53 mdb Exp $
package com.threerings.parlor.game; package com.threerings.parlor.game;
@@ -414,7 +414,7 @@ public class GameManager extends PlaceManager
*/ */
protected boolean needsNoShowTimer () protected boolean needsNoShowTimer ()
{ {
return !_gameconfig.isPartyGame(); return !isPartyGame();
} }
// documentation inherited // documentation inherited
@@ -474,7 +474,7 @@ public class GameManager extends PlaceManager
{ {
// start up the game if we're not a party game and if we haven't // start up the game if we're not a party game and if we haven't
// already done so // already done so
if (!_gameconfig.isPartyGame() && if (!isPartyGame() &&
_gameobj.state == GameObject.AWAITING_PLAYERS) { _gameobj.state == GameObject.AWAITING_PLAYERS) {
startGame(); startGame();
} }
@@ -773,7 +773,7 @@ public class GameManager extends PlaceManager
// perfectly normal to receive a player ready notification // perfectly normal to receive a player ready notification
// from a user entering a party game in which they're not yet // from a user entering a party game in which they're not yet
// a participant // a participant
if (!_gameconfig.isPartyGame()) { if (!isPartyGame()) {
Log.warning("Received playerReady() from non-player? " + Log.warning("Received playerReady() from non-player? " +
"[caller=" + caller + "]."); "[caller=" + caller + "].");
} }
@@ -820,7 +820,7 @@ public class GameManager extends PlaceManager
public void startPartyGame (ClientObject caller) public void startPartyGame (ClientObject caller)
{ {
// make sure this is a party game // make sure this is a party game
if (!_gameconfig.isPartyGame()) { if (!isPartyGame()) {
Log.warning("Attempt to player-start a non-party game " + Log.warning("Attempt to player-start a non-party game " +
"[game=" + _gameobj.which() + "[game=" + _gameobj.which() +
", caller=" + caller + "]."); ", caller=" + caller + "].");
@@ -928,6 +928,15 @@ public class GameManager extends PlaceManager
protected byte _level; protected byte _level;
} }
/**
* Used to determine if this game is a party game.
*/
protected boolean isPartyGame ()
{
return ((_gameconfig instanceof PartyGameConfig) &&
((PartyGameConfig)_gameconfig).isPartyGame());
}
/** A reference to our game config. */ /** A reference to our game config. */
protected GameConfig _gameconfig; protected GameConfig _gameconfig;
@@ -0,0 +1,32 @@
//
// $Id: PartyGameConfig.java,v 1.1 2003/02/12 05:34:53 mdb Exp $
package com.threerings.parlor.game;
import com.threerings.parlor.data.TableConfig;
/**
* Provides additional information for party games.
*/
public interface PartyGameConfig extends TableConfig
{
/**
* Returns true if this party game is being played in party game mode,
* false if it is not.
*/
public boolean isPartyGame ();
/**
* Configures this game config as a party game or not.
*/
public void setPartyGame (boolean isPartyGame);
/**
* Returns an array of strings that describe the configuration of this
* party game. This should eventually be rolled into a more general
* purpose mechanism for generating descriptions of game
* configurations as well as editors for game configurations (which
* already exists in rudimentary form).
*/
public String[] getPartyDescription ();
}