Jump to Main Content

Crossfire 1.7.0 Announcement

Crossfire 1.7.0 has been released.  There are lots of more minor
changes.  List of more minor changes:
Numerous bug fixes - should be much more stable now.
DM improvements.
New objects.


Only the bigworld maps are up on sourceforge - this is the only
mapset under active development - the old smallworld maps are
still in CVS, and older versions still available for download.  As part of
this, the map archive has lost its 'big' name.


A new release of the client should be released shortly, as well as perhaps
a new doc archive.


Files released for this version:


sums (bsd)  filename
03092  2041 crossfire-1.7.0.arch.tar.bz2
40695  2157 crossfire-1.7.0.arch.tar.gz
41295 14804 crossfire-1.7.0.maps.tar.bz2
02906 20277 crossfire-1.7.0.maps.tar.gz
46784  3937 crossfire-1.7.0.tar.bz2
36212  4355 crossfire-1.7.0.tar.gz


Sums (md5)
47e4a37a1e7e4b324c56c5b4b4876e8a  crossfire-1.7.0-README
d54641f80432d5ca327bb443fda65d1f  crossfire-1.7.0.arch.tar.bz2
26759e5c69be92fc937955c4ac0794ab  crossfire-1.7.0.arch.tar.gz
f4e3081f797072b04356b32daf2c5017  crossfire-1.7.0.maps.tar.bz2
32a753db889ed816c9b59f966bd256cb  crossfire-1.7.0.maps.tar.gz
34ec2c3c66d7b4083da01c21130ce8d0  crossfire-1.7.0.tar.bz2
110a782b47eaa9a0f02abe2e8627c01a  crossfire-1.7.0.tar.gz
ef405f78d54be0bf22feeef6b4fc0d73  crossfire-client-1.7.0.tar.gz
cbf4b4480bd6fd28cf0e71a06b288127  crossfire-client-images-1.7.0.tar.gz


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


crossfire-1.7.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. Various fixes, as well as new archetypes.


crossfire-1.7.0.maps.tar.gz contains the map distribution - this is the
bigworld map.  New maps have been added, as well as verious fixes.


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

Primary:
     ftp://ftp.sourceforge.net/pub/sourceforge/crossfire

Secondary:
     ftp://ftp.real-time.com/pub/games/crossfire

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

Mark Wedel
mwedel at sonic.net
January 24, 2005

Complete changelog:

server:

configure, configure.ac, include/autoconf.h.in:  Update for
    version 1.7.0.  Add check for libz - needed by libpng (at least on my
    system), which is needed for the editor.
MSW 2005-01-23

common/object.c: Change CAN_MERGE() from an inline function, since
    it calls itself and inline functions are not supposed to do that.
    Update type check in insert_ob_in_map() to check against defined
    type (EXIT) instead of hardcoded integer value (66).
crossedit/xutil.c:  Update to just include Defines.h, which then includes
    all the other necessary files, including global.h.
include/global.h: Add #ifdef checks for the UINT*_MAX types, as some
    systems already define these values, which results in a redefinition
    error.  Also fix up // style comment.
include/shstr.h: Include proper cast in TOPBIT definition.
server/main.c: Don't display 'xyz left the game' messages if the player
    is only at the get name or get password prompt.  Prevents possible
    spoofing of that message.
server/player.c: Clean up formatting of check_pick() function.  If player
    is using newpickup to pick up booze, also pick up poison unless
    they know it is cursed.
socket/request.c: AskSmooth() - change buffer type to uint8 so that
    it matches what the SockList structure wants.
utils/scores.pl.in: Use skill_praying to find players god, and not the
    deprecated experience_wis object.
MSW 2005-01-23

aclocal.m4, configure: Add check for python 2.4.
common/re-cmp.c: Fix improper comparison *(str+1) instead of str+1
server/login.c: don't allow null names.
server/main.c: Disable logging of removed objects - filling up log
    files on archmage of all the errors.
server/player.c: Fix improper initialization of attacktype in
    for loop.  Give players max grace, sp when they die - also, if they
    are near starvation, give them a bunch of food.
server/spell_effect.c: Put cap on duration of godly retribution - it
    can otherwise last so long that if a player is killed by it at
    their savebed location, spell could still go on after players
    temporary immunity ends.  Retribution as increases in damage,
    so no need to really increase damage and duration to really high
    amounts.
