2002-11-04 Al Riddoch <alriddoch@zepler.org>
  * configure.in: Clean up CXXFLAGS vs CPPFLAGS.

2002-11-02 Al Riddoch <alriddoch@zepler.org>
  * player/player.cc, media/sprite_factory.cc: Use mass instead of weight,
    as this is what the server now sends.
  * sprites.xml: Add birch sprite.

2002-10-31 Al Riddoch <alriddoch@zepler.org>
  * dialogs/editscreen.cc: Do not set a default character name.
  * media/media_index.cc: Do not complain if the media index is missing.
  * modules/appmod.cpp: Show a sensible message to confirm quit.

2002-10-26 Al Riddoch <alriddoch@zepler.org>
  * uclient/uclient.cc: Fix bug in directory check.

2002-10-26 Al Riddoch <alriddoch@zepler.org>
  * uclient/uclient.cc: Fix the way installation directory is verified to
    make sure the user is not asked unless absolutely necessary.

2002-10-18 Al Riddoch <alriddoch@zepler.org>
  * Fix fstream.h to fstream.
  * Fix up the way the "local state directory" and the "data directory" are set in
    the code so it is less likely to break.
  * media/sprite_cache.cc: Use the correct local state directory for the sprite
    cache index.
  * Get rid of media index generation in installation rule.
  * Fix up the rpm spec, and add an rpm spec for media packages.

2002-10-17 Al Riddoch <alriddoch@zepler.org>
  * media/content_request.cc, media/sprite_factory.cc: Tweaks to fix debug
    build.

2002-10-16 Al Riddoch <alriddoch@zepler.org>, Malcolm Walker, <malcolm@worldforge.org>
  * terrain/terrain.cc, media/sprite_factory.cc, media/content_request.cc:
    Make sure debugging output only happens if its enabled.
  * Makefile.am, uedit/Makefile.am: include uedit in distro but
    do not build by default

2002-10-14 Ron Steinke <rsteinke@w-link.net>
  * resources.ini, scripts/minipanel.lua: Added
    references to Munin's male builder stills

2002-10-08 Ron Steinke <rsteinke@w-link.net>
  * configure.in, uclient/Makefile.am: Added
    --with-ghttp-prefix option

2002-10-04 Ron Steinke <rsteinke@w-link.net>
  * modules/inventory_panel.cc: Spilt top and bottom space
    above buttons evenly.

2002-09-27 Ron Steinke <rsteinke@w-link.net>
  * resources.ini: added separate "empty" images for the
    health and mana indicators

2002-09-24 Al Riddoch <alriddoch@zepler.org>
  * media/sprite_factory.cc, uclient/uclient.cc: Get the base URL for media requests
    from sprites.xml rather than the users local config.

2002-09-18 Ron Steinke <rsteinke@w-link.net>
  * configure.in, dii/Makefile.am, loader/Makefile.am,
    uclient/Makefile.am, uedit/Makefile.am:
    removed unused python script stuff from
    the build

2002-09-10 Al Riddoch <alriddoch@zepler.org>
  * toolbox/isodefs.h: Add utility function to convert world distances
    into isometric pixel distances.
  * terrain/terrain.h, terrain/terrain.cc, renderer/renderer.h,
    renderer/renderer.cc: Track the height of the character in the viewport,
    and allow for that height when rendering terrain. so the full terrain
    is still rendered at high altitude.

2002-09-05 Ron Steinke <rsteinke@w-link.net>
  * Removed a reference to a seperator widget which has no media,
    moved the health meter over to compensate

2002-09-04 Al Riddoch <alriddoch@zepler.org>
  * player/player.cc: Fix touch op to have the correct argument.

2002-08-23 Al Riddoch <alriddoch@zepler.org>
  * modules/viewport.cc: Fix handling of return values which caused an
    exception if viewport was not available.
  * terrain/terrain.cc: Disable media index for tile lookups. The media
    index is now not used anywhere.

2002-08-23 Al Riddoch <alriddoch@zepler.org>
  * loader/terrain_module.cc: Clear up handling of badly processed args
    from script.
  * scripts/Init.lua: Don't load the maps at startup, as we don't yet
    know what game we are going to play.
  * player/player.cc, player/player.h: Add function to query server object
    of game server, and handle the response by loading the required maps.
  * scripts/mason.lua, scripts/werewolf.lua: Added map loading scripts for
    mason and werewolf.

2002-08-22 Al Riddoch <alriddoch@zepler.org>
  * Add the moraf atlas entity map.

2002-08-18 Al Riddoch <alriddoch@zepler.org>
  * player/player.cc: Ensure login and account creation use username, rather
    than id.

2002-08-18 Al Riddoch <alriddoch@zepler.org>
  * media/sprite.h, media/sprite.cc: Add incomplete flag, used to
    indicate the sprite has frames missing, so it should not be saved
    to raw file.
  * media/sprite_cache.cc, media/sprite_cache.h: Add function to reload
    an existing sprite, so that this can be done when missing files have been
    downloaded.
  * media/sprite_factory.cc: Store set of missing frames, register
    them with the media server for download, and mark the sprite as
    incomplete. Do not save sprite on destruction to raw file if it is
    incomplete
  * media/media_server.cc, media/media_server.h: Add functionality to
    handle a set of filenames for retrieval, and associate them with
    a sprite id, so when the complete set have been retrieved, the
    cache can be told to reload the sprite by its id.

2002-08-17 Al Riddoch <alriddoch@zepler.org>
  * world/heightmap.h, loader/terrain_module.cc: Store height values
    internally as 16bit ints, to give more range than chars.
  * scripts/Init.lua: Load the new mason maps.

2002-08-15 Al Riddoch <alriddoch@zepler.org>
  * terrain/terrain.cc: Add support for 8bit greyscale heightmaps, and
    clarify heightmap loading error messages.

2002-08-15 Al Riddoch <alriddoch@zepler.org>
  * media/sprite_factory.h, media/sprite_factory.cc: Store the cache
    directory prefix. Check for files in the media repository, and if
    they are missing, try and load from the cache, or download from the
    content server.
  * media/media_server.h: Make content queue functions public.
  * media/content_request.h: Inline some small functions for efficiency.
  * media/content_request.cc: Create a new ghttp request object for each
    file as cleaning the object does not appear to work.

2002-08-12 Al Riddoch <alriddoch@zepler.org>
  * media/sprite_factory.h, media/sprite_factory.cc: Disable media index,
    and make filenames in the sprite database relative, so they can be
    loaded from a cache or from the main media directory.

2002-08-11 Ron Steinke <rsteinke@w-link.net>
  * Changed MediaServer to create its Connection at startup,
    rather than every time it tries to connect. This fixes a
    seg fault.

2002-08-11 Ron Steinke <rsteinke@w-link.net>
  * Changed janus and varconf to use AM_PATH_* macros instead of
    AC_CHECK_LIB

2002-08-11 Al Riddoch <alriddoch@zepler.org>
  * media/media_server.h, media/media_server.cc: Added an async media
    request queue, which can be filled with filenames. The files in the
    queue are then fetched asynchronously one at a time.

  * media/content_request.h, media/content_request.cc: Made getCacheDir()
    inline.
  
2002-08-02 Ron Steinke <rsteinke@w-link.net>
  * Added code to nullify instance_ in the MediaServer destructor
  * Added #ifdef DEBUG around a variable declaration only used in
    debugging code

2002-07-22 Ron Steinke <rsteinke@w-link.net>
  * Fixed a possible seg fault in Connection::disconnect()

2002-07-22 Michael Koch <konqueror@gmx.de>
  * Makefile.am, README:
    removed uedit from normal builds and documented how to compile/install it

2002-07-21 Michael Koch <konqueror@gmx.de>
  * media/media_server.*, media/sprite_factory.cc,
    uclient/uclient.cc, uclient/res_loader.cc:
    First stuff for content server stuff
  * README: added content server configuration

2002-07-19 Malcolm Walker <malcolm@worldforge.org>
  * player/player.*: Moved code for currentCharacter() out of header and
	  into player.cc.  Also increased verbosity of debug messages.
  * scripts/minipanel.lua: Fixed bug in Janus structure that was causing
	  crashes on win32.

2002-07-18 Michael Koch <konqueror@gmx.de>
  * configure.in, uedit/Makefile.am, uclient/Makefile.am:
    Check for and link to ghttp.

2002-07-17 Michael Koch <konqueror@gmx.de>
  * media/content_request.h/cc:
    Added class for download of media data from a content serve
    and caching it.

2002-07-11 Al Riddoch <alriddoch@zepler.org>
  * media/sprite_factory.h, media/sprite_factory.cc:
    Add installSpriteDefinition() to add new sprite data from the server.
    Add request call to media server when sprite not found.
  * media/sprite_factory.cc, media/media_server.h, media/media_server.cc:
    Register sprite_factory pointer with mediaserver so new sprites can
    be installed.
  * media/media_server.cc: Add code to send request to server, and interpret
    result, installing it into the sprite factory.

2002-07-10 Al Riddoch <alriddoch@zepler.org>
  * media/sprite_factory.cc: Register data from sprites.xml in media server

  * media_server.h, media_server.cc: Class to handled requests to and
    traffic from the media server (venus).

2002-07-08 Al Riddoch <alriddoch@zepler.org>
  * Replaced use of doesContain with more efficient iterator lookup. Many
    more to be done later.

2002-07-01 Ron Steinke <rsteinke@w-link.net>
  * Got rid of hardcoded progressbar graphic in res_loader.cc by
    not init-ing it until after the xml was parsed (but still before
    resources are loaded)

2002-07-01 Al Riddoch <alriddoch@zepler.org>
  * dii/serialize.cc: Updated the atlas xml format used by serialize,
    but maintained compatability with old format.

2002-07-01 Michael Buttrey <mbuttrey#bigfoot.com>
  * sprites.xml : changed <obj></obj> to <atlas></atlas>, removed all
    comments (<!-- -->), and changed two <string name="comment"/> tags to
    <string name="comment">no comment</string> tags. This is so the
    sprites.xml can be parsed cleanly by Atlas' XML codec.

2002-06-30 Martin Pollard <circlemaster@blueyonder.co.uk>
  * configure.in : updated to new skstream header location.

2002-06-26 Martin Pollard <circlemaster@blueyonder.co.uk>
  * minipanel.lua: commented out old pegasus portraits and replaced with fixme
    art.

2002-06-26 Al Riddoch <alriddoch@zepler.org>
  * network/wf_net.cc, network/connection.cc: Switched to new skstream
    header location.

2002-06-24 Al Riddoch <alriddoch@zepler.org>
  * Removed all module related stuff from build files, so they are now much
    cleaner to read and edit.

2002-06-21 Mike Taylor <bear@code-bear.com>
  * changed resources.ini to load fonts from
    /media/ui/font/ instead of /font/

2002-06-20 Ron Steinke <rsteinke@w-link.net>
  * help.html wasn't going in with the docs, but
    the "helpdir" install wasn't working either;
    added something in the install hook to get it in

2002-06-20 Ron Steinke <rsteinke@w-link.net>
  * Undid some of the recent changes:
    + docs/help.html is already installed with the
      rest of the docs, the "helpdir" install attempts
      to install help/docs/help.html, which doesn't exist
    + Removed slist and hash_map from the new AC_CHECK_HEADERS(),
      that will fail if they're included as etc/slist and ext/hash_map,
      and we have more sophisticated checks for those elsewhere

2002-06-20 Michael Koch <konqueror@gxm.de>
  * Removed some unneeded includes

2002-06-20 Michael Koch <konqueror@gxm.de>
  * configure.in: check for all needed libstdc++ headers
  * Makefile.am: Install help.html

2002-06-18 Al Riddoch <alriddoch@zepler.org>
  * Put a load of Acorn sprites back in

2002-06-11 Ron Steinke <rsteinke@w-link.net>
  * Put the health indicator back in

2002-06-11 Ron Steinke <rsteinke@w-link.net>
  * Wrap check for MMX in #ifndef HAVE_UTA_LIGHTEN_DARKEN,
    since if we have this feature we don't use the uta
    blitter code.

2002-06-12 Al Riddoch <alriddoch@zepler.org>
  * uclient.spec.in: Add docs back into rpm spec, and tweak configure running.
  * configure.in: Fix compiler flag stuff so its easier to customise, and
    optimises by default.

