[crossfire-announce] Crossfire 1.9.0 released

Mark Wedel mwedel at sonic.net
Sun Feb 26 02:50:46 CST 2006

Crossfire 1.9.0 has been released.  There are lots of more minor
changes.  List of more major changes:
Addition of discrete movement types.
Addition of transportation objects.
Server will send spell information to the client so client can
   present it nicely to player (requires v1.9.0 of client)
Player stealing from other players can now be disabled by option in
   settings file.
Crossedit updates.
Additional newpickup modes.
New plugin interface.
Add shop specialization - all the shops won't give the same prices -
   shops now vary prices based on what they normally deal with (requires
   1.9.0 maps)

Client 1.9.0 Changes:
Improvements to the gtk-v2 client:
  - Add keybinding interface window.
  - Add spell selection window.
  - Allow the metaserver selection list to be stored on the different
  - Fix for opengl mode that should make it work on more displays.

Improvements to the gtk-v1 client:
  - Clean up some of the less commonly used gtk-v1 client options, either
    removing them or making them always on.
  - Add spell selection dialogue window.
  - Support for new newpickup modes.

Common Changes:
  - Add support for client to request/receive spell information from server.
  - Fix some display issues.
  - Add full automake support for client.

Files released for this version:

sums (bsd)  filename
41309  2764 crossfire-1.9.0.arch.tar.gz
25283  3142 crossfire-1.9.0.maps.tar.bz
28330  4573 crossfire-1.9.0.maps.tar.gz
16456  5193 crossfire-1.9.0.tar.gz
48352   719 crossfire-client-1.9.0.tar.gz

Sums (md5)
7685cc806a02a3f14336095de6066128  crossfire-1.9.0.arch.tar.gz
e7b3291fad9540e7e6e7e5bcd005a726  crossfire-1.9.0.maps.tar.bz
3572755e7e56abaca9c23215ef560001  crossfire-1.9.0.maps.tar.gz
43240af83a4414d2dcc19fff3af31a63  crossfire-1.9.0.tar.gz
62a9ac007700d1d811fa097fe6790f7a  crossfire-client-1.9.0.tar.gz

