Crystal Entity Layer (CEL) detailed change log.
http://cel.crystalspace3d.org/

The history order is reversed so that new features are at the top.

25-Jan-2006
        - Magodra fixed two memory leaks where propclass linmove and
          meshfact didn't free a propdata table.
17-Jan-2006
        - Genjix uploaded new hover changes. These include a slower
          ticking time and more information on the objects state.
13-Jan-2006
        - Genjix fixed ticker being frame dependent was solved (ticking
          too fast).
        - Genjix changed upthrust once for time being while improving
          correlation between slow and fast machines.
        - Genjix provided Continuity corrections between lower bounds of
          DefaultHeightFunction ()
        - Genjix moved stabiliser distributions, so outside apps can link to it.
        - res2k pointed out a leak in ref pointers.
11-Jan-2006
        - Genjix converted hover property class objects to have cel prefix.
          Stabiliser function base class is now reference counted.
        - Genjix added New craft controller property class for turning craft type
          objects left and right, and up and down.
          No thruster part, nor functions for setting angular damping yet.
        - Genjix created functions for setting turning settings
          (turn speed, turn max speed)
        - Genjix made Timer base class for CEL property classes that wish to have
          periodic ticking (just inherit and pass pl reference to constructor)
	- Dariusz Dawidowski make a few updates in xml behaviour:
	  rand() function - using csRandomGen instead of standard cpp rand().
	  Added <randomize /> - sets new seed.
	  Added <quit /> - exit to OS.
        - res updated mk/autoconf and mk/jam from the CS master copies.
        - res improved static linking with VC.
09-Jan-2006
        - res updated mk/autoconf and mk/jam from the CS master copies.
        - res adjusted the VC project generation to generate VC7, 7.1 and VC8
          projects, just as CS now does.
	- Dariusz Dawidowski added overloaded iPcLinearMovement::SetPosition
  	  method with name of the node instead of position vector.
07-Jan-2006
        - Genjix added a hover property class plugin. For a given
          entity this will hover an object over the given mesh object.
          Plan to document soon.
05-Jan-2006
        - Arianna fixed some warnings (MSVC 7.1 - 64 bits).
30-Dec-2005
	- caedes replaced an apparition of ulong in blcel.i by unsigned long,
	  as this is not recognized on some platforms.
19-Dec-2005
	- Jorrit fixed pccommandinput so that it tests if ParseOther()
	  fails and reports an error. This will make it easier to debug
	  wrong 'Bind' invocations.
18-Dec-2005
	- Vincent Knecht updated tcp network plugin for new CS event
	  system. nettest still doesn't react to movement keys though.
15-Dec-2005
	- caedes fixed the python behaviourlayer to compile again with
	  the changes in CS event system.
	- caedes added some more parameter types to GetParameterValue
	  extension to iCelParameterBlock in blcel.i.
	- Jorrit fixed pcmeshselect so that it normalizes the mouse
	  buttons to the new values in CS again. Also added a new
	  method to set mouse buttons which uses 'l', 'r', and 'm'.
	  This is also accessible from XML.
	- Jorrit fixed a crash at exit in bootstrap.
9-Dec-2005
	- Jorrit made CEL compile again after the latest CS event
	  changes. However, CEL remains broken until the function
	  csInputDefinition::ParseOther() in CS is fixed!!!
6-Dec-2005
	- Jorrit added scr_width and scr_height functions to the XML
	  behaviour layer.
4-Dec-2005
	- Jorrit added new font, and color options to the billboard.
	  Also extended the billboard property class with properties
	  to set them.
	- Jorrit added support for font size to the billboards.
	  Note! The property font_size msut be set before setting the font
	  property.
2-Dec-2005
	- Jorrit added new 'mousex' and 'mousey' functions to the
	  XML behaviour layer.
	- Jorrit added a few functions to the billboard manager to convert
	  screen to billboard space and vice versa.
	- Jorrit added new 'bb_mousex' and 'bb_mousey' functions to the
	  XML behaviour layer. They return mouse position in billboard
	  space.
	- Jorrit added support for attaching text to billboards. Not
	  working properly yet.
28-Nov-2005
	- res updated the Autoconf, Jam, and msvcgen files from the master
	  copies in the CS repository.
27-Nov-2005
	- Jorrit added iPcZoneManager->SetLoadingMode(). With this you
	  can set three modes for the zone manager:
	    - CEL_ZONE_NORMAL: load/unload regions as needed
	      (default).
	    - CEL_ZONE_KEEP: load regions as needed but keep them
	      in memory.
	    - CEL_ZONE_LOADALL: load all regions immediatelly.
	- Jorrit fixed another case where CreateEntity() was called
	  with 0 integer instead of 0 pointer. This is wrong on 64-bit
	  computers.
25-Nov-2005
	- Jorrit removed the unneeded TickEveryFrame() and TickOnce()
	  methods from iCelPropertyClass. These were moved to
	  iCelTimerListener some time ago.
	- Jorrit fixed awswin property class so that it actually works.
	  Only input events are not yet working.
	- Jorrit completely fixed awswin property class. It works fine now.
24-Nov-2005
	- Jorrit worked a bit further on the pcawswin property class.
23-Nov-2005
	- Jorrit added a new pcawswin property class. This property class
	  corresponds to an AWS window. It is still unfinished though. A
	  few things still need some work.
10-Nov-2005
	- Jorrit added SetMaterial action for pcmesh.
	- Jorrit fixed the pcmechjoint property class so that it removes the
	  joint at destruction time.
	- Jorrit fixed the pcmechobject property class so that it removes
	  the body at destruction time.
	- Jorrit fixed a big leak in pcmechobject. It was having an
	  embedded callback object that caused a circular leak.
9-Nov-2005
	- Jorrit added ClearRotation and LookAt actions to pcmesh and
	  pcmechobject property classes.
	- Jorrit added SetVisible action to pcmesh.
	- Jorrit changed the iJoint reference in the joint property class to
	  a weakref to prevent crashes at exit when odedynam has been
	  destroyed but the joint property class has not.
8-Nov-2005
	- David Bronke moved the new Load and Save methods to the end of the
	  interface and bumped the micro version number on iCelPersistence.
	- David Bronke added overloaded Load and Save methods to the
	  iCelPersistence interface and all persistence plugins to implement
	  saving to and loading from an iFile.
	- Jorrit fixed pcmeshselect so that it really correctly
	  accounts for offset. Both in world as in camera space.
	- Jorrit added LGPL notice to all mechanics headers.
	- Jorrit fixed a small memory leak in pcmechobject.
	- Jorrit added a new iPcMechanicsJoint property class.
	- Jorrit removed the now obsolete CreateJoint action in
	  the mechanics system.
7-Nov-2005
	- Jorrit fixed XML behaviour so that camera is created before
	  the region. That way the camera can already be used from within
	  initialization portions of the scripts.
	- Jorrit fixed pcmeshselect so that it works again now that
	  mouse move events no longer send the button.
	- Jorrit added a SetPosition action to iPcMechanicsObject.
	- Jorrit fixed mesh selection so that the selection offset is
	  properly kept (meaning the object will not jump to origin
	  when you drag it).
5-Nov-2005
	- Jorrit fixed a bug in the force actions of the mechanics
	  plugin.
4-Nov-2005
	- David Bronke added documentation of the actions available for
	  iPcSimpleCamera.
	- Jorrit changed the mechanics plugin so that the name of the
	  body that is created is set to the name of the entity.
	- Jorrit added the actions AddForceTagged and RemoveForceTagged to
	  iPcMechanicsObject. The tag is returned in the 'lasttag' property.
	- Jorrit fixed a bug in AddForceTagged in the mechanics plugin.
	  The first force added with AddForceTagged wouldn't work because the
	  forceid would be 0 and the function that performs all forces checks
	  on this. Fixed it by setting the forceidseed to 1 instead of 0 so
	  that the first forceid will be 1 instead of 0.
	- Jorrit fixed iPcMesh::SetMesh() and the LoadMesh action so that it
	  really works when the filename is set to 0.
	- Jorrit added new 'CreateJoint' action to iPcMechanicsSystem.
	- Jorrit made sure that bodies are also attached to entities now
	  (through the iObject system).
	- Jorrit fixed the 'otherbody' parameter for the pcdynamicbody_collision
	  message.
	- Jorrit added support for the 'position' property to iPcMesh.
3-Nov-2005
	- Jorrit added the following actions to iPcMechanicsObject:
	    - SetLinearVelocity
	    - SetAngularVelocity
	    - AddForceOnce
	    - AddForceDuration
	    - AddForceFrame
	    - ClearForces
	- David Bronke added documentation to the mechanics API for the actions
	  supported by iPcMechanicsThruster, iPcMechanicsThrusterGroup, and
	  iPcMechanicsThrusterController.
2-Nov-2005
	- Jorrit added proper documentation to the mechanics system
	  API about the actions that are supported by iPcMechanicsSystem
	  and iPcMechanicsObject.
	- Jorrit fixed the iPcMechanicsObject->SetMesh() so that it
	  actually uses the mechpctag parameter.
	- Jorrit fixed all methods that search on tag (like
	  CEL_QUERY_PROPCLASS_TAG) so that they now consider the empty string
	  as a null tag as well (i.e. "" is equivalent to 0).
	- Jorrit made the following parameters optional for the mechanics
	  object:
	      - meshpctag for SetMesh, default 0.
	      - radius for SetColliderSphere (default 1).
	      - offset for SetColliderSphere (default 0,0,0).
	      - radius for SetColliderCylinder (default 1).
	      - offset for SetColliderCylinder (default 0,0,0).
	      - angle for SetColliderCylinder (default 0).
	      - axis for SetColliderCylinder (default 0,0,0).
	      - size for SetColliderBox (default 1,1,1).
	      - offset for SetColliderBox (default 0,0,0).
	      - angle for SetColliderBox (default 0).
	      - axis for SetColliderBox (default 0,0,0).
	      - offset for SetColliderPlane (default 0).
	- Jorrit made all parameters for InitPhys optional.
	- aarobber added working first person + third person camera modes to
	  the new camera along with some spring physics.
	- Eric Sunshine fixed blcel.i to take into account the removal of
	  dynmove.
	- Jorrit changed the mechanics plugin so that the system is called
	  'cel.mechanics.system'.
 	- Jorrit added SetStepTime, QuickStep, EnableStepFast, and
	  DisableStepFast actions to the mechanics system.
1-Nov-2005
	- Jorrit removes the now obsolete dynmove property class. Use
	  mechanics instead.
27-Oct-2005
	- Jorrit fixed CEL for the latest CS changes (object hierarchy).
        - aarobber added some half-done work to the new camera system.
	- caedes changed celPcMechanicsObject::AddForceTagged to return the
	  forceid instad of setting it by reference using an alias.
	  (so the function now takes one less parameter, might break some
	  existing code, but api for this function was not ok).
26-Oct-2005
	- caedes corrected a minor bug in the tooltip property class that
	  prevented setting the background colour to transparent.
	- caedes adapted both bootstap and blxml to use celParameterBlock
	  type of arguments for SendMessage.
	- Jorrit added XML support for setting a lightmap cache for a region
	  in the zone manager. This was already possible in code. The syntax
	  is:
	    <region name=...>
	      <cache path="/gamedata/cache" />
	    </region>
	- caedes added iCelRegion::DissociateEntity(iCelEntity),
	  iCelZoneManager::GetLastStartRegionName() and
	  iCelZoneManager::GetLastStartName(). For easier access to this
	  parameters from scripts.
22-Oct-2005
	- caedes changed reference to box factory in portal_world from
	  /this/data/box to /cellib/objects/box so smallgame does not
	  depend on running it from cel directory.
21-Oct-2005
	- David Bronke added a forward declaration of iCelPlLayer to
	  include/celtool/persisthelper.h to fix a compilation issue when that
	  header was included without pl.h.
	- caedes added python bindings for the sound property classes.
	- caedes corrected trigger property class so it sends a parameter
	  of type CEL_DATA_ENTITY instead of CEL_DATA_IBASE in its
	  messages to behaviours.
	- caedes added some more types to CelParameterBlock::GetParameterValue
	  python extension (entity, ibase, color, propertyclass, action).
	- Jorrit fixed mechtest to use lara camera mode. That works a lot
	  better after the camera is now correctly trying to stay behind
	  the ball (a fix of a few days earlier).
	- Jorrit added support for attaching lights and cameras to
	  rigid bodies (in addition to meshes).
	- caedes updated blxml, bootstrap and xmlgames to use the new sound
	  system.
20-Oct-2005
	- David Bronke added SetMesh and SetPosition actions to the simple
	  camera.
	- David Bronke fixed a diagnostic message in
	  iPcMechanicsThrusterController.
	- Jorrit fixed the default camera so that it is more tolerant
	  when there is no mesh.
18-Oct-2005
	- Jorrit changed the velocity for lara camera to 1 in case there
	  is no linmove. That at least makes that camera mode work better now.
	- Jorrit changed iPcDefaultCamera->SetMesh() to SetEntity() as this
	  is more general and also allows the camera to fetch the linmove
	  from that other entity (and not only the mesh).
	- Jorrit changed the default camera so that it now also considers
	  objects that use the mechanics system (instead of linmove).
17-Oct-2005
	- Jorrit added SetMesh() to the default camera so that you can
	  change the mesh that the camera will point too.
	- Jorrit added some support for extracting rotation from the
	  mesh in case linmove is not used. That fixes thirdperson mode
	  for meshes with no linmove (but it doesn't fix some of the other
	  modes like lara_thirdperson).
3-Oct-2005
	- Jorrit fixed a bug in the mechanics plugin. In AttachColliderMesh()
	  it would pass the movable transform into the creation of the
	  collider mesh as well but that is wrong as that transform is
	  set separatelly on the body so essentially it was setting the
	  movable transform twice.
	- Eric Sunshine eliminated compilation warnings about unused Report()
	  function.
2-Oct-2005
	- Eric Sunshine fixed compilation error due to ambiguity in invocation
	  of iCelDataBuffer::Add() invoked from
	  celPcActorMove::GetPersistentData().
	- Eric Sunshine added 'dot' check to configure.ac since 'dot' is now
	  used by doxygen.jam, if present.
	- Eric Sunshine upgraded pubapi.dox and devapi.dox to more closely
	  resemble their counterparts in CS.
30-Sep-2005
	- Eric Sunshine updated the Autoconf, Jam, and msvcgen files from the
	  master copies in the CS repository.
27-Sep-2005
	- David Bronke performed some code cleanup in celPcSimpleCamera and
	  fixed a bug in explicitly setting the mesh for the camera to follow.
	- Jorrit fixed a bug in pclinmove. It was not calling UpdateMove()
	  after rotating the actor.
	- Jorrit fixed pcactormove so that it now constantly updates the
	  sound listener when the actor moves.
	- Jorrit also correctly sets up the direction for the listener in
	  pcactormove.
24-Sep-2005
	- Jorrit ported the CEL sound system to the new CS sound system.
	  Works a lot better now.
20-Sep-2005
	- David Bronke implemented celPcCommandInput::ScreenCoordinates (),
	  which was empty for some reason.
	- David Bronke performed some minor code cleanup in iPcSimpleCamera.
	- Jorrit fixed CEL for latest CS changes (loader plugin related).
19-Sep-2005
	- Jorrit added pcsoundlistener and pcsoundsource property classes. This
	  are the start of sound system in CEL. The listener is usually
	  attached to the player entity. There can only be one listener. The
	  sources are individual sound sources. Currently the system mostly
	  works although 3D sound is not operating correctly yet. Work in
	  progress.
	- Jorrit extended celtest so that the actor has a sound listener. Also
	  celtest will now load the sound renderer and loader plugins.
	- Jorrit extended pcactormove so that it will now attempt to update the
	  listener position as soon as the actor moves. This is not 100%
	  functional yet.
	- Jorrit committed a patch from Oliver Rendelmann to implement a
	  slot based system for the inventory property class.
15-Sep-2005
	- David Bronke added a SetMesh function to iPcSimpleCamera to allow
	  you to explicitly specify what mesh the camera should follow.
12-Sep-2005
	- Jorrit fixed CEL configure so that it finds CS again.
9-Sep-2005
	- Eric Sunshine increased the minimum required Swig version from 1.3.20
	  to 1.3.22 in configure.ac since blcel.i now requires features
	  introduced in 1.3.22.
6-Sep-2005
	- Eric Sunshine eliminated a bunch of compilation warnings reported by
	  MSVC 7.1 about possible numeric truncation.
5-Sep-2005
	- Andrew Dai added SetHugGround(bool) to allow the pcmesh to be
	  transformed according to the contour of the ground, this defaults
	  to false unless the model's z dimension is greater than 1.
	- caedes extended python interface for iCelParameterBlock with
	  GetParameterValue function. This gets a csStringID as parameter and
	  returns the appropiate python object according to celData contents.
	- caedes corrected a bug in pfinput where parameters for mouse and
	  joystick messages where being set in return value instead of passed
	  parameter block when messaging entities.
4-Sep-2005
	- Andrew Dai improved celPcLinearMovement so that it can transform
	  the pcmesh to follow the contour of the ground it is standing on,
	  with HugGround().
	- Eric Sunshine added a pthread check to configure.ac, and upgraded the
	  HawkNL check to utilize the pthread results since pthread is needed
	  by HawkNL on some platforms.
30-Aug-2005
	- Jorrit fixed CEL for latest CS (cal3d changes).
25-Aug-2005
	- res made some compile fixes.
        - res removed the (now unneeded) ODE dependency.
24-Aug-2005
	- Jorrit fixed the actormove plugin. It is illegal in C++ to
	  do 'char bla[var]'. You must use allocation here.
23-Aug-2005
	- Jorrit committed the networking plugin from Christian van Brussel
	  after fixing a few issues:
	    - Added missing LGPL notice to some of the files.
	    - Reformatted a bit.
	    - Fixed an initialization bug in nettest (gfm was not initialized
	      to 0 and that would cause a crash if you do nettst -help).
	    - Changed nettst to nettest target.
	    - Extended nettest so it also responds to -help in addition
	      to -nethelp.
	  Some info:
	    - Run nettest with -nethelp to get help about how to use it. You
	      can run one server and multiple clients.
	    - The TCP plugin requires HawkNL. Currently the configure script
	      has not been extended to detect HawkNL so you'll have to modify
	      Jamconfig manually to get it to compile. Basically you must
	      add the path to the 'nl.h' include file to COMPILER.CFLAGS and
	      the path to the libNL.a file to COMPILER.LFLAGS. In addition
	      you must also copy NL.dll/NL.so to your system path or to the
	      current directory.
	- res added a configure check for HawkNL.
	- Jorrit fixed a bug in nettest. It would use the null renderer if
	  you opened with both server and client.
22-Aug-2005
	- Jorrit converted a big part of CEL (but not all) to the new
	  SCF syntax.
18-Aug-2005
	- Andrew Robberts continued work on new cel camera system and added a
	  first person camera mode.
17-Aug-2005
        - Andrew Robberts added the starting of a new cel camera system.
16-Aug-2005
	- Jorrit changed a few interfaces to use the new SCF style:
	    - iCelBehaviour
	    - iCelTimerListener
	- Jorrit extended the zone manager with a new flag to prevent creation
	  of collider wrappers. Also added new actions for this (DisableCD
	  and EnableCD).
3-Aug-2005
	- Jorrit fixed the mechanics plugin so that it uses CS code style
	  and also made sure it is more robust in case the dynamics plugin
	  is missing for some reason.
1-Aug-2005
	- Jorrit fixed CEL for the latest SCF changes in CS.
30-Jul-2005
	- Andrew Dai changed movement so that a shortcut in MoveV is no longer
	  used, this should solve some 'sticky' situations.
	- David Bronke fixed compile errors brought on by the recent work on
	  SCF. As per thebolt's instructions, all instances of scfInterface<
	  were replaced with scfInterfaceTraits<.
29-Jul-2005
	- Jorrit fixed the simple camera so that it actually works now.
	- Jorrit fixed mechanics plugin so that AttachColliderMesh() no
	  longer crashes if there is no pcmesh.
	- res added $CRYSTAL/include/csutil/win32 to CFLAGS for MSVC project
	  files.
	- Eric Sunshine fixed syntax error in Jamfile.in.
	- Eric Sunshine grabbed new checkpython.m4 from CS master repository.
	- Eric Sunshine fixed the `pfmechanics' Jamfile so that the plugin is
	  built only if libode was detected since it relies upon libode.
28-Jul-2005
	- Jorrit fixes CEL for the latest CS include file changes.
	- Jorrit changed colldet to manually set gravity to 19.2 since CEL
	  was using this default before. csColliderActor in CS has changed
	  to 9.806 now.
20-Jul-2005
	- Jorrit changed CEL to use the new csColliderActor in CS in
	  the pccolldet property class. Warning! This does mean that
	  pcsolid is no longer supported here! Possibly pcsolid and the
	  other related old movement property classes should be removed.
19-Jul-2005
	- caedes added SetSystem and SetGravity XML actions to pcmechsys.
18-Jul-2005
	- Jorrit fixed a bug in mechanics. It would crash if you tried to
	  use calls like EnableStepFast() before creating any mechanics object
	  because the dynsystem was not initialized yet.
	- Jorrit fixed mechanics plugin so that it no longer requires
	  ODE. This means the physics plugin can be any physics plugin
	  again.
17-Jul-2005
	- David Bronke fixed a bug in the thruster controller where it was
	  returning inverse values for the velocity along translational axes.
	- David Bronke removed extraneous debug output from the mechanics
	  plugin.
15-Jul-2005
	- res added cs-win32libs detection to configure.
	- res enabled ODE for VC projects.
	- res fixed configure to emit CPPFLAGS, CXXFLAGS, CFLAGS, and LDFLAGS
	  and to Jamconfig. Makes ODE-requiring plugins work on MinGW.
14-Jul-2005
	- Jorrit did a big stability fix to the mechanics plugin. Apparently
	  ODE doesn't like it if it is called with variable steps. The
	  mechanics plugin normally calls ode->Step(delta) with delta
	  constant. However there is always a remaining part of the elapsed
	  time that was also done. This could cause instability. To fix this,
	  instead of doing the remaining part immediatelly we store it in a
	  class variable and add it to the elapsed time the next frame. That
	  way we are sure that we always do steps that are exactly 'delta' big
	  but our physics simulation speed is still independent from the
	  framerate. This helps a great deal with stability.
	- Vincent Knecht fixed 'sphere' filename uppercase issue in
	  mechtest.cpp.
13-Jul-2005
	- Jorrit changed mechanics plugin so that it is no longer required
	  to call iPcMechanicsObject->SetMechanicsSystem(). If you don't call
	  this then the object will automatically look for the mechanics
	  system in the object registry.
	- Jorrit added 'mechtest' which is a test application for the
	  mechanics plugin. Currently it doesn't work very well as it gets
	  unstable very fast and then crashes.
	- Eric Sunshine added an index to the CEL user manual.
	- Eric Sunshine added a libode check to configure.ac.
	- Jorrit changed the mechanics plugin to use EnableStepFast(1). This
	  uses much better results and now the physics scales a lot better
	  with high number of objects.
	  Also added API to configure this so you can also enable
	  quickstep. With this change the mechtest app works a lot better
	  now.
	- Jorrit improved the mechtest demo a bit. Now uses 0.03 step size
	  instead of 0.01. This improves speed.
	- Jorrit changed the mechtest demo to use stencil shadows. Looks
	  much nicer.
12-Jul-2005
	- Jorrit added some discussion about how to use property classes
	  in general. Also added a name for every property class to the
	  documentation.
	- Jorrit did some more work on the XML behaviour layer documentation.
	  Also fixed a major bug which said that variables don't have types.
	  But they do.
	- Jorrit added documentation for the four different addons that
	  CEL implements.
	- Jorrit fixed a bug in pcmeshselect which caused persistance
	  to crash.
	- Jorrit fixed linmove persistance so that it correctly restores anchor
	  on loading.
	- Jorrit fixed persistance for the pctrigger property class.
	- blueCommand Added linmove callback fireing on tuched ground
11-Jul-2005
	- Jorrit added documentation for the zone manager and partial
	  documentation for the XML behaviour layer.
10-Jul-2005
	- Jorrit added documentation for the quest manager.
	- Jorrit added documentation for pcmesh and added empty stubs
	  for pctimer and pclinearmovement.
9-Jul-2005
	- Eric Sunshine applied a patch to texi2html.pl which allows it to work
	  on Windows by avoding dependence upon the Unix-specific external
	  `pwd' command.
	  https://texi2html.cvshome.org/servlets/ReadMsg?list=dev&msgNo=538
	- Jorrit started working on the improved CEL documentation.
	- David Bronke added functions to iPcMechanicsSystem and
	  iPcMechanicsObject that allow them to deal with joints and groups
	  directly.
	- Jorrit added a tutorial to the CEL documentation.
	- David Bronke fixed detection of maximum thrust and maximum force in
	  thruster groups, as well as cleaning up a bunch of extra output from
	  the mechanics plugin.
3-Jul-2005
	- David Bronke added a fix from Chris Case that corrects the problems
	  with getting incorrect returns from
	  iPcMechanicsThrusterController::GetAxisVelocity().
2-Jul-2005
	- res fixed another Cygwin compilation ambiguity.
	- David Bronke fixed a problem in the mechanics plugin's reactionary
	  thrusters where thrust was never initialized.
	- David Bronke added functions to iPcMechanicsThrusterController to
	  query the velocity around a given axis and the type of a given axis.
1-Jul-2005
	- Eric Sunshine updated the Autoconf, Jam, and msvcgen utility files
	  from the master copies in the CS repository.
	- Eric Sunshine removed the ugly docs/support/runmakeinfo.sh,
	  runtexi2dvi.sh, and runtexi2html.sh scripts since the newly updated
	  docs.jam is now self-contained and no longer requires these external
	  tools.
	- Eric Sunshine added a Jam 'repairdoc' target which repairs broken
	  @node and @menu directives in the CEL manual's Texinfo files.
	- Eric Sunshine added additional Jam targets 'manualdvi', 'manualps',
	  and 'manualpdf' for converting the CEL manual to various formats.
	  Also added checks for texi2dvi, texi2pdf, dvips, and dvipdf to
	  configure.ac in order to support these conversions.
	- Eric Sunshine added an --enable-meta-info-embedding option to the
	  configure script so that CEL plugins can employ meta-info (.csplugin)
	  embedding if supported by the platform.
	- Eric Sunshine added docs/texinfo/unixdef.txi, which defines
	  @import, @imports, @importss, @picture, @pictures, @picturess,
	  etc., in order to allow the presently monolithic cel.txi to be
	  broken down into smaller components.
29-Jun-2005
	- Eric Sunshine fixed some compilation ambiguities reported by Cygwin
	  compiler.
27-Jun-2005
	- Jorrit changed iPcGravityCallback so that it is now a proper
	  SCF interface. This allows the callback to be ref counted as it
	  should be.
	- Jorrit reversed the order in which the gravity callbacks are called
	  so that you can safely delete a callback from within the callback
	  itself.
	- Jorrit fixed pclinmove so that the anchor system works again. Please
	  use GetFullTransform/GetFullPosition if you want to know where the
	  object is in world space!
26-Jun-2005
	- blueCommand added gravity access functions and a gravity callback
	  to make you able to get instant notices when the gravity is turning
	  the object around (up up up down (callback) down down..)
