2004-07-19  Simon Goodall  <simon@simongoodall.co.uk>

	* Makefile.am, data/Makefile.am, scripts/Makefile.am: Move data and
	  scripts installation into data and script Makefile.am.
	* configure.in: Bump sear version number for release. Update for spec 
	  files and sear.in script
	* sear-media.spec.in: Remove WFUT.jar from rpm
	* sear-updater.spec.in: Make rpm containing WFUT.jar
	* sear.spec.in: Remove requires that are derived from other libs. Add missing requires. Update for new script / binary files
	* src/FileHandler.cpp: Fix code formating.
	* src/Makefile.am: Update for new exec script
	* src/System.cpp: Fix code formatting. Do not print cmd line args.
	* src/sear.in: Script file to run updater if found before starting
	  sear.bin

2004-07-14  Simon Goodall  <simon@simongoodall.co.uk>

	* sear-media.spec.in: Initial version of spec file to generate media rpm
	  using WFUT.
	* sear.spec.in: Updated for current sear state
	* common/Utility.h: gcc 3.4 fixes
	* renderers/TextureManager.cpp: Fix warning
	* src/Graphics.cpp: Disable GUI rendering in prep for release

2004-06-30  Al Riddoch  <alriddoch@zepler.org>

	* src/Character.cpp: Use old style Atlas Message typedefs to keep
	  compatable with 0.4.93.

2004-06-30  Simon Goodall  <simon@simongoodall.co.uk>

	* environment/TerrainRenderer.cpp: Move sea level calculation out of loop (thanks to JohnFlux)
	* loaders/cal3d/Cal3D.cpp: Use a longer blend time between animations
	* src/FileHandler.cpp: Include errno.h for gcc 3.4
	* src/Graphics.cpp, src/Light.h: Use enum for colour channels
	* src/LightManger.cpp: Code tidying

2004-06-28  Al Riddoch  <alriddoch@zepler.org>

	* common/Use.h, common/Wield.h, common/operations.cpp: Add
	  new Use and Wield op classes.

	* src/Character.cpp, src/Character.h: Add new use and wield
	  commands to character using new ops.

2004-06-26  Simon Goodall  <simon@simongoodall.co.uk>

	* src/system.cpp, src/Filehandler.h, src/FileHandler.cpp: Change storage type from list to set to avoid duplicates. Make code use typedef for FileList

2004-06-26  Simon Goodall  <simon@simongoodall.co.uk>

	* renderers/GL.cpp: Fix bug where sun light source was disabled	

2004-06-26  Simon Goodall  <simon@simongoodall.co.uk>

	* renderers/GL.cpp: Remove some commented out code

	* src/Graphics.cpp, src/Graphics.h,src/Light.h, src/LightManager.cpp, src/LightManager.h, src/System.cpp: Finish basic light manager code. Create a new light source for every "fire" object that is visible. Read/Write light properties from config file if they exist.


2004-06-25  Simon Goodall  <simon@simongoodall.co.uk>

	* src/Character.cpp, src/Character.h: Allow setting names to /make cmd.

2004-06-25  James Turner  <james@worldforge.org>

	* environment/SkyDome.cpp: fix fog color calculation to include
	  a 0.5 offset so we blend two values correctly at integral pixels.

2004-06-25  Simon Goodall  <simon@simongoodall.co.uk>

	* src/ModelLoader.h: Fix cut and paste error where offset_x was ignored

2004-06-24  Simon Goodall  <simon@simongoodall.co.uk>

	* Add a Z rotation option to model records to rotate odd objects

2004-06-24  James Turner  <james@worldforge.org>

	* Add support for world editing (via an admin account) using commands
	  bound to keys. New functionality in Editor class, created by system,
	  which will handle all the privileged commands.
	
	* Make the command binder handle modifier keys: preprend various magic
	  strings based on the modifier state.
	  
	* Update standard bindings.cfg with some default bindings for the
	  edit keys.

2004-06-23  Simon Goodall  <simon@simongoodall.co.uk>
	* loaders/3ds.cpp,loaders/3ds.h: Make use of "masking" function to allow alpha mapped textures during selection. Remove uneeded code.

2004-06-23  Al Riddoch  <alriddoch@zepler.org>

	* src/Character.cpp: Fix the position of entities passed to other
	  characters.

2004-06-22  Simon Goodall  <simon@simongoodall.co.uk>
	* renderers/GL.cpp: Fix clamping

2004-06-22  Simon Goodall  <simon@simongoodall.co.uk>
	* renderers/GL.cpp: clamp min light level to 0.15f so we can still see at night

2004-06-21  Simon Goodall  <simon@simongoodall.co.uk>
	* src/ObjectRecord.h: Fix bug where updated bbox from server would ignore scale_height option in model records

2004-06-21  Simon Goodall  <simon@simongoodall.co.uk>
	* loaders/3ds.cpp, loader/3ds.h, loaders/3ds_Loader.cpp, loaders/cal3d/Cal3d_Loader.cpp,src/ModelLoader.h,src/ModelRecord.h: Add a scale by height option to model records and use it in the 3ds and cal3d loader

2004-06-21  Simon Goodall  <simon@simongoodall.co.uk>
	* src/WorldEntity.cpp: Add action events for mode and action changed
	* src/Character.cpp: Rename action event to avoid name clashes
	* src/Model.h, src/ObjectRecord.h, src/WorldEntity.cpp: Dyamically
	  resize models when bbox changes.

2004-06-22  James Turner  <james@worldforge.org>

	* Make joystick axes configurable in general.cfg

2004-06-21  Al Riddoch  <alriddoch@zepler.org>

	* src/Character.cpp: Add objtype to arguments of Set ops for
	  customizing characters.

2004-06-20  Simon Goodall  <simon@simongoodall.co.uk>
	* src/WorldEntity.cpp: Add a "swimming" mode check

2004-06-20  Simon Goodall  <simon@simongoodall.co.uk>
	* src/Graphics.cpp: Add missing check for draw_self from object_records;
	* src/Character.cpp, src/Character.h: Add /set_height command to change character height. Model height is not updated dynamically yet.
	* common/types.h, src/Frustum.h, src.Frustum.cpp, src/Graphics.cpp, src/WorldEntity.h, src/WorldEntity.h: Added code to orientate the bounding box to the quaternion of the entity. Add frustum check for this. Not enabled by default. Need to change method near the "Change method here" comment in src/Graphics.cpp

2004-06-20  Al Riddoch  <alriddoch@zepler.org>

	* loaders/3ds.cpp: Add in a scale transform when rendering 3ds
	  files which some models seem to need.

2004-06-20  Simon Goodall  <simon@simongoodall.co.uk>
	* loaders/BoundBox.cpp: Fix incorrect texture bug when using display lists

2004-06-15  Simon Goodall  <simon@simongoodall.co.uk>
	* loaders/3ds.cpp: Fix segfault on models with no texture through using unitialised values;

2004-06-19  Al Riddoch  <alriddoch@zepler.org>

	* environment/TerrainRenderer.cpp: Re-arrange terrain shaders, for
	  better looking hills.

2004-06-18  Al Riddoch  <alriddoch@zepler.org>

	* environment/TerrainRenderer.cpp: Be sure to use heap allocation
	  to big arrays, rather than stack.