(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-1.9.0.tar.gz contains the server code with prebuilt
archetype and image files.

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

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

crossfire-1.9.0.maps.tar.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.net
February 25, 2005

Complete changelog:


*/Makefile{in.am}: Fix plugin makefiles so that 'make distcheck' works.  Using
   relative path names for files to include in distribution does not work -
   need to have a makefile in each directory.
configure{.ac}: Updated as result of new Makefiles.
MSW 2006-02-24

Apply patch #1428057 courtesy Pippijn van Steenhoven: fix to a crashing bug in p
(incoherent order of parameters).
Also use plugin_common.h in CFAnim instead of having separate definitions.
Modified files:
Ryo 2006-02-23

Remove object type CONFUSION since it was not used anymore.
common/item.c: Remove CONFUSION entry from item_types[] array.
include/define.h: Uncomment #define CONFUSION.
Andreas Kirschbaum 2006-02-22

lib/collect.pl.in: Fix generation of 'editor_folder' field. It did not work
    too well for .arc files in deep subdirs.
lib/{archetypes,bmaps.paths,crossfire.0}: Rebuilt.
Andreas Kirschbaum 2006-02-21

random_maps/random_map.c: Cause the random map generator to skip certain
     elements if the style is set to "none".
doc/Developers/random-maps: Document above change
Alex Schultz 2006-02-20

socket/request.c: Don't crash on trying to send a spell which doesn't have an
    associated skill
Brendan Lally 2006-02-20

Do not allow to dimension door into monsters or earthwalls.
server/spell_effect.c: In dimension_door() do not allow destinations that are
Andreas Kirschbaum 2006-02-19

random_maps/style.c: In find_style() fix access to uninitialized variable.
Andreas Kirschbaum 2006-02-19

Prevent crossedit from stripping out 'maplore' map header field.
common/map.c: Add code to load/save/dump maplore information.
include/map.h: Add new maplore field to map struct.
Andreas Kirschbaum 2006-02-19

Apply patch #1433271 (code-cleanup) by Stefan Huehner: Add const and static.
Affected files: common/{loader.l,los.c,map.c}, include/{libproto.h,sproto.h},
plugins/cfanim/{cfanim.c,include/cfanim.h}, server/{apply.c,skill_util.c}
common/loader.c: Rebuilt.
Andreas Kirschbaum 2006-02-17

common/map.c: Modify ob_blocked() to properly handly objects with a 0
    ob->move_type.  Fixes infinite loop from random map code when trying
    to place exits.
MSW 2006-02-16

Commit forgotten file for yesterday, which have the CFAPI_INT16 define...
Ryo 2006-02-15

Minor bugfixes:
server/apply.c: Fix apply_transport ->contr checks to actually
   check against correct values.
server/plugins.c: Replace CFAPI_INT16 with CFAPI_INT - there is no
   declaration anyplace for CFAPI_INT16 so compiles fails.
server/swamp.c: Fix swamp code so that only objects that can be
   picked up disappear - this way, transports don't disappear into
MSW 2006-02-15

Swamps don't affect DMs anymore. Also, swamps don't remove items with
Fixes to plugin system. Added "SINT16" as return type.
  server/plugins.c: resistances are sint16, not int.
  plugins/cfanim/include/cfanim_proto.h: fix cf_object_get_resistance declaration
  plugins/cfpython/cfpython_archetype.c: fix comparison function, which should re
turn 0 or +-1.
  plugins/cfpython/cfpython_map.c: fix comparison function.
  plugins/cfpython/cfpython_object.c: fix broken GetResist, fix comparison functi
  plugins/cfpython/cfpython_party.c: fix comparison function.
  plugins/cfpython/cfpython_region.c: fix comparison function.
  plugins/common/plugin_common.c: object resistances are sint16.
  plugins/common/include/plugin_common.h: object resistances are sint16.
Ryo 2006-02-14

Apply modified patch #1428048 (make the log line buffered) by Marc Lehmann.
common/init.c: In init_globals() switch the log file to line buffer mode.
Andreas Kirschbaum 2006-02-11

server/apply.c: In apply_scroll() do not identify the scroll if the player
    lacks the literacy skill.
Andreas Kirschbaum 2006-02-10

Apply slightly modified patch #1428309 (code-cleanup: const, static) by
Stefan Huehner: add const/static to functions/variables. Remove some type
Affected files: common/{arch.c,glue.c,image.c,init.c,readable.c,time.c},
Andreas Kirschbaum 2006-02-10

server/c_wiz.c: make dm stats command print Int and damage. Rearrange output
    to match the stat ordering.
lib/wizhelp/stats: document the stats command
lib/Makefile.am lib/Makefile.in: install the new help file
Brendan Lally 2006-02-10

Apply modified patch by Pippijn van Steenhoven to fix get_rangevector
functions on tiled maps.
server/map.c: Add helper function adjacent_map() to check if two maps are
    adjacent. Modify get_rangevector(), get_rangevector_from_mapcoord(), and
    on_same_map() to use this function.
Andreas Kirschbaum 2006-02-09

server/player.c: make a player's starting items be locked, so that they
can't accidentally drop and lose them without unlocking them first.
Brendan Lally 2006-02-09

Apply patch #1427979 (code-cleanup: add const, fix warnings) by Stefan
include/libproto.h: Add "const" to pointer function parameters.
Andreas Kirschbaum 2006-02-09

Make create food spell work for all FOOD/DRINK objects. It used to fail for
objects where another object with the same name but type POISON does exist.
common/arch.c: Add new function find_archetype_by_object_type_name() to find
    an archetype by item type and item name.
include/libproto.h: Add new prototype.
server/spell_effect.c: In cast_create_food() only search for objects of type
    FOOD or DRINK.
Andreas Kirschbaum 2006-02-09

Added a "insert_into" command for DMs, to easily put items in other items.
Modified filse:
Ryo 2006-02-08

server/main.c: Modify enter_exit() to see if player is in a transport,
   and if so, remove him.  Can happen if player uses word of recall
   while in a transport.
MSW 2006-02-07

Regional jails.
common/region.c, include/libproto.h, map.h: parse jail entries, new function
   get_jail_exit to return the exit to the local jail.
doc/Developers/regions: update
server/c_wiz.c, commands.c, include/sproto.h: add dm command, command_arrest
   to jail players in the correct location.
lib/regions: add scorn and navar jails.
Brendan Lally 2006/02/08

Code that adds transports.  Transports are described more in detail in
loader.l: Add new move type ('boat').  Update move_name field to be aware of
   this type.
common/object.c: Unrelated to transport, but more apparant with transports -
   fix bug with insert_ob_in_map() and multipart objects - we now only
   try to fix up map and coordinates if the provided coordinates are
   out of the map.  Before, function would always use the passed
   map for multipart objects, which is incorrect if we have already
   set valid coordinates.
doc/Developers/objects: Update notes for TRANSPORTS.  Update move
   information to include MOVE_BOAT.
include/define.h: Add type TRANSPORT.  Add MOVE_BOAT.
include/player.h: Add transport field to player structure.
include/sproto.h: rebuilt.
server/apply.c: Add code to handle applying of transports.  Update
   apply_below to apply transport if player is on one.
server/attack.c: Update hit_map() to look for transports, and hit any
   players with the damage.
server/c_object.c: Update put_object_in_sack() to also handle TRANSPORTS
   so that code can be re-used.
server/move.c:  Fix handling of multipart objects in move_object() -
   old code didn't work right with multipart objects moving along seams
   of tiled maps.  Add code to move_ob() to update player map position
   for all players in a moving transport.
server/player.c: Update move_player_attack() too check of player is
   in tranport, and use that for map and location information.  Update
   move_player() to handle speed related issues with transports.
server/time.c: Add code to credit time back to TRANSPORT objects since
   we remove time in move_player() for TRANSPORTS.
socket/item.c: Add add_object_to_socklist() so that same code isn't
   reproduced in 3 different places in the file.  Update draw_look()
   to handle transports - send transport object itself, then objects
   in transport.  Update esrv_send_inventory() and esrv_send_item()
   to use add_object_to_socklist().  Update esrv_get_ob_from_count() to look
   for objects in transport if player is in transport.
socket/loop.c: Remove checking of pl->map status, since draw_client_map()
   does that, and we need to handle if the player is in a transport.
socket/request.c: Handle map drawing if player is in a transport.
MSW 2006-02-06

movement type changes.  Add move_allow field to explicitly allow certain
movement types on spaces.  Add suppport for using string names instead
of numeric values to specify the MOVE_ values.  Add code so when saving
data out, use string names instead of numeric value.
common/loader.l: Remove save_double(), as it isn't used by any code.
    Add set_move() to set movement types from strings.
    Add get_string_move_type, which takes integer movement type and
    returns a string.  Update load and save code to use these functions
common/map.c: Change blocked_link() so that we only examine all the objects
    on a space if there is something alive on the space or space is otherwise
    blocked.  There is no reason to examine all the objects on the space if
    the object in question can move onto it.
    Modify update_position() to use the move_allow field to clear bits
    in the move_block field.
common/object.c:  Add check in CAN_MERGE for move_allow.  Add check for
    move_allow in update_object to see if we should update the space or
doc/Developers/objects: Update Movement code section to note use of using
    strings to set movement types.  Add note about move_allow.  Section
    about Transports added, but code isn't there yet.
include/object.h: Add move_allow to object structure.
MSW 2006-02-04

Fix attack messages containing random characters.
server/attack.c: In attack_message() always initialize variables.
Andreas Kirschbaum 2006-02-03

server/c_misc.c: fix bug 1413239 Server crash with "who" command output
using null map names
Brendan Lally 2006-02-03

include/newserver.h, server/login.c, socket/init.c, socket/loop.c:
    drop any connection that fails to login successfully after
    MAX_PASSWORD_FAILURES attempts (defaults to 5)
doc/Developers/protocol: document properly the byte counts of item flags,
    and include documentation of the itemcmd setup option.
Brendan Lally 2006-01-30

Custom commands-related fixes.
plugins/cfpython/cfpython.c: fix custom command handling.
server/plugins.c: try all plugins for custom commands.
Moved the global event 'LOGOUT' from when player actually disconnects to when
  player logs out and is asked whether to play again or not.
Modified files:
  server/apply.c main.c
Ryo 2006-01-15

socket/request.c: In ReplyCmd() make sure the reply does not cause a buffer
Andreas Kirschbaum 2006-01-13

socket/request.c: add some better checks in addspell packet formation, fix a
    crash bug.
Brendan Lally 2006-01-13

server/c_object.c: stop rename crashing if there is no name to rename to
    when object is passed by number
server/c_object.c: allow the rename command to take tag of the item to be
    renamed, so that clients can form rename commands properly.
Brendan Lally 2006-01-11

server/c_range.c: allow spells cast by number to also have options passed to
Changelog: Commit the changelog entry for the last commit.
Brendan Lally 2006-01-10

  Spell listing support:
  allow 'spell_paths' to be sent to requestinfo, reply with number:path
  change return type of SP_level_spellpoint_cost to sint16
  add spellmon as a setup value, if it is set;
   send path attunement/repulsion/denial in stats
   send data about spells in addspell packets
   send updates to that data
  Affected files:
  include/funcpoint.h, newclient.h, newserver.h, player.h, sockproto.h,
  server/apply.c, login.c, spell_util.c, init.c, loop.c, request.c
server/c_range.c: allow cast/invoke and prepare commands to take item tags
    as well as spell names
Brendan Lally 2006-01-09

Apply modified patch #1396303 (add setting to disable stealing from players)
by Terry Brown. It adds a new option "no_player_stealing" to the settings
file. If set, it prevents players from stealing from other players. It
defaults to ON.
doc/settings: Add documentation for new setting.
include/global.h: Add new field to settings structure.
lib/settings: Add new option no_player_stealing.
server/init.c: In load_settings() recognizes the new option.
server/skills.c: In attempt_steal() prevent stealing from PLAYER if option is
Andreas Kirschbaum 2006-01-08

include/newserver.h, socket/{init.c,request.c}: Remove unused fields ext2 and
    ext_title_flag from NewSocket structure.
server/skills.c: Fix/improve feedback messages for stealing skill.
plugins/cfpython/cfpython.c, server/plugins.c: Just whitespace changes to make
    it conform to programming_guide.
plugins/cfpython/cfpython.c: Make sure context->options always is initialized.
server/main.c: Make code more readable; use snprintf where appropriate.
crossedit/Cnv/CnvPrompt.c: Make file compilable with Ansi C89 compiler.
Andreas Kirschbaum 2006-01-08

Global event Python scripts now are in subdirectories. This makes it easier to
  distribute "Python packages". Modified file:
Ryo 2006-01-07

common/{item.c,treasure.c}, server/{apply.c,gods.c,spell_effect.c}: Use named
    constants instead of numbers.
server/monster.c: Use correct field name in move_monster().
Andreas Kirschbaum 2006-01-07

Summon pets less often to the owner on tiled maps.
server/pets.c: In remove_all_pets() and pet_move() use on_same_map() to check
    whether the pet is too far away.
Andreas Kirschbaum 2006-01-07

Change meaning of "items are on same map": for tiled maps now two objects are
also considered to be on the same map if they are on diagonally adjacent maps.
This solves the issue that a pet can be only one tile away from the owner but
still considered not to be on the same map.
common/map.c: In on_same_map() also consider diagonally adjacent maps.
Andreas Kirschbaum 2006-01-07

Added regions support for plugins. Affected files:
  include/plugin.h sproto.h
Added regions to Python plugin. Affected files:
  cfpython/include/cfpython.h cfpython_map_private.h
  cfpython/cfpython.c cfpython_map.c cfpython_region.c Makefile.am Makefile.in
New files:
  cfpython/include/cfpython_region.h cfpython_region_private.h
In Python's Object, Archetype is now a property and not a method. Affected files
Cleaned obsolete include/plugproto.h.
Ryo 2006-01-07

Make teleporters hidden below the floor work again.
server/time.c: In move_teleporter() use object above floor instead above
    teleporter to operate one.
Andreas Kirschbaum 2006-01-07

Fix issues with map tiling.
server/move.c: In move_ob() make sure inserting multi-part objects into tiled
    maps work.
server/spell_attack.c: In cast_cone() insert spell effect at correct position
    for tiled maps.
Andreas Kirschbaum 2006-01-07

common/map.c: Allow map tiling paths to be reletive.
server/main.c: Template maps: Impliment using fixed maps as templates, and
   improve reletive path support for them.
Alex Schultz 2006-01-06

Make SIGNs (including Magic Mouths) trigger for DMs again. Does not reduce the
counter if in 'wizpass mode.
server/apply.c: In apply_sign() ignore DMs.
Andreas Kirschbaum 2006-01-04

server/spell_effect.c: Apply patch 1394861 - fixes magic walls.  In conjuction
   with archetype changes, look at the spell object (and not created wall)
   to see if it blocks.
server/c_chat.c: Apply patch 1389113 - orcknuckle messages appear in
    same window.
MSW 2006-01-01

Prefer marked item when throwing objects.
server/skills.c: In find_throw_ob() prefer marked item.
Andreas Kirschbaum 2006-01-01

Make EXITs affect DM players again.
common/object.c: In check_move_on() ignore only slow movement penalties for
server/apply.c: In move_apply() ignore anything but EXITs for DM players.
Andreas Kirschbaum 2006-01-01

Make forked lightning correctly traverse tiled maps.
server/spell_attack.c: In forklightning() insert forked part into correct map.
Andreas Kirschbaum 2006-01-01

Properly unready forgotten spells. Prevents crashing the server if casting a
forgotten spell.
include/sproto.h: Add new prototype.
server/{apply.c,gods.c}: Call player_remove_range_ob() when forgetting a
server/player.c: Add player_remove_range_ob() to unready a given object.
Andreas Kirschbaum 2006-01-01

Improve the commands learn_spell and forget_spell: now these commands accept
partial spell names and print sensible error messages if they fail.
include/sproto.h: Remove prototype for now static function.
lib/wizhelp/{forget_spell,learn_special_prayer,learn_spell}: Update help files.
server/c_wiz.c: Add parameter op to get_spell_by_name() for printing error
    messages to op. Allow partial matches for spell name. In
    command_learn_spell_or_prayer() and command_forget_spell() report an error
    to the player instead of an error message to the server log file.
Andreas Kirschbaum 2006-01-01

Fix reference-related crashes.
Ryo 2006-01-01

Apply modified patch #1391648 (FIX: new movement code and generators) by Lalo
Martins. This fixes bugs #1383398, #1383392, #1375643, #1372035, #1370409; all
bugs are related to objects stacking which should not stack.
common/map.c: In ob_blocked() consider tiles with living objects as blocked.
Andreas Kirschbaum 2005-12-31

Don't print "file not found" for global events.
Ryo 2005-12-31

Changed the way Python scripts are called. Now script don't share variables anym
  Fix a memory leak.
Ryo 2005-12-28

Applied patch #1383359 (Fix death message) courtesy Anton Oussik
( https://sourceforge.net/tracker/index.php?func=detail&aid=1383359&group_id=138
33&atid=313833 )
Ryo 2005-12-27

server/skills.c: In steal() do not give exp for stealing from pets since this
    can be exploited to gain exp over and over.
Andreas Kirschbaum 2005-12-23

server/c_party.c: fix crash with party obsolescence (->next on freed item). Adde
  get_firstparty() to get firstparty private var needed for plugin.

Added party information to plugin functions. Plugins can change player's party
  or marked item.
  New files:
   plugins/cfpython/include/cfpython_party.h cfpython_party_private.h
  Modified files:
   include/sproto.h: add new functions prototypes.
   include/plugin.h: party-related defines
   plugins/common/include/plugin_common.h: new party functions.
   plugins/common/plugin_common.c: new party functions.
   plugins/cfpython/include/cfpython.h: add new include.
   plugins/cfpython/include/cfpython_object_private.h: marked item/party getter/s
   plugins/cfpython/cfpython.c: add GetParties to Crossfire module.
   plugins/cfpython/cfpython_object.c: MarkedItem setter, Party getter/setter.
   server/plugins.c: new callbacks for party, marked item setter.
Ryo 2005-12-17

server/attack.c: Make spells destroy objects again.
Andreas Kirschbaum 2005-12-15

Moved natural dragon skin resistances from "statistics" to "resistances".
Ryo 2005-12-13

Fix Windows compilation after Andreas's changes.
include/win32.h: define WIFEXITED and WEXITSTATUS.
Ryo 2005-12-11

Fix buffer overflows which can be triggered remotely.
common/porting.c: Re-implement open_and_uncompress(). The new implementation
    should not contain any buffer overflows anymore. It also fixes possible
    exploits due to funny characters in file names.
plugins/cfpython/cfpython.c: Use snprintf() to truncate long strings.
server/login.c: Reject invalid user names.
socket/loop.c: Make overflow detection work while reading from socket.
    Properly re-allocate memory for listen command. Fix buffer overflow for too
    long command names.
Andreas Kirschbaum 2005-12-11

lib/collect.pl.in: General cleanup - just whitespace changes.
Andreas Kirschbaum 2005-12-11

Prevent the map loader from crashing when loading maps with incorrect headers.
Changes are based on patch #1275563 by Kevin Rudat.
common/map.c: Do not dereference NULL value for map headers without parameter.
Andreas Kirschbaum 2005-12-11

Apply modified second part of patch #1275563 (Crossedit: fix map attributes
window) by Kevin Rudat: let crossedit save/load tiling paths as the mapmaker
entered them, rather than saving the normalized version.
common/map.c: Delay path normalization from map loading time
    (load_map_header()) to access time (load_and_link_tiled_map()) if running
    as editor.
