diff --git a/changelog.txt b/changelog.txt index 02fd80f..42c796c 100644 --- a/changelog.txt +++ b/changelog.txt @@ -1,223 +1,236 @@ -ZEngine Version Log for Version 0.8.3 -$Id: changelog.txt,v 1.37 2003/07/11 00:07:49 cozman Exp $ +ZEngine Version Log for Version 0.8.4 +$Id: changelog.txt,v 1.38 2003/07/11 20:51:44 cozman Exp $ -As of 0.8.3 changes which may break backwards compatibility are marked with a `!!!`. +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 defining DEPRECIATED preserves compatibility for. ++ is added features +- is removed features +# is changed features 0.8.4 - -Added particle system example program. - -Added simple particle system implemented on top of base. - -Added entire base particle system, templated, and designed for expandability. - -Changed implementation of parts of ZImage for tiny optimization. - !!! Removed Rand* functions from ZEngine and replaced with overloaded Rand. - -Added random generation classes, for if an object needs it's own random stream. - -Removed mt19937ar.h/cpp (replaced with ZE_ZRandGen.h/cpp) - -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. - -Moved versioning information. - -Changed way event hook is implemented, more control, should be threadsafe. (needed for Gewi 0.2) + ! Removed Rand* functions from ZEngine and replaced with overloaded Rand. + ! Moved versioning information and changed format. + * Changed ZEngine members Width-->DisplayWidth, Height-->DisplayHeight, and BPP-->DisplayDepth. + + 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) + # 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 - -Changed Macros in ZE_Utility to functions. - -Added Random Number generation to the ZEngine singleton. - -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. - -Added loading of fonts from withen an archive via PhysFS (needs SDL_ttf 2.0.6) - -Changed behavior of ZImage::Bind to work with blending. - -Fixed timer problems when used before ZEngine::Update. - -Updated ZError for ZServer & ZClient. - -Simple ZServer and ZClient classes using SDL_net. - -Fixed ZImage::SetColorKey. (thanks to Kevin Watters) - -Added floats to ZConfigFile. - !!! 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). + ! 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 ZImage::SetAlpha and example in ZImageTest. - -Added ZEngine::SetEventFilter. - -Fixed the DisplayFormat + Dithering Bugs in ZImage / SDLGL_Util. - -Added copy constructor to ZImage. - -Fixed problems setting bit depth in OpenGL. - -Added const modifier to members of ZImage,ZTimer,ZMusic,ZSound,ZRect,ZConfigFile,ZFont and ZError. - -Fixed several documentation problems. - -Added complete error handling system to ZEngine including internal ZError class. - -Updated examples to use newer features and check for errors. - -Changed ZEngine::CreateDisplay to return a boolean value. - -Added \since option to documentation (Everything after 0.8.0 will be labeled with a version.) - -Added "desired framerate" functionality into the test programs. - -Added "desired framerate" code to ZEngine. - -Fixed OpenGL color bleed in ZRect. + + 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. + + 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. + + 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) - -Fixed ZImage::SetColorKey for new Attach behavior. - -Fixed ZMusicTest GL screen error if music fails to open. - -Fixed VC7 "Release" Project files. - -Removed switch option from tests due to surface loss. + - 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 MAJOR 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 + + 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 - -Added path stripping to ZEngine.linux.doxygen. - -Added information to ZEngine.h for Doxygen front page. - -Added force into makefile options. - -Changed ZEngine::UpdateScreen to ZEngine::Update + ! 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 ZRect to use floats. - -Added Time based movement to ZRectTest. - -Changed behavior of 0 as bpp argument in ZEngine. - -Added readme. - -Updated rationale in licensing.txt. (fixed) - -Fixed loads of doxygen errors and documented all undocumented members. - -Fixed makefile to be much more portable and added config. + ! 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 some testing to ZImageTest of new stretching. - -Added ZImage::Flip. - -Fixed Linux makefile for new OpenGL code. - -Added new means of keyboard input, and key repeat enable/disable code. - -Fixed warnings in Test programs. + + 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. - -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. - -Added notice to licensing explaining license choice. + + 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: + + 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. + + 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 - -Converted all tabs to spaces. - -Added CVS lines to files for date tracking. - -Fixed file layout for CVS and reuploaded files to CVS. - -Major API changes (removed "Get" before accessors and changed some functions in ZEngine) - -Added Beginnings of OpenGL Render target + + 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 - -Modified behavior of ZImage::Attach and changed ZImageTest to use it. - -Added makefile for Linux build support. - -Renamed old makefile to makefile.mingw32 - -Fixed problem in ZImage::SetAlpha when failure occured. - -Added warnings in ZImage for when the display format fails. - -Completely rewrote ZConfigFile to avoid problems with STL map. - -Fixed problem in ZImage with transparency. - -Added doxygen script for linux, and renamed old doxygen script. + + 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 - -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. - -Added ZRect class, and ZRectTest. + + 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 - -Fixed small source problem in PhysFS handling of non-supported types. - -Added makefile for Cygwin and Mingw32 - -Removed AFL license, and switched to BSD-style license. + + 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. + # Changed directory layout. + # Changed source files to compile without PhysicsFS. + # Added newline to end of all source files. 0.7.0 - -Changed slash direction in example programs (fixed non-windows problems). - -Added support for PhysicsFS. - -Added ZConfigFile. - -Updated all examples to be cleaner style and use more features. - -Addes ZConfigFile for test programs. + + 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 - -Fixed directory issues in distribution. - -Updated to specify SDL 1.2.5 compatibility. - -Added IsLoaded method to ZSound,ZMusic,ZImage and ZFont - -Added music.ogg warning to ZMusicTest. - -Minor fixes in Doxygen settings. - -Fixed issues compiling the ZObject Inherited Wrapper types caused by changes in documentation. - -Added file-level documentation for doxygen in src directory. + + 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. + + Updated License to APL 1.1 and all files with it. 0.6.1 - -Added Mouse Example - -Changed Email Address to james@conceptofzero.net - -Added more test data and information on where data came from - -Removed Ogg file from distribution. - -Changed names of the libraries. + + 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 - -Updated all documentation (including doxygen docs). - -Rewrote Licensing.txt - -Added Authors.txt and Credits.txt - -Added VC7 Non-Debug Projects. - -Removed LGPL.txt (legacy) and Added APL.txt - -Fixed a bug occuring in ZSound and ZFont test programs. - -Proofread and fixed some documentation errors. + + 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. - -Updated source guidelines file for APL licensing. - -Added ZSound and test program. - -Updated examples to have similar coding guidelines. + + 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. - -Fixed a small keypress checking error in fullscreen mode. - -Redesigned entire data storage system (aka ZDataPtr classes) - -Fixed USE_SDL_MIXER and USE_SDL_TTF bugs in ZEngine. - -Removed LGPL licensing messages from source. - -Rewrote buggy ZImage::Attach code that was affecting the test program. + + 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. - -Fixed major hardware setting bugs in ZImage and ZEngine. - -Added alpha blending to tests. - -Reorganized Directory Structure and VC7 Project Files + + 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. - -Fixed bugs throughout core of ZEngine and changed methods used to keep static vectors of data. - -Designed ZObject class with virtual destructor. + + 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. + Initial ZEngine Proof of Concept, core ZEngine class. diff --git a/doc/ZEngine.linux.doxygen b/doc/ZEngine.linux.doxygen index 722397a..5895ab7 100644 --- a/doc/ZEngine.linux.doxygen +++ b/doc/ZEngine.linux.doxygen @@ -4,8 +4,8 @@ # General configuration options #--------------------------------------------------------------------------- PROJECT_NAME = ZEngine -PROJECT_NUMBER = 0.8.3 -OUTPUT_DIRECTORY = /home/James/ZEngine-0.8.3/doc +PROJECT_NUMBER = 0.8.4 +OUTPUT_DIRECTORY = /home/James/ZEngine-0.8.4/doc OUTPUT_LANGUAGE = English EXTRACT_ALL = NO EXTRACT_PRIVATE = YES @@ -19,7 +19,7 @@ REPEAT_BRIEF = NO ALWAYS_DETAILED_SEC = NO INLINE_INHERITED_MEMB = NO FULL_PATH_NAMES = YES -STRIP_FROM_PATH = /home/James/ZEngine-0.8.3/ +STRIP_FROM_PATH = /home/James/ZEngine-0.8.4/ INTERNAL_DOCS = NO STRIP_CODE_COMMENTS = YES CASE_SENSE_NAMES = YES @@ -52,12 +52,12 @@ QUIET = NO WARNINGS = YES WARN_IF_UNDOCUMENTED = YES WARN_FORMAT = "$file:$line: $text" -WARN_LOGFILE = /home/James/ZEngine-0.8.3/doc/ZEngine.log +WARN_LOGFILE = /home/James/ZEngine-0.8.4/doc/ZEngine.log #--------------------------------------------------------------------------- # configuration options related to the input files #--------------------------------------------------------------------------- -INPUT = /home/James/ZEngine-0.8.3/src \ - /home/James/ZEngine-0.8.3/include +INPUT = /home/James/ZEngine-0.8.4/src \ + /home/James/ZEngine-0.8.4/include FILE_PATTERNS = RECURSIVE = YES EXCLUDE = diff --git a/doc/ZEngine.win32.doxygen b/doc/ZEngine.win32.doxygen index a95e9fa..23120ca 100644 --- a/doc/ZEngine.win32.doxygen +++ b/doc/ZEngine.win32.doxygen @@ -4,8 +4,8 @@ # General configuration options #--------------------------------------------------------------------------- PROJECT_NAME = ZEngine -PROJECT_NUMBER = 0.8.3 -OUTPUT_DIRECTORY = C:\libs\ZEngine-0.8.3\doc\ +PROJECT_NUMBER = 0.8.4 +OUTPUT_DIRECTORY = C:\libs\ZEngine-0.8.4\doc\ OUTPUT_LANGUAGE = English USE_WINDOWS_ENCODING = YES EXTRACT_ALL = NO @@ -21,7 +21,7 @@ REPEAT_BRIEF = NO ALWAYS_DETAILED_SEC = NO INLINE_INHERITED_MEMB = NO FULL_PATH_NAMES = YES -STRIP_FROM_PATH = C:\libs\ZEngine-0.8.3 +STRIP_FROM_PATH = C:\libs\ZEngine-0.8.4 INTERNAL_DOCS = NO CASE_SENSE_NAMES = YES SHORT_NAMES = NO @@ -54,12 +54,12 @@ WARNINGS = YES WARN_IF_UNDOCUMENTED = YES WARN_IF_DOC_ERROR = YES WARN_FORMAT = "$file:$line: $text" -WARN_LOGFILE = C:\libs\ZEngine-0.8.3\doc\ZEngine.log +WARN_LOGFILE = C:\libs\ZEngine-0.8.4\doc\ZEngine.log #--------------------------------------------------------------------------- # configuration options related to the input files #--------------------------------------------------------------------------- -INPUT = C:/libs/ZEngine-0.8.3/include \ - C:/libs/ZEngine-0.8.3/src +INPUT = C:/libs/ZEngine-0.8.4/include \ + C:/libs/ZEngine-0.8.4/src FILE_PATTERNS = RECURSIVE = YES EXCLUDE = diff --git a/include/ZE_Defines.h b/include/ZE_Defines.h index 2d35ffd..c795132 100644 --- a/include/ZE_Defines.h +++ b/include/ZE_Defines.h @@ -32,6 +32,8 @@ //#define USE_SDL_NET //! Define to use the Physfs file system. //#define USE_PHYSFS +//! Define to use depreciated code that has not been entirely removed. +//#define DEPRECIATED #ifdef USE_SDL_NET diff --git a/include/ZE_ZBaseParticleSystem.h b/include/ZE_ZBaseParticleSystem.h index c409151..7fa9dda 100755 --- a/include/ZE_ZBaseParticleSystem.h +++ b/include/ZE_ZBaseParticleSystem.h @@ -14,7 +14,7 @@ Definition and implementation file for ZEngine particle system class ZBaseParticleSystem. Due to problems with template classes the template implementation needs to be in the same file as the declaration. -
$Id: ZE_ZBaseParticleSystem.h,v 1.3 2003/07/10 23:45:08 cozman Exp $
+
$Id: ZE_ZBaseParticleSystem.h,v 1.4 2003/07/11 20:51:44 cozman Exp $
\author James Turk **/ @@ -244,8 +244,8 @@ void ZBaseParticleSystem::Update() for(unsigned int i=0; i < rCurParticles; ++i) { UpdateParticle(i,elapsed); - if(rParticles[i].xPos < 0 || rParticles[i].xPos > rEngine->Width() - || rParticles[i].yPos < 0 || rParticles[i].yPos > rEngine->Height() || rParticles[i].energy <= 0) + if(rParticles[i].xPos < 0 || rParticles[i].xPos > rEngine->DisplayWidth() + || rParticles[i].yPos < 0 || rParticles[i].yPos > rEngine->DisplayHeight() || rParticles[i].energy <= 0) { rParticles[i] = rParticles[--rCurParticles]; --i; //go back one to process that particle diff --git a/include/ZE_ZConfigFile.h b/include/ZE_ZConfigFile.h index a4e480d..a096c52 100644 --- a/include/ZE_ZConfigFile.h +++ b/include/ZE_ZConfigFile.h @@ -29,7 +29,10 @@ namespace ZE /*! \brief ZConfigFile Class for use in ZEngine. - ZConfigFile class for INI-style configuration files for games or applications. Inherited from ZObject. + ZConfigFile class for INI-style configuration files for games or applications. + ZConfigFile can have comments using the semicolon (;) or octothorpe (#) characters. + Sections are delimited by [section-name], and variables must start with a letter + and should be in the format variable = data. **/ class ZConfigFile { diff --git a/include/ZE_ZEngine.h b/include/ZE_ZEngine.h index ff2fc46..7415afc 100644 --- a/include/ZE_ZEngine.h +++ b/include/ZE_ZEngine.h @@ -13,7 +13,7 @@ \brief Definition file for core ZEngine class. ZEngine Game Engine core Engine definition. -
$Id: ZE_ZEngine.h,v 1.42 2003/07/05 00:40:45 cozman Exp $
+
$Id: ZE_ZEngine.h,v 1.43 2003/07/11 20:51:44 cozman Exp $
\author James Turk **/ @@ -692,6 +692,31 @@ class ZEngine //Accessors// ///////////// + /*! + \brief Get Current Display Width. + + Get Width of Window or Fullscreen mode. + \return Width of Display. + **/ + int DisplayWidth(); + + /*! + \brief Get Current Display Height. + + Get Height of Window or Fullscreen mode. + \return Height of Display. + **/ + int DisplayHeight(); + + /*! + \brief Get Current Display BPP. + + Get color depth of Window or Fullscreen mode. BPP means bits per pixel. + \return BPP or depth of Display. + **/ + int DisplayDepth(); + +#ifdef DEPRECIATED /*! \brief Get Current Display Width. @@ -715,6 +740,7 @@ class ZEngine \return BPP of Display. **/ int BPP(); +#endif //DEPRECIATED /*! \brief Get Fullscreen setting. diff --git a/include/ZEngine.h b/include/ZEngine.h index fb50486..28117c5 100644 --- a/include/ZEngine.h +++ b/include/ZEngine.h @@ -4,7 +4,7 @@ Header file for ZEngine Game Engine from Concept of Zero, this is the file that programs that wish to utilize ZEngine should include. -
$Id: ZEngine.h,v 1.27 2003/07/10 19:19:19 cozman Exp $
+
$Id: ZEngine.h,v 1.28 2003/07/11 20:51:44 cozman Exp $
\author James Turk **/ @@ -12,8 +12,8 @@ \mainpage ZEngine Documentation \author James Turk - \version 0.8.3 - \date April 27, 2003 + \version 0.8.4 + \date July 12, 2003 \section ZEngine About ZEngine
diff --git a/src/ZE_ZConfigFile.cpp b/src/ZE_ZConfigFile.cpp index 2a176a1..45a0495 100644 --- a/src/ZE_ZConfigFile.cpp +++ b/src/ZE_ZConfigFile.cpp @@ -13,7 +13,7 @@ \brief Source file for ZConfigFile. Implementation of ZConfigFile, the ZEngine INI-Style Config File. -
$Id: ZE_ZConfigFile.cpp,v 1.13 2003/06/16 07:45:03 cozman Exp $
+
$Id: ZE_ZConfigFile.cpp,v 1.14 2003/07/11 20:51:44 cozman Exp $
\author James Turk **/ @@ -177,6 +177,8 @@ ZConfigFile::~ZConfigFile() void ZConfigFile::Process(std::string filename) { rFilename = filename; + int commentNum=0; + int newlineNum=0; std::ifstream cfile(rFilename.c_str()); std::string section, str, var, tmp; @@ -191,11 +193,22 @@ void ZConfigFile::Process(std::string filename) //if std::string is bracketed it is a section, if it begins in a letter it is a variable if(tmp[0] == '[' && tmp[tmp.length()-1] == ']') section = str; - else if(std::isalpha(tmp[0])) + else if(std::isalpha(tmp[0])) //variables must start with a letter { var = str.substr(0,str.find('=')); //split the std::string at the equals sign SetVariable(section,var,str.substr(str.find('=')+1,str.length()-var.length()-1)); } + else if(tmp[0] == '#' || tmp[0] == ';') //acceptable comment characters + { + SetVariable(section,FormatStr("__comment%d",commentNum),str); + ++commentNum; + } + else if(tmp.length() == 0 && !cfile.eof()) //prevent writing a new newline with every write to disk + { + SetVariable(section,FormatStr("__newline%d",newlineNum),""); + ++newlineNum; + } + } cfile.close(); } @@ -339,7 +352,14 @@ void ZConfigFile::Flush() //for each variable in section, write out variable=value for(varIter = (*secIter).varList.begin(); varIter != (*secIter).varList.end(); ++varIter) { - if(CleanString((*varIter).var).length()) //ensures that variable is valid + if((*varIter).var[0] == '_') + { + if( ((*varIter).var).substr(2,7) == "comment") + cfile << (*varIter).val << std::endl; + else if( ((*varIter).var).substr(2,7) == "newline") + cfile << std::endl; + } + else if(CleanString((*varIter).var).length()) //ensures that variable is valid cfile << (*varIter).var << '=' << (*varIter).val << std::endl; } } diff --git a/src/ZE_ZEngine.cpp b/src/ZE_ZEngine.cpp index d3ecb97..cf1fa21 100644 --- a/src/ZE_ZEngine.cpp +++ b/src/ZE_ZEngine.cpp @@ -13,7 +13,7 @@ \brief Central source file for ZEngine. Actual implementation of ZEngine singleton class, the core of ZEngine. -
$Id: ZE_ZEngine.cpp,v 1.50 2003/07/11 00:27:26 cozman Exp $
+
$Id: ZE_ZEngine.cpp,v 1.51 2003/07/11 20:51:44 cozman Exp $
\author James Turk **/ @@ -22,7 +22,7 @@ namespace ZE { -VersionInfo ZEngine::Version(0,8,4,"dev"); +VersionInfo ZEngine::Version(0,8,4); ZEngine *ZEngine::sInstance=NULL; ZEngine::ZEngine() : @@ -50,6 +50,7 @@ ZEngine* ZEngine::GetInstance() sInstance = new ZEngine; return sInstance; + sInstance = NULL; } void ZEngine::ReleaseInstance() @@ -776,6 +777,23 @@ TTF_Font* ZEngine::LoadFont(std::string filename, int size) #endif +int ZEngine::DisplayWidth() +{ + return mWidth; +} + +int ZEngine::DisplayHeight() +{ + return mHeight; +} + +int ZEngine::DisplayDepth() +{ + return mBPP; +} + +#ifdef DEPRECIATED + int ZEngine::Width() { return mWidth; @@ -791,6 +809,8 @@ int ZEngine::BPP() return mBPP; } +#endif //DEPRECIATED + bool ZEngine::IsFullscreen() { return mFullscreen; diff --git a/src/ZE_ZImage.cpp b/src/ZE_ZImage.cpp index a038671..c4ab7c7 100644 --- a/src/ZE_ZImage.cpp +++ b/src/ZE_ZImage.cpp @@ -13,7 +13,7 @@ \brief Source file for ZImage. Implementation of ZImage, the Image class for ZEngine. -
$Id: ZE_ZImage.cpp,v 1.36 2003/07/05 00:40:45 cozman Exp $
+
$Id: ZE_ZImage.cpp,v 1.37 2003/07/11 20:51:44 cozman Exp $
\author James Turk **/ @@ -101,7 +101,7 @@ void ZImage::OpenFromImage(SDL_Surface *image, Sint16 x, Sint16 y, Sint16 w, Sin if(!image) rEngine->ReportError(ZERR_NOIMAGE,"OpenFromImage"); - cutImg = SDL_CreateRGBSurface(0, rect.w, rect.h, rEngine->BPP(), + cutImg = SDL_CreateRGBSurface(0, rect.w, rect.h, rEngine->DisplayDepth(), screen->format->Rmask, screen->format->Gmask, screen->format->Bmask, screen->format->Amask); if(!cutImg) diff --git a/test/ZParticleTest.cpp b/test/ZParticleTest.cpp index 1748605..8d973bc 100755 --- a/test/ZParticleTest.cpp +++ b/test/ZParticleTest.cpp @@ -9,7 +9,7 @@ This example file is in the public domain, it may be used with no restrictions. and the home of this Library is http://www.zengine.sourceforge.net *******************************************************************************/ -/*$Id: ZParticleTest.cpp,v 1.1 2003/07/10 23:30:05 cozman Exp $*/ +/*$Id: ZParticleTest.cpp,v 1.2 2003/07/11 20:51:45 cozman Exp $*/ #include #include @@ -56,7 +56,7 @@ void Test() effect[0].SetRate(120); effect[0].SetImage("data/particle1.tga"); - effect[1].SetPosRange(0,0,static_cast(engine->Width()),20); + effect[1].SetPosRange(0,0,static_cast(engine->DisplayWidth()),20); effect[1].SetColorRange(230,255,230,255,250,255,200,240); effect[1].SetVelocityRange(-10,30,10,50); effect[1].SetEnergyRange(1,1); @@ -76,7 +76,7 @@ void Test() effect[2].SetImage("data/particle2.tga"); bg.Open("data/rainbow.bmp"); - bg.Resize(engine->Width()/2,engine->Height()); //gives perspective on alpha on half of screen + bg.Resize(engine->DisplayWidth()/2,engine->DisplayHeight()); //gives perspective on alpha on half of screen font.DrawText("(P)ause (U)npause (C)lear",text[0]); font.DrawText("1-3 : Change System Being Controlled",text[1]); diff --git a/vc7/ZEngine.vcproj b/vc7/ZEngine.vcproj index 3cb4c67..06bddec 100644 --- a/vc7/ZEngine.vcproj +++ b/vc7/ZEngine.vcproj @@ -30,7 +30,8 @@ WarningLevel="4" WarnAsError="TRUE" Detect64BitPortabilityProblems="TRUE" - DebugInformationFormat="3"/> + DebugInformationFormat="3" + DisableSpecificWarnings="4702"/>