server/spell_util.c: In fire_arch_from_position(), and check that
    player isn't casting spell on top of wall - fixes for many
    spells, including ball lightning.
server/time.c: Change comparsion on return of get_map_flags() from
    == P_OUT_OF_MAP to & P_OUT_OF_MAP - keeps syntax consistent.
MSW 2005-01-11

plugin/plugin_python.c, plugin_animator/plugin_animator.c,
plugin_animator/plugin_animator.c: Use script return value set by
    CFPython.SetReturnValue(): access to stack was off by one. Do not return a
    pointer to a local variable on the stack.
plugin/plugin_python.c, plugin_animator/plugin_animator.c: Handle all defined
    events.
Andreas Kirschbaum 2005-01-10

server/spell_attack.c: apply patch #1096921 courtesy Salathar.
    Charmed monsters now lose the 'generator' flag, to prevent
    things like mice outbreak in bigworld maps.
Ryo 2005-01-07

plugin/plugin_pyhton.c, plugin/include/plugin_python.h: Remove obsolete
    functions: SetGender, SetRank, SetAlignment, SetGuildForce, GetGuildForce,
    CreatePlayerForce, CreatePlayerInfo, GetPlayerInfo, GetNextPlayerInfo,
    SetPreviousObject, SetNextObject.
plugin/plugin_python.c, plugin/include/plugin_python.h: Add missing attack type
    wrapper functions, function CFPython.SetDamned(), wrapper functions for
    missing cost flags, and wrapper functions for event types.
plugin/plugin_python.c: Add an optional parameter to CFPython.SetName() to
    specify name_pl as well. Always set name_pl.
plugin/plugin_python.c: Fix a buffer overflow in CFPython.RegisterCommand():
    allocated memory was not sufficient to hold the trailing '\0'.
plugin/plugin_python.c: Use #define constants.
plugin/include/plugin_python.h, plugin/plugin_python.c,
plugin_animator/plugin_animator.c, server/plugins.c: General cleanup - merge
    duplicate code, remove debugging code, rename variables, rename C function
    names to match the Python function name, use hook functions where
    appropriate.
include/sproto.h, plugin/plugin_python.c, server/plugins.c, server/shop.c:
    Use uint64 type for variables holding money. Use Python long integers to
    pass these variables to/from the Python plugin.
Andreas Kirschbaum 2005-01-07

plugin/plugin_python.c: Check values passed in from the Python code; generate
    proper Python exceptions for invalid values.
plugin/plugin_python.c, plugin_animator/plugin_animator.c: Make sure all
    fields on the stack are initialized. Prevent stack overflow: check was one
    off, causing a buffer overflow. Decrement stack pointer in error case.
Andreas Kirschbaum 2005-01-06.