2004-06-15  Al Riddoch  <alriddoch@zepler.org>

	* loaders/3ds.cpp: Only render meshes directly if the 3ds file does
	  not contain a node structure.

2004-06-15  Simon Goodall  <simon@simongoodall.co.uk>
	* Further appearance fixes. Now loads appearance at startup

2004-06-15  Al Riddoch  <alriddoch@zepler.org>

	* src/System.cpp, src/Character.cpp: Remove debugging output
	  that was slowing down rotation.

2004-06-15  Al Riddoch  <alriddoch@zepler.org>

	* src/Event.h, src/Event.cpp: Add a new event to explicitly send an
	  update to the server.

	* src/Character.h, src/Character.cpp: If the user moves the mouse,
	  avoid sending an update to the server if one has been sent recently.

2004-06-13  Simon Goodall  <simon@simongoodall.co.uk>
	* Initial workings to allow appearance attributes of character to be changed. /read_app reads the properties from the server. /set_app is used to set mesh and material properties. E.g. "/set_app mesh head 1" changes head mesh. "/set_app material head alternative" changes head material. /clear_app clears current settings

2004-06-13  Simon Goodall  <simon@simongoodall.co.uk>
	* Fix bug where the render active name function did select the correct state to render with.

2004-06-13  Al Riddoch  <alriddoch@zepler.org>

	* Fix up all the Makefile.am files so that distcheck works.

2004-06-11  Al Riddoch  <alriddoch@zepler.org>

	* src/Render.h, renderers/GL.h, renderers/GL.cpp,
	  common/Utility.h, common/Utility.cpp:
	  Change some pass by value arguments to pass by reference
	  for efficiency.

2004-06-10  Al Riddoch  <alriddoch@zepler.org>

	* src/WorldEntity.h, src/WorldEntity.cpp,
	  src/Frustum.h, src/Frustum.cpp,
	  src/Character.h, src/Character.cpp:
	  Change some pass by value arguments to pass by reference
	  for efficiency.

	* gui/Workspace.cpp: Get rid of some annoying debug ouput.

2004-06-09  James Turner  <james@worldforge.org>

	* Updated method for computing the fog color, based on the current
	  horizon color. Rather than using readPixels, which is slow,
	  sometimes drastically so, store the first (bottom) row of
	  the atmosphere texture in client memory, and do our own
	  interpolation.

2004-06-09  Al Riddoch  <alriddoch@zepler.org>

	* gui/Workspace.cpp: Start writing event processing code.

	* gui/Window.h, gui/Window.cpp: Add interface to pass mouse motion
	  events to windows.

	* gui/Widget.cpp: Clean up formatting.

	* gui/event.h: Add enum for event types.

2004-06-09  Al Riddoch  <alriddoch@zepler.org>

	* renderers/GL.cpp: Tweak light parameteres to give a smaller but
	  brighter pool of light.

2004-06-09  Al Riddoch  <alriddoch@zepler.org>

	* renderers/GL.cpp: Enable character light source, and provide
	  some sensible defaults for it.

	* src/Graphics.cpp: Modify the place where character lighting is
	  applied to make it easier to control relative position to the
	  character.

2004-06-08  Al Riddoch  <alriddoch@zepler.org>

	* renderers/GL.cpp: Remove pointless call to glClear.

	* environment/SkyDome.cpp: Clear screen after reading back fog
	  colour which eliminates flickering sky, and makes stars twinkle.

2004-06-07  James Turner  <james@worldforge.org>

	* Fix linux compilation of stars code. Thank goodness
	  I have a Loonix box these days.

2004-06-07  James Turner  <james@worldforge.org>

	* Add star rendering to the environment code. Very simple while the
	  renderer integration issues are sorted out; in the future, will use
	  point sprites and colors. 
	  
	* Add a stars state to states.cfg
	
	* Add an unsigned 8-bit RGBA color to common/types.h
	
	* Add a long 'skirt' to the sky dome, and hence always use pure
	  black as the glClear color. We still need the glReadPixel hack for
	  getting the fog color, will address that in a future change.

2004-06-07  Al Riddoch  <alriddoch@zepler.org>

	* gui/Workspace.cpp, gui/Workspace.h, src/System.cpp: Pass
	  SDL events to the gui code.

2004-06-05  Al Riddoch  <alriddoch@zepler.org>

	* environment/TerrainRenderer.cpp: Implement culling entire terrain
	  chunks using the Frustum test. Big speedup.

2004-06-04  Al Riddoch  <alriddoch@zepler.org>

	* gui/Container.cpp: Implement addChild() and showAll().

	* gui/Button.cpp: Use addChild for adding child widget.

	* gui/Frame.cpp: Get rid of default size.

	* gui/Toplevel.cpp, gui/Toplevel.h: Implement top level widget.

	* gui/Window.cpp, gui/Window.h: Add methods to change geometry.

	* gui/Workspace.cpp, gui/Workspace.h: Remove test widget,
	  and add methods to allow widgets to install stuff.

	* src/System.cpp: Test out new Toplevel.

2004-06-03  Al Riddoch  <alriddoch@zepler.org>

	* gui/Button.cpp, gui/Button.h, gui/Container.cpp, gui/Container.h,
	  gui/Graphic.h, gui/Label.cpp, gui/Label.h, gui/Widget.h,
	  gui/Workspace.cpp, gui/Workspace.h: Add show interface to widgets
	  for when they are ready to be rendered.

	* gui/Toplevel.h, gui/Toplevel.cpp: Class for top level widgets.

2004-06-03  James Turner  <james@worldforge.org>

	* XCode project updates - want to be able to revert to this
	  version if I break stuff.

2004-06-03  Al Riddoch  <alriddoch@zepler.org>

	* gui/Window.h, gui/Window.cpp: Add coords and size, adding children,
	  and the render interface which allows us to render windows
	  as a hierarchy.

	* gui/RootWindow.h, gui/RootWindow.cpp: Implement render to
	  iterate over children.

	* gui/Frame.h, gui/Frame.cpp: Fix render interface to comply with
	  base class, and draw based on window coords.

	* gui/Container.h, gui/Container.cpp: Remove render interface, as
	  this widget type is not rendered. Implement constructor and
	  destructor.

	* gui/Workspace.h, gui/Workspace.cpp: Make workspace
	  a container, so it can hold top level widgets. Implement
	  rendering the rootwindow when draw is called. Add a demo
	  widget.

2004-06-02  Al Riddoch  <alriddoch@zepler.org>

	* gui/Workspace.cpp: Fix test gui drawing code, and make it use
	  vertex arrays. Add necessary states entry.

2004-05-30  Al Riddoch  <alriddoch@zepler.org>

	* renderers/TextureManager.cpp: Fix texture load error detection,
	  and make output a little more useful.

	* renderers/ImageUtils.h: Add newline to end of file.

2004-05-30  James Turner  <james@worldforge.org>

	* Change an assert() on texture load errors to something less
	  violent, just print an error and stop generating mip-maps.

2004-05-30  James Turner  <james@worldforge.org>

	* Refactor texture ID generation, to avoid manual resizing of the
	  STL containers (they behave smartly anyway). As a result, got
	  rid of m_texture_counter completely (use m_names.size() instead)
	  
	* Added a general config option, base_texture_level, and a console
	  command, /set_texture_detail, to allow playing with texture
	  detail at runtime.
	  
	* Cleaned up the TextureManager's interactions (or lack of) with 
	  the config system.
	  
	* Factored the image load code into a helper file, ImageUtils.cpp
	
	* Rewrote the mip-mapping to never use SGIS_GENERATE_MIPMAPS,
	  since it is hard to integrate with dynamic texture detail reduction.
	  This also allows us to use arbitrary texture storage formats in
	  the future, since the only call we make to load textures is
	  glTexImage2D diurectly.
	  
	* Added custom mip-mapping code to ImageUtils.cpp : not the nicest
	  code ever, but pretty simple and it seems to work.

	* Found a latent bug in the texture loader, where 8-bit (single channel)
	  surfaces were being treated as 32-bit. I have default these to
	  GL_ALPHA for the moment, but perhaps they should default to
	  GL_LUMINANCE? Need to ask Al and Simon.
	  
	* Removed the include of SDL_image.h from System.h, since only two
	  source files (System.cpp and ImageUtils.cpp) ever call SDL_image
	  functions.

2004-05-28  Al Riddoch  <alriddoch@zepler.org>

	* gui/Workspace.h, gui/Workspace.cpp: Hold reference to system object
	  in gui, for access to renderer etc. Add text rendering code.

	* gui/Widget.h: Remove rendundant render() interface.

	* src/System.h, src/System.cpp, src/Graphics.cpp: Add a gui Workspace
	  into the render loop.

2004-05-28  James Turner  <james@worldforge.org>

	* Refactor texture config code, so we default to using
	  mipmaps. Ensure we use findItem before calling getItem.
	* When mipmapping is enabled for a texture, make the
	  default MIN_FILTER be GL_LINEAR_MIPMAP_LINEAR
	* Add in inital (hard-coded) logic to use a different
	  base mipmap level.

2004-05-26  James Turner  <james@worldforge.org>

        * Remove <strstream> check from configure, and usage from
          Utility.h
        * Updated version of XCode project

2004-05-26  Al Riddoch  <alriddoch@zepler.org>

	* gui/Frame.h: Fix include typo.

