2003-09-22  Al Riddoch  <alriddoch@zepler.org>

	* aiclient/ClientAccount.cpp, aiclient/ClientAccount.h,
	  aiclient/ClientConnection.cpp, aiclient/ClientConnection.h,
	  aiclient/client.cpp, aiclient/client.h,
	  client/CharacterClient.cpp, client/CharacterClient.h,
	  client/ClientConnection.cpp, client/ClientConnection.h,
	  client/CreatorClient.h, example/client/CyphesisClient.cpp,
	  example/client/CyphesisClient.h, example/client/CyphesisClient2.cpp,
	  example/client/CyphesisClient2.h,
	  example/client/InheritanceClient.cpp,
	  example/client/InheritanceClient.h, tools/cycmd.cpp,
	  tools/cyconfig.cpp: Remove stray references to the LGPL.

2003-09-15  Al Riddoch  <alriddoch@zepler.org>

	* tools/cydbload.cpp, tools/cyloadrules.cpp: Fix tools so that
	  they detect if they cannot connect to the database, and do
	  not incorrectly report that they have succeeded.

2003-09-13  Al Riddoch  <alriddoch@zepler.org>

	* Version 0.2.3 release.

2003-08-21  Al Riddoch  <alriddoch@zepler.org>

	* Remove unused --with-worldforge option from configure,
	  and use the latest pthread check.

2003-08-20  Al Riddoch  <alriddoch@zepler.org>

	* Backport improved pthread check from devel code.

2003-07-22  Al Riddoch  <alriddoch@zepler.org>

	* common/Database.cpp: Use PQClear() to free database result objects.

2003-07-21  Al Riddoch  <alriddoch@zepler.org>

	* rulesets/Python_API.cpp: Fix leaked python reference.

2003-07-20  Al Riddoch  <alriddoch@zepler.org>

	* common/system.cpp: Add handler for SIGHUP, and clarify name of
	  signal handler. Fix error message typo.

2003-07-02  Al Riddoch  <alriddoch@zepler.org>

	* Clean up and improve rpm spec using new found techniques.

2003-06-24  Al Riddoch  <alriddoch@zepler.org>

	* Update Makefile.ams so that distcheck works.

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

	* server/Connection.cpp, rulesets/Entity.cpp: Add the assert header
	  where required.

2003-04-27  Al Riddoch  <alriddoch@zepler.org>

	* tools/cyphesis-setup: Add #!/bin/sh to be sure it gets treated
	  as a script.

	* Add configure checks for Python 2.3, and update varconf checks.

	* Version 0.2.1 release.

2003-02-27  Al Riddoch  <alriddoch@zepler.org>

	* Use PKG_CONFIG_CHECKS to get latest versions of libs.

2003-01-16  Al Riddoch  <alriddoch@zepler.org>

	* mason.xml, rulesets/mason/world/objects/outdoor/Campfire.py:
	  Add three missing rules.

	* rulesets/mason/world/objects/plants/Fir.py: Add new fir tree rule.

2002-12-17  Al Riddoch  <alriddoch@zepler.org>

	* server/CommMetaClient.cpp: Correctly initialise the size of
	  the from address structure.

2002-12-12  Al Riddoch  <alriddoch@zepler.org>

	* common/Database.cpp, common/Database.h: Backport switch to C
	  PostgreSQL API from devel code for PostgreSQL 7.3 compatability.

2002-12-01  Al Riddoch  <alriddoch@zepler.org>

	* rulesets/Thing.cpp: Fix very long standing moving bug, which sometimes
	  caused big jumps in character position.

2002-11-21  Al Riddoch  <alriddoch@zepler.org>

	* Enable static libs in the rpm spec.

	* Version 0.2 release.

2002-11-04  Al Riddoch  <alriddoch@zepler.org>

	* server/Connection.cpp: Reject account creation or login with zero
	  length username.

2002-11-04  Al Riddoch  <alriddoch@zepler.org>

	* server/Account.cpp: Correctly set refno on responses to OOG ops.

2002-11-02  Al Riddoch  <alriddoch@zepler.org>

	* acorn.xml, mason.xml: Fix weight to be mass.

2002-11-01  Al Riddoch  <alriddoch@zepler.org>

	* tools/cycmd.cpp, server/Admin.cpp: Clean up admin interface so its
	  a bit more Atlas compliant.

	* server/Connection.cpp, server/Player.cpp: Improve some checking.

	* server/EntityFactory.cpp: Remove dead commented out code.

2002-10-31  Al Riddoch  <alriddoch@zepler.org>

	* cyphesis.init: Add code to load rules and map into the database
	  before the service first starts up.

	* cyphesis.spec.in, cyclient.init: Add cyclient service, to populate
	  running server with game stuff.

	* configure.in: Bump up to version 0.1.95

2002-10-26  Al Riddoch  <alriddoch@zepler.org>

	* client/CreatorClient.cpp, rulesets/BaseMind.cpp,
	  rulesets/Character.cpp, rulesets/Food.cpp,
	  rulesets/Thing.cpp, server/Connection.cpp:
	  Tighten up some atlas type checks, to reduce the chances of
	  bugs caused by malicious or buggy clients.

2002-10-17  Al Riddoch  <alriddoch@zepler.org>

	* common/system.cpp: Ignore sigpipe so we don't abort on some
	  systems if the client quits unexpectedly.

2002-10-17  Al Riddoch  <alriddoch@zepler.org>

	* configure.in, cyphesis-config.in: Fix the way sysconfdir and
	  datadir are handled in the config script.

2002-10-10  Al Riddoch  <alriddoch@zepler.org>

	* init script fixes.

	* common/system.cpp: Ensure that parent of daemon exit status indicates
	  whether the daemon has started properlly.

	* server/Connection.cpp: Clarify error reporting.

2002-10-07  Al Riddoch  <alriddoch@zepler.org>

	* server/Account.cpp: Fix up handling of imaginary ops.

	* server/Connection.cpp: Clarify error reporting.

	* rpm spec fixes.

2002-10-05  Al Riddoch  <alriddoch@zepler.org>

	* tools/cyphesis-setup: Clean up syntax.

	* cyphesis.init, cyphesis.sysconfig, cyphesis.spec.in:
	  Init script and sysconfig for rpm and other packaging.

2002-10-03  Al Riddoch  <alriddoch@zepler.org>

	* Clean up README.

	* Set version to 0.1.93 and release.

2002-10-03  Al Riddoch  <alriddoch@zepler.org>

	* rulesets/Python_API.cpp: Add environment variables using a more
	  portable call to putenv() instead of setenv().

2002-10-03  Al Riddoch  <alriddoch@zepler.org>

	* Build file fixes.

2002-10-03  Al Riddoch  <alriddoch@zepler.org>

	* common/system.h, common/system.cpp, server/server.cpp: Moved all
	  the system dependant signal handling and background handling
	  code into system module, and implemented propper handling of
	  going into the background, including reporting error status
	  back to the waiting parent using exit status and user signals.

2002-10-02  Al Riddoch  <alriddoch@zepler.org>

	* physics/Vector3D.h: Cleaned up arithmetic operators.

	* Clarified rpm descriptions.

	* Big changes to make README more accurate and readable.

2002-09-17  Al Riddoch  <alriddoch@zepler.org>

	* tools/cyphesis-setup: Re-write of script to handle server setup.
	  Should handle more weird happenings now.

2002-09-14  Al Riddoch  <alriddoch@zepler.org>

	* server/Admin.cpp: Cleaned up an unimplemented feature, and added it
	  to the TODO.

	* server/Account.h, server/Account.cpp: Removed unused obsolete code
	  for checking character types.

	* rulesets/Python_API.cpp: Add new globals module to python API which
	  exposes core settings to the python scripts.

	* rulesets/basic/hooks/ruleset_import_hooks.py: Abolish autogeneration
	  of this file using new globals module in the python API.

	* configure.in, cyphesis-config.in: Expose conf and data dirs.

	* tools/cyphesis-setup: New script to set the server up.

	* tools/cyconfig.cpp: New tool to make persistant changes to the
	  server config.

2002-09-13  Al Riddoch  <alriddoch@zepler.org>

	* server/ServerRouting.cpp, common/const.h, common/const.cpp: Put all
	  the build dependant code in const.cpp, so no other file is
	  dependant on config.h.

	* Add a cyphesis-config script, so other programs can tell where its
	  installed.

	* Rework many of the build files so they are cleaner.

	* Fix the readline C++ sanity check.

2002-09-11  Al Riddoch  <alriddoch@zepler.org>

	* Added IG help.

2002-09-08  Al Riddoch  <alriddoch@zepler.org>

	* tools/cycmd.cpp: Add support for server OOG chat to admin client,
	  and note its shortcomings in BUGS.

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

	* physics/BBox.h: Fixed farPoint() so it now does return the far
	  point, rather than the near point.

	* modules/Location.h, rulesets/Python_API.cpp: Handle NULL parent
	  in location.

	* NPC script bug fixes.

2002-09-05  Al Riddoch  <alriddoch@zepler.org>

	* rulesets/PythonMindScript.cpp: Increase verbosity of reported
	  python script errors.

	* rulesets/basic/mind/goals/animal/herd.py: Fix typo which meant
	  mind code was not working.

2002-09-04  Al Riddoch  <alriddoch@zepler.org>

	* Added various nifty bits of mason behavoir.

	* rulesets/Py_Operation.cpp: Always return an error, if the script
	  does something invalid with the python API.

	* rulesets/BaseMind.cpp: Implement operation triggers in
	  the mind scripts.

	* Document some bugs, bring TODO up to date, and bump up version
	  to 0.1.92.

2002-08-30  Al Riddoch  <alriddoch@zepler.org>

	* common/globals.cpp: Only persist this sessions command line
	  options if the user is overriding the installation directory.

	* cyphesis.vconf, client/Py_CreatorClient.cpp,
	  client/Py_CreatorClient.h, client/client.cpp:
	  Add client functionality to allow diferent scripts to be run to
	  perform different functions on the server.

	* client/CharacterClient.cpp: Add debug option.

	* rulesets/Character.h: Make mind operation functions virtual,
	  so they can be overridden.

	* common/BaseWorld.h, server/WorldRouter.cpp,
	  server/WorldRouter.h: Add server functions to search for
	  entities by name or type.

	* rulesets/Creator.h, rulesets/Creator.cpp: Allow creator to
	  specify a look without an id to search for entities with
	  a given name or type.

	* client/CreatorClient.cpp, client/CreatorClient.h,
	  client/ObserverClient.cpp, client/ObserverClient.h,
	  client/Py_CreatorClient.cpp, rulesets/basic/editor.py,
	  rulesets/mason/define_world.py:
	  Add support for looking for entities in the world by name or
	  type from client script, so client scripts can modify existing
	  world.

	* rulesets/Entity.cpp, rulesets/Movement.cpp,
	  rulesets/Py_Object.cpp, rulesets/Py_Operation.cpp,
	  rulesets/Py_Oplist.cpp, rulesets/Python_API.cpp,
	  rulesets/Stackable.cpp, rulesets/Thing.cpp,
	  rulesets/World.cpp, server/Account.cpp,
	  server/CommServer.cpp, server/Connection.cpp,
	  server/Player.cpp, server/ServerRouting.cpp,
	  server/server.cpp, tools/cycmd.cpp,
	  tools/cywatchdog.cpp: Code formatting cleanups.

	* rulesets/basic/world/objects/tools/Bow.py: Fix up bow so it now
	  fires correctly.

2002-08-26  Al Riddoch  <alriddoch@zepler.org>

	* server/CommServer.cpp: Simplify handling of socket errors,
	  and remove pointless warning.

2002-08-23  Al Riddoch  <alriddoch@zepler.org>

	* mason.xml, rulesets/mason/world/objects/plants/Birch.py,
	  rulesets/mason/world/objects/plants/Hickory.py,
	  rulesets/mason/world/objects/plants/Willow.py:
	  Fix missing scripts for trees.

2002-08-22  Al Riddoch  <alriddoch@zepler.org>

	* rulesets/Py_Operation.cpp: Filled in missing SetArgs() functionality
	  for operations in the Python API.

	* moraf.xml: Add an atlas entity map for mason.

2002-08-14  Al Riddoch  <alriddoch@zepler.org>

	* server/CommClient.h, server/CommClient.cpp: Move exception
	  class to body, so noone else feels tempted to use it.
	  Remove excess debugging output.

2002-08-14  Al Riddoch  <alriddoch@zepler.org>

	* server/CommClient.cpp, server/CommServer.cpp: Move exception
	  handling into the read method, and ensure correct handling
	  of the reading flag.

	* server/CommClient.h: Fix exception constructor to be
	  ISO compliant.

2002-08-14  Al Riddoch  <alriddoch@zepler.org>

	* server/CommServer.cpp, server/CommClient.h, server/CommClient.cpp:
	  Experimental version of a more comprehensive way to handle
	  client write timeouts, and a possible way to handle traffic
	  shaping in future.

2002-08-13  Al Riddoch  <alriddoch@zepler.org>

	* server/CommClient.h: Don't disconnect connections when writing
	  times out.

2002-08-11  Al Riddoch  <alriddoch@zepler.org>

	* Added pkgconfig and sigc++ autotools macros into acinclude.m4
	  as only one or the other should be required, not both.

	* server/Connection.h, server/Connection.cpp: Move large methods
	  into .cpp file to avoid bloat. Add in non ref method
	  for removing deleted objects, as references are a problem.

	* Account.h, Account.cpp: characterDestroyed method now
	  takes value rather than reference because of sigc++. Add
	  necessary headers.

2002-08-11  Al Riddoch  <alriddoch@zepler.org>

	* Modifify configure tests to detect sigc++ 1.2.

	* common/BaseEntity.h, server/Connection.h: Fix sigc++ headers
	  for sigc++ 1.2

2002-08-08  Al Riddoch  <alriddoch@zepler.org>

	* rulesets/EntityFactory.cpp, server/Account.cpp,
	  server/Connection.h, server/EntityFactory.h:
	  Ensure code is complient with the published sigc++ api.

2002-07-28  Al Riddoch  <alriddoch@zepler.org>

	* server/Account.cpp, server/Connection.cpp: Get rid of
	  character existance check on login, as dead ones are now handled
	  using SigC signals.

	* rulesets/Entity.h, rulesets/Entity.cpp, rulesets/Py_World.cpp:
	  Remove pointless deleted flag, as the only time its true is when
	  the object has been deleted, and accessing would cause a segfault.

2002-07-27  Al Riddoch  <alriddoch@zepler.org>

	* tools/cyloadrules.cpp, server/server.cpp,
	  aiclient/ClientConnection.cpp, client/ClientConnection.cpp,
	  common/inheritance.h: Use const iterators and references
	  whenever possible.

	* client/CommClient.cpp, client/CreatorClient.cpp,
	  client/ObserverClient.cpp, client/Py_CreatorClient.cpp,
	  common/BaseEntity.cpp, common/BaseEntity.h,
	  common/types.h, rulesets/Area.cpp, rulesets/BaseMind.cpp,
	  rulesets/Character.cpp, rulesets/Entity.cpp,
	  rulesets/Food.cpp, rulesets/Line.cpp,
	  rulesets/MemMap.cpp, rulesets/Pedestrian.cpp,
	  rulesets/Plant.cpp, rulesets/Py_Mind.cpp,
	  rulesets/Py_Object.cpp, rulesets/Py_Thing.cpp,
	  rulesets/Python_API.cpp, rulesets/Stackable.cpp,
	  rulesets/Thing.cpp, rulesets/World.cpp,
	  server/Account.cpp, server/Admin.cpp, server/CommClient.cpp,
	  server/CommServer.cpp, server/Connection.cpp,
	  server/EntityFactory.cpp, server/Lobby.cpp,
	  server/Persistance.cpp, server/Player.cpp,
	  server/ServerRouting.cpp, server/WorldRouter.cpp:
	  Switch to using Fragment as name for Atlas::Message::Object,
	  to avoid name clashes on Object.

	* common/BaseEntity.h: Make BaseEntity inherit from SigC::Object,
	  so signals and callbacks can be used, and add destroyed
	  signal.

	* common/accountbase.h, physics/BBox.h, physics/Quaternion.h,
	  physics/Vector3D.h, rulesets/MemMap_methods.h,
	  rulesets/Movement.cpp, rulesets/Plant.h,
	  rulesets/Py_Operation.cpp, rulesets/PythonMindScript.cpp,
	  rulesets/PythonThingScript.cpp, rulesets/Script.cpp,
	  common/inheritance.cpp: Cleaned up Atlas::Message::Object
	  use, and excessive use of "using ...".

	* rulesets/Movement.h, rulesets/Pedestrian.h:
	  Use forward declarations rather than including Move.h

	* server/Account.cpp, server/Account.h, server/Connection.cpp,
	  server/Connection.h: Use destroyed signal to ensure references
	  to in game entities are removed when those entities are
	  destroyed. Ensure Connection is only destroyed once.

2002-07-25  Al Riddoch  <alriddoch@zepler.org>

	* tools/cycmd.cpp, client/CommClient.h, client/CommClient.cpp: Fixed
	  up client code so it does not rely on username being the same as
	  account id.

	* tools/cycmd.cpp: Added look and logout commands to administrate
	  users logged in.

	* server/server.cpp: Fixed metaserver code so it only sends
	  termination packet if metaserver functionality is enabled.

	* server/Connection.h, server/Connection.cpp, server/CommServer.cpp,
	  server/CommClient.h, server/Account.cpp: Fix logouts so they
	  do cause the client connection to be closed.

	* Finished switch from Fire operation to Burn.

2002-07-25  Al Riddoch  <alriddoch@zepler.org>

	* Change fire operation to burn operation, to avoid clash with
	  fire entity. Change currently incomplete.

2002-07-23  Al Riddoch  <alriddoch@zepler.org>

	* common/const.h: Fix } position.