2002-06-11 Ron Steinke <rsteinke@w-link.net>
  * We now use the nonblocking open() in skstream, if available

2002-06-11 Ron Steinke <rsteinke@w-link.net>
  * Some cleanups to tilestretch code, and a comment about an
    existing bug

2002-06-11 Ron Steinke <rsteinke@w-link.net>
  * Changed cases of uta::gammablit which use uta::GammaFunction
    to use uta::Surface::lighten_darken() instead

2002-06-11 Ron Steinke <rsteinke@w-link.net>
  * Got rid of health and mana indicators in display

2002-05-31 Malcolm Walker <malcolm@worldforge.org>
  * Integrate patch to gamma blitter from Ron Steinke.
    Add checks to configure.in to verify that libuta has
    the lighten_darken function call.
  * Change ground-tile sprite used in moraf.map.  Needs further 
    testing.

2002-05-28 Michael Koch <konqueror@gmx.de>
  * scripts/browser.lua, scripts/fileaccess.lua:
    made it more robust.
    
2002-05-25 Al Riddoch <alriddoch@zepler.org>
  * uclient/app.cc, toolbox/ftos.cc, toolbox/coord.h, renderer/grid.cc,
    network/wf_net.cc, network/connection.cc, modules/panel.cc,
    media/sprite.cc, media/rle.cc: ISO C++ namespace fixes.

2002-05-25 Ron Steinke <rsteinke@w-link.net>
  * Copied the checks for the __gnu_cxx prefix
    in configure.in out of alriddoch's libuta patch

2002-05-25 Ron Steinke <rsteinke@w-link.net>
  * Set up some #defines to wrap std::slist and std::hash_map,
    tried to simplify the configuration stuff needed for
    building on darwin/OSX

2002-05-24 Ron Steinke <rsteinke@w-link.net>
  * Got a preliminary mac osx define into configure.in
  * Moved all includes of <slist> and <hash_map> into the files
    toolbox/local_slist.h and toolbox/local_hash_map.h, so
    we can keep all the workarounds in one place.

2002-05-23 Ron Steinke <rsteinke@w-link.net>
  * Bugfixes and #defines for macintosh compilation,
    courtesy of magnethead and DragonM

2002-05-23 Ron Steinke <rsteinke@w-link.net>
  * Changed all classes which inherit from SigC::Object
    to do so virtually. This is recommended by the libsigc++
    documentation, so that no class inherits more than
    a single instance of SigC::Object
  * Made the World destructor set instance_ to 0
  * Fixed a bug in Environment::init()

2002-05-20 Michael Koch <konqueror@gmx.de>
  * xonfigure.in: removed -g and -O2 from CXXFLAGS

2002-05-20 Michael Koch <konqueror@gmx.de>
  * loader/loader.cc: moved all output to loader.log into
    debug macro.

2002-05-19 Ron Steinke <rsteinke@w-link.net>
  * More code refactoring
  * Bug stomping with alriddoch

2002-05-18 Michael Koch <konqueror@gmx.de>
  * configure.in,Makefile: directory loader was removed
  * dii/Makefile.am: environment variable M4 isnt defined on
    sane systems ;-)
    I think we can later add a check for m4 in configure in
    if needed.
    
2002-05-17 Ron Steinke <rsteinke@w-link.net>
  * Moved DII::Loader later in the build sequence,
    to fix link order problems with "make check".
    Test programs now build correctly, but aren't run(?).

2002-05-17 Ron Steinke <rsteinke@w-link.net>
  * Moved the module creation functions from
    the various classes into dii, since none
    of them need to be member functions. Several
    classes no longer include dii at all!

2002-05-17 Ron Steinke <rsteinke@w-link.net>
  * Changed the function wrappers from member
    functions of the appropriate class to static
    functions in the appropriate .cc file, through
    liberal use of SigC::convert(). Note that the
    file dii/method_convert.h is generated from
    dii/method_convert.h.m4, and should not be
    committed to CVS.

2002-05-16 Ron Steinke <rsteinke@w-link.net>
  * None of the classes loaded in Loader::bind_module
    are derived from DII::Module anymore. Lots of
    work remains writing adaptors for functions which
    are passed nontrivial data in DII::Object.
    There's also the question of what to do with
    DII::Module::signal.

2002-05-16 Ron Steinke <rsteinke@w-link.net>
  * More classes no longer descended from Module.
    The buttons are back in the right order now,
    there was a bug in the conversion of dialogs/dialogs.cc
    in the earlier patch.

2002-05-15 Ron Steinke <rsteinke@w-link.net>
  * Got Dialog and Gui modules mostly converted.
    The buttons on the panel got their order
    rearranged, but everything appears to work
    fine.

2002-05-15 Ron Steinke <rsteinke@w-link.net>
  * More work on the module code. Got a module (App)
    split out from the module code. Note that, despite
    the fact that appmod.h no longer includes any dii
    headers, callMethod() still works for all the
    App methods.  

2002-05-13 Ron Steinke <rsteinke@w-link.net>
  * Added some template stuff in preparation
    for having the singletons own their own instances

2002-05-13 Ron Steinke <rsteinke@w-link.net>
  * Got rid of USE_RUNTIME_LOADER option
  * init() and deinit() are now virtual methods of DII::Module,
    instead of being called through callMethod()
  * Some work on getting make check working

2002-05-13 Al Riddoch <alriddoch@zepler.org>
  * world/decoders.cc, world/decoders.h: Fix decoders so that all account
    types are recognised. With latest change to cyphesis-C++, lobby
    now works a little better.
  * player/lobby.cc: Got rid of inefficient op processing in lobby,
    and added a little more debugging.

2002-05-11 Ron Steinke <rsteinke@w-link.net>
  * More work shifting function calls through the module system
    to direct C++ function calls

2002-05-10 Ron Steinke <rsteinke@w-link.net>
  * Purged face_ member from Entity

2002-05-10 Ron Steinke <rsteinke@w-link.net>
  * Changed function back, fixed comment to match

2002-05-10 Ron Steinke <rsteinke@w-link.net>
  * Fixed the "face to iso orient" conversion function

2002-05-09 Ron Steinke <rsteinke@w-link.net>
  * Fixed a sign error in the orientation code. Hopefully, this
    will fix the annoying "face" bug

2002-05-06 Al Riddoch <alriddoch@zepler.org>
  * Added loader for .xml atlas map files

2002-05-05 Malcolm Walker <malcolm@worldforge.org>
  * Change order of checks in the MsgDispatch code
	  (and added a reference counter to aid in further
		optimization)
2002-04-22 Malcolm Walker <malcolm@worldforge.org>
  * #ifdef out RLE compression for win32 (broken)
    - will replace with SDL's RLE compression which
    should work for all targets.  Added some more media to 
    resources.ini and fixed up the help.html.

2002-4-22 Ron Steinke <rsteinke@w-link.net>
  * replace use of CPPFLAGS by CXXFLAGS in configure.in

2002-4-22 Ron Steinke <rsteinke@w-link.net>
  * fixed previous patch to handle "module lookup failure"
	  cases better

2002-4-20 Ron Steinke <rsteinke@w-link.net>
  * started work on removing dii module code, first step
	  was to purge most of the callMethod() calls in the
	  c++ codebase

2002-4-20 Ron Steinke <rsteinke@w-link.net>
  * fixed error in new face_ -> quaternion code in World::Entity

2002-04-19 Malcolm Walker <malcolm@worldforge.org>
  * dialogs/editscreen.cc: Add code to populate combo box
	  based on character types supplied by server

2002-4-19 Ron Steinke <rsteinke@w-link.net>
  * Changed Player so it passes an "orientation" to the
	  server instead of a "face", most of the work was
	  fixing the broken orientation handling in World::Entity

2002-4-19 Ron Steinke <rsteinke@w-link.net>
  * Merging some old diffs that didn't make it in before. These
	  remove some lines of "cout" debugging, a couple
	  of declarations of functions that don't exist anymore,
	  and a couple of commented out lines refering to a class
	  Karsten removed years ago

2002-04-15 Malcolm Walker <malcolm@worldforge.org>
  * Add calls to stat() on resource loading - complain loudly
	  and give exact file names.  Will remove hardcoded (e.g. 
		not-in-text-files) media pathnames soon.

2002-04-13 Malcolm Walker <malcolm@worldforge.org>
  * Changed around the hardcoded media to use new bitmaps for 
	  user interface.  Rewrote the html file for the help page.
		Made (founded?) 2 new fonts (serif/sans serif) for use in
		UClient.  Also made a new splash screen (Thanks Val!)
  * Fonts will be made available (temporarily) at 
	  http://mason.worldforge.org/resources/fonts/

2002-03-30 Malcolm Walker <malcolm@worldforge.org>
  * Added a combo box that allows user to select character type on
	  configuration screen.  Requires server-side support.
  * Created lots of new media for the UI.  Corresponding entries in
	  resources.ini and sprites.xml have been edited.
	* Added blank (isoedit) map for moraf, as well as a quickie heightmap.
	  Would like to see New, Improved map format ASAP.

2002-03-13 Dan Tomalesky <grim@xynesis.com>
    * Added README.acorn-media and modified the evil Makefile.am so that
      the readme goes into the forge directory where the media indexer
      script is so that people will read it and understand the 
      way the media is installed.

2002-03-02 Dan Tomalesky <grim@xynesis.com>
    * Updated uclient to use skstream2.  any problems let me know.

2002-02-23 Malcolm Walker
  * Tons of changes in.  I haven't been keeping track of this file.
	* configure.in : Default to build a single monolithic executable
	  for uclient.  No python scripting support.
  * Add support code for MSVC and mingw32 compilers
	* Bumped version to 0.15.0
	* Add code to handle quaternion and bounding boxes being sent
	  by cyphesis
	* Change default (hardcoded) character type to settler (was farmer)

2001-12-16 Ron Steinke
	* Got the stuff for caching collision checks put back in

2001-12-16 Ron Steinke
	* Got rid of the rest of the polymorphic shape class stuff

2001-12-16 Ron Steinke
	* purging most of the polymorphic shape classes imported
	  from the SOLID library, we only appear to actually be
	  using Box. This purge is motivated by an apparent memory
	  leak in the (apparently unused) Complex shape class

2001-12-16 Ron Steinke
	* small optimization fix in toolbox/isodefs.h

2001-12-16 Ron Steinke
	* changed M_PI from 5 digits to 21

2001-12-16 Ron Steinke
	* commented out hook to tmpnam() (very dangerous!) in lua

2001-12-06 Al Riddoch
	* configure.in: Commiting 0.14.0 version change.

2001-11-30 Karsten
	* changes in */Makefile.am to allow a static build with recent libtool
          (removed all .libs pathes and refer to Library.la instead to Library.a)

2001-09-26 Karsten
	* scripts/main_menu.lua : added Help button
	
2001-09-11 Karsten Laux
	* scripts/browser.lua : some more work on hyperlinks (not yet functional)
	* terrain/Makefile.am : changed the CFLAGS so that code
	  for pentium-class processors gets generated.
	  This "fixes" the problem of uclient binaries not running on K6 
	  systems. Prior to this fix code for pentiumpro-class 
	  processors had been generated ... 
	  which obviously does not work on pentium-class processors ;)
	* world/world.cc : fixes to correctly handle the "world_0" entity
	  (no more hangs anymore when connecting to recent cyphesis versions)
	* uclient/dispatcher.*: (this name is nonsense, btw)
	  - added command '/commands' to list all available commands
	  - made /help open the hypertext online help
	* Makefile.am: install *.html from docs to $(prefix)/uclient/help
	
2001-09-07 Karsten Laux
	* adaptions for libuta 0.3.43
	  (regarding changed DirectSurface behavior and resizeable window
	   flag - uclient does not allow its window to get resized)
	
2001-09-05 Karsten Laux
	* configure.in fix to correctly detect the install prefix with 
	  newer autoconf versions
	* world/world_adaptor_renderer.cc fix to not pass a create-event of
	  "world_0" to Renderer as it precreates this entity.
	
2001-08-12 Karsten Laux
	* scrips/browser.lua : simple html viewer (including embedded images) 
	works (no active hyperlinks yet)
	* scripts/type_editor.lua : beginnings of an editor to define bounding 
	boxes of entites
	* scripts/status_ind.lua : status indicator now functional
	
2001-08-05 Karsten Laux
	* updated requirements to libuta 0.3.42 (more fixes, widget signals) and
          Atlas-C++ 0.4.3 (we should not use the older versions)
	* scripts/fileaccess.lua : chrooted fileaccess
	
