No more SYNC_BOARD_STATE either. Now that too can be activated at runtime.

git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3183 542714f4-19e9-0310-aa3c-eee0fc999fb1
This commit is contained in:
Michael Bayne
2004-10-28 19:20:04 +00:00
parent 19bd1b06bf
commit 1b99ba033e
3 changed files with 21 additions and 8 deletions
@@ -1,5 +1,5 @@
//
// $Id: PuzzleController.java,v 1.17 2004/10/28 18:59:35 mdb Exp $
// $Id: PuzzleController.java,v 1.18 2004/10/28 19:20:04 mdb Exp $
//
// Narya library - tools for developing networked games
// Copyright (C) 2002-2004 Three Rings Design, Inc., All Rights Reserved
@@ -739,7 +739,7 @@ public abstract class PuzzleController extends GameController
}
_events.add(new Integer(event));
if (_puzconfig.syncBoardState()) {
if (PuzzlePanel.isSyncingBoards()) {
_states.add((board == null) ? null : board.clone());
if (board == null) {
Log.warning("Added progress event with no associated board " +
@@ -751,7 +751,7 @@ public abstract class PuzzleController extends GameController
/**
* Sends the server a game progress update with the list of events, as
* well as board states if {@link #SYNC_BOARD_STATE} is true.
* well as board states if {@link PuzzlePanel#isSyncingBoards} is true.
*/
public void sendProgressUpdate ()
{
@@ -770,7 +770,7 @@ public abstract class PuzzleController extends GameController
// create an array of the board states that correspond with those
// events (if state syncing is enabled)
if (_puzconfig.syncBoardState()) {
if (PuzzlePanel.isSyncingBoards()) {
int scount = _states.size();
Board[] states = new Board[scount];
for (int ii = 0; ii < scount; ii++) {
@@ -1,5 +1,5 @@
//
// $Id: PuzzleGameService.java,v 1.2 2004/08/27 02:20:27 mdb Exp $
// $Id: PuzzleGameService.java,v 1.3 2004/10/28 19:20:04 mdb Exp $
//
// Narya library - tools for developing networked games
// Copyright (C) 2002-2004 Three Rings Design, Inc., All Rights Reserved
@@ -41,8 +41,8 @@ public interface PuzzleGameService extends InvocationService, PuzzleCodes
/**
* Debug variant of {@link #updateProgress} that is only used when
* {@link #SYNC_BOARD_STATE} is true and which includes the board
* states associated with each event.
* {@link PuzzlePanel#isSyncingBoards} is true and which includes the
* board states associated with each event.
*/
public void updateProgressSync (
Client client, int roundId, int[] events, Board[] states);
@@ -1,5 +1,5 @@
//
// $Id: PuzzlePanel.java,v 1.7 2004/10/28 18:53:26 mdb Exp $
// $Id: PuzzlePanel.java,v 1.8 2004/10/28 19:20:04 mdb Exp $
//
// Narya library - tools for developing networked games
// Copyright (C) 2002-2004 Three Rings Design, Inc., All Rights Reserved
@@ -253,6 +253,12 @@ public abstract class PuzzlePanel extends JPanel
return _robotTest.getValue();
}
/** Returns true if board syncing is activated. */
public static boolean isSyncingBoards ()
{
return _syncBoardState.getValue();
}
/** Our puzzle context. */
protected PuzzleContext _ctx;
@@ -283,4 +289,11 @@ public abstract class PuzzlePanel extends JPanel
"Activates the robot test player which will make random moves " +
"in any activated puzzle.", "narya.puzzle.robot_tester",
PuzzlePrefs.config, false);
/** A debug hook that toggles activation of board syncing. */
protected static RuntimeAdjust.BooleanAdjust _syncBoardState =
new RuntimeAdjust.BooleanAdjust(
"Sends a snapshot of the puzzle board with every event to aid " +
"in debugging.", "narya.puzzle.sync_board_state",
PuzzlePrefs.config, false);
}