2002-07-23  Al Riddoch  <alriddoch@zepler.org>

	* common/const.cpp, common/const.h: Make consts modifiable in
	  the debug build.

	* common/op_switch.h, rulesets/Character.cpp, rulesets/Character.h:
	  Fix missing logout op in op switchers.

	* server/Account.cpp, server/Connection.cpp: Handle logouts
	  a bit differently, and return the info response process
	  expects.

	* server/CommClient.cpp: Set connection id to client ip and port.

	* server/CommServer.cpp: Tighten up the way eof is handled.

	* server/ServerRouting.cpp: Set lobby id.

2002-07-21  Al Riddoch  <alriddoch@zepler.org>

	* server/Connection.cpp: Clarified errors on malformed logins.

2002-07-14  Al Riddoch  <alriddoch@zepler.org>

	* ALL: Cleaned up headers into correct order.

	* common/log.h, common/log.cpp: Write some logging code which
	  handles message of different types using syslog or standard
	  error, depending on whether we are running as a daemon.

	* ALL: Switched to using log() for all output.

2002-07-14  Al Riddoch  <alriddoch@zepler.org>

	* tools/cyloadrules.cpp: Give rules in heigher level rulesets
	  priority over base rulesets.

	* common/Database.cpp: Supress debugging output.

2002-07-10  Al Riddoch  <alriddoch@zepler.org>

	* server/Connection.cpp: Spelling errors.

	* configure.in: Remove unused cruft.

2002-07-01  Al Riddoch  <alriddoch@zepler.org>

	* tools/cypasswd.cpp, tools/cyloadrules.cpp: Cleaned up tool source.

2002-06-26  Al Riddoch  <alriddoch@zepler.org>

	* server/CommClient.h: Cleaned some stray headers.

2002-06-26  Al Riddoch  <alriddoch@zepler.org>

	* tools/cycmd.cpp, server/CommClient.h,
	  example/client/InheritanceClient.h, client/ClientConnection.h,
	  client/ClientConnection.cpp: Switched to new skstream header
	  location.

2002-06-26  Al Riddoch  <alriddoch@zepler.org>

	* common/Database.h: Remove stray code.

	* common/globals.cpp: Fix incorrect usage of share dir.

	* server/Account.cpp, server/CommClient.cpp, server/CommClient.h,
	  server/CommServer.cpp, server/Connection.cpp, server/Connection.h,
	  server/Connection_methods.h, server/ExternalMind.cpp,
	  server/Lobby.cpp: Use reference instead of pointer in send
	  methods.

	* server/CommClient.h, server/CommClient.cpp: Adding missing handling
	  for Logout.

2002-06-24  Al Riddoch  <alriddoch@zepler.org>

	* common/Database.cpp, rulesets/Python_API.cpp: Remove some
	  debugging output.

	* tools/cydbload.cpp, tools/cyloadrules.cpp: Check atlas files
	  exists.

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

	* server/CommClient.cpp: Fix leak if connection is deleted before
	  negotiation is complete.

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

	* server/CommServer.h, server/CommClient.h, server/CommServer.cpp,
	  server/CommClient.cpp: Re-factor the way client connections are
	  handled, so closed and blocked connections are disposed of more
	  cleanly.

2002-06-14  Al Riddoch  <alriddoch@zepler.org>

	* client/CreatorClient.cpp, client/CreatorClient.h,
	  client/Py_CreatorClient.cpp, rulesets/basic/editor.py: Add
	  features to allow query and manipulation of the world from
	  the client.

	* rulesets/mason/define_world.py: Give the world a name.

2002-06-12  Al Riddoch  <alriddoch@zepler.org>

	* rulesets/acorn/world/objects/plants/seeds/Apple.py,
	  rulesets/mason/world/objects/plants/seeds/Apple.py,
	  rulesets/Character.cpp: Fix spelling of alcohol.

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

	* configure.in: Bug fixes and tidying up.

	* rulesets/mason/define_world.py: Remove acorn stuff, and get it
	  running.

	* cyphesis.spec.in: Fix library dependancies.

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

	* tools/Makefile.am, server/Makefile.am, client/Makefile.am,
	  autogen.sh, configure.in: Removed some overcomplicated and
	  unrealistic build options. Sort out all the library checking
	  to use the macros.

	* Makefile.am: Reinclude acorn maps for packaging as Acorn.

	* cyphesis.spec.in: Bring rpm spec up to date, with packages
	  for server, libs and game data.

	* rulesets/Makefile.am: Fixed distribution of ruleset hooks .in file.

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

	* Write rpm spec dividing stuff up into server package, lib
	  packages, and game packages. Clean up configure, and use autoconf
	  to process ruleset_import_hooks.py.

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

	* Makefile.am, cyphesis.spec.in: Clean up install process, and update
	  rpm spec.

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

	* rulesets/mason/define_world.py: Start re-work of NPC initialisation
	  for mason.

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

	* common/const.h: Increase the sight range.

	* server/WorldRouter.cpp: Put in some warnings, as I want to
	  know when ops are getting broadcast.

	* server/server.cpp: Ensure stdout is not used when in daemon mode.

	* tools/cydbload.cpp: Rename the daftly named class WorldBase
	  to WorldAccessor.

	* mason.xml, cyphesis.vconf: Stop using the Acorn ruleset in Mason,
	  as it contains strange stuff, and remove the playable farmer
	  class from basic. Now games themselves define the only
	  playable types, and mason contains its own copies of classes
	  it has in common with acorn.

2002-05-21  Michael Koch <konqueror@gmx.de>

	* configure.in: added --enable-debug

2002-05-21  Al Riddoch  <alriddoch@zepler.org>

	* server/ServerRouting.cpp, server/ServerRouting.h,
	  server/ServerRouting_methods.h: Workaround for older GNU compilers
	  that can't inline under certain circumstances.

2002-05-19  Al Riddoch  <alriddoch@zepler.org>

	* server/Account.cpp: Provide names on accounts for uclient.

2002-05-19  Al Riddoch  <alriddoch@zepler.org>

	* rulesets/Character.cpp: Fix loss of set ops from mind.

2002-05-18  Al Riddoch  <alriddoch@zepler.org>

	* client/ObserverClient.cpp, server/Account.cpp, server/Connection.h,
	  server/Routing.h: Formatting cleanup

	* client/Py_CreatorClient.cpp, rulesets/Area.cpp, rulesets/Area.h,
	  rulesets/Character.cpp, rulesets/Character.h, rulesets/Entity.cpp,
	  rulesets/Entity.h, rulesets/Line.cpp, rulesets/Line.h,
	  rulesets/Plant.cpp, rulesets/Plant.h, rulesets/Py_Mind.cpp,
	  rulesets/Py_Thing.cpp, rulesets/Stackable.cpp, rulesets/Stackable.h:
	  Replace operator[] with get() method for querying attributes.
	  Make this get() method const, and re-write the internals so
	  that it more cleanly handles attributes.

	* common/BaseWorld.h: Re-write world.getObject() so that it
	  no longer uses std::map::operator[], as the old method was
	  inserting NULLs into the world dictionary when non-existant
	  entities were queried.

	* rulesets/Character.cpp: Clean up outstanding issues when movement
	  position is supplied, and is very close to being correct, and
	  clarify comments about movement when neither destination nor
	  source are provided.

	* rulesets/Character.cpp: Modify mind2body interface so that setting
	  the TO of ops is done in the individual handlers, and copying
	  the operation globally is avoided.

	* rulesets/MemMap_methods.h: Remove dodgy debug code.

	* rulesets/Pedestrian.cpp: Clarify movement fixme.

	* rulesets/Py_Operation.cpp: Clarify operation time handler fixme.

	* rulesets/Stackable.cpp: Clarify fixme's in combine and divide
	  handlers.

	* server/CommServer.cpp: Remove redundant fixme.

	* server/Connection.cpp, server/ServerRouting.cpp,
	  server/ServerRouting.h, server/ServerRouting_methods.h,
	  server/server.cpp:
	  Move inline ServerRouting::getObject into class header.

	* server/WorldRouter.cpp, server/WorldRouter.h:
	  Clean up  includes, and move updateTime into the main body of the
	  file. Clean up code formatting when handling maps and dictionaries.
	  Clarify error output and comments about NULL objects in the world
	  dictionary.

2002-05-17  Al Riddoch  <alriddoch@zepler.org>

	* rulesets/Py_Operation.cpp, rulesets/Py_Operation.h: Add a variant
	  of the python Operation wrapper which handles const operations.

	* rulesets/PythonMindScript.cpp, rulesets/PythonThingScript.cpp:
	  Pass const versions of operations to the python scripts, rather
	  than having to copy them.

	* server/ServerRouting.cpp: Add build date, time and version to
	  server info.

2002-05-16  Al Riddoch  <alriddoch@zepler.org>

	* rulesets/MemMap.h: C++ compliance fix.

2002-05-16  Al Riddoch  <alriddoch@zepler.org>

	* client/CommClient.cpp, client/ClientConnection.cpp, tools/cycmd.cpp:
	  Ensure clients use username in login ops.

	* common/BaseEntity.cpp, common/op_switch.h, rulesets/BaseMind.cpp:
	  Modify the way op switchers work so they can be used for functions
	  that return any type.

	* rulesets/Character.cpp, rulesets/Character.h: Re-write world2mind
	  layer so that rather than copying ops that are to be sent to
	  the mind, the w2m functions returning a flag indicating whether
	  the op should be passed to the mind. Made w2m and mind op handlers
	  final, as they are never overridden.

	* rulesets/Creator.cpp: Correct comments.

	* rulesets/MemMap.cpp: Add comments clarifying behavoir, and remove
	  old pseudo-code.

	* server/Account.cpp, server/Account.h: Ensure that an accounts
	  character dictionary only ever contains characters. Other entities
	  that the account chooses to create will no be stored here. Add
	  function to be called at login time to make sure that characters
	  stored here are still around.

	* server/Connection.cpp, server/Connection.h, server/ExternalMind.cpp,
	  server/ExternalMind.h: When external mind of a character is
	  destroyed, ensure that the character is removed from the
	  connection's object reference store.

2002-05-15  Al Riddoch  <alriddoch@zepler.org>

	* server/WorldRouter.h, server/WorldRouter.cpp, common/BaseWorld.h,
	  rulesets/Creator.cpp, rulesets/World.cpp: Removed unused and
	  unnecessary code from BaseWorld class, and move some stuff into
	  the WorldRouter where it belongs.

	* rulesets/Character.cpp: Fixed a bug in the way ops from the
	  mind are handled which caused a segfault.

	* rulesets/Character.h, rulesets/Creator.h: Made some functions
	  which are never overridden non-virtual for speed.

	* rulesets/MemMap.cpp, rulesets/MemMap.h, rulesets/MemMap_methods.h:
	  Cleaned up the memmap code to get rid of inefficiency, and badly
	  written code.

	* rulesets/Movement.cpp: Code formatting cleanup.

	* server/Routing.h: Remove old commented out code.

2002-05-14  Al Riddoch  <alriddoch@zepler.org>

	* server/Account.cpp, server/Connection.cpp: Switched to using
	  USERNAME of accounts rather that ID for login and account creation.
	  Toughened up the connection code, so invalid login/create ops
	  are handled.

	* server/Connection.h: Removed unused getObject method.

	* rulesets/Character.cpp, rulesets/Character.h: Get rid of
	  inefficiency handling ops from internal and external mind. Fix
	  leak of some ops.

	* common/BaseWorld.h, server/WorldRouter.cpp, server/WorldRouter.h:
	  Add method for getting a new serialno.

	* rulesets/Thing.cpp, rulesets/Thing.h, server/WorldRouter.cpp:
	  Set refno on ops as they come back from entities. Set serialnos
	  on same ops at the same time, but do not set serialnos
	  on ops that come in from elsewhere, as those are now handled at
	  source.

	* rulesets/Creator.cpp, rulesets/Character.cpp:
	  Ensure that ops from external client preserve their serialno,
	  and assign new serialnos to other ops created at the same time.

2002-05-13  Al Riddoch  <alriddoch@zepler.org>

	* server/Connection.cpp: Fix slight inefficiency in processing ops.

	* server/Account.cpp: Make sure accounts have names.

2002-05-11  Al Riddoch  <alriddoch@zepler.org>

	* rulesets/BaseMind.cpp: Fix NPC behavoir by ensuring that tick
	  and setup ops reach scripts.

2002-05-11  Al Riddoch  <alriddoch@zepler.org>

	* rulesets/Character.cpp, rulesets/Movement.cpp, rulesets/Movement.h:
	  Tweaked movement code to cut down on redundant ticks when movement
	  has reached destination. Fixed bug where character jumped if it
	  walked into a building.

	* rulesets/Pedestrian.cpp: Modified collision resolution so that
	  movement does not slow down if it is deflected.

2002-05-10  Al Riddoch  <alriddoch@zepler.org>

	* modules/Location.cpp, modules/Location.h, physics/BBox.h,
	  physics/Vector3D.h, rulesets/Character.cpp, rulesets/Entity.cpp,
	  rulesets/MemMap.cpp, rulesets/Movement.cpp, rulesets/Pedestrian.cpp,
	  rulesets/Py_BBox.cpp, rulesets/Py_Location.cpp,
	  server/Account.cpp, server/WorldRouter.cpp:
	  Get rid of operator bool() in vector and related classes,
	  so that errors are less likely to emerge in code. Make use
	  of Vector3D::isZero() where apropriate.

2002-05-10  Al Riddoch  <alriddoch@zepler.org>

	* physics/Quaternion.h: Added required comparison operators, and
	  get rid of operator bool, to ensure that no implicit conversion
	  happens where it shouldn't. Add operator required for debugging
	  Quaternion.

	* modules/Location.cpp: Use new isValid() method instead of
	  relying on operator bool.

	* rulesets/Movement.h, rulesets/Pedestrian.cpp, rulesets/Pedestrian.h:
	  Fix up interface for genFaceOperation() so it works the right
	  way round, and orientation is not actually set until the Move
	  op is genuinly dispatched.

	* rulesets/Character.cpp: Add clearer debugging output.
	  Fix up handling orientation in move ops from mind, and generate
	  the move ops for simple change in orientation correctly.

2002-05-10  Al Riddoch  <alriddoch@zepler.org>

	* physics/Quaternion.cpp, physics/Quaternion.h: Revert hack to
	  quaternion sign convention, now that this has been resolved
	  by Ron in wfmath.

2002-05-09  Al Riddoch  <alriddoch@zepler.org>

	* rulesets/Pedestrian.cpp: Fixed collision resolution so it
	  no longer affects orientation of colliding entities.

2002-05-08  Al Riddoch  <alriddoch@zepler.org>

	* rulesets/Movement.cpp, rulesets/Pedestrian.cpp: Hardened collision
	  code to try and catch the bug simon is seeing. Fixed some slight
	  bugs and inefficiencies in the process.

2002-05-07  Al Riddoch  <alriddoch@zepler.org>

	* rulesets/Pedestrian.cpp: Fix bug in movement logic that meant
	  small moves occured instantaneously.

	* rulesets/Line.cpp: Fix to line code. Thanks to Wolfgang Beutner
	  for pointing out the bug.

2002-05-05  Al Riddoch  <alriddoch@zepler.org>

	* rulesets/Creator.cpp: Admin's creator entity serves no purpose
	  if it is no longer connected to a client, so it now destroys
	  itself if it is disconnected.

2002-05-03  Al Riddoch  <alriddoch@zepler.org>

	* tools/cycmd.cpp: Fix atlas object output, so list and map contents
	  are shown.

2002-05-02  Al Riddoch  <alriddoch@zepler.org>

	* tools/cydbload.cpp, tools/cyisoload.cpp, tools/cyloadrules.cpp:
	  Clean up unused headers, and incorrect use of fstream in
	  some tools.

2002-04-30  Al Riddoch  <alriddoch@zepler.org>

	* common/Database.cpp: Get rid of default db username, so that
	  the current unix username is used instead.

2002-04-30  Al Riddoch  <alriddoch@zepler.org>

	* server/Persistance.h, server/Persistance.cpp:
	  Removed legacy code for passing admin account data to the
	  python client.

2002-04-25  Al Riddoch  <alriddoch@zepler.org>

	* server/Connection.cpp: Correctly handle connections on account
	  object, so multiple logins on same account does not result in
	  corruption or crashes.

2002-04-25  Al Riddoch  <alriddoch@zepler.org>

	* rulesets/Entity.cpp, rulesets/Entity.h, rulesets/Character.cpp,
	  rulesets/Character.h, rulesets/Thing.cpp, rulesets/Food.cpp:
	  Renamed weight member as mass, and use this name in Atlas,
	  as this is a better convention, and has already been adopted in
	  stage.

	* Switched python code to using mass instead of weight, as it is
	  a more accurate term.

	* common/globals.cpp, common/globals.h, tools/cyloadrules.cpp:
	  Put admin modifiable config in etc instead of share directory.

	* Don't build cycmd if readline is not available. Untested, and
	  probably nasty.

2002-04-12  Al Riddoch  <alriddoch@zepler.org>

	* common/BaseEntity.cpp, common/BaseEntity.h, common/BaseWorld.cpp,
	  common/Database.cpp, common/accountbase.h, modules/WorldTime.h,
	  rulesets/Py_World.cpp, server/Admin.cpp, server/Persistance.cpp,
	  server/Persistance.h:
	  Clean up includes.

	* rulesets/Entity.cpp, rulesets/Entity.h: Write improved way of
	  handling immutable object attributes.

	* server/EntityFactory.cpp, server/Player.cpp, server/Player.h:
	  Implement a character_types attribute on the player account,
	  by adding "playable" tag to rules database, and setting
	  up a set of character types when rules are read from database.

