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 game. 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 Primary: ftp://ftp.sourceforge.net/pub/sourceforge/crossfire (64.28.67.101) Secondary: ftp://ftp.real-time.com/pub/games/crossfire ftp://ftp.cs.city.ac.uk/pub/games/crossfire/ ftp://ftp.cs.titech.ac.jp/pub/games/crossfire ftp://mirror.aarnet.edu.au/games/roguelike/crossfire/ ftp://crossfire.futt.org//pub/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 Complete changelog: server: 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 mail. 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 client: 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 scheme. 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 ces. 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, bitmap) 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 directive. 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, -faceset) 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 file. 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