Version 0.94.2 is mainly a bug fix release - very few new features were added, and it held up pretty good under a bit more playtest than I have been subjecting previous released too. NOTE: The way animations are dealt with has been changed. Thus, you can not run the new server with an older version of generated archetypes. The new collect.pl should make up a new archetypes file that should work if you have added other archetypes. But don't expect to be able to compile the new server and only use that without encountering some problems. NOTE 2: The config file as distributed is set up for only new client/server usage. If you are using old method, you should uncomment the SERVER line, and comment out the NO_ADD line. This is how whitestar.pyrsonal.org is running. Enclosed at the end of this message is a copy of the changes made. There are five separate tar archives in the Crossfire 0.94.2 distribution: sums (bsd) filename 63283 918 crossfire-0.94.2.arch.tar.gz 20259 91 crossfire-0.94.2.client.tar.gz 10701 860 crossfire-0.94.2.doc.tar.gz 59369 3004 crossfire-0.94.2.maps.tar.gz 23690 2421 crossfire-0.94.2.tar.gz Sums (md5) 4d8175b517f6c96eeb9ad406b17f1c20 crossfire-0.94.2.arch.tar.gz d0d9acb05c8479334580e2d7f0457e1a crossfire-0.94.2.client.tar.gz 504feb1fb85956471535b1230017e02c crossfire-0.94.2.doc.tar.gz 03533cc5ad2da4ec9308d5e71d36749e crossfire-0.94.2.maps.tar.gz cc59e08438fa2b8ae6cd0194f533ec75 crossfire-0.94.2.tar.gz There is no diff patch for this version. One reason is because you must have a new archetypes file. The second reason is that there were a lot of formatting changes made, which would make for a fairly large and/or a fairly messy patch. crossfire-0.94.2.tar.gz contains the actual program code. See the CHANGES file in this archive for everything that has changed. It also contains pre-made archetypes and image files (along with postscript spoiler and handbook), so that the crossfire-0.94.2.arch.tar.gz file is not needed. crossfire-0.94.2.arch.tar.gz contains the unpacked archetype (arch) directory. This file is not needed if you just want to compile the games and play. The contents of this archive is used to create the archetypes, bmaps, font, and X PixMap (XPM) files. You only need it if you want to add new archetypes, mess around with the existing ones, or recreate some files. You also need this if you want to create the images for the html versions of the playbook and handbook, but read the notes about the doc archive below. crossfire-0.94.2.doc.tar.gz: This contains all the preformatted documentation from the doc directory (really, everything there is.) What you get is postscript versions of the spoiler and handbook, along with html versions WITH all images premade (this is the only archive that has the GIF images premade). What you don't get is the source code for the latex spoiler and handbook. If you just play the game but would like full documentation, this is the archive to get. Everything in here can be recreated if with tar and arch archives. crossfire-0.94.2.maps.tar.gz contains all the maps. Maps fixed up to remove color information that was causing some crashes. crossfire-0.94.2.client.tar.gz: Contains the new client (tcp/ip). Some bug fixes, and a few new features. If using the client, you should update from 0.94.1 FOR FIRST TIME USERS: You will need the crossfire-0.94.2.tar.gz and crossfire-0.94.2.maps.tar.gz file. You do not need the crossfire-0.94.2.arch.tar.gz file. If you just want to play the game at some remote server and have no interesting in compiling it, you may then want to get the crossfire-0.94.2.doc.tar.gz file and crossfire-0.94.2.client.tar.gz (for new servers) There are no changes to the sound file - you can get the older version if needed.] Crossfire is avaible on the following ftp sites Primary: ftp.pyramid.com:/pub/crossfire (129.214.1.30) ftp.ifi.uio.no:/pub/crossfire (129.240.64.44) Secondary: ftp.real-time.com/pub/games/crossfire (206.10.252.12) yoyo.cc.monash.edu.au:/pub/crossfire (130.194.9.1) ftp.cs.city.ac.uk:/pub/games/crossfire/ ftp.sunet.se:/pub/unix/games/crossfire (130.238.127.3) ftp.cs.titech.ac.jp:/pub/games/crossfire adams.humbug.org.au:/pub/crossfire (203.15.36.242) - Australian users only please. I uploaded this version to just ftp.pyramid.com - it should be on the other ftp sites in a short time. Mark Wedel mark@pyramid.com 05/16/98 Server Changes: Changes from Crossfire 0.94.1 to 0.94.2: Changed calls to send_query on server side to include the string on what the query is for. This is to make clients be able to do smarter/nicer things when it receives a query. Bug fix in check_walk_on which would cause crashes when objects are put on spaces with multiple destructive forces (ie, earthwall cast on top of a double pool of chaos). Once check_walk_on finds that the item has been freed, it stops doing any further processing on it. Animation code cleaned up. Animations are now object properties, and not archetype properties (and thus can be changed in maps). Also cleaned up so that the is_turning flag is removed - more complex animations available via the num_facings. Below is the section from the TODO file. Note that there is still potential to improve animations (many 1 frame animations could take advantage of the new code to have multi frame (ie, players can now have images for all directions, and animations for each of those) New code is in common/anim.c: Clean up animation code and make it more general purpose (instead of is_animated and is_turning flags, instead add a value that states how many animations/direction there are. For example, right now the big dragon has 8 animations and 2 facings (left & right), with 4 animations/facing. Something like num_facings could be added so we know there is 2 facings. For arrows, num_facings would be 8, so we know that it shouldn't be animated (since there are only 8 images in its animation.) This would make the code a little cleaner, and allow better/ more complex animations (an object that faces 8 directions could have animations for all directions, were as right now, that is not possible.) collect.pl changed to handle generation of animation file. Wipe below added to crossedit by Steven Unruh removed non NEW_HIT_PLAYER in attack.c (ie, old attack code removed) Added hitback code (looks like it was missing from the NEW_HIT_PLAYER code) dm commands will now be accepted from the new client (provided they have dm priveledges of course) Add AT_INTERNAL attacktype used only for internal calculations (ie, does that amount of damage). Actual damage section of poison now uses this. Fix spoiler generation - don't convert monster archetype names to lowercase - images generated properly for them now. Also, fixed problem with some images (dragon) being rotated when they shouldn't. Clear INV_LOCKED flag when stealing objects. Fixed couple of bugs in throw code. First, players remaining speed calculation seemed incorrect. Second, you can now specify an object name to throw (ie, throw ring, throw chair). Third, the client now gets properly updated with the new/changed item. Make UNIQUE_ITEMS standard feature. Removed LOCK_ITEMS as a secondary feature - running multiple servers against the same set of files is no longer supported. Note for compatibility reasons of both methods, it will look for unique files starting at v00 and will write new ones with the .v00 extensions. If you have .v01 files, these will be read in the first time through (provided you also don't have a .v00), but all new files will be written with the .v00 extension. Referances to ITEMS_DIR changed to be UNIQUE_DIR - I think that is more descriptive. This includes the environmental variable. Change ok_to_put_more to do more complete checking and also not to stop spells because of a monster with certain immunities being on a space. If hit_player is called with the 'tail' of a monster, it would previously just exit if the attacktype included slow or paralyze functions (must hit the head with those.) Changed hit_player so we just remove the slow and paralyze, and still hit with any remaining attacktypes. change explode_object so it only hits the monster once with the bullet/ meteor. Previously, it called hit_map, which then hit the player, and then called hit_player again. This effectively doubled the amount of damage caused by the bullet - it now does the correct amount of damage. As best as I can tell, meteor/meteor swarm does properly damage the monster even if the tail was hit. Bug fix in singing so exp should now be granted the first time singing is used on a monster. Changed so that server can be compiled with new client/server support but without old (port 13326) support. Various sections of code updated to work/compile in such a setting. Fixed premature freeing of map->tmpanme. Now in delete_map instead. Added checking in free_object to see if we are called on a non removed object. IF many cores is defined, will dump core here. I believe there is some section of code calling free_object on a monster without calling remove_object, which is causing a lot of error/warning messages when it happens (very infrequently.) With this test in, it should become quite easy to track down when it happens. Added free bsd & net bsd to those systems whose gettimeofday takes 2 arguments (common/time.c) -lcompat added to libraries needed for FreeBsd. Include unistd.h on freebsd. Don't include malloc.h in xbmtobdf.c on freebsd. Sample ban_file added to lib. Read in of ban_file will now ignore lines that start with #. Also, animations file (used for new animation code) included. Config file rearranged to hopefully be in better sections and easier to edit. NEW_IMPROVE_WEAPON and SIMPLE_PARTY_SYSTEMS removed from options - now always selected. NO_LOG, ONE_PLAYER_PR_UID, CHRFONT removed from sections - these can never be valid. NO_ADD added to prevent players from adding others Server updated to send full lines of text with query commands to client so for clients that pop up a dialog box, they can print meaningful data on what the request is for. Bug fix so that you can no longer apply multiple objects of the same type with apply -a Give better messages when attempting to light something. New client/server statistic gathering added - will periodically dump usage stats to the log file. Server will now longer crash if client/supposed client sends bad data - will now just close the connection instead. Server will not longer crash when player runs into a door. Can now longer polymorph objects into items that are invisible. Removed client directory from main archive. Too many people thought that was the new client creating confusion, and I don't see a big need to have it around (it will go away when the X11 code is yanked from the server anyways0. If you still like it, the old version of it will work just fine (no changes have been made to it in a very long time0 Map changes: color_ removed from map files. library card cost decreased some. oldcity maps updated to take full advantage of XPM mode.. Lake_Country/DA map changed - exp reduced, sp increased. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Client changes: Changes for 0.94.2: Change Version command to include 2 versions strings - version of of C->S commands and version of S->C commands. Allows for better handling when versions are mismatched. Current versions for both set to 1020. Also, version command can now take an optional string describing the client and server (ie, X11 C client, or Java client, etc) Client query command now will handle multi line text fields (seperated by newlines) as sent in the query command. Before, it was never explicity set that this should be done, and was never an issue because there never was multiple lines sent. However, to make input handling on some clients easier, text describing what the query is for is not sent via drawinfo, but now sent via the query command. When user enters the help command, send any options along to the server (ie, send 'help asdf' to server. Before, it only sent the help. Added ability to mark items similar to server. 'mark' command added to protocol. Bug fix when using commans bound with 'bind -e'.Prior, when hitting return to finish the command, it would not advance to a new line. It now does. nrof and item name with nrof now properly updated in inventory window when server sends and update command (prior, the client internally know the correct nrof, but the item name in the window was not properly updated) Changed local showicons command to showicon instead. The later is what it should have been in the first place.