2002-03-19  Al Riddoch  <alriddoch@zepler.org>

	* server/WorldRouter.cpp, server/ServerRouting_methods.h,
	  server/ServerRouting.h, server/ServerRouting.cpp,
	  server/Routing.h, server/Routing.cpp, server/Connection.h,
	  server/Admin.cpp:
	  Removed inheritance from Routing by Connection and ServerRouting,
	  as there is almost no functionality in common. Get rid of global
	  idDict in ServerRouting is it serves little or no useful purpose.
	  IG objects are now managed in WorldRouter, and OOG objects in
	  ServerRouting.

	* common/BaseWorld.h: Made accessor method const, as it should be.

2002-03-12  Al Riddoch  <alriddoch@zepler.org>

	* server/server.cpp, rulesets/Python_API.cpp, rulesets/Line.cpp,
	  modules/Location.cpp, client/CreatorClient.cpp:
	  Removed some obsolete comments.

	* server/WorldRouter.h, server/WorldRouter.cpp: Add member to
	  deliver operation to known entity. Make use if it to avoid
	  having to recurse in operation() when broadcasting. Ensure
	  that the container of new entities is managed from here.

	* rulesets/Thing.cpp: Tell world to create new entities at the
	  same position as the creator if no other info is provided.
	  Do not attempt to handle setting up the default containership
	  of entity once created, as this is always handled by the
	  WorldRouter from now on.

	* rulesets/Py_World.cpp: Implement getting time info from world.

	* rulesets/Py_Location.cpp: Implement handling of the orientation
	  attribute from python.

	* rulesets/MemMap.cpp: Update comments about unimplemented code.

	* rulesets/Creator.cpp: Check for string.empty() instead of "".

	* rulesets/BaseMind.cpp: Remove reference python code.
	  Cleanly handle and delete operations returned when savinf mind state.

	* client/CharacterClient.cpp: Move delete to the right place.

2002-03-11  Al Riddoch  <alriddoch@zepler.org>

	* tools/cycmd.cpp, server/Lobby.cpp, server/Connection.cpp,
	  rulesets/Character.cpp, client/client.cpp,
	  client/ObserverClient.cpp: ISO C++ compliance fixes.

2002-03-11  Al Riddoch  <alriddoch@zepler.org>

	* client/ClientConnection.h, client/ClientConnection.cpp:
	  Added a select() timeout to the connection polling, so the
	  client thrashes a bit less.

2002-03-11  Al Riddoch  <alriddoch@zepler.org>

	* server/WorldRouter.cpp: Eliminate unnecessary call to opEnumerate()
	  and enhance debugging output.

	* server/Player.cpp: Correct the use of string.compare() in older
	  versions of libstdc++.

	* common/types.h: Added enumeration for other operations, not
	  handled by the core, but considered valid. Added new type
	  for storing mapping between operation parents and their
	  enumerated type.

	* common/op_switch.h: Separate handling of operations known to
	  be invalid from operations which are valid, but not explicitly
	  added to the core.

	* common/inheritance.h, common/inheritance.cpp, common/custom.cpp:
	  Provide global operation mapping where enumeration of operations
	  can be looked up. Install all types handled by the core, and
	  types known to be used in scripts.

	* common/BaseEntity.h, common/BaseEntity.cpp: Add object specific
	  operation mapping where operation types each object is subscribed
	  to can be enumerated, and others are rejected. Add mechanism
	  so that objects can add to the mapping, this subscribing to
	  operations. This makes enumerating operations much cheaper, and
	  eliminates the overhead of handling ops an object has no interest
	  in.

	* rulesets/Thing.h, rulesets/Thing.cpp: Add mechanism so scripts
	  can subscribe to operations.

	* rulesets/Character.h, rulesets/Character.cpp:
	  Add subscription mechanism for ops going to and from
	  the mind.

	* rulesets/BaseMind.h, rulesets/BaseMind.cpp:
	  Add subscription mechanism for sight and sound perception
	  operations sub operations, and provide an interface to it
	  for scripts.

	* server/Connection.cpp, server/Admin.cpp, server/Account.cpp,
	  rulesets/World.cpp, rulesets/World.h, rulesets/Thing.cpp,
	  rulesets/Stackable.cpp, rulesets/Plant.cpp, rulesets/Food.cpp,
	  rulesets/Character.cpp, rulesets/BaseMind.cpp:
	  Add subscriptions to operations for all core base classes.

	* rulesets/Python_API.cpp: When script is created, go through
	  methods, and subscribe to the operations which are handled by
	  them.

	* rulesets/Character.cpp: When calculating orientation of a walking
	  character, assume it is standing upright.

	* physics/Vector3D.h: Add versions of mag() and distance() which
	  omit the square root calculations, so that when their values
	  are only used for comparison, the expensive square root
	  calculations can be ommited. Add new version of collision
	  and range checking functions which provide the optimal
	  interface to the application. Add versions of methods which
	  modify this rather than creating a new operation to eliminate
	  wasted copies.

	* physics/Quaternion.cpp: Make use of faster interface provided
	  by Vector3D.

	* physics/BBox.h: Add new version of collision checking function
	  which provides optimal interface to the application.

	* modules/Location.h, modules/Location.cpp: Add new functions
	  to optimally calculate the distance between any two entities.

	* modules/Location.h: Re-write collision and range functions to
	  make much more optimal use of Vector3D, BBox and distance
	  functionality.

	* rulesets/Py_Vector3D.cpp, rulesets/Pedestrian.cpp,
	  rulesets/Movement.cpp, rulesets/Entity.cpp, rulesets/Character.cpp:
	  Eliminate implicit copies from vector arithmetic.

	* rulesets/Pedestrian.cpp, rulesets/MemMap.cpp, common/const.h:
	  Re-write code which uses magnitude of vectors to use the square
	  of the magnitude instead, as it is much cheaper to calculate.

2002-03-09  Al Riddoch  <alriddoch@zepler.org>

	* rulesets/Py_Location.cpp: Re-wrote commented out orientation
	  code so it uses the correct variable names.

2002-03-08  Al Riddoch  <alriddoch@zepler.org>

	* common/BaseEntity.cpp, common/BaseEntity.h, rulesets/Entity.h,
	  server/Connection.cpp: Remove destroy from the base class, and
	  make it non-virtual, as it is not used this way.

	* rulesets/Entity.cpp: Clean up destroy, ensuring that contains
	  is managed correctly.

	* server/WorldRouter.cpp: Eliminate duplicate contains management.

2002-03-08  Al Riddoch  <alriddoch@zepler.org>

	* server/Persistance.cpp, server/Connection.cpp, server/Admin.cpp,
	  server/Account.cpp, rulesets/Thing.h, rulesets/Thing.cpp,
	  rulesets/Stackable.cpp, rulesets/Py_Location.cpp,
	  rulesets/Entity.h, rulesets/Entity.cpp, rulesets/Creator.cpp,
	  rulesets/Character.cpp, common/BaseEntity.h, common/BaseEntity.cpp:
	  Get rid of flags used to determine object type, and get rid
	  of use of C style casts to cast between object pointers.
	  Replace both with dynamic casts. Clean up some stray casts
	  left behind from older versions of object structure.

	* physics/Vector3D.cpp: Added note explaining when to use
	  Vector3D::relMag() instead of mag().

2002-03-08  Al Riddoch  <alriddoch@zepler.org>

	* Changed typedef names to ones which make more sense, and are
	  clearer. There is no change in functionality in this commit.

2002-03-08  Al Riddoch  <alriddoch@zepler.org>

	* common/globals.cpp, common/globals.h, rulesets/Python_API.cpp,
	  tools/cyloadrules.cpp: Make rulesets list a vector for
	  efficiency.

	* common/utility.cpp, common/utility.h: New function to create
	  an operation from a message Object.

	* rulesets/BaseMind.cpp, rulesets/MemMap.cpp, rulesets/MemMap.h,
	  rulesets/MemMap_methods.h, rulesets/Py_Map.cpp: Clean up
	  mind/memory interface, eliminating copies, unecessary allocations,
	  and passing more apropriate types around.

	* server/CommClient.cpp, rulesets/Py_Operation.cpp: Make use of
	  operation converter where it is apropriate.

2002-03-07  Al Riddoch  <alriddoch@zepler.org>

	* common/inheritance.h: Cleaner handling of erroneous type
	  additions, and eliminate leakage.

2002-03-07  Al Riddoch  <alriddoch@zepler.org>

	* server/WorldRouter.h, server/WorldRouter.cpp, rulesets/Thing.cpp,
	  rulesets/Entity.h, rulesets/Entity.cpp, common/types.h,
	  common/BaseWorld.h: Switched to using sets instead of lists
	  for contains, and other data structore for performance.

	* rulesets/Line.cpp: Added debugging.

	* rulesets/MemMap.cpp, rulesets/MemMap.h, rulesets/MemMap_methods.h:
	  Switch to using vectors instead of lists for performance.

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

	* common/types.h: Added typedefs for some sequences used in
	  geomaps.

	* common/type_utils.h:
	  Utility functions for types in types.h, used with Atlas.

	* rulesets/Line.h, rulesets/Line.cpp, rulesets/Area.h,
	  rulesets/Area.cpp: Converted hard attributes over to the
	  correct type, and implemented setting and observing those
	  attributes.

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

	* server/Routing.h: Map dictionary function more robust.

	* rulesets/Pedestrian.cpp: Increased debugging output.

	* rulesets/Character.cpp: Ensure it is handled if no move
	  op is created.

	* physics/Vector3D.h: Ensure operator!= is implemented as
	  compiler cannot be relied upon to use operator== instead.

	* common/inheritance.h, common/Database.cpp: ISO C++ fixes.

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

	* rulesets/Line.h, rulesets/Line.cpp, rulesets/Area.h,
	  rulesets/Area.cpp, server/EntityFactory.cpp: Added stub
	  base classes for new geometric entities.

	* server/ServerRouting.cpp, server/Lobby.h, server/Lobby.cpp,
	  server/Connection.cpp: Fleshed out lobby functionality,
	  so that accounts/connections are no longer responsible
	  for managing their own appearance and disappearance.

	* server/Account.cpp: Send info of logout.

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

	* tools/cycmd.cpp, server/WorldRouter.cpp, server/EntityFactory.cpp,
	  server/Connection.cpp, server/Admin.cpp, server/Account.cpp,
	  rulesets/World.cpp, rulesets/Thing.cpp, rulesets/Py_Operation.cpp,
	  rulesets/MemMap_methods.h, rulesets/MemMap.cpp, rulesets/Entity.cpp,
	  rulesets/Character.cpp, rulesets/BaseMind.cpp:
	  Use empty() instead of size() == 0 for STL sequence types.

	* rulesets/ThingFactory.h, server/EntityFactory.cpp: Modified the
	  way adding classes to the inheritance tree is handled, so types
	  no longer have to inherit directly from a C++ class.

	* server/WorldRouter.cpp: Modified the way broadcast operations are
	  handled to make them more efficient, and catch NULL pointers in
	  the world dictionary.

2002-03-05  Al Riddoch  <alriddoch@zepler.org>

	* tools/cycmd.cpp, client/ClientConnection.cpp:
	  Removed c_str() where not required.

	* server/CommServer.cpp: Cleaned up removal of dead connections.

	* server/server.cpp, server/Persistance.cpp: Get rid of leaks
	  of factory and database connection objects.

	* common/inheritance.h: Detect and flag errors introduced into
	  type tree.

	* rulesets/MindFactory.h: Add method to shutdown factory.

2002-03-03  Al Riddoch  <alriddoch@zepler.org>

	* common/Database.cpp, common/Database.h, common/accountbase.h,
	  server/Persistance.cpp, server/Persistance.h,
	  tools/cydbload.cpp, tools/cyloadrules.cpp, tools/cypasswd.cpp:
	  Modified class structure of database related classes to get
	  rid on nasty inheritance based idea. Add functionality
	  to handle updating a row as distinct from inserting. Made
	  id column the primary key. Updated tools to make propper use
	  of update functionality.

2002-03-03  Al Riddoch  <alriddoch@zepler.org>

	* client/CreatorClient.cpp: Fix operation semantics for admin
	  puppetting to new convention.

	* common/Database.cpp: Add optional support for database password.

	* physics/Quaternion.h: Add extra way of setting up a Quaternion.

	* rulesets/MindFactory.cpp, server/Connection.cpp:
	  Move some output into debugging.

	* rulesets/Python_API.cpp, rulesets/Py_Quaternion.h,
	  rulesets/Py_Quaternion.h: Add support for quaternions into the
	  scripting API.

	* rulesets/mason/define_world.py: Switch to using quaternions to
	  send orientation data to the server.

2002-02-22  Al Riddoch  <alriddoch@zepler.org>

	* server/WorldRouter.h, server/WorldRouter.cpp, server/EntityFactory.h,
	  server/Account.h, server/Account.cpp, common/BaseWorld.h:
	  Clean up interface so that entities are passed around more simply.

	* server/EntityFactory.cpp:
	  Get rid of redundant code, and ensure that all classes, even
	  undefined ones, have a type info node.

2002-02-18  Al Riddoch  <alriddoch@zepler.org>

	* common/BaseWorld.h:
	  Prevent slicing.

	* ./server/Player.cpp:
	  Add settler class to mason ruleset.

2002-02-18  Al Riddoch  <alriddoch@zepler.org>

	* common/BaseEntity.h:
	  Private un-implemented copy constructor and assignment operator,
	  so slicing won't occur.

	* physics/Vector3D.h:
	  Switched collision detection with parent so only the case where
	  the subject is completely clear of the object is checked for.

	* rulesets/Creator.cpp:
	  Implemented differentiation between priveleged in-game ops, and
	  normal in-game ops.

	* rulesets/Movement.cpp:
	  Increased verbosity of debugging output.

	* rulesets/Pedestrian.cpp:
	  Correctly implemented target based movement with changing containers.

2002-01-28  Al Riddoch  <alriddoch@zepler.org>

	* client/ClientConnection.cpp, client/CommClient.h,
	  common/globals.cpp, common/globals.h, server/server.cpp,
	  tools/cycmd.cpp:
	  Make the TCP port number a global config setting, and
	  ensure it is used everwhere, so it can be overriden, and all
	  clients and tools will use it. Modify behavoir so that any
	  settings overridden on the command line are made semi-permanent
	  in the users home directory, making it easier for users to run
	  two versions on one machine at the same time.

	* common/Database.cpp, common/Database.h: Remove obsolete iterator
	  code. Add a method to clear a given database table.

	* server/Persistance.h, tools/cyloadrules.cpp:
	  Automate loading of the ruleset given in the config file, and
	  the rulesets it depends on, ensuring that the rules table
	  is cleared first.

2002-01-27  Al Riddoch  <alriddoch@zepler.org>

	* server/server.cpp, client/client.cpp, common/globals.cpp:
	  Move loading of ruleset list from config file into the
	  generic loadConfig function.

	* server/EntityFactory.cpp, server/EntityFactory.h:
	  Add support for reading mind data from rules database. Remove
	  old code for installing classes from varconf. Clean up debugging
	  output.

	* server/Admin.cpp: Remove setting of varconf class when new
	  type is installed from client.

	* rulesets/MindFactory.h, rulesets/MindFactory.h: Get MindFactory
	  working, and set it up so EntityFactory installs info here
	  as it reads the rules from the database.

	* rulesets/Character.cpp: Use MindFactory to create minds.

	* common/Database.cpp: Clean up some obsolete comments.

	* aiclient/client.cpp: Get rid of invalid setup of varconf.

2002-01-27  Al Riddoch  <alriddoch@zepler.org>

	* common/Database.cpp, common/Database.h,
	  server/Persistance.cpp, server/Persistance.h:
	  Add a new table to store rulesets, so they can be persisted, and
	  edited online.  The new ruleset format integrates information
	  about the class hierarchy, scripting and default attributes.
	  Added low level method to fetch an entire database table as an
	  Atlas map.

	* tools/cyloadrules.cpp: New tool to load rulesets in new xml
	  format into database table.

	* server/EntityFactory.cpp, server/EntityFactory.h:
	  New re-written Entity Factory, to support new rules database
	  table, and better class definition capabilities.

	* rulesets/EntityFactory.cpp, rulesets/EntityFactory.h:
	  Removed from build.

	* client/CommClient.cpp: Redundant include removed.

	* rulesets/ThingFactory.h: Add storage to factory for script
	  info and default attributes.

	* server/WorldRouter.cpp: Switch to using new EntityFactory.

	* server/server.cpp: Removed old ruleset loading code, and now
	  simply load the ruleset names from the config file.

	* tools/cycmd.cpp: Exit correctly if connection fails.

2002-01-23  Al Riddoch  <alriddoch@zepler.org>

	* client/ClientConnection.h, server/CommClient.h, tools/cycmd.cpp:
	  Ported to using skstream2.

2002-01-17  Michael Koch <konqueror@gmx.de>

	* configure.in, tools/cypasswd.cpp:
	  check for termios.h and use it to turn off echo during input of
	  password in cypasswd when available

2002-01-14  Al Riddoch  <alriddoch@zepler.org>

	* C++ compliance fixes for gcc 3.

2002-01-13  Al Riddoch  <alriddoch@zepler.org>

	* modules/DateTime.cpp, modules/DateTime.h,
	  modules/WorldTime.cpp, modules/WorldTime.h:
	  Patch by Michael Koch to fix bugs, and pad out the implementation
	  of the time and date code.

2002-01-13  Al Riddoch  <alriddoch@zepler.org>

	* client/client.cpp, server/server.cpp, common/globals.cpp,
	  common/globals.h, tools/cycmd.cpp, tools/cydbload.cpp,
	  tools/cypasswd.cpp: Move code for handling loading of config
	  from the command line, user config and global config, into
	  globals.cpp, and make use of it in all tools.

	* tools/cycmd.cpp: Fix objtype on server set commands.

	* common/Database.cpp, common/Database.h: Implemented new database
	  interface to PostgreSQL to replace inadequate db3 code.

	* common/database.cpp, common/database.h: Old code removed from the
	  build.

	* common/accountbase.h, server/Admin.cpp, server/Persistance.cpp,
	  server/server.cpp, tools/cydbload.cpp: Fixed for minor changes
	  in the low level database API.

	* common/globals.h, common/globals.cpp, rulesets/EntityFactory.cpp,
	  server/Admin.cpp, server/CommServer.cpp, 
	  Remove varconf header from globals.h, and put in .cpp files
	  where it belongs.

