Version 0.94.1 contains mostly bugfixes. There are still some outstanding bugs, but this version fixes most of the ones that have been reported. Enclosed at the end of this message is a copy of the changes made. There are six separate tar archives in the Crossfire 0.94.1 distribution: sums (bsd) filename 24839 44 crossfire-0.94.0-0.94.1.diff.gz 44480 910 crossfire-0.94.1.arch.tar.gz 12117 90 crossfire-0.94.1.client.tar.gz 08618 842 crossfire-0.94.1.doc.tar.gz 12675 2981 crossfire-0.94.1.maps.tar.gz 48405 2393 crossfire-0.94.1.tar.gz Sums (md5) 75eb3c98856276912fc1c9661a4d32cc crossfire-0.94.0-0.94.1.diff.gz 50b5c08a4d1a463288721fdaeaa3aea9 crossfire-0.94.1-README cdc8f36b843c1eb6aebff80cca8de019 crossfire-0.94.1.arch.tar.gz 50135bb1a3327e57ed1f215031ead84a crossfire-0.94.1.client.tar.gz 7839183827ffe7f28bbd7caad5d8e27a crossfire-0.94.1.doc.tar.gz bb6b13076b35ff194d4b5ef84c223356 crossfire-0.94.1.maps.tar.gz 92f61cbf0f249ec94718aac0abe5f6f6 crossfire-0.94.1.tar.gz crossfire-0.94.1.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.1.arch.tar.gz file is not needed. crossfire-0.94.1.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.1.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.1.maps.tar.gz contains all the maps. A few maps fixed up. crossfire-0.94.1.client.tar.gz: Contains the new client (tcp/ip). Mostly minor enhancements for this release. crossfire-0.94.0-0.94.1.diff.gz: Contains a source code level diff to bring 0.94.0 up to 0.94.1. This does not include the new archetypes or maps - however, the number of changes in those distributions for this release probably makes it such that you can skip them for the time being. FOR FIRST TIME USERS: You will need the crossfire-0.94.1.tar.gz and crossfire-0.94.1.maps.tar.gz file. You do not need the crossfire-0.94.1.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.1.doc.tar.gz file and crossfire-0.94.1.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 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 04/16/98 Server Changes: Changes from Crossfire 0.94.0 to 0.94.1: in artifacts file - moved some settings of difficulty before Object line. (difficulty after the Object line have no effect) In low level socket code, retry read/write again if we get a EWOULDBLOCK in addition to EAGAIN errors. Some systems return EAGAIN, others EWOULDBLOCK Fixed possible crash in move_monsters. I believe the problem was that the monster got killed by a door, and the function was not expecting it, and would use the invalid object. Not sure if the code I put in will really fix the problem, or just migrate it to a higher level calling function (have not seen the crash myself) If on linux, include crypt.h in main.c Various minor memory leaks fixed. Better error message for non wiz people trying to use shutdown command. Shutdown command actually added to command structures and is now usuable. Internal animations changed from explicit defines to use SET_ANIMATION macro. Much easier to read, and better supports client side animations. Include sounds.h/sound calls no matter what RPLAY is set to. Only rplay special code is in sounds.h. This way, client can still get sound information without rplay being defined. removed NPC_PROG code - not used at all - only thing there was a few #ifdefs setting values. Moved typedefs for function pointer stuff from structs.h to funcpoint.h. No outside affect on code, just makes more sense internally. Disable default selection of DEBUG_DMALLOC on crosssite.def Removed old/unused charisma bonus values from common/living.c Minor fix so that a space is properly added between item number and name. Added a lex loading routine. Performance seems to be roughly the same, but ease of maintenace/readability seems better to me. Modifications to loader.c should not be done - instead, they should be done to loader.l Loader directive flags and loader return flags added to loader.l - those are now used instead of arbitrary integer values. Fix c_wix.c dm goto command to set the destination object/map name. Otherwise, if an invalid map was entered, the enter_exit would try to print a null string - some systems handle this OK, others will crash. Changed common/time.c to use GETTIMEOFDAY macro defined once at top of file instead of having #ifdefs throughout the file. Fix so that items of differing values will not be merged. Also, when merging objects, do not clear startequip flag. Fix in doc/playbook-html so all include directives are handled properly with the include_html.pl script. More details printed about improved weapons (how many improvements done, max number of improvements.) Also, skills will show how many improvements the character can handle. Bargaining skill will be auto applied when in shops. Change teleporter code so the teleporter does not have to be the first or second item on the space - teleporter can be any object on the space. -a, -u apply options added (always apply/unapply instead of toggling). Internally, apply and apply_special have been changed to take one more option which is this flag. Applied rings will not be merged - instead they will remain seperate. Fixes problems with getting full bonuses, and also makes it easier to apply/unapply one item. Increased frequency of generation for strange ring (nodrain ring). This should make it appear probably roughly as often as the ring of life, or maybe even more often. Put maximum carry limit in - beyond the limit, a character can carry no more. This limit is fairly high right now, but should improve playbalance and prevent characters from getting a negative weight or carrying so much stuff it takes forever to move (session appears hung to them) Added CS_STAT_WEIGHT_LIM to newclient.h, so client can know how much the player can handle (only used for GUI, so it can do a carry/limit type of thing) Title information now used in hiscore displays. Show invisible spell will now make handles visible. New server code won't crash if player does nothing when it prompts for the name. Also, include necessary dummy functions so server will compile of ERIC_SERVER is not set. Will now search keyrings when running into special doors for matching keys (players can protect keys by putting them in other containers.) Change jump skill so that any spaces with FLY_ON set will affect the jumping player. This prevents the character from jumping over player movers. In create_wall - if insertion if the initial wall fails (new all is destroyed), don't extend the wall. Fixes the earthwall on top of pool of chaos which creates strange map problems. Map fixes: Lake_Country/ebony/masterlev altar should now accept fragment of chaos. Put no magic areas in apartment so it should no longer be able to dimension door and get keys. /city/houses/wizz.entry should now be entered at the correct position. /city/misc/library - library cards are now identified, so it should no longer be able to buy then sell at a profit. /city/houses/wizz* maps: removed ./ from start of some map paths - causes apparant problems. Lake_Country/Butakis/blacksmith - can no longer get free dragon mails or other items - have to pay for them now. Remove pup_land/rainbow/Lv4/\nkey (\n was an embedded newline). Map doesn't look to be needed. Archetype changes: Added blocksview to gwall so you can no longer see through them. Fixed up castle animation in bitmap mode (212/312 images needed to be swapped) Increased exp for skulls from 3500 to 5000, reduced exp of deathtrees from 1400 to 1000. fixed typo in gauntlets which meant title was set right. aggressive 1 values changed to unagressive 0 values in some archetypes (no such value as agressive) ------------------------------------------------------------------------------ Client Changes: Changes for 0.94.1: CS_STAT_WEIGHT_LIM added to stats command. Client will store value, and print it at top of inventory window (carried weight/limit) Handling of dmalloc library in makefiles better done. Don't assume gcc on mips machines. Minor updates to protocol file (more accurate, no change in actual commands save for weight limit above) Only send fire start/stop commands if in play state. cleaned up overly verbose messages in sound.c (comment out). Also, soundcard.h assumed to only exist on linux systems.