Andreas Kirschbaum 2005-12-11

server/move.c: In move_ob() print error message instead of crashing: check
    passed arguments before accessing them.
common/object.c, server/{pets.c,player.c,spell_attack.c,time.c},
socket/request.c: Properly check for P_OUT_OF_MAP after calling
Andreas Kirschbaum 2005-12-10

common/path.c: add missing global.h include.
make_win32/crossfire32.dsp: add path.c and some headers.
Ryo 2005-12-09

Apply slightly modified first part of patch #1275563 (Crossedit: fix map
attributes window) by Kevin Rudat: make the map attributes dialogs work again.
crossedit/Attr.c: Remove code to handle map attributes dialogs.
crossedit/Crossedit.ad, crossedit/Crossedit.ad.h: Update X11 resources.
crossedit/Defines.h: Add typedef for MapAttr.
crossedit/{Edit.c,Edit.h}: Remove/update code to handle map attributes
crossedit/Makefile.am: Add new files MapAttr.c and MapAttr.h.
crossedit/Makefile.in: Rebuilt.
crossedit/{MapAttr.c,MapAttr.h}: New functions containing code to handle the
    main map attributes dialog.
crossedit/Cnv/CnvPrompt.c: Convert CnvPromptStr into char array.
Andreas Kirschbaum 2005-12-09

Remove a strange feature of normalize_path(): it did convert the path
"<path1>//<path2>" into "/<path2>". Also add a stand-alone application for
regression testing this function, and fix a few issues with ".." in path name.
common/path.c: New file containing the modified implementation and the
    stand-alone application.
include/path.h: Prototypes for path.c.
server/main.c: Remove implementation; call renamed function.
common/Makefile.am, include/Makefile.am: Add new files.
common/Makefile.in, include/Makefile.in: Rebuilt.
Andreas Kirschbaum 2005-12-08

server/ban.c: General cleanup - whitespace changes, rename variable names.
    Should not affect function.
server/apply.c: In player_apply() do not consider DM PLAYERs to be DM-created
    items. This prevents the server from destroying the player object (and
    crashing shortly afterwards).
Andreas Kirschbaum 2005-12-07

Apply slightly modified patch #1293744 (Inversed ban entries) by Thomas
server/ban.c: In checkbanned() recognize '~' prefix to allow entries. Also fix
    possible buffer overflow.
Andreas Kirschbaum 2005-12-07

Apply modified patch #1293774 (Kick banned hosts at once) by Thomas Equeter:
disconnect new connection for banned host right after connecting. Also add
support for user name in ban files.
lib/ban_file: Update comments and examples to new syntax.
server/ban.c: Allow a NULL user name to check for host name only.
server/c_misc.c: In receive_player_password() check for banned user name.
server/player.c: In add_player() remove check for banned host - this was
    already done if we reach this state.
socket/init.c, include/sockproto.h: Pass ip address as a string.
socket/loop.c: In doeric_server() check for banned host after a new connection
    was accepted.
Andreas Kirschbaum 2005-12-07

Apply patch #1371956 (code cleanup patch) by Stefan Huehner: fix old-style
function declarations and prototypes to proper Ansi C syntax. This patch
allows the compiler to check function arguments and also removes some warnings
when compiling with -Wstrict-prototypes.
All affected files: Convert "void foo()" into "void foo(void)".
Andreas Kirschbaum 2005-12-06

Fix bug #1173563 (Creator created Bombs malfunction): Creators and Converters
now copy items from inventory. Fallback (for empty inventory) is the old
behavior to create the new item from other_arch. If the inventory contains more
than one item, a random one is picked.
common/loader.l: Mark inventory of CREATOR and CONVERTER as
common/loader.c: Rebuilt.
common/object.c: Update x/y/map for non-head parts to make inserting multipart
    objects via insert_ob_in_ob_at() work.
server/apply.c: In convert_item() consider inventory for item to create.
server/time.c: In move_creator() consider inventory for item to create. In
    process_object() ignore item flagged as FLAG_IS_A_TEMPLATE. (Otherwise
    bombs in inventories would explode prematurely.)
Andreas Kirschbaum 2005-12-05

New plugin property for player: marked item, added Python wrapper.
Modified files:

plugins/cfpython/cfpython.c: fix invalid reference management. Don't return NULL
  but Py_None.
Ryo 2005-12-04

Fix bug #1372194 (stairways now block movement).
random_maps/exit.c: In unblock_exits() check correct field move_block to find
    blocking exits.
Andreas Kirschbaum 2005-12-03

server/apply.c: In move_apply() properly decrement recursion counter.
Andreas Kirschbaum 2005-12-02

server/spell_attack.c: Add some missing P_IS_ALIVE checks - these weren't
   needed in the past because living objects would block movement -
   with new movement code, isn't always the case.
server/time.c: Fix player movers so that if the victim doesn't have any
   movement type, we move it.
MSW 2005-11-30

common/time.c: In move_teleporter() and move_player_mover() do not affect DMs
    if FLAG_WIZPASS is set.
common/object.c: In check_move_on() do not affect DMs if FLAG_WIZPASS is set.
    This prevents DMs from triggering traps when walking over them.
Andreas Kirschbaum 2005-11-30

common/map.c: Replace code with OB_TYPE_MOVE_BLOCK - effectively same as what
   it was.
include/define.h: Update OB_TYPE_MOVE_BLOCK so that spaces that don't block
   any type of movement doesn't block objects that also don't have movement.
   This fixes cases of gates not pushing objects off them.
server/c_party.c: Remove double use of ->next pointer/loop in
     confirm_party_password() - fixes crash and likely makes setting party
     password work more reliably.
MSW 2005-11-29

common/object.c: Fix wrong comparision operator in free_object2() to make
    monsters drop loot again.
Andreas Kirschbaum 2005-11-28

Basically added a parameter to 'skills' command to filter skills. And one char/c
onst char* fix.
common/anim.c: use const char* for find_animation.
include/libproto.h: find_animation uses a const char*.
include/sproto.h: fix prototype.
server/c_wiz.c: send parameter to show_skills.
server/skill_util.c: add search parameter to show_skills command.
Ryo 2005-11-27

plugins/cfpython/cfpython_map.c: use wrappers instead of direct property access.
plugins/common/include/plugin_common.h: new wrappers for maps.
plugins/common/plugin_common.c: new wrappers for maps.
Ryo 2005-11-26

plugins/cfpython/Makefile.in: rebuilt.
Andreas Kirschbaum 2005-11-23

Plugins can now get archetypes. Added a check in cfapi_object_set_property to
  prevent changing archtypes.
Fixed some Python bugs related to map properties.
Added Crossfire.GetArchetypes and Crossfire.GetMaps to get all archetypes/maps.
Modified files:
  include/plugin.h sproto.h
  plugins/cfpython/include: cfpython.h cfpython_map_private.h cfpython_object_pri
  plugins/cfpython/cfpython.c cfpython_map.c cfpython_object.c
New files:
  plugins/cfpython/include/cfpython_archetype.h cfpython_archetype_private.h
Ryo 2005-11-20

server/shop.c: adjust minimum value that shop_specialisation_ratio can
return to 0.1. This should stop some prices being exceptionally high.
Brendan Lally 2005-11-19

Commit for new blocking code.  Not going to dictate all the changes -
but will outline the broad points.  Note also that the
doc/Developers/objects is updated and goes into more details also.
- check for P_WALL no longer used - instead, need to use GET_MAP_MOVE_BLCOK
   and check against movement type of objects.
- arch_blocked() changed to ob_blocked(), now takes object.  Needed because
   just looking at archetype move_ values is no longer sufficient.
