Bombahman Copyright (c) 2001 Version 0.1.8 Michaël Schoonbrood TheOneAndOnly@MadButch.Com The Butchers Home www.MadButch.com This file contains the history of Bombahman... newest updates are on top. ToDo: - Add kicking - Add throwing - Enable SaveScreenshot code in DDrawLayer (bottom) - Fix problem with players "hanging" when a new game starts. This probably happens because the key is already pressed before the input is checked... - Add score counters and player icons to the sides - Add Move thru wall PowerUp - Add bad PowerUps (switch player, no bombs, slow) - Add a maximum nr to each PowerUp type that can appear on one level. - Stop the fuse sound when a bomb explodes prematurely. This requires a channel to stop, so I should try to use more channels for 1 sound effect. - Add a frame for a bomb being hit by an explosion. - Add a delay to the bomb chain reaction. Maybe a command that set's the bomb timer to MAX - 1 frame length or something.. - Check if we can play 1 sound effect multiple times, and stop 1 of them! - Add control redefinition. - Add options (Round length, Enable/Disable some power ups) - Fix ALT-ENTER bug. - Add enemy AI. - Add version checking to SFX and GFX DLL's. - Add positioning code to GetPixelColorAt() in DDrawImage. - Fix a control bug. If more then # keys are pressed the keyboard beeps! And doesn't accept the new input! (Hardware problem!) 25-10-2001 ( Michaël Schoonbrood, Version: 0.1.8 ) - Updated AI code. Players now drop bombs (and try to run away ;) - Gave the AI class it's own log file! Debug code only, should be removed for final version! - Added a GetNrOfBombs() to the Player, so that we can check how many bombs he still has. - Fixed a major memory leak bug! The main Game object was a pointer which didn't get cleaned up after quiting the game. This was the reason why NO destructors where called! - Added code to draw the players at the correct Z-Distance ("in" the level). 24-10-2001 ( Michaël Schoonbrood, Version: 0.1.7 ) - Added GetPixelColorAt() to the DDrawImage class. This method is the best way to get a DWORD with the exact same color as the one on the Image. It's also a quicker way to get the transparent color from position ( 0, 0 ). 23-10-2001 ( Michaël Schoonbrood, Version: 0.1.7 ) - Added a cheat to enable the waiting animation (debug only). - Update the player moving animation speed. - Updated AI code. - Fixed bug with the font not showing up! - Fixed a bug in the SpeedUp Debug code not speeding up the player! 22-10-2001 ( Michaël Schoonbrood, Version: 0.1.6 ) - Added the impatient animation to all players. - Fixed a bug in the movement code (graphics glitch on AI players). 21-10-2001 ( Michaël Schoonbrood, Version: 0.1.6 ) - Added Windowed mode support (ALT-ENTER to toggle)! Very usefull for debugging... - Added IsPowerUp(), IsBomb() and IsRock() functions to the LevelData. 20-10-2001 ( Michaël Schoonbrood, Version: 0.1.5 ) - Added cheats to enable the PowerUps for Player 1 and 2 (usefull for testing); - Added debugging code (on screen stats) for all 5 players. 19-10-2001 ( Michaël Schoonbrood, Version: 0.1.4 ) - Added the Detonator power up (fully working). - Added the Detonator Graphics and Sound FX. - Added multiple player models. 18-10-2001 ( Michaël Schoonbrood, Version: 0.1.3 ) - Replaced all pointer names called ptrPointer with pPointer (new coding style). - Changed some hard coded numbers in the player class into defines (much better coding!) - Added Class predifinitions to a lot of header files and moved the corresponding includes to the cpp files. - Removed all the Packet Queue classes and replaces them by 1 PacketQueue class. - Updated AI code. The AI Controller now knows all the players in the game. - Updated the player code. A player can now directly talk to the AI controller. - Changed the SoundFX code. SoundEffects can now be played multiple times at once. 17-10-2001 ( Michaël Schoonbrood, Version: 0.1.3 ) - Fixed a slowdown bug in the new AI code. 16-10-2001 ( Michaël Schoonbrood, Version: 0.1.3 ) - Fixed a collision bug where the bomb was below a solid rock and the player was 1 position to the right with an offset under 30? - Added Player 3 and made the Handle Input code in the Level class more generic. - Added an AI Controller. - Added all 5 players. Player 1 uses Keyboard and the other 4 are AI controlled! 15-10-2001 ( Michaël Schoonbrood, Version: 0.1.3 ) - Fixed Joystick support. 14-10-2001 ( Michaël Schoonbrood, Version: 0.1.3 ) - Added Joystick support (State based, has to be changed to Buffer based)! 13-10-2001 ( Michaël Schoonbrood, Version: 0.1.3 ) - Added the network code (DPlayLayer). - Added the chat screen! - Fixed a bug with color deformations while blitting with colorkeys. - Fixed a major bug where all frames where being Blitted, instead of FastBlitted. 12-10-2001 ( Michaël Schoonbrood, Version: 0.1.2 ) - Fixed another bug with the explosions (they where not generating correctly!) - Added cheat keys (F5-F8) to add bombs and flames to Player 1 and 2. - Added the "Player # Wins" and Draw text. - Added a restart level key (F12). - Added the Pause code to the game (F1). - Updated FMOD to version 3.40. 11-10-2001 ( Michaël Schoonbrood, Version: 0.1.1 ) - Fixed the explosions (they where stopping other explosions). - Enhanced the movement code... This should be it! - Added Player - Explosion collision. - Added Player 2. It's now playable! - Changed the GameData class. You can now ask for the MoveLeftKey of any controller (the controller is a new parameter) 10-10-2001 ( Michaël Schoonbrood, Version: 0.1.0 ) - Changed the Bomb timer to 3 seconds. - Added the code for the other PowerUps. - Explosions now blow up PowerUps. - Added collision between players and bombs. - Enhanced player movement code (better checks!). - Added PowerUp code, the players now PickUp PowerUps! - Added a sound effect for a PowerUp. 09-10-2001 ( Michaël Schoonbrood, Version: 0.0.9 ) - Added the BLOB matrix to the LevelData. - Changed the LevelData class, it now draws and updates itself. - Moved all the bombs, explosions and exploding rocks ro the LevelData class. - Bombs now explode other Bombs. - Enhanced player movement (near perfect now!). - Added the rest of the bomb explosions. - Added the Bomb reach. - Added the Nr Of Bombs a player can drop. - Added PowerUp generation (on Rock destruction). 08-10-2001 ( Michaël Schoonbrood, Version: 0.0.8 ) - Fixed player movement. - Added Bomb Fuse and Explosion SoundFX. 07-10-2001 ( Michaël Schoonbrood, Version: 0.0.7 ) - Added Player movement. - Added Player collision detection. - Added Bomb dropping. - Added the code that chains an explosion to an exploding bomb. - Added the code that destroyes rocks if hit by an explosion. 06-10-2001 ( Michaël Schoonbrood, Version: 0.0.6 ) - Added new Menu and Game music. - Changed the background a little. - Dropped all the MFC code! Finaly... No more MFC DLL's needed! 05-10-2001 ( Michaël Schoonbrood, Version: 0.0.5 ) - Changed the BLOB class (added bPlayForward, lActiveFrame and fFrameTimer) - Changed the explosion and the PowerUp BLOBs They now loop forward and backward. - Added all the base graphics for the BLOBs. - Added the LevelData. - Added the level generator. A level is now filled with Rocks! 04-10-2001 ( Michaël Schoonbrood, Version: 0.0.4 ) - All layer classes (Audio, Input and Graphics) are now singletons! This way it is no longer necesary to pass their variables to each class that needs to acces them. - Added the rest of the BLOB's (Player, Bomb, Explosion and PowerUp). - Changed the DDrawImage class so that it draws an Error bitmap when the bitmap it should draw doesn't exist. 03-10-2001 ( Michaël Schoonbrood, Version: 0.0.3 ) - Added the Level (non playable, but it draws)! - Changed the transparancy code. If you enable transparancy on an image (surface) then it will always blit with the transparancy flag on. In HaCKeR I was passing a variable that set the flag. But it should depend on what setting the surface has (less error prone). - Added the BLOB class. - Changed the DDrawImage and Graphics class so that they can draw frames. - Added the Rock class. 02-10-2001 ( Michaël Schoonbrood, Version: 0.0.2 ) - Changed the DDraw classes again, they seem to work fine (for now ;). Added SetImgFileName() and SetTransparancy() to the Graphics class. - Added images for the menu options in the start screen. - Added the MainMenu code (Quit now works). 01-10-2001 ( Michaël Schoonbrood, Version: 0.0.1 ) - Added all the reusable classes from HaCKeR. - Changed the DDrawImage functionality. All images will be loaded into an array and will receive an ID. The drawing of the images will be done on that ID. - Added the MainMenu (only F10 works now). 01-10-2001 ( Michaël Schoonbrood, Version: 0.0.1 ) - Started the project... Kick Off!!!!! Total Time: - Drawing: 16 - Coding: 94