common/regexp.c: Fixed couple flaws in regexp handling.  First, there was an
    off by one error in the handling of matches (if the match was for example
    eureca, player could just say eurec, and it would treat that as a valid
    match).  Second case was that the regular expression logic would not
    try comparing the rest of the passed in string after a partial match -
    In the eureca case above, if the passed in string was 'where is eureca',
    after matching the first e (in where), it then fails to match the
    next letter and would give up.  It now tries comparing the rest of
    the passed in string with the regex (so after that failure, it
    will try to match 're is eureca'.
server/apply.c: Add missing 'return 0' to shop_mat code that is needed
    to prevent unpaid objects from teleporting out of the shop.  Also
    extend code so that non living objects can't use shop mats.
server/player.c: Insert force into the player when they die making them
    immune to any spells on the space they reappear on - this prevents
    multiple deaths if there is large spell effect going on in the
    savebed location.  Duration of force should be long enough for most
    spells to run their course, but no so long that the player can use
    it for much of an advantage (plus, killing yourself to get such
    an advantage seems odd, and the force only makes the player immune
    to the attacktypes currently on the space)
server/spell_effect.c: Fix spell casting walls (lighting wall,
    firewall, etc) in that the spell object they cast was not being
    inserted, resulting in the walls not doing anything.
MSW 2004-12-28

Applied patch (bug misc/zoo2) by Lalo
server/time.c: creators can now create multi part objects.
Applied patch 1086102 by Salathar:
server/attack.c:  If player kills another player, add (pk) to the death
    message.
Applied patch 1086103 by Salathar:
server/move.c: If player pushes another player, send message to both players
   that pushed happened.  Previously, when pushing another player, the pusher
   wouldn't get any notice.
MSW 2004-12-28

Applied patch 1001079 - make alchemy books say what skill & equipment
   is needed - by Kevin Rudat.
common/readable.c: Update code that generates book title, contents
    to denote what skill and equipment is needed.
random_maps/{random_map.c, reader.l, reader.c}, server/main.c:
    Remove generate_treasure_now as an option
    for random maps - none are using delayed treasure, and IMO, if someone
    did, it would horribly break things, so it should never be used - given
    that, no reason to leave the code there.
server/main.c: Add additional debugging for process events on removed
    objects - trying to track down occasional disease crash.
server/time.c: Fix crash in move_player_mover() - it was never map tile
    aware, but even more so, appears to have always been broken if the
    player move tried to push the player off the edge of a map.  Check
    for out of map condition, as well as make it map tile aware.
MSW 2004-12-28

Applied patches #1086095 and 1088385 courtesy Salathar:
  common/map.c: hidden DM is non blocking
  server/c_chat: can't do emotions towards hidden DMs. Player's emotions
    always displayed in split window.
  server/c_wiz.c: add an extra player leave message when DM hides
  server/main.c: don't display leave messages for hidden DM when connection timeo
ut
server/c_party.c: party password max length is 7, due to buffer size.
    (i think it was a patch from Casper?)
Ryo 2004-12-25

server/c_wiz.c: Remove item when 'free' by DM if not removed, avoiding crash.
Ryo 2004-12-22

server/c_party.c: Make party passwords of 8 characters work, disallow longer
    passwords. Based on patch #1080096 from Casper.
    Correct help message for party commands.
Andreas Kirschbaum 2004-12-10

plugin/plugin_python.c: change 'long long' so 'sint64' (typedef).
Ryo Saeba 2004-11-29

common/object.c: apply patch #1066665 courtesy Salathar for exits with
    blockview 1.
lib/formulae: apply patch #1064643 courtesy Salathar to fix broken formulae.
lib/wizhelp/speed: remove file, command changed name.
lib/wizhelp/server_speed: updated 'speed' command help.
server/c_wiz.c: apply patch #1063051 courtesy Salathar to update muzzle message.
server/commands.c: apply patch #1052224 courtesy Casper to change
    'speed' to 'server_speed' as name is ambiguous.
Ryo Saeba 2004-11-25

common/loader.l: Fix passed size in FAST_SAVE_LONG() - was one too long,
    causing truncated diffs after "dam_modifier" entry.
Andreas Kirschbaum 2004-11-15

This commit adds the functionality of patch 991916, although the patch
as submitted was used as a baseline to start from.
include/sproto.h: rebuilt
server/c_chat.c: Rename command_chat() to command_tell_all() which takes
    a few more optional parameters.  Add command_shout() and command_chat()
    that invoke command_tell_all() with the appropriate changes.
server/commands.c: Add chat to list of command table.
MSW 2004-11-08

plugin/plugin_python.c: Run the script python_init.py right after
    initializing the interpreter.
Andreas Kirschbaum 2004-10-21

server/c_party.c: actually warn party members of password change. Notify when
    someone joins party.
Ryo 2004-10-21

plugin/plugin_python.c, plugin/include/plugin_python.h, server/plugins.c:
    Fix comments, change whitespace.
Andreas Kirschbaum 2004-10-19

Fix some bugs I introduced in my last commit.
common/map.c: Add back in call to sum_weight that got removed when removing
    the object checking code.
common/treasure.c: Have fix_generated_item() blank out the randomitems
    field after it has created treasure.
server/apply.c: Only clear randomitems after create_treasure() - don't
    presume it should get blanked out for other reasons - with change
    to treasure.c above, this should be more reliable and fix starting
    skill issue, as randomitems was getting blanked out for CLASS object.
server/main.c: Change processing of players a little - found crash where
    autosave was called for a removed player (map had got swapped out) -
    don't do autosave logic if player is removed.  Move the autosave code
    to after the players action, so that can just have a single check of
    removed status.
MSW 2004-10-17

include/sproto.h, server/egoitem.c: Change create_artifact() to return whether
    the artifact was created.
server/plugins.c: Change CFWCreateArtifact()/HOOK_CREATEARTIFACT to return
    whether the artifact was created.
plugin/plugin_python.c: Define new function create_object() to create
    objects. Use this function to fix CFPython.CreateObjectInside() and
    CFPython.CreateObject(): creation of artifacts does work now.
plugin/plugin_python.c: Fix CFPython.GetNextPlayerInfo() to work with long
    force names. Remove duplicate variable initialization.
server/plugins.c: Remove the use of malloc() in initOnePlugin().
Andreas Kirschbaum 2004-10-18

plugin/plugin_python.c, plugin_animator/animator_box.c,
plugin_animator/plugin_animator.c, plugin_logger/arena.c,
plugin_logger/plugin_logger.c: Use HOOK_FREEMEMORY to free memory allocated
    by HOOK-functions. Fix memory leaks.
plugin/plugin_python.c, server/plugin.c, plugin_animator/animator_box.c: Fix
    some more mismatches between plugin interface and implementation.
    CFPython.Get/SetSkillExperience() use 64-bit exp values now.
    CFPython.CastAbility() works again.
Andreas Kirschbaum 2004-10-16

plugin/plugin_python.c, server/plugin.c: Fix type mismatches between plugin
    interface and implementation.
plugin/plugin_python.c, server/plugin.c: Add/remove "static" to/from some
    variables. Fixes a memory leak in CFPython.SaveObject().
plugin/plugin_python.c: Fix reference counting for Python objects.
Andreas Kirschbaum 2004-10-15

common/living.c: Fix exp functions to use the player objects expmul
    value when determining level gains, and not the skills.  Also,
    fix bug where players last hp/sp/grace gain I think was being
    re-rolled when player gained level in skill.
common/loader.l, loader.c: Add better recording of non existant objects
   (no archetype for them) in maps.  Also, handle such objects in
    players inventories properly (which is to just discard them)
common/map.c: Add better logging about discarded archetypes.  Since the
    loader now deals with objects without archs in inventories, that
    code doesn't need to be in the server.
common/object.c: copy_object() was not properly nulling out the
    next field in the event object, pointer to event list was also
    incorrect, causing events to not be copied properly.
doc/spoiler-html/spoiler.html: Rebuilt.
server/apply.c: Apply patch by MT that fixes problem of entire inventory
    not being copied properly.  Fix problem that objects in creatures
    were not having any sub treasure created (eg, put a pyro_book in
    a monster on the map, and the pyro_book wouldn't have a spell in
    it) - now we make sure we process inventory objects as well as map
    objects, creating treasure as needed.
server/monster.c: Reverse order of cast_spell() and drain_rod() in
    monster_use_range() - drain_rod() should go first, because
    case_spell() can in rare cases destroy the rod.
MSW 2004-10-14

server/c_misc.c: Add natural skin resistances to 'statistics' output for
   dragon players.
Ryo 2004-10-10

common/readable.c: Apply patch by Kevin Rudat to add some alchemy book names.
common/readable.c: Apply patch by Kevin Rudat to fix buffer overrun while
   generating book titles.
Andreas Kirschbaum 2004-10-09

include/sproto.h: Add function prototype.
server/c_wiz.c: Add 'command_stack_clear' to clear DM item stack.
server/commands.c: Link function to function array.
Ryo 2004-09-26

server/player.c: Allow to 'reply' to players that logged out but did not yet
    drop the connection. Now reply works like other communication commands.
common/utils.c: Fix random_roll() and die_roll() to not return out of range
   values.
include/define.h: Add parentheses around arguments of FABS macro.
Andreas Kirschbaum 2004-09-19

server/rune.c: Prevent creation of level 0 runes. Re-enable runes to cast
    multiple spells.
Andreas Kirschbaum 2004-09-14

include/config.h: fix Win32 log path so there actually is a log.
plugin/plugin_python.c: uint doesn't exist under Win32, use uint32 instead.

Patches from tracker, courtesy Kurtat:
patch 1022942: Random documentation updates
  doc/SurvivalGuide
  doc/Developers/programming_guide
  doc/Developers/protocol
  lib/settings
  lib/help/cast
patch 1022973: Words for numbers in spellbook description
  server/c_object
Ryo 2004-09-12

server/attack.c: Pass in skill (string) to change_exp instead of skop->skill -
    skop can be null, resulting in a crash here.  In addition, other calls
    to change_exp in this function use the skill string, so it is good to
    be consistent.
MSW 2004-09-09

server/c_wiz.c: Don't forget to skip blanks after reading item number or stack
    position. Works better for commands like patch :)
