Jump to Main Content

Crossfire 1.4.0 Announcement

Crossfire 1.4.0 has been released.  The main change is the use of
automake.  The addition of abstracting body locations for equipment
is included - this allwos for finer granularity in controlling
what different races can put on.  The experience for different levels
is now moved to a configuration file, making it easier to tune
the differeing values.  There are also lots of bugfixes.

With the automake changes, the location of the configuration files
has changed.  See the NEWS file in the server directory.

I packed up gnuzip (.gz) versions of the files.  Looking at the download
stats on sourceforge, these are more popular, and for the most part,
are not that much larger than the .bz2.  Only doing one such method
also makes it easier on me to distribute the files.

Files released for this version:

sums (bsd)  filename
61293  1464 crossfire-1.4.0-arch.tar.gz
63480  4523 crossfire-1.4.0-maps.tar.gz
21772  3477 crossfire-1.4.0.tar.gz
13017   394 crossfire-client-1.4.0.tar.gz
11454  1304 crossfire-client-images-1.4.0.tar.gz
06374   253 crossfire-client-sounds-1.4.0.tar.gz

Sums (md5)
5df9f8981afdd4e6c174b49e8e3c0db2  crossfire-1.4.0-README
dd54ea16b98d0bb95a6ed176e0046013  crossfire-1.4.0-arch.tar.gz
788381affd5b29d6601dd4371314bb80  crossfire-1.4.0-maps.tar.gz
999b7a1a678e8ffa075fed45545a6ef6  crossfire-1.4.0.tar.gz
6ab310b8d2ea80e7fae246775dc819e2  crossfire-client-1.4.0.tar.gz
7b8ea870de491cf5070f05ae876bcbf2  crossfire-client-images-1.4.0.tar.gz
1b33401d9d2af0d391fee7ad04282cfd  crossfire-client-sounds-1.4.0.tar.gz

crossfire-client-1.4.0 is the client (X11) distribution - standard
X11 and gtk interfaces are provided.  A major bug related to
image caching is fixed. Better handling of configuration options was
done.  Stat bars can now be drawn in graduated colors.

crossfire-client-images.1.4.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-client-sounds-1.4.0.tar.gz contains sound files for the
client.  The change was to increase the volume of the sound files so that
they are more in line with other sounds played on the system.

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

crossfire-1.4.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.  Several monsters were tuned, and new ones added.

crossfire-1.4.0-maps.tar.gz contains the maps.  This is needed
with the server distribution.

FOR FIRST TIME USERS:  You will only need the appropriate server, map
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

Complete changelog:


server/disease.c: Change move_disease() somehwat - before, if you were
    not susceptible to a disease, it would never run its course.  Yet you
    would still get stuck with the symptoms.  there was a case on
    metalforge where a character had a symptom with no disease, and
    had immunity, yet was still getting stuck with the symptoms.  Not sure
    if this change will help prevent that in the future or not.
include/player.h: Change item_power in player structure to be 16 bits -
    8 bit values were getting overflowed.
MSW 2002-09-14

INSTALL: Update directions with new automake method.
common/Makefile.am, common/Makefile.in: Fix code for building the libproto.h
    file - it was including loader.l and not loader.c
common/exp.c: Add init_experience() and dump_experience() functions -
    init_experience() loads the experience table from a file.  Add default
    experience table into this file
common/init.c: Add call to init_experience()
common/living.c: Remove experience tables - players can select the one they
    want by changing the exp_table file.  Remove reference to new_levels[] -
    only levels[] is used now for the formentioned reason.
include/config.h: Update notes about SIMPLE_EXP system.
include/libproto.h: rebuilt.
lib/Makefile.am, lib/Makefile.in: Add exp_table to list of files.
lib/exp_table: New file that contains experience information.
server/c_object.c: Modify command_take() to look for objects above the player
    to pick up, then objects below.  This fixes the bug with not being able
    to use the take command on items from a chest the player opens without
    moving off the space.
