Crossfire 0.95.2 has been released. There are a lot of bug fixes as well as some pretty big improvements in it. The complete changelog is at the end of thie file. Files released for this version: sums (bsd) filename 05006 310 client-0.95.2-au-sounds.tgz 62109 319 client-0.95.2-raw-sounds.tgz 11432 214 client-0.95.2.tgz 01750 669 crossfire-0.95.2-arch.tar.bz2 05087 874 crossfire-0.95.2-arch.tar.gz 23935 2201 crossfire-0.95.2-maps.tar.bz2 08683 3171 crossfire-0.95.2-maps.tar.gz 43505 1670 crossfire-0.95.2.tar.bz2 06958 1951 crossfire-0.95.2.tar.gz Sums (md5) 9f5496b93000956014c4541f4b66acba client-0.95.2-au-sounds.tgz d7e6cabe0050970ecf8d17df7e71d099 client-0.95.2-raw-sounds.tgz 0516a21acc9b8ac9ccb81e1212cd656f client-0.95.2.tgz 3de4dbdb3ce9fac33062005cb885fdb9 crossfire-0.95.2-README b25ccb8696ba3b21fc06ce57bfe45293 crossfire-0.95.2-arch.tar.bz2 4a117711d1486694915773e976365ef2 crossfire-0.95.2-arch.tar.gz 8b6902034cff54304db28d43b94d9e0f crossfire-0.95.2-maps.tar.bz2 d05c9e9223fc6e2f98fd304359b7b3fb crossfire-0.95.2-maps.tar.gz 3b3bbf8846489c0eee3011b1f0a2e02d crossfire-0.95.2.tar.bz2 d5e517711ae204222d17f33aba040886 crossfire-0.95.2.tar.gz client-0.95.2.tgz is the client distribution. Many bugfixes, no major improved. cleint-0.95.2-{raw/au}-sounds are the sounds for the client. The au sounds are not changed since the last server release of the sounds - it just made sense to note there are some for the client. The raw files are needed if using the new client sound code - they are converted au files. The raw files are only really needed if you are using the ALSA sound system. If you lack sound, there is no reason to get either of the sound files. crossfire-0.95.2.tar.{gz/bz2} contains the server code with prebuilt archetype and image files. crossfire-0.95.2.arch.{gz/bz2} contains the unpacked archetype changes. The main changes here are the gods/temple additions. crossfire-0.95.0-maps.tgz contains the maps. All the exceptional work Anthony and others have been should be in this release. 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 some version of the doc file. 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) 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 ftp://mirror.aarnet.edu.au/games/roguelike/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 01/30/1999 Server Changes: speed_left values should not be changed when loading/saving maps with the editor. Map updates from Anthony Tyson and others (990128 version) Note: I was unable to reproduce the staff to snake killing the client bug. If still in this client/server release, please let me know. Set player->count in esrv_move_item when picking up objects. This fixes a bug introduced in 0.95.1 for the improved pickup code which only allowed picking up of all the objects on the ground. lifesaving items should now disappear from client inventory after they are used. Improve decrease_ob_nr so that items dropped on the ground will get removed from the players inventory if they are used up (fixes bug where you drop the last of some item on an altar but it would not disappear from your inventory) Add check to add_exp so that we don't add experience to non living creatures. This should fix the thrown objects getting lots of speed bug. Random map code by Peter Mardahl added. Another fix for pits (holes) so objects should drop through. The fix in the last release made fixed a possible infinite loop, but also made it that once an object on the pit could not drop through, no other objects on the pit would drop through. The change made will attempt to drop all objects through the pit, but also not run into a problem with infinite loops. Update pedestal and detector code to also match on the lockcode of the special keys. Change detector function to call push_button instead of update_button. The later would only change the state of buttons, which doesn't do much good when you want to open a gate. push_button will cause gates and other connected objects to open. Change move_gate so that it won't roll off things like grass or other immovable objects. Update configure script to check for scandir function (needed by disease code) - if not found, then check in -lucb. Disease code from Peter Mardahl added. add break value in while loop in generate artifact message (readable.c) so we eventually break out if no match is found. reduce minimum supported map size in crossedit to 1x1 Don't let characters be easily saved on unholy ground. Player can't issue 'save' command when on unholy ground, and we don't autosave if on unholy ground. Improve pickup code mode 6 (pickup magic item) - call is_magical to determine if an item is magical instead of relying on known_magical flag. If the player has a marked item in need of identifying, identify that specific item first when an apply altar is used. This allows a player to selective choose what to identify. Fix in apply code between server and client. Containers on the ground now work properly. Server side simplified a bit, and updated to be a bit more bandwidth efficient (use update item to open/close containers.) Client updated to handle updating its container status via the update commands. Fix in pay_for_item in that it will not mistake kobans or other coins for gold coins when making change (or converting the older coins into new coins with the same arch but with a different value) Have player swap places with pet monster even if player no longer has peacful set. At confirmation when player quits, inform them that quitting will delete the chararacter. When a weapon is improved by the god, if it had no prior attactkype set, give it physical attacktype in addition to what the god gives it. By default, make new players peaceful. Fix up the fire cancellation function - it seems some of the code wasn't quite right (inserting in map vs setting the owner.) The fix should prevent some core dumps this could have caused. Fix for main loop in socket.c that should prevent infinite loops when a socket dies in some improper way. It should now drop the connection properly and continue with processing. Autoconf fixes - check for canonical system, specail check for alpha-dec-osf to add -std1 to cflags, add check for latex, add check for BOURNE_SHELL (this is used in hte makefiles, as some os's will use the users shell, but some constructs we use require bourne type shell), add check for number of args gettimeofday uses, change order when we create the makefiles to be proper. Use autoconf check above to get correct number of args for gettimeofday. Fix from Anthony Thyssen for the editor - should hopefully fix problem with delete not deleting the correct object. Remove font displaymode from editor - since we are not distributing any fonts anymore, doesn't make a lot of sense to support it. When connection is lost from player, save off the character - prevents items being dropped on the floor or the players duplicating the items. However, some additional logic will need to be added to prevent players from saving their characters in treasure rooms. Improvements in save_player which should better prevent saves from happening at inopportune times (like after they have mostly exited). Add stat_loss_on_death option (yes/no if stat is subtracted when you die.) Default can be set in config.h, and can also be changed with run time flags. Add / behind -I@x_includes@ in crossedit/Makefile.in. This should prevent the includes from being reset if there are no x_includes. Extend draw_look to send multiple item commands - this should only happen if there are a lot of items on one square. Fix should prevent crashes/memory corruption in that case. Client changes: Improve item_actions so it can handle getting pashed null objects (just return then) In create_item, only add to an objects environment if we actually have an environment to add to. configure.in changes - special check for alpha systems. Add configure option for new/old sound, and auto detection of alsa (hopefully - untested) Build both gcf and cfclient if possible. Improved Makefile.in - more dependancies and automatic defaults have rules. Support for building both the gcfclient and cfclient with the same common object files. Support for building in other directories. Include aclocal.m4 file in distribution so autoconf can be re-run Improved fire/run handling. Previously, due to the auto repeat of the x-server, numerous fire starts and stops would be continuously sent because the code would see a keypress and keyrelease events. Logic changed to eliminate that constant sending - only send the actual run/fire stop if when all x-events have been processed, the specific key is no longer being pressed. This also seems to improve interact performance when using run to move in the game. This is only fixed in the X11 client - wasn't able to figure out where in the gtk client to call the functions after all events had been processed. Size of command window setable. The command window is the number of commands the client will let go unanswered before it stops sending commands. This is setable with the 'cwindow' command, and will be saved into the defaults file so it stays constant across multiple runs. Fixes to work on black and white systems (cfclient, both pixmap and xpm) Change update_item function to update open/close containers if the flags change. Remove rotateinventory from default keybindings - no reason to keep it around, since it isn't used anymore. Increase buffer size used when reading in key bindings. Fix for x11.c to hopefully prevent FPE's - it seems that at times the players weapon speed could be zero, and dividing by that resulted in the Fpe. If the players weapon speed is zero, then we just display 0 as the speed. Remove instruction from README telling the player to copy the def_keys into their custom key file. Not needed, and clutters up the unbind list quite a bit. Patches from Tero Kivinen: Fix help files so that they do not have embedded new lines (under ansi C, strings can not span multiple lines unless continued with a \ - gcc lets this behaviour go through however). Also, change to configure.in to add -std1 to cc on digital unix. Include aclocal.m4 in distribution so end users can remake configure.in Strip leading spaces when sending complex commands. Parsing of complex commands made a bit cleaner (patch from Maciej Kalisiak) GTK changes by David Sundqvist: Compiles for both gtk+-1.0 and development gtk+-1.1.12 and onwards. Close button for open things in the look window added. Included various patches by Maciej Kalisiak for locking and marking in inventory, as well as coloring damned items too. Some cosmetic code cleanups by Charles Duffy. Tearoff menus for development version of GTK. Some small tooltips. I'd like more, but gtk is picky about what widgets it accepts tooltips for. Some fixup for drop count. Not entirely sure how that should work to be practical. Menu choice to clear info window. Speedup for image creation in non-cached mode. Main loop moved into gx11.c to allow both clients to be built at once.