[crossfire-announce] Crossfire 1.9.1 released

Mark Wedel mwedel at sonic.net
Fri Jun 30 02:41:06 CDT 2006


Crossfire 1.9.1 has been released.  There are lots of more minor
changes.  List of more major changes:
------------------------------------------------------------------------------
Fix several spells that stopped working with new movement code in 1.9.0
Addition of 'Bot' flag to denote if character is controlled by real player.
Addition of new map sending protocol (map2) - this add more map layers
   to client.
Lots of code cleaned up to be more consistent.
New configuration options in settings file (permanent_experience_percentage,
     death_penalty_percentage, death_penalty_levels)

Client 1.9.1 Changes:
------------------------------------------------------------------------------
Alsa9 sound support fixed.
Support for map2 protocol.
Improvements to gtkv2 client - Supports lower resolution, inventory and
   metaserver lists are now sortable, config window to set options added.
Autocompletion for more commands added.
IPv6 support added.

Files released for this version:

sums (bsd)  filename
44889  2915 crossfire-1.9.1.arch.tar.bz
29215  2915 crossfire-1.9.1.arch.tar.gz
17917 21548 crossfire-1.9.1.maps.tar.bz
20860 15625 crossfire-1.9.1.maps.tar.bz2
23404 21557 crossfire-1.9.1.maps.tar.gz
53659  5454 crossfire-1.9.1.tar.gz
45577   737 crossfire-client-1.9.1.tar.gz
48891  2630 crossfire-client-images-1.9.1.tar.gz
25694   316 crossfire-client-sounds-1.9.1.tar.gz

Sums (md5)
43d40b1a8c5addfd0145b4c2d306a536  crossfire-1.9.1.arch.tar.bz
83dfd11c565a76ea05e6be999862796d  crossfire-1.9.1.arch.tar.gz
9dd01ec3f2b33e6270e08421b083a8e9  crossfire-1.9.1.maps.tar.bz
1cd8c557ed2e5ea0bef1686f7bba0e35  crossfire-1.9.1.maps.tar.bz2
9e3b54a64d74c60acd3b7a1c4532ccd1  crossfire-1.9.1.maps.tar.gz
9444daefe1a457b4a18101c255be6cdc  crossfire-1.9.1.tar.gz
e7084c22c1f2074c95fe34331ac2ceae  crossfire-client-1.9.1.tar.gz
b2766880d5dffbf24ae98b8ca07cb89f  crossfire-client-images-1.9.1.tar.gz
f996c3220d505098a4a226f92902b002  crossfire-client-sounds-1.9.1.tar.g

(Note - only the maps have a bzip2 compressed archives.  For the other
files, there isn't a big enough difference in size to make it worth
while IMO)

crossfire-client-1.9.1.tar.gz contains the client code - if you only
want to play, this is the only piece you need.

crossfire-client-images-1.9.1.tar.gz contains prebuilt images - this removes
    the need to download most of them when playing with cached images.

crossfire-client-sounds-1.9.1.tar.gz contains sounds - if you don't want
    sounds, you don't need this.  The only addition in this release is
    adding of su-fanf.raw which used to be included in old sound files.

crossfire-1.9.1.tar.gz contains the server code with prebuilt
archetype and image files.

crossfire-1.9.1.arch.tar.gz contains the unpacked archetype changes.
This is not needed if you only want to compile the server and play the
game.

crossfire-1.9.1.maps.tar.{bz2|gz} contains the map distribution - this is the
bigworld map.  New maps have been added, as well as verious fixes.

FOR FIRST TIME USERS:  You will only need the server, map, and client
archives.  You do not need the arch archive.

If you just want to play the game at some remote server, you need the client
and perhaps the image archive file (older image file is still good enough).

Crossfire is available on the following ftp sites

Primary:
     ftp://ftp.sourceforge.net/pub/sourceforge/crossfire

Secondary:
     ftp://ftp.real-time.com/pub/games/crossfire

The initial upload of this release is only made to sourceforge - it should
show up on the mirrors shortly.

Mark Wedel
mwedel at sonic.net
June 29, 2006

Complete changelog:

server:

acinclude.m4, aclocal.m4, configure, configure.ac:  Fix crossedit header
   detection - even when passed --with-x to configure and having all the files,
   it wouldn't find the headers because it didn't pass in the correct -I
   options for where they sit.   Also, update for 1.9.1 release.
MSW 2006-06-29

server/rune.c: Undo last patch - breaks summoning runes.
server/skills.c: Change disarm logic - after first failure, don't continue
   to disarm traps (makes sense anyways - can really only disarm one thing
   at a time) - this fixes the problem that last change to rune.c tried
   to fix.
MSW 2006-06-27

server/rune.c: Patch from schmorp - when dealing with traps, don't put them
   underneath the player when a disarm failure happens, instead, update the
   direction to hit the player - prevents a recursion problems causing
   hundreds of objects.
MSW 2006-06-25

common/object.c: don't consider FLAG_INV_LOCKED for can_merge.
Ryo 2006-06-24

common/object.c: in insert_ob_in_map() don't stop processing flying objects
   if the object also has floor set.  This fixes crashes when an object
   is both flying and has floor set.
MSW 2006-06-06

Add commands rules and news to display the rules/news files.
---
include/sproto.h: Add prototypes for new commands.
lib/help/{motd,news,rules}: Add help files.
lib/Makefile.am: Add new help files.
lib/Makefile.in: Rebuilt.
server/c_misc: Add functions to implement the commands.
server/commands: Add new commands to commands list.
Andreas Kirschbaum 2006-06-06

Fix problem with create food when used on transports.  Rather than put a
   specific check in the create food code, modify insert_ob_in_map to
   check to see of the passed in originator is on a transport, and if so,
   find out the right info - this probably fixes the same type of bug that
   happens from other areas of the code.
common/object.c: Above change, as well as #if 0 out some unused functions.
MSW 2006-06-04

Clean up some compiler warnings.  Most of the changes are related to replaced
  %lld with FMT64 defines so that the format will be correct, no matter if
  the 64 bit type is a long, long long, or if this is windows.  #if 0 out a
  bunch of code that isn't used.
--
common/exp.c: Replaced lld with FMT64
common/holy.c: #if 0 out baptize_altar().  Add banner copyright at top of file.
common/info.c, common/item.c, common/loader.l, common/loader.c, common/map.c:
    common/porting.c Replaced lld with FMT64
common/time.c: Replace a bunch of variables declared as longs to be uint32.
    Update various sprintf appropriately.
include/global.h: Add FMT64 and FMT64U as appropriate for different systems.
    Change max_time to be a uint32
include/sockproto.h, include/sproto.h: rebuilt
server/apply.c: #if 0 out monster_apply_special
server/c_range.c: Add != 0 in assignment if statement - same meaning, clearer
    on intention and avoids compiler warning.
server/c_wiz.c: Update command_kick() to take const char.  Update command_speed(
)
    to operate properly based on max_time being a uint32.  Update various lld
    to FMT64.  Clarify ambiguous if/if/else statement in command_insert_into()
server/commands.c: Add cast to command_kick for new function prototype.  #if
    0 out find_command(), parse_string(), parse_command()
server/disease.c: #if 0 out find_disease(), reduce_symptoms()
server/egoitem.c: #if 0 out create_artifact().  Add copyright at top of file.
server/gods.c: #if 0 out get_god()
server/hiscore.c: Replace lld with FMT64
server/login.c: #if 0 out create_savedir_if_needed()
server/resurrection.c: Replace lld with FMT64.  #if 0 out dead_character() and
     dead_player_exists()
server/server.c: Remove info_keys() - hasn't been used in a long time.  #if 0
    out process_active_maps()
server/skill_util.c: Replace lld with FMT64
server/spell_util.c: #if 0 out check_spell_effect()
server/weather.c: #if 0 out feather_map().  Fix what I suspect is an error
    in worldmap_to_weathermap() to skip over starting slashes.