server/init.c: Add -mexp dump switch to dump the experience table.  Allow
    the simple experience system to be set in the settings file.
server/skill_util.c: Fix oddness in calc_skill_exp() which could result
    in add amounts of exp given.
MSW 2002-09-10

include/sproto.h: rebuilt
lib/help/killpets: New file
lib/Makefile.in: Add help/killpets file.
server/c_misc.c: Add command_kill_pets().
server/commands.c: add killpets command which kills your pets.
server/monster.c:  Add some code in check_enemy so that the enemy
     has to be a monster/generator/player to be considered valid -
     I was seeing things like arrows ending up as target enemies.
MSW 2002-09-07

More bugfixes:
common/loader.l, loader.c: Fix up the handling with speed with respect
    to style maps - the objects were still getting put on the active
common/map.c: Fix up blocked_link() to behave more like the
    blocked_two() function - inventory checkers and door handling.
    Comment out blocked_two since it isn't used anymore.  Modify
    load_objects to remove objects on style maps from the active
    list.  Remove some of the debug messages about map loading.
common/object.c: Add remove_from_active_list() function for use
    in map.c to remove objects from active list.
common/porting.c: Comment out debug message if open_and_uncompress()
    can open a file - caller of the function should print out messages,
    and it really isn't much of an error in any case.
include/libproto.h: rebuilt.
random_maps/special.c: Modify place_special_exit() - this should fix
    bug of very large treasure maps - problem was if the generated map
    size was too small, when generate_random_map was called, it would
    generate a newly sized map that was much larger.  Code was also
    re-arranged some to make it a little more readable.
server/attack.c: Fix crash when creature may not have an owner and
    it kills something else.
server/move.c: comment added - no code change.
socket/request.c: Fix off by one error in esrv_send_animation() -
    rare condition as it only showed up when trying to send the last
    animation (zombie) - only an issue if the player is put on top of
    a zombie for some reason (no other space for them) - observed when
    leaving the random dungeon in the undead church in scorn without
    clearing out all the zombies first.
MSW 2002-09-06

CHANGES: Update build instructions for the plugin.
random_maps/square_spiral.c: Fix bug that could cause the search
    function to go off the edge of the map looking for a clear space.
    Doesn't happen often, but one crash did happen here.
server/monster.c: Fix some bugs with monsters and wakeup - remove
     check for friendly that could never be true, and also fix
     logic so that monsters will now find the players.
MSW 2002-09-05

common/button.c:  Fix do_mood_floor() to look at all objects on space for
    something to effect, not just things above the moodfloor.
server/attack.c: Add missing check to make sure the plugin exists before
    we try to access the plugin function.
common/readlable.c: Fix crash caused by passing null value to mon_desc -
    check for non null was at end of { } do loop - check should be at the
server/monster.c: Make it so that monsters with see invisible are not
    immune to blind - monster can be given appropriate resistance to make
    it so it is not effected by blind.
MSW 2002-09-04

server/main.c: Move #endif in crypt_string to more proper place.
server/monster.c: Fix bad if statement that may have been waking up
     monsters when they shouldn't have been.
MSW 2002-09-03

This change mostly deals with improving behaviour of pet monstes.
Most of the code is from K. Reinert - however, I did some code cleanup/
fixes related to pet monsters, so it is difficult to note where
each piece of code came from.  One thing this does fix is handling of
multipart pets - these now work properly.
common/map.c: Update comment for get_rangevector() - no code change.
common/object.c: Add get_search_arr() which is used in pet monster code.
    This returns a semi random scrambling of the freearr array.
doc/Developers/protocol: Update documentation about map1a protocol command.
include/libproto.h, include/sproto.h: rebuilt.
server/attack.c: Have drain attacks return 1 damage so that it is clear
    that you are actually hitting your opponent.  Otherwise, you would
    get messages that 'you missed xyz', even though you are draining it.
    This extra point of damage shouldn't change balance in any significant
