*** 2003-12-31 by Andrew Dai
- Added rest of inventory slots

*** 2003-12-30 by Anders Reggestad
- Created server console command maplist to list all loaded maps
- Removed some printing when server starting

*** 2003-12-30 by Andrew Dai
- Added tooltips to widgets, they will be read from XML files as an
  attribute of <widget> and displayed if the mouse is not moved for 1 second.
  This should be made settable in Options
- Fixed a bug in pawsWidget::SetFont() causing the defaultFont's size
  to be changed when it shouldn't

*** 2003-12-29 by Thomas Towey
- Simplified call to trade logic in user manager module.
- Added logic for auto transformation - still needs a little more work and testing.

*** 2003-12-29 by Andrew Dai
- Updated implementation of binary trees to (balanced) Red-Black Trees,
  so any access will take at most O(lg n) time.

*** 2003-12-29 by Anders Reggestad
- Changed command name list to entlist on server to match name in
  psnpcclient.
- Updated entlist command in npcclient and server to create
  matching output.
- Implemented the disconnect message in the npcclient to detect
  situations where server reject npcclient when connecting.

*** 2003-12-28 by Andrew Craig
- Added a kill command to the server that kills a player right away.
- On death spawns a player above the npcroom. Temporarly used to simulate
  death.

*** 2003-12-28 by Anders Reggestad
- Fixed the handling of guikeys to terminate execution when
  an action is performed.
- Fixed time connected to be correctly updated if save on
  a character is called multiple times.
- Commented out some atm unused entries in the config tree.
- Changed key def for the demo Attack command to use F5. F1 is used
  to toggle chat window from the data/guikeys.xml file. Someone should
  look into merging this file with the data/options/keys.xml file.

*** 2003-12-28 by Thomas Towey
- Fixed some project files for the MSVC 7 build.
- Removed include reference to no longer existing header file psbehave.h.

*** 2003-12-27 by Andrew Craig
- Fixed up some more details for the initial character creation screen.

*** 2003-12-27 by Ondrej Hurt
- Made pawsListBox sortable by user :) If you click on header of a column, it sorts according to this column.
  You have to define function that compares rows first when using this.

*** 2003-12-26 by Ondrej Hurt
- Added more columns and buttons to GuildMembers tab in GuildLeader window, changed layout.
- Added functions that create prompt windows.

*** 2003-12-25 by Ondrej Hurt
- Added first version of simple prompt windows that let the user enter string, number or choose something
  from combobox

*** 2003-12-22 by Andrew Craig
- Added new dir mk/visualc6 that has the autogenerated dsp files.  It is not
  100% yet though so I had to hand edit them.  I will see if I can update the
  script to generate them correctly.
- Added in all the msvcgen stuff to do the jam->msvc convertion. Templates
  need to be adjusted but will do that over time.
- Added dummy graphic for the new char creation screen.

*** 2003-12-22 by Ondrej Hurt
- Fixed disappearing scrollbar thumb when resizing chat window.

*** 2003-12-22 by Andrew Robberts
- Fixed 'assigned_gm' column in the petitions table
- Fixed the Assign, Cancel, and Close petition commands (still missing the prompt
  for closing info)
- Added GM GUI access from the petition_manage window and added the ability to
  target a petitioner
- Added "Teleport to Petitioner" button support

*** 2003-12-21 by Andrew Craig
- Fixed up the text chat box a bit. Still one problem. When resizing the window
  the thumb in the scroll bar disappears.  Will need more debugging to figure out
  why.

*** 2003-12-17 by Andrew Dai
- Updated MSVC6 project files

*** 2003-12-13 by Andrew Craig
- Fixed up npcclient.  Not 100% but should compile and run.

*** 2003-12-13 by Ondrej Hurt
- Improved pawsScrollBar behaviour
- Made option windows prettier

*** 2003-12-13 by Andrew Craig
- Some fair sized reorganizations.  No longer use CEL persistance to send
  models across.  Instead, the things that are need like the mesh/visisble
  equipment strings are packed into a message and the client reconstructs
  the GEM item from this data.
- Not fully complete yet but is pretty good so I want to commit before I
  get too out of sync.  Expect a flurry of smaller commits over the next
  few days.
- Started wrapping the CEL entities on the client side with GEM objects.
- Part of my 'big clean up' of the code base to clean up old/outdated/poorly
  formated code. So expect some minor breakage here and there.
- Removed behaviour layer levels since we are not using those anymore
- Cleared up Celbase to remove a lot of unused functions.


*** 2003-12-12 by Andrew Craig
- Fixed up TARGET.OS as suggested by Brendon Costa and tested by dfryer to
  make sure it works on MACOS_X properly.
- Fixed up several compile issues that were reported by BusError on MacOS.

*** 2003-12-10 by Ondrej Hurt
- Added "thumb" to pawsScrollBar. Needs two images (idle+moving).

*** 2003-12-08 by Andrew Craig
- Split the load world message away from CEL persistance and is loaded now by
  a psPersistWorldRequest/psPersistWorld message set.
- Some reorganization of some CEL stuff.
    psWorld is now a seperate class and no longer a behaviour class.
    psWorld is no longer a cel entity and is just in charge of region management
    client/server maintain their own pointers to this class
    Some old and unused CEL functions removed.

*** 2003-12-08 by Ondrej Hurt
- Fixed: pawsWidget::LoadAttributes() was positioning the widget by directly manipulating with screenFrame attribute
         instead of calling MoveTo(). This caused that children of this widget were not moved with the widget.
         This fixes wrong positions of stack count labels in pawsItemSlots when used in pawsMoney.
- Fixed: You could invite yourself to a group if you entered your own name with difference in case. (e.g. "guest" instead of "Guest")

*** 2003-12-07 by Andrew Craig
- Moved camera mode changes from the behaviour class to psCharControlManager class.
  Pressing 'm' should now once again cycle through the camera modes.
- Fixed lookup/lookdown keys
- Cleaned up a lot of code.  psBehaviourActor is now just a shell of what it was and
  the only reason it is still around is because it is needed in the persistance model
  to tell if the CEL entity is an actor.

***2003-12-07 by Ondrej Hurt
- Player-to-player exchange and player-to-npc exchange are now started with two separate commands (/trade and /give)
  and two separate network messages (REQUEST_PC2PC and REQUEST_PC2NPC).
  They shared one command (/trade) and one network message (REQUEST) before.
- Fixed: turning off modal mode in PAWS (i.e. windowManager->SetModalWidget(NULL)) caused focusing of MainWidget.
         This also fixes the bug that clicking on OK in pawsStackCountWindow caused dropping od dragged item
         on ground (because MainWidget had focus and received OnMouseUp()).
- Fixed: psGUIMerchantMessages were using psGUIExchangeMessage::REQUEST instead of psGUIMerchantMessage::REQUEST
         constant. (This wasn't causing any incorrect behaviour.)
- Fixed: it was not possible to begin exchange with player without entering his name
- Fixed: it was possible to manipulate with receiving money in exchange

*** 2003-12-06 by Ondrej Hurt
- Made new general drag'n'drop system for PAWS that can drag any widgets, not just images.
- Made drag'n'drop systems for item slots and money. New class pawsDragDropItemSlot derived
  from pawsItemSlot and reworked pawsMoney take care of it.
- Added the new drag'n'drop system to pawsInventoryWindow.
- Stack count number is visible near dragged items now.
- Item count in StackCountWindow can be controlled with a scrollbar.
- Stack count in pawsItemSlots is now visible only when count>1 and when slot contains money.
- ExchangeWindow and ExchangeManager - work with new drag'n'drop and stack counts.
  New network message for moving of money.
- Removed/commented out some bits of code from pawsContainerDescr and pawsGlyphWindow that have to be
  adjusted for new drag'n'drop.

*** 2003-12-05 by Keith Fulton
- Committing patch from Ian Donderwinkel which enhances listbox functionality
  with up/down arrow keys and double-clicking a row.  Double click an item
  in the merchant window to buy it.
- Also slight opacity fade window enhancements from Ian.

*** 2003-12-05 by Andrew Craig
- Moved the mouse look code out of the psbehave class and into charcontrol
  class on the client.  Should be able to totally remove psBehave soon.
  Removed CEL calls from psmousebinds since they have been moved to charcontrol
  instead.

*** 2003-12-04 by Andrew Craig
- Updated for new CEL API.  I had to comment out some stuff because I am
  unsure of how to fix it properly. Only affects the mouse look, I think,
  which I will be moving to a seperate class anyways. Just sooner then later.

*** 2003-12-04 by Andrew Mann
- Added size calculations and checks to psItem.
- Moved stacking code into psItem with CombineStack and FindStackableAndStack
  functions.
- Moved some psItem::Save() calls into psItem functions that deal with stacks
  since stack combining and splitting can alter multiple items without the caller
  knowing the full list of altered items.

*** 2003-12-03 by Andrew Mann
- Fixed compiler warnings in pawsmoney "Not all control paths return a value."
- Fixed ambiguous msg->Add() call in psGUIInventoryMessage::Move().
- Sizes of items are now described in terms of cm of longest dimension.
    - Changed size field in item_stats database table to int(5) unsigned.
    - Added container_max_size field to item_stats database table. This field
      describes the largest size item a container can hold.  It's ignored for
      non-container items.
    - Removed PSITEM_SIZE enum.

*** 2003-12-03 by Andrew Craig
- Added in a helper function to paws manager: CreateWarningBox() to make it
  easier to build a message box.
- Added some checks to character creation on server for unique/reserved/valid name.
- Added script adding if player is on the reserved list.
- TODO: Ability to check guild name reserved and update migration table.

*** 2003-12-02 by Luca Pancallo
- Added login window to serverconsole
- Added security checks to some serverconsole pages (other will follow soon)
- You need the accessrules db table, created by create_all.sql
- Added install.txt for serverconsole

*** 2003-12-02 by Ondrej Hurt
- InventoryWindow:
    - stack count of drag'n'dropped items is now entered in pawsStackCountWindow by the user
    - money can be drag'n'dropped
    - uses pawsMoney widget instead of four independent pawsItemSlot widgets
- floating item (information about item that is being drag'n'dropped) moved
  from PawsManager to InventoryWindow, because this is PS-specific feature
  and shouldn't be in independent PAWS library
- wrote special class for floating item (inherits from pawsItemSlot) that remembers
  which window and which slot the dragged item was taken from
- server: support for moving of given count of items, not only whole item slots as before
- some pawsMoney and pawsStackCountWindow improvements

*** 2003-12-01 by Thomas Towey
- Added crafting and guild information to container description window.
- Added a pawListBox to the container description bulk slots.
- Fixed bug with crafter and guild mark ID settings.
- Fixed problem with how guild mark ID was being displayed.
- Moved around the container description window to make room for craft description.

*** 2003-12-01 by Andrew Craig
- Added first iteration of the php migration pages ( in /migration ) for
  players to save their characters.  Please see the notes in the migration.php
  file since you need to run two databases parallel with this. Also added a
  viewmigration.php page that lets you see what names are on the list and an
  update link that will update the scripts. ( Should be protected by security ).
- Added "wallet" location to progression event <item>.  Allows the event
  to give a player money.

*** 2003-11-30 by Andrew Craig
- Added check for null player name.
- Moved name generator into common utils lib.
- Removed tables related to name generation. Added in as phonics.xml
- Added random names to parents screen.

*** 2003-11-29 by Andrew Craig
- Did some checks on the login stuff to fix up some issues that I was having
- Changed database to use md5 versions of password. So update your tables!
- Cleaned up some parts of code that had to deal with the old character
  creation.
- Fixed bug in widgets.  After loading widgets should be sized correctly.

*** 2003-11-28 by Luca Pancallo
- Completed items add/remove/equip
- Added refresh of tree where needed

*** 2003-11-28 by Andrew Robberts
- Fixed /petitioner command
- Fixed petitioner "query" message, so /petitioner_list and /petitioner_manage
  windows work
- Changed the /petitioner_manage so that it uses the new way to obtain
  the security level
- Added name generator files to MSVC 7 projects
- Modified GM GUI window so that it hides buttons that the GM doesn't
  have access to

*** 2003-11-28 by Andrew Mann
- Added a name generator with some tables seeded with real name lists.
- Database version bumped for the new tables.

*** 2003-11-28 by Andrew Craig
- Added in some fixes from Brendon Costa that fix various compiler warnings.
- Added CP tracking to character creation.
- Fixed mother jobs

*** 2003-11-28 by Luca Pancallo
- Serverconsole upgrades to NPC items, you can now equip items.

*** 2003-11-27 by Andrew Robberts
- Fixed the MSVC7 solution to compile libgui by default
- Converted MSVC 7.10 projects to 7.00
- Added files to MSVC projects libgui and libpaws

*** 2003-11-26 by Andrew Dai
- Ignore list improvement
- Added /ping command to client as well as a GetPing() function to NetBase

*** 2003-11-23 by Luca Pancallo
- Serverconsole upgrades:
  - List/Edit Kas on an NPC
  - Improvements on skills/traits on NPC
  - We can now for list/edit synonyms
  - Batch upload of a csv file to load synonyms
  - We can now list/edit general KAs

*** 2003-11-23 by Andrew Craig
- Update jam project files from Brendon Costa.  Should hopefully make
  generating MSVC project files easier so we can automate the process.
- Fixed a clipping bug in paws text box that stopped text from showing.

*** 2003-11-21 by Thomas Towey
- Fixed trade skill logic.  Simple combinations and transformations are
  now possible.
- Add trade transformation constraint logic.

*** 2003-11-18 by Luca Pancallo
- More work on npc dialogues editor in server console.
  It's now usable, just missing some refresh of the treeview.

*** 2003-11-18 by Andrew Craig
- Added in sending creation choices to server.  Now runs all the
  scripts that have been selected in the creation screens.  Added in
  a new test char creation script that changes the base INT if your
  father was a mage master is selected.

*** 2003-11-18 by Anders Reggestad
- Added base option to StatOp's. Now <hp base="yes">...</hp> will
  adjust the base value. For hp,mana and fatigue the base max is adjusted.
- Added skill operations to progress system:
  <skill name="name from db">exp</skill> where skill is adjust by exp.

*** 2003-11-18 by Andrew Craig
- Moved the progression scripts out of the char creation tables and into
  the progression_events table

*** 2003-11-18 by Andrew Mann
- Fixed item hierarchy loading from database.  psItem::Load() now
  takes a second parameter and returns the parent item ID in that
  parameter.

*** 2003-11-18 by Andrew Craig
- More work on character creation.  Creates a dummy actor that allows for
  progression events to be used.  Has a faction op hardcoded in at the
  moment for testing purposes.

*** 2003-11-17 by Andrew Mann
- Moved Item UID generation and Unique Item Stats UID generation into
  psItem since it works directly with the database anyway.
- Merged Update() and Save() calls into one call that properly handles when
  the item UID = 0 (none assigned). Removed/renamed Update() calls in
  related classes to work the same way and updated callers.

*** 2003-11-17 by Keith Fulton
- Committing patch by JacobBrown for stronger password authentication.
  Also password widget now shows **** instead of actual password.
- Added new CD prop class to celbase.

*** 2003-11-17 by Ondrej Hurt
- Method pawsWidget::Load() split to a few subroutines so their
  functionality can be used separately.
- pawsEditTextBox is sending OnChange() notifications now
- First version of pawsStackCountWindow added
- First version of pawsMoney added
- Exchange window: removed inventory part, removed scrollbars
  which were used to set amount of transfered money

*** 2003-11-17 by Keith Fulton
- Added one more enhancement to PAWS alpha fade from Ian Donderwinkel.
  Not sure it works 100% right but still getting better.
- Fixed typo in MSGTYPEDRUPDATE which has been there for years.
  Also changed all the MSGTYPE #defines to be an enum so we don't hit
  duplicate id's (which we had a problem with this weekend).

*** 2003-11-16 by Luca Pancallo
- Update to view npc in server console
- Added view of specific ka to add trigger, attitude and responses.

*** 2003-11-16 by Ondrej Hurt
- Added 'reversed' mode to scrollbars - direction of scrollbar value growth can be reversed to grow
  from bottom to top or from right to left.
- ExchangeManager: (work in progress)
    - Moved code from function to methods so we can have more exchange types
      (using polymorphism when handling messages).
    - Some more restructuring of code in ExchangeManager.
    - Created new exchange type PlayerToNPCExchange that is used when player gives items to NPC.

*** 2003-11-16 by Andrew Robberts
- Removed the GM button from the chat window
- Added /show_gm command to show the GM window
- Switched the GM window to a tabbed interface

*** 2003-11-14 by Andrew Craig
- Added basic php admin page for changing race starting location and
  initial CP values.

*** 2003-11-14 by Andrew Robberts
- Added /teleport_to, /slide, /slide_me commands for GM lvl 1 use
- Fixed admin commands to check the security level using GetEntityType()
  to decide what commands need to be (un)subscribed
- Create basic GM GUI

*** 2003-11-14 by Keith Fulton
- Added 5 function commands for auto-selecting players and NPCs near you.
  Enhanced server to handle clearing of client targets.
  Thanks to Javier Fernandez-Ivern for this code.

*** 2003-11-14 by Thomas Towey
- Got a good part of the item transforation working.
- Updated pscharacter to persist the transformation info so it will
  persist to the event.
- Added some things to the datbase.

*** 2003-11-14 by Andrew Craig
- Added basic upload new character framework.  It is very fragile
  at the moment and only takes the name/race/gender.  But you can
  at least create a new character if needed.  Next step is to make
  robust and start using some scripts to make the character based
  on creation choices.
- Moved PSCHARACTER_GENDER and PSCHARACTER_RACE into
  src/common/net/charmessages.h so both client and server can share.


*** 2003-11-13 by Andrew Mann
- Audit of psItem to remove some duplicate members.
- Commenting of psItem instance related functions.
-  UID clarifications.  Item UIDs are assigned exclusively through
   psCharacterLoader.  This can be moved but probably should not
   be assigned by the database due to both speed and the fact that
   database call for returning an insert id is limited to 32 bits.
-  Item cloning/duplication clarifications.  It shouldn't be done!
   Added psItem::SplitStack() to address the splitting of stacks
   any other situation where item duplication may arise except for
   strictly GM related functions can probably be thought of in a way
   that does not require a dupe. Any function (such as SplitStack())
   that can potentially create items out of nowhere should be
   carefully coded to avoid any potential exploit.
-  Added checking to the code that splits stacks.  Now stacks will not
   be split if the size of the new stack is invalid (0 or >= original
   stack size).

*** 2003-11-11 by Keith Fulton
- Revamped how keys are bound to game functionality.  I think this way
  will be a little more understandable and scalable.
- Added macro scripting to keys.xml now, so keys can be tied directly to
  commands, or sets of commands. F1 is example key, which now does
  "/say Attacking $target; /attack".

*** 2003-11-11 by Thomas Towey
- Added Trade Skills functions to server console index.
- Added som missing get functions to psItem.
- Added missing field to psItem get and save functions.
- Fixed some default values in GetFieldArray.
- Fixed transformation logic in workmanager.  I can now create 'Gobblygook'.
  Still need to update client as well as test creating 'Batter'.

*** 2003-11-11 by Luca Pancallo
- Checked in the work of Amin on register account pages
  It still need work. You need PS site pics in ../pix
- Modified the accounts table adding the fields needed for the registration
  web page.

*** 2003-11-11 by Andrew Craig
- Removed cyclic reference to psengine.  Nobody that is created inside the
  psengine should maintain a reference to it.  Instead use the psengine in
  globals.h
- Added in the basic life events screen to allow people to pick and choose
  life events. Can create sub-events. For example, if "Married a Miner" is
  picked then "Spouse found a diamond" is a new event that is added.
  See the char_create_life_relations table to see.

*** 2003-11-11 by Andrew Dai
- Added basic support for flashing buttons and added functions to set/get
  the current tab button id

*** 2003-11-10 by Keith Fulton
- Fixed npcs to chase you correctly when you attack them from afar or
  run away during a fight.

*** 2003-11-10 by Andrew Dai
- Added preliminaries of tabbing/windowing system to chat window.

*** 2003-11-09 by Thomas Towey
- Fixed bug in pscharacterloader for deleting item instances.
- Made the spItem function GetIsContainerEmtpty name's consistant with other bool functions.
- Changed the transformItem logic in the workmanager code thanks to Andrew M.

*** 2003-11-09 by Anders Reggestad
- Added handling of editing of guild level rights.

*** 2003-11-08 by Thomas Towey
- Fixed goal item bug and added function to check for empty containers.
- Updated database to for trade testing.

*** 2003-11-08 by Thomas Towey
- Added a bunch of code to do trade skills combinations.  Still needs more testing.
  Need to debug new problem with the mind slot.

*** 2003-11-08 by Anders Reggestad
- Added autoID attribute to the pawsListBox. This will use the
  listbox ID and row/cols to automaticaly calculate IDs for the
  listbox child widgets.
- Added log level LOG_NPC, use this for all npc login on server.
- Changed guild security level DISBAND to EDIT_GUILD. Was used
  for seting of secret and disbanding.
- Added command /guildname to change guild name with security level EDIT_GUILD.
- Changed pawsEditTextBox to call OnChange when enter is pressed.
- Added edit of secret guild flag and guild name to guild window.
- Increased db version to reflect changes in fields.

*** 2003-11-08 by Keith Fulton
- Commiting patch by Jacob Brown to show the entity labels of different types
  of players in different colors.  It does this by persisting the security level of
  each entity down to the client.  This info is now available in the chardata
  CEL PC.

*** 2003-11-07 by Andrew Robberts
- Fixed jamfiles to compile the new libpaws and libgui
- Might not be 100%, so watch for bugs

*** 2003-11-06 by Keith Fulton
- Split PAWS into PS-specific and game-independent libraries.  Independent
  lib is now in src/common/paws.
- Added basic chase behavior to NPC scripting.

*** 2003-11-06 by Andrew Dai
- Added the basic pawsTabWindow widget, all the child buttons of the widget
  will act to select a window with an id 100 higher. The starting button ID
  is 1000 and the window associated with it is 100.

*** 2003-11-06 by Anders Reggestad
- Added pawsCheckBox standard widget

*** 2003-11-06 by Keith Fulton
- Fixed entity labels to use no anti-aliasing in fonts.  This still looks
  kinda bad. Probably to fix it we need to render the proc tex with a larger
  font, so we get a nicer resolution to display.
- Augmented PAWS borders to look a little better.  new widget function
  GetBorderStyle() is now used for drawing all line-based borders.  This
  is "raised" by default for all widgets.  I made text box and edit box "sunken"
  just to enhance this a little bit.  Later we will probably want an xml attr
  for this in the widget loader.

*** 2003-11-5 by Anders Reggestad
- Removed the total and num attributes from listbox widgets.
- Added sending of guild level info to client.
- New SelfPopulateXML function and SelfPopulate should now work on every
  widget where SelfPopulate is overloaded in the widget to insert correct
  values.
- Fixed broken SelfPopulate code. Changed name once more on the XML
  SelfPopulate function to SelfPopulateXML.
- Added function FindWidgetXMLBinding to the pawsWidget to get
  child widget with a given xml binding.

*** 2003-11-4 by Keith Fulton
- Fixed respawn of npcs to superclient and fixed npc brain reset on death, so
  that they start fresh when respawned.

*** 2003-11-4 by Anders Reggestad
- Added sending of members to guild window
- Changed to use the SelfPopulate() function instead of PopulateSelfFromXML to
  populate the pawsListBox widget. This to enable for SelfPopulate from
  a iDocument node.
- Added a AppendFormat function to psString. To allow for formating in
  an append situation.

*** 2003-11-4 by Ondrej Hurt
- Entity labels:
  - Fixed screen flashing caused by procedural texture rendering code.
  - Removed some unnecessary CS calls (engine->Prepare(), engine->Set/GetContext())
  - Fixed some errors in switching between visibility modes.

*** 2003-11-03 by Keith Fulton
- Made significant changes to CEL persistence tonight and how entities are
  removed from the world.  The old way, cel persist msgs were used for items
  but disconnect messages were used for all players instead being done
  consistently.  This made CEL persistence removal of NPCs not work.
- Now all entity removal is handled the same way, and now superclient
  handles disconnects correctly for items, actors and npcs.
- Added sector support to spawn ranges and added a range for our wandering
  NPCs.  Now NPCs will spawn in the area randomly and you can kill them
  ad infinitum.

*** 2003-11-2 by Luca Pancallo
- Added a treeview to visualize NPCs triggers defined on db.
  It's just a start.

*** 2003-11-2 by Anders Reggestad
- Moved the current guild window into guild join window.
- Created basic guild window.
- Created client command /guildleader to open guild window.

*** 2003-11-3 by Ondrej Hurt
- In pawsMenu:
  - fixed wrong clipping of graphical output
  - menu items that open submenu on activation are now labeled with "Right Arrow" image
  - greatly simplified/reworked/fixed internal event-delivery and menu-destruction system
- In configuration windows:
  - virtual method pawsConfigSectionWindow::IsDirty() gets default implementations
  - all IsDirty() implementations in pawsConfigSectionWindow subclasses removed
  - proper setting of 'dirty' flag for all existing configuration windows
- Added OnChange() event to pawsWidget. It is currently called by pawsRadioButtonGroup only.

*** 2003-11-2 by Andrew Craig
- Fixed sending initial equipment messages to client.  celPcCharacterData::Load
  was not correctly reading the saved buffer.

*** 2003-11-2 by Keith Fulton
- Fixed combat to let npcs fight back.  There were several issues but the
  main problem was that the npc psCharacter was not having SetMode(combat)
  called, so its queued combat events were being skipped.

*** 2003-11-2 by Andrew Craig
- Added new tables for the life events area of the character creation.
  At the moment the server just caches this data. Next step is to send
  to the client to display.

*** 2003-11-2 by Luca Pancallo
- Expanded list of functions needed on server console
- Added some functions to view/edit quests

*** 2003-11-2 by Anders Reggestad
- Added util.php for common function. myquery is a wrapper for mysql_query
  that have error handling.
- Some more work on the server console for spells.

*** 2003-11-2 by Keith Fulton
- Fixed out of range message to work properly after previous network changes.
- Fixed death perception to really stop things, and fixed crash on combat
  events when target is null.  Target is null because the hate list isn't working
  right yet.  Wandering npcs will stop and face you if attacked, but their
  attack back doesn't work right yet.
- Fixed crash on loot message.


*** 2003-11-2 by Andrew Craig
- Cleared up some of the old upload character code to make way for new uploading.
- Made PAWS widgets take into account the borders (if present) for Mouse buttons
  presses.
- Fixed some of the PAWS clipping issues in the pawsTree stuff. Not 100% but fixes
  most serious problem.

*** 2003-11-1 by Thomas Towey
- Added three new trade database tables.
- Added psTrade to bulk objects.
- Added two functions to cachmanager to support trade combinations and
  transformations.
- Added a /use command for containers.
- Replaced push with use in interactive menu.  Still can not get it to apear when
  item is selected.

*** 2003-11-1 by Keith Fulton
- Fixed so textures on entity labels don't all override each other.  This
  happened because engine->CreateBlackTexture() stupidly searches for the
  name and returns the existing texture if present, and this code did not
  use unique names.
- Fixed psCharacter::SetMode to turn off combat mode for player when target
  dies.

*** 2003-11-1 by Anders Reggestad
- Added spell list to the www serverconsole.
- Removed old quest system.
- Added spell countdown/cancel/interrupt window.

*** 2003-11-01 by Ondrej Hurt
- Added first version of labels hanging above characters (entity labels).
- Entity labels in "on mouse over" mode are now just hidden and shown, instead
  of being deleted and recreated again.
- Fixed: server crashed when loading of character failed.

*** 2003-10-31 by Keith Fulton
- Added death perceptions to superclient.  Superclient should halt whatever
  behavior is running currently and not run anything else after death.  I have
  not tested this yet fully, because combat is still not 100% correct.
- Cleaned up combat code more, and fixed networking of combat events so
  that bystanders can also see the action.  CS is not reporting actions
  correctly for override actions, which means that the chars don't always stop
  their attack moves when they should.  I will fix this tomorrow.

*** 2003-10-31 by Anders Reggestad
- Added support for <train/> in npc dialog scripts.
- Added a 20% profit to merchants on selling/buying
- Added price to all items in db.
- Added server command /factions to print faction tables.
- Fixed some bugs in the faction code.

*** 2003-10-29 by Keith Fulton
- Added quest list window and quest notes editing window.  Use /quests
  to view and edit your assigned quests.
- Added xml autopopulate data system to pawsWidget.  Now it can take xml
  string and look for child widget names as <childwidgetname> nodes and
  pass the iDocumentNode to each child widget to self-populate.

*** 2003-10-29 by Anders Reggestad
- Added log level LOG_LOAD, to turn on/off loading of network load.
- Fixed an unhandled message in the server. The heartbeat message wasn't handled.
  That caused a waring to be given.
- Added setlog/showlogs commands to npcclient.
- Removed some tabs from the petition code.

*** 2003-10-29 by Keith Fulton
- Modified GUI to handle per-widget font definitions and colors.
- Also added shadows attr on button definitions, which gives a dropshadow
effect on the text.  See shortcut window and chat buttons for examples.
- Also modified border drawing so that different widgets could have different
color borders.

*** 2003-10-29 by Anders Reggestad
- More code cleanups.
  - Added some comments.
  - Removed the internal spawn message in the spawnmanger. This isn't needed
    anymore with the new EventManager that handle both messages and events
    in the same thread.
- Changed the dead_remaind_time not to be multiplied by 1000 when
  checking for respawn. dead_remaind_time is in msec. All other times
  in DB are msec.

*** 2003-10-28 by Thomas Towey
- Cleaned up some unused locals in the pawswidgit header.
- Fixed a bug with an uninitialized local variable in shortcutwindow.cpp.
- Added questmanager to the apppsserver visual7 project file.
- Added workmanager to the apppsserver visual7 project file.
- Added workmanager source files to CVS.
- Initailized workmanager in psServer.

*** 2003-10-28 by Andrew Craig
- PAWS now clips children using a ClipToParent() function to figure out the
  allowable clipping region. It then sets this in the graphics2D.  Each widget is
  responsible for setting it's clipper.

*** 2003-10-27 by Thomas Towey
- Cleaned up some unused locals in the pawswidgit header.
- Fixed a bug with an uninitialized local variable in shortcutwindow.cpp.

*** 2003-10-27 by Anders Reggestad
- Did some more cleanup in the old DB interface. Removed all deprecated functions.
  Still some functions left, but that has to be another time.
- Moved the msgstrings from pserver into cachemanager. The common_string table
  is now stored in two diffrent structures, one csStringHash and one csHashMap.
  Might consider doing something with this!

*** 2003-10-26 by Keith Fulton
- Added <run scr="kill"/> operation to npc scripting, so progression scripts can
  be run now also.  Now quest completion in test quest gives you 50 W pts.
- Also added column "quest_id" so that Luca can use it in the web editor.
- Added <give> script operation so NPCs can give items to people on quest completion.

*** 2003-10-26 by Andrew Craig
- Fixed up the gui short cut keys.  So now F1 should hide the chat window again.
- Fixed up jumping when space was pressed inside chat window.
- Fixed saving for keys in data/options/keys.xml
- Cleaned up some of the code relating to key config stuff.
- Small fixes for main char creation screen.

*** 2003-10-26 by Anders Reggestad
- Created a DoDamage function in the combat manager to be called when
  someone do damage on someone. This will 0 HP kill the target. This
  now allow for killing of a character by use of spells.
- Protected the log filter from being initialized more than once.
- Changed server command setvar and set showvars to setlog and showlogs.
- Added printing of skills to the /liststats <player> server command.
- Added fix for using null pointer to mousebind in client.
- Initialized the active_located to the npc position on connect.

*** 2003-10-24 by Keith Fulton
- Added a master quest table to database and enabled caching of this table
  in the cachemanager.  Will implement quest assigment and completion
  tomorrow.
- Added quest assignment tracking to npc scripting and to character class.
- Quest Manager on server arbitrates this and will handle the GUI.
- Also structured psCharacter loading a little more instead of having the world's
  longest function there.
- Now smith will assign a quest when you say 'quest please' and mark the quest
  as complete when you say "done".

*** 2003-10-24 by Anders Reggestad
- Removed/added some debug output.
- Fixed a test in ParseResponseScript to check for empty strings as well as
  null strings.

*** 2003-10-23 by Keith Fulton
- Added OverrideAction message which sets that directly rather than depending
  on DR messages to do it and correct it later.
- Added scripting language to NPC responses table to allow for richer reactions
  to trigger events.  This will be followed by a generalization of triggers as well
  so that all quest scripting can be done with these two mechanisms.
- Say 'hello' to the Smith NPC to see him say a response and greet anim you.

*** 2003-10-23 by Andrew Craig
- Fixed up the fingering window to be working again somewhat.  Still large
  parts of the code commented out that need to be reviewed and removed or
  integrated back in.  Some things are still missing but those are because
  there are support requests into CS to fix some of the key parsing things
  ( so saving keys is not done yet ).

*** 2003-10-23 by Andrew Robberts
- Added horizontal and vertical mouse sensitivity

*** 2003-10-22 by Andrew Robberts
- Added an invert mouse option to the mouse config window and added invert
  mouse functionality.
- Moved psMouseBinds from psPawsManager to psengine

*** 2003-10-21 by Keith Fulton
- Added capability for listboxes to parse xml structures and auto-populate
  their rows and columns from them.  Text labels and pawsItemSlots can self-
  populate from tags as well.  The Loot window uses this to transfer
  loot list now.

*** 2003-10-20 by Andrew Craig
- Added in the auto run and jump to the new control system. Jump is space
  and autorun is TAB.

*** 2003-10-20 by Keith Fulton
- Committing patch by Kronon for /clear command and for /advisor and
  /advice commands.  Not tested yet but will test after resynching with
  new CS cvs.
- Fixed a bunch of "new" signed/unsigned int errors.

*** 2003-10-20 by Andrew Craig
- Changed how PS handles keyboard events for character movement.  Now there
  is a psCharControlManager that manages all the details when controling
  a character.  This combines the psKeyBinds and the psbehavour details
  together in a logical place.  There are still large areas of the code that
  are commented out at the moment as the rest of the stuff is brought into
  play but thought it important to have this much in to keep things in sync
  when using the latest CVS of Crystal Space.

*** 2003-10-19 by Anders Reggestad
- Added some entries to the npc_triggers table, to have NPC respond.
- Fixed some indentation.
- Some adjustment to the shortcut window. Prevent the scroll bar from
  being displayed under the lowes row of buttons.

*** 2003-10-19 by Anders Reggestad
- Fixed proper drawing of listboxes without borders.
- Fixed som inconsisten use of 600 and 640 for scaling.
- Added the old chest to the world. Could be used for container testing :)
- Changed the inventory window to use a list box for bulk slots.
  This allow for more bulk slots.