socket/image.c: Add a fair number of char * casts to suppress warnings.
socket/init.c: Change buflen in init_connection() to socklen_t to match
    function prototype.  Add some char * casts.
socket/loop.c: Add some char * casts.
--
MSW 2006-06-04

Add a name 'dungeon_name' for random maps, and put it in the random key's name.
  This implements feature request #815622 (keys in random maps should note map th
ey are from)
  https://sourceforge.net/tracker/index.php?func=detail&aid=815622&group_id=13833
&atid=363833

random_maps/random_map.c: fix a memory leak. Add random name.
random_maps/reader.[cl]: read 'dungeon_name'. Use strncpy instead of strcpy.
random_maps/random_map.h: add new field, use a #define instead of hardcoded cons
tant.

Do not merge renamed items with differing custom names.
---
common/object.c: In can_merge() check for differing custom_name field.
server/c_object.c: In command_rename_item() try to merge the affected item.
Andreas Kirschbaum 2006-06-02

Do not merge locked and unlocked items.
---
common/object.c: In can_merge() do not ignore FLAG_INV_LOCKED anymore.
socket/item.c: In lock_item_cmd() try to merge the affected item.
Andreas Kirschbaum 2006-06-01

lib/artifacts: Fix typo to not anymore generate "boots of of steel".
lib/artifacts: Fix typo to make bows of Sorig work.
lib/archetypes, lib/treasures.bld: Rebuilt.
Andreas Kirschbaum 2006-06-01

Various bug fixes, related to the new map display code.
common/loader.c, common/loader.l: Add map_layer attribute so object can
    override what layer it should go on (fix for levitation boots).
common/map.c: Add support for map_layer to override layering.  Fix bug
    where if there were more objects than would fit on a layer, not all
    would be drawn (same object was duplicated onto multiple layers).
common/object.c: Add check for ob->map_layer in can_merge()
include/map.h: Add extern declaration for map_layer_name[]
include/object.h: Add map_layer to object.
socket/request.c:  In map1 compatibility mode, make sure we always
    send the player.
MSW 2006-05-29

server/monster.c: Only call animate_object() if object is animated -
     otherwise, animate_object() spews bunch of error about being called
     with non animated object.
MSW 2006-05-29

Monsters now cannot anymore see through earthwalls/monsters. This restores the
behavior to what it was before the new movement code. For players this
basically means that monsters will not anymore cast spells though earthwalls or
other monsters.
---
server/player.c: In path_to_player() consider tiles with P_IS_ALIVE set as
    blocking.
Andreas Kirschbaum 2006-05-27

Make attacking with melee in 'fire command work again. Now attacking with
<shift>+<direction> works again.
---
server/skill_util.c: In skill_attack() also attack if the destination tile has
    P_IS_ALIVE set.
Andreas Kirschbaum 2006-05-27

Make swarm spells work again. These spells did not work anymore on tiles which
had a move_block type set (for example cobblestones).
---
server/spell_attack.c: In move_swarm_spell() remove check for blocked
    movement. This check was incorrect since it did check the SPELL object
    instead of the SPELL_EFFECT object. Also, this check is not necessary since
    it is also present in the called functions fire_xxx().
Andreas Kirschbaum 2006-05-25

Fix monster not changing direction when attacking adjacent object.
  server/monster.c: update facing/direction according to enemy.
Ryo 2006-05-25

common/item.c: Skip some processing if NEW_MATERIAL_CODE is undefined.
common/holy.c, include/libproto.h: Declare some functions as "static".
Andreas Kirschbaum 2006-05-21

Make socket handling more robust.
---
include/newclient.h: Split MAXSOCKBUF into MAXSOCKRECVBUF and MAXSOCKSENDBUF.
    Increase the receive buffer size to be able to handle all valid packets;
    decrease send buffer size to 10239 to not overflow the receive buffer of old
    clients.
socket/{image.c,info.c,init.c,item.c,loop.c,lowlevel.c,request.c,sounds.c}: Use
    renamed constants.
