VERSION .8

  [NOTE: Config files from this version are not
  compatible with older versions!]

  -Added prioritized sendq flood protection
  -List can only be called every 30 seconds now
  -Status is now sent in notice
  -Added GAME_StateSave
        -Added state saving/loading code
  -Added pidfile output on fork (trivia.pid)
  -Trivia notices on join the current question now
  -List not lists by line size (more players per line)
  -Added DIE command to shutdown bot gracefully
  -Added config and load commands to change 
       config options and load config files
       respectively.
  -Added uptime command
  -Added GAME_BasePoints & GAME_TimeWise 
      which allow points to be given relative
      to time taken to answer question.
  -Player list is now sorted on list by 
   score, greatest to lowest
  -Added ignore command

VERSION Beta .7

  -Removed displaying the player number on list_players
  -Rewrote Question::question_count to Question::questions
   which now will only count questions if the database has
   been modified.
  -Rewrote question history code to be dynamic
  -Added check_answer function
  -Wrote identify/regain commands with ghost passwords
  -Added admin list command to list player structs
  -Added teams and associated config directives
  -Fixed various buffer overflow problems
  -Hints now will use second entry if it exists ('Hint Answer')
  -Added show answer option (much asked for!)
  -Fixed possible buffer overflow problems in question.cpp

VERSION Beta .6
  -Added set command (privmsg)
  -Added config directive GAME_AutoRem
  -Fixed join register bug (caused bot to keep reconnecting)
  -Added config directives:
     GAME_ACTIVITY_Enabled 
     GAME_ACTIVITY_Count 
     GAME_ACTIVITY_Time 
  -Added ACTIVITY class (activity monitor) (buggy)

Version Beta 0.51
  -Fixed infinite loop if history was full error
  -Fixed stop/start bugs
  -Moved question functions/handling to question.cpp
  -Cleaned up header file (Now everything is in h.h)
  -Various code cleanups and optimisations
  
  -Added TEXT config directives
  -Added GAME_Points config directive
  
Version Beta 0.5
  -Cleared  status.joined in Game::reconnect()
  -Made lines a member of Game, and have it only
   calculated at game start. This will save considerable
   CPU time.
  -Made answer list a 2 dim dynamic array, now theres no answer
   limit
  -Added fork() in main()
  -Fixed bug where CLIENT_TIME_Timeout was TYPE_STRING not TYPE_INT, oops
  -Added m_ to all member variables

Version ALPHA 0.4 

  -Added config directive CLIENT_TIME_Timeout
  -Added config directive LOG_FromServer
  -Added config directive CLIENT_AdminPass
  -Fixed bug in soundex, where a *-1 was left out
  -Fixed get_line(), else bug
  -Added source_struct
  -Added status command
  -Added HISTORY to options.h
  -Fix for a loop that occured in RH 7's dodgy libc (Thanks Redhat)

Version ALPHA 0.3 (5/1/01)
   
  -Added function to remove all players
    which is now called by Game::stop()

  -Added TYPE_BOOL to config types and added following to config:
        int   GAME_HintRatio
        int   GAME_UseHint
        int   GAME_MinHint
        int   GAME_TIME_Timeout
        int   GAME_TIME_QuestionDelay
        int   GAME_TIME_BaseTime
        int   GAME_TIME_StartDelay
  -Added hint system 

Version ALPHA 0.2 (5/1/01)

  -Fixed problem with Alarm Signal in which it segfaulted
        on certain systems.
  -Added connection timeout and reconnect routines
  -Added safe rejoin and continued attempt at rejoin on kick
  -Config file is now an argument not a predefined
  -Database file is now a config option
  

4/1/01

  -Fixed typo in soundex()'s code to check for doubles
  -Implemented config class

3/1/01

  -Added Game::do_msg() which will not take care of all msg 
     parsing instead of doing it in Client::parse_privmsg()
  -Altered List_players to output 4 per line, this will in the 
     future be a config option.
  -Made newplayer command obsolete, newplayering is now auto
  -Made check for last n questions asked to avoid recent repeats
  -Created Config class, Config::load() and Config::parse_entry()

2/1/01
  -Added function Client::parse_newnick and 
                  Game::do_newnick
  -Fixed buffersize of q_struct.raw, it was 1/4 the size
   of data coming in from the file! Causing memory corruption.
  -Added a few null pointer checks

1/1/01

  -Fixed memory leak regarding Parse::get_word()
  -Fixed memory leak regarding Parse::strip_leading()
  -Made Parse::get_word obsolete and used strtok() instead, 
        very messy at the moment and needs cleaning.
  -Check for strlen(strex) < 2 which forces literal string matching.
  -Fixed bug with soundex duplicate letter checking
  -Fixed memory leak which appeared in Parse::get_nick()

31/12/00

  -Fixed un-needed dynamic allocation
  -Wrote structure for linked player list
  -Wrote functions to add/remove players
  -Wrote function to find and return player structure
  -Fixed Client::privmsg to now use arglist
  -Added newplayer command
  -Added rem command
  -Added Game::do_part function (Force rem if player leaves)
  -Added Game::list_players function to list players to a target
  -Removed max size of soundex value

30/12/00

  -Fix for soundex() and duplicates

29/12/00 

  -Added initial timer code
  -Wrote intelligent string matching algothrim 
  -Start of worklog