- Changed the exchange window to use a list box for bulk slots.
  This allow for more bulk slots.
- Updated bulk size to 32 items.
- Fixed inconsisten use of casing in slot nameing.

*** 2003-10-18 by Keith Fulton
- Minor bug fixes in networking bounds checking.
- Made several minor fixes to superclient so that dynamic guard behavior
  works again.
- Also fixed crash on quit cmd in superclient.

*** 2003-10-18 by Thomas Towey
- Added code to display items inside container on container description window.

*** 2003-10-18 by Anders Reggestad
- Added command /train to start training with a trainer.
- Added trainer_skills table to DB. This is the skills a trainer
  will train in.
- Added new psTrainerInfo to hold skills trained by trainer.
- Created a K Factor scroll bar in the info window. This K factor
  is stored in the engine and send when a cast command is sent to
  the server.
- Updated with lates magic rules.
- Added practice of weapon skills when hitting an opponent.
- Fixed a bug in the initialization of the weapon skill array.
- Added filter button to the skill window.
- Added dynmamic context menues. Check if dead for looting.
  Check for merchant for trade icons.
- Changed exchange and trade sytem to use RANGE_TO_SELECT for
  range check. This is the same value used in gem to open
  context menues for this actions.
- Added kill event in progression event table.
- Changed progression call from combat to start an event.
- Fixed an infinite loop in AddExperiencePoints. No obues indication
  client was working ok!!!
- Changed DB version, because of changes in tables.
- Added basic progression of skill Z(skill)/Y(max)/P(practice) values.
  - Updated skill table to include: description, price and practice_factor.
  - Updated character_skill table to include: max and practice values.
  - Included adding of practice points to sucessfull casing of spells
    so skills for ways are possible to train.
- Changed skills from float to unsigned ints.

*** 2003-10-17 by Keith Fulton
- Added psMoney::ToUserString which makes a nicer human-readable phrase from the
  money members.
- Modified loot messages to use this string for money.
- Made loot window look better and enabled the images on the left.
- Added xml tag headings="no" to <columns> tag of listboxes.
- Added tag <offset> to pawsItemSlot widget defs.  default is still 8,8,32,32.
- Added progression event call to combat after you kill an npc.

*** 2003-10-16 by Keith Fulton
- Added combat sound effects.  Sounds MUCH more interesting now while fighting.
- Updated some sounds to have better wav files.
- Added loot money handling.  Still doesn't use Trias, etc. but I don't know
  that system yet.

*** 2003-10-16 by Andrew Mann
- Rolled libpaws.vcproj back to 1.21 and re-added pawscontainerdescwindow.cpp
  and .h to the project in Visual Studio .NET.
  It appears that VS .NET 2003 project files are not readable by VS .NET,
  but they share the same extension.
  Please avoid comitting project files (.vcproj) created or modified by
  VS .NET 2003 until a solution is reached.

*** 2003-10-16 by Anders Reggestad
- Created new skill window with basic behavior
  - Used stats button on meny to display, this will change when a npc
    for skill training is created.
  - Most of the client side is done.
  - P is added for debug while tuning progression system.
- Fixed saving of looted items to db.

*** 2003-10-15 by Keith Fulton
- Added Roll button to Loot window.  This causes the selected item to be
  randomly allocated to someone in the looting group.
- Also added a SendGroupMessage function to actors.  This will automatically
  broadcast the message to all members of a group if the actor is in a group,
  or just send the actor the message himself if he is not in a group.

*** 2003-10-15 by Andrew Craig
- Added change by CHP Dekker to allow mouse turn to have an acceleration.

*** 2003-10-13 by Thomas Towey
- Moved Mind slot to better position.
- Added a container description datafile called containerdesc.xml.
- Put mug in guest inventory to test mind slot.
- Put a mug on top of the anvil for container testing.
- Made mug envisionable.


*** 2003-10-12 by Keith Fulton
- Fixed crash in loot window when not initialized properly.
- Added error checking to check total columns in listbox vs. how many columns
  are actually supplied.
- Added error checking to creation of widget in pawsListBoxRow on badly
  specified listbox columns.
- Fixed inventory assignment of loot to looter inventory.  Still does not save
  properly on exit, but is visible after looting.
- Fixed model view room for big iPolygon3d removal, which Jorrit committed
  today.  Requires CS from today.

*** 2003-10-12 by Andrew Mann
- Added some buffer checks to the network code.
- vsprintf changed to vsnprintf.

*** 2003-10-11 by Andrew Craig
- Added check to main char creation screen to make sure race is selected
  before moving to other screens.

*** 2003-10-11 by Keith Fulton
- Added loot window, loot context menu for NPCs and loot button images.
  Adding the looted item to inventory doesn't work right now and I'm
  not sure why not.
- Now looting checks  to see if you were the killer of the mob or a
  member of the group that killed the mob.  If not, you are not allowed
  to loot.
- Also changed class name for "Group" to "PlayerGroup" just to be less
  ambiguous.

*** 2003-10-11 by Andrew Craig
- Redid how pawsListBox loads column data.  Now can use fuller widget
  definitions for columns.  See pawslistbox.h for more info on how it works.
- Changed over all existing listboxes to use this.

*** 2003-10-11 by Anders Reggestad
- Added <exp>expression</exp> operation to the progression script system. Will
  add expression experience points to the actor.
- Added sending of experience points and progression points to the statDR
  message.
- Added display of experience progression bar and progression points.
- Updated clock when infowindow is created. The info is in the client
  no point of waiting for the next clock update, to display the clock.

*** 2003-10-10 by Andrew Craig
- More work on the character creation.
- Made the childhood screen somewhat functional with the most important data there.
- Added network messaging for this window
- Added some sample childhood data to the database.

*** 2003-10-08 by Keith Fulton
- Added /loot, /buy, /sell commands to Interact window.  Other preexisting
  commands should probably be changed to send commands to CmdHandler
  like these new ones.
- NPC now displays these commands in the context menu instead of pickup, etc.
  like Items use.
- Updated spawnmanager to use variable delay in removing dead npcs.
  Field used is dead_remain_time in npc_spawn_rules and is given in seconds.

*** 2003-10-08 by Andrew Craig
- Reworte a portion of the psServerCharManager to make the Moving of items around
  in the inventory screen more code readable by removing the strncmp's and replacing them
  with a nice switch().
- Added checks to see if an item is allowed to go in desired slot.
- Fixed inventory screen to reflect item not moved.
- Hit a wall when trying to go from PSCHARATER_SLOT -> PSITEMSTATS_SLOT so created a
  slotmap in the cachemanager to map the char slot to item slot.


*** 2003-10-08 by Thomas Towey
- Added mind slot verification routine that fails for glyph items, for now.
- Added a system message to the user about their success or failure envisioning.

*** 2003-10-08 by Andrew Craig
- Added skeleton versions of the paths/childhood/life events/summary screens
  for character creation. They are all totally empty for the moment except for
  the navigation buttons ( which work ).
- This allows me to start work on the upload message as well without having to
  have all the windows totally finished as well.

*** 2003-10-08 by Anders Reggestad
- Added GetPowerLevel function to character to get the current
  power level when casting spells.
- Added <power_level/> tag to the progression expression system, that
  return the power_level of the casting actor.
- Added setting of spell casting to character mode.

*** 2003-10-07 by Thomas Towey
- Added in an empty goal verification function for items dropped in mind slot.

*** 2003-10-07 by Andrew Craig
- Added in a new PAWS widget pawsSelectorBox.  This is a widget that has
  two list boxes and arrows to move between 'available' items and 'selected'
  items.  First use will be in the life events screen to build your selected list
  of events. Widget is not 100% yet but is stable enough to commit.
- Made psengine a global variable.  This has 2 good things:
    1) Easier then asking the iObjectReg all the time
    2) Prevents circular ref's for items that want to maintain an engine pointer.
- Fixed a problem with celclient not releasing it self properly.

*** 2003-10-06 by Anders Reggestad
- Changed progression script to handle more generic expressions for calculating
  values.
- Addes saving and loading of experience_points and progression_points.
- Created a casting spell effect and fixed a bug in the client that
  caused it to crash when sending a not legal spell effect from server.

*** 2003-10-06 by Keith Fulton
- Added addition loot rule specification to psCharacter, which allows for
  both generalized and specific loot now on an npc.
- Moved ChestBehavior functionality directly into gemActiveObject.  This
  allows gemNPC to override it and provide its own context menus, etc.

*** 2003-10-05 by Thoms Towey
- Fixed MSVC 2003 compile error by casting pow paramater as float
    in combatmanager.cpp and pscaharacter.cpp

*** 2003-10-05 by Andrew Mann
- Added visibility distance to items.
-   Added virtual function GetBaseAdvertiseRange() to gemObject.
-   GetBaseAdvertiseRange() override in gemItem to retrieve visibility
    distance from psItem.
-   float GetVisibleDistance() added to psItem.
-   float GetVisibleDistance() added to psItemStats.
-   visibility_distance field added to database table item_stats.
-   -----------DATABASE VERSION BUMPED TO 1016------------
-   psItemStats::ReadItemStats updated to handle visibility_distance.
-   gemObject::InitProximityList and gemObject::UpdateProxList updated
    to compare range against GetBaseAdvertiseRange() of source and targets.
- EntityManager::CreateItem() was using psItem::GetCurrentStats() to get to
  the current mesh name.  Changed to use the wrapper function
  psItem::GetMeshName().  The concept of "base stats" and "current stats"
  should be invisible to pretty much everything in the server.
- Fixed a bug in the construction of psCombatEventMessage that would cause
  a NULL pointer dereference during validity checking if the combat event
  type was not understood.
- Added dynamic proxlist support. Read on for details...
    The purpose of the dynamic proxlist is to help with situations where a
    number of moving objects are in close proximity generating updates.
    In such situations the bandwidth required to continuously send updates
    to all clients is extreme both for the server and especially for the
    clients.
	To reduce this load, we use a method of shrinking the radius used to
	populate proxlists.  When the number of player entities in a proxlist
	player (entities with clients) population run exceeds a compile-time
	threshold, the radius for the next proxlist population run is reduced.
	This continues until the range is 0 or the population drops below the
	upper threshold.
	When the population drops below another compile-time threshold, the
	radius is increased.  This continues while the population is below the
	low threshold and the radius is less than the desired radius (fixed at
	100 for now).  The settings are located in psconst.h and documented
	there as well.  These should be tweaked, but getting enough people
	online to find good numbers may prove to be a challenge.


*** 2003-10-05 by Andrew Craig
- Re-wrote the pawsRadioButton widget to be easier to define in XML
  and to behave better ( ie clicking on label will now activate the
  button as well ).  See pawsradio.h for example of XML format.
- Some more work on the parents screen. Added in boxes for parent names
  and radio buttons for parent statuses.

*** 2003-10-05 by Keith Fulton
- Added loot_categories table, which contains probabilities and item
  distribution for NPC loot when they die.  This is loaded into
  SpawnManager and calculated when they die.  The psCharacter now holds
  an array of lootable items, waiting for implementation of looting GUI.
- Added personal loot category to specific NPCs and added WX progression
  stats to the characters table also.  X=experience_points and
  Y=progression_points.

*** 2003-10-05 by Andrew Craig
- Added some more stuff for the parents window. Basic form is there now.
  Still have to add the parent name/status fields.
- Added a sample religion to the database for testing in the parents screen.

*** 2003-10-05 by Andrew Robberts
- Added mouselookon and mouselookoff keyinput commands
- Added mouselook option for the mouse
- Implemented the pscelclient SetMouseLook function that had a prototype
   but was never actually implemented

*** 2003-10-04 by Andrew Craig
- Added a temp define #PAWS_CONSTRUCTION in pawswidget.cpp that will
    a) make the widget movable/resizable if shift-click
    b) dump the widget position if alt-click
    Useful for getting good widget positions when building screens.

- Added a new basic pawsComboBox for a drop down list of selectable items.
- Updated the libpaws.vcproj file for new file pawscombo.h/cpp.
- A complete re-write of the pawsBorder class.  Now supports graphical
  borders by using 8 different images. 4 for the corners and 4 for each side
  that are tiled to fit the widget it frames.
- Added a data/borderlist.xml that defines the border styles.
- Added a art/gui/border dir to place border images in.

*** 2003-10-04 by Andrew Mann
- MsgEntry now has a boolean member named 'overrun' that should be
  checked before sending packets and at appropriate places during
  packet decoding to tell if the Add*() or Get*() requests on the
  message would have overrun the buffer.  The MsgEntry class will
  not allow the buffer to be overrun, and will simply return bogus
  (0 or NULL) data on a request that would do so.  It should be
  sufficient to check the overrun member after performing all Get*()
  or Add*() calls, but before using the result.
- Some psMessageCracker derived classes were overshadowing the base
  class member named 'msg' with a constructor parameter of the same
  name.  These have been fixed.
- Added a boolean member named 'valid' to psMessageCracker base class
  this member is set depending on wether encoding/decoding generates
  valid results.  The value of this member should be checked before
  using the results.
- NetBase::SendMessage() now checks the overrun member of the passed
  MsgEntry and generates a Bug() without sending the message if
  overrun is true.  If the valid member of the psMessageCracker
  derived type is checked and properly acted upon, this should never
  be reached.
- Collectively the psMessageCracker::valid and MsgEntry::overrun members
  allow failure status due to message parsing at any level to be reported
  back to callers so that it can be handled appropriately.
- Network related log messages turned on by default now.  Please keep this
  set until we are sure there are no bugs with the extensive changes to
  packet and message handling.
- Added boolean member named 'valid' to psCelPersistMessage as well.
- Removed 'valid' from psCelPersistMesssage and instead
  psCelPersistMessage is now derived from psMessageCracker.
- psDRMessage and psStatDRMessage are now derived from psMessageCracker.
  The network encoding is slightly different since the data buffer now
  has the length prepended. The net version has been bumped for this.
- ----------------------------------------------------------------
- --------------PS_NETVERSION BUMPED TO 0x0013--------------------
- ----------------------------------------------------------------
- Begining of changes to all classes that send messages by calling
  MsgHandler::SendMessage() (or similar functions), or implement
  iNetSubscriber.  These classes should check to ensure that messages
  they create are created correctly before sending, and messages they
  handle are parsed properly before acting on the results.  Both of
  these situations can check the 'valid' member of the psMessageCracker
  derived message parsing class after construction.
- GroupManager, GuildManager, NetManager, NPCManager now handle message
  creation/parsing status.
- All server 'manager' classes should now handle message creation/parsing
  status.
- psCharacter::CreateMessage checks for and reports message overrun.
- Maximum message length is now 100,000 bytes.  The net protocol version
  has been bumped for this.
- ----------------------------------------------------------------
- --------------PS_NETVERSION BUMPED TO 0x0014--------------------
- ----------------------------------------------------------------


*** 2003-10-03 by Keith Fulton
- Extended game events to be conditional on gemObjects if you use the
  subclass psGameObjectEvent.  If you use this, you don't have to do
  anything else--and your Trigger() function will only be called if
  the object is still valid.
- Ported script events to use psGameObjectEvent.  Needs to be tested.
- Ported combat events to use psGameObjectEvent.  This prevents the
  server from crashing if you disconnect while fighting.  Also made a flag
  on every entity for alive/dead, and made combat events not execute if
  the target is "dead".
- Fxed GetStatDRData so that caller can request certain data be sent. This
  fixes the problem with the target's heal rate being way too fast.

*** 2003-10-03 by Anders Reggestad
- Updated some progression script operators with some new
  parameters. persistent="yes|no" to script nodes to make a choise if
  they should be persistent when a player logout. Added a count
  to itemOp to be able to create a pil of objects.
- Created a text message to the client when finished casting a spell.
- Added a 0.2 possibility for spell failure. Need rewrite that
  later to match rules.

*** 2003-10-03 by Andrew Mann
- Formatting in message.h adjusted to be readable.
- psMessage::SetSize() should now correctly handle endian issues.
- More bugfixes to network code:
-   Multipackets now check the validity of received data before trying
    to pull sub packet data out of the ether.
-   Message warns if Add() functions would overwrite the allocated buffer.
    Note that at this time messages longer than 2048 bytes will be truncated
    on the receiving end.  This is not a change from previous behavior, you
    just get a Debug(LOG_NET) message about it now.  We may want to increase
    this size (see message.h constructors).
-   Message Get*() functions will no longer read beyond the end of the buffer.
    They will advance the current pointer to the end of the buffer and return
    a 0 or NULL (as appropriate for the specific call).  Some message crackers
    may not expect this behavior - that's next on the list for review.
- psMoney constructor that operates on const char * now checks for a NULL
  parameter.

*** 2003-10-02 by Andrew Mann
- Added missing include to psglyph.h for support of uint64_t with msvc.
- Reformatting of netbase.cpp
- Numerous bugfixes to network code:
-   Netbase now checks for packets that are too short for even a header.
-   Netbase checks to ensure that all packet fragments of a message contain
    the same message size.
-   Netbase checks for overflow attempts related to message fragments using
    offset + length to run past the end of the reported (and allocated)
    message size.
-   Netbase checks for "gaps" in fragments, which could potentially be used
    to attempt to grab random data from the server (including other packet
    data such as logins/passwords of other users)
-   Netbase can now use the timestamp on received packets to determine if
    fragments are old and should be removed.  Previously fragments would
    stay in the reassembly list permanently if the client crashed, lost
    network connectivity, etc.  The current maximum age is 12000 csTicks
    (12 seconds).  Both the client and server check for fragment timeouts
    just after they check for packets to resend.
- Still more to do, including updating message crackers to actually check
  message format, and short-term blacklisting IPs that trigger an obvious
  malicious packet (fragment gap, message overflow, too short)

*** 2003-10-02 by Anders Reggestad
- Changed the purify glyph code to use the progression evnet manager.
  In this way purification will continue after a character have been offline.
- Store purification status of items in a new flags in the item_instances
  table.
- Changed the saving of items in character inventory to use update instead
  of deleting all and saving them. Needed to do this to have a constant
  ID to use in the progression script. A Dirty flag have to be implemented
  in the item to only save changed items.

*** 2003-10-01 by Andrew Craig
- Added in a description box to the parents screen to help test the network
  system for sending clients character creation choices.
- In login it now automatically selects character #1

*** 2003-09-30 by Andrew Robberts
- Modified all OnButtonPressed(), MouseDown(), and MouseUp() events to use
  keyboard modifiers (Ctrl, Alt, Shift).
- Updated ConfigMouse to use keyboard modifiers

*** 2003-09-29 by Andrew Mann
- csString::strlwr() has been replaced with csString::Downcase()
  Changed a number of locations in server, common and client to comply.
- Added functions to allow for a clean(er) shutdown of the EventManager.
- Altered psServer::MainLoop() to request and wait for EventManager shutdown
  prior to returning.  This fixes some common crashes when issuing the /quit
  command on the server.

*** 2003-09-29 by Anders Reggestad
- Fixed a bug where the client crashed when opening glyph window after
  dropping and picking up a glyphs.
- Added update of all item views when a item is dropped or inserted into
  inventory.
- Fixed item description to work after rewrite to new db structure.

*** 2003-09-28 by Andrew Craig
- Added in the SaveLoginInformation() that saves your login defaults to the
  .cfg file.
-  Patch from TomT:
  Added in the 'mind' slot for the inventory.  This will be used for the tradeskills
  area

*** 2003-09-28 by Anders Reggestad
- Added message from server telling when you try to use not purified glyphs
  to cast a spell.
- Fixed broken spell animations and sounds.
- A update from Chen Yue Feng:
  - Use CS load functions to load spell effects.
  - Created a spell effect manager.
- Cleanup of the spell effect system: Removed old code

*** 2003-09-27 by Andrew Craig
- Started work on the main 'Character Choice' network system.  Right now
  all the frame work should be in place for sending the client all the data
  it needs to construct the creation screens.
- Added new table char_creation which has all the choices available for
  character creation. Has a couple of small examples.
- Next step is to complete the character creation screens using this system.

*** 2003-09-27 by Andrew Mann
- Added 'if exists' to create_all.sql to allow error-free new database creation.
- Updated MSVS 7 project files for psclient and psserver to include some
  missing files.
- Added a Database Scripts folder to the project view under the psserver project
  and included all the .sql files there.
- Added LOG_NET log type as a precursor to work on the network layer.
- Fix for uninitialized actor member of guildmember structure.

*** 2003-09-25 by Keith Fulton
- Added example attack and death anims to dwarf model.  Since anims must
  be standard across all sprites, everything shows up as a dwarf now.
- Added psCombatEventMessage to handle notification of each hit to players.
- Fixed superclient to use UpdateMove so that visculler gets correct positions
  of moving meshes.  This enables engine->GetNearbyMeshes to work.
- Server now selects the targeted entity on both "select" and "context"
  messages.
- Server has random number generator global now.
- Attempted to fix "addinv" command.
- Combat now determines a skill and weapon-based anim to use in each move.
- CacheManager loads and caches this item_animations table.
- Updated weapon stats to be usable in combat sort of.
- Added an axe to Vengeance character for testing.
- New Item Animations table stores sets of moves which weapons can refer to.
- Added attribute on Item Stats to point to which set of Item Animations each
  weapon uses.
- Got death anim also working when NPC dies.  he will disappear in 20 seconds
  after he dies.  Later this will be longer, to allow looting.

*** 2003-09-23 by Andrew Craig
- Fixed up some needless long class names. Added some more comments in some
  places.
- Made a couple of build changes. Moved config.guess/config.sub/install-sh
  into the mk/autoconf dirs. So you have to ./autogen.sh + ./configure again.
- Moved keys.xml out of the root dir and into data/options/
- Added a new autogen.sh file to create the configure file for linux builds.
  Other linux builders, if you get any problems let me know. I am trying to
  clean up some of the files in PS to remove some of the dead wood. So I need
  to know if I break things

*** 2003-09-23 by Ondrej Hurt
- Made pawsMenu more pretty and better behaving.
- We got a real german stringtable now, thanks to F. Richter (res) for this contribution.
- Czech stringtable made more readable.
- Fixed: widgets that had been set as always-on-top were not put on top in pawsWidget::AddChild().

*** 2003-09-21 by Keith Fulton
- Committing patch from Andrew Robberts for new options screen which
  lets you set some mouse controls.  We all expect these to grow.

*** 2003-09-21 by Andrew Craig
- Some more work on the new character creation. Now shows the race
  descriptions. The new manager will eventually replace rpgRules on the
  client.
- Added a more intelligent pawsMultiLineTextBox.
- Fixed small problem with some keys ( shift/pageup/pagedown ) not being
  bound properly.
- Hooked main creation screen to server to get the starting CP values from the
  races table.
- Moved total_time_connected to characters table and it now records total
  seconds online.

*** 2003-09-21 by Anders Reggestad
- Added range check to trade (exchange) command
- Changed exchange window to use a diffrent color instead
  of alfa values for accepted offering sections.

*** 2003-09-20 by Ondrej Hurt
- Language-specific files moved from /data/lang to /lang because they can override files from other directories
  than just from /data.
- Every string I spotted in client code or XML moved to stringtable.
- Created czech stringtable (not final).

*** 2003-09-20 by Anders Reggestad
- Added check to prevent core dump when using spell effects on a entity that
  is removed from the world.

*** 2003-09-19 by Andrew Craig
- Updated MSVC6 project files.

*** 2003-09-19 by Keith Fulton
- Committing patch from Andrew Robberts to make PS stop rendering when
  window is minimized.
- NPC now attempts to fight back when attacked.  Perceptions of attack and
  direct damage are both implemented and hate lists are maintained for each
  npc.  NPC will attack whoever attacks it if it detects it within its combat
  range--this does not always work and I am currently investigating why not.

*** 2003-09-18 by Keith Fulton
- Committed patch from Andrew Robberts for /away <msg> and /away off.
  Client away will now auto-respond to tells with <msg>.

*** 2003-09-18 by Andrew Craig
- Removed some code in psKeyBinds::Bind that was preventing multiple keys from
  having the same commands ( ie could not have 'w' and 'up' both be forward ).

*** 2003-09-18 by Anders Reggestad
- Added "liststats <player>" command to server.
- Fixed some not consistent use of hitpoints, fatigue, mana_max and mana_rate.
- Fixed so that the npcclient will work with the testworld.
- Fixed a bug in the spell effect system causing meshballs to be stuck in world.

*** 2003-09-17 by Andrew Craig
- Added some more widgets to the main character creation screen. They are not
  hooked up to anything yet. Once all the widgets are in place I will hook up
  all the required functions to get that screen to be functionally.  Then when
  new graphics are ready it should just be a ( hopefully! ) easy task to put
  them into place.

*** 2003-09-17 by Anders Reggestad
- Added a list command to the psnpcclient to list all
  NPCs.

*** 2003-09-16 by Keith Fulton
- Basic processing of attack and damage perceptions is added. Work to handle
  them correctly is still on-going.

*** 2003-09-15 by Andrew Craig
- Added stubs for AddRefOwner and RemoveRefOwner for the psTemplateRes class.
  I am unsure of what they are used for but are needed for clean compile.

*** 2003-09-15 by Anders Reggestad
- Fixed a but where selecting a object without character data caused
  the client to crash.

*** 2003-09-15 by Ondrej Hurt
- More work on pawsMenu e.g. whole submenu hierarchy can be described by one file
- Added always-on-top feature to pawsWidget
- Added class psLocalization, which translates strings and searches for localized versions of PAWS XML files
- Added configuration variable Planeshift.Language which sets current language
- psChatMessage - added attribute 'translated' - when true, chat message is translated by psLocalization
- Chat window has a context menu that the user can use to send (predefined) chat messages which are translated to languages of other clients (i.e. psChatMessage::translated==true)

*** 2003-09-09 by Andrew Craig
- Added first new character creation window. It is very bare at the moment
  ( just some navigation buttons ) but thought I should commit now since it
  is a start :).  Will add more of the required widgets as needed. When others
  start working on it we can work on all windows in parallel.
- Changed chat appearance a bit. Now when it is inactive it hides the
  borders/buttons. Makes the screen look a little less cluttered.

*** 2003-09-08 by Andrew Craig
- Fixed spelling error and cleaned up some formatting ( mostly making sure
  tabs are spaces )

*** 2003-09-07 by Andrew Craig
- Did a fix in pawsEditTextBox where it was crashing on an empty string

*** 2003-09-05 by Keith Fulton
- Converted SoundManager to use CS Std XML API.
- Now server sends combat and damage perceptions to the superclient.
  Superclient catches these but there is no scripting yet to deal with them.
  (You can see the perceptions on superclient in printfs to the console,
  however.)

*** 2003-09-04 by Andrew Craig
- Added new class psCharacterCreationManager that will deal with the RPG
  aspects of creating a new character on the client.  First step is to cache
  in all data ( this checkin does loading of initial CP values for the races )
- Next step is to create a character_create table that maintains the relevant
  data for creation cache that in.
- Remember to recreate your db for new CP column on races

*** 2003-09-03 by Keith Fulton
- Fixed spell effect loader bug and fixed up spr file names in db so
  correct race models load.
- Working on restoring superclient to normal since big server restructuring.

*** 2003-09-02 by Keith Fulton
- Separated NPC "death" from disappearance.  Now spawnmanager will wait
  20 seconds before removing the dead body.  This period should of course
  be much longer in the real game to allow looting.  Also right now death is
  very anticlimactic.  No anim is played.  You can only tell from the chat
  window and printfs in the server console atm.

*** 2003-08-31 by Keith Fulton
- StatDR now works for the targeted entity on the client, and shows
  correctly in the info window, and is updated by the server correctly
  during combat.
- Updated some class names and made filenames match.  This will break
  VC6 makefiles until someone commits new ones.  Here are renamed classes:
	NetThread = NetManager
	psCelServer = EntityManager
	psCel = GEMSupervisor
	celPSObject = gemObject
	celPSActor  = gemActor, etc.
	note: GEM stands for Game Entity Management and is our CEL wrapper.

*** 2003-08-29 by Keith Fulton
- Changed Groups to use celPSActors instead of Clients.
- Unified all StatDR in chardata prop class, since both client
  and server need this functionality.
- Changed statDR updating to work for all actors, not just
  Clients (not just human players).

*** 2003-08-29 by Anders Reggestad
- Added range check to the trade commands /buy and /sell.
- Added common verification of trade commands in one function,
  than buy, sell, view and category will check for the same
  constrains. This make the code more maintainable and it
  will be more difficult for players to find exploits
  in the merchant code.

*** 2003-08-26 by Anders Reggestad
- Commited a update from Chen Yue Feng
- Fixed the sound manager to play streamed sounds more than once.
- Cleaned up cloning of overriden spell effects.

*** 2003-08-25 by Anders Reggestad
- Fixed sending of StatDR messages from server.
- Added spell sounds to art/music/effects/.
- Added hook to the progression manager, when a quest is finished. The hook is called "quest_<quest name>".
- Added an ItemOp to the ProgressionManager. Can be used to add new items to a player on quest complete.

*** 2003-08-24 by Ondrej Hurt
- Key configuration is loaded/saved from/to the keys.xml file.
- Key configuration now really sets in-game key bindings.

- Added pop-up menu (pawsMenu)
- New pop-up menu works as context menu for widgets:
      pawsWidget and its subclasses can now open context menu on right-click ("ContextMenu" attribute in XML)

- pawsWidget destructor now calls psPawsManager::OnWidgetDeleted() so that psPawsManager sets all its links
  to this widget to NULL
- pawsWidget::Load() no longer requires "frame" tag
- pawsWidget::LoadFromFile(fileName) added