socket/image.c: In send_image_sums() prevent buffer overflows. Reject the
    command instead.
socket/request.c: In send_skill_info() and send_spell_paths() prevent buffer
    overflows. Instead send only as much information as fits into the buffer.
socket/loop.c: In handle_client() prevent possible array out-of-bounds access.
Andreas Kirschbaum 2006-05-21

Added a 'cf_log' function for plugins. Replace printf in plugins with correct ca
ll.
---
include/plugin.h: include required header for log level definitions.
include/sproto.h: new function.
plugins/cfanim/cfanim.c: replace printf with calls to cf_log.
plugins/cfpython/cfpython.c: replace printf with calls to cf_log.
plugins/cfpython/cfpython_map.c: replace printf with calls to cf_log.
plugins/common/plugin_common.c: new cf_log function.
plugins/common/include/plugin_common.h: new cf_log function.
server/plugins.c: new hook.
Ryo 2006-05-20

This adds a "bot" flag for players. Such players won't be counted when
  sending information to metaserver. To enable it, just send "bot 1"
  through the "setup" command.
---
include/newserver.h: add new is_bot flag.
lib/settings: add %b to default formats.
server/c_misc.c: add %b to who options, for [BOT] flag.
socket/init.c: init is_bot.
socket/metaserver.c: don't count bots.
socket/request.c: new "bot" setup command.
Ryo 2006-05-20

This commit adds support for the map2 protocol command (10 layer map).
This changes how the data is stored and sent to the client.  This also
implements the idea of client handling map animations, so adds some object
flags so that the server knows if it should let the client handle animations
or not.  Support for the original map protocol command is removed.
---
aclocal.m4: rebuilt
configure.ac: Add checks for zlib.h, libz - not used right now, but will
    probably be used in the future, so no reason to remove it.
common/loader.l: Add client_anim_sync, client_anim_random FLAGS.
common/map.c: Add add_face_layer() to set face for a layer.   Redo/simplify
    update_position to store faces away based on layering criteria.
common/time.c: Replace long pticks with a uint32, since size of a long will
    vary, and we now send pticks to the client as a 32 bit value.
crossedit/CrEdit.c: Update the draw logic based on the fact there are more
    layers now.
crossedit/Edit.c: Comment out some code that probably should be fixed.
    Replace calls of SET_MAP_FACE with SET_MAP_FACE_OBJ
doc/Developers/protocol: Updated with map2, tick protocol additions.
    Reorganize the parameters in the setup protocol command so they are now
    listed in alphabetical order.
include/autoconf.h.in: Add HAVE_ZLIB_H define.
include/define.h: Update for the FLAG_CLIENT_ANIM values.
include/face.h: Remove MapLook structure - no longer used.
include/global.h: change extern type for pticks from long to uint32
include/map.h: Change MAP_LAYERS to 10.  Add definitions for what each
    map layer is.  Remove GET/SET_MAP_FACE macro - no longer used,
    GET/SET_MAP_FACE_OBJ replaces it.  Add GET_MAP_FACE_OBJS which
    returns pointer to all the object info for the space.  Remove
    faces from MapSpace structure.
include/newclient.h: Update with new defines used for map2 protocol
    command.
include/newserver.h:  Change type of faces in map_cell_struct to be
    uint16 to be consistent.  Change 'count' to 'darkness' to more
    accurately describe what it represents.  Add MAP2_COORD_OFFSET
    define.  Add Map2Cmd to MapMode enum.  Add map_scroll_x/y
    to socket structure so we send those as part of map2 command.
    Add tick field to socket structure to know if we should send
    tick data to the client.
server/login.c: Remove extern long pticks declaration - declared
    in global.h - don't need to declare it again locally.
socket/info.c: Rewrite magic map code to use GET_MAP_FACE_OBJ
    instead of GET_MAP_FACE macros.