Ryo 2004-09-06

common/object.c: Fix insert_ob_in_map so right coordinates and map
    value are used on GET_MAP_OB call - was using values before changes
    for tiling were applied.
MSW 2004-09-02

server/player.c: allow to 'talk' to players with ambiguous names: use a
    perfect match even if other partial matches exist.
Andreas Kirschbaum 2004-08-30

include/define.h
server/shop.c
    add new flags F_IDENTIFIED and F_NOT_CURSED to query_cost() to pretend
    the item to be identified/not cursed or damned.
server/alchemy.c
    fix possible abuse of shadow alchemy: do not allow the generated items
    to be more valuable than the ingredients when using alternate recipes.
Andreas Kirschbaum 2004-08-24

common/map.c: Add extra check to make sure variable is set before calling
    strcmp - this can happen if the map file that is being loaded is
    0 bytes - without this, the server would crash.
MSW 2004-08-23

server/disease.c: fix crash when casting diseases on tiled maps.
server/move.c: fix problem with multi-tile monsters and pass thru walls.
server/spell_effect.c: fix magic walls sometimes appearing in wrong place.
Andreas Kirschbaum 2004-08-20

common/loader.l, loader.c: in check_loaded_object() - don't give spell
    objects inventory if we are in the arch_init phase.  When loading objects
    in common loader routine, if object doesn't have arch, set the object
    name to the arch name so that it is more meaningful than 'singularity'.