*** 2003-08-24 by Anders Reggestad
- Cleaned up old file. Removed gui.zip from data dir, removed
  mounting.
- Added storing of outstanding progression events to characters when
  disconnecting. Added execute of this when reconnecting.

*** 2003-08-21 by Keith Fulton
- Committed updates to Characters and Item_stats tables for latest Rules,
  supplied decent default values for Fist item to test combat.
- Added loading, error checking of these values.  Much more error checking
  needed, but if you attack, it should work now.

*** 2003-08-21 by Andrew Craig
- Fixed error in paws drawing. Forgot about the BeginDraw flags for CS.

*** 2003-08-20 by Keith Fulton
- Updated for removal of gui lib.  Now all is PAWS.

*** 2003-08-20 by Andrew Craig
- Added ability to add a call back to the confirm ( yesnobox )
- Removed the dialog manager stuff from the cmdutils classes
- Removed iDialogManager from the main psengine class. This should be the
  next to last step to remove lsupi windows.  Last step is to remove the
  /gui dir.
- Removed the gui/ gui/base dirs so there should be no more lsupi windows.

*** 2003-08-20 by Anders Reggestad
- Added to string functions to Progression event operations, to be
  used when delayed script shall be stored for execution when player
  log on again.
- Added one more update of the spell effects by Chen Yue Feng.
- Cleaned up the spell system on the server to mach the new effect
  system in client.
- Removed the two target progression event system, to complicated.
- Added one more call in the spell mangaer to handle both target
  and caster effects of spell. Like enery drain spells where target
  loose HP and caster gain HP.
- Added a DeconnectReceiver interface, used between celPSObject and
  psScriptGameEvent to abort the script execution if the target
  cel object is removed.
- Moved some defs of internal progression manager classes from the
  h file to the cpp file. Less recompiling when changing than :)

*** 2003-08-18 by Andrew Craig
- Added time to the info window.  Updates on the first time event from the server.
- Removed the dialogmanager dependency from the guildcommands and added a skeleton
  pawsGuildWindow. ( so a couple of new files to add to your project file )
- Removed dialogmanager ( lsupi windows ) dependency from groupcommands
- Added in model to character picker screen.  Only has base model and not the
  custom texture or inventory yet. That is on the todo.
- Added in PAWS load window to replace lsupi type window.
- ( new file pawsloading.h/cpp for paws lib )
- Refactored psengine class on client to remove the SwitchStatus calls
- Added enums to the LoadGame switch to make it more clear what it is doing.

*** 2003-08-18 by Anders Reggestad
- Added script node to the progression event scripts.
  Syntax:
  <script delay="2000">
     <hp delta="5">
     <msg text="You feel well">
  </script>
  This script will heal the originator character with 5HP after 2seconds.
  Still to do: Remove executing scripts when character disconnect.
- Fixed a bug in the pawsglyphwindow that prevented purifying of glyphs.
- Added loading of the new spell effects from Yue Feng.
- Committed a new patch from Chen Yue Feng (he goes by Yue Feng) for starting to have
  parameterized spell effects. Code for existing particle systems have been created
  in the new /src/client/effects/ directory.

*** 2003-08-17 by Anders Reggestad
- Added range check to spell casting.
- Added random change of stats in the progression_manager:
     <str random=" 5">             : Adjust random between 0 and 5 to STR
     <hp delta="10" random="5">    : Adjust between 10 and 15 to HP
     <hp delta="-10" random="5">   : Adjust between -5 and -10 to HP
     <mana delta="-10" random="-5">: Adjust between -10 and -15 to Mana
- Added percent of max adjustment to stats in the progression_manager:
     <hp percent="50">             : Adjust with 50% of max to HP

*** 2003-08-17 by Greg von Beck
- Stopped widget from saving and loading height and width info if it is not
  resizable

*** 2003-08-16 by Keith Fulton
- Info Window now displays HP, Mana, Fatigue for the player and shows HP for
  the targeted player.  Have not yet tested updates of this, but the window works.
- Added variable colors and gradients to pawsProgressBar.  I still don't think
  this control is very attractive, however.

*** 2003-08-16 by Greg von Beck
- Fixed Min and Max widget sizes to use XML files
- XML files accept <minframe width="" height=""/> and
  <maxframe width="" height=""/>

*** 2003-08-15 by Anders Reggestad
- Added HP,MANA,FATIGUE,STR,AGI,END,INT,WIL,CHA script elemenst
  to the progression manager. Syntax: <hp delta="5" [target="player|target"]/>
- Added a msg script element. Syntax: <msg text="bla bla" [target="player|target"]/>
- Changed the spell system to use a progression event for effects.
- Added saving of faction_standings on saving of character
- Added server command: progress <player>,<event> to test
  progress scripts.
- Displaying way name instead of way id in the spell window.
- Changed the way spell effect are handled in the client.
- Added sending of spell effect name to client.
- Added sending of casting effect to client.
- Added spell casting animations. Now the animation given in the
  db is played when a character cast a spell.

*** 2003-08-15 by Anders Reggestad
- Added a spell name field to the glyph window.
- Fixed a bug in loading of spells for a player.
- Added check to prevent saving an allready known spell.
- Added a glyph spell combination to the spell_glyph table. There
  should never be a spell without a uniq combination of one or more
  glyphs.
- Added check to only permit glyphs to be stored in slots with the
  correct way.
- Added display of glyphs in the spell book list box.

*** 2003-08-14 by Anders Reggestad
- Added check to verify that needed glyphs are pressent when
  casting a spell.
- Moved psSpell::Effect from spellmanager.cpp to the psspell.cpp file.
- Removed some debug printings.

*** 2003-08-13 by Keith Fulton
- Committed patch from Chen Yue Feng (he goes by Yue Feng) for starting to have
  parameterized spell effects.  New lib for these effects in /src/client/effects
  and materials used are in /art/effects, while the xml specifiers for each effect
  are in /data/spell_effect.xml.

*** 2003-08-13 by Anders Reggestad
- Replaced some more csStringArray with psStringArray.

*** 2003-08-13 by Andrew Craig
- Added a psStringArray to utils. It is an older version of CS's csStringArray
  class before it was adjusted.

*** 2003-08-13 by Anders Reggestad
- Removed some not used database refs.

*** 2003-08-13 by Christophe Painchaud
- added full /report command support.

*** 2003-08-12 by Anders Reggestad
- Added saving of spells in the glyph window.
- Added casting of spell from the glyph window.
- Fixed the psItemSlot::Swap function to correct handle stack counts.
- Removed all use of psDatabase from the psSpellManager.

*** 2003-08-12 by Andrew Craig
- Added in support for picking character from a list.  This allows accounts
  to have more then one character associated with it.  At the moment it just
  displays the name.  Future update will have the model with equipment as well
  as display the location.  Future updates will also activate the create new
  charater buttons.

*** 2003-08-11 by Greg von Beck
- modified pawsProgressBar to have the border over the fill
- changed the fill to a gradient for pawsProgressBar

*** 2003-08-11 by Anders Reggestad
- Fixed verification of glyphs in the glyph window after new db.

*** 2003-08-10 by Andrew Craig
- Moved the create Texture/Equipment strings out of the celActor class and
  into the pscharacter class.

*** 2003-08-07 by Andrew Craig
- Added warning message for not being able to contact server at all.

*** 2003-08-07 by Anders Reggestad
- Added /cast <spellName> command.
- Fixed updating of glyphs in glyphs window.
- Added subclass psGlyph of psItem to handle glyph specific things.

*** 2003-08-06 by Anders Reggestad
- Added psWay and cache list for DB table ways.
- Moved psSpell to be cached in the cachemanager.
- Readded all glyphs stats to the DB.
- Added system message when buying/selling things.
- Added handling of full inventory when buying things.
- Added handling of full merchant inventory when selling things.

*** 2003-08-05 by Andrew Craig
- Made the error messages on connecting a bit better. Moved the disconnect
  status out of the psengine and moved it into authclient.  Still have to
  do the timeout error when there is no server running.

*** 2003-08-05 by Anders Reggestad
- Addes scrollbars to the exchange window to control offered money.
- Added a category_id field to the item_stats table.
- Added a price field to the item_stats table.
- Added visible="yes/no" attribute to listbox columns.
- Added all weapons to Smith's inventory in the test world.

*** 2003-08-05 by Andrew Dai
- Fixed position and size of small scrollbar in shortcut window.
- Fixed position and size of horizontal scrollbar buttons.
- Scrollbars can no longer be focused.

*** 2003-08-03 by Anders Reggestad
- Removed the dumb guild info object, use a null pointer for char
  not in any guilds.
- Fixed the GenericUpdateWithID to not report error if no data
  was updated.
- Fixed problem where server crashed when a player quited after beeing
  removed from a guild.
- The new guild command failed to update the db, changed field name.
- Some more CS API changes from Delete(i) to DeleteIndex(i).
- Fixed the who command to not crash when no guild level is defined for a guild.
- Updated the db to have consisten guild information. The rights field was missing.
- Implemented scrolling of offering and receiving section in the exchange window.
- Added parsing of field direction="horizontal" to the pawsScrollBar XML setup.
- Changed the OnScroll events to recursivly travers through parents until NULL.

*** 2003-08-02 by Andrew Craig
- Changed spellEffects.Delete(i) to spellEfects.DeleteIndex(i) because of
  API change in CS. Have not tested this to make sure that still performs
  as expected.

*** 2003-08-02 by Anders Reggestad
- Updated display of money in the inventory window.
- Created field for displaying total weight of inventory.
- Converted the Exchange system to use the new db interface.
- Fixed some math in the pawsMessageTextBox widget to allways display
  optimal number of lines.
- Changed scroll bar max value to be equal number of not visible lines.
- Adjusted the info window.

*** 2003-08-01 by Andrew Craig
- Added PAWS login screen.  It is not complete yet but it will allow you to
  login.  What will happen in the future is that:
  1) You will login in first then pick your character and then join game OR
  2) You will login in first then select 'create new character' OR
  3) You will create a new account ( fill in a form ) and then GOTO 2

  At the moment the new account button does not work.
- Added OK widget window that is used to display messages.
- Added in check to make sure it can connect to server.

*** 2003-08-01 by Andrew Dai
- Fixed an error in splash.xml, and in ShortcutWindow.xml
- Added support for the TAB key to ALL widgets, it will cycle focus through all the
  child widgets
- Changed the return type of OnGainFocus to bool, if this function is overloaded
  and made to return false, then that widget will be assumed to be unfocusable
  and can't be TABbed into
- Made ordinary text boxes and borders unfocusable
- Set the MAX_SHORTCUT_SETS to 4, allowing a maximum of 40 buttons which can be
  navigated via the scrollbar
- Added the SetHorizontal(bool) function to pawscrollbar allowing the scrollbar
  to be horizontal, it currently still uses Up/Down arrow graphics
- IsIgnored will assume the list is already sorted so IsIgnored checks will be quicker
  and ALOT quicker for very large ignore lists

*** 2003-08-01 by Anders Reggestad
- Removed some debug prints in the merchant system
- When selecting view in the inventory screen, the item is dropped back
  into its place.
- Finished updateing the merchant system after new db system.
- Removed duplicated code in psItem GetFieldArray, Save and Load functions.
- Fixed saving of items in DB when created.

*** 2003-07-31 by Anders Reggestad
- Moved itemCategory cache from psMerchantInfo to the CacheManager
- Added constructor taking trias to the psMoney class.
- Started converting the sell action in the merchant window.

*** 2003-07-31 by Keith Fulton
- Committing a patch by Tanguy Gilmont for a "lock" command on the server.
  This allows the server to run normally but prevents it from accepting new
  connections.  This is useful during a graceful shutdown.

*** 2003-07-30 by Andrew Craig
- Fixed error in pickup items where parent location was not being updated
  correctly.
- Added PAWS splash window to the start and added a progess bar to show
  loading status of models.

*** 2003-07-30 by Andrew Dai
- Improved the shortcut edit window so it is read from a XML file and no longer
  has to be modal, also added a cancel button and fixed the crash when enter was
  pressed
- Modified fading effect slightly to have different effects on whether the widget
  and it's children are focused or not
- Added capibility for the notify widget for buttons to be read from XML and fixed
  a mistake in reading button labels
- Moved where the multiline attribute is read from XML
- pawsTextBoxes can no longer be focused, this may need to be changed later if we
  add a selectable property to text boxes
- Improved the shortcut window so the buttons are read from a XML file, allowing
  skinning and the window can now be resized
- Implemented OnButtonReleased() function and pawsScrollBar will automatically
  scroll if the button is held down

*** 2003-07-29 by Anders Reggestad
- Started work to send items to the merchant window when selecting a category.
- Problem found: When picking up two objects, location_in_parent isn't updated
  and server crash next time character load.

*** 2003-07-29 by Andrew Dai
- Added support for multiline editable text boxes which can be activated with
  SetMultiline(true) or a multiline property in the XML file.
- Made various fixes and improvements to editable boxes such as working
  Home and End keys and response to mouseclicks.
- Improved functionality of modal widgets so modal child widgets can gain focus.
- Added fading effects to child widgets via a virtual MouseOver function
  (fading can be disabled by overriding MouseOver or setting fade to false)
  (To be implemented in XML)
- Added a GetAlpha function to images

*** 2003-07-27 by Keith Fulton
- Added assert if specified field name is not found in iResultRow now.
- Fixed several wrong column names which were highlighted by this assert.
- Fixed a couple of other dtor errors which MSVC helpfully pointed out.

*** 2003-07-27 by Andrew Craig
- Change in CS. csPArray<T> is no longer available. Changed all PS uses
  to csArray<T*>
- Made the merchant window a bit better looking
- Fixed some listbox problems
- Added some items to the item_stats table. Need to add the glyphs and money
  as well.

*** 2003-07-27 by Andrew Dai
- The pawsButton widget can now have a label, which will be drawn over
  any images.
- The pawsEditTextBox widget will now move its cursor when clicked on.

*** 2003-07-27 by Keith Fulton
- Committed big patch by tangerine to give us tree controls in PAWS, and
  finally hooked up Options window in the game.  Keyboard mapper works,
  but is not actually change the mappings yet.

*** 2003-07-27 by Anders Reggestad
- Started to convert merchant server side to not use psdatabase interface.
- Moved trading/merchant status info from client to character data.
- New merchant status classes inn bulkobjs
- Modified ServerConsole to take a prompt paramter to be used as prompt.

*** 2003-07-27 by Andrew Craig
- Fixed server to handle the drop messages. Still needs to take into account
  stack counts though.
- Now drops the number of items that are given in stackcount to drop and
  places the remainder back in your inventory.
- Next is to be able to break up stack counts when moving items in inventory.

*** 2003-07-26 by Keith Fulton
- Revamped guild handling to use new caching/data scheme.  Retested some
  functions but not all.

*** 2003-07-26 by Andrew Craig
- Cleaned up GUI message for dropping an item. Have to fix the server side
  to handle it correctly.

*** 2003-07-25 by Keith Fulton
- Fixed initial spawn of NPCs.  Due to lack of data, they will all show
  up as StoneB dwarves atm.
- Moved NPC Dialog functionality into bulkobject caching lib.

*** 2003-07-25 by Andrew Craig
- Spawning of objects works now on the server.  Added two axes as examples.
- More changes to get inventory working smoothly. Mostly working now with only
  a droppig left to do.
- Some clean ups and fixes after Keith's commit of Andrew Mann's huge code
  base.
- Change the inventory message class to be more contained and to build it's
  own messages.

*** 2003-07-24 by Keith Fulton
- Committing new internal data model on server, with new external data model
  in database,  This includes sectors, races, characters, accounts, and new
  combat functionality.

  *** NOTE ***
  To make this committable, many things have been disabled or broken.
  I'd like everyone's help in getting the server back to where it was.  At this
  point, you should be able to login (I've tested guest/guest), but I don't
  guarantee anything else.

  Many thanks to Andrew Mann, who actually wrote a lot of this code.



*** 2003-07-24 by Andrew Craig
- Added in PAWS version of spell window.
- Made some changes to start the removal of AWS.

*** 2003-07-23 by Andrew Craig
- Commited view petition window by Andrew Dai (Khaki).  It is used to
  view a full description of the selected petition.
- Commited several fixes also by Andrew Dai ( Khaki ) in a couple of PAWS widgets.
  Thanks!
- Fixed error in where PAWS widgets slowly got smaller and smaller because of a
  floating point error.

*** 2003-07-21 by Keith Fulton
- Committed /ignore command functionality by Andrew Dai (Anonimas).
  Thanks Andrew!
- Committing a patch by Andrew Dai (Anonimas) for auto-reply keystroke.
  You can hit 'r' now in the game window and it will fill in the last
  person to send you a /tell, and write /tell <whoever> for you.

*** 2003-07-20 by Keith Fulton
- Committing a patch by Tanguy Gilmont (cadripper) which
  changes how the server determines when a proxlist update should
  occur.
- Added csStringHash of sector names to be used instead of clear text
  sector names in GetDRData and SetDRData. We anticipate using this
  string hash table for many different purposes in networking compression.
  Thanks to David Munger (Volrog) for this code.
- David also implemented the npc_spawn_ranges table in the spawn manager
  so now spawns do not have to occur in the same spot every time.
- *** You WILL Need to update your database (run msg_strings.sql and
  server_options.sql) in order for the server to run.

*** 2003-07-19 by Andrew Craig
- Added a PAWS version of the merchant window
- Some smaller PAWS changes

*** 2003-07-18 by Anders Reggestad
- Started work on scrolling slots in exchange window
- Fixed buy/sell/exchange to work with glyphs

*** 2003-07-17 by Keith Fulton
- Added csPath/spline support to superclient.  Now npcs
  can follow spline curves automatically.

*** 2003-07-17 by Anders Reggestad
- Fixed for CS interface change: SetCanvas to SetupCanvas
- Changed depricated include rng.h to randomgen.h

*** 2003-07-12 by Anders Reggestad
- Fixed some compiler warnings
- Fixed a wrong error message in the superclient.

*** 2003-07-10 by Keith Fulton.
Rotate to face during conversation works now.  This tests:
 - superclient correctly receiving and tracking player loc updates
 - perception propagation from server to superclient
 - conditional events (npc only turns if faction diff < 100)
 - events with iCelEntity parameters

*** 2003-07-09 by Keith Fulton.
- Keith committed the start of the player Options window,
  including a PAWS tree control and sub windows.  Thanks to Ondrej
  Hurt (tangerine) for this big contribution!
- Converted PS over to use the CEL version of linmove instead
  of the PS version.

*** 2003-07-09 by Alexander Wiseman
- Added support for GMs for managing user petitions
  in game, including a PAWS window.  GMs with admin access
  can type /petition_manage to pull up a list of all Open
  unassigned petitions.  For a complete explanation of
  the PAWS window, refer to the upcoming document
  "Game Masters Guide: Managing Petitions"
- Updated several aspects of the user petition
  commands.

*** 2003-07-09 by Keith Fulton
- Factions now include a weight factor, so for example race-based
  factions can be 3x as important in calculations as job-based
  factions.
- Completely reworked how perception events are created and
  propagated to NPCs.  This was to allow for more complex
  conditionality of perceptions necessary for range and
  faction checking.

*** 2003-07-09 by Anders Reggestad
- Added code to insert glyphs into glyph list when picking up
  and removing when dropping a glyph from inventory.

*** 2003-07-09 by Christophe Painchaud
- Added database version support

*** 2003-07-06 by Anders Reggestad
- Fixed for compablity with cel.
- Some more error messages included.
- Integrated glyphs icons/3D

*** 2003-07-05 by Keith Fulton
- Added petition customer service system to client and server.  To use,
  type /petition <my complaint here> to add one to the system.
  Then type /petition_list to popup a window with all your personal
  petitions.  Then you can select them and cancel them if you wish.
  Thanks to Alex Wiseman for this code and welcome to the team!

*** 2003-07-03 by Andrew Craig
- Added a new CREATE_PAWS_FACTORY macro to PAWS that can be used to easily create
  the factory for your new widget.  It is used like:
  CREATE_PAWS_FACTORY( pawsChatWindow ).
- This will automatically create the factory class you will need. You still have
  to add it to the list in the manager class.
- Converted all current widgets to use this macro.

*** 2003-07-02 by Andrew Craig
- More work on the pawsListBox as a precursor to the update merchant window.
- Not 100% tested yet so maybe some small issues.

*** 2003-07-01 by Keith Fulton
- Added faction tracking to celPSActor.
- Added progression manager to server, which executes xml scripts on
  progression events, such as updating faction settings for actors.

*** 2003-06-30 by Keith Fulton
- Superclient wanderer and guard behaviors both work now.

*** 2003-06-27 by Keith Fulton
- Changed psGameObject::SetRotationAngle back, and fixed NPC
  turning and fixed CalculateIncidentAngle to all use consistent
  axis orientations.  This was the problem of the npc not turning
  correctly.
- Committed a patch by Alex Wiseman (SirAihal) for a /kick command.

*** 2003-06-27 by Andrew Mann
- NPCSuperclient - Changed psGameObject::SetRotationAngle() to use
  angle_delta instead of target_angle on completion of a rotation
  command.

*** 2003-06-25 by Keith Fulton
- Fixed for CEL directory naming changes.
- Committed revised superclient for Andrew Mann's review.

*** 2003-06-22 by Andrew Craig
- Added in new pawsradio button/group widget.  Added images for them
  as well.

*** 2003-06-21 by Andrew Craig
- Added automatic resizing to PAWS for different screen resolutions. All
  PAWS windows should be defined using 800x600 as the standard unit.  The
  windows will be scaled based on this value.

*** 2003-06-21 by Keith Fulton
- Committed a patch by Chris Given which allows clients to
  send a HIGH priority DR message when they are stationary,
  and not send another one until they have started moving
  again.
- Added a type parameter to all Debug1() etc macros. See
  log.h for list, and if you add a new one, you must add
  its initialization in log.cpp.

*** 2003-06-21 by Andrew Mann
- Region fixes to psworld.cpp and psworld.h
  SetupWorldColliders() now takes an additional iRegion *
  parameter.
- Region fixes to aws/psobjectview.cpp.

*** 2003-06-21 by Andrew Mann
- Fixed pawsobjectview.cpp for Crystal Space region changes.
  There is no longer a concept of the current region in the
  engine.  Instead, CreateRegion(char *regionname) can be
  used to return an iRegion * to a new region or an existing
  region previously created with the same name.
  iEngine->SetCurrentRegion() and iEngine->GetCurrentRegion()
  are no longer available.

*** 2003-06-20 by Keith Fulton
- Renamed xmlString to psString.
- Committed tab auto-complete of commands in chat window by
  Jeremy Huddleston (aka eradicator).

*** 2003-06-19 by Keith Fulton
- Fixed PS to load CEL plugins again, using most up-to-date CS
  cvs.  If you are using anonymous access to cvs for CS, do NOT
  update your PS until 20 Jun.

*** 2003-06-18 by Anders Reggestad
- Fixed updating of proxy glyph lists when moving glyphs.

*** 2003-06-17 by Anders Reggestad
- Implemented matching of spell with glyph combinations.

*** 2003-06-17 by Andrew Craig
- new PAWS exchange window added.

*** 2003-06-16 by Anders Reggestad
- Implemented purifying of glyphs.

*** 2003-06-16 by Keith Fulton
- Committed code from Jeremy Huddleston to implement chat window
  command history, using up/down arrows to access it.  It works
  well--we should've done it a long time ago. :-)

*** 2003-06-14 by Anders Reggestad
- Inserted initial version of glyphs window

*** 2003-06-11 by Andrew Craig
- Now superclient manager deletes its reference to the Client* on
  disconnect.
- Also superclient will do <rotate> to last located point.
- The psCSSetup class presumed the existence of a CEL env var in order
  to initialize.  This var does not and should not exist or be needed in Windows.
  I have added a handler for this case which gets the PATH and adds each
  directory in the PATH to the csAddLibraryPath list.  This is in line with the
  standard way Windows locates dlls and other plugins, and should be ok to
  use with .csplugin files as well.

*** 2003-06-11 by Andrew Craig
- Added new CSSetup class from Elliot Paquette.  Moves the initcs.inc
  and mount.cpp files into one helper class.  Hence these files have
  been removed from the CVS.

*** 2003-06-10 by Andrew Craig
- Added in compiling-mingw32.txt from steve cook. Thanks!
- Fixed unreleased ref caused by player targeting ( player did not disappear
from client if he was targeted by said client )

**** 2003-06-09 by Andrew Craig
- Added in a basic listbox widget and a new PAWS GroupWindow.
- Update group manager so you cannot invite yourself.

**** 2003-06-08 by Keith Fulton
- Now <locate> and <navigate> work in their basic forms.  If you run the
  superclient in NPCroom.zip map, you should see one of the npcs walking
  back and forth using <moveto> and another using <locate>/<navigate> pairs.

**** 2003-06-06 by Keith Fulton
- Added a <moveto> script operation, which has a hardcoded destination in it.
  This is mostly just to test general movement.  I don't anticipate that it
  will be often used in the actual game.
- There is now a npctype called "guard" which makes one of the npcs walk
  back and forth between two points.  It is designed to be used with the
  NPCroom map, which I will use as my primary map from now on.

**** 2003-06-06 by Andrew Craig
- Fixed for SCF changes in CS.  Maybe some issues still here as we work out
  how to work better with the new system.
- Removed scfreg.inc and the SCFSetup() because it is no longer used.
- Fixed postfix on iterators to be prefix incrementors. ( change in CS API )

**** 2003-06-04 by Andrew Craig
- Fixed for latest changes in CS. Iterators now all follow the
  standard HasNext() Next() functions.  So the common way for all
  iterators is:

  while ( iter->HasNext() )
     myObject = iter->Next();

- Removed AddLight() for the explosion system since jorrit removed
  it from the interface.

**** 2003-06-03 by Keith Fulton
- NPCClient now sends the NPC Command List messages to the server,
  and the NPC Manager on the server receives the messages.  If the
  command is a DR update, it makes a DR Update message and multicasts
  to clients.  This means you can see the NPCs rotating on any
  connected client.  (Rotating is the only NPC script command
  implemented atm.)

**** 2003-06-02 by Keith Fulton
- NPCClient now actually uses CEL to execute the <rotate> operation in
  behavior scripts.  The operation queues the networking messages to
  persist these actions to the server, but nothing is sent yet.

**** 2003-06-01 by Anders Reggestad
- Fixed a couple of compiler warnings/errors when compiling with gcc -Wall.
- Added the cleaver.png to the imagelist.xml file be able to use the view object
  function at the cleaver.

**** 2003-06-01 by Keith Fulton
- NPCClient now has a re-ordered messaging protocol.  It loads the maps,
  then persists the entities from the server, then matches up its own npc
  definitions with the entity id's from the server to the iCelEntitys.

**** 2003-06-01 by Andrew Craig
- Added in new main icon bar that now uses PAWS.  At the moment it still
  uses two AWS windows for the spell book and options window. Those will be
  moved over shortly as well.
- Uses icon provied by res.
- Fixed main widget for checking if widgets existed. Caused a segfault
  before you entered the game.

**** 2003-05-29 by Keith Fulton
- Now the superclient gets a list of maps to load from the server.  (This
  list is currently the list of all loaded maps on the server, but doesn't
  have to be in the future.)  Then the superclient loads in each map.
  Once the world files have all been loaded, the client is marked as ready.

**** 2003-05-29 by Andrew Craig
- Added a new PAWS Interact Window that replaces the old aws version of it.
  Also changed the layout of the buttons so they are around the item. Before,
  the quit button used to be over the item.

**** 2003-05-29 by Javier Fernandez-Ivern
- Added support for an EQ-style "assist" command.  Typing /assist <player>
  will make your target be the specified player's target, provided that
  the player is within 25 meters of you.  If you have a player targeted,
  you can simply type /assist to get that player's target (subject to the
  same range check.)

**** 2003-05-27 by Andrew Craig
- Changed mk/autoconf/ac_path_mysql.m4 to use mysql_real_connect() since
  mysql_connect() is depreciated and no longer exists in later versions of
  MySQL

**** 2003-05-25 by Andrew Craig
- Replaced AWS "Item Description Window" with it's PAWS version. It now
  also subscribes to MSGTYPEGUIITEMDESC so it can handle the messages
  directly.

**** 2003-05-25 by Andrew Craig
- Replaced "Target Window".  Target is now included in the info window.
  More PAWS changes ongoing.

**** 2003-05-24 by Andrew Craig
- Update PS for changes in CS:
"Deprecated feature use: iPolygonMesh queried from Thing object; use
iMeshObject->GetObjectModel()->GetPolygonMeshColldet() instead."

so
mesh = SCF_QUERY_INTERFACE(sp->GetMeshObject(), iPolygonMesh);
is replaced with:

mesh = sp->GetMeshObject()->GetObjectModel()->GetPolygonMeshColldet();



**** 2003-05-23 by Andrew Craig
- Fixed the INSERT into guilds to have a value for the secret guilds.

**** 2003-05-19 by Andrew Craig
- Added in new PAWS inventory window.  Is a little simplier then the AWS
  one but performs better.

**** 2003-05-18 by Andrew Craig
- Added an accessor to pawsImage to get the current image description
  that it is using.
- Added some NULL checks in the pawsImage draw code to make sure it has
  something to draw before attempting to.

**** 2003-05-09 by Keith Fulton
- NPCClient now loads in npc definitions for all npcs it is managing
  and makes copies of each npctype for them.

**** 2003-05-08 by Keith Fulton
- Committing support for "secret" guilds, which do not show up on /who
  lists.  To activate, use /guildsecret on|off as guild leader.  Thanks to Javier
  Fernandez-Ivern for this contribution.

**** 2003-05-08 by Keith Fulton
- NPCclient now loads in some basic npc behavior scripts.
  Still nothing happens other than the loading.

**** 2003-05-06 by Luca Pancallo
- Fixed the yes>yes problem on dialogues. It was about how the
  binarytree is constructed.
- Fixed another potential bug when a trigger is uppercase in the db

**** 2003-05-04 by Anders Reggestad
- Modified particle system to get material from a effect_script, that is
  stored in DB and distributed to client in the spell effect message.
- >>>>> DB CHANGED <<<<<
  - Added effect_particle_script to spell table in DB.

**** 2003-05-04 by Andrew Craig
- Fixed bad include in messages.h for removal of netversion.h
- Added some customizability to GUI keys. See data/guikeys.xml for an
  example.  At the moment the only action the base widget knows about
  is 'togglevisibility' but by overloading the PerformAction() on the
  widget could have actions like "cast spell #1" or "set chat mode say".
- Current key should be F1 to toggle chat window on and off.
- Fixed Jamfiles for psnpcclient.

**** 2003-05-04 by Keith Fulton
- Initial Superclient commit.  This still doesn't do much, but it
  will connect to a running and ready server, and the server will
  send it an xml list of all NPCs the superclient is to manage.
  The npcclient has a command line interface similar to the server,
  and allows only "quit" right now.
- I intend to commit this stuff as I go, little by little, because
  I don't like getting out of synch for too long.  It is not necessary
  for anyone else to build or test with this anytime soon.

**** 2003-05-04 by Andrew Craig
- Fixed PAWS position loading to make sure window is inside client
  window size.

**** 2003-05-04 by Anders Reggestad
- Added particle system emitter, to spell effect system.
- Added particle system fountain, to spell effect system.
- Added duration for particle effects in message from server.

**** 2003-05-03 by Andrew Craig
- Added some 'chat' type buttons to the chat window so you can
  be in a particular 'mode'. Current mode buttons are for:
  /say
  /guild
  /group
  /shout
- Added graphics for these buttons.


**** 2003-05-03 by Anders Reggestad
- Added name of other player in the exchange startup message
  and added display of this in the exchange window. The Layout
  and 2d graphics should be updated when converting this window
  to use new paws.
- Updated jam system to support compiling with debug support.

**** 2003-05-02 by Andrew Craig
- Fixed netpersistance for changes to the VFS API in CS.

**** 2003-05-01 by Anders Reggestad
- Fixed the notify buddy logged in/out function to be more robust.
- Added move count to the exchange window.
- Moved scripts to work around conflict when building for jam:
  - Moved psserver to psserver.sh
  - Moved psclient to psclient.sh
  - Moved pssetup to pssetup.sh