- find_first_free_spot() changed to take object, since it just calls
- FLAG_FLYING removed, now in move type.
- walk_on/walk_off/fly_on/fly_off removed - now based on move_on and
   move_off fields.
- Map space structure extended to hold the move_on/move_off, etc
   values so that we can shortcut some processing by not having to
   check every object on the space when something enters it if
   move_on isn't set.
- archetypes recollected - boulders needed move_walk to properly trigger
- Note that the new plugin code has to be fixed up for the new movement
   code.  Look for FIXME in plugins/cfpython/cfpython_object.c
MSW 2005-11-15

Apply patch 1352485 newpickup rings/amulets courtesy anonymous user.
include/define.h: add PU_JEWELS
server/c_object.c: handle new type.
server/player.c: handle new type.
Ryo 2005-11-12

server/plugins.c: Properly update client view after removing objects.
Andreas Kirschbaum 2005-11-10

server/plugins.c: Properly update client view after changing object names.
server/plugins.c: Return an empty string if an object has no message. This
    makes Object.Message() always return a string object, which removes the
    need for special case code to handle empty messages.
include/sproto.h, server/monster.c: Declare parameter of communicate() as
Andreas Kirschbaum 2005-11-09

Implement new functions for the Python plugin: Object.WeightLimit,
Object.InsertInto(Object), Object.NamePl. Change Object.Name to set both name
and name_pl. This should prevents scripts from failing to set name_pl.
plugins/cfanim/include/cfanim_proto.h, plugins/common/include/plugin_common.h:
    Add prototypes.
plugins/cfpython/cfpython_object.c: Add callback functions for new Python
plugins/cfpython/include/cfpython_object_private.h: Add prototypes for
    callback functions. Add callback functions to Python object descriptors.
plugins/common/plugin_common.c: Add missing helper functions.
Andreas Kirschbaum 2005-11-09

server/shop.c: When we are counting unpaid items and their values, to check
if a player may leave a shop, make certain that we count all of them, and
don't stop when we have dropped into a container (such as a spellbook)
Brendan Lally 2005-11-09

plugins/cfpython/cfpython.c: Add missing 'PyType_Ready' calls for map and player
  failure to do so crashes with Python objects destructors set to 0.
Ryo 2005-11-07

server/spell_effect.c: fix WoR not executing on cursed ground with WIZCAST set.
Ryo 2005-11-06

server/skills.c: In do_throw() abort processing if the thrown object was
    destroyed before it gets its first move.
Andreas Kirschbaum 2005-11-06

server/build_map.c: test FLAG_IS_FLOOR too, type == FLOOR is not always enough.
Ryo 2005-11-05

server/shop.c: In value_limit() return the unmodified item price if not in a
    shop or not for a player.
Andreas Kirschbaum 2005-11-05

plugins/cfpython/cfpython.c: added GetPrivateDictionary and GetSharedDictionary
  methods to keep data between runs and share data between scripts.
Ryo 2005-11-05

plugins/Makefile,plugins/cfanim/Makefile: Remove files to be generated by
server/main.c: Fix possible out-of-bounds array access.
Andreas Kirschbaum 2005-11-05

Fix case for [sg]etReturnValue. Add compare operator for object and map (of cour
  only == is relevant).
Modified files:
Ryo 2005-11-05

aclocal.m4, configure, utils/config.guess, utils/config.sub, utils/ltmain.sh,
*Makefile.in, plugins/cfanim/Makefile, plugins/Makefile: Rebuilt.
lib/Makefile.am: Add template-maps to list of directories to create while
Andreas Kirschbaum 2005-11-05

lib/wizhelp/reset: document use of '.' as an argument
Brendan Lally 2005-11-05

random_maps/treasure.c: Fix out-of-bounds array access if place_chest() cannot
    find a free spot to place a new chest.
Andreas Kirschbaum 2005-11-01

Fix bug #1082534 (monks with weapons): Now monks properly are denied from
using weapons. Only newly created monks are affected since it now relies on a
force named "no weapon force" in the player's inventory. The problem was that
become_follower() assumed it was the only means do allow/disallow weapon use.
server/gods.c: Do not let the god allow using weapons if a "no weapon force"
    object is present in the player's inventory.
lib/treasures: add force to monk's treasure list.
Andreas Kirschbaum 2005-11-01

Fix bug #815620 (CFPython.SetQuantity() doesn't update client): now notifies
    the client after changing nrof and/or weight.
server/plugins.c: Re-calculate player's weight and send item change
    notifications in cfapi_object_set_property().
Andreas Kirschbaum 2005-11-01

Improve newpickup command: add new flag PU_NOT_CURSED to ignore cursed items.
include/define.h: Add flag #define.
server/c_object.c: Add "notcursed" option to pickup command.
server/player.c: Respect new flag in check_pickup().
Andreas Kirschbaum 2005-11-01

plugins/cfanim/cfanim.c: remove printf for properties. Export functions for DLL
  for Win32.
plugins/cfanim/cfanim.h: remove obsolete definitions (see plugin_common.h).
plugins/cfanim/cfanim_proto.h: fix definition for exported functions.
plugins/common/plugin_common.c: add gettimeofday for Win32.
plugins/common/include/plugin_common.h: add gettimeofday for Win32.
Ryo 2005-11-01

server/plugins.c: Print error message for event_xxx objects with missing or
    invalid parameters. Also remove the affected object to prevent multiple
    error messages.
Andreas Kirschbaum 2005-11-01

Add new function object_get_env_recursive() to find the outermost environment
object for a given object.
common/object.c, include/libproto.h: Add function.
server/{rune.c,spell_attack.c}: Use function where appropriate.
Andreas Kirschbaum 2005-11-01

General cleanup of weather code.
server/weather: Declare many functions and variables as "static", add
    prototypes for affected functions. Declare some variables as "const".
include/sproto.h: Remove prototypes for now static functions.
include/tod.h: Add "const" to strings.
Andreas Kirschbaum 2005-11-01

Fix bug #1102975 (Bronze items not keeping their + in alchemy): the problem
was that a formula for full_helmet did exist but not for b_full_helmet. Since
both helmet's names are "full helmet", the recipe was selected even if using
the ingredient b_full_helmet. This fix adds new formulae for alternative
archetypes with the same name as the base object, and makes the server code
select the matching formula from multiple arch names in the "arch" field.
common/readable.c: Use new fields to build messages.
common/recipe.c: Make alchemy work for recipes with multiple base archetypes.
include/{libproto.h,sproto.h}: Update prototype.
include/recipe.h: Split string field arch_name into string list fields
    arch_name and arch_names.
lib/formulae: Add archetype names to formulae for all items with same name as
    the base object. Also fix a few name mismatches that prevent any object
    from matching, and change transmution formulae to normal formulae where
    base name does not match archetype name.
server/alchemy.c: Disable debugging code. Make alchemy work for recipes with
    multiple base archetypes.
Andreas Kirschbaum 2005-10-31

server/c_wiz.c: Don't crash on "create" a living thing that has some part
  out of the map. Forbid removing a 'PLAYER' object.
Ryo 2005-10-31

random_maps/style.c: Pass correct sorting function to qsort(): the sorted
    array contains pointers to strings, not strings.
Andreas Kirschbaum 2005-10-29

Fix bug #1236244 (Exp from scrolls): reading a scroll of charm monsters or
meteor swarm now gives exp for use magic item, not summoning or pyromancy.
server/spell_attack.c: In mood_change() use skill from scroll, not from spell.
    In move_swarm_spell() use the spell "owner" as the object casting the
Andreas Kirschbaum 2005-10-29

include/config.h: DEBUG just been defined, no need to define it again.
include/win32.h: typedef for socklen_t.
random_maps/random_map.c: generate_random_map can use a const char*.
random_maps/rproto.h: fix generate_random_map definition.
server/plugins.c: EVENT_CRASH doesn't really need a parameter, especially if
  not initialized :)
Ryo 2005-10-29

Prevent problems (crashes) for large item piles. Now limit nrof to less than
common/object.c: In CAN_MERGE() pretend that the objects are not mergeable if
    the nrof sum would overflow.
common/porting.c: Fix buffer overflow for large numbers in ltostr10(). Also
    make n=1L<<31 work correctly.
plugins/cfpython/cfpython_object.c: In Object_SetQuantity() raise an exception
    for negative nrof values.
plugins/common/plugin_common.c: Reject negative nrof values in
plugins/cfanim/include/cfanim_proto.h, plugins/common/include/plugin_common.h:
    Update prototype.
server/plugins.c: Treat negative nrof as nrof=0 when setting
server/time.c: In move_duplicator() limit nrof of created items.
Andreas Kirschbaum 2005-10-29

Fix compiler warnings. Most changes do not change the program (remove unused
variables, convert "if(x = y)" into "x = y; if(x)"); a few actually fix
(possible) problems (fix uninitialized variables, fix printf format
specifiers, fix mismatches between signed and unsigned variables, add missing
return and default statements).
Affected files:
shstr.c}, crossedit/{Attr.c,Edit.c,Cnv/CnvPath.c}, include/sproto.h,
plugins/cfanim/cfanim.c, plugins/cfpython/{cfpython.c,cfpython_object.c},
weather.c}, socket/{loop.c,request.c}
Andreas Kirschbaum 2005-10-28

Fixes my previous commit. Should now properly allocate/deallocate the
faces_sent array.
common/player.c: Free faces_sent in free_player().
include/newserver.h: Add field faces_sent_len to NewSocket struct.
server/player.c: Allocate and copy faces_sent in add_player().
socket/init.c: Use faces_sent_len in InitConnection().
socket/loop.c: Initialize faces_sent_len in doeric_server().
Andreas Kirschbaum 2005-10-28

The archetypes now contain more than MAXFACENUM (5000) faces. The following
changes remove the fixed limit of the number of faces. The server now
allocates enough memory to handle all defined faces.
include/newserver.h: Remove MAXFACENUM since it is not used anymore. Change
    NewSocket.faces_sent from array into pointer.