2001-12-15  Al Riddoch  <alriddoch@zepler.org>

	* physics/Quaternion.cpp, physics/Quaternion.h: Corrected bugs
	  in the constructor which takes 2 vectors, and moved it out
	  of the header file. This appears to work now that the args
	  have been swapped round. See comments in Quaternion.cpp for
	  details.

2001-12-14  Al Riddoch  <alriddoch@zepler.org>

	* common/database.h: Add function to query database path for
	  error reporting.

	* server/server.cpp: Added check to database initialisation so
	  that an error opening the databases is reported with explanation,
	  or logged as apropriate, and startup is aborted.

	* phyics/Quaternion.h: Added quaternion class for represening rotation.

	* modules/Location.cpp, modules/Location.h: Removed face attribute and
	  replaced with orientation which is a quaternion.

	* rulesets/Character.cpp: Modified code which handles the direction
	  of movement, and how this affects the character rotation so it
	  now uses orientation.

	* rulesets/Entity.cpp: Switch attribute checks from face to
	  orientation.

	* rulesets/Movement.h, rulesets/Pedestrian.cpp: Modify movement
	  code so that orientation used instead of face.

	* rulesets/Py_Location.cpp: Removed support for obsolete and
	  unused rotation attriute from python code.

	* rulesets/Thing.cpp: Modified attriute handling to use orientation
	  instead of face.

2001-12-10  Al Riddoch  <alriddoch@zepler.org>

	* Fixed build files for debian, and converted bbox in define_world.py
	  to new format.

2001-12-06  Al Riddoch  <alriddoch@zepler.org>

	* common/database.h, common/database.cpp: Cleaned up header so
	  it no longer requires db3 headers, and reimplemented support
	  for debian.

	* tools/cycmd.cpp: Fixed to work with new database headers.

2001-11-30  Al Riddoch  <alriddoch@zepler.org>

	* physics/BBox.h, rulesets/Py_BBox.h, rulesets/Py_BBox.cpp:
	  Added direct support for new format bounding boxes.

	* modules/Location.cpp, modules/Location.h, physics/Vector3D.h,
	  rulesets/Character.cpp, rulesets/Creator.cpp, rulesets/Entity.cpp,
	  rulesets/Movement.cpp, rulesets/Plant.cpp, rulesets/Py_Location.cpp:
	  Switched over to using new format bounding boxes, and re-wrote
	  collision code for this format, making it clearer and more
	  efficient at the same time.

2001-11-26  Al Riddoch  <alriddoch@zepler.org>

	* common/persistance.cpp, rulesets/BaseMind.cpp, rulesets/Character.cpp,
	  rulesets/Entity.cpp, rulesets/EntityFactory.cpp, rulesets/Food.cpp,
	  rulesets/MemMap.cpp, rulesets/Thing.cpp, server/Admin.cpp:
	  Improved robustness and readability of code handling Atlas
	  attributes.

2001-11-26  Al Riddoch  <alriddoch@zepler.org>

	* server/Connection.cpp: Toughened up Logout handling, and made
	  type info Get handling more robust.

	* server/Admin.cpp, server/Admin.h: Added capability for admin to
	  forcefully logout users.

	* server/Account.cpp: Made handling of OOG Look ops more inline with
	  Atlas conventions, made args handling more robust.

2001-11-24  Al Riddoch  <alriddoch@zepler.org>

	* server/server.cpp, server/Admin.cpp, rulesets/EntityFactory.h,
	  rulesets/EntityFactory.cpp, common/inheritance.h, common/custom.cpp:
	  Modified EntityFactory so entity classes are automatically installed
	  in the inheritance tree as they are loaded.

	* server/CommClient.cpp, server/Connection.cpp: Removed some debugging
	  output.

2001-11-23  Al Riddoch  <alriddoch@zepler.org>

	* common/custom.cpp, common/inheritance.cpp, common/inheritance.h:
	  Simplified and cleaned up inheritance query code, and hacked in
	  some of the OOG and IG classes.

2001-11-22  Al Riddoch  <alriddoch@zepler.org>

	* common/operations.cpp, common/Save.h, common/Nourish.h, common/Load.h,
	  common/Fire.h, common/Eat.h, common/Cut.h, common/Chop.h:
	  Fixed custom operations so they really do inherit from what I
	  claim they do.

2001-11-21  Al Riddoch  <alriddoch@zepler.org>

	* common/BaseEntity.cpp: Set serialnos on error ops.

	* common/inheritance.cpp, common/inheritance.h, common/custom.cpp:
	  Rationalise the way types are stored in the inheritance system
	  and install info about cyphesis custom operations.

	* example/client/InheritanceClient.cpp,
	  example/client/InheritanceClient.h: Update to use skstream.

	* server/ServerRouting.cpp, server/ServerRouting.h,
          common/serialno.h, common/serialno.cpp: Switch to using
	  a more global easier to access source of serial numbers.

2001-11-11  Al Riddoch  <alriddoch@zepler.org>

	* Release cyphesis 0.1.

2001-11-10  Al Riddoch  <alriddoch@zepler.org>

	* Cleaned up auto* build files. Added more updated info to README.

	* modules/Location.cpp: Removed redundant includes.

	* rulesets/mason/define_world.py: Drop in copy of Acorn world.

	* server/WorldRouter.cpp: Removed double delete of gameWorld.

	* server/server.cpp: Modified comments about segfault in Python
	  shutdown, as this has now been eliminated.

2001-11-08  Al Riddoch  <alriddoch@zepler.org>

	* common/inheritance.h, server/Connection.cpp: Simplify behavoir when
	  type is unknown, and return an error to the client.

	* server/Admin.cpp, server/Account.cpp, server/Connection.cpp: Ensure
	  serial number is set on all OOG operations.

2001-11-08  Al Riddoch  <alriddoch@zepler.org>

	* server/Lobby.cpp: Removed debugging output.

	* server/Account.cpp: Added handling of private chat.

	* physics/Vector3D.h: Added more operators for efficient arithmetic
	  with vectors.

	* Added basis for mason ruleset.

Sunday, October 28 2001, James Turner <jmtn@blueyonder.co.uk>

	* Updated configure.in to work with automake 2.5 (out here on
	  the edge, the blood is flowing thick and fast).

	* Certain distributions do not have libTermcap, and instead
	  combine that functionality into NCurses; configure now
	  checks for this. This should behave correctly on both
	  RedHat and SuSE, particularly.

2001-10-28  Al Riddoch  <alriddoch@zepler.org>

	* server/WorldRouter.h, server/Connection.h, rulesets/Pedestrian.h,
	  rulesets/Movement.h, rulesets/MemMap.h, physics/Vector3D.h,
	  modules/WorldTime.h, modules/Location.h, modules/DateTime.h,
	  common/Generic.h, common/BaseWorld.h: Ensure that single argument
	  constructors are explicit, so we don't get any naughty implicit
	  type conversion going on.

	* server/CommClient.h: Added an operation dump feature for debugging.

2001-10-19  Al Riddoch  <alriddoch@zepler.org>

	* client/ClientConnection.cpp, client/ClientConnection.h,
	  tools/cycmd.cpp: Switched to using skstream to completely handle
	   client socket connections.

	* client/ClientConnection.cpp, client/ClientConnection.h,
	  common/log.cpp, rulesets/EntityFactory.h, rulesets/MemMap.h,
	  server/server.cpp, tools/cycmd.cpp: Removed unused includes.

	* client/Py_CreatorClient.cpp, client/client.cpp,
	  client/define_world.cpp, rulesets/Py_Location.cpp,
	  rulesets/Py_Location.h, rulesets/Py_Map.cpp,
	  rulesets/Py_Map.h, rulesets/Py_Mind.cpp, rulesets/Py_Mind.h,
	  rulesets/Py_Object.cpp, rulesets/Py_Object.h,
	  rulesets/Py_Operation.cpp, rulesets/Py_Operation.h,
	  rulesets/Py_Oplist.cpp, rulesets/Py_Oplist.h,
	  rulesets/Py_Optime.cpp, rulesets/Py_Optime.h,
	  rulesets/Py_Thing.cpp, rulesets/Py_Thing.h,
	  rulesets/Py_Vector3D.cpp, rulesets/Py_Vector3D.h,
	  rulesets/Py_World.cpp, rulesets/Py_World.h,
	  rulesets/Py_WorldTime.cpp, rulesets/Py_WorldTime.h,
	  rulesets/PythonMindScript.cpp, rulesets/PythonThingScript.cpp,
	  rulesets/PythonThingScript.h, rulesets/Python_API.cpp,
	  rulesets/Python_API.h, server/server.cpp:
	  Reorganised python header files so that each header includes
	  all the code relevant for a particular type. Tidied up
	  the type implementations. Added prototypes to init_python_api()
	  to the Python_API.h header, and removed other dependencies from
	  it.

2001-10-18  Al Riddoch  <alriddoch@zepler.org>

	* common/BaseWorld.cpp, common/OOGThing.cpp, rulesets/Entity.cpp,
	  rulesets/EntityFactory.cpp, rulesets/MindFactory.cpp,
	  rulesets/Stackable.cpp, server/Account.cpp, server/Admin.cpp,
	  server/CommClient.h, server/CommServer.cpp, server/CommServer.h,
	  server/Connection.cpp, server/ExternalMind.cpp,
	  server/Persistance.cpp, server/Persistance.h,
	  server/ServerRouting.cpp, server/WorldRouter.cpp,
	  server/server.cpp: Removed unused includes and code. Added some
	  FIXMEs.

	* rulesets/Thing.cpp: Added TO and FROM to faked Sight(Create()) ops.

	* server/OOG_Thing.cpp, server/OOG_Thing.h: Marked files as removed.

2001-10-17  Al Riddoch  <alriddoch@zepler.org>

	* tools/cyisoload.cpp: Removed unused iso map loader tool, and
	  get rid of coal dependancy.

2001-10-17  Al Riddoch  <alriddoch@zepler.org>

	* aiclient/ClientConnection.cpp, aiclient/client.cpp,
	  client/ClientConnection.cpp, common/database.h, common/globals.cpp,
	  common/persistance.cpp, common/stringstream.h, server/CommClient.cpp,
	  server/CommServer.cpp, server/Persistance.cpp, tools/cyctrl.cpp,
	  tools/cyctrl.cpp, tools/cydbload.cpp, tools/cyisoload.cpp,
	  tools/cypasswd.cpp: Removed unused config.h.

	* client/ObserverClient.cpp, common/const.h, tools/cycmd.cpp:
	  Use default password if the admin account cannot be fetched from
	  the database.

	* client/Py_CreatorClient.cpp, common/BaseEntity.cpp,
	  common/BaseEntity.h, rulesets/Character.cpp, rulesets/Creator.cpp,
	  rulesets/Entity.cpp, rulesets/Entity.h, rulesets/EntityFactory.cpp,
	  rulesets/MemMap.cpp, rulesets/Py_Mind.cpp, rulesets/Py_Thing.cpp,
	  rulesets/Py_World.cpp, rulesets/Thing.cpp, server/Account.cpp,
	  server/Admin.cpp, server/Connection.cpp, tools/cywatchdog.cpp:
	  Make many of the member variables of Entity protected, and add
	  the required accessors. Changed the name of the id attribute
	  to m_id.

	* common/BaseWorld.h, common/database.cpp, common/persistance.cpp:
	  Removed unused includes.

	* common/Chop.h, common/Cut.h, common/Eat.h, common/Fire.h,
	  common/Generic.h, common/Load.h, common/Nourish.h, common/Save.h,
	  common/Setup.h, common/Tick.h: Moved definition of virtual
	  functions into cpp file, to reduce wasted code.

	* common/Makefile.am: Create cyphesis library, which can be used by
	  other applications to access cyphesis databases.

	* common/config.h, common/database.h, server/Persistance.cpp,
	  tools/cydbload.cpp, tools/cyisoload.cpp, tools/cypasswd.cpp:
	  Remove conditional compilation of db code. db3 is now required.

	* server/WorldRouter.h: Fixed getNewId() so it take const string.

	* server/server.cpp: Removed python shutdown, so it does not
	  mess up the db if it causes a segfault.

2001-10-10  Al Riddoch  <alriddoch@zepler.org>

	* server/Account.cpp: Modified semantics of OOG ops, so the args
	  have a loc attribute indicating what room they take place in.

	* server/Connection.cpp: Added support for OOG appearance and
	  disappearance ops.

2001-10-10  Al Riddoch  <alriddoch@zepler.org>

	* rulesets/Python_API.cpp: Made variable names clearer.

	* server/Connection.cpp: Fixed adding accounts to lobby on login.

	* server/server.cpp: Limited the scope of the CommServer object
	  so that it is destructed before the rest of shutdown can
	  take place.

2001-10-10  Al Riddoch  <alriddoch@zepler.org>

	* server/Account.cpp, server/Lobby.cpp: Fixed OOG chat semantics.

2001-10-09  Al Riddoch  <alriddoch@zepler.org>

	* rulesets/Python_API.cpp: Fixed another leak in the python code.

2001-10-09  Al Riddoch  <alriddoch@zepler.org>

	* rulesets/Python_API.cpp, rulesets/PythonMindScript.cpp,
	  rulesets/Py_Oplist.cpp, rulesets/Py_Operation.cpp,
	  rulesets/Py_Map.cpp: Fixed some points in the code where Python
	  objects are not decreffed, and are thus leaked.

2001-10-09  Al Riddoch  <alriddoch@zepler.org>

	* server/server.cpp, rulesets/Python_API.cpp: Added function
	  to shutdown python. Ensure that all references that should be
	  decrefed during initialisation are.

	* tools/cywatchdog.cpp: Moved watchdog pidfile, so it is in
	  cyphesis specific dir.

	* tools/cyctrl.cpp: Moved in watchdog control program, which
	  makes controlling the watchdog easier.

2001-10-07  Al Riddoch  <alriddoch@zepler.org>

	* tools/cywatchdog.cpp: New watchdog which works with new server
	  behavoir.

2001-10-07  Al Riddoch  <alriddoch@zepler.org>

	* watchdog/watchdog.c: Deprecated non-working watchdog program.

	* tools/cypasswd.cpp, tools/cycmd.cpp, client/ObserverClient.cpp,
	  common/accountbase.h Added database delete method, which closes
	  the database, and make sure it is used.

	* server/server.cpp: Moved the point where the server drops to
	  a daemon, as doing this after the db was open seems to corrupt
	  the db.

	* common/database.cpp: If a db is opened but not created, then it
	  is read only.

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

	* configure.in: Switch to using improved checks for Atlas-C++ and
	  python.

	* common/const.h, common/const.cpp, rulesets/Python_API.cpp:
	  Removed unused consts.

	* common/globals.h, common/globals.cpp, server/server.cpp:
	  Enable running as a daemon in the background by default.
	  This improves usability by removing dependance on users
	  session. Install signal handlers so signals cause clean
	  shutdown.

	* tools/cycmd.cpp: If adminning server on localhost, get admin
	  password directly from database, instead of asking user.
	  Allows cycmd to be used in scripts. Ensure that exit
	  status accuratly reveals whether the command was sent.

	* tools/cypasswd.cpp: Switch to using common/accountbase.h.

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

	* rulesets/Py_Mind.cpp: Fixed a leak python object.

2001-10-03  Al Riddoch  <alriddoch@zepler.org>

	* server/CommServer.cpp: Remove non-fatal "FATAL..." message when
	  client closes connection.

	* rulesets/Thing.cpp: If object to be created has no loc, set loc
	  to be the same as creator before passing to the factory.

	* rulesets/Entity.cpp: Clarify debug output when determining location
	  of new entities.

	* client/CommClient.cpp: Push output into debug mecanism. Switch
	  order of Create/Login for admin account so ordinary operation
	  does not issue an error. Admin account is created at startup,
	  so there is no need for the client to create it.

2001-09-13  Al Riddoch  <alriddoch@zepler.org>

	* server/CommClient.cpp, server/CommClient.h, server/CommServer.cpp:
	  Re-organised negotiation code so it is non-blocking. Server is now
	  a bit less easy to attack.

	* Marked files that are no longer part of the build with #error so
	  they never get built by accident.

2001-09-13  Al Riddoch  <alriddoch@zepler.org>

	* server/server.cpp: Moved CommServer and CommClient into their own
	  files. Cleaned up debugging output.

	* rulesets/EntityFactory.h, server/CommServer.h: Fixed headers so
	  the required ones are included.

	* server/Persistance.cpp: Re-wrote shutdown method so it deletes
	  the class instance.

2001-09-13  Al Riddoch  <alriddoch@zepler.org>

	* BUGS: Note that C++ version of client currently does not work.

	* TODO: Update on important issues which allow easy DOS attacks.

	* client/ClientConnection.cpp, client/ClientConnection.h:
	  Cleaned up unused code from ClientConnection class.

	* client/client.cpp: Removed monitoring section of client
	  so it simply exits once the world is initialised.

	* rulesets/basic/mind/goals/humanoid/werewolf.py:
	  Started work on dynamic goals for playing werewolf.

	* rulesets/werewolf/define_world.py: Added in the mayor, who runs
	  werewolf games.

	* common/BaseEntity.h: Made id of entity private, and implemented
	  accessors.

