Crossfire Archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

CF: New server and client versions




This mention is only intented for the mailing list, and not the announcment
list.  The main reason is that the configuration has been switched
to use autoconf instead of Imakefile's for both the client and server.

 The servers itself seems reasonably stable - I can complete the 
newbie tower without any problems.  This hardly says it is perfect, 
but it certainly is not so bugridden that that it is unplayable.  In
fact, the serve at whitestar.pyrsonal.org is now running 0.95.0.

 The main change in 0.95.0 server is the removal of all X11 dependent
code.  This means you should be able to compile and run on a system
lacking windowing binaries.

 The main change in the 0.94.4 client is the merging of the gtk code
plus various improvements.

 Even if you don't plan to extensively use either the client or server,
if you have the time, I would appreciate just downloading and trying
to compile so I can have a good idea of the configure scripts are
checking for all that is needed, or make further refinements.

Enclosed at the end of this message is a more detailed copy of the change

There are five separate tar archives in the Crossfire 0.94.3 distribution:

sums (bsd)  filename
24151   195 client-0.94.4.tgz
19165   918 crossfire-0.95.0-arch.tgz
61063  3110 crossfire-0.95.0-maps.tgz
25370  1911 crossfire-0.95.0.tgz

Sums (md5)
143793e6109600026378dc49874dc152  client-0.94.4.tgz
930001cd972dab3287e0697df07d6397  crossfire-0.95.0-arch.tgz
28429af881d9d1838cb9b46b50a1e3cf  crossfire-0.95.0-maps.tgz
ace08fb80fd42f9102151f5f1050e88b  crossfire-0.95.0.tgz

client-0.94.4.tgz is the client distribution.

crossfire-0.95.0.tgz contains the server code.

crossfire-0.95.0-arch.tgz is the archetypes.  I am not sure what, if
any, has changed.  The change in the collect script has changed the
order in which directories are traversed, so I can't just do a diff
of the archetypes like I normally do to see teh changes.

crossfire-0.95.0-maps.tgz contains the maps.  The only change I am
aware of is the addition of per player apartment maps.

The sound and doc files should be unchanged.  No patch file at this
time - lots of changes, and I haven't gotten around to moving
support into the new makefiles.

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 and have no interesting in compiling it, you may then
want to get 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)
    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
9/28/1998

Server Changes:
Changes from Crossfire 0.94.3 to 0.95.0:

Added diagnostic message if you try to use a skill and it can't find a match

Fix in send item command to better handle objects with a huge number of
items in its inventory.

Shop listing code simplified - send all data to the client at once instead of
havign to store it and wait for the player to hit a keypress.

Fix bug in ghosthit which would cause server to crash (patch for 0.94.3
was released for this bug)

Some general code cleanup - fixing/removing unreachable statements, removing
unused variable.

Build/configuration now done by autoconf (run ./configure).  This cleans up
a lot of special checks throughout the program, and hopefully should be
more portable.

Cleaned up/rearranaged the include/.h files.  Prior, most all structures
where included in structs.h.  Structures and support values now in unique
header files (ie, player structure and support enums and like in player.h,
object structure and support in object.h, etc.).  This doesn't change the
working on the code, but is just easier to maintain.  global.h takes care
of including these is the correct order.

Many options now removed from config.h file.  Options removed either relate
to X11 code/old server support or machine specific details which we can
now pick up via autoconf.

Better speed checking in update_object_speed.

When improving a weapon, client should now get updated (code was updating
the incorrect object)

Improve apply below to be more bug free (that is to say, we preserve
the pointer to the next object - I think there were cases where the
last of an object was applied, and thus removed, but the apply function
did not return a code specifying something was applied, so the code would
then try to apply an object with an invalid pointer)

Fix for collect.pl script to fix problem traversing directories.

(note for 0.95.0, there were many large scale changes, so many of the
entries below are more of just an overview of what changed, and not a highly
detailed account of the changes.)

Fix/improvement in player movers so that players trying to run in the
direction they move don't move incredibly fast.  They will still seem to
move faster (I am guessing roughly player speed + mover speed now).  I am
not sure of the original bug, but my guess is that the mover moves the
player to the next mover (which has a low speed).  But now the player still
has his own action left, and moves to the next mover which has high speed,
so wisks the player to the next mover, which has low speed, so he
effectively moves 3 spaces in one tick when he should just move one.

Changed save player method so that a directory is created for each
player.

Added per player unique maps (new apartments).  Maps from Christian
Stieber, however the implementation is a bit different - if an exit is
marked as unique, it will lead to a unique maps.  The unique maps are 
stored in the new player save file directories as above.

Removed all X11 support from the server code.  Change crossedit so that
it can read in the pixmaps as they are stored in for the client/server
support (so that only 1 copy needs to be kept).  This method of reading them
in is slower than the montage method unfortunately.

Changed socket handling.  Port 13326 has been removed from active service.
Socket information is now part of player structure, which cleans up a lot
of the old code which had to do with find the player that correlates to
a socket and vice versa.

Fix bug so that if invaliad variable is given to dm 'patch' command, program
no longer crashes.

Fix bug so that containers that have a huge number of items don't crash
the server (a container needed to have more than 250 items for this to
happen).  The real problem is containers that allow an infinite amount of
junk to be stored in them (Lepreds bag, but this item/map isn't part of the
standard distribution).  Even with the fix, there still becomes some point
where problems will occur (around 2000 items, the amount of data that
needs to be sent would exceed the size of the output buffer).  In any
case, with that many items in place, the player will see a noticable
performance hit when such containers are opened.

Fix bug that caused the program to crash when attacking ghost or other
creatures with ONE_HIT flag set.

Print out message to player if they have old keybindings.

Some map fixes by Christian Stieber - eliminate ability to bypass
quest and typo fixed in other map.

Fix so that perceive spell (off of rods/staves/scrolls) properly finds
the god of the player.

------------------------------------------------------------------------------
Changes for 0.94.4:

Set receive socket buf to 64K.

Added item type detection and sorting (prior, items basically appeared
in the inventory in which they were sent.)  Ordering can be changed/extended-
see item_types file.

Incorporate gtk version 0.94.3auto into this release to have one common
client source base.

Support for complex keybindings (more than one command bound to the same
key, seperated by semicolons)

added -nocache command line option (default behaviour, but option needed
if your defaults file is set to cache).

When receiving new xpm image from server, create xpm data from the
data provided instead of saving it to a file and creating it from the
file.  This should be much faster.  If we are caching images, we still
save the data to a file but use the buffer to create the image (this
is the same thing that pixmap display does).  This is only true for
the x11 client - I am not sure what the gtk client does.

Added support in the client to understand the 'goodbye' command from
the server.  This is to allow the client clean exits.  SC protocol
updated for 1022 for this.  'goodbye' will be in the 0.95.0 server.

------------------------------------------------------------------------------



-- 

-- Mark Wedel
mark@pyramid.com


Follow-Ups: