Jump to Main Content

Crossfire 1.8.0 Announcement

Crossfire 1.8.0 has been released.  There are lots of more minor
changes.  List of more major changes:
Start of quest tracking system
Better support of readable objects.
Addition of party spells.
Improved smooth sending code for client.
Map region support.

Client 1.8.0 Changes:
Many bugfixes.
Advanced readable object support in client.
Addition of pure GTKv2 client, including SDL and OpenGL drawing modes.
   Note this client should be fine for playing, but does not have all
   the features of the gtk client right now.

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.

Files released for this version:

sums (bsd)  filename
51380  2278 crossfire-1.8.0.arch.tar.bz2
45117  2399 crossfire-1.8.0.arch.tar.gz
64618 15087 crossfire-1.8.0.maps.tar.bz2
07161 20760 crossfire-1.8.0.maps.tar.gz
27290  4744 crossfire-1.8.0.tar.gz
37379   649 crossfire-client-1.8.0.tar.gz

Sums (md5)
31e5ce447102fe97627e1c2f6d5193ee  crossfire-1.8.0-README
4cd3c314c6d286d44451fae13935aab2  crossfire-1.8.0.arch.tar.bz2
cc03753ba0435950bedbbff790e7afd2  crossfire-1.8.0.arch.tar.gz
62b3b62a3a519c976593a2a8102ab177  crossfire-1.8.0.maps.tar.bz2
54170887357ca96c66eb69d8c0ecc2f7  crossfire-1.8.0.maps.tar.gz
f79cc73a3be416fd1c7a18ce76668a82  crossfire-1.8.0.tar.gz
3198bb5ad0e85ca7d8dcdd812bdf4c2f  crossfire-client-1.8.0.tar.gz

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

crossfire-client-1.8.0.tar.gz contains the client code - if you only
want to play, this is the only piece you need.

crossfire-1.8.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.8.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 (older image file is still good enough).

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
mwedel at sonic.net
August 10, 2005

Complete changelog:


Update for release 1.8.0.
include/Makefile.am:  missing quest.h file
Rest automatic rebuild
MSW 2005-08-10

Replaced "depletion" by ARCH_DEPLETION (defined in object.h). Affected files:
  server/apply.c gods.c spell_effect.c
Ryo 2005-08-10

server/player.c: Set map for arrow as returned by get_map_flags -
    otherwise when firing at edge of tiled maps, arrows could end up
    in wrong place.
MSW 2005-08-09

include/config.h: Make DEBUG default - appears last commit changed this
    as unrelated to actual changes in place.
include/sproto.h: Rebuild
server/player.c: fire_bow() - add checks for wall/out of map.  fire_bow()
    wasn't using right coordinates on check, which caused problems in
    threewide mode at edge of maps.
MSW 2005-08-07

plugin_logger/plugin_logger.c: make it compile under Win32.
Ryo 2005-07-30

server/player.c: fix crash when news or rules > HUGE_BUF.
Ryo 2005-07-29

server/{monster.c, pets.c}: Fix bugs in arena petmode and clean up most of
    it's logic into it's own function.
lib/help/petmode: Document the arena petmode in the "help petmode" output.
Alex Schultz 2005-07-28

server/skills.c: use correct sp/grace for inscription.
Ryo 2005-07-27

The following changes prevent spells in player's inventories from being
damaged by casting spells, using skills, or praying.
server/attack.c: Limit cancellation and acid attacks to visible objects only.
server/gods.c: Limit god granted remove curse/damnation to visible objects
server/skills.c: Limit the skills sense curse and sense magic to visible
    objects only.
server/spell_effect.c: Limit the spells detect curse and detect magic to
    visible objects only.
Andreas Kirschbaum 2005-07-26

server/skill_util.c: don't try to send a message if monster killed/removed.
Ryo 2005-07-23

socket/init.c: settings values to 0 before using'em works better, usually ^_-
Ryo 2005-07-22

random_maps/random_map.h: Add prototype for set_random_map_variable().
server/main.c: Remove prototype for set_random_map_variable().
lib/Makefile.am, lib/Makefile.in, lib/help/whereabouts: Add help for
    whereabouts command.
server/apply.c: Properly terminate destination string with '\0' in
    apply_item_transformer(). Avoid clearing the string buffer multiple times.
Andreas Kirschbaum 2005-07-20

doc/Developers/item_transformation: fixed documentation.
server/apply.c: remove incorrect comment. Item transformer uses food for max use
Replaced some hardcoded values with define. Modified files:
  server/apply.c attack.c build_map.c spell_attack.c spell_effect.c time.c
Ryo 2005-07-19

include/win32.h: add PLUGIN_SUFFIX definition.
Ryo 2005-07-18

server/plugins.c: Merge mostly identical code from #ifdef WIN32 and #else
    blocks. Use opendir/readdir/closedir instead scandir for Unix because WIN32
    probably does not have these functions. Prevent loading one plugin multiple
include/sproto.h: Update prototypes for plugin functions.
server/c_wiz.c: Add success/failure messages to plugin and plugout commands.
    Do not crash due to missing parameter.
Andreas Kirschbaum 2005-07-18

server/pets: Fix off-by-one error in follow_owner().
server/c_wiz: Allow the summon and teleport commands to place the summoned
    player/DM north-west of DM/player.
Andreas Kirschbaum 2005-07-17

Use const char* instead of char* when possible. Remove unused variables in weath
er code.
Affected files:
  common/map.c region.c utils.c
  include/funcpoint.h libproto.h sproto.h
Ryo 2005-07-17

server/apply.c: Make converters that increase value non-functional.
Andreas Kirschbaum 2005-07-17

server/{monster.c, pets.c}: Fixed bug in previous commit of arena petmode
    that cause pets that should be friendly to eachother to fight.
Alex Schultz 2005-07-16

common/{map.c, readable.c, treasure.c},
crossedit/{Attr.c, png.c, Cnv/{CnvFiles.c, CnvPath.c}},
server/{alchemy.c, c_misc.c, c_wiz.c, init.c, main.c, monster.c, pets.c,
player.c, resurrection.c, rune.c, skills.c, spell_effect.c, time.c,
    Fix spelling errors in string constants.
server/c_misc.c: Remove superfluous trailing '\0' from strings.
Andreas Kirschbaum 2005-07-15

server/{c_misc.c, monster.c, pets.c}, include/player.h: Add new "arena"
    petmode which allows pets to attack players and other pets while in the
Alex Schultz 2005-07-16

*Makefile.in, aclocal.m4, configure: Rebuilt generated files.
lib/Makefile.am: Update list of help files to install.
server/skills.c: Do not reveal a hidden DM in attempt_jump().
server/skills.c: Do not reveal a hidden DM in steal().
server/player.c: Ignore hidden DM in stand_near_hostile(). Formerly it always
    returned false if a hidden DM was present.
Andreas Kirschbaum 2005-07-15

server/c_object.c: Improved pickup. You can now do pickup +bow, or pickup -shiel
  Much simpler then fiddling with sums of 2^x values.
Ryo 2005-07-15

server/c_party.c: Make party passwords with a length of 8 characters work
lib/artifacts: Fix type of lockpicks of quality/high quality.
Andreas Kirschbaum 2005-07-15

Those commits remove the dependency on the plugin towards the library. All funct
  used from the plugin are hooked, instead of being called directly. This fixes b
  under Windows, and simplifies compilation. Also, many new callbacks were define
Affected files:
  include/plugin.h plugproto.h sproto.h
Note that at some point some functions could be moved out of plugin_python and p
ut in
  plugin_general to be shared between different plugins.
Ryo 2005-07-15

Those commits remove the whole "glue/callback" logic. Instead functions are just
defined as external, and should be implemented (even as dummy) by all programs.
Affected files:
  common/arch.c button.c glue.c init.c item.c living.c logger.c los.c map.c objec
   time.c treasure.c
  crossedit/stubs.c: new file with dummy functions.
  crossedit/Makefile.[in|am]: add this new file.
  include/funcpoint.h libproto.h sproto.h
  random_maps/standalone.c: add dummy functions for those externals.
  server/init.c: remove obsolete setup_library()

Added a wrapper function for check_trigger from plugins.
  include/plugin.h: new function
  server/plugins.c: wrapper for check_trigger.

Ryo 2005-07-15

plugin/plugin_python.c: (add|free)_string should *not* be called directly under
  Therefore let's use the hooks. Also, when removing an object, better check it's
  not the
  current object (CFPython.RemoveObject(CFPython.WhoAmI()) anyone?).
Ryo 2005-07-15

server/spell_util.c: use on_same_map instead of checking directly map pointers.
Ryo 2005-07-15

Those changes implement a quest tracking system. Check the doc/quests document f
or more info.
common/quest.c: new file with a few quests-related functions.
doc/Developers/mapguide: point to quests file for instructions on quests.
doc/Developers/quests: new file with instructions on how to use quests,
  and implementation details.
doc/Developers/README: added quests file.
include/libproto.h: new functions in quest.c.
include/quest.h: new file with a few defines for quests.
include/sproto.h: new function command_quest, update talk_to_wall definition.
lib/help/quests: new help file for quests command.
server/c_misc: new command_quests function.
server/commands.c: link command_quests to "quests".
server/monster.c: update talk_to_wall and talk_to_npc to check for quests.
server/time.c: modify marker behaviour to handle quests.
Ryo 2005-07-14

common/{button.c, treasure.c, utils.c}, server/{c_wiz.c, login.c, shop.c,
skill_util.c, spell_effect.c}, socket/{image.c, item.c}: Fix printf like
    format specifiers. At least one of them fixes a means to crash the server.
Andreas Kirschbaum 2005-07-14

Those changes introduce party spells. Casted spell should be defined through 'ot
  field. Note that this needs through testing to make sure it works as intended.
include/spells.h: new spell type, 'party spell'.
server/spell_util.c: new spell type, party spell.
Ryo 2005-07-10

server/{login.c, player.c}: Fix buffer overflow with pl->title. Based on patch
    by Scott Kullberg.
crossedit/{Edit.c, Cnv/CnvPrompt.c}, server/{ban.c, hiscore.c, login.c,
player.c, shop.c, win32.c}: Properly terminate destination string of strncpy
    with '\0'.
server/init.c: Fix error message.
Andreas Kirschbaum 2005-07-10

configure.ac, configure, aclocal.m4, Makefile.in: Add AM_MAINTAINER_MODE
    macro to configure.ac - this should hopefully supress auto regeneration of
MSW 2005-07-08

Add a --with-python option to configure.  Also, update the python
detection script to check for 2.5 (not out yet, but might as well be prepared.)
Will try to commit files in proper order so that dependency checking is correct
and it won't try to rebuild makefiles or other files.
acinclude: Updated checks for --with-python
aclocal.m4: updated
configure.ac,configure: Updated checks for --with-python
config.sub, config.guess - update to latest versions
INSTALL: Updated build directions
MSW 2005-07-08

lib/Makefile.am, lib/Makefile.in: Remove map_check from normal distribution
    due to different license on file.
random_maps/monster.c: Reduce monster density on random maps - take into account
    size of monsters when calculating density.
utils/metaserver.pl.in: At a timeout value that limits how often clients can
    ask for metaserver info.
MSW 2005-07-08

lib/settings: Turn of fastclock as default option.
socket/loop.c: Change behaviour of metaserver/flushmaps/watchdog
    calls if fastclock is set - don't do those any faster than normal.
MSW 2005-06-22

Server can now be used as a Windows server, with command-line options
  -regsrv (register server and exit), -unregsrv (unregister server and exit)
  and -srv (should not be used directly, for the service control manager call).
server/init.c: add command-line options.
server/main.c: loop is no more infinite under Windows. Save and clean after it,
server/win32.c: add service routines.
Ryo 2005-06-22

common/living.c: Print correct message when (un-)wearing items with negative
Andreas Kirschbaum 2005-06-14

include/living.h: Patch from Kari Pahula to remove obsolete variable
Andreas Kirschbaum 2005-06-01

server/skill_util.c: Print correct permanent experience ratio for experience
    values >2 billion.
Andreas Kirschbaum 2005-05-22

server/apply.c: Do not unlock LAMP items when turning them on or off.
server/apply.c: Fix CONVERTER items with slaying "money" to trigger for MONEY
    items only.
server/player.c: Generate proper plural name for player's gravestones.
Andreas Kirschbaum 2005-05-21

Ensure that object->msg always has a trailing \n character. This is necessary
to prevent corrupted map files.
plugin/plugin_python.c: Add trailing \n to message set by
    CFPython.SetMessage() if not already present.
server/plugins.c: Add trailing \n to message set by HOOK_TELEPORTOBJECT if not
    already present.
server/rune.c: Add trailing \n to rune messages.
Andreas Kirschbaum 2005-05-21

Apply qal21's patch [ #1205421 ]: Implement new Python functions:
GetArchType, GetFacing, GetLevel.
plugin/plugin_python.c, plugin/include/plugin_python.h: Add new functions.
doc/Developers/python: Describe new functions.
Andreas Kirschbaum 2005-05-20

server/monster.c: Fix monsters to cast spells from spellbooks.
Andreas Kirschbaum 2005-05-15

Fixed compilation issue.
server/apply.c: can't declare a variable after some function call.
socket/info.c: removed unused variable.
Ryo 2005/05/07

Corrected code to compile under -ansi gcc flag:
  * correction of some non posix compatible calls around scandir
  * changing configure to detect the absence of 'alphasort' prototype
  * converted some '//' comment to /**/ one
  * reran automake1.8/autoconf2.50/autheader2.50
Note even it it compiles with -ansi -pedantic, it still need cleanup to
get 64 bits experience code working!
Tchize 2005/05/07

Applied Casper1's patch [ #1193516 ] for Hurd support.
  * socket/lowlevel.c: #ifdef some code part that won't work.
Change some char* to const char*, when values shouldn't be changed. Changed file
  * include/libproto.h
  * common/arch.c
  * common/living.c
Ryo 2005-05-03

Change some char* to const char*, when values shouldn't be changed. Changed file
  * include/sproto.h
  * socket/info.c
  * socket/item.c
Ryo 2005-04-30

Change some char* to const char*, when values shouldn't be changed. Changed file
  * include/sproto.h
  * server/apply.c
  * server/ban.c
  * server/spell_util.c
Ryo 2005-04-27

server/skills.c: Change it so that jeweler skill is used to identify
    amulets, not alchemy skill.
MSW 2005-04-27

Apply patch 1190107 so server compiles on HURD.
common/porting.c: Add define for MAXPATHLEN
socket/init.c: Add check for __GNU__ for setsockopt()
MSW 2005-04-27

Change to have objects generated by creator properly fixed up (material,
for potions, spell object, etc).
common/treasure.c: add GT_MINIMAL flag to change_treasure() to do minimal
    processing for objects created.
include/treasure.h: Add GT_MINIMAL define.
server/apply.c:  Add call to fix_generated_item() in convert_item()
MSW 2005-04-27

Various minor bugfixes.
common/los.c: Patch to fix negative lighting.  Use isqrt instead of sqrt,
   so we only want integer values anyways.
include/libproto.h, include/sproto.h: Rebuilt as there were some improperly
    matching prototypes.
random_maps/rogue_layout.c: Replace sqrt with isqrt calls.
server/c_misc.c: Make name_cmp() a static declaration so it won't be put
    in the sproto.h file.
server/init.c: Remove /* within comment string.
server/monster.c: Change sqrt to isqrt
MSW 2005-04-16

Those changes are just changing char* to const char* in some function
Affected files:
  include/libproto.h: match headers.
Ryo 2005-04-16

Those changes add the ability to transform items through 'item_transformer'
  (163)-type items
  See doc/Developers/item_transformation for more info.
common/item.c: don't display 'slaying' field for food.
include/define.h: add new 'ITEM_TRANSFORMER' type.
include/sproto.h: add new function 'apply_item_transformer'.
server/apply.c: new 'apply_item_transformer' function to handle that item type.
Ryo 2005-04-15

common/map.c: map pathnames are now const char*, no reason for something else.
common/region.c: remove unused variable.
include/libproto.h: update functions definitions.
include/sproto.h: weathermap_to_worldmap_corner now returns a const char*.
include/win32.h: define missing NAME_MAX as MAX_BUF.
server/c_misc.c: remove unused variable. Use const char* when possible.
server/weather.c: weathermap_to_worldmap_corner now uses const char* as
     return type.
Ryo 2005-04-14

Random map code improvements - add support for subdirectories in the
style maps for random maps.  Add difficulty_increase parameter for random
maps to control how fast they get harder.
doc/Developers/random-maps: Add notes about difficulty_increase parameter.
random_maps/Makefile.am: Update proto directive to use cproto, not cextract.
random_maps/random_map.c: Update to use difficulty_increase when figuring
    difficulty of maps.  Add code to save it in list of parameters.
random_maps/random_map.h: Add difficulty_increase field to structure.
random_maps/reader.l, reader.c: Add code to find difficulty_increase parameter.
random_maps/rproto.h: rebuilt.
random_maps/special.c: Pass in difficulty increase to
random_maps/style.c: Remove old scandir - replaced by our own load_dir() -
    necessary because we need to check type of files, which scandir doesn't
    easily let us do.  Since it is now our own routine, just return
    array of file names instead of dirent structures.
MSW 2005-04-13

utils/Makefile.am: Add cfmeta-rrd to list of files to add to distributions
utils/cfmeta-rrd: Example of sample script that takes data and stores it into
    rrd file and draws graphs (new file).
utils/metaserver.pl.in: Add recording of useful stats to external file so they
    can be processed by other external scripts.
MSW 2005-04-13

server/shop.c: Pass in player object to pay_from_container() - code was
   trying to deref pouch->contr which was null.  Only occurs when player
   has 2 different money objects of the same type, but 2 crashes observed
   on metalforge.
MSW 2005-04-13

socket/image.c: Change esrv_send_face to check for <=0 instead of <0 on face
socket/request.c: Change if statement that acted improperly to determine when
   to send faces.
MSW 2005-03-27

include/sproto.h: get_who_escape_code_value is void, not void*.
server/c_misc.c: move local function outside the function.
server/c_wiz.c: remove sleep( 1 ) that would cause whole server to sleep one
Ryo 2005-03-23

common/living.c: Allow luck to drop back to zero. Limit bad luck object to
    +/-100 to prevent overflows.
Andreas Kirschbaum 2005-03-22

common/living.c: When randomly adjusting luck, change both op->stats.luck and
    the applied bad_luck object.
server/attack.c: Do not decrease luck if a player kills himself with a spell
    or pet.
Andreas Kirschbaum 2005-03-20

server/c_wiz.c: change command_free() and command_remove() to always
   process the head of the object - doing this operations on the non head
   will typically always cause problems.
MSW 2005-03-19

This change makes it so that the smoothing information is pushed to the client
(if the client is using smoothing) instead of a process were we tell the
client the smoothlevel and the client then has to request the face info for
smoothing.  If we know the client wants the info, much easier to push it to
the client.  This simplifies the client code (doesn't have to keep track
of what is requests).  It also fixes the 'problem' that when you join the
game, you get a few frames with no smoothing and then the smoothing shows
up, which seems a bit odd.  My testing shows that old clients that want
smoothing use this new logic withouth any problems.
common/image.c: add smooth_face default so that we don't have to look it
   up everytime.
include/define.h: Add SMOOTH_FACE_NAME used by image.c
include/global.h: Add smooth_face extern declaration.
include/newserver.h: Update comment on what faces_sent is used for,
    add NS_FACESENT_* values which determines what info for the face was
socket/image.c, socket/init.c, socket/item.c: Update faces_sent checks/set
     to check against NS_FACESENT bitmask.
socket/request.c: Update faces_sent as mentioned above.  And SendSmooth(),
    rewrite AskSmooth() to use SendSmooth().  Modify update_smooth()
    to send smoothing information to the client.
MSW 2005-03-19

common/map.c: Clean up if statement ins blocked_link() which caused warning
    messages - broke it apart to make it a little clear.  Add check for
    premature end of map header - make code more resilent in case of truncated
    saved maps.  Fix saving of region name in new_save_map() - saving the
    pointer to the region isn't what the loader is expecting, and is highly
    non portable even if it was.
MSW 2005-03-18

Applied patch:
* #1145089 (cavesomething): Region support.
common/Makefile.am: add new 'region.c' file.
common/init.c: add 'REGIONS' setting.
common/map.c: add 'region' map key.
include/config.h: add regions file default name.
include/global.h: add 'first_region' global variable and settings.
include/libproto.h: add region.c functions prototypes.
include/map.h: add region structure.
include/sproto.h: add new region-related command.
lib/Makefile.am: add 'regions' file.
lib/regions (new): regions definition file.
server/c_misc.c: add region information to current_map_info. Add new 'whereami'
server/commands.c: add 'whereami' command.
server/init.c: add regions settings, and load data.
Ryo 2005-03-15

Applied patches:
* #1119366 (salathar): wiz food, DMs don't use food anymore.
* #1161816 (cowboyatheart) : Add wands/staves/rods/horns to new pickup.
* #1119762 (salathar): afk command.
common/loader.[lc]: add 'FLAG_AFK'.
include/define.h: add 'PU_MAGIC_DEVICE. Add 'FLAG_AFK'.
include/sproto.h: add 'command_afk'.
server/c_misc.c: add 'AFK' to who display, add command_afk.
server/c_object.c: add new flag to dump.
server/commands.c: add command_afk.
server/player.c: wiz don't use food. Check for rod/wand/horn for new pickup flag
Ryo 2005-03-13

*Makefile.in, aclocal.m4, configure, utils/config.guess, utils/config.sub,
utils/ltmain.sh: Rebuild generated files.
acinclude.m4: Check whether Python supports the "L" format specifier. Do not
    build python plugin if not.
Andreas Kirschbaum 2005-03-09

common/{map.c, readable.c, treasure.c}, crossedit/Attr.c, server/{apply.c,
attack.c, c_wiz.c, init.c, monster.c, pets.c, shop.c, skill_util.c, skills.c,
spell_attack.c, spell_effect.c, time.c}, socket/{info.c, request.c}: Add
    missing newline character to LOG() messages.
common/living.c, include/living.h: Change type of weight_limit to uint32.
socket/request.c: Remove non-portable assignment to rvalue.
doc/{README_PLUGINS.doc, README_PYTHON.txt, plugins}, doc/Developers/{README,
plugins, python}: Update plugin documentation.
plugin/plugin_python.c, plugin/include/plugin_python.h: Whitespace changes,
     remove obsolete comments.
plugin/plugin_python.c: Only set WhoAmI when running the command registered by
     CFPython.RegisterCommand. Set default result value to "success".
plugin/plugin_python.c: Fix memory leaks by freeing old strings before
    assigning a new value.
plugin/plugin_python.c: Use correct format specifiers for item values and
    experience values.
plugin/plugin_python.c: Make CFPython.IsCanBePicked return whether the object
    can be picked up. (Did return whether the object cannot be picked up.)
plugin/plugin_python.c: Do not return a pointer to a variable on the stack.
server/plugins.c: Fix pointer type mismatch while processing
plugin/plugin_python.c: Change second parameter of CFPython.CheckMap to use
    a map object instead of a map name. Now it works for tiles maps.
acinclude.m4: Add check for python 2.4 to match this file with aclocal.m4.
Andreas Kirschbaum 2005-03-06

plugin/plugin_python.c: Increase limits of values the Python script may set
    to the ranges given by objects in the archetypes file.
Andreas Kirschbaum 2005-02-28

common/object.c, include/libproto.h: change nrof parameter of get_split_ob to
    uint32 type.
server/c_object.c, include/sproto.h: change nrof parameter of drop_object to
    uint32 type.
plugin/{plugin_python.c, include/plugin_python.h},
plugin_animator/{plugin_animator.c, include/plugin_animator.h},
server/{apply.c, attack.c, gods.c, monster.c, player.c, skills.c, time.c,
    timers.c}: Change type of CFParm.Value[5] and StackParm1[] to uint32 to be
    able to pass an "nrof" value.
plugin/plugin_python.c, plugin/include/plugin_python.h: Remove spell wrapper
plugin/plugin_python.c, plugin/include/plugin_python.h: Replace skill-IDs by
    skill names. Remove skill-ID wrapper functions.
Andreas Kirschbaum 2005-02-20

Changes for 1.8.0:

Makefile.am, Makefile.in: Add missing pixmaps, change CHANGES to ChangeLog,
    update archive directive so it works.
aclocal.m4: updated
configure, configure.in: Updated for 1.8.0 release. Remove gnome/Makefile
    from list of Makefiles to create.
gtk-v2/Makefile.am, gtk-v2/Makefile.in: Add archive directive.
gtk-v2/src/Makefile.{am|in}: Add missing soruces to list so that archive
    works correctly. Add archive directive.
MSW 2005-08-10

gtk/keys.c: don't select text in widget under Windows.
Ryo 2005-07-30

gtk/gx11.c: fix a crash if closing login window. Weird behaviour, but no crash.
Ryo 2005-07-29

gtk/image.c: Remove stray '+' at beginning of line.
Andreas Kirschbaum 2005-07-21

x11/x11.c: Fix crash if display cannot be opened.
common/script.c: Properly terminate string with '\0' in script_init().
Andreas Kirschbaum 2005-07-18

gtk/sdl.c, gtk-v2/src/sdl.c: Fix printf like format specifiers.
Andreas Kirschbaum 2005-07-16

common/init.c: Win32 should use %APPDATA% instead of . for home directory.
Ryo 2005-07-10

Bulk of this change is the addition of a pop up window in the gtk-v2
client for metaserver selection, as well as other updates.  The files
to the common area was really to pull the metaserver defines and data
structures from the C file to a header file so that the gtk-v2 code
can access them:
AUTHORS: New file, required by automake, data pulled README file.
NEWS: New file, required by automake.
Makefile.in, aclocal.m4: Rebuilt
README: Remove author info from this file, move it to AUTHORS.
common/Makefile.in: add metaserver.h file
common/metaserver.h: New file containing metaserver defines and structures.
common/metaserver.c: Pull out defines/structures from this file, moved to
    metaserver.h.  Have it strip packets/byte count info from comment
    section that metaserver reports.
gtk-v2/Makefile.in: Rebuilt.
gtk-v2/gtk-v2.glade: Added new metaserver window.
gtk-v2/src/Makefile.am: Add metaserver.c as a standalone file that gets
gtk-v2/src/Makefile.in: Rebuilt
gtk-v2/src/callbacks.h, gtk-v2/src/interface.c, gtk-v2/src/interface.h: Updated
     by glade2
gtk-v2/src/main.c: Remove metaserver.c inclusion.  Initialize
     cached_server_file.  Change metaserver selection/display code.
gtk-v2/src/metaserver.c: Lots of new code - have it display window,
    handle selections, connect to server, etc.
MSW 2005-07-04

gtk-v2/src/info.c: Remove extra lines of code for scrolling.  Have
    newlines be inserted in the correct place for the color info tab.
gtk-v2/src/inventory.c: Remove call to check to display object in inventory
     tab for container objects - if we show the container object, so
     all objects within the container (bug 1226968)
gtk-v2/src/keys.c: Move initialization of global widges to before loading
     keybindings - otherwise, they can end up not being initialized.
MSW 2005-06-29

Add inventory animation to the gtk2 client.
gtk2proto.h: rebuilt
inventory.c: Add new function that animates inventory.  Have draw_table() take
    a second param that determines if it is doing an animation run or just
    a normal draw.
main.c: Move PACKAGE_DATA_DIR to be within WIN32 defines.  Add call to
    inventory_tick() in do_timeout()
MSW 2005-06-26

common/metaserver.c: wrong number displayed for cached servers.
Ryo 2005-06-25

configure.in, configure: Turn of the use of dmalloc as the default - if
    dmalloc is disabled, it has to be intentionally set.  gtkv2 client runs
    dog slow if dmalloc is used, so that isn't a good default
common/item.c: Fix bug that resulted in the item names not being updated
    properly - bug introduced in patch 1197437.
MSW 2005-06-04

crossfire-client.spec, gnome/Makefile.in, x11/Makefile.in: Patch from Kari
    Pahula to fix manpage paths.
gtk/gx11.h: Patch from Kari Pahula to remove incorrect variable declaration.
Andreas Kirschbaum 2005-06-01

Committed patch #1197437 courtesy Kevin Rudat (krudat).
This patch moves inventory-related functions in GTK client to
  one specific file. Also makes inventory refresh less often.
Affected files:
  * common: client.h item.c item.h p_cmd.c proto.h
  * gtk: config.c gtkproto.h gx11.c gx11.h inventory.c Makefile.in
  * x11: x11.c x11proto.h

common/metaserver.c: add server cache.
gtk/gx11.c: initialize server cache filename.
Ryo 2005-05-23

gtk/gx11.c: Windows has player-specific keys, get'em (was broken with new
  login window)
Ryo 2005-05-12

Add newpickup support to the gtkv2 client.  Didn't add old support (still
available by specific commands) as I think the interface gets confusing
to have them both - would be better to extend newpickup logic if necessary
to support anything old pickup does that newpickup doesn't.
gtk-v2/Makefile.in: Rebuilt
gtk-v2/gtk-v2.glade: Add menu options for newpickup
gtk-v2/src/Makefile.am, gtk-v2/src/Makefile.in: Add pickup.c file
gtk-v2/src/callbacks.h, gtk-v2/src/interface.c: Rebuilt by glade-2
gtk-v2/src/pickup.c: New file - handles pickup logic.
MSW 2005-04-17

gtk/image.c: Apply patch from bug 1120881 that fixes pointer operations
    on netbsd/macppc.  Changed code still works on linux/x86.
MSW 2005-04-16

Improve behaviour of information windows on gtkv2 client - before this patch,
they would always scroll to bottom when getting new output, making it
difficult to look at shop listings or other long listings that require
going back in the scroll buffer.  With this change, if the buffer isn't
at the end, the scroll position isn't changed.  IF it it at the end, it
keeps it at the end.
gtk-v2/gtk-v2.glade:  Chane scrolledwindows used by the textbuffers to
   have a meaningful name.
gtk-v2/src/info.c: Add code that gets position of scroll bar (adjustment)
   and compares it with maximum, and if not at end, don't scroll window.
gtk-v2/src/interface.c: Rebuilt.
MSW 2005-04-11

Fix so that magic map works properly on the gtkv2 client.
gtk-v2/gtk-v2.glade: change name of map notebook to map_notebook.  Add
   signal to handle expose events of the magic map area.
gtk-v2/src/callbacks.h: Rebuilt with addition of expose callback.
gtk-v2/src/interface.c: Rebuilt with addition of expose, change of name.
gtk-v2/src/magicmap.c: Have magic map switch the notebook page to the
   magic map page to ensure widget is realized - also good for expected
   behaviour.  Add some checks for null values so if user switches
   before getting magic map data, doesn't crash.  Add check in
   magic_map_flash_pos() to see if still on the magic map notebook page.
   Add expose callback.
gtk-v2/src/main.h: Add MAGIC_MAP_PAGE which defines which notebook page
   is the magic map one.
gtk-v2/src/map.c: Have it look up the map_notebook widget.
MSW 2005-04-05

Various minor bugfixes:
configure.in, configure: Add warning message if we can't find gtk+ 2.0 or
    later, but continue configure process instead of exiting.
common/misc.c: Fix code so that it compiles with older C compilers.
gtk-v2/src/map.c:  Change code on need_recenter_map() - use MAX_MAP_OFFSET
    instead of hard coded value of 2 - found a crash here when running
    around the world map - could have been caused by a big image and/or
    the fact my character moved 2 spaces in one tick.  either way, this
    change shouldn't impact things, as it is seldom the virtual map needs
    to be recentered.
MSW 2005-03-27

This patch fixes a few memory leaks related to image caching in all clients.
common/image.c: Declare facetoname[] as static. Add all code accessing this
    array. Print warning if image cannot be created.
gtk/gx11.c, gtk/image.c, gtk-v2/src/image.c, x11/x11.c, x11/xutil.c: Remove
    code accessing facetoname[].
gtk/gx11.c, gtk-v2/src/main.c, x11/x11.c: Always call init_cache_data() to
    initialize pixmaps[] array.
gtk/image.c, gtk-v2/src/image.c, x11/png.c: Reject invalid face
    numbers and fix resource leak in create_and_rescale_image_from_data().
gtk/image.c, gtk-v2/src/image.c, get_map_image_size: Pretend invalid faces to
    be of size 1x1 in get_map_image_size().
gtk-v2/src/image.c: Properly free opengl resources in free_pixmap(). Fix
    resource leak when freeing old pixmaps in reset_image_data().
x11/png.c: Properly free resources if an error occurs.
x11/x11.c: Ignore invalid face numbers.
x11/x11.h Remove duplicate definition of MAXPIXMAPNUM and facetoname[].
x11/xutil.c: Initialize size of pixmaps[0].
Andreas Kirschbaum 2005-03-27

gtk-v2/src/map.c: Fix typo to make it compile without opengl.
Andreas Kirschbaum 2005-03-26

Main change of this is addition of opengl drawing for the map in the gtk-v2
client.  On my system, the opengl code is about 10 times faster than the
sdl code was, making it so I can turn on all the bells and whistles (smoothing,
best lighting) and still use less than 10% cpu time.  As part of this, I
redid the smoothing logic, so the client now requires a new server for
smoothing to work (needs push logic, as client won't request smoothing
info as that adds a lot of complication).  This change was done because
the old smoothing code wasn't that efficient - now, we store the smoothing
face along with the face it smooths, so finding the smoothing info is
much faster.
configure.in, configure: Add check for -lglut - indication we have opengl
   libraries available.
common/client.h: Remove Smooths struct.  Change CONFIG_SDL to
    CONFIG_DISPLAY, and add CFG_DM_... to denote different display modes,
    since there is more than just sdl and not sdl now.
common/commands.c: Don't have SmoothCmd try to update what spaces need
    to be redrawn - for opengl, it doesn't care about that, and for
    most other maps, it will figure it out when it needs to redraw
common/config.h.in: Addition of HAVE_OPENGL line.
common/image.c: Remove getsmooth() - rely on push logic.
common/init.c: Update  want_config[CONFIG_SDL] to
gtk/config.c: Change access to CONFIG_DISPLAYMODE
gtk/gx11.c: Change access to CONFIG_DISPLAYMODE. Add -smooth command line
gtk/gx11.h: Add smooth_face to PixmapInfo struct.
gtk/image.c: Change access to CONFIG_DISPLAYMODE.  When getting new
    PixmapInfo struct, use calloc so we are sure all fields are initialized
    to zero.  Add addsmooth().
gtk/map.c: Change access to CONFIG_DISPLAYMODE.  Change how we access
   smooth face info.
gtk/sdl.c: Change how we access smooth face info.
gtk-v2/src/Makefile.am, gtk-v2/src/Makefile.in: Add addition of OPENGL_LIBS
    to link libs.  Add opengl.c file.
gtk-v2/src/config.c: Add image.h include.
gtk-v2/src/gtk2proto.h: Rebuilt.
gtk-v2/src/image.c: Change access to CONFIG_DISPLAYMODE. Add hooks for
   opengl image generation.  Change call for pixmap creation from malloc
   to calloc.  Add addsmooth().
gtk-v2/src/image.h. If we have opengl, include GL/gl.h.  Add fields
   for opengl texture maps.
gtk-v2/src/info.c: Update so text line wraps if it is too long.
gtk-v2/src/inventory.c:  Add checks to make sure object face is
   valid before trying to draw.  In icon mode, add code to cleanup
   old fields (if you drop an item, it wouldn't erase the list item
   in the list).  Also, free callbacks, as they effectively stack,
   and we were using incorrect object pointers (pointer from first
   callback, which didn't match current one).
gtk-v2/src/keys.c: Add image.h to includes.
gtk-v2/src/main.c: Add image.h to includes. Change access to
     CONFIG_DISPLAYMODE.  Add -opengl command switch.  Remove
     +sdl and popups command line options.  Relocate setup of
    cache call setup to after we know all windows have been created.
gtk-v2/src/map.c: Change access to CONFIG_DISPLAYMODE.  Add opengl
    drawing hooks.  Change access for smooth info.  Implement
    button press code for map window (basically grabbed from
gtk-v2/src/opengl.c: New file containing opengl draw code.
gtk-v2/src/png.c: Remove some unused code resulting in compile warnings.
gtk-v2/src/sdl.c: Remove some commented out code.  Change access method
    for smoothing code.
x11/xutil.c: Change access to CONFIG_DISPLAYMODE.  Add addsmooth()
MSW 2005-03-20

Applied patch #1161817 (cowboyatheart): Add wands/staves/rods/horns to new
    pickup (client).
gtk/gx11.c: add new 'magic devices' menu option.
Ryo 2005-03-13

More improvements for the gtkv2 client, mostly adding SDL support:
gtk-v2/TODO: updated
gtk-v2/src/logfile: Removed - don't need dmalloc logfile.
gtk-v2/src/Makefile.am, gtk-v2/src/Makefile.in: Change program name from
    'gtk-v2' to 'gcfclient2'.  Add sdl.c to list of files.
gtk-v2/src/gtk2proto.h: Rebuilt
gtk-v2/src/inventory.c: Fix bug in show_nonmagical() (which corresponds
    to inventory tab) - was showing unpaid objects, not nonmagical objects.
gtk-v2/src/main.c: Remove time_map_redraw declaration from function, since
    it is declared in map.c.  Change map logic to draw when we finish processing
    network data.  Change client naem as it reports itself to server to GTK2
    ... Client.
gtk-v2/src/map.c: Add map_updated variable which is set by display_map_doneupdat
e -
    used by map draw function to know if anything has changed.  Clean up some
    formatting, remove unused code.
gtk-v2/src/sdl.c: New file containing sdl support.
MSW 2005-03-07

Commit for GTKv2 client - please read gtk-v2/README before using this client.
The bulk of the changes are limited to the gtk-v2 directory (addition),
but some changes elsewhere as related to using automake.  You will need
to run configure for the gtk-v2 client to be built (it should be built
automatically if you have the needed libraries)
Changelog: Replaces CHANGES file to meet automake standards.
Makefile.am: New file for use with automake.
Makefile.in: rebult from Makefile.am
aclocal.m4: Updated with macros to check for gtk-v2.
configure.in: checks for gtk-v2 added.  Chane SUBDIRS to CF_SUBDIRS as
     using SUBDIRS causes conflicts.
utils/config.guess, utils/config.sub, utils/missing: Updated as part of
     automake changes.
gtk-v2/*, gtk-v2/src/*: Files related to gtk-v2 client.
MSW 2005-03-01

crossfire-client.spec: Update for 1.7.1 release, make some other changes that
    better match my system since I don't think anyone else is using it.
gtk/Makefile.in: Add crossfire-client.desktop to list of files to add
   to distribution.
README.rpm: removed - had info that didn't really apply to me making RPM
configure.in, configure: Add --disable-dmalloc option to configure.
MSW 2005-02-28