**** 2003-04-30 by Andrew Craig
- Added 'busy' mouse pointer to the preloading models and loading
  game areas.
- PAWS now saves positions/sizes of windows in planeshift.cfg file.
  Saves it as:
    Planeshift.GUI.>windowName<.>positionVar<

**** 2003-04-29 by Anders Reggestad
- Added ball object, to spell effect systems.

**** 2003-04-28 by Andrew Craig
- Added in new rpgrules.xml file from Mehallie which fixed up some spelling
  and grammar errors.

**** 2003-04-27 by Anders Reggestad
- Added particle system spiral, to spell particle systems.
- Added spell effect message from server to clients
- Added particle system explotion, to use in the Flame shot spell.
- Added check to verify that the player have the spell he is trying to cast.
- Added check to verfiy that the player have the mana needed to cast the spell.

**** 2003-04-27 by Andrew Craig
- Fixed up pscel.cpp to initialize the static var cel to NULL
- Fixed up some of the indentation in that file as well.
- Added in scroll bars and a base widget button class. Note the scroll
  bars are functional but they don't have the thumb yet that you can drag
  up and down. So when text extends off the size of the chat window scroll bars
  should be automagically added on.

**** 2003-04-26 by Andrew Craig
- Fixed up some csHash issues because of recent changes in CS.

**** 2003-04-26 by Anders Reggestad
- Removed some more traces of proxlist.
- Added user feedback on healing spells.
- Fixed a bug in object picking that caused the server to crash.
- Fixed some code to use 4 space indentation, not tabs.

**** 2003-04-24 by Keith Fulton
- Fixed multiple login bug in cel wrapper classes and hashmap.

**** 2003-04-24 by Andrew Craig
- Fixed up some client side stuff that was using proxlist to get the position
  of player. Now uses pcLinearMovement::GetLastPosition()
- Update chat window to now use ENTER to toggle chat on and off.  Enter will also
  return focus back to the desk top.

**** 2003-04-23 by Keith Fulton
- Now ProxList is an object owned by celPSObject.  All updating of the lists
  happens within that object.  All other objects who used proxlist for other
  purposes now use other methods to achieve their goals.
  This is a big change to a complex class, so handle with care.  I have tested
  it with players, NPCs and object pickups and it appears to work.

**** 2003-04-23 by Andrew Craig
- Fixed message box to correctly get the top line on a Resize.

**** 2003-04-22 by Andrew Craig
- Fixed chat a little because it was drawing on the border.
- Removed unused code from pawsWidget

**** 2003-04-22 by Anders Reggestad
- Inserted handling of the cast command from the spell book window.
- Don't send view item from merchant window with "empty" item name.
- Updated the new chatwindow with the chages done to the old
  pscomm window to handel group chat.
- Added colour for group chat and auction messages.

**** 2003-04-21 by Andrew Craig
- Added in first installment of PAWS.  At the moment it only covers the
  chat window and only has a couple of widgets. Also added are imagelist.xml
  which defines the images that PAWS uses and prefs.xml which defines some
  of the PAWS prefs.  prefs.xml also defines colours for the various chat
  messages as well.  I will try to get a wiki page up soon that defines the
  format of these files.
- Chat window does not have scroll bars yet since those are a little more
  tricky to do.
- For those of you that waited for it <TAB> now actually toggles the chat
  window focus! Temp hack is to make the border of the active widget red.
- Updated the msvc project files but not sure if they are totally correct.
  Somebody needs to update the msvc7 project files as well.
- Let me know if anything is broken so I can fix it.
- Chat window displays different messages in different colours.
- Fixed some build warnings about non-virtual descructors.

**** 2003-04-21 by Andrew Mann
- Changed psModeMessage to allocate enough message space for
  the required data.  Previously was allocating 1 byte and
  adding a uint32 (4 bytes) causing an overrun.  It now
  allocates sizeof(uint32_t).

**** 2003-04-20 by Keith Fulton
- Moved psCelServer::InitCharData and helper functions to
  celPSActor.
- Fixed (hopefully) vc7 make files.

**** 2003-04-20 by Andrew Mann
- Fixed several server crashes on shutdown.
- Removed "delete eventmanager" from psserver.cpp on destruction
  as the eventmanager is now stored in a csRef
- Changed msghandler destructor back to using an iterator to
  walk/delete the members of the cdList subscribers list now that
  this method is safe (and the other method isn't!)
- Changed psSpawnManager to use csRef<> for the msghandler instead
  of a non-incremented or decremented pointer.

**** 2003-04-20 by Andrew Craig
- Updated the Makefiles and msvc6 project files. I hope they are correct.
  If you have any problems please let me know so I can correct them.

**** 2003-04-20 by Anders Reggestad
- Created the spell book window.

**** 2003-04-20 by Andrew Mann
- Removed a potential race condition in genqueue<T>::GetWait().

**** 2003-04-19 by Anders Reggestad
- Fixed a crass on a null pointer on /buy when
  no target was selected.
- Added <playerName> option to the /buy, /sell and /trade
  commands. If player specify playerName use that else
  the current selected target will be used.
- Fixed client to handle max stats diffrent from 100.
- Inserted a "drop count" in the inventory window.
- Merged the EventHandler and the MsgHandler thread into
  one thread. Than both messages and events hare handled
  in the same thread and no thread synchronization is needed :)
- Updated the adjuststat command to show current stat after update.
- Added update of stat bar on every frame update.
- Changed the server command setstats to adjuststat and only
  setting one stat value at a time.
- Fixed redistributing of group list when a client disconnect.
- Fixed correct sending of stats in group list.

**** 2003-04-18 by Anders Reggestad
- Added a psStatDRMessage to send, DR data for Hitpoints,Mana and Fatigue.
- Handle the static update of the StatDR message in client and update
  both group window and status bar.
- Added a timer in the server to update stat values
- Added server command to adjust players stats (for test, until
  integrated with the combat system).
- Added group window.
- Inserted interfaces in Client and celPSObject and celPSActor
  to get the iPcCharacterData object. Use this to display
  hitpoints in the group window.
- Fixed normalize of player names in the guild invite command.
- Fixed correct error message when player isn't guild leader.
- Added a group manager and group commands.
- Fixed some csPtr to pointers in the CEL wrapper code.

**** 2003-04-17 by Keith Fulton
- Added CEL wrapper classes to server in pscel.cpp/.h.  These classes
  make operating on entities much easier.  I have tested this locally
  with one client and it seems to work fine, but these changes were
  very extensive so be suspicious if you find strange bugs where things
  used to work.  From now on, you should never have to access the
  entity directly or its PCs directly unless you are coding an actual
  PC.

**** 2003-04-16 by Anders Reggestad
- Added check to validate range to start trading with merchant.
- Added count col to item list in merchant window.
- Fixed updating of inventory in inventory window, category list
  and item list in merchant window to correct handle empty input list.
- Added check to verify that client is trading before selling and buying.
- Inserted coin slots in the merchant window
- Updated money class to change in other than trias.

**** 2003-04-16 by Andrew Mann
- Fixed modehandler for new rain plugin.  Functions
  previously accessed via the iParticleState interface are
  now accessed directly via iRainState.
- Fixes client crash on rain.

**** 2003-04-16 by Anders Reggestad
- Added Radio buttons to switch between selling and buying
  in the merchant window.
- Inserted view button in inventory window.
- Fixed error message when dropping item in wrong slot
  to display item name not id.
- Inserted a new view icon used in inventory window
  and in the merchant window.
- First checkin for the new merchant function.
  - Target a merchant then use /sell or /buy
    to start a trade.
  - Created a psMoney class to handle calculations with coins.
  - Added the "Merchant Window" used for both selling and buying.
  - Fixed update of the inventory window when selling/buying.
- Fixed a memory leek in the itemeditor.

**** 2003-04-16 by Andrew Mann
- Fixes for csList changes in cmdhandler.cpp.
- Fixes for csList changes in texfactory.cpp.

**** 2003-04-16 by Andrew Mann
- Fixes for csList changes in msghandler.cpp.  Use
  csList::Iterator::HasCurrent() instead of
  csList::Iterator::HasNext() and csList::Iterator::HasPrevious().

**** 2003-04-15 by Andrew Mann
- Added a great big notice in docs/Compiling.txt to potential
  MB users with instructions on how to retrieve the MB branch.

**** 2003-04-15 by Andrew Craig
- Fixed up linmovement plugin for 'Thing' changes in CS. So you need
to get out of the PRE_THINGS tag in CS now :).

**** 2003-04-15 by Anders Reggestad
- Added stack_count to the admin tool item creation window.

**** 2003-04-14 by Anders Reggestad
- Implemented the exchange items window.
  - To start a trade select a player and use cmd /trade
  - To prevent other players to start a trade with you
    use the /starttrading and /stoptrading commands.
  - Added a exchange.def to the gui.zip file.
  - All item defs in DB have to have bulk as
    default slot (first slot in slot list) to be able
    to pick them up.
  - Created an exchangemanager in the server to handle exchanges.
  - New psGUIExchangeMessage to handle communication with client.
- Removed all use of depricated CS interfaces.
- Removed some compiler warnings.

**** 2003-04-14 by Andrew Mann
- MB branch reassigned to files in HEAD at this point.
- MB branch is bugfixes ONLY.
- MB010 branch should be treated as frozen. Do not
  commit to -rMB010 - Use -rMB
- HEAD is now ready for CB work!

**** 2003-04-14 by Andrew Mann
- Movement cheat detection altered to use a allowed lag counter
  pspclinmove::SetDRData() now takes an additional boolean
  parameter to tell it wether to perform cheat detection.
  Set to PSPCLINMOVE_IGNORECHEATS (false) in the client and
  PSPCLINMOVE_DETECTCHEATS (true) in the server.
  Fixes /spawn command (requires client update).
  Will require updates to psclient.exe, psserver.exe and
  pflinearmovement.dll (and linux equivalents).

**** 2003-04-11 by Andrew Mann
- Jump velocity adjusted for yesterday's gravity change.

**** 2003-04-11 by Andrew Mann
- Gravity adjusted to a more natural value.
  Since characters move 2 times as fast as real world speeds, gravity
  needs to affect them 2 times as much or they float.
  MAX_FREEFALL_VELOCITY has been doubled and gravity is now set to
  -19.6 m/s/s.

**** 2003-04-08 by Andrew Craig
- Changed max volume for the music cross fade to be 90% of max. Distortion
  can occur at 100%. Now is #define MAX_VOLUME 0.90  in pssoundmngr.cpp. At
  least this fixed the crackling noise for me. Perhaps others can try as well
  and reduce this further if distortion still occurs.

**** 2003-04-07 by Keith Fulton
- Fixed DR msgs sending every frame when falling due to acceleration.
  (hopefully).
- Added some cheat detection for speed hacks to DR code.  Does not work
  correctly in all cases, so I'm committing now to do some multi-player
  debugging.

**** 2003-04-07 by Andrew Craig
- Changed how loading and packaging of weapons work. Now all weapon
  information ( model, texture, gui icon ) are packed into the weapons.zip
  file. This file is available on the nexus under programming/releasestuff.
  Requires a database update on the items table as well.


**** 2003-04-07 by Andrew Craig
- Fixed a case where weapons were not being displayed correctly.
  Turns out that the server was not updating the pscharacter prop
  class properly with new inventory options.

**** 2003-04-06 by Andrew Mann
- Updated psclient.cfg to use the new, faster
  xml parser by default.

**** 2003-04-05 by Andrew Mann
- Removed an extra call to LoadTextures().
- LoadTextures() was called in both
  psCelClient::Initialize() as well as
  psCelClient::HandleMessage() on receiving
  CELPERSISTCMD_SEND_WORLD.

**** 2003-04-02 by Andrew Mann
- Fixes for streaming audio.
- When playing streaming audio data, source->Play() and
  handle->StartStream() must both be called.

**** 2003-03-31 by Andrew Mann
- Rotating the view up/down is now faster.  If someone
  feels like tweaking these lines to a comfortable
  speed, be my guest!
- The recent movement speed and CD fixes caused lookup
  and lookdown to scroll the view slower.  This should
  put the speed back where it was.  Tweak as needed
  though!

**** 2003-03-31 by Andrew Mann
- Fixed a race condition in the server networking
  that could cause an unlucky client to be forever
  removed from the senders list.
- Bad use of IsEmpty()
- We were adding the queue to the senders list before
  we added the packet to the queue, this meant the
  netthread could pull the sender from the list before
  there were any packets ready.  The next time around
  the IsEmpty() call would find a packet already in
  the queue, and we wouldn't add the sender to the list
  because of it.  The queue would never empty and
  it would eventually fill up and generate warnings on
  the server.

**** 2003-03-30 by Anders Reggestad
- Don't display No such command on server command line when no command is given.

**** 2003-03-30 by Keith Fulton
- Committed minor changes to NetBase::Multicast and
  subclasses for const correctness.

**** 2003-03-29 by Andrew Mann
- Fixed a crash by NULL pointer dereference when
  changing background music when no previous
  background music is playing.

**** 2003-03-27 by Andrew Mann
- Fix to mac OSX Jam file.  Seems to build ok now.
  Tested by JeroMiya.
- Simple omission from the jam file for Mac OSX

