Jump to Main Content

Crossfire 1.5.0 Announcement

Crossfire 1.5.0 has been released.  There are quite a few changes -
many bugfixes, expanded material types, lots a fixes related to
map tiling, new bow firing modes, better ability to control
pet actions, new alchemy/item creation code.

This distribution includes the 'bigworld' maps - see notes below
on this file.

There is no crossfire-sounds distribution - the sounds are unchanged
from version 1.4.0

Files released for this version:

sums (bsd)  filename
26142  1542 crossfire-1.5.0.arch.tar.bz2
45676  1645 crossfire-1.5.0.arch.tar.gz
54348   886 crossfire-1.5.0.doc.tar.gz
27311 14293 crossfire-1.5.0.maps-big.tar.bz2
11270 19403 crossfire-1.5.0.maps-big.tar.gz
06064  2907 crossfire-1.5.0.maps-small.tar.bz2
14521  4242 crossfire-1.5.0.maps-small.tar.gz
28299  3688 crossfire-1.5.0.tar.gz
29708   396 crossfire-client-1.5.0.tar.gz
11656  1470 crossfire-client-images-1.5.0.tar.gz

Sums (md5)
9fb1bafc6da21e04e190a2cdca274a3e  crossfire-1.5.0.arch.tar.bz2
9b8d149de802f87e9969124c9a349688  crossfire-1.5.0.arch.tar.gz
004e5f02f8c676d6ed5a731ce5f87a17  crossfire-1.5.0.doc.tar.gz
02767e95abd4d0b8e4d93a730554d301  crossfire-1.5.0.maps-big.tar.bz2
b54d2b1e3aa446ddda3e87185f2cb6ef  crossfire-1.5.0.maps-big.tar.gz
dc678f35eaa30f30bfb6ae81e314382e  crossfire-1.5.0.maps-small.tar.bz2
85fc76d8d0b67c1af40b5f08dca68969  crossfire-1.5.0.maps-small.tar.gz
b22556499a1aa99a19e6c5c7b33d501f  crossfire-1.5.0.tar.gz
8f7e09f18cdbfbf45aea2fc06a6472cb  crossfire-client-1.5.0.tar.gz
63cbfb00ff8000f2567880b72c8162bd  crossfire-client-images-1.5.0.tar.gz

crossfire-client-1.5.0 is the client (X11) distribution - standard
X11 and gtk interfaces are provided. Various refinements - use
more general keybinding method in the gtk client to make porting
it easier, different options for displaying resistances, other

crossfire-client-images.1.5.0.tar.gz is a prebuilt image file for
the client - downloading this file will reduce the amount of download
that needs to happen during play if the -cache option is used.  This
file should be untarred in the ${prefix}/share/crossfire-client
directory, where ${prefix} is the --prefix option given when configure
is run.  The default path is /usr/local/share/crossfire-client/.

crossfire-1.5.0.tar.gz contains the server code with prebuilt
archetype and image files.

crossfire-1.5.0.arch.tar.gz contains the unpacked archetype changes.
This is not needed if you only want to compile the server and play the
game. Many new archetypes/images.

crossfire-1.5.0.doc.tar.gz includes prebuilt spoiler (postscript
and html) documentation, as well as other documentation.  If you
are playing on a remote server, the doc file may be useful.

crossfire-1.5.0-maps-small.tar.gz contains the maps.  This distribution
correponds to the previous map distributions.

crossfire-1.5.0.maps-big.tar.gz contain the new map distribution - this
has a much larger outdoor world - eventually these will be the default
mapset.  Note that if your server was previously using the smaller
map set, you will need to use various scripts include in Info/ to
update unique maps and other exits.  So the Info/README file.

FOR FIRST TIME USERS:  You will only need the appropriate server, one of the
map files and client file.  You do not need the arch file.  You may wish to
get a copy of the doc file.

If you just want to play the game at some remote server, you need the client
and perhaps the image archive file.

Crossfire is avaible on the following ftp sites




The initial upload of this release is only made to sourceforge - it should
show up on the mirrors shortly.

Mark Wedel
Feb 25, 2003

