[CF-Devel] Crossfire 0.96.0 released.
Mark Wedel
mwedel at scruz.net
Tue Feb 13 01:14:05 CST 2001
Crossfire 0.96.0 has been released. Despite many changes from the last release,
this release should be quite stable - its been tested fairly extensively.
Unless serious bugs are detected, this will likely be the last release before
1.0.
Main changes:
New random map layouts added.
Re-done player exit code - this should hopefully fix players appearing in
the middle of oceans.
Server will send image checksums to client when client is caching images -
in this way, client knows to request new image or not (both client and
server change)
New spells
PNG support added to editor.
Partial Resistance code added. Protections now have numeric values,
and add up.
A complete list of changes is at the bottom of this message.
NOTE TO MIRROR SITES: The primary site (ftp.scruz.net) has limited download
bandwidth per day. If this poses a problem, you want a more reliable method,
or you just want a backup method. please drop me a mail message - I have set
up a secondary server off my ADSL link, but being that only has 128 kb
upstream bandwidth and is also used for other interactive purposes, I don't
want to make it available to all.
Files released for this version:
sums (bsd) filename
04869 1507 crossfire-0.96.0.arch.tar.bz2
65381 1796 crossfire-0.96.0.arch.tar.gz
63394 2645 crossfire-0.96.0.maps.tar.bz2
12882 3807 crossfire-0.96.0.maps.tar.gz
11913 2641 crossfire-0.96.0.tar.bz2
60544 2967 crossfire-0.96.0.tar.gz
27062 237 crossfire-client-0.96.0.tar.gz
Sums (md5)
709ccf30ed6489dc3673b93be20b105b crossfire-0.96.0.arch.tar.bz2
290f8cb22336459b2ac9f42a440954e9 crossfire-0.96.0.arch.tar.gz
b0b21296ba967e90388bce9b789a49ff crossfire-0.96.0.maps.tar.bz2
76c6574c7fb50d3fe27dfc659f4c1be3 crossfire-0.96.0.maps.tar.gz
d29d939ccc7d0e02e14949e23f2109fb crossfire-0.96.0.tar.bz2
cf42d4c6f2ef2595424a14a110a8bcbb crossfire-0.96.0.tar.gz
2b6d9d9d6c355082a467805a301e7eb4 crossfire-client-0.96.0.tar.gz
crossfire-client-0.96.0 is the client (X11) distribution - standard
X11 and gtk interfaces are provided.
crossfire-0.96.0.tar.{gz/bz2} contains the server code with prebuilt
archetype and image files.
crossfire-0.96.0.arch.tar.{gz/bz2} contains the unpacked archetype changes.
This is not needed if you only want to compile the server and play the
game.
crossfire-0.96.0-maps.tar.{gz/bz2} contains the maps. This is needed
with the server distribution.
No doc archive at this time - I don't believe anything in it should have
changed much.
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.
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)
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/
ftp://crossfire.futt.org//pub/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 at scruz.net
01/28/2000
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Changes:
Client:
MSW 2001/02/02:
Protocol: Update with new face1 command that includes checksum.
client.c: add face1 protocol command.
client.h: Update version_sc to 1026.
commands.c: Move FaceCmd from gx11.c/x11.c to this file, since it
now only does decoding of data and passes rendering off to appropriate
file. Also add Face1Cmd function that deals with checksum. Both
of these functions pass off the rendering to the same function.
gx11.c: add keepcache variable, re-do facing loading/caching - if
we have local version of face, generate checksum of it and compare
to that against what server has. finish_face_command added to
do this - called by the face functions in commands.c. Add
-keepcache command line option which will have it not request
images from server if checksum is different. Add usleep
in metserver selection area to prevent client from hogging all the cpu
time.
item.c: Add support for ^ in items file to say only match at start of
line. Useful for 'bolt' - doing substring also matched against firebolt.
item_types, item_types.h: make bolt ^bolt, add Head and hauberk to matching
criteria.
proto.h: automatic regen.
x11.c: As gx11.c above, plus: Use one font for all windows - reduces
complexity. Add easy selection of font to use with -font command
line option.
xutil.c: As gx11.c for relevant functions that are located in this file
and not x11.c
End of MSW 2001/02/02 checkin.
MSW 2001/01/31:
client.c: Clear player inventory and look windows after disconnection
from server. Prevents client crashes.
gx11.c: various fixes - window placement no longer always centered on screen
(very obnoxious if running xinerama), various prototypes fixed up,
clear map data after clearing image data.
player.c: Add suport for 'mapredraw' command. Not that this should ever
really be needed, but the server supports it, so its nice to be able to
use it.
x11.c: Fixes prototype/casting problems when clearing pixmaps. Like gx11.c,
clear map data.
xutil.c: add better description to the unbind command.
MSW 2001/1/13 (except as mentioned, all changes by MSW):
Makefile.in: Create destination dirs, remove extra tab. Patch also by Dave.
Protocol: typo fixed.
config.h, config.h.in: Add HVAE_DMALLOC_H #ifdefs. Checks currently
disable in configure.in, as with it, the sound won't like properly since
it needs -ldmalloc, and I haven't bothered investing that much time
into fixing the Makefile.
gx11.c: Patches by Dave Peticolas - mostly code cleanup, but one new feature is
support of wheel mice to move the scrollbars.
png.c: No real code change, just adjustments in some ordering which I think
makes the code appear a little simpler.
x11.c: Minor code cleanups, some formatting changes, some to make better
error messages.
End of MSW 2000/1/13 checkin.
MSW 2001/1/8:
client.h: Change damage type to be 16 bits.
MSW 2000/12/24:
png.c: Fix a major memory corruption issue - the png function
was re-allocing for a larger hunk of data, but did not update the
pointer and was still using the pointer to the smaller hunk.
Severity of this bug depended on luck - if the first png downloaded
happened to have the full 4 bytes/pixel, it never needed to do a realloc
so would work fine. Otherwise, a matter of luck what data got stomped
over. Also, modified the main function in this file so that it
you can compile against it and it now works with the new in memory
data read.
MSW 2000/12/19:
Metaserver update. Most files updated. This change has the client
connect the metaserver and lets the user choose which server to connect
to. Also, if the client loses a connection (either because the player
has quit playing or the server died), the client will no longer exit and
instead go back to the server selection screen.
A few unrelated changes (cfclient): when running cache, non downloaded
images should look better. Also, client starts up with larger window in
Png mode to take into account the extra space png images takes up in the
game window.
Changes by file:
Makefile.in: Add metaserver.c file.
cconfig.h: Add metaserver configuration information.
client.c: Add meta_ variables, move resists_name to this file, no longer
have DoClient exit if it gets an error on the socket (instead
mark the fd as -1 and return), change main loop such that if
connection to server has been lost, go through loop to establish
a new connection.
client.h: Add Metaserver_Select input state. Change resists_name from
a static to extern.
gx11.c: Remove some unused code, various code cleanups, and additions to
support the metaserver connection process.
init.c: Add reset_client_vars - call it between connections to servers.
proto.h: rebuilt for new functions.
x11.c: Update for metaserver connection status. If running Png mode,
have windows created larger.
xutil.c: When creating default images for cache, create 32x32 images for
png mode, not 24x24 images.
metaserver.c: New file for metaserver code.
End MSW 2000/12/19 checkin.
MSW 2000/12/10:
png.c, gx11.c, x11.c, xutil.c: modified to use in memory loading of
png's. This means that if not caching images, we don't need to write it out
to a temp file. This should result in a minor performance gain, but
also remove the need of using tmpnam. Also, modified gx11.c so that
it uses same logic as the x11 client for extended command key (').
Before gx11.c client would use both ' and ", and there was no way to unbind
the later - since one can always bind the command key, I found that a bit
annoying.
Updated to display resistance values in the message window. Except for
armour, this is only displayed when running against serves with PR
code. Change for both cfclient and gcfclient. Files affected:
Protocol client.h commands.c gx11.c newclient.h player.c
sounds soundsdef.h x11.c
MSW 12-3-2000
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Server:
MSW 2001/01/11:
include/rproto.h: Rebuilt for new random map code.
server/player.c: remove player insert in key_roll_stat - player is already
inserted.
server/swap.c: When swapping out map, see if it has already reached reset time,
and if so, just delete it and not save it. In flush_old_maps, now have
it check for maps that have no timeout set - this sometimes happens when
players save/die on maps.
MSW 2001/01/11:
Other than various general cleanups, the main change this code does is
that style maps (for random maps) get loaded special now - they objects
they contain are not put on the active list, and they use a private map
list so they do not appear in the output of the 'maps command.
common/arch.c, common/treasure.c,server/login.c: Update calls to load_object
common/loaderl.l,loader.c: Update lex_load to take an optional flags option.
This is currently only used so that the loader can decide if it should
call update_ob_speedto put objects on the active list or not.
Calls to lex_load updated. load_object modified to take another option
common.map.c: remove PROCESS_WHILE_LOADING and CHECK_ACTIVE_MAPS ifdefs.
update calls to load_object. Remove some dead code.
include/config.h: Remove CHECK_ACTIVE_MAPS and PROCESS_WHILE_LOADING flags.
Those options did not work, and in all likelihood, this would be done
via threading now days and not what code was there.
include/libproto.h, sproto.h: updated or various function changes.
include/map.h: Add MAP_STYLE flag.
random_maps/exit.c: Call set_map_timeout after we load the final map
so it will get swapped out.
random_maps/standalone.c: Add dummy set_map_timeout function so it compiles.
random_maps/style.c: Add load_style_map function which does the job of
actually checking to see if a style map is in memory, and if not,
loads it up. Updates the pointers so it appears on a map style map list
and not the general map list.
server/main.c: create set_map_timeout function that deals with setting the
map timeouts. Fix bug so server doesn't crash if two players kill each
other on hall of selection.
server/monster.c remove dead code.
socket/loop.c: If realloc fails, catch it and exit with meaningful
error message.
End of MSW 2001/02/11 checkin.
MSW 2001/02/08:
server/login.c:Fix that would prevent maps from getting swapped out properly -
we would try to swap out a map the player is in the process of leaving - move
swap out code until after we have moved the player to the new map. MSW
2001-02-08
MSW 2001/02/06:
common/porting.c: relocate clean_path from this file to server/main.c
server/main.c: relocate clean_path from porting.c. Add unclean_path.
Modify enter_unique_exit so it supports relative maps on unique maps.
Modify enter_exit so word of recall (or other forcelike fields), work
when the return point is a swapped out unique map.
MSW 2001/02/05:
server/attack.c: Fix blind and paralyze - logic for reducing duration was
broken, resulting in zero duration for most characters. It should now
work properly, reducing according to the amount of protection.
MSW 2001/02/02:
common/item.c: Don't have armour item types get returned as magical if they
have an armour value - that is to be expected. This eliminates the false
positives that you otherwise get on armor when you cast detect magic.
include/newserver/h: and checksum field to FaceInfo struct. Update
version_sc to 1026.
socket/init.c: calculate image checksums as we load the images.
socket/request.c: If client is at least version_Sc 1026, use face1 protocol
command that includes the checksum.
MSW 2001/01/31:
common/object.c: Fix that that spells cast on spaces with no floors get
set properly after the spell expires.
common/player.c: Use skill tools first (lockpicks, talismans, etc) before
using native skills. In this way, an object with bonus automatically
gets used.
common/living.c: Fix so that negative con bonuses work properly - fixes
bug where a higher con could result in lower total hp due to improper
calculation.
MSW 2001/01/30:
Complete rewrite of the exit handling code. Hopefully as an effect, this will
fix the player appearing in the middle of the oceans. I think the code
should also work better in many other areas. Main enhancements is a 3x3
area for pets to follow player to new map, as well as golems now following
players to the new maps.
include/sproto.h, random_maps/rproto.h - rebuilt.
random_maps/random_map.c: Change generate_random_map to take a structure
with the random map paremeters.
random_maps/reader.l, reader.c: Add set_random_map_variable function that
reads the map parameters from a char buffer. Also, remove some leftover
comments that were from the common/loader.l file.
random_maps/rogue_layout.c: Change some functions to be static so make proto
doesn't collect them.
random_maps/standalone.c: Add opening of parms file into main function since
it ws removed from the random_map.c file.
server/apply.c: Don't display the message of random maps to the players
as they enter them, as this message is random map parameters, and not
a real message.
server/login.c: #if 0 out using of the player loading element in the structure.
this isn't used right now.
server/main.c: Bulk of the changes. main changes are to break apart the
old enter_exit function into smaller functions that more logically do
the needed function (random maps, unique maps, and transferring the player
to the new map). random map code now passes the parameters via
structure instead of file in /tmp. Code is much more understandable now
and hopefully bugfree.
server/pets.c: minor changes/bugfixes. Search full SIZEOFFREE array, use
real owner variable when print out messages.
server/player.c: Remove usage of the loading variable in the player structure.
End of MSW 2001/01/30 checking.
MSW 2001/01/23:
Various cleanups/fixes as detected by purify:
common/anim.c: animation[0] was given a null pointer as the name, but
bsearch/or comparison function will try to de-reference it.
Give it a unique name.
common/loader.l: msgbuf was being used initialized in the main loading
function. loader.c also regenerated.
common/object.c: find_free functions were not checking to see if the
spaces they were examining were out of the map. Added checks
to do so.
server/apply.c: buf was being used uninitialized in the function.
socket/init.c: input buffer needs to be initialized as we do a
strncasecmp against the buffer which may not have any data in it.
MSW 2001/01/18:
server/skill_util.c: add change_skill_to_skill function to be used when
we already know the skill object we want to use. This is more efficient
than change_skill which takes a skill number and then searches the
inventory for the object.
remove extra esrv_send_item from do_skill_attack - don't need to send
skills to player.
do_skill_attack: remove call to hth_damage - that function does not take
into account objects in the player inventory that increase damage,
and since that is called each attack, it is not feasible to have it
search the players inventory. Instead, we just rely on damage generated
by fix_player - only think hth_damage did was adjust damage based on
level difference.
PeterM 2001/01/16
Added randomly-generated nethack-style maps to crossfire's
random map generator.
MSW 2001/01/15:
Change blindness and paralyze so that duration is reduced based on protection
the player has. file server/attack.c
MSW 2001/01/15:
Various fixes for friendly object code:
common/button.c: Add missing call to remove_friendly_object
common/friend.c: Pretty much completely re-written. add_friendly_object now
checks to make sure the object being added isn't already on the list,
remove_friendly_object will remove objects whose tags don't match,
and added clean_friendly_list.
common/object.c: No reason to use the function pointer to
remove_friendly_object since that function is in the lib.
common/time.c: Make DEBUG_TIME always on (no longer compile time option).
other areas use the global var pticks, so if it was turned off, compile
would break anyways.
common/treasuer.c: No longer print debug messages on artifacts created.
Cluttered log file making it hard to see more important errors.
include/config.h: Remove DEBUG_TIME define.
include/libproto.h: Rebuilt for clean_friendly_list function.
server/main.c: rewrote do_specials to do things based on pticks variable.
This allows various specials to be spread out across multiple ticks
easier. Also, added clean_friendly_function to part of what this does.
server/skills.c: add missing call to remove_friendly_object. Also, removed
from #if 0 .. #else .. #endif code.
End of MSW 2000/01/15 checkin.
PeterM 2001/01/08: Wrathful Eye spell implemented.
MSW 2000/12/26:
Checkin of Jan's new god intervention code. I haven't played around with
it much, but I haven't seen any really obvious problems.
common/living.c: remove learn_prayer_chance
common/treasure.c: Various changes to treasure generation - mostly to
deal with starting equipment and putting it in the inventory.
doc/crossfire.doc: Update docs on god intervention.
include/define.h: GT_... flags removed.
include/treasure.h: GT_... flags added. Addition flags added from
what was in define.h before.
lib/archetypes, lib/crossfire.png, lib/treasures: Updated with new
archetypes and treasures.
random_maps/standalone.c,server/rune.c,server/time.c: Calls to
create_treasure updated
server/apply.c: New functions for god intervention added, update calls
to create_treasure, other god related changes.
server/c_wiz.c: Calls to create_treasure updated, various functions to
allow DM's to learn/unlearn spells added.
server/commands.c: Various commands added to the wiz set of commands.
See commen for c_wiz.c
server/disease.c: Changes to reduce_symptoms
server/gods.c: Numerous updates for god intervention code.
server/player.c: Modifications for starting player equipment.
server/skill_util.c: Display the god the character worships when they
issue the skills command.
server/skills.c: Minor cosmetic change made to message when praying on altar.
server/spell_effect.c: Changes related to gods, cure spells, and
generation of treasures & items.
End of MSW 2000/12/26 checkin.
MSW 2000/12/23:
include/define.h: Add SIZEOFFREE1 and SIZEOFFREE2 values to use instead of
arbitrary constants in the code.
server/monster.c: change communicate function to use above values. Before
it was stopping one short of the full 2 space array, so one particular
space (-1, -2 relative to player) would not hear players speech.
server/attack.c: Don't exit hit_player function if damage is reduced to 0
in magical attacks. This was preventing face of death and probably a lot
of effect only spells from working.
server/spell_util.c: modify check_cone_push to use move_object to blow
the objects. Before, multisquare monsters were getting sliced
into their individual components - move_object deals with multisquare
objects
properly.
PeterM 2000/12/18: Re-add the conflict spell (various files)
attack.c: fix a bug which could easily have led to seg fault,
and did when I was testing under efence.
MSW 2000/12/17: Various changes. Note that the scope of files in this checkin
make it appear that a lot was changed, but in fact it was mostly just
re-orginization - very little code has actually changed.
include/autoconf.h.in: Add HAVE_LIBDES to file.
include/config.h: Remove comments after defines for MAP_MIN/MAX timeouts.
This just removes some warnings during compile. comments are now
on lines by themselves.
include/player.h: remove shootstrength for player structure. It was unused.
server/Makefile.in: remove input.c file, add c_range.c file.
server/c_chat.c: remove command_last, add command_shout and command_tell
from input.c to this file. Also fix bug in command tell which
would let players crash server at will.
server/c_misc.c,server/c_object.c: Relocate many functions
from input.c into these files.
server/c_move.c, server/c_new.c: Add standard crossfire banner comment.
server/c_range.c: New file - contains range related commands,
including spell casting (relocated from input.c)
server/c_wiz.c: move command_invisible from input.c into this file.
server/commands.c: Remove unused commands (bell, last, strength)
server/input.c: removed file.
server/main.c: Change HAVE_DES_H to HAVE_LIBDES
server/player.c: When choosing a race, draw it facing south for best
presentation of image.
server/spell_util.c: Remove dead code (#if 0 shootstrength related
code)
socket/loop.c: remove unused variables.
NOTE: Due to the addition/removal of files, you will need to do
'config.status; make depend; make' from the top level directory for
everything to be compiled properly.
End of MSW 2000/12/17 checkin.
PeterM: 2000/12/17: Various problems fixed in
random_maps/*.c: endless loop removed,
exit leading to blocked area of spiral fixed.
PeterM: 2000/12/17: Stat max bug fixed.
server/apply.c
MSW 2000/12/16:
server/player.c: If the player race archetype has a message, print that out.
This allows a descriptive message about what the different races will
get. The message is removed from the player once they decide on the
race.
common/living.c: Add some parens around some PR resistant checks - eliminates
warnings from gcc.
server/disease.c: have cure_disease remove all diseases a player is infected
with. The code suggested it was attempting to do so, and the
messages it printed out certainly suggested that the character
was disease free.
PeterM: 2000/12/14: Added spiral map layout
PeterM: 2000/12/14:
Restructuring of the random map code. Functionally, it
should be identical. All global variables moved into the
functions.
MSW 2000/12/10:
utils/metaserver.pl: Various improvements. Main one is that tcp
connections to port 13326 of the metaserver will dump the information
in a easily parsable format for the client or other applications.
include/config.h: Set ARCHTABLE size to correct value.
server/player.c: Have server send update item to client for players face
while select class. Added esrv_new_player in Roll_Again, because
without it, the client had yet to receive information on what tag
the player was so could not make sense of the updated face.
server/spell_effect.c: Balance issues for polymorph. Reduce maximum
value for high valued objects, remove ability to polymorph generators,
put maximum level on polymorphed monsters and give them saving
throws against the effects.
MSW 2000/12/5:
server/player.c: Move location of where it sets the player has_hit variable
until after we have confirmed that the player has actually attacked a monster
and not that the space is blocked. Fixes various problems and make
behaviour more predictable.
common/button.c: Do not set path_attuned when loading connected objects from
within
the editor. This is normally done for random map code/glue logic.
common/player.c: When trying to find a skill to use, use a native skill
first before going off and returning a skill object like a talisman.
MSW 2000/12/4:
common/treasure.c: Make it so resistances from artifact files are absolute
adjustments.
Makefile.in configure configure.in: Fix check for libdes to see if des_crypt
exists in libdes before setting HAVE_LIBDES
crossedit/Makefile.in: Add Cnv/libCnv.a before LIBS - should fix
linking error on irix systems.
utils/metaserver.pl: modified so it ignores entries from hosts that
report their name as put.your.hostname.here
MSW 2000/12/3:
crossedit/Attr.c: Add the new resist names to set of variables one can set.
MSW 2000/12/3:
Misc changes. Main one is adding PNG support to the editor.
TODO: Remove outdated things to do (like partial resistance code)
configure, configure.in, include/autoconf.h.in: Add check for libpng.
include/global.h: Remove displaymodes - moved to crossedit/Defines.h
crossedit/App.c, crossedit/App.h crossedit/CrEdit.c crossedit/CrFace.c
crossedit/CrList.c crossedit/CrUtil.c crossedit/Edit.c crossedit/crossedit.c
crossedit/xutil.c, crossedit/png.c (new file): Add support for png display
in crossedit.
crossedit/Makefile.in: Add png.c file.
server/c_misc.c: Change who command to only display real players, and not
players in process of connecting/unconnecting. Also, remove code to display
old sockets, since those are not supported anymore.
MSW 2000/12/3:
Checking for partial resistance code. Various minor errors also fixed
(compiler warnings, unused variables, Makefile.in changes, etc).
PR code also includes support to send protections to the client.
Files changed:
common/Makefile.in common/button.c common/exp.c
common/friend.c common/holy.c common/info.c common/init.c
common/item.c common/living.c common/loader.c common/loader.l
common/object.c common/player.c common/re-cmp.c
common/readable.c common/treasure.c crossedit/App.c
crossedit/crossedit.c crossedit/proto.h doc/crossfire.doc
include/define.h include/global.h include/libproto.h
include/newclient.h include/newserver.h include/object.h
include/player.h include/sproto.h lib/Makefile.in
lib/archetypes lib/artifacts lib/crossfire.png
lib/crossfire.xbm lib/crossfire.xpm random_maps/rproto.h
random_maps/special.c random_maps/style.c server/Makefile.in
server/apply.c server/attack.c server/c_misc.c
server/c_object.c server/commands.c server/disease.c
server/gods.c server/input.c server/monster.c server/player.c
server/resurrection.c server/rune.c server/spell_effect.c
server/spell_util.c server/swap.c socket/metaserver.c
socket/request.c
Added Files:
include/attack.h
More information about the crossfire
mailing list