common/map.c: If object has inventory, check to make sure the inventory
    objects have an archetype set - if not, remove and free the object -
    objects without archetypes causes crashes.
MSW 2004-08-17

server/apply.c: fix_auto_apply() - add some debugging statements, as I've
    seen crashes caused by monsters with scrolls with no spells - need to
    figure out how those are showing up.
server/c_wiz.c: command_kick() - fix occasional crashes when player isn't
   on any map when kicked.  command_create() largely rewritten so it doesn't
   crash the server on any malformed values passed in, add some more features
   so it should be easier to create objects.
MSW 2004-08-16

server/apply.c: better to not create a treasure for spellbooks that already have
     something in inventory. Else you get 2 spells in the book, which then
     mutates when loading (first spell is the book's spell, and order changes eve
ry
     load/save...)
Ryo 2004-08-16

Those changes mostly add an item stack for DMs. It makes it easier to dump & pat
ch &
manipulate items without having to copy numbers all the time.
Basically, you can use '$x', meaning item at position x on stack. Or even
omit argument, defaulting to stack top.
When using an object number, it gets stacked automatically (up to 50 items).
Also add a 'diff' command, letting the DM see the result of 'get_ob_diff' on ite
ms,
to spot differences easily.

common/player.c: free item stack when freeing player structure.
include/player.h: add item stack to player structure.
include/sproto.h: new functions for stack.
include/win32.h: missed commit for 1.6.1 version.
server/c_misc.c: push item dumped with 'deumpbelow' on dm stack.
server/c_wiz.c: add stack functions. Use'em on patch, create, remove, free, and
such.
     Add 'diff' command.
server/commands.c: add new stack & diff commands.
Ryo 2004-08-15

server/spell_attack.c: fix mood_change when spell has no attacktype.
     In this case, do a specific saving throw, to ensure a level 1 player
     can't charm a level 125 monster.
Ryo 2004-08-14

random_maps/exit.c
random_maps/random_map.c
random_maps/random_map.h
random_maps/reader.l
random_maps/rproto.h
random_maps/special.c
random_maps/wall.c
         added fix for random maps with single arch walls,
         added level indicator on random map signs
         added new parameter 'exit_on_final_map'-  see documentation
TM 2004-08-07

include/plugin.h
plugin/plugin_python.c
server/c_wiz.c
server/plugins.c
         add event hooks for Kick and Muzzle(toggle_shout) commands.
     fix CFSetQuantity by changing the int to uint and remove 100000 item limit.
     pythonplug now looks for event scripts in maps/python/events.
TM 2004-08-02

server/skills.c: xp for writing is now multiplied by skill level, to
    make it possible to level.
Ryo 2004-07-17

common/loader.c: add #ifndef for non-existant Win32 header
include/win32.h: #define vsnprintf _vsnprintf to fix linking issue
Ryo 2004-07-03

server/skill_util.c: Fix skills command so that it properly displays
    percentage of permanent exp.
server/time.c: Modify move_arrow() so that it removes thrown objects
    with no inventory.
MSW 2004-06-22

socket/info.c: Replace sprintf() calls with snprintf() - got metalforge
    crash with apparent buffer overun - going to snprintf should prevent
    the problem in the future.