socket/{init.c, loop.c}: Allocate/initialize NewSocket.faces_sent.
socket/request.c: Remove safeguard/error message since it depends on
Andreas Kirschbaum 2005-10-24

Code improvements:
common/image.c: Declare some variables and functions as static or const; add
    safeguards while loading config files; remove support for numeric face
    names (no active archetype or map does use it); in free_all_images()
    deallocate memory allocated for smoothing.
crossedit/xutil.c: Remove assignment to nrofpixmaps since ReadBmapNames()
    already sets this variable.
include/{global.h, libproto.h, loader.h}: Remove now static variables and
Andreas Kirschbaum 2005-10-24

common/readable.c: Fix out of bounds access to max_titles[] in
common/image.c, include/define.h, include/global.h: Remove unused variables
    potion_face and POTION_FACE_NAME.
common/image.c, include/global.h: Remove unused variable blank_look.
Andreas Kirschbaum 2005-10-24

Make shout command work in old socket emulation mode.
common/commands.c: Sort all command arrays in init_commands().
Andreas Kirschbaum 2005-10-23

common/item.c - fix spelling mistake
common/utils.c include/libproto.h - new function make_list_like that takes a
    string of comma deliminated words, and puts an and in the right place.
include/sproto.h server/apply.c server/shop.c -new function can_pay - checks
    that a player can pay for every unpaid item that they are holding before
    starting to purchase them.
Brendan Lally 2005-10-21

plugins/cfpython/{Makefile.in, Makefile.am}, plugins/cfpython/include/cfpython.h
    Corrected improper regeneration of the function prototypes using
    "make proto" for the cfpython plugin.
Gros 2005-10-20

plugins/cfpython/{cfpython.c, cfpython_object.c, cfpython_map.c},
plugins/cfanim/cfanim.c, plugins/common/plugin_common.c, server/plugins.c:
    Added support for execution of python_init.py upon initialization of cfpython
    Reduced the console spam produced by various leftover debugging messages.
Gros 2005-10-19

plugins/common/include/plugin_common.h: add CF_PLUGIN macro.
plugins/cfpython/cfpython.c: add CF_PLUGIN to exported functions.
plugins/cfpython/include/cfpython_proto.h: fix prototypes.
Ryo 2005-10-19