2001-07-29 Karsten Laux
	* updated requirements to libuta 0.3.41 (mouse wheel, fixed Terminal class)

2001-07-28 Karsten Laux

	Version 0.12.1
   
	* updated requirements: libuta 0.3.40 libjanus 0.4.3
	(libuta update fixes two segfault reason, libjanus update allows 
	widgets to get resized which is needed for the status indicator to
	work)
	* uclient/uclient.cc install backtrace dump only if debugging is
	enabled
	* tools/fix_pngs.sh script to fix all broken pngs (needs pngcrush)
	(see BUGS)
	* modules/panel.cc, gui.cc : removed the static indicators
	* scripts/status_ind.lua, scripts/mana_ind.lua : indicators are
	active now
	* resources.ini : added images for empty indicators
	
2001-07-27 Karsten
	* uclient/uclient.cc : added some catch(...) in order to catch all 
	 exceptions
	* modules/viewport.* : added emitting of mouse mouse events
	(I need to check if this slows down the mouse ... !)
	* renderer/renderer.*: 
	- added highlighting of the object the mouse pointer is over
	("/set renderer highlight 0" will disable this)
	- fix so that overlays (e.g. the decorative corners) do not get dimmed 
	at nighttime
	* media/sprite.*, media/rle.* : added method to test single pixels 
	in a compressed bitmap
	
2001-07-13 Karsten
	* dii/script_mod.cc : fixed Module_getOption() to correctly return string values
	* scripts/bugreport.lua : fixed call to smtp_send() ... sending emails works :)
	* renderer/renderer.* : added method to (temporary) highlight sprites
	* media/sprite.*, media/rle.* : added highlighting blitter which draws a colored
	border around a sprite while blitting it
	* world/world.cc : make use of new highlighting feature: mark the sprite of
	the one who just talks
     
2001-07-11 Karsten

	* dii/loader.cc : added missing Observer module to module list
	  (needed by script observ)
	* updated TODO
	* sprites.xml: fixed butcher to walk and changed "mage" to "watermage"
	* modules/oberserver.cc : observer clients now must register the entity ids
	to be observed
	* fixes to /observ command, it now works nicely to keep track of a pig 
	(or another [N]PC)
      
2001-07-05 Karsten
	* configure.in: bounced version to 0.12 Yeah !
	* uclient/res_loader.cc, resources.ini : fixed pathes to ui media
	
2001-07-03 Al Riddoch
	* uclient/uclient.cc
	  move setting of script path so that it works if the user
	  types the install directory in directly.
	* resources.ini
	  Fixed paths of ui media.

2001-07-02 Karsten Laux
	* resources.ini: added corner decoratives to the viewport
	* uclient/dispatcher.cc: updated online "help"
	* uclient/uclient.cc: updated credits screen
	* uploaded now (hopefully) complete ui media package:
	  http://starsend.eit.uni-kl.de/~laux/uclient-0.12rc2-ui-complete.tar.bz2
	
2001-07-01 Karsten Laux

	tagged as V0_12rc2
	
	* UI updates
	  get http://starsend.eit.uni-kl.de/~laux/uclient-0.12rc2-ui-2.tar for the grafx
	
2001-07-01 Al Riddoch
	* uclient/uclient.cc
	  set the script path according to the installdir from the users
	  config file, so uclient can now be installed in any
	  directory, irespective of the compile time prefix.
	* terrain/terrain.cc
	  Modify saving of atlas maps so the entities name is the same
	  as its type.
	* build_media_index.sh
	  Index raw files as well as pngs.

2001-07-01 Karsten Laux
	Version 0.12rc2
	* updated heightmaps
	* modules/gui.cc, uclient/resource_loader.cc, scripts/main_menu.lua
	  redesign of user interface, by Pegasus
	  Note: get the grafx from http://starsend.eit.uni-kl.de/~laux/uclient-0.12rc2-ui.tar 
	  (still some revised buttons are missing, 
	   the final versions will be uploaded and added to cvs as soon as possible)	
	* world/world.cc: Fixed initial look operation: spawning 
	  inside buildings works now
	* resources.ini: Added new UI images from Pegasus
	* environment/environment.cc, scripts/daylight.lua:
	  Fixed daylight flickering; now changing wheather 
	  will respect the current daylight.
	
2001-06-27 Karsten Laux

	tagged as V0_12pre2 
	
	* types.xml added bounding boxes to hill so NPC/PCs cannot walk through
	* modules/inventory_panel.cc more precise action descriptions
	* dii/serialize.* added method to stream DII::Object to stream
	* player/player.cc more error checking
	* world/entity.cc Entity::turn() now "snaps to grid"
	* resources.ini removed unused entries
	* player/player.cc fixed display of server error messages
	* terrain/tilestrech.c fixed clipping error
	
2001-06-25 Karsten Laux
	
	* network/msgdispatch.cc fixed compiler warning in macro
	* renderer/renderer.cc, player/player.cc, pointer.xpm new mousepointer
	  for putting items and fix to correctly place items inside containers;
	  fix so that right click moves PC to correct position 
	  (the later is still not working inside containers)
	* *.map lastest and last map update from Pegasus 
	  - this is the final version of the map files for Acorn 0.4 -   
	* changed uclient version to 0.12rc1
        * updated TODO list (still 3 important items to fix before Acorn 0.4
	  release)

2001-06-25 Al Riddoch
	* dii/dii.h
	  Removed unnecessary paste operators from macro, which were generating
	  warnings.

2001-06-24 Karsten Laux
	* renderer/renderer*, world/world.*
	  Finally implemented correct handling of Appearance/Disappearance operations.
	  UClient will kepp all informations about all entities, but an entity is only
	  displayed after an Appereance operation and until the Disapperance operation.
	
	* terrain/terrain.cc re-enabled clientside loading of entities 
	  from map files in order to reduce client-server-bandwidth needs 
	  (-> no need for updates on static objects)
	
2001-06-23 Karsten Laux
	* scripts/selectserver.lua fixed progress bar to correct show progress
	  while querying the gameservers
	* renderer/renderer.* the displaylist got updated for every changed
	  item on the screen which knocked down performance if many items
	  appeared ... now the displaylist update gets scheduled, but executed
	  only just before an actual screen refresh.
	* renderer/renderer.cc PC can now drop items inside house and 
	  fetch them again ("the mouse now works inside houses"), need to add
	  possibility to put items at specific position inside houses as well
	
2001-06-22 Karsten Laux
	* media/sprite_factory.cc 
	  replaced all non-fatal assert()s by appropriate recovery methods
	* sprites.xml fixed entry for the big round tent
	* network/connection.cc added 5 seconds timeout to negotiation
	* modules/gui.* new methods to open, update, close progressdialog
	* scripts/selectserver.lua added progress bar
	
2001-06-21 Karsten Laux
	* terrain/terrain.cc 
	  - adapted tile vs. object heuristics
	  - objects do _not_ get loaded locally anymore
	* world/world.cc fixing yesterday's fix, which resulted in 
	  reporting false height informations
	* media/rle.c fixed false call to realloc - thanks to Oliver Lehmann
	  for this hint
	* terrain/tilestrech.c FINALLY found the reason for the spontanous crashes.
	  The clipping was not correct and thus some pixels were written outside of the
	  target surface memory. Now most drawing bugs are fixed.
	* media/sprite_factory.cc closed two memory leaks
	* added new target: uedit
	  Currently uedit either loads all sprites listed in sprites.xml or it extracts
	  the objects from an Atlas map file (as used by cyphesis)
	  As it uses the SpriteCache for doing so all the appropriate raw files get created.
	  Just run "uedit --help" for usage informations.
	* terrain/terrain.cc when creating Atlas map files from isoedit files, also
	  create  tilelist files which simply lists all tiles used within the loaded mapfile
	  (-> all this should get moved to libmedia so that uedit can use it too)
	* uclient/uclient.cc check if we are running with a raw-file or
	  png-file distribution
	
2001-06-20 Al Riddoch
	* terrain/terrain.cc Use map name when outputting atlas entity xml file
	* types.xml Added loads of map entities currentl lacking bounding boxes
	* sprites.xml Added market stall, tent, appletree and apple sprites
	* Removed use of operation::GetAttr() and SetAttr() where they
	  can be replaced with attribute specific accelerated versions.
	* Tweaked static linking to work on my build machine.