2001-08-19  Al Riddoch  <alriddoch@zepler.org>

	* client/CharacterClient.cpp: Removed commented out code.

	* client/CreatorClient.cpp: Fixed processing the response
	  to a create operation, and cleaned up debugging output.

	* client/ObjserverClient.cpp, client/ObserverClient.h,
	  client/client.cpp: Added setup method, which which handles
	  connecting, negotiation, logging in and creating character.

	* client/Py_CreatorClient.cpp: Added check if make() failed.

	* rulesets/Python_API.cpp: Fixed setting the import hooks
	  list properlly to include the ruleset list in use, instead
	  of hardcoding it.

	* rulesets/acorn/define_world.py: Copied define_world.py script
	  from client directory for Acorn.

	* rulesets/basic/editor.py: Modified to be used from C++ core.

	* rulesets/basic/mind/goals/__init__.py,
	  rulesets/basic/mind/goals/humanoid/werewolf.py:
	  Added in goals file to contain goals related to werewolf.

	* rulesets/basic/mind/panlingua/interlinguish.py:
	  Added in vote and execute verbs for werewolf.

	* rulesets/werewolf: Added in new ruleset for werewolf.

2001-08-16  Al Riddoch  <alriddoch@zepler.org>

	* tools/cycmd.cpp: Ensure that login op is flushed after it is sent.

	* server/Player.cpp: Arg order of std::string.compare() is
	  incompatable between recent libstdc++ versions. Switch
	  back to old version, still in most common use.

	* rulesets/Thing.cpp: Set refno on ops handled in game.

	* rulesets/Python_API.cpp: Modify Entity() python constructor
	  so that commonly used attributes from old atlas are translated
	  to their modern equivalents.

	* rulesets/Py_Thing.cpp, rulesets/Py_Mind.cpp: Differentiate
	  between previously identical error messages in several places.

	* rulesets/Py_Object.cpp: Rework conversion of python dict to
	  Atlas map to be more efficient and clean.

	* rulesets/Py_Location.cpp: Rework setting of vector parts of
	  location so that it can accept vectors from python in more
	  formats, including lists and tuples.

	* rulesets/Creator.h, rulesets/Character.h, common/BaseEntity.h:
	  Re-order virtual methods declarations to fit a convention.

	* common/stringstream.h: Hardcode use of local stringstream class,
	  as the version provided with older libstdc++ seems to be broken.

	* common/database.cpp: Use the common header to pick the right
	  stringstream implementation.

	* common/BaseWorld.cpp, server/Persistance.cpp: Removed unused
	  stringstream include.

	* rulesets/Creator.cpp: Added extra debug output.

	* client/define_world.h, client/define_world.cpp, client/CommClient.h:
	  Use CreatorClient to store Creators mind, instead of BaseMind.

	* client/client.cpp,
	  client/ObserverClient.h, client/ObserverClient.cpp,
	  client/CreatorClient.h, client/CommClient.h, client/CommClient.cpp:
	  Modify method names to fit capitalisation conventions.

	* client/CreatorClient.cpp: Implement creation of in-game entities,
	  using creator entity.

	* client/CommClient.cpp: Added correct client side monitoring of
	  creator entity.

	* client/ClientConnection.h, client/ClientConnection.cpp: Added
	  pending method to establish if ops are in the queue. Switched send()
	  method so we only send ops. Add setting of serialno of sent
	  ops, starting with an offset of 512.

	* client/CharacterClient.h: Removed unused member, opFound.

	* client/CharacterClient.cpp: Debugged sendAndWait() method.

2001-08-14  Al Riddoch  <alriddoch@zepler.org>

	* server/server.cpp, server/CommClient.h, client/ClientConnection.h,
	  tools/cycmd.cpp: Switched to using skstream library for socket
	  comms instead of hand rolled fstream based version.

	* ALL FILES: Fixed use of std namespace throughout all code.

2001-08-14  Al Riddoch  <alriddoch@zepler.org>

	* module/DataTime.h: Added includes so header is independant.

	* client/CommClient.cpp: Fixed leak of operations.

	* client/CharacterClient.h, client/CharacterClient.cpp,
	  client/CreatorClient.h, client/CreatorClient.cpp:
	  Added in mind classes for handling creator on client side.

2001-08-13  Al Riddoch  <alriddoch@zepler.org>

	* client/client.cpp,
	  client/ObserverClient.cpp, client/ObserverClient.h,
	  client/ClientConnection.cpp, client/ClientConnection.h,
	  client/define_world.cpp, client define_world.h:
	  Started re-coding of python client code in C++.

	* common/accountbase.h:
	  Database class used for simply accessing accounts.

	* common/OOGThing.cpp, common/OOGThing.h, server/Account.h,
	  server/Routing.h:
	  Moved OOGThing class into common as it is not server specific.

	* common/BaseWorld.cpp, common/BaseWorld.h,
	  server/WorldRouter.cpp, server/WorldRouter.h,
	  rulesets/Entity.h, rulesets/Py_World.cpp,
	  rulesets/PythonThingScript.cpp, rulesets/Python_API.h,
	  rulesets/Thing.cpp, rulesets/Thing.h:
	  Added base class for WorldRouter so that code that previously
	  used WorldRouter now used the interface defined by this
	  new class. This means that the code in rulesets no longer
	  has dependencies on code in server, so can be used in the client.

	* server/ExternalMind.cpp, server/ExternalMind.h,
	  rulesets/Character.h, rulesets/Creator.cpp,
	  server/Account.cpp:
	  Moved ExternalMind class into server as it is server specific,
	  so that there is no dependancy on server in rulesets.

	* server/Persistance.cpp. server/Persistance.h,
	  server/Admin.cpp, server/ServerRouting.cpp, server/server.cpp:
	  Moved high level server specific persistance class into
	  server, so there is no dependency on server in common.

	* common/database.cpp, common/database.h, server/Admin.cpp,
	  tools/cydbload.cpp, tools/cyisoload.cpp, tools/cypasswd.cpp:
	  Increases efficiency of some interfaces by passing Object::MapType
	  instead of MapType, when the value must be a map.

	* modules/WorldTime.cpp, modules/WorldTime.h,
	  rulesets/Py_WorldTime.cpp, rulesets/Python_API.cpp:
	  Brought the version of WorldTime in modules up to date, as this is
	  the version now used.

	* rulesets/Character.cpp, server/WorldRouter.cpp, rulesets/Thing.cpp,
	  server/Admin.cpp:
	  Made world objects dictionary private.

	* rulesets/EntityFactory.cpp, rulesets/EntityFactory.h:
	  Change newThing parameters so entity factory does not need to
	  know about WorldRouter.

	* server/Lobby.cpp: Added support for people and rooms attributes
	  of OOG room class.

2001-08-02  Al Riddoch  <alriddoch@zepler.org>

	* common/inheritance.cpp, common/inheritance.h: Added code to store
	  atlas object inheritance tree.

	* server/Connection.cpp: Added code to allow client to query
	  atlas object inheritance using get ops.

	* example/client/InheritanceClient.*: Added example client which
	  queries the inheritance tree of the server.

	* rulesets/MemMap.h, rulesets/Py_Map.cpp: Made hooks lists private,
	  and added methods to access them.

	* server/Account.cpp, server/Lobby.h: Added correct handling of OOG
	  look ops when looking at own characters, other accounts, or the
	  lobby.

	* server/ServerRouting.h: Added function to generate serial numbers
	  for operations.

	* server/WorldRouter.cpp: Assign genuine serial number to all
	  in game operations as they are pulled off the queue.

	* Cleaned up header file multiple inclusion checks for uniqueness,
	  and made sure of ISO compliant use of std::string.

2001-07-28  Al Riddoch  <alriddoch@zepler.org>

	* server/WorldRouter.cpp: Fixed setting parents and objtype on world
	  entity.

2001-07-23  Al Riddoch  <alriddoch@zepler.org>

	* server/Account.cpp: Fixed setting name of characters startup coin
	  objects.

	* modules/Location.cpp: Added bounding median to attributes sent
	  using Atlas.

	* common/BaseEntity.cpp: Always set the id on an entity.

2001-07-16  Al Riddoch  <alriddoch@zepler.org>

	* server/server.cpp, server/ServerRouting.h, server/ServerRouting.cpp,
	  server/CommServer.h: Added support for server "name" which
	  defaults to the hostname of the server machine, but is
	  customisable in the config. This can be used in preference to
	  IP address when doing lookups with the metaserver.

	* server/Lobby.h, server/ServerRouting.h, server/Account.h,
	  server/Account.cpp, rulesets/Stackable.h, rulesets/Stackable.cpp,
	  rulesets/Python_API.cpp, rulesets/Py_Object.cpp, rulesets/Plant.cpp,
	  rulesets/Pedestrian.cpp, rulesets/Entity.h, rulesets/Entity.cpp,
	  rulesets/Character.h, rulesets/Character.cpp, common/BaseEntity.h,
	  common/BaseEntity.cpp: Modied asObect() and addToObject()
	  methods to make them more efficient.

	* modules/Location.h, modules/Location.cpp: Removed old obsolete
	  Message::Object based addToObject() method.

	* rulesets/Thing.cpp: Optimised apperance/disappearance code.

2001-07-12  Al Riddoch  <alriddoch@zepler.org>

	* server/server.cpp: Cleaned up loading of config files, so that
	  an invalid installation is reported more clearly, and more
	  usefully.

	* rulesets/acorn/world/objects/animals/Pig.py: Fixed creating ham in
	  the right place.

	* rulesets/Movement.cpp: Fixed leaving containers so that if the		  initial collision with parnet bounding box is missed, character
	  does not get stuck.

	* rulesets/EntityFactory.h: Cleanup code is now cleaner.

	* rulesets/EntityFactory.cpp: Removed unecessary varconf dependancy
	  in rulesets code.

	* rulesets/Character.cpp: Allow move ops from mind with no loc set.

	* physics/Vector3D.h: Included check for inTime so that if entering
	  time is in the future, this is detected.

	* modules/Location.cpp, modules/Location.h: Provided method
	  to add location to a map.

2001-07-04  Al Riddoch  <alriddoch@zepler.org>

	* client/define_world.py: Fixed and refined the market traders.
	  Sorted out random face direction.

	* tools/cypasswd.c: Re-wrote tool to use database class, and thus
	  ensure it is trying to access the right database.

	* common/database.cpp, common/database.h: Added function to remove
	  accounts from the account database.

2001-07-01  Al Riddoch  <alriddoch@zepler.org>

	* rulesets/Character.cpp: Characters now sober up over time.

	* client/define_world.py: Add in market traders to run all the
	  stalls in the market.

	* common/persistance.cpp: Set default admin password to something
	  a bit more difficult to guess.

	* rulesets/basic/mind/goals/common/misc_goal.py:
	  Fixed run_shop() goal, so NPCs now open and close their market
	  stall.

	* agrilan*.xml: These really are the final versions for Acorn 0.4

2001-06-26  Al Riddoch  <alriddoch@zepler.org>

	* agrilan*.xml: Final versions for Acorn 0.4

2001-06-24  Al Riddoch  <alriddoch@zepler.org>

	* server/Lobby.h, server/Lobby.cpp, server/Account.cpp: Added code
	  for querying lobby, then disabled it as it seems to hang uclient.

	* rulesets/basic/mind/panlingua/interlinguish.py, 
	  rulesets/basic/mind/goals/common/misc_goal.py,
	  client/mind/panlingua/interlinguish.py: Added goal to
	  maintain opening and closing market stalls, and goal for having 
	  a meal.

	* rulesets/basic/mind/goals/common/move.py: Fixed assemble goal
	  meaning lych now works again.

	* rulesets/basic/mind/Memory.py: Adapted query for location of
	  entity so that it accepts lists of possible types.

	* rulesets/Character.cpp: Enabled creating items by NPCs.

	* client/define_world.py: Updated NPC behavoir.

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

	* server/server.cpp: Fixed leak of codec and varconf configuration.

2001-06-22  Al Riddoch  <alriddoch@zepler.org>

	* server/server.cpp: Handle cleaning up after database load.

	* server/WorldRouter.cpp: Switch to using stringstream to
	  generate ids.

	* rulesets/Thing.cpp: Re-write SetupOperation so Sight
	  operation is not lost and leaked.

	* rulesets/Python_API.h, rulesets/Python_API.cpp,
	  rulesets/Py_WorldTime.cpp, rulesets/Py_World.cpp,
	  rulesets/Py_Thing.cpp, rulesets/Py_Operation.cpp,
	  rulesets/Py_Object.cpp: Sort out correct handling of
	  python references, and ensure C++ objects are 
	  deleted as required.

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

	* rulesets/acorn/world/objects/plants/seeds/Seed.py,
	  rulesets/acorn/world/objects/plants/seeds/Apple.py,
	  rulesets/acorn/world/objects/plants/Tree.py,
	  rulesets/acorn/world/objects/plants/AppleTree.py:
	  Adjusted the weight and therefor the nutritional value of
	  apples and acorns. Reduced the number dropped by trees to
	  improve game performance.

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

	* rulesets/acorn/world/objects/plants/Tree.py,
	  rulesets/acorn/world/objects/plants/Oak.py,
	  rulesets/acorn/world/objects/plants/AppleTree.py:
	  Modified tree code so mode is set to fruit if they are carrying
	  any fruit.

	 * Added xml entity maps for agrilan.

2001-06-17  Al Riddoch  <alriddoch@zepler.org>

	* tools/cydbload.cpp: Modified database loader so it can
	  load multiple maps and merge them into the database.

	* rulesets/acorn/world/objects/buildings/FarmHouse2.py: Fix typo
	  in the class name.

	* acorn.vconf, rulesets/acorn/world/objects/buildings/Stall.py:
	  Added proper support for market stalls.

2001-06-17  Al Riddoch  <alriddoch@zepler.org>

	* server/Account.cpp: Fixed bug in looking at characters code.

	* rulesets/acorn/world/objects/buildings/Inn2.py: Fix walk bounding
	  box.

	* acorn.vconf: Added normal square brown tent.

2001-06-17  Al Riddoch  <alriddoch@zepler.org>

	* server/Account.cpp, server/Account.h: Added ability to look
	  at characters to get details fter login before joining game.

2001-06-16  Al Riddoch  <alriddoch@zepler.org>

	* Manual tweaks of build files to build static binaries.

2001-06-16  Al Riddoch  <alriddoch@zepler.org>

	* Fixed up build files to install in a conformant way.

	* acorn.vconf: Added in new building classes which set up
	  wall objects for collision purposes. Building now seem to
	  work.

	* common/database.cpp, common/database.h, common/globals.cpp,
	  common/globals.h, rulesets/Python_API.cpp, server/server.cpp,
	  watchdog/control.c, watchdog/watchdog.c: Implemented
	  correct way of getting installation directories from
	  autoconf.

	* rulesets/Movement.h, rulesets/Movement.cpp, rulesets/Pedestrian.h,
	  rulesets/Pedestrian.cpp: Fixed collisions with the solid
	  wall of a structure.

	* rulesets/Thing.cpp: Modified setup operation so that a sight
	  of create operation is always generated even if setup is
	  overloaded.

	* Many fixes from Anders Petersson to get the build working under
	  debian.

2001-06-12  Al Riddoch  <alriddoch@zepler.org>

	* client/define_world.py: Removed heap of coins from startup.
	  No longer required as characters get given coins at startup.

	* rulesets/ThingFactory.h, rulesets/ThingFactory.cpp,
	  rulesets/EntityFactory.h, rulesets/EntityFactory.cpp:
	  Removed bulky manual factory system with a proper template based
	  factory system.

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

	* client/define_world.py: Add bounding boxes to oak trees.

	* rulesets/Entity.cpp: Added support for setting bounding box.

	* rulesets/MemMap.cpp, rulesets/MemMap.h: Add looking at
	  contains attribute of entities to mind's map.

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

	* tools/cycmd.cpp: Code cleanup and rationalisation. The
	  arguments now make more sense, the usage info is correct,
	  and works, and the code should be more portable.

	* server/server.cpp, rulesets/Pedestrian.cpp: Shifted output over
	  to debug only.

	* server/Account.cpp: Added in a hack which gives characters
	  some money on startup.

	* modules/DateTime.cpp: Hardcoded Acorn 1:3 time.

	* common/const.h: Increased sight range to be closer to the client
	  view size.

	* client/world/objects/Thing.py: Tweak so that server side money
	  creation does not crash client.

	* client/define_world.py: Move warriors to be spead around the
	  inn courtyard.

	* cyphesis.vconf: Enable metaserver by default, and automatic
	  loading of world state from db at startup.

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

	* server/WorldRouter.h, server/WorldRouter.cpp, rulesets/Thing.cpp,
	  server/Account.cpp: Modified server to use Entity * instead
	  of Thing *.

	* Removed unnecessary includes from many files.

	* common/config.h, configure.in, common/persistance.cpp:
	  More config changes to try and get it working on Debian.

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

	* tools/cydbload.cpp: Added parameter handling so any file can
	  be loaded into the database.

	* tools/cycmd.cpp: Cleaned up usage and help functions.

	* tools/cyisoload.cpp: Cleaned up usage(), and made sure build
	  completes okay if libraries are missing, and missing
	  functionality is reported to the user.

	* server/server.cpp: Added config options that specifies that
	  the contents of the db should loaded on server startup. Cleaned
	  up some debug code.

	* server/WorldTime.cpp, server/WorldRouter.cpp,
	  server/Connection.cpp, rulesets/Structure.h,
	  rulesets/Python_API.cpp, rulesets/Py_WorldTime.cpp,
	  rulesets/Movement.cpp, rulesets/Entity.cpp,
	  physics/Vector3D.h, common/persistance.cpp,
	  common/database.h, common/database.cpp: Removed output either
	  to debug mode, or removed altogether.

	* common/BaseEntity.h, common/BaseEntity.cpp: Removed redundant header
	  includes.

	* server/ServerRouting.cpp, common/persistance.h,
	  common/persistance.cpp: Modified admin account function names it
	  fit convention.

	* module/Location.h: Fixed collision detection so that entities
	  with velocity set to 0 still get checked.

	* rulesets/Entity.cpp, rulesets/Thing.cpp, rulesets/Character.cpp,
	  rulesets/BaseMind.cpp, rulesets/Creator.cpp,
	  rulesets/ExternalMind.cpp, rulesets/Food.cpp, rulesets/MemMap.cpp,
	  rulesets/Movement.cpp, rulesets/Pedestrian.cpp, rulesets/Plant.cpp,
	  rulesets/Py_Location.cpp, rulesets/Py_*.cpp, rulesets/World.cpp:
	  Removed unnecessary #includes.

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

	* configure.in: Tiny fix to jmt's improved sigc detection.
	  Bumped version up to 0.0.13 for pre-release of Acorn 0.4.