server/monster.c: Update hnadling of enemies for pet monsters. It should
    more intelligently choose the monsters and not switch/clear the
    enemy field for no reason anymore.  Change find_nearest_living_creature to
    use the get_search_arr() to more randomly choose direction of target -
    before, there was a proclivity to always look in the north direction.
    Modify can_hit() to look for closes part of enemy - otherwise, monsters
    may not attack opponents even if they were right next to them because
    they couldn't get to the enemies head.  Remove move_object from
    this function - merged with move_ob in move.c
server/move.c:  Fix move_ob to use 'cleaner' code of move_object, but
    also have specific features that move_ob had (player handling).
    Before move_ob didn't handle multipart objects correctly, and the
    two functions were largely the same.  Now move_object() just calls
    move_ob - the only difference in the functions is that move_ob()
    takes 3 parameters instead of 2 of move_object() (added
    parameter is originator).  I think this should now mean multipart
    player objects may now work.
server/pets.c: get_pet_enemy enhanced to be much smarter about
    selecting/finding things for the pet to attack.
server/player.c: Remove commented out line of init_beforeplay
MSW 2002-08-31

server/attack.c: Modify drain attack code so that if some agent of the
player is doing the drain (eg, avatar, summoned monster, or even spell),
player gets exp added to his total.  Otherwise, the agent could suck all
the exp out of the monster, resulting in no gain for the player.
Also, fix bug in drain code where uninitialized value was being used
if enemy had 0 protection to drain.
MSW 2002-08-30

Various bugfixes:
common/map.c:  Change so that same logic is used to determine pclose/fclose
    that is used to determine popen/fopen - otherwise, compressed map
    files probably don't work properly.
common/treasure.c: Do a memset to make sure entire treasureslist is
    set to sane values.
lib/archetypes: Fix 'slaying' field (which determines spell name) in
     god_spelldirect_face_of_death and god_spelldirect_finger_of_death
server/apply.c:  Fix infinite loop if the player had cursed items
     that needed to be unapplied to apply an item - setting up next
     item iteration was inside if check when it shouldn't be.  Also,
     print message to player if this is the case.
server/monster.c: Better format some of the code for improved readability.
     Fix indentation of can_see_enemy.  Clean up invisiblity check - may
     have fixed a bug - old code should have worked, but wasn't very
server/move.c: Fix some bad code from last checkin - didn't fix
     the crash on no floor for door type, and instead removed
     check type from next line by accident.
server/player.c: Remove call for init_beforeplay - this is already
     properly called, and re-calling it resulted in some things being
     redone when they shouldn't be.
server/skills.c: Add message if there is nothing to steal form the monster.
server/spell_effect.c: Improve message when invisiblity duration is
socket/init.c: change O_NDELAY to O_NONBLOCK of fcntl.
MSW 2002-08-25

doc/Developers/objects: Update with new (better) information from
    Todd Mitchell.  Doc is more complete, and now has an index which
    should make it easier to find things.
server/move.c: Fix dereferencing NULL problem - was looking at op->above,
    but op could be NULL if the map had no objects on a space (typically
    not the case, but...)  No reason I can see that we care about the object
    above - just process in normal order.
MSW 2002-08-21

server/time.c: Possible fix for bug seen on metalforge -
    in move_player_mover, make sure we are working with the head of the
MSW 2002-08-13

More spoiler-html fixes - was not including attacktype information, but
also fixed some formatting issues.
common/item.c: Include attacktypes in describe_monster.
doc/scripts/Makefile.in: Add monsters-extract.pl file.
doc/spoiler-html/Makefile.in: Update to use ../scripts/monster-extract.pl
    file, remove monster-extract file.
doc/spoiler-html/spoiler.html: rebuilt.
MSW 2002-08-11

