From mwedel at sonic.net Sun Feb 26 02:50:46 2006 From: mwedel at sonic.net (Mark Wedel) Date: Sun, 26 Feb 2006 00:50:46 -0800 Subject: [crossfire-announce] Crossfire 1.9.0 released Message-ID: <44016BE6.4020907@sonic.net> 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 rows. - 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 game. 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 Primary: ftp://ftp.sourceforge.net/pub/sourceforge/crossfire Secondary: ftp://ftp.real-time.com/pub/games/crossfire The initial upload of this release is only made to sourceforge - it should show up on the mirrors shortly. Mark Wedel mwedel at sonic.net February 25, 2005 Complete changelog: server: */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 lugins (incoherent order of parameters). Also use plugin_common.h in CFAnim instead of having separate definitions. Modified files: plugins/cfanim/cfanim.c plugins/cfanim/include/cfanim.h plugins/cfanim/include/cfanim_proto.h plugins/common/plugin_common.c plugins/common/include/plugin_common.h 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 P_IS_ALIVE. 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... include/plugin.h server/plugins.c 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 oblivion. MSW 2006-02-15 Swamps don't affect DMs anymore. Also, swamps don't remove items with FLAG_IS_FLOOR or FLAG_IS_OVERLAY_FLOOR. server/swamp.c ---- 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 on. 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 casts. --- Affected files: common/{arch.c,glue.c,image.c,init.c,readable.c,time.c}, crossedit/stubs.c include/{attack.h,libproto.h,object.h,sockproto.h,spells.h,sproto.h}, random_maps/{door.c,rproto.h,standalone.c,style.c}, server/{alchemy.c,apply.c,c_chat.c,c_misc.c,init.c,player.c,shop.c,spell_effect. c}, socket/{info.c,loop.c,request.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 Huehner. --- common/{anim.c,button.c,exp.c,friend.c,image.c,item.c,living.c,los.c,map.c, object.c,player.c,quest.c,readable.c,recipe.c,region.c,treasure.c,utils.c}, 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: include/sproto.h server/c_wiz.c server/commands.c 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 docs/Developers/objects. --- 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 respectively. 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 not. 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 overflow. 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 them 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: common/living.c crossedit/stubs.c doc/Developers/protocol include/funcpoint.h, newclient.h, newserver.h, player.h, sockproto.h, sproto.h random_maps/standalone.c 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 set. 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: plugins/cfpython/cfpython.c 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 server/plugins.c -- 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 cfpython/cfpython_region.c -- In Python's Object, Archetype is now a property and not a method. Affected files : cfpython/include/cfpython_object_private.h cfpython/cfpython_object.c -- 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 DMs. 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 spell. 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. plugins/cfpython/cfpython.c 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. plugins/cfpython/cfpython.c Ryo 2005-12-31 Changed the way Python scripts are called. Now script don't share variables anym ore. Fix a memory leak. plugins/cfpython/cfpython.c 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 ) server/attack.c 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 d 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 plugins/cfpython/cfpython_party.c 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 etter. 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". server/c_misc.c 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 get_map_flags(). 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 dialogs. 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 "//" into "/". 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 Equeter. -- 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 FLAG_CONTENT_ON_GEN. 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: include/plugin.h plugins/cfpython/cfpython_object.c plugins/cfpython/include/cfpython_object_private.h plugins/common/include/plugin_common.h plugins/common/plugin_common.c server/plugins.c 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 vate.h plugins/cfpython/cfpython.c cfpython_map.c cfpython_object.c server/plugins.c New files: plugins/cfpython/include/cfpython_archetype.h cfpython_archetype_private.h plugins/cfpython/cfpython_archetype.c 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 arch_blocked() - 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 buttons. - 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 "const". 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 functions. 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 configure. 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 se only == is relevant). Modified files: plugins/cfpython/include/cfpython_map_private.h plugins/cfpython/include/cfpython_object_private.h plugins/cfpython/cfpython.c plugins/cfpython/cfpython_map.c plugins/cfpython/cfpython_object.c 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 install. 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 spell. 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 2^31. -- 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 cf_object_set_nrof(). 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 CFAPI_OBJECT_PROP_NROF property. 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: common/{arch.c,init.c,item.c,map.c,object.c,re-cmp.c,readable.c,region.c, shstr.c}, crossedit/{Attr.c,Edit.c,Cnv/CnvPath.c}, include/sproto.h, plugins/cfanim/cfanim.c, plugins/cfpython/{cfpython.c,cfpython_object.c}, plugins/cfpython/include/{cfpython_map_private.h,cfpython_object_private.h}, random_maps/{rogue_layout.c,special.c,square_spiral.c}, server/{apply.c,attack.c,build_map.c,c_misc.c,c_object.c,c_party.c,init.c, main.c,monster.c,pets.c,player.c,plugins.c,shop.c,skill_util.c,spell_util.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 MAXFACENUM. 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 functions. Andreas Kirschbaum 2005-10-24 common/readable.c: Fix out of bounds access to max_titles[] in init_book_archive(). 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 e 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 rt 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 2. 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 er 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 le.in: Add directory in preparation for template (where the template can optionally be 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 nces 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. plugin/plugin_python.c plugin/include/plugin_python.h 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 ground. common/object.c: In get_split_ob() prevent inventory of splitted object to be dropped. 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 th 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 unt. 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 alue. include/libproto.h: fix prototypes. include/player.h: weight and weight_limit are sint32, so last_ should be the sam e. 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/ put. 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 _weight. 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 nstead 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 es. 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 ield. 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 claration. 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 inventory. -- 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 FLAG_NO_PRETEXT. 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 anymore. 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 Demon). socket/request.c: 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 access. 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 "chainmails". 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 items. 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 Linux. 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 information --- 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, etc. 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 as 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 .c 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 treasure.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 skills.c spell_attack.c spell_effect.c time.c timers.c socket/item.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 login.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: include/sproto.h 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} server/main.c Brendan Lally 2005-08-11 client: Fix server cache which was broken for some reason. common/metaserver.c 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}, common/{misc.c,newsocket.c,player.c,proto.h,rcs-id.h,script.c,script.h}, gtk/{config.c,gtkproto.h,gx11.c,image.c,inventory.c,keys.c,map.c,png.c}, gtk/{rcs-id.h,sdl.c,sound.c,text.c,win32/soundsdef.h}, 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 simultaneously. --- 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, init.c,item-types.h,item.c,metaserver.c,misc.c,p_cmd.c,player.c,proto.h}, gtk/{config.c,gtkproto.h,gx11.c,help.c,inventory.c,keys.c,png.c,sdl.c,sound.c, text.c,win32/soundsdef.h}, gtk-v2/src/{inventory.c,keys.c,magicmap.c,main.c,sdl.c,sound.c,stats.c}, pixmaps/{all.xpm,close.xpm,coin.xpm,crossfiretitle.xpm,hand.xpm,hand2.xpm, lock.xpm,mag.xpm,nonmag.xpm,question.xpm,sign_east.xpm,sign_flat.xpm, 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 string. 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 common/init.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 systems. 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 server. 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: gtk/gx11.c 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 value. 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 command. 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 client.h 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 #1090049 Brendan Lally 2005-09-22 gtk-v2/src/image.c copy part of gtk1 image.c to fix a compile issue on mac. 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 too. 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 mask. 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 "//" comments. common/metaserver.c: Fix buffer overflow in metaserver_get_info(). x11/x11proto.h, x11/xutil.c: Use correct parameter type "uint16" for addsmooth(). 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 directories. 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 From lembark at wrkhors.com Tue Feb 28 12:23:29 2006 From: lembark at wrkhors.com (Steven Lembark) Date: Tue, 28 Feb 2006 13:23:29 -0500 Subject: [crossfire-announce] Crossfire 1.9.0 released In-Reply-To: <44016BE6.4020907@sonic.net> References: <44016BE6.4020907@sonic.net> Message-ID: <1C7523ED340EC7E4FAA51B3E@[192.168.1.9]> -- Mark Wedel > ftp://ftp.sourceforge.net/pub/sourceforge/crossfire -- Steven Lembark 85-09 90th Street Workhorse Computing Woodhaven, NY 11421 lembark at wrkhors.com 1 888 359 3508