Jump to Main Content

Crossfire 1.2.0 Announcement

Crossfire 1.2.0 has been released.

Files released for this version:

sums (bsd)  filename
12646  1322 crossfire-1.2.0-arch.tar.bz2
50427  1416 crossfire-1.2.0-arch.tar.gz
13102  2854 crossfire-1.2.0-maps.tar.bz2
63943  4178 crossfire-1.2.0-maps.tar.gz
38596  2715 crossfire-1.2.0.tar.bz2
50500  3025 crossfire-1.2.0.tar.gz
46793   375 crossfire-client-1.2.1.tar.gz
13123  1266 crossfire-client-images.1.2.1.tar.gz

Sums (md5)
c69b4a1db0c5c877900016753cd9a7ec  crossfire-1.2.0-README
bdcb851949415557b3a9fbcf95834a88  crossfire-1.2.0-arch.tar.bz2
4d2babc7d9af590f6c16e5dbc93b4301  crossfire-1.2.0-arch.tar.gz
c9553d81508dffaa1332c46d3a4d807e  crossfire-1.2.0-maps.tar.bz2
9550a9731a3c3198a5eaa3f69fe5a8b4  crossfire-1.2.0-maps.tar.gz
d380b8998b4eee38858279081619c48f  crossfire-1.2.0.tar.bz2
c71ed3509489343336dff2c84cee55fc  crossfire-1.2.0.tar.gz
802c9577fa657b5fa91fccc6ca5ced93  crossfire-client-1.2.1.tar.gz
0e0e89480f27214f45bfa7b79a75de2d  crossfire-client-images.1.2.1.tar.gz

crossfire-client-1.2.1 is the client (X11) distribution - standard
X11 and gtk interfaces are provided.  This has had changes to
image handling and better gui config in the gtk client.

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

crossfire-1.2.0.tar.{gz/bz2} contains the server code with prebuilt
archetype and image files.

crossfire-1.2.0.arch.tar.{gz/bz2} contains the unpacked archetype changes.
This is not needed if you only want to compile the server and play the

crossfire-1.2.0-maps.tar.{gz/bz2} 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.

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:

Changes for 1.2.0:
Makefile.in, include/version.h: Update for 1.2.0 release
lib/Makefile.in: have it make an archive for the archetypes.
MSW 2002-04-28

doc/Developers/protocol: Add documentation about the map2 protocol command.
socket/request.c: Fix bad indentation for the map2 function.  No actual
    functional code changes, but some comments updated.  Running diff with the
    -w option will make the changes, or lack thereof, more viewable.
MSW 2002-04-28

crossedit/xutil.c: Update to use name of png file.
lib/archetypes: collected - pl_dragon arch changed a while back, with no
     new collect.
lib/collect.pl.in: Add some notes about usage if no option is given or
     if --help is given.
server/gods.c: Fix that resulted in weapon/armor restrictions not working.
MSW 2002-04-23

Various minor bugfixes.  Note the changes may appear larger than they
really are due to formatting/indentation changes.  Run diff -w to
supress those:
make_win32/installwin32.bat: Update for new image files.
server/c_object.c: Fix SAVE_INTERVAL #ifdef block.  It failed to compile
     as it was written.  Simplify code, but it should have the same effect.
server/move.c: Modify push_object so that if a player swaps position
     with his pet, we send a esrv_map_scroll.  This should save bandwidth,
     and also prevents display corruption when fog of war on the client
     is in use.  Add some new comments, adjust some formatting.
server/player.c: Fix minor typo in comment.
server/skills.c: Modify new_draw_info that is responsible for the
     "You pray" messages to not have the NDI_UNIQUE flag so that
     they can get batched up, depending on users value of output-count
server/swap.c: Remove swapped out per player unique maps from the list
     of maps.  Reduces cpu and memory consumption by a minor amount, and
     results in a cleaner 'maps command output.
server/weather.c: Add standard crossfire banner to top of file.
     Modify long long declartion to just be a long.
MSW 2002-04-20

socket/item.c: Add checks to esrv_move_object - before it just trusted
the client that the destination target to move items into was a container.
Now do valid checking that the object can be picked up, that the container
can hold it, etc.  MSW 2002-04-18

Add utils/crossloop.web.in script.  This script is used on metalforge -
    it generates the backtrace file, compresses the core, and sends out
configure.in, configure: Rebuilt to make the crossloop.web script.
utils/Makefile.in: Install the crossloop.web script.  Include the
    crossloop.web.in script when making the archive.
utils/crossloop.web.in: New file.
MSW 2002-04-14

Update to improve image caching and faceset support in the client.
     The main change is adding the 'requestinfo image_info' and
     'requestinfo image_sums' commands.
common/image.c: Checksum the bmaps file when we load it - we send this as
     part of the image_info data.
doc/Developers/protocol: Document the requestinfo data.
include/global.h: Add extern for bmaps_checksum, and the define for
     ROTATE_RIGHT which is used for checksumming.
include/newserver.h: Update SC version to 1027 so that clients can
     know if they can issue requestinfo commands.
include/sockproto.h: rebuilt
lib/adm/collect_images.pl: Add support for it to make a crossfire-images
     distribution that the client can use to bootstrap its image set.
socket/image.c: Change SendFaceCmd to take a NewSocket parameter instead
     of a player parameter - in this way, it can be used before the
     AddMe command - this allows the client to download images before
     issuing that command.  Add send_image_info and send_image_sums
     function which send the requestinfo data to the client.
socket/loop.c: Move the askface command from the player commands to the
     newsocket commands.  Add RequestInfo functino that determines the
     type of request and calls the specific function to deal with it.
MSW 2002-03-25

Changes for 1.2.1:
Makefile.in: Add pixmaps/question.sdl to archive list.
configure, configure.in: Update for 1.2.1 release.
MSW 2002-04-28

gtk/config.c: Allocate string data for want_faceset - data returned by
    gtk_entry_get_text is non persistent.  MSW 2002-04-28

gtk/gx11.c: Fix bug in that the wrong variable was being passed to
    negotiate_connection, resulting in the sound not being properly
    communicated to the client.  MSW 2002-04-19

Main change is to make all the configuration options now available in the
configure window in the gtk client.  The way all the various values was
stored was changed around, so it is now pretty trivial to add any future
options.  For the most part, most of the logic of the other code is
unchanged - one thing that is different is that the clients use the larger
virtual maps that are normally used for fog of map - this means that fog
of war can be turned on and off.
There are probably some bugs in this, but it seems to basically work -
no horrendous bugs that I noticed that prevent it from working at all.
common/client.c: replaced config values with new system.  Always
    send setup mapredraw 1 to server to make toggling for fog of war easier,
    and it doesn't use any significant bandwidth.
common/client.h: Add new value configuration system/defines.  remove
    the old values.
common/commands.c, common/image.c,common/metaserver.c,common/player.c
         : update for new configuration value system
common/init.c: Add config_names which is used for the load/save logic.
    update the init and clear functions to set up new values.
gtk/Makefile.in: add config.c file.
gtk/gtkproto.h: rebuilt.
gtk/config.c: New file - holds the config creating code, as well as the
    load and save for the gdefaults file.
gtk/gx11.c: Remove some widgets now in config.c, move itemlist to
     gx11.h, remove some other values that are in the new configuration
gtk/gx11.h: Moved several structures and externs from gx11.c to gx11.h
     so they are available to config.c.  Remove several values that
     are done with the new config arrays.
gtk/image.c, gtk/keys.c, gtk/sdl.c, gtk/sound.c:
         : update for new configuration value system
gtk/map.c: update for new configuration value system, modified so that
     fog of war map logic is used all the time.  Change allocate_map to
     no longer refer to map_size global - use the x and y values in the
     map structure.
x11/x11.c: update for new configuration value system - the x11 portion
     still uses the old load/save method - this should get converted.
     Many of the options available in the gtk client have no corresponding
     use in the x11 client.
x11/x11.h: update for new configuration value system
x11/xutil.c: update for new configuration value system.  Most of the map
     logic is now synced up with the gtk/map.c
MSW 2002-04-03

configure.in, configure:  Fix the --disable-sound configure option (when used,
it won't look for sound support, and will not build the sound-src directory).
Likewise, if that option is not used but configure does not find any supported
sound systems, it also will not build the sound-src directory.  MSW 2002-03-31

Various fixes/enhancements:
1) For the files stored in the players cache, include the image set suffix
    (eg, base, clsc) when saving the file.
2) Add a gui update element to the gtk client when running with -download_all_fa
    For the cfclient, print the updates to the window.
3) Apply patch by 'Alfie' that shows skill experience in the cfclientp
4) Fix caching bugs with the cfclient that caused it to not work right.
common/client.c: Add callbacks to image_update_download_status from the
     download all image routine.  It is this callback that provides whatever
     update mechanism for the player.
common/external.h: add image_update_download_status
common/image.c: Modify display_newpng to put in the image set name of the
     saved cache files if that information is available.
