ZEngine Version Log for Version 0.8.5
$Id: changelog.txt,v 1.61 2003/12/31 12:59:36 cozman Exp $

Changes are marked with symbols that describe them:
! is code that breaks backwards compatibility (used after 0.8.0-rc1, previous versions broke compatibility)
* is code that breaks backwards compatibility but for which defining DEPRECIATED preserves compatibility.
+ added features
- removed features
# general changes

(Note: Depreciated code (that marked with a *) is likely to disappear completely at the next major version.)

0.9.0
    ! Removed SetupDisplay/SetupSound and integrated them into CreateDisplay.
    ! Changed error system functions drastically.
    ! Removed (useless) SetDesiredFramerate and related functionality.
    ! Removed all "depreciated" code.
    ! Removed Doxygen documentation comments.
    ! Changed several member functions with obsolete names.
    + Introduced severity option to error reporting for better error logs.
    + Added HTML output option to error system.
    + Added XML resource file support via TinyXML (ZEngine::SetResourceFile, ZEngine::GetStringResource, etc)
    + Added ZAnimation class.
    + Added ZAnimTest, test of ZAnimation.
    # Reworked small internal portions of API.
    # Changed several tests to support new resource file support.
    # Turned off warnings for zlib files in VC7 and DevC++.
    # Switched to updated zlib 1.2.1.
    # Changed data files to binary format in CVS, fixing problems with some data files.
    # Forums now at http://sourceforge.net/forum/?group_id=62098
    # OpenFromImage Alpha Fix (thanks to Stinus Petersen)
    # ZImage copy constructor width/height fix.
    # Fixed ZImage crash on missing image.  ZFont crash fix relys on SDL_ttf 2.0.7
    # Switched ZImage stretch code to GL_LINEAR.
    # Moved ZLib for convinience of non-MSVC build processes. (fixing #include "../zlib/unzip.h")
    # Fixed display format switching bugs with title and icon.

0.8.5
    + OpenFromZip code added for ZImage,ZFont and ZSound.
    + Zlib/Unzip code added directly into ZEngine.
    + ZEngine::MButtonPressed added in addition to L & R button.
    + ZRect overload for ZEngine::MouseInRect.
    + ZE_main as new entrypoint instead of main, ZE_main entrypoint allows ZEngine to initialize PhysFS and release itself.
    + New Draw,DrawRotated, and DrawClipped overloads with vertex coloring parameter for advanced needs.
    + Addition of Dev-C++ project files and more Dev-C++ support.
    + Addition of DrawClipped and DrawClipped example in ZImageTest
    + New limited SDL graphics backend for platforms without OpenGL.
    - Removal of PhysFS.
    - Removal of VC6 project files and official support.
    - Removal of SDL_net support in favour of external library.
    # Sweep of non-used legacy code.
    # Updated docs and dependencies to refer to latest SDL (1.2.6).
    # Fix crash in drawing blank string with ZFont.
    # Tests modified to show off loading of compressed files.
    # Moved image,sound,music and font loading code from legacy ZEngine location to respective classes.
    # Tiny optimizations within newer ZImage code.
    # Changed ZImage stretching to floating-point (irregular screen sizes, emulation).
    # New linux build system (by Atani).

0.8.4
    ! Removed Rand* functions from ZEngine and replaced with overloaded Rand.
    ! Moved versioning information and changed format.
    * Changed ZEngine accessor members (Width-->DisplayWidth, Height-->DisplayHeight, and BPP-->DisplayDepth).
    + Added more information on dependencies and obtaining them.
    + Added comment & newline support to ZConfigFile.
    + Added particle system example program.
    + Added simple particle system implemented on top of base.
    + Added entire base particle system, templated, and designed for expandability.
    + Added random generation classes, for if an object needs it's own random stream.
    - Removed mt19937ar.h/cpp rand system (replaced with ZE_ZRandGen.h/cpp)
    # Fixed multiple warnings given by g++ for cleaner linux compilation.
    # Disabled warning C4702, unreachable code, this was to fix a build problem in newer versions of VC++.
    # Reworked changelog to contain symbols.
    # Changed implementation of parts of ZImage for tiny optimization.
    # Fixed tiny problem in ZImage use of alpha.
    # Changed default font rendering to blended, much better results.  Also added alpha parameter.
    # ZEngine no longer forces use namespace std, library references prefixed with std::.
    # Revised all source, cleaned up various areas.
    # Changed way event hook is implemented, more control, should be threadsafe. (needed for Gewi 0.2)