2001-06-01  Al Riddoch  <alriddoch@zepler.org>

	* rulesets/Pedestrian.cpp: Fixed setting of walking direction when
	  a collision occurs.

	* server/WorldRouter.cpp, server/WorldRouter.h: Fixed uptime
	  measurement which was grossly out because it subtracted the
	  server initTime twice, and did not take account of the
	  in game start time offset.

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

	* configure.in, common/config.h, common/database.h, tools/cypasswd.cpp:
	  Added config check that looks for DB3's db_cxx.h on default
	  include path if it cannot be found in db3/. This fixes building
	  on Debian.

	* server/server.cpp, server/WorldRouter.cpp, acorn.vconf,
	  globals.h, globals.cpp: Added inittime config option used to
	  influence the game time used at server startup.

	* server/WorldTime.cpp: Added in new time of day descriptions for
	  more flexible goals.

	* server/ServerRouting.cpp: Removed output used to debug memory
	  cleanup code.

	* rulesets/basic/mind/goals/common/misc_goal.py: Added time
	  parameters to trading goals.

	* rulesets/Thing.cpp: Fixed appearance/disappearance operations
	  which were not getting sent most of the time.

	* client/define_world.py: Added in more NPC and modified behavoir.
	  Everyone now goes to the inn for lunch and in the evening, and
	  market traders only work during the day.

2001-05-29  Al Riddoch  <alriddoch@zepler.org>

	* server/server.cpp, server/CommClient.h, server/Account.h,
	  server/Account.cpp, rulesets/Entity.h, rulesets/Entity.cpp,
	  rulesets/Character.h, rulesets/Character.cpp, rulesets/BaseMind.h,
	  rulesets/BaseMind.cpp, common/types.h, common/operations.h,
	  common/op_switch.h, common/BaseEntity.h, common/BaseEntity.cpp:
	  Added support for imaginary operations used in a similar way
	  to emoting.

	* server/WorldTime.h: Added update method so underlying DataTime
	  can be updated.

	* server/ServerRouting.h, server/Lobby.h, server/Lobby.cpp
	  server/ServerRouting.cpp, server/Connection.h,
	  server/Connection.cpp, server/Account.h, server/Account.cpp: Added
	  a lobby object which handles lobby chat. Essentially it stores
	  a list of accounts and allows operations to be sent or broadcast
	  to other accounts.

	* rulesets/Py_WorldTime.cpp: Added python is_now() method because
	  using comparison does not appear to work.

	* rulesets/BaseMind.cpp: Added updating of minds WorldTime each
	  time an operation is received.

	* modules/DateTime.h: Added operator << so DateTime can be sent
	  to cout.

	* common/types.h: Added types for storing accounts in Lobby.

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

	* Renamed Operataion method names throughout so they no longer
	  all have the name Operation but are now called MoveOperation,
	  according to the type of operation they handle.

	* modules/DateTime.cpp, modules/DataTime.h: Filled in functionality,
	  allowing initialisation and updating from a time values in seconds.

	* modules/Location.h: Modified collision detection code so no
	  checking is done between two moving objects.

	* rulesets/BaseMind.h, rulesets/BaseMind.cpp, rulesets/Entity.h,
	  rulesets/Entity.cpp: Removed virtual getMap() method and replaced
	  with a fixed method in BaseMind only. Added time member veriable
	  to BaseMind so each mind keeps track of time by itself.

	* rulesets/Python_API.h, rulesets/Py_Mind.cpp, rulesets/Py_Mind.h:
	  Added specific python interface for mind objects, because if
	  increasing differences in the way this must be handled.

	* rulesets/Character.h, rulesets/Character.cpp: Added isAlive flag 
	  which is cleared if the character is dead. If this flag is cleared,
	  operations are no longer sent to the mind.

	* rulesets/Movement.h, rulesets/Movement.cpp, rulesets/Pedestrian.h,
	  rulesets/Pedestrian.cpp: Cleaned up the code, made members more
	  distinctive, and make interface more general.

	* rulesets/Py_Thing.cpp: Removed features used to support mind.

	* rulesets/Py_WorldTime.cpp: Added support for comparison of
	  time with strings, to establish whether it matches descriptions
	  of time.

	* rulesets/Python_API.cpp: Modified creating of scripts so mind
	  scripts use a slightly different interface from entity scripts,
	  to support the fact that a mind handles its own timekeeping,
	  has a memory map, and has no access to the world.

	* server/WorldTime.cpp, server/WorldTime.h: Brought WorldTime into
	  the build. Used to track details of the time. Added support for
	  checking time descriptions such as "midday", "summer" against
	  DateTime.

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

	* rulesets/Entity.cpp: Added dynamic attributes to atlas entity
	  representation.

	* rulesets/Py_World.cpp: Added get_object() method so that python
	  scripts can actually interact with other objects.

	* rulesets/basic/mind/goals/common/misc_goal.py: Fixed hunt goal
	  so that the arrow is removed from inventory as it is fired.

	* client/define_world.py: Added archer, arrow and deer to test
	  shooting code.

	* server/server.cpp: Made CommClient more robust in the event
	  if immediate disconnection by initialising pointers to NULL;

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

	The memory leak crackdown

	* rulesets/BaseMind.cpp, rulesets/MemMap.h, rulesets/MemMap.cpp:
	  Add code to flush a characters memory as its mind is
	  deleted.

	* rulsets/Character.cpp: Delete movement class associated with
	  character when character is deleted.

	* rulesets/EntityFactory.h, rulesets/EntityFactory.cpp: Delete
	  all the entity factories when the server shuts down.

	* rulesets/PythonScript.cpp: Decrease reference of and thereby
	  delete the python script at delete time.

	* server/ServerRouting.cpp: Delete all the objects in idDict,
	  which should include all in game objects, and all explicitly
	  out of game objects, like accounts.

	* server/WorldRouter.cpp: Delete all pending operations, gameWorld
	  object. Ensure that an object is deleted from ServerRouting's
	  idDict when it is deleted from the world.

	* server/CommServer.h, server/server.cpp: Added CommServer destructor
	  which deletes all client objects and the server object.

	* server/server.cpp: Delete the database persistant object and the
	  entity factory at shutdown.

2001-05-22  Al Riddoch  <alriddoch@zepler.org>

	* client/define_world.py: Added archers who can hunt deer.

	* rulesets/basic/mind/goals/common/misc_goal.py:
	  Added the hunting goal.

	* rulesets/basic/mind/goals/common/move.py: Modified hunt_for()
	  goal so it has variable attack proximity.

	* common/op_switch.h, common/operations.h, common/Generic.h,
	  rulesets/Character.cpp, rulesets/Entity.h, rulesets/Entity.cpp,
	  rulesets/Python_API.cpp: Added handling of operation types not
	  directly supported by C++ classes in the scripting engine. In
	  order for these to be used they must be created in a script, and
	  received in a script.

	* rulesets/Character.cpp: Avoid using RootOperation pointers unless
	  that is really what we mean.

	* rulesets/Character.cpp: Added code to delete operations from
	  internal mind when external mind is active.

	* rulesets/Entity.cpp: Handled leaking of null script objects,
	  and python script objects.

	* rulesets/Connection.cpp: Delete characters external mind when
	  connection goes down.

2001-05-22  Al Riddoch  <alriddoch@zepler.org>

	* client/define_world.py: Started coding new NPC's for Acorn 0.4

	* rulesets/basic/mind/goals/common/misc_goal.py: Fixed bug in
	  announcing trade left over from old mode code.

2001-05-21  Al Riddoch  <alriddoch@zepler.org>

	* rulesets/Character.cpp: Added sending of appearance and
	  disappearance operations to mind and client.

	* rulesets/BaseMind.cpp, rulesets/MemMap.cpp: Removed redundant debug
	  output.

2001-05-20  Al Riddoch  <alriddoch@zepler.org>

	* rulesets/BaseMind.h/cpp: Added isAwake flag to indicate whether the
	  mind is active or not. Defaults to true.

	* rulesets/Py_Object.cpp: Reverted to storing complex attributes
	  in a python dict.

	* rulesets/Python_API.cpp: Get complex attributes from operation
	  arguments.

	* rulesets/Thing.cpp: Added in broadcast of sight(create) operation
	  to setup when object is created. See Thing::Opertion(Create) for
	  details.

	* rulesets/basic/mind/goals/common/misc_goal.py: Cleaned up comments.

2001-05-18  Al Riddoch  <alriddoch@zepler.org>

	* Added ruleset entries for characters to match all the recently
	  added animations.

	* server/Player.cpp: Added checks which allow player to be any of
	  the currently available characters.

2001-05-14  Al Riddoch  <alriddoch@zepler.org>

	* configure.in: Added termcap to sort out dependency on termcap
	  by readline on some systems.

	* physics/Vector3D.cpp: Added definition of static consts members.
	  I really don't understand why these are required, and as far
	  as I can tell this does not conform to the C++ spec.
	
	* server/Makefile.am, aiclient/Makefile.am: Re-ordered linking so
	  that physics is picked up.
	
2001-05-14  Al Riddoch  <alriddoch@zepler.org>

	* server/server.cpp: Added several options to the config file to
	  make server operation customisable. Added comments.

	* server/server.cpp, server/CommServer.h: Changed methods which
	  return int to returning bool if they are success/faul results.

	* server/WorldRouter.cpp: Removed some unused debugging code.
	  Optimised heavily used code. Changed error message on
	  sending to a non-existant entity so that it is no longer
	  reported as a critical error.

	* server/ServerRouting.h, server/Connection.h,
	  server/Connection_methods.h: inlined simple methods.

	* server/Connection.cpp: Optimised frequently used code.

	* server/CommClient.h: Simplified read method so it no
	  longer checks status redundantly.

	* common/BaseEntity.h, rulesets/Thing.h, rulesets/Entity.h: Added
	  comments explaing purpose of classes.

	* rulesets/Thing.cpp: Added detailed comments, and removed unnecessary
	  initialisation of some attributes.

	* rulesets/PythonMindScript.cpp: Removed redundant NULL check.

	* rulesets/MemMap.h: Added inlines for inlined methods.

	* rulesets/Entity.h, common/BaseEntity.h: Moved seq from BaseEntity
	  to Entity as it does not apply to Out Of Game objects.

	* rulesets/Entity.cpp: Added in stamp/seq attribute. Nade name
	  attribute optional.

	* rulesets/Character.cpp: Simplified some op handling code
	  to make it more readable and hopefully faster. Added comments
	  explaining movement, removed unused commented out code, and
	  removed some unnecessary debugging code.

	* common/operations.h: Explanatory comments.

	* common/*.h: Re-wrote extended operations to fit in
	  with Atlas-C++ 0.4.2 conventions.

	* common/log.*: Commented out unused logging code.

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

	* server/Admin.cpp: Modified database loading code so it picks up
	  the object parent correctly instead of looking for a type attribute.

	* server/server.cpp: Made metaserver address a config file option.

	* common/database.h: Put in compiler error if code is built without
	  database support.

	* common/BaseEntity.cpp: Switched over to using stamp instead of seq
	  as the attribute used to check whether entity needs to be
	  updated.

	* Used action operation throughout python code to denote performing
	  an action, as differentiated from setting mode.

	* rulesets/skills: Added the beginnings of a skill system.

	* example/client: Fixed Atlas-C++ 0.5 example client so it
	  compiles again.

	* README: Wrote a README file

2001-05-04  Al Riddoch  <alriddoch@zepler.org>

	* Added handling of action operations to operation handling core.

2001-05-03  Al Riddoch  <alriddoch@zepler.org>

	* rulesets/Py_Object.cpp: Added support for complex attributes
	  for Entities used as argument for operations.

2001-04-20  Al Riddoch  <alriddoch@zepler.org>

	* configure.in: Added a bit of support for later version of the Python
	  interpretter to configure script.

2001-04-20  Al Riddoch  <alriddoch@zepler.org>

	* common/database.*, common/persistance.*: Added new database tables
	  for mind data, and server data.

	* common/persistance.*, server/Admin.cpp: Implemented saving and
	  loading of mind state to mind table. Initially only saving the
	  contents of the memory map is supported.

	* rulesets/MemMap.h: Added asObject() method to convert contents
	  into Atlas representation.

	* rulesets/BaseMind.*: Added handling of load and save operations
	  which in conjunction with the Python mind component build an
	  Atlas representation of the mind state.

2001-04-19  Al Riddoch  <alriddoch@zepler.org>

	* common/persistance.cpp, server/Admin.cpp: Modified database loading
	  of world entities so that it is done hierarchically starting
	  with the top level container.

	* rulesets/Entity.cpp, rulesets/Character.cpp: Added some needed
	  attributes to those added to Atlas Objects when converting in
	  game entities.

2001-04-17  Al Riddoch  <alriddoch@zepler.org>

	* Changed many return statements to match convention.

	* rulesets/Thing.cpp: Tweaked ranges code in movement to cut
	  down CPU time used.

	* common/BaseEntity.cpp: Re-ordered opEnumerate so that most
	  frequently used ops are detected soonest.

	* modules/WorldTime.h/.cpp: Moved WorldTime to modules directory.

2001-04-16  Al Riddoch  <alriddoch@zepler.org>

	* Substantial re-work of object model. Moved many attributes out
	  of BaseEntity class. Changed WoldRouter so it now handles
	  objects in terms of Entity, rather than BaseEntity.

	* Code cleanups, including removing reduntant includes, and
	  getting rid of C style comments.

	* Fixed the way attributes are handled in Set operations and
	  when merging from an Atlas::Message::Object. This fixed
	  problem with setting gender of characters.

	* rulesets/Pedestrian.*, rulesets/Movement.*: Re-named
	  Movement variables to make them clearer. Added in
	  separate handling for collisions from moving to
	  target position. Modified collision handling so
	  objects can slide next to each other.

	* rulesets/Thing.cpp, rulesets/Character.cpp: Cleaned up and
	  rationalised movement code. Much shorter, faster and
	  more compact than before.

	* Made better use of iterators throughout, eliminating unnecessary
	  lookups, and copying of data.

	* Moved all virtual functions out of header files, making
	  less work for the linker.

	* Made more use of const references to avoid the need to copy
	  data before being able to inspect it.

2001-04-12  Al Riddoch  <alriddoch@zepler.org>

	* common/BaseEntity.*: Changed addToObject to take reference
	  instead of pointer.

	* physics/Vector3D.h: Re-ordered functions to allow correct inlining.
	  Changed member names to correct convention.

	* rulesets/MemMap.cpp,rulesets/MemMap_methods.h: Re-ordered function
	  to allow inlining, and moved non-inlinable functions into .cpp file.

	* Changed new operation initialisation to be done at construction
	  time instead of imediatly after construction for performance
	  reasons.

	* server/WorldTime.*: Modified member names for convention, and
	  moved non-inlineable function to .cpp file.

2001-04-11  Al Riddoch  <alriddoch@zepler.org>

	* common/WorldInfo.*: Removed WorldInfo class, a hangup from
	  the python Atlas implementation.

2001-04-11  Al Riddoch  <alriddoch@zepler.org>

	* Re-wrote class headers files so that all class members now
	  begin with a lower case letter and do not contain _.

	* Fixed retrieval of Account from database so that the Account
	  is now correctly referenced in the server object.

	* common/types.h: Changed type name to make them clearer.

	* rulesets/Character.h: Moved MovementInfo into its own class
	  file, and made it a base class, with a Pedestrian super class.
	  This allows different types of movement handling classes
	  to be used to handle things that move differently.

2001-04-10  Al Riddoch  <alriddoch@zepler.org>

	* Complete re-write of python script interface to allow other
	  script types to be cleanly dropped in.

	* Re-work on server and communication related classes to use
	  references where they are apropriate. Code is now much more
	  robust.

	* Huge cleanup of header files removing redundant includes.

	* server/WorldRouter.h: Removed is_object_deleted because it
	  is broken and not used.

	* server/Connection.h: Removed unused disconnect() methods.

	* rulesets/Entity.*: Added new in game base class from which
	  all mind and object classes are derived. This removes
	  clutter of Thing class from mind classes.

	* aiclient/*: Progress with creating AI client for mind handling.

	* common/globals.*: Moved some globals out of server specific files.

	* rulesets/Makefile.am: Separated rulesets code into 3 almost stand
	  alone packages; entities, mind and python interface code.

2001-04-05  Al Riddoch  <alriddoch@zepler.org>

	* common/BaseEntity.h: Moved many of the extra parts of this file
	  into individual files for each bit.

	* aiclient/*: Added client mode cyphesis for handling AI in another
	  server. Not yet operational.

	* */*: Moved large and virtual functions out of headers to reduce
	  multiple instance problems, keep the binary size down, and speed
	  up compilation.

	* server/Admin.h/cpp: Added Get operation handling, thus dividing
	  admin commands into two classes, one which does not alter
	  the state of the server, the other which does. Added query
	  command which allows admin client to retrive arbitrary objects
	  from server id dictionary.