MSW 2004-06-21

server/c_wiz.c: for command_create() - check to see if 'of' parameter
    is a spell archetype name, and do the right thing if it is.  This
    allows things like 'create rod_heavy of spell_large_lightning'.
    Note that the command_create is still a seriously broken function
    in many regards.
server/rune.c: Fix write_rune() when trying to find the spell in encase
    in the rune - assignment was incorrect, so it always took the last
    matching spell in the players inventory, not the best matching spell.
server/spell_util.c: Change the call to prayer_failure() so that its
    potency is based on how badly short the player is short of grace.  Eg,
    if only 1 point short, potency of 1.  This changes from before where
    the potency was always the difference in mana.
MSW 2004-06-17

server/attack.c: Fix hit_with_arrow() so that it uses the proper map
    when inserting the arrow.
server/c_wiz.c: Add note about brokeness of command_create()
server/spell_effect.c: execute_word_of_recall() - don't attempt recall
    if player isn't on any map.
MSW 2004-06-15

common/object.c
include/define.h
include/player.h
include/sproto.h
server/attack.c
server/c_object.c
server/player.c
server/shop.c
socket/item.c
socket/loop.c
socket/request.c: Remove explicit calls to
     esrv_update_item(UPD_WEIGHT, pl, pl) for player objects. Instead
     send the new weight whenever it changes.
Andreas Kirschbaum 2004-06-13

server/spell_attack.c: cast_destruction() - have it change the skill
    for the caster so that exp is properly awarded.
common/object.c: insert_map_in_ob() - remove CAN_MERGE checks after the
     map translation - otherwise, we can have bogus coordinates
     that are used for GET_MAP_OB.
random_maps/style.c: pick_random_object() - have it return null object
     (and probably crash) instead of getting into an infinite loop.
server/c_wiz.c: command_kick() - check FLAG_FREED of player.  Remove all
     the broken skill/exp object granting code in command_possess() - this
     is probably still a broken function.
common/item.c: describe_monster() - if the creature/player is stealthy,
     mention it when the object is described.
common/loader.l, loader.c: Fix passed in size to get_ob_diff() - was one
     to long, causing string corruption.
server/spell_attack.c: mood_change() - fix get_map_ob call - wasn't using
     correct coordinate variables, resulting in crash.
MSW 2004-06-10

server/c_party.c: gsay improvements, courtesy Katia.
Ryo 2004-06-09

server/commands.c: Disable 'possess', that crashes server.
server/monster.c: Make monsters use wands/horns/... again. Also make'em
    ignore DMs all the time (even when not invisible).
server/skill_util.c: Fix the change_skill when called for monsters.
Ryo 2004-06-06

server/c_misc.c: Add sum_weight() call to fix_me command so that players
   weight is properly recalculated.
server/skills.c: Fix up attempt_steal() so that it doesn't improperly
   remove object from target when person doing the stealing can't pick
   it up.
server/spell_attack.c: Set maxhp properly, so multipled fireballs, etc
   can be going off at the same time.
server/spell_effect.c: Fix up cast_create_missile() so more esoteric
   missiles can be created.
MSW 2004-05-31

include/sproto.h: new 'dmhide' command.
server/commands.c: new 'dmhide' command.
server/c_wiz.c: added 'dmhide' command. Player becomes DM, and 'hide's immediate
ly. Others
    only see him/her leave the game, they don't know s/he's DM.
Ryo 2004-05-24

include/book.h: Increase the size of BOOK_BUF, so inscribed books can hold
   more informatin.
lib/Makefile.am, lib/Makefile.in: Add the 'rename' to the list of help
    files.
lib/archetypes: update the glyph/rune spells to have proper face.
lib/bmaps, lib/crossfire.* - add glyph.111 image.
server/gods.c: Modify tailor_god_spell() to look harder to find a god -
   necessary for glyph spells.
server/spell_attack.c: Give players 50% of exp for monsters they charm.
MSW 2004-05-19

common/object.c: Correct get_search_arr() to return a proper permutation.
Andreas Kirschbaum 2004-05-18

server/main.c: Have process_events display information from dumped object.
    also, more refinement on checking of object status.
MSW 2004-05-16

server/build_map.c: change 'player' variable to 'pl', since a player
     structure already exists. Also fix disappearing pedestals on non-unique
     maps (put'em over floor, they are visible but hey, can't have everything :p)
