Rejiggered the order in which board state comparison logging is done.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2886 542714f4-19e9-0310-aa3c-eee0fc999fb1
This commit is contained in:
@@ -1,5 +1,5 @@
|
|||||||
//
|
//
|
||||||
// $Id: PuzzleManager.java,v 1.4 2003/11/26 18:04:37 mdb Exp $
|
// $Id: PuzzleManager.java,v 1.5 2003/11/26 23:16:43 mdb Exp $
|
||||||
|
|
||||||
package com.threerings.puzzle.server;
|
package com.threerings.puzzle.server;
|
||||||
|
|
||||||
@@ -504,7 +504,7 @@ public abstract class PuzzleManager extends GameManager
|
|||||||
// if we have state syncing enabled, make sure the board is
|
// if we have state syncing enabled, make sure the board is
|
||||||
// correct before applying the event
|
// correct before applying the event
|
||||||
if (before && (states != null)) {
|
if (before && (states != null)) {
|
||||||
compareBoards(pidx, states[ii]);
|
compareBoards(pidx, states[ii], gevent, before);
|
||||||
}
|
}
|
||||||
|
|
||||||
// apply the event to the player's board
|
// apply the event to the player's board
|
||||||
@@ -515,7 +515,7 @@ public abstract class PuzzleManager extends GameManager
|
|||||||
|
|
||||||
// maybe we are comparing boards afterwards
|
// maybe we are comparing boards afterwards
|
||||||
if (!before && (states != null)) {
|
if (!before && (states != null)) {
|
||||||
compareBoards(pidx, states[ii]);
|
compareBoards(pidx, states[ii], gevent, before);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -523,29 +523,39 @@ public abstract class PuzzleManager extends GameManager
|
|||||||
/**
|
/**
|
||||||
* Compare our server board to the specified sent-back user board.
|
* Compare our server board to the specified sent-back user board.
|
||||||
*/
|
*/
|
||||||
protected void compareBoards (int pidx, Board boardstate)
|
protected void compareBoards (int pidx, Board boardstate,
|
||||||
|
int gevent, boolean before)
|
||||||
{
|
{
|
||||||
// Log.info("About to apply progress event [game=" + _puzobj.which() +
|
if (DEBUG_PUZZLE) {
|
||||||
// ", pidx=" + pidx + "].");
|
Log.info((before ? "About to apply " : "Just applied ") +
|
||||||
|
"[game=" + _puzobj.which() + ", pidx=" + pidx +
|
||||||
|
", event=" + gevent + "].");
|
||||||
|
}
|
||||||
|
if (boardstate == null) {
|
||||||
|
if (DEBUG_PUZZLE) {
|
||||||
|
Log.info("No board state provided. Can't compare.");
|
||||||
|
}
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
boolean equal = _boards[pidx].equals(boardstate);
|
||||||
|
if (!equal) {
|
||||||
|
Log.warning("Client and server board states not equal! " +
|
||||||
|
"[game=" + _puzobj.which() +
|
||||||
|
", type=" + _puzobj.getClass().getName() + "].");
|
||||||
|
}
|
||||||
if (DEBUG_PUZZLE) {
|
if (DEBUG_PUZZLE) {
|
||||||
// if we're debugging, dump the board state every time
|
// if we're debugging, dump the board state every time
|
||||||
// we're about to apply an event
|
// we're about to apply an event
|
||||||
_boards[pidx].dumpAndCompare(boardstate);
|
_boards[pidx].dumpAndCompare(boardstate);
|
||||||
}
|
}
|
||||||
|
if (!equal) {
|
||||||
if (!_boards[pidx].equals(boardstate)) {
|
if (DEBUG_PUZZLE) {
|
||||||
Log.warning("Client and server board states not equal! " +
|
// bail out so that we know something's royally borked
|
||||||
"[game=" + _puzobj.which() +
|
|
||||||
", type=" + _puzobj.getClass().getName() +
|
|
||||||
"].");
|
|
||||||
if (!DEBUG_PUZZLE) {
|
|
||||||
// otherwise, dump the board state only if the
|
|
||||||
// client's board differs from the server's
|
|
||||||
_boards[pidx].dumpAndCompare(boardstate);
|
|
||||||
} else {
|
|
||||||
// and if we're debugging, bail out so that we
|
|
||||||
// know something's royally borked
|
|
||||||
System.exit(0);
|
System.exit(0);
|
||||||
|
} else {
|
||||||
|
// dump the board state since we're not debugging and
|
||||||
|
// didn't just do it above
|
||||||
|
_boards[pidx].dumpAndCompare(boardstate);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user