2001-04-02  Al Riddoch  <alriddoch@zepler.org>

	* rulesets/acorn/world/objects/animals/Deer.py, acorn.vconf: Added
	  deer, with same basic code as pig.

	* server/server.cpp: Pass on objects which are not know by the
	  Atlas::Objects::Decoder straight to the operation handler.

	* server/Admin.*: Re-structured the way commands are handled from
	  admin client, so that apropriate operations are used instead of
	  always using Set.

	* server/Admin.cpp: Added saving world state to the database.

	* tools/cycmd.cpp: Updated to use the new admin command semantics.
	  Added save command.

	* common/persistance.*: Added interface for saving world status.

	* common/database.*: Added interface for deleting contents of database.

2001-03-30  Al Riddoch  <ajr@ecs.soton.ac.uk>

	* tools/cycmd.cpp: Added support for interactive mode.

	* server/Admin.cpp: Fixed returning of info op from database load
	  message, and counting of objects loaded from database.

	* configure.in: Added readline check for cycmd.

2001-03-29  Al Riddoch  <ajr@ecs.soton.ac.uk>

	* tools/cyisoload.cpp: Complete functionality for loadin iso map
	  into world database.

	* example/client/CyphesisClient.cpp: Fixed ListType usage in example
	  client.

2001-03-28  Al Riddoch  <ajr@ecs.soton.ac.uk>

	* tools/cyisoload.cpp: Added tool which loads an iso format map into
	  the server database.

	* configure.in: Added check for coal (0.2) which is used in map
	  loader tool.

	* common/database.cc: Modified database initialisation functions
	  so that whether or not the database should be created can be
	  specified. Added separate function for decoding a database
	  object into an Atlas::Message::Object. Fix to the way objects
	  are added to the database which solves some corruption problems.

	* common/database.*: Added database iterator class that can be
	  used to iterate over the database.

	* server/Admin.cpp: Added handler for admin load command, which
	  loads world state from database.

	* server/WorldRouter.*: Tweak to allow objects added to world
	  to have pre-defined id.

2001-03-26  Al Riddoch  <ajr@ecs.soton.ac.uk>

	* common/persistance.*: Re-designed persistance code is it uses
	  a database subclass rather than implementing the databse code
	  itself.

	* common/database.*: Added generic class for accessing database,
	  which can be used from any program.

	* tools/cydbload.cpp: Added simple tool to load objects into the
	  world database from a flat map file.

	* basic.vconf: Shifted houses over to using the structure base class.

2001-03-21  Al Riddoch  <ajr@ecs.soton.ac.uk>

	* physics/Vector3D.h: Changed boundary condition of inBox() from
	  when part of entity leaves box to when the whole entity leaves the
	  box.

	* basic.vconf: Make tent use the structure base class.

	* client/define_world.py: Add bounding box to tent.

	* tools/cycmd.cpp: Added password entry.

	* server/Admin.cpp: Added "stat" admin command, to get server
	  details.

	* server/CommClient.h: Fixed include dependencies.

	* common/persistance.cpp: Added findAccount() method for systems
	  without db3.

	* rulesets/Thing.cpp: Added sending Apperance and Disappearance
	  operations to static entities when another entity moves out
	  of sight.

	* rulesets/Character.cpp: Added check to make sure an entity does
	  not collide with itself.

	* rulesets/Thing.cpp: Added check to make sure entity does not move
	  inside itself.

	* rulesets/Py_Location.cpp: Modified python location.copy() method
	  so that only the position and velocity is copied. This should 
	  bounding boxes getting set on things which should not have them.

	* rulesets/Character.cpp: Added return statement to movement
	  handling, so move ops without arguments are not handled.

2001-03-20  Al Riddoch  <ajr@ecs.soton.ac.uk>

	* physics/Vector3D.h: Detect leaving time of bounding box, even if
	  entity is not yet in it.

	* modules/Location.h, modules/Location.cpp: Added get_xyz() to
	  find absolute coordinates.

	* modules/Location.h: Added true location based range checking.

	* servers/WorldRouter.cpp: Implemented new location based range
	  checking so that operations that take place inside buildings are
	  range checked properly.

	* servers/WorldRouter.cpp: Re-wrote id generation code to be a bit
	  more robust.

2001-03-19  Al Riddoch  <ajr@ecs.soton.ac.uk>

	* physics/Vector3D.h: Corrected variable name convention error in
	  inTime() function.

	* rulesets/Character.cpp: Detect what if entity has already left
	  refs bounding box.

	* basic.vconf: Made sty use the Structure base class.

2001-03-19  Al Riddoch  <ajr@ecs.soton.ac.uk>

	* modules/Location.h, physics/Vector3D.h: Added collision checking
	  functions to work out when an entity inside a box will hit the
	  outside.

	* rulesets/Character.cpp: Added check in collision code to see when
	  entity will leave the bouding box of its current parent.

2001-03-18  Al Riddoch  <ajr@ecs.soton.ac.uk>

	* Modified database code so that entries have the correct begin
	  and end encodings, which is <atlas>..</atlas> in the case of
	  XML-like codec.

	* modules/Location.h: Added a flag which indicates whether the
	  bounding box of an entity is solid. If it is not solid, then
	  the entities contents much be checked for collisions rather
	  than the entity itself.

	* rulesets/Character.h: Added target_ref attribute to MovementInfo
	  as a means to track character movement between entities.

	* rulsets/Character.cpp: Modified collision code to handle
	  detecting of collisions with non-solid objects, and handling
	  movement when characters moves into a non-solid object but
	  does not collide with it.

	* rulesets/Structure.h, StructFactory.*: Added base class for 
	  buildings and other structure, which are not solid, and the
	  character can move in and out of freely.

	* server/server.cpp: Made metaserver functionality optional, and
	  added a config option to the config file.

2001-03-16  Al Riddoch  <ajr@ecs.soton.ac.uk>

	* tools/cycmd.cpp: Added functionality to allow commands to be
	  sent to the admin account on the server.

	* server/WorldRouter.cpp: Removed mechanism for shutting down server
	  after a fixed run period.

	* server/Admin.*: Added reception of Set operation by admin account
