diff --git a/src/java/com/threerings/parlor/game/server/GameManager.java b/src/java/com/threerings/parlor/game/server/GameManager.java index ba087c2a..285e2b83 100644 --- a/src/java/com/threerings/parlor/game/server/GameManager.java +++ b/src/java/com/threerings/parlor/game/server/GameManager.java @@ -964,8 +964,9 @@ public class GameManager extends PlaceManager */ protected void gameWillStart () { - // increment the round identifier - _gameobj.setRoundId(_gameobj.roundId + 1); + // update our round id locally; see gameDidStart() for where we actually broadcast this + // change to the clients + _gameobj.roundId = _gameobj.roundId + 1; // let our delegates do their business applyToDelegates(new DelegateOp() { @@ -1027,6 +1028,12 @@ public class GameManager extends PlaceManager _noShowInterval.cancel(); } + // broadcast the increment of the round identifier (we set this value locally on the server + // in gameWillStart so that delegates and pre-game starters can know what the round is, but + // we don't want the client to hear the ROUND_ID update until after the STATE change has + // been dispatched) + _gameobj.setRoundId(_gameobj.roundId); + // let our delegates do their business applyToDelegates(new DelegateOp() { public void apply (PlaceManagerDelegate delegate) {