25-Jun-2005
	- Jorrit fixed a small bug in pclinmove::GetSector() where it would
	  forget to get the sibling pcmesh.
24-Jun-2005
	- Dariusz Dawidowski added new XML actions for pczonemanager:
	  PointCamera and PointMesh.
	- Dariusz Dawidowski added new XML actions for pcdefaultcamera:
	  SetCamera and SetZoneManager.
23-Jun-2005
	- Dariusz Dawidowski overloaded SetZoneManager for camera which
	  now also accepts entity name instead of pointer to iPcZoneManager.
	- Dariusz Dawidowski added XML actions for pcactormove:
	  Forward, Backward, StrafeLeft, StrafeRight, RotateLeft, RotateRight,
	  RotateTo, Run, AutoRun, Jump, ToggleCameraMode and SetSpeed.
22-Jun-2005
	- Andrew Dai added a shortcut to the collision detection routine to
	  avoid some checks if the player is not near any portals. This can
	  give a significant performance boost. Also boosted the performance of
	  collision detection by using bounding boxes to find potential
	  collisions rather than spheres.
	- Dariusz Dawidowski added support for a 'template' attribute in the
	  XML behaviour layer 'createentity' command.
	  <createentity template="..." />
21-Jun-2005
	- Andrew Dai added CollisionDetectIterative to celPcCollisionDetection
	  which allows the maximum position an object can move to to be found.
20-Jun-2005
	- Eric Sunshine applied a patche from Pablo <caedes@sindominio.net>:
	    - Added iPcTooltip to the blcel.i.
	    - Replaced celCreateCamera with celCreateDefaultCamera in actor.py.
	    - Adapted some movement code in attempt to make moveactor propclass
	      work (it is commented in the modified file to facilitate future
	      inclusion).
	    - Added a line to actor.py for responding adequately to camera
	      change action.
	- res applied a change from Pablo <caedes@sindominio.net> to add
	  iPcZoneManager to blcel.i.
19-Jun-2005
	- Andrew Dai changed celPcLinearMovement and reliant classes to use a
	  new velocity system where velocity is specified in terms of body
	  coordinates and world coordinates. Body velocity can only be changed
	  by the client using PcLinearMovement whereas world velocity may be
	  changed through the effects of gravity, frictional surfaces, etc.
	- David Bronke trimmed down the amount of debugging output given by the
	  mechanics plugin (in particular, iPcMechanicsThrusterController) and
	  added some important checks, with appropriate error reporting.
	  (still some printf's in there, but those should be gone once the
	  debugging is done.)
17-Jun-2005
	- David Bronke fixed a problem in the mechanics plugin where it was
	  trying to dereference "body" before assigning a value to it.
16-Jun-2005
	- David Bronke removed all uses of the "percentage" type from the
	  mechanics plugin.
	- David Bronke changed the structure of the mechanics plugin, making
	  thrusters much simpler (no more pointers to a thruster group, so the
	  thruster can be controlled by anyone) and changing
	  iPcMechanicsThrusterGroup to iPcMechanicsBalancedGroup, reflecting
	  the notion that thrusters within each group should be "balanced",
	  creating a uniform force in the desired direction. (no rotation for
	  translational balanced groups, no translation for rotational
	  balanced groups.)
	- David Bronke improved the commenting of the mechanics plugin.
	- Jorrit changed celtest to celtst again. The problem is that in the
	  past we used to have a 'celtest' directory. And CVS can't remove
	  directories so when you are on linux and do a cvs update then
	  the 'celtest' directory will conflict with the 'celtest'
	  executable.
	- David Bronke made some minor cleanup changes in the mechanics
	  plugin.
	- David Bronke added a --python-enable-debugger command-line option to
	  the celBlPython plugin, mirroring a change that Eric previously added
	  to the cspython plugin. When enabled, a Python exception causes the
	  Python debugger to be launched. Previously, this functionality was
	  the default behavior, but it caused problems because it required that
	  the main application be linked against Python.
	- David Bronke added SWIG interfaces for the mechanics plugin to
	  blcel.i
	- David Bronke added support for force and thrust IDs to iPcMechanics*.
	  uint32s are used to represent unique IDs for each force that is
	  applied to an object and for each thrust that is requested from an
	  iPcMechanicsThrusterController.
	- David Bronke fixed a few Doxygen errors in the header files.
	  (skipped questmanager.h for the most part because I don't understand
	  all the parameters)
13-Jun-2005
	- Andrew Dai made some general improvements to celPcCollisionDetection,
	  including a fix for when a non-zero model shift is used.
	- Jorrit fixed compile error in pccolldet.
10-Jun-2005
	- Jorrit added proper error reporting all over the place. All
	  property classes and the quest manager now properly report errors
	  on the reporter.
	- Jorrit fixed errors with MoveReport() returning both bool
	  and void.
	- Eric Sunshine fixed computation of the script's own directory in
	  start_smallgame.sh, which was almost completely borked. It failed in
	  all but the simplest cases.
9-Jun-2005
	- Eric Sunshine applied a few patches from Pablo
	  <caedes@sindominio.net> which fix a couple problems in blcel.i and
	  smallgame.py.
	- res renamed the "celtst" target to "celtest".
	- res fixed some VC8 warnings.
8-Jun-2005
	- Eric Sunshine fixed 'jam install' entries for the data directory
	  which had become outdated following recent changes.
	- Jorrit added a new portal property class. This is useful for
	  closing portals which can speed up rendering. This feature can
	  be used in combination with a door that is closed. If the door
	  is closed you can also close the portal to avoid rendering
	  of the stuff behind the portal.
	- Jorrit changed the change property reward so that it uses csString.
	- Jorrit fixed a bug in pctrigger. It wasn't initializing the
	  above_collider properly.
	- Jorrit fixed a bug in the sequence handling of the quest manager.
	  It was impossible to have operations performing at the same time
	  in the same sequence because it was augmenting the current time
	  even for normal operations. It should only do that for delays.
	- Jorrit fixed pctrigger so that it uses the new CS CollideSegment()
	  routine instead of CollideRay(). That fixes problems with
	  the above mesh detection detecting too much.
7-Jun-2005
	- Jorrit fixed movepath so that it really works.
6-Jun-2005
	- Jorrit added untested support for a new movepath sequence
	  operation which moves a mesh along a spline path.
5-Jun-2005
	- Jorrit added a new pclight property class to properly represent
	  a light as an entity.
	- Jorrit added a new 'light' sequence operation for the quest
	  manager.
3-Jun-2005
	- Jorrit extended iPcTrigger so that you can now also set up
	  a sphere trigger around the position as defined by a named
	  map node object (<node> in XML). This is an easy way to setup
	  triggers as you can easily put those nodes in map editors.
	  For example, in blender you can just create an 'empty' object
	  (object of type empty). blend2cs will convert that to
	  <node> objects. You can also use this new command from the
	  SetupTriggerSphere action. The 'position' parameter can be
	  interpreted as a vector (old way) or a string (name of map node).
	- Jorrit fixed a bad bug in the property change trigger. It would
	  fire if any property matched the condition. i.e. it forgot
	  to check on the property name.
	- Jorrit added a new iPcTrigger->Check() method to check if the
	  trigger is already valid. Only works if a single entity
	  is being monitored.
	- Jorrit extended the trigger api in the quest manager with
	  a Check() function. The quest manager can call that function
	  manually to test if the trigger is already valid right after
	  activating it. This allows triggers to fire immediatelly
	  after being activated. For example, a trigger that tests
	  if a property reaches a certain value would only work if
	  the property didn't already have that value. With this
	  change this condition is tested immediatelly.
	- Jorrit fixed the callback firing mechanism in pcmeshselect,
	  pctrigger, the standard physical layer, and the quest sequence
	  manager so that they now traverse and call the callbacks in
	  reverse order. That way a callback can safely remove itself
	  from the callback list.
31-May-2005
	- Jorrit added pgup/pgdn keys for looking up and down in celtest.
	  Also added 'x' to center camera.
30-May-2005
	- Jorrit changed all rewards, triggers, and operations in the
	  quest manager so that they can now also optionally accept a tag
	  so that you can specify which property class from the entity
	  you want to work on.
	- Jorrit extended the quest reward system so that the quest is
	  now a parameter for CreateReward(). By doing that it is now possible
	  to simplify quests a bit because you no longer have to specify
	  the entity for which you want to change state. If the entity
	  is not given the current quest is used for the state change.
	- Jorrit changed the quest property class so that it adds the
	  name of the entity as a $this parameter during creation of a
	  quest.
	- Jorrit also extended the celentity addon so that it also adds
	  $this as a parameter for the creation of an entity from a
	  template. Again it will be the name of the entity.
	- Jorrit added a warning to the quest manager when some reward or
	  trigger tries to resolve a parameter and the parameter is not
	  defined.
29-May-2005
	- Jorrit changed the transform sequence operation so that the
	  vector and angle can now also accept a parameter.
	- Jorrit fundamentally changed the quest sequence stuff so that
	  you can now also use parameters for the duration and delays
	  in a sequence.
27-May-2005
	- Jorrit fixed the default camera so that it looks at the full
	  position of the mesh instead of the position. That way it also
	  works for meshes that are children of another mesh.
	- Jorrit added support to pclinmove for moving on another object
	  (anchor). If you anchor an entity that has pclinmove to another
	  entity (that has a pcmesh) then movement will be relative to
	  the anchor. If the anchor moves then the child will move with it.
	  This can be used for simulating vehicles where the vehicle itself
	  moves while the actor in the vehicle moves too. Also for moving
	  platforms, elevators, ...
	- Jorrit extended the iPcLinearMovement api so that you can get/set
	  the full position in addition to the relative position.
	- Jorrit added a version of iCelPlLayer->FindNearbyEntities() that
	  works with a box instead of a sphere.
	- Jorrit extended the iPcTrigger property class so that it now
	  also works with boxes.
	- Jorrit extended the iPcTrigger property class so that you can also
	  trigger when you are on top of another mesh. Does not seem to
	  work fine yet.
	- Jorrit fixed pctrigger so that it works for box and the detection
	  if it is on another mesh in case you are monitoring a single mesh.
	- Jorrit fixed pclinmove so that you can clear the anchor with
	  the 'anchor' property now.
	- Jorrit fixed pclinmove so that clearing the anchor actually works.
26-May-2005
        - Cirilo fixes the soft DR update.  The original version was
	  causing accumulated position errors.
	- Eric Sunshine eliminated some compilation warnings.
25-May-2005
	- Jorrit applied a patch from Cirilo Bernardo which enables soft
	  DR updates. Basically it is a way to get smoother DR updates
	  on the client so that actors don't appear to jump from one place
	  to the other.
24-May-2005
	- Jorrit fixed a crash bug in the billboard manager which arrived
	  in a recent change to use size_t in a loop.
	- Jorrit fixed the xml behaviour layer so that it gets a
	  pcdefaultcamera instead of a pccamera. Note that it should not
	  have to do even that though. Needs a revision.
	- Jorrit added registration of billboard property class to celtest.
	- Jorrit fixed the billboard manager so that it sets the
	  camera transform to identity. That way billboards will always
	  be positioned correctly on screen.
	- Jorrit changed the changeproperty reward so that it now also
	  uses csScanStr() to interprete boolean values.
	- Jorrit changed the changeproperty reward so that you can also
	  use it to set properties on all property classes and not only
	  pcproperties. To do that you must use 'pc' (and 'tag')
	  attributes for the reward and also use the full property
	  id ('cel.property.<xxx>').
23-May-2005
	- Jorrit changed SetMaxSelectionDistance() in pcmeshsel to accept
	  a float instead of an integer. Distances are never measured
	  in integers. Also added a GetMaxSelectionDistance().
	- Jorrit added the properties: global, follow, followalways, drag,
	  sendmove, sendup, senddown, and maxdistance to pcmeshsel.
	- Jorrit added the action SetDragPlaneNormal() to pcmeshsel.
	- Jorrit added a way to specify parameters when you create
	  entities from a template.
	- Jorrit fixed entity creation from templates so that the actions
	  and properties are performed in the same order as specified
	  in the template XML file (previously it would do first the
	  properties and then the actions).
	- Jorrit fixed several parsers of bool values (like the template
	  and entity addons and the parsing of properties from XML) to that
	  they accept 'true', 'yes', 'on', and '1' as true values
	  as opposed to only '1' and '0'.
	- Jorrit added a dummy entity to basic_entities so that that the
	  pcmeshselect on the camera that celtest uses can be avoided now.
	  Dragging of objects in basic celtest level is now controlled
	  in basic_entities instead of celtest.
22-May-2005
	- Jorrit added a new trigger to the quest manager that fires when
	  some inventory gets a new object.
	- Jorrit added a new iPcMeshSelectListener system to pcmeshsel
	  so that you can now listen to mesh selection.
	- Jorrit fixed celtest Jamfile so that it no longer attempts
	  to build celtst_static if you just do 'jam'.
	- Jorrit added a new trigger to the quest manager that fires when
	  a mesh is selected with the mouse.
	- Jorrit changed the inventory reward in the quest manager so that
	  it also hides the mesh as soon as it is put in the inventory.
	- Jorrit disabled the behaviour associated with 'room' in celtest
	  since it is not really used.
	- Jorrit gave the actor in celtest an inventory property class.
21-May-2005
	- Jorrit added a new SetMesh action to pcmesh so that you can now
	  set a pcmesh from an already existing mesh.
	- Jorrit fixed jump in celtest (space).
	- Jorrit fixed the quest manager. The sequence finish reward was not
	  registered so it was not usable.
	- Jorrit fixed a bug in finishing a sequence. It didn't work before.
	- Jorrit added pfzone and addon_celentitytpl to celtst_static.
	- Jorrit atted bruteblock and terrainldr to celtst_static.
	- Jorrit removed an unused variable in the sequence finish reward
	  which was deleted without being initialized. Could cause crashes.
20-May-2005
	- Jorrit created the notion of entity templates (iCelEntityTemplate)
	  in the physical layer. This is untested but the idea is a that
	  a template can be used to create other entities from fully setup
	  with behaviour and property classes (and properties for those
	  property classes). To be used properly this also requires the
	  presence of an addon to define these templates. This will be made
	  later.
	- Jorrit extended the zone manager so that the Load(path,file) function
	  can now also accept a 'world' file instead of a 'level' file. In
	  that case the zone manager will automatically construct a 'main'
	  region and 'main' zone to create a simple zone manager setup to
	  be able to load that world file. This is a conveniance.
	- Jorrit added a new Load() action for pczonemanager.
	- Jorrit extended celtest so that you can now give a VFS path
	  and filename on the commandline. By default celtest will load
	  basic_level.xml at /lib/cellib. To load another file you can do:
	  	./celtest /this/other_location mylevel.xml
	  You can also use non-VFS paths so that celtest can load a level
	  directly from a zip file for example.
	- Jorrit created a new addon for cel entity templates (celentitytpl).
	  This addon has exactly the same syntax as the normal celentity addon
	  but it creates a template instead.
	- Jorrit added support to the celentity addon so that you can now
	  load entities from templates too. Just add the 'template' attribute
	  to the addon node.
	- Jorrit also changed the celentity addon so that it will first check
	  if a given property class (name+tag) is already present and in that
	  case it will not create it. That allows us to set more properties
	  and actions on a property class created in a template.
	- Jorrit fixed a problem with pftools which didn't have a plugin
	  entry for pcspawn.
	- Adam Bradley changed access to Mouse/Joystick/Command events to
	  use the new property bag helper interfaces.
19-May-2005
	- Jorrit fixed several property classes so that they no longer
	  crash if the behaviour is missing. Behaviours are supposed to be
	  optional. In particular I fixed: pctest, pcbillboard, pccommandinput,
	  pcmechanics, pcmeshselect, pcspawn, pctimer, and pctrigger
	- Jorrit reformatted the mechanics property classes and the camera
	  stuff to standard CS/CEL coding style. Please use that style in the
	  future!
	- Jorrit added the LGPL notice to the mechanics property classes
	  and also some of the camera classes.
	- Jorrit added SetupTriggerSphere action to the pctrigger property
	  class.
	- Jorrit changed the NewQuest action in pcquest so that all parameters
	  (except for 'name') will be passed to the quest on creation.
	- Jorrit moved more entities from celtest to the basic_entities file.
	  This means that celtest will now only create actor and level
	  entities. All other things are created in the data files.
	- Jorrit removed loading of the python behaviour layer in celtest
	  as it is not really useful to have it there.
18-May-2005
	- Jorrit added the notion of 'Init' to the sequence operations. This
	  Init() function is called before the operation is fired and it gives
	  the operation a chance to do initialization. This fixes a problem
	  in the transform sequence operation where it was not able to
	  properly resume the sequence.
	- Jorrit implemented rotation for the transform sequence operation.
	- Jorrit implemented persistence for sequence operations that are
	  in progress.
	- Jorrit implemented persistence for pctrigger.
	- Jorrit added support for a 'layer' attribute in the XML behaviour
	  layer 'createentity' command.
	- Jorrit changed celtest to use the zone manager instead of pcregion.
	  The basic celtest level is now called data/basic_level.xml. The basic
	  world file is data/basic_world and the entity file is
	  data/basic_entities.
	- Jorrit extended the zone manager with a new function to load
	  a zone definition directly from a file instead of an XML node.
	  That makes it a bit easier to use again.
	- Jorrit fixed a bug in the bltest behaviour layer where it would
	  try to react on messages from behaviour when pl was already removed.
	  This would cause crash at exit.
	- Jorrit fixed the persistence for pccamera so that it properly
	  supports the zone manager too (and not only pcregion like it was
	  doing).
	- Jorrit partially implemented persistence for the zone manager. It
	  only works when the zone manager was initialized using the new
	  Load() function that accepts a path and file.
	- Jorrit changed the API of iPcZoneManager->PointMesh() and
	  PointCamera(). They now expect a name of an entity.
	- Jorrit changed celentity addon so that it now also tries to find
	  the named behaviour layer from the physical layer (in addition
	  to the object registry).
	- Jorrit added support for a new InitCDMesh() action to pclinmove
	  which will init CD from the mesh.
	- Jorrit moved most entities that were created from code in celtest
	  to the basic_entities file.
	- Jorrit added support for SetMouseButtons and SetCamera actions
	  to pcmeshselect.
17-May-2005
	- Jorrit fixed a crash at exit but in the quest manager with
	  the trigger trigger.
	- Jorrit implemented the transform sequence operation in the quest
	  manager and added a test case to celtest. The transform can currently
	  only move and not rotate objects.
16-May-2005
	- Jorrit added support for a listeners system to iPcTrigger.
	- Jorrit added support for a new quest trigger that works together
	  with pctrigger.
	- Jorrit added a pctrigger/pcquest example to celtest. There is
	  currently still a crash at exit caused by those but I will
	  debug that later.
	- Jorrit fixed a crash bug in pctooltip which could make celtest
	  crash for one of the objects.
15-May-2005
	- Eric Sunshine updated celInitializer for latest changes to CS path
	  handling functions (but perhaps Frank would like to check this for
	  correctness).
	- Eric Sunshine fixed a number of bugs and copy/paste errors recently
	  introduced into cel.m4. The most serious issues included:
	    - CEL test program succeeded _always_ if the CS test program had
	      succeeded regardless of whether the CEL SDK itself was actually
	      usable.
	    - CEL test program attempted to #include <cssysdef.h> but was never
	      told where to find the CS headers.
	    - CEL test program invoked CS_IMPLEMENT_APPLICATION, which results
	      in declaration of two main() functions on Windows, which leads
	      ultimately to failure.
	    - Name of variable to enable/disable the CEL test program did not
	      match variable used later in script.
13-May-2005
	- Jorrit finished the basic sequence stuff in the quest manager.
	  Still untested.
	- Jorrit added the first seqop type to the quest manager for printing
	  out debug information.
	- Jorrit fixed loading for sequence factories.
	- Jorrit implemented a new reward to fire a sequence.
	- Jorrit added a test sequence to celtest data.
	- Jorrit implemented correct saving/loading of game state for
	  sequences that are currently running (persistence).
	- Jorrit added a callback system to sequences so that you can be
	  notified when a sequence finishes executing.
	- Jorrit added a new predefined trigger to the quest manager so that
	  you can get triggered when a sequence finishes.
	- Jorrit renamed 'entity_name' to 'entity' and in general removed
	  the redundant 'name' or 'Name' attribute to related methods.
	- Jorrit added a new reward to finish a sequence.
	- Jorrit added convenience methods to the quest manager to create
	  the new rewards and triggers.
12-May-2005
	- Eric Sunshine copied over the Jam files from the masters in the CS
	  repository to fix some more problems resulting from recent changes.
	- Eric Sunshine fixed docs/texinfo/Jamfile to work with recently
	  updated docs.jam. This fixes problem where the `manualhtml' rule
	  produced no output.
	- Jorrit worked more on sequences in the quest manager.
11-May-2005
	- Jorrit copied the mk/jam dir from CS over to CEL to fix a few
	  problems.
	- res synchronized mk/jam/ with the CS master copies.
	- Eric Sunshine updated configure.ac so that the Crystal Space "Python"
	  and "static plugin" tests are not run if --without-cs has been
	  specified.
	- Eric Sunshine upgraded texi2html to the latest version. This fixes
	  HTML-generation crasher resulting from recently updated
	  mk/jam/docs.jam.
	- res synchronized mk/autoconf with the CS master copies.
	- res changed cel-config to accept a list of paths in the CEL variable
	  and also made it generally a bit more cs-config like.
	- res replaced cel.m4 with a basically only marginally modified copy of
	  crystal.m4.
	- Eric Sunshine eliminated a number of warnings about incorrect
	  printf() formatting directives.
10-May-2005
	- Jorrit did more work on the sequence stuff in the quest manager.
	  Worked on loading.
	- Jorrit implemented the management of sequences in the quest
	  class. Sequences are now created upon creation of a quest from
	  a quest factory.
	- res fixed a compile error on gcc 3.4 in quests.cpp.
	- res copied the new static linking stuff over from CS. There's now
	  a "cel_staticplugins" target available, and "celtest_static"
	  demonstrates how to use static plugins from both local (CEL) and
	  external (CrystalSpace) packages.
9-May-2005
	- Jorrit reports: when changing a type from int to size_t (like was
	  done for current_state) it is recommended to also change comparison
	  and assignment with -1.
	- Jorrit started work on a new sequence manager specific to CEL. This
	  sequence manager is integrated with the quest manager because it
	  will be closely tied to it. Quest states will be used to fire of
	  sequences. Not functional yet. Only some basic API has been added
	  so far.
	- Jorrit added iQuestSequenceFactory which will manage sequence
	  factories in a quest factory. Also added an implementation to
	  the quest managers and methods to add sequence factories to
	  a quest factory.
8-May-2005
	- David Bronke started fixing thruster requests in the mechanics
	  plugin. Requests are still not properly removed, but at least now it
	  doesn't freeze. Also included lots of debugging output that will be
	  removed soon.
	- res fixed some compilation errors reported by Xordan.
5-May-2005
	- res synched the VC project templates with the CS CVS copies.
	- res split the static plugin projects out of the 'cel' into their
	  own workspace.
	- res fixed a number of VC8 warnings.
4-May-2005
	- David Bronke fixed the thruster controller and thruster group code
	  to work with one-way thrusters. Also added heuristics to figure out
	  which thrusters in a given group should be fired to give the desired
	  effect.
	- David Bronke committed the first version of the new mechanics
	  plugin.
3-May-2005
	- Eric Sunshine updated various resources to point at Crystal Entity
	  Layer's new official domain cel.crystalspace3d.org.  (We also respond
	  to cel.crystalspace3d.net and cel.crystalspace3d.com.)
	- Eric Sunshine moved CEL's jobber.pl and snapshot.py runs from the SF
	  shell machine over to crystalspace3d.org. The documentation and CVS
	  snapshots also are now served by that machine.
	- Jorrit extended the persistence system with the notion of
	  'first-pass' saving and loading. Basically persistence will now
	  save in two passes. In the first pass property classes can save
	  important information that is needed for other entities and
	  property classes. In the second pass the actual set up is done.
	  Most property class information will be saved in second pass.
	  There are two new functions iCelPropertyClass->SaveFirstPass()
	  and LoadFirstPass().
	- Jorrit added default null implementations of SaveFirstPass() and
	  LoadFirstPass() to celPcCommon.
	- Jorrit added support for two-pass loading/saving to the XML and
	  classic persistence layers (note: loading/saving is not yet
	  properly supported by the zone manager).
	- Jorrit moved the loading/saving of a pcregion and pczonemanager
	  to the first pass instead of second pass. That means that on
	  load time the maps are guaranteed to be loaded and other
	  property classes can use that information.
	- Jorrit removed the unneeded 'countdown2' pass from celtest.
	- Jorrit fixed a bug in the classical persistence system. It would
	  fail to load an entity that has no behaviour associated with it.
	- Jorrit fixed a bug in the quest manager. It was not initializing
	  the XML token table.
	- Jorrit added a new 'cel.addons.questdef'. With this addon you can
	  define quests in XML in your map files.
	- Jorrit moved the test quest in celtest to data/world.
	- Jorrit fixed a bug in the parsing of the propertychange trigger.
	- Jorrit fixed several triggers so that they now deactivate
	  themselves before firing the callback. That solves the issue of
	  triggers sometimes firing multiple times for the same response.
	- Jorrit changed the quest manager so that it automatically adds
	  'cel.questreward." or 'cel.questtrigger.' to the type. That makes
	  the XML shorter and easier to read. The full format is still
	  supported.
	- Jorrit fixed the quest manager so that it ignores quest factories
	  that are already there (in the XML loader).
	- Jorrit added iPcZoneManager->Load() so that you can load a zone
	  manager setup from XML. This code used to be part of Crystal Core
	  and is now moved here.
	- Jorrit fixed a big bug in the zone manager. It would always fail
	  to load.
2-May-2005
	- David Bronke added a comment to iPcMesh::SetMesh to fix a doxygen
	  warning.
	- Eric Sunshine rewrote blcel.i essentially from scratch, eliminating
	  all of ugly copy/paste content, and making it much, much simpler to
	  maintain.
	- Eric Sunshine updated blcel.i to account for camera refactoring by
	  David Bronke.
	- Eric Sunshine fixed linkage problem in Python behaviour layer where
	  conflicting definitions of Swig runtime code were found in both
	  libcrystalspace_python.a and blcel.o. Specifically, removed #define
	  SWIG_GLOBAL since CEL now inherits the Swig runtime goop from
	  libcrystalspace_python.a.
	- Eric Sunshine added configure.ac checks for compilation warning
	  enabling and disabling flags. The Python behaviour layer now employs
	  these flags at build time to turn off some warnings from
	  Swig-generated code over which we have no control. This makes the
	  build log more friendly.
	- Eric Sunshine re-ordered some #include statements in Python-related
	  files in order to eliminate some compilation warnings.
	- Jorrit added a mechanism in quests so that triggers can save their
	  current state. That way the timeout trigger can save how much time
	  has already elapsed and then restore the trigger correctly when
	  it is loaded.
	- Jorrit generalized the timing mechanism in celPlLayer. Up until now
	  this mechanism was specific for property classes. Now it is more
	  general. There is a new iCelTimerListener interface that you can
	  implement to get notified every frame or at specific intervals.
	  celPcCommon implements that interface so for property classes there
	  is little change.
	- Jorrit added a one-frame delay before a quest gives rewards in
	  response to a trigger. That fixes all kinds of internal racing
	  conditions where a reward could cause states to change but some
	  other rewards of the old state were not yet finished. This also
	  prevents triggers from being fired while busy firing the same
	  trigger.
	- Jorrit fixed an assymetry between Save() and Load() of the
	  pcproperties property class.
	- res fixed CEL for the latest CS csHash<> changes.
1-May-2005
	- Jorrit added a parameter to iPcMesh->SetMesh() so that you can force
	  pcmesh to remove the mesh even if it was not created inside pcmesh.
	  So call pcmesh->SetMesh (mesh, true) if you want pcmesh to destroy
	  the mesh wrapper when the pcmesh itself is destroyed.
	- Jorrit added celPcCameraCommon::LoadCommon() and SaveCommon().
	  Subclasses of celPcCameraCommon can use that in their Load()/Save()
	  implementations to save or load the common camera fields.
30-Apr-2005
	- Jorrit fixed CEL so that CEL_QUERY_PROPCLASS_ENT for iPcCamera
	  works again. celtest is still partially broken though. Camera
	  modes don't work.
	- Jorrit fixed the cameras again. The problem was that Draw()
	  in celPcCameraCommon was not declared virtual. So subclasses couldn't
	  override it.
	- David Bronke fixed his messed up commit. Added the _contents_ of
	  plugins/propclass/defcam and plugins/propclass/simpcam (not just the
	  directories themselves) and actually removed
	  plugins/propclass/engine/camerafact.* from the repository. This
	  should fix CEL.
29-Apr-2005
	- David Bronke split up iPcCamera and celPcCamera into a new, more
	  general camera architecture. iPcCamera is now the basic camera
	  interface, the original iPcCamera has become iPcDefaultCamera, and a
	  new iPcSimpleCamera has been added. celPcCamera is now simply a
	  default implementation, and no longer provides an implementation for
	  iPcCamera directly. Instead, you must use one of the specific
	  implementations: celPcDefaultCamera or celPcSimpleCamera.
	- Eric Sunshine (blindly) fixed bug in celPersistClassic::Read() where
	  `entid' was being used uninitialized.
	- Jorrit added a test to iCelPlLayer->RemoveEntities() that only occurs
	  in debug mode. That test will check if any entities are still in
	  memory after removing all entities from the physical layer. If so
	  it will print out the entity names and the number of references.
	- Jorrit worked around a problem where destroying an entity
	  (RemoveEntity()) would cause the destructor of that entity (or
	  a property class in that entity) to itself call RemoveEntity() again.
	  The result of this would be two nested calls of csRefArray::Delete()
	  which would corrupt the array.
