... ChangeLog is not up to date... 21-Feb-2005 by Matthias Braun - fixed 2 more endianess typos - added more sanity checking to prevent cheating - fixed typo in NetMessageEncoder which resulted in TerminalCommands being sent out to clients in server hosting mode - more cleanups all around the place 15-Feb-2005 by Matthias Braun - fixed typo in UnitIniSyncMessage packet, had to increase network protocol version because of that - improved parsing of , separated list for masterservers. it's robust against spaces now 5-Oct-2004 by Matthias Braun - more cleanups - fix dedicated server not updateing internal masterserverlist - replaced SDL_net with custom socket wrappers 30-Sep-2004 by Matthias Braun -BIIG cleanup: lots of endianness work in the network packets (only very few is missing) rewrite of Multi/Opcode Encoders/Decoders Removed UnitID class and replaced with a simple uint16_t Changed UnitList to be a std::map Fixed several possible bugs on the way Lots of random cleanup in Vehicle and UnitInterface code 15-Sep-2004 by Matthias Braun -more warning fixes for gcc3.4 -made PlayerInterface lockable, so that the InfoThread should be threadsafe now -server sends quit to masterserver now when exiting 30-Jun-2004 by Matthias Braun -lots of warning fixes -improvements to the masterserver code 04-Jun-2004 by Matthias Braun -applied KROM_X's patch, but revised the mainloop parts by moving handleSDLEvents to NetPanzer/System. 07-Mai-2004 by Matthias Braun -started work on new serverbrowsing window -nearly eleminated deprecated UtilInterface class -dropped incomplete editor. (There's flexlay now) 04-Mai-2004 by Matthias Braun -fixed some gcc 3.4 issues and warnings -fixed some errors where nonpacked classes where used inside packed datastructures -fixed some bugs in IOFileStream classes (no sync when destructing) -added new INIFile parser to replace the xml code/congigfiles -cleaned up pathfinding code a bit in preparation for further experiments 18-Mar-2004 by Matthias Braun -integrated masterserver support into the dedicated server 11-Mar-2004 by Matthias Braun -started work on a serverconsole 8-Mar-2004 by Matthias Braun -fixed a bug in colortable saving which I introduced with my last commit -added timestamp to serverconsole and cleaned related code a bit 4-Mar-2004 by Matthias Braun -applied a bunch of endianess patches from Hollis Blanchard -added doxygen comments to Endian.hpp and did a few other fixes/style improvements -tried to fix problems on alpha64 build and made ReadFile::read and FileWrite::write return exceptions 1-Mar-2004 by Matthias Braun -applied some fixes to Jamfiles (thanks Hollis Blanchard) 21-Feb-2004 by Matthias Braun -added a mapcycle variable to the server config. -fixed a bug in map loading while mapcycling on the client -changed some keybinding (m for minimapview, disabled some obsolete views) 01-Feb-2004 by Matthias Braun -added a jam rule to create doxygen documentation -implemented scrolling in netpanzeredit mapview 19-Jan-2004 by Wolfgang Koller -Fixed WinnerMesgView and RankView so that they now display the correct colors 18-Jan-2004 by Wolfgang Koller -Changed the ServerBrowser so that it now really supports the query-timeout -It's now possible to scroll with the arrow key of your keyboard -WinnerMesgView now also uses the colors 17-Jan-2004 by Wolfgang Koller -Each player now has a color (defined in PlayerState) -Minimap uses that color to display captured objectives and units -Rank list now uses that color to display statistics 16-Jan-2004 by Matthias Braun -rewrote the SDL_Video code and moved it into netpanzer dir -initialize SDL_net at application start instead of when network is used first. This simplifies things and fixes a bug in lobby view on windows. -more work on the jam build rules 12-Jan-2004 by Matthias Braun -added netpanzer icon and jam rules to install icons 11-Jan-2004 by Matthias Braun -implement possibility to set DESTDIR for installation 10-Jan-2004 by Matthias Braun -implemented tiletemplate view in editor -fixed several bugs and problems in the editor 08-Jan-2004 by Matthias Braun -hacked a quick connect option into netpanzer, so that external tools can easily invoke netpanzer to join directly on a specific server. (Maybe some commandline freaks also prefer this method...) 05-Jan-2004 by Matthias Braun -server browser works so far -converted yet another array like class in ProjectileInterface to std::list -make IRC lib abort earlier if server address can't be resolved 04-Jan-2004 by Matthias Braun -started a new IRC library -started a commandline server browser tool 21-Dec-2003 by Matthias Braun -rewrote some parts of the UnitList and Unit synchronisation code 10-Dec-2003 by Matthias Braun -fixed crash when target unit of an attacking unit was destroyed too early 05-Dec-2003 by Matthias Braun -added network paket debugger class -removed some more unused code from the Surface class 04-Dec-2003 by Matthias Braun -eleminated usage of cGrowList class and replaced it with std::vector 01-Dec-2003 by Matthias Braun -eleminated a few more valgrind warnings -converted an ArrayTemplate in ObjectiveInterface to an std::vector 29-Nov-2003 by Matthias Braun -fixed wrong read in blitWorld when we're rendering to lower right edge of the map. 28-Nov-2003 by Matthias Braun -converted UI classes to use SDL_Surface 28-Nov-2003 by Michel Metzger -first release of the new UI lib. -add a temporary test panel to the game (F12) 26-Nov-2003 by Matthias Braun -made scrolling in tilesetview working correctly -template loading and saving in the editor should work now -started working on map rendering code for the editor and future netpanzer versions 24-Nov-2003 by Hankin Chick -created IRCLobbyServer, so IRCLobby should work by itself. -fixed repeatitive mouse move/dragged messages even when mouse didn't move -added scale/shade/dotsize buttons on the minimap 24-Nov-2003 by Matthias Braun -converted the SelectionList to std::vector, also removed limit of maximum select units while doing this. -eleminated the String class and replaced it with std::string -eleminated the FileList class and replaced it with std::vector 22-Nov-2003 by Matthias Braun -big reorganisation. Created several real libs in the lib directory and moved some stuff inside NetPanzer directory. 21-Nov-2003 by Matthias Braun -Applied a patch by Michel Metzger (metzger@essi.fr) which makes it possible to select the location where built units move. -added a possibility to use custom config files. This makes it possible to spawn several different bots or servers on the same user account. -adding new tiles to Tileset works now in editor 20-Nov-2003 by Matthias Braun -removed lots of remaining nonused code handling with UDP networking -convert PlayerStats to use STL -small robustness fixes for network -only enable the signal handling for clean shutdown, when not compiling in debug mode -added sound configuration variables -removed stopIRC argument. No need to overly complicate commands. There already is sendIRCMessageLine. -some fixes for valgrind complaints -fixed some bugs where the original netpanzer authors used memmove?!? instead of = to copy objects. 19-Nov-2003 by Matthias Braun -several robustness fixes to editor tileset code -some small UI improvements for the editor 18-Nov-2003 by Matthias Braun -added slovakian flag by Ales 12-Nov-2003 by Matthias Braun -fixed a bug where the server browser wouldn't display the correct usercount for servers -added configure options, for the case where libs aren't installed in the default dirs 11-Nov-2003 by Matthias Braun -fixed irclobby view to not crash on refresh button, when connection is broken -report exceptions in the irclobby view -fixed serveraddress view to not contain the ok and abort buttons -make irc lobby change nickname when the player changes it's name -put a message on screen, when palettes are calculated 07-Nov-2003 by Matthias Braun -fixed HOM effect while joining server -added new poland flag by Bartosz Fenski 06-Nov-2003 by Matthias Braun -cleanups and imporvements to the IRC Lobby code -added a callback ability to input lines, when enter is pressed -removed chat button and make chat happen on return key -eleminated usage of DoubleLinkList template in PowerupInterface (using std::vector now) 05-Nov-2003 by Matthias Braun -added manpage contributed by Bartosz Fenski 25-Oct-2003 by Matthias Braun -removed support for .til files and converted them to .bmp -tried to make .pak and .bmp loader endian safe 23-Oct-2003 by Ivo Danihelka -implemented respawntype="Random" parameter 23-Oct-2003 by Matthias Braun -make dedicated server start automatic. Only the configuration file is read, no need interactively do settings anymore. -Documented dedicated server settings in README file -Changed exception class to inherid from std::exception -fixed signal handler to really shutdown the app 22-Oct-2003 by Ivo Danihelka -split GameManager to BotGameManager, DedicatedGameManager and PlayerGameManager -bot can be started from command line (-b option) 21-Oct-2003 by Matthias Braun -fixed the missing unit pictures in build menu 14-Oct-2003 by Matthias Braun -fixed crash when client disconnects or connection is lost 13-Oct-2003 by Matthias Braun -fixed wrong const in Surface class -don't allow copy constructing of surface class -fixed some views which could still be moved outside the screen 12-Oct-2003 by Matthias Braun -Fixed a bug in iXY classes. -Added note about black screen to readme -fixed bug where MiniMapView was drawing outside it's view space, leading to crashes. -add signal handlers to make it abort more nicely in error case (don't stay in mouse/keyboard grab mode) -fixed a series of bugs where I accidently passed a Surface pointer instead of a Surface to the blit functions. C++ was evil enough to use the Surface::Surface(bool) constructor to create a new Surface instead of getting me an error. -fixed another crasher when outpost was selected from a strange position 11-Oct-2003 by Matthias Braun -added a release script 05-Oct-2003 by Matthias Braun -did some more code cleanup. all the Rect and XY classes cleaned up a bit and finally removed the codewiz.hpp file. 04-Oct-2003 by Matthias Braun -rewrote the config system and completed config saving and loading -fixed bug where minimap could be moved outside screen 02-Oct-2003 by Matthias Braun -did refactoring work on the surface/DDHardSurface interfaces. DDHardSurface is now called ScreenSurface, and is used in 99% of all cases where we need to access video memory. -screen is defined in ScreenSurface.hpp now. Consequently no code in the Lib subdir has the ability to know details about the screen which makes the separation alot cleaner. -Removed some unused code 24-Sep-2003 by Matthias Braun -converted lots of code to use physfs (not completely done yet) -removed the automake system -added a jam build system -added README 23-Sep-2003 by Ivo Danihelka -Added bots, press 'b' for enable 22-Sep-2003 by Matthias Braun -Commited automake stuff from Ivo and merged his autoconf script with mine -small cleanups/compile fixes -fixed all warnings (and did some smaller cleanups again) 21-Sep-2003 by Ivo Danihelka -solved the higher resolutions problem in MainMenu -load/save GameConfig in XML format 18-Sep-2003 by Matthias Braun -fixed the Choice-reset problem -removed lots of options from visualsview -changed sound back to 8 channels at 22k, no need to blow too much resources away... 16-Sep-2003 by Matthias Braun -randomly fixed stuff in the very ugly libview code (also removed several unused files there) -added a statechangedcallback to Choice and CheckBox components -added the NoCopy class for cases where you want to forbid assignment and copy-construction -Started save/loading capabilities for GameConfig -added a resolution and fullscreen setting to the Visual Options 16-Sep-2003 by Ivo Danihelka -Alt+Enter don't start chat now -'d' display damage -cleaning code with valgrind 15-Sep-2003 by Matthias Braun -removed the GetConnectionTypeView menu. We're only using tcp/ip. -made the Join view working again -made lobbyview scrolling topdown -made the app report connection errors 14-Sep-2003 by Ivo Danihelka -converted sdlsound to use physfs, Mix_LoadMUS_RW is not used yet 14-Sep-2003 by Matthias Braun -applied sound patch by Ivo Danihelka (thanks alot) -added code to construct SDL_RWops in physfs files 12-Sep-2003 by Matthias Braun -use the physfs for the colortable cache now -removed lots of unused code from Surface class -removed the screenshot function (this allowed to remove the BMP saver too). because there are external screenshot tools around. 11-Sep-2003 by Matthias Braun -removed more win32 specific code -removed #ifdef USE_SDLs, the code is enabled by default now -added a new commandline parser -smaller fixes/cleanups 10-Sep-2003 by Matthias Braun -more random cleanups -more cleanups so that the Stub directory is empty now -fixed the bug where the TileEngine didn't correctly draw the last line -removed the strange PObject class (still some utility classes which formerly dealt with PObject are there and are - as before - quiet useless). The long story: It seemed like PObject was planed as some generic base type which provided a uniform interface to functions like comparing 2 objects. But since the only function is_equal in PObject wasn't virtual, and since it was never used I decided that this stuff is quiet useless. -removed most of the win32 specific code 9-Sep-2003 by Matthias Braun -worked around issues with the block allocator code for Particl2D (new operator is overloaded, but laste C++ draft doesn't allow to return 0 from such an overloaded new.) I added exceptions and lots of try {} catch{} blocks, let's hope I didn't miss something. -eleminated isValidPtr, Util.hpp and GOTTA_HAVE_IT from codewiz.hpp 8-Sep-2003 by Matthias Braun -added some basic music plying support (all files in sfx/music are played in random order, so simply put some .mp3 or .ogg there) -enabled Tile engine code again -fixed some bugs in the blitting routines -fixed some more small bugs I introduced while porting -Added new keyboard handling code -fixed lots of code that assumed a key scancode is "only" a char -added possibility to switch windows/fullscreen mode on ALT+ENTER -fixed some smaller bugs in Splitpath and FileUtil -added an fps counter to the info window -lots of small fixes in the network code -applied a patch from Raphael Bosshard which fixes a few warnings 7-Sep-2003 by Matthias Braun -removed NetMessageLog class (because it only contained shit ;-) -slightly changed NetworkServer and NetworkClient interfaces -Added a SDL_Net version of the network code -cleaned up socket code alot, by removing all this UDP code (a complete new and clean network code will be needed sometime anyway...) -more cleanup in the network code -added a client version of the SDLNet code -replaced all FUBARs with throw Exception, so I could remove terminate.cpp 6-Sep-2003 by Matthias Braun -added a unix implementation of _findfirst, _findnext and _findclose -removed some getDrive functions, was never used and supporting drives in unix is hard :) -we still need a big commit to replace all \\ in paths with / -added a fastly hacked configure script (no autoconf yet) -randomly replaced some \\ in pathnames with / -More news on my crusade against codewiz.hpp: *removed some unused stuff from codewiz.hpp and terminate.cpp *added new but alot simpler logging functions to Log.hpp -replaced all \\ in paths with / (gotta love sed). Yes, I made sure that I only change paths (I looked at the list of stuff I change, before applying the sed command) -added Stub for SDLSound implementation -added a basic SDL Event loop -fixed more small issues => the main menu is displayed now and the Exit and Options buttons work :) -added a unix verison of _splitpath -some code cleanups: *removed JoystickInterface completely *removed netPanzerGlobals.* *removed netPanzerMain.* ------------ prior changes (not complete) ............ -Added very basic makefile -removed #include "Stdafx.h" from all source files, gcc doesn't have precompiled headers like msvc. -Added some missing include in several files -Removed strange double-include protection from codewiz.hpp -Removed DOS-compilation stuff from codewiz.hpp -Renamed TRUE to true, FALSE to false, BOOL to bool and removed the definitions for them from codewiz.hpp -Removed BYTE,WORD,DWORD definitions from codewiz.hpp these are already defined in Types/LibTypes.hpp -Commented memset assembler routines in codewiz.hpp -removed special WATCOM/MSVC #pragmas in lots of places in codewiz.hpp -changed type of PALETTE_LENGTH to size_t -added a SWAP function to codewiz.hpp, couldn't find one elsewhere in the project. Also added a SWAP function with an explicit temporary variable which is used at some places in the project (does this bring speed?) -made destructor of Surface, Component, SpritePacked virtual -changed usage of zeroMem to memset -use memcpy instead of memcpyB -Added a stub of RDTSC function to cTimeStamp.cpp, need an implementation there. -Added a dummy GameTemplateView.hpp. Needs investigation why the Lib includes files from the main game. -copied KeyScanCodeDefs.h from main game -removed #if _MSC_VER > 1000 #pragma once #endif randomly from several files... -removed /= (const float&) in fXYZ class (/= (float) is enough) -gave up with the Lib/Main Game dependencies and added include paths to the main game in the Makefiles... -removed "aliasdef.h" from several files (it contained yet another definition of a boolean type...), several renames again :-/ -added int return type to getUnitInfoDrawLayer in GameConfig -changed iRect constructor to use const types -disabled all joystick code -casted several floats to ints in ColorTable.cpp to avoid warnings -Commented out several uses of _splitpath (which is win32 only) at FileList.cpp -fixed some upper/lowercase errors in #include statements -commented out code that uses _findfirst in Surface.cpp and PackedSurface.cpp, this is a win32 only function -casted some floats to int in Palette.cpp to avoid warnings -commented out several assembler routines in Span.cpp -removed custom memcpy from Surface.cpp -changed a MessageBox to fprintf(stderr, ...) in Surface.cpp -added implementation of MIN and MAX to codewiz.hpp -renamed stricmp to strcasecmp in UtilInterface.cpp -made some functions in SpritePacked and Sprite const-correct -commented out lots of code in DirtKickParticle2D, because a variable didn't seem to be defined. Did teh same in GroundExplosionParticle -some more const-correctness fixes in GroundExplosionParticle and TrajectoryParticle. -made some functions in WorldViewInterface const-correct, same in ViewCamera -commented out some direct sound code in ParticleInterface.cpp -renamed some occurences of NULL to 0 in ParticleSystem2D -commented out isRolloverEnabled in AbstractButton.hpp, this variable doesn't seem to exist. -removed Lib/loadSaveData.* it wasn't used (some joystick stuff, we wanna remove the joystick anyway).