Complete changelog:


*/Makefile.in, related files:  Updated for 1.5.0
server/attack.c: Don't change weak wall image if no damage was actually done.
server/c_object.c: Include math.h - needed for pow()
server/spell_effect.c: fix infinite loop in town_portal
MSW 2003-02-24

common/anim.c: Fix for 8 way facing animations.
lib/treasures: Add sheep treasures
lib/* (rest) - rebuilt
server/spell_effect.c: Fix up counterspell - mainly fix a bug in that if
    counterspell hit a multipart magic that used magic as an attacktype,
    it would also crash.  However, code also woudln't work properly on
    tiled maps, and I'm dubious if it would work properly if there was more
    than one effect on a space.
MSW 2003-02-23

server/skills.c: Fix jump so that it updates the clients map properly.
server/spell_effect.c: insert town portals below the player so it
    works better with apply.
MSW 2003-02-20

server/move.c: Fix transfer_ob so that it sends newmap command to client
    if we're moving a playing - otherwise fog of war displays bad
    information on the client.
MSW 2003-02-19

More bugfixes:
server/c_wiz.c: Fix reset command - while it deleted the maps, it made things
    so that it never got removed from the map listing - instead, just let
    flush_old_maps do most of the work.
server/main.c: If player tries to enter a random map that has been reset
    and that we have no informatino about (eg, going up in a dungeon),
    just say the exit is closed instead of making a completely random map
    that usually isn't in keeping with the dungeon (and still won't lead
server/move.c: In move_teleporter(), change it so that if a player uses
    a shop map yet there is no place to put the player, just drop him on
    top of a monster - this fixes problem of players getting trapped inside
    of shops in random dungeons.
MSW 2003-02-16

random_map/random_map.c: Include parameters used to make map in msg of map -
    this can hopefully be used to debug what is really happening when bad
    maps are made.
server/rune.c: Modify dispel_rune function (called from disarm spell)
    to erase marking runes.  While at it, fix it so that it does the right
    thing with respect to tiled maps.
MSW 2003-02-15

include/sproto.h, server/move.c:  Modify try_fit() to take mapstruct parameter
    for which map we are trying to fit this on - fixes problems with rolling
    boulders accross map (only function that currently uses this).
MSW 2003-02-14

common/item.c: make item_power stop showing up in ring short descriptions.
         fix some of the items that were double-displaying materialnames, like
         mithril mithril chainmail.
common/loader.l: add tooltype
common/utils.c: Unless the object is armour or weapons, pick the first
         materialname we find.  Now, newly generated diamonds will stack.
         Fix name_to_material to return NULL if it finds nothing, fixes
         navar_city/museum crash.
         Change set_materialname to take a materialtype_t argument, allowing
         functions to manually set the materialname, rather than let the
         randomizer pick for them.
include/define.h:  Add TOOL and BUILDFAC for item building.
include/object.h:  add tooltype for item building.
include/materials.h: add M_SPECIAL.  Set this in an object, to prevent things
         like mithril mithril chainmail.  This is primarily only needed in
         artifacts, because they change the base material of the arch.  Also
         useful in things like the demonspawn shield, and on maps.
lib/artifacts: sprinkle M_SPECIAL around.
server/player.c: remove auto_heal.  This never should have been
         committed, and was never referenced by any code.
server/c_object.c:  add item building, but add it disabled.  Too many
         bugfixes were tied in with this code to cleanly add them. When
         enabled, this code will add player item building, similar to
         create to take place.  Requires a host of graphics and arches
         to be useable.
garbled 2003-02-13

random_maps/special.c: Fix possible bug with placement of special maps.
Add lore/endlore to object structure to hold general information about objects:
common/loader.c, common/loader.l: Add loading and saving of lore field.
common/object.c: handle lore field for copy/free/other object operations.
    Also, update CAN_MERGE to look at materialname also.
doc/Developers/objects: Add notes about lore.
include/object.h: add lore field to object.
server/apply.c: Fix bug in that cursed weapons were not equipped/
MSW 2003-02-11

doc/Developers/objects: Add nodes about shared strings in objects.
server/c_misc.c: Remove check for name length - check_name takes care
     of that for us.
server/monster.c: store return value from get_map_flags - seen some
     crashes traced back to this area, want to see what it returned.
     Allow objects with no msg to still use scripts that listen.
server/player.c: Fix potentional issue of freeing/adding players name
     when they enter play again - seen some crashes attributed to
     odd names.
MSW 2003-02-08

More bugfixes:
server/player.c: Fix permadeath without resurrection - wasn't deleting
     player save files as it was supposed to.  If permadeath +
     resurrection was in use, I believe it all worked as expected.
include/shop.h: remove _SHOP_H after endif, causing compiler warnings.
include/skills.h: Add check to USING_SKILL to make sure chosen_skill
    is not null.
server/c_chat.c: Add some missing return values, resulting in compiler
server/skill_util.c: Remove unused variable.  compiler warnings again.
server/spell_effect.c: Change dimension door so that you can't go
    through spaces that block passsage and also block view (eg walls).
    This goes back to the more traditional behaviour.  Remove
    some unused variables.
server/spell_util.c: Add missing P_OUT_OF_MAP to move_missile, resulting
    in crashes.
server/time.c: if generator is not on a map, don't have it generates.
    Fixes crashes.
MSW 2003-02-02

New materialtype system for crossfire.  Based in concept on my original
design, but rewritten from scratch to make it easily extensible.

In a nutshell:

Each of the old materialtypes (metal, glass, stone, wood) are now a class
of materials.  When an item in the game is created, if it does not have a
specific materialname of it's own, a materialname is generated randomly
from the matching entries in the "lib/materials" file.  This file
contains all of the saving throws, and other material specific
modifications for each of the expanded materials.

Materials can be manually specified in the arch with the "materialname"
directive.  Such as the gold coins, which are specified to be made of,
you guessed it, gold.

Saving throws have been slightly rewritten to use the new materialtypes,
and a few other minor details associated with materialtypes have been
patched up.

Adding a new type of stone or wood, is as simple as adding a new entry in
the lib/materials file.  The game will automatically start distributing
them around randomly.
garbled 2003-01-29

Various bug fixes:
common/item.c: If nrof of an item is 0, have it print singular name and
    not plural name.
server/c_object.c: Fix typo when printing value of optoins - had an
    extra 'the' in place.  Also, don't print value of objects with
    no pick flag set.
server/login.c: Enforce maximum name length for new characters.
server/monster.c: Change parsing code for messages/@match code -
    new code is simpler, and should also be simpler and less bug
    ridden, but otherwise functionally equivalant.  Also fix up
    communicate to work properly on tiled maps.
server/spell_effect.c: fix up move_aura to not crash hopefully.
MSW 2003-01-26

More bug fixes:
common/item.c: Add missing braces - was resulting in some items getting
     display like 'gauntlets of strength (Str+1)(Str+1).
include/map.h: Add MAGIC_MAP definitions to the file.
server/shop.c: Put back in code that uses magic_mapping_mark to determine
     what items to display in inventory.  Update for new one magic mapping
     code stores information away.
server/spell_util.c: Add missing P_OUT_OF_FLAG check, which resulted
    in crashes.
socket/info.c: Move MAGIC_MAP definations to map.h.  Add check for
     P_OUT_OF_MAP.  Remove code that stops on P_NO_MAGIC - with that
     it wouldn't search the shops.
MSW 2003-01-16

server/move.c: fix try_to_fit and roll_ob to work properly on tiled maps.
Also some performance improvements to those functions.
MSW 2003-01-12

Bulk of this commit is to improve code for tiled maps - replace
wall/blocks_magic/blocks_cleric, etc with get_map_flags which
also does map tiling translation as needed.  This should fix a lot
of the bugs related to map tiling (there are sure to be more out
there - all the get_map_ob still need to be checked).
Other changes - many spells stopped progressing on spaces that
blocked view - that is now removed - didn't make a lot of sense.
Other fixes - some cleric spells (eg, word of recall) checked to
see if magic was prohibited, didn't check to see if cleric
was prohibited.
Clean up some bugs in the lighting code that would cause erroneous
results.  Also, allow players to see immediately around them on
outdoor maps no matter how dark the map really is - behaviour
on indoor maps is the same.
Lots of code reformatted, and lots of obsoleted/dead code removed.
Add max range to dimension door.
Fix magic map - got broken when the layer stuff was redone - was
not showing proper colors.  IT also works sensibly on tiled maps
now - rather than display based on the map, it gives the player a
50x50 area centered on where the player is.
Change fire_bow - move special player fire modes into own function -
makes code much cleaner.
Hopefully this fixes more bugs than it introduces.
common/los.c, common/map.c, common/object.c, crossedit/Edit.c,
include/libproto.h, include/sockproto.h, include/map.h,
include/spellist.h, include/sproto.h, random_maps/treasure.c,
random_maps/wall.c, server/attack.c, server/c_misc.c,
server/c_wiz.c, server/disease.c, server/main.c, server/monster.c,
server/pets.c, server/player.c, server/rune.c, server/shop.c,
server/skill_util.c, server/skills.c, server/spell_effect.c,
server/spell_util.c, server/time.c, socket/info.c: See note above
server/apply.c: Limit number of times weapon can be enchanted so
    that it won't overflow item_power.  Modify enchant armor
    to enchant as normal armor is enchanted, also only allows one
    item to be enchanted.
MSW 2002-01-07

common/item.c: Add 'unidentified' to display of examined items if the
    item has not been identified.  Only display spell regen penalty
    for armour if there is in fact a penalty.
lib/archetypes: rebuilt for updated demon speed, pick up other new archs.
lib/animations, lib/bmaps lib/bmaps.paths lib/crossfire.0 lib/crossfire.1
lib/faces: rebuilt
server/main.c: Name random maps based on final map component (if available)
    or map they are spawned from - this gives so clue in 'who' command
    where the players really are.
server/monster.c: Fix code that would cause monsters to ignore golems/
server/pets.c: Clean up a few warnings, fix bug in pet_move that caused
    crashes - owner of a pet isn't always a player.
server/player.c: Remove on_same_map check - can_detect_monster also
    performed check, so no need to have extra call.
server/spell_effect.c: modify alchemy to properly deal with tiled maps,
    change behavior for spells that block view - they no longer block
    alchemy, but spaces that block magic will.
MSW 2002-01-05

TODO - add notes about item damage - clear it out of my mailbox.
common/loader.l, loader.c: Add check at load time to see if monsters
    hp is higher than its maxhp and print a debug message if so.
devel/Makefile: Remove - makefiles shouldn't be in CVS, only .in versions.
server/attack.c: Fix calculation of max_damage in kill_object - this
    was being done incorrectly, resulting in fired spell objects causing
    incorrect amounts of damage, resulint in some monsters ending up with
    a lot of hp.  Fix call to kill_object to pass in correct damage value.
server/monster.c: Put in check so that monster won't regen to more hp
    than they should have.
server/spell_util.c: Removed unused variable from move_missile.
server/weather.c: fix bug that causes crash if empty space is encountered
    on map.
MSW 2003-01-03

socket/request.c: Fix buffer (malloc) overrun in esrv_send_stats - more
   stuff has gotten to be added, without ever increasing the size of the
   buffer to hold it.
MSW 2003-01-01

server/time.c: Fix bad code in stop_arrow that caused crashes/improper
freeing of data.
MSW 2002-12-30

common/treasure.c: Fix initialization of treasure structs to use calloc.
server/player.c: Fix infinite loop.
socket/loop.c: Make sure we put in null terminator for socket data.
MSW 2002-12-26

New Arrow and Pet Code:
Add bowmode and petmode commands.  Allowing the player to change the firing
style for bows to one of either threewide, or spreadshot.
Allow players to change the operating modes of his pet with petmode.  Can be
either seek and destroy, defend, or normal historical behavior.
Change bows to impart speed to arrows based on damage and other magical
plusses.  Damage decays over distance, to stop arrows from flying forever.
Very fast moving arrows will pierce multiple targets.  An arrow moving at a
speed greater than 10.0 will go straight through a target, losing 1.0 of
speed in the process.
Change magic missile to use spell_find_dir instead of find_dir to stop it
from flying in a circle and hitting the caster, and to make it stop
flying into walls to hit creatures behind the walls.

Various bug fixes:
common/living.c: Reset glow_radius for players, so they stop glowing
    after they snuff out their torch or whatever.
server/apply.c: Fix message about improving armour so that it is now
server/monster.c: Add some debug lines that may show cause of excess
    monster hp.
server/spell_effect.c: fix compile warning in summon_pet().  Clean up
    indentation of alchemy functions, but functional changes is to
    insert gold nuggets below player (so more of the actions work),
    as well as to reset the view position, so that it won't have the
    'previous 50' object selection.  Add suggested parens in
server/weather.c: Fix crash in weather code if snow was only object
    on space.
MSW 2002-12-20

More weather routines:

Now the game will attempt to completely reformat the world, and modify it
with the weather and elevation.  When dynamiclevel is set to 5 or above,
the game looks at each tile, and the weather conditions present in that
tile.  It then consults a table of different terrain types, and what
conditions they prefer to grow under.  If the conditions match the spot,
and there is nothing special about the spot (like a house, or a road),
then we drop the new tile type on the overlay map on that location.

Tuning of this can be done at the top of weather.c, by changing the
weather_tile array.

Also.. add a feather_map() routine which tries to break up the blockiness
of some of the weather effects by spreading the tiles around.

This code works.. but needs tuning, and probably a little more testing.
Some of the conditions for the various tiles really need to be looked at,
and fiddled with.
garbled 2002-12-08

common/exp.c: Fix bug were drain attacks added exp.
MSW 2002-12-05

server/player.c: Change move_player_attack() so that we look for monsters
    to attack even after finding a rollable object - there can be non
    blocking rollable objects with monsters on top - we want to attack
    the monster, not roll the object.
MSW 2002-12-03

TODO: Move more items from my mailbox to the TODO list.
common/living.c: Init item_power in player to zero in fix_player() -
     bogus results were getting generated as it just kept getting incremented.
common/porting.c: fix remove_directory so it works properly - checking
     for . and .. entries too late, calling unlink instead of rmdir.
include/sproto.h: rebuilt
lib/animations, lib/archetypes, lib/bmaps, lib/bmaps.paths, lib/crossfire.0,
     lib/crossfire.1, lib/faces: Rebuilt - new archs added, catch is_thrown
     addition to thrown rock/boulder archs.
server/c_move.c, server/c_range.c: Add another parameter to do_skill() - part, w
     is closest part of creature to target object - current only used
     for the throw code.  Update calls to this function to add additional
server/c_object.c: Remove the NDI_UNIQUE from the 'item is too heavy
     to pick up' so that it won't flood the client with them if players
     goes onto space with lots of objects.
server/main.c: Minor cleanup to fix compiler warning about ambigous
server/monster.c: Pass closest part of monster when having it use
     a skill so that it doesn't throw rocks into itself.  Update calls to
     do_skill as described above.
server/player.c: Cal delete_player() when player quits - this properly
     cleans up any per player unique maps they have.  Also, check for
     any such maps currently in memory, and delete those so that unique
     maps don't get 'gifted' to the next character of the same name.
     Update calls to do_skill as described above.
server/shop.c: Combine items of the same name together in the output
     of the shop listings.  Include the number of items, remove special
     casing of some objects so that query_base_name is used for all item
server/skill_util.c: Modify do_skill() to take additional param as
     described above.  Also, have do_skill return 1 on success,
     0 on failur to use skill, and not return exp - otherwise,
     monster code has no idea if skill was successfully used, as throw
     doesn't grant exp, and this caused monsters to move into the
     object they just threw.  Update calls to do_skill as described
server/skills.c: Clean up skill_throw function to return meaningfull
     value.  Also, pass along extra part of closest monster part
     to target.  Modify do_throw to return value, use closest
     part of body as origin point for thwon object.
server/spell_effect.c: Use isqrt function instead of definining
     ISQRT that used float version.  Cleans up compile warning - most
     likely not seen before as spell was #ifdef SPELL_ENCUMBERANCE out.
server/time.c: Put sanity checking for players speed_left in
     move_player_mover() - got some reports of infinite negative speed
     on metalforge, and this is the only place in the code where I could
     see that happening given the description of the events.
utils/arch2xml.py, utils/cfarches.xsl: New script (and template) by
     Todd Mitchell.  Script can convert archs to xml, and the template
     is usuable with mozilla to look at the output.
MSW 2002-12-02

common/object.c, include/object.h: Add INS_BELOW_ORIGINATOR flag to
     insert_ob_in_map - this is used for treasure chests so the
     treasure is put below the player.  Also fix insertiong of items
     on spaces that block view - put them in proper order, and not just
     directly above the floor
server/apply.c: Tell player what level they need to be if they are not
     of sufficient level to improve armor.  Modify apply_treasure to
     use INS_BELOW_ORIGINATOR flag, clean up some of the other logic
     in apply_treasure.
server/c_object.c: Modify command_take to use the container inventory
     when doing a pickup, and not the container itself.
MSW 2002-11-30

TODO: Updated with dm 'follow' command.
common/loader.l: Rebuilt.
common/map.c: Fix up some formatting - no code change.
include/player.h, server/apply.c, server/player.c, socket/info.c: Remove
     chosen_item_spell field - isn't needed anymore as that information
     is determined each time player fires wand/rod/horn.  This fixes
     those items firing magic bullets if they were equipped when player
     saved and rejoined.  Some additional cleanup done in rangetostring() -
     mostly formatting changes, but minor code changes.
MSW 2002-11-29

include/shstr.h: Update REFCOUNT_TYPE to be an int - seems to at least fix
    the bug of server crashing when running around the bigworld - given the
    size of the maps, quite possible that enough objects of the same name
    would be in memory to overflow the size size of a short.
MSW 2002-11-19

Changed a ton of #ifdefs into settings:
convert #ifdef NOT_PERMADETH into settings.not_permadeth.
SET_TITLE and RESURRECTION are now settings.
#ifdef SEARCH_ITEMS -> settings.search_items
#ifdef SPELL_ENCUMBRANCE -> settings.spell_encumbrance
#ifdef SPELL_FAILURE_EFFECTS -> settings.spell_failure_effects
#ifdef CASTING_TIME -> settings.casting_time
#ifdef REAL_WIZ -> settings.real_wiz
#ifdef RECYCLE_TMP_MAPS -> settings.recycle_tmp_maps
#ifdef SPELLPOINT_LEVEL_DEPEND -> settings.spellpoint_level_depend
#ifdef EXPLORE_MODE -> settings.explore_mode
make explore mode actually *work*.
#define MOTD -> settings.motd
#define DM_MAIL -> settings.dm_mail
garbled 2002-11-12

New alchemy code, as discussed on the developer list.  Now recipies include
two new tags: skill and cauldron.  With skill, you can set which skill
activates this recipie, and the cauldron, corresponds to the arch name of
the facility you will use when creating the item.  In this way, item
creation is now more generalized than just alchemy, and specific formulae
can be written to utilize different skills, or perhaps special formulae
would require a hard-to-find cauldron.

Functionally, the alchemy, or alchemy-like-skills are now activated by
the use_skill command.  The secondary use of the alchemy spell has been
withdrawn, so now it functions in the way it was originally intended again.
garbled 2002-11-11

socket/loop.c: add a setting fastclock.  This makes the server's clock run
*really* fast.  For now, it's good for debugging purposes, but in the
future it will allow a dm to ravage a world with weather quickly.
include/define.h: add FLAG_IS_WATER
include/global.h: add fastclock to settings
include/map.h: add water to weathermap structure
include/sproto.h: add tons of new functions in weather.c
common/init.c: update for FLAG_IS_WATER
common/loader.l: update for FLAG_IS_WATER
server/init.c: add code to read fastclock setting
server/weather.c: Complete update, largely rewritten.  Now the world is
cut into a 100x100 matrix of weathermaps.  Each one of these maps is
computed at initial boot, and written to disk, following which, they are
simply read from disk at boot.  For each of the main weather types
(pressure, humitidy, base temperature, wind direction, wind speed) the
game recomputes the entire weathermap, applying smoothing algorithims, or
derriving each map from it's predecessor.  Weathermaps are only used if
you have set your dynamiclevel to 1 or greater, and, are using the bigmap
set.  At this time, there is still no functional change to the game,
bigmap, or not.
utils/maps.c: This program will generate ppm files from each of the
weathermaps. Mostly for debugging, but curious DM's might find it useful
to see the weather.
garbled 2002-10-27

server/c_chat.c: Fix some buffer overflow issues - use snprintf or
    use new_draw_info_format instead.
lib/artifacts: Update some cloaks not to require a minimum magic level,
    since that will never be met.
MSW 2002-10-16

Minor bugfixes:
common/living.c: Fix it so that if you die, you won't _gain_ exp in any
   skills - could happen if new table is harder - 3 level loss could still
   mean having higher exp total.
common/map.c: Fix on_same_map so check to see if either object has null
   map value - prevents crashes.
MSW 2002-10-13

Experience cleanup - the main functional change is that no upper limit of
    exp in an individual skill, save for the limit that there is an upper
    limit of total exp a player can have.  Thus, if a player concentrates
    complete in one skill, he could get to level 110 in it.  A lot of
    code cleanup was done - so much had gotten added to the exp code that it
    was a real mess.
common/living.c: re-arrange some of the code, so all the exp related
    functions are together.  remove adjust_exp(), change check_dm_add_exp_to_obj(
    to check_exp_adjust.  Add new functions add_player_exp(), check_exp_loss(),
    check_exp_add(), subtract_player_exp().
include/libproto.h: rebuilt.
server/c_wiz.c: Update command_addexp() to use new exp functions.
server/gods.c: Update lose_priest_exp() to use new exp functions.
MSW 2002-10-11

configure, configure.ac: Remove --enable-old-layout option - that is more than
     3+ years old now.  Add --enable-dmalloc option so code can be compiled
     with dmalloc debugging without needing to change/rebuild the configure
common/porting.c: Add stdarg.h to list of included files.
include/autoconf.h.in: rebuilt, HAVE_LIBDMALLOC undef added.
random_maps/square_spiral.c: fix bound checking value.
MSW 2002-10-07

common/item.c: Fix bug with identified potions not getting set to proper name.
MSW 2002-10-03

Bugfixes:  Add golem_count element to player structure so we can properly
    detect when golem is destroyed.  This fixes a crash in some places as the
    code tried to remove this already removed golem.
   Fix crash when null player maps.
include/player.h: Add golem_count element to player structure.
server/player.c: Add code in handle_newscs_player() that checks status of
     golem, clears op->contr->golem is value is bogus
server/spell_effect.c, server/spell_util.c: Initialize golem_count
     value when golem is created.
socket/request.c: Check for null map value.
MSW 2002-10-02

Mostly bugfixes, but the addition of a wiz 'hide' command which makes the
    wiz out of sight so to speak.
common/loader.l, common/loader.c: Fix bug where flag values were being saved
    with actual value of the flag (eg, 32768, 16, etc) instead of 1/0 value -
    Code effectively worked the same, just was a bit odd looking at save files.
include/player.h: Add hidden element to player structure.
include/sproto.h: Add command_hide(), update proto for players_on_map()
lib/Makefile.am, lib/Makefile.in: add wizhelp/hide file.
server/apply.c: Add error checking to converts so it doesn't crash if the
    converter doesn't have a proper other_arch.  Modify shopmats so that they
    don't transport spell effects, like fireballs an burning hands.
server/attack.c: Modify code so players can drain other players exp.
server/c_misc.c: Modify various functions to not show info on hidden DM.
server/c_wiz.c: Add command_hide(), clean up command_invisible() a bit.
server/commands.c: Add hide command to dispatch table.
server/main.c: Add code to not update players on map for hidden dm.
server/player.c: Give hidden dm perpetual invisiblity.
server/skills.c: Only get exp if you actually stole an item - fixes abuse
    whereby players who couldn't carry item could continually 'steal' it from
    monster and just gain exp.
server/swap.c: modify players_on_map() to take addition arg to determine if
    real players on map should be shown, or if we shouldn't count hidden dms.
socket/info.c: Modify code so that oldsockets don't get reports on high verbose
socket/metaserver.c: Modify metaserver update to not include hidden dms.
utils/Makefile.in: update datestmp.
MSW 2002-09-27

server/pet.c:  Add check to pet_move() to make sure the space we are
    checking is within the map, and handle map tiling.
MSW 2002-09-23

Various updates:
NOTE - You need to install the updated archetypes (included below)
    if you run this code without the updated archs, you will likely find
    many things do not work.
acinclude.m4 aclocal.m4 configure: more refinements for libpython detection.
common/button.c: Two push_button() changes - have it check for ACTIVATE_ON_
     PUSH/RELEASE to determine if the object should get activated.  Also,
     change behaviour of TIMED_GATE so that multipart timed gates work.
common/loader.l, loader.c: Update with acttivate_on_push/release
doc/Developers/objects: Add notes about how to add flags to objects.
include/define.h: add new FLAG_ values
include/win32.h: update by pstolarc so it compiles on Win32.
lib/archetypes: rebuilt
MSW 2002-09-17

common/map.c:  Fix problem with ordering in check_linked() - checking
    for NO_PASS was before checks for inventory checkers, resulting in
    inventory checkers that require the player to have an item not working.
MSW 2002-09-15


gtk/png.c, x11/png.c: Fix bug in rescale_rgba_data() that was potentially
     causing a 1 byte overrun of malloc'd data, that could result
     in crashes or other odd problems.
MSW 2003-02-19

common/init.c: Make sure we initalize all the config values.
gtk/gx11.c: fix foodbeep - now only beep when food is low, and continue
    to beep when food reaches 0.
sound-src/Makefile.in: Remove gx11.c in depend statement.
MSW 2003-02-04

gtk/config.c, gtk/gx11.c: remove including some files which we don't need includ
gtk/keys.c: Modify to not use X11 for keybinding - instead, uses gdk
     functionality - this should make it more portable.
MSW 2003-01-22

Patch by scachi@gmx.de to add different display options for the players
common/client.h: increase CONFIG_NUMS and add CONFIG_RESISTS
common/init.c: extend resists_table, initialize resist value to proper
gtk/config.c: Add config option for selecting different options for
    resistance displays.  Add comment about radio button usage.  Increase
    size of config window.
gtk/gtkproto.h: rebuilt.
gtk/gx11.c: Update get_message_display to support different resistance
    display options.  Add resisze_resistance_table function.  Disable
    code the causes the message window to get relocated next to the
    stats display on wide displays.
MSW 2003-01-12

x11/x11.c: Patch by Jochen Suckfuell that fixes problem of lines
    printed out while entering extended commands causes the extended command
    line to get overwritten - the extended command line is now copied to the
    next line.
common/client.c: Add handling of client if it loses its connection to
    server during setup phase.
common/newsocket.c: Have SockList_ReadPacket return -1 if it gets
    a real error on read - in this way, callers can tell if error is
    terminal or retryable (return code 0)
MSW 2003-01-03

common/player.c: Break out some of the extended commands into there
    own function to make the extended_command function more readable.
    Alphabetize strcmps in extended_command.  Add special processing
    for the 'take' command so that it handles open containers properly.
gtk/gx11.c: Add version information to the About dialogue box.
gtk/key.c: Fix bug in that extended commands (') didn't work right and
    would crash the client if not entered in info window.  Entering
    these now works properly, and crashes are removed.  Clean up formatting
    of affected function keyfunc().
help/about.h: Add extra newline to text to make it look better with
    the version string above.
MSW 2002-11-30

gtk/gx11.c: Add patch by jshelley@ictransnet.com that fixes save window
    positions.  MSW 2002-10-03