socket/init.c: Initialize new fields in socket structure to 0.
socket/loop.c: If client wants tick data sent, send one each tick.
socket/request.c: Add setup responses for tick, map2 requests.  Remove some
    extra code in Map1a setup.  Send error message to client if not using
    at least Map1 protocol level.  Modify map_newmap_cmd() to clear
    scroll information when using Map2.  Remove original (map0) protocol
    logic.  Update map_clearcell() to clear all 10 layers.  Replace
    MAX_LAYERS with MAP_LAYERS.  Add add_head() to remove some of the
    complication from update_space().  Add code in draw_client_map1()
    to find which 3 layers to send to the client from the 10 we now have.
    Add map2_add_ob(), map2_delete_layer(), check_space_for_heads(),
    draw_client_map2() to handle map2 protocol.  Add send_tick() -
    sends tick to client, but also forces flush of data to reduce lag.
utils/config.guess.utils/config.sub,utils/ltmain.sh: rebuilt
MSW 2006-05-15

Fix server crash when sending addspell command(s).
---
socket/lowlevel.c: Do not abort if output buffer is completely filled. (Was
    off-by-one, so if addspell did fill the complete buffer, the server did
    detect an buffer-overflow error.)
socket/request.c: Update comments.
Andreas Kirschbaum 2006-05-13

server/spell_effect.c: Disallow town portal while in transports (caused
   map corruption, crashes and other nasty things)
Alex Schultz 2006-05-12

Fix for bug #1473941 (damnation bug)
  server/apply.c: wrong parenthesis for cursed/damned logic
Ryo 2006-05-05

Applied patch #1453869 (code-cleanup) courtesy Stefan Huehner (shuehner).
Modified files for first patch:
  include/funcpoint.h sproto.h
  server/alchemy.c apply.c attack.c commands.c disease.c egoitem.c gods.c init.c
login.c
   main.c monster.c move.c pets.c player.c resurrection.c rune.c skill_util.c ski
lls.c
   spell_attack.c spell_effect.c spell_util.c swap.c time.c timers.c

Modified files for second patch:
  crossedit/stubs.c
  include/sockproto.h
  random_maps/standalone.c
  socket/info.c item.c request.c sounds.c
  test/unit/common/stubs_common.c
  test/unit/random_maps/stubs_random.c

Modified files for third and last patch:
  common/item.c
  include/libproto.h sproto.h
  server/c_chat.c c_object.c c_wiz.c daemon.c hiscore.c main.c shop.c

Ryo 2006-05-05

Commit patch #1456016 courtesy schmorp.de development team.
  server/pets.c
Add Map.Insert(object,x,y) and Player.CanPay( ) to Python plugin.
  include/sproto.h
  plugins/cfpython/include/cfpython_object_private.h
  plugins/cfpython/include/cfpython_map_private.h
  plugins/cfpython/cfpython_object.c
  plugins/cfpython/cfpython_map.c
  plugins/common/include/plugin_common.h
  plugins/common/plugin_common.c
  server/plugins.c
Ryo 2006-05-05

include/config.h: Increase Archtable to 8192, the new hashing algorithm
   works better with a table size that is a power of 2, and the current value
   is very close to being exceeded anyway. Suggested by Crossfire+ Development
   Team http://cf.schmorp.de
Brendan Lally 2006-04-06

server/swamp.c: Use the object name for swamp messages. Allows custom swamp
   names to work better
Alex Schultz 2006-04-04

Fix exploit with alchemy spell. This effectively removes the improvement
implemented at 2006-03-07.
---
server/spell_effect.c: Use query_cost() to determine value of nuggets.
Andreas Kirschbaum 2006-03-22

Apply patch by Stefan Huehner: add const where appropriate.
---
Affected files: include/sockproto.h, socket/{loop.c,lowlevel.c}
Andreas Kirschbaum 2006-03-19

Use const when possible. Patch courtesy Stefan Huehner.
  common/item.c map.c porting.c readable.c shstr.c utils.c
  crossedit/Attr.c CrEdit.c
  include/global.h libproto.h
  random_maps/rproto.h treasure.c
  server/c_new.c commands.c