plugin/*, plugin_logger/*, plugin_anim/*, plugins/*,
server/{apply.c, attack.c, c_chat.c, c_object.c, c_wiz.c, gods.c, main.c,
monster.c, player.c, skills.c, swap.c, time.c, timers.c}, include/{plugin.h,
sproto.h}: Replaced the old plugin interface by the 2.0 one.
    Upgraded the Python and Animator ones to the new interface.
    Removed obsolete Logger plugin.
Gros 2005-10-19

server/main.c: Template Maps: Allow %x, %y, and %n in the path to respectively b
    replaced with, the x coord, the y coord, and the parent map name.
Alex Schultz 2005-10-18

server/{main.c, swap.c}, common/map.c, include/{libproto.h, map.h}: Add support
    for random template maps (still need to document, and still need to add suppo
    for template maps created from non-random templates)
Alex Schultz 2005-10-16

common/info.c: fix -m1 crashing (34 chars, not 32!), and -m2 crashing under Win3
include/sproto.h: fix cast_change_ability definition.
server/gods.c: fix cast_change_ability to hide the 'can't recast' message.
server/spell_effect.c: don't stack word of recall forces. Add a 'silent' paramet
  to cast_change_ability to not display 'can't recast xx while xx is in effect'
server/spell_util.c: fix cast_change_ability call.
Ryo 2005-10-16

include/{global.h, sproto.h, config.h}, server/init.c, common/init.c, lib/Makefi
    Add directory in preparation for template (where the template can optionally
    from the random map generator) maps.
Alex Schultz 2005-10-15

server/c_wiz.c: make reset command show the names of other players on the
map when it fails.
Brendan Lally 2005-10-14

server/c_party.c: fix another obscure party crash bug
Brendan Lally 2005-10-12

server/c_party.c: fix a couple of loops that could crash under certain circumsta
Brendan Lally 2005-10-11

common/object.c: use canonical_key instead of key, else == always fails.
server/apply.c: drop "on_use_yield" item if required when applying potion, food
or poison.
  This lets players get empty bottles/vials/... when using potions.
Ryo 2005-10-09

Added GetMarkedItem to Python, cleaned compilation warnings.

Moved gps code to Python script, thus cleaning relevant code from server core.
  common/item.c: remove item description.
  include/define.h: remove gps define.
  server/apply.c: remove gps function.
Ryo 2005-10-08

Prevent objects from losing inventory when thrown.
include/libproto.h, common/object.c: Add new parameter "free_inventory" to
    free_object(). Is set, free inventory as well instead of dropping it on the
common/object.c: In get_split_ob() prevent inventory of splitted object to be
Andreas Kirschbaum 2005-10-07

common/object.c: Use object_create_clone in get_split_ob; Fixes things inside
    of objects disappearing when throwing.
Alex Schultz 2005-10-7

Make damage done by area spells not depend on monster size.
include/sproto.h, server/attack.c: Add additional parameter "full_hit" to
    hit_map() and hit_player(). If set, do full damage, if unset scale down by
    monster size.
server/{apply.c, attack.c, disease.c, monster.c, player.c, rune.c,
spell_attack.c, spell_effect.c, spell_util.c, time.c}: Change callers to set
    "full_hit" parameter according to the attack used.
Andreas Kirschbaum 2005-10-07

common/{arch.c, object.c}, crossedit/{Attr.c, Defines.h, Edit.c},
include/libproto.h, server/{plugins.c, time.c}: Rename functions with
    mixed-case names to lower case only.
crossedit/Defines.h: Remove prototypes for nonexisting functions.
Andreas Kirschbaum 2005-10-07

server/apply.c: In prepare_weapon() do not lose a reference to the item name.
Andreas Kirschbaum 2005-10-06

include/sproto.h, server/shop.c - make value_limit static, change its
arguments to add some checking for NULL pointers
Brendan Lally 2005-10-06

server/monster.c: In move_monster() prevent hp/sp overflows for monsters with
    very high maxhp/maxsp and very high regeneration rates.
Andreas Kirschbaum 2005-10-05

common/treasure.c - prevent crashes with some broken treasure lists.
Brendan Lally 2005-10-05

server/shop.c: convert val to sint64 - compilation issues with Win32. Checked wi
  patch author that it's fine.
Ryo 2005-10-04

common/map.c - fix output names in new_save_map
server/shop.c - don't assume that shop_specialisation_ratio only gets passed
items with valid types.
common/map.c - /actually/ fix pointer issue
common/map.c - fix potential issue with NULL pointer
Brendan Lally 2005-10-04

common/map.c - fix an inequality in for loop - not sure if this actually
fixes anything of note, but the previous form was definatly wrong.

common/item.c - big item type table, function to deal therewith
common/loader.l - add player_sold flag
common/map.c - shop related header parsing
include/define.h - define typedata, player_sold flag and some new shop flags
include/libproto.h - define typedata related functions
include/map.h - define new shop headers
include/sproto.h - define new functions in shop.c
server/apply.c - Change shop mat usage message
server/c_object.c - Change display of price estimates
server/shop.c - new functions describe_shop, value_limit, shopkeeper_approval,
shop_greed, shop_specialisation_ratio, substantially alter query_cost_string
and query_cost to make use of these
server/skill_util.c - make bargaining a directly usable skill
doc/Developers/shops - document the above
doc/Developers/maps-technical - add shopheader names, and reference to shops doc
Brendan Lally 2005-10-03

server/disease.c: check for value <= 0 as some diseases get dumped on a map
  with value == 0 (negative values will eventually underflox, but it'll take time

Apply patches courtesy quisar.
  #1307880 Allow to add a param to the cast command
  #1306987 Allow to summon lower level pet monsters
Modified files:
  include/player.h sproto.h
  server/c_range.c login.c pets.c player.c spell_util.c
Ryo 2005-10-01

common/button.c: explicit cast of stats.food to uint32 when used as sacrifice co
common/image.c: strlen returns size_t. Remove unused FindFaceName.
common/object.c: obj::count is tag_t. Can't decrease item's nrof by a negative v
include/libproto.h: fix prototypes.
include/player.h: weight and weight_limit are sint32, so last_ should be the sam
include/sproto.h: nrof is uint32, not int.
server/apply.c: nrof is uint32, can't eat a negative number of items. obj::count
  is tag_t.
server/c_misc.c: remove unused variable.
server/c_object.c: use uint32 instead of int to specify number of items to drop/
server/plugins.c: strlen returns size_t.
server/spell_effect.c: distances are uint32 and not int.
socket/loop.c: remove now obsolete cast of -1 to uint32 for last_weight.
socket/request.c: explicit cast of weight_limit to sint32 when comparing to last
Ryo 2005-10-01

plugin/plugin_python.c: added CF[SG]etWeightLimit.
plugin/include/plugin_python.h: function prototypes.
server/plugins.c: update player inventory if item teleporter from that.
Ryo 2005-09-30

lib/collect.pl.in: can now use lines like "attacktype fire electricity poison" i
  of hard to remember numbers. Numbers are still supported, you can even mix both
Ryo 2005-09-28

server/spell_effect.c: In recharge() verify that the object to charge is in
    fact a wand or staff.
Andreas Kirschbaum 2005-09-27

Changed quest behaviour, now uses its own archetypes. Can change npc/magic ear
  text based on quest status.
Warning: not totally tested. Quest start/end works, rest needs some tweaks & fix
common/quest.c: new functions, some cleaning.
doc/Developers/quest: update (partially).
include/define.h: new item types.
include/libproto.h: new definitions.
server/c_misc.c: update.
server/monster.c: take into account quest overrides.
server/time.c: markers now start/end tasks if needed.
Ryo 2009-09-25

server/c_party.c - fix another party list corruption bug, and a couple of
possible infinite loops
Brendan Lally 2005-09-25

Clean some compilation warnings.
  common/map.c: remove unused variable.
  common/readable.c: strlen returns size_t.
  include/object.h: objectlink id should be tag_t since it's the item's "count" f
  server/c_misc.c: strlen returns size_t.
  server/c_object.c: strlen returns size_t.
  server/c_party.c: remove_party returns void, value not used anyway. Fordward de
  server/c_wiz.c: settings.worldmaptiles[x|y] is uint32.
  server/gods.c: strlen returns size_t.
  server/hiscore.c: maxchar is const.
  server/skill_util.c: strlen_returns size_t.
Ryo 2005-09-25

include/player.h sproto.h
server/attack.c c_party.c player.c
Fix several bugs in patch #1194964, including one that caused segfaults
one that corrupted the party list, and one that broke party password recognition
remove partyid from the party struct - use party pointers instead
remove functions find_party() and find_party_struct() - no longer needed or used
make form_party a local function - it is only used by the party form command,
and can't easy be used safely elsewhere.
Brendan Lally 2005-09-25

server/build_map.c: remove unused variable.
Commit patch #1194964 (party obsoletion) by cavesomething.
Affected files:
  include/player.h sproto.h
  server/apply.c attack.c c_party.c login.c main.c pets.c player.c
   skill_util.c skills.c spell_util.c
include/win32.h: turn off harmless warning.
Ryo 2005-09-24

Fix bug #744327 ('immortal' monsters): Prevent monsters from loosing hp or sp
if they have negative Con/Pow. For hp, this made some monsters unkillable
because they eventually had negative hp.
server/monster.c: In move_monster() do gain hp/sp only if Con/Pow is positive.
Andreas Kirschbaum 2005-09-24

Update client inventory view for players dieing in a shop with unpaid items in
server/player.c: Send removed item to client in remove_unpaid_objects(). Do
    not call remove_unpaid_objects() multiple times in kill_player().
Andreas Kirschbaum 2005-09-17

Allow directors/movers to specify a specific arch/name/race.
include/sproto.h: Add should_director_abort to here.
server/{apply.c, time.c}: Add should_director_abort for the logic code
     for this change, and add checks for it in director/mover code.
doc/Developers/objects: Add documentation for directors including this
     change, and update mover documentation.
Alex Schultz 2005-09-15

Make untriggered TIMED_GATEs work again.
server/apply.c: Clear object speed only for connected objects.
Andreas Kirschbaum 2005-09-13

This change is mostly cosmetic and a preparation for the new movement
type code.  Basically, it just changes the old object movement_type
field to attack_movement.  This makes sense because that is what that
field is called in saved and loaded objects/archetypes, and thus
frees up that name for the new movement code.
common/button.c: field name change
common/loader.{cl}: field name change
doc/Developers/objects: Add section on new movement types, update old
    documentation to note it is attack_movement and not movement_type
    field that is important.
include/object.h: field name change.
server/attack.c: field name change.
server/monster.c: field name change
server/pets.c: field name change
server/skills.c: field name change.
server/spell_attack.c: field name change
server/spell_effect.c: field name change
MSW 2005-09-12

Allow a DM to cast spells and prayers in no-magic/no-prayer areas. Add new
command "wizcast" to toggle this setting.
common/loader.l: Set/reset FLAG_WIZCAST for flag "wiz".
common/loader.c: Rebuilt
include/define.h: Add new flag FLAG_WIZCAST; remove unused flag
lib/Makefile.am: Add new help file for wizcast.
lib/Makefile.in: Rebuilt.
plugin_animator/plugin_animator.c: Set/reset FLAG_WIZCAST in animate_one().
server/apply.c: Always allow FLAG_WIZCAST to enchant weapons and armour.
server/c_misc.c: Add new function command_wizcast().
server/c_wiz.c: Set/reset FLAG_WIZCAST when entering/leaving DM mode.
server/commands.c: Add "wizcast" command.
server/spell_effect.c: Always allow FLAG_WIZCAST to use the spell probe.
server/spell_util.c: Always allow FLAG_WIZCAST to cast spells and prayers.
Andreas Kirschbaum 2005-09-09

server/monster.c: Set FLAG_READY_SKILL in monster_check_apply() for monsters
    with skills. This fixes hill giants and trolls not throwing boulders
server/monster.c: Add missing "break" statement in monster_can_pick(). It did
    prevent some monsters from picking up scrolls.
Andreas Kirschbaum 2005-09-08

common/{anim.c, image.c, los.c, map.c, porting.c, treasure.c},
include/define.h, random_maps/treasure.c,
server/{apply.c, c_misc.c, c_object.c, c_wiz.c, commands.c, daemon.c,
hiscore.c, init.c, login.c, player.c, plugins.c, resurrection.c, weather.c},
socket/{init.c, item.c, loop.c, lowlevel.c}: Use LOG() for error messages and
    debug output instead of stdout/stderr. Include filename in error messages.
server/resurrection.c: Fix error message in read_player().
Andreas Kirschbaum 2005-09-04

socket/item.c: Make selecting objects from ground view work again.
common/object.c: Fix update of player's ground view in insert_ob_in_map().
    Previously the ground view was not updated after applying exits or after
    being hit by a spell.
Andreas Kirschbaum 2005-09-03

Fix bug #1102991 (Duplicate grapical display of the same monster):
doc/Developers/protocol: Change semantics of map_scroll command to what the
    server actually does: big faces outside the viewable area are cleared. Add
    newmap command.
include/newserver.h: Increase MAX_HEAD_OFFSET to 8 (the size of a Greater
    MapRedrawCmd(): Disable mapredraw command; it is now just ignored.
    MapNewmapCmd(): Clear map state before sending newmap command.
    check_head(): Remove redundant code.
    update_space(): Move invariant condition out of loop to speed it up. Fix
       uninitialized variable. Remove redundant condition. Fix off-by-one array
    update_smooth(): Remove unused code. Properly send cleared big faces.
    draw_client_map(): Remove duplicate check. Properly clear newly visible
       area when scrolling the map.
Andreas Kirschbaum 2005-08-31

common/{loader.l, map.c, object.c}, include/{define.h, map.h, object.h}:
    Accelerate map loading (a lot) and map saving (a bit) codes to improve map
    transition experience.
common/loader.c: Rebuilt.

Add (slightly reformatted) patch #1276121 (Crossedit: handle big faces) by
    Kevin Rudat:
crossedit/CrEdit.c: UpdatePosition(): Use new drawing subroutines.
crossedit/CrFace.c: DrawObject(): Use new drawing subroutine.
crossedit/CrList.c: Redisplay(): Use new drawing subroutine.
crossedit/CrUtil.c, crossedit/CrUtil.h: Remove FaceDraw(), add DrawFacePart()
    and DrawPartObject().
crossedit/png.c: Upload the whole image, not just the top-left corner.
Andreas Kirschbaum 2005-08-30

Fix bug #1256173 (Magic drain not exploding head):
server/spell_effect.c: Prevent mana transfer to/from caster himself; also
    create fireball for overcharges resulting from sucking mana.
Andreas Kirschbaum 2005-08-30

Fix bug #1059537 (Chainmail mutations):
common/loader.l: Remove code that "fixes" broken item names by removing a
    leading material name. This effectively renames "mithril chainmails" into
common/loader.c: Rebuilt.
Andreas Kirschbaum 2005-08-29

Fix player weapon speed/speed.  There are a few bugs this fixes:
1) when player hit something, a has_hit field was set to true, to denote
    they hit something and to use weapon speed. However, this was only
    cleared when player issued a command.  Thus, if you are running
    and hit something, you'd continue at weapon_speed pace until you
    needed to change direction.
2) Because has_hit was used, this basically put in a 1 tick lag - you'd hit
    something, but not until objects were processed and speed given would
    you get your extra speed.  Likewise, after you killed something, you'd
    get your burst of speed for the next tick also.
server/main.c: Clear has_hit, change function to only do bounds checking,
    not actually do weapon_speed adjustments.
server/player.c:  Give player speed boost when they hit something.
MSW 2005-08-28

Add patch #1274385 by Kevin Rudat to make crossedit draw floors on tiles with
crossedit/CrEdit.c: Add call to update_position() in UpdatePosition().
Andreas Kirschbaum 2005-08-28

Add patch #1271417 by Kevin Rudat to stop crossedit losing regions. Patch is
slightly modified to properly handle all map fields.
crossedit/Edit.c: Copy all map fields in MapMoveScrollResize(). Do not add a
    msg header to already existing maps.
crossedit/crossedit.c: Call init_regions() at program initialization.
Andreas Kirschbaum 2005-08-28

socket/init.c: Make setsockopt(REUSEADDR) work if using gcc in Ansi C mode on
Andreas Kirschbaum 2005-08-28

common/map.c: Change default values for reset_timeout, enter_x, and enter_y
    map headers to zero. In set_map_reset_time() use MAP_DEFAULTRESET if
    reset_timeout is zero. This change prevents crossedit from adding these
    headers by just loading and saving a map.
include/config.h: Add MAP_DEFAULTRESET.
Andreas Kirschbaum 2005-08-27

server/rune.c: Fix crash if casting disarm out of map bounds.
server/spell_effect.c: Fix crash if casting polymorph out of map bounds.
Andreas Kirschbaum 2005-08-25

Apply patch 1200555 - addition of key/value lists which allows arbitrary
storing of data in objects - see doc/Developers/key-value for more
loader.l, loader.c: Add add_key_value() function which parses the unknown
   line in the object/archetype.  Update get_ob_diff() to make differences
   for the key/value lists.
common/object.c: Add functions for properly comparing the key/value lists,
   setting and getting the vaues, clearing values upon freeing of object,
doc/Developers/Makefile.am: Add key-value file.
doc/Developers/key-value: Documentation of this feature.
include/libproto.h: Rebuilt
include/object.h: Addition of key_value struct, addition of key_values
    field to object.
MSW 2005-08-22

socket/request.c: Fix range checking of toggleextendedtext parameters.
Andreas Kirschbaum 2005-08-17

The following fix code that basically does "for(x = pos-5; x < pos+5; x++)".
This is not correct because it includes "pos-5" but not "pos+5".
common/los.c: Make lighted distance equal in all directions.
server/disease.c: Make infection distance equal in all directions.
server/monster.c: Make lighted distance equal in all directions.
Andreas Kirschbaum 2005-08-17

Add patch by Kevin Rudat for applyable but non
pickable objects to have item items.
doc/Dvelopers/objects: Update item types.
socket/item.c: Use the head of any objects we send.  Should generally
    only be an issue for objects on the ground, as currently there is no
    large objects players can pick up.  Also fix up some of the formatting/
    indenting in this file.
MSW 2005-08-16

server/attack.c, include/define.h, common/loader.l doc/Developers/objects:
Add a flag FLAG_IS_LIGHTABLE, to make lightable objects such as lanterns
able to work again
lib/archetypes: recollect archs
Brendan Lally 2005-08-16

server/build_map.c: Add support for buildable signs, and magic mouths/ears.
Alex Schultz 2005-08-15

lib/Makefile.am, lib/Makefile.in: Actually install help file for showpets.
common/living.c, include/living.h: Make global arrays really const.
Andreas Kirschbaum 2005-08-15

server/gods.c: Fix crash for monsters without appropriate god.
server/gods.c: Add missing braces around body of if statement.
Andreas Kirschbaum 2005-08-14

NPCs instead of being given a random god are for preference given the god that
likes their race. If one can't be found, then we fall back to a random god.
Affected files:
server/gods.c include/sproto.h
Brendan Lally 2005-08-12

String fields in structures using add_string are now const char*. Functions in
  shstr (add_refcount, add_string, free_string, ...) now take/return const char*.
More argument replacing from char* to const char*.
Fixed a potential string corruption in recipe.c (when dumping) and readable.c (w
  using strtok on a add_string-ed string, when strtok changes argument).
Fixed a few type mismatch on qsort calls.
Global char arrays (messages and such) are const char* too.
Removed unused typedefs / structures.

Affected files:
  common/anim.c image.c info.c item.c living.c object.c quest.c readable.c recipe
   shstr.c treasure.c
  include/arch.h commands.h define.h face.h funcpoint.h global.h god.h libproto.h
   living.h map.h material.h object.h player.h race.h recipe.h skills.h sproto.h
  random_maps/random_map.h reader.[cl] style.c
  server/apply.c attack.c c_object.c c_range.c c_wiz.c gods.c
   main.c monster.c pets.c player.c plugins.c resurrection.c shop.c skill_util.c
   spell_attack.c spell_effect.c time.c timers.c

Ryo 2005-08-12

Arguments are now const char* instead of char* when available. This ensures
the variable is not changed in random places.
Affected files:
  common/porting.c quest.c readable.c recipe.c re-cmp.c shstr.c treasure.c
  include/libproto.h sproto.h win32.h
  server/c_misc.c c_object.c c_party.c c_wiz.c egoitem.c gods.c hiscore.c init.c
   main.c monster.c player.c resurrection.c rune.c shop.c skill_util.c skills.c
   spell_effect.c spell_util.c win32.c
Ryo 2005-08-12

Add help for showpets, and update help for killpets
  lib/help/{showpets, killpets}
Add a new command 'showpets' to give a numbered list of the pets that a player
controls. These numbers can be passed to showpets to give more detail about one
pet, or they can be passed to killpets to control which pets are killed.
Also allow killpets to take a name as an argument. Affected files:
  server/{c_misc.c, commands.c}
Make random maps take the region of the map creates them. Affected files:
  random_maps/{random_maps.h, random_maps.c}
Brendan Lally 2005-08-11


Fix server cache which was broken for some reason.
Ryo 2006-02-25

Apply patch #1433271 (code-cleanup) by Stefan Huehner: Add const and static,
remove unused variables
Affected files: common/{client.c,commands.c,image.c,init.c,item.c,metaserver.c},
gtk-v2/src/{main.c,sdl.c}, x11/{png.c,rcs-id.h,sound.c,x11.c,xutil.c}
Andreas Kirschbaum 2006-02-23

More improvements to the gtk-v2 client:
- Add spell selection window similar to that in the gtk-v1 client.
- Make it so that clicking on the headers in the metaserver and keybinding
   selection windows will result in table be sorted by that header.
*/Makefile.in: Rebuilt by automake.
aclocal.m4: Updated by aclocal.
gtk-v2/TODO: Remove things that have been done, add other things mentioned
   on mailing list that should be done.