0.8.3 
    ! Removed ZObject inheritance hierarchy and made classes inheritance-safe.
    + Added ZImage<-->ZImage drawing in OpenFromImage.
    + Added ZImage::Draw(int,int) and ZImage::DrawRotated(float,float,float).
    + New ZRect constructor (construct from SDL_Rect).
    + Added Random Number generation to the ZEngine singleton.
    + Added floats to ZConfigFile.
    + Simple ZServer and ZClient classes using SDL_net.
    + Added loading of fonts from withen an archive via PhysFS (needs SDL_ttf 2.0.6)
    # Fixed project files for people who don't want to add ZEngine to their path.
    # Altered layout of some of the header files to hopefully be more readable.
    # Fixed minor bugs in ZImage, allowing Gewi to work properly.
    # Changed behavior of ZImage::Bind to work with blending.
    # Fixed timer problems when used before ZEngine::Update.
    # Updated ZError for ZServer & ZClient.
    # Fixed ZImage::SetColorKey. (thanks to Kevin Watters)
    # Changed Macros in ZE_Utility to functions.

0.8.2
    + Added "desired framerate" functionality into the test programs.
    + Added "desired framerate" code to ZEngine.
    + Added ZImage::SetAlpha and example in ZImageTest.
    + Added complete error handling system to ZEngine including internal ZError class.
    + Added ZEngine::SetEventFilter.
    + Changed ZEngine::CreateDisplay to return a boolean value.
    + Added copy constructor to ZImage.
    + Added const modifier to members of ZImage,ZTimer,ZMusic,ZSound,ZRect,ZConfigFile,ZFont and ZError.
    # Fixed the DisplayFormat + Dithering Bugs in ZImage / SDLGL_Util.
    # Fixed problems setting bit depth in OpenGL.
    # Fixed several documentation problems.
    # Updated examples to use newer features and check for errors.
    # Fixed OpenGL color bleed in ZRect.

0.8.1
    + Added legal information for developers.
    + Fixed VC7 to build without PhysFS by default.
    + Added small notice into /lib directory.
    + Added VC6 files based on updated VC7 files, courtesy of Sean.
    + Added links to the tutorials.

0.8.0
    + Added Surface Loss Protection.
    + Utilized Surface Loss Protection in ZImageTest for a demo.
    # ZEngine now builds on FreeBSD.
    # Updated copyright.

0.8.0-rc4 (what rc3 should have been)
    - Removed switch option from tests due to surface loss.
    # Fixed ZImage::SetColorKey for new Attach behavior.
    # Fixed ZMusicTest GL screen error if music fails to open.
    # Fixed VC7 "Release" Project files.


0.8.0-rc3
    + Fixed memory leak when using ZImage::Attach, and in ZFont.
    + Updated ZEngine web info. (mostly in rc2)
    # Fixed time based movement and some compile time warnings in ZRectTest.cpp.
    # Added gamedev.net to thanks.txt.
    # Fixed documentation in ZE_ZImage.h

0.8.0-rc2
    ! Changed ZEngine::UpdateScreen to ZEngine::Update
    + Added information to ZEngine.h for Doxygen front page.
    + Added force into makefile options.
    # Added path stripping to ZEngine.linux.doxygen.


0.8.0-rc1
    ! Changed behavior of 0 as bpp argument in ZEngine.
    + Fixed makefile to be much more portable and added config.
    + Added Time based movement to ZRectTest.
    + Added readme.
    # Changed ZRect to use floats.
    # Updated rationale in licensing.txt. (fixed)
    # Fixed loads of doxygen errors and documented all undocumented members.

    
0.7.8
    + Added ZRect::Draw using OpenGL.
    + Fixed ZRectTest to use new ZRect.
    + Added ZImage rotation and 2 forms of stretching using OpenGL.
    + Added ZImage::Flip.
    + Added Linux makefile for new OpenGL code.
    + Added new means of keyboard input, and key repeat enable/disable code.
    # Fixed warnings in Test programs.
    # Added some testing to ZImageTest of new stretching.

0.7.7
    + Changed behavior of core ZEngine class methods to reflect new OpenGL behavior.
    + Added notice to licensing explaining license choice.
    - Eliminated certain SDL specific functions, no longer needed with OpenGL render target.
    # Completely removed old SDL_Image.h and replaced with what had been SDL_ImageGL.h.
    # Documented new ZImage class as well as ZConfigFile's ZCF_Variable and ZCF_Section.
    # Fixed memory leak and general failure in new ZImage::OpenFromImage.
    # Simplified SDL_GL Initialization.
    # Shortened most lines to reasonable screen width.