2001-06-19 Karsten Laux
	* network/connection.* added method to set timeout for connections
	* player/player.cc, world/world.cc removed ignorance of "*_map" 
	  entities
	* scripts/main_menu.lua, agrilan_a4.map, agrilan_a4_hm.png made a copy of 
	  agrilan_a1.map to avoid name-clash
	* terrain/terrain.cc, renderer/renderer.cc, scripts/*.lua
	  some cleanups while trying to fix "spontanous crashing bug" caused 
	  by /browseServers if number of servers > 1
	  The bug is still not cleared !(?)
	
	* agrilan.map fixes and updates by Pegasus
	* dialogs/dialogs.cc little hack to prevent Map to get opened twice
	* world/world.cc added missing offset to getGrondlevel(double, double)
	* toolbox/ftos.cc, modules/console.h, build_media_index.sh
	  FreeBSD patches from Oliver Lehmann <o.lehmann@brainwire.de>
	* scripts/main_menu.lua preload maps at startup
	* media/rle.*, media/sprite.cc, renderer/renderer.cc
	  Semitransparent walls and ghostly objects (e.g. lych)
	* world/entity.cc hardwired "lych" and "skeleton" to be "unreal",
	  meaning the sprites will get drawn semitransparent
	
2001-06-17 Karsten Laux
	* scripts/main_menu.lua
	  fixed so that all maps get loaded correctly after login

2001-06-16 Al Riddoch
	* types.xml
	  Bounding box corrections
  
2001-06-15 Karsten Laux
	* updated agrilan_a*.map maps
	  In addition to the below listed commands, the following command
	  will (temporary) fill the existing "gap":
	  /readMapFile agrilan_a1 -125 75   

2001-06-14 Karsten Laux
	* dii/py_object.* added missing #include"config.h" 
	* terrain/terrain.*, world/world.cc
	  - changed maximum mapsize to 500x500 squaremetres 
	  - tiles do not get confused anymore when loading multiple maps
	  - finally real heightmap loading: when loading <name>.map uclient
	    looks for <name>_hm.png and uses this as the heightmap for the
	    terrain
	* main_menu.lua maps agrilan.map and agrilan_a1.map get loaded
	* added extension maps agrilan_a1.map, agrilan_a2.map and 
	  agrilan_a3.map by Pegasus; issue following commands to load these:
	  /readMapFile agrilan_a1 -125 -75
	  /readMapFile agrilan_a2 -125 -25
	  /readMapFile agrilan_a3 -125 25
	* fixed heightmaps fitting to Pegasus's Agrilan map
	
2001-06-12 Karsten Laux
	* uclient/dispatcher.cc little hack so that scripts get found in Win32
	* dii/pthnmodule.*, dii/pyobject.*, dii/loader.cc 
	  added #ifdefs to build without python support
	* network/wf_net.cc  slight adaptions for winsock32 
	  (fixed nameclash between winsock define and "DII:ERROR"
	* media/sprite.*, media/sprite_factory.cc fixes regarding broken
	  bitset<> implementation for gcc-2.95.2 in Xmingw32
	  
	  -> sucessfully build win32 executable :)   - needs testing, though -

2001-06-10 Al Riddoch
	* types.xml, sprites.xml, agrilan.map
	  Switched over to using 3 layer container sprites for buildings.
  
2001-06-10 Karsten Laux
	* dialogs/editscreen.cc another Object::MapType::operator[] fix
	* world/entity.*, world.cc
	  Support for new bounding box semantics using: "bbox" and "bmedian"
	  attributes:
	  "bbox" is half the actual bounding box
	  "bmedian" is the offset of the bounding box from the entity's position 
          Added bbox() and bboxMedian() access functions to class Entity
	* world/renderer.cc added *2.0 for bounding box, no use of Entity::bboxMedian() yet
	* resources.ini fixed libuta resource so that dialog titles are readable again
	* renderer.cc removed option renderer:gamma
	* player/player.cc, toolbox/misc.h fixed transparency for inventory and mousepointer
	  (for correct mouse pointer transparency update libuta to 0.3.39 (to be released this week))
	
2001-06-10 Al Riddoch
	* types.xml
	  Added bounding median information to entities in types.xml, so
	  bounding boxes line up with sprites.

2001-06-09 Al Riddoch
	* configure.in, config.h.in, acconfig.in
	  Added configure option which includes code to dump map entities
	  out to an atlas xml file when the map is loaded.
	* world/entity.cc
	  switched to using bbox instead of bounding_box, to work with
	  server.
	* terrain/terrain.cc
	  added in code which saves the map entities to atlas file.
 	  switched to using id_num_map format for map entities instead
	  of sprite_num so that names are more unique.
	* world/world.cc, player/player.cc
	  modified sight code to check for the new map entity ids when
	  querying the server.
	* types.xml
	  switched bounding boxes over to server format

2001-06-09 Karsten Laux
	* scripts/selectserver.lua fix minor bug which avoided login dialog to
	  show up if uclient was run for the first time 
	* scripts/Init.lua script daylight.lua gets loaded at startup
	* world/entity.cc entity of type "wall" are invisible
	* uclient/resource_loader.cc fix bad bug which caused static binary to crash,
	  strange enough that the dynamic binary did run !
	* dii/loader.cc entry for module Settings was missing
	* scripts/TestCmds.lua added names of days and month
	* uclient/Makefile.am module Settings was missing  
	
2001-06-09 Al Riddoch
	* modules/gui.cc, modules/gui.h
	  Added call required for new janus init function.

2001-06-09 Karsten Laux
	* Version 0.12pre2
	* uedit/* added beginnigs of sprite editor/compiler
	* world/world.* fix to correctly read IG time from received Ops
	* sprites.xml
	  - added new animations
	  - changed some mode names to fit with cyphesis: e.g. "touching" -> "touch"
	* scripts/minipanel.lua
	  Portrait gets choosen on basis of type and gender of the PC
	* scripts/daylight.lua 
	  Untested daylight changing scripts
	* media/*
	  Implemented RLE compression for all sprites :) 
	  (see docs/compression.txt for achieved compression rates)
	  Important: 
	  The fileformat of the raw files has changed ! Before running uclient
	  you should care to remove all existing .raw files, 
	  otherwise uclient will always re-encode the sprites !
	
2001-06-06 Karsten Laux
	* world/world.*
	  Changed code for extracting the gametime from the time stamp ...
	  not yet working correctly, for debugging call "/set global debug 32"
	* scripts/selectserver.lua
	  Added uptime entry to server browser, fixed some bugs and added 
	  error handling (e.g. a message box if the login failed)
	
2001-06-05 Al Riddoch
	* uclient/uclient.cc
	  Fixed error message to indicate the right media directory is
	  missing.

	* toolbox/Makefile.am, terrain/Makefile.am, script/lua/Makefile.am,
	  renderer/Makefile.am, media/Makefile.am, Makefile.am
	  Fixed missing files.

2001-06-05 Karsten
	* renderer/renderer.*
	  fixed interface of ScreenEntity so that it uses "const string&"
	* world/world.* added handling of game time (extracted from stamp attribute)
	* player/player.* getTime() proxy for World::getTime() which returns
	  Object with attributes: year, month, day, hour, minute, second, tick
	  (use command "/time" to test this)
	* sprites.xml added female farmer sprite
	
	----------------------------------------------------------------
	Changes up to this line are meant to form the Acorn 0.4 prelease
	----------------------------------------------------------------
	
	* Version 0.12pre1
	tagged as V0_12pre1

	* uclient/uclient.cc
	  Changed check for character animations: do not check the old 
	  (unused !) character/ dir, but look for 
	  $(prefix)/forge/media/media-2d/char-collection-pegasus/animations
	* terrain/terrain.cc
	  Load sprites per default. 
	  (can be turned off with --map:omit_sprites=yes) 
	
2001-06-01 Karsten
	* world/world.cc for an unknown entity most of the time several
	  look operations were scheduled ... this is now avoided by using
	  two set<> containers
	* renderer/renderer.cc
	  some more assert()s
	
	-- after a complete of rebuild janus, libuta and uclient 
	   the severe crash did not happen again !? --
	
2001-05-31 Karsten
	* sprites.xml 
	  Made use of revised oak images from media-2d/collection-zzorn
	* world/world_adaptor_renderer.cc
	  Changed behavior for Disappearance operation. Now this operation is
	  just ignored (the Renderer will discard the sprite data anyways if
	  it moves out of the screen)
	  Though it seems as if cyphesis sends the Disappearance op. too early:
	  usually the entity is still on the screen.
	* modules/gui.cc, modules/dialogs.cc 
	  change_menubutton now expects resouce ids instead of surface pointer
	  when setting menubutton icons. Needed to adapt dialogs.cc.
	  This allows scripts to add icons as well.
	* scripts/*
	  - new inventory dialog
	  - new panel for lower right corner
	  - first tries for a "web displayer" - not a web browser
	
2001-05-30 Karsten
	* dii/pthn_module.*
	  Python scripted modules work now :) 
	* uclient/uclient.cc 
	  Added -i, --installdir commandline option to provide the installtion
	  directory for uclient. (especially on debian system the configure
	  system fails to correctly embedd this information into the binaries)
	
2001-05-29 Karsten
	* terrain/*
	  Completed the implementation of the  _optimized_ terrain renderer.
	  Except for some tile alignment errors it works great: it
	  renders the terrain roughly three times faster than the old
	  implementation. 
	* media/media_index.cc 
	  If an image file is listed twice (or more often) in the index 
	  file prefer the files from the media-2d repository as these
	  are usual the revised/updated versions.
	* media/sprite_factory.cc
	  Fixed bug which caused uclient to crash if a sprite sequence
	  was missing a frame. Now it safely inserts an empty frame.
	
2001-05-24 Karsten
	Version 0.11.7
	* configure.in
	  Added checks for python. The tests search for Python.h in different 
	  places and guesses from where it was found the probably location 
	  and name of libpython. The user may provide the directory where to
	  look for python (default=/usr)
	* dii/pthn_module.*, dii/py_object.*
	  Implementation for python scripted modules. Copied over the 
	  C++-Python-API from cyphesis-C++. Good work, Alistair !
	  Python scripts can all other methods from other modules 
	  via the DII.callMethod() and DII.callService() calls.
	  Calling python methods from other scripts is not yet implemented.
	  - still broken !-
	* dii/loader.cc
	  Added support for python scripts. loadScript("test") will first
	  search for the LUA script "test.lua" and if this fails it will 
	  try to load "test.py".
	* script/lua_value.h, toolbox/operation.h
	  Now all exceptions risen by uclient or one of the modules are 
	  derived from the standard C++ exception class,
	  so main() can report the reason for the exception if it hasn't 
	  been caught so far.
	
2001-05-23 Karsten
	* terrain/tilestretch.*
	  Reimplemented the tile stretching algorithm as seperate C-module, so
	  that compiler may highly optimize it. Along with some new ideas
	  the terrain renderer is nearly three times faster now !
	  (though this introduced some new drawing bugs)

2001-05-21 Karsten
	* renderer/*
	  - the terrain height offset was not correctly added for 
	    nested entities - fixed.
	* sprites.xml 
	  - changed mode name "trading" to "sell"
	* terrain/tilestretch.c 
	  - begining to move tilestretching code into seperate file

2001-05-20 Karsten
	* renderer/* 
	  - fixed "entity deletion bug"
	  - fixed "entity enter building bug" 
	* toolbox/tree.* 
	  - reduced memory usage and thus reduced creation/deletion time
	  - cleaned interface to use const string& instead of const char*
	* new main menu (scripts/main_menu.lua)
	* restructuring of dialog system on the way
		
2001-05-19   Karsten
	Tagged as V0_11_6 (as I am going to break things)
	
	Version 0.11.6
	* world/* removed unused EntityFactory implementation
	
2001-05-18 Karsten
	* terrain/terrain.cc
	  - added missing round() 
	    [need to use bresenham instead !]
	  - changed to smooth shading using gourand-like shading
	* terrain/map_agrilan.xpm
	  - changed terrain to contain more steep slopes, 
	    which looks more impressive ;) 
	
2001-05-17 Karsten
	* script/lua_script* added method initExtensions() to init additional libraries 
	  after creating the script object
	* dii/script_mod.*, loader.* added security policies for scripts:
	  "sandbox" : Scripts can export own functions so that other modules can call
	              those; scripts in sandbox mode call also read their settings 
	              from the central varconf Config instance.
	  "default" : Scripts additionally can call methods and services provided by 
	              other modules and may open socket connections.
	  "trusted" : Scripts additionally have access to the local file system.
	* modules/panel.* added a history for the commandline
	  F1 searches for a possible completion (like TAB in bash)
	  F2/F3 recall the last inputs (just like CURSOR_UP/DOWN in bash)
	
2001-05-16 Karsten
	* media/rle.* first successful tests
	* renderer/renderer.cc, world/world.cc 
	  - fixed entity deletion bug (uclient segfaulted upon killing skeletons)
	  - doubling bug persists - I am too tired now. 
	    (if an object is put into another, it gets displayed twice)
	
	* media/sprite.cc fix for gcc 2.95.2 ?
	
2001-05-15 Karsten
	* fixes to build with Atlas-C++ 0.4.2
	* world/world.cc fixed groundlevel interpolation
	* world/entity.cc made lych visible
	* media/sprite.h added interface semitransparent blits (not yet functional)
	* player/player.cc, dialogs/login.cc data nows gets directly transferred
	* scripts/selectserver.lua 
	  - server browsing via metaserver works
	  - selecting one server from the list and logging into it also works
	* docs 
	  - added xfig drawing explaining the groundlevel interpolation
	* resources.ini removed the default images for pushbuttons, as the stretched
	  surfaces looked weird
	* terrain/terrain.cc
	  - removed loading of predefined (faked) shading map (it gets overwritten
	    by the terrain renderer anyways)
	  - fixed several drawing bugs
	  - fixed severe bug which caused spurios segmentation faults
	    (pixels of an unlocked SDL surface had been accessed)
	
2001-05-12 Al Riddoch
	* Adapted code to use new "stamp" attribute instead of "seq"

2001-05-10 Karsten
	* adapted sprites.xml to renamed and added sprites
	* world/world.* world/entity.*
	  - Added support for sight of "Action" operations. 
	    If no duration is giving a default of 5 seconds is used.
	* player/player.*
	  - added command /action to issue an action (for testing purposes currently
	    also hooked to the internal db)
	* tools/*
	  - simple tools to rename Poser rendered files
	* scripts/selectserver.lua
	  - added header row explaining the meaning of the table columns
	
2001-05-02 Karsten
	* uclient/uclient.cc moved module loading into script Init.lua (more flexible)
          - updated some module dependencies (removed unnecessary deps)
	* scripts/Init.lua now loads modules and scripts at startup
	* added server browser dialog (implemented using Janus and LUA)
	
2001-04-30 Karsten
	* builds on gcc 2.96 and 2.95
	* dii/module.*
	  - Changed signature of configure(const string&) to configure(void),
	    because no module makes use of the argument.
	  - Added registerOption(..) and getOptionsMap(..) to Module class.
	    These are meant to get used by Configuration Dialogs (or scripts).
	* media/rle.* (just added, not yet build nor tested)
	  - encoding, decoding and blitting of RLE bitmaps
	    As most sprites for uclient contain about 30-70% transparent pixels
	    RLE while reduce the needed space (RAM and HD) dramatically, plus
	    blitting will be accelerated ! 
	
2001-04-24 Karsten

	Tagged as V0_11_5
	
	* terrain/terrain.cc
	  - added detailed comments to the tile stretching code
	  - enabled the terrain engine by default 
	    (turn it off by "/set terrain terrain_mode 0")
	  - use fast plain blit if a tile does not need to get stretched
	
	* uclient/uclient.cc
	  - added backtrace dumping
	    If uclient receives a SIGSEGV it will dump a stack backtrace 
	    onto stderr and try to exit().
	
2001-04-22 Karsten
	
	Version 0.11.5

	This version should run on non-MMX processors and with all 
	graphics mode again. Though optimal performance is only
	achieved with MMX and in the 16bit graphic mode RGB656.
	
	* renderer/renderer.cc 
	  - screen positioning respects ground level
          - changed scrolling: viewport only scrolls if character is
	    near the viewport border
	  - replaced call to MMX blitter by call to compatibility blitter 
	    (which uses the MMX blitter if available)
	  - internal graphic buffer always uses pixelformat RGB565 now
	    (and so does Terrain and Environment)
	
	* world/world.cc 
	  - added getGroundLevel(), setGroundLevel() methods accepting either grid or 
	    floating position arguments. If given float args the height gets interpolated
	    between the three surrounding grid points
          - moved heightfield data from Terrain to World module
            (the interface allows multiple heightmaps, but currently there is only one)
	
	* world/heightmap.h straight forward heightfield class
	  (meant to be fast, not secure)
	
	* terrain/terrain.cc
	  - fixes for tiles which contain grass growing above the standard tile border
	  - added "-O2" option for building module terrain 
	    This results in a speed up of about 15%, but building takes more than 10 times
	    longer. ugh!
	  - replaced call to MMX blitter by call to compatibility blitter 
	    (which uses the MMX blitter if available)

2001-04-21 Karsten
	
	* terrain/terrain.cc 
	  - added shading to the terrain mapping 
	    (replaces the static shading map, which is still active if terrain mapping 
	     is turned off)
	  - fixed gaps between stretched tiles, though blitting of larger tiles still
	    may result in gaps
	 * sprites.xml
	   - added new/revised animations to male swinesherd (not yet in cvs, so keep your old sprites.xml !)
	   - added watermage
	
2001-04-20 Karsten
	* terrain/terrain.cc replaced most of the floating point code 
	   by integer arithmetic and add earlier visibility check 
	   (-> much better performance: about 75ms per frame)
	
	* sprites.xml
	  - new singing animation for maid with red hair
	  - revised running animation for female swineherd 
	  - new animation for female guard using an bow and arrows
	
2001-04-18 Karsten
	* terrain/terrain.*
	  - replaced use_heightmap(bool) by terrain_mode_(0) option
	    (see terrain/terrain.h for details)
	  - heightmapping using tile-stretching works :))
	    There are still lots of pixel and clipping errors and it is _very_
	    slow, though it already looks nice. Heightmapping is enabled
	    by "/set terrain terrain_mode 32".
	
2001-04-14 Karsten
	* terrain takes "use_heightmap" option which currently does crash
          uclient immediately ;)
	* sprites.xml fixed again	
	* everything compiles again :) But the terrain heightmapping is not yet active
	
01-04-13 Karsten

	* terrain/terrain.* beginnings of heightfield texturing
	  
	  DOES NOT YET COMPILE !!
	 
	tagged working version: V0_11_4

        * sprites.xml additions for the new animations from Pegasus
        * renderer/renderer.cc cosmetics
        * world/entity.cc cosmetrics
        * environment/environment.cc "fine tuning" of the thunderstorm 
          timings

	* media/sprite.h|sprite_factory.* added support for new sprite flags:
	  "reversable" , "idleAnimation"
	* renderer/renderer.*
          - added support for new sprite flags
	  - added z-sorting to entities inside a container
	  - entities directly added into a container where not assigned a sprite,
	    which resulted in "SpriteCache::lock on invalid sprite id" and
	    a later abort. Fixed.
	  - add setClouds() to turn clouds on/off
	* environment/environment.*
	  - added new weather: "thunder" with heavy clouds and lightning
	* world/entity.cc 
	  - new semantics for weather attribute "rain":
	    >= 0.0  sunny weather
	    >= 1.0  rain
	    >= 2.0  heavy thunder storm
	
2001-04-11 Karsten
	* dii/module.cc exceptions while inside callMethod and callService
	  get caught.
	* some new scripts (nothing complete yet)
	
2001-04-10 Karsten
	* dii/module.cc fixed typo in getOption() methods and changed their signature
	* finetuning of the terrain shading
	
2001-04-09 Karsten
	* sprites.xml added: deer by Garg, butcher,warrior,farmer,maid by Pegasus
	  (using the path media-2d/char-collection-[garg|pegasus]/animations/)
	* terrain/terrain.cc fixed the terrain shadowing layer to no move !
	* renderer/renderer.cc added moving clouds layer (per default off)
	
2001-04-08 Karsten
	Version 0.11.4     - Sprite Caching works ! -
	
	* uclient actually needs libuta 0.3.37 (only from libuta cvs),
	  changed configure to respect this
	* sprites.xml : added first versions of butcher and warrior
	  animations from Pegasus
	* media/* several fixes to make the caching system work
	* clear_cache.sh gets installed into $prefix/share/forge
	  Call it in order to clear uclient's disk sprite cache.
	  (see media/raw.h for the used memory- and fileformat)  
	* terrain/shadow.xpm perlin noise for adding shadows to terrain
	* terrain/terrain.* added terrain shadowing
	
2001-04-07 Karsten
	* dii/script_mod.*  changed script policies:
	    - LUA scripts can open socket connections, but cannot access the
	      local filesystem
	    - LUA scripts may load additional scripts via loadExtension()
	      from dir $prefix/share/uclient/scripts (and only from there !)
	* scripts/*.lua some new script ideas
	
2001-04-05 Karsten
	* modules/gui.* added Janus support
	  create_dialog(), run_dialog(), destroy_dialog(), 
	  show_dialog(), hide_dialog(), change_dialog()
	  create_dialog() expect a nested Atlas::Message::Object::MapType tree
	  which gets directy translated to a Janus::Node tree, which itself
	  gets passed to Janus::Engine::create().
	  (see scripts/dialogtest.lua for an example)
	* scripts/selectserver.lua not yet complete server browser
	
2001-04-03 Karsten
	* media/sprite_cache.*: uses $prefix/var/uclient/cache_index.xml
	  to persistently store the cache index. Sprite meta data, 
	  like width and height is stored their.
	* fixed years from "2000" to "2001" in ChangeLog 
	      
2001-03-26 Karsten
	Version 0.11.3
	* Complete (not yet finished) redesign of Sprite class.
	  
	  - Uclient does not operate currently ! Use version tagged
	    as V0_11_2 until the new stuff works. -
	
2001-03-23 Karsten

	TAG: V0_11_2
	
	* script/luascript.* added flags to constructor allowing to
	  set capabilities of the script virtual machine
	  (enable file io, enable socket access)
	* moved scripts to scripts directory
	* Makefile.am scripts/*.lua get installed to share/uclient/scripts
	* added script/lua/luasocket.* from Diego Nehab 
	  which provides TCP/IP sockets to LUA
	* added lua protocol implementations for ftp, smtp, http to /scripts
	* moved the queryServer() implementation to network/wf_network.cc
		
2001-03-22 Karsten
	* player/player.h|cc added MetaServer queries:
	-- Player::queryServerList() returns list of running servers
	   The server to use can be set by (settings.ini)
		player::metaserver and player::metaserver_port
	-- Player::queryServer(..) queries a server for status infos
	   
2001-03-21 Karsten
	* renderer/renderer.h|cc viewport now also follows character if it
	  is inside a building
	* added Module specific configuration :
	  - Module::getOption(), Module::setOption() provide persistent,
	    user changeable and module specific options
	  - virtual Module::configure() may get overriden to monitor 
	    changes of settings
	  - also implemented for scripted modules
	
2001-03-17 Karsten
	Version 0.11.2
	* modules/inventory_panel.cc now directly talks to SpriteCache instance
	* world/entity.* : removed all sprite handling
	* renderer/renderer.* : now directly talks to SpriteCache instance
	* terrain/terrain.cc added call to SpriteCache::check() for 
	  every scanline of map while loading
	* media/sprite_cache works, though saving/restoring to/from BMP files 
	  is badly needed as reloading sprites from pngs is very slow !
	* removed unused libs: comm isoengine database
	* removed unused modules: Atlas Bogo CharsPanel Chat Cyphesis Map
	* removed unused code in world/ and several other places

    -> roughly 30000 lines of really used code (not counting SOLID and LUA)
	
2001-03-15 Karsten	
	* Removed module Sprites, now using static SpriteCache::inst() 
	  for accessing the sprite database.
	* media/sprite_cache.cc: added possibility to query sprite information 
	  (width, height, ...) even of already flushed sprites. 
	* TODO: added plan for sprite caching
	
2001-03-14 Karsten
	* player/player.cc removed arg from initial look around
	* network/connection.cc fixed method poll() so that it does not
          crash when the server disconnects unexpectedly 

2001-03-13 Karsten
	* increased dependencies: libuta 0.3.36, libatlas 0.4.1
	* added varconf callbacks to world and renderer
	  new settings: 
		world::update_interval (default is 100ms)
		renderer::gamma (default is 0)
	* renderer: now uses memory buffer for assembling screen image,
	  then a gammablit (with adjustable gamma) transfers this surface 
	  data into the video memory.
	  This can be used to simulate day / nightlight and maybe lightning.
	  (This is an experimental feature ! It only works with an 
	   MMX processor and in a 16bit (RGB565) graphic mode )

          You may test this by: "/set renderer gamma <value>" where value
          runs from -127 to 128.
	  You may also change uclient's framerate by "/set world update_interval <value>"
	  value = 100 -> 10 fps
          value = 50 -> 20 fps
	  value = 200 -> 5 fps

2001-03-08 Karsten
	* by the help of script Init.lua (which gets loaded by default)
	  it is now possible to change the debug level at runtime:
	  "/set global debug <debuglevel>"
	* script/lua_script.cc: disabled fileaccess for scripts
	* added "seq" attribute to class Entity
	* fixed Disappearance/ Appearance handling in World 
	  (by using entity's attribute seq)
	* added Player::gameInfo() which provides info about running game
	* Module App emits a signal every second 
	* added gameinfo query to Player
	
2001-03-07 Karsten
	* fixes and some cleanups in WFNetwork (metaserver query)
	* renamed libatlas to libnetwork as it has very little to do 
	  with Atlas ;)
	
2001-03-06 Karsten
	* finally understood the metaserver protocol and encoding and wrote
	  stream based query implementation -> class WFNetwork (network/wf_net.cc) 
        * script/lua_script.cpp	make newly created tag known to LUA:
	  e.g. Lua::Script::registerType("List") will create a global 
	  called List_tag with its value set to the tag value.
	  
2001-03-04 Karsten
	Version 0.11.1
	* implemented appearence/disappearence handling for game objects
	  (limited radius of view ...)
	* added emitting of messages to Renderer to allow scripts to hook into mouse events
	* added script mousetest.lua which demonstrates how to change the 
	  mouse semantics using a script
	* added module Observer, which maps world's signals to a single signal usable
	  by other modules (see script oberv.lua for an example)
	* added module Settings which provides DII interface to varconf::Config
	* added README.scripting
	
2001-03-01 Karsten
	* dii/script_mod.* initial version of scripted module
	* dii/loader.* added support for loading and registering scripted modules 
	* uclient/dispatcher.* added user command to load scripts
	* Basically scripting works (needs more testing though); scripts
          can get loaded and from scripts any DII method or service may
          get called. In return a script may register its functions to be 
          new methods and services and these may get called from other scripts 
	  or binary modules ! (see hello.lua and dii/main.cc)
	
	* any *.lua will get installed to share/uclient/scripts
	* "/script_load <name>" will load share/uclient/scripts/<name>.lua
         
2001-03-01 Al Riddoch
	* player/player.cc: Tweaked use of list types with
	  Atlas::Message::Object so that internal typedefs are now used to
	  ensure compatability.

2001-02-28 Karsten
	* added uclient logos (uclient.ico and uclient.xpm) from acorn_0_3 branch
	* integrated script module into build process
          (make check in /script builds test program)
	* added "virtual bool message(const DII::Object&)" to class Module
	  This is meant as counterpart (aka slot) to Module::signal.
	
2001-02-27 Karsten
	* added script module based on LUA

2001-02-06 Karsten Laux
	Version 0.11.0 
	(development version)
	
	* changed version number to indicate that this is the head development branch
	
        For the stable version and bugfixes use branch acorn_0_3 !

2001-02-01 Al Riddoch
	* Tweaked libdii so that include files so that include files
	  are installed. This means that dii can now be used in other
	  programs.

2001-01-26 Karsten
	Version 0.10.0 
	Acorn 0.3 release version
	
	cvs tag: V0_10_0
	new cvs branch: acorn_0_3
	
	* fixed bounding boxes
	* adapted sprite vs. tile heuristics (in terrain.cc) to latest agrilan.map
	
2001-01-25 Karsten
	* fixed bounding boxes by 50%
	* added Pato-rendered wolf to sprites.xml
	* updated wolf sounds
	
	* added "bstall" and "lumber" to sprites.xml
	* replaced one winestall by a beer stall in agrilan.map
	* removed butcher stall and campfires from agrilan.map sent Alistair email to fix the following positions:
	
	butcher's stall: <-41,-5,0>
	butcher: <-41.5, -6.3, 0>
	guard: <-17, -1, 0>,<-29, -1, 0>,<-29, -7.5, 0>,<-38, -10, 0 >,<-43, -15, 0>,<-43, -14.5, 0>
	market sign: <-8.7, -21.2, 0>
	move oak from <-41, -98, 0> to <-35, -73, 0>
	move oak from <-10, -87, 0> to <-6, -77, 0>
	move oak from <-97, -80, 0> to <-83, -66, 0>
	move oak from <-87, 25, 0> to <-75, 31, 0>
	put additional campfires at  <35, 54, 0>,<42,51,0>,<43,39,0>
	add some more lumber around

2001-01-24 Karsten
	* uploaded needed wavs to cvs
	* adapated pathes for sounds in resources.ini to point to correct place inside media cvs
	* enabled weather in World::Entity
	* added some more sounds
	* disabled music volume change when opening dialog
	
	* removed c++ hierachy of game entity types 
	  (now everything is handled in class World::Entity)
	  This change was needed because of the changed "sight semantics" 
	  in cyphesis-C++, uclient may need to create an entity whose type 
	  is yet unknown; thus most of the time uclient
	  creates just the C++ baseclass for an entity which later turns 
	  out to be a derived class. But we cannot nicely change the type
	  of the original class ... so now the type is soft-coded
	  
	  --> objects make sounds when being hit again !
	
	* added buttons for quit and help
	* added short online help
	--
	* made "Give" instead of "Sell" the default action for inventory item
	* now rightclicking on an object reveals information about the object
	  (just as shift+leftclick)
	* more debug info cleanups (so that uclient is quite when debugging is off)
	
2001-01-23 Karsten
	* fixed resources.ini
	* fixed reading of settings (set omit_sprites="true" to save memory)
	* added attribute map to class Entity which contains other attributes
	  (so display of weight and status works again)
	
2001-01-21 Karsten
	* added corpsec.it to songs
	* added initial look around in Player::takeOverCharacter()
	* added check to not create Look Op for clientside entities
	* Player::look() now set both "to" and "args" with id to look at
	* fixed World::processSight() which did drop operation containing args
	  whose attribute "objtype" was not set 

	- now connecting to running game works ! -
	
2001-01-19 Karsten
	* changed portraits according to www: media/portrait_gallery
	* changed handling of unknown objects in World: if id is unknown a dummy object
	  is created and used, concurrently a look operation is send to the server to
	  get more information about this object (thanks to Al for this tip)
	* print out error text in case of socket errors
	
2001-01-17 Karsten
	* as Stefanus pointed out libAtlas-0.3.11 is not yet to be used I have re-added a check
	  for "old" libAtlas to configure
	* now uclient compiles with libAtlas-0.3.11 and prior versions
	
2001-01-17 Karsten
	Version 0.9.2
	* configure now uses atlas-config script which gets installed
	  for libAtlas 0.3.11 and above
	* adaptions for libAtlas 0.3.11 (it runs, but negotiating protocol is failing !)
	* restructured directory tree:
	/share/forge                : shared worldforge data like media-cvs
	/share/doc/uclient-0.9.2    : README*, userdoc.txt
	/share/uclient		    : uclient data files 
                                        (*.map types.xml, sprites.xml, resources.ini)
	/lib                        : modules and libraries
	/bin			    : uclient binary
	
2001-01-16 Karsten	
	* added several checks to world/connection in order to find reason for crash when
	  connecting to a running acorn game.
	  -it _seems_ as if the XML-Codec receives corrupted data, so I have added an assert() statement there-
	  Alistair, please check this out and test.
	* increased buffer sizes in skstream.cc
	
2001-01-15 Karsten
	* new agrilan.map by Pegasus
	* terrain fix for extra large ground tiles
	* fix to display standard portrait when using server-stored character
	  (server has no idea about portraits ... this is a uclient-only feature)
	* cleanup debug messages
	* make all-static binary the default when using "--enable-runtime-loader=no"
	  
2001-01-11 Karsten
	* reimplemented leftclick for new Renderer implementation
	
2001-01-10 Karsten
	* _finally_ got the blitting order right inside Renderer
	  I nearly got mad thinking about a way to correctly draw small sprites
	  in front of large sprites ;)
	  The blitting order now is the classical isometric tile-based order
	  plus some bounding-box based post-processing; there is no need to define
	  a bounding box for every object type, but for the "critical ones" like
	  houses and walls. (-> types.xml)
	* added call to Renderer to Player module so that the viewport gets 
	  centered on taken-over character
	
2001-01-04 Karsten
	* fixed Character editor (it caused segfault if no character portraits are available)
	* added Grid class - some sort of "compressed" matrix
	  I think I need to organize all sprites in a matrix and then run across this matrix
	  in a bit wierd way to get the correct blitting order for larger sprites (e.g. houses)
	* fixed login dialog to not delete the list of available characters
	  (now it should work as I have described below)
	
2000-12-29 Karsten
	Version 0.9.1 Acorn_0.3_rc1
	- from my point of view this is an first release candidate for
	  Acorn 0.3, Karsten -
	
	* added "help" command which simply lists all available commands
	* added spec file for building a RPM package - untested
	* changed default installation directories to /opt/forge and
	  to /opt/forge-win32 for the windows executables
	* Character Chooser Dialog done
	  (uclient expects a "characters" attribute in Account which is
	   a list of all character ids belonging to that account.
	   When trying to take over control, uclient sends a Look operation
	   with "from" and "args" equal to the selected characterID 
	   - untested)
	* inventory panel now is scrollable 
	  (though there is a minor bug regarding scrolling up when 
	   using the mouse ... )
	* new hotkey : Hit "Return" to activate the command/chat inputline
	  (using " (double quotes) works, too - just like in MUDs
	   you may also use " to mark talk versus commands)
	* removed ugly Inventory screen
	* added pig-button <<!>> which calls your pigs by saying "Sowee !"
	
2000-12-22 Karsten
	* changed name of entity attribute "size" to "bounding_box"
	  to a) reflect its real meaning and b) because it conflicts with
	  entity attribute "size" in cyphesis
	
2000-12-21 Karsten
	* with libuta 0.3.34 music works even when statically linking
	  (now music should work for windows as well)
	* renamed Inventory to InventoryDialog because there is already
	  a class named Inventory and  dlopen() got confused which resulted
	  in strange errors !
	* somes fixes to terrain to correctly load mapfile 
		(called from Player::init now)
	* fixed dii/serialize.cc to correctly write objects to stream
	* added error detection in registry 
	* fixed calls to varconf 
	* half working "choose character dialog"
	* added some try/catch pairs to Player
	* removed z-sorting stuff from renderer :( - needs closer examination -
	
2000-12-18 Karsten
	* removed smpeg check again (uta-config is meant to check for this!)
	* made win32 exe link to system dlls (not -all-static)
	  -successfully build win32 executable with sound, but no music due
	   to static linking -
	* finally fixed unix build
	* added snow from 0.8 branch
	* fixed backgrounds in "character create" and "map" dialog
	  (you need at least libuta 0.3.34 to avoid black backgrounds) 
	* fixed transparency value of overlay map
	* added configure check for libvarconf
	* converted loader.cc back to use libdl instead of libltdl
	
2000-12-15 Karsten
	* fixed unix build (linux and bsd ?)
	  Now it is possible to build a version with all modules included in the executable 
	  for unix as well. In contrast to win32 this version is not statically linked to
	  the system libs; though it is also possible to do this 
	  by adding -all-static to uclient_LDFLAGS and by adding `sdl-config --static-libs` 
	  to uclient_LDADD in uclient/Makefile.am

	  The "static" version of uclient however crashes when it starts to play an mp3 song;
	  if Music is build as a module it works fine. For this reason the default for linux is
	  to build a dynamic module version of uclient.
	  (I fear that the win32 version will have the same problem with mp3 playback ...)
	* removed libltdl again 
	
2000-12-12 Karsten
	* updated credits screen and AUTHORS file
	* changed entity_factory in world - now using a MACRO. Now all entity classes
	  are available in the WIN32 version as well (removed yesterday's hack)
	* applied Alistair's patches which fix the tile alignment bug
	* beginnings of new dialog to choose server stored character
	
2000-12-11 Karsten
	* cleaned up and fixed Makefile.am and configure.in
	* added dumb logging to loader, main and network
	* fixed loader and network 
	* hacked world/entity_factory to work with win32 
	(I still need to add all needed entity classes ...)
	* added skstream.cc/.h and .... tataaaa: uclient.exe negotiates with server !
         and you can create a character !
         There seems to be a problem between cyphesis and uclient as 
	  cyphesis reports only errors.
       
	IT WORKS UNDER WINDOWS !!!!!!!!!!!!!!!!! YUPPEE !!!!!!!!!!!!!

	unfortunately I have no time to upload a binary today, will do so tomorrow.
	
2000-12-10 Karsten
	* forget to change method call in world.cc which made uclient "blind"
	* added configure option --enable-runtime-loader [default=yes]
	  If --enable-runtime-loader=no is provided all modules will 
	  get statically linked into the uclient executable. This is 
	  currently needed for the win32 port to run; the statically linked
	  executable is also much smaller than the sum of all modules ...
	  So maybe we set this as default for shipping binaries ?
	
2000-12-08 Karsten
	* For Win32 all modules get linked statically into uclient.exe now and the Loader just
	  creates an instance of the module object if it is requested to load a Module.
	  (Malcolm's concept)
	  This works smooth - the unstripped exe is 17MB, the stripped exe is only 3MB. 
	  So there is no problem with big executables ;)
	* uclient.exe parses its config files and loads resources while displaying the progressbar,
	  it does not yet run, because of the win32-factory-problem (just as with libAtlas-C++).
	  We need to implement a comparable solution here (Malcolm ?!)
	  I need to devide Module::App and uta::Application since it seems not to work at all.
	
2000-12-06 Karsten
	* uclient does completely compile with Xmingw32 ...
	  however the final link fails and I am unsure about the modules ...
	
2000-12-05 Karsten
	* removed CommonC++ socket stuff and replaced it by Alistair's
	  stream from fd implementation
	* added yet untested winsock stuff 
	* added litltdl ... it provides system independent module loading
	* cleaned up configure
	* added future_seconds to movement
	* tuned Renderer a bit (is it significantly faster now ?)
	
2000-11-29 Karsten
	* comletized Lobby functions
	* fixed "Create Account"
	* added basic message routing to Player which differs messages 
	  to the Player from messages to the character
	
2000-11-28 Karsten
	* added Lobby chatting to Player module
	  (Player may now be in one of those states: 
	   NOTCONNECTED, LOBBY, INGAME)
	* changed login dialog to let user either "Create New Account"
	  or "Login"
	* inventory panel fully functional (finally)
	* fixed inventory panel and inventory dialog
	* added trading dialog from stable branch (including additions to Player)
	* fixed break-error while showing credits
	* implemented rightclick (moves character there)
	
2000-11-21 Karsten
	* added credits screen (need a nice background image here !)
	* uclient now runs on 8bit displays as well (thanks to libuta 0.3.32)
	* added intense check for libuta which also sets CPPFLAGS and LIBS
          for all needed libraries (by the help of uta-config)
          ! this needs libuta 0.3.32 !

2000-11-15 Karsten
	* changed entity class to support velocity and face vectors
	  - this means character might look in other direction than it walks 
	    ... though this will look strange with current animations ;)
	* tightened interface between Renderer and World 
	  (should improve performance when many objects are moving)
	
2000-11-13 Karsten
	* modules Music and Environment now use the libuta resource management 
	   to load the samples and music
	  (this should avoid the knwon instabilities)
	* adapted resources.ini appropriately 
	* Music and Sounds work nicely and stable ! also looping of music works :)

	Note: Mandrake 7.* includes a SDL_mixer without mp3 support ! If you want to listen
	      to music, re-build SDL_mixer with MP3 support !
	      (suggested build order: SDL, smpeg, SDL_mixer, libuta, uclient)
	
2000-11-08 Karsten 
	* uclient and cyphesis-C++ show moving character. Yuppee !

2000-11-03  Karsten <klaux@rhrk.uni.kl.de>
  	- many minor fixes ! -
	* uclient finally uses latest entity definition 
	  (no longer need for legacy code in cyphesis-C++)
	* uclient logins in to userver, may create character and move around
	* uclient logins in to cyphesis-C++, may create character, but cyphesis-C++
	  does not react upon move requests
	* userver propagates movement to all logged in players
	* userver sends movement updates every second
	* Talk operation implemented in uclient and userver
	
2000-10-21  Karsten <klaux@rhrk.uni-kl.de>
  Uclient works again ! Most functions are back to live:
* login and character generation in uclient works
* sprite database works
* map loading works
* movement works ! (both via local loop (standalone = true) and via server loop)
* Renderer works
* Dialogs work 
* overview maps work
* interaction with gameworld works 
  (though for some reason inventory is not shown ...)
* started to hack userver: a small test server (using several modules from uclient)
  userver allows login, character creation and movement 
  (though no propagation to other players)
* changed several calls callMethod("World",...") to World::World::inst()->...
* fixed several exceptions due to false Object types
* need to implement reaction to sound-operations (in order to make chatting work)
* for some reason uclient fails to create a character with cyphesis-C++

	
2000-10-16  Karsten <klaux@rhrk.uni-kl.de>
* first successful compile and link !
* taking over latest changes to the stable branch
* World is not a Module any more, but just a DLL
	
2000-08-31   Karsten <klaux@rhrk.uni-kl.de>
* merged development stuff to main cvs branch
* only partially compilable
* nothing works

There is a cvs branch for the stable version: use tag V0-8-stable

Version 0.9.0 - new libAtlas C++ !

* DII::Serialize uses libxml for file parsing
* added abstractions to Atlas's idea of network communication (/network)

2000-08-31   Karsten <klaux@rhrk.uni-kl.de>
* changed mouse interaction for inventory: if you click on inventory item
  it becomes the mousepointer, then you can either click somewhere on the
  ground to drop the item there or you can click on another gameobject
  to "give" the item to the other object
* object identification using the mouse works now exact on the actual pixels of the object
* added support for "smooth" scrolling; if you have a decent machine you may set
  flags::smooth_scrolling to "true" inside settings.ini, UClient will then keep your character
  always in the center of the screen
* added (temporary) visualization of bounding boxes for the objects 
  (can be turned off be compiling without -DDEBUG)
	
2000-08-26   Karsten <klaux@rhrk.uni-kl.de>
 Version 0.8.2
* added DII::Serialize::read/write to libdii which abstracts from
  the Object streaming implementation
* added MediaIndex to libmedia; this does a fast search inside
  the media subdir (with the help of an index file)
  (this enables for example the Inventory to lookup images for any item !)
* added standalone mode (flags::standalone = "yes" in settings.ini)
  which allows fast testing of new sprites 
  (you may choose _any_ character type)
* tweak client side collision detection a bit (not real working currently)
  (flags::collision_detection = "yes")
* now uclient uses libvarconf for the settings file and commandline switches
* graphics is now working for containers (correct handling of contained sprites);
  removal of roofs is also possible. (see README.sprites)
  (now only Renderer cares for the removal of roofs - and not World)
	
2000-08-14   Karsten <klaux@rhrk.uni-kl.de>   
* moved module and dynamic invocation stuff into seperate
  library (libdii.a)
* new module loader with more intense dependency checking
* new static Broadcaster which is in fact a simple SigC::Signal
  to which all modules connect on initialization
* module now use SigC::Signals for communication
* Added sound member function to class entity.  When the client 
  receives a sound Operation the sound member function of the
  referenced Entity ("from") gets called. In derived classes
  this method may get overidden to implement specialied
  behavior. (see world/wolf.* for an example)
* Yet untested support for removeable roofs.
  override Entity::getSprite and set member "removeRoof" appropriate
  (there needs to be a layered sprite for this entity
	
2000-08-08 Karsten <klaux@rhrk.uni-kl.de>   
    Tagged as V0-8-1
    	* disabled loading of Module Music per default, 
	  because on many systems sometimes
	  playing mp3 leads to segfaults ... (bug probably in libuta ?!)
	  (set setting "loadMusic" to "1" in enable the music)
	* now viewport is resizeable (use the both upper side buttons at the
	  right border of the viewport)
	* fixed screenshot code (press PRINT on your keyboard to save a 
	  screenshot !)
	* introduced sprites.xml for sprite definition instead of
	  hardcoded stuff in sprite_factory.cc
	  (hopefully all entries are correct)
	  
2000-08-02 Karsten <klaux@rhrk.uni-kl.de>

	Version 0.8.1
	
	* revised character dialog (thanks to Pegasus for the nice images !)
	* added support for ALT-RETURN which toggles fullscreen mode
	* added swinesherd animations (male/female) to media/sprite_factory.cc
	* changed sprite_factory to use the newly rendered maid images
	* added (basic) support for layered sprites (removeable roofs)
          See README.sprites
	  (untested, support needs to be added to World entities)
 
	
2000-07-27 Karsten <klaux@rhrk.uni-kl.de>

	* fixed Renderer::update(..): if an entity was removed from 
	  the root displaylist its position got totally cleared.
	  Now the position only gets cleared if it is really empty ;)
	  
2000-07-25 Al Riddoch <alriddoch@ecs.soton.ac.uk>

	* Small fix to non-loopable sprites which means they still animate
	* Made non-looping animations non-loopable.

2000-07-25 Karsten <klaux@rhrk.uni-kl.de>
	* fixed renderer and medialib in order to enable showing contained
	  sprites
	* Fixed world.cc so that uclient does not crash if it
	  receives a sight operation on an entity whose container is unknown
	* fixed renderer so that it does not loop "non-loopable" animations
	
2000-07-23 Al Riddoch <alriddoch@ecs.soton.ac.uk>

	* Fixed missing sources so distribution can be made
	* Added more entities to sprite factory

2000-07-20 Karsten <klaux@rhrk.uni-kl.de>
	
	Version 0.8.0
    cvs tag acorn_rc_2
	(roughly 35.000 lines of code)
	
	* added weight and status information to shift-click
	* fixed typo in sprite_factory.cc which caused that the sty
	  did not get loaded
	* made admin,lych and worldrouter invisible
	* added weather entity which observes the weather
	
2000-07-19 Karsten <klaux@rhrk.uni-kl.de>
	* removed unnessary checks in innerloop of World (::update())
          (now uclient runs _much faster_)
	* added character image at lower right
	* added wolf,maid and sty images to sprite_factory
	* fixed minor bug in renderer which caused some sprites to disappear
	* workaround for segfault in Environment::deinit()
	* edited agrilan.map to contain a pig sty and some maids
	
2000-07-15 Karsten <klaux@rhrk.uni-kl.de>
	cvs tag: acorn_rc_1

	* Music now keeps playing all songs forever
	* Inventory: center icons correctly, clear empty slots
	* Renderer/World speedup by disabling the limited radius of
	  sight implementation 
	* cleaned up debug messages
	
2000-07-14 Karsten <klaux@rhrk.uni-kl.de>
	* advanced to libuta 0.3.27 which fixes some bugs
	  and introduces 32bit alpha surfaces and handles
	  any transparency more correct 
	
2000-07-12 Karsten <klaux@rhrk.uni-kl.de>
	* finally (?) fixed delete-operation bug in module World
	* added nice inventory panel 
	  (click on the icon in order to drop an item) 
	* fixed clipping error in Module Terrain
	* made raindrops reaching the ground
	
2000-07-11 Karsten <klaux@rhrk.uni-kl.de>
	* disabled clientside collision detection again 
	  (now handled by cyphesis)
	* added simple inventory dialog
	* implemented delete operation 
	* disabled shadows and weather temporary 


...
	* increased dependency to libuta-0.3.26, which finally contains
	  again the colored mousecursor and fixes the mouse-focus bug
	* it rains !
	* added shadows to creatures
	* added SOLID 2.0 library to libtoolbox.so (temporary...)
	* fixes to modules Environment and Music
	* using SOLID inside the World module for collision detection
	
2000-06-24 Karsten <klaux@rhrk.uni-kl.de>
	* increased dependency for libuta to 0.3.25. 
	  This version fixes the gui display errors
	* World dumps content to file world.xml now
	* new Module Music: plays randomly the songs found in /music
          (... get uclient-music-0.7.8.tgz )
	* new sprite class "Layered" which supports arbitrary layered sprites
	
2000-06-16 Karsten <klaux@rhrk.uni-kl.de>
	* new: Renderer plus World support and display arbitrary 
	  nested entities !
	  Example: "pigs in a sty"
		* pigs are normal sprites and are contained in the sty
		* the sty sprite needs be devided into two parts:
		     Part A which is "behind" the pigs and Part B which is
	             "above / in front of" the pigs.
		  The sty entity needs to supply Part A as "underlay" and
		  Part B as it's normal sprite. 
	  The Renderer will first draw any underlay, then blit any contained 
	  sprites and finally the sprite of the container. 
	  (Note: the contained sprites may contain other sprites again.. 
	  recursion !)
	
2000-06-13 Karsten <klaux@rhrk.uni-kl.de>
	Version 0.7.8
	* added player inventory !

		CTRL+LEFTMOUSE 	put an object into inventory
		/inventory	list inventory content
		/drop <item ID> drop item to the ground
		/transfer <item ID> <target ID>
				transfer item to other player
	
          Note that you must provide the IDs, not the name !
	  I will soon implement a mouse interface for all these actions.
	* cleanup up entity hierachy a bit (see README.world)
	* added responses for touch-operations to farmer (he does not 
	  like to get touched) and pig (snorts when touched)
	
	* new tree-like container for world (correct container-handling!)
	* more advanced entity hierachy for gameobjects
	
2000-06-08 Karsten <klaux@rhrk.uni-kl.de>
	* added walking sounds to characters,pigs and crabs
	* added spriteloader for pig animation
	* added additional arguments for fetching sprite graphics
	  (namely status and weight)
	* converting sprites to display-pixelformat on loadtime; this
	  should improve performance will having many object inside the
	  viewport.
	
2000-06-08 Karsten <klaux@rhrk.uni-kl.de>
	* fix in World::sendMoveOp() and World::performAction. Thanks to
	  Alistair Riddoch <ajr@ecs.soton.ac.uk>
	* added module "DynDialog". This contains concepts regarding
	  a "dynamic interface system" by Kevin Lyons <kevin@nol.org>
	  (/dialogs/scratch)
	
2000-06-07 Karsten <klaux@rhrk.uni-kl.de>
	* implemented limited radius of sight in order to reduce load
	  of renderer 
	* uclient steadily measures server-connection-lag by sending
	  ping operations. The lag value gets used for movement prediction
	* added "touch" and "take" operations, which are triggered by
	  mouseclicks:
		LEFTCLICK	touch object
		LEFTCLICK+CTRL  take object (set it's ref to the player ID)
		LEFTCLICK+SHIFT display information about this object
	* bugfix for move-operation sent to the server
	  (formerly uclient sent "coord" instead of "coords", so the
	   character movement was sometimes strange, because the server
	   did not receive any coord-data)
	* new module "Environment" which  plays random birdsongs 
	  (makes the game a bit more "real")
	* fixed too small buffer in Coord::toString()
	
2000-06-03 Karsten <klaux@rhrk.uni-kl.de>
	Version 0.7.7
	* corrected offset for loading agrilan.map to (100,-70,0)
	* added Module "World" which takes care for gameworld and contained
	  entities (replaces Module Map, and takes over parts of Player
	  and Renderer)
	  World features correct container handling and movement prediction.
	  It will soon manage clientside physics (e.g. collision detection).
	* added new library "media", which does sprite (soon sound as well) 
	  loading and caching (sprite management has been formerly part of
	  module "Sprites", which will probably soon become obsulete, too.
	* Atlas::Object[] is a memory leak, replaced many occurrencies
	  of it by Atlas::Object::get(..)
	* removed obsulete modules "Map" and "Chat"
	
2000-05-29 Karsten <klaux@rhrk.uni-kl.de>
	Version 0.7.6
	* advancing to libuta 0.3.24 and SDL-1.1.3 reduced terrain rendering
	  time from > 170ms to about 50ms on my K6-350MHz
	* fixed overview map to be isometric, too
	* added moving position marker to overview map 
	* added agrilan.map created by Alistair Riddoch <ajr@ecs.soton.ac.uk>
	* added progressbar while loadings sprites or mapdata
	
2000-05-29 Al Riddoch <alriddoch@ecs.soton.ac.uk>
	* Added loader for temporary pig animations
	* Changed tree and seed to oak and acorn

2000-05-26 Al Riddoch <alriddoch@ecs.soton.ac.uk>
	* Added in loader for crab animations
	* Corrected orientation of map loader code so that the loaded map
	  is now in sync with all other coordinate systems

2000-05-21 Karsten <klaux@rhrk.uni-kl.de>
	* found memory leak ... still need to find reason
	  (Atlas::Object[] ?)
	* new sprite library implementation
	  (SpriteCache, SpriteFactory, Animation, StaticSprite)
	* paritally implemented mapping from object type to	
	  image/animation (see SpriteFactory.cc)
	  (there are now farmers, skeletons,oaks,acorns and portals)
	* changed character editor, so you may (if the server permits it)
	  create other character types apart from "farmer"
			
2000-05-18 Karsten <klaux@rhrk.uni-kl.de>
	* replaced assert(ptr != entities_.end()) by a graceful if(...)
	* raised required version of libuta to version 0.3.23
	  (this version contains some important fixes)
	* started implementation of optimized terrain renderer
	  (will do a lot of caching when it will work, currently
	   however it is disabled)
	
2000-05-16 Karsten <klaux@rhrk.uni-kl.de>
	* bugfix in Renderer::update() which caused segfault after
	  dropping an entity (though this method is still a mess !)
	* added new sight operations: set and create to map.cc
	* added "/showMap" to show small terrain map
	  (there is also a button to open this dialog)
	* started new userdocumentation userdoc.txt
	
2000-05-15 Karsten <klaux@rhrk.uni-kl.de>
	* terrain loader + renderer working but need major tuning
	  (old demomap gets loaded for testing)
	* mouse interface: leftclick to select an entity (works)
	                   rightclick to move character (does not work yet)
	
2000-05-12 Karsten <klaux@rhrk.uni-kl.de>
	* small bugfix for renderer/terrain (it caused segfault)
	
2000-05-10 Karsten <klaux@rhrk.uni-kl.de>
	Version 0.7.5
	* started implementation of terrain renderer
	
2000-05-09 Karsten  <klaux@rhrk.uni-kl.de>   
	* fix for handling error operations in cyphesis.cc (caused segfault)
	* changed timeout value to 10 seconds 
	* small fix regarding /showLog (if the Log had been used before,
	  it was not always updated correctly)

2000-05-07 Karsten <klaux@rhrk.uni-kl.de>  
	* uclient now hides the player profiles
        * intense internal cleanups
	* slightly better user guiding
	* improved character dialog (sex, type, description)
	* server timeouts are detected and reported (currently 2seconds)

2000-05-05 Karsten <klaux@rhrk.uni-kl.de>  
	* Viewport keeps track of character
	  (so you cannot walk out of the screen)
	* uclient guesses facing of entities

2000-05-04 Karsten <klaux@rhrk.uni-kl.de> 
	* new services: 
	  * "/set <registry path> <type> <value>", which allows setting
	    of flag and value from the command prompt
	  * "/mod_reload <modulename>", reloads given module
	* initial version of spritelibrary which currently supplies
	  only roxie sprite, but already differs orientations and provides
	  animation !
	* renderer does movement prediction
	
2000-05-02 Karsten <klaux@rhrk.uni-kl.de>  
	* fixed bug, which opened character editor each time, the viewport
	  was enabled
	* by default, a logfile is generated and all talk is written into
	  it 
	* static sprites move around
	* fixed bug, which distorted real name lookup, when character moves

2000-04-27 Karsten <klaux@rhrk.uni-kl.de>
	* Module Map keeps database of all seens objects
	* based on this the real name instead of IDs is shown when 
	  chatting
	
2000-04-26 Karsten <klaux@rhrk.uni-kl.de>
	* it is advisable to use libuta-0.3.22 because it fixes some
	display errors
	* integrated patch from rillian which allows to enter ircworld with 
	other names than Bad_Budduch_xx :)
	* some cosmetic fixes
	
2000-04-22 Karsten <klaux@rhrk.uni-kl.de>
	Version 0.7.4
	* new layout for dialogs. Now dialogs occupy whole viewport.
	* fixed bug which caused segfault when pressing keys on viewport border
	* using -Wall now ;)
	* using -DDEBUG for debugging and -DNDEBUG when debugging is 
	disabled (thus assert() are ignored); the option -g is _not_ 
	used, because it creates incredible big binaries and libraries
	* brushed up the dialogs
	
2000-04-16 Karsten <klaux@rhrk.uni-kl.de>
	* changed config filename from global.ini to registry.xml
	* added Player module which represents player inside the client
	  (takes key and mouse commands, etc.)
	* added new services "/queryModules" and "/queryMethods <modulename>"
	  which obtain runtime information
	* moved to libuta-0.3.20 (hotkeys, correct keymapping)
	
2000-04-10 Karsten
	* move dumb graphical stuff to renderer/renderer.cc
	  now modules/map.cc does _only_ map-data-parsing
	  (this is were the container stuff needs to get implemented)
	* new command "/flushRegistry" which flushes the registry
          back to the file, which is nice for checking values online

2000-04-04 Karsten
	* moved to libuta-0.3.19 (.18 did not build with gcc-2.95.2)

2000-04-01 Karsten Laux
	* fixed configure.in to include output of "sdl-config --cflags" 
	  in CPPFLAGS as well (needed for some "weird" installations)
	* removed obsolete check for freetype.h
	* advanced to libuta 0.3.18 (new focus handling, fixed timer)
	
	...

2000-03-01  Karsten
	* reintroducing the use of ChangeLog !!!!!!!!!!!!!!!
	  roadmap.html shall from now on only be used to describe
	  the released and planned versions


>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
	
1998-12-14  Karsten Laux  <klaux@student.uni-kl.de>

	* Added automake/conf support:
	  - Makefile.am
	  - configure.am
	  - autogen.sh (batch file for easy one-step configuration,
	    in the style of GNOME)

	* Renamed old Makefile's to oldMakefile so they don't get
	tromped on by autoconf stuff (just in case).

1998-12-16 Karsten Laux

	* local database redesign 
	  now all entities are stored in z-sorted lists which are stored
	  in a sort of array whose elements represent one gridx/gridy 
          (aka tile) on the screen

	* there is small test-prog "dbtest" which takes a mapfile reads it
	  and writes it back to test.map
	
1998-12-16  John R Sheets  <dusk@smsi-roman.com>

	* configure.in: Added error msgs to lib checks

	* Makefile.am: Use $(includedir) and $(libdir) to define
	  relative paths.

1998-12-19  Karsten Laux <klaux@student.uni-kl.de>

	* added edittext.[cc,h]: providing a simple terminal 
	  (chatwindow)

	* added player.[cc,h]: Player Class 

	* added texture.[cc,h]: Texture Class with single and animated
	  textures.

	* added media_provider.[cc,h]: just loads .pngs by now
	
1998-12-19  John R Sheets  <dusk@smsi-roman.com>

	* configure.in: Added checks for libm and libz to make sure
	  they get put into the link line; also changed libpng test to
	  check for newer png 1.0.x library, with png_set_invert_alpha
	  (not 100% sure it's right yet).

	* Also removed auto-generated files install-sh, missing,
	  and mkinstalldirs from cvs (and added them to .cvsignore).

1998-12-19 Karsten laux <klaux@student.uni-kl.de>

        * added target doc to Makefile.am (uses doc++ to create HTML, which
          is put under ./docs/HTML
	  (doc++ is found at http://www.zib.de/Visual/software/doc++ )

1998-12-22 Karsten Laux <klaux@student.uni-kl.de>

        * finally got autoheader working, nifty acinclude.m4 from kde


1999-01-24 Karsten Laux <klaux@student.uni-kl.de>

	* libu - C++ Widgets for SDL has reached an usuable state
	* start to devide up funtionality into seperate libs (database,
	comm)


1999-02-23 Karsten Laux <klaux@student.uni-kl.de>

	* moved graphic engine into seperate libisoengine

1999-02-24 Karsten Laux <klaux@student.uni-kl.de>

	* started implementing quadas protocol
	  (all comm stuff is now in libcomm)

1999-03-01 Karsten Laux <klaux@student.uni-kl.de>

	* removed isoclient (old version)
	* moved uclient to new home in cvs: /clients/uclient

1999-03-07 Karsten Laux <klaux@student.uni-kl.de>  

	* added netlib from Sam Lantinga in order to replace tcp4u, since
	  I was not able to crosscompile using tcp4u.
	  tcp4u is obsolute and will vanish soon from the sources

	... many points missing here, mainly new database and isoengine :(

1999-04-10 Karsten Laux <klaux@student.uni-kl.de>

	* implemented usage of appconf; configuration by "$HOME/.uclient.ini"
	if the file is nonexistant on startup, 
	a new one is created and filled with defaults

1999-04-15 Karsten Laux <klaux@student.uni-kl.de>

	* fixed detection of libpng
	
1999-04-21 Karsten Laux <klaux@student.uni-kl.de>

	* fixed UImage.bitmap(), it now returns const UBitmap*, which
	is valid as long as the UImage instance exists.
	* changed the usage of conffiles. these now get stored 
	in the dir $HOME/.uclient ($HOMEDRIVE/$HOMEDIR under Win32)
	
1999-04-25 Karsten Laux <klaux@student.uni-kl.de>

	* updated Makefiles.mingw32 makefiles (added -ladvapi32 to LDFlags in
	order to get appconf working; windows is strange, isnt it?)
	
1999-05-09 Karsten Laux <klaux@student.uni-kl.de> 
	
	* added to libu: uressources, ushared, usurface
  	  USurface is a C++ class for SDL_Surface, UBitmap has become a high 
	  level class
	* added main_menu to uclient
	* cleaned up .cvsignore to get clear cvs infos
	* added resources.ini from which uclient reads the list of resources
	  to load (will have to modify most of the gui stuff to use this
	  resource management and perhaps display a progressbar when 
	  loading the resources)

1999-05-09 Karsten Laux <klaux@student.uni-kl.de>  

	* integrated fonts into the resource management
	* several font references became const to reflect this

1999-05-13  Karsten Laux <klaux@student.uni-kl.de> 

	* updated to SDL 0.9.13
	* temporary removed network thread
	* the known memoryholes are fixed   
          (class UPoint has lacked a destructor,
          some missing deletes in ClientDatabase    
          -thanks to Thomas-)
	* international keyboard support enabled 
          (thanks to SDL for it's unicode implementation)
          (needs testing ... since I have only german keyboards around here)
	* the int. keyboard support should fix the "non scrolling bug" 
	on certain machines.

1999-05-20 Karsten Laux <klaux@student.uni-kl.de> 

	* integrated libmixer from Sam Lantinga (WAVs, Midi, MOD)
	* sound and music support in libu (USample, UMusic, UMixer, USound)
	* USample and UMusic loaded by UResources
	* GUI has soundsupport (configurable by ressources.ini
	  (USoundMapper)

1999-06-04 Karsten Laux <klaux@student.uni-kl.de> 

	* added new Widget UListBox
	* changed the Widget's usage of Bitmaps: backgrounds and pics
	are not copied per widget anymore; only refs get stored. This speeds 
	up the gui, however the coder has to care, that the bitmaps
	exists as long as the widget needs it (...UResources does a good 
	job on this)

1999-06-20 Karsten Laux

	* removed ubitmap and uimage; usurface cares of surfaces now.
	* added all pixelformats-handling within usurface
	* added upixelformat, upainter
	* ufont now creates indexed surfaces, so that the textcolor can
	be varied
	* removed unused code in all libs
	* replaced old libcomm by agent_stub which loads an agent 
	implementation from an .so lib 
	(configurable by $HOME/.uclient/global.ini)
	* started to switch to libtool
	* first real install target (uclient won't run from the sources
	anymore !!!!!!)
	* preliminary character editor

1999-07-03 Karsten

	* quadas agent gets data from qserver2 and sends back commands
      (no link to client's internal database yet)
	* finally correct use of the font color palette, now the fonts are not only
	  antialiased, they even look that way !

--->>> for latest stuff chechout ROADMAP
	