Fix spoiler-html generation to show resistances.  Need to do normal spoiler
next.  Add a new docs/scripts directory to hold the common scripts,
instead of spoiler, spoiler-html, playbook, and playbook-html each having
their own copies.
configure, configure.in: Add doc/scripts directory.
doc/spoiler-html/Makefile.in: Update build directions to use
doc/spoiler-html/spoiler.html: Rebuilt with updated information.
doc/scripts/Makefile.in: Makefile for directory.
doc/scripts/items-extract.pl: perl version of the items-extract file.
doc/spoiler-html/items-extract: awk version - no longer used.
MSW 2002-08-02

common/item.c: Have describe monster show resistances of monsters - useful
    for spoiler output, as well probe spell.
server/disease.c: Fix typo.
MSW 2002-08-02

include/global.h: add FREE_AND_CLEAR_STR macro, relocate DELETE_STRING
    by the other macros.
server/c_misc.c: Fix string printout in applymode function.
server/disease.c: Update name_pl in diseases.
server/player.c: replace FREE_AND_CLEAR with FREE_AND_CLEAR_STR - was
     freeing data that shouldn't be freed.
MSW 2002-08-01

Various fixes:
INSTALL: Update with note about --with-includes configure option.
common/loader.c, common/loader.l: Add comment about flag_invis_undead
include/define.h: Add FLAG_INVIS_UNDEAD
lib/adm/map_info: Modify to not follow symbolic links.
server/monster.c: Modify can_detect_enemy to be a bit more straightforward
    in its logic.  Also, modify detection of invisible creatures - don't
    reduce duration, just return that the monster can detect the player.
    There were also spurious messages about the player being seen.
    Modify can_see_enemy to check FLAG_INVIS_UNDEAD, also fix broken
server/player.c: Clear FLAG_INVIS_UNDEAD when invisibility ends.  Fix
    action_makes_visible() - had reverse logic on FLAG_MAKE_INVIS check,
    and a typo in the printed message.
server/spell_effect.c: cast_invisible() to use FLAG_INVIS_UNDEAD -
    also check for maximum duration, and only search active objects when
    clearing enemy.
server/weather.c: Fix off by one on comparision when intializing maps
    darkness when loading map from disk.  In dawn_to_dusk, don't do
    further processing if the light hasn't changed.
MSW 2002-07-29

Various bug fixes, add glyph spell:
TODO: Updated
common/map.c: Fix change_map_light() - if darkness was reduced to zero,
    it wouldn't properly notify the players or update the maps they are
    on.  Also, make it more robust to handle changes by more than one.
include/define.h: Increase NROFREALSPELLS
include/spellist.h: Add glyph spell.
include/spells.h: Add SP_GLYPH entry.
server/attack.c: Fix up kill_object() - it has had some many various
    additions that it was difficult to follow the logic.  It should also now
    do better check on skill objects when awarding experience.
server/player.c: Add some checks/addition to properly deal with freeing the
    name_pl in the player object.  Fix it so that if you are braced, you
    still won't attack friendly creatures.
server/rune.c: Add cast_generic_rune() to handle the glyph and rune spell.
server/spell_effect.c: Fix up some pointers in cast_cause_disease() -
    needed so that it works properly when embedded in a glyph.  Have it
    return 1 even if no one caught anything - you still cast the spell, so
    you should lose the grace for it.
server/spell_util.c: Fix some formatting.  Break out the code dealing
    with rune into cast_generic_rune()
socket/loop.c: Add flag to player command mapping, and update structure -
    if flag is set, command can only be issued when player is in play,
    and not when waiting at the quit or login prompt - fixes crashes where
    players could wait for the map to get swapped out (after quitting), and
    then looking at a space.
socket/request.c: Fix map2cmd so that invisible players are drawn.
MSW 2002-07-24

