Version 0.94.3 is once again another bugfix release. It should be quite stable. Version 0.94.3 is the last version I plan to release that includes X11 code in the server. My next planned release will be version 0.95.0 which will be new client/server only. If someone wishes to continue to do bug fixes to 0.94.3, fine be me - just le me know. 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.3 distribution: sums (bsd) filename 61477 111 crossfire-0.94.2-0.94.3.patch.gz 46964 918 crossfire-0.94.3.arch.tar.gz 24059 93 crossfire-0.94.3.client.tar.gz 05431 861 crossfire-0.94.3.doc.tar.gz 28849 3108 crossfire-0.94.3.maps.tar.gz 05970 2423 crossfire-0.94.3.tar.gz Sums (md5) 4ce315361f07cad79c188935fae02084 crossfire-0.94.2-0.94.3.patch.gz 30fd4d30a77e9fbf1880baa205fbaf6b crossfire-0.94.3.arch.tar.gz 686e9e5530ddfb9fe9d7b60f37482f02 crossfire-0.94.3.client.tar.gz 9b9330ad181bac6b0adc3b951c7ea987 crossfire-0.94.3.doc.tar.gz d48e52030a6cda85120220241443d258 crossfire-0.94.3.maps.tar.gz caf54e15a14d3b4efdb3c3e756d2041f crossfire-0.94.3.tar.gz crossfire-0.94.3.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.3.arch.tar.gz file is not needed. crossfire-0.94.3.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. Changes for ghosthit/one hit flag are the main things different in this release. Using 0.94.2 archetypes with 0.94.3 server will cause ghosts to stick around until killed - they won't disappear. crossfire-0.94.3.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.3.maps.tar.gz contains all the maps. Only significant change is the addition of dragonisland/Stoneville. crossfire-0.94.3.client.tar.gz: Contains the new client (tcp/ip). Only significant change is the addition of comc/ncom commands that allow it to do better throtting/not send repeat commands. crossfire-0.94.2-0.94.3.patch.gz: Contains a context diff patch to bring the source code from 0.94.2 to 0.94.3. Note that to make an actual running server, you will need to rebuild the archetypes for use with the server. FOR FIRST TIME USERS: You will need the crossfire-0.94.3.tar.gz and crossfire-0.94.3.maps.tar.gz file. You do not need the crossfire-0.94.3.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.3.doc.tar.gz file and crossfire-0.94.3.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 8/1/1998 Server Changes: Changes from Crossfire 0.94.2 to 0.94.3: Fixes to some recipes - before some had non existant ingredients. As part of this, a treasurelist for ogres added. archsearch.pl function added to lib/adm. Useful little perl script that can do object context searches (ie, immune to X and attacktype of Y) Old loader code removed - only lex loader supported now (no bugs reported, so it seems to be OK) Debugging output improved in various areas to be easier to read/better inform what is happening. Hopeful fix in place to prevent player movers causing players to have -infinite in speed_left. Fix right now is to just limit speed_left to -50 - I believe the real problem is that some player moves have speed=0.0, and it is diving by that value. Fix so that if a player dimension doors onto a player mover, he no longer gets stuck in an endless loop - he will now move along the movers as expected. When a player dies in NOT_PERMADEATH mode, clear the braced flag. In the case of spell failure, don't cast mana storm in no magic areas (instead, just kill the player) Only write out an updated bookarchive if data has actually changed and needs to be written out. Don't print out new client server usage logging if nothing has changed. Reduced power of 'loose mana' (it appears this only happens when a spell is failed really badly). It seemed to me that the area of affect and damage could be many times deadlier than anything else out there. Hopeful bug fix for thrown objects getting very fast speed (I am unable to reliably reproduce this, so am not sure.) Basically, I believe the problem was that set_owner was only being set for the wrapper in the thrown object, but it is the actual internal object that gets used at some point in the attack sequence. As such, I believe that the knife, spear, whatever was getting the exp for the kill (exp = speed in weapons). To hopefully fix this, I have also added a set_owner call on the real object so when it goes to grant exp, it should find a valid place for it and credit the player and not the weapon. Changed spell parsing so 'of' is not needed in some complex spells (ie, create food or marking rune). From kfitzner@nexus.v-wave.com Fixed bug in which you could kill multispace monsters with paralyze or slow attacktypes. Added ncom and comc commands to client and server. These commands allow client command queing/dropping (note that server will only send a comc if it gets a ncom first, so old clients should still work just fine). The protocol numbers increased to 1021. Added more objects to the show invisible list - hopefully the pupland maps should now be fully playable. RPLAY_SOUND definitions changed to RPLAY_SND - should make for cleaner compilations for those using that. Fixed #ifdef for NetBSD in common/time.c to use proper symbol. Fix so that counterspell should no longer kill monsters with magic attacktype (ie, jessys and probably others) Added debugging in deathstrike code to hopefully be able to better track down face of death problems. My guess is that it is a problem with level comparisons. Fixed/clarified many nexted if/else statements that were ambiguous. Now braces are properly in place (From Klaus Elsbernd) Hopeful bug for disappear objects when emptying bags. I believe the problem was that invisible objects ended up showing up in the containers somehow - this by itself is not a problem. However, the empty bag function calls drop with the object to drop and keeps the next value - however, drop would forward past the invisible object so the calling functions next value is no longer accurate. Drop function now does not skip over invisible objects in containers (will skip over them in player inventory) - it instead removes the invisible object since I believe it is garbage anyways. I am not sure if this will fix the problem, but there was certainly some problem in the code here. Fixed bug with multipart monsters & pits. Before, they got split into a few parts like a magician trick. Now they stay in one piece. At current time, the logic probably isn't great, as all that is currently checked for is the head of monster being on a pit - in reality, probably all the monster parts need to be on a pit. -m9 and -mt options added (Code from Raphakl Quinet). Formulas have been fixed such that all are now creatable (none missing archetypes). However, the output still shows some formulas out of balance in terms of costs. Changed AT_GHOSTHIT meaning and added ONE_HIT flag. GHOSTHIT is now treated like any other attacktype (monster will not be removed just for having ghosthit). ONE_HIT flag now means the monster will disappear. This fixes the acid sphere deadliness (before, they did have ghosthit as an attacktype). All the objects with ghosthit have been updated. However, there are probably some other undead which could now have ghosthit added to their attacktypes since it won't cause them to disappear now. Updated the programming_guide doc. Hopefully, it is a bit easier to read and a little more accurate. Improved polymorph. Invisible objects should no longer appear. Also improved so that all objects of a type would be possible results (before, it would be the first 80 weapons would be chosen from, or the first 80 monsters, etc.) Now it is unlimited. Smarter initial selection should also result in a few less meltdowns from it now being able to find an acceptable object. Also, possible fix that could cause crashes on rare occasion (monster polymorphed into something else, and when inserted into the map, something on that space kills it) Also, we stop processing a space once we hit the floor - I don't recall floor types ever changing anyways, but there could be other problems processing subfloor items. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Client changes Changes for 0.94.3: Only print debugging output on runs if compiled with -DDEBUG option. Most fprintf(stderr,...) changed to use the LOG call instead. Updated protocol version to 1021. This is for the ncom and commc commands (command windowing). Support for the ncom and comc functions above added to client. Client will now stop sending repeat commands at a certain point. README cleaned up - README now contains more of the first level type instructions, where README.old contains some of the older discussion and background notes. README now includes very good notes on extracting keybindings from save files for use with client.