**** 2003-03-25 by Andrew Craig
- Added textures for new items in celbase.
- Updated items.sql for the new weapons.
- All weapons are available on darkdust. You need to get these:
 mb_release/art/things/weapons/*.spr
 mb_release/art/textures/weapons/*.png
 mb_release/art/gui/*.png
 They should go in the same place in your local planeshift/art dir.
- fixed the mesh names for the crystals.
- commited updated msvcgen templates from Brendon Costa. Will regen the
  msvc6 project files soon.

**** 2003-03-24 by Luca Pancallo
- Added table player_quests
- Added FindSubStringReverse to xmlString
- Added a check on responses so everytime a string like:
  "$quest_test1_start" is found on a response the db
  table will be updated. Actually those strings must be
  placed at the end of the response and those should be in
  this format: $quest_<name>_<start/end>

**** 2003-03-24 by Keith Fulton
- Fixed a bug in how proxlists handle range updates,
  namely they weren't. :-)
- Fixed chatting so that /say and /shout are differentiated.
- Enhanced /tell command so that tell is echoed back to the
  speaker and hopefully made player name for tell case-
  insensitive.

**** 2003-03-24 by Andrew Craig
- Added cross fading to the background songs. So now when
  crossing a sector the new BG song is faded in as the old one
  is faded out.

**** 2003-03-23 by Andrew Mann
- Added the Clean() member function to psTemplateResMngr.
  Allows a good amount of memory associated with unneeded
  dialog resources to be freed when entering the game
  proper.
- Clean() deletes (via decref) all resources who only
  have references held by the Resource Manager at the
  time of the call.  This is effectively a safe cache
  flush.
- Calling this from psDialogManager::Clear allows us to
  free about 25-30 MB of unneeded dialog resources.

**** 2003-03-23 by Andrew Mann
- Added detection of attempts to pass non-"trait" items
  in the trait slots.  Detected and handled as a cheat.
- It was possible for a modified client to set a character
  creation message that contained actual non-trait items
  in the trait positions (eyes, hair, nose, chin).  For
  example, such a client could set the item_id for a ruby
  crystal on creation and end up with a ruby crystal in
  their inventory.  This is now detected and handled
  as a cheat attempt.

**** 2003-03-23 by Andrew Mann
- Doxygen parameter fix in psdatabase.h

**** 2003-03-23 by Andrew Mann
- Fixed a reference leak that caused the client to crash
  on shutdown during a session in which a new character
  was created.
- psdcCustomChar::Initialize() used a normal pointer and
  an invalid decref causing the resource to be deleted
  when the psdcCustomChar object was destroyed on login.
  When the resource manager did its cleanup on shutdown it
  dereferenced a pointer to the deleted object causing a
  crash.  Changed to a csRef.

**** 2003-03-22 by Andrew Mann
- Eyes #4 should not be giving players excalibur
- Eyes 4 in rpgrules for all races was set to item id 24
  instead of the proper 23.  Item id 24 is excalibur.

**** 2003-03-22 by Andrew Mann
- Movement speed handling corrections.  Mouselook fixes.
  Doxygen commenting. CD fix.
- Toggling into run mode could still affect other movements
  like gravity and jumps since the speed member of
  celPcLinearMovement was still being altered.
- Speed now factored in to collision detection step size.
- These changes should resolve the collision problem allowing
  people to fall through the world geometry occassionally
  when running.
- Mouselooking left/right now rotates the model.
  The yaw changes to the camera on mouselook caused the view
  to rotate if the mouse was moved on both dimensions.
- Mouselooking pitch is now limited to straight down
  and 80 degrees upward.
- Some doxygen comments added to psbehave.h

**** 2003-03-22 by Andrew Craig
- Added in MAX values statistics on status display check.
  Displays max clients connected and max up/downstreams the
  server has experienced.

**** 2003-03-20 by Andrew Craig
- Fixed for CS API changes
- Fixed for unreleased refs when quitting.

**** 2003-03-18 by Keith Fulton
- Moved some more files into libutil so they can be shared
  between server and npcclient, notably serverconsole.h/.cpp
  and eventmanager.h/.cpp.

**** 2003-03-17 by Anders Reggestad
- When a item was moved from one hand to another the item
  wasn't dequiped.
- Send a buddy has quit message when a buddy has logged out.
- Some updates to the wield code to make it more robust

**** 2003-03-15 by Anders Reggestad
- Only drop 10 items from inventory at a time.
- Give usefull error message when you add a person already on buddy list
  to your list.

**** 2003-03-14 by Andrew Craig
- Removed old gui/inventory window since it is no longer used at all.

**** 2003-03-13 by Andrew Craig
- Implemented basic equiping of items.  At the moment there are only two slots
  that can take items ( lefthand, righthand ).  Players can change their
  equipment and this will be reflected on other clients as well.
- Needs some more testing with many clients. Did my best with just the
  two clients.

**** 2003-03-13 by Keith Fulton
- Several commits to enhance/fix how NPC dialog works.
  Most notably, the prior_response_id is now only updated if the
  response given is not an error response.  This means you won't
  lose your place in the conversation if you say something the
  NPC doesn't understand.

**** 2003-03-13 by Anders Reggestad
- Fixed parseing of NPC XML string to correcly
  parse the knowledgeareas section without adding a empty entry.

**** 2003-03-13 by Andrew Mann
- Massive texure memory leak fixed.  This appears to
  be the last.  Our memory usage is now stable!
- Materials and Textures must be explicitely removed from
  the CS engine when we're done with them by calling
  engine->RemoveObject().  Since we weren't doing this
  and we make a new texture copy for every entity we know about
  this was causing a memory leak on the client of ~131K
  everytime someone entered your proximity.
  The fix stores the texturewrapper and materialwrapper pointers
  in the celPcCharacterData object, and calls RemoveObject()
  if these pointers are valid when the celPcCharacterData object
  is destructed.
- Forward-ported to HEAD from MB branch.

**** 2003-03-12 by Keith Fulton
- Added prox list range checking to Multicast.  This enables range-checked
  chatting and other features.
- Now worlds pre-setup FastMeshes, which was causing lag, and delete all
  texture images not being used after each load.  This should save memory.

**** 2003-03-12 by Anders Reggestad
- Fixed sql code to handle moving weapon from one hand to the other.
- Allow for fast login, by ignoring 10sec wait first time connect is pushed.
- Reporting name of ilegal slots that user try to equip items.
- The wield code in the inventory window was broken with the new slot name
  definition intruduced by Andrew. Fixed the inventory window to use only
  lowercase indentifies for equipment slots.
- Updated all race definitions except for the Dwarf races to have
  min armor size = 0 and max armor size = 1. Changed the item size of
  the clever 0 to allow all races to wield. Swords have size 1 and will only
  be possible for non dwarf races to wield.

**** 2003-03-11 by Andrew Craing
- Added persisting of equiped items on an initial connection.  This means that
  when you are sent a player they will be equiped with any ( visible ) items.
  At the moment only tested with sword.
- Updated items table to use correct slot names. Also made default character
  Vengeance have a sword.
- NOTE. The item will not appear in the inventory screen yet. Working on that.
- Started to remove some of the really old gui stuff.  It appears that our
  generator to produce MSVC project files is not 100% so I had to edit these
  by hand. If they are incorrect please checkin updated ones.

**** 2003-03-11 by Keith Fulton
- Made NPC fixes to synonym checking (now in longest-to-shortest) order,
  and to have NPC ignore his own name in sentences to him.
- Made 10 second lockout period on clicking Connect over and over.

**** 2003-03-10 by Anders Reggestad
- Added network usage as in server to client.
- Added some more colours to text in communication dialog.

**** 2003-03-10 by Andrew Mann
- Fixed a bug involving CD across portals.
  The ladders/walkways in tower now collide correctly.
- Added #ifdef'd debug code that can reveal potential map/portal issues.
  define LINMOVE_CD_FOLLOWSEG_DEBUG to display information about failed
  "followsegment" tests for collisions across portals.  See the note at
  the top of pslinmove.cpp for what this means.

**** 2003-03-10 by Andrew Mann
- Changes to Collision Detection.
- CD time-steps can now be larger depending on velocity.
  The time delta processed in a single movement and collision detection
  call now varies based on the velocity of the object and the size of
  the upper bounding box for the object.  Slow moving objects should
  now have to check less frequently.
- Collision is tested across sector bounds.
  FindNearbySectors() does not function since the CS call
  GetNearbySectors() is not yet implemented.  The method of walking
  the sector list returned from GetNearbySectors() in our code and
  calling GetNearbyObjects() on each sector with cross_portals=false
  has been replaced with a call to GetNearbyObjects() with
  cross_portals=true.  Since we have a situation at the library entrance
  where a polygon in hydlaa_plaza occupies the same coordinate space
  (though in a different sector) as the entryway in the library sector,
  a method tracing a line segment from the player position to a position
  of possible collision, and testing the resulting sector is used to
  determine if a collision is valid.

**** 2003-03-10 by Jorrit Tyberghein
- Added some timing information during loading to try to find out where
  the long load time is being spent.

**** 2003-03-10 by Andrew Mann
- Fixed a memory leak in the client causing nearly all messages to
  stay in memory forever. More leak fixes to go..
  MsgHandler::Run() usually decref's the message for the server.
  The client doesn't use MsgHandler as a thread, and implements its
  own message "pump".  Decref was not called after the message was
  published.
  There appear to be more memory leaks still, don't stop looking!

**** 2003-03-09 by Keith Fulton
- Added support for multi-word synonyms in NPC dialog.  This allows
  expressions like "would like" to be translated into "want" to make
  trigger permuatatations not as numerous.

**** 2003-03-08 by Anders Reggestad
- Fix for the /guildinvite command that caused the invited client to
  disconnect. This included fixing a general problem with dialogs.
  After a confirm dialog was destroyed the next dialog in stack was
  set activ. Removed all dialogs from the connect sequence so that
  the connect dialog wasn't shown after closing the confirm dlg.

**** 2003-03-08 by Anders Reggestad
- Had to reset the admin message before passing it to
  the windows.

**** 2003-03-08 by Andrew Mann
- Wrapped debug messages  with #ifdef PSNETPERSISTDEBUG.
  Default still has these on since they offer good status hints for debugging.
- Wrapped some debug messages related to proximity lists with #ifdef PSPROXDEBUG
- Fix for the SendTo retry loop.  sendto returns -1  and errno is EAGAIN
- sendto does not return EAGAIN itself.
- Rolled by the ACK portion of the previous patch until I can find away
  for clients to stay alive during loading.

**** 2003-03-08 by Andrew Mann
- High Priority packets for unknown clients are no longer ACKd.
  Acks are no longer processed for unknown clients.SendTo will
  attempt to retry sending network data if the call returns EAGAIN.
- At times large amounts of data would be queued to be sent in a single
  run.  This caused the networking stacks buffer to fill for the socket
  and the sendto command returned an EAGAIN.  Since we use the same socket
  and thus the same send buffer for all connections, we can block here
  until the buffer becomes available, since our next call would likely
  demonstrate the same EAGAIN error.
- When the server crashed, if it restarted fast enough it began to receive
  packets from the clients that thought the server was still up.  It
  discarded command packets, but the HandleAck() function would still
  generate ACKs to High Priority packets without a known connection
  associated with the packets.  This caused keepalives to be responded to
  and clients thought they were still online.

**** 2003-03-07 by Andrew Craig
- Fixed upload errors.  The race definition was getting deleted by mistake
  which caused havok.

**** 2003-03-07 by Anders Reggestad
- Removed some code that caused compile warnings
- Only one item was crated when stacks where dropped from inventory. Now
  all items are created.

**** 2003-03-07 by Andrew Craig
- Fixed some string case comparing issues in the npc dialog.
- Fixed xml parser to correctly identify and replace &apos;

**** 2003-03-06 by Keith Fulton
- NPC Dialog now occurs in PMs to the player who talked.
- NPC Dialog now also only responds when the player who talked is within 5m.
- Committed for Andrew Mann a rework of CD and LinMove generally.  It is now
  VERY good and fixes the "falling through portal on ladder" problem.  It also
  has realistic gravity simulation and does not let you fall through the floor.
- Andrew Mann also implemented a Jump command which works great and should
  help people when they seem to be stuck between a rock and a hard place.
- Fixed a couple of comment blocks at the tops of files I happened to notice also.

**** 2003-03-03 by Andrew Craig
- Fixed background music to not restart when moving from one sector to another
  that uses the same music ( ex  laanx_entrance to sector laanx_main )

**** 2003-03-03 by Matze Braun
- Added a jam based build system. The old system is now deprecetad and should
  be romeved soon (it's still there for now).

****  2003-03-03 by Andrew Mann
- Fix to allow correct reference handling in the root node of a BinaryTree.
  When deleting an entry from a BinaryTree, if the entry was stored at the
  root node, the iRefCount value was ignored and the node was always deleted.
  The iRefCount is now adjusted and handled correctly in this situation.

****  2003-03-03 by Andrew Mann
- Rewrite of NetBase::CheckCompleteMessage.  Fix for potential packet loss
  and rare crash.  Incoming buffer allocation and packet splitting code
  altered slightly to respect MAXPACKETSIZE.   Comments updated.
  MAXPACKETSIZE set to 515 bytes.
- Netbase::CheckCompleteMessage() did not check for the clientid during
  the assembly of split packet data.  On the server this probably made
  failed packet assembly quite common.  It also used a BinaryTreeIterator
  to iterate through the tree and delete nodes that matched the recently
  assembled packet.  This deleted the node from under the Iterator, causing
  the next call to the iterator to operate on freed memory.
- Netbase::SendMessage() now accounts for the size of the psNetPacket header
  information when determining if a packet needs to be split.
- Netbase::CheckIn() now allocates buffers for incoming data based on
  MAXPACKETSIZE (previously was a fixed 2048 byte size).
- One debug message erroneously printed a "Packet doubled in ack list"
  message when the packet was not doubled, and did not print it when the
  packet was doubled.
- MAXPACKETSIZE set to 515 to maintain compatability with existing builds
  that will erroneously send 515 byte packets during the splitting process.
- Comments in netpacket.h adjusted to reflect the current functionality.


****  2003-03-03 by Andrew Craig
- Finally fixed the problem with the leaf_assert assert. It turns out that
  when calculating the angle there is a possible floating point error where it
  will try to use acos with a number outside the range -1 < x < 1. ( Although,
  not by much, something like 1.000000000123 ).
  This results in a nan and thus corrupts the mesh's iMovable. Fixed by adding
  checks for the range.
- Thanks to Jorrit ( and many others testing )for doing most of the grunt
  work here.

****  2003-03-01 by Keith Fulton
- Added a message to marshall the spawning parameters so that Spawnmanager
  can switch threads and do it's spawning in the main CS thread.
- Added an API to MsgHandler to allow callers to add MsgEntry's to the queue
  directly, which allows them to be picked up and published by the other
  thread.
- Made SpawnManager do all its spawning in the main CS thread, instead
  of creating entities from the game event thread.  It does this through
  internal messaging on the net queue.  This necessary because
  GetNearbyObjects is not threadsafe to objects being added at the same
  moment.

****  2003-03-01 by Andrew Mann
- celPcProximityList and iPcProximityList rework.  Name clarification and
  logic reorganization.  See code in psproxlist.cpp if you are brave.
  Subscribe(), Unsubscribe(), AddSubscription(), RemoveSubscription()
  changed to MutualSubscribe(), MutualUnsubscribe(), AddPublish(),
  RemovePublish() respectively.  AddPublish() and RemovePublish() are not
  meant to be called by code outside of the celPcProximityList class.

****  2003-03-01 by Andrew Craig
- Fixed rain sound problem where the raining sounds were not turned on/off
  when entering a different sector. Added code to stop sound when the rain
  mesh is disconnected from the player and play sound when rain mesh is
  connected back to player camera.

****  2003-02-28 by Andrew Craig
- Fixed problem with admin NPC loading from xml. It was trying to escape an
  already escaped string so it was inserting Ri\'Miyan Sulka in places
  in the database.

****  2003-02-28 by Keith Fulton
I have gone through and converted all "true" and "false" parameters in
function calls to use either #defines or enums in classes.  This makes the
code much more readable when you are just looking through it, and should
be a coding standard going forward, imo.

****  2003-02-28 by Andrew Craig
- Changed the admin messages to use the proper networking system of
  Add/Get data to the message buffer.

****  2003-02-28 by Luca Pancallo
- Added loading of rotation information to xml NPC loader
- Added angle display to /pos command
- Added names to all meshfacts in /art/things and /art/things/weapons
- Deleted dungeon.zip from cvs to avoid conflicts with MB dungeon.
- Changed /pos command to display angle only for admins.
- Added loading of hair/eyes/skin/clothes to xml loader, changed names on the
  db items to match the one we have in the interface, so setting will known
  which skins they are applying.

****  2003-02-28 by Andrew Mann
- pscelclient no longer creates the actor list on receipt of an entity if the
  actorlist does not already exist.
  When connecting to the server, the proximity list of a connecting client is
  created before the actorlist is sent.  If another client moves so that it is
  added to the proximity list of the connecting client before the actorlist is
  sent, the pscelclient will create the actorlist containing just the sent
  entity when it receives the entity.  This makes the client believe it is
  ready to enter the world, and procedes into case 4 of psEngine::LoadGame()
  and psCelClient::SetupControls(). SetupControls will cause a crash if the
  mainactor has not yet been defined, which is the case when the actorlist has
  not been sent.
  This will happen quite frequently on a server with multiple players and
  sizable maps, since the "window of opportunity" for this bug is the client's
  map loading time.

****  2003-02-28 by Matze Braun
- cleaned up refcount handling of MsgEntries in NetBase to be consistent.
  This fixed a bug with linkdead clients.
- Fixed too short timeout bug in client and made teh timeout code more robust.

****  2003-02-27 by Andrew Mann
- Fixed a server crash bug where proximity lists were not updated properly.
  The Unsubscribe member function of celPcProximityList removed the target
  entity from the current client's subscription list, but did not remove the
  target entity from the nearbyClients or nearbyEntities lists.  This caused
  a crash if the improperly referenced entity was destroyed, and then the
  entry in the invalid proxy list was used.

****  2003-02-27 by Keith Fulton
- Fixed bug in /spawn command which crashed the server if someone tried
  to respawn to a sector not loaded at the time.
- Now player mesh is set to invisible when the camera is in first person
  mode.  This stops the weird polys from showing up while running and keeps
  AWS windows from disappearing.

****  2003-02-26 by Keith Fulton
- Fixed bug in celclient which was not accommodating the sex letter which
  was added to the race name.  This was causing the camera positions to
  not be found or used.

****  2003-02-25 by Andrew Mann
- Moved #define PS_EGGHUNT option to spawnmanager.h to ensure that the size
  of SpawnManager objects is consistant.  Fixes a small memory corruption
  issue that could cause seemingly unrelated crashes.
  Variable csRandomGen* randomgen was conditionally defined in spawnmanager.h
  depending on a #define only present in spawnmanager.cpp.  This caused 4
  fewer bytes (sizeof(void *)) to be allocated than needed.  When member
  functions in psSpawnManager wrote to the randomgen pointer, they were writing
  4 bytes past the end of the allocated space.  In debug mode this caused an
  assertion on exit.  In release mode this causes a random crash.

****  2003-02-25 by Andrew Craig
- Fixed Item Description Messaging.  With new network stuff you should not
  access MsgEntry->data->data directly.

****  2003-02-25 by Greg Block
- We have an initial version of the Mac client running against intel servers.
  Planeshift is building and running - albeit limping along due to performance
  problems in CS.
- Updated network code for cel packets; we had reverted last night to locate
  a crasher; it was discovered and fixed by Rhad while I slept, and acraig
  offered his server to the gods as sacrifice on this most holy of days.

****  2003-02-25 by Anders Reggestad
- Only subscribe to admin commands in the communication window when
  you have admin privilege.
- The help command in the communication window didn't work. Fixed the
  network code to handle internal sent messages.
- Server did crash when using /npckill. Removed debug print in
  celPcProximityList that used a 0 pointer.

****  2003-02-24 by Greg Block
- Checked in first set of changes towards endian-proofing network code.
    * Changes to MsgEntry add/getters to support a preencoded datastream of
      specific length.
    * Added support for endian-izing at network level (psNetPacket).
    * Updated network protocol version; CEL messages aren't backwards-compatible
      due to our need to store data length for arbitrary data adds.
    * Updated our CEL packets to support endian behavior.

****  2003-02-24 Christophe Painchaud
- When switching main menu --> credit  and credits --> main menu, the music
  won't stop playing. In addition, the fact it doesn't find the music file
  won't affect the next music playing anymore.
- When you ask for a music which is the same than the one currently be played
  it won't stop or reload it.

****  2003-02-23 by Andrew Mann
- Character Creation Quick Create Path Selection din not always maintain/show
  correct information when switching between creation screens. Fixed by
  altering the psdcPath::SetVisible() to recalculate the statistics.
- When character creation fails on the server, often partial database entries
  were left behind. Now on a failed attempt this data is clean up and removed
  from the database.

****  2003-02-23 by Matze Braun and Rhad
- Fixed a bug in Multipacket Handling where we didn't mask out the MULTIPACKET
  flag. Thanks to Rhad for finding this
- Added proposed fix from Rhad to avoid race conditons in packet sending loop
- Marked Peek, IsEmpty and IsFull function of GenQueue as deprecated.

****  2003-02-23 by Rhad
- Fixed a problem with unsafe acces to genqueue in netbase
- Fixed times for keep-alive response time which was way shorter than the
  initial time that triggered keep-alive packets.

****  2003-02-22 by Andrew Craig
- Added in new MsgEntry::Add( unsigned long ) accessor.  This is used for
  CS_ID. Otherwise gcc reports back overloaded function is ambiguous.

****  2003-02-22 by Keith Fulton
- Revamped how network messages are built.  This is kind of a major change
  to do this close to release, but it is SO major we should be able to test
  it easily before release.  Now you can use accessor functions to get and
  set values within the message.  All message types in messages.cpp are
  converted and are a lot easier to follow now.  This should make it easier
  for Lightyear to do the endian stuff for the Mac version.
- Made CD regional and per load instead of engine-wide and handled at the
  beginning one time.
- Player collider is now built based on the bounding box of the player race
  sprite, not just the same every time.  This should give different races
  different climbing abilities, and may keep the Krans from going into
  houses or may make them run into trees.  We need to check all this.
- Committed great fix from Andrew Mann:  The single line statements in the
  IsEmpty() and IsFull() member functions of GenericQueue and derived
  classes look atomic, but compile to non-atomic assembly.  Under rare
  circumstances these could cause queue entry corruption, and under a
  very strange fixed situation they caused a complete loss off new entries
  added by the network thread to perform keepalive functions.

****  2003-02-21 by Keith Fulton
- Fixed camera positions for all race models in character customization
  window.
- Added some debug code to put on server to try to figure out the
  Illegal Race character creation problem.
- Added support for transitional sectors, which can load new maps
  but do not unload ones already present.  This allows different
  maps to be in memory while walking through the transitional sector.
  (This is the "middle of the tower" example.)
- Disabled CD on the camera in 3rd person view.  This will make the screen
  not always perfect but it will be much smoother to use in tighter areas
  like the dungeon or indoors in hydlaa.

****  2003-02-21 by Andrew Craig
- Fixed problem of entering the library. Changed colldet to search only
  the current sector the player is in for objects to collide with.
  (Requires CS from this date)
- Added SHOW_COLLIDER_MESH_DEBUG in pslinmove.cpp that when defined
  will Notify of the mesh a player has collided with.

****  2003-02-21 by Keith Fulton
- Fixed so that now modehandler->UpdateLights is not called until the level
  is loaded, and that lights are never changed until the first net msg comes
  in with a time of day.

****  2003-02-21 by Jorrit Tyberghein
- NEVER use GetPrivateObject() on CS classes!

****  2003-02-17 by Andrew Craig
- Fixed another error reported by  Andrew Mann ( Rhad ) in the character
  creation. The school of Lah'ar was using a strange character as the tick in
  source code so it was causing the client to crash. Fixed to use \' and added
  check to make sure no NULL pointers used.

****  2003-02-18 by Christophe Painchaud
- Fixed a bug in the credit screen: the first time you launched it,
  you had to wait 15 seconds before you could see the first lines ; but
  after the first time, it was alright.

****  2003-02-18 by Luca Pancallo
- Modified jobs.xml, fixed jobs screen for new jobs and skills

****  2003-02-18 by Anders Reggestad
- Changed the GameEvent to use csTicks indstead of int for ticks.
  This will prevent overflow when a lagre unsigend tick is used.

****  2003-02-17 by Andrew Craig
- Fixed error reported by  Andrew Mann ( Rhad ) in the character creation
  screen. Info->GetRace() could return NULL is no race is selected yet and
  this caused client to crash.

****  2003-02-16 by Keith Fulton
- Added /crystal command so that player can create a new Crystal Hunt
  location from within the game.  Player must have Admin rights.

****  2003-02-16 by Greg Block
- Now using AM_CXXFLAGS instead of CXXFLAGS; this was previously done
  by me some time ago, but I've fixed the one remaining makefile.

****  2003-02-15 by Keith Fulton
- Changed how lighting interpolates from value to value each hour.
  Now it happens only on select frames over a longer period of time instead
  of every frame for a shorter time.
- Fixed bug in rain stoppage lighting, which was making it not lighten back
  up after a storm.
- Fixed initial light setting when a player connects.

****  2003-02-15 by Anders Reggestad
- The communication window (chat window) did cause a crash when resized
  to to small.

****  2003-02-15 by Andrew Craig
- Fixed alpha bleed on connect window. Fixed by not hiding the window behind
  it.

****  2003-02-15 by Anders Reggestad
- Changed the window save/load code to use the same function
  for both windows when saving/loading.
- Added check when loading to prevent window for beeing outside screen.
  This has to be done on load if in case the user have changes
  sceen size.

****  2003-02-14 by Keith Fulton
- Fixed compile error in inventory window slot code.
- Changed /pos command back to only showing your position one time.

****  2003-02-14 by Jorrit Tyberghein
- Fixed the rain mesh object. It will now correctly follow the camera
  around. The error was that the rain bounding box was made relative to
  the camera position. But it should be made relative to 0,0,0 instead
  as the engine itself will make sure the rain is around the camera.

****  2003-02-12 by Anders Reggestad
- Added storing of total time connected to the account section.

****  2003-02-12 by Boonet (through Talad)
- submitted first set of new GUI screens. They are just for 1024x768
  screen res. Other versions will follow shortly. 56K-modem people beware
  of the download time needed to download these screens.

****  2003-02-12 by Anders Reggestad
- Fixed the static / dynamic config file code. Added a domain for the
  dynamic planeshift.cfg file and connected that file to the dynamic
  domain in the configuration manager.
- Added storing of window position for the player (target) window.

****  2003-02-11 by Keith Fulton
- Fixed another permutation of the autorun-double run trick.  This one fixes
  pressing 'r' while already running.
- Fixed prox list radius back to 100m from 5m used for testing.
- Added explicit check in modehandler.cpp when it updates lighting on the
  level that the light having its color changed must be a dynamic light.
  This means it must have <dynamic /> in its definition.

****  2003-02-11 by Andrew Craig
- If a client is currently targeting an item that is picked up by another
  client it will reset the target to null and close the interact menu so they
  cannot pick up a ghost item.

****  2003-02-10 by Keith Fulton
- Added "list" command to server console to get list of entities, with
  id's, names, and positions.
- Added "print" command to server console to get debug details about an
  entity.  Right now, only proxlist information is displayed.
- Committed new, more attractive Item Desc window def file from Brian
  Murray.

****  2003-02-10 by Boonet (through Talad)
- updated buttons images on main menu
- updated pop up windows backgroungs

****  2003-02-10 by Matze
- Added icons for item pop up menu
- changed gui to display pop up in circular fashion

****  2003-02-10 by Anders Reggestad
- Updated the inventory window def file to define the correct set
  of equipment slots. Created a new callback to handle this and
  send move commands to the server. This equipment slots are now
  defined: Back, Head, Neck, Arms, Gloves, LeftHand, Boots, Legs,
  Belt, RightHand, Bracers, Torso.
- Fixed the EquipItem code in the server to verify that item can
  be equiped in selected position. If equip fails a forced update
  of the inventory window is sent to the client.
- The slot field in the database was extended to 100 chars to
  allow multiple wield positions : Lefthand,RightHand.

****  2003-02-10 by Christophe Painchaud
- Only some Races/Gender are allowed yet, so I made system that avoid
  the player to select a forbidden race/gender at char creation screen.
  Next step will be to make the server check for race/gender availability.
- The Item Description Window is now loading  the icon image (which path
  is sent by the server). There seems to be a problem: the icon is not
  right... I mean that it does not fit. Have a look and you will know
  what I mean.

****  2003-02-10 by Anders Reggestad
- Update the image component to set the same texture size on ImageUpdate
  that was used when created.
- Inserted item_descrition and stats field to the item table in the dB.
- Fixed the parser error in the GUI inventroy message, and added support
  for forceing update of the inventory window.

****  2003-02-09 by Andrew Craig
- Fixed strange behaviour in proximity list generation where it was doing
  a repeat subscription.  Only affects server.
- Increased min prox notification distance to 100 units.

****  2003-02-07 by Keith Fulton
- Committing two fixes from Anders Reggestad (Magodro).  First is crash in
  empty inventory window.  Second was that change in inventory slot resulted
  in ALL items in that slot for ANY player being moved to the new slot.  I
  have not tested these fixes, but they do build correctly.
- Committed another fix by Anders so that server now checks user security
  levels for /item, /npc and /killnpc commands.
- Committed a fix for speed double run trick.
- Added auto-respawn on next login if someone falls through the floor and
  logs out.
- Fix attempt to client queue full messages while connecting.  Made
  proximity lists more intelligent about not subscribing to entities which
  are not fully logged in yet (not "ready").

****  2003-02-06 by Keith Fulton
- Thanks to Brian Muray (Kinshadow) for this enhancement.  Now psclient.cfg
  has been split into two files.  The first is system stuff and is subject
  to change without notice by the updater.  The second (planeshift.cfg) is
  user settings, like screen resolution, and will not be overwritten.

****  2003-02-06 by Andrew Craig
- Updated the collision detection algo ( at the suggestion of Jorrit ).
  Was looping over ALL object in the world to test collide with them.  Now
  will only loop over nearby entities to test collide with.  Now looks
  for objects 3 units away to collide with.  Can be redefined in pslinmove.cpp
  by adjusting COLLISION_DISTANCE define.

****  2003-02-05 by Luca Pancallo
- Added needed models and textures for crystals
- Added db entries

****  2003-02-05 by Keith Fulton
- Committed patch from Matt Holmes (Kerion) regarding the char upload
  window.
- Committed fix to /item command by Anders Reggestad (Magodra).
  AdminMsg and AdminGuiMsg were using the same MSGTYPE #, which
  confused the subscription lists.
- Kerion submitted a patch to allow longer host names (with scrolling
  in the text field) in upload and connect windows.

****  2003-02-05 by Andrew Craig
- New ingame and inventory images from Tom/Boonet added.

****  2003-02-04 by Keith Fulton
- Committed a new upload window by Kerion and a variable camera patch
  in char customization window by Cete.
- Added the correct camera positions for Ylian and Stonebreaker.  Didn't
  have time to do the others but they are easy to work out.
- Committed a fix to the Jobs window by Matt Holmes (Kerion).  Skills
  required for a job now display properly and only one job can be
  selected.  Thanks Kerion!
- Fixed /spawn bug from last night.  Note /spawn command now returns
  you to the default spawn point for your race, not your login position.
  This will prevent people from getting trapped under the world forever.


****  2003-02-04 by Keith Fulton
- Implemented persistence of character appearance customization choices
  when creating a character.
- Fixed capitalization differences preventing a duplicate login from
  being detected.
- Added race-specific spawn points, defined in Races table in db.  Right
  now they are set up to point to the "room" sector, which is in podium.zip.
  You must update your db today before running or your server will crash
  very quickly.
- Took out the separate calls for GetObjectPosition and GetObjectSector.
  It was redundant to have both when both are always necessary together.

****  2003-02-03 by Andrew Craig
- Fixed problem with items not dissappearing. Problem was that the
  psCelPersistMessage() constructor changed a little so it was using the
  wrong variables as enity id and priority.

****  2003-02-01 by Keith Fulton
- Fixed crash when mesh fact not found in Char Preview window.
- Added many new detailed error messages when clients are disconnected
  or server cannot create login or new character.
- Fixed a problem with item deletion.
- Added a weather (time of day) update when a player first logs in.

****  2003-01-31 by Marc Haisenko
- fixed small compile errors

****  2003-01-28 by Keith Fulton
- Committed a possible crash in celbase dtor if bl or pl have not
  been created yet.  Thanks to Cete (Tamas Czinege) for detecting
  this and sending me the patch.

****  2003-01-30 by Luca Pancallo
- Fixed a bug in adminmessage.cpp that prevented correct loading
  of triggers. It was failing when a node had more than one child.
  Remaining problems on it are: seems to cut responses in db, 255
  chars may not be enough, or we should reduce our responses.
  still having problems with long series of q&a

****  2003-01-29 by Andrew Craig
- Added in new system to load/parse/insert to database new XML format
  for NPC dialog. Old code is still there, will be removed as soon
  as I figure out what is no longer used.
- Fixed npc processor to use the correct attitude
- Fixed chat text spacing ( maybe a little too tight now ).  Adjustable in
  /src/client/aws/pscomp.cpp : LINE_SPACING
- Chat window now displays players own chat messages in different colour
  to make it easier to see who said what.

****  2003-01-28 by Keith Fulton
- Fixed a couple of asserts.
- Added sex indicator to race specifier of texture customization data.
- You now need the models.zip on gamiix to get the right files, all
  binary sprite files are fixed from yesterday's bug.  8 total models
  now.
- The textures for the fem dwarf are in the MB textures directory on
  gfxteam/2d gamiix.  The directory where they go is in cvs but empty.
  /ps/art/textures/races/fstonebreaker/bla.bla


****  2003-01-27 by Keith Fulton
- Fixed multiple engine->Prepare() calls I think.  This makes everything
  load faster and prevents the engine from trying to light Hydlaa twice.
- Updated storm sfx to use the official PS ones.

****  2003-01-26 by Marc-Andre R. Courtois
- Added file download and install on updater exec
- Added code for futur support of proxy, network interface selection
  and mirror server list.
- Added more error message and exception handling.
- Removed a lot of debug ifdefs

****  2003-01-25 by Keith Fulton
- Fixed sending DR messages too early on connect.
- Updated soundlib to use Sarth's new sounds.
- Modified weather handler to use a different sound for light rain.
- Modified server weather to only do lightning for heavy rain.
- Took out some debugging prinfs.

****  2003-01-24 by Keith Fulton
- Made several fixes tonight discovered while loading the large
  city level, hydlaa.zip.
- Updated the lighting.xml file for Hydlaa. This means possibly
  no more day/night cycles in Podium.  We could merge them I guess
  but it doesn't seem worth it.
- Updated zoneinfo.xml to load the right map with the right sector.
  Updated zonehandler to report sector not found errors.
- Update CEL Persistence to use HIGH priority net msgs.
- If you set your character sector to hydlaa_plaza, you should
  be able to login and walk around the city.

****  2003-01-23 by Keith Fulton
- Committed a possible fix for Player B not disappearing from
  Player A's world when he disconnects.  See CEL history.txt for
  today for details on why.  Thanks to acraig for noticing
  the very strange phenomenon.

****  2003-01-22 by Marc-Andre R. Courtois
- Added libcurl.m4 to the automake macro directory
- Modified configure.ac to check for libcurl version
- Added the base of the http updater client,
  not tested under win32 yet.

****  2003-01-20 by Keith Fulton
- Tracked down FINAL_DECREFs in server, which were showing errors
  even though the server didn't seem to be leaking memory.  Took
  out the msghandler one, and relocated the client one.  Now the
  server should run with zero leak notifications.

****  2003-01-20 by Keith Fulton
- Modified client and server to dynamically determine lists of
  textures/materials and sprite factories at runtime based on the
  contents of the zip file.
- Rebuilt models.zip and fakemodels.zip based on latest models
  and actions from Stefano.  6 models with 4 actions each in there
  now.  fakemodels is in cvs, but models.zip is proprietary to PS
  and is on the gamiix server in the 3d, MB area.
- Updated database to use new sprite factory names.
- Fixed PS/CEL bug which caused CEL not to find the preloaded
  factories.  The <meshfact> tag in a .spr file MUST have a
  name attribute so CEL/PS can find them later.
    Ex: <meshfact name="kran"> blah...
- Fixed NPC dialog processor to use min and max attitude now.
  Renamed faction to attitude, which we use to mean the average
  of all the player's faction scores which are used by the particular
  NPC at the time.  I didn't have a good way to test this, so Talad
  please be careful with this when you try it with your NPC files.

****  2003-01-20 by Luca Pancallo
- Fixed a possible infinite loop in celPcNPCDialog::FindResponse
- Added check for ' chars in name of loaded NPCs
- Added a Escape function that works with csString

****  2003-01-17 by Keith Fulton
- Got rain to go away, due to bug in CS.
- Made rain created when lightning happens if not already out there.
  This is relevant only at startup.
- Improved debug messages about freeing key objects.

****  2003-01-16 by Keith Fulton
- Many fixes related to new template classes in CS.
- Fixed lightning to use variable ambient setting called "lightning reset".
  This may need to also include the sector name to keep the vars separate.
- Also made the lightning result in 1 of 5 random thunder sounds, which are
  played after a random delay of .2 - 4.2 seconds.  This delay should probably
  be networked from the server, as well as location, but I haven't done that
  yet.  This cheap way works pretty well.  It really makes it obvious that we
  don't have a background rain loop though, so I'm doing that next.
- Added 5 new thunder wav sounds, since the last one didn't work.  These
  were from a free website.  2 of the sounds still don't work so I am
  investigating that.
- Added rain sound loop when it is raining in the player's sector.  This
  now sounds awesome, even with my silly test sounds from the Web.
- Added a loop boolean to SoundManager->PlaySound to allow rain to loop.

****  2003-01-14 by Andrew Craig
- Added in Loke's code for the mana bar

****  2003-01-13 by Keith Fulton
- Made race-specific settings for the camera.  1st person should
  be at the right height for each of the races that are done so
  far.  Now camera settings are contained in rpgrules.xml.

****  2003-01-11 by Keith Fulton
- Optimized DR networking some more, made engine exit all the
  way out when they get kicked off.  Shortened proximity distance
  for greater efficiency.  Added some diagnostics to NetQueue
  to see what is making the queue fill up.
- Tried to prevent double loading of existing chars. Seems to
  work.

****  2003-01-10 by Keith Fulton
- Added /greet command, so player will wave to everyone.
- Changed psbehave so that player uses run animation when
  running forwards.

****  2003-01-07 by Keith Fulton
- Updated algorithm for how pcLinMove decides when it needs
  to send a network update about its state.  Also changed
  net message to include speed var as well.

****  2003-01-06 by Keith Fulton
- Added SetReverseAction on sprite when the guy is walking
  backwards.  We still need to persist that flag or detect
  negative velocity in pcLinMove.

****  2003-01-04 by Keith Fulton
- Reworked region handling on client and server to support
  multiple concurrently loaded regions, and dynamically loaded
  and unloaded regions on client, depending on sector.
- Unloading still needs testing/perfecting.  Even if regions
  unload properly, I don't think the sprites will move over
  the way they need to at this moment.

****  2003-01-01 by Keith Fulton
- Reworked character window so it is more maintainable.

****  2003-01-01 by Luca Pancallo
- Fixed Option Panel, the 2 checkboxes are now set 'On' at win creation.

****  2002-12-30 by Keith Fulton
- Fixed the font used by the AWS communication window to be legible.
- Fixed some error checking in celclient for duplicate net msgs.
- Added character texture customization logic to gui customchar.cpp
  window.  This all works fine, but for some reason does not update
  the appearance of the dwarf in the window.  Committed so that acraig
  can look at it from an AWS component point of view.
- Committed several dwarf textures and mask files needed to test this
  functionality with.

****  2002-12-26 by Luca Pancallo
- Fixed Option Panel, it works. It only need to have the 2 checkboxes 'On' at start.
  Other improvement will be to add custom images on the On/Off

****  2002-12-25 by Luca Pancallo
- Some refinements to the confirm dialog window. It now works.
  Still missing text and proper focus.
- Added text to confirm dialog. Dialog is now centered on screen.
  Possible improvements: resize it depending on the screen res: In 640x480 it's huge.
  Change font. The current one is missing the <?> and <'>.
- Added options window with music/sounds setting. Only the GUI is in place, I need to
  figure out how to trigger music sounds based on that setting.
- Added toggle music/sounds to iSoundManager and called that from the option panel.
  Just one last thing to fix before it's complete.

****  2002-12-24 by Luca Pancallo
- Modified the visual C++ 7 projects to have TargetPath defined correctly.
- Fixed the /newguild command with no parameters, added also a check for
  min length of name = 3.
- Added a confirm window that is used when player clicks on the 'X' on the main
  icon bar. It still has those problems:
  - it has a wrong background image and wrong button images
  - it's not hidden at start
  - if you close it and then reopen it, it crashes.

****  2002-12-16 by Keith Fulton
- Reexamined texparse for texture customization masks, and aside from a couple
  of bugs it seemed to work well.  Will start on window coding tomorrow.
- Included a sample bat file for others who may want to run texparse but
  don't know how.

****  2002-12-14 by Keith Fulton
- Added support for lightning in server/weathermanager and client/modehandler.
  The client runs the sequence "<sectorname> lightning" and plays a sound
  called "thunder" in the soundlib.xml file.
- Changed sector_info table to allow control over lightning frequency.
- I don't see a comment in here, but before I added interpolation of rainy
  lighting settings.  Modehandler now interpolates between sunny and rainy
  lighting based on how many raindrops there are.

****  2002-12-12 by Andrew Craig
- Added ability to make <TAB> toggle focus on/off the chat window.  It gets
  a little confused sometimes becase the mouse can also change focus. But it
  works fairly well. This should be fixed sometime later, hopefully when an
  examination of the GUI system is done.

****  2002-12-12 by Andrew Craig
- Added in new item to admin menu to create an NPC from a file.  It basically
  just loads the .xml file and sends it off to the server as is. The helper
  classes on the server then break it apart and do the database insertions and
  spawning.  The format of the file is shown in the NPC template file.
- Note that all of the tags are not used yet. Just the important ones for the
  next release like the name/gender/race/pos and the dialogs. Other tags will
  just be ignored so they will cause no problems.
- As new tags become applicable it will be easy to detect them in the server
  cracker classes.
- At the time of this history:
  http://www16.brinkster.com/acraig/planeshift/npc.html
  shows which tags are recognized.
- Small change to the npc_responses table structure ( change default )
- Added in new main icon buttons from Tom ( Thanks Tom! )


****  2002-12-09 by Keith Fulton
- Updated maya2cs to handle sockets and to handle auto-calculation of
  displacement vertex distances.  Also allows parameter specifying total
  length of animation.

****  2002-12-04 by Keith Fulton
- Multi-sector rain is now supported.  See comments on modehandler commit
  for details of imperfections.
- Background music now changes if you change sectors.  The background song
  should be named "<sector> background" in the soundlib.xml file.
- Fixed a couple of windows compile errors from acraig's huge commit.

****  2002-12-04 by Andrew Craig
- Added the basic ingame dialog editor.  It is not nearly complete in that
  it can only edit things and not create new knowledge areas or triggers
 (yet).  Mostly this is because of walls I keep running to in AWS and want to
  commit something.  So if a 'new' button doesn't work then I know about it.
  :)  Since this is not a critical tool for the release ( ie not seen by
  players and is mostly self contained in it's own shared library ) it's
  not so bad that it is not totally complete at the moment.

****  2002-11-29 by Keith Fulton
- Rain now stops if you cross sector boundary and it is not raining in the
  new sector, and starts if you cross into a sector where it is raining.  This
  is not the perfect way to do it but should suffice for now.
- Added hidden cursor in mouselook.

****  2002-11-28 by Keith Fulton
- Added new include file <util/psscf.h> which contains a #define in it
  for CHECK_FINAL_DECREF.  You should use this #define immediately before
  any decref which you know should be the actual deletion of the object.
  This will help us catch stray IncRef's faster I hope.
- Also added several calls to this #define in the client and networking
  code.

****  2002-11-27 by Keith Fulton
- Server now uses database to determine which sectors get rain and
  how often.  Client gets all weather messages for all sectors, and maintains
  a list of the sectors with rain.  This will enable the client to know whether
  to turn on or off rain when the player crosses a sector portal.  When I get
  a test level which has multiple sectors, I will enable this last part.
- Slight mod to Connect window for aesthetics.
- Altered order of camera modes and took out freelook mode.

****  2002-11-15 by Christophe Painchaud (Atanor)
- Adding the support for Item Description Window. It is not finished at all...
 For the moment it displays fake informations. More to come soon (tmp)  ;-P

****  2002-11-14 by Keith Fulton
- Added autorun to client.  Uses "r" key right now because NumLock isn't
  supported in CS yet.  Working on that.
- Also updated walk/run speeds to be more anatomically correct (6.4km/hr walk,
  2.5x for running).

****  2002-11-10 by Keith Fulton
- Added much error reporting to celserver.  Hopefully we will be able to
  diagnose players getting booted on connect much better now.
- You can now pick up an item and it will disappear from the world.  Works
  nicely with Crystal Hunt generator.
- Committed a fix by Abemor which restores the sex of the character on
  the main creation screen after you choose Kran (which changes it to
  "none" temporarily).
- Committed another couple fixes by Abemor.  Added Rotational Camera Mode
  to 'm' list.  Also made connect windows work when you hit enter from
  the password field.  Thanks Abe!
- Made several IncRef fixes.  IncRef is not necessary when returning a
  csRef as a csPtr.  I verified this with Jorrit by email this morning.

- Current state of refcount issues:
  a. Player A logs in, Player B logs in.
  b. Player B sees 2 copies of Player A, one stationary, one correct.
  c. Player A and B see same items correctly.
  d. Both A and B can take items, and items will disappear from both's
    screens correctly.
  e. When server spawns new items, both see new items correctly.
  f. When B logs out, his sprite is NOT removed from Player A's screen.

- "b" and "f" are the main issues I see at this point.
- Also, there is a major mem leak related to rain.  I know what is causing
  it but I am still investigating the fix, so don't worry about it.


****  2002-11-09 by Keith Fulton
- Added crystal hunt functionality to psSpawnManager and database.
  You WILL need to update your items.sql to get the hunt_locations table.
- Fixed slight AWS crash.

****  2002-11-08 by Andrew Craig
- Rewrote the character upload messages to use XML. You will NEED to update
  your database as some of the table data has changed a little to fix some
  discovered bugs.
- Added race model to the custom screen. You can use the arrow keys to move
  the camera around and the home/end keys to zoom in/out.
- Added preloading of models done durning splash screen to help reduce
  load times.

****  2002-11-06 by Keith Fulton
- Added preference for FreeFont2 font server.  Make sure freefont2 line
  is uncommented and default font server is commented out in your
  psclient.cfg file.  The TrueType fonts look much better than the
  CS fonts.
- Added last_login_ip to Accounts table and AuthentServer.

****  2002-11-05 by Andrew Craig
- Moved the splashticks out of psengine and into the splashdialog class.
- Added new ingame icon images Talad gave me that Tom did. May need some
  scaling later on but look very nice.


****  2002-11-05 by Keith Fulton
- Added Kran model and new font for Char Creation windows so they are
  more attractive.

****  2002-11-03 by Andrew Craig
- Added in new NPC admin window.  Allows you to create a new NPC in
  a position and assign it's knowledge areas. On the dialog tab it shows
  what knowledge areas are available and which are assigned. Use the <> to
  assign/remove. The +/- buttons are for the order the knowledge areas will
  be checked.  Note the knowledge area buttons on the bottom don't work yet
  as that is the next area to work on  ( dialog editor )
- Fixed Logger to handle variable lists properly
- Cleaned up some of the code ( replace tabs with spaces )
- Commited updated msvc/mingw project files. ( Vengeance may need to
  commit updated msvc7 files )

****  2002-10-30 by Christophe Painchaud (Atanor)
- added some physical customization for each race like eye colors and
  nose types. Each possibility will be listed in the rrpgrules.xml
  later. It will come later with the character customization dialog.
  the race class now have functions like GetEyeColors which returns a
  Vector of all possible eye colors for the given race...

****  2002-10-29 by Matze Braun
- added new logging class by Atanor

****  2002-10-24 by Andrew Craig
- res submitted fix for two crashes that occur when an initialization
  error is displayed.

****  2002-10-20 by Andrew Craig
- Fixed PS for latest CS API changes:

 "The first is that iTextureManager->FindRGB() has been moved to
 iGraphics2D->FindRGB().
 Then the following three functions have been removed from iTextureManager:
     SetPalette()
     ResetPalette()
     ReserveColor()

 These functions are no longer needed with the removal of the 8-bit support.
 So you can just remove any calls to these without problems."

- Fixed updater/client and server/mysql projects to include a link to zlib
  since that has changed a little in CS. Tested under linux will do the
  Win tests later ( or unless somebody beats me to it )



****  2002-10-12 by Andrew Craig
- Added 'Add Items' to admin manager.  It presents a list of the current
  items in the database and you can pick one to add.  The current pos
  button will fill in the location with the current position of the player

****  2002-10-12 by Matze Braun
- Committed a patch by Sky0 that adds checking of server chars

****  2002-10-01 by Keith Fulton
- Added MouseLook mode.  Hit "backslash" (\) to toggle.

****  2002-09-27 by Andrew Craig
- Added in basic frame work for admin manager on the client. Typing in
 /admin now will pop up the main admin window where all admin options can
 be picked.  None of them are functional yet but will slowly add options.

****  2002-09-21 by Keith Fulton
- Added fog to ModeHandler.  Specify fog density of 0.0 to turn fog
  off completely.  Fog takes about 40% reduction in speed in dungeon
  level for me with no far plane adjustment.
- Added lighting interpolation to ModeHandler.  Now on timing updates
  the ModeHandler adjusts the lighting each frame so that it takes
  10 seconds to change completely to the new lighting.  It looks very
  nice but costs about 2 fps on my machine in dungeon during that 10
  seconds.

****  2002-09-20 by Andrew Craig
- Made sure all other models are in XML format

****  2002-09-20 by Keith Fulton
- Added dynamic world lighting engine to ModeHandler on psclient.
  Reads xml file /art/world/lighting.xml to get specifications.
  Timing is driven by server events.
  Lighting can be both for actual lights (if defined as pseudo-
  dynamic) and for ambient lighting.  Fog settings are next to use
  same architecture.

****  2002-09-18 by Andrew Craig
- Updated inventory screen a little.
- Added equipment slots ( non functional yet )
- Added current weight of all items

****  2002-09-14 by Keith Fulton
- Major changes to NPC dialog.  Update your database or they won't work.
- Dialog now supports multiple triggers linking to responses.
- Responses can now have up to 5 alternatives, which are chosen from randomly.
- PriorResponseRequired enables dialog designer to ensure continuity of dialog.
- Pronoun antecedents are now supported, so player can ask things like "where is it?"
  in context.
- Word list now autobuilds from the words in the triggers.
- Sentences not understood are now logged to the database, so Settings people
  can add them in later if they are valid.

****  2002-09-13 by Andrew Craig
- Added new dungeon map in xml format since the old format is being
  removed from CS.  You will need very recent CS ( today's ) since Jorrit
  fixed some bugs.

****  2002-09-11 by Keith Fulton
- Fixed network connection error messages and fixed new attempts to
  reconnect after a disconnect error.
- Added WeatherManager to server.  This manager will eventually use the
  database to decide when to trigger storms, lightning, etc.  Right now,
  it simply generates rain every 30 seconds or so for debugging purposes.
  It also sends out messages about time of day, for use in day/night cycles.
- Added rain functionality into ModeHandler on client.  Rain does not
  follow the person right now.  That is next on the list to do.

****  2002-09-10 by Keith Fulton
- Added PgUp and PgDn for Look Up and Look Down capabilities in 1st person
  and 3rd person views.

****  2002-09-08 by Keith Fulton
- Maya sprite converter now flips Z orientation (and many other things
  as a result), so that orientation of CS and Maya models is consistent.

****  2002-09-08 by Andrew Craig
- Added paper doll to the inventory screen. This will eventually be
  used so that the character can see what equiped items will look like
  on the character. Next steps are to add the equipment slots around it.

****  2002-08-30 by Andrew Craig
- Updated script to generate msvc project files and commited a new set of
  .dsp's.  Let me know if you have any troubles with them so the script
  can be corrected.

****  2002-08-28 by Keith Fulton
- Added maya sprite converter.  Uses new xml output format.

****  2002-08-28 by Andrew Craig
- Big commit.  Now have a working inventory screen. You can pick up items
  and then click on them in your inventory to 'grab' them. Move the mouse
  outside of the inventory screen to drop that item on the ground. You
  can also move items around to different slots inside the inventory screen.
  ( Right now can only move to empty slot, have to work out 'swapping' )

-  Update your database as usual since more stuff added.

****  2002-08-20 by Andrew Craig
- Added slots to the bulk inventory screen. It now shows your inventory
  and when you pick up a treasure chest it is updated.  For now I only
  have a slot image for the treasure chest.

- You HAVE to update your database as some of the tables have changed
  to reflect these changes.

****  2002-08-14 by Andrew Craig
- Moved texfactory out of the character plugin and into the util lib.

****  2002-08-11 by Andrew Craig
- Added some more stuff to the inventory window. It now consists of 3
  frames and the buttons on top allow for the frames to be closed. The "Q"
  button will close the screen.

  Frame 1: The stats screen ("S"). Where all the player stats such as any
           equipment effects ( ie ring = wisdom+2 )
  Frame 2: The paper doll ("PD") This is where the player will equip the
           player.
  Frame 3: The bulk inventory ("B"). This is where the bulk of the players
           items are stored.


****  2002-08-09 by Matze Braun
- even more cleanup and csRef changes (still the client leaks iPSEngine after
    connecting to the server :-/)
- removed RefCountBase from the project as there's now csRefCount

****  2002-08-08 by Matze Braun
- cleaned some code and changed it to use the new csRef

****  2002-08-05 by Marc Haisenko
- Added celPcLinearMovement::UpdateDR again ?!? Didn't hit CVS ?
- Updated psClientDR to make use of celPcLinearMovement::UpdateDR again ?!?
- Added celPcLinearMovement::NeedDRData which checks whether we are in the
  need of sending a new DR packet or not
- Updated iPcLinearMovement accordingly
- Added #define CELPCLINEARMOVEMENT_DRDELTA which defines the max allowed
  deviaton from the calculated DR position before we need to send a new
  DR packet
- Added celPcLinearMovement::lastKnownPosition, lastKnownMatrix and
  lastKnownVelocity
- Added argument useLastKnownValues to celPcLinearMovement::MoveV to
  use the values from the DR packet for movement
- Fixed potential DecRef leak in psClientDR::SendPersist
- Fixed server crash in psCelServer::InitProximityList (sector was NULL)
- Removed psClientDR::lastsentdata, celPcLinearMovement::NeedDRData is
  enough

****  2002-08-02 by Andrew Craig
- Started to implement proper ingame gui. Right now the first Icon Bar
  is placed on the top left. The top button is used to toggle the icon
  bar on and off.
- Not all the icons are there yet. Need ones for 'game options' and
  'buddy list' and a couple of others.
- New icons are in art/buttons/icons/*.png
- Only button that does something at the moment is the inventory (bag).

****  2002-08-01 by Keith Fulton
- Fixed major bug in psclient where MsgHandler thread was running as its
  own thread (like the server) instead of in the normal CS event thread.
  This was causing strange and inconsistent client crashes upon removal
  of entities, because memory was being deleted that CS was in the middle
  of using.
- Fixed duplicate DecRef problem in proxlist, causing server crash on
  death of certain NPCs.
- Fixed stray refcount issue when one or more clients have an entity
  targeted which must be deleted from the world.

****  2002-07-29 by Keith Fulton
- Added a type field to psSystemMessage both for eventual client
  filtering options and to allow the client to trigger sound effects
  from the messages.
- Added background music change during combat, using psModeMessage
  updates, with new psModeManager on client.
- Added foreground sound effects (grunts, sword clangs, etc.) for use
  during combat.  These were added in both AWS and Lsupi chat window
  handlers.
- Added several new sounds.  Make sure you update your /art  dir.
  Also, the combat music is on the gamiix ftp server.  See /art/soundlib.xml
  for details on filenames, etc.

****  2002-07-28 by Andrew Craig
- Added a range to select items. So if you are not withing a
  particular range of a target you cannot interact with it.

****  2002-07-27 by Marc Haisenko
- Added celPcLinearMovement::UpdateDR which updates the entity
  position according to the last known DR data
- Updated psClientDR to use UpdateDR on all entities, which should
  improve the smoothness of other client's movement a bit (the DR
  code is not very efficient atm)

****  2002-07-27 by Keith Fulton
- Added admin console window, invoked with /admin command.
  This window makes a tab for each object which has registered with it,
  calling each one's create function when it itself is created.
  This is intended for remote database admin, customer service ui,
  python scripting, etc.
- Added combat manager to server, with numerous helping functions
  in pspccharacterdata plugin.  This handles melee combat and is more
  or less a skeleton right now, but it does work.  If you attack the
  Male Enki Orc Pawn, you will fight him till he dies, he will disappear
  and respawn as appropriate.  (If you try to click on him again, you
  will crash though.  Working on that now.)

****  2002-07-26 by Andrew Craig
- AWS changes in CS have finally allowed the return of the
  new chat window!
- Make sure you are using an updated CS.
- Please inform me of any problems here since this has been an
  ongoing issue with AWS so want to work out any more bugs.

****  2002-07-21 by Luca Pancallo
- Fixed ase2spr. Now the UVMap coords are exported in the same way
  they are defined in 3dsMax. There no more the need to flip the texture.

****  2002-07-18 by Marc Haisenko
- Tried to beautify the pslinmove.h header file a bit
- Added CelBase::GetActor(int idx) to query registered entities
- Renamed psCelClient::{Get,Set}Actor to psCelClient::{Get,Set}MainActor
  to avoid conflicts with the CelBase methods and to avoid confusion
- Renamed psCelClient::actor to psCelClient::mainActor to avoid
  confusion with the inherited CelBase::actors (both of type
  iCelEntity*)
- Added celPcLinearMovement::lastDRUpdate (not used right now but will
  be in the near future)

****  2002-07-17 by Andrew Craig
- Added code to send inventory to client.
- When the client opens the inventory screen the server sends back the
  players inventory as an XML string.  At the moment it is just printf'd
  onto the console because I want to wait until the custom componets are
  fixed in AWS before creating the inventory screen.
- At the moment it sends back the name of the item,slot, and count. Later
  can add the name of an image file that should be used to represent that
  item inside the inventory.
- Note that the 'Close' button on the inventory window must NOT be
  behind the chat window for it to work. ( Will be resolved once our AWS chat
  window is restored ).

****  2002-07-14 by Marc Haisenko
- Added calculation of "ping" times of high priority packages to psNetBase
- Added a psNetInfos class that should provide informations from the
  network to other classes (currently only the average ping time which
  is needed for dead reckoning)
- Added "use planeshift;" to create_all.sql so creating the database
  can be done by just doing "mysql <create_all.sql"

****  2002-07-13 by Andrew Craig
- You can now 'pickup' a chest.  It removes it from the world and moves
  it out of the object table and into the players inventory table.  Next
  steps will be to send the client the inventory list when inventory is
  opened. Tested under window mostly, some crashes in linux. Looking into
  them.
- Tried to fix the npc spawning. Appears to be ok but still needs testing
- Possible Decref problems when using /npc and /item since they show
  as having count 2 in the world. ( clicking on entity now printf's it's
  refcount ). Also under investigation.

****  2002-07-08 by Andrew Craig
- Server now gets 'pickup' command from the treasure chest and sends it
  to BL. Next step is to add to inventory and remove from clients.

****  2oo2-07-04 by Marc-Andre R. Courtois
- Modified console output. It looks much nicer now.
- Added #ifdefs for debug code temporarly.
  Will eventually switch to a command debug flag such as --debug.
- Fixed a bug where uclient would crash after creating its config file automagically.
- Fixed a bug with the win32 autorun code.

***  2002-07-03 by Andrew Craig
- Added in interaction menu. Now when you rclick on the chest it
  pop ups a menu of all the options available for this item.  On
  the server there is a very simple ChestBehaviour that defines
  what options are available for this item and this is used to build
  the client side menu.
- Note that none of the buttons do anything at the moment ( except for
  the 'close' which closes the window )

***  2002-07-03 by Keith Fulton
- Added scheduled event for dead NPC respawning.  Only static spawns
  (fixed location) are supported at the moment, but I plan to add
  variable spawn ranges next.  Be sure to run npc.sql to get the new
  tables for this.  You also need to update the row for the first
  OrcPawn player npc_spawn_rule_id to be "1", but I didn't think that
  was worth an entire new player.sql script.
- NOTE: Target the enkidukai npc on the far left, say /killnpc and you
  will see him disappear, then reappear 5 to 10 seconds later.  If you
  want to kill him again, you need to retarget because the target window
  is not updated correctly yet.  If you say /killnpc a 2nd time, it works
  on the server but does not disappear from the client for some reason.
  Still working on that.

****  2002-07-03 by Matze Braun
- added server status reporter. The server now listens on TCP port 21221
  and reports it's status back when a client connects. This port is only
  bound to localhost by default.

****  2002-07-02 by Keith Fulton
- Added support for proximity list updating in psserverdr.cpp so that
  a moving player gets his list updated, and new entities propagated to
  his machine (or entities removed) as appropriate.  Still not 100%
  correct, but committing in order to get acraig's assistance.
- Fixed Windows semaphore implementation.

**** 2002-07-02 by Matze Braun
- droped sal and implemented own classes for threading, mutexes and
  conditions

****  2002-07-01 by Andrew Craig
- Restored the target window and the inventory window ( does not display
  the background. Just pops up a window ).
- Changed the database to use a different chest model since the current
  one appears to have problems. So you need to update your 'item' table
  to use 'chest' instead of 'chest1' for the mesh.
- Chat window may take a little longer but I'm working on it.

****  2002-06-30 by marc-andre r. courtois
- Modified xml_fileinfo to work with the current file list format.
- Created a new shell script to build the file lists. (Still need some work)
- Fixed a filename display problem on win32.
- Added a force check command line option.

****  2002-06-30 by Keith Fulton
- Added EventManager class to server.  This class maintains a queue of
  timed events (to the nearest msec) and uses a thread to clear that queue
  at the time required so that events can be scheduled by other parts of
  the game to happen in the future.  This feature is required by combat, npc
  dialog, AI, pathfinding and probably others.
- Added demo of this feature to /pos command, which now automatically sends
  its reply once per second for 5 seconds using game events.

****  2002-06-30 by Marc-Andre R. Courtois
- Added estimated download time display to uclient.

****  2002-06-29 by Marc-Andre R. Courtois
- Fixed the memory allocation issue in uclient.
- Did some reformatting in the code.

****  2002-06-27 by Andrew Craig
-  Temporarily commented out the AWS system. It's underwent a big change
   in the last few days and has some issues to work out. The current AWS
   system breaks the ps code at the moment.  So old chat window is back for
   now.
-  If you have not updated CS and can still use the old AWS code then change
   the define in psengine.cpp: #define USE_AWS true. Hopefully the issues will
   be resolved soon and can switch back.

****  2002-06-27 by Keith Fulton
- New cel PC, ProximityList, which will track all clients interested in a
  particular entity.  This will be used for efficient network updates of entity
  state changes.  It is anticipated to be basically based on nearness to
  that entity, but could be used in more sophisticated ways.
- Updated pcLinMove to use new Proxlist instead of broadcasts of position
  updates.
- Added Multicast function to NetThread and base class NetBase, which takes
  a vector of clientnums and sends the same message to all of them.  This
  vector is maintained by iPcProximityList, but other vectors could be supplied
  also.  Also added wrapper function for Multicast to MsgHandler for convenience.

****  2002-06-22 by Marc-Andre R. Courtois
- Fixed small bug with the progress bars.
- Fixed problem with the file compare under linux.
- Fixed a small problem causing the server to exit with 'Broken pipe' error.

****  2002-06-21 by Marc-Andre R. Courtois
- Fixed project files for msvc.
- Fixed a small bug when parsing the file list in the client.

****  2002-06-21 by Marc-Andre R. Courtois
- Added a event log reporter to the updater.
- The updater client is now able to save file list md5.
- userver now support md5 check for file list requests.
- Updated the code to make it compile nicely on gcc3.
- Added the base of an admin service for the server.
- Modified the server config file format to support
  the new changes.
- Fixed a few minor bugs.

****  2002-06-20 by Andrew Craig
- Added in basic inventory screen.
- Reorganized some of the aws code
- Moved all window .def files into a mounted zip file

****  2002-06-18 by Andrew Craig
- Started some basic logging for the server.
- Writes:
   - uptime
   - total bytes in/out
   - current clients/load
   - average load
   every minute to a flat file. ( server.status )
- I also have a php script that formats this data to a webpage but
  I'm not sure if it belongs in the cvs.
- Minor fix to the /npc command

****  2002-06-17 by Keith Fulton
- Added /killnpc command.  Command is handled by AdminManager, but
  forwarded to SpawnManager.  SpawnManager handles removal of the
  entity, notification of clients and updating the database that
  the NPC is dead.
  (NPC will not respawn atm, until you manually update the db to
  set his alive indicator back to 'Y'.  Respawning is task for tomorrow.)

****  2002-06-16 by Keith Fulton
- Added new Enkidukai model from Talad to models.zip, and a dummy
  to fakemodels.zip.  Renamed models and textures to consistently
  include version, race and sex.
- Updated celbase to load material for new model.
- Updated database, moving gender from players to races, so that
  different meshes for each sex can be used.
- Changed character uploading messages to pass in race and sex
  as strings to facilitate database query for these now.
- Fixed an error from yesterday where the sector was not being
  filled in correctly for new players.  This is hardcoded to "room"
  now but probably needs to be revisited when we look at spawn
  points for players again.
- Added minor fix to object creation for Abemor.

****  2002-06-15 by Andrew Craig
- Implemented /item admin command. Adds an item to the world at the
  players current location. Note that it puts it halfway in the floor.
  I assume that this is related to how the model is designed.
  Ex: /item Chest

****  2002-06-15 by Keith Fulton
- Added user security level to players table, so that certain commands
  are only available to certain players.
- Added AdminManager on server and CmdAdmin on client to handle
  administrative or secured commands.
- Implemented /npc command, which creates another copy of the named
  npc at the player's current loc, sector and rotation.
  Ex:  /npc Orc Pawn

****  2002-06-14 by Keith Fulton
- Added code to save rotation angle of players and NPCs and use them
  when respawning or connecting.
- Make sure you update your objects table with new column: rotation.

****  2002-06-14 by Andrew Craig
- Added code to spawn items to the world at startup. At the moment
 it is just a chest in dungeon. ( note the chest does have bad UV
 coords but it was the only item in the cvs )
- Make sure that you update your items/object tables as there are
 new entries now.

****  2002-06-14 by Keith Fulton
- Committed the code in ChatManager to call the NPC Dialog plugin
  for the targeted NPC, if they do dialog.
- Export6.sql is the preliminary import script to create the NPC
  dialog tables.
- Now the NPC looks at what you say in order to respond.  Pronouns
  and factions not implemented yet, however.

****  2002-06-14 by Andrew Craig
- You now select items with the right mouse button. Helps to remove
  conflicts with clicking on windows.

****  2002-06-12 by Marc Haisenko
- Added sector support to the database
- Updated export2.sql and export5.sql accordingly
- Added sector support to the server (making /pos and /spawn work correctly)
- Updated celPcLinearMovement::{Set,Get}DRData to send/receive the sector name

****  2002-06-12 by Keith Fulton
- Added initialization routines for NPC dialog and dictionary.
- Added important thing, psUserActionMessage, which specifies an entity
  id and a text verb.  When the server receives this message, it
  goes to the psCelServer which forwards it to the Behavior Layer class
  for the relevant entity for processing.  Right now, the BL does not
  use this, but it is there for later.  psCelServer also processes the
  "select" verb so that the server can track who has what targeted.
- Virtualized the database interface so that the NPC Dialog plugin
  (or others) can use the database.  Had to change several guild APIs
  to make this work.

****  2002-06-08 by Marc-Andre R. Courtois
- Added sector display to /pos command.

****  2002-06-08 by Andrew Craig
- Added in new NCPDialog property class for Keith
- Updated chat window to be resizable and save the last position. Still
  in progress for some more cosmetic changes.

****  2002-06-05 by Keith Fulton
- Added psSpawnManager class to server.  This class handles initial
  creation of NPCs in the world, and will later handle respawning of
  killed NPCs after we add combat.
- Note that NPCs are stored in the Players table like all PCs.  (That
  table should probably be called Characters instead of Players.)  NPCs
  are specified by a non-null Spawn Rule field (which will be implemented
  along with respawning), and whether they are alive or dead.  Only "alive"
  ones are created when the world is loaded.  The "dead" ones are the
  respawn candidates.
- Having NPCs stored in the Players table allows us to use the same
  machinery for Player Items, Player Stats/Skills, Races, Meshes, Texture
  Customization, etc.  Other than that their movements are not generated
  by network messages, but instead by AI (later), they are no different
  from other players.  This is going to be a huge benefit as we go forward
  with game balancing, loot generation, etc.

****  2002-06-06 by Marc-Andre R. Courtois
- Fixed a fstream issue on win32 where files were created instead of being
  checked.
- Fixed socked code compatibility for win32.
- Fixed the progress bars.
- Note that the updater client must use zlib.dll to run properly.

****  2002-06-05 by Marc-Andre R. Courtois
- Fixed the updater client and server to support the linux distribution
  of PlaneShift.
- Changed compression to only gz instead of tgz.

****  2002-06-05 by Andrew Craig
- Added a new 'player' window. For now this just shows which object
  you have targeted ( ie clicked on ) to interact with.

****  2002-06-01 by Keith Fulton
- Added big extension to pfpccharacterdata plugin to handle
  texture customization.  New psTextureFactory class in that
  plugin handles all the bit twiddling.
- You will need the three textures for stonebreakers from
  the 2d section of the nexus and the racelib.xml doc which
  specifies and defines all the regions of each texture.  The
  skin1.file should be called chainmail.png, and the other files
  should be called cotton.jpg and patchwork.jpg.
- The location for texture files is /art/texture/race/<race>/.
- You will need to drop your "races" table if you have one and
  run export4.sql.

****  2002-06-01 by Andrew Craig
- Added 'Hot Key' support to windows. There is only the one window now
  so it is not exciting :).  Keys are defined in data/guikeys.xml.  Right
  now CTRL+1 will toggle the chat window and on off.

**** 2002-05-31 by Jorrit Tyberghein
- Fixed a call to BeginDraw for 2D gui. It was calling
  engine->GetBeginDrawFlags() but that's bad if you're
  planning to do 2D graphics.

**** 2002-05-30 by Andrew Craig
- Fixed a couple of issues with uploading characters and id's
- Added a 'delete' command to the server.
- Use it like this: delete playername


**** 2002-05-29 by Andrew Craig
- Added in a new Chat/System message window. The old one is still available
  it has just been commented out for now.
- There is a psgui.def file that describes the layout of this window in
  data/psgui.def.
- Note that the .def file is only for 800x600 resolution. Later on it will
  load a .def file that is based on the screen res. i
- Note too, that the scroll bars do not function quite exactly right ( ie when
  new text is added but they work. )
- There are some AWS issues that I'm working on as well.


**** 2002-05-26 by Keith Fulton
- Added translation of texture parts requirements to xml string
  in psCelServer, storage in psCelCharacterData plugin.
- Added storage and CEL persistence for this string so now
  client will have the specs to build the player texture.
- Several other minor updates, fixes.
- Earlier today, fixed the server crashing problem I think.  Thanks
  to Sarm and acraig for pinpointing the problematic function.

**** 2002-05-23 by Keith Fulton
- Major new inventory functionality (just server side, don't
  get TOO excited).
- "Items" are standard definitions of things in the games,
  such as swords or muffins or chests.
- "Player Items" are where inventory is tracked--who is carrying
  what.
- "Equipping" is what I call it when you wear or use the item,
  as opposed to just carrying it.
- The Player Items table tracks which things are equipped
  and which are just carried.
- Items have "slots", which dictate where each item is
  equipped.  Only one item per slot can be equipped.
- If an item is equipped into a slot which is already taken,
  the old item is unequipped.
- If an item does not have a slot, it cannot be equipped.  This
  is for things like muffins. :)
- Items also have a "size", which is a number.  Races define
  Min Size and Max Size which they can equip.  This can be
  used for small or large armor, or for weapons which are
  too large for small races to use, for example.  If the item
  size is NULL, then it isn't relevant and is not checked against
  the race size range.
- Items also have a Stackable Indicator, which if "Y" means that
  we can count them all in one bucket instead of making a separate
  record for each one.  Again this is for muffins or bat wings, where
  you might have 20 of them at once.  Adding the items to inventory
  checks this field and either creates a new row or increments the
  counter as appropriate.
- There are several other columns in the Items table which are
  interesting for Rules.  I will document them as I implement them.

**** 2002-05-23 by Sarmaael
- Commited the code for the updater.  Not part of the main build
  sequence yet as he works on it.

**** 2002-05-23 by Andrew Craig
- Added a basic psAwsManager that will be in control of the gui that
  uses AWS.  Doesn't do anything at the moment except load the plugin
  and set the graphical canvas.

**** 2002-05-19 by Keith Fulton
- Added redundancy check to pos update messaging.  If no change, msg isn't sent.
  This will greatly reduce bandwidth reqs.

**** 2002-05-18 by Keith Fulton
- Fixed a decref bug in /pos command.
- Added table to db (Objects).  Run export2.sql to create.
- Modified player exit logic to save last position in db when logging out.
- Modified player connect logic to use last position in db as spawn point.

**** 2002-05-13 by Keith Fulton
- Added /pos and /spawn commands.
  (Spawn needs to be tested with multiple clients.)
- Tooltip auto hides now
- Fixed client crash if server has not yet loaded a map.
- Client now heartbeats and detects server linkdead (crash most likely) and quits.
- Some other small changes (printfs, etc.)

**** 2002-05-11 by Keith Fulton
- Added support for multi-word guild level names.

**** 2002-05-10 by Amin
- Added first person view. You can activate it with 'm'.

**** 2002-05-08 by Luca Pancallo
- Added function to list all guild levels issuing the command /guildlevel with no parameters.

**** 2002-05-02 by Keith Fulton
- Fixed guild creation, deletion and guild invites on server
- Fixed major packet merging bug on server
- Added client# and Kbps debug printfs every 30 sec on server
- Added heading text above /who list
- Changed /roll to limit to 10d10000 max

**** up to 2002-05-01 by Matze Braun
- several fixes to networking: big leak fix, message combining working again
    and several bug fixes.
- lots of gui changes - char creation nearly complete
- changed default port to 31113
- changed behaviour for requesting world and actors, now the client has to
    send explicit requests for each part wich makes it more robust.

**** 2002-04-25 by Keith Fulton
- Added /roll command.
- Changed system message display so they cannot be faked.

**** 2002-04-21 by Luca Pancallo
- Added jobs.xml files. Added code to load that file. Added code to
  use that in the jobs screen
- Modified the dialogmanager to use different fonts based on different
  resolutions. This means that you need to compile the freefont plugin in CS.

**** 2002-04-18 by Keith Fulton
- Fixed /who command for non-members of guilds.
- Fixed destinee for guildremove messages.
- Added confirmation box for invited user when invited into guild.
- Added messages, etc. to enable this confirm box.

**** 2002-04-18 by Saul Leite
- Small fix to the credits screen.  Loads in docs/credit.txt
  so all names should be put there.
 @ is for titles
 & for subtitles


**** 2002-04-18 by Matze Braun
- Fixed the rotation problem

**** 2002-04-17 by Luca Pancallo
- Added credits dialog, you can access it by clicking the gray gem in
  the main menu.
- Fixed po2 for confirm dialog.

**** 2002-04-17 by Keith Fulton
- Changed msgtype to be 2 byte numeric instead of big 4 byte union.
- Shortened psMessage struct to be 4 bytes now.

**** 2002-04-17 by Andrew Craig
- Fixed CD for going down stairs
- Added data to ingame skills screen ( data is from server )
- Not sure how this will react to characters that were not created by
  the creation process ( ie test chars )

**** 2002-04-17 by Matze Braun
- fixed a bug in cel, now the server shouldn't crash anymore
- some small gui changes
- made pslinmove DR packets a bit smaller (now we're only sending y angular
    velocity and angle) and the action is used as a number...
    still we have 63! bytes per DR message this should be much smaller...

**** 2002-04-16 by Keith Fulton
- Added update of "last login" column in Accounts table
  when player logs in.  Can use to determine inactive players
  to delete.
- Fixed up ConfirmBox to use new pixmap background and to scale
  correctly for different resolutions.  BG still needs to be po2.

**** 2002-04-16 by Andrew Craig
- Hopefully fixed the CD once and for all.

** 2002-04-14 by Matze Braun
- fixed several bugs in GUI and menu component classes

*** 2002-04-14 by Keith Fulton
- Changed database connection parameters in server to use psserver.cfg.

*** 2002-04-13 by Luca Pancallo
- Modified upload screen to have same art as connection screen
- Added confirm password field. Removed gender, race fields

*** 2002-04-12 by Andrew Craig
- Added a new UpLoad screen that handles the uploading
  of a character. May need some good art for that. Also
  remember to rebuild affected libs.
- Changed the uploading char a bit.  What happens now is
  that on upload it will create a new account with the player
  name.  It then responds with an accept/reject message for that
  name.  It will then progress to send the race/stat/skill info
  as it did before.
- Small fixes to path screen to check path was selected.


*** 2002-04-11 by Andrew Craig
- Added basic messaging so that the client can request information
 from the server about its character. Since the client will be very
 thin it would only need this data for display purposes.
- Split the char messages off into it's own file to make it a
  little easier to find.  ( So make sure you rebuild that lib or
  ./configure )

*** 2002-04-11 by Luca Pancallo
- Fixed sizes and position of in-game spellbook and skill windows
- Uploaded in-game spellbook and skill window art in po2 format

*** 2002-04-10 by Andrew Craig
- Fixed movement so you can change speeds while moving.
- Klyros now has "no image" in creation screens.
- Cleaned up a little of the rpginfo code a bit.

*** 2002-04-09 by Andrew Craig
- Fixed XML file to display properly.
- Fixed psText to focus on the top line instead of bottom. Seems to have fixed
  chat window as well since I cannot reproduce error in todo.

*** 2002-04-09 by Andrew Craig
- Added in skill info for the skills screen ( click on a skill name )
- Fixed path screen to go to the upload screen.


*** 2002-04-08 by Andrew Craig
- Added in race pics to the main creation screen
- Fixed Kran creation problem.

*** 2002-04-07 by Scott Russell
- Fixed display of button texts on Path Screen
- Added images of weapons to Path Screen

*** 2002-04-06 by Keith Fulton
- Fixed /help msg to display in chat window.
- Fixed bug in psText fields preventing them from scrolling.
- Fixed bug in AuthentServer if account didn't exist on new player creation.
- Fixed several assertion errors in pscelserver.
- Added 20 connection limit.

*** 2002-04-06 by Luca Pancallo
- Added new art for warning pop-up window
- Modified warning window, it now positions things correctly based on screen res
- Added new art for connect window
- Modified connection window, it now positions things correctly based on screen res

*** 2002-04-03 by Matze Braun
- found a little bit of time and fixed the outstanding server crash

*** 2002-04-02 by Keith Fulton
- Is no one using this anymore?
- Changed NetThread::CheckLinkDead to actually try a heartbeat message
  before killing the client off.
- Added a few VFS items to assist with smooth mesh caching functionality.

*** 2002-03-29 by Keith Fulton
- Various bug fixes and error checking.
- Added action to DRUpdate message to try to update animation of other players,
  but it does not have any effect on the view of the actors for some reason.

*** 2002-03-29 by Andrew Craig
- Big commit.
- Added character creation upload to database.
- Only works on the "custom" create option at the moment.
- Advantages/Disadvantages still in the works
- Added a check to make sure an account has a player before login
- Changed the export.sql script a lot so be sure to re-create the
  planeshift database.
- NOTE: does NOT work with the dummy database plugin

*** 2002-03-27 by Matze Braun
- Implemented the "status" command again (server)
- Added a "kick" command (server)

*** 2002-03-26 by Keith Fulton
- Fixed bug in changing focus with mouse in dialogs.
- Changed gui lib so psDialog manages focus centrally.
- Added /online command to see buddies currently online.
- Client now invokes /online command when started up also.

*** 2002-03-25 by Keith Fulton
- Added BroadcastEntity to NetPersist, which allows Client #1 to
  see Client #2 when Client #2 connects.
- Modified CelBase, psCelClient, psCelServer and AuthentServer to
  trigger the right messages.
  (Note: Client #1 crashes on exit, which I think is a RefCount issue
         but I am not sure what is wrong.  Mutual position updating
         does work though.)

*** 2002-03-24 by Keith Fulton
- Added support for NetBase/NetThread to handle per-client queues.
- Used per-client queues to efficiently implement packet merging.

*** 2002-03-23 by Keith Fulton
- Created scriptable /confirm command with scriptable Yes/No buttons.
- Added void* to all button action callbacks for things that need
  more than just psDialog*.
- Centralized psDialog::Close from the Destroy... functions so they
  are done in a standard way and can be done from outside the gui
  classes.
- Made the DialogManager handle reactivating the prior window
  when a window is closed by itself.

*** 2002-03-21 by Andrew Craig
- Added in advantage loading to psRPGInfo
- Added functionality to the advantages window ( Part 1 )
- Changed the background a bit to fit all text in.
- Fixed up some other gui stuff.

*** 2002-03-21 by Matze Braun
- implemented new resource management for pixmaps and sounds
- removed some old files

*** 2002-03-18 by Keith Fulton
- Started basic scripting of GUI, making buttons able to issue
  commands as if from the command line in the chat window.
- Created CmdUtil class, which implements some commands useful
  in macros but not really useful to a user (like /echo).

*** 2002-03-18 by Andrew Craig
- Added in the two new character creation screens
  Jobs and advantages.
- These are non-interactive yet. The back/next buttons are the
  only thing working. Other stuff will be added in the next day
  or two.

*** 2002-03-17 by Saul Leite
- Made a few changes in game dialogs
- made the blue sphere in the ps logo a quit button.
- removed all those ugly buttons by the chat window.

*** 2002-03-15 by Keith Fulton
- Fixed camera position and direction a little so the dwarf doesn't
  dominate the screen so much.
- Fixed NetThread and MsgHandler sleep loops so that DR updates
  aren't so laggy.  (Rotation still is not correct.)
- Fixed DialogManager to not pass Alt keys to the dialogs.  AltQ works
  even if chat line has the focus now.
- Changed psDialog to only call HandleKey for the field with the focus
  instead of all fields.

*** 2002-03-15 by Keith Fulton
- Now linkdead clients simulate sending disconnect msgs so their
  entities are removed and broadcast.
- Added logic to check for duplicate logins.  This can easily
  be commented out in authentserver.cpp if you need to test something.

*** 2002-03-15 by Andrew Craig
-  Added in a new psdWarning type of dialog. Used to display a
   warning that something hasn't been set or filled in yet.
   ( i.e. race not set before going to path screen)
-  Needs better graphics ( uses "say" button as a place holder )

*** 2002-03-14 by Andrew Craig
-  Some fixes to xmlparser so &amp; is converted to &

*** 2002-03-14 by Keith Fulton
- Added disconnect msg sending on quit.
- Added disconnect msg processing in AuthentServer.
- Added disconnect msg processing in AuthentClient.
(Note: Code in client appears to work as expected, but 2nd dwarf
       does NOT disappear like he should.)

*** 2002-03-13 by Matze Braun
- some small fixes in build system
- increased loading timeout
- made resource handling better, only load images if we need them

*** 2002-03-12 by Andrew Craig
- Big commit.  Added in the new property class for character data
- Added in psRPGInfo that loads rules from a file ( rpgrules.txt )
- Removed old source code files
- General fixes in places.

*** 2002-03-12 by Matze Braun
- made network classes more threadsafe

*** 2002-03-11 by Keith Fulton
- Fixed multi connect problem by same client.
- Added login error messages into Connect dialog.
- Improved linkdead handling a little.

*** 2002-03-10 by Keith Fulton
- Added /buddy, /notbuddy and /buddylist commands to UserManager.
- Added notify function, so players are notified when a buddy of theirs logs on.

*** 2002-03-08 by Keith Fulton
- Pulled psDatabase into server app.
- Revamped SCF setup for database so that only DAL layer is a plugin.
- Updated dummy db to match.  Enabled dummydb to be able to login as guest.
- Added User Manager to server to handle user-oriented commands like /who
- Implemented /who.
- Commented out some debugging printfs in the NetBase code.
- Merged SysMsgClient and ChatClient so that system responses will show up visibly.
- Added a guild collection to the Guild Manager.  iCelEntity players can point into this.

*** 2002-03-08 by Matze Braun
- some rearagements in network code clientnum == Client* is way to hacky
- the first naive Dead Reckoning implementation works (note that we miss an
        update for the other clients if someone joins/leaves, so updating will
        only work for the 2nd client that joins)

*** 2002-03-06 by Keith Fulton
- Changed MsgHandler pub/sub to use clientnum also, for client specific
  server subscribers (i.e. Cel entities can subscribe to themselves)
- Optimization for clientnum also.  Clientnum in each msg is now the
  ptr to the Client* in the ClientConnectionSet so no need to search
  for Client * anymore that way.

*** 2002-03-06 by Keith Fulton
- Fixed title of DDraw window to say Planeshift instead of CS App.

*** 2002-03-06 by Matze Braun
- some small fixes
- changed for latest cel, we can access id mappings of persistance layer now

*** 2002-03-05 by Andrew Craig
- fixed some unreleased SCF classes in movement

*** 2002-03-05 by Matze Braun
- fixed movement with CD

*** 2002-03-04 by Keith Fulton
- Fixed infinite loop bug in NetThread::Trigger.
- Moved broadcasting functionality into NetThread.
- Added accessor to NetThread::Broadcast into ClientConnectionSet.

*** 2002-03-04 by Andrew Craig
- Added in collision detection to the linearmovement PC. It should
  be noted that it isn't 100% yet since I'm still learning my way
  through CS and the code is mostly taken from the PS attic and
  walktest.

*** 2002-03-03 by Keith Fulton
- Added /help command to CmdHandler
- Added /guildmembers, /guildlevel (rename) and /guildpromote
- Changed database to accommodate member levels.

*** 2002-03-03 by Luca Pancallo
- Added some features to the Path screen
- Uploaded layout images for Path screen
- Added description of skills in the rpgrules lib
- Added Path rules in rpgrules
- The Path screen can now display the correct stats for each path

*** 2002-03-02 by Saul Leite
-added a simple yes/no dialog box

*** 2002-03-02 by Luca Pancallo
- Added some sounds to the client

*** 2002-03-01 by Matze Braun
- optimized/cleaned linearmove
- started work with dead reckoning

*** 2002-02-29 by Matze Braun
- changed network code to use csGetTicks instead of time, so accuracy should
    be much higher now.

*** 2002-02-28 by Andrew Craig
 - Fixed chat window so text disappears after 'enter' by adding
   Clear() to psTextInput

*** 2002-02-28 by Matze Braun
- Fixed a bug where persistance didn't return to a clean state after
        persisting to 1 client
- Fixed some network and BinaryTree bugs
- added more debug messages and tried to make apps more robust as always

*** 2002-02-27 by Keith Fulton
- Fixed multiple pixmap delete problem causing crashes in Windows client on quit.
- Added /guildinvite implementation.  Try "/guildinvite Vengeance" while logged in as guest.

*** 2002-02-27 by Andrew Craig
- Added in new property class for movement. It's in it's early stage
  but it provides for basic movement ( but no CD yet ). Hopefully
  I haven't screwed anything up. :)

*** 2002-02-27 by Keith Fulton
- Added /endguild processing in Cmds and Server and Database.

*** 2002-02-27 by Jorrit Tyberghein
- added fflush(stdout) to the server console right
  before accepting new input. That way I can see what
  happens on mingw too.
- Thanks to Matze Braun and my debugging we fixed the PS
  client to work with software renderer again.

*** 2002-02-27 by Matze Braun
- added acraigs new cel follow camera mode to client and changed
        behaviour for it
- place players at the defined startpoints in the maps
- added todo.txt for placing small bugs there
- fixed pstextin in case when no text is entered
- fixed sound driver blocking and made sound driver robust if sound init
        fails (then no sound is played but client doesn't exit)

*** 2002-02-26 by Matze Braun
- fixed vars in xml code a bit: char* -> const char*, int -> size_t,
        psString -> xmlString that is only used locally... The handling is
        still a bit inconsistend: some functions can return -1 so I can't use
        size_t here, although the length of a csString is size_t...
- fixed bugs in GetWordNum
- removed old testtrait code, I hope noone was using it anymore
- changed to client to not require psClientMessageHandler everywhere. Using
        only the basic set of functions provided by MsgHandler goes for
        cleaner separation and modularisation of code.
- fixed a bug in server destruction

*** 2002-02-25 by Keith Fulton
- Created base class for CmdHandlers called psCmdBase.
- Made psChatWindow implement iReporterListener to get
  csReport calls, to display text in chat window.
- Implemented client/server messaging for guild commands.
- Implemented CreateGuild command on server using msging.
  Syntax is /newguild <newguildname>  (no spaces yet)
  Guild is actually created in database on server.
- Implemented System messages for generic responses back
  to client from server, with handler in client for them.
- Improved const correctness of ipsDatabase.

*** 2002-02-25 by Andrew Craig
- Added psString that provides some more functionality over csString.
- Added psXMLString and psXMLTag which is a lite XML parser.
- Thanks to Keith for giving me his string/xml code to use :)

*** 2002-02-24 by Keith Fulton
- Added joinguild and quitguild console commands, with db updates.
- Split apart different types of iSubscribers to allow multi in one class.
- Added CmdHandler class which distributes types command lines in client to iCmdSubscriber classes.

*** 2002-02-23 by Keith Fulton
- Enhanced DAL for mysql plugin.
- Separated Accounts and Players table.
- Added Guilds table and newguild command.

*** 2002-02-22 by Matze Braun
- fixed mysql linux build
- made some code more robust towards errors

*** 2002-02-22 by Keith Fulton
- Initial implementation of dbmysql plugin for mysql database.
- Modifications to psserver to load and use database.
- Added command "newacct" to create new player accounts.
- Changed authentserver to use ipsDatabase interface to validate login.
- Makefile needs to be created for dbmysql plugin, and MySQL must be installed to run it.

*** 2002-02-22 by Keith Fulton
- mysql database plugin added

*** 2002-02-21 by Matze Braun
- rewrote smaller parts of network code

*** 2002-02-18 by Matze Braun
- added a win implementation of stop() - hope someone with more win
  experience can take a look at it... seems to work though so I'm using it now
- cleanups in gui and character stuff
- complete rewrite of pstext gui classes -> they're now cleaner and easier
  to understand and don't contain a off by 1 error anymore

*** 2002-02-17 by Matze Braun
- added a stop function to sal threads - no win implementation yet so
  I can't use it.

*** 2002-02-14 by Matze Braun
- after a first shock because of the code, I run an indenter and fixed
   several bugs in ase2spr while simplifying and cleaning some code.

*** 2002-02-12 by Matze Braun
- converted psWorld to new behaviour layer + some smaller fixes... This
   should be the way to go... but it still gives me headaches because of
   polymorphism (we'll have iCelEntities* later and have to know what object
   type they are...)
- changed cel stuff a small bit to make the changes above working (psbehave
   isn't a plugin anymore for now)
- remember to update cel, as I fixed a bug there

*** 2002-02-11 by Keith Fulton
- Ack/Resend logic in network classes
  (Note: simulates failure every 5th packet, so app behavior may be a little
   strange, but it will work.)

*** 2002-02-08 by Matze Braun
- added a behaviour layer (it's not used yet and doesn't have something
        special)

*** 2002-02-08 by Andrew Craig
- fixed up the GUI problem after Matze's checkin( I hope )

*** 2002-02-07 by Matze Braun
- fixes all over the place
- moved some cel things into new psCelServer and psCelServer
- added loading screen
- cleanups...
- network persistance seems to work now :)
- deactivated some of keiths changes (sorry!!)

*** 2002-02-06 by Keith Fulton
- Added functionality for networked, broadcasted position updating of celPSObjects.
- (Not super elegant, but it does work.)

*** 2002-02-06 by Keith Fulton
- Pulled celbase apart into CEL specific stuff and PS stuff.
- PS stuff now in pscel.h/.cpp.
- Added classes to encapulate the main types of entities we will have in PS.
- Modified engines to use new structure (mostly client).
- Application appears to run identically to before.

*** 2002-02-04 by Luca Pancallo
- Uploaded final version of first 2 char screens.

*** 2002-02-03 by Keith Fulton
- Added in packet splitting for long msgs and packet reassembly.
- Should support out of order delivery and concurrent partial msgs from different clients.
- Right now max msg size is artificially low for testing purposes.

*** 2002-02-03 by Keith Fulton
- Added low level packet support in Network classes in preparation for
  multipacket messaging and ACK/RESEND next.

*** 2002-02-01 by Keith Fulton
- Added psTimerThread class to net library to publish periodic timer events
  to iSubscribers.
- Made NetThread an iSubscriber to check for linkdead clients.
- Modified NetBase to update the connection with the latest timestamp of
  a received packet so timeouts are checked for correctly.

*** 2002-01-31 by Matze Braun + Andrew Craig
- fixed a crash in psButton destructor and removed a memory leak

*** 2002-01-30 by Matze Braun
- more work on network persistance, but we still need working message
  splitting

*** 2002-01-29 by Matze Braun
- finally fixed the client at exit crash (psclientmsghandler didn't
  unregister in the event queue)

*** 2002-01-28 by Andrew Craig
- Made some changes to the basic gui system.
- General clean up of some of the gui code.

*** 2002-01-27 by Matze Braun
- integrated netPersistance into CelBase
- started work on message splitting
- fixed all remaining reference/crash at exit bugs

*** 2002-01-24 by Matze Braun
- fixed cygwin port
- renamed SendMsg to SendMessage in network part
- small work on network persistance
- cleanup
- added new iNetManager to make the bridge between GUI/Network a bit clearer
  and to move the network stuff out of psEngine
- removed const from iSubscriber::Interpret(MsgEntry*)

*** 2002-01-22 by Andrew Craig
- Changed the dialogs to use the new images.

*** 2002-01-22 by Luca Pancallo
- I've modified pics of screens so those are now Power Of 2. I will add
  new png images because jpg are getting worst at every save
- I've added also crmain17.png, crmain86.png, crmain64.png as placeholders
  for final images. Can you please adapt code can start to use those?

*** 2002-01-22 by Saul Leite
- Cleaned connection between psChatWindow and psChatClient
(only psEngine and psChatWindon know about psChatClient)

*** 2002-01-20 by Saul Leite
-Skill and Spell buttons work now.

*** 2002-01-20 by Matze Braun
- hopefully fixed the /tell bug
- more cleanups for ChatWindow and some memory leaks fixed
- something still holds a ref to DialogManager I'll investigate tomorrow

*** 2002-01-19 by Matze Braun
- fixed unix makefiles
- fixed all warnings in the files

*** 2002-01-19 by LSupi
- Bye bye bug ;)
- psText will scroll automatically upon AddLine
- Now on AddLine, psText will scroll to the last added line.

*** 2002-01-19 by Saul Leite
-added chat window

*** 2002-01-18 by Keith Fulton
Made several fixes/enhancements to get the login screen to have
instructions and decent error checking and reporting.

*** 2002-01-18 by Keith Fulton
Got networking infrastructure working in both client and server.
Added authentication messages to both and integrated into client login window.

*** 2002-01-17 by Andrew Craig
- Fixed up some of the character makefiles and regnerated the msvc ones.

*** 2002-01-17 by LSupi
- psText gets wiser by adding scrolling button when it cannot display all texts
- psTextInput receive new method (SetText)
- psTextInput now recognize more inputs

*** 2002-01-17 by Matze Braun
- small msvc fixes, added MsgHandler->UnSubscribe

*** 2002-01-16 by Saul Leite
- Added future chat dialog
- Made a few changes to ingame display
- cleaned psdragplane

*** 2002-01-16 by Matze Braun
- Fixed several small issues to make the thing compiling again
- updated msvc+mingw projectfiles
- couldn't stand and cleaned messages.* up

*** 2002-01-15 by Keith Fulton
- Redid psConnection to be own thread
- Added client msg handler class as iEventHandler to get incoming messages.
- This code not proven usable yet but will compile.  Will get working tomorrow.

*** 2002-01-15 by Andrew Craig
- Fixed up some of the makefiles for Keith's commit
- May need to regen the msvc project files for you windows guys.

*** 2002-01-15 by Keith Fulton
- Added message crackers to net lib.
- Added authentication server and client connection pool to server.

*** 2002-01-15 by Saul Leite
-Changed psDialog::AddButton to return a pointer to the psbutton
 when function AddButton is performed, and not a boolean.
-Added psDragPlane class to drag items on the screen
-Added psddsktop.cpp to handle ingame display.
-Changed psengime to load proper textures for ingame display
-Added new dialog definition to dialogs.h
-Changed psdmngr.cpp to add mouse move event.

*** 2002-01-12 by Andrew Craig
- lsaul cleaned up the login window

*** 2002-01-10 by Andrew Craig
- Cleaned up some of the Character code
- Added some stuff to a few windows
- Fixed error in skills screen


*** 2001-01-10 by Matze Braun
- merged nearly all keith code
- cleanup of network code

*** 2001-01-07 by Matze Braun
- added new util lib
- cleaned up structure and makefiles
- added simple RefCountBase class for situations where SCF is bloat
- merge and some rewrite of keiths codes - I couldn't finish it today, so I
  wouldn't recommend touching the network code now. It does only compile - no
  more and no less

*** 2001-01-07 by Jorrit Tyberghein
- Updated PS for latest CS.

*** 2001-01-06 by Andrew Craig
- Added some stuff to char creation.
- Added gender button.
- Added validation before loading skills screen.

*** 2001-01-04 by Matze Braun
- updated Compiling.txt
- cleanup and restructuration of server code

*** 2001-12-29 by Matze Braun
- changed msvc project file for server to be a console app

*** 2001-12-25 by LSupi
- Merry Xmas :)
- More bug fixes.
- Improved pstext a bit. Now it divides the word in spaces.

*** 2001-12-23 by Matze Braun
- more bugfixes... but still crashes :(

*** 2001-12-22 by Matze Braun
- created planeshift-cvs list -> this is a test for that
- changed mingw makefiles for cel
- fixed some bugs in celcode, but still some memory errors in...

*** 2001-12-22 by Andrew Craig
- Added functionality to the skill screen in character creation.
- Added some more stuff to the rules.
- Fixed a small error in the windowing that caused re-init on draw

*** 2001-12-21 by Matze Braun
- enabled the cel test code in planeshift

*** 2001-12-21 by Luca Pancallo
- added skill screen.

*** 2001-12-20 by LSupi
- Combined iDialogControl with iDialogManager
- chane iDialogInterface and moved idmngr.h to iclient as requested.
- preparing for iFlowControl

*** 2001-12-20 by Matze Braun
- fixed rpgrules Makefile
- regenerated correct msvc project files
- made configure look for cel
- added some simple cel test code

*** 2001-12-19 by Andrew Craig
- Made a few changes to get the character creation screen to come up.
- Changed a few of the Makefiles and hopefuly regenerated the correct
  msvc ones.
- Changed the trait system a little bit.

*** 2001-12-19 by Matze Braun
- made usage of iEventHandler nicer in psgui
- added autoconf macro for findig CEL

*** 2001-12-17 by Luca Pancallo
- Added the images of the 2nd screen of char creation:
  crskil17.jpg and crskil86.jpg

*** 2001-12-16 by Matze Braun
- removed old msvc project files
- included old database test code again, and integrated into build process
- made am2msvc able to compute conditionals in Makefile.am
- regenerated msvc and mingw makefiles

*** 2001-12-15 by Andrew Craig
- fixed small error in statrules

*** 2001-12-15 by Matze Braun
- fixed a silly bug in server init code...

*** 2001-12-14 by Matze Braun
- added Andrews new skill/stat code (some test code in psserver will be
  enabled if you add a "#define testtraitcode" into your config.h

*** 2001-12-10 by Matze Braun
- reenabled pskeyint (this was more or less to make another cvs update :),
  as this will replaced by cel input property class soon anyway

*** 2001-12-07 by Jorrit Tyberghein
- Fixed for latest version of CS.

*** 2001-12-07 by Matze Braun
- finished am2mingw converter
- removed old_unix dir

*** 2001-12-06 by Matze Braun
- fixed some memory leak errors.

*** 2001-12-05 by Matze Braun
- started work on an am2mingw converter, nearly working some small things
  to fix left

*** 2001-12-05 by Jorrit Tyberghein
- Renamed initcs.cpp to initcs.inc.
- Fixed mingw makefiles so that they compile the client again. Still
  have to fix the makefiles for the new gui plugin.
- Fixed mingw makefiles to compile plugin. psclient seems to work although
  I cannot move.

*** 2001-12-02 by Matze Braun
- am2msvc should be working now, just needs some usage instructions and more
   testing by msvc people...

*** 2001-11-30 by Matze Braun
- more improvements to am2msvc should output project files now, that compile
   somehow, but still some quirks left, I'll face later

*** 2001-11-29 by Matze Braun
- added am2msvc converter that generates msvc project files - It's not working
        yet, but can't I think I can finish it tomorrow

*** 2001-11-25 by Matze Braun
- removed old psw* files out of the makefile they're just still in cvs as an
        example implementation for the new ones.

*** 2001-11-24 by Matze Braun
- randomly added GPL header to files
- changed some code to coding style convention
- added new MsgHandler to server
- turned objectmanager into an interface

*** 2001-11-22 by Matze Braun
- libtool changes for win32 and small fixes
- the first windows apear
- checked in changed resources (PO2 I assume)
- made the thing more robust
- note that you can't move around anymore because the keyinterpreter isn't
  plugged into the new system yet, also the character creation window doesn't
  work because we're thinking about a new char class

*** 2001-11-21 by Matze Braun
- fixed win32 compiling building plugins works now with libtool (though It's
        still a bit of a hack but I don't expect problems) - but still no
        working        client.
- more integrating, fixed also some memory leaks and smaller bugs

*** 2001-11-20 by Matze Braun
- more changes to chatmanager
- added leslies new window manager sources
- more interface changes
- WARNING! The code is now broken - but I'll commit it now, because thing seem
        to have stopped. So you'll have lots of new files/interfaces now but
        a crashing client!

*** 2001-11-17 by Matze Braun
- changed more code to interface-implementation paradigm
- preparation to merger leslies changes

*** 2001-11-16 by Matze Braun
- more work for Object List

*** 2001-11-14 by Matze Braun
- added cssysdef.h to config.h -> se we must ONLY include config.h in each .cpp   file!
- UNIX: be sure to rebuild your configure scripts!!!

*** 2001-11-13 by Matze Braun
- added autogen.sh because linux people search for something like that :)

*** 2001-11-12 by Matze Braun
- removed the old objectmanager sources and added really simple ones -> This
  will be a new beginning of object stuff (once again :)
- modified psclient.cfg and psserver.cfg a bit
- updated Compiling.txt
- added .cvsignor to art/world, so that cvs ignore changes in the temple file
  now!! (so it doesn't save the new lightning each time!) If you want to change
  files in art/world be sure to specifiy them by name while checking in!

*** 2001-11-09 by LSupi
- Fixed for latest CS

*** 2001-11-07 by Matze Braun
- fixed ase2spr utility to compile on gcc. I also added a Makefile for it
- changed configure script to use the new cs-config util

*** 2001-11-01 by Matze Braun
- fixed for latest CS

*** 2001-10-30 by LSupi
- fixed VC++ project files for server and removed pscon.h and pscon.cpp from
  VC++ project in client.

*** 2001-10-27 by Matze Braun
- moved the enums in psobject.h into the psObject class, because they generated
  naming conflicts with libc headers (open/close are c functions)

*** 2001-10-27 by LSupi
- Animation now stops after the chest is open. Next step is to build
  pswSelection type window/interface for the user.

*** 2001-10-26 by LSupi
- Added 2 chests in the temple.zip world file.
- Created animated chest.
- Introduced BuildObjects to psEngine
- Right click on the chests will open them and continue the animation. I have
  not figure out how to control the animations yet.

*** 2001-10-25 by LSupi
- Moved pswUploadCharacter to inside pswCC instead of in psEngine.
- Deleted vfs variable in psEngine. Instead, we use VFS variable built in the
  csApp already.
- Updated Visual C++ project file

*** 2001-10-25 by Matze Braun
- more cleanups (pswCC and Engine)
- moved common sources to src/common - mingw and visualc, please change your
    Makefiles
- fixed bug which made the prog crash after deleting an interface (be sure to
        check if parent is still set, before calling parent->HandleEvent)
- fixed bugs with images in buttons: DANGER if you assign an image to a button
  without extra parameter the texture of that button will be destroyed, when the
  button is destructed, so either set it this way butt->SetBitmap(b1,b2,false)
  or make sure the texture is only used once and you don't destruct it
- moved some init functions out of psengine.cpp to csinit.cpp to use them in
  server also
- more cleanup of psengine.cpp it starts getting readable, even if it has still
  too much functions
- removed pscon.* out of Makefiles (so can we delete them now? no one uses them
  and writing new one would be better than using that code)

*** 2001-10-24 by LSupi
- fix unhandled exception error in windows in psCreateSkill
- psCreateAdvantages were restored
- loading screen restored properly

*** 2001-10-24 by Matze Braun
 - more cleanups
 - fixed more IncRef/DecRef errors, although 1 is still left

*** 2001-10-23 by Matze Braun
 - merged changes from exp branch back (CS cleanups)

*** 2001-10-23 by LSupi
- Fixed collision detection. Copy the code from walktest almost verbatim.
- Increased the flexibility of collision detection.
- Begin work on psoContainer and psNPC
- Created LoadFactory in psengine. This class is responsible for art loading.
- Created psocont.h and psocont.cpp in CVS.
- Added GetType() in psObject.
- Updated visual C++ projects and remove snprintf from world since it does not exist
  in windows world and replace it with regular sprintf.

*** 2001-10-19 by LSupi
- rewrote pschar. It now contains the basic rules.
- introduced pswCC class for encapsulating all other Character Creation
  Windows.

*** 2001-10-19 by Jorrit Tyberghein
- Fixed for latest CS.

*** 2001-10-18 by Jorrit Tyberghein
- Fixed the buttons by using GetOriginalDimensions() instead
  of GetMipMapDimensions(). Note that the text is still clipped
  away but this is true for software rendering too.

*** 2001-10-17 by Luca Pancallo
- Fixed splash screen to use PO2 images, fixed main menu and first screen
  of char creation. We will get wrong button images when running in opengl.
- Fixed PS for latest CS: renamed M_PI_2 to HALF_PI

*** 2001-10-17 by Jorrit Tyberghein
- Fixed PS for latest CS (CS_QUERY_REGISTRY change).

*** 2001-10-15 by Jorrit Tyberghein
- Fixed PS for latest CS.

*** 2001-10-13 by Matze Braun
- Fixed PS for latest CS.

*** 2001-10-12 by Jorrit Tyberghein
- Avoided the use of CS_QUERY_PLUGIN in PlaneShift. CS_QUERY_PLUGIN
  is deprecated and will be removed in CS soon. Now uses
  CS_QUERY_REGISTRY.

*** 2001-10-10 by Jorrit Tyberghein
- Fixed PS for latest CS.

*** 2001-10-09 by Matze Braun
- small fix
- changed indentation of some files
- tried to fix linux build (untested yet)
- a fix to sal, so deleting a thread doesn't segfault anymore on win
- another fix for linux compiling without an installed CS

*** 2001-10-08 by Jorrit Tyberghein
- Fixed PS for latest CS.

*** 2001-10-08 by Matze Braun
- changed build system. Now that CS has a cygwin port and I changed PS, it
  compiles out of the box on cygwin!! Note: There's still an error in cygwin
  port of CS: You have to set your CRYSTAL var relative (i.e.
        ../../../usr/local/crystal).
  Even then some crashes happen... (perhaps because of the next point)
- I also changed client a bit to make it compile with lates CS cvs. I hope I
  didn't break something, because I don't know the mesh stuff very well.
- added workaround for a libsal bug I have to look at later
- fixed linux compiling again

*** 2001-10-05 by Jorrit Tyberghein
- fixed temple level a bit. It should be lighter. I used it mainly to create
  the new version of 3ds2lev. Now we can easily import 3ds files for static objects.

*** 2001-10-02 by Jorrit Tyberghein
- psengine: fixed to latest CS and changed to use the new csInitializer system.

*** 2001-10-02 by Jorrit Tyberghein
- psengine: fixed to latest CS.

*** 2001-10-01 by Luca Pancallo
- psengine: Changed a call to GetSector() with Get(), to align with latest CVS of CS.

*** 2001-09-29 by Luca Pancallo
- Fixed a null pointer exception in pswcmain.cpp
- Updated ase2spr, now it doesn't crash if  *SCENE_ENVMAP is present

*** 2001-09-29 by Taric
- Pass the psCharacter object all the way to the character upload screen
- Instead of destroying the psCharacter object whenever a new interface
  is selected, keep the object in memory until psengine.cpp is done
  with it.  This way it maintains state.
- Fix minor typecasting bug

*** 2001-09-23 by Matze Braun
- fixed linux build

*** 2001-09-22 by LSupi
- NOTE: I might have broken psServer due to lots of changes. Right now, I had to disable       engine->connection->run()
  in pswLogin.
- Right click will result in attaching the object clicked to the player
  (only test case to simulate player interaction). It simulates how the function capable of
  getting the right psObject from csMeshObject that was hit in the world.
- psEntity class is gone (so are psentity.cpp & psentity.h. Please make the appropriate
  changes in Makefile. VC project file is up to date)
- psObject no longer inherited from psEntity. Instead, it inherits directly from csObject
- psObject was about 70% rewritten. Cant explain all. Just take a look at the codes
- psCamera no longer inherited from psEntity. It's not inheriting from anything at all.
- Removed library file from /planeshift/art. Instead, 2 seperate files in place of it. This is
  to reduce memory usage in the game. It's seperated between library needed in menus and in game.

*** 2001-09-21 by Luca Pancallo
- Modified the ActivateObject() function. Now it's called when you press the right-mouse
  button on an object on screen (try with a chest). For now it prints only the polyid and
  name of object in the cs console, but it works!

*** 2001-09-21 by Jorrit
- Did some fixes in CS so that iSector->HitBeam() works better.
  Accordingly modified PS. This fixes object selection.

*** 2001-09-20 by Matze Braun
- fixed some memory leaks in the server
- fixed a memory error in client.
- fixed more small bugs
- opened new experimental branch: exp-obj-and-db

*** 2001-09-19 by Jorrit
- Fixed a 'delete levelLoader' to 'levelLoader->DecRef()' in the
  destructor of the client.

*** 2001-09-18 by Matze Braun
- reindentation and small fixes

*** 2001-09-17 by LSupi
- updated the VC poject file. Keep the libraries directory structure like this in CVS.
  This directory structure allows for easier library management. Less files need
  to be moved around. If your library path is different, either move the libraries to
  where they should go or just dont update the dsw/dsp files.

*** 2001-09-17 by Luca Pancallo
- added advantages/disadvantages screen. Char creation sequence is not complete.

*** 2001-09-17 by Matze Braun
- started some work for automake detecting windows, it's possible that I broke
  linux, I'll check this evening
- added .cvsignore files
- fixed linux compile again (see above entry today)
- fixed crash for client not connected to server
- improved readline behaviour (redisplay after console output)
- fixed silly bug in command.cpp

*** 2001-09-16 by Luca Pancallo
- updated vc dsp file
- changed in pswlogin and pswuchar the string "username" to "character name".
  A password will be associated to the character, not to the player.

*** 2001-09-16 by Taric
- Added screen that for uploading your character to the server.

*** 2001-09-16 by Luca Pancallo
- Added some functions to give psconnection the ability to add messages directly
  to the chat window. Now you can write a message server-side and it will appear in
  the chat window.
- Readded in NextFrame the "hacky hack" to read server messages, I've used it to
  test the chat Window.

*** 2001-09-15 by Luca Pancallo
- Uploaded dwarf with right sizes, he is now 1.4 meters. This change has
  broken the inventory! The different size of the model is the cause.
- Changed camera position to reflect changes on dwarf.
- The chat window now prints sample text; added private method CutString() to
  see if the added text fits in the chat window.

*** 2001-09-14 by LSupi
- removed config directory
- removed temp.cfg, vfs.cfg, and scf.cfg. Windows users plz copy these files from CS
  directory

*** 2001-09-14 by Luca Pancallo
- the chat window is now transparent
- added methods to write text on it

*** 2001-09-11 by Luca Pancallo
- modified AddObjectToWorld() so it now places the object in player's coords.
  You can fill the level with chests!

*** 2001-09-11 by Matze Braun
- changed CSCONFIGFILE back to /this/psclient.cfg, I also moved csws.cfg changes
  to psclient.cfg. Can we remove planeshift/data now?
- fixed all warnings on unix (a lot of "passing float to int")
- randomly fixed indentation

*** 2001-09-10 by LSupi
- changed the CSCONFIGFILE to point to /planeshift/psclient.cfg instead of /this/psclient.cfg
- added config folder in /planeshift/data with minimal datas needed by PS. The csws.cfg file
  contains some modification so that's why I need to CVS these files.
- modified chatbg.jpg
- modified the pswInterface::SavePosition() so it actually saves position in psclient.cfg
- modified psclient.cfg to reflect the above change
- removed windows.cfg
- modified psObject so it will load materials properly
- login screen now display default backdrop for window

*** 2001-09-10 by Matze Braun
- changed some functions of psobject. Leslie: You should use const for functions
  like setpos, because otherwise using the following is can be dangerous
  setPos(Vector(1,2,3)) and won't compile in gcc.
- Added a third field to the login screeh for specifying the server, and moved
  connection stuff into psEngine and pswLogin
- small fixes in server code

*** 2001-09-09 by LSupi
- Add login screen to VC++ project
- Add SetPosition function to psObject
- Add Attach function to psObject. Object now can be attached to another object. The
  attached object will move with the target object.

*** 2001-09-08 by Taric
- Added the client login screen with username and password.  It
  currently does not have 2D art or networking.

*** 2001-09-08 by Luca Pancallo
- Added the activate key 'u', now the function returns the polygon and the
  parent object activated. We should find out how to trigger an action on it,
  like a chest that opens/closes.
- Added a chest and a shield under /art/things.

*** 2001-09-08 by Taric
- fixed a bug with latest CS involving a psplayer.cpp and csMeshWrapper

*** 2001-09-08 by LSupi
- fixed the library files so it is compatible with latest CS
- remove sbar.png from library files as well as rain.png.

*** 2001-09-08 by Luca Pancallo
- fixed psobject.cpp. It was crashing if an object had no animation.
- added an axe (1.0 meter long) in art/things, pressing space creates an axe.
- added a doubleaxe (1.4 meter long) in art/things.

*** 2001-09-07 by LSupi
- deleted psloader.h and psloader.cpp
- pswInterface now can read from config file and figures out it's position
- fixed the animation of dwarf so it doesnt walk after you connect although you're not moving
- add pswchat.cpp and pswchat.h. This is the mock up of chat system. I still
  need to look more into csws on how to accomplish this efficiently. Also
  added chatbg.jpg for the chat window background.

*** 2001-09-07 by Luca Pancallo
- modified images of buttons on 1st char creation screen
- modified positions of controls on 1st char creation screen
- added AddObjectToWorld() in psengine, this is a test to see how to add
  objects to the world at runtime. Press SPACE to add the cube.
  Why the cube is always placed at 0,0,0???

*** 2001-09-07 by Matze Braun
- msvc fixes...
- started a portable.txt please read it and add your own comments!

*** 2001-09-06 by LSupi
- Change the library file a bit for better images somewhat in OpenGl mode.
- Eliminate mipmapping in texture so it actually looks good in OpenGl mode.
- Moved the interface around and getting it ready for big changes in pswInterface

*** 2001-09-05 by Matze Braun
(- Hey I didn't do a single automake change today Whohooo)
- implemented test chat server hack... This is how you can test it:
        1) start server and then psclient
        2) do connect in psclient
        3) Now type "say Bla" into the server and look at the psclient text
                console window!
        4) or press c in the client and look at the server console

*** 2001-09-04 by LSupi
- rename console.cpp and console.h in the client directory to pscon.cpp and
  pscon.h respectively.
- small change at the VC project file. It now look the library directly at the
  CVS version of CS. This should make things easier for people just getting
  into the project.
- updated compiling.txt to effect the new changes

*** 2001-09-04 by Matze Braun
- more automake changes I hope this will stop someday... I just realized that
  many people are using CS without installing it (are there any other libs which
  work with this style?). I also realized that I'm a automake beginner I
  discovered some bugs in my files and corrected them, now it should work with
  every automake/autoconf/libtool version

*** 2001-09-03 by Jorrit
- In an effort to make it possible again to compile PS on my
  system I readded the old unix.mak from the past and put it
  in mk/old_unix. I still have compile errors though.

*** 2001-09-02 by Matze Braun
- Added a compile options overview to configure

*** 2001-09-02 by Jorrit
- Did a blind fix to the inventory drawing. rview->SetFrustum() was
  not called. I was not able to test this fix though (not being able
  to compile PlaneShift yet).

*** 2001-09-02 by Matze Braun
- Included configure script for people having problems with autoconf

*** 2001-09-01 by Matze Braun
- varios automake fixes
- changed readline

*** 2001-08-31 by LSupi
- added include directories to VC project files.
- added wsock32.lib in Client VC project file so it can link to it.
- combine server and client into 1 VC project file. Client outputs object
  files in client directory Server in server directory. Both exe result goes
  into the main directory.
- models now automatically rotated 180 degrees in y axis. Please use dwarf
  model for standard/reference.
- adjust camera a bit making it closer to the model.
- rename PsCharacter to psCharacter
- rename character.cpp to pschar.cpp and the same with h file
- added credit.txt to the docs page to keep up with the people that
  contributes with the coding.

*** 2001-08-30 by LSupi
- converting codes to conform to the ps coding standards (still not finish but most header files are done)
- ran the doc++ against the client header files and store the result in docs/client

*** 2001-08-30 by Jorrit
- Added necesary files for mingw compile of PS.
- Modified mingw.mak to include the server code.

*** 2001-08-30 by Matze Braun
- changed sal boolean type to salboolean because it generated naming conflicts in vc
- added mutlithreading to the server

*** 2001-08-30 by Luca Pancallo
- fixed vc build
- renamed error.h to pserror.h for that
- it should compile now, though we still don't know how to set include paths
        in the vc .dsp files... at the moment you have to add src/server,
        and src/client manually

*** 2001-08-29 by Matze Braun
- To FIX: change visualc makefiles: the client now needs the code from the
        src/server/sal and src/server/psnet directories... I can't fix it
        because I don't own visualc
- added initial connection tests for client/server
- various autoconf changes, added configure to cvs. Note: you have to rebuild
  the configure script everytime you add new files though

*** 2001-08-29 by Jorrit
- Fixed a crash in psclient because of a recent change in CS which changed
  the types of objects in a vector (camera positions and sectors).
- Add a Mount point for planeshift/art/models in the code. Note that the
  Mount point is better defined in the source code for now.

*** 2001-08-29 by Taric
- Added initial database create script to docs/mysql

*** 2001-08-28 by LSupi
- zipped the models into models.zip

*** 2001-08-27 by LSupi
- Fixed the movement by disabling the collision detection.
- Dwarf models now have animations

*** 2001-08-22 by Matze Braun
- Fixed PS client for latest CS
- seperated network stuff to psnet dir so client can use the same sources
- changed server error reporting -> we don't need __SUB_PROGRAM__ any more Jipiii
- visualc project files have to be changed for the psnet server change...

*** 2001-08-21 by LSupi
- Fixed PS client visual c++ projects for latest CS.

*** 2001-08-20 by Jorrit
- Fixed PS client for latest CS.

*** 2001-08-17 by Matze Braun
-added a server console

*** 2001-08-16 by Matze + Nick
-fixed MSVC build of server
-added Unix support to Network Code
-added a first version of the ChatManager

*** 2001-08-15 by Matze Braun
-Extended errorhandling for the server
-More autoconf/automake fixes

*** 2001-08-14 by Matze Braun
-Cleaned up more and fixed some compiler warnings
-remove old server codes
-checked it new ones from nick and me
-changed autoconf/automake to match new server code

*** 2001-08-12 by Matze Braun
-Cleaned up and added some more error handling to psengine
-fixed that dward upside/down problem

*** 2001-08-08 by Matze Braun
-Added autoconf/automake scripts
-lowercased font names, so linux can find them now

*** 2001-08-06 by Jorrit
- Fixed PS for latest CS.

*** 2001-07-30 by Luca Pancallo
- Submitted latest version of first screen of char creation
- Updated the ase2spr program so it now inverts y and z coords.
  This must be done because 3DSMax and CS have different coords systems.

*** 2001-07-30 by Jorrit
- Fixed PS for latest CS.

*** 2001-07-25 by Luca Pancallo
- Updated ase2spr. It now works also when the number of UV vertexes is
  greater than the number of geometrical vertexes. The converter simply
  create 3 vertexes for every face, regardless of duplicates.
  This can probably be improved by duplicating only necessary vertexes.

*** 2001-07-25 by Jorrit
- Fixed PS for latest CS.

*** 2001-07-24 by Jorrit
- Fixed sprite rendering for the objects in inventory. The problem
  was that the Z-buffer was set to FILL mode which means that the
  internal triangles of the objects were not correctly drawn.

*** 2001-07-23 by Luca Pancallo
- Added ase2spr program, it's now standalone and it works with
  single frame files and with animations.
  We still have the problem of flipped normals in CS, we must figure
  out why.

*** 2001-07-23 by Jorrit
- Fixed PlaneShift for a big change in CS (iObjectRegistry and
  iPluginManager).

*** 2001-07-20 by Jorrit
- Enabled the code in psInventory to draw the character and did various
  fixes here and there to make this really work. To make this somewhat
  easier I added a new function to CS for this. The sprite is added
  to the sector in Draw() and removed again so it doesn't interfere
  with the engine view.
- A template name is not the same as the file name used to load a model.
  I fixed psObject by also keeping the modelFileName as a seperate string
  and fixing getTemplateName() to return the template name as the factories
  is loaded in the engine.
- The model shown in the inventory (dwarf for now) rotates slowly. Lighting
  is updated while this is happening. Looks VERY nice :-)
  Note that this reveals some problems with the model. I think the model
  is defined inside out. To fix this the triangles have to be fixed
  so they are oriented in opposite direction. Also the sprite is not
  modelled with 0,0,0 at the origin (or the origin of the feet). That causes
  the rotation to be slightly off-center.
- To make the sprite rotation actually work I had to add Invalidate()
  in psw3D::HandleBroadcast() in all cases (i.e. not only when engine
  is updating). This makes it somewhat slower so maybe we only want to
  do this if inventory is active?
- Removed the string server from the config file. That plugin is no
  longer relevant.
- Fixed an include of psNPC.h to psnpc.h. This is important for case
  sensitive operating systems (like Linux).
- Fixed the reading of the pskey.cfg config file. Key movement is working
  again.
- Fixed the location of csws.cfg from /lib/csws to /config.
- Fixed unix makefile.

*** 2001-07-19 by Jorrit
- Added makefile for compilation of PlaneShift with MingW compiler.
- Started conversion of PlaneShift to latest CS 0.19. Nothing finished
  yet and nothing commited either. This is just a warning to everyone
  involved!
- The PlaneShift client now cleanly compiles using the latest version of
  CS (0.19/CVS). This involved various changes all over the project.
- Fixed both the MingW and unix makefiles so that the client and server
  are seperate compiles and generate a seperate executable.
- Added a new case in server/util/portatyp.h for the MingW compiler. I
  test for this case by checking if WIN32 AND __GNUC__ is defined at the
  same time which can only happen by using the MingW compiler. I don't
  know if the defines I used there are correct though but I had to make
  this seperate case since MingW doesn't define _UI32_MAX, _I32_MIN,
  and _I32_MAX.
- Fixed temple.zip so it works with PlaneShift again. I also added one light
  which greatly enhances the look of that level. Warning! this only looks
  good with the OpenGL renderer because the software renderer has a limitation
  with big textures that are lit. If the polygon is too big the texture will
  not be lit anymore. There are two solutions: decrease texture density (i.e.
  change the texture mapping options so it tiles less) or split the polygon.
  In the future CS will have an option to split automatically. Note that
  fixing the texture density is the most efficient (but maybe not the most
  beautiful) option.
- Fixed dungeon.zip as well.
- Fixed stoneb.spr so it loads again. Also fixed the other models in
  art/models.
- Fixed sprite lighting so the dwarf is nicely lit in the world. This
  is accomplished by calling DeferUpdateLighting() on the mesh everytime
  it moves. That will recalculate lighting. The effect is now that the
  lighting effects change when the sprite moves which is a really nice
  effect.
- Fixed map loading a little by mounting the zip file to the appropriate
  directory (either dungeon.zip or temple.zip).
- Added mounting of the /planeshift VFS path explicit in the code. This is
  a little bit easier to use and doesn't require the use of a private
  version of vfs.cfg. In addition the config file is now read from /this
  instead of /planeshift.

*** 2001-06-25 by LSupi
- Convertion to 0.19 is completed. Now it will compile with 0.19 libraries.
- Quetzalcoatl Bradley made minor changes for compiling in MacOSX.

*** 2001-06-14 by LSupi
- finished collision detection and gravity. There is still some weird anomally
  but I'm guessing it's level problem and not the algorithm. It seems that
  the collision detection system cannot collide with things easily. There
  is still no sector yet in the map, so i cant test it

*** 2001-06-13 by LSupi
- collision detection half working
- reworked the interface
- found and fix couple object not deleted after the program exit
- hardtransform every sprite to make it align correctly
- created a dungeon level. It's just prove of concept

*** 2001-05-22 by LSupi
- More work on the Collision Detection

*** 2001-05-22 by LSupi
- Loading screen works now
- planting the frame for interacting with objects

*** 2001-05-12 by LSupi
- Starting to implement the collision detection.
- Modified the menu so it has white text in the buttons.

*** 2001-05-03 by LSupi
- Modified the font system a bit.

*** 2001-04-26 by lpancallo
- Renamed all files to lowercase, because uppercase can generate problems.
- Added a bench in the temple (still misplaced!)
- Added a dwarf in the temple.
- Used the dwarf as player model (still with no animation).

*** 2001-04-04 by lpancallo
- First fix to the temple model, after many tests I finally understood
  how to fix the flipped surfaces on the right aisle of the Laanx temple.

*** 2001-04-03 by lpancallo
- Removed old code for loading race points from data.cfg
- Implemented points on rules.h
- Modified pswcmain, removed radio buttons, added clickable areas
- Added info text for race
- Little update on the pswcmain background image (still temporary)

*** 2001-03-27 by lpancallo
- Added basic code to display help on characteristics on first creation
  screen.
  We must find a way to draw it on multiple lines.

*** 2001-03-27 by lpancallo
- Added custom font for char creation

*** 2001-03-27 by lpancallo
- Changed name of creation files.

*** 2001-03-15 by lpancallo
- Added "Back", "Quick Creation", "Custom Creation" buttons to first screen
  of char creation.
- Display of race names is now fixed: right order.
- Added Creation of skills, class names are compliant with new definition.
- New art/backdrop/creachar.gif (only for preview)
- Started creation screen of paths

*** 2001-03-15 by LSupi
- The CVS version of PS now is compatible only with CS 0.18 and NOT with the
  CVS version of CS. This would allow faster development time.
- Inventory system is broken. I'm on the progress of remodeling the system.
- Bastian added window positioning system.
- Bastian added the status system.

*** 2001-02-06 by LSupi
- Restored the inventory system. It now has the player's model drawn in it.
- Tweaked the camera view a bit.
- Added the pswLoad for loading screen. It still does not show up yet, but will soon.

*** 2001-02-05 by LSupi
- Tweaked the movement system.
- Rename bg folder to backdrop.
- Deleted engine folder from the CVS.
- World mounting now resides in the vfs.cfg instead of hard coded.

*** 2001-02-01 by LSupi
- Improve character movement by using time as a variable of movement. Before, the character
  will move faster when the frame rate improves, but now it moves the same regardles of
  frame rate.
- Add correct animations, and started to flesh out animation structure of the 3d sprites.
- Somewhat improve the methods of rotating the model.
- Moved camera point of view. Now the user can see more of what in front of the character.

*** 2001-01-30 by LSupi
- Rename most of the source code filenames. Only the character creation guide that is
  is the same as the old one.
- Engine rebuild. 3d acceleration now works. Some quirk is still exist with 3d acceleration,
  but this is CS problem and not our code's fault.
- New naming convention of classes and filename. use ps* for regular classes (the one
  that does not need psInterface). All window will use psw* filename and class name.
  Also, it is desirable to have the filename and class name the same.
- The new codes should eliminate a lot of bugs, notably the problem with window switching
  and the problem of reconnecting after going back to the menu.
- Couple things that exist in the old engine, and not in the new one:
  - collision detection does not exist for now. The old one was buggy so I didnt
    copy it to the new engine. I need someone to write this.
  - camera is now separate class that can be attached to an entity. The camera class still
    need work. I'm on this problem since I've been thinking about this and I found quite
    nice solution, just need it to be implemented =).
  - Spell and skill window is still missing, and the inventory window does not work.
  - The character creation screen does not function the way it suppose to. It needs to
    be rewritten so it will look like the rest of the codes in the engine.

*** 2001-01-11 by LSupi
- In attempt to figure out bugs in easy way, I have put messages for each initialization
  routine calls. I hope this will make it easier for bug hunting.
- Changed the world from flarge to the temple made by our team.

NOTE: The new map is rather large, so expect slow performance from the map in software
      mode. Hardware modes should only see very little decrement in speed.

*** 2001-01-09 by LSupi
- Added the selection window buttons made by Stuarts. The window looks good now.
  I also made the window totaly transparent. So only the buttons show.
- Removed couple out of date art files.
- Moved initialization of view. It's now initialized before the world is loaded.
  I hope this fixes the crash that Luca encountered on his machine.
- Inventory window is commented out because it crashes the system. I have to figure
  out whats wrong.

NOTE: You need to modify the flarge.zip in order to run this one without crashing.
      I have not implement the particle systems in this version. So, you have to
      remove all lines in flarge that related to snow, rain, and fountain.

*** 2000-12-28 by LSupi
- Added the whole buttons for the menu. The menu now looks snappy =)

*** 2000-12-27 by LSupi
- Fixed the inventory window. The model was rotating as the view rotate last time, but
  it is fixed now.
- Updated the dsw files for the csfx addition to the latest cs.
- Resize and move inv.jpg to buttons folder.
- Selection window now is resolution dependent. It is the same size no matter what
  resolution.

*** 2000-12-26 by LSupi
- Added the 3d model of character in the inventory window. This should serve as example
  on how to draw 3d model on top 2d models.
- Restore the views switch but FPS view does not check if it tilts up/down too much.

*** 2000-12-22 by LSupi
- Mouse movement restored
- Inventory screen now does not crash the game, but I'm still trying to make it display
  3d objects.

*** 2000-12-21 by LSupi
- Moved view object from PsGame to PsPlayer. It's more natural for the player to own
  the view instead of the game. Plus, it is more accessible now. I'm planning to
  use this accessibility to do the 3d object rendering in the interfaces.
- Broke the mouse movement for now. View is not changable either

*** 2000-12-10 by LSupi
- Make couple changes to the visual c++ project files. The coder now can just
  compile planeshift project and the project file will compile the necessary
  dll files. The catch is that the coder have to copy the compiled dll to the
  planeshift's folder.
- Change the menu background.

*** 2000-12-07 by lpancallo
- updated the code to reflect CS changes (world renamed to engine)

*** 2000-12-04 by lpancallo
- moved some rules to rules.h & .cpp

*** 2000-11-24 by LSupi
- Deleted rendwin class. It's now merged with the PsGame class.
- Took 2 unnecessary major loops off.
- Implemented better menu system in the game.
- The 3d screen is now full screen with interfaces overlay the screen.
- Some bugs exist in the menu system for now, but will be eradicated soon.
- Clean up includes directives. There were a lot redundant includes.

NOTE: If u are only making another screen out of PsInterface, 90% of the time
      you will only need to include cssysdef.h, intrface.h, & the h file for ur
      file. DON'T put more include directives unless needed. If u do put
      redundant directives, ur just making the exe file a bloatware.

PS: NO includes in header files please.

*** 2000-11-22 by LSupi
- Added SetDragStyle to 0 to prevent resizing of the interface.
- Fixed the library file

*** 2000-11-15 by lpancallo
- coords for 2d objects for 640x480,
  adapted code to use GetResRatio...() functions.

*** 2000-11-15 bu LSupi
- Added a new method to engine to figure out the ratio of the current
  resolution with 640 x 480.
  This allows for resolution independent for placing 2d stuff.
  The createcharacter, createskill, etc classes need to be rewritten a
  bit to take advantage of this new function.

*** 2000-11-14 by lpancallo
- Modified skill screen in char creation, now it works!
- Modified status.cpp and status.h to reflect PlaneShift skills

*** 2000-11-11 by lpancallo
- Modified first screen of char creation, to have better layout and
  correct set of information.
- Added right set of stats
- Removed newchar screen since it will be the skill screen
- Modified rule for adding points and remaining point.

*** 2000-11-10 by Lsupi
- Edit boxes of csws in the PScreatechararacter and PSCreatenew are now selectable.
  Dont have to press the mouse button while typing anymore.
- planeshift csws code cleanup.
- Found something rather distrubing. @ 800x600 resolution, most of the screen with
  buttons or boxes was messed up. Looks like their location are hard coded instead
  of relative to the resolution. I'll fix later.
- added Inventory and Skills to pskey.cfg. Yeah, u can now press a button to bring
  up those screens.

*** 2000-11-06 by LSupi
- Added a new class called PsAnimal. This is the class to derive from if
  you wanna create an object with animal like characteristics, including
  human.
- move LoadLevel from engine to PsWorld. It seems to be more natural if it
  exist in the PsWorld. Also, rename it to LoadWorld.
- some general code clean up.

*** 2000-11-02 by LSupi
- Added capability to load model from file. Previously, the model must be
  included with library file.
- PsEntity (and its children) has been changed in NextFrame method. It now
  has signature (float, float, cdList)
- Added ladydeath.spr file. It's a md2 file converted to spr file. Here's
  the md2 file info regarding the model:

  Title                 : Lady Death
  Model Name                 : ladydeath
  Executive Producer        : Kyle Bousquet, Interactive Development, Chaos! Comics
  Model Created by        : Paul Steed (psteed@idsoftware.com)
  Model Animated by          : Jade Moffatt (jmoffatt@netcom.ca)
  Model Skinned by        : Alan Yen (alanyen@planetquake.com)
  Special Thanks to        : Chrome Tiger, Radar and Sentinel
  Date                        : September 14, 1998

*** 2000-10-31 by Lorlio
- Resolved font problems.
- Added  WIN32_VOLATILE to release compile

*** 2000-10-20 by Lorlio
- Sarted de skill devlopment screen.
        in character creation.

*** 2000-10-20 by LSupi
- update Planeshift for the newest CS. (Namely replace Sprite2D with Pixmap
  and main & engine function updated a bit for skin).

*** 2000-10-20 by Lorlio
- Console.h prepared for the skills.
*** 2000-10-18 by Lorlio
- Somme litle changes on character creation.
*** 2000-10-05 by Lorlio
- added a menu for new and predef character.
- Changed buttons by radiobuttons.
- fixed exit error on character creation.

*** 2000-10-03 by Wouter
- fixed code so that it works with latest CS cvs version, small api change.

*** 2000-09-26 by Lorlio
- Stats and Race are starting to work.
*** 2000-09-26 by Wouter
- fixed for changes in lastest CS cvs, the vfs plugin.
- fixed CD for player, looks better now.

*** 2000-09-21 by Lorlio
- Starting a Binding solution for character creation.
*** 2000-09-21 by Wouter
- Fixed lorlio's addition of right.GIF, to right.gif.
  Windows users: remember to use only lowercase in filenames, for portability.

*** 2000-09-19 by Wouter
- trying to fix CD for player, no success.
- added the new logo to the main menu. The old ps_small.gif is still usable.
- fixed the left button in char creation to have a nicer border - should it
  be transparent (should the white-border around the left arrow be gone)?

*** 2000-09-18 by Wouter
- changed \ to / in keyint.h includes. Use / for portability!
- removed files that were included twice in splash.cpp and creachar.h, so
  they are now included only once.
Added modifications by Lorlio, he had access problems, what he did was:
*** 2000-09-15 by Lorlio
- added a litle work of character creation.
  Just the start.
- added somme cool sketch by Sergi

*** 2000-09-17 by LSupi
- optimize the key interpreter. Now it doesn't use strcmp anymore. (as requested by Ryan)
- Add Walk key

*** 2000-09-14 by LSupi
- added the key interpreter. Now we can configure keyboard input by using cfg file.
  I still need to add more keys tho since this is still limited.
- I did added more stuff. Now it recognize all keyboard keys.
- tweaked the movement a bit. Old walkspeed in the psconfig now works again. This time
  tho the value is much higher, but still produce about the same speed as the original.

*** 2000-09-13 by Wouter
- model was not centered nicely. Using HardTransform in player.cpp InitCD
  to set it right.
- increased movement speed.

*** 2000-09-12 by Wouter
- got fixed male model from Randolph, now 1.785m in height, it also displays.

** 2000-09-11 by lsupi
- somewhat fixed the movement system. I hope this is what Ryan wants.

*** 2000-09-11 by Lorlio
- fixed bug in physobj.cpp, the next constant need to be float too.
- the make file for Visual c++, works now.

*** 2000-09-11 by Wouter
- added male sprite to library, and maleskin.jpg, from Randolph.
- fixed bug in physobj.cpp, by making constant a float constant.
- added player to use the sprite, it does not display however...

*** 2000-09-05 by Ryan
- Major upgrade to the entity system.  Jorrit donated some code to our project
  that did collision detection and physics and a lot of the other stuff I
  didn't know how to do (like camera angles and moving models between sectors
  etc).   Thanks Jorrit!  So I have it mostly working now.  If you are working
  on anything entity related it probably just broke.
- Some problems the camera angle isn't the best and I can really figure out
  how to change it correctly.
- The entity moves with forces which does some weird things like holding
  down two directions no longer works.  We should either fix the forces or
  or go to a movement vector system.  I don't know which is better.
- Other things.  I added multiple camera angles F1 is FPS style and F2 is
  3D overview.
- Made the start of a dummy server class.  By no means complete add
  member functions you think it might need. :)
- Made the 3d world load after you "connect to the server" we need some sort
  of a message that says loading or some other clever phrase.  It looks like
  it freezes.

*** 2000-09-02 by Ryan
- Added doc++ style comments to all the h files.  I also wrote a script to
  upload the files to a web page so they should stay up to date pretty often.
  When you add a new file or a public function please be sure to document
  them using doc++   It will be easier for the rest of us.  the web page
  is http://members.home.com/ryan.stallings

*** 2000-09-01 by Ryan
- fixed a couple of really weird bugs.  The first caused whatever window you
  created first (even if it was hidden) to flash on the screen for a second.
- The other was the windows sometimes got confused as to who was visible and
  who was invisble.  I fixed that.
- Also fixed the event system to be a little more consistent.

*** 2000-08-30 by Wouter
- added inventory, spells and skills window.
- removed alpha channel from sbar.png
- added mock-up background pictures for the inv, spell, skill windows.
- statusbar now shows 4 buttons. They work - statusw passes the Event.
- mousehandling changed - now always checked, all of the screen, for
  position, right-clicking only works in the 3d view now.
  erm. perhaps Ryan and me need to agree where to put that :-)
- Ok now both engine (in intrface.h) and client (in game.h) have their
  own list of csws cmdevents.
- fixed for latest CS cvs

*** 2000-08-30 by Ryan
- Fixed the status bar bug with not handling the events.  The event mechanism
  is kinda hairy and it easy to mess up.  I'll post some docs in doc++ on
  how to use them.
- Overloaded the default hide command of the render window to stop the player
  moving as well.  Moved the code that checks the current mouse position to
  the  render window.  The player shouldn't ever have to query the mouse.  The
  gui should tell the player where to move.  This also allows different types
  of views (we should probably abstract the camera movement out).
- Moved all the cmdEvents to the file intrface.h and made one big enum
  type of them.  That way the all the windows will know about all the events.
  I think this is probably wrong and they should be split up. I just don't
  know how and the way they were split up didn't make sense to me.
- Changed ESC to back out of the the current menu and ALT-Q to quit.
- Added a small FPS counter.  Not useful but fun :)

*** 2000-08-29 by Wouter
- made game canvas unmovable, and improved statusbar (now looks the part,
  no window-title, etc , etc.)
- removed mk/unix/makefile.dep from CVS. You can make one using 'make depend'.
- statusbar now has a button, but it does not work. Perhaps due to weirdness
  in the HandleEvent by psinterface (it has lots of HandleXs).
  (try pressing 'i' this works until the button starts catching the hotkey).
- added inventory window

*** 2000-08-27 by Ryan
- changed the interface class to be a cswindow and the engine class to be a
  csapp.
- Rewrote all the interfaces to be cswindows.  Much cooler.
- moved the view out of the engine and into the RenderWindow where it
  should be.
- Nuked my old Window class and status window.  They were not needed once we
  had csws
- added a new StatusWindow class and a renderwindow class.  Woo Hoo.
- pretty much rebuilt the whole user interface.  It looks the same but
  it is more extensible now.


*** 2000-08-25 by Ryan
- Added two classes.  One called Window which is an abstract class and
  one called status bar which is a subclass of window.  The Game now
  has a list of windows that it draws every time it's draw function is
  called. See the files on info on how to use these classes.  Currently
  the status bar comes up at the begining of the game.  Right now it is
  just a pixmap (the ok_button :).  You can click on it and move it around
  or right click on it and close it.  If you have any questions on how to use
  this wouter or need more functionality just tell me.

*** 2000-08-24 by LSupi
- Updated the Visual C+ project files.
- Removed mana & health display because it crashes the directx and opengl drivers.
  Will try to figure out how to solve this.
- main.h now has no includes in it. Everything has been moved to its proper places.
- fixed iEvent warning (it suppose to be struct).

*** 2000-08-22 by Wouter
- fixed compilation csEvent->iEvent, csTextureHandle->csTextureWrapper,
  csMaterialHandle->csMaterialWrapper.

*** 2000-08-21 by Wouter
- improved splash screen, keys do no longer pass to the menu.
- splash screen displayed longer.
- added logo image to the menu.

*** 2000-08-20 by Wouter
Major update, doing:
- removing outdated handleMouse and handleKey methods for a better
 HandleEvent method.
- donated menu classes from the Tunnel Fighter project.
- made a main menu using those.
- unix makefile will now work with an installed version of CrystalSpace
 (autodetected in /usr/local/cryst or $(CRYSTAL) )
- also runs with installed version of CrystalSpace.
- changed mouse movement to something better, also right mousebutton now
 walks forward. Thus way of handling the mouse allows the user to point and
 click on a monster for example, or click on a button in the statusbar.
- various other fixes.

*** 2000-08-15 by Wouter
- It now compiles and runs. No CD enabled though.
  Fixed the FontHandle code for this.

*** 2000-08-14 by Wouter
- Fixing new problems caused by sound changes. Compiles now.
- LIBPATH is now ./art/, it should stay that way
- The psclient.cfg file is in the current dir, not with the CS config files,
  thus /this/psclient.cfg is used.

*** 2000-08-12 by Wouter
- Fixed more compiler problems, now Materials are used. Only linker errors
remain now.
- disabled collision detection for now, so that everything can compile.
It still needs to be brought to the new CD API, like apps/walktest does it.

*** 2000-08-11 by Wouter
- moved unix makefiles to mk/unix. They should work on Solaris, Linux, Bsd, ...
Also they should work in gnu-environments, like mingw and cygnus.

*** 2000-08-10 by Wouter
- tried to fix things...

*** 2000-08-3 by Wouter
- make things compile on unix again. changed #includes to have lower case only.
- also commnted out some CollDet code, since CD changed in CS just now.
- Also fixed some CD code.
- I still get linker errors, but no time now.

*** 2000-08-3 by LSupi
- added collision detection system to the engine and the player.
- entity class and anything derived from it have experienced slight change.
- particle system now move.
- Tidy things up.

*** 2000-08-1 by LSupi
- added another VC++ 6 project space. This one should compile if you
  have crystal space directory in the same folder as the planeshift
  root directory.

*** 2000-07-31 by Wouter
- Changed line breaks in psclient.cfg. Hope they are better now.

*** 2000-07-31 by lpancallo
- ported to Windows, removed unix Style CRLF
- changed all Tas(Something) entry to Ps(Something)
- added simple VC6 project
- added splash class
- renamed MgIntro to MgMenu

*** 2000-07-27 by Wouter
- engine now uses world->GetBeginDrawFlags() which CS requires now.
- removed no longer existing call to csWorld::EnableCBuffer.
- set binary flags for pictures in art/
- improved makefile

*** 2000-07-26 by Wouter Wijngaards <wouterw@cs.vu.nl>
- added intial files. The code and some art was kindly contributed by the
  people of the TAS project (The Amateur Scrolls).
- edited the code, changed filenames to conform to stupid 8.3 DOS standard
  in the code, thus it is now portable to DOS.
- also ported the code to linux. Added a Makefile for linux (and many other
  unices, use gnu make).
- Added new startup screen.
- created this history file. Please put the most recent changes at the
  top of the file.
- To run the program compile it, then copy all plugins from the CS dir
  to the planeshift dir, also copy *.cfg from CS to planeshift, then
  copy CS/data/config/*.cfg to planeshift/data/config/ , creating data
  and config directory. Also copy CS/data/standard.zip to
  planeshift/data/standard.zip. All this can be accomplished on Unix by
  typing 'make copyfiles'.
- the executable is named psclient, edit psclient.cfg to set things, like
  the level to load. Copy this level into the data/ dir for now.
- Note that having the data/ dir and copying these files is a temporary
  measure until CS gains installation capabilities.