Add dm command 'freeze' which freezes a player from doing anything for some
amount of time.
include/sproto.h: rebuilt.
lib/Makefile.in: Add freeze to wizhelp files.
lib/wizhelp/freeze: New file.
server/c_wiz.c: Add command_freeze().  Also, break out
    get_other_player_from_name() - several functions need the same logic
    of getting a player named X that is not us - making it a function
    reduces the duplicate code.  Fix some formatting for some functions.
server/commands.c: Add command_freeze to the dispatch table.
MSW 2002-07-17

lib/Makefile.in: add a 'archonly' directive that only collects archetypes
     and doesn't collect images.
lib/archetypes: rebuilt for fixes made to arches.
lib/collect.pl.in: modified to take second parameter -ARCHONLY, that causes
     it not to save out animation, bmaps and faces file.
server/apply.c: Change order of print when applying/unapplying - print out
     the 'you apply/unapply' before we print out the changes that applying
     the item does.  It seems odd for it to be 'you feel stronger.  you apply
     xyz'.  Fix can_apply_object() so that if a player needs to unapply
     several items, the right return code is returned and we don't say
     the player has a choice.
server/player.c: Fix missing clearing of player->next.
MSW 2002-07-15

-- Start body commit notes --
Major commit.  This adds body locations which is used for equipping items.
Equipment has information which body part it gets equipped to, and monsters
have information on how which body locations they can have.

As part of this work, I also did a lot of code cleanup.

To use this, you must use up to date archetypes - the ones included
in this commit are fine - just make sure you install them.  If
you don't, players will not be able to equip items.

common/arch.c: Initialize body_used to be same as body_info for
     archetypes - this way when monsters are created, they can
     start equipping items right away.
common/exp.c: update new_exp() - some flags it checked for before no longer
     exist or have new names.
common/info.c: describe_item() now takes second parameter - update
     dump_abilities to use new calling convention.
common/item.c: Add table that describes the body_info locations and
     their names.  Add functions that calculate item power for objects
     that don't have it set.  Update display functions to show
     item_power in items.  Update describe_monster() - use_horn/wand/rod
     merged into just use_range.  Modify describe_item() to take second
     paramater - who the item is being described for.  Show item_power
     in describe_item.
common/living.c: Pull out MAXLEVEL from being defined in this file -
     define in in define.h, since other files use it.  Add NUM_STATS
     define - replace hard coded values of having just 7 stats with it.
     Update change_abil to not display that the player has a new
     attacktype when equipping a bow that has it - fix_player() ignores
     the attacktype of the bow, so it was incorrect information.
     fix_player(): Initialize player ranges structure to null -
     will get filled in by code in function, updated to deal with
     updating the body_used data from body_info in the objects.
     Replace instances of last_heal with gen_sp_armour.  Rearrange
     some code to make function more readable.
common/loader.c, common/loader.l: Remove the variable_const information - no
     longer needed and confusing for new people when adding in new object
     elements.  Add set_body_info() - parses the string from the load file and
     sets the appropriate array element.  Add check_loaded_object() - does
     sanity checking for an object after finished loading - replaces need for
     long processing directive in the actual rules by having seperate function.
     Remove unused flags from load directives (apply_once, no_pretext,
     can_apply), add some new ones (item_power, gen_sp_armour), update others
     to can_use_range.  Replace flag_links with simple array that contains the
     name for each corresponding flag.  Update get_ob_diff to not use the V_
     values and just include the actual string name - all recent changes have
     done this, just updated for old stuff.  Update get_ob_diff to save new
     values that have been added.
common/object.c: clear_object:  Modify to use memset to clear
     the structure to zero - this is less error prone than listing
     all the specific values, and probably faster.  Also, makes it
     easier to add new elements - no need to update object.c in most
common/player.c: Remove get_player_ob routine - this is now merged
     in with get_player_ob in server/player.c.  Remove generate_ext_title -
     not used.
