0.6.7 2001-02-11 Sydney Tang * ui.*, map.*: Added SpriteSet class to encapsulate the concept of a group of sprites of a particular theme. This is to fix a problem with the old design where all Entity subclasses referenced the same static Sprite objects, which made it impossible to preview a theme while a game is running without affecting the game's sprites. I intend to use the SpriteSet class so that each GameMap object has its own SpriteSet, allowing the theme preview, map preview, and main display GameMaps to each have, simultaneously, a different theme. 0.6.6 2001-06-22 Sydney Tang * Added translations from GNOME CVS tree gnome-i18n/extra-po/bombermaze: da: Keld Simonsen de: Christian Meyer no: Kjartan Maraas ru: Valek Filippov uk: Yuriy Syrota * Updated translations from CVS: fr: Christophe Merlet (RedFox) es: Antonio de la Torre 0.6.5 2001-02-25 Sydney Tang * preferences.cc: Added support for displaying the contents of a theme's REAMDE file. * Added icons3d and space themes by Nicholas Curran . * Added Japanese translation by Taku Yasui . 2001-01-02 Sydney Tang * preferences.cc: Added map_preview_update_initialize_players() and modified map_preview_update() so that player starting positions are indicated on the map preview pane. Changed the dimensions of the preview pane. * preferences.cc: Modified append_page_theme() so that a GtkText widget is included on the Theme selection page, and so that ThemePreviewPixmap is properly initialized on realization of ThemePreviewArea. Modified theme_preview_update() to clear the theme preview pane and update the text in the textfield with some placeholder text. 0.6.4 2000-12-30 Sydney Tang * preferences.cc: in build_file_list_from_directory(), replaced a call to gnome_datadir_file() with a call to preferences_get_data_file(). * Finished coding for map preview. * ui.*: changed realize() and expose_event() to handle arbitrary drawables, instead of only the main GtkDrawingArea and it associated objects. This was necessary to enable drawing to the map preview pane. Added UIDisplayInterface struct for use with the data argument for realize(). * map.cc: in GameMap::populate_map(), set the RepaintRequired flag for all map squares. Removed consequently redundant code from InGameState::draw_maze() in ui.cc. * preferences.cc: Changed map_preview_update() and append_page_map(). 2000-11-12 Sydney Tang * Moved map selection to its own property page. Added map preview pane. (Modified preferences.cc) * Moved theme selection to its own property page. Added preliminary UI components in support of a theme preview pane in the Preferences dialog. (Modified preferences.cc) * Modified src/Makefile.am so that the configdir variable is passed as a preprocessor definition. Changed the method of locating datafiles in preferences.cc so that if gnome_datadir_file() fails, it will search in the configdir. * Made the construction of the Preferences dialog in preferences.cc more modular by splitting up create_preferences_dialog() into smaller functions. * Added Preferences option to enable/disable appearance of the Match Status dialog inbetween rounds. (Changed preferences.*) * Added Preferences option to enable/disable case-sensitivity of player controls. (Changed preferences.*) * Renamed *.h files to *.hh to get better C++ syntax highlighting in emacs. * Default theme bomb sprite refined by Topi Maenpaa . 2000-09-27 Sydney Tang * Fixed segmentation fault bug that occurred when selecting the Quit Game menu option while a game is in progress. In ~GameStateMachine(), added a call to terminate_current_state(), which will ensure that the timeout handler is removed. Due to its nature, this bug occurred only when the program shutdown time was large relative to the timeout delay. 0.6.3 2000-09-17 Sydney Tang * Animation change: Bomb fuses flicker for active bombs, and glow with a steady light for triggerable bombs. Also, number of shatter frames for Bricks and Power-Ups increased to 3. Changed bomb.png, brick.png and powerup.png. Changed Bomb, Brick and PowerUp classes in map.* to make appropriate use of the new frames. * Bomb behaviour change: when a player gets a Trigger Bomb power-up, any bombs already dropped do not become triggerable. Changed the Bomb class in map.* to include a triggerable flag which is set when an instance of the class is created. * Added 4 new customizable parameters: bomb chain reaction delay, explosion duration, brick shatter duration, and power-up shatter duration. Changed preferences.* to enable new preferences options and changed map.* to include functions that allow the adjustment of the above parameters. * Added "Defaults" button to each property page to allow the user to revert settings for each page to their default values. Changed preferences.cc. * Added a Continue button to the Match Status dialog as the default interface option. Changed functions in ui.cc, preferences.*, input.cc that related to match_status stuff. * Cleaned up layout of preferences dialog by using GtkFrames. Added several build_frame_X() functions to preferences.cc and changed the function preferences_create_dialog() to use these. 0.6.2 2000-09-05 Sydney Tang * Added theme selector option menu to the Preferences dialog. Added theme selection code and functions to ui.*, preferences.*, and game.*. * Changed map selection interface to use an option menu. Changes were made to ui.*, preferences.*, and game.*. * Improved brick and power-up destruction animation by adding an extra frame. * Fixed some memory leaks and other memory allocation problems in ui.cc and preferences.cc. * Added Portuguese translation by Gustavo Maciel Dias Vieira * Bug fix for internationalization: added '#include ' to ui.cc and preferences.cc so that translated strings appear properly. Reported by Gustavo Maciel Dias Vieira. * Made spec file changes submitted by Gustavo Maciel Dias Vieira: RPM now has build root, binary stripping and translation installation. * Slight performance enhancment by parsing map files only once instead of at the beginning of every round. A pre-parsed template map is created in memory and is used thereafter at the start of each round until a new map file is selected. Changes were made to map.*, preferences.*, and game.*. * Added context-sensitive help to the Preferences dialog by connecting a signal handler to the "help" signal. Added preferences_help() to preferences.cc. Also rewrote the html files in doc/C. 0.6.1 2000-08-25 Sydney Tang * Bomb blast bug that was fixed in 0.5.0 was accidentally put back in, so it had to be fixed again. 0.6.0 2000-08-25 Sydney Tang * Animation improvement: sprites animate with multiple frames. Redrew most of the graphics, and changed the movement-related code in the Player class. * Changed directory structure for storing map files and pixmaps, and added preliminary support for pixmap themes. * Fixed bug that would cause a crash after switching to larger map. * Fixed floor tile overlap glitch that occurred when a player died while standing partially between squares. * Fixed Bomb explosion delay bug that occurred when changing the animation timeout value. The bomb explosion delay wasn't being updated accordingly. 0.5.1 2000-08-14 Sydney Tang * Added Match Mode features: a preferences option to change the number of wins per match, dialog windows that describe the outcome of each round, and status bar indicators to show the current match status. To implement this, changes were made to game.*, ui.*, input.*, and preferences.*. * Added preferences option to adjust the probability of getting individual power-up types: modified preferences.cc and PowerUp class in map.*. * Code clean-up: added some pointer casts to fix cast errors that occur with some compilers (reported by Stefan Kost ). Made some more configure.in refinements along the lines of 0.4.3 (which see). Changed the virtual base class destructors to virtual destructors. * Added auto-fire option for dropping bombs. Implemented by a few changes to input.*, preferences.*, and the InGameState class. * Added French translation by Dominique Hazaël-Massieux (see po/ChangeLog). 0.5.0 2000-08-03 Sydney Tang * BIG CHANGE: Added smooth animation so that moving sprites can be located partially between squares. Rewrote sprite drawing routines in ui.* and movement routines in map.*. * Added Animation page to preferences. * Added Extra Speed power-up: made a few changes to the Player and PowerUp classes. * Fixed bug wherein a bomb blast would only kill the bottom-most player in the stack of players on a square (changed Player::die() so that a player is not moved to the top of the Entity stack). 0.4.3 2000-07-31 Sydney Tang * Fixed configure.in to fail if gdk-pixbuf not found. Reported by Tim Bannister * Transferred movement-handling code out of class Player and into class Entity and also made some refinements to it. * Added Kick Bomb power-up: added a few new methods to Player, Bomb, and GameMap classes. 0.4.2 2000-07-27 Sydney Tang * Auto-pause when game window loses focus. In ui.cc, added a signal handler for the main application window having a change of focus. * Refined the wall-perimeter feature so that the user has the option to turn on only the top wall, thus saving screen area. Made a few minor changes to the GameMap class and to preferences.* to implement this. * Added Trigger Bomb power-ups. Made some changes to the Player and GameMap classes. 0.4.1 2000-07-23 Sydney Tang * Feature addition: added a page to the preferences dialog to allow the user to customize the following: initial number of bombs per player, initial blast radius of bombs, probability of a power-up appearing when a brick is destroyed, and the time delay before a bomb explodes. * Reformatted the General page of the Preferences dialog. * Added option to have mazes auto-surrounded by walls. This prevents the problem where player sprites' heads go off the top of the display when they are at the top edge of a map. 0.4.0 2000-07-21 Sydney Tang * Completed preferences code. The preferences dialog is now fully functional except for the Help button, and user settings are saved via the gnome_config routines. * Bug fix for handling of incorrectly formatted map files. Game initialization is aborted and a warning dialog is shown. 0.3.4 2000-07-18 Sydney Tang * Fixed Game Over detection to allow for a stalemate if the last players die simultaneously 0.3.3 2000-07-18 Sydney Tang * Added help documentation 0.3.2 2000-07-14 Sydney Tang * Added menu bar and status bar * Created preferences.cc and preferences.h * Cleaned up autoconf and automake stuff 0.3.1 2000-07-07 Sydney Tang * Animation improvements: player sprites can face in four directions and bricks have a shatter animation * Added two power-ups: Extra Bomb and Extra Blast Radius * Gameplay improvement: players can drop bombs while running 0.3.0 2000-06-?? Sydney Tang * Added timeout handlers for animation and sprite update * Added code to render graphics * Added code to handle on-screen sprites * Game is now playable! 0.2.0 2000-06-?? Sydney Tang * Refined game control logic: added state machine and classes to handle game states and transitions between states. * Added keyboard input handling. A hash table is used to look up player actions that correspond to the key pressed. * Added ability to parse text files that specify maze/map layout 0.1.0 2000-05-?? Sydney Tang * Set up a source tree for project, including files related to autoconf and automake. 0.0.1 2000-01-?? Sydney Tang * Started project. Created intitial version of source files. * Wrote platform-independent logic for handling players, bombs, and map