0.7.6
    + Added ZImageGL, still in testing phase.
    + Followed up major API changes from 0.7.5 with whole new series of changes:
        (API from 0.7.x at least 25% rewritten)
    + Added new /external files for SDL_GL* extensions
    + Added Macros in ZE_Macros.h
    - Removed ZE_DataPtr.h
    # Rewrote warnings in Sound,Music,Font and Image classes.

0.7.5
    + Added Beginnings of OpenGL Render target
    # Major API changes (removed "Get" before accessors and changed some functions in ZEngine)
    # Converted all tabs to spaces.
    # Added CVS lines to files for date tracking.
    # Fixed file layout for CVS and reuploaded files to CVS.


0.7.4
    + Added doxygen script for linux, and renamed old doxygen script.
    + Added warnings in ZImage for when the display format fails.
    + Added makefile for Linux build support.
    # Modified behavior of ZImage::Attach and changed ZImageTest to use it.
    # Renamed old makefile to makefile.mingw32
    # Fixed problem in ZImage::SetAlpha when failure occured.
    # Completely rewrote ZConfigFile to avoid problems with STL map.
    # Fixed problem in ZImage with transparency.


0.7.3
    + Added ZRect class, and ZRectTest.
    # Globally revised source variable naming standards.
    # Fixed Error Logging in ZImage.
    # Added SDL_DisplaySurface and SDL_DisplaySurfaceAlpha calls to speed up blitting in ZImage.
    # Fixed bug in ZConfigFile that caused a NULL file to be closed.
    # Several Documentation errors corrected.


0.7.2
    + Added makefile for Cygwin and Mingw32
    # Fixed small source problem in PhysFS handling of non-supported types.
    # Removed AFL license, and switched to BSD-style license.

0.7.1
    # Changed directory layout.
    # Changed source files to compile without PhysicsFS.
    # Added newline to end of all source files.

0.7.0
    + Added support for PhysicsFS.
    + Added ZConfigFile.
    # Added ZConfigFile for test programs.
    # Changed slash direction in example programs (fixed non-windows problems).
    # Updated all examples to be cleaner style and use more features.

0.6.3
    + Added IsLoaded method to ZSound,ZMusic,ZImage and ZFont
    + Added music.ogg warning to ZMusicTest.
    # Stablized directory issues in distribution.
    # Added file-level documentation for doxygen in src directory.
    # Updated to specify SDL 1.2.5 compatibility.
    # Minor fixes in Doxygen settings.

0.6.2
    + Updated License to APL 1.1 and all files with it.

0.6.1
    + Added Mouse Example
    + Added more test data and information on where data came from
    - Removed Ogg file from distribution.
    # Changed names of the libraries.
    # Changed Email Address to james@conceptofzero.net

0.6.0
    + Added Authors.txt and Credits.txt
    + Added VC7 Non-Debug Projects.
    # Updated all documentation (including doxygen docs).
    # Rewrote Licensing.txt
    # Fixed a bug occuring in ZSound and ZFont test programs.
    # Proofread and fixed some documentation errors.
    # Switched LGPL.txt for APL.txt

0.5.0
    + Added APL Notice to source files.
    + Added ZSound and test program.
    # Updated source guidelines file for APL licensing.
    # Updated examples to have similar coding guidelines.

0.4.0
    + Added Source Guidelines file.
    + Added ZMusic and test program.
    - Removed LGPL licensing messages from source.
    # Fixed a small keypress checking error in fullscreen mode.
    # Rewrote buggy ZImage::Attach code that was affecting the test program.
    # Fixed USE_SDL_MIXER and USE_SDL_TTF bugs in ZEngine.
    # Redesigned entire data storage system (aka ZDataPtr classes)

0.3.0
    + Added ZTimer and ZFont classes and test programs.
    + Added alpha blending to tests.
    # Fixed major hardware setting bugs in ZImage and ZEngine.
    # Reorganized Directory Structure and VC7 Project Files

0.2.0
    + Doxygen Documentation and LGPL license addition
    + Added ZImage, and test program.
    + Designed ZObject class with virtual destructor.
    # Fixed bugs throughout core of ZEngine and changed methods used to keep static vectors of data.

0.1.0
    Initial ZEngine Proof of Concept, core ZEngine class.