28-Apr-2005
	- Jorrit fixed classic persistence plugin so it also correctly saves
	  and loads entities. Also cleaned it up slightly.
	- Eric Sunshine (once again) fixed spelling errors:
	    persistance --> persistence
	    persistant  --> persistent
	- Jorrit cleaned up the XML persistence loader a bit. Better error
	  reporting.
	- Jorrit implemented load/save in pcquest property class.
	- Jorrit added iCelPlLayer->RemoveEntities() to remove all entities.
	- Jorrit modified celtest to load/save all entities at once.
	- Jorrit fixed a bug in the cel entity addon where it would return
	  0 if it didn't create an entity.
	- Jorrit fixed a spelling mistake in the XML persistence layer that
	  would cause it to fail parsing 'word' entities (it was spelled
	  as 'world' accidentally).
	- Jorrit added better error reporting to the pcquest property class.
	- Jorrit fixed linmove saving by also saving the reference to the
	  mesh.
	- Jorrit fixed pccamera loading so that it correctly restores the
	  camera mode.
	- Jorrit reports that with these changes the complete saving and
	  loading of all entities works nearly perfectly now. There are a few
	  remaining issues with the quest manager and so but the basic
	  stuff works great.
	- res fixed CEL for the csHash<> changes in CS.
27-Apr-2005
	- Jorrit fixed the remove callbacks in the PL by using a csRefArray
	  instead of an csArray. Also changed the name to the more consistent
	  AddEntityRemoveCallback() and RemoveEntityRemoveCallback().
	- Jorrit also removed a very dangerous loop in the physical layer.
	  This loop was calling 'delete' on the remove callbacks. But that's
	  illegal since those callbacks are likely allocated in another
	  plugin.
	- Jorrit added a new callback (iCelNewEntityCallback) to the PL so
	  that one can get notified when new entities are created.
	- Jorrit changed pcregion so that it uses the new callback to find out
	  about new entities instead of having to scan the entire region.
	  First of all this is faster (no need to scan all objects in region)
	  and also it is more correct since this method will now also catch
	  new entities that don't have a visual representation (no mesh).
	- Jorrit changed pczonemanager in a similar manner. In addition
	  the zone manager will also use the engine sector callback so that
	  it learns about new sectors.
	- Jorrit added the notion of transient entities. A transient entity
	  is one that doesn't require saving by the persistence layer. This
	  is useful for entities that are created automatically as the result
	  of creating another entity or property class. For example, entities
	  created by addons during loading of pcregion or pczonemanager are
	  transient since they will be created again when that property class
	  is loaded. The persistence layer currently doesn't use this flag yet.
	- Jorrit changed pcregion and pczonemanager to set new entities as
	  transient.
	- Jorrit added 'l' and 's' keys to celtest to test the new saving
	  system. Unfinished.
	- Jorrit changed pcsolid to use csColliderHelper class to make the
	  collider wrapper. That makes it support all possible cases better
	  (like factories having collider information and hierarchical
	  meshes).
	- Jorrit made pcmesh slightly more optimal by remembering the reference
	  to the engine.
	- Jorrit changed pcmesh so that it now keeps track of how the mesh
	  got there in the first place. This enables the save and load routines
	  to more precisely save information about how to get the mesh again.
	  Previously save and load simply assumed the mesh was always created
	  from a factory.
	- Jorrit changed the path and other strings in pcmesh to csString.
	- Jorrit seperated the camera code in a seperate source file (so
	  camera and region are now in two seperate source files).
	- Jorrit did the same for the timer, tooltip, and property property
	  classes in toolfact.cpp.
	- Jorrit fixed a bug in pcregion. It would not restore the VFS path
	  after loading.
	- Jorrit added iCelPlLayer->IsEntityAddonAllowed() and
	  SetEntityAddonAllowed(). With these calls you can allow or disallow
	  the cel entity addon from creating entities. Normally the entity
	  addon will create entities from within a CS world file transparently
	  when that world file is loaded from within pcregion or
	  pczonemanager. However, we don't want that to happen when the
	  pcregion or pczonemanager property classes is persisted from a
	  saved game file because then the other entities will be loaded
	  from that game file too.
	- Jorrit changed celentity addon to check for that flag.
	- Jorrit fixed pcregion and pczonemanager to disable that flag
	  when loading from persistence layer.
	- Jorrit removed the MINIMAL setup from celtest. It is not working
	  properly and it is not useful either.
	- Jorrit copied the partsys level over from CS so that the CEL version
	  can use addons. Added an addon to it to test this in celtest.
	- Jorrit added iCelRegion->SetCachePath(). If you use that function
	  then the zone manager will use a single cache manager for all maps in
	  that region (so you can use shared lightmaps that way). Otherwise the
	  cache manager would be set differently for every map in the region.
	- Jorrit removed the old persistence system (including
	  iCelPersistenceContext) since it is not working properly anyway
	  and it is in the way of doing further improvements.
	- Jorrit started an XML persistence system (even before the other one
	  is working fine) mostly because it is easier to debug if the saving
	  worked correct.
	- Jorrit finished the XML saver. It seems to work fine. The loader
	  is not yet ready.
	- Jorrit changed celtest to use the XML persistence layer. If you
	  press 's' the XML saver will now correctly save to 'savefile'.
	- Jorrit added iCelPlLayer->GetEntityCount() and GetEntityByIndex()
	  so that you can now retrieve all entities in the system.
	- Jorrit disabled the path finding entity in celtest for a while
	  (use PATHFIND_ENABLE to include it again). It is in the way of
	  testing the persistence system.
	- Jorrit compacted the XML save format slightly.
	- Jorrit fixed several bugs in the classic persistence plugin.
	- Jorrit implemented loading in the XML persistence plugin. Doesn't
	  work though.
	- Jorrit removed the transient flag from entities again. This is not
	  useful since we are going to save all those entities anyway. i.e.
	  we solved it differently by disallowing the celentity addon.
	- Jorrit fixed a crash in XML persistence loader.
	- Jorrit fixed persistence in the pclinmove property class. Load() and
	  Save() were not symmetrical.
	- Jorrit fixed an initialization error in the pctest property class.
	- Jorrit changed persistence in pclinmove so that it also saves the
	  reference to the pccolldet property class that is used.
	- Jorrit fixed the XML persistence loader so that it will create
	  property classes for local entities if it can't find them. Later
	  on the actual data of the property class will arrive so that the
	  property class can be loaded for real. At least that allows
	  saving of entities in random order so that you can have references
	  to property classes that are not yet saved.
	- Jorrit reports that with these changes the small box in celtest
	  now saves and loads perfectly. More work still has to be done on
	  fully implementing saving/loading for all property classes.
26-Apr-2005
	- Eric Sunshine performed project-wide spelling corrections:
	    conveniance --> convenience
	    conveniant  --> convenient
	- Jorrit added iPcInventoryListener and a new listener system so
	  that you can listen to inventory changes outside a behaviour.
	- Jorrit added a new predefined reward to add entities to an inventory.
	- Jorrit completely changed the way that the persistence data
	  is gathered. The iCelDataBuffer interface has new methods and is
	  now a lot easier to use. This doesn't completely fix the
	  persistence system though. Property classes are not all fixed
	  yet.
	- Jorrit removed the iCelPersistence and iCelPersistenceContext
	  interfaces. Everything should now use iCelPersistence
	  and iCelPersistenceContext instead.
	- Jorrit started work on a complete rewrite of the persistence
	  layer plugin. The idea is that the iCelPersistenceContext
	  interface will be removed. Instead there is a new iCelLocalEntitySet
	  interface that defines the set of entities that are 'local' to the
	  saved block. That interface also provides methods to save/load
	  references to entities and property classes that are not local
	  (i.e. not part of the local block). The old system has not yet been
	  removed. First the new system has to be tested.
	- Jorrit added a new convenience method to iPcLinearMovement with
	  which you can more easily initialize the collider from a mesh.
	- Jorrit modified celtest so that it no longer uses the obsolete
	  pcmovable/pcgravity system. Instead all entities now use
	  pclinmove. The actor was already using pclinmove.
	- Jorrit changed the way pcregion and pczonemanager work.
	  Previously both property classes would create dummy entities for
	  all meshes in the loaded map. Every entity would get a pcmesh
	  and a pcsolid property class. This was only done for collision
	  detection. However pclinmove also supports collision detection
	  through the regular CS csColliderWrapper system. So instead of
	  making relatively heavy entities with two property classes the
	  region and zone manager will now only create colliders. This
	  simplifies and speeds up both property classes and also helps
	  conserve some memory and overhead in the physical layer (who has
	  to manage all those entities).
25-Apr-2005
	- Jorrit implemented a new predefined trigger that checks when
	  a mesh enters a sector. It is similar to the already existing
	  trigger that checks when a camera enters a sector.
	- Jorrit implemented a new predefined reward that can change
	  property values (set or add values).
	- Jorrit implemented a new predefined trigger that fires when a
	  certain time has expired.
	- Jorrit added a convenience method iQuestManager->AddNewStateReward()
	  to make it easiers to make quests from code.
	- Jorrit added a convenience method
	  iQuestManager->AddDebugPrintReward() to make it easiers to make
	  quests from code.
	- Jorrit added a convenience method iQuestManager->SetTimeoutTrigger()
	  to make it easiers to make quests from code.
	- Jorrit added convenience methods
	  iQuestManager->SetEnterSectorTrigger() and
	  iQuestManager->SetMeshEnterSectorTrigger().
	- res updated some files for the csSet<> relocation.
	- Jorrit added a convenience method
	  iQuestManager->AddChangePropertyReward().
	- Jorrit extended celtest to test the quest parameter system too.
	- Jorrit added a new iPcPropertyListener interface and a way to
	  listen to property changes from outside the behaviour context.
	- Jorrit added a new predefined trigger to listen for property
	  changes.
	- Jorrit deactivated triggers when a quest is cleaned up. That
	  may potentially fix memory leaks.
24-Apr-2005
	- Jorrit created convenience macros to make it easier to implement
	  new reward and trigger types for the quest manager:
	    CEL_DECLARE_REWARDTYPE
	    CEL_IMPLEMENT_REWARDTYPE
	    CEL_DECLARE_TRIGGERTYPE
	    CEL_IMPLEMENT_TRIGGERTYPE
23-Apr-2005
	- Jorrit added a new quest property class which complements
	  the already existing quest manager.
	- Jorrit fixed a small memory leak in the test, meshselect, and
	  spawn property classes.
	- Jorrit fixed a bug in test property class with handing properties.
	- Jorrit added a 'quest' behaviour to the test behaviour layer.
	- Jorrit added a test quest to celtest.
	- Jorrit implemented the missing iQuestFactory::CreateQuest()
	  routine.
	- Jorrit added a 'NewState' reward for the quest manager.
22-Apr-2005
	- Eric Sunshine fixed memory leak in celBlPython::Store(). Also fixed
	  compilation error due to removal of non-const version of
	  csString::GetData().
19-Apr-2005
	- David Bronke switched from csMath3::FindIntersection() to
	  csIntersect3::TriangleTriangle() in
	  plugins/propclass/move/linmove.cpp and
	  plugins/propclass/move/colldet.cpp to allow it to work with the
	  latest CVS of CS.
18-Apr-2005
	- res fixed the billboard plugin for the iMaterialHandle removal.
16-Apr-2005
	- res changed imap/parser.h to imap/loader.h.
8-Apr-2005
	- Jorrit extended iCelBehaviour->SendMessage() with an additional
	  iCelPropertyClass* parameter (second parameter). This allows
	  behaviour layers to identify the property class from which the
	  message arrived. This can in turn be used to fetch the tag from the
	  property class and by doing that you can have multiple property
	  classes on the same entity and still act on each one differently. A
	  useful example is the ability to add multiple pctimer property
	  classes for one entity.
6-Apr-2005
	- David Bronke added a "where" parameter to iPcTimer::WakeUpFrame ()
	  to allow a callback to be called somewhere other than
	  cscmdPreProcess. Defaults to cscmdPreProcess. (to match old
	  behaviour)
1-Apr-2005
	- Jorrit fixed CEL for the removal of csHashMap and csHashSet in CS.
25-Mar-2005
	- Eric Sunshine updated Autoconf and Jam files from master copies in CS
	  repository.
	- Eric Sunshine updated CEL for consolidation of CS libraries (csutil,
	  etc.) into `crystalspace', and rename of `cspython' to
	  `crystalspace_python'.
	- Eric Sunshine eliminated several compilation warnings.
21-Mar-2005
	- Eric Sunshine updated Autoconf and msvcgen files from master copies
	  in CS repository.
	- Eric Sunshine changed configure.ac so that it takes advantage of
	  CS_PATH_CRYSTAL_EMIT()'s new OPTIONAL-LIBS argument for the
	  `cspycommon' library. If CS was built without Python support, then
	  Python support in CEL is now automatically disabled.
11-Mar-2005
	- Eric Sunshine fixed `cel-config' so that it takes into account that
	  the built location of library files is now `$(LOCATE.OBJECTS)/libs'
	  rather than `$(LOCATE_TARGET)'. (This relocation occurred when the
	  new Jam files were copied over from CS.)
9-Mar-2005
	- Eric Sunshine updated Autoconf, Jam, and msvcgen files from master
	  copies in CS repository.
	- Eric Sunshine fixed problem with yesterday's Python/SWIG-related
	  change where the configure script unconditionally requested the
	  `cspycommon' library from CS_PATH_CRYSTAL_JAM() even if Python was
	  not detected or was explicitly disabled.
8-Mar-2005
	- Jorrit added a new 'SetPosition' action to pclinmove.
	- Eric Sunshine removed the CS_IMPLEMENT_APPLICATION from celtest which
	  was added yesterday. It turns out that this macro was already present
	  in a different compilation unit in that project.
	- Jorrit fixed a memory leak in the celentity addon by using
	  weak references to pl and syntax services instead of a full ref.
	- Jorrit fixed cally.cal3d so that it no longer uses an absolute
	  path. Additionally made it a library instead of only a meshfact
	  so that the materials no longer have to be defined inside the
	  meshfact file (that usage is deprecated).
	- Jorrit fixed celtest to use SetPath() so that the relative path
	  works.
	- res made the following changes:
	    - Made blcel.i use %import instead of %include for the cspace
	      stuff.
	    - Ported SWIG_init -> SWIG_init_<module> change from CS.
	    - Augmented blpython to include the SWIG stuff from the cspycommon
	      library.
	    - Added a small starter script for smallgame.
	    - Updated smallgame for blpython changes and some other interface
	      changes.
	- Jorrit added support for a new SetProperty action to the
	  iPcProperties property class so that you can set properties from
	  within an XML addon file.
	- Jorrit reverted the SetProperty action change. It is unneeded since
	  you can already set properties by using the normal property system.
	  /me needs to wake up.
	- Jorrit fixed a bug in the pcproperties property class. When a
	  property was set through the iCelPropertyClass system it wouldn't
	  work correctly as it was adding the wrong number of bytes to
	  skip the 'cel.property.' part of the property name.
	- Jorrit added support for a new MoveMesh() action for pcmesh.
7-Mar-2005
	- Eric Sunshine added missing CS_IMPLEMENT_APPLICATION to celtest.
	  This fixes "undefined reference to `scfStaticallyLinked'" error at
	  link time.
6-Mar-2005
	- Jorrit fixed CEL for the removal of CS_ID in CS.
4-Mar-2005
        - Andrew Craig fixed meshfact and stdphydlayer plugins for csIntersect3
	  changes in CS.
	- David Bronke changed FixAngle in engfact.cpp to use PI instead of
	  3.14159f and 3.14169f.
2-Mar-2005
	- Jorrit added a patch from David Bronke which implements mouse
	  and joystick support for pckeyinput. 'pckeyinput' is now renamed
	  to 'pccommandinput'! Please change your programs!
1-Mar-2005
	- Jorrit added a patch from Manuel A. Fernandez Montecelo which
	  adds some functions to iPcActorMove so that you can see what
	  the actor is doing. Also fixes a bug with wrong animation direction
	  being set after jumping.
28-Feb-2005
	- Eric Sunshine updated Autoconf, Jam, and Msvcgen files from master
	  copies in CS repository.
	- res copied some doxygen settings changes over from CS.
29-Jan-2005
	- Jorrit added a patch from David Bronke to support bool, long,
	  and float attributes for the CEL entity loader addon.
	- Jorrit applied a fix to
	  iCelPropertyClassList::FindByInterfaceAndTag() from David Bronke. The
	  function wouldn't work in case a tag was given.
23-Jan-2005
	- Eric Sunshine fixed bug in
	  celPcLinearMovement::PcLinearMovement::SetOnGround() where it was
	  trying to return a value despite being declared void.
14-Jan-2005
	- Eric Sunshine updated Autoconf and Jam files from master copies in
	  CS repository, and updated configure.ac to reflect new facilities.
7-Jan-2005
	- Jorrit worked further on the entity tracker. Not finished yet.
	- Jorrit added lots of missing SCF_DESTRUCT_EMBEDDED_IBASE calls.
	- Jorrit finished the new entity tracker implementation. This is
	  completely untested code! Use at your own risk!
30-Dec-2004
	- Andrew Dai fixed another bug in NumRegLists::RegisterWithID
	  where the list was not being cleared after being grown.
28-Dec-2004
	- Jorrit fixed a bug with NumRegLists::RegisterWithID(). First it
	  would not update the listsize if the list grew. Secondly it would
	  not grow the list enough if the id is a lot bigger.
26-Dec-2004
	- Jorrit added missing SCF_DESTRUCT_IBASE to all classes in CEL.
	- Jorrit started a new entity tracker in CEL which can be used
	  to keep track of nearby entities of a specific type. This will
	  be more efficient then the global FindNearbyEntities() as it will
	  not have to iterate over all nearby meshes in the level. Not
	  finished though.
21-Dec-2004
	- Eric Sunshine relocated the HTML version of the user manual from
	  docs/html to docs/html/manual.
	- Eric Sunshine added the API reference to the project at
	  docs/html/api. The 'jam install' target now also installs the API
	  reference.
	- Eric Sunshine added a \mainpage section to docs/doxygen/doxygrps in
	  order to make the front page of the API reference more friendly and
	  user-accessible.
	- Eric Sunshine added a jobber configuration file, jobber.cfg, which
	  will allow the project's resources to be updated automatically. It
	  performs the following tasks:
	    - Repairs broken Texinfo @node directives and @menu blocks.
	    - Converts Texinfo documentation to HTML format.
	    - Builds the public API reference manual.
	    - Re-builds Visual-C++ DSW/DSP and SLN/VCPROJ project files.
	    - Re-builds the Swig-generated Python files.
	    - Publishes generated HTML (manual and API) for online browsing.
	    - Publishes archives of generated HTML for download.
	- Eric Sunshine refined the new jobber.cfg file so that it actually
	  works:
	    - Now also checks out the Crystal Space headers from CVS since they
	      are needed by the Swig run.
	    - Added some missing fake Jamconfig entries specifying compiler and
	      linker. Without these, Jam complained bitterly.
	    - Installed local TemplateToolkit2 on SF shell machine and added
	      fake Jamconfig entries for it. This allows MSVC project file
	      repair to work.
	    - Disabled Texinfo @node and @menu repair for now since CEL build
	      system does not yet provide this feature.
	- Eric Sunshine published the CEL manual and API reference at the CEL
	  web site. They are available for online viewing and download.
	- Eric Sunshine upgraded the CEL web site:
	    - Added a "Documentation" page which contains links to the manual
	      and API reference, plus links to offsite tutorials.
	    - Populated the "Links" page (which was completely empty).
	    - Removed broken links.
	    - Cleaned up a number of problems with the site.
19-Dec-2004
	- Jorrit completed the quest manager. This is all untested. It will
	  be tested for the first time when there is a quest property
	  class which is the next task todo.
	- Jorrit got a patch from Cirilo Bernardo which adds the 'cally'
	  model to celtest instead of the box. If cal3d is not present
	  then you will get alerts but the program will not fail. Instead
	  the original box model will be used.
	- Eric Sunshine fixed 'jam install' so that it installs the new 'cally'
	  model.
16-Dec-2004
	- Jorrit fixed a bug in the CEL_REMOVE_PROPCLASS macro which would
	  cause a reference leak because QueryInterface() was used but the
	  returned reference was never released.
	- Jorrit extended CEL with the notion of adding multiple property
	  classes of the same type to some entity. This done by adding the
	  concept of a 'tag'. By default property classes have no tag (i.e.
	  tag is 0). But you can add a tag to them in by doing that you
	  can distinguish between different versions of the same property
	  class for an entity. To support this the following functions
	  and macros have been added:
	    - iCelPropertyClassList->RemoveByInterfaceAndTag(): equivalent to
	      RemoveByInterface() but will only remove with the correct tag.
	    - iCelPropertyClassList->FindByNameAndTag(): equivalent to
	      FindByName() but will only find with the given tag.
	    - iCelPropertyClassList->FindByInterfaceAndTag(): equivalent to
	      FindByInterface() but will only find with the given tag.
	    - CEL_QUERY_PROPCLASS_TAG: same as CEL_QUERY_PROPCLASS but with
	      tag.
	    - CEL_QUERY_PROPCLASS_TAG_ENT: same as CEL_QUERY_PROPCLASS_ENT but
	      with tag.
	    - CEL_REMOVE_PROPCLASS_TAG: same as CEL_REMOVE_PROPCLASS but with
	      tag.
	    - CEL_REMOVE_PROPCLASS_TAG_ENT: same as CEL_REMOVE_PROPCLASS_ENT
	      but with tag.
	    - Added iCelPlLayer->CreateTaggedPropertyClass() which is a
	      convenience function to create a tagged property class.
	    - Added iCelPropertyClass->SetTag() and GetTag() to set and get the
	      tag for a property class.
	  The celPcCommon class has been extended with a SetTag() and GetTag()
	  implementation so if your property class implementation uses
	  celPcCommon it will be ok.
	  Note that the original methods FindByInterface() and FindByName()
	  from iCelPropertyClassList have been modified so that they will
	  preferably return the property class with no tag (tag is 0). If no
	  such property class is present then it will pick a random one
	  from the property classes that have a tag.
	  RemoveByInterface() in iCelPropertyClassList will remove all
	  property classes implementing that interface (i.e. it will completely
	  ignore the tag).
	- Jorrit extended the celentity addon so that you can also create
	  tagged property classes. Add the 'tag' attribute to the
	  <propclass> statement.
	- Jorrit fixed CEL for latest CS changes.
13-Dec-2004
	- Jorrit removed the OLD_RENDERER ifdef in CEL now that the old
	  renderer has been removed from CS.
	- Eric Sunshine removed the obsolete --enable-old-renderer option from
	  configure.ac.
11-Dec-2004
	- Andrew Dai added a SetOnGround(bool) function to iPcLinearMovement
	  which will be needed in future as a result of removing gravity from
	  iPcCollisionDetection.
