Crossfire 0.95.5 has been released. There are a lot of bug fixes as well as some improvements/new features. The complete changelog is at the end of thie file. This archive should basically be the same as the 3/21/2000 nightly archive. This is not bug free, but all outstanding reported bugs to me are fixed to the best of my knowledge. NOTE: The primary ftp location has changed. I have put up old versions of the client and client sounds at the new location, so that everything can be found in one place. Files released for this version: sums (bsd) filename 10581 665 crossfire-0.95.5.arch.tar.bz2 26501 869 crossfire-0.95.5.arch.tar.gz 15025 810 crossfire-0.95.5.doc.tar.gz 38431 2232 crossfire-0.95.5.maps.tar.bz2 48979 3206 crossfire-0.95.5.maps.tar.gz 10671 1706 crossfire-0.95.5.tar.bz2 37231 2007 crossfire-0.95.5.tar.gz Sums (md5) f22ac0f1ed9354e106833894cc529d8d crossfire-0.95.5-README fd33f4f4a2e36bcef4c6cde3feb8d973 crossfire-0.95.5.arch.tar.bz2 8af301ef902b573ba287378a48080a09 crossfire-0.95.5.arch.tar.gz b38773d682e80487ec3fe2ed533d546b crossfire-0.95.5.doc.tar.gz c91adf05b27a441ff720b88cc0ff2a1f crossfire-0.95.5.maps.tar.bz2 133012042e18defc212f7d6a9f4022fa crossfire-0.95.5.maps.tar.gz ab7d3a479574fe37d195c45237063cd1 crossfire-0.95.5.tar.bz2 9223046457b556cccef48f02b0b6264c crossfire-0.95.5.tar.gz There is no client or sound release - neither of those have and substantial changes from previous releases. crossfire-0.95.5.tar.{gz/bz2} contains the server code with prebuilt archetype and image files. Again, many bugfixes. crossfire-0.95.5.arch.{gz/bz2} contains the unpacked archetype changes. Some new archetypes, some modifications - nothing really major, but enough to warrant a new archive. crossfire-0.95.5-maps.tgz contains the maps. Some bug fixes made, a few new additions. Like the archs above, getting updates via CVS is probably the way to go. crossfire-0.95.5.doc.tar.gz contains preformatted documentation. In this, you get the postscript spoiler and handbook, but you also get the html versions of both of those files with all the needed graphics - this is the only archive that has all the graphics pre-made. FOR FIRST TIME USERS: You will only need the appropriate server, map and client file. You do not need the arch file. If you are a first time user, you may want the doc file unless you are using a web based player referance. If you just want to play the game at some remote server, you need the client and perhaps some version of the doc file. If you are looking for a windows/NT client, look at: ftp://ftp.ifi.uio.no:/pub/crossfire/incoming (129.240.64.44) for a file called cfcXXXX.zip (XXXX are numbers representing the version - get the latest) Crossfire is avaible on the following ftp sites Primary: ftp://ftp.scruz.net:/users/mwedel/public (165.227.192.254) ftp://ftp.ifi.uio.no:/pub/crossfire (129.240.64.44) *** NOTE *** primary server has changed to pyrsonal, and this will likely be the primary for quite a while to come. Secondary: ftp://ftp.real-time.com/pub/games/crossfire (206.10.252.12) ftp://ftp.cs.city.ac.uk:/pub/games/crossfire/ ftp://ftp.sunet.se:/pub/unix/games/crossfire (130.238.127.3) ftp://ftp.cs.titech.ac.jp:/pub/games/crossfire ftp://mirror.aarnet.edu.au/games/roguelike/crossfire/ I uploaded this version to just ftp.scruz.net - it should be on the other ftp sites in a short time. Mark Wedel mwedel@scruz.net 03/22/2000 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Makefile.in: comment out the EXTRA_FLAGS (which contains the -Wall entry) - the presumption that everyone is going to use gcc to compile crossfire is a poor one, and -Wall is only supported on gcc. I would rather have it compile on the maximum number of systems without it needing changes than to require the end user to make the customizations. A better long term solution is to have configure.in check for gcc or if -Wall is supported it and have it add it in. msw 3/21/2000 server/c_object.c: Fix pick_up_object function to deal with non players picking up objects - prior to fix, program would crash when monsters pick up objects. Also, add standard banner at top of file about copyright, contact, version information. msw 3/21/2000 CREDITS, README: Updated to contain my new mailing address. In reality, almost all the files have an out of date address for me, but these are probably the ones people will look at most. README also updated with new ftp location. msw 3/20/2000 include/Makefile.in: Update files to include material.h - need when packing up new releases - msw 3/20/2000 doc/hanbook.ps, doc/spoiler.ps, doc/spoiler-html/spoiler.html: Rebuilt with latest version of crossfire - not sure if there are any content changes, as the tools to build the file have been updated on my system, causing many changes to the prologue and outputted data. - msw 3/20/2000 Change doc/spoiler-html/Makefile.in and doc/playbook-html/Makefile.in to use $(datadir) instead of $(C_LIBDIR). Other add AWK and INCDIR lines so that it properly builds with autoconf setup. msw 3/19/2000 Change spoiler.tex, handbook.tex to build properly with later versions of tetex - added language specifier when using the babel package. msw 3/19/2000 Add missing doc/playbook/fig directory to the CVS reposistory - msw 3/18/2000 Change summon_cult_monster code so that it will no longer summon big monsters on top of walls or the player. Also, if there is not space for a big monster, try to find another pet monster that will fit in the space. File affected: server/spell_effect.c - msw Change gorokh.arc to use anim devil instead of anim Lucifer - fixes crash when using avatars of gorokh - msw Split off kill_player function from do some living, and check for player death upon player login. This splits up an otherwise very large function, but more importantly, the second point allows NOT_PERMADEATH to work as expected when the player is dead when logged out. Previous, the if the player was dead when they logged out, it would just kill off the character permanently (without grave marker or anything), even in NOT_PERMADEATH mode. Also, cleaned up player load code to remove code that supported very old style save files. Files changed: server/login.c server/player.c include/sproto.h - msw Change NO_STAT define in living.h,skillist.h,skill_util.c to NO_STAT_VAL to remove conflict on AIX systems. - msw Fix error in configure.in - was referancing BZIP2, when it should have used BZIP - msw 2/7/2000 server/skill_util.c: Fixed spelling of unwield configure.in: Update -z checks to not use eval, double quote the variable. This seems to be needed on solaris and probably other systems. Both changes commited by Mark Wedel, 2/7/2000 ---SMALL BUGFIX--- John Cater 5/11/1999 server/attack.c: - changed the logic in hit_player to attack enemy races with holy word playtested ---BEGIN BATCH UPDATE--- DAMN 9/17/1999 server/alchemy.c: - minor cleanup server/apply.c: - split multiple lighters server/attack.c: - vulnerability gives -4 to saving throw against non-damage attack effects - immunity to acid reduces the probability of corrosion - immunity and protection and not vulnerability to acid prevents corrosion - magic bonus improves item's saving throw against acid - vulnerability to drain doubles rate of exp loss, protection halves rate - holy word slaying is checked in hit_player, no need to double-check in hit_player_attacktype - prot:magic and vuln:magic affect all magical damage, not just raw magic - Holy Word and Turn Undead affect undead at half strength if they're not listed as an enemy race - Holy Word and Turn Undead have no effect on undead if they're listed as a friendly race - minor bugfix/cleanup server/gods.c: - minor bugfix/cleanup - luck slightly improves chance of divine intervention server/input.c: - fixed typo server/main.c: - trivial bulletproofing, probably no effect server/player.c: - sp regen penalty from armour calculated in fix_player instead of being recalculated for each spell point gained. server/shop.c: - payment will come from open pouches if you don't have enough in your top-level inventory - money for sold items will go into open pouches until they're full, then overflow into top-level inventory server/skills.c: - minor bugfix in throwing - writing in one of a stack of books seperates one book out first server/spell_effect.c: - generalized staff_to_snake to animate_weapon server/spell_util.c: - Staff to Snake, Dancing Sword, and Animate Weapon spells now all use animate_weapon function - holy golems avoid damaging their owners - raw mana spells common/living.c: - minor bugfix - fix_player now calculates sp regen penalty from armour common/readable.c: - spelling fix: grimore -> grimoire doc/crossfire.doc: - minor edits include/defines.h: - moved object type numbers to object.h - moved flag numbers to object.h - moved NROFREALSPELLS to spells.h - moved path numbers to spells.h - moved DESCRIBE_PATH macro to spells.h - moved ARMOUR_ and WEAPON_ macros to player.h - moved player state numbers to player.h - moved monster movement numbers to living.h - moved NROFSKILLS to skills.h include/global.h: - #defines from spells.h and material.h loaded early include/object.h: - now has the #defines for object type numbers include/skills.h: - moved NROFSKILLS here include/player.h: - added gen_sp_armour variable include/spellist.h: - added mana spells, Dancing Sword, and Animate Weapon include/spells.h: - moved NROFREALSPELLS here and updated it - now has the #defines for spell path nummbers - added mana spells, Dancing Sword, and Animate Weapon include/sproto.h: - added animate_weapon and pay_from_container prototypes include/material.h: - new lib/spell_params: - added entries for mana spells along with their fire equivalents lib/formulae: - minor spelling fixes to match minor spelling fixes in artifacts lib/artifacts: Weapons - Sanwe -> Gnarg (any weapon) chance 5, value x10, magic 0, dam 120% - Lythander (any weapon) chance 5, value x20, magic 0, luck +1, weight 90% - Gwormi -> Gaea (wooden weapons only) chance 20, value x50, magic 2, regen +1, dam 110% - Slay Demon -> Valriel (any weapon) chance 15, value x30, magic 2, weapon speed 120%, slaying demon - (new) Gorokh (any weapon) chance 15, value x30, magic 2, weapon speed 120%, slaying angel - (new) the Devourers (any weapon) chance 8, value x30, magic 1, attacktype: physical, cold, depletion - (new) Mostrai (axes and hammers only) chance 10, value x12, magic 1, dam 140%, weight 115% - (new) Sorig (metal weapons only) chance 5, value x15, magic 1, weight 95%, weapon speed 125% attacktype physical, electricity - (new) Ruggilli (metal weapons only) chance 5, value 15, magic 1, weight 85%, weapon speed 110% attacktype physical, fire Helmets (moved to after weapons, with the rest of the armour) - Lordliness -> Valriel (full helm only) chance 20, value x50, magic 2, Wis +1, Cha +1 - Uriel -> Sorig chance 10, value x20, magic 1, ac +1, armour 120%, prot electricity Shields - Theodin -> Mostrai chance 8, value x24, magic 1, prot fire - Gnarg chance 8, value x12, magic 1, ac +1, armour 180%, Cha -1 Gauntlets - (new) Sorig (gauntlets only) chance 15, value x75, magic 2, armour 10, weight 125%, attack: electricity - (new) Sorig (gloves only) chance 10, value x10, magic 1, armour 5, weight 125%, prot: electricity Armour - (new) Valriel (plate and scale only) chance 6, value x20, magic 1, armour 120%, weight 110% - (new) Gorokh (plate and scale only) chance 6, value x15, magic 1, ac +2, armour 110%, weight 105% - (new) Ruggilli (plate, scale, or dragon armour) chance 10, value x55, magic 3, ac +1, armour 120%, weight 90%, prot: fire - (new) Gaea chance 10, value x25, magic 2, ac +1, armour 120% Cloaks - (lesser version of cloak of the Underworld) the Devourers chance 3, difficulty 3, value x50, magic 3, weight 50%, material 0, Cha -2, prot: acid, drain, ghosthit, depletion Bows - (new) Valriel chance 10, value x15, magic 1, weight 110%, damage 200% - (new) Gorokh chance 15, value x15, magic 2, damage 160%, attacktype: physical, acid - (new) Lythander (not crossbow) chance 10, value x22, magic 1, weight 75%, wc +1, speed 150% - (new) Ruggilli (crossbow only) chance 10, value x18, magic 2, weight 85%, wc +1, speed 110%, attacktype: fire - (new) Sorig chance 12, value x20, magic 2, weight 95%, wc +1, speed 125%, attacktype: electricity - (new) Mostrai (crossbow only) chance 5, value x50, magic 3, damage 140%, speed 75%, attacktype: weaponmagic - (new) Thunder chance 10, dificulty 5, value x10, magic 2, weight 90%, damage 150%, wc +2 attacktype: physical, slow, paralyze ...and a few minor spelling fixes ---END OF BATCH UPDATE--- DAMN 9/17/1999 Add crossfire.oc.humbug.org.au server information to README file - msw Change compress method definitions from being determined by checks on system type to having autoconf find the utilities for us. Also, add bzip2 support. Files affected: Makefile.in configure.in common/map.c server/init.c server/login.c include/config.h include/define.h include/autoconf.h.in - msw Fix in server/rune.c - if the victim of a trap/rune is not on a map and the object has a disease, it would crash the server. Temporary fix put in to make sure there is a map, and if not, use a predefined difficult of 1. I think the real issue is how can an object not on a map be setting a trap (in this particular bug, reported by Klaus Elsbernd, the victim was a thrown object) - msw Change by dragonm@absolut.tegris.org - improve crossedit so that if you try to load a map you alreay have in memory, it will raise the window - it will also give you the option to forget, save changes, or just raise the window if the in memory version of that map has been modified. Checked in by msw. (crossedit, App.c, Edit.c, Edit.h) Bugfix in server/apply.c - apply_container() When checking for keys to locked containers, only searched player's inventory, not keyrings. Changed to use FindKey function in player.c, which does search keyrings. --DAMN Bugfix in server/main.c - enter_exit() Unique maps were using their actual location as a path for moving to a new map. They need to use the location of the original map, not the character's individual copy of it. This is re-constructed from the individual map's filename, which is based on the original path. --DAMN Remove xbmtobdf man page - since it is run automatically and it is likely that people will not run it manually (and it appears to be innacruate - or at least imcomplete), may as well remove it. - msw Change install location of man pages to section 6 instead of section 1 - msw New man page submitted by Egbert Hinzen that is actually correct and accurate as the options now relate to crossfire. - msw This one is a suggested fix for the alchemy bug that grants obscene amounts of experience for certain formulas. Those formulas are the ones that create items with a high fixed level, because those items are pretty worthless otherwise. Dust of Repelling Undead, for example, is level 30. The fix I implemented here is to base the chance of success largely on the level of the product, so it's very difficult to produce something like Dust of Repelling Undead, and therefore worth the extra experience. The chance of success is now based on the following factors: 1) level of product 2) number of ingredients in formula 3) rarity of formula as listed in "formulae" data file 4) number of batches being made 5) Alchemy skill (if present) 6) enchantment of cauldron 7) luck patch from DAMN This one makes a couple things level dependent that used to be fixed: 1) time it takes Word of Recall to take effect 2) amount of energy transferred by Transferrence spell 3) percentage of energy drained by Magic Drain spell Also, the following effects have been modified: 1) Followers of a cult that considers undead enemies have a penalty to Command Undead. 2) Magic Drain gives back to the caster a small portion of the energy drained from the victim. And a bug was fixed: 1) SP_level_dam_adjust used and SP_level_strength_adjust used the player's level, where they should have used the caster's level. --Patches from DAMN, applied by PeterM Marker object added, alchemy modified so that recipes can require keycodes and MARKS to execute, detectors modified to be able to detect MARKS, and all of this documented in crossfire.doc --PeterM server/gods.c -- changing gods now costs players their special prayers. --PeterM server/alchemy.c -- levels less than ten no longer produce cursed items, but only slag or nothing. --PeterM server/shop.c -- unidentified stuff is worth at most 60gp or so. ---PeterM random_maps/style.c - fix type in the scandir function which cause compilation problems for those systems that actually need it. - msw Change command_cast_spell so that it preserves a return value from find_spell. This re-enables partial spell matching (ie, cast prot will show all spells that start with that.) - msw