gtk-v2/gtk-v2.glade: Updated with new spell selection window.
gtk-v2/src/Makefile.am: Add spells.c file
gtk-v2/src/spells.c: File that handles spell selection window.
gtk-v2/src/callbacks.h: Updated by glade
gtk-v2/src/gtk2proto.h: rebuilt
gtk-v2/src/interface.c: Updated by glade.
gtk-v2/src/interface.h: Updated by glade.
gtk-v2/src/keys.c: Add necessary calls to enable sorting of table by
   clicking on headers.
gtk-v2/src/main.c: Add call to update_spell_information() if spell information
   has changed.
gtk-v2/src/metaserver.c: Add necessary calls to enable sorting of table by
   clicking on headers.  Convert the idletime and number of players columns
   to be ints - this makes the sort work as expected, and actually simplifies
   the code a little.
gtk-v2/src/support.h: Rebuilt by glade.
MSW 2006-02-22

common/player.c: Fix bug in that spell data wasn't being cleared when
   logging on.  Thus, if you logged on as one character, then another,
   etc, it would just keep adding to the spell list, not being a
   representative list of spells character knows.
MSW 2006-02-20

gtk/gx11.c: when no skill is sent in a addspell packet, display the skill as
    'generic' in the Spell window
Brendan Lally 2006-02-20

Improvements to the gtkv2 client - Add free form text box to metaserver
selection window so server name can be manually entered, add keybinding
interface window to client similar to one in gtkv1 client, and disconnect
menu item to client.  Note that this keybinding interfaces allows for
ALT and META modifiers in addition to SHIFT and CONTROL, hence minor changes
to the common code.
common/client.h: Add meta_on, alt_on to player structure.
gtk-v2/gtk-v2.glade: Updated with new elements - keybinding window, new
   menubar, text box for metaserver window.
gtk-v2/src/callbacks.h: Generated by glade for new function prototypes
gtk-v2/src/gtk2proto.h: rebuilt for new function definitions.
gtk-v2/src/interface.c: Generated by glade for new features.
gtk-v2/src/interface.h: Generated by glade for new function prototypes
gtk-v2/src/keys.c: New initialization code for keybinding window.  New
   KEYF_ modifiers.  New handling for meta and alt keys.  Many new callbacks
   for new code.
