gameDidEnd will now be called even if the game is cancelled.

Made AI ticking only happen while the game is IN_PLAY.
Added forgotten comment.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1285 542714f4-19e9-0310-aa3c-eee0fc999fb1
This commit is contained in:
Ray Greenwell
2002-04-19 21:40:38 +00:00
parent 575c276c9a
commit 849eaec47b
2 changed files with 19 additions and 17 deletions
@@ -1,5 +1,5 @@
// //
// $Id: GameManager.java,v 1.28 2002/04/19 21:16:42 ray Exp $ // $Id: GameManager.java,v 1.29 2002/04/19 21:40:38 ray Exp $
package com.threerings.parlor.game; package com.threerings.parlor.game;
@@ -85,9 +85,6 @@ public class GameManager extends PlaceManager
// set up a delegate op for AI ticking // set up a delegate op for AI ticking
_tickAIOp = new TickAIDelegateOp(); _tickAIOp = new TickAIDelegateOp();
// and register ourselves to receive AI ticks
AIGameTicker.registerAIGame(this);
} }
_AIs[pidx] = skill; _AIs[pidx] = skill;
@@ -142,17 +139,6 @@ public class GameManager extends PlaceManager
} }
} }
// documentation inherited
public void shutdown ()
{
super.shutdown();
// also remove ourselves from the AIticker, if applicable
if (_AIs != null) {
AIGameTicker.unregisterAIGame(this);
}
}
// documentation inherited // documentation inherited
protected void bodyLeft (int bodyOid) protected void bodyLeft (int bodyOid)
{ {
@@ -250,6 +236,11 @@ public class GameManager extends PlaceManager
((GameManagerDelegate)delegate).gameDidStart(); ((GameManagerDelegate)delegate).gameDidStart();
} }
}); });
// and register ourselves to receive AI ticks
if (_AIs != null) {
AIGameTicker.registerAIGame(this);
}
} }
/** /**
@@ -299,6 +290,11 @@ public class GameManager extends PlaceManager
*/ */
protected void gameDidEnd () protected void gameDidEnd ()
{ {
// remove ourselves from the AIticker, if applicable
if (_AIs != null) {
AIGameTicker.unregisterAIGame(this);
}
// let our delegates do their business // let our delegates do their business
applyToDelegates(new DelegateOp() { applyToDelegates(new DelegateOp() {
public void apply (PlaceManagerDelegate delegate) { public void apply (PlaceManagerDelegate delegate) {
@@ -369,6 +365,8 @@ public class GameManager extends PlaceManager
{ {
if (event.getName().equals(GameObject.STATE)) { if (event.getName().equals(GameObject.STATE)) {
switch (event.getIntValue()) { switch (event.getIntValue()) {
case GameObject.CANCELLED:
// fall through to GAME_OVER case
case GameObject.GAME_OVER: case GameObject.GAME_OVER:
// now we do our end of game processing // now we do our end of game processing
gameDidEnd(); gameDidEnd();
@@ -410,6 +408,9 @@ public class GameManager extends PlaceManager
} }
} }
/**
* A helper operation to distribute AI ticks to our delegates.
*/
protected class TickAIDelegateOp implements DelegateOp protected class TickAIDelegateOp implements DelegateOp
{ {
public void apply (PlaceManagerDelegate delegate) { public void apply (PlaceManagerDelegate delegate) {
@@ -1,5 +1,5 @@
// //
// $Id: GameManagerDelegate.java,v 1.3 2002/04/19 21:16:42 ray Exp $ // $Id: GameManagerDelegate.java,v 1.4 2002/04/19 21:40:38 ray Exp $
package com.threerings.parlor.game; package com.threerings.parlor.game;
@@ -35,7 +35,8 @@ public class GameManagerDelegate extends PlaceManagerDelegate
} }
/** /**
* Called by the manager when we should do some AI. * Called by the manager when we should do some AI. Only called while
* the game is IN_PLAY.
* *
* @param pidx the player index to fake some gameplay for. * @param pidx the player index to fake some gameplay for.
* @param skill the base skill level of the AI (0 - 100 inclusive). * @param skill the base skill level of the AI (0 - 100 inclusive).