common/readable.c: Update to pass second argument to describe_item.
common/treasure.c: Update to calculate item_power of generated items.
     Clean up a lot of code formatting.  Update add_abilities
     to use gen_sp_armour values, not last heal (note, it appears
     the last_heal values weren't being used before).  Update
     calls to describe item to take second parameter.
doc/Developers/objects: Update will_apply notes, add note about
     item_power, body location.
include/define.h: Comment out unused flags (flag_apply_once, flag_paralyzed,
     flag_no_pretext, flag_ready_rod, flag_read_horn).  Add flag_use_shield.
     rename flag_use_wand to flag_use_range.  rename flag_ready_wand to
     flag_ready_range.  Add flag_ready_scroll.  Update ARMOUR_SPELLS access
     macro.  Add AP_PRINT flag to apply flags.  Add CAN_APPLY_.. return types
     for can_apply_object function.
include/includes.h: add strftime, mktime checks to this file.
include/libproto.h: rebuilt.
include/living.h: Add NUM_STATS define, update extern declarations
     to use it for sizing.
include/loader.h: remove the V_.. info and  xbm_.. externs that were not
include/newserver.h: Remove ext_tile information.
include/object.h:  Add Body_Locations structure, NUM_BODY_LOCATIONS define.
     Add definitions for WILL_APPLY values.  Clean up object structure -
     formatting is now consistent, ordering of values groups values
     together more logically.  Update all types to use the int8/int16/int32
     types.  Several unused fields removed.
include/player.h: Update rangetype enum.  Add unapplymode enum.
     Clean up player structure - type updates, unused fields removed,
     formatting fixed up.
include/spells.h: remove range_name extern.  Update SpellTypeFrom
     field to combine wand/rod/horn into spellMisc - none of the
     spell casting code was differentiating these.
include/sproto.h: rebuilt.
lib/Makefile.in: Add new help files (applymode, bind, brace)
lib/archetypes: rebuilt for body_info, gen_sp_armour, item_power,
     can_use_shield information.
lib/artifacts: updated for item_poer and gen_sp_armour changes.
lib/treasures: remove unused _force for player treasure.
plugin/plugin_python.c: Change FLAG_USE_WAND to FLAG_USE_RANGE.
server/apply.c: Move stftime, mktime to include/includes.h.  Remove
     draw_find() - one line function can just as easly be in the
     code itself.  Update calls to long_desc to pass second parameter.
     move gravestone_text() to player.c file.  Add direction parameter to
     apply_scroll() - in this way monsters can use it properly.
     Remove dead code.  Update apply_special function.  Add
     unapply_special(), get_item_from_body_location(), unapply_for_ob(),
     and can_apply_object() functions.
server/attack.c:  Remove SET_FLAG(op, FLAG_PARALYZED) line - no code
     was ever checking status of FLAG_PARALYZED.
server/c_misc.c:  add command_body() which dumps body information for
     player.  Update who as idle element in player structure removed -
     was not being used by anything.  Add command_applymode() to
     set players prefered unapply method.  Remove calls to unlock_player()
     in various functions - unlock_player() has not done anything
     meaningful for a while.
server/c_object.c: Modify long_desc to take a second parameter
     which is who is examing the object.  this is needed so that we
     can pass it down to some of the lower level functions.
     Update calls to describe_item to pass this second parameter.
     remove FLAG_NO_PRETEXT code - no archetyps were using it.  When
     examining objects, also tell player where to put them on.
server/c_range.c:  Update legal_range() - we now store the object that
     is responsible for a range in the player object, so code is
     much simpler.  Update change_spell() to not destroy golem
     just by readying another spell - we now let players regain control
     of golems after switching to another range.  Update change_spell
     to use item name of object for range description.
server/c_wiz.c: remove reference to count_left from player object -
     field removed from structure.
server/commands.c: add new commands (applymode, body) to command dispatch
server/login.c:  Remove unlock_player() and lock_player() and calls to it -
     current checking of names at login should be sufficient to
     prevent duplicates.  Remove dead code from check_name.  Update
     load/save code for unapply mode value.  Add set_flag(op,
     FLAG_USE_SHIELD) if player is allowed to use armor - needed since
     flag_use_shield is really a class feature and so is not automatically
     updated for old player files.
server/main.c: Remove references to count_left.  memset marker object to
     NULL - seems to increase stability on metalforge server.
server/monster.c: Many updates related to the body info - monsters follow some
     rules as players.  Add monster_should_cast_spell function - monsters will
     use this for all spellcasting related actions (abilities, scrolls, wands,
     etc).  Update for merged rod/horn/wand ranges.  Update bow use by monsters
     - they don't actually need to equip it to fire - this way we don't need to
     constantly swap the monsters weapons between the bow and melee item.  Use
     fire_bow from player.c for most of the work.  Modify scroll usage -
     monster will use it when player is near, not when it first picks it up.
     Add FLAG_READY_SCROLL to denote the monster has a scroll to use.  Also,
     monster now casts it in appropriate direciton.  Merge the
     monster_use_wand/rod/horn into monster_use_range.  Modify
     check_good_weapon and check_good_armour to just look at the stats of the
     two items without needing the monster to apply it first.
server/player.c: Print motd in green so it is more noticable.  Update
     get_player function to do work it did before as well as that of
     get_player_ob.  Have get_player take a parameter which is the object of
     the player if he has one.  Modify to use memset to clear the player
     structure - more sure fire than explicitly listing values to initialize.
     Remove calls to unlock_player.  Modify fire_bow so that monsters can also
     use the function.  Add fire_misc_object() to fire_wand/rod/horn - removes
     code from fire().  Add gravesetone_text() to this file.
server/shop.c: Update to pass second parameter to describe_item().
server/skill_util.c: Update check_skill_to_fire since there are fewer
     rangetypes now.  change range_scroll name to range_golem, as that is
     a bit more accurate for what it actually does.  Modify show_skills()
     to show player his item power and total of items he has equipped.
server/skills.c: Add second paramater to long_desc, remove references to
server/spell_effect.c: Add second paramater to long_desc, remove references to
     count_left. Update range_scroll to range_golem
server/spell_util.c: remove references to count_left.  Update messages
     if player trying to cast where he can't with new range names.
socket/info.c: Update range information and how we display what it is -
     we will use the object name of the range if available.  Remove
     reference last_known_spell, last_shoot, last_spell, last_value
     player structure fields.
socket/init.c: Remove ext_title information.
socket/request.c: Add element for life_stealing in the resistance array.
     Remove references to idle, count_left in player structure.  remove
     ext2 title information.
MSW 2002-07-14
-- End body commit notes --

common/anim.c, common/button.c, common/friend.c, common/glue.c,
     common/init.c,common/logger.c, common/los.c, common/porting.c,
     common/time.c, common/utils.c, crossedit/png.c, crossedit/xutil.c,
     include/attack.h, include/config.h, include/map.h, include/material.h,
     include/newclient.h, include/skills.h, include/treasure.h,
     random_maps/decor.c, random_maps/door.c, random_maps/floor.c,
     random_maps/monster.c, random_maps/special.c, random_maps/standalone.c,
     random_maps/style.c, random_maps/wall.c, server/alchemy.c,
     server/c_chat.c, server/c_party.c, server/gods.c, server/hiscore.c,
     server/init.c, server/pets.c, server/resurrection.c, server/rune.c,
     server/time.c, socket/metaserver.c: Update banner copyright
     with proper contact information.
MSW 2002-07-14

server/disease.c: Fix propogation of diseases with negative damage (these
    do a percent of the creatures damage).  The new disease was getting
    a damage rating of 1 in all cases because we were passing a negative
    value to random_roll for the top end of the range.
MSW 2002-07-08

common/arch.c: Add 'unlocked' match for item_matched_string.
lib/help/drop, lib/help/dropall: Help files for these commands.
lib/Makefile.in: Update to include help commands above.
server/spell_effect.c: Fix formatting of summon_pet() function.  Modified so
    that it no longers sucks player spellpoints when casting it via scroll -
    scrolls should not cast the player spellpoints.  No idea why that code was
    there - in fact, casting off a scroll used more sp than casting from
    memory.  Modify cast_cause_disease() function so that if the passed
    direction is 0, we refer to the facing and cast in that direction - this
    means spells of cause disease now work.  Also perform some minor formatting
    changes in the function.
TODO: Add not about inscription.
MSW 2002-07-05

common/arch.c:  Fix bug in item_matched_string which was matching all
   values (inverse in fact) when passed with count > 1 in matching
   string - missing ! operator.
README: Update - remove note about windows client, since it is currently
   unsupported and could stop working in some future release.
MSW 2002-07-05

common/image.c: Fix bug of not fulling clearing the cache entry
    data after allocation.  This resulted in various random crashes
    when using cached image mode.
x11/x11.c: Add note about -facset.
CHANGES, Makefile.in, configure, configure.in: Update for 1.4 release
MSW 2002-09-14

common/item.c: Update comment about possible sorting improvements.
gtk/gx11.c: Add missing foodbeep functionality to GTK client.
MSW 2002-08-13

gtk/config.c: Fix crash when trying to apply config changes when compiled
    with SDL support but user is not using it.  Fix bug where settings
    were not being properly updated.
gtk/sound.c: initialize sound_pipe to NULL, and have init_sounds close
    the sound pipe if there is currently one open - fixes bug when switching
    sound control many times in that multiple cfsndserv processes could get
MSW 2002-07-25

Makefile.in: if no makedepend, don't run make depend directive.
README: Add not about ALSA revisions and possible problems compiling.
MSW 2002-07-10

This commit adds graduated colored statbars to the gtk client.  What
this means is that the color of the statbar goes smoothly from red to yellow
to green depending on what percentage of your hp/sp/grace/food is compared
to your maximum.  To use this, you need to go to the config pane and hit
the 'gradually change stat bar color' button.
common/client.h:  Add CONFIG_ value for this, increase CONFIG_NUMS.
common/init.c: Add "grad_color_bars" to config_names array.
gtk/config.c: Add button to select this behaviour.  Move all the
    special config checks to beyond the for loop that checks the values
    in apply_config().   There is no need to check all the values on each
gtk/gtkproto.h: Rebuilt for inclusion of reset_stat_bars()
gtk/gx11.c: Add two styles to the Vitals (stat bar) structure so we can
    alternate between them.  Default is to initialize one for green and the
    other for red (in non graduated color mode).  This should be more efficient
    then allocating a new one each time we need to change the value.  add
    reset_stat_bars() to reset the colors of the styles to red and green -
    needed because the graduated color code will change the colors of these.
    Remove code that freed these styles.  Modify draw_stat_bar() to draw them
    in color or simple mode, in simple mode, we now just need to use the
    appropriate style and not allocated a new one.  Modify
    draw_message_window() to pass bar values greater than 1 to the
    draw_stat_bar() function - in graduated color mode, we draw such values
    with a blue tinting (more blue the more over it is).  draw_stat_bar() knows
    how to properly deal with these higher values.
MSW 2002-07-04

gtk/config.c: Fix setting of radio button set state - it was always setting
    the same (last) radio button as the active button, which did not match
    state - now it sets the proper button active - this is for the lighting
    control toggle.
gtk/map.c: Add/subtract 2 to the need_recenter_map function - in this
    way, code that checks known display position +/-1 will still be within
    map array.
gtk/sdl.c: Fix per pixel (fastest and best) lighting code - this got
    broken quite a while - it was looking to see if the coordinates for the
    map structure where within range, and not the real coordinates.  Since
    the map coordinates would almost never be within range, the effect was
    that the per pixel effects more ore less looked like the per tile
MSW 2002-07-03