gtk/gtkproto.h: rebuilt.
gtk/gx11.c: Make get_window_coord non static so other files can use it.
gtk/image.c: Add image_update_download_status that draws a progress bar.
    Convenient side effect is that other GUI elements are now updated
    as part of this, so player can access other menu items.
x11/png.c: Fix some bugs when using cached images - rgba_to_xpixmap was
    using initialized bpp value - we now know this is always 4.
    create_and_rescale_image_from_data did not match the parameters
    as the common routines use.  Also missing some logic for
    allocating the data and linking it back to the cache entry.
x11/x11.c: Add display for skill experience.  This necessitated making
    some of the windows bigger.
x11/x11.h: Remove now unused fields from PixmapInfo structure (fg, bg,
x11/x11proto.h: rebuilt
x11/xutil.c: Remove code that was storing data into the unusued
     fields in the PixmapInfo structure.  Add missing call to
     init_common_cache_data.  Add image_update_download_status
     function that just does a draw info.
MSW 2002-03-26

Many changes to image handling.  The most noteworthy are:
1) Ability to use different image sets.
2) Ability to get checksums of all images and download missing images
    before play starts.
3) Storing cache information for images in a bmaps.client file so that
    it can know if it has a match without needing to load the image
    and checksum it.
4) Can use crossfire-image archives to bootstrap the client with a large
    number of images to save the time of downloading them later.
README: Update some out of data information about sounds, add section
    describing the image handling.
configure,configure.in: Make the SOUNDDIR be based and datadir and not
    an absolute path - this means using a different -prefix changes
    the location of where it will find the sound file.  Moved some
    of the defines into the config.h file so that we don't need to pass
    them as -D compiler options.  Add code to properly substitute
    DATADIR and BINDIR values.
common/Makefile.in: Add image.c to list of files.  Fix depend
common/cconfig.h: Remove some options that no longer did anything.
common/client.c: clean up some unused global variables, add a few new ones.
    and support for replyinfo protocol command.  Modify negotiate connection
    to issue requestinfo requests, set up face set to use, use
    setup command to set caching behaviour, and support for it to download
    all image sums and missing images before play starts.
common/client.h: Update VERSION_SC to 1027.  Remove some unused
    global externs.  Add FaceSets structure, Face_Information structure,
    the later which holds some user preferences.  Add Cache_Entry
    structure, as well as some state when negotiating the connection.
common/commands.c: Add ReplyInfoCmd function.  Move FaceCmd
    to common/image.c.  Add handling of received setup command for
    faceache and faceset information.  Remove some dead code.
common/config.h.in: Add BINDIR and DATADIR defines so we don't need to
    pass them on the command line.
common/external.h: Add some more functions that are called back from the
    common area.
common/image.c: New file - cache logic, png image load code, and protocol
    image related commands in this file.  This removes some of the code
    that was previously in the GUI area of the client into a common area.
common/init.c: Add TEST_FREE_AND_CLEAR macro.  Add code to clear
    some of the newly added structures.
common/proto.h: rebuilt.
gnome/gnome-cf.h: remove cache_images extern.
gtk/gcfclient.man: Update man page for new options (-download_all_faces,
gtk/gtkproto.h: rebuilt.
gtk/gx11.c: add redraw_needed flag so the map window is properly redrawn
    when caching images and new images show up.  Change some other
    variables to deal with new image code.  pixmaps changed to a pointer
    so that a copy can be held in the common cache structure.  Add support
    for new options.  Remove some code that is now in the common/image.c
gtk/gx11.h: Remove keepcache, change cache_images, add redraw_needed,
    and change type of pixmaps to be a pointer.
gtk/image.c: Move requestface to the common/image.c, change pixmaps
    to pointer type.  remove finish_face_cmd and ReadImages command.
gtk/map.c: Change pixmaps to pointer types.
gtk/sdl.c: add redraw paramter to sdl_gen_map.  change pixmaps type
    to pointer.
gtk/sound.c: Add missing / when running cfsndserv.
x11/png.c: Remove gdk related code from the file.  Add rgba_to_xpixmap
    data so tha the common area can load the png file.
x11/sound.c: Add missing / when running cfsndserv.
x11/x11.c: change pixmap type to pointer.  Add new options (-faceset and
     -download_all_faces).  Remove -keepcache option.  change
     cache_images to face_info.cache_images.  Change how the
     pixmaps are generated
x11/x11.h: remove keepcache and cache_images variables.  Change
    pixmaps to pointer type.
x11/x11proto.h: rebuilt.
x11/xutil.c: remove keepcache option.  Change pixmap type to pointer.
     Move requestface and finish_face_cmd to common/image.c
MSW 2002-03-25