Allow additional game states.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3485 542714f4-19e9-0310-aa3c-eee0fc999fb1
This commit is contained in:
@@ -200,25 +200,36 @@ public abstract class GameController extends PlaceController
|
|||||||
{
|
{
|
||||||
// deal with game state changes
|
// deal with game state changes
|
||||||
if (event.getName().equals(GameObject.STATE)) {
|
if (event.getName().equals(GameObject.STATE)) {
|
||||||
switch (event.getIntValue()) {
|
if (!handleStateChange(event.getIntValue())) {
|
||||||
case GameObject.IN_PLAY:
|
|
||||||
gameDidStart();
|
|
||||||
break;
|
|
||||||
case GameObject.GAME_OVER:
|
|
||||||
gameDidEnd();
|
|
||||||
break;
|
|
||||||
case GameObject.CANCELLED:
|
|
||||||
gameWasCancelled();
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
Log.warning("Game transitioned to unknown state " +
|
Log.warning("Game transitioned to unknown state " +
|
||||||
"[gobj=" + _gobj +
|
"[gobj=" + _gobj +
|
||||||
", state=" + event.getIntValue() + "].");
|
", state=" + event.getIntValue() + "].");
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Derived classes can override this method if they add additional
|
||||||
|
* game states and should handle transitions to those states,
|
||||||
|
* returning true to indicate they were handled and calling super for
|
||||||
|
* the normal game states.
|
||||||
|
*/
|
||||||
|
protected boolean handleStateChange (int state)
|
||||||
|
{
|
||||||
|
switch (state) {
|
||||||
|
case GameObject.IN_PLAY:
|
||||||
|
gameDidStart();
|
||||||
|
return true;
|
||||||
|
case GameObject.GAME_OVER:
|
||||||
|
gameDidEnd();
|
||||||
|
return true;
|
||||||
|
case GameObject.CANCELLED:
|
||||||
|
gameWasCancelled();
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Called when the game transitions to the <code>IN_PLAY</code>
|
* Called when the game transitions to the <code>IN_PLAY</code>
|
||||||
* state. This happens when all of the players have arrived and the
|
* state. This happens when all of the players have arrived and the
|
||||||
|
|||||||
Reference in New Issue
Block a user