server/c_wiz.c: fix learn_spell.
Ryo 2004-05-16

server/main.c: freeing removed objects appeared to have more of a
   consequence than expected - only remove the object if it was on a map
   (op->map).  It turns out that the artifact code uses objects that
   are removed to store what the new object is.
server/spell_effect.c: Fix cast_create_food() to call
     find_archetype_by_object_name() instead of find_archetype().  In this

     way, players can use invoke without having to know the archetype name.
server/c_wiz.c: Modify command_banish() to record dm name, player name,
    and date of command.
server/acinclude.m4: Patch by acinclude.m4 to add python 2.3 support.
   Rebuilt files (Makefile.in, aclocal.m4, configure, configure.in).  add
   config.guess, config.sub since automake now includes them in the Makefile.in
   file.
MSW 2004-05-15

Added a new item type: ground positioning system (GPS).
This lets a player know his/her location in the world.
Only works in 'world_xxx_xxx' maps.

include/define.h: add new item type, 'GPS' (162).
include/sproto.h: add new function, 'apply_positioning_system'.
server/apply.c: handle new item type.
Ryo 2004-05-15

server/spell_util.c: SP_level_spellpoint_cost() - never have a spell
   cost 0 spellpoints due to attunement or other bonuses - spell always
   cost at least 1 sp/grace.
server/main.c: Fix process_events() so it doesn't purge removed players
   from the list - players get in the removed state at play again
   prompt.
server/apply.c: Fix fix_auto_apply() so we don't generate additional
   spells for spellcasting objects that already have them (regression
   from fix from 5/11 below)
MSW 2004-05-13

server/pets.c: Fix summon golem, summon pet monsters so that the summoned
    monsters are not worth any exp.  Fixes bugs were players could
    summon monsters and then kill them.
server/skills.c: Fix do_skill_detect_curse() and do_skill_detect_magic()
    so that they don't process objects the player is incapable of picking
    up (eg, floors).  Fixes experience exploit.
server/apply.c: modify fix_auto_apply() so that it properly generates
    items for creatures that start with objects in their inventory.
MSW 2004-05-11

server/spell_util.c: Fix cast_spell() so that failed spells (due to
   encumberance or other penalties) still cost some random number of grace/
   mana points.
MSW 2004-05-10

common/treasure.c: Change the loading of the artifacts file to actually
   calloc() the object - reset_object() doesn't clear all the values,
   like active_next, active_prev, so better to just do it there.
server/main.c: Add code in process_events() that checks for removed objects -
    have seen occasional crashes caused by them.
MSW 2004-05-08

Armor enchantment now uses setting values.
common/init.c: new values to init in settings.
include/global.h: new setting values.
include/config.h: new default values for settings.
lib/settings: explanation for those new values.
server/apply.c: change armor improvement code to use setting values.
server/init.c: read new settings.
Ryo 2004-05-08

common/init.c: there's a #define LOGFILE, use it instead of hardcoded value.
include/config.h: change default logfile path to previous value in init.c.
server/c_wiz.c: Fix 'nodm' displaying incorrect messages, and forgetting to
    update player count on map.
Ryo 2004-05-08

server/apply.c: Fix apply_special() to properly deal with LAMP objects - it
    wasn't dealing properly with the split off lamp compared to the one it
    was supposed to deal with - was crashing server.
MSW 2004-05-04

common/item.c: describe_monster() - print luck when describing players (fixex
    perceive self not showing luck)
server/attack.c: kill_object() - don't give player exp if he kills himself -
    compare owner against what was killed, not the hitter.
server/pets.c: summon_object() - move breaking out for last treasurelist
    after we set the last valid treasurelist - otherwise, the list entry for
    the treasurelist was never used.  Change summoned creatures so that
    the items they have are god given, and thus disappear when they
    are killed - prevents players from summoning and then looting their pets.
server/spell_attack.c: explode_bullet() - Get owner of the spell so that we
    can properly tailor the explosion portion of the spell for the god
    of the worshipper.
MSW 2004-05-03

server/shop.c: patch from Andreas Kirschbaum for Windows compilation.
server/spell_effect.c: patch from Andreas Kirschbaum for Windows compilation.
Ryo 2004-05-03

common/porting: changed open_and_uncompress to use const char* instead of
    char*, since value shouldn't be changed (and isn't).
include/libproto.h: changed prototype for open_and_uncompress
Ryo 2004-04-28