gtk-v2/src/main.c: Remove unused extern declartions.
gtk-v2/src/menubar.c: Add function for disconnect menu item.
gtk-v2/src/metaserver.c: Add metaserver_connect_to() to handle common
   connection logic (pulled from on_treeview_metaserver_row_activated().
   Add on_metaserver_text_entry_activate() for text entry server connections.
MSW 2006-02-19

Apply modified patch #1432404 (Solve bug in watch stats script function) by
Benjamin Lerman: make watch stats command work if more than one stat changes
common/script.c: In script_watch() do not overwrite but append multiple watch
    stats commands.
Andreas Kirschbaum 2006-02-17

Apply patch #1430279 (code-cleanup: const, static, etc) by Stefan Huehner.
Affected files: common/{client.c,client.h,commands.c,def-keys.h,external.h,
sign_west.xpm,skull.xpm,unlock.xpm}, sound-src/{alsa9.c,cfsndserv.c,common.c},
utils/mdk.sh, x11/{sound.c,x11.c,xutil.c}
Andreas Kirschbaum 2006-02-16

Apply patch #1429975 (patch to support port numbers in metaserver host names)
by Marc Lehmann.
common/metaserver.c: In metaserver_select() allow a port number in the server
Andreas Kirschbaum 2006-02-12

common/metaserver.c, common/metaserver.h: Make cached_servers_loaded static
    since it is not used elsewhere.
Andreas Kirschbaum 2006-02-12

gtk/inventory.c, gtk-v2/src/inventory.c, x11/x11.c:
Make the message displayed for locked items more descriptive.
Brendan Lally 2005-02-09

Remove unscrollable single column resistances option from gcfclient.
Change the setting name in the config file and convert old values.
Reduce MAX_BUTTONS to 33. Replace radio buttons with a single push button.
Remove legacy lighting save code. Remove SHOW_RESISTS, use NUM_RESISTS
instead (this reduces the blank space at the bottom of the resistances
window). Call resize_resistance_table from get_message_display, remove
duplicated code from the latter.
Affected files:
gtk/gx11.c, config.c
Remove coloured inventory and text options, as well as all supporting code
for them. Make text always print in colour. Remove special code for
initialising black and white monitors in cfclient, and change its background
colour to colour number 9 (to not be the same as so many draw_info's from the
server). Change colour number 9 to a pale grey to make text show up better.
Affected files:
common/client.h, init.c
gtk/config.c, gtkproto.h, gx11.c, inventory.c
gtk-v2/src/info.c, inventory.c
x11/x11.c, x11proto.h, xutil.c
Brendan Lally 2006-01-31

gtk-v2/src/opengl.c: For opengl mode, create a subwindow of the map window
   with the needed visual.  On many systems, the visual that glXChooseVisual()
   returns doesn't match the default visual of the system, thus resulting
   in opengl not being able to create a context.
MSW 2006-01-28

gtk/gx11.c: add a 'spell options' box to allow extra options to be passed to
spells, make any mouse button change the spell description, not just the
left one and reorder some gtk function calls to improve clarity
Brendan Lally 2006-10-21

Fixed compilation for some compilers.
gtk/gx11.c inventory.c
Ryo 2006-01-19

common/commands.c: actually read the right amount of data on an updspell
Add spell listing support to gcfclient and common, in particular:
common/client.c: addspell, updspell, delspell function pointers, send
    spellmon in setup
common/client.h: Spell struct, add attuned, repelled, denied to stats, add
    spelldata and spells_updated to player struct
common/commands.c: parse stat details concerning spell paths, addspell,
delspell, and updspell packet handling
common/newclient.h: new flags related to this
common/proto.h: function declarations
gtk/gx11.c: make the client->spells menu option show a window displaying all
    spells known to the player, have a function update_spell_list to update it,
    add a call to this to do_timeout.
Brendan Lally 2006-01-19

gtk/gx11.c: make skills display in a scroll pane, display all known skills,
    not just those with exp
Brendan Lally 2006-01-17

gtk/inventory.c: grey out close button when it won't do anything
Brendan Lally 2006-01-16

common/commands.c: In DeleteItem() properly handle more than one item.
Andreas Kirschbaum 2006-01-13

x11/png.c: Add same workaround from gtk/png.c to make it work on 64 bit
MSW 2006-01-01

Made item's nrof uint32, like server-side. Fix a crash in get_number if nrof < 0
  (not supposed to happen, server bug, but still).
Modified files:
  common/commands.c item.c item.h proto.h
Ryo 2005-12-27

gtk-v2/src/image.c: Remove call to free fog pixels (SDL) - with call in place,
    client crashes on double free in SDL mode after disconnecting from
MSW 2005-12-11

gtk/{map.c,sdl.c}, x11/x11.c: General cleanup - just whitespace changes.
Andreas Kirschbaum 2005-12-11

Apply patch 1352490 "newpickup rings/amulets client side" courtesy anonymous.
Modified files:
Ryo 2005-11-12

common/player.c: Properly ignore received comc commands with invalid length.
gtk/gx11.c, gtk-v2/src/image.c: Initialize smooth_face field when allocating
    pixmaps array.
Andreas Kirschbaum 2005-11-02

Add support for newpickup PU_NOT_CURSED (ignore cursed items) flag.
gtk/gx11.c: Add flag #define and menu entry.
gtk-v2/gtk-v2.glade: Add menu entry.
gtk-v2/src/{callbacks.h,interface.c}: Rebuilt.
gtk-v2/src/gtk2proto.h: Add prototype for menu callback.
gtk-v2/src/pickup.c: Add #define and menu callback function.
Andreas Kirschbaum 2005-11-01

gtk/config.c: fallback to PIXMAP display mode when SDL is not built in.
Ryo 2005-11-01

Fix bug #1288647 (typing text in password mode). Now hidden input (for
password entry) is reliably turned off afterwards.
common/command.c: Enable hidden input before printing the query; this allows
    the gtk client to enable it in his callback function. Also: reset hidden
    input mode after sending a reply to the server.
gtk/gx11.c: Enable/disable hidden input in non-popup input area even if popup
    mode is enabled. Otherwise hidden input mode will not be disabled when
    switching to popup mode while entering a password.
Andreas Kirschbaum 2005-10-29

common/p_cmd.{c,h}: Remove superfluous "const" from get_num_commands() return
Andreas Kirschbaum 2005-10-29

gtk/text.c: Print MOTD into text window if using -nopopups mode. Previously it
was discarded in -nopopups mode.
Andreas Kirschbaum 2005-10-28

Documentation/Scripting.html: Clarify the repeat parameter for the issue
Andreas Kirschbaum 2005-10-28

common/script.c: Make parameters passed to scripts work again.
Andreas Kirschbaum 2005-10-28

common/script.c: fix Win32 that didn't detect end of script correctly.
Ryo 2005-10-16

Avoid using c++ reserved words, in case one wants to link a c++ program to
Alex Schultz 2005-09-22

common/{client.h, init.c}, gtk/{config.c, gx11.c}: Add configuration option
to allow clients to timestamp incoming coloured messages. This implements RFE
Brendan Lally 2005-09-22

gtk-v2/src/image.c copy part of gtk1 image.c to fix a compile issue on
Brendan Lally 2005-09-21

common/external.h: add definition of addsmooth.
gtl/inventory.c: explicit cast of parameters.
Ryo 2005-09-10

configure, configure.in: Move check for X11 early in the process so that
   gtk dependencies on them should be resolved.
MSW 2005-09-05

x11/x11.c: Fix similar problem for x11 client: need_update needs to be cleared
Andreas Kirschbaum 2005-09-04

gtk/map.c: need_resmooth needs to be cleared too, else drawing routines called
  all the time.
common/misc.c: LOG buffer made static to avoid stack creation/destruction.
common/script.c: removed unused variable/call.
gtk/gx11.c: no need to refresh game area when window gets focus.
gtk/gx11.h: add cache fields for listinfo.
gtk/inventory.c: don't refresh list labels if not changed.
common/mapdata.c: remove parasite #define NDEBUG
gtk/image.c: if icon and map scales are the same, just gdk_pixmap_ref image and
  This saves graphical resources and time.
gtk/map.c: don't draw black rectangle if no face with transparency.
Ryo 2005-09-04

*Makefile.in, aclocal.m4, configure: Rebuilt.
Andreas Kirschbaum 2005-09-03

Fix bug #1102991 (Duplicate grapical display of the same monster):
common/Makefile.am: Add new files mapdata.c and mapdata.h.
common/{client.c, commands.c}: Tell mapdata module the current display size.
common/commands.c: Remove functions to handle map updates. Rewrite
    map1_common() to pass information into mapdata module.
common/init.c, gtk/gx11.c: Add new config options -mapscroll and -nomapscroll
    to enable/disable scrolling the map view with bitmap operations.
common/mapdata.[ch]: Add new module to handle all updates to the_map.
gtk/gx11.c: Remove code for #if ALTERNATE_MAP_REDRAW. Initialize question mark
    face for fog of war. Remove code to allocate the_map.
gtk/image.c: Do not clear the_map in reset_image_data() anymore.
gtk/map.c: Move code to update map data into mapdata module.
    draw_pixmap(): New function to draw one face.
    drawsmooth(): Check correct layer instead of fixed layer zero. Fix out of
       bounds array access.
    display_mapcell(): New function to draw one cell.
    gtk_draw_map(): Move map drawing code into display_mapcell().
gtk/sdl.c: Basically the same changes as in gtk/map.c
gtk-v2/src/image.c: Basically the same changes as in gtk/gx11.c.
gtk-v2/src/main.c: Add config options -smooth/-nosmooth to enable/disable
    smoothing. Remove code to allocate the_map.
gtk-v2/src/map.c: Basically the same changes as in gtk/map.c.
gtk-v2/src/opengl.c: Fix out of bounds array access. Initialize question mark
    face for fog of war.
gtk-v2/src/sdl.c: Basically the same changes as in gtk/map.c.
x11/x11.c: Implement map scrolling by using XCopyArea(). Add config options
    -mapscroll/-nomapscroll to enable/disable this. Remove code to allocate or
    clear the_map. Add new function display_mapcell() to draw one cell. Move
    map drawing code from display_map_doneupdate() into display_mapcell().
    Remove two pixel border around map window; is was used inconsistently, and
    the window size was four pixels too small.
x11/xutil.c: Move code to update map data into mapdata module.
Andreas Kirschbaum 2005-08-31

Fix bug #1245535 (negative grace showss up as positive amount):
gtk-v2/src/stats.c: Clip negative stat values to zero.
Andreas Kirschbaum 2005-08-30

Fix sound compilation so it only tries to compile alsa9 helper if we
in fact have alsa 9 libs.
*/Makefile.in: Rebuilt
configure.in, configure: Add ALSA9_TARGET, replacing SOUND_TARGETS which
    was no longer being used.
sound-src/Makefile.am: add EXTRA_PROGRAMS line for cfsndserv_alsa9 so
    don't get errors from automake, add @ALSA9_TARGET@ to bin_PROGRAMS.
MSW 2005-08-28

gtk/config.c, gtkproto.h, gx11.c, inventory.c:
Commit patch #1265199 from Kevin Rudat to fix client crash when using split
window mode
Brendan Lally 2005-08-21

common/misc.c, gtk/{gx11.c,sdl.c,text.c}, gtk-v2/src/sdl.c, x11/sound.c:
    Fix non-Ansi C89 code: remove "inline" function specifier, replace "//"
common/metaserver.c: Fix buffer overflow in metaserver_get_info().
x11/x11proto.h, x11/xutil.c: Use correct parameter type "uint16" for
Andreas Kirschbaum 2005-08-14

This commit adds full automake support for the client - previously, only the
gtk-v2 directory used automake, rest was Makefile.in - now everything is
automake - makes maintenance and distributions easier.
common/Makefile.am gtk/Makefile.am help/Makefile.am pixmaps/Makefile.am
  sound-src/Makefile.am utils/Makefile.am x11/Makefile.am pixmaps/Makefile.in
  utils/Makefile.in help/Makefile.in: New Makefiles
Makefile.am, Makefile.in: Removed unneeded rules, move pixmap, help, util
    handling to makefiles in their own directories.
configure, configure.in: Update to include pixmap, help, util as
gtk-v2/Makefile.am, gtk-v2/Makefile.in: Clean up some rules in this makefile.
common/Makefile.in, gtk/Makefile.in, sound-src/Makefile.in, x11/Makefile.in:
    Rebuilt as part of automake.
gtk-v2/src/Makefile.am, gtk-v2/src/Makefile.in: Add banner copyright, remove
    uneeded rules.
MSW 2005-08-11

More information about the crossfire-announce mailing list