10-Dec-2004
	- Eric Sunshine disabled generation of the `blpython' MSVC project file
	  for now since we do not presently support Python plugin building from
	  MSVC (even CS does not yet support this).
	- Eric Sunshine updated msvcgen templates and Jam files from master
	  copies in CS repository.
8-Dec-2004
	- Andrew Dai made it so that it is possible for gravity to be applied
	  to linear movement even if collision detection is turned off. This
	  can be done by forcing onground to be false.
	- Luca removed the constness of
	  celEnterSectorTriggerFactory::entity_name_par and
	  celEnterSectorTriggerFactory::sector_name_par and
	  celDebugPrintRewardFactory::msg_par and created a new string using
	  csStrNew() every time a string is assigned to one of those
	  variables. This way we do not try anymore to delete in the destructor
	  of those classes a string already created and destroyed elsewhere
	  (this happened when we were deleting the string returned by
	  an iDocumentNode::GetAttributeValue() call).
7-Dec-2004
	- Eric Sunshine fixed libs/celtool/Jamfile so that its `Library' rule
	  invocation mentions its related public header files in
	  include/celtool.
	- Eric Sunshine added cel/data/Jamfile which arranges to have all of
	  the data files installed by the `install_data' target.
	- Eric Sunshine augmented cel/Jamfile to install the CEL-specific
	  vfs.cfg file. (Unfortunately, however, the CEL vfs.cfg does not yet
	  work correctly since VFS does not look at the CEL installation
	  directory when scanning for configuration files. Also the installed
	  CEL vfs.cfg incorrectly mounts directories relative to the
	  application resource directory ($*) rather than relative to the CEL
	  installation location, so the mounts are incorrect. We need instead
	  to install a specially modified vfs.cfg which contains the correct
	  mounts.)
	- Andrew Dai added two new methods: GetPortalDisplacement() and
	  ClearPortalDisplacement() to the iPcLinearMovement property class.
	  They return the total displacement caused by travelling through space
	  warping portals so far and allow that displacement to be reset to 0.
	  This allows applications to more easily cope with the side-effects
	  due to space warping portals.
	- Andrew Dai fixed a bug in which portals did not affect an object's
	  linear movement if that object had collision detection turned off.
6-Dec-2004
	- Eric Sunshine fixed long-term spelling errors:
	    iCelPersistance         --> iCelPersistence
	    iCelPersistanceContext  --> iCelPersistenceContext
	    cel.persistance.classic --> cel.persistence.classic
	  Though deprecated, the old names (iCelPersistance,
	  iCelPersistanceContext, and cel.persistance.classic) are still
	  recognized for backward compatibility.
	- Eric Sunshine updated Jam files from master copies in CS repository.
	- Eric Sunshine fixed bug in Jamfile introduced on 29-Nov-2004 where
	  compiler and linker flags determined by configure script could
	  incorrectly creep into MSVC project files. (These flags are almost
	  always undesirable because they are specific to the host's build
	  tools -- the one running 'msvcgen' -- rather than to MSVC.)
	- Eric Sunshine re-generated MSVC project files to take into account
	  sources/headers recently added to the 'quests' module.
	- Eric Sunshine added a new celInitializer class to the celtool
	  library. This class is analogous to csInitializer. It provides the
	  following facilities:
	    - SetupCelPluginDirs(): Instructs SCF to also scan the CEL plugin
	      directory or directories. It consults the CEL environment
	      variable and the CEL_PLUGIN_DIR compile-time constant (if
	      present).
	    - RequestPlugins(...), RequestPlugins(csArray<csPluginRequest>),
	      and RequestPluginsV(va_list): These are convenience wrappers
	      around the corresponding csInitializer methods. They invoke
	      SetupCelPluginDirs(), if necessary, before calling the wrapped
	      methods.
	- Eric Sunshine augmented the applications `bootstrap' and 'celtst' so
	  that they invoke celInitializer::RequestPlugins() rather than
	  csInitializer::RequestPlugins(). This allows them to work correctly
	  even when CEL has been installed. (Previously, they worked only when
	  run from the development/build directory.)
	- Eric Sunshine removed non-CEL entries from CEL's local vfs.cfg since
	  VFS now merges all discovered vfs.cfg files (rather than loading only
	  the first found), which means that we no longer need to duplicate
	  entries from CS's master vfs.cfg. (Note, however, that CEL's vfs.cfg
	  is not yet installed, nor would it work correctly if it was
	  installed, nor would VFS even discover it at its installed location.
	  These problems all need still to be addressed.)
3-Dec-2004
	- Jorrit did more work on the quest manager:
	    - Completed implementation of the 'entersector' quest
	      trigger.
	    - Added a new predefined 'debugprint' reward which is
	      useful for debugging purposes.
	    - Added ActivateTrigger()/DeactivateTrigger().
	    - Implemented Load() for quest factories.
	    - Lots of other small changes.
	- Jorrit started work on celQuest. The callback system is missing
	  so currently it will not actually work.
2-Dec-2004
	- Jorrit restarted work on the quest manager. Added quest
	  factory implementation.
	- Jorrit redesigned the quest manager interfaces a bit. There
	  are now (similar to mesh objects) trigger type, factory, and
	  instance interfaces and also reward type, factory, and
	  instance interfaces. Also completed implementation of a few
	  more interfaces in the quest manager.
	  Additionally added a lot more documentation to the quest
	  manager interfaces.
	- Jorrit continued working on the quest manager. The first predefined
	  trigger (cel.questtrigger.entersector) is created. This trigger
	  is not functional yet.
30-Nov-2004
	- Eric Sunshine worked around problem where MSVC6 barfed when the
	  embedded celPcLinearMovement::PcLinearMovement::RotateV() attempted
	  to invoke the private celPcLinearMovement::RotateV().
29-Nov-2004
	- Jorrit fixed CEL so that it compiles again after the change
	  of CS_USE_NEW_RENDERER to CS_USE_OLD_RENDERER.
	- Eric Sunshine made the following changes:
	    - Upgraded msvcgen so that synthesized project files search for
	      CRYSTAL libraries in likely locations: ../CS & $(CRYSTAL)
	    - Updated project for new official crystalspace3d.org domain.
	    - Updated out-of-date README.txt.
	    - Updated to reflect that new-renderer is now default. Renamed
	      configure option --enable-new-renderer to --enable-old-renderer.
	    - Updated Autoconf files from master copies in CS repository.
	    - Updated Jam files from master copies in CS repository.
	    - Updated msvcgen files from master copies in CS repository.
	    - Updated texi2html from master copy in CS repository.
	    - Removed TemplateToolkit and AppConfig Perl modules
	      re-distributions.  Very few people need to generate MSVC project
	      files, so this extra bulk is hardly warranted. Developers wanting
	      to generate project files can install these Perl packages locally
	      using normal Perl package installation mechanisms, such as CPAN
	      (Unix) or PPM (Windows).
27-Nov-2004
	- Jorrit added a patch from Cirilo Bernardo which exposes the
	  SetDistance() method of celPcCamera via iPcCamera.
19-Nov-2004
	- Keith Fulton fixed a bug which caused entities with a pccolldet
	  present but CD disabled from ever having their positions updated
	  when moving.
13-Nov-2004
	- Andrew Dai fixed a bug with the field lastDRUpdate not being
	  updated in celPcLinearMovement::SetDRData().
	- Andrew Dai added a celPcLinearMovement::TimeDiff() method to get
	  the time between the last DR update and the current time.
12-Nov-2004
	- Jorrit fixed a bug in the camera class where it would
	  incorrectly test if fixed distance clipping was needed.
	  Thanks to propfan for spotting this.
8-Nov-2004
	- Eric Sunshine fixed fragility in celIDRegistry::AddScope() where it
	  would perform an uninitialized registration if the `impl' argument
	  was not of a known type.
29-Oct-2004
	- Remi Bonnet added ID scopes to the physical layer to ease
	  management of IDs when cel is used in a client <-> server
	  application.
28-Oct-2004
	- Eric Sunshine updated Autoconf and Jam utility files from master
	  copies in CS repository.
	- Eric Sunshine updated pubapi.dox and devapi.dox, which were rather
	  outdated. Among other issues, this fixes problem where the API
	  documentation had become unbuildable (the output directory was
	  incorrectly specified).
	- Eric Sunshine fixed a number of problems reported by Doxygen when
	  generating the public and developer API documentation.
	- Eric Sunshine altered the blpython Jamfiles so that it deposits the
	  generated .py files at the root of the build tree rather than
	  somewhere deep inside the build tree. This should make it simpler for
	  developers to test the modules PYTHONLIB can now be pointed at the
	  top of the build tree.
26-Oct-2004
	- Andrew Dai fixed a bug with slopes in which you would always slide
	  down slopes slowly even though onground == false at that time, this
	  was inconsistent behaviour.
21-Oct-2004
        - Philip Wyett eliminated garray.h deprecation warnings.
17-Oct-2004
	- Remi Bonnet added a basic hash implementation of the num reg.
16-Oct-2004
	- Andrew Dai made some performance improvements to
	  iPcCollisionDetection.
	- Remi Bonnet made the auto rendering of pccamera optional (with
	  default yes). Also added a REMOVE macro to ease the removal of
	  specific propclass types (by interface).
14-Oct-2004
	- Eric Sunshine updated Autoconf and Jam utility files from master
	  copies in CS repository.
8-Oct-2004
	- Andrew Dai improved player rotation handling with pcmove,
	  the no longer needed SetAngularDeltaLimit() was removed
	  and QueryRevert() was added to pccolldet to find when the player
	  cannot move.
4-Oct-2004
	- Jorrit started work on the quest manager. Still the base basics.
3-Oct-2004
	- Jorrit added patch from David Bronke which makes several of
	  the methods in camera and linmove public by also publishing
	  them in the SCF interfaces. Should make mouselook possible.
1-Oct-2004
	- Jorrit fixed a problem in actormove. It now uses
	  sprcal3d->SetVelocity(-z) which for some reasons lets the animations
	  play right.
22-Sep-2004
	- *** RELEASED STABLE 0.98.2 ***
21-Sep-2004
	- Eric Sunshine updated msvcgen templates from master copies in CS
	  respository.
	- Andrew Dai stopped collisions affecting mid-air velocity since
	  there is no distinction between physics engine estimated velocity
	  and user controlled velocity at the moment.
	- Andrew Dai improved angular delta calculation in cases where
	  angularVelocity == 0 or vel == 0 and added SetAngularDeltaLimit()
19-Sep-2004
	- Eric Sunshine updated msvcgen templates from master copies in CS
	  respository.
17-Sep-2004
	- Jorrit started work on a new pctrigger property class. Currently
	  only the include file is there.
	- Jorrit added the implementation files for pctrigger but without
	  real functionality in it for now.
	- Jorrit changed PointMesh() and PointCamera() in the zone manager
	  so that they more actively look for a valid sector in case no good
	  start position is found.
	- Jorrit enhanced the trigger api a bit more and implemented nearly
	  all functionality of it. It is now possible to trigger for a single
	  entity alone (is a lot faster). The only thing that is not yet
	  implement is the trigger area on a box. Currently it only works
	  on a sphere.
16-Sep-2004
	- Jorrit fixed a bug in celtest. Because of a misplaced
	  engine->Prepare() lighting would be bad if -relight was not
	  given.
	- Jorrit added functions to iPcCamera to set and get the pitch.
	  Also added a function to get pitch velocity.
	- Eric Sunshine fixed a few compilation errors reported by Cygwin
	  compiler.
15-Sep-2004
	- Eric Sunshine updated the Autoconf utility files from master copies
	  in CS repository and augmented configure.ac to emit RANLIB with an
	  unconditional '=' rather than conditional '?='. This works around
	  problem where default RANLIB value in Jambase is wrong on some
	  platforms, and unsuitable for cross-building.
14-Sep-2004
	- Eric Sunshine updated Jam and msvcgen utility files from master
	  copies in CS repository.
13-Sep-2004
	- Jorrit merged npcmove property class into actormove plugin.
	  The two classes will be very similar and share a lot of code
	  in the future so it makes sense for both to be in the same
	  code space.
12-Sep-2004
	- Andrew Dai changed movement control so that characters can be given
	  any velocity while in midair and which will be applied instantly.
	  This shifts the burden of ensuring realistic movement mid-air to
	  the CEL library user.
	- Eric Sunshine updated Jam files from master copies in CS repository.
	- Eric Sunshine upgraded msvgen configuration so that generated MSVC
	  project files will now search for CS headers in the following
	  additional locations:
	    ../CS/include
	    $(CRYSTAL)/include
	    $(CRYSTAL)/include/crystalspace
10-Sep-2004
	- *** RELEASED STABLE 0.98.1 ***
9-Sep-2004
	- Jorrit changed pcmesh so that it uses the new iLoader->Load()
	  function that is in CS. That means that you can now easily use
	  mesh factories and libraries for specifying meshes.
	- Jorrit added iPcMesh->SetPath(). With that function you can set
	  a path that will be used before loading the mesh (pcmesh
	  will call vfs->ChDir() to that path and later restore the VFS
	  path). Also added a new LoadMeshPath action.
	- Jorrit started very preliminary work on a new pcnpcmove (NPC
	  movement) property class. Currently this class does nothing else
	  but set the animation cycle of the model to 'stand'.
8-Sep-2004
	- Jorrit added iPcCamera::CenterCamera() to put the camera behind
	  the actor.
	- Jorrit added iPcCamera::SetPitchVelocity() so that you can change
	  pitch velocity (useful for looking up/down).
	- Jorrit fixed a big bug in the handling of the timers in the
	  standard physical layer. In case a property class was deleted
	  but the ref table was not yet compressed the hash still contained
	  an index to that property class (even though the weak ref table
	  entry was 0 for that pc). This caused the function to register
	  a new callback to fail because it thought there was already a
	  callback for that pc. This could cause pctimer (among others) to
	  fail in some cases.
3-Sep-2004
	- Eric Sunshine upgraded CEL to completely new (from scratch) msvcgen
	  facility based upon TemplateToolkit.
	- Eric Sunshine fixed problems reported by <cbarney1509@earthlink.net>
	  where invocations of the variable argument
	  iCelPlLayer::CreateEntity(...) were incorrectly being terminated with
	  plain `0' rather than `(void*)0'. This broke on 64-bit platforms
	  where plain `0' was only 32 bits, but the vararg code was expecting a
	  64-bit null terminator.
2-Sep-2004
	- Jorrit changed celPcCamera to use the new csColliderHelper
	  TraceBeam() function in CS. This should speed up third
	  person camera handling considerably in combination with
	  complex models (HitBeamPortals() which was used before would
	  get very slow with high poly objects).
30-Aug-2004
	- Jorrit added two new functions to the zone manager:
	    - FindStartLocations() will return a list of all region
	      and start names that are valid for the given world.
	      You can use any of those for PointCamera(). Note that
	      this only works for all loaded regions.
	    - GetLastStartLocation() will return the last used start
	      region and name for PointCamera().
28-Aug-2004
	- Andrew Dai fixed a bug with movement through space warping
	  portals caused by a change of behaviour in the
	  iSector::FollowSegment() function.
28-Aug-2004
	- Jorrit fixed a bug in the physical layer when broadcasting
	  TickOnce and TickEveryFrame. The problem was when in such
	  a tick handler entities got removed and this causes the
	  iterator to become invalid. Solved this by first making a
	  copy of all property class pointers.
27-Aug-2004
        - Remi Bonnet fixed CEL_QUERY_PROPCLASS so that it use the new
          scfInterface<Interface>::GetID() function instead of the old
	  one that can't be used inside templates (stringify an
	  argument)
24-Aug-2004
	- Remi Bonnet added a GetRegion() function to the pcregion
	  propclass and fixed some functions that searched for sectors
	  in the whole engine instead of only the region.
20-Aug-2004
	- Jorrit changed the zone manager so that it has the notion of
	  VFS path and file. The optional path is used to set the VFS
	  directory too. The file is relative to that path (if path is
	  given).
	- Jorrit also made sure the cache manager is set to the current
	  VFS dir when loading a new map.
18-Aug-2004
	- Thomas Degris fixed RotateTo() in iPcActorMove.
16-Aug-2004
	- Jorrit added a call to PrecacheDraw() to the zone manager in
	  CEL. Also for pcregion.
12-Aug-2004
	- Andrew Robberts fixed a bug with camera going through space
	  warping portals.
	- Jorrit fixed CEL to use the new way to parse key names in CS.
	- Jorrit fixed CEL again due to latest Oktal change.
8-Aug-2004
	- Jorrit fixed the cel camera so that it makes the entire mesh
	  hierarchy invisible instead of only the parent in first person
	  mode.
7-Aug-2004
	- Jorrit finally fixed the python plugin in CEL.
	- Jorrit added iPcLinearMovement->GetCDDimensions() so that you can
	  ask the parameters that were used to do initialize the
	  pclinmove.
4-Aug-2004
	- Eric Sunshine copied the latest msvcgen templates from CS repository
	  and re-generated project files.
	- Eric Sunshine removed the obsolete JAMCONFIG_READ configuration
	  property. As of 20 May 2004, the more standardized `Jamfile.in -->
	  Jamfile' configuration mechanism for determining if the project has
	  been configured is instead used.
3-Aug-2004
	- Eric Sunshine made the following changes:
	    - Updated Autoconf and Jam utility files from master copies in CS.
	    - CEL include files are now installed into ${includedir}/cel rather
	      than directly into ${includedir} in order to avoid polluting the
	      top-level global include directory.
	    - Updated cel-config to report the new installed header location
	      for the --includedir and --cflags options.
	    - Added a 'cel-configclean' target.
1-Aug-2004
	- Jorrit renamed some badly named macros (CEL_FETCH_..._VAR to
	  CEL_FETCH_..._PAR).
	- Jorrit continued work on pcmover. Still unfinished.
	- Jorrit fixed CEL for latest CS changes.
19-Jul-2004
	- Jorrit fixed a gcc >= 3.3 compile error in pctest property class
	  related to not casting size_t to the right type in celData->Set().
	- Jorrit changed celtest to use opcode instead of rapid.
	- Jorrit cleaned up celtest considerably. Made the code a lot nicer
	  (a bit like Crystal Core), uses pclinmove now for movement and
	  some other cleanups too.
18-Jul-2004
	- Jorrit fixed the bltest behaviour layer to correctly test if the
	  parameter to SendMessage() actually contains an entity.
16-Jul-2004
	- Jorrit extended pccamera with the option to set the far clipping
	  plane. There are three modes:
	    - Don't do this (how it used to be).
	    - Fixed distance clipping. Just use a plane at a fixed distance
	      from the camera.
	    - Adaptive distance clipping. Try to maintain a minimum and
	      maximum fps by modifying the far clipping plane.
	  This code is based on a recent change in the equivalent PlaneShift
	  camera class.
15-Jul-2004
	- Jorrit extended the very useless pctest property class so that it
	  now supports nearly everything a PC can support:
	    - A SendMessage() with one parameter.
	    - An action.
	    - One property that is handled automatically.
	    - One property that is handled manually.
	    - Working persistence.
	  This is done to make pctest a good template to start creating a new
	  property class from.
	- Jorrit did another optimization on the timing facility in
	  the physical layer.
	- Jorrit added the basic 'pcmover' property class. Only the stub
	  implementation for the property class is there. It doesn't do
	  anything yet.
	- Jorrit optimized all implementations of PerformAction() in the
	  property classes so that they now also use prefetched ID's instead
	  of fetching them at that point. Also made the code more readable
	  by using new CEL_FETCH_..._VAR macros as defined in
	  include/celtool/stdparams.h.
	- Jorrit removed the sand monsters from the main level in the
	  boulderdash game as they don't work properly yet.
14-Jul-2004
	- Jorrit added a weak reference to the physical layer to celPcCommon
	  so that all property classes have it automatically.
	- Jorrit implemented a new timing facility in the CEL physical layer.
	  Basically there are four new functions in iCelPlLayer:
	    - CallbackPCOnce()
	    - RemoveCallbackPCOnce()
	    - CallbackPCEveryFrame()
	    - RemoveCallbackPCEveryFrame()
	  Also iCelPropertyClass has been extended with two new functions:
	    - TickOnce()
	    - TickEveryFrame()
	  Using these new functions property classes can now register
	  themselves as being interested in receiving events once or every
	  frame.  This system has two main advantages:
	    - A lot easier to use (no longer needed to implement an internal
	      event handler)
	    - More efficient as CS only gets to see one event handler instead
	      of an event handler for every property class that needs
	      that.
	- Jorrit modified all property classes to use the new system. This
	  makes the implementation of those property classes a lot easier
	  to read.
	- Jorrit fixed the bootstrap Jamfile so that it again works for
	  the 'bootstrap_static' target. This doesn't make the target
	  work fully though. There is still some problem.
	- Jorrit changed the new timing system in the physical layer by
	  avoiding realloc of the weak ref arrays. The current way is much
	  more optimal.
	- Jorrit did another optimization on removal of PC callbacks.
	- Eric Sunshine upgraded Jam files from master copies in CS repository.
	  This should fix problem where _static_init.cpp file for
	  bootstrap_static target was compiled without CRYSTAL.CFLAGS (thus it
	  was unable to find cssysdef.h, scf.h, etc.).
13-Jul-2004
	- Eric Sunshine renamed celData::SetBool() to Set(), and
	  celDataBufHelper::SetBool() to Set() in order to fix numerous
	  ambiguous invocations of Set(bool) throughout the project.  The
	  SetBool() variations are no longer needed since we no longer support
	  old compilers lacking a bool type.
	- Eric Sunshine eliminated numerous warnings about incorrect printf()
	  formatting directive mismatches.
	- Jorrit revered Eric's change for incorrect printf formatting
	  directives because those cause lots of warnings like this:
	    long unsigned int format, unsigned int arg (arg 3)
	- Jorrit reverted a few changes from SetBool to Set and put them
	  back to SetBool(). The SetBool() is the SetBool() from csFlags
	  there which is a totally different function.
	- Jorrit fixed a problem in pccamera. When there was no associated
	  mesh or linmove, the camera view wouldn't be updated anymore.
12-Jul-2004
	- Jorrit fixed a dependency for addon_celentity plugin (with
	  celtool).
	- Jorrit added support for vectors (3d and 2d) to the addon_celentity
	  plugin (for actions).
	- Jorrit added a new 'InitCD' action for pclinmove.
	- Jorrit did some more API doc enhancements for the property classes.
	- Jorrit fixed the pcproperties property class which was broken
	  due to the recent size_t changes.
	- Jorrit changed all actions to use 'cel.action.' instead of
	  'cel.property.'.
	- Jorrit fixed bootstrap to use OPCODE.
	- Jorrit did a fix to please gcc 3.3 for the pczonemanager.
	- Jorrit fixed pczonemanager so that it detects if the physical layer
	  is still present during unload. That fixes a crash at exit for
	  Crystal Core.
11-Jul-2004
	- Jorrit added the ability for the pcspawn property class to
	  also send an initialization message with parameters to the
	  behaviour of the new entity.
	- Jorrit raised the version check for Crystal Space in configure
	  from 0.97 to 0.99 since CEL now requires latest CVS of CS
	  again.
	- Jorrit extended the CEL API docs so that the supported properties
	  are now also documented for every property class.
	- Jorrit added a new 'LoadMesh' action to pcmesh property class so
	  that you can now load a mesh in a generic way.
	- Jorrit extended celentity addon so that it can now also execute
	  actions with parameters (currently string only) on property
	  classes.
10-Jul-2004
	- Jorrit started working on the new pcspawn property class. This
	  property class is responsible for spawning new entities at
	  regular or random intervals. Perhaps it already works but it is
	  untested.
9-Jul-2004
	- Jorrit added a new CEL_DATA_IBASE type to celData so that you
	  can store generic iBase pointers in a celData.
	- Jorrit changed the pczonemanager property class so that it now
	  sends 'pczonemanager_addregion' and 'pczonemanager_remregion'
	  messages to the behaviour in addition to the callback system
	  when new regions are loaded or unloaded. After Crystal Core
	  is fixed to use this instead of the callbacks the callback
	  system will be removed.
	- Jorrit added doxygen documentation to all property class
	  headers indicating all SendMessage id's that you can possibly
	  get for every property class.
	- Jorrit fixed a memory leak in the pczonemanager property class.
	  It was keeping a real ref to the physical layer. Changed to a
	  weak ref.
	- Jorrit removed the obsolete pczonemanager callback system.
	  The proper way is now to listen to pczonemanager_addregion and
	  pczonemanager_remregion.
	- Jorrit changed the pczonemanager to also send out three new
	  messages:
	    pczonemanager_startloading: loading starts
	    pczonemanager_stoploading: loading stops
	    pczonemanager_errorloading: loading stops with error
	  This can be used for setting up a loading screen.
	- Jorrit extended the API documentation for all property classes
	  so that every message also shows the parameters that are valid
	  for that message.
	- Jorrit fixed pcregion and pczonemanager so that they will also
	  register entities created by addon's to the list of entities to
	  remove when the region is removed.
	- Jorrit fixed pczonemanager so that it also removes entities that
	  are connected to a mesh and that are not in other sectors (and
	  were not already removed earlier).
	- Jorrit fixed the pczonemanager so it correctly uses the 'Start'
	  position if none is specified.
	- Jorrit changed pccamera so that it only sets the sector of the
	  camera if it is different from the sector that is already set.
	  That way it avoids calling sector changed callbacks too many times.
	- Jorrit fixed pczonemanager so that it really works now with regards
	  to dynamic loading. There is still one problem:
	  If you use a 3rd person camera in combination with zoning
	  then there is a problem if the mesh is in one sector and the
	  camera is in another. In that case it is possible for a region
	  to be loaded/unloaded constantly because the camera positioning
	  works by first placing the camera at the mesh location and
	  then moving it back.
	  Note that you MUST mark portals between regions with <autoresolve/>
	  for this feature to work!
	- Jorrit fixed the bug with too much region loading by letting the
	  pczonemanager look at the location of the mesh (if there is one)
	  instead of the camera.
	- Jorrit made the zone manager follow the mesh more closely (by
	  subscribing to the mesh movable as a listener) in case
	  iPcZoneManager->PointMesh() is used. If PointMesh() is not used then
	  the camera will be followed. This fixes a bug where you could go
	  through a portal and then back a bit and CEL would not know what
	  the current region was.
	- Jorrit protected the pczonemanager and pccamera classes so that
	  they don't crash if they are operating on a mesh for which the
	  sector is not (yet) set.
8-Jul-2004
	- Jorrit started work on a new property class pczonemanager.
	  Currently only the iPcZoneManager interface is partially
	  defined. The idea is that this property class can be used instead
	  of iPcRegion if your game needs zone handling (bigger maps
	  with partial loading/unloading of regions).
	- Jorrit fixed iPcRegion so it uses weak references to the entities
	  that it created. That fixes the rare case where an automatic entity
	  created from a loaded map file would be deleted during the game.
	- Jorrit started implementing the new zone manager property class.
	  There are four levels:
	    - 'map': this is the lowest level map file (or world file). A
	      game can be made out of different map files.
	    - 'region': a region is a collection of map files. A region is
	      always loaded and unloaded from the engine as a unit. A region
	      can be made from several map files which are loaded/unloaded
	      together.
	    - 'zone': a zone is a collection of regions. A region can be
	      in multiple zones. As soon as the player is in some region all
	      zones that contain that region will be loaded.
	    - 'level' (the iPcZoneManager itself). This is the entire playing
	      ground. A level is a collection of zones and regions.
	  The zone manager basically works except for one thing: it currently
	  doesn't follow where the camera goes so loading/unloading of new
	  zones is not automatic yet. This will be added soon.
	  If you use iPcZoneManager then you will not use iPcRegion.
	  The zone manager is a more powerful alternative for the simple
	  iPcRegion.
	- Jorrit added support for the zone manager to the pccamera property
	  class (added iPcCamera->SetZoneManager()).
	- Jorrit implemented dynamic loading in the zone manager by
	  using the new iCameraSectorListener in CS.
6-Jul-2004
	- Jorrit got a patch from Thomas Degris <thomas.degris@lip6.fr>
	  to set the looking direction of an actor directly through
	  iPcActorMove->RotateTo() and a new version of
	  iPcLinearMovement->SetAngularVelocity().
5-Jul-2004
	- Jorrit fixed several warnings in CEL caused by a few places
	  where size_t was not fixed.
	- Jorrit added a new iEntityLoader interface which is implemented
	  by the celentity addon. Using that interface one can now
	  more easilly access the celentity addon to load entities from
	  XML description files.
3-Jul-2004
	- Jorrit fixed a compile error in CEL.
2-Jul-2004
	- res fixed CEL for the csArray<> size_t change.
29-Jun-2004
	- Andrew Craig fixed ambiguous csVector::Set() invocation in
	  celPcMeshSelect::HandleEvent()
28-Jun-2004
	- Andrew Dai fixed celPcLinearMovement so it now performs collision
	  detection at the correct interval.  Also added reaction to collisions
	  so your current velocity will be affected after a collision.  This
	  will be most noticeable with mid-air collisions.
25-Jun-2004
	- Andrew Dai added a UseCD() function to iPcCollisionDetection to
	  allow temporary disabling of collision detection on an entity.
	  Turning while in mid-air (mid-air acrobatics) has been reenabled
	  since the collision response system is not robust.
	  Fixed linmove so that warp portals are handled correctly.
