2004-09-02 (v0.9.0): - display of captured pieces - initial stylesheet formatting - PHP export - new config setting for board size - new config setting to restrict the creation of new users - many, many bug fixes, particularly with check and checkmate detection!!! 2003-10-20 (v0.8.4): - BUG FIX: fixed a bug in isCheckMate.js where array boundaries weren't being enforced and sometimes caused an invalid index javascript error - BUG FIX: Checkmate checking fix - by removing king from board isCheckMate() incorrectly believed pieces on the other side of the king could kill the attacking piece, so now king is replaced with ennemy pawn - Bug 753704 - BUG FIX: Fixed bug in validation.js where moving the king along the same line as the attached was not properly validating the move becaues the king was in the way - Bug 750083 2003-05-29 (v0.8.3): - IMPORTANT: changed name of 'check' column in history table to 'isInCheck' since 'check' is a reserved word in MySQL 4.0 - BUG FIX: fixed case 7 in getNextAttacker() as it was identical to case 6 - BUG FIX: fixed isSafe(): after determining that an attacking king wasn't really a threat because it would be moving into check it would ignore all other possible attackers, which would result in false results under certain circumstances - BUG FIX: isSafe() sometimes didn't check all the way accross the board (changed i<7 to i<8) - BUG FIX: fixed a bug in the verbous history settings where pawn promotions wouldn't display what it was promoted to - BUG FIX: fixed bug whereby check and checkmate weren't properly being detected after a pawn promotion - BUG FIX: fixed bug where code to update history and theme preferences where inversed (contributed by orcadesign) - BUG FIX: fixed bug where nick could not be updated (contributed by jdexter) - IMPORTANT: changed players table to make nick column UNIQUE to prevent users from reusing an existing nick (contributed by Ray Bohac) - BUG FIX: added a couple sanity checks on the PHP side for empty nicks, but there's still no way to prevent whitespace-only nicks (ToDo) 2002-09-22 (v0.8.2): - BUG FIX: added 'var' keyword to every local javascript variables to actually make them local - BUG FIX: allow only one request from a given user A to a given user B (solves problem of mutliplying requests when hiting reload in browser) - BUG FIX: modified isSafe() to take into account moving the king into check (ToDo: moving into check in general) - split list of "current games" into current (ie: active) games and ended games - added ability to withdraw a pending invitation to play a game - added "Your Move" or "Opponent's Move" to title and status window - added ability to edit personal preferences; whether the nick can be changed depends on a server setting since the nick is really how players identify themselves with each other (internally, WebChess uses the player ID) 2002-09-16 (v0.8.2a): - IMPORTANT: changed preferences table to allow NULL values and values as big as 50 characters (for emails, requires updating the database) - IMPORTANT: changed games table to add checkMate status (requires updating the database) - added code to check for missing preferences and saves default preferences for them (makes adding new preferences easier) - added optional email notification: if a user supplies an email address, they will be notified of opponent's moves - moved the code to generate the actual PGN/Verbose history string for a given move into chessutils functions (to share with email notification); decided to use the exact same interface for both functions; (could be useful later on: object-oriented WebChess? :) - when creating new player, added code to verify whether a Nick is already in use - added second password field to confirm password - added basic form validation when creating new user - added logout button to main game screen - added random color selection when inviting users to a game - added fix for PHP version < 4.1.0 (http vars used to be HTTP_POST_VARS for example, while WebChess uses _POST) NOTE: developers working on WebChess should now make _POST, _GET and _SESSION global in any function they are used, but only for old PHP versions (see chessdb.php for an example) - BUG FIX: after player A moved his pawn to the last row, but before he did the promotion, player B used to be able to move (credit: Michael Evraire) - BUG FIX: if a player attempts an illegal move then resigns, the illegal move used to be written to the database (credit: Jay B Chapman) 2002-09-04 (v0.8.1): - removed stray "echo" statement from inviteplayer.php which was left in from a debugging session (credit: Sam Ramsay) - fixed problem with session management: session_start() wasn't always done before the first html output (credit: Sam Ramsay) - eliminated the extra button on the new user page 2002-08-21 (v0.8.0): - tagged WebChess as it stands now as version 0.8: first public release! 2002-08-13: - added the ability to play a game of WebChess using one computer (instead of two computers over the web) 2002-08-12: - minor bug-fixes here and there - fixed auto-reload to not prevent a session from timing out - disabled Undo, Draw and Resign buttons when answering a request or promoting - fixed request so simultaneous requests can be answered seperately - switched auto-reload to a user preference; made server config the minimum allowed - switched global variables to use $_POST array where applicable - removed reference to newgame.php in chess.php (since it's now used by mainmenu.php instead) - added "Request Draw" and "Resign" functionality - changed Undo to work as a request which requires authorization from opponent - added the status window - fixed a bug in the validation script for castling (would check for any king's move as opposed to current king's move) 2002-08-06: - enabled auto-reload; when it's your opponent's turn, the game will automatically reload based on config NOTE: auto-reload will currently prevent a session from timing out... should be fixed 2002-07-24: - completed the integration of user accounts into WebChess, specifically: . creation of user accounts . login/logout . edit preferences . invite/accept/reject new games . integration with WebChess, so WebChess respects prefs, multiple concurrent games can be played and players can only move when it's their turn - player's playing black pieces now see black's perspective NOTE: there may be a thing or two left to nudge in 2002-07-06: - added user accounts NOTE: user accounts still aren't incorporated into WebChess (they are seperate from the game) 2002-07-04: - fixed WebChess to work even if the php config option register_globals is off - fixed the highlighting so if you select the exact same piece twice in a row, it unhighlights it - changed WebChess to use production tablenames as opposed to "temp" table names 2002-07-03: - BUG FIXED: reversed the square colors so bottom right square is right 2002-07-02: - reversed row order to correspond with standard practices in chess 2002-06-30: - added server-side check that ensures current player is moving an appropriate piece - BUG FIXED: error message and dissapearing pawn when hiting reload button in browser (as opposed to in game) - BUG FIXED: if two browser windows are open on the same game, player could make two consecutive moves by making one in one browser and another in the second one - icons fixed to remove some of the ugly edges (Dave Ansell) 2002-06-26: - added pseudo-themes - changed default icons to reboot.com theme - BUG FIXED: king was incorrectly being reported as in check when diagonally behind an ennemy pawn 2002-06-25: - added PGN history format and made it the default - BUG FIXED: game would allow king to castle if he moved and then returned to initial square - if you click on one of your own pieces, then clicked another one of yours, moved the highlighted piece (instead of displaying an error message)