Ryo 2006-03-18

Removed unused header file version.h.
  include/version.h: removed.
  include/win32.h: don't include that file.
Ryo 2006-03-18

Add 'add_key' parameter to object.set_key for plugins.
  plugins/common/include/plugin_common.h
  plugins/common/plugin_common.c
  plugins/cfpython/cfpython_object.c
  server/plugins.c
Ryo 2006-03-18

Massive code cleanup. Changed FunctionsInCamelCase to conform to conventions.
Changed comments to doxygen syntax. Made function/variable/structure names more
  coherent.
There shouldn't be any functional change.
Modified files:
  common/anim.c image.c loader.[cl] object.c
  crossedit/xutil.c
  include/commands.h global.h libproto.h  newserver.h object.h player.h sockproto
.h /sproto.h
  plugins/cfpython/cfpython.c
  server/apply.c attack.c c_misc.c commands.c init.c main.c move.c player.c plugi
ns.c spell_effect.c time.c
  socket/image.c info.c init.c item.c loop.c request.c

Ryo 2006-03-18

Apply patch #1450408 (Improved hash table) by cf.schmorp.de development team.
The new hash function seems to produce fewer collisions than the previous
function. This especially holds for strings that share a common prefix: the
old function did use only a small fraction of the available slots; the new
function uses all slots with a fairly equal distribution.
---
common/arch.c: Replace algorithmn implemented in hasharch().
Andreas Kirschbaum 2006-03-16

Apply patch #1439143 (code-cleanup: crossedit) by Stefan Huehner: Remove
unused code, add static/const where appropriate.
---
Affected files:
crossedit/{App.c,App.h,Attr.c,CrEdit.c,CrFace.c,CrList.c,CrUtil.c,Defines.h},
crossedit/{Edit.c,Str.h,crossedit.c,png.c,proto.h,xutil.c,Cnv/Cnv.h},
crossedit/include/{Makefile.am,Makefile.in,util.h}
Andreas Kirschbaum 2006-03-16

common/utils.c: apply patch #1445892 (transmute_materialname crash) courtesy
  the cf.schmorp.de development team.
include/spellist.h: disable big unused arrays, legacy of spell code.
server/c_object.c: merge find_best_apply_object_match and find_best_object_match
  which are really the same.
server/init.c: fix memory leak.
server/monster.c: fix a monster/scroll related crash, based on patch #1447242 by
  the cf.schmorp.de development team.
server/player.c: fix monitor_spells not initalized (before InitConnection()).
server/skills.c: fix merging bug with inscription.
socket/init.c: fix monitor_spells not being initialized.
Ryo 2006-03-14

Fix bug/exploit in setup command.  We were strcat'ing back data provided
by the client.
---
socket/request.c: Modify SetUp() to use safe_strcat() - eliminates buffer
    overflow issues.  Add some char* casts to spell/skill requestinfo
    to eliminate compiler warnings.  Add IP address to log for incoming
    connections.
MSW 2006-03-13

Fix possible exploit with shadow alchemy. Also improve the alchemy spell to
yield more nuggets.
---
server/shop.c: In query_cost() apply the hack (to multiply non-GEM/non-MONEY
    values by four) also if no player object is present.
Andreas Kirschbaum 2006-03-07

Add settings permanent_experience_percentage, death_penalty_percentage and
death_penalty_levels to the settings file.
---
common/living.c: don't hardcode exp calculations
common/init.c, include/config.h, lib/settings: set defaults for new  values
doc/settings: document new values
include/global.h: change settings struct to hold the new values
server/init.c: parse new values in the settings file.
server/skill_util.c: reference new value
Brendan Lally 2006-03-07

Apply modified parts of patch #1439490 (Fix in random map generation) by CF
Development Team Schmorp.de <crossfire at schmorp.de>.
---
random_maps/exit.c: In place_exits() check for a valid exit path before
    dereferencing it.
random_maps/treasure.c: In find_closest_monster() include monsters at map
    border. In find_enclosed_spot() prevent access to out of map tiles.