2004-05-26  Al Riddoch  <alriddoch@zepler.org>

	* gui/*: Correctly put all the gui classes into the Sear namespace.

2004-05-24  Al Riddoch  <alriddoch@zepler.org>

	* renderers/TextureManager.cpp, renderers/StateManager.cpp,
	  renderers/default_font.h: Use pure alpha texture for font,
	  and enable blending and get smoother less aliased text.

2004-05-24  Al Riddoch  <alriddoch@zepler.org>

	* gui/*: Updated ground work for gui widgets.

2004-05-24  James Turner  <james@worldforge.org>

	* Fix the compass to actually point north. Ooops.
	* Add a fail() handler to sprite, falling back to the default
	  texture and a fixed size, currently 64x64
	* Add XCode project file
	
2004-05-23  James Turner  <james@worldforge.org>

	* Add in a Sprite class, including a new config file, and changes
	  to the TextureManager to interoperate with Sprites. The original
	  Sprite code was lifted from Al's work in Apogee and modified to
	  work in sear.
	* Add a Compass class to the gui files, again taken from Apogee
	  and modified.
	* Change Graphics to create a compass and update it's angle.
	* Add a 'sprite' state to the state config file

2004-05-23  Al Riddoch  <alriddoch@zepler.org>

	* src/Character.h, src/Character.cpp: Add a make command that
	  allows the character to attempt to create arbitrary in game
	  objects. Also, sneak in a GNU compliant changelog entry, in
	  the hope that Simon might pick up the habbit :)

2004-05-23 James Turner <james@worldforge.org>

	* Twiddle SDL_mixer includes to work with the Mac package, and not pull in SDL/SDL.h
	  in the header file (only needed in Sound.cpp)
	* Stub in a sound enable / disable command, not hooked up right now
	* Remove the OS-X image load code, and use the SDL_image framework instead
	* Remove #include of config.h in Utility.h, very naughty.

20th May 2004, Simon Goodall
 * More resize work

20th May 2004, Simon Goodall
 * Fix problem with texture vector resize
 * Fix problem with cal3d animations running too fast (varconf init error)
 * Add support for resizing the window by dragging borders. Needs testing on Win32 and Mac systems.

19th May 2004, Simon Goodall
 * Further varconf checks
 * Resize texture vectors if limit is reached.

17th May 2004, Simon Goodall
 * Futher missing stencil buffer fixes. Now try and create window. if that fails set use stencil to false and try again (if its already false, then we try twice anyway)

17th May 2004, Simon Goodall
 * Fix default calendar start time

17th May 2004, Simon Goodall
 * Fix bug in sky dome where only a quarter of it was rendered

17th May 2004, Simon Goodall
 * Further varconf find / get item fixes

14th May 2004, Simon Goodall
 * Add check on startup to see if we want to use the stencil buffer. Set general.cfg render_use_stencil to false to disable stencil buffer.

14th May 2004, Simon Goodall
 * Link skydome to calendar

14th May 2004, Simon Goodall
 * Allow cmd line parsing of args for general config
 * Link server time to calendar

13th May 2004, Simon Goodall
 * Allow custom specification of texture internal formats.

6th May 2004, Simon Goodall
 * Fix cursors

2004-05-02 James Turner <james@worldforge.org>
 * Remove processHome from System. The functionality can be re-added
  by modifying FileHandler::expandString if desired.

29th April 2004, Simon Goodall
 * Some preliminary use findItem to verify config item exists before querying it(only in GL class for now)
 * Actually tell the renderer to read the configuration
 * Fix Light initialisation
 * Remove some unneeded default general configs

28th April 2004, James Turner
 * Move all the file-related and path-related code out of System
   and into the FileHandler
 * Add OS-X and Win32 specific versions of various path locators
 * Change the default search order so CWd and home go before the
   install paths.
 
28th April 2004, Simon Goodall
 * Really fix the bad state stuff

28th April 2004, Simon Goodall
 * Fix the "bad state - 0" messages. Caused by trying to render a model before the states had been assigned.
 * Some variable init stuff added to GL
 * Removal of some unused functions and variables.
 * Rename member var command in System to m_command for clarity

28th April 2004, Simon Goodall
 * Do not try and render acitveName string if its empty

28th April 2004, Simon Goodall
 * Fix uninitialised variable that could cause variable substitution to fail
 * Fix missing call to GL invalidate

27th April 2004, Simon Goodall
 * Moved config.h checks to top of code file
 * Fixed config_h #ifdef's
 * Added missing copyright info
 * Updated copyright info
 * Fix wrong dates in changelog

27th April 2004, Al Riddoch
 * Re-write code that handles model map, so that NULLs never get inserted.

26th April 2004, Simon Goodall
 * Correctly backup default texture and font numbers during an invalidate call

27th April 2004, Simon Goodall
 * Some fixes for texture manager
 * Re-ordering of init to fix some texture issues

26th April 2004, James Turner
 * Move SkyDome init path into it's constructor
 * Remove statics that stop SkyDome re-initing correctly
 * Make re-init of Environment assert, should never happen (for now)

26th April 2004, Simon Goodall
 * More initialisation order fixes
 * Some code cleanups

26th April 2004, Simon Goodall
 * State manager invalidation stuff

26th April 2004, Simon Goodall
 * Added some config.h checks

26th April 2004, Simon Goodall
 * Added terrain invalidation code

26th April 2004, Simon Goodall
 * Removed old height maps
 * Updated states file

26th April 2004, Simon Goodall
 * Added invalidate stuff to models

26th April 2004, Simon Goodall
 * Removed getPixel function as it is not used

26th April 2004, Simon Goodall
 * Some refactoring to allow user def screen sizes again
 * Moved image loading code from System to TextureManager.
 * Some GL Context invalidation code for Textures

26th April 2004, Al Riddoch
 * More progress on base classes for gui code

26th April 2004, Simon Goodall
 * Removed old sky and terrain code
 * Removed slice loader code as it isn't used

25th April 2004, Al Riddoch
 * Started work on new gui code.

23rd April 2004, Simon Goodall
 * Further work on texture invalidation code
 * Added console command to call invalidate

23rd April 2004, Simon Goodall
 * /take now uses the first character returned by getCharacters if no id is specified.

22nd April 2004, Simon Goodall
 * Converted glBegin calls to vertex buffers in SkyDome

22nd April 2004, Simon Goodall
 * Update SkyDome to check existance of VBO's before using them

22nd April 2004, Simon Goodall
 * Change GL_BGR anf GL_BGRA to use GL_BGR_EXT and GL_BGRA_EXT for win32

22nd April 2004, Simon Goodall
 * Added normals to water to fix lighting problems
 * Disabled face culling on water so it is visible from both above and below
 * Fixed texture problem on 3ds models
 * Fixed some bugs in bounding box loader not sizing entities correctly when bbox coords where not in the expected orientation
 * Added arbitary rotation to cal3d objects, with a default 90.0f rotation for existing models
 * Added individual s and t texture clamping to fix skydome texturing
 * Changed default entity drop position to +1 X to avoid collision problems with server
 * Initialisation now prints available video modes
 * /identify now displays the mass of an object
 * Reduced default internal texture format to RGB5 and Alpha 1 (bits per pixel)
 

19th April 2004, Simon Goodall
 * Fixed blue / green mix up in cal3d loader

19th April 2004, Simon Goodall
 * Added terrain tracking for jetty entity

19th April 2004, Simon Goodall
 * Added check for mode type floating for terrain tracking

19th April 2004, Simon Goodall
 * Actually render the water this time

19th April 2004, Simon Goodall
 * Fix water transparency.
 * Draw water last to transparency work correctly
 * Water level now raises and lowers
 * Added player shadow from appogee
 * More skydome bits

19th April 2004, Al Riddoch
 * Add tracking of mouse clicks, for detection of dragging.
 * Implement mouse rotation of character in mouse_look mode, rather
   than just rotating camera.
 * Tweak character position on screen for usability.
 * Add code for handling joystick button presses.

19th April 2004, Simon Goodall
 * More terrain tracking stuff

17th April 2004, Simon Goodall
 * Added skydome code
 * Changed fog colour to match lower skydome colour
 * Added a globally accessable RenderSystem class to handle common rendering tasks such as texture changing and state changing.

12th April 2004, Al Riddoch
 * Add support to camera for immediate changes, and implement mouse controlled
   camera.

7th April 2004, Simon Goodall
 * More terrain tracking stuff

7th April 2004, Al Riddoch
 * Increase fog and far clip distances to get a bigger world view.
   Fix handling of character position to handle terrain visibility.

7th April 2004, Al Riddoch
 * First pass at analogue controller implementation. Can now run around the
   landscape, with strafing, and full view control.

6th April 2004, Simon Goodall
 * Fixed terrain height tracking

5th April 2004, Al Riddoch
 * src/System.h, src/System.cpp: Add interface for handling analogue input
   devices, like mouse and joystick. Add init code and test code for joystick.

2nd April 2004, Simon Goodall
 * Fixed bug where texture_2d state was becoming inconsistent with expected value

2nd April 2004, Simon Goodall
 * Fixed texture loading and switching in terrain
 * Fixed terrain state record 

1st April 2004, Simon Goodall
 * More changes for Mercator integration. commpiles, but not tested.

30th March 2004, Simon Goodall
 * Initial mercator support - imported code from apogee - prob wont compile

11th March 2004, Simon Goodall
 * Applied patch from ron to replace my atlas "give" with eris' give

2nd March 2004, Simon Goodall
 * Updated iss file
 * Set correct version nums for sage and eris

2nd March 2004, Simon Goodall
 * Bump version number to 0.4.7
 * convert to using SDL_main

6th February 2004, Simon Goodall
 * Changed CharacterList to CharacterMap to keep in line with Eris

28th January 2004, Simon Goodall
 * Allow models to be translated in x/y/z

26th January 2004, Simon Goodall
 * Some initial work for VBO's

26th January 2004, Al Riddoch
 * Fixed includes and code to work with latest Atlas-C++ and eris changes.

19th January 2004, Simon Goodall
 * Replaced Atlas specific code with calls to Avatar->*

19th January 2004, Simon Goodall
 * Fixes for latest Eris changes

10th December 2003, Simon Goodall
 * Fixes brokes configure.in

8th December 2003, Simon Goodall
 * Removed warning messages to get a green light

6th December 2003, Simon Goodall
 * Removed warning from configure to get a green light
 * Removed /cd and /cd_this_dir console commands and replaced with a variable expansion. E.g. ${SEAR_MEDIA} is the root of the media files for sear. (THIS BREAKS COMPAT WITH EXISTING MEDIA)
 * Fixed a segfault when cal3d loader couldn't load the skeleton file.

3rd December 2003, Simon Goodall
 * Some fixes to make sounds work again

3rd December 2003, Simon Goodall
 * Changed GL includes to use sage ones.
 * Fixed other build warnings

2nd December 2003, Simon Goodall
 * Fixed some build warnings

9th November 2003, Simon Goodall
 * Fixed bug where entities with types that had capital letters could not be matched to an object_record

27th September 2003, Simon Goodall
 * Updated for Atlas 0.4.90

16th September 2003, Simon Goodall
 * Added ^ in addition to ` for default binding for console toggle. This is for German keyboard layouts.

7th August 2003, Simon Goodall
 * Changed configure.in so it throws an error if lib3ds in not found

5th August 2003, Simon Goodall
 * Fixed some use of variables uninitialised

16th July 2003, Simon Goodall
 * Some cleanups

15th July 2003, Simon Goodall
 * Fixed bug where incorrect parent type was returned in WorldEntity::parent()
 * Fixed typos in Call3D loader when material properties had a cut and paste error
 * Removed some unrequired debug info

3rd July 2003, Simon Goodall
 * Changed default state to allow textures so default texture is visible regardless of datafiles
 * Made default key binding of "escape" to "/quit"
 * Added default records for modelhandler and objecthandler
 * Started to make use of a "media_root" variable

12th June 2003, Simon Goodall
 * Fixed object selection on imposters

12th June 2003, Simon Goodall
 * Fixed segfault caused by bad array indexing in NPlane loader

12th June 2003, Simon Goodall
 * Fixed some dealloc errs, mainly delete / delete []
 * Fixed problem caused by mutli texture units causing a problem. header defined 6 units, but this causes probs on cards with less than 6 units.

29th May 2003, Simon Goodall
 * Fixed Multitexturing.
 * Multitexturing is now determined via the statemanager code

2nd May 2003, Simon Goodall
 * String decls of ModelRecord now in code file to avoid compiler errors on some compilers
 * Removed mmgr.h from being included regardless of configure option in Calender.cpp

30th April 2003, Simon Goodall
 * Fixed states so they are now loaded and assigned to entities properly
 * Fixed siily selection bug caused by deleting the wrong bit of code
 * Fixed Cal3d Loader code to use new TextureManager entries
 * SetScale function now support any number of texture units
 * Moved SkyBox and Terrain initialisation time so they can load in the textures

29th April 2003, Simon Goodall
 * Updated ModelLoader to assign state ids to models

26th April 2003, Simon Goodall
 * Now send out refnos with Atlas ops

26th April 2003, Simon Goodall
 * Texture Manager class now uses default values for filters if they are not specified

23rd April 2003, Simon Goodall
 * Added state manager to GL class
 * fps now displayed in title

23rd March 2003, Simon Goodall
 * Intergrated texturemanager into GL class.
 * Added docs for new texture config format

11th March 2003, Simon Goodall
 * Added base code for texture manager class

11th March 2003, Simon Goodall
 * Cally models can now specify additional textures to those that were specified on material createion

8th March 2003, Simon Goodall
 * Fixed possible NULL ptr exception in Character.cpp when calling entity->getContainer()

7th March 2003, Simon Goodall
 * RC file is now built as part of autoconf
 * Merged some minors diffs between some sear versions

6th March 2003, Simon Goodall
 * added file defining basic geometric types (vertex, normal, texel etc)
 * added enable-mmgr flag to configure

6th March 2003, Simon Goodall
 * Fixed terrain bug caused by array out of bounds. (might have broken something else though who thought comments were a bad idea?)
 * Fixed bug on cally re-write where first material was not loaded properly

6th March 2003, Simon Goodall
 * Updated cal3d loader to take height and default material set def

5th March 2003, Simon Goodall
 * Re-write of cal3d loader code. uses varconf format file for configuration and will allow material properties to be over-ridden
 * Fixed changelog dates - mix up in years and dates (oops)

4th March 2003, Simon Goodall
 * Changed terrain texture to use clamping to avoid problems on landscape boundaries
 * Removed landscape texture name output

15th February 2003, Simon Goodall
 * Terrain now uses a different texture map per heightmap
 * Terrain now uses multitexturing
 * glLockArarys used if available

31st January 2003, Al Riddoch
 * Add mechanism to detect correct version of varconf on systems with varconf
   for sigc++ 1.0 and 1.2 installed.

15th January 2003, Simon Goodall
 * Fixed segfault caused by an entity having no parents

14th January 2003, Simon Goodall
 * Fixed NULL pointer error in model loading code

11th January 2003, Simon Goodall
 * Added display lists to Render object. Paintbox and 3DS models are now rendered by display lists

24th December 2002, Simon Goodall
 * Queues are now built on actual state object, not state name.

24th December 2002, Simon Goodall
 * Removed remainder of time code from System object

24th December 2002, Simon Goodall
 * Converted render to use new light object
 * Moved time area functionality to Calendar

24th December 2002, Simon Goodall
 * Intoduction of a light management class

24th December 2002, Simon Goodall
 * Added console commands to set time and date

24th December 2002, Simon Goodall
 * Calender now has console command, "get_time" which displays current time and date in console
 * Added day and month names to config file

24th December 2002, Simon Goodall
 * Added basic Calender Object. Will replace System calender functions.
 * Minor changes to VarconfRecord. Now created with new instead of malloc

22nd December 2002, Simon Goodall
 * fixes for ISO c++

22nd December 2002, Simon Goodall
 * configure.in changes to remove warnings on newer autoconf versions
 * acconfig.h no longer required

22nd December 2002, Simon Goodall
 * Guard against possible seg fault if we request a colour id greater than allowed

21st December 2002, Simon Goodall
 * Precompute all selection colours so we can put array straight into renderer
 * Entities now directly stored in array for selection

20th December 2002, Simon Goodall
 * Removed unrequired code that slowed down selection process. We were storing a sequence of numbers in an std::set, this has been replaced by a single int.

18th December 2002, Simon Goodall
 * Updated required Eris version

14th December 2002, Simon Goodall
 * Removed icon transparency error message (no longer required)
 * Converted internal height map format from unsigned char to float

12th December 2002, Simon Goodall
 * Fixed Icon transparency under Win32

12th December 2002, Simon Goodall
 * Added icon file and resource script for win32 executable
 * Updated make_win32 script to build in app icon

11th December 2002, Simon Goodall
 * Cal3d options now allow specifying a particular material set on a per entity type basis

11th December 2002, Simon Goodall
 * Scripting engine now works with dos file formats
 * '#' is now the comment character until end of line 

11th December 2002, Simon Goodall
 * Converted scripting engine to use ifstream instead of FILE.

10th December 2002, Simon Goodall
 * Changed GL_CLAMP to GL_CLAMP_TO_EDGE to fix texture seams in skybox

10th December 2002, Simon Goodall
 * Applied patch by Al Riddoch to work with Eris 0.9.7
 * Changed abs to fabs in Cal3d_Loader for gcc 3.2 compat

10th December 2002, Simon Goodall
 * Bumped version number due to release

10th December 2002, Simon Goodall
 * Fixed bug in cally loader where every model was scaled by teh same height regardless of individual settings

10th December 2002, Simon Goodall
 * Fixed bug where front and back face polygon culling would sometimes cull the wrong side

7th December 2002, Simon Goodall
 * Fixed bug in Cally loader where it would segfault if it couldn't find a non-RAW texture
 * Landscape segments now have visibility test in addition to patch visiblity tests
 * Fixed landscape clipping from overclipping
 * Quick fix to in cal3d to allow alpha and lighting to be visible. setting diffuse[3] = 1.0f, otherwise model would be invisible

7th December 2002, Al Riddoch
 * common/mmgr.cpp: std:: namespace fixes.
 * Clean up compiler flag handling in configure.in

6th December 2002, Simon Goodall
 * file cleanups
 * Bumped version numbers

6th December 2002, Simon Goodall
 * Fixes hole where terrain joined
 * Fixes some config problems with terrain
 * Fixed segfault caused during terrain initialisation by using arrays before being created

3rd December 2002, Simon Goodall
 * Fixed terrain getHeight code
 * Fixed terrain so water level now scales with terrain scale
 * Reduced terrain popping effect by limiting amount of change per frame

29th November 2002, Simon Goodall
 * Fixed bug in config files where the path name was prefixed to a numeric value, fixed by adding another general config file

29th November 2002, Simon Goodall
 * Fixed an out by one error on the getHeight code in terrain
 * Fixd code terrain code so it will go to much greater detail than before

27th November 2002, Simon Goodall
 * Fixed some mad code which had limit checks set for the wrong end of increment and decrement functions

27th November 2002, Simon Goodall
 * ROAM engine can now handle multiple height maps
 * Fixed bug in sky box where one texture would not be displayed

13th November 2002, Simon Goodall
 * Camera position now saved according to user defined boolean option. "save_camera_position". default is false

12th November 2002, Simon Goodall
 * Fixed up model_viewer so it now compiles again. still a few got problems.
 * System's varconf config objects now actual objects and not pointers
 * All objects that read config data from general, now update variables when general updates.

30th October 2002, Simon Goodall
 * Removed obsolete model unloading code
 * Camera code now only performs update calculations if required 
 * Camera code now calculates its position vector from focus

30th October 2002, Simon Goodall
 * Removed last update due to problems

29th October 2002, Simon Goodall
 * Sear now uses XPM loader from SDL_image, instead of own version.

21st October 2002, Simon Goodall
 * Fixed clean up code for Cal3D models and  modelhandler so they remove all instances they create

20th October 2002, Simon Goodall
 * Converted many string values to static decl's
 * Moved most Log::writeLog calls to debug mode only
 * Added clean up code to 3ds loader code

20th October 2002, Simon Goodall
 * Filled in missing initialisers in System
 * Introduced optional dependancy on GLGooey. This will be the base for future GUI work. enable with configure option, --with-glgooey=yes
 * Added a gui under the server screen. "/switch_mode server". Lists metaserver work too.
 * Fixed a couple of memory leaks
 * Converted ActionLoader to use varconf to read files
 * Converted StateProperties to use varconf to read files
 * Added built-in font state to stateloader so we can see font regardless of what have been loaded in. This may still be overwritten externally.

09th October 2002, Al Riddoch
 * std:: namespace fixes. 

27th September 2002, Simon Goodall 
 * Re-implemented above character speech
 * Changed render queue passing to by-reference instead ob by val
 * Started code for a gui
 * Added multiple screens to Sear for gui stuff. Once you have taken or created a character, you need to type "/switch_mode world" to see the game world.

26th September 2002, Simon Goodall 
 * Fixed bug with NPlane loader where back faces got confused
 * Removed billboard and impostor loaders. NPlane loader provides there functionality.
 * Fixed bug where dropping an entity (and probably giving too) caused sear to hang
 * Fixed bug where stringstream work around was never implemented

26th September 2002, Simon Goodall 
 * Fixes to outline code which was using wrong values for states
 * Removed some now unused members from Model class

26th September 2002, Simon Goodall 
 * Re-implemented model unloading
 * Fixed bug where model was selected upon available record, but texture was selected upon its original type.

26th September 2002, Simon Goodall 
 * Camera height is now based upon character height

26th September 2002, Simon Goodall 
 * Re-implemented frustum culling

26th September 2002, Simon Goodall 
 * Changed Model/Object properties loading mechanism. New version allows more than one model per entity, allows different quality/detail level of models and provides a much more flexible interface for arbitrary model loaders. This causes the existing model configuration files to be obsolete. Still lots of work to do to bring back to required functionality.

21st September 2002, Simon Goodall
 * Changed billboard/imposter/nplane to have two polygons, instead of one. Allows backface culling and removes two-sided lighting
 * Added a spec file for the media.

11th September 2002, Simon Goodall
 * Cally models now scale to height of bounding box. Requires cally config file to have the scale option set to unit height

9th September 2002, Simon Goodall
 * Fixed states file so Slice models now blend with lighting enabled.
 * Added check so if sound doesn't initialise, Sear still runs

8th September 2002, Simon Goodall
 * New console command; cd_this_dir - when run in a script, will change the current dir to the directory the script is located
 * Fixed bug where default textures were not properly set up. caused by not including the section name when they were stored

8th September 2002, Simon Goodall
 * Fixed bug in model loaders where the model was still used even if it failed its init call

8th September 2002, Simon Goodall
 * Finally removed cal3d usage of opengl. Textures are now handled like every other texture in Sear

8th September 2002, Simon Goodall
 * Removed optionability of lib3ds and cal3d due to  incompatibility problems of the method used

8th September 2002, Simon Goodall
 * Updated depend on varconf 0.5.4 release instead of CVS

8th September 2002, Simon Goodall
 * Minor optimisation - converted for loop variables from postfix to prefix ++

8th September 2002, Simon Goodall
 * Removed uneccessary code from Utility class
 * Added test to configure to detect buggy stringstream and apply workaround

7th September 2002, Simon Goodall
 * Added initialation check to all objects with init/shutdown methods
 * added cvs tag Id: to all source files

7th September 2002, Simon Goodall
 * Added intialisation check to all loader objects

7th September 2002, Simon Goodall
 * Added support for the  GL extension: EXT_texture_filter_anisotropic
 * Added support for the  GL extension: SGIS_generate_mipmap
 * Added check to Cal3d destructor to make sure shutdown gets called before deletion

7th September 2002, Simon Goodall
 * Changed order of configure library detection to follow dependancies

6th September 2002, Simon Goodall
 * Changed model animations to be based upon mode and action fields in an entity instead of its velocity
 * Fixed bug in Cally code where animations were only asigned to the first model instance of a core type

6th September 2002, Simon Goodall
 * Added options to Slice loader for number of slices per slicing and number of slicings in the model
 * Commented out the printing of redundant SDL info that caused problems on some older compilers.

5th September 2002, Simon Goodall
 * Fixed problems in Object/Stae/Action Loader code which caused an error message to be printed when the end of file was reached. Also now allows use of the # character in the first position in a line to denote a comment.
 * Minor changes to Slice code

3rd September 2002, Simon Goodall
 * Added first version of a slice loader. This will hopefully allow for trees as in A Tale in the Desert. Currently will load and blend in the foilage area. Trunk model not yet implemented.

3rd September 2002, Simon Goodall
 * Added new class called FileHandler. Currently this allows you to add or remove search paths. It also allows searching for the first or every occurance of teh file name in the search paths. The main aim is to search for the startup and shutdown scripts. An extra command line argument has been providied to allow extra search paths for the startup scripts.

2nd September 2002, Simon Goodall
 * Fixed bug in rendering code when using mipmaps with alpha blending caused corrupted graphics to be displayed. Caused by not checking whether image was RGB or RGBA

1st September 2002, Simon Goodall
 * Updated stateloader to use the default state before emitting an error message
 * Updated 3DS code to load a wider range of models.
 * Updated 3DS code to load in textures assigned in the second texture, bump and reflection slot as well as the initial texture slot. The texture used will be the first one found.

31th August 2002, Simon Goodall
 * Fixed bug where "Cannot SAY..." was displayed even if connected to game world

31th August 2002, Simon Goodall
 * Cal3d and Lib3ds are now optional, but recommended

31th August 2002, Simon Goodall
 * Cal3d loader now supports adding and removing meshes. Model viewer option added to test this

31th August 2002, Simon Goodall
 * Added support for multiple texture sets in cal3d loader.
 * Added extra options to model viewer.
 * Added a light source to modelviewer.

31th August 2002, Simon Goodall
 * Fixed bug with cally models where models appeared white instead of their material colours. Caused by scaling the cally model which upsets the normals. Added option to state manager to enable GL_RESCALE_NORMAL to fix this
 * Fixed bug in ROAM code where the height map was free'd twice
 * Cally config files now need to specify what type of animation the animation file is. e.g. animation_walk=walk_animation.caf

30th August 2002, Simon Goodall
 * Code changes for new Metaserver design

27th August 2002, Simon Goodall
 * Added message "Cannot SAY, not in game yet" when entering a non-command string into console before entering game world

27th August 2002, Simon Goodall
 * Some GCC 3.2 fixes
 * Cal3D loader now uses a single CalCoreModel per model type instead of one per model.

23rd August 2002, Simon Goodall
 * Added additional command to modelviewer. pressing "g" will now toggle the visibility of the axis

23rd August 2002, Simon Goodall
 * Billboards, Impostors and NPlanes now "clamp" textures to avoid visual defects

23rd August 2002, Simon Goodall
 * Added metaserver support. Currently displays active servers in stdout. use the command "/get_servers"
 * Modified Impostor code so to optionally use two textures instead of one.

21st August 2002, Simon Goodall
 * Added base code for using the Eris::Lobby chat interface

21st August 2002, Simon Goodall
 * Sound now uses Log class instead of cerr or printf
 * Character actionhandler events are now type based

21st August 2002, Simon Goodall
 * Fixed bug where two_sided_lighting was never enabled even if requested
 * Defined default material properties for most objects instead of using whatever the last set properties were

21st August 2002, Simon Goodall
 * Added support to loop sound files
 * Added ActionHandler events for walking running, and stopped
 * Stationary cally models now in idle pose

21st August 2002, Simon Goodall
 * ActionHandler events now fire for dawn, dusk day and night

21st August 2002, Simon Goodall
 * Fixed bug found and solved by damien when displaying speech caused a segfault on some systems.

20th August 2002, Simon Goodall
 * ActionHandler will now emit an even when the character enters another container of the name: "entering_" + entity_type

20th August 2002, Simon Goodall
 * Added an actionhandler class. Aim is to notify the class of an event such as system start, or character walking and run an associated script file. Main use is to link in sound effects or even animations.
 New console commands
 "/load_action_config filename" loads the action config file
 "/do_action action" perform an action

20th August 2002, Simon Goodall
 * Added option to play and stop music. "/play_music file" plays the track. "/stop_music" stops the music

20th August 2002, Simon Goodall
 * Improved sound by changing from SDL-sound to SDL_mixer. This allows multiple sounds to be played at once

20th August 2002, Simon Goodall
 * Added sound support to Sear through SDL_sound library. use the console command "/play_sound sound_file" to play a sound. currently will only play one sound file at a time.

20th August 2002, Simon Goodall
 * Updated comments for console code

20th August 2002, Simon Goodall
 * Added two new console commands: get_time and set_time. get_time prints the current time on the console. set_time allows you to set the current time.

19th August 2002, Simon Goodall
 * Modified console so all commands now start with a '/' excluding those already beginning with a '+' or '-'. All other entries will be classified as speech.

19th August 2002, Simon Goodall
 * Fixed SEGFAULT caused by object having no parent type specified in model loaders

19th August 2002, Simon Goodall
 * Added +/- keys to allows vertical repositioning of model in model viewer

19th August 2002, Simon Goodall
 * Improved camera control. Now same as in Sear

19th August 2002, Simon Goodall
 * Model Viewer now updates in real-time instead of a fixed value
 * Better mouse interface for model viewer

19th August 2002, Simon Goodall
 * Fixed error message "Not connected" when trying to login when already logged in
 * Model viewer now allows actions to be performed. Use number keys 1 through 4.  1 - Walk
  2 - Run
  3 - Some Model defined action - normally wave
  4 - Some Model defined action

18th August 2002, Simon Goodall
 * Model viewer now uses SDL instead of GLUT

18th August 2002, Simon Goodall
 * Changes to states file which fixes some lighting problems when using mouse_move_select

18th August 2002, Simon Goodall
 * Possible fix to Win32 Fullscreen bug
 * Minor changes so code uses pointers passed to them in the constructor instead of getting it from elsewhere everytime it is required.

18th AUGUST 2002, Al Riddoch
 * Added configure check, and fixes so that the code builds with sigc++ 1.2

17th August 2002, Simon Goodall
 * Intorduced ModelStruct to encapsulate all data required to produce a model.
 * Some more internal changes made to get the model_viewer code working in tools dir

### SEAR 0.4.1 RELEASED ###

14th August 2002, Simon Goodall
 * Updates for cross-compiling

13th August 2002, Simon Goodall
 * Fixed potential seg faults on 3ds loader
  - Fault 1 caused by no material name
  - fault 2 caused by multipling a value instead of adding to it

### SEAR 0.4.0 RELEASED ### 

12th August 2002, Simon Goodall
 * Fixed bug where  height map location was blanked unless explicitly added to home dir general.
 * Fixed bug where camera position was stored in config files
 * Updated configure.in to produce better debug infomation
 * Added callback to varconf error signal in System

7th August 2002, Simon Goodall
 * Updated makefile.am's to be able to create a distribution
 * Updated configure.in to point the user to web locations for missing libraries
 * Included replacement files for media pack

6th August 2002, Simon Goodall
 * Fixed seg fault caused by specifying 0x0 window size
 * Converted Sear to use varconf instead of own Config system. This has caused the format of the configuration file (excluding object and state loader files) to have changed to accomodate the varconf format. Additionally the definition of keys has changed to work with varconf. See src/Bindings.cpp for the new values.

5th August 2002, Simon Goodall
 * scale property added to objectloader. Currently only used by 3ds loader
 * offset property added to objectloader. Currently only used by 3ds loader
 * Enabled 3ds material properties

4th August 2002, Simon Goodall
 * Further improvements on 3ds support. Now uses vertex arrays to improve performance and fixed a bug where the texture was loaded many times per object per frame which had a huge performance hit.

3rd August 2002, Simon Goodall
 * Improved 3ds support and allow use of textures

2nd August 2002, Simon Goodall
 * Added an NPlane model type. like billboard and impsoter, but makes model from N planes. Only works for odd values of N such as 3 or 5

2nd August 2002, Simon Goodall
 * Added two-sided-lighting option to state loader
 * Fixed state change bug where current state was never set
 * Fixed model by type bug where only one model of a type was actually rendered
 * Re-implemented detail level control
 * Fixed outlining bug where using alternate method caused problems for cal3d and bound/boxes

1st August 2002, Simon Goodall
 * Updated Factory.h and WorldEntity class to accomodate changes to Eris
 * Graphics class introduced which performs the generic rendering functions, while Render now only does the specific ones
 * Fixed bug where default font would not be used even if no font was specified
 * Converted terrain engine to use a vertex arrays instead of drawing each triangle one by one
 * Terrain engine no longer uses OpenGL directly

24th July 2002, Simon Goodall
 * Re-implemented floating character speech
 * Fixed selection bug caused by using a texture when they should have been disabled

22nd July 2002, Simon Goodall
 * Some fixes for cross-compiling

22nd July 2002, Al Riddoch
 * src/Utility.cpp: ISO C++ fixes.

22nd July 2002, Simon Goodall
 * Fixed bug where state changes were created in a display list, but the display list was not actually used!

22nd July 2002, Simon Goodall
 * Default texture and font now really xpm files as exported from gimp

22nd July 2002, Simon Goodall
 * Added a built-in texture that will be used should the requested one be invalid
 * Added a built-in font texture that will be used should the requested one be invalid

22nd July 2002, Simon Goodall
 * Placed exception handling in client console commands.
 * Console command errors will print error messages to console instead of just to log
 * Fixed Config bug where random data was written to files. Caused by using unitialised arrays

20th July 2002, Simon Goodall
 * Added a command history
 * Sky and Terrain code moved to sepatate dirs/libs
 * Remove SkyBox reliance on OpenGL

19th July 2002, Simon Goodall
 * Fixed console bug where only first argument was processed.
 * Removed extra refrences to the GL render code
 * Added camera commands

19th July 2002, Simon Goodall
 * Console commands fully migrated.
 * Tokeniser code now in own class,
 * Fixed segfalut caused by not providing the exact number of arguments to a console command

10th July 2002, Simon Goodall
 * Console command registering implemented. Need to migrate existing system to new

10th July 2002, Simon Goodall
 * Re-implemented Frustum culling
 * Stateloader file now loaded via console command instead of hardcoded location
 * Fixed console text bugs caused by wrong state in use
 * Re-implemented model running / walking and added it to other models too. anything with a vel above root 7 will be running
 * Re-implemented object outlining

10th July, Simon Goodall
 * Moved state code to separate class and read settings from a file instead of hardcoding them.

8th July 2002, Simon Goodall
 * Basis for Sear Model Viewer
 * OpenGL renderer code moved to separate dir than main source
 * Minor fixes to model loaders
 * Directory cleanups

5th July 2002, Simon Goodall
 * Improved 3ds model loader - now adds in normal and texture data if possible. (CURRENTLY NOT IN NEW MODEL INTERFACE)
 * Improved comments in some header files
 * Introduced New model loading interface. Specific model type are in sear/loaders. Main code only knows about Models and ModelLoader interfaces. As such models currently do not load as required.

3rd July 2002, Simon Goodall
 * Removed some redundant rendering code
 * Added base for 3ds model loader - currently only loads mesh

2nd July 2002, Al Riddoch
 * ISO C++ compliance fixes.

1st July 2002, Simon Goodall
 * Log applied to Bindings, Camera, Character, Config, Console, Event, GL_Render, Model, Object Loader, SkyBox, System, Terrain and WorldEntity classes.
 * debug.h removed as will be encapsulated in Log class
 * System re-order fixed.
 * Now use WFMath's Pi instead of system defined
 * Moved degree to radian macro to template code in utilit class
 * Moved SQR code to utility class
 * Allow character strafing

30th June 2002, Simon Goodall
 * Implemented basic Exceptions to eventually replace all error checking
 * Added Sear Namespace
 * Added support for Cal3D models to use different texture file types using SDL_image - THIS NEEDS TESTING

28th June 2002, Simon Goodall
 * Implemented basic Log object to eventually replace all cout / cerr / DEBUG msgs

18th June 2002, Simon Goodall
 * Replaced unique colour counter code with a much faster implementation. The new implementation obtains the first 500 unique colours which should be greater than the possible amount of objects to be rendered.
 * Fixed water feature
 * Fixed a bug that stopped Sear working with Stage
 * Added a change directory function to scripting engine
 * Added ability to prefix current directory to entiries on loading into config data
 * Media now moved into separate "Media Package"
 * Probably more, but its been awhile

22nd May 2002, Simon Goodall
 * Fixed SEG fault caused by re-reading config before a character object was created
 * Further updates for gcc 3 compilation
 * Fixed problems in lighting caused by enabling two-sided lighting.
 * Replaced colour splash with a "loading please wait message"
 * Fixed potential mempry leak caused by toggling fullscreen in Win32
 * System now deletes models that have not be unsed for over 1 min
 * User def far_clip
 * User def terrain_scale
 * Fixed terrain loading bug

16th May 2002, Simon Goodall
 * Applied patch by Alriddoch to compile under gcc 3.01. This also reduced the far clipping plane from 1000 to the more reasonable value of 100
 * Enabled two sided lighting to fix lighting problems with billboards and Impostors
 * Fog now changes colour depending upon light level
 * toggle_console now works with keys defined by braces, e.g. {F10}
 * Allows different resolutions
 * --enable-debug=no now turns off debug information from eris
 * Names now appear over currently selected object
 * Camera now has range limiting
 * console command read_config will tell system to re-read the config values in the general config loader

14th May 2002, Simon Goodall
 * Fixed bug where time cycle sped up
 * Stencil highlights now optional
 * WireFrame now uses vertex arrays

13th May 2002, Simon Goodall
 * Fixed wire frame functionality. It was potentially using uninitialised bboxes
 * Added frustum culling using sphere tests.
 * Improved lighting system. Sun now moves and has user definable dawn/dusk times
 * Added option in configure to enable debug information. Debug information is a possible cause of Sear hanging upon exit on some systems.
 * Added use of video mode querying to provide additional startup information
 * Moved lots of rendered code into vertex arrays to improve speed.
 * Removed lots of redundant rendering code from GL_Render.cpp

10th May 2002, Simon Goodall
 * Fixed bug caused by setting install directory too late

10th May 2002, Simon Goodall
 * Added version string to command line arguments. use -v or --version
 * Added help message to command line args. use -h or --help
 * Use of sstream and strstream to perform type conversions
 * Allows connection to a server on any port
 * Allow creation of characters of different type` and sex
 * Lots more messages on standard out
 * Fixed bug that used the same cally model for a given type.
 * Fixed bug where camera was not properly fixed to the vertical position of the character
 * Added wire_frame queue
 * System will downgrade none-existent model types until wire-frame is reached
 * Minimised Open GL state changes
 * Replaced OpenGL selection by a colour selection method. Improves accuracy and works with blending
 * Added halo effect to selected entities
 * Added different cursors depending upon current action
 * Changed pickup and touch to effect the next entity selected and not the current one

1st May 2002, Simon Goodall
 * Entities are now drawn according to object properties
 * New Object Properties; draw_self and draw_members; determine what gets drawn
 * Object properties file contains entries for most structures so as to hide bbox lines
 * toggle_console can now really be bound to any key instead of just back quote
 * Changed configure.in to fix INSTALLDIR being set to NONE in some cases
 * Added support for billboard / impostor styles of rendering
 * Fixed problems as seen in the sky box where seams were visible. GL_CLAMP wasn't being set properly.
 * Lots of internal changes. Hopefully much more stable now.
 * System loads a float terrain if height map not found.

27th April 2002, Simon Goodall
 * Fixed possible seg faults caused by attempting to control character before having one
 * Applied patch file by man-di fixing problems caused by previous definitions of M_PI

25th April 2002, Simon Goodall
 * Model height is now more in line with landscape height
 * Tidied up code
 * Fix seg fault that occurred if cyclient was run
 * Changed way normals are calculated on terrain.

Initial Change Log, Simon Goodall