23-Jun-2004
	- Eric Sunshine fixed more bugs in cel-config.  It was almost
	  completely broken for the case when CEL has been installed.  Also
	  cleaned up much inconsistency in the script.
22-Jun-2004
	- Eric Sunshine fixed bugs in CelConfigGen rule (Jamfile.in) where it
	  was using non-existent and obsolete Jam variables, as well as broken
	  logic for determining installation locations.  The result was that
	  cel-config was unable to respond correctly to --prefix,
	  --exec-prefix, --includedir, and --plugindir.
16-Jun-2004
	- Andrew Robberts added a patch by Ondrej Hurt that prevents an array
	  bound to be crossed
15-Jun-2004
	- Keith made several fixes to the way time deltas are handled in DR
	  updating.  The first update cannot update for 100's of seconds,
	  because that large time interval leads to incredibly long update
	  times due to the number of iterations.  Also, fixed and clarified
	  function name semantics as to what is expecting a time delta and what
	  is expecting a clock ticks value.
13-Jun-2004
	- Eric Sunshine upgraded msvcgen from master copy in CS.
3-Jun-2004
	- Jorrit fixed CEL for latest CS change in relation to CollidePath().
30-May-2004
	- Eric Sunshine upgraded Jam build system from master copies in CS.
27-May-2004
	- Keith made big cleanup of linmove PC.  Took out all networking
	  packing functions that were special for PlaneShift.  Also renamed
	  some APIs to be more descriptive.
23-May-2004
	- Eric Sunshine eliminated numerous compilation errors regarding
	  ambiguous assignment of csRef<> to csWeakRef<>.
20-May-2004
	- Eric Sunshine replaced Jamfile with Jamfile.in.  The configure script
	  now creates Jamfile from Jamfile.in at project configuration
	  time. This scheme is more normalized, more standardized, requires
	  less special-case handling (there is now no difference between
	  building in the source tree or at some other location), and makes the
	  'distclean' target 100% accurate (previously, it would leak a Jamfile
	  if the build directory differed from the source directory).
18-May-2004
	- res updated the msvcgen stuff from CS repository.
17-May-2004
	- Eric Sunshine updated msvcgen.pl and msvcgen.jam from the master
	  copies in CS, and also grabbed new msvcgen template files from
	  CS/scripts/jamtemplate. These templates should now be sufficiently
	  generic for use by many external projects, so there should no longer
	  be any need to modify them locally.
	- Eric Sunshine upgraded to most recent Autoconf .m4 files from CS
	  repository.
15-May-2004
	- Jorrit added a new function iCelPropertyClass->
	  PropertyClassesHaveChanged(). This function is called by the parent
	  entity whenever a sibling property class has been added or removed
	  (sibling means property class in the same entity). Extended
	  celPcCommon with support for this so that all property classes that
	  use celPcCommon can call HavePropertyClassesChanged() to test and
	  clear the dirty flag. This new system should make it easier to
	  keep track of references to other property classes from within
	  a property class implementation. In the old implementation many
	  property classes only looked for a sibling property class once but
	  when that property class would later change they will never notice
	  it.
	- Jorrit changed pclinmove and pccamera to use the new property
	  class change system.
	- Jorrit fully implemented the new pcactormove property class.
	  The only thing it doesn't do yet is control animation of spr3d
	  meshes. But it does work correctly with sprcal3d.
14-May-2004
	- Eric Sunshine made the following changes:
	    - Updated to the latest master copies of the .m4 and .jam files
	      from the CS repository.
	    - Removed the custom Python configure check. Now uses the
	      project-agnostic check from the new checkpython.m4, so the test
	      is identical to the one used by CS itself.
	    - configure.ac invokes the new CS_CHECK_MKDIR to glean correct
	      values for CMD.MKDIR and CMD.MKDIRS.
	    - Added the missing runmakeinfo.sh, runtexi2dvi.sh, and
	      runtexi2html.sh scripts to docs/support. These are presently
	      needed by the Jam system when building documentation (though this
	      dependence will be eliminated in the future, allowing these files
	      to be retired).
	    - Fixed broken @node and @menu directives in cel.txi.
	- res updated the msvcgen settings to utilize the new "debug settings"
	  feature.
	- res fixed some double vs float MSVC warnings.
	- res fixed the celtool jamfile to employ ExternalLibs for CS.
	- Jorrit started working on a new pcactormove property class. This
	  property class will make the connection between a pclinmove and
	  pccamera and it will also support animation with sprcal3d and spr3d.
	  Currenlty doesn't do anything yet.
	- Jorrit and Andrew Robberts fixed the pccamera so that it works
	  correctly with portals.
	- Jorrit and Andrew fixed camera handling a bit more. It is a more
	  robust fix now.
	- Jorrit changed several csRef's to csWeakRef's in CEL. This avoids
	  circular references and then leaks. It uses the new feature in CS
	  to assign a csPtr directly to a csWeakRef.
13-May-2004
	- Jorrit ported the camera handling code that is used in PlaneShift
	  to pccamera. This is a very significant change which considerably
	  changes the API of iPcCamera (new methods to set the modes, new
	  modes, and also some removed modes: follow and rotational are
	  removed). However, it is worth it. The new camera is a LOT
	  better. There are now four nicely working camera modes:
	  	- firstperson
		- thirdperson
		- m64_thirdperson
		- lara_thirdperson
	  Note that temporarily camera persistence is broken. I need
	  to write out and read the new fields.
	- Jorrit added iPcCamera->SetModeName(), GetModeName() and
	  GetNextNode().
	- Jorrit fixed pccolldet so that the 'shift' value now works
	  correctly.
11-May-2004
	- Jorrit added a new iCelPlLayer->CreateEntity() convenience function
	  so you can easily create an entity, set a name, create a behaviour,
	  and then create all property classes with a single call. This should
	  make entity creation in code look a bit nicer.
	- Jorrit added CEL_QUERY_PROPCLASS_ENT() which is a variant of
	  CEL_QUERY_PROPCLASS() but you don't have to add
	  GetPropertyClassList() yourselves. Slightly easier to read and use.
	- Keith Fulton committed significant debugging patch to linmove and CD
	  from Andrew Dai (Khaki).  Improvements include better handling of
	  going up and down (like on stairs), and corrections to extrapolations
	  of movement when moving forward and turning at the same time.
8-May-2004
	- res made some fixes to the VC project templates; the Release
	  configuraion was ignored by VC, the templates contained absolute
	  paths (and were missing the '..' include path), and the post-build
	  step had a bogus 'copy' command (used to copy the metadata, which is
	  unnecessary as it is linked into the binary).
5-May-2004
	- Eric Sunshine made the following changes:
	    - Upgraded all the Autoconf and Jam utility files from the master
	      sources in the Crystal Space repository. The local copies were
	      extremely outdated.
	    - Updated configure.ac to take advantage of new utility macros in
	      order to simplify and unify.
	    - Updated Jamfiles throughout the project to take advantage of new
	      and improved facilities provided by the updated Jam utility
	      files. In particular, Swig generation, documentation generation
	      and installation, and header installation saw significant
	      changes.
	    - Added targets for converting the manual to HTML and Info formats.
	      (Previously, there was no mechanism at all for dealing with the
	      Texinfo sources.)
	    - Enabled msvcgen support. New targets are msvc6gen, msvc7gen, and
	      msvcgen (which generates all versions). In the future, there will
	      also be "freeze" targets for copying the generated project files
	      from the build directory to the source directory. Presently, you
	      must perform the copy by hand.
	    - Performed a lot of maintenance on the msvcgen template files to
	      eradicate and correct much cruft and incorrectness.
	    - Enabled and cleaned up 'help' messages, so "jam help" now
	      actually presents useful information.
	- Jorrit fixed CEL for the removal of CS_FX_GOURAUD.
	- Eric Sunshine fixed mk/msvcgen/template6/wsgroup.tpi and
	  template7/wsgroup.txi to take into account the fact that the
	  workspace files (wkscel.dsw/wkscel.sln) now reside in the cel/msvc
	  directory, rather than directly in cel.
	- Eric Sunshine fixed Jamfile so that it invokes MsvcGenConfig with
	  appropriate keys and values to prevent Unix-specific Python build
	  flags from polluting the generated MSVC project files.
	- Eric Sunshine updated to the latest Jam files from CS/mk/jam. This
	  fixes a problem with path munging in generated icon .rc files and
	  adds a manifest entry to .rc files for applications.
	- Eric Sunshine added a --without-cs option to configure.ac which
	  allows the project to be configured without having a Crystal Space
	  SDK available. This is useful only for cases when one needs to
	  perform maintenance tasks, such as generating project files or
	  converting documentation, when a Crystal Space SDK is not available.
9-Apr-2004
	- Keith Fulton added function from Ondrej Hurt to dynamically set
	  the max extrapolation interval in linmove instead of hardcoding
	  it.  This helps with very slow frame rates.
24-Mar-2004
	- Jorrit updated CEL for rename of csHash<>::Fetch() to Get().
15-Mar-2004
	- Eric Sunshine updated CEL for rename of csHash<>::Get() to Fetch().
14-Mar-2004
	- Jorrit continued to fix CEL for recent CS changes. Apparently
	  res nor Keith have MSVC project files that include the billboard
	  manager and the XML behaviour layer.
12-Mar-2004
	- Keith Fulton committed a patch from res2k to fix CEL for CS changes.
28-Feb-2004
	- Norman Kraemer added some macros to the swig file that cut down
	  overall size of the file by a third.
	  He also changed augmented the list of include paths given to swig
	  to include the $(TOP)/include
	- Norman added an --includedir flag to cel-config and augmented cel.m4
	  to determine and emit the cel includedir to variable CEL.INCLUDE_DIR
23-Feb-2004
	- Norman Kraemer fixed python behaviourlayer where const char*
	  path to behaviour was modified.
21-Feb-2004
	- Norman Kraemer added --lflags directive to cel-config
	- Norman also augmented cel.m4 to emit the CEL.LFLAGS variable
	  containing the linker flags to link all public cel libraries.
19-Feb-2004
	- Norman Kraemer modified Jamfile to fix reference of a non existent
	  variable (PACKAGE.VERSION instead of PACKAGE_VERSION).
          Furthermore action CelConfigGen created empty if/then/else
	  branches in cel-config.
	  He also modified cel.m4. Function CS_PATH_CEL sent it's parameters
	  unembraced to CS_PATH_CEL_HELPER, so if, say, the FAILED-ACTION
	  block contains an errormessage which in turn contains commatas the
	   resulting output (the configure script) will be royally screwed.
18-Feb-2004
	- Norman Kramer reported that the python scripts were still using
	  VFS path celdata instead of cellib. Jorrit fixed it.
	- Norman also sent in a patch to the python plugin in CEL.
17-Feb-2004
	- Eric Sunshine added a mount for 'partsys' to vfs.cfg since celtest
	  tries to load it.
10-Feb-2004
	- Jorrit fixed the CEL billboard manager so that it also works with
	  New Renderer in CS.
	- Eric Sunshine added an --enable-new-renderer option to configure.ac
	  so that CEL can be tested against the new renderer.
	- Jorrit used CS_IMPLEMENT_STATIC_VAR to make sure the global arrays
	  in the billboard manager are properly constructed on all platforms.
8-Feb-2004
	- Eric Sunshine upgraded .m4 and .jam files to latest versions from
	  Crystal Space CVS repository.  Centralized special-case handling of
	  RANLIB on MacOS/X.
