From 8381da7caba06e6a78ea77da11ad68cdb7314b60 Mon Sep 17 00:00:00 2001 From: Mark Johnson Date: Wed, 7 Dec 2005 19:19:11 +0000 Subject: [PATCH] Have board summaries always update before being broadcast. Don't generate a summary for every change to a player's board. git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3777 542714f4-19e9-0310-aa3c-eee0fc999fb1 --- .../drop/server/DropManagerDelegate.java | 2 -- .../puzzle/server/PuzzleManager.java | 20 +++++++++++++++++-- 2 files changed, 18 insertions(+), 4 deletions(-) diff --git a/src/java/com/threerings/puzzle/drop/server/DropManagerDelegate.java b/src/java/com/threerings/puzzle/drop/server/DropManagerDelegate.java index b22fff667..caa47277b 100644 --- a/src/java/com/threerings/puzzle/drop/server/DropManagerDelegate.java +++ b/src/java/com/threerings/puzzle/drop/server/DropManagerDelegate.java @@ -147,8 +147,6 @@ public abstract class DropManagerDelegate extends PuzzleManagerDelegate */ protected void placedBlock (int pidx) { - // update the player's board levels - _puzmgr.updateBoardSummary(pidx); } /** The drop game board for each player. */ diff --git a/src/java/com/threerings/puzzle/server/PuzzleManager.java b/src/java/com/threerings/puzzle/server/PuzzleManager.java index e10c0ab23..0ccd71a4c 100644 --- a/src/java/com/threerings/puzzle/server/PuzzleManager.java +++ b/src/java/com/threerings/puzzle/server/PuzzleManager.java @@ -122,6 +122,21 @@ public abstract class PuzzleManager extends GameManager } } + /** + * Applies updateBoardSummary on all the players' boards. AI board + * summaries should be updated by the AI logic. + */ + public void updateBoardSummaries () + { + if (_puzobj.summaries != null) { + for (int ii = 0; ii < _puzobj.summaries.length; ii++) { + if (!isAI(ii)) { + updateBoardSummary(ii); + } + } + } + } + // documentation inherited protected void playerGameDidEnd (int pidx) { @@ -286,8 +301,9 @@ public abstract class PuzzleManager extends GameManager { // if we're a board summary updating kind of puzzle, do that if (needsBoardSummaries()) { - // they're already modified in-situ, so we just rebroadcast - // the latest versions + // generate the latest summaries + updateBoardSummaries(); + // then broadcast them to the clients _puzobj.setSummaries(_puzobj.summaries); } }