`	  which contain commands from an admin client. Implemented shutdown
	  command, which sets a flag indicating server shutdown should start.

	* server/server.cpp: Added output indicating that shutdown is taking
	  place, to make it clear that it is not a crash.

2001-03-16  Al Riddoch  <ajr@ecs.soton.ac.uk>

	* watchdog/*.c: Corrected C++ style comments in c code.

	* */*: Fixed mistake in copyright statement.

	* tools/cypasswd.cpp: Fixed usage message.

	* tools/cycmd.cpp: Added tools for sending administrative commands
	  to server.

	* server/server.cpp: Send terminate instruction to metaserver on
	  server shutdown.

2001-03-15  Al Riddoch  <ajr@ecs.soton.ac.uk>

	* server/server.cpp: Increased time between pings to metaserver
	  to 5 minutes instead of 5 seconds.

	* common/persistance.*: Implemented de-serialisation of database
	  objects, and added the necessary code for pulling accounts out
	  of the database.

	* common/sstream.*: Added an implementation of stringstream which
	  is the preferred ANSI form of strstream, but is missing from
	  the GNU std C++ library.

	* configure.in: Added check for system sstream.h, which falls
	  back to using version included.

	* server/Connection.cpp: Check for account in database when
	  user tries to create new account.

	* tools/cypasswd.cpp: Use stringstream instead of strstream.

2001-03-15  Al Riddoch  <ajr@ecs.soton.ac.uk>

	* common/persistance.*: Added restricted mode set by config file,
	  which prevents users from being able to create accounts.

	* server/ServerRouting.cpp: Added restricted flag to the
	  server Object passed to client as result of a Get operation, so
	  the client can report it to the user.

	* tools/cypasswd.cpp: Added tool to administrate password database
	  table.

	* server/server.*: Added exit flag to ensure that of exit is requested
	  database is shutdown properlly.

	* server/WorldRouter.cpp: Maintenance shutdown is now done cleanly.

	* server/Connection.cpp: Added code to handle accounts using the
	  persistance system. Accounts would now be handled by the
	  database if the persistance code was complete.

	* common/persistance.*: More work on database code.

2001-03-14  Al Riddoch  <ajr@ecs.soton.ac.uk>

	* common/persistance.*: More progress on database persistance code.

2001-03-14  Al Riddoch  <ajr@ecs.soton.ac.uk>

	* *: Removed use of "using namespace ..." throughout.

	* modules/Location.h: Fixed error in inRange() and finally got rid
	  of the Compiler warning.

	* rulesets/Food.cpp: Fleshed out the cooking code, including how
	  food burns when it is overcooked.

	* rulesets/Stackable.cpp: Implemented divide.

	* common/persistance.*: Added the beginnings of a database backend
	  using the Berkeley db library.

	* server/Account.cpp: Modified addObject, because the attrivutes
	  added by BaseEntity::addObject are not important to accounts.

2001-03-09  Al Riddoch  <ajr@ecs.soton.ac.uk>

	* rulesets/EntityFactory.cpp: Removed ThingShape.h
	  which was unused, and thus removed dependancy on SOLID.

2001-03-09  Al Riddoch  <ajr@ecs.soton.ac.uk>

	* rulesets/Stackable.cpp: Fixed Stackable code so it now compiles.

2001-03-05  Al Riddoch  <ajr@ecs.soton.ac.uk>

	* Added Fire operation handling to Thing class, so that any entity
	  with a burn_speed attribute will burn.

	* Added Food C++ base class, which implements cooking.

	* Altered the semantics of the Eat/Fire/Nourish operations so
	  multiple arguments are no longer required. from is used to
	  determine the other entity involved.

	* Added the beginnings of an astronomy system, but not yet used
	  anywhere.

	* Added appearance handling to BaseMind and Memory.

	* Added sequence no to all entities, which is incremented each time
	  a move or set operation is received. sequence no "seq" is included
	  in args of Appearance operations.

	* Moved functionality from Animal python base class into Character
	  C++ base class. This much improves the performance of modelling
	  animals, and means that player characters, and NPCs get hungry and
	  need to eat. Reduced the speed at which animals consume energy
	  so they don't starve quite as quickly.

	* Added collision prediction functions that handle both entities
	  having velocity.

	* Added combine functionality to Stackable. Divide comes next.

2001-03-01  Al Riddoch  <ajr@ecs.soton.ac.uk>

	* rulesets/Py_Location.cpp: Added bbox and bmedian attributes of
	  location object to python wrappers.

	* rulesets/Character.cpp: Added initialisation of bounding box
	  median for characters.

	* modules/DateTime.*: Added configurability to date so that
	  each period of time has definable number of divisions. Default
	  is as per real world calendar restricted to 30 day months.

2001-02-27  Al Riddoch  <ajr@ecs.soton.ac.uk>

	* server/CommServer.h, server/server.cpp: Added metaserver code
	  to network classes.

	* server/CommServer.h, server/WorldRouter.h, server/ServerRouting.cpp:
	  Added fields to server entity for number of players and uptime
	  in seconds.

	* Started implementation of WorldTime class for processing of calendric
	  time.

2001-02-26  Al Riddoch  <ajr@ecs.soton.ac.uk>

	* Re-wrote the way creating various types of in-game objects is
	  handled to allow for easier adding of more classes.

2001-02-25  Al Riddoch  <ajr@ecs.soton.ac.uk>

	* Changed oplist to use std::vector. Recoded and re-optimised use
	  of oplist to take advantage of vector's best performance.

	* Modified OP_SWITCH macros to improve speed, and made it inlinable.

	* Cleaned up python interface code to improve compile and link time.

	* Moved custom operation definitions in one header file per class
	  to improve modularity and compile time.

	* Modified boundingbox handling so it now uses size and median.

	* Added collision check and inbox member function to Vector3D class.

	* Added collision prediction and checking to Location and Vector3D
	  classes.

	* Added collision prediction into MovementInfo class.

	* Modified Thing::operator[] so that static attributes can be handled
	  and added Thing::set() which must be used to modify attributes.

	* Added collision resolution so characters can no longer walk through
	  each other.

	* Moved weight attribute to being static attribute of Thing, so it
	  can be much more easily handled in movement code.

2001-02-19  Al Riddoch  <ajr@ecs.soton.ac.uk>

	* Added handling of Get operation from client before login, to
	  determine game type, status and other info.

2001-02-18  Al Riddoch  <ajr@ecs.soton.ac.uk>

	* Commiting tweak to guards patrol route which was included in
	  Acorn 0.3.

2001-02-17  Al Riddoch  <ajr@ecs.soton.ac.uk>

	* Implemented beginnings of ranges code:

	* modules/Location.h: Added inRange() method which can be used
	  to check whether location, including bounding box, is within
	  given range of a given location. Changed parent member
	  variable to ref to fit with Atlas spec. Changed all code
	  related to using the term ref instead of parent so
	  that there is no confusion between ref for coordinates
	  and parent in the Atlas hierarchy.

	* rulesets/Thing.cpp: Added code to move operation to check
	  what entities come into and out of range when entity moves.
	  Appearance and Disappearance operations are sent to the
	  moving entity with a list of the relevant entities as their
	  argument.

	* server/WorldRouter.h/cpp: Added overloaded Look operation
	  handler which applies range constraints to the contains
	  attribute before returning.

	* common/BaseEntity.h, rulesets/Thing.h, rulesets/Character.h:
	  Added handling of Appearance and Disappearance operations.

	* server/WorldRouter.cpp: Added primitive check to broadcast
	  operations to avoid delivering broadcast operation to
	  entities out of range.

	* Removed world.get_object() use from server python code, as
	  its use is not required.

	* server/WorldRouter.h: Implemented fetching of floating point time
	  from the OS so movement is much smoother.

2001-02-07  Al Riddoch  <ajr@ecs.soton.ac.uk>

	* watchdog/*: Watchdog and control program now work just fine,
	  though it is not always easy to tell whether the acorn script
	  is working or not.

2001-02-05  Al Riddoch  <ajr@ecs.soton.ac.uk>

	* watchdog/*: Fleshed out watchdog functionality, which is now working
	  and in long term testing. Added control script which handles sending
	  signals to the daemon in a more friendly way.

2001-02-05  Al Riddoch  <ajr@ecs.soton.ac.uk>

	* Added watchdog daemon which handles maintaining a running server
	  automatically. Work in progress.

2001-02-03  Al Riddoch  <ajr@ecs.soton.ac.uk>

	* all files: Re-worked the way debugging is handled to that it no
	  longer gives warnings.

2001-01-26  Al Riddoch  <ajr@ecs.soton.ac.uk>

	* all file: Added copyright statement

2001-01-25  Al Riddoch  <ajr@ecs.soton.ac.uk>

	* rulesets/Character.cpp: Removed debuggin output.

	* client/define_world.py: Modified entity positions for use with new
	  agrilan.map

2001-01-24  Al Riddoch  <ajr@ecs.soton.ac.uk>

	* server/Makefile.am: Added libstdc++ to static libraries list.

2001-01-24  Al Riddoch  <ajr@ecs.soton.ac.uk>

	* Added THANKS file.

	* Added rules to top level Makefile to install some docs.

2001-01-24  Al Riddoch  <ajr@ecs.soton.ac.uk>

	* Throughout entire code base:
	  Removed all obsolete code and commented out code relating to porting
	  from python. Removed interim data types bad_type and None. Added
	  const throughout where apropriate. Change various flags to bool
	  type. Removed unused members.

	* Added TODO list.

2001-01-23  Al Riddoch  <ajr@ecs.soton.ac.uk>

	* rulesets/Thing.cpp: Removed default description.

2001-01-23  Al Riddoch  <ajr@ecs.soton.ac.uk>

	* configure.in: Re-ordered lib checks so that python gets libdl
	  and pthread.

2001-01-23  Al Riddoch  <ajr@ecs.soton.ac.uk>

	* rulesets/Character.cpp: Set character mode to "touching" when a
	  touch operation is created by the mind.

2001-01-23  Al Riddoch  <ajr@ecs.soton.ac.uk>

	* Modified build system so a static binary can be built.

	* server/WorldRouter.cpp: Modified some behavoir on critical errors.
	  Server no longer aborts on criticial errors.

2001-01-20  Al Riddoch  <ajr@ecs.soton.ac.uk>

	* server/Character.cpp: Modified mind2body so that to is not set on
	  look operations from mind.

2001-01-20  Al Riddoch  <ajr@ecs.soton.ac.uk>

	* server/server.cpp: Modified argument processing so that installation
	  directory can be set as a command line argument, and then stored
	  persistantly in users config file.

2001-01-18  Al Riddoch  <ajr@ecs.soton.ac.uk>

	* Change default acorn script to be text, and made the alternative
	  acorn graphic.

	* Fixed addition of client scripts to distribution.

2001-01-14  Al Riddoch  <ajr@ecs.soton.ac.uk>

	* Added client python code to RPM spec.

2001-01-13  Al Riddoch  <ajr@ecs.soton.ac.uk>

	* Copied client code across from cyphesis, and created infrastructure
	  so it can be cleanly installed and run with the rest of cyphesis.

2001-01-06  Al Riddoch  <ajr@ecs.soton.ac.uk>

	* Added code so that error operations are reported on standard error.

	* Added re-connection of client connection object to character when
	  a player logs in and wants to use the same character again.

2001-01-04  Al Riddoch  <ajr@ecs.soton.ac.uk>

	* Fixed pig behavoir bug so location coordinates are now not added
	  to object if they have not been set.

	* Added code to example client so it now reads characters list 
	  when it logs in.

	* Removed support for obsolete old-atlas locations.

	* Changed behavoir on unexpected error from client socket, so
	  it no longer causes an abort.

2001-01-02  Al Riddoch  <ajr@ecs.soton.ac.uk>

	* Fixed pig mind so it is now better able to detect "Sowee"

	* Removed map from Thing, and put it into basmind. Re-wrote
	  script_Operation for thing so it now looks things up in world
	  dictionary rather than in local map. This removes a memory leak.

2000-12-27  Al Riddoch  <ajr@ecs.soton.ac.uk>

	* Fixed inheritance bug in BaseMind::operation()

	* Tweaked the way Look operations are handled when sent from mind, so
	  an argument is not required if to is set.

	* Made some performance enhancements.

2000-12-26  Al Riddoch  <ajr@ecs.soton.ac.uk>

	* Implemented nourish operation.

2000-12-25  Al Riddoch  <ajr@ecs.soton.ac.uk>

	* Modifed move_me() goal so it sets face direction.

	* Fixed memory leak in MemMap.

	* Implemented fully deleting of entities.

2000-12-23  Al Riddoch  <ajr@ecs.soton.ac.uk>

	* Cleaned up and tweaked python scripts so eating acorns now works.

	* Implemented hooks in MemMap for python scripts.

2000-12-17  Al Riddoch  <ajr@ecs.soton.ac.uk>

	* Cleaned up auto-* stuff, and created spec file for RPMs.

2000-12-16  Al Riddoch  <ajr@ecs.soton.ac.uk>

	* Fixed error in Thing::operator[] which meant attributes could not
	  be accessed, and certain move operations caused an abort.

	* Removed attributes from python object which don't have attributes.

	* Added Py*_Check() macros, and used them for easier code reading.

	* Added snow attribute to weather.

	* Commented out code which makes server exit(0) after a certain time.

2000-12-16  Al Riddoch  <ajr@ecs.soton.ac.uk>

	* Removed unecessary type checks

2000-12-16  Al Riddoch  <ajr@ecs.soton.ac.uk>

	* Modifed initialisation of Vector3D from python to be less error
	  prone, and more complete.

2000-12-16  Al Riddoch  <ajr@ecs.soton.ac.uk>

	* Another bit of code to prevent code from aborting if weight is
	  not a float.

2000-12-15  Al Riddoch  <ajr@ecs.soton.ac.uk>

	* Added in exception handler to catch if weight is not a float.

	* Tweaked SkeletonMind so it now works.

2000-12-14  Al Riddoch  <ajr@ecs.soton.ac.uk>

	* Modifed python interface Operation() function so that it accepts
	  strings for to and from as well as entities.

	* Adapt python Operation() function so operations can be given as
	  arguments.

	* Add Eat, Chop, Cut and Fire operations into the main operation
	  handling functions.

	* Added code so that intelligent entities can use python mind classes
	  other than NPCMind, and added config section for specifying which.

	* Tweaked python mind code for Pig, Wolf and Skeleton so they work.

2000-12-13  Al Riddoch  <ajr@ecs.soton.ac.uk>

	* Set up rulesets processing so that everything is handled dynamically
	  from config files. Global ruleset should indicate top level ruleset
	  which can depend on a list of other rulesets.

	* Sorted out installation directories. Cyphesis will now need to be
	  installed before it can be run.

	* Cleaned up a load more python scripts for more Acorn stuff.

	* Added getting x y and z from Vector3D.

	* Made acorn the default ruleset.
	
2000-12-12  Al Riddoch  <ajr@ecs.soton.ac.uk>

	* Started work on auto* files to make cyphesis install correctly.

2000-12-12  Al Riddoch  <ajr@ecs.soton.ac.uk>

	* Massive code cleaning efforts, removing dead code, trimming reviewing
	  and shifting code around to optimise it.

	* Heavy use of inlining to improve code performance.

	* Added global exception handler to catch exceptions while processing
	  operations.

2000-12-11  Al Riddoch  <ajr@ecs.soton.ac.uk>

	* Removed lots of extraneous debugging output, and turned the rest
	  off using debug flags.

	* Added halt_time, which is number of seconds server should run before
	  it exits.

	* Cleaned a bunch if the remaining memory leaks.

	* Cleaned up the way time is handled.

	* More tweaks to Python code and API to get Acorn working.

	* Inlined some methods into the class definitions, for performance.

	* Updated movement code to sort out setting mode properlly, and
	  deal with stuttering NPC movement.

2000-12-08  Al Riddoch  <ajr@ecs.soton.ac.uk>

	* Major attack on the more fiddly memory leaks. The only noticable
	  leak now is copied Location objects in the python interface code.

	* Added hook into the time code so the server can be set to exit
	  after a given number of seconds. This is required for LeakTracer
	  to generate its report.

2000-12-07  Al Riddoch  <ajr@ecs.soton.ac.uk>

	* Fixed so that we are no longer sending broadcast look ops, which
	  clag the server up and are not correct behavoir.

	* Minor fixes/python tweaks.

	* Slight change to ordering of ops in the queue, so more recently
	  created ops with the same time stamp come of the queue after
	  older ops.

	* Implemented contains attribute so newly created objects are added
	  to their parents contains list, and when objects are move, they are
	  transfered from old parents to new parents contains list.

2000-12-07  Al Riddoch  <ajr@ecs.soton.ac.uk>

	* Added handling for removing connections.

	* Removed some unused code.

	* Tweaked some python scripts so they import correctly.

	* Added in_game flag to BaseEntity so it is possible to tell
	  if an object is in game.

	* Increased the number of operations handled by Message()

	* Added handling for initialisation of location.parent using me
	  in mind code.

	* Added is_object_delete() functionality to python interface to world
	  object.

	* Added handling for converting Tuple into Message::Object, and then
	  ensured that non-basic python types don't get stored as attributes
	  of a Message::Object.

2000-12-06  Al Riddoch  <ajr@ecs.soton.ac.uk>

	* Fixes to worlds object list so it now contains world.

	* More python code tweaks to work with modifications to interface.

	* Modified code which gets Thing attributes from Message::Object
	  so it can use any object dictionary to look up parent object.

	* Fixed handling of Thing's static type attribute.

	* Modified creation of operations from python to eliminate
	  some strange segfaults.

	* Re-wrote and fixed Entity creation from python.

	* Implemented dictlist.remove_value for removing things from inventory.

	* Implemented Vector3D arithmetic and methods from python.

	* Implemented as_entity() and get_xyz() methods for Thing from
	  python.

	* Commented out deletion of operations from python OperationObject
	  dealloc() function as it was causing segfaults. There is a problem
	  somewhere with ownership not being cleared, but I can't find it.

	* Implemented conversion of Python Operation and Oplist objects
	  to Message::Object.

	* Fixed MemMap so that attributes of Things are accuratly updated.

	* Fixed it so that look ops from mind are broadcast rather than sent
	  to world. This may have to be reverted.

	* Tweaked autoconf to make it cleaner and work better. Still needs
	  alot of work.

2000-12-05  Al Riddoch  <ajr@ecs.soton.ac.uk>

	* Added new common namespace to prevent collision with math function
	  log.

	* Added in lots of deletes to sort memory leaks.

	* More python tweaks.

	* Implemented status attributes of thing.

	* Re-wrote some code which needlessly creates objects in the
	  free store.

2000-12-04  Al Riddoch  <ajr@ecs.soton.ac.uk>

	* Started working on sorting out memory leaks.

	* Implemented python function to deal with not being able to check
	  type of python objects implemented in C.

	* Added method to thing for extracting location data from a
	  Message::Object

	* More work on python references to improve leakage.

	* Added flag so that python Operation object can own
	  the operation they point to, and thus delete it in dealloc().

	* Implemented find_by_location() and find_by_type() as required in
	  MemMap, and corresponding python interface.

	* Put in temporary work around to deal with the fact that a mind
	  does not know its name. Currently the mind is not able to
	  discover any of its bodies attributes, and I am not sure how
	  to solve this.

	* Fixed Location and Vector3D so they use operator bool() to detect
	  whether they are set.

	* Fixed bugs in getting parent from Location in python which caused
	  segfaults.

	* Imported all the basic ruleset entity python scripts.

2000-12-03  Al Riddoch  <ajr@ecs.soton.ac.uk>

	* Corrected broadcasting of non-perception operations to
	  non-perceptive entities.

	* Sorted out removing spaces from id strings.

	* Implemented Entity arguments to Operaiton creation in python.

2000-12-03  Al Riddoch  <ajr@ecs.soton.ac.uk>

	* Debugged set_kw() and confirmed that it does work.

	* Added python API support for self.world.

2000-12-03  Al Riddoch  <ajr@ecs.soton.ac.uk>

	* Added support for varconf config files.

	* Used config file to list enitity types and their python class files.

	* Cleaned up reference counting in Python API related C++ code.
	  References should all now be handled correctly.

	* Added support for adding None to Operation and Oplist.

2000-11-30  Al Riddoch  <ajr@ecs.soton.ac.uk>

	* Added dictfunc functionality to Python interface.

	* Added creation of Entities for use in Operation arguments.

	* Added initialisation of Vector3D through constructor
	  arguments in python.

	* Added append() method to python interface for Oplist.

	* Added support for coercion of operation into addable form.

2000-11-30  Al Riddoch  <ajr@ecs.soton.ac.uk>

	* Added more required functionality to base python Thing class
	  so that operation manipulations can now work.

	* Implemented getting of object name to python/C API, and added
	  methods for differentiating between op and object.

	* Implemented on-the-fly de-coding of operations, from operation
	  arguuments in python/C API. This will be obsolete once Atlas-C++
	  does full decode later.

	* Implemented get and setattr for Message Object from
	  python. Attributes are stored both in Object, and in supplementary
	  python dictionary for non Atlas compatable attributes.

	* Implemented copy() method for Python/C Location class.

2000-11-29  Al Riddoch  <ajr@ecs.soton.ac.uk>

	* Added in debug function for python code.

	* Fixed coersion of non-oplist types for addition.

	* Implemented getting attributes from Message::Object maps
	  from python.

2000-11-29  Al Riddoch  <ajr@ecs.soton.ac.uk>

	* Added support for decoding Sound operations in BaseMind.

	* Added Talk operation throughout operation handling code.

	* Added basic WorldTime class together with python wrapper.
	  Can fill in functionality as required.

	* Put debugging back in cos I still need it.

2000-11-26  Al Riddoch  <ajr@ecs.soton.ac.uk>

	* Added in Python interface code to deal with manipulation of operation
	  time.

	* Made basic_tick a float, because it should be.

	* Imported all the rulesets python code from python cyphesis.

2000-11-26  Al Riddoch  <ajr@ecs.soton.ac.uk>

	* Fixed and changes to code so that operations created in python
	  mind code are delivered as required.

2000-11-24  Al Riddoch  <ajr@ecs.soton.ac.uk>

	* Disabled some of the excessive debugging.

	* Implemented getting and setting of to and from in operations
	  using map to lookup what the mind knows about the entities
	  in question. This involved adding an extra field to the
	  RootOperationObject structure to store to and from entities.

	* Sorted out base_init() python member so __init__() of all
	  classes in inheritance tree are called.

	* Started work on set_kw() replacement.

	* Added python module finding mechanism which is required to deal
	  with rulesets correctly. I am not convinced this works.

2000-11-23  Al Riddoch  <ajr@ecs.soton.ac.uk>

	* Added oplist python interface, and implemented returning of
	  operations from python code.

2000-11-22  Al Riddoch  <ajr@ecs.soton.ac.uk>

	* Moved character mode calculation into MovementInfo class.

	* Added new MovementInfo method which creates a movement op to
	  change the rotation of a character when no other update is needed.

2000-11-22  Al Riddoch  <ajr@ecs.soton.ac.uk>

	* Filled out Location python interface so it is now fully functional.

	* Inlined Vector3D class for performance.

2000-11-21  Al Riddoch  <ajr@ecs.soton.ac.uk>

	* Bug fix that meant that updates to MemMap object caused segfault.

2000-11-21  Al Riddoch  <ajr@ecs.soton.ac.uk>

	* Filled out the python common.const module with all its values.

	* Added code required to create an operation from with python.

	* Modified the Thing python interface so that python objects
	  that Atlas doesn't want to know about are stored in a normal
	  attributes list.

2000-11-20  Al Riddoch  <ajr@ecs.soton.ac.uk>

	* Added some more python interface classes. There is now enough code
	  here to start importing real mind code from cyphesis-py.

2000-11-19  Al Riddoch  <ajr@ecs.soton.ac.uk>

	* Two small bug fixes. One stops a crash when the client tries
	  to move an object which does not exist, the other removes an
	  unnecessary pointer check which stopped the admin client from
	  working.

2000-11-19  Al Riddoch  <ajr@ecs.soton.ac.uk>

	* Filled in BaseMind functionality so it now keeps memory map up		  to date. Added necessary features to Python/C++ interface
	  for sight operations to be passed onto python code after processing
	  in C++. Added new type of op switch to deal with operations
	  in the argument of a sight/sound operation.

	* Added features to Opeation python interface for args to be
	  accessed as if operation is a sequence object.

	* Implemented python API for C++ memory map class.

	* Added utility function which uses code borrowed from Atlas-C++
	  to convert a Message::Object into something from the Objects
	  code.

2000-11-18  Al Riddoch  <ajr@ecs.soton.ac.uk>

	* Moved some of BaseMind functionality in a python class and
	  added the necessary interface code.

	* Initial port of MemMap class from python to C++, together with
	  python interface. Hopefully maintenance of MemMap can be kept
	  in C++ for speed if possible.

2000-11-16  Al Riddoch  <ajr@ecs.soton.ac.uk>

	* Sorted out error handling from python code, and no-longer treat
	  no method as an error.

	* Got python interface code to the point that python classes can now
	  access the C++ attributes of a Thing.

	* Split the python interface code into separate files depending
	  on the type of C++ class the code relates to.

2000-11-16  Al Riddoch  <ajr@ecs.soton.ac.uk>

	* Added code for standard Get/Set methods for operations.
	  Eventually this functionality will be moved into getattr
	  and setattr methods.

	* Added code for a Thing object which wrappers a C++ Thing * pointer.

2000-11-15  Al Riddoch  <ajr@ecs.soton.ac.uk>

	* Cleaned up problems with mode in move operations, and dealt
	  with stopping when velocity is set to zero.

2000-11-15  Al Riddoch  <ajr@ecs.soton.ac.uk>

	* Fixed silly typo in movement code which meant that velocity was
	  not being used to calculate direction when only velocity is
	  specified.

2000-11-14  Al Riddoch  <ajr@ecs.soton.ac.uk>

	* Added more Python/C API code. Basic framework now exists for
	  creating and manipulating Operations in the python code.

2000-11-10  Al Riddoch  <ajr@ecs.soton.ac.uk>

	* Fixed setting location of newly created objects

	* Fixed setting weight as float on default Thing.

	* Added more support for mode and face in movement code.

	* Cleaned up the debugging output code.

	* Fixed looking, and added support for contains attribute

2000-11-10  Al Riddoch  <ajr@ecs.soton.ac.uk>

	* Added more refno capabilities

	* Fixed some operation instantiation bugs

	* Added full support for creator entity. Admin client can now populate
	  the world with items and NPCs.

2000-11-09  Al Riddoch  <ajr@ecs.soton.ac.uk>

	* Removed two conflicting "WorldRouter * world" members from
	  class hierarchy.

	* Added setting of refno to operations, so client can tell
	  what they apply to.

	* Sorted out initialisation of python path.

	* Added loading of admin account, allowing admin client to communicate.

	* Made sure all attributes of created objects are set, so that
	  character gender works.

	* Added face attribute to Thing, to indicate what direction it faces!

	* Modified error operation so it complies with traditional format

2000-11-08  Al Riddoch  <ajr@ecs.soton.ac.uk>

	* Added enough python interface to load a simple module, get the
	  class from it, instantiate that class, and call operation methods
	  from it. Still to be implented is the Atlas-C++ API for embedded
	  python.

2000-11-07  Al Riddoch  <ajr@ecs.soton.ac.uk>

	* Fixed movement code so that id of object to be moved is correctly
	  present. uclient now sees movement. Woohoo!

2000-11-07  Al Riddoch  <ajr@ecs.soton.ac.uk>

	* More movement fixed. uclient movement now works within the server,
	  but uclient does not like the responses it gets.

	* Fixed a bug which caused a segfault when movement stops.

2000-11-05  Al Riddoch  <ajr@ecs.soton.ac.uk>

	* More movement fixes, including lots of clearer debugging output.
	  Still does not seem to correctly handle moves which don't 
	  specify direction.

2000-11-04  Al Riddoch  <ajr@ecs.soton.ac.uk>

	* More movement fixes. I now get almost expected behavoir

	* Switched over to new Atlas location spec now that this is supported
	  by uclient.

2000-11-04  Al Riddoch  <ajr@ecs.soton.ac.uk>

	* Improved debugging output in movement code, and fixed some critical
	  bugs which meant that movement was not working correctly.

2000-11-02  Al Riddoch  <ajr@ecs.soton.ac.uk>

	* Modified legacy location code so it is now activated by a single
	  #define

2000-11-02  Al Riddoch  <ajr@ecs.soton.ac.uk>

	* Added temporary support for old Atlas style location object
	  in entity to move operations. This allows uclient to work for
	  now until it moves over to the latest Atlas spec.

2000-11-02  Al Riddoch  <ajr@ecs.soton.ac.uk>

	* Fixed some attributes of in-game object

	* Added temporary support for old style Atlas location so we still
	  work with uclient.

2000-11-02  Al Riddoch  <ajr@ecs.soton.ac.uk>

	* Fixed it so that server does not exit if client negotiation fails.

	* Cleaned up detection of disconnected client

	* Re-wrote thing factory so it is now a static object instance rather
	  that a static method, and added the beginnings of support for
	  python "Thing" classes.

2000-10-31  Al Riddoch  <ajr@ecs.soton.ac.uk>

	* Modified stream code to get rid of seeking-on socket problem

2000-10-24  Al Riddoch  <ajr@ecs.soton.ac.uk>

	* Added handling of client disconnection

2000-10-24  Al Riddoch  <ajr@ecs.soton.ac.uk>

	* Fixed movement code which now works.

	* Fixed set operation, and added attributes map to Thing.

	* Started adding Python interface code.

        * Starting changelog from initial attempt to port cyphesis into C++.