Andreas Kirschbaum 2006-03-04

Apply patch #1436833 (Patch for forked lightning crash at map borders) by CF
Development Team Schmorp.de <crossfire at schmorp.de>.
---
server/spell_attack.c: In forklightning() prevent access to out of map tiles.
Andreas Kirschbaum 2006-03-04

common/loader.l: Prevent excess whitespace while saving objects.
common/loader.c: Rebuilt.
Andreas Kirschbaum 2006-02-27

Apply patch by Marc Alexander Lehmann to improve server performance.
---
include/map.h: Move path field to end of struct. Since this field was huge it
    pushed all other fields to large offsets in the struct. Moving it to the
    end of the struct mapdef should not break anything but will improve
    performance and reduce the server code by >3500 bytes.
Andreas Kirschbaum 2006-02-27

client:
sound-src/alsa9.c: Fix up sound for alsa9+.  Not positive exact change that
   fixed the problem, but following changes made: Add SOUND_DEBUG_WRITES to
   separate the debug from writes vs all the other debug messags.  If using
   16 bit data, always use unsigned no matter wit the sign config option
   says.  In alsa_recover(), if error is EAGAIN, just do nothing and return.
   In audio_play(), don't write more bytes than chunk size (basically
   largest block that alsa wants at one time).  In play_sound(), don't
   decrease volume based on maximum number of sounds that may be played
   at once - this makes things too quiet.
MSW 2006-06-25

gtk/gx11.c, gtk-v2/src/main.c: Add checks for csocket.fd==-1 after return
    of DoClient.  With change in DoClient to close the socket, the network
    routines are not called again (like they used to be), and thus the
    GUI was't really aware the socket was closed, and wouldn't prompt for
    metaserver selection.
MSW 2006-05-21

Make socket handling more robust.
---
common/client.c: In DoClient() properly close the socket if an invalid packet
    was received.
common/newclient.h: Increase the receive buffer size to 65535 bytes. This
    allows the client to receive any valid packet (even if no currently
    existing server is supposed to send such big packets).
common/newsocket.c: Fix definitions of llevDebug and llevError to make error
    messages visible.
Andreas Kirschbaum 2006-05-21

common/mapdata.c: fix unitialized variable.
Ryo 2006-05-17

This commit adds client side support for the map2 & tick protocol commands.
In additional the the necessary decode logic, more layers are also added
to the map.
--
common/Makefile.am/.in: Fix proto directive
common/client.c: Add global tick variable.  Add links to handle map2
     and tick protocol commands.  Update setup request sent to server
     to request to use the tick and map2 commands.
common/client.h: Add additional fields to Animations structure.  Increase
     MAX_MAP_OFFSET to match the value on the server.
common/commands.c: Add parsing of return of map2 failures on setup command
     so that client can fall back.  Add additional initializations for
     new fields in AnimCmd().  Change definition of NUM_LAYERS to match
     what the map1 command wants/expects.  Add Map2Cmd() to decode
     map2 protocol command.  Do some whitepsace clean of ExtSmooth().
     Add TickCmd()
common/init.c:  Add seeing of random number generator.
common/mapdata.c: Rewrite CLEAR_CELLS macro to handle additional layers.
    Clear animation data in expand_clear_face().  Change MAXLAYERS to
    MAP1_LAYERS since map2 increase MAXLAYERS.  Add support functions for
    setting data in the map2 command.
common/mapdata.h: Increase MAXLAYERS, add MAP1_LAYERS define to old number
    of layers.  Add animation data to MapCellLayer.
common/newclient.h: Add various defines related to the map2 data.
common/proto.h: Rebuilt
gtk/gx11.c: Add cleint_tick() to handle map animations.  Update
    do_timeout() to not do animations if we are getting tick data.
gtk-v2/src/config.c: Fix bug in config code where it wasn't enabling
    darkness when player switched back from no darkness mode to some
    mode.
gtk-v2/src/main.c: Add client_tick() to handle animations.  Update
    do_timeout() to not do animations if tick is set.
