Crossfire 1.7.0 Announcement
Crossfire 1.7.0 has been released. There are lots of more minor changes. List of more minor changes: Numerous bug fixes - should be much more stable now. DM improvements. New objects. Only the bigworld maps are up on sourceforge - this is the only mapset under active development - the old smallworld maps are still in CVS, and older versions still available for download. As part of this, the map archive has lost its 'big' name. A new release of the client should be released shortly, as well as perhaps a new doc archive. Files released for this version: sums (bsd) filename 03092 2041 crossfire-1.7.0.arch.tar.bz2 40695 2157 crossfire-1.7.0.arch.tar.gz 41295 14804 crossfire-1.7.0.maps.tar.bz2 02906 20277 crossfire-1.7.0.maps.tar.gz 46784 3937 crossfire-1.7.0.tar.bz2 36212 4355 crossfire-1.7.0.tar.gz Sums (md5) 47e4a37a1e7e4b324c56c5b4b4876e8a crossfire-1.7.0-README d54641f80432d5ca327bb443fda65d1f crossfire-1.7.0.arch.tar.bz2 26759e5c69be92fc937955c4ac0794ab crossfire-1.7.0.arch.tar.gz f4e3081f797072b04356b32daf2c5017 crossfire-1.7.0.maps.tar.bz2 32a753db889ed816c9b59f966bd256cb crossfire-1.7.0.maps.tar.gz 34ec2c3c66d7b4083da01c21130ce8d0 crossfire-1.7.0.tar.bz2 110a782b47eaa9a0f02abe2e8627c01a crossfire-1.7.0.tar.gz ef405f78d54be0bf22feeef6b4fc0d73 crossfire-client-1.7.0.tar.gz cbf4b4480bd6fd28cf0e71a06b288127 crossfire-client-images-1.7.0.tar.gz crossfire-1.7.0.tar.gz contains the server code with prebuilt archetype and image files. crossfire-1.7.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. Various fixes, as well as new archetypes. crossfire-1.7.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 appropriate server, the map file and client file. You do not need the arch file. You may wish to get a copy of the doc file. If you just want to play the game at some remote server, you need the client and perhaps the image archive file. Crossfire is avaible 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 January 24, 2005 Complete changelog: server: configure, configure.ac, include/autoconf.h.in: Update for version 1.7.0. Add check for libz - needed by libpng (at least on my system), which is needed for the editor. MSW 2005-01-23 common/object.c: Change CAN_MERGE() from an inline function, since it calls itself and inline functions are not supposed to do that. Update type check in insert_ob_in_map() to check against defined type (EXIT) instead of hardcoded integer value (66). crossedit/xutil.c: Update to just include Defines.h, which then includes all the other necessary files, including global.h. include/global.h: Add #ifdef checks for the UINT*_MAX types, as some systems already define these values, which results in a redefinition error. Also fix up // style comment. include/shstr.h: Include proper cast in TOPBIT definition. server/main.c: Don't display 'xyz left the game' messages if the player is only at the get name or get password prompt. Prevents possible spoofing of that message. server/player.c: Clean up formatting of check_pick() function. If player is using newpickup to pick up booze, also pick up poison unless they know it is cursed. socket/request.c: AskSmooth() - change buffer type to uint8 so that it matches what the SockList structure wants. utils/scores.pl.in: Use skill_praying to find players god, and not the deprecated experience_wis object. MSW 2005-01-23 aclocal.m4, configure: Add check for python 2.4. common/re-cmp.c: Fix improper comparison *(str+1) instead of str+1 server/login.c: don't allow null names. server/main.c: Disable logging of removed objects - filling up log files on archmage of all the errors. server/player.c: Fix improper initialization of attacktype in for loop. Give players max grace, sp when they die - also, if they are near starvation, give them a bunch of food. server/spell_effect.c: Put cap on duration of godly retribution - it can otherwise last so long that if a player is killed by it at their savebed location, spell could still go on after players temporary immunity ends. Retribution as increases in damage, so no need to really increase damage and duration to really high amounts. server/spell_util.c: In fire_arch_from_position(), and check that player isn't casting spell on top of wall - fixes for many spells, including ball lightning. server/time.c: Change comparsion on return of get_map_flags() from == P_OUT_OF_MAP to & P_OUT_OF_MAP - keeps syntax consistent. MSW 2005-01-11 plugin/plugin_python.c, plugin_animator/plugin_animator.c, plugin_animator/plugin_animator.c: Use script return value set by CFPython.SetReturnValue(): access to stack was off by one. Do not return a pointer to a local variable on the stack. plugin/plugin_python.c, plugin_animator/plugin_animator.c: Handle all defined events. Andreas Kirschbaum 2005-01-10 server/spell_attack.c: apply patch #1096921 courtesy Salathar. Charmed monsters now lose the 'generator' flag, to prevent things like mice outbreak in bigworld maps. Ryo 2005-01-07 plugin/plugin_pyhton.c, plugin/include/plugin_python.h: Remove obsolete functions: SetGender, SetRank, SetAlignment, SetGuildForce, GetGuildForce, CreatePlayerForce, CreatePlayerInfo, GetPlayerInfo, GetNextPlayerInfo, SetPreviousObject, SetNextObject. plugin/plugin_python.c, plugin/include/plugin_python.h: Add missing attack type wrapper functions, function CFPython.SetDamned(), wrapper functions for missing cost flags, and wrapper functions for event types. plugin/plugin_python.c: Add an optional parameter to CFPython.SetName() to specify name_pl as well. Always set name_pl. plugin/plugin_python.c: Fix a buffer overflow in CFPython.RegisterCommand(): allocated memory was not sufficient to hold the trailing '\0'. plugin/plugin_python.c: Use #define constants. plugin/include/plugin_python.h, plugin/plugin_python.c, plugin_animator/plugin_animator.c, server/plugins.c: General cleanup - merge duplicate code, remove debugging code, rename variables, rename C function names to match the Python function name, use hook functions where appropriate. include/sproto.h, plugin/plugin_python.c, server/plugins.c, server/shop.c: Use uint64 type for variables holding money. Use Python long integers to pass these variables to/from the Python plugin. Andreas Kirschbaum 2005-01-07 plugin/plugin_python.c: Check values passed in from the Python code; generate proper Python exceptions for invalid values. plugin/plugin_python.c, plugin_animator/plugin_animator.c: Make sure all fields on the stack are initialized. Prevent stack overflow: check was one off, causing a buffer overflow. Decrement stack pointer in error case. Andreas Kirschbaum 2005-01-06. common/regexp.c: Fixed couple flaws in regexp handling. First, there was an off by one error in the handling of matches (if the match was for example eureca, player could just say eurec, and it would treat that as a valid match). Second case was that the regular expression logic would not try comparing the rest of the passed in string after a partial match - In the eureca case above, if the passed in string was 'where is eureca', after matching the first e (in where), it then fails to match the next letter and would give up. It now tries comparing the rest of the passed in string with the regex (so after that failure, it will try to match 're is eureca'. server/apply.c: Add missing 'return 0' to shop_mat code that is needed to prevent unpaid objects from teleporting out of the shop. Also extend code so that non living objects can't use shop mats. server/player.c: Insert force into the player when they die making them immune to any spells on the space they reappear on - this prevents multiple deaths if there is large spell effect going on in the savebed location. Duration of force should be long enough for most spells to run their course, but no so long that the player can use it for much of an advantage (plus, killing yourself to get such an advantage seems odd, and the force only makes the player immune to the attacktypes currently on the space) server/spell_effect.c: Fix spell casting walls (lighting wall, firewall, etc) in that the spell object they cast was not being inserted, resulting in the walls not doing anything. MSW 2004-12-28 Applied patch (bug misc/zoo2) by Lalo server/time.c: creators can now create multi part objects. Applied patch 1086102 by Salathar: server/attack.c: If player kills another player, add (pk) to the death message. Applied patch 1086103 by Salathar: server/move.c: If player pushes another player, send message to both players that pushed happened. Previously, when pushing another player, the pusher wouldn't get any notice. MSW 2004-12-28 Applied patch 1001079 - make alchemy books say what skill & equipment is needed - by Kevin Rudat. common/readable.c: Update code that generates book title, contents to denote what skill and equipment is needed. random_maps/{random_map.c, reader.l, reader.c}, server/main.c: Remove generate_treasure_now as an option for random maps - none are using delayed treasure, and IMO, if someone did, it would horribly break things, so it should never be used - given that, no reason to leave the code there. server/main.c: Add additional debugging for process events on removed objects - trying to track down occasional disease crash. server/time.c: Fix crash in move_player_mover() - it was never map tile aware, but even more so, appears to have always been broken if the player move tried to push the player off the edge of a map. Check for out of map condition, as well as make it map tile aware. MSW 2004-12-28 Applied patches #1086095 and 1088385 courtesy Salathar: common/map.c: hidden DM is non blocking server/c_chat: can't do emotions towards hidden DMs. Player's emotions always displayed in split window. server/c_wiz.c: add an extra player leave message when DM hides server/main.c: don't display leave messages for hidden DM when connection timeo ut server/c_party.c: party password max length is 7, due to buffer size. (i think it was a patch from Casper?) Ryo 2004-12-25 server/c_wiz.c: Remove item when 'free' by DM if not removed, avoiding crash. Ryo 2004-12-22 server/c_party.c: Make party passwords of 8 characters work, disallow longer passwords. Based on patch #1080096 from Casper. Correct help message for party commands. Andreas Kirschbaum 2004-12-10 plugin/plugin_python.c: change 'long long' so 'sint64' (typedef). Ryo Saeba 2004-11-29 common/object.c: apply patch #1066665 courtesy Salathar for exits with blockview 1. lib/formulae: apply patch #1064643 courtesy Salathar to fix broken formulae. lib/wizhelp/speed: remove file, command changed name. lib/wizhelp/server_speed: updated 'speed' command help. server/c_wiz.c: apply patch #1063051 courtesy Salathar to update muzzle message. server/commands.c: apply patch #1052224 courtesy Casper to change 'speed' to 'server_speed' as name is ambiguous. Ryo Saeba 2004-11-25 common/loader.l: Fix passed size in FAST_SAVE_LONG() - was one too long, causing truncated diffs after "dam_modifier" entry. Andreas Kirschbaum 2004-11-15 This commit adds the functionality of patch 991916, although the patch as submitted was used as a baseline to start from. include/sproto.h: rebuilt server/c_chat.c: Rename command_chat() to command_tell_all() which takes a few more optional parameters. Add command_shout() and command_chat() that invoke command_tell_all() with the appropriate changes. server/commands.c: Add chat to list of command table. MSW 2004-11-08 plugin/plugin_python.c: Run the script python_init.py right after initializing the interpreter. Andreas Kirschbaum 2004-10-21 server/c_party.c: actually warn party members of password change. Notify when someone joins party. Ryo 2004-10-21 plugin/plugin_python.c, plugin/include/plugin_python.h, server/plugins.c: Fix comments, change whitespace. Andreas Kirschbaum 2004-10-19 Fix some bugs I introduced in my last commit. common/map.c: Add back in call to sum_weight that got removed when removing the object checking code. common/treasure.c: Have fix_generated_item() blank out the randomitems field after it has created treasure. server/apply.c: Only clear randomitems after create_treasure() - don't presume it should get blanked out for other reasons - with change to treasure.c above, this should be more reliable and fix starting skill issue, as randomitems was getting blanked out for CLASS object. server/main.c: Change processing of players a little - found crash where autosave was called for a removed player (map had got swapped out) - don't do autosave logic if player is removed. Move the autosave code to after the players action, so that can just have a single check of removed status. MSW 2004-10-17 include/sproto.h, server/egoitem.c: Change create_artifact() to return whether the artifact was created. server/plugins.c: Change CFWCreateArtifact()/HOOK_CREATEARTIFACT to return whether the artifact was created. plugin/plugin_python.c: Define new function create_object() to create objects. Use this function to fix CFPython.CreateObjectInside() and CFPython.CreateObject(): creation of artifacts does work now. plugin/plugin_python.c: Fix CFPython.GetNextPlayerInfo() to work with long force names. Remove duplicate variable initialization. server/plugins.c: Remove the use of malloc() in initOnePlugin(). Andreas Kirschbaum 2004-10-18 plugin/plugin_python.c, plugin_animator/animator_box.c, plugin_animator/plugin_animator.c, plugin_logger/arena.c, plugin_logger/plugin_logger.c: Use HOOK_FREEMEMORY to free memory allocated by HOOK-functions. Fix memory leaks. plugin/plugin_python.c, server/plugin.c, plugin_animator/animator_box.c: Fix some more mismatches between plugin interface and implementation. CFPython.Get/SetSkillExperience() use 64-bit exp values now. CFPython.CastAbility() works again. Andreas Kirschbaum 2004-10-16 plugin/plugin_python.c, server/plugin.c: Fix type mismatches between plugin interface and implementation. plugin/plugin_python.c, server/plugin.c: Add/remove "static" to/from some variables. Fixes a memory leak in CFPython.SaveObject(). plugin/plugin_python.c: Fix reference counting for Python objects. Andreas Kirschbaum 2004-10-15 common/living.c: Fix exp functions to use the player objects expmul value when determining level gains, and not the skills. Also, fix bug where players last hp/sp/grace gain I think was being re-rolled when player gained level in skill. common/loader.l, loader.c: Add better recording of non existant objects (no archetype for them) in maps. Also, handle such objects in players inventories properly (which is to just discard them) common/map.c: Add better logging about discarded archetypes. Since the loader now deals with objects without archs in inventories, that code doesn't need to be in the server. common/object.c: copy_object() was not properly nulling out the next field in the event object, pointer to event list was also incorrect, causing events to not be copied properly. doc/spoiler-html/spoiler.html: Rebuilt. server/apply.c: Apply patch by MT that fixes problem of entire inventory not being copied properly. Fix problem that objects in creatures were not having any sub treasure created (eg, put a pyro_book in a monster on the map, and the pyro_book wouldn't have a spell in it) - now we make sure we process inventory objects as well as map objects, creating treasure as needed. server/monster.c: Reverse order of cast_spell() and drain_rod() in monster_use_range() - drain_rod() should go first, because case_spell() can in rare cases destroy the rod. MSW 2004-10-14 server/c_misc.c: Add natural skin resistances to 'statistics' output for dragon players. Ryo 2004-10-10 common/readable.c: Apply patch by Kevin Rudat to add some alchemy book names. common/readable.c: Apply patch by Kevin Rudat to fix buffer overrun while generating book titles. Andreas Kirschbaum 2004-10-09 include/sproto.h: Add function prototype. server/c_wiz.c: Add 'command_stack_clear' to clear DM item stack. server/commands.c: Link function to function array. Ryo 2004-09-26 server/player.c: Allow to 'reply' to players that logged out but did not yet drop the connection. Now reply works like other communication commands. common/utils.c: Fix random_roll() and die_roll() to not return out of range values. include/define.h: Add parentheses around arguments of FABS macro. Andreas Kirschbaum 2004-09-19 server/rune.c: Prevent creation of level 0 runes. Re-enable runes to cast multiple spells. Andreas Kirschbaum 2004-09-14 include/config.h: fix Win32 log path so there actually is a log. plugin/plugin_python.c: uint doesn't exist under Win32, use uint32 instead. Patches from tracker, courtesy Kurtat: patch 1022942: Random documentation updates doc/SurvivalGuide doc/Developers/programming_guide doc/Developers/protocol lib/settings lib/help/cast patch 1022973: Words for numbers in spellbook description server/c_object Ryo 2004-09-12 server/attack.c: Pass in skill (string) to change_exp instead of skop->skill - skop can be null, resulting in a crash here. In addition, other calls to change_exp in this function use the skill string, so it is good to be consistent. MSW 2004-09-09 server/c_wiz.c: Don't forget to skip blanks after reading item number or stack position. Works better for commands like patch :) Ryo 2004-09-06 common/object.c: Fix insert_ob_in_map so right coordinates and map value are used on GET_MAP_OB call - was using values before changes for tiling were applied. MSW 2004-09-02 server/player.c: allow to 'talk' to players with ambiguous names: use a perfect match even if other partial matches exist. Andreas Kirschbaum 2004-08-30 include/define.h server/shop.c add new flags F_IDENTIFIED and F_NOT_CURSED to query_cost() to pretend the item to be identified/not cursed or damned. server/alchemy.c fix possible abuse of shadow alchemy: do not allow the generated items to be more valuable than the ingredients when using alternate recipes. Andreas Kirschbaum 2004-08-24 common/map.c: Add extra check to make sure variable is set before calling strcmp - this can happen if the map file that is being loaded is 0 bytes - without this, the server would crash. MSW 2004-08-23 server/disease.c: fix crash when casting diseases on tiled maps. server/move.c: fix problem with multi-tile monsters and pass thru walls. server/spell_effect.c: fix magic walls sometimes appearing in wrong place. Andreas Kirschbaum 2004-08-20 common/loader.l, loader.c: in check_loaded_object() - don't give spell objects inventory if we are in the arch_init phase. When loading objects in common loader routine, if object doesn't have arch, set the object name to the arch name so that it is more meaningful than 'singularity'. common/map.c: If object has inventory, check to make sure the inventory objects have an archetype set - if not, remove and free the object - objects without archetypes causes crashes. MSW 2004-08-17 server/apply.c: fix_auto_apply() - add some debugging statements, as I've seen crashes caused by monsters with scrolls with no spells - need to figure out how those are showing up. server/c_wiz.c: command_kick() - fix occasional crashes when player isn't on any map when kicked. command_create() largely rewritten so it doesn't crash the server on any malformed values passed in, add some more features so it should be easier to create objects. MSW 2004-08-16 server/apply.c: better to not create a treasure for spellbooks that already have something in inventory. Else you get 2 spells in the book, which then mutates when loading (first spell is the book's spell, and order changes eve ry load/save...) Ryo 2004-08-16 Those changes mostly add an item stack for DMs. It makes it easier to dump & pat ch & manipulate items without having to copy numbers all the time. Basically, you can use '$x', meaning item at position x on stack. Or even omit argument, defaulting to stack top. When using an object number, it gets stacked automatically (up to 50 items). Also add a 'diff' command, letting the DM see the result of 'get_ob_diff' on ite ms, to spot differences easily. common/player.c: free item stack when freeing player structure. include/player.h: add item stack to player structure. include/sproto.h: new functions for stack. include/win32.h: missed commit for 1.6.1 version. server/c_misc.c: push item dumped with 'deumpbelow' on dm stack. server/c_wiz.c: add stack functions. Use'em on patch, create, remove, free, and such. Add 'diff' command. server/commands.c: add new stack & diff commands. Ryo 2004-08-15 server/spell_attack.c: fix mood_change when spell has no attacktype. In this case, do a specific saving throw, to ensure a level 1 player can't charm a level 125 monster. Ryo 2004-08-14 random_maps/exit.c random_maps/random_map.c random_maps/random_map.h random_maps/reader.l random_maps/rproto.h random_maps/special.c random_maps/wall.c added fix for random maps with single arch walls, added level indicator on random map signs added new parameter 'exit_on_final_map'- see documentation TM 2004-08-07 include/plugin.h plugin/plugin_python.c server/c_wiz.c server/plugins.c add event hooks for Kick and Muzzle(toggle_shout) commands. fix CFSetQuantity by changing the int to uint and remove 100000 item limit. pythonplug now looks for event scripts in maps/python/events. TM 2004-08-02 server/skills.c: xp for writing is now multiplied by skill level, to make it possible to level. Ryo 2004-07-17 common/loader.c: add #ifndef for non-existant Win32 header include/win32.h: #define vsnprintf _vsnprintf to fix linking issue Ryo 2004-07-03 server/skill_util.c: Fix skills command so that it properly displays percentage of permanent exp. server/time.c: Modify move_arrow() so that it removes thrown objects with no inventory. MSW 2004-06-22 socket/info.c: Replace sprintf() calls with snprintf() - got metalforge crash with apparent buffer overun - going to snprintf should prevent the problem in the future. MSW 2004-06-21 server/c_wiz.c: for command_create() - check to see if 'of' parameter is a spell archetype name, and do the right thing if it is. This allows things like 'create rod_heavy of spell_large_lightning'. Note that the command_create is still a seriously broken function in many regards. server/rune.c: Fix write_rune() when trying to find the spell in encase in the rune - assignment was incorrect, so it always took the last matching spell in the players inventory, not the best matching spell. server/spell_util.c: Change the call to prayer_failure() so that its potency is based on how badly short the player is short of grace. Eg, if only 1 point short, potency of 1. This changes from before where the potency was always the difference in mana. MSW 2004-06-17 server/attack.c: Fix hit_with_arrow() so that it uses the proper map when inserting the arrow. server/c_wiz.c: Add note about brokeness of command_create() server/spell_effect.c: execute_word_of_recall() - don't attempt recall if player isn't on any map. MSW 2004-06-15 common/object.c include/define.h include/player.h include/sproto.h server/attack.c server/c_object.c server/player.c server/shop.c socket/item.c socket/loop.c socket/request.c: Remove explicit calls to esrv_update_item(UPD_WEIGHT, pl, pl) for player objects. Instead send the new weight whenever it changes. Andreas Kirschbaum 2004-06-13 server/spell_attack.c: cast_destruction() - have it change the skill for the caster so that exp is properly awarded. common/object.c: insert_map_in_ob() - remove CAN_MERGE checks after the map translation - otherwise, we can have bogus coordinates that are used for GET_MAP_OB. random_maps/style.c: pick_random_object() - have it return null object (and probably crash) instead of getting into an infinite loop. server/c_wiz.c: command_kick() - check FLAG_FREED of player. Remove all the broken skill/exp object granting code in command_possess() - this is probably still a broken function. common/item.c: describe_monster() - if the creature/player is stealthy, mention it when the object is described. common/loader.l, loader.c: Fix passed in size to get_ob_diff() - was one to long, causing string corruption. server/spell_attack.c: mood_change() - fix get_map_ob call - wasn't using correct coordinate variables, resulting in crash. MSW 2004-06-10 server/c_party.c: gsay improvements, courtesy Katia. Ryo 2004-06-09 server/commands.c: Disable 'possess', that crashes server. server/monster.c: Make monsters use wands/horns/... again. Also make'em ignore DMs all the time (even when not invisible). server/skill_util.c: Fix the change_skill when called for monsters. Ryo 2004-06-06 server/c_misc.c: Add sum_weight() call to fix_me command so that players weight is properly recalculated. server/skills.c: Fix up attempt_steal() so that it doesn't improperly remove object from target when person doing the stealing can't pick it up. server/spell_attack.c: Set maxhp properly, so multipled fireballs, etc can be going off at the same time. server/spell_effect.c: Fix up cast_create_missile() so more esoteric missiles can be created. MSW 2004-05-31 include/sproto.h: new 'dmhide' command. server/commands.c: new 'dmhide' command. server/c_wiz.c: added 'dmhide' command. Player becomes DM, and 'hide's immediate ly. Others only see him/her leave the game, they don't know s/he's DM. Ryo 2004-05-24 include/book.h: Increase the size of BOOK_BUF, so inscribed books can hold more informatin. lib/Makefile.am, lib/Makefile.in: Add the 'rename' to the list of help files. lib/archetypes: update the glyph/rune spells to have proper face. lib/bmaps, lib/crossfire.* - add glyph.111 image. server/gods.c: Modify tailor_god_spell() to look harder to find a god - necessary for glyph spells. server/spell_attack.c: Give players 50% of exp for monsters they charm. MSW 2004-05-19 common/object.c: Correct get_search_arr() to return a proper permutation. Andreas Kirschbaum 2004-05-18 server/main.c: Have process_events display information from dumped object. also, more refinement on checking of object status. MSW 2004-05-16 server/build_map.c: change 'player' variable to 'pl', since a player structure already exists. Also fix disappearing pedestals on non-unique maps (put'em over floor, they are visible but hey, can't have everything :p) server/c_wiz.c: fix learn_spell. Ryo 2004-05-16 server/main.c: freeing removed objects appeared to have more of a consequence than expected - only remove the object if it was on a map (op->map). It turns out that the artifact code uses objects that are removed to store what the new object is. server/spell_effect.c: Fix cast_create_food() to call find_archetype_by_object_name() instead of find_archetype(). In this way, players can use invoke without having to know the archetype name. server/c_wiz.c: Modify command_banish() to record dm name, player name, and date of command. server/acinclude.m4: Patch by acinclude.m4 to add python 2.3 support. Rebuilt files (Makefile.in, aclocal.m4, configure, configure.in). add config.guess, config.sub since automake now includes them in the Makefile.in file. MSW 2004-05-15 Added a new item type: ground positioning system (GPS). This lets a player know his/her location in the world. Only works in 'world_xxx_xxx' maps. include/define.h: add new item type, 'GPS' (162). include/sproto.h: add new function, 'apply_positioning_system'. server/apply.c: handle new item type. Ryo 2004-05-15 server/spell_util.c: SP_level_spellpoint_cost() - never have a spell cost 0 spellpoints due to attunement or other bonuses - spell always cost at least 1 sp/grace. server/main.c: Fix process_events() so it doesn't purge removed players from the list - players get in the removed state at play again prompt. server/apply.c: Fix fix_auto_apply() so we don't generate additional spells for spellcasting objects that already have them (regression from fix from 5/11 below) MSW 2004-05-13 server/pets.c: Fix summon golem, summon pet monsters so that the summoned monsters are not worth any exp. Fixes bugs were players could summon monsters and then kill them. server/skills.c: Fix do_skill_detect_curse() and do_skill_detect_magic() so that they don't process objects the player is incapable of picking up (eg, floors). Fixes experience exploit. server/apply.c: modify fix_auto_apply() so that it properly generates items for creatures that start with objects in their inventory. MSW 2004-05-11 server/spell_util.c: Fix cast_spell() so that failed spells (due to encumberance or other penalties) still cost some random number of grace/ mana points. MSW 2004-05-10 common/treasure.c: Change the loading of the artifacts file to actually calloc() the object - reset_object() doesn't clear all the values, like active_next, active_prev, so better to just do it there. server/main.c: Add code in process_events() that checks for removed objects - have seen occasional crashes caused by them. MSW 2004-05-08 Armor enchantment now uses setting values. common/init.c: new values to init in settings. include/global.h: new setting values. include/config.h: new default values for settings. lib/settings: explanation for those new values. server/apply.c: change armor improvement code to use setting values. server/init.c: read new settings. Ryo 2004-05-08 common/init.c: there's a #define LOGFILE, use it instead of hardcoded value. include/config.h: change default logfile path to previous value in init.c. server/c_wiz.c: Fix 'nodm' displaying incorrect messages, and forgetting to update player count on map. Ryo 2004-05-08 server/apply.c: Fix apply_special() to properly deal with LAMP objects - it wasn't dealing properly with the split off lamp compared to the one it was supposed to deal with - was crashing server. MSW 2004-05-04 common/item.c: describe_monster() - print luck when describing players (fixex perceive self not showing luck) server/attack.c: kill_object() - don't give player exp if he kills himself - compare owner against what was killed, not the hitter. server/pets.c: summon_object() - move breaking out for last treasurelist after we set the last valid treasurelist - otherwise, the list entry for the treasurelist was never used. Change summoned creatures so that the items they have are god given, and thus disappear when they are killed - prevents players from summoning and then looting their pets. server/spell_attack.c: explode_bullet() - Get owner of the spell so that we can properly tailor the explosion portion of the spell for the god of the worshipper. MSW 2004-05-03 server/shop.c: patch from Andreas Kirschbaum for Windows compilation. server/spell_effect.c: patch from Andreas Kirschbaum for Windows compilation. Ryo 2004-05-03 common/porting: changed open_and_uncompress to use const char* instead of char*, since value shouldn't be changed (and isn't). include/libproto.h: changed prototype for open_and_uncompress Ryo 2004-04-28