-------- SphereServer 55R4.0.1 -----------------------------------------

30-05-2004, Kell
- Little fixes to allow compile under Linux (use strcmpi() for caseless string
  comparison, and add casts to (LPCTSTR) on CGStrings).
- Changed version number. I suggest using R4.x.y where xx is increased when
  something major is done and yy is for little changes. Set to R4.0.1.
  (ps: some people never quite understood what RC* means. After the 20th it
   stops being a release candidate, it's more like a candidate to a release
   candidate. So after the "powers that be" have adopted and turned that
   numbering scheme into a mockery, I suggest we change to something less
   confusing.

31-05-2004, Furio
- Added FORCONT loop, format is FORCONT uid_of_container max_sub_containers. It will loop on every item
  present in the container. If max_sub_containers is not present it will search in all subcontainers. If 
  max_sub_containers = 0 - it will search only in this container. (Thx to Balkon for the base code for
  container loops)

07-06-2004, Furio
- Made a blank REVISIONS.TXT because it was getting pretty big.
- Added XOR (^) operator to expressions.

-------- SphereServer 55R4.0.2 -----------------------------------------

12-06-2004, Furio
- Added two new INI value USECRYPT and USENOCRYPT. The first if 0 don't allow at encrypted client to login
  otherwise allow them to log (default is 1). The second if 0 don't allow at unencrypted client to login otherwise
  if 1 -> allow and suppose that the clientversion is >= 2.0.0
  if 2 -> n/a
  if 3 -> allow and suppose that the clientversion is >= 3.0.0
- Added the most requested security-by-obscurity feature DISGUISEVERSION in sphere.ini. If set change the version
  outputted to clients, ircserver, webserver, listserver, telnetserver to its value otherwise the default build 
  value is used. (Mind that the version in savefile and in console startup is the default build version)
- Fixed (i hope) bug with Mozilla/Firefox browser with the status page
- Fixed a buffer overrun bug that could be exploited to crash or run arbitrary code, in the log system.

20-06-2004, kuch
- Added ClearTags function (removes all the tags from the char/item/account); Revital did most of the work, but I get the credit.

28-06-2004, Furio
- Fixed multiple gump exploits. In order to do this now memory 08000 is used as internal memory (is called MEMORY_GUMPRECORD).
- Fixed and refined things for disguise version feature.

02-07-04, kuch
- Added MODMAXWEIGHT: allows you to increase/decrease max carrying capacity of a char
- Added MODAR: allows you to increase/decrease the overall AR of a char
  NOTE: there are no oStat equivalents (ie oModAr or oModMaxWeight) for the above
- Also added the following to avoid possible confusion:
  * MAXWEIGHT - same as WEIGHTMAX
  * AR - same as AC
  * MODAC - same as MODAR
  * MODWEIGHTMAX - same as MODMAXWEIGHT
  
03-07-04, kuch
- Added 135 more strings (mostly from skills) to sphere_msg.scp
- Added new .ini option: WOOLGROWTHTIME: how long in minutes it takes for wool on sheared sheep to regrow.
- Added new .ini option: SKILLPRACTICEMAX: how high can you train a skill on dummy/archery_target.

04-07-04, kuch
- Added 93 more strings: NPC speech and skill msgs; there are now 329 string messages in sphere_msgs.scp.
- Added TAGCOUNT function (works on regions/items/chars/accounts) - returns the number of tags on that obj
- Fixed CLEARTAGS (now also works on regions)

06-07-04, kuch
- Fixed some weird bug in jobmage.scp and jobnoble.scp 
- Added a lot more strings to sphere_msgs.scp; If you find any bugs with them, kuchervano@hotmail.com me immediately!

07-07-04, Furio
- Fixed DISTANCEWHISPER not working correctly.

07-07-04, kuch
- Added DEFFOOD value to sphere_defs.scp - this is a template of items you want to get by casting the create food spell
  Yes it does not give you a great deal of control over what you get (ie skillbased for example), but its better than nothing
  
09-07-04, Furio
- Fixed bug with ^ operator.

16-07-04, Vjaka
- Fixed bug with armor/weapon when hits were above to hitsmax
- Cosmetic fix to report Client out overflow error line once per dialog instead of tons of them
- Added trigger function f_onchar_delete triggered before client is going to delete a character. SRC is char, return 1 denyes deletion
- Added trigger function f_onaccount_login triggered after client entered the password, ARGS is account name, return 1 disconnects
- Added spell flag SPELLFLAG_PLAYERONLY 020000 which denies spell being cast by npc ai (no more npcs casting shrink if not wished to)

17-07-04, Vjaka
- Added @NPCLostTeleport to trigger before NPC is going to be teleported back to its spawn (by LostNPCTeleport sphere.ini setting)
  ARGN1 - the distance from the spawn
- Added INI switch PAYFROMPACKONLY (default: 0). If set to 1, then buying stuff from vendors will search pack only for the gold
- Added @Hunger to trigger before char is going to loss a food level. ARGN1 - the food level that will be set. return 1 cancels

19-07-04, Vjaka
- Removed IRC server from default build settings. It is buggy, has holes inside and probably should not used by anyone.
- Reverted memory information profiling in Win32 version (at least for stability testings)
- Fixed NoMessages and Quick login mode (ARNG1/2 in @Login) now skips sphere version information and Welcome back.. prompt
- Fixed some exceptions for ticking events. Some division by zero removed, and the exceptions are made less critical (actualy
  the way they should be - quite local). It means that the server should be more stable now. Also they gives usualy more
  information on when the error occured.
- Added @StepStealth triggering on each step made by person in stealth. ARGN1 (in and out) - whatever to reveal him or not.
- Added isnumber(something) - returns 1 if it is a number (only number of radix 10 suits). Useful in argtxt validation.

19-07-04, Furio
- Fixed compatibility issues with Linux for isnumber(something).
- Added TAG.DIALOG_NAME to MEMORY_GUMPRECORD. The tag contains the name of the dialog opened. Special case are the .admin gump (clientlist),
  the hair dye gump (hairdye), a guild hardcoded gump (guild) and if no name is found (undef). Hope that this will help in checking what gumps
  are opened on client screen.
- Added SDIALOG command. It works like DIALOG with the difference that it'll open a dialog only if it's not present on the client screen.
- Fixed a thing in DISGUISEVERSION. Now .[x]show version shows the disguised version.

20-07-04, Vjaka
- Fixed compatibility issues with Unix for exceptions
- Added MODAR (MODAC) working on items as well. Thus, it is for both - items and chars.
- Fixed startup sequence - now tryes to bind a socket before loading the world saving time on running multiply instances.
- Fixed Windows version buffered output flushing. Also removed log file buffering.

21-07-04, Kell
- Fixed some compilation issues under Linux (just missing some (DWORD) casts).

22-07-04, Furio
- If PAYFROMPACKONLY (default: 0). is enabled, in the char status only gold from pack is displayed.
- Fixed minor things on default messages.

22-07-04, Vjaka
- Added server state functions f_onserver_save, f_onserver_save_ok and f_onserver_save_fail. Arguments are ARGN1 - force save?
  and ARGN2 - save stage (for background saves). For f_onserver_save the ARGN1 is writeable and return 1 cancels the save.
  Please note, that if background saves are enabled, these functions will be run tons of times during the worldsave process (at
  least 6144 [sectors amount] times).
- Added f_onserver_start function triggered server start.
- Created knownbugs.txt file to be distributed with sphere revisions.