gtk-v2/src/opengl.c: Fix drawing logic where objects which were visible
    but in which the bottom right corner was off the map was not being
    drawn - only a problem in opengl since it only draws the object
    when it finds the head, does not draw each piece.
sound-src/Makefile.am/.in: Fix creation of sounds file - was using
    wrong variable name.
x11/xutil.c: Add basic client_tick() that is a callback from the common code.
MSW 2006-05-14

common/image.c: use the same image hashing algorithm that the server uses
for archetypes, increase the table size to 8192 to reduce collisions
Brendan Lally 2006-04-12

common/item.c: fix unitialized variable.
common/p_cmd.c: fix memory leak.
gtk/keys.c: fix memory leak.
Ryo 2006-03-14

Yet more changes for gtkv2 clients, mostly aimed at making it usable on lower
resolution displays.  Window can now be resized to 800x600, added save window
positions so it will remember where you moved the panes to (as well as root
window size).  Unrelated change to this is that now the inventory list is
sortable like the metaserver and spell lists are - you can sort by name,
weight, or by item type (click on the icon for item type).
--
gtk-v2/gtk-v2.glade:  Add new menu item for save window positions.  Change
   statbar area so there is a pane between stat bar and stat notebooks.
   Change statbars so they resize smaller/larger.
gtk-v2/src/callbacks.h: callback for on_save_window_position_activate() added.
gtk-v2/src/config.c: Add on_save_window_position_activate() and
   load_window_positions()
gtk-v2/src/interface.c: rebuilt.
gtk-v2/src/inventory.c: Add LIST_TYPE column for sorting.  Change
   table definitions so columns are sortable.
gtk-v2/src/main.c: Add code to allow resizing down to 800x600.  Add
   call to load_window_positions()
gtk-v2/src/map.c: Try to set map size based on window size - save
   some memory.
---
MSW 2006-03-10

More updates for the gtkv2 client.  Add a config window to change the
config options.  Note this isn't quite as cluttered as the gtkv1 config
window because only the options that affect the gtkv2 client are presented.
---
common/client.h: Add CFG_LT_NONE to use instead of 0.
common/init.c: Change 'sdl' config name to 'displaymode'.  the CONFIG_
   parameter was changed a while back, but still used this old name in the
   save file.
gtk/config.c: Add some logic to handle 'sdl' legacy config mode.
gtk-v2/gtk-v2.glade: Updated with new config window.
gtk-v2/src/callbacks.h: rebuilt by glade-2
gtk-v2/src/config.c: Lots of new code to handle setting/getting of config
   values in config window.
gtk-v2/src/gtk2proto.h: Rebuilt.
gtk-v2/src/interface.c: Rebuilt by glade-2
gtk-v2/src/interface.h: Rebuilt by glade-2
gtk-v2/src/main.c: Add call to config_init() to initialize config window.
MSW 2006-02-27

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

sound-src/Makefile.in: replaced SOUNDDIR with SOUND_DIR, so that
    --with-sound-dir will work now
Klaus Elsbernd 2006-03-07

common/p_cmd.c: Update command table for auto-completion to all (non-DM)
    server side commands. Also check for client side commands. Add a space
    after a completed command so the player can enter arguments.
Andreas Kirschbaum 2006-03-04

Fix bug #1442523 (Crash when pressing TAB during login). Also fix undefined
behavior due to overlapping strings passed to strncpy().
common/p_cmd.c: In complete_command() remove hack for x11 client and return
    NULL if no match was found.
gtk/gx11.c, gtk-v2/src/keys.c, x11/x11.c: Adapt to changes in
    complete_command().
x11/x11.c: Replace strncpy() with memmove() to cope with overlapping strings.
Andreas Kirschbaum 2006-03-04

Apply patch #1424583 (IPv6 patch for client) courtesy  Christoph Hohmann -
(reboot)
  common/client.c
  common/config.h.in
Ryo 2006-02-26



More information about the crossfire-announce mailing list