Jump to Main Content

Crossfire 1.9.1 Announcement

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 



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

Mark Wedel 
mwedel (at) sonic (dot) net
June 29, 2006 

Complete changelog: 


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 they 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 call. 
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 skills.c spell_attack.c spell_effect.c spell_util.c swap.c time.c timers.c

Modified files for second patch: 
  socket/info.c item.c request.c sounds.c

Modified files for third and last patch: 
  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. 

Add Map.Insert(object,x,y) and Player.CanPay( ) to Python plugin. 
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. 
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
  include/commands.h global.h libproto.h  newserver.h object.h player.h sockproto.h /sproto.h 
  server/apply.c attack.c c_misc.c commands.c init.c main.c move.c player.c plugins.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: 
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 



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 lsa_recover(), if error is EAGAIN, just do nothing and return. IIn 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.  IncreaseMAX_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) 
Ryo 2006-02-26