5-Feb-2004
	- Eric Sunshine upgraded documentation install Jam rules to work with
	  latest cel/mk/jam/*.jam files.  This eliminates Jam warning about
	  unknown `InstallDocDir' rule.
3-Feb-2004
	- Eric Sunshine upgraded cel/mk/autoconf files from master copies in
	  CS repository and upgraded RANLIB check in configure.ac to work
	  around Jam 2.4 bug on MacOS/X.
2-Feb-2004
	- Jorrit changed the behaviour of iCelBlLayer->CreateBehaviour().  This
	  function will now automatically set the behaviour in the entity (i.e.
	  call entity->SetBehaviour()) so it is no longer necessary to do this
	  yourselves.
	- Jorrit added iBillboard->StackUp() and iBillboard->StackDown().
	- Jorrit added bb_up and bb_down commands to the XML behaviour layer.
	  Also extended bb_up, bb_down, bb_tofront, bb_toback, and bb_move with
	  an optional 'pc' parameter so you can call it on other entities with
	  a billboard.
	- Eric Sunshine updated Jam (*.jam) and Autoconf (*.m4) from master
	  copies in Crystal Space repository.  This fixes a number of serious
	  build and install problems on MacOS/X which were caused by buggy Jam
	  files which were committed to the CS repository several days ago.
30-Jan-2004
	- Jorrit fixed CEL after latest lighting related CS changes (removal of
	  DeferUpdateLighting()).
29-Jan-2004
	- Jorrit fixed the python plugin after recent changes in CS.
	- Jorrit fixed cssys->csutil after recent changes in CS.
	- Eric Sunshine updated mk/jam from master copies in Crystal Space
	  repository which contain fixes for syntax errors.
28-Jan-2004
	- Jorrit reverted a change in win32.jam which causes CEL not to
	  compile.
	- Eric Sunshine updated mk/autoconf and mk/jam from master copies in
	  Crystal Space repository which contain fixes for build problems
	  introduced when buggy Jam files were installed on 23-Jan-2004.
27-Jan-2004
	- Eric Sunshine fixed bug in cel/Jamfile.  It was incorrectly invoking
	  InstallApplication rather than InstallShellScript to install
	  cel.cex.  This caused installation to fail on MacOS/X.
26-Jan-2004
	- Eric Sunshine replaced the broken and exceptionally outdated
	  cs_check_host.m4 with a modern one from the master location at
	  CS/scripts/jamtemplate/cs_check_host.m4.
	- Eric Sunshine fixed bug in cel/Jamfile.  It was incorrectly invoking
	  InstallApplication rather than InstallShellScript to install
	  cel-config.  This caused installation to fail on MacOS/X.
	- Eric Sunshine fixed bug in CelConfigGen action in cel/Jamfile.  It
	  caused cel-config to fail to emit `celtool' in response to the --libs
	  option.
	- Keith fixed header files for csengine changes.
23-Jan-2004
	- Jorrit added an optional profiler to the XML behaviour layer.
	- Jorrit fixed a big memory leak in CEL by replacing a lot of csRef's
	  to iCelPlLayer with csWeakRef.  This avoids circular references.
	- Jorrit added a new notation in the XML behaviour layer to have a
	  faster way to emulate arrays:
	    ?array[<expr>]
	  is equivalent to:
	    ?('array_'+<expr>)
	- Eric Sunshine updated cel/mk/autoconf and cel/mk/jam from master
	  copies in Crystal Space CVS repository.
22-Jan-2004
	- Jorrit fixed 'expr' in the XML behaviour layer so that it clear the
	  stack instead of drop.
	- Jorrit fixed a bug in the XML behaviour layer where the local
	  variables would be cleared for the inside of a 'for' loop.
	- Jorrit added a new iBillboard->SetMaterialNameFast() function to set
	  a material without recomputing the clickmap.
	- Jorrit fixed the XML behaviour layer so that 'default' in 'switch'
	  statement works.
21-Jan-2004
	- Jorrit added 'reporterror' command to the XML behaviour layer and the
	  'readfile', and 'writefile' functions.
20-Jan-2004
	- Jorrit and Eric added a 'bootstrap_static' to CEL so you can make a
	  static version of boostrap.
	- Jorrit fixed profiling flags for jam.
	- Jorrit optimized the pcproperties property class considerably.  It
	  now is a lot faster to manipulate properties.  This has a great
	  effect on speed for the XML behaviour layer.
	- Jorrit did another similar optimization on entity finding.
19-Jan-2004
	- Jorrit added new 'bb_tofront' and 'bb_toback' commands to the XML
	  behaviour layer.
16-Jan-2004
	- Jorrit added entity name to the call stack for XML behaviour layer.
	- Jorrit fixed CEL for the latest light related CS changes.
15-Jan-2004
	- Jorrit fixed another bug reported by valgrind in pctimer.
	- Jorrit fixed another bug reported by valgrind in XML behaviour layer.
	- Keith committed a new set of vc7 project files to make the new
	  library-based scheme work more easily for new people.
14-Jan-2004
	- Jorrit did the following changes to the XML behaviour layer:
	    - Changed the meaning of converting strings to boolean.  An empty
	      string becomes false and a non-empty string becomes true (as
	      opposed to only the 'true' string becoming true like it was
	      before).
	    - Fixed logical not for strings. It was working reversed.
	    - Added the ability to convert entity and pclass to bool too.
	    - Added the 'expr' keyword which evaluates an expression and then
	      throws the result away.
	    - Added the ability to inherit parameters from the caller to
	      functions being called.
	- Jorrit added an optimization to the XML behaviour layer so that some
	  operations with constants are more efficient.
	- Jorrit fixed a bug in pckeyinput with relation to modifiers.  Binding
	  keys with modifiers (shift and so on) was simply not possible.
	- Jorrit fixed two bugs as reported by valgrind.
13-Jan-2004
	- Jorrit added support for scoped functions to the XML behaviour layer
	  (i.e. calling a function from another entity script using ::
	  operator).
	- Jorrit cleaned up the XML scripter a bit.
	- Jorrit added a new MoveToPosition() method to iBillboard.  This will
	  implement a gradual move (given a certain delta value).
	- Jorrit added a new version of bb_move to the XML behaviour layer that
	  actually uses this new function (if 'delta' parameter is given).
	- Jorrit changed the pctimer property class so you can now specify both
	  WakeUpFrame as WakeUp at the same time.
	- Jorrit added logical not to the XML behaviour layer.
	- Jorrit added a new scope operator (::) to the XML behaviour layer.
	  With this operator you can call functions from other entities that
	  are not hardcoded.
12-Jan-2004
	- Jorrit fixed a memory leak bug in the XML behaviour layer.  The
	  behaviour was using csRef's to property classes which prevented
	  proper cleanups of the entity.
	- Jorrit added support for local variables to the XML behaviour layer.
	  These are a lot faster, use less memory, and can prevent programming
	  errors in recursive functions.
	- Jorrit added celVariableParameterBlock convenience class to celtool
	  library.
	- Jorrit added the ability to call events as functions from within an
	  expression in the XML behaviour layer.
11-Jan-2004
	- Jorrit did the following XML behaviour layer changes:
	    - Added the ability to return values through a
	      behave->SendMessage() call.
	    - Fixed a bug in callstack so that it now also prints internal
	      calls.
	    - Added 'return' statement so it is now possible to return values
	      through 'call'.
	- Jorrit added new bb_move convenience command to the XML behaviour
	  layer to move a billboard.
9-Jan-2004
	- Jorrit added 'traceon' and 'traceoff' commands to the XML behaviour
	  layer.  With these commands you can enable tracing of all changes to
	  properties and variables.
8-Jan-2004
	- Jorrit added new 'variables' debugging command to the XML behaviour
	  layer.
	- Jorrit added new 'callstack' debugging command to the XML behaviour
	  layer.  This command prints out the current callstack.  On error the
	  callstack and variables are also dumped.
7-Jan-2004
	- Keith added velocity handling for sprcal3d to linmove DR msg
	  handling.
5-Jan-2004
	- Eric Sunshine fixed compilation bug.  celPcDynamicBody was trying to
	  invoke iPcMesh::IncRef() and DecRef() (via csRef<>) before the
	  compiler had seen the full declaration of iPcMesh (it had only seen a
	  forward declaration).
4-Jan-2004
	- Jorrit did several optimizations on the XML behaviour layer.
	- Jorrit fixed a bug in the XML behaviour layer which could cause
	  crashes in some cases.
3-Jan-2004
	- Jorrit added an optimization to the billboard manager in case a
	  clickmap is completely full.
	- Jorrit added clipping for billboards in the billboard manager.  That
	  way billboards will no longer crash the software renderer if they go
	  beyond screen boundaries.
2-Jan-2004
	- Jorrit added the ability to use parameters for the 'call' operation
	  in the XML behaviour layer.
	- Jorrit added a shorthand notation in the XML behaviour layer:
	  @parameter instead of param(parid(parameter)).
28-Dec-2003
	- Jorrit added new 'stridx' function to the XML behaviour layer.
	- Jorrit added new 'strsplit' operation to the XML behaviour layer.
23-Dec-2003
	- Jorrit added a 'switch' command to the XML behaviour layer.  Complete
	  with 'case' and 'default'.  One difference with C++ is that the case
	  values don't have to be constant.  At runtime this switch simply
	  translates to a series of 'if'/'else' statements so it is not that
	  efficient.
	- Jorrit did a huge optimization to the XML behaviour layer by making
	  sure that the A2S() statements are not evaluated in case
	  script-debugging is not enabled.  The problem was that the #if to
	  disable debugging was inside the routine that prints out the debug
	  info.  but the A2S() calls were done in the calls and this means that
	  the compiler still generated code for them.  Current solution does
	  some preprocessing magic but it has the unfortunate consequence that
	  there are a huge amount of warnings in case the script debugger is
	  enabled:
	    plugins/behaviourlayer/xml/xmlscript.cpp:2590:57:
	    warning: pasting "dump_exec" and "(" does not give
	    a valid preprocessing token
	  I don't know how to avoid those.  Luckily the warnings are not
	  present in the default build.  BTW, this optimization increases fps
	  with 100 (from 320 to 420) for one of the games in xmlgames :-)
	- Jorrit renamed the 'testcollide' function in the XML behaviour layer
	  to 'bb_testcollide' to make it clearer that this function is specific
	  to billboards.
	- Jorrit added the notion of layers to the billboard manager.  Every
	  billboard can be associated with some layer and you can move a layer
	  which has the effect that all billboards on that layer will move.
	  This is nice for scrolling games.  You can use the iBillboardLayer
	  interface to access layers.
	- Jorrit added the 'layer' property to the billboard property class.
	- Jorrit added 'bb_movelayer' command to the XML behaviour layer.  With
	  this comment you can move layers.
	- Jorrit fixed the pckeyinput property class so that key repeats are
	  now also sent to the behaviour layer with '_' appended (i.e.  append
	  of '0' is key press, append of '1' is key release).
	- Jorrit fixed the XML behaviour layer so that 'bb_movelayer' now also
	  works if the layer doesn't exist yet.  In that case the layer will be
	  created.
22-Dec-2003
	- Daniel added comments to iCelEntity and iCelEntityList.
	- Jorrit added the 'super' keyword to the XML behaviour layer.  With
	  this keyword you can call the routine of the same name in the
	  superscript.
	- Andreas Busch added doxygen targets.
21-Dec-2003
	- Jorrit added 'strlen' and 'strsub' functions to the XML behaviour
	  layer.
	- Jorrit fixed a bug in standard parameters.  By specifying the type in
	  SetParameterDef() it actually caused crashes when setting a string
	  later on because the celData expected a string to clean up.  Fixed
	  this by simply removing the unneeded type parameter.
	- Jorrit added 'Bind' action for pckeyinput.
	- Jorrit fixed a bug in the XML behaviour layer which prevented boolean
	  parameters from working (for <action> command).
	- Jorrit added the notion of super-scripts for the XML behaviour layer.
	  This is a bit similar to a superclass and it allows scripts to depend
	  on other scripts for common behaviour.
20-Dec-2003
	- Jorrit fixed three bugs which prevented a script from deleting its
	  own entity:
	    - First while a script is executing we will now keep an additional
	      reference to the entity to prevent deletion until the script has
	      finished.
	    - In case a billboard is firing mouse messages we will set a flag
	      to prevent deletion of that billboard.  If the billboard has to
	      be deleted then that flag is tested and if true we set another
	      flag so that the billboard can delete itself later.
	    - In pcbillboard we now remove the event handler on the billboard
	      before deleting that event handler.  This is now needed since the
	      billboard can actually remain in memory a little longer because
	      of the previous fix and then deleting the event handler without
	      first removing it would cause bad effects.
19-Dec-2003
	- Jorrit worked a little on xmlgames. Added a new maze game.
	  Unfinished.
18-Dec-2003
	- Jorrit added a local vfs.cfg for CEL to specify the following CEL
	  mount points:
	    /cellib/sounds
	    /cellib/images
	    /cellib/objects
17-Dec-2003
	- Jorrit changed the bootstrap loader so that it also attempts to load
	  the sound plugins now.
	- Jorrit added a <sound> keyword to the XML behaviour layer.
15-Dec-2003
	- Jorrit did the following to the XML behaviour layer:
	    - Implemented support for setting entity variables in the XML
	      behaviour layer.  So in all commands where you need to specify an
	      entity you can now give both a name or an entity itself.
	    - Added an 'ent' function to the XML behaviour layer for getting an
	      entity from an entity name.
	    - Added an inline version of 'for' so that you don't have to
	      specify the inner code of a for loop in another event (although
	      that is still possible).
	    - Added inline and none-inline version of 'while'.
	    - Added 'inventory_count' and 'inventory_get' functions.
	- Jorrit performed an optimization in the physical
	  layer->CreatePropertyClass().  It will use a hash to find the right
	  property class factory instead of scanning a list.
	- Jorrit did a big optimization in the billboard manager with the
	  creation of the clickmap for images.  For big images this can make a
	  huge difference in setup time.
14-Dec-2003
	- Jorrit added the following commands to the XML behaviour layer:
	    - 'inventory' to set the current inventory on which further
	      commands will operate.
	    - 'inventory_add' to add an entity to a inventory.
	    - 'inventory_rem' to remove an entity from a inventory.
	- Eric Sunshine added --with[out]-python option to python.m4 to allow
	  users to disable this module if desired.
	- Eric Sunshine fixed python.m4 so that the "Python SDK usable" check
	  is run only if the Python SDK is detected.  (Previously the "SDK
	  usable" check was run even if the SDK was not detected.)
11-Dec-2003
	- Eric Sunshine upgraded the Autoconf and Jam utility files to the
	  latest versions from CS.
	- Jorrit added a new celtool library.  At this moment this library
	  contains everything that used to be in plugins/propclass/common (that
	  directory has now been removed): mainly the common code for making
	  property class factories and also code for making parameter blocks.
	- Jorrit modified iCelPropertyClass->PerformAction() to take an
	  iCelParameterBlock instance to pass the parameters instead of the old
	  const char* pointer.
	    - celPcRegion: PerformAction has no parameters.
	    - celPcGravity: PerformAction takes a parameter with id
	      'cel.parameter.force' (a vector3).
	    - celPcTimer: PerformAction for the WakeUp action takes the
	      parameters 'cel.parameter.time' (a long) and
	      'cel.parameter.repeat' (a bool).
	- Jorrit replaced the prefix id for property class parameters from
	  'cel.behaviour.parameter.' to 'cel.parameter.'. Modified the
	  'parid()' function the XML behaviour layer accordingly.
	- Jorrit modified the XML behaviour layer to support the new parameter
	  system for PerformAction ('action' command).  You can now supply
	  parameters using <par id="parid(...)" value="..." /> inside the
	  <action> block.
	- Eric Sunshine upgraded compiler.m4 from CS's master copy.  This fixes
	  problem where configure's -shared check was failing.
10-Dec-2003
	- Jorrit fixed the physicstest python script so that it works again
	  (converted to the new thing API in CS).
9-Dec-2003
	- Jorrit extended 'call' in the XML behaviour layer so that the entity
	  attribute is now optional. If not given the current entity is
	  assumed.
	- Jorrit added the 'entname' function to return the current name of the
	  entity (XML behaviour layer).
	- Jorrit fixed two bugs in string handling for the XML behaviour layer.
	  One of these bugs could cause crashes.  The other could cause wrong
	  computations.
7-Dec-2003
	- Jorrit renamed the string ID's for properties from
	    cel.property.pccamera.bla
	  to
	    cel.property.bla
	  It is redundant and unneeded to specify the property class there.
	- Jorrit implemented a new notation in the XML behaviour layer for
	  'if'.  If there is now 'true' or 'false' child or attribute then the
	  child of 'if' is considered a 'true' child.
6-Dec-2003
	- Jorrit implemented cross product and modulo operator for the XML
	  behaviour layer.
	- Jorrit implemented bitwise and, or, xor, and not for the XML
	  behaviour layer.
	- Jorrit fixed operator precedence for the unary operators (! and ~).
	- Jorrit implemented the 'if' function in the XML behaviour layer.
	  Works a bit like the C++ ?: operator.  An important difference is
	  that the 'if' function will always evaluate both the true and the
	  false expression.
	- Eric Sunshine imported newer crystal.m4 from CS/mk/automake.  Also
	  made minor aesthetic improvements to configure.ac.
5-Dec-2003
	- Jorrit changed 'testcollide' to be a function in the XML behaviour
	  layer.
	- Jorrit implemented a variant of 'if' in the XML behaviour layer which
	  supports inlined code instead of the requirement to fire seperate
	  event handlers.
	- Jorrit implemented 'destroyentity' in the XML behaviour layer.
	- Jorrit added new 'call' operation to call events in other entities.
	- Jorrit fixed a memory leak in pcbillboard caused by an embedded
	  listener interface.  Fixed this by avoiding the embedding.
	- Jorrit fixed a bug in the RemoveBillboard() method of the billboard
	  manager.  It crashed.
	- Matze fixed Jam rules so that cel-config builds correctly when
	  building outside of the source tree.
	- Eric Sunshine updated out-of-date mk/autoconf/*.m4 files, including
	  the new crystal.m4 which now publishes CRYSTAL.INCLUDE_DIR.
	- Eric Sunshine fixed behaviorlayer/python/Jamfile so that it passes
	  only -I$(CRYSTAL.INCLUDE_DIR) to Swig, rather than all of
	  $(CRYSTAL.CFLAGS), which was clearly incorrect, and which caused Swig
	  to complain in some cases.
	- Eric Sunshine eliminated several compilation warnings from the
	  project.
	- Eric Sunshine fixed Jamfile so that it cleans up the generated
	  cel-config script.
4-Dec-2003
	- Jorrit simplified the XML behaviour layer by removing support for
	  multiple arguments for operations and only allowing one.  Also
	  unified the type system so that the CEL_TYPE_...  enum is now gone
	  and instead CEL_DATA_...  is used.
        - Daniel made some minor edits to the documentation and added
	  preliminary build instructions for the Windows platform.
	- Jorrit changed the way parameters are passed through SendMessage
	  (from the property class to the behaviour).  Instead of the generic
	  iBase there is now a new iCelParameterBlock interface that is
	  implemented by the property class and that the behaviour can use to
	  access the parameters from the message.
	- Jorrit fixed the python and thest behaviour layers to support this
	  new system.
	- Jorrit added celGenericParameterBlock in plugins/propclass/common.
	  This can be used by property class implementations to make it easier
	  to implement parameters.
	- Jorrit added celOneParameterBlock in plugins/propclass/common.  This
	  can be used by property class implementations to make it easier to
	  implement parameters when only one parameter is needed.
	- Jorrit changed the pcbillboard property class to use the new
	  iCelParameterBlock system (with parameters 'x', 'y', and 'button').
	- Jorrit changed the pcinventory property class to use the new
	  iCelParameterBlock system (with parameter 'entity').
	- Jorrit changed the pcproperties property class to use the new
	  iCelParameterBlock system (with parameter 'index').
	- Jorrit removed iPcMeshSelectData (which was previously used to pass
	  coordinates from pcmesh to behaviour) and changed it to use
	  iCelParameterBlock instead (with parameters 'entity', 'x', 'y', and
	  'button').
	- Jorrit extended the XML behaviour layer parser with a more generic
	  way to handle functions.  Now CEL_TOKEN_FUNCTION is returned and a
	  string hash is used to see which function it is.  This is both faster
	  and more general.
	- Jorrit extended the XML behaviour layer with a new 'arg' function to
	  get a parameter from the iCelParameterBlock that is given by
	  SendMessage.  By doing that XML behaviour layer scripts can now
	  access the parameters from property classes.
	- Jorrit added a new 'parid' function to the XML behaviour layer which
	  is a convenience for getting ids for parameters (it adds the prefix
	  'cel.behaviour.parameter.').
	- Jorrit fixed a bug in the billboard manager. It was not properly
	  sending out the x, y, and button information to the behaviour.
	- Jorrit converted all functions in the XML behaviour layer to be
	  parsed by the new CEL_TOKEN_FUNCTION.
	- Jorrit added 'abs', 'min', 'max', 'sign', 'intpol', 'int', and
	  'float' functions to the XML behaviour layer.
	- Jorrit added a new 'rand' function to the XML behaviour layer.
	  Returns a random number.
	- Jorrit added 'elapsedticks' and 'currentticks' parameters to the
	  pctimer WakeUpFrame message.
	- Jorrit replaced 'arg(' with 'param(' to be more consistent with the
	  rest of CEL where it is called a parameter.
2-Dec-2003
	- Jorrit extended the XML behaviour layer to recognize identifiers as
	  an easier way to make strings consisting only of '_', alphanumeric
	  characters and digits.
	- Jorrit re-enabled cleanup of temporary strings in the XML behaviour
	  layer.
	- Jorrit optimized string handling a bit in the XML behaviour layer.
	  It now attempts to minimize string allocation.
	- Jorrit fixed the pc(entity,propclass) operator in the XML behaviour
	  layer. Removed 'getpropclass' command since that is now obsolete.
	- Jorrit added support for 'id' operator in the XML behaviour layer.
	  This can be used to calculate id's for properties. Also added
	  support for 'propid' which is a short-hand that also adds
	  'cel.property.' in front of the id name.
	- Jorrit changed expresion evaluation so that expressions are evaluated
	  from left to right instead of right to left.
	- Jorrit changed all other operations in the XML behaviour layer to
	  use the new stack based system.
	- Jorrit removed 'getproperty' by adding a 'property' operator to the
	  XML behaviour layer.
	- Jorrit removed the property class resolver system from the XML
	  behaviour layer. This is no longer needed.
	- Jorrit added new 'default' keyword for the XML behaviour layer so
	  that you can now set a default property class to use for the
	  'property' and 'action' operations and also for the 'property'
	  operator.
	- Jorrit added the 'for' command to the XML behaviour layer.
	- Jorrit fixed a bug in parsing of the variable deref operator ('?').
	- Jorrit implemented ==, !=, <, <=, >, and >= operators in XML
	  behaviour layer.
	- Jorrit implemented an optimization in pcproperties so that properties
	  are found faster using a hash. This helps the XML behaviour layer
	  considerably.
	- Jorrit implemented && and || operators in XML behaviour layer.
	- Jorrit implemented 'stop' operation in the XML behaviour layer.
	- Jorrit added iPcTimer->WakeUpFrame() so that you can get a timer
	  that sends a message every frame. The message that is sent is
	  'pctimer_wakeupframe'.
	- Jorrit added three actions to pctimer so that you can control the
	  timer from the XML behaviour layer.
	- Jorrit changed the 'property' command in the XML behaviour layer so
	  that it looks at the type of the property instead of the type
	  of the item on the stack.
	- Jorrit added a new notation to make it easier to access variables
	  from another entity (XML behaviour layer): use ?entityname.var.
	- Jorrit added an optional 'entity' parameter to 'var' so that you
	  can set a variable in another entity.
1-Dec-2003
	- Jorrit added error reporting to the XML behaviour layer (scripting
	  module).
	- Jorrit started a big rework of the XML behaviour layer by using a
	  powerful expression evaluator and a stack. This allows us to use
	  expressions and variables everywhere in the scripts.
	  Not finished and even crashes right now.
	- Jorrit fixed a crash in the XML behaviour layer. It is now again
	  working properly but not all commands are converted to the new
	  system.
	- Jorrit converted 'var' operation to the new system.
30-Nov-2003
	- Jorrit made attribute parsing in the XML behaviour layer and
	  the celentity addon a bit more efficient.
	- Jorrit enhanced 'getproperty', 'property', and 'action' in the XML
	  behaviour layer so that they have an optional 'entity' parameter
	  to work on properties and actions in another entity.
	- Jorrit optimized iCelPlLayer->FindEntity() with an additional
	  hash to find the entities faster.
	- Jorrit added 'createentity' to the XML behaviour layer.
	- Jorrit added 'createpropclass' to the XML behaviour layer.
	- Eric Sunshine updated very outdated m4 files in cel/mk/autoconf from
	  master copies in CS/mk/autoconf.
	- Eric Sunshine removed platform-specfic checks from configure.ac which
	  duplicated checks performed by CS's configure script.  This
	  duplication is no longer needed since Eric fixed a bug in
	  CS/scripts/cs-config/Jamfile which caused the generated cs-config's
	  --cflags and --cxxflags options to always return an empty string.
	  These options now return proper flags, thus duplicate checking by
	  cel's configure script is not required.
29-Nov-2003
	- Jorrit added support for csVector2 properties to the pcproperties
	  property class, to the generic property system, to the
	  persistence layer, and the XML behaviour layer.
	- Jorrit added support for setting different uv ranges for a billboard
	  so that you can now show part of a texture.
	- Jorrit completed support for 2D vectors in the XML behaviour layer
	  and the celentity addon. It is now possible to set 2D vector
	  properties and variables.
28-Nov-2003
	- Jorrit changed the billboard manager internally so that billboard
	  locations and size are now stored in billboard space instead of
	  screen space. This doesn't change anything from the outside (API)
	  but it gives more accuracy when manipulating billboard positions
	  and sizes.
	- Jorrit fixed billboard image handling so it works correctly in both
	  software and OpenGL renderer. This requires fixes on the CS side
	  too.
	- Jorrit removed some debug info.
	- Jorrit changed billboard space to 307200x307200. The reason for this
	  change is that this number is divisible by 320, 480, 640, 600,
	  800, 1024, 1280, and 1600 and is thus very suitable for representing
	  both horizontal and vertical resolutions. It is also square which
	  is easier to use.
27-Nov-2003
	- Jorrit added support for 'width', 'height', 'x', and 'y'
	  properties to the pcbillboard. Also added persistence for these
	  values and fixed a bug in persistence too.
	- Jorrit fixed a bug in the XML behaviour layer with regards to
	  arguments and some types of those arguments.
	- Jorrit added support for using 'var' for setting a property
	  in the XML behaviour layer (instead of only constant values).
	- Jorrit added support for assigning vars to other vars in the
	  XML behaviour layer.
	- Jorrit changed the XML behaviour layer so that it automatically
	  creates a pcproperties property class if needed (for example, to
	  support variables).
	- Jorrit fixed the billboard manager so that clicking on a scaled
	  image still works correctly and collision detection with scaled
	  images also works correctly.
	- Jorrit added the ability to set size of billboard in percentage
	  relative to size of image.
	- Jorrit changed the billboard manager so that it always works
	  in a coordinate system of 1024000 x 614400. By doing this you
	  can make 2D applications that are fully resolution independent.
	  The values above where chosen because they are divisible by
	  most common screen resolutions so that no fraction is required.
	- Jorrit did some additional corrections to the resolution independent
	  billboard manager.
26-Nov-2003
	- Daniel added first draft of CEL documentation.  Any feedback welcome.
	- Jorrit added first primitive version of TestCollision() function
	  in the billboard manager. Currently only uses the bounding
	  rectangle and ignores transparent areas.
	- Jorrit implemented generic property support for the pcproperties
	  property class.
	- Jorrit added support for setting 'long' properties to the XML
	  behaviour layer.
	- Jorrit added support for setting 'long' properties to the 'celentity'
	  addon.
	- Jorrit implemented <getproperty> in the xml behaviour layer. With
	  this command you can get a property from any property class and
	  set it to a property of the 'pcproperties' property class for that
	  entity.
	- Jorrit added support for property class and entity properties in
	  the pcproperties property class (in addition to long, float, bool,
	  and string). This uses weak references so it should be relatively
	  safe to use.
	- Jorrit extended iCelPropertyClass with methods to get and set
	  generic property class and entity properties. Extended pcproperties
	  to implement those too.
	- Jorrit fixed the python behaviour layer for the latest move of
	  the billboard manager from 'managers' to 'tools'.
	- Jorrit optimized handling of properties in the XML behaviour layer
	  by storing the iPcProperties pointer in the behaviour where the
	  script can get it.
	- Jorrit implemented a new 'var' command in the XML behaviour layer.
	- Jorrit implemented a new 'getpropclass' command in the XML behaviour
	  layer.
	- Jorrit implemented a new 'print' command in the XML behaviour
	  layer.
	- Jorrit implemented a new 'if' command in the XML behaviour layer.
	- Jorrit fixed a bug in the iCelPlLayer->FindEntity(). It would crash
	  if there were entities without a name.
	- Jorrit implemented a new 'testcollide' command in the XML behaviour
	  layer.
	- Jorrit implemented a more accurate TestCollision() routine in the
	  billboard manager. Currently very slow though. It should be optimized
	  with some quadtree structure.
	- Jorrit added SetColor/GetColor to iBillboard so that you can change
	  the color of a billboard.
	- Jorrit extended pcproperties property class with support for colors
	  and vectors.
	- Jorrit extended iCelPropertyClass with functions to get and set
	  color properties in a generic way.
	- Jorrit extended the XML behaviour layer with support for color and
	  vector properties.
	- Jorrit extended the 'celentity' addon with support for color and
	  vector properties.
25-Nov-2003
	- Jorrit fixed the billboard manager so that it will now ignore
	  clicks on transparent parts of the objects.
	- Eric Sunshine upgraded CEL to use scfInterface<> instead of
	  name_VERSION and name_scfGetID().
24-Nov-2003
	- Jorrit fixed all CEL hashes that used const char* as a key.
	  In CS there is now a new csStrKey that safely makes copies of
	  the key so that is now used.
	- Jorrit implemented moving of billboards.
	- Jorrit added 'movable' and 'visible' properties for pcbillboard.
	  Also renamed 'events' to 'clickable'.
	- Jorrit implemented stacking order in the billboard manager. By
	  default the most recently created object will be in front of
	  all others.
	- Jorrit added various stacking functions to iBillboardManager.
	- Jorrit added a CEL_BILLBOARD_RESTACK option to billboards. With
	  this option the billboard will automatically restack to front
	  if it is clicked on. Also added a 'restack' property for
	  pcbillboard.
	- Jorrit fixed a bug in the xml behaviour layer. If the same
	  behaviour scfript was reused for multiple entities then the
	  property classes would not be resolved again.
	- Jorrit changed the billboard manager so that by default the
	  width and height are set to -1. When this size is used it will
	  get the size from the texture the first time it is drawn.
	- Jorrit added some real objects (with keycolor transparency) to
	  xmltest.xml.
	- Jorrit renamed the 'managers' directory to 'tools' so that it is
	  more general.
	- Jorrit enhanced the celentity addon plugin so it can now also
	  be used to set properties for the created property classes.
	  See scripts/xmltest.xml for some examples.
23-Nov-2003
	- Jorrit fixed the 'materialname' property in the pcbillboard plugin
	  by overriding SetProperty() and GetPropertyString() from
	  celPcCommon and handling this property seperately.
	- Jorrit enhanced the celentity addon so that it is now also possible
	  to define entities without a mesh. Just place the 'addon' out
	  a meshobj definition to do this.
	- Jorrit extended the xml behaviour layer so that you can now also
	  set string properties using the <property> command (instead of
	  only float).
	- Jorrit implemented some missing functions in the billboard
	  manager.
	- Jorrit added a billboard entity to the xmltest.xml script.
	  The first billboard is visible! (in the lower-left corner).
	- Jorrit added iBillboardEventHandler interface. Users of the
	  billboard manager can use this to get notified about when a
	  billboard is selected.
	- Jorrit implemented a few additional functions in a billboard
	  (to move and resize it).
	- Jorrit added a new property to pcbillboard property class to
	  enable/disable events.
	- Jorrit implemented select, unselect, move, and doubleclick events
	  for billboards. They translate to similar named property class
	  events for the billboard property class (but with 'pcbillboard_'
	  added in front of the message name (i.e. 'pcbillboard_select').
	- Jorrit extended the xml behaviour layer so that you can now also
	  set boolean properties using the <property> command.
	- Jorrit changed the billboard manager to that the 0,0 location
	  is now top-left of screen.
21-Nov-2003
	- Jorrit added a new billboard manager plugin. This plugin will be
	  responsible (when it is ready) for managing billboards. A billboard
	  is basically a 2D image that can be moved and manipulated in other
	  ways.
	- Jorrit added a pcbillboard property class. This class allows one
	  to attach billboards to an entity. It will use the billboard
	  manager to actually create the billboards.
	- Jorrit added all needed stuff for accessing the new billboards
	  from python.
	- Jorrit notes that all billboard related classes don't yet work.
	  This is work in progress.
	- Jorrit implemented the first two operations in the XML behaviour
	  layer: 'property' and 'action'. These operations can operate
	  on generic property classes that support generic properties
	  and action.
        - Matze added a autoconf detection script for cel.
	- Jorrit changed the API of iBillboard so it now works with materials
	  instead of iImage.
	- Jorrit added an event handler to the billboard manager so it will
	  draw the billboards in the postProcess event.
	- Jorrit added the first drawing code to billboards. Untested.
	- Jorrit added two properties for billboards. The material name
	  property will not work yet.
20-Nov-2003
	- Jorrit added a new iCelBlLayerGenerate interface. Some behaviour
	  layers can implement this interface in addition to iCelBlLayer.
	  If they do implement this interface then it is possible to create
	  new scripts dynamically by using the API in this interface.
	- Jorrit added a new blxml behaviour layer. This is a very simple
	  behaviour layer which will be used for simple games. There is
	  one premade 'bootstrap' script which has an 'load' method that
	  can be used by the bootstrap utility to load the initial level.
	- Jorrit added a new xmlscripts addon which is able to create
	  XML scripts for the bmxlm behaviour layer.
	- Jorrit extended bootstrap so that you can now give the name
	  of a behaviour method and one string argument. This method will
	  be called on the behaviour right after creating the entity.
	- Jorrit added iCelPlLayer->LoadPropertyClassFactory(). This is
	  a convenience function to check if a property class factory plugin
	  is already loaded and if not try to load it.
	- Jorrit added LoadPropertyClassFactory() to the python behaviour layer
	  and changed celRegisterPCFactory() to use this instead of simply
	  always loading the plugin.
	- Jorrit added scripts/xmltest.xml as a first example 'game' using
	  the new XML behaviour layer. This is still very primitive and
	  can't be called a game really but it will be enhanced soon.
	  To fire up the xmltest.xml example you can use the following
	  command (on one line):
	    bootstrap cel.behaviourlayer.xml bootstrap load /this/scripts
	    	xmltest.xml
	- Jorrit fixed a bug in the property list of the pcregion property
	  class. It set 5 properties but only 4 are defined. In addition
	  there was a bogus first property set which was immediatelly
	  overwritten.
	- Jorrit added a standard weight property to the pcgravity property
	  class.
	- Jorrit added a 'ApplyPermanentForce' action to the pcgravity
	  property class (works with PerformAction()).
	- Jorrit changed the API of iCelBlLayerGenerate a bit so that it
	  now returns false on failure. Errors are reported using the error
	  reporter as usual.
19-Nov-2003
	- Jorrit made iPcLinearMovement->IsOnGround() use 'const' again.
	  For some reason this was changed in Keith's latest commit but
	  this caused the blpython behaviour layer to not compile.
	- Jorrit performed a very fundamental change to the physical layer.
	  Previously if you created an entity using pl->CreateEntity() you
	  would get back the only reference to that entity. i.e. the physical
	  layer didn't keep a ref and you were responsible for maintaining
	  that ref on your own. This is now changed. The physical layer now
	  maintains its own references. The consequence of this is that it is
	  no longer sufficient to release your reference to get rid of an
	  entity but you have to do a manual pl->RemoveEntity() call.
	- Jorrit fixed smallgame.py for the latest collision detection changes
	  in linmove.
	- Jorrit added a new plugin: 'addon_celentity'. This plugin can
	  be registered as an addon in a map file and you can use it to
	  attach entities to meshes. You can use a syntax like this:
	      <meshobj name=...>
	          ...
		  <addon plugin="cel.addons.celentity" entityname="bla">
		    <behaviour layer="python" name="mybehaviour" />
		    <propclass name="pcsolid"/>
		    <propclass name="pctimer"/>
		    ...
		  </addon>
	      </meshobj>
	  Here are a few remarks:
	      - If you don't specify 'entityname' then the name from the mesh
	        itself will be used.
	      - The 'layer' name will be used to query for a behaviour layer
	        from the object registry. If you don't specify that name
		then the addon will try to get the default behaviour layer
		(registered with name "iCelBlLayer").
	      - You don't have to create a 'pcmesh' as that property class
	        is automatically created.
	- Jorrit changed the pcregion property class so that it no longer
	  creates an entity for a mesh if there is already an entity. This
	  means you can safely use the cel.addons.celentity addon for meshes
	  in your map file. Note that pcregion normally creates a 'pcsolid'
	  property class in addition to the 'pcmesh'.
	- Jorrit added iCelPlLayer->FindEntity(). This is a slow function so
	  only use it when you really need it.
	- Jorrit added scfQuery_iPcGravity and scfQuery_iPcMovable functions
	  to the python behaviour layer.
	- Jorrit also added celGet...() to the python behaviour layer for all
	  property classes. This is similar to the celCreate...() functions.
	- Jorrit changed 'portal_world' and 'smallgame.py' to use the new
	  feature of creating an entity through an addon.
17-Nov-2003
	- Keith separated pc linmove from collision detection code in
	  preparation for making a new linmove pc for sprcal3d sprites.
	  This way they can both share the same CD code. Linmove will
	  auto-create iPcCollisionDetection if one is not supplied to it in
	  InitCD(). If you want one other than the default, supply one here.
11-Nov-2003
	- Keith changed link directories not to be hardcode to his local
	  machine's paths.
9-Nov-2003
	- Chris Matuszewski added SetMaxSelectionDistance() to iPcMeshSelect to
	  allow the user to specify a maximum distance to use for mesh
	  selection.  This value is used in the call to HitBeam in
	  meshfact.cpp.  A default max_distance value is set to 100000 in
	  meshfact.cpp.  This change allows meshselect to work for objects that
	  are farther than the previously arbitrary distance of 60 units.
4-Nov-2003
	- Chris Matuszewski changed the return value of HandleEvent() in
	  inpfact.cpp to false to allow other entities that may have
	  registered for the same input to process the same event.
	- Added vel and ang vel to CEL persistence so that objects in motion
	  at persist time will be in motion on the receiving end.  Note that
	  position and angle are persisted as part of the mesh/movable and
	  don't have to be persisted here.
3-Nov-2003
	- Chris Matuszewski updated the swig generated python wrapper files.
	- Keith Fulton took out some debugging printfs related to finding
	  meshfact names.
20-Oct-2003
	- acraig fixed some more keyboard event related changes in CS.
18-Oct-2003
	- Jorrit fixed CEL for latest event related changes in CS.
	- Jorrit fixed python plugin in CEL.
01-Oct-2003
	- Matze fixed a problem in cel-config after some include dirs have been
	  renamed
21-Sep-2003
	- Keith made the sector param of pcmesh->MoveMesh() optional, so that
	  position alone can be updated.
18-Sep-2003
	- Eric Sunshine removed a bunch of obsolete and useless
	  SCF_EXPORT_CLASS() invocations from the various plugin modules.
	- Eric Sunshine corrected some spelling errors pointed out by Andreas
	  Busch: proprty --> property
16-Sep-2003
	- Eric Sunshine updated the Autoconf files, Jam files, project files,
	  project templates, etc. to reflect the recent cssys+csutil merge.
10-Sep-2003
	- Jorrit fixed SetMesh() so it returns false on failure.
9-Sep-2003
	- Jorrit fixed CEL for latest iPolygonMesh change in CS.
8-Sep-2003
	- Jorrit fixed CEL for latest iPolygonMesh change in CS.
5-Sep-2003
	- Jorrit fixed CEL for latest CS change (python plugin still broken).
1-Sep-2003
	- Eric Sunshine added ranlib check to configure.ac; needed for MacOS/X.
27-Aug-2003
	- Jorrit moved the apps/celtest/data directory to data so that the
	  Python scripts don't have to fetch stuff inside celtest directory.
	- Jorrit extended the python behaviour layer so that you can now call
	  CreateBehaviour with a path in front of the behaviour name.  That way
	  you can place scripts inside other directories.
	- Jorrit moved the physicstest script inside scripts/physicstest. Run
	  it with:
	    bootstrap cel.behaviourlayer.python scripts/physicstest/physicstest
	  (note: do not add the '.py' at the end!).
	- Jorrit moved smallgame to scripts/smallgame.
	- Jorrit fixed CreateEmptyThing() in pcmesh.  It was broken more than
	  seven months ago without anyone noticing :-)
	- Jorrit reverted an accidental slow-down in the dynmove property
	  class.
	- Jorrit added a visible floor to physicstest.py.
	- Jorrit added a forces system to the new dynmove system.  With this it
	  is possible to add forces to objects that are fired exactly once, for
	  a given time, or for the next frame.
	- Jorrit changed the comments in dynmove to reflect that 'ms' is
	  actually not milliseconds but seconds.  Also changed the 'ms' to
	  'seconds'.
25-Aug-2003
	- Jorrit added first version of the pfdynmove property class. This
	  property class supports ODE for physics. This version works but is
	  not complete yet because it lacks correct persistence.
	- Jorrit added iPcRegion->CreateEmptySector(). This way it is easy
	  to create a region that just represents an empty sector (that
	  will be filled later with other objects).
	- Jorrit fixed the CEL python plugin to a recent CS change.
	- Jorrit also extended the CEL python plugin with the new
	  CreateEmptySector() and the dynamics property classes.
	- Jorrit added iPcCamera functions to add the possibility to clear
	  z-buffer and screen every frame. This is used in case the loaded
	  map itself doesn't specify this. Extended the python plugin with
	  these new functions.
	- Jorrit added scripts/physicstest.py which is a small python script
	  that you can use with 'bootstrap' to test the new dynamics
	  property classes. This script is not really 100% ok atm.
21-Aug-2003
	- Eric Sunshine fixed problems in Makefile.in where SRCDIR was not
	  always being respected.
17-Aug-2003
	- Eric Sunshine made the following changes:
	    - Added missing %cflags%, %lflags%, %libs%, and %delaylibs%
	      invocations to the msvcgen (6 and 7) template files.
	    - Added "/D SWIG_GLOBAL" to blpython project files (reported by
	      Chris Matuszewski <ganamide@yahoo.com>).
	    - Corrected name of meta-info file reference in makefile and
	      project files: plpython.csplugin --> blpython.csplugin (reported
	      by Chris Matuszewski).
10-Aug-2003
	- Keith committed patch by Ondrej Hurt to improve key binding
	  handling.
3-Aug-2003
	- Jorrit removed various usages of csVector.
2-Aug-2003
	- Jorrit fixed CEL for latest CS changes (DeleteIndex instead
	  of Delete).
31-Jul-2003
	- Keith fixed a couple of compiler warnings.
29-Jul-2003
	- Jorrit fixed CEL for latest CS changes (iStrVector removal).
27-Jul-2003
	- Keith fixed CEL to at least compile now that csPArray<> has
	  been removed for some reason.
17-Jul-2003
	- Jorrit fixed a stupid bug in the collider creation of pclinmove.
	  It was using a plane instead of a box for the collider. Thanks
	  to Hudbrog <hudbrog@mail.ru> for spotting that.
	- Keith Fulton added support for csPath following in linmove.
13-Jul-2003
	- Keith fixed crash in new collider code for meshes without
	  associated entities.
11-Jul-2003
	- Jorrit replaced the custom celPolygonMeshCube class with the new
	  csPolygonMeshCube from Crystal Space in the pcmove property class.
	- Jorrit greatly simplified pclinmove by using the new
	  csPolygonMeshCube class.
	- Jorrit renamed csPolygonMeshCube to csPolygonMeshBox.
10-Jul-2003
	- Jorrit changed linmove property class to use a beam that is
	  at 5% height of player to check for portal traversal. That is
	  better than using 50% because using 50% might not work correctly
	  for horizontal portals.
	- Fixed linmove so it no longer falls through the floor when going
	  through a portal. The problem was that CEL uses pcsolid which
	  delays creation of csColliderWrapper until pcsolid->GetCollider()
	  is called. But pclinmove doesn't use pcsolid so GetCollider() was
	  never called. pclinmove will now try to find a pcsolid and use
	  that if present.
9-Jul-2003
	- Jorrit optimized CEL by using the new GetNearbyMeshes() function
	  that was added to CS today. This optimization affects
	  iCelPlLayer->FindNearByEntities() and pclinmove.
	- Jorrit added another optimization to stdphyslayer. The engine
	  from the object registry is now remembered and no longer queried
	  every time it was needed.
	- Jorrit optimized cpersist plugin by remembering VFS.
	- Keith fixed a compile error in linmove.h.
	- Keith added UpdateDR method to linmove.  This function takes a
	  csTicks value and calls ExtrapolatePosition with delta relative to
	  the last DR update ticks value in the PC already.  This function
	  allows a server to synchronize positions across many entities as
	  of a point in time, even when those entities are being updated
	  at all different times by clients.
8-Jul-2003
	- Jorrit fixed a bug in pclinmove where it would register collisions
	  with the same object. Now pclinmove ignores collisions from the
	  object which belongs to the mesh that contains pclinmove.
	- Jorrit fixed a bug in pclinmove where it would not correctly do
	  collisions with hierarchical objects. The problem was that
	  GetTransform() was used instead of GetFullTransform().
	- Jorrit fixed a bug in pclinmove where it would call PlaceMesh()
	  AFTER changing the current sector but BEFORE moving the object to
	  the new position. The result was that the PlaceMesh() function
	  would fail to find all neighbouring sectors.
	- Jorrit clarified the InitCD() function in pclinmove. Instead of
	  'top' and 'bottom' the parameters are now called 'body' and 'legs'
	  to indicate that these are the dimensions of the body and the
	  legs of the colliders. Also added a 'shift' parameter so that
	  you can relocate the collider if the 0,0,0 origin of the actor
	  mesh is not at the bottom-center of the model.
	  Note that this 'shift' feature doesn't work yet! So keep it
	  at 0,0,0 for now.
	- Unfortunatelly all bug fixes above still don't prevent smallgame.py
	  from falling through the floor as soon as a portal is traversed.
7-Jul-2003
	- Jorrit received a patch from Steve Cook (steve.cook1@excite.com)
	  for an AI pathfinding property class. I haven't yet got time
	  to really look at it but I cleaned it up slightly. Still needs
	  a lot more cleanup though. I also seperated the public include
	  file so that you can actually include from it.
	  This is untested code (from my point of view at least).
	- Jorrit did more cleanups to the new AI pathfinding class and
	  also added a small testcase to celtest.
	- Jorrit modified the pcsolid property class so that it use
	  csColliderWrapper to create the collider. That way pclinmove also
	  works with pcregion and other users of pcsolid.
	- Jorrit extended smallgame to use pclinmove correctly. Still a few
	  bugs here and there.
	- Eric Sunshine made the following changes (100% untested):
	    - Added msvcgen facility to project.  It is now possible to
	      generate MSVC6 and MSVC7 project files in an automated fashion by
	      invoking the new `msvcgen' Makefile target.
	    - Moved the .csplugin files out of the root directory and into the
	      specific plugin directory where each one belongs.  Having them in
	      the root directory was incorrect.
	    - Upgraded the makefile so that it copies the .csplugin files
	      alongside the .dll/.so file at build time.
	    - Upgraded the MSVC project files so that they copy the .csplugin
	      files alongside the .dll.
	    - Upgraded Makefile so that it is possible to build the project
	      outside of the source directory.  (This was already possible with
	      the Jam build system.)
	    - Removed Makefile and replaced it with Makefile.in.  Makefile is
	      now generated at configure time.
	    - Fixed clean targets in Makefile and Jamfile to be more thorough.
	      Added distclean target.  (This target, in both Makefile and
	      Jamfile, still misses at least one file, though: the Jamfile
	      hack which is created when building outside the source directory.
	      I don't care for this hack, and would prefer to create Jamfile
	      from Jamfile.in at configure time, but Matze prefers the hack, so
	      I left it alone.)
	    - Fixed formatting of .csplugin files.
	- Eric Sunshine made the following additional changes:
	    - The `msvcgen' Makefile target now passes --xml-protect to
	      msvcgen.pl when building MSVC7 project files.
	    - The cel.sln (MSVC7) and cel.dsp (MSVC6) workspace files are now
	      also generated by the `msvcgen' makefile target.
	- Eric Sunshine relocated cel.sln and cel.dsw back to the root
	  directory (where they were prior to the last change) after figure out
	  a simple way to have the workspace files reside in a location
	  different from the project files, even when building with msvcgen.
6-Jul-2003
	- Jorrit fixed the problem with GetPythonObject(). It now calls
	  Py_INCREF() on the returned python object so that it is
	  reference counted correctly.
4-Jul-2003
	- Jorrit added iCelBehaviour->GetInternalObject(). This slightly
	  dirty function is intended for implementations of behaviour layers
	  so they can get the internal object that represents the behaviour.
	  For example, in case of the python behaviour layer this will return
	  a pointer to the Python object handle (PyObject pointer). This is
	  a rather dirty solutions. Feel free to suggest me cleaner approaches.
	- Using the above function Jorrit added a GetPythonObject() function
	  which you can use from inside Python scripts to get access to the
	  real Python object that belongs with a Python iCelBehaviour.
	  This avoids the global variable 'room' in the smallgame.py script.
	- Jorrit removed the 'name' parameter from celCreateCamera() in the
	  Python behaviour layer. It is not needed.
	- Jorrit added support for the pclinmove property class in the Python
	  behaviour layer.
	- Jorrit added support for the pcinput property class in the Python
	  behaviour layer.
	- Jorrit cleaned up blcel.i a bit.
	- blcel.i: scfQuery_iPcCamera, scfQuery_iPcMesh, scfQuery_iPcInventory,
	  and scfQuery_iPcTimer do IncRef() now.
	- Protected most IncRef()'s in blcel.i with if's.
	- Jorrit fixed blcel.i for pckeyinput and pclinmove.
	- Jorrit added names to the meshfactories in celtest so they are
	  not loaded again all the time.
	- Report: GetPythonObject() is not yet working properly. It causes
	  weird crashes later.
3-Jul-2003
	- Jorrit cleaned up the python plugin a bit.
	- Box in smallgame now has gravity.
1-Jul-2003
	- Jorrit renamed celpython to bootstrap. The idea is that the
	  'bootstrap' tool will be a generic utility with which you can
	  take any behaviour layer plugin and create a basic entity that
	  will execute a behaviour from that plugin. This can be used to
	  fire up a game using CEL.
	- 'bootstrap' now basically works.
	- Jorrit changed the celCreateEntity() function in the blcel.i
	  swig wrapper to use an iCelPlLayer argument instead of an
	  iObjectRegistry. That's a lot more efficient and you can easily
	  get the current iCelPlLayer by using the 'physicallayer_ptr'
	  in python scripts.
	- Jorrit changed a few other celCreate... functions to also accept
	  an iCelPlLayer instead of an iObjectRegistry.
	- Jorrit changed more functions like that. Also renamed all Create
	  property classes to start with celCreate....
	- Jorrit renamed LoadBehaviour() to CreateBehaviour() in python.
	  Also changed the object registry parameter to iCelBlLayer instead.
	- Jorrit added celRegisterPCFactory() to the python behaviour plugin.
	  With that function it is possible to load property class factory
	  plugins if they don't already exist.
	- Jorrit replaced %addmethods with %extends to avoid swig warnings.
	- Jorrit added scripts/smallgame.py which can be used together with
	  bootstrap. Doesn't do much yet.
	- Jorrit removed the code from celCreateCamera (in python behaviour
	  layer) to set the region. This should be done in the python script
	  and not there. Also removed the 'world' parameter since this is
	  no longer needed.
	- The smallgame.py script now loads partsys and displays it.
29-Jun-2003
	- Eric Sunshine replaced the outdated mk/autoconf/progver.m4 with an
	  up-to-date version from the Crystal Space project.  This fixes the
	  Swig version check in the configure script which was failing.
27-Jun-2003
	- Jorrit moved celtest to apps/celtest.
	- Jorrit added apps/celpython. The purpose of this application will
	  be to have a very thin app that only initializes CEL and fires
	  up a python script then. The python script will take over from there
	  and set up the game entities and everything related to the game.
	  Note that this does not work correctly!
	- Matze added Jam rules to rebuild the swig files
	- Eric Sunshine removed several outdated and unused .m4 macro files
	  from cel/mk/autoconf.  This fixes the problem where the Swig version
	  check failed to emit a meaningful result.  The problem was that a
	  much older version of CS_CHECK_PROG_VERSION() in vd.m4 was overriding
	  the newer version in progver.m4.  (Unfortunately, progver.m4 itself
	  is employing bogus sed expressions, so the version check is still
	  inaccurate, but that is a different issue which will be addressed
	  separately.)
26-Jun-2003
	- Jorrit added iCelPlLayer->GetBehaviour() as a convenience function
	  to directly get the behaviour associated with an entity ID.
	- Jorrit performed a huge reorganization of the directory structure
	  used inside CEL itself. Here it is now:
	  	- include
		- plugins
			- stdphyslayer (formerly plimp)
			- propclass (formerly pf dir)
				- ... various property classes
			- persist
				- standard
			- behaviourlayer
				- test (bltest)
				- python (blpython)
		- celtest
	- Jorrit renamed include/pf to include/propclass. This will break
	  all games that use CEL. The change is easy though.
	- Jorrit renamed include/bl to include/behaviourlayer and
	  include/pl to include/physicallayer.
	- Keith fixed up the msvc7 project files to use correct dirs.
25-Jun-2003
	- Jorrit ported pslinmove from the PlaneShift project to CEL. The
	  code is currently mostly unchanged except for a few things:
	    - The code no longer assumes that the mesh is a sprite. It should
	      now work for objects that don't have actions.
	    - It uses the reporter (Report) to report errors instead of
	      printf.
	    - The cheat Warning call is currently disabled because CEL has
	      no alternative for that yet.
	  The code is untested and there are still a few things I'd like to
	  do with it to make sure it is general enough to be used in games
	  other than PlaneShift.
	- Jorrit reports: Conforming to the C++ standard I replaced all NULL
	  with 0 (like was done in CS some time ago).
	- Jorrit fixed scripts/printer.py so that it works again.
24-Jun-2003
	- Jorrit fixed the CEL python plugin to latest CS.
	- Jorrit made celtest use OpenGL by default.
	- Jorrit removed the <name> from the .csplugin files.
	- Matze updated jam rules from CS
20-Jun-2003
	- Jorrit fixed CEL for recent region related CS changes.
5-Jun-2003
	- Keith Fulton fixed a bunch of broken things resulting from the
	  CS SCF changes today.  Thanks to Andrew Craig for figuring out
	  these fixes.
4-Jun-2003
	- Keith Fulton fixed two places in CEL for the new CS iterator
	  functions.
27-May-2003
        - Boyan implemented new iScript interface extension methods
	- Matze updated jam rules and moved over all improvements made in CS.
25-May-2003
	- Jorrit changed pcsolid property class to use GetObjectModel() for
	  the CD mesh instead of the deprecated SCF_QUERY_INTERFACE.
16-May-2003
        - Boyan added celFindNearbyEntities() function
12-May-2003
	- Boyan added some error handlings to blpython and fixed bug in
	  celCreateEntity.
10-May-2003
	- Boyan updated Python plugin to use low level Python API.
09-May-2003
	- Boyan updated blpython plugin:
	   -SWIG 1.1p5 -> SWIG 1.3.19
	   -added scfQuery_iPcMesh
	   -added scfQuery_iPcTimer
06-May-2003
	- Boyan fixed wrong iterator cycle in FindNearByEntities:
	  while (objit->Next ()) changed to while (!objit->IsFinished ()).
30-Apr-2003
	- Matze updated jamrules and autoconf macros to latest CS rules.
28-Mar-2003
	- Fixed Python plugin in CEL for latest CS changes.
25-Mar-2003
	- Fixed Python plugin in CEL for latest CS changes.
14-Mar-2003
	- Jorrit Tyberghein made a change in CS allowing more accurate
	  mesh selection. pcmeshsel property class now uses this.
11-Mar-2003
	- Keith Fulton committed a fix by Andrew Mann to handle regions
	  correctly, changing engine->GetMeshes()->Remove(mesh) to
	  engine->RemoveObject(mesh).
28-Feb-2003
	- Matze Braun fixed cel.cex to not report deps which aren't needed.
	  Esp. -lcsengine isn't needed!
26-Feb-2003
	- Matze Braun added configure to cvs and made the check for
	  CrystalSpace looking for version 0.96 and above
25-Feb-2003
	- Matze Braun fixed jam install rules
11-Feb-2003
	- Release of CEL 0.96r001.
24-Jan-2003
	- Eric Sunshine updated Makefile to work correctly with new -makevars
	  fragments from cs-config which might now contain references to
	  makefile variables such as $(OUT), $(CFLAGS.I), $(LFLAGS.L), etc.
23-Jan-2003:
	- Keith Fulton added a SetID to iCelEntity so it is possible
	  for an external app to override the CS_ID assigned to an
	  entity.  This is necessary when objects across networks
	  have different lifespans, to prevent reuse of the same CS_ID
	  to represent different objects and confusion of the
	  underlying entities.
	- Matthias Braun then reverted this change based on design
	  principles. Jorrit agrees.
	- Jorrit then put back Keith's patch after discussion with Matthias.
	  It seems to be the only fast solution to solve the problem right now.
	  It is a hack though and another solution MUST be found.
	  Personally I feel most for letting NumReg return numbers that
	  are never reused. Perhaps requires some thinking.
21-Jan-2003:
	- Fixed a ref leak on 'view' in the engine property class.
	  The 'new csView' wasn't properly embedded in a csPtr<iView>.
17-Jan-2003:
	- Keith Fulton fixed circular refcount issue which prevented all
	  prop class factories from ever being deleted.
	- Keith Fulton added many specific error msgs for things which
	  could go wrong with CEL persistence loading on the client.
	  Added a Report function to all files involved which should
	  probably be in a libary, but he cannot create the library on
	  on Windows himself.
15-Jan-2003:
	- Fixed CEL for latest CS changes (growing arrays).
	- In the mean time fixed some memory leaks while doing that.
13-Jan-2003:
	- Fixed the python plugin.
07-Jan-2003:
 	- Keith Fulton added a SetReverseAction convenience function to
	  iPcMesh.
05-Jan-2003:
	- Keith Fulton changed iPcCamera to not always require an iPcRegion.
30-Dec-2002:
	- Matze fixed several refcount problems introduced by the change to
	  csRef. But still a leak here :-/
24-Dec-2002:
	- Wouter Wijngaards fixed a small compilation error in pf/mesh/
	  meshfact.cpp, introduced by the separation of Engine and Thing
	  in CS.
01-Oct-2002:
	- Keith Fulton added Yaw (Y-axis) adjustment to iPcCamera.  Yaw,
	  Pitch and Roll together change the camera viewing angle without
	  affecting the LookAt vector.
20-Sep-2002:
	- Patch from Michael Dale Long for improved Python support
		- Added embedded iScript interface to celBlPython.  Now
		  applications can get access to the underlying scripting
		  interface if one is available.
		- Modified CreateBehaviour() so it passes an iCelEntity
		  instead of an iCelEntity * to the behaviour constructor.
		  This frees the scriptwriter from having to wrap the pointer
		  before using it.
		- Added some csQueryRegistry_* functions.  This is to
		  facilitate a Python csQueryRegistry() function that performs
		  CS_QUERY_REGISTRY() type lookups.
		- Added the LoadBehaviour() method to iCelEntity to simplify
		  loading and setting behaviours in scripts.  Note that
		  actions in the behaviour may or may not take affect in the
		  running environment depending on how you run the interpreter.
		- Added celCreate* (i.e. celCreateEntity, celCreateCamera) to
		  simplify creation of these objects in a script.
		- Removed iCelBehaviour::SendMessageV() wrapper and added a
		  wrapper for SendMessage() which excludes the varargs.
		- Added celQueryPC_iPcRegion() to facilitate a Python
		  celQueryPC() function that performs CEL_QUERY_PROPCLASS()
		  type lookups.
		- Added scfQuery_iPcRegion() to facilitate a Python
		  scfQuery() function that performs SCF_QUERY_INTERFACE()
		  type lookups.
		- Added wrappers for iPcRegion, iPcCamera, iPcMeshSelect,
		  iPcMesh, iPcTimer, iPcSolid, iPcGravity, iPcMovable,
		  iPcInventory, and iPcCharacteristics.  Each one has a
		  corresponding celCreate* function.
17-Sep-2002:
	- Fixed CEL for the new csPtr(csRef) constructor in CS.
13-Sep-2002:
	- Did a full smart pointer fix for entire CEL.
20-Aug-2002:
	- MatzeB removed broken automake system and replaced it with a Jam
	  and autoconf based one
19-Jul-2002:
	- MatzeB fixed indentation and an LPVOID issue in engfact.cpp.
	- Readded the firstperson camera mode that I accidently removed
	  yesterday by applying's Anders patch.
18-Jul-2002:
	- Several months ago I received a patch from Anders Stenberg.
	  This patch does the following:
	      - Added the blcel.physicallayer_ptr variable so that python
	        scripts can access the pl more easily.
	      - blpython.i contains lots more interfaces to CEL stuff
	        (entities and property classes).
	      - Getting a description string of a property. Will be useful
	        for stuff like entity editors/viewers (within a level
		editor for example).
	      - Enable the subclass to just "register" a property, bind it
	        to one of its members, and then all handling of
		SetProperty/GetProperty is done "automatically". (Of course
		it can be overloaded if you want some special voodoo. For
		example, you can handle just one property with some special
		stuff, and release it to celPcCommon::SetProperty in all other
		cases.)
	      - pcregion uses the new system described above.
2-Jul-2002:
	- Fixed CEL for the latest CS changes with regards to the _FAST
	  macros.
11-Jun-2002:
	- pcmovable property class now fires a callback with ID
	  CEL_PCMOVEABLE_PROPERTY_POSITION whenever the position is changed
	  in preparation for pclocater.
10-Jun-2002:
	- Added first person camera mode from amin
5-Jun-2002:
	- Added CreateEmptyEntityList() to the pl in CEL.
28-May-2002:
	- Fixed include for polymesh.h.
	- pcmesh property class now fires a callback with ID
	  CEL_PCMESH_PROPERTY_MESH whenever the mesh changes.
22-Apr-2002:
	- Fixed several bad bugs in NumReg:
	    - In Register() a 'memset' was done with only
	      (newsize-listsize) bytes but this needs to multiply
	      by the size of (void*).
	    - 'memset' was also done on the OLD value of 'list' so this
	      could potentially corrupt memory if a reallocation caused
	      in a new pointer.
	    - 'freelistend' points to the first free item in 'freelist'.
	      However the loop in Register() was first doing 'freelistend++'
	      which means there was a gap.
15-Apr-2002:
	- Matze removed some warning printfs
30-Mar-2002:
	- Matze added an extra parameter to pcmesh->SetAction. If resetaction
	  is false like the default it doesn't set the action if it's the same
	  like the current action
26-Mar-2002:
	- Matze added a RemoveEntity callback, that makes it possible for the
	  persistence layer contexts to only keep soft refs to entities
	- Applied a patch from Loic Dachary, it adds autoconf support to cel
	  which brings a nice install and build system (on platforms that
	  support autoconf/automake). He also included the license into some
	  headers that missed it... I just replaced the COPYING file by a
	  LGPL one...
6-Mar-2002:
	- Matze made the internal mapping of persistence (ids from localhost
	  to ids from other host) accessible through some functions in
	  iCelPersistContext. You can now also choose if mapping should be
	  used. By default mapping is performed while loading a file and not
	  while reading one.
5-Mar-2002:
	- Added iPcCamera::GetFollowPos() and GetMode().
	- Matze fixed pckeyinput for latest CS changes
28-Feb-2002:
	- Matze changed persistence to not IncRef entities while reading,
	  everyone who reads an entity with persistence has to IncRef this
	  itself now. On the other hand this solves an issue when multiple
	  persisted things refer to the same entity. Note that this is only for
	  datatbuffers, the LoadEntity function still returns an IncReffed
	  entity.
	- Matze added Clear to persistace context to clear the internal hash
	  tables of the persistence plugin.
27-Feb-2002:
	- Matze fixed a wrong return.
	- Matze removed the persistence Set(int) function.
	- Fixed the python behaviour layer.
	- Added some sanity checks to NumReg code using CS_ASSERT.
	- fixed a bug in camera persistence
26-Feb-2002:
	- improved followmode. It now accepts 2 relative positions:
	    -the position of the camera relative to the mesh
	    -the position of the point the camera looks at, rel. to the mesh
21-Feb-2002:
	- Renamed celData->Set(bool) to SetBool() to avoid problems on
	  platforms that don't have the bool type.
20-Feb-2002:
	- Fixed a bug in celPcRegion::SetWorldFile() it would delete
	  its own copy in some cases.
	- Did some small reformatting of history.txt.
19-Feb-2002:
	- jtarbox added a rotational camera mode a few days back and then
	  changed it so that the distance from the object can be changed as
	  well.
12-Fev-2002:
	- Matze changed order of entity saving/loading. behaviour is the last
	  processed piece now.
20-Jab-2002:
	- Matze changed ref behaviour for Region: Camera is taken ref to
	  region now. This fixes camera loading.
17-Jan-2002:
	- Matze fixed several bugs/cleaned up/commented in ID registry
	- introduced celDataBufHelper class to make the Save/Load functions
	  easier
	- more fixes, persistence at least doesn't crash anymore now
15-Jan-2002:
	- Fixed more of the bugs I introduced and cleaned stuff up alot
	- persistence is working now, but some property classes seem to be
	  buggy
	- reenabled the csMemFile buffer, after fixing a bug in CS
14-Jan-2002:
	- Matze changed persistence plugin, to accept streams thourgh iFile
	  interface.
	- Also changed persistence to use ID's instead of entity names
	- Added some macros that help debugging save/load functions
	- Saving seems to work, while loading fails for some reasons... I
	  suspect a bug in csMemFile (I'll investigate tomorrow), but also
	  when reading files directly from disk something goes still wrong...
7-Jan-2002:
	- Updated CEL for new CS.
2-Jan-2002:
	- Matze added support for ID's:
	     Each Entity is assigned a unique ID now, a list of ID's is
	     stored in the PhysicalLayer now, so this also has the nice
	     effect, that you can check if all entities are properly removed
	     at destruction time.
	- Matze added CEL_DEBUG constant.
31-Dec-2001:
	- The new 'pcgravity2' property class works a lot better now with
	  the new CollidePath() function in CS iCollideSystem. Friction
	  and proper collision response still have to be implemented though.
	- Again improved gravity handling a little.
	- Removed the old celPcGravity and renamed celPcGravity2 to
	  celPcGravity.
	- Renamed iPcGravity::IsOnGround() to IsResting() to indicate if
	  an object is resting.
	- Added iPcGravity::ApplyPermanentForce() and
	  iPcGravity::ClearPermanentForces() to work with permanent forces.
	- Added iPcGravity::SetActive() and IsActive() with which you can
	  activate/deactivate physics handling for that object temporarily.
	- Added iPcGravity::ResetSpeed(). This will leave the forces alone
	  but reset the speed to zero.
	- iPcGravity::ClearForces() will no longer reset the speed.
29-Dec-2001:
	- Philip Wyett updated MSVC project files for CEL.
28-Dec-2001:
	- Renamed 'pcinput_' messages to 'pckeyinput_'.
	- Implemented persistence in pckeyinput property class.
	- Added the first version of the 'blpython' plugin. This is
	  a general behaviour layer for python scripting. It compiles
	  and links but it otherwise not functional.
	- Further work on the blpython layer. It now actually implements
	  iCelBlLayer correctly and also returns iCelBehaviour instances.
	- Added GetName() to iCelBlLayer. Behaviour layers can now have
	  names. This allows CEL to distinguish between different behaviour
	  layers that may be loaded at the same time.
	- Added a registry of behaviour layers to the physical layer.
	- Added GetBehaviourLayer() function to iCelBehaviour.
	- Made the persistence plugin independent from the behaviour
	  layer that is chosen by also writing and reading the name
	  of the behaviour layer. This allows persistence to work correctly
	  if multiple behaviour layers are in memory (and behaviours from
	  various behaviour layers are used).
	- The python behaviour layer plugin is now actually working and
	  being used for two small entities.
	- Started work on a new pcgravity property classes (for now
	  called pcgravity2 until it is working fine and can replace the
	  old pcgravity). Celtest already uses this new property class
	  for a all entities and it seems to work a bit already.
	  Note that it is highly unfinished though!
27-Dec-2001:
	- Added a string registry to the physical layer. This can be used
	  for various things but in the first time it is going to be used
	  for a generic property setter for all property classes. CEL
	  convention on string names will be 'cel.xxx.yyy.zzz'. With 'xxx'
	  equal to the type of string (i.e. 'property'), 'yyy' equal to the
	  scope of the property (i.e. 'pccamera') and 'zzz' the name of the
	  given type (i.e. the property name). An example:
	  'cel.property.pccamera.startsector'.
	- Extended iCelPropertyClass with a number of methods for a generic
	  property setter. This will allow string based scripting languages
	  to access all property classes without requiring knowledge
	  of the SCF interface that is specific to that property class. Of
	  course it will be less efficient but the efficiency loss is solved
	  a bit by using the string registry.
	- celPcCommand already provides empty implementations of all
	  these new classes so that existing property classes don't have
	  to be modified. None of the property classes currently implement
	  the new interface though.
	- Implemented the new property interface in celPcRegion. It now
	  supports the following three properties:
	    cel.property.pcregion.worlddir
	    cel.property.pcregion.worldfile
	    cel.property.pcregion.regionname
	- Added support for csVector3 as a type for properties in
	  iCelPropertyClass.
	- Added a PerformAction() function to iCelPropertyClass which uses
	  the same system as the properties in iCelPropertyClass and allows
	  scripting languages to perform generic actions. Convention for
	  action names is:
	    cel.action.pcregion.load
	  Actions are included with properties in the rest of the API.
	  So you can also perform the following functions on actions (note
	  that these functions have been renamed):
	    - HasPropertyOrAction()
	    - GetPropertyAndActionCount()
	    - GetPropertyOrActionID()
	    - GetPropertyOrActionType() (new function)
	- Added celPropertyActionType enumeration type.
	- Seperated celData and celDataType from persist.h into its own
	  pl/datatype.h.
	- There were already three places where some kind of datatype
	  was defined:
	    - persistence (celData and celDataType).
	    - iPcProperties (CEL_PROPERTY_... define).
	    - The new properties in iCelPropertyClass (type_...).
	  Rationalized this by using the celData and celDataType definitions
	  everywhere. To do this celDataType had to be extended with csVector3.
	- Updated the persistence layer to also support csVector3 directly
	  now (CEL_DATA_VECTOR3). Updated several of the property classes
	  load/save functions to use csVector3 instead of three floats.
	- Added CEL_DATA_ACTION to celDataType. This is not supported by
	  the persistence layer though and only needed for iCelPropertyClass.
	  Added celData->SetAction() to set an action.
	- Fixed a memory leak in the pcinput property class which was
	  not deleting the event handler.
	- Fixed a memory leak in celtest. The actor entity was not added
	  to the room inventory.
	- Changed persistence in pcgravity to use the new CEL_DATA_VECTOR3.
	- Fixed a few memory leaks in bltest.
	- Rationalized the SendMessage names to the convention:
		'pcbla_msgname'.
	  In particular for pcinput this means that some changes are
	  needed. Instead of +run (and similar) it will now be
	  	pcinput_run1 (and pcinput_run0 for disable).
	  This change was done to make the name compitible with scripting
	  language routines.
26-Dec-2001:
	- Added new iPcProperties property class. This is a general property
	  class to store string, float, long or boolean properties.
	  The message prop_setproperty is sent to the behaviour layer when
	  a property is set. The message prop_clearproperty is sent when
	  a property is cleared. The index of the property is given as
	  a parameter.
	- Added SetRectangle() to iPcCamera. With this you can set the part
	  of the screen that this camera will use. Also implemented
	  persistence.
	- Added persistence for the camera mode in iPcCamera implementation.
20-Dec-2001:
	- Matze added cel.cex, which makes cel usable together with cs-config.
16-Dec-2001:
	- Matze fixed a memory leak: pllayer was holding references to
	  factories and these to pl. Now only pllayer holds the ref.
	- Matze added a mode switch to camera property, in follow mode the
	  camera, stays behind it's assigned mesh and even does collision
	  detection.
14-Dec-2001:
	- Matze reports: keyboard input works now, but for some strange
	  reason CS transmits each key multiple times, and on the other side
	  when pressing a key only short it isn't transmitted sometimes...
	- Matze cleaned up celtest a bit.
12-Dec-2001:
	- Added iCelPropertyChangeCallback interface. Using this it will
	  be possible to listen to property changes in all property classes.
	- Extended iCelPropertyClass with methods to remove and add
	  callbacks.
	- Added pf/common directory containing common code for all property
	  class implementation. There is now a celPcCommon class which can
	  be used by a property class implementation to make things easier.
	  This celPcCommon already implements the two functions above
	  to handle the callbacks. In addition it also implements a
	  function to fire a callback.
	- Changed all current property class implementations to inherit
	  from celPcCommon.
	- Nothing is using this callback system at the moment.
	- Matze started work on keyboard input.
10-Dec-2001:
	- Matze added #defines for template Factories, you can now easily use
	  CEL_DECLARE_FACTORY(bla) and later CEL_IMPLEMENT_FACTORY(bla). Also
	  changed behaviour to register exact 1 Factory for each Property
	  class, which reduces the need for all the factory pointers.
		TODO: -Do the same for behaviour factory
		      -change FindPropertyClassFactory to use hash table to
		       speed the thing up.
		      -unreleased instances because some plugins implement
		       multiple components (at least I think it's because of
		       that)
7-Dec-2001:
	- Fixed for latest CS.
20-Nov-2001:
	- Added a minimal test level to make debugging easier.
	  You can enable this minimal test by defining MINIMAL as 1
	  in celtest.
	- Fixed a bad bug in the persistence loader. It was acccidently
	  adding every property class twice to the entity.
	- Fixed a ref count leak on entities in the inventory loader.
	- Fixed a bug in persistence layer which prevented persistence
	  from working properly. It turned out that the entity was not
	  set for the property classes.
	- Fixed a bug in the mesh loader. It would not correctly call
	  DeferUpdateLighting() after loading from the persistence layer.
	- Persistence is now ALMOST working. For simple situations I managed
	  to get it working fully.
	- Implemented correct persistence for pccamera so that the current
	  position of the camera is also remembered.
	- Fixed a crash bug in cel with persistence and inventory.
	  Related to ref counting again.
19-Nov-2001:
	- CS now has a feature to remove an object from the engine in general.
	  The plimp Cache will use that new function so that the extreme
	  hack I made yesterday can be avoided.
	- With some additional CS fixes there are now only two objects
	  (one material and one texture) that leak when celtest cleans
	  up game entity.
	- All leaks are now gone.
	- Philip Wyett updated MSVC project files for CEL.
18-Nov-2001:
	- Debugging with DG_TYPE for 'celEntity'.
	- Added 'c' key to clear game (debugging too).
	- Implemented an extreme hack in the cache. It turns out that you
	  cannot simply remove factory wrappers by doing DecRef() on them. You
	  need to remove them from the engine. I have to find a better solution
	  for this.
16-Nov-2001:
	- Implemented a cache in the physical layer. This cache will hold
	  objects of type iBase and keeps a reference to them. This cache
	  can be used to store pointers to objects that are useful in the
	  game and that you don't want to be removed while the game is
	  in progress even if the object is not used at some specific point.
	  A good example is mesh factories. Even though there may be no
	  mesh object using a particular mesh factory you still do not
	  want to delete the loaded mesh factory. Otherwise there would be
	  a delay when the factory is suddenly needed.
	- 'pcmesh' now uses this cache to store a reference to the factory
	  that is used. In addition every mesh that uses a mesh factory
	  will also increase the ref count. Added CleanCache() to celtest
	  so that the cache will be cleaned if a new game starts. This
	  solves another memory leak with the mesh object factories this
	  time.
	- celEntity (as implemented in plimp) is now also a csObject.
	- Added QueryObject() to iCelEntity.
	- Added more DG_LINK's to link more objects with each other.
	- Fixed a few links now that iCelEntity no longer is an iObject.
15-Nov-2001:
	- Fixed a memory leak in 'pctooltip' and 'pctimer' with event queue.
	- Added lots of DG_... lines to help debugging.
	- Fixed a bad memory leak in pcgravity. It was leaking the list
	  of entities returned by FindNearbyEntities().
	- Fixed huge memory leaks with the property classes caused by
	  the event handlers being embedded interfaces of the property classes.
	  The problem is that the event handlers were being unregistered
	  in the destructor of the property class. But since the event
	  handler was part of the property class and since the event queue
	  increments the reference of the event handler the ref count could
	  never get zero so the property class never got deleted.
	  Fixed this by making the event handlers seperate objects. This
	  means that additional references on them will not cause a higher
	  ref count for the property class.
	- Enabled persistence again (loading). Still crashes though.
	- Remove the region in pcregion::Unload().
	- Fixed another big memory leak in the gravity property class.
	  It was leaking pcsolid instances.
14-Nov-2001:
	- Few changes for debugging using the new graph debug tool in CS.
13-Nov-2001:
	- Modified pcmeshsel property class to work through
	  the pccamera property class instead of using iCamera
	  directly. This also fixes the bug with saving of the
	  pcmeshsel property class.
	- Added an event handler to pccamera. It is now responsible for
	  drawing and moving the camera. celtest no longer contains code
	  for this. In the future it will be possible to say how the camera
	  should move (first person, third person, fixed camera position,
	  user defined movement strategy, ...).
	- Extended pcregion with the ability to initialize a pccamera to
	  a given starting position. Also extended pcregion with the ability
	  to go to a named starting position as opposed to only the default
	  one.
	- 'celtest' no longer has a pointer to the default view. It doesn't
	  even know what entity holds the view or camera.
	- Classic persistence module now writes a marker 'CEL0' in front
	  of the saved file. That makes it easier to recognize saved CEL
	  files.
	- Fixed the crash at exit in CEL by actually fixing a bug in CS :-)
	- Use the reporter for error reporting in classic persistence module.
	  Only for loading at this moment and only for the persistence module
	  itself. The individual property classes do not yet use the
	  reporter to report their errors.
	- Fixed a bug in pcregion loader.
	- Fixed a bug in pcmesh loader. Forgot to save the factory name
	  and properly initialize the mesh.
	- Implemented loading in CEL persistence module. At this moment loading
	  itself seems to work (i.e. it does not crash). However celtest
	  crashes right after loading so I have to investigate why.
	- Fixed a bad bug in pcmesh::SetMesh().
	- Added loading/saving of position of mesh. This doesn't fix the
	  loading problem though. Loading still crashes.
12-Nov-2001:
	- Created new cpersist plugin. This plugin will implement
	  'classic persistence' for CEL. This plugin does not do
	  anything at the moment except compile and register.
	- Philip Wyett updated the MSVC project files for the new
	  persistence plugin.
	- Added GetName() to iCelBehaviour. This is needed to be able
	  to save the associated behaviour name in the persistence layer.
	- Added GetFactoryName() to iCelPropertyClass. This is needed
	  to be able to save the associated factory name in the
	  persistence layer.
	- Worked on persistence a lot now. All property classes now have
	  full support for loading and saving (untested).
	- Implemented saving in the classic persistence plugin.
	  At this moment it doesn't work yet (crashes) and I also need
	  to implement a system to avoid saving the same entity or
	  property class twice or more then once.
	- Added 's' key to save the current world to 'savefile'. Since
	  saving in general does not work yet I advice you NOT to press
	  this key :-)
	- Fixed a bug in implementation of celDataBuffer. It was not
	  properly allocating new entries when the buffer growed.
	- Fixed handing of saving NULL property class or entity. Now
	  a marker is always saved which says what will follow. ENT0
	  is a NULL entity pointer. ENTI is the definition of an entity.
	  ENTR (not used yet) will be a reference to an entity.
	  Similar for property classes: PCL0, PCLI, and PCLR.
	- Fixed a bad bug in inventory saving.
	- The three fixes bug make sure that at least saving doesn't crash
	  anymore. However there is still too much information saved as
	  duplicate entities/property classes are not detected.
	- The current implementation of CEL/persistence assumes that
	  all entities have a unique name. I have to think more about this
	  issue (like having a unique name generation utility or something)
	  but in the mean time I fixed celtest so that the boxes have
	  a distinct name and also fixed bltest so that it only looks at the
	  first three letters of the name to see if an entity is a box (here
	  again we need a different way to detect this, maybe object classes?).
	- Entities and property classes are now only saved once. The second
	  time the same entity or property class comes back in the save
	  tree a reference is used.
11-Nov-2001:
	- Even though persistence is not operational yet I already
	  decided on a redesign. I removed the notion of 'named data
	  entries'. Everything works positional. It is now much simpler
	  and also allows for smaller persistent data. Additionally
	  I added the notion of a serial number for a databuffer. This
	  is useful for testing what version we are trying to load
	  and depending on that either rejecting the load or else trying
	  to convert the old data.
10-Nov-2001:
	- Further work on persistence. Not functional yet.
9-Nov-2001:
	- Fixed CELTEST for latest changes in CS (CreateEnvironment...).
	- Started working on pcregion property class. This property class
	  represents a region in the world.
	- 'pcregion' will automatically create individual entities for
	  all meshes in a world. These entities will get a pcmesh
	  and pcsolid property class so that the collision detection system
	  works nicely. Note that there is a crash at exit in the destruction
	  of this. I have to investigate this later.
	- Changed celtest to use the new pcregion property class. It will now
	  load the partsys level from CS and put the entities there (boxes
	  and objects). Note that there are still several problems.
	  The 'pcmovable' does not yet support moving through portals so
	  don't try to drag an object out of the starting room yet or it
	  will drop through the floor.
	- Fixed a bug in the FindNearbyEntities(). Now it only returns
	  entities for meshes that are actually visible. Without this fix
	  it was very easy for objects to become stuck after too much
	  box/object manipulations. Now it is still not perfect but a lot
	  better already. An object in the box no longer affects collision
	  detection of objects not in the box.
8-Nov-2001:
	- Started work on persistence. Nothing works yet. Created
	  iCelDataBuffer which the persistence system will use to save/load
	  information.
	- Slightly changed prototype of Load() and Save() so that they
	  now expect a pointer to the data buffer on which they must operate.
	- Added stub code for persistence to all property classes.
	- Fixed a bug in the gravity property class which could cause
	  celtest to hang on very fast systems.
	- Added iCelPersistance interface.
6-Nov-2001:
	- Started work on 'pcgravity' property class (in 'pfmove' factory).
	  This property class is an almost exact copy of the movable property
	  class from Dreams Eternal. It implements primitive gravity
	  for objects. It also has an ApplyForce so you can apply a force
	  in any direction.
	- Added 'Move' to iPcMovable which will do a relative move.
	  This routine will also correctly update the current sector if
	  a portal is traversed.
	- Cleaned up celtest a little.
	- Right clicking on a box opens/closes it (that was already the
	  case yesterday). If you now right-click on the box to open it
	  all objects that are in the box will jump out (using a force
	  and gravity).
	- Added a timer property class to 'pftools'. The message
	  'timer_wakeup' will be sent to the Behaviour.
	- The timer is now used by the box so that the entities in the box
	  are thrown out of the box one by one. Gives a nice effect :-)
	- Added a few more objects and boxes to celtest.
	- Note that gravity is not perfect yet. It is rather easy to get
	  everything stuck. It would be nice to have the ability to push
	  objects while dragging them.
	- Removed the now obsolete conf_mingw.mak.
5-Nov-2001:
	- Added a box mesh object for celtest.
	- Made four dummy objects visible. Changed selection code in
	  celtest so that the room behaviour will now control selection
	  and dragging of all other objects.
	- Added convenience iPcMesh::SetAction() function which will
	  work if the mesh is a 3D sprite.
	- Added 'box' behaviour to 'bltest'.
	- Fixed a bug in 'pcmeshsel' where it would not deselect the entity
	  if follow mode is unset (the default).
	- Added Show(), Hide(), and IsVisible() to iPcMesh.
	- Added iCelPlLayer::GetHitEntity() to find the entity on a specific
	  screen position.
	- Added iPcCamera for a property class representation of a camera.
	- Added 'pfengine' factory with engine related property classes.
	  Currently it only contains 'pccamera'.
	- Added general superclass for all behaviours in bltest.
	- It is now possible to drag objects on the box. If they fit they
	  will be added. It is not yet possible to get them out the box
	  and they will also be added if the box is closed.
4-Nov-2001:
	- Wouter Wijngaards did the following:
	    - CEL makefile now uses the new cs-config --makevars option.
	      This should make the conf_*.maks superfluous.
	    - The makefile is also updated to be an adapted copy of the
	      new template makefile in CS.
	    - Tested on linux, and removed conf_linux.mak.
	    - If it works on mingw too that .mak can also be removed.
	  How to work with the new makefile?
	  Simply update your CS, and copy the new (make csconfig) cs-config
	  script to the cel directory. csconfig.mak depends on the cs-config
	  script, so it should be remade when you next make depend or make all.
3-Nov-2001:
	- 'pcinventory' sends an 'inv_addchild' messages to the entity
	  containing the inventory when an entity is added.
	- 'pcinventory' sends an 'inv_added' messages to the entity
	  that is being added.
	- Also added 'inv_removechild' and 'inv_removed' messages.
2-Nov-2001:
	- Added iPcMesh::CreateEmptyThing() which can be used instead
	  of SetMesh().
	- Changed celtest so that 'room' is now also an entity and uses
	  pcmesh property class for the room walls.
	- Added iCelPlLayer::AttachEntity(), UnattachEntity(), and
	  FindAttachedEntity(). This functionality used to be present
	  ad-hoc in the pcmesh property class but it is generally useful.
	  Using those functions property classes can attach an entity
	  to some iObject (usually an engine object).
	- Changed pcmesh to use the new iCelPlLayer::AttachEntity()
	  functions.
	- Changed celtest to load the pl/bl plugins using CS_REQUEST_PLUGIN
	  so that they are registered to the object registry.
	- Actually implemented the 'global' option in pcmeshselect. I
	  forgot to do that earlier.
	- After adding an object to an inventory it is usually best
	  to call DecRef() as the inventory now holds a reference
	  (unless you also need to have the reference). Changed celtest
	  for this. Unfortunatelly this does not fix the ref leaks in
	  celtest yet.
	- Added iPcSolid which is a property class that is going to be
	  used for collision detection. iPcSolid is implemented by
	  the 'pfmove' factory.
	- Added iPcMovableConstraint and extended iPcMovable so that you can
	  add constraints.
	- Extended 'pfmove' factory with pcmovableconst_cd implementation of
	  iPcMovableConstraint which uses iPcSolid to implement a constraint
	  based on collision detection. This implementation is currently
	  not operational yet.
	- Added iCelEntityList and celEntityList implementation in plimp.
	- Added iCelPlLayer::FindNearbyEntities() which will return a list
	  of all entities within a certain radius of a given position.
	  This function will use the attached entities to find the
	  entities from the engine objects.
	- Partially implemented 'pcmovableconst_cd' so that it actually
	  uses collision detection but it has the following two shortcomings:
	    - Movement either succeeds or fails. There is no partial result.
	    - A path between start and end should be used for collision
	      detection. Now only the end position is checked which means
	      that objects at high speed may actually pass through walls.
	  In practice this limitation means that in celtest when you drag
	  the object, it will only temporarily be blocked by the walls. If
	  you drag further it will go through.
	- Collision detection with 'pcmovableconst_cd' works better in the
	  sense that it is no longer possible to go through walls. A
	  one-triangle collider with the size of the path is used to
	  detect collisions along the movement path.
	- Philip Wyett updated MSVC project files for CEL.
	- Added iPcMeshSelect::SetFollowAlwaysMode(). When this is true
	  move messages will be send whenever the mouse is over an entity
	  regardless of selection.
	- Added a new behaviour class to bltest for the 'room'. Added
	  a new pcmeshselect property classes to the room entity which
	  has follow-always set to true.
	- Added new 'pftools' factory. This will contain general tools.
	  The only tool it now contains is a 'pctooltip' property class
	  for displaying tooltips. This property class is not functional
	  yet.
	- Implemented tooltips.
	- Celtest now shows tooltip for the object over which the mouse
	  rests.
	- Fixed a bug in 'pcmeshsel' when the mouse was over nothing.
1-Nov-2001:
	- Slightly changed the way that csconfig.mak works.
	- Implemented dragging. You can define a plane on which the
	  object will be constrained while dragging. This plane can
	  be defined in either camera or world space giving maximum
	  control.
	- Modified celtest with a demo of this dragging. With left
	  mouse button you will drag to the 0,1,0 plane in world space.
	  This means orthogonal to the floor. With right mouse
	  button you will drag to the 0,0,1 plane in camera space.
	- Added 'pfmove' factory and implemented iPcMovable. At this
	  moment this property class is only a thin wrapper on top
	  of moving an iPcMesh directly but in the future it will
	  be able to contrain movement by using attached
	  iPcMovableConstraint property classes (not implemented yet).
	- Extended iPcMeshSelect so it will by default look for a movable.
	  If that cannot be find it will look for an iPcMesh instead (old
	  behaviour).
31-Oct-2001:
	- Split 'selectmesh' message from 'pcmeshselect' property class
	  'selectmesh_up' and 'selectmesh_down'.
	- Added a lot more control to iPcMeshSelect interface. Now you can
	  indicate if you want 'follow' mode or not. With follow mode the
	  mouse will track the selected object and immediatelly send
	  up/down messages when the mouse leaves/enters the object.
	  Otherwise an 'up' message is only sent when the mouse button
	  goes up regardless of the position of the mouse.
	  Also added the ability to disable up/down mouse events if you
	  don't need them.
	  Added a few other functions that are not yet implemented (dragging).
	- Fixed a missing DecRef() in the destructor of 'pcmeshselect'
	  property class.
	- Optimized 'pcmeshselect' by only registering the event handler
	  for the right events depending on the settings. i.e. don't listen
	  to mouse move events if you are not dragging or in follow mode.
	- Added the ability to control for which mouse buttons you want
	  to use 'pcmeshselect'. By default it will only react on mouse
	  button one. You can use multiple 'pcmeshselect' property classes
	  on one entity to have different behaviour depending on the mouse
	  button.
30-Oct-2001:
	- Renamed iCelBlEntity to iCelBehaviour and made the corresponding
	  changes throughout the project (i.e. CreateBlEntity->CreateBehaviour
	  and so on...).
	- Added iBase* parameter to iCelBehaviour::SendMessage(). So a
	  message from property classes to the behaviour part of an entity
	  now has three parts:
	  	- A message id.
		- An iBase pointer with possible additional arguments
		  for the message.
		- A list of additional strings.
	- Removed several bugs in cleanup of inventory which prevented proper
	  cleanup. In particular RemoveAll() was not right.
	- Extended pcmesh property class so that a csObject is attached
	  to the mesh in the engine with which it is possible to find the
	  entity again.
	- The 'pcmeshselect' property class now sends a 'selectmesh' message
	  to the behaviour. 'bltest' reacts on this message and prints out
	  the selected entity (try clicking on the small object in celtest).
	- Added declarations for FAST SCF queries to include/pl/pl.h.
	- Extended 'pcmeshselect' property class with the ability to switch
	  between 'global' and 'local' selection. Local selection is default
	  and this means that the Behaviour will only get messages when
	  it's own mesh is selected. With global selection the Behaviour
	  will get messages on selection of all meshes.
	- Added a few additional FAST declarations for SCF.
29-Oct-2001:
	- Basic inventory handling seems to work now. Celtest demonstrates
	  (in text form only at the moment) one box entity and four
	  dummy entities. Two of them fit and the two others don't.
	  Some provisions are made for inherited characteristics
	  but this is not fully implemented yet.
	- Added iCelPropertyClassList::FindByInterface() to return the
	  property class implementing some interface. Also added
	  CEL_QUERY_PROPCLASS which is a define to make this easier.
	- Changing of property values is now properly restricted by
	  the parent inventory and the new values are also propagated
	  to the inventory.
	- Inherited characteristics now work. It is possible to modify
	  the characteristic of the contents (i.e. for the NetHack
	  Bag of Holding which reduces the weight of all objects inside).
	- Small optimization on GetInheritedCharProperty(). If factor is very
	  close to 0 it will not ask characteristics of inventory.
	- Fixed 'make clean' target.
	- Completely rewrote the inventory checking system. Now it
	  may be *slightly* less optimal (but only slightly) but it
	  is MUCH more robust and easier to understand. It is also completely
	  safe now. Unless there are bugs in the code there is NO
	  way to have an inventory with contents that doesn't satisfy
	  the inventory constraints:
	      - You are not allowed to change constraints for an
	        inventory while objects are in the inventory that
		violate that constraint.
	      - You are not allowed to add/remove entities to an
	        inventory if that would violate constraints.
	      - You are not allowed to change characteristics of
	        an entity if that would violate constraints of
		parent inventories.
	  If I made no bugs the system should be water-tight.
	- Added a new property class 'pcmeshselect' to the 'pfmesh'
	  property class factory. With this property class the behaviour
	  layer will be notified when a mesh is selected. At this
	  moment this property class works but doesn't send a
	  message to the BL yet.
	- Eric Sunshine enabled CVS update notification via the cel-cvs-update
	  mailing list.
28-Oct-2001:
	- Started work on the 'pfmesh' factory. This factory will support
	  the 'pcmesh' property class so that you can attach a mesh object
	  with an entity.
	- 'celtest' now shows an entity that has a mesh attached to it.
	- Started work on the 'pvinv' factory for inventories. This inventory
	  supports two property classes: 'pcinventory' and 'pccharacteristics'.
	  The 'pccharacteristics' is typically used for entities that are
	  put in the inventory. The entity that has the inventory
	  property class will use the characteristics to see if the object
	  fits in the inventory.
	- Fixed a bug with current constraints not being updated correctly
	  when entities are removed from the inventory.
	- Constraints where not cleaned up at destruction time.
	- Constraints are now also checked when properties change. i.e. it
	  is impossible to change a property when the entity is in an
	  inventory and changing that property would cause the inventory
	  constraints to be invalidated. Not fully implemented yet!
	  We also still have to define hierarchical constraints (i.e. for
	  nested inventories).
	- Philip Wyett created/added MSVC project files for the CEL project.
27-Oct-2001:
	- Updated csconfig.mak with entries for linux. Uncomment the
	  entries suitable for your system.
	- Changed the executable name for celtest to celtst. Otherwise
	  it would be the same as the directory name on linux.
	- Implemented first bl entity in 'bltest'. No functionality yet.
	- Added definition of iCelMessage.
	- Added iCelPlLayer::CreateMessage().
	- Added implementation of iCelMessage to plimp. Unfinished.
	- Changed iCelBlEntity so that targetted messages to an entity
	  no longer use iCelMessage but directly pass the information
	  to the bl entity.
	- Further work on bltest and celtest. A message is now printed.
26-Oct-2001:
	- Added iCelPropertyClassFactory interface. A property class
	  factory is responsible for creation of property classes. Every
	  factory will handle a number of property class types.
	- Extended iCelPlLayer with a number of methods to register and
	  query property class factories.
	- Added include/pf dir which will contain public SCF interfaces
	  for specific property class factories. Added include/pf/test.h
	  which will be a test interface for our test property class
	  factory.
	- Added 'pf/test' dir which will contain the implementation of the
	  'test' factory. This resuls in the third plugin.
	- Added temporary code to celtest so the plugins of CEL are registered.
	  In the (near) future we will define a better solution for this
	  problem on the CS side (removal of scf.cfg).
	- 'celtest' now loads the three CEL plugins (plimp, bltest, and
	  pftest) and uses them. It all seems to work nicely but there is
	  no real functionality yet.
	- Added 'name' parameter to iCelBlLayer::CreateBlEntity().
	- Started adding support for 'printer' behaviour entity in 'bltest'.
24-Oct-2001:
	- Added the very first code for CEL. Today I added:
	    - The include files for PL and BL. These are SCF interfaces.
	    - The start of PLIMP which is the implementation of the PL.
	    - The start of CELTEST which is a test application for CEL.
	  The test application works (i.e. it opens a CS window) but other
	  than that there is nothing functional yet.
	- Fixed a bug in factory definition of 'plimp'.
	- Started work on 'bltest'.
