Protocol: | pserver | User: | anonymous |
Machine: | crossfire.cvs.sourceforge.net | CVSROOT: | /cvsroot/crossfire |
Filename: monster.c | |||
Revision 1.102 | qal21 | 2006/09/17 00:34:39 | +9 -5 |
Change cfapi_object_say() to use either command_say() or npc_say() depending on if the object is a player. Fixes bug #1534889. | |||
Show difference between Revision 1.101 and 1.102 | |||
Revision 1.101 | tchize | 2006/06/01 13:59:13 | +7 -7 |
Fixed error with function declared as static in one place and not static in another, leading to problems in make proto | |||
Show difference between Revision 1.100 and 1.101 | |||
Revision 1.100 | mwedel | 2006/05/30 02:12:29 | +3 -2 |
Only call animate_object() if object is animated - otherwise, animate_object() spews bunch of error about being called with non animated object. MSW 2006-05-29. | |||
Show difference between Revision 1.99 and 1.100 | |||
Revision 1.99 | ryo_saeba | 2006/05/25 10:31:48 | +7 -1 |
Fix monster facing bug. | |||
Show difference between Revision 1.98 and 1.99 | |||
Revision 1.98 | ryo_saeba | 2006/05/05 04:26:35 | +52 -26 |
First part of patch #1453869 courtesy Stefan Huehner (shuehner) | |||
Show difference between Revision 1.97 and 1.98 | |||
Revision 1.97 | ryo_saeba | 2006/03/14 09:33:28 | +7 -5 |
Fix monster/scroll crash, based on patch by the cf.schmorp.de development team | |||
Show difference between Revision 1.96 and 1.97 | |||
Revision 1.96 | akirschbaum | 2006/01/07 12:30:05 | +2 -2 |
server/monster.c: Use correct field name in move_monster(). | |||
Show difference between Revision 1.95 and 1.96 | |||
Revision 1.95 | akirschbaum | 2005/11/09 13:34:17 | +2 -2 |
include/sproto.h, server/monster.c: Declare parameter of communicate() as "const". | |||
Show difference between Revision 1.94 and 1.95 | |||
Revision 1.94 | akirschbaum | 2005/10/28 14:08:53 | +2 -4 |
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). | |||
Show difference between Revision 1.93 and 1.94 | |||
Revision 1.93 | gros | 2005/10/18 11:54:31 | +6 -40 |
Upgrade of the Crossfire server to version 2.0 of the plugin interface. Upgrade of the Python plugin to version 2.0 of the plugin interface. Gros - 18/10/05 | |||
Show difference between Revision 1.92 and 1.93 | |||
Revision 1.92 | akirschbaum | 2005/10/07 14:38:49 | +3 -3 |
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. | |||
Show difference between Revision 1.91 and 1.92 | |||
Revision 1.91 | akirschbaum | 2005/10/05 17:07:38 | +9 -15 |
server/monster.c: In move_monster() prevent hp/sp overflows for monsters with very high maxhp/maxsp and very high regeneration rates. | |||
Show difference between Revision 1.90 and 1.91 | |||
Revision 1.90 | ryo_saeba | 2005/09/25 13:36:02 | +50 -23 |
Changed quest system, needs tweaks and fixes. | |||
Show difference between Revision 1.89 and 1.90 | |||
Revision 1.89 | akirschbaum | 2005/09/23 18:36:17 | +3 -3 |
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. | |||
Show difference between Revision 1.88 and 1.89 | |||
Revision 1.88 | mwedel | 2005/09/13 01:46:35 | +8 -8 |
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 | |||
Show difference between Revision 1.87 and 1.88 | |||
Revision 1.87 | akirschbaum | 2005/09/08 16:19:54 | +3 -4 |
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. | |||
Show difference between Revision 1.86 and 1.87 | |||
Revision 1.86 | akirschbaum | 2005/09/08 16:10:46 | +2 -1 |
server/monster.c: Add missing "break" statement in monster_can_pick(). It did prevent some monsters from picking up scrolls. | |||
Show difference between Revision 1.85 and 1.86 | |||
Revision 1.85 | akirschbaum | 2005/08/17 02:44:45 | +3 -3 |
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. | |||
Show difference between Revision 1.84 and 1.85 | |||
Revision 1.84 | ryo_saeba | 2005/08/12 08:46:34 | +9 -7 |
Fields changed from char* to const char*, cleanup. | |||
Show difference between Revision 1.83 and 1.84 | |||
Revision 1.83 | ryo_saeba | 2005/08/12 03:18:59 | +7 -6 |
Use const char* instead of char* when possible | |||
Show difference between Revision 1.82 and 1.83 | |||
Revision 1.82 | qal21 | 2005/07/28 02:23:19 | +3 -18 |
Fix bugs in arena petmode and clean up most of it's logic into it's own function. Document the arena petmode in the "help petmode" output. | |||
Show difference between Revision 1.81 and 1.82 | |||
Revision 1.81 | qal21 | 2005/07/16 23:19:49 | +8 -7 |
Fixed bug in previous commit of arena petmode that cause pets that should be friendly to eachother to fight. | |||
Show difference between Revision 1.80 and 1.81 | |||
Revision 1.80 | akirschbaum | 2005/07/16 16:10:39 | +3 -3 |
Fix spelling errors in string constants. | |||
Show difference between Revision 1.79 and 1.80 | |||
Revision 1.79 | qal21 | 2005/07/16 14:03:01 | +22 -5 |
server/{c_misc.c, monster.c, pets.c}, include/player.h: Add new "arena" petmode which allows pets to attack players and other pets while in the arena. Alex Schultz 2005-07-16 | |||
Show difference between Revision 1.78 and 1.79 | |||
Revision 1.78 | ryo_saeba | 2005/07/14 11:21:34 | +14 -12 |
Quest handling | |||
Show difference between Revision 1.77 and 1.78 | |||
Revision 1.77 | akirschbaum | 2005/05/15 15:03:34 | +5 -5 |
server/monster.c: Fix monsters to cast spells from spellbooks. | |||
Show difference between Revision 1.76 and 1.77 | |||
Revision 1.76 | mwedel | 2005/04/18 02:14:38 | +4 -4 |
Update with latest change of lighting patch. MSW 2005-04-17 | |||
Show difference between Revision 1.75 and 1.76 | |||
Revision 1.75 | mwedel | 2005/04/16 23:25:55 | +2 -2 |
Various minor bugfixes. common/los.c: Patch to fix negative lighting. Use isqrt instead of sqrt, so we only want integer values anyways. include/libproto.h, include/sproto.h: Rebuilt as there were some improperly matching prototypes. random_maps/rogue_layout.c: Replace sqrt with isqrt calls. server/c_misc.c: Make name_cmp() a static declaration so it won't be put in the sproto.h file. server/init.c: Remove /* within comment string. server/monster.c: Change sqrt to isqrt MSW 2005-04-16 | |||
Show difference between Revision 1.74 and 1.75 | |||
Revision 1.74 | mwedel | 2005/04/16 00:30:47 | +12 -10 |
Commit patch that makes lighting illuminate in a circular instead of square radius. Patch by Rednaxela - patch 1171646 MSW 2005-04-15 | |||
Show difference between Revision 1.73 and 1.74 | |||
Revision 1.73 | akirschbaum | 2005/03/06 14:38:54 | +3 -3 |
common/{map.c, readable.c, treasure.c}, crossedit/Attr.c, server/{apply.c, attack.c, c_wiz.c, init.c, monster.c, pets.c, shop.c, skill_util.c, skills.c, spell_attack.c, spell_effect.c, time.c}, socket/{info.c, request.c}: Add missing newline character to LOG() messages. | |||
Show difference between Revision 1.72 and 1.73 | |||
Revision 1.72 | akirschbaum | 2005/02/20 14:43:15 | +4 -2 |
common/object.c, include/libproto.h: change nrof parameter of get_split_ob to uint32 type. server/c_object.c, include/sproto.h: change nrof parameter of drop_object to uint32 type. plugin/{plugin_python.c, include/plugin_python.h}, plugin_animator/{plugin_animator.c, include/plugin_animator.h}, server/{apply.c, attack.c, gods.c, monster.c, player.c, skills.c, time.c, timers.c}: Change type of CFParm.Value[5] and StackParm1[] to uint32 to be able to pass an "nrof" value. | |||
Show difference between Revision 1.71 and 1.72 | |||
Revision 1.71 | mwedel | 2004/10/15 02:09:41 | +9 -7 |
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 | |||
Show difference between Revision 1.70 and 1.71 | |||
Revision 1.70 | ryo_saeba | 2004/06/06 11:25:40 | +83 -50 |
Fix for monsters not using hands, and now ignore DM | |||
Show difference between Revision 1.69 and 1.70 | |||
Revision 1.69 | mwedel | 2004/04/14 02:24:30 | +5 -5 |
common/object.c: Change CAN_MERGE() so that it compares the stats structure of the objects being merged. Fixes problems of rings improperly merging with other rings that have different stat values. server/monster.c: Modify check_earthwalls() and check_doors() to take a map structure as an option parameter, and use that structure when calling get_map_ob. Fixes a crash in cases where earthwalls/doors were at the edge of a tiled map, and creature was on other map moving into it. server/move.c: Change move_ob() to adjust coordinates for tiling, and pass in these adjusted coordinages (and map) to the check_() functions in monster.c random_maps/treasure.c: Apply patch by Andreas Kirschbaum so that it does more work in trying to place keys on maps. MSW 2004-04-13 | |||
Show difference between Revision 1.68 and 1.69 | |||
Revision 1.68 | ryo_saeba | 2004/03/28 09:34:15 | +2 -2 |
Fix wiz's hide against monsters. | |||
Show difference between Revision 1.67 and 1.68 | |||
Revision 1.67 | mwedel | 2003/10/26 01:56:57 | +2 -2 |
common/glue.c, common/object.c, common/player.c, include/funcpoint.h, server/init.c, server/monster.c, server/shop.c, server/skill_util.c: add find_skill_by_number() function - this replaces find_skill. Locate new function in skill_util.c, which is more a proper place than common/player.c - this change necessitated adding glue function pointers so the other common files can call it. server/spell_effect.c: Fix cast_heal() so if the spell is not one that heals hit points, don't process the code that checks for that and sets a false success value. socket/metaserver.c: Clean up formatting - no code changes. MSW 2003-10-25 | |||
Show difference between Revision 1.66 and 1.67 | |||
Revision 1.66 | mwedel | 2003/09/13 00:02:11 | +77 -219 |
Updated code for skill + spell code. skills and spells are now objects. tuning these now means changing the archetypes. New spells can now be added just by making a new archetype. Lots of code cleanup also done. MSW 2003-09-12 | |||
Show difference between Revision 1.65 and 1.66 | |||
Revision 1.65 | gros | 2003/06/26 06:27:43 | +18 -17 |
Re-implemented the event hooks in objects as a dynamically linked list, instead of a static table. | |||
Show difference between Revision 1.64 and 1.65 | |||
Revision 1.64 | mwedel | 2003/06/19 01:52:49 | +12 -4 |
server/apply.c: Fix auto_apply - missing else, causing extra treausres to be generated inside of shop tiles. server/monster.c: Fix npc_call_help to be map tile aware. MSW 2003-06-18 | |||
Show difference between Revision 1.63 and 1.64 | |||
Revision 1.63 | mwedel | 2003/03/07 01:33:13 | +25 -3 |
Various bug fixes. crossedit/Attr.c: Minor cleanup to eliminate some compile time warnings. plugin/plugin_python.c: Remove some unused variables, thus fixing up some compiler warnings. random_maps/random_map.c, random_maps/random_map.h, random_maps/special.c: Add MIN_RANDOM_MAP_SIZE values instead of hardcode constants. server/monster.c: Fix communicate - odd bug can be map gets swapped out just after player is transferred to another map, causing crashes as map that was originally spoken on is no longer in memory. server/rune.c: add missing free_object call when erasing runes. server/skills.c: Change write_on_item to determine type of writing based on content of mesage, or lack thereof, and not the marked object. Fix problem of buf not being initalized. MSW 2003-03-06 | |||
Show difference between Revision 1.62 and 1.63 | |||
Revision 1.62 | mwedel | 2003/02/10 00:52:12 | +5 -4 |
doc/Developers/objects: Add nodes about shared strings in objects. server/c_misc.c: Remove check for name length - check_name takes care of that for us. server/monster.c: store return value from get_map_flags - seen some crashes traced back to this area, want to see what it returned. Allow objects with no msg to still use scripts that listen. server/player.c: Fix potentional issue of freeing/adding players name when they enter play again - seen some crashes attributed to odd names. MSW 2003-02-08 | |||
Show difference between Revision 1.61 and 1.62 | |||
Revision 1.61 | garbled | 2003/02/04 23:32:03 | +2 -2 |
New bow code. bowmode bestarrow. When firing arrows, look at the first target in line, and attempt to pick the best arrow to use against it. | |||
Show difference between Revision 1.60 and 1.61 | |||
Revision 1.60 | mwedel | 2003/01/27 01:34:34 | +158 -124 |
Various bug fixes: common/item.c: If nrof of an item is 0, have it print singular name and not plural name. server/c_object.c: Fix typo when printing value of optoins - had an extra 'the' in place. Also, don't print value of objects with no pick flag set. server/login.c: Enforce maximum name length for new characters. server/monster.c: Change parsing code for messages/@match code - new code is simpler, and should also be simpler and less bug ridden, but otherwise functionally equivalant. Also fix up communicate to work properly on tiled maps. server/spell_effect.c: fix up move_aura to not crash hopefully. MSW 2003-01-26 | |||
Show difference between Revision 1.59 and 1.60 | |||
Revision 1.59 | mwedel | 2003/01/08 02:39:20 | +18 -9 |
Bulk of this commit is to improve code for tiled maps - replace wall/blocks_magic/blocks_cleric, etc with get_map_flags which also does map tiling translation as needed. This should fix a lot of the bugs related to map tiling (there are sure to be more out there - all the get_map_ob still need to be checked). Other changes - many spells stopped progressing on spaces that blocked view - that is now removed - didn't make a lot of sense. Other fixes - some cleric spells (eg, word of recall) checked to see if magic was prohibited, didn't check to see if cleric was prohibited. Clean up some bugs in the lighting code that would cause erroneous results. Also, allow players to see immediately around them on outdoor maps no matter how dark the map really is - behaviour on indoor maps is the same. Lots of code reformatted, and lots of obsoleted/dead code removed. Add max range to dimension door. Fix magic map - got broken when the layer stuff was redone - was not showing proper colors. IT also works sensibly on tiled maps now - rather than display based on the map, it gives the player a 50x50 area centered on where the player is. Change fire_bow - move special player fire modes into own function - makes code much cleaner. Hopefully this fixes more bugs than it introduces. common/los.c, common/map.c, common/object.c, crossedit/Edit.c, include/libproto.h, include/sockproto.h, include/map.h, include/spellist.h, include/sproto.h, random_maps/treasure.c, random_maps/wall.c, server/attack.c, server/c_misc.c, server/c_wiz.c, server/disease.c, server/main.c, server/monster.c, server/pets.c, server/player.c, server/rune.c, server/shop.c, server/skill_util.c, server/skills.c, server/spell_effect.c, server/spell_util.c, server/time.c, socket/info.c: See note above server/apply.c: Limit number of times weapon can be enchanted so that it won't overflow item_power. Modify enchant armor to enchant as normal armor is enchanted, also only allows one item to be enchanted. MSW 2002-01-07 | |||
Show difference between Revision 1.58 and 1.59 | |||
Revision 1.58 | mwedel | 2003/01/05 17:50:15 | +3 -2 |
common/item.c: Add 'unidentified' to display of examined items if the item has not been identified. Only display spell regen penalty for armour if there is in fact a penalty. lib/archetypes: rebuilt for updated demon speed, pick up other new archs. lib/animations, lib/bmaps lib/bmaps.paths lib/crossfire.0 lib/crossfire.1 lib/faces: rebuilt server/main.c: Name random maps based on final map component (if available) or map they are spawned from - this gives so clue in 'who' command where the players really are. server/monster.c: Fix code that would cause monsters to ignore golems/ avatars. server/pets.c: Clean up a few warnings, fix bug in pet_move that caused crashes - owner of a pet isn't always a player. server/player.c: Remove on_same_map check - can_detect_monster also performed check, so no need to have extra call. server/spell_effect.c: modify alchemy to properly deal with tiled maps, change behavior for spells that block view - they no longer block alchemy, but spaces that block magic will. MSW 2002-01-05 | |||
Show difference between Revision 1.57 and 1.58 | |||
Revision 1.57 | mwedel | 2003/01/03 18:28:52 | +11 -7 |
TODO - add notes about item damage - clear it out of my mailbox. common/loader.l, loader.c: Add check at load time to see if monsters hp is higher than its maxhp and print a debug message if so. devel/Makefile: Remove - makefiles shouldn't be in CVS, only .in versions. server/attack.c: Fix calculation of max_damage in kill_object - this was being done incorrectly, resulting in fired spell objects causing incorrect amounts of damage, resulint in some monsters ending up with a lot of hp. Fix call to kill_object to pass in correct damage value. server/monster.c: Put in check so that monster won't regen to more hp than they should have. server/spell_util.c: Removed unused variable from move_missile. server/weather.c: fix bug that causes crash if empty space is encountered on map. MSW 2003-01-03 | |||
Show difference between Revision 1.56 and 1.57 | |||
Revision 1.56 | mwedel | 2002/12/21 02:02:34 | +7 -1 |
Various bug fixes: common/living.c: Reset glow_radius for players, so they stop glowing after they snuff out their torch or whatever. server/apply.c: Fix message about improving armour so that it is now accurate. server/monster.c: Add some debug lines that may show cause of excess monster hp. server/spell_effect.c: fix compile warning in summon_pet(). Clean up indentation of alchemy functions, but functional changes is to insert gold nuggets below player (so more of the actions work), as well as to reset the view position, so that it won't have the 'previous 50' object selection. Add suggested parens in cast_detection. server/weather.c: Fix crash in weather code if snow was only object on space. MSW 2002-12-20 | |||
Show difference between Revision 1.55 and 1.56 | |||
Revision 1.55 | mwedel | 2002/12/03 01:40:18 | +11 -5 |
TODO: Move more items from my mailbox to the TODO list. common/living.c: Init item_power in player to zero in fix_player() - bogus results were getting generated as it just kept getting incremented. common/porting.c: fix remove_directory so it works properly - checking for . and .. entries too late, calling unlink instead of rmdir. include/sproto.h: rebuilt lib/animations, lib/archetypes, lib/bmaps, lib/bmaps.paths, lib/crossfire.0, lib/crossfire.1, lib/faces: Rebuilt - new archs added, catch is_thrown addition to thrown rock/boulder archs. server/c_move.c, server/c_range.c: Add another parameter to do_skill() - part, which is closest part of creature to target object - current only used for the throw code. Update calls to this function to add additional parameter. server/c_object.c: Remove the NDI_UNIQUE from the 'item is too heavy to pick up' so that it won't flood the client with them if players goes onto space with lots of objects. server/main.c: Minor cleanup to fix compiler warning about ambigous if/else. server/monster.c: Pass closest part of monster when having it use a skill so that it doesn't throw rocks into itself. Update calls to do_skill as described above. server/player.c: Cal delete_player() when player quits - this properly cleans up any per player unique maps they have. Also, check for any such maps currently in memory, and delete those so that unique maps don't get 'gifted' to the next character of the same name. Update calls to do_skill as described above. server/shop.c: Combine items of the same name together in the output of the shop listings. Include the number of items, remove special casing of some objects so that query_base_name is used for all item types. server/skill_util.c: Modify do_skill() to take additional param as described above. Also, have do_skill return 1 on success, 0 on failur to use skill, and not return exp - otherwise, monster code has no idea if skill was successfully used, as throw doesn't grant exp, and this caused monsters to move into the object they just threw. Update calls to do_skill as described above. server/skills.c: Clean up skill_throw function to return meaningfull value. Also, pass along extra part of closest monster part to target. Modify do_throw to return value, use closest part of body as origin point for thwon object. server/spell_effect.c: Use isqrt function instead of definining ISQRT that used float version. Cleans up compile warning - most likely not seen before as spell was #ifdef SPELL_ENCUMBERANCE out. server/time.c: Put sanity checking for players speed_left in move_player_mover() - got some reports of infinite negative speed on metalforge, and this is the only place in the code where I could see that happening given the description of the events. utils/arch2xml.py, utils/cfarches.xsl: New script (and template) by Todd Mitchell. Script can convert archs to xml, and the template is usuable with mozilla to look at the output. MSW 2002-12-02 | |||
Show difference between Revision 1.54 and 1.55 | |||
Revision 1.54 | garbled | 2002/11/26 02:48:20 | +1 -3 |
Get rid of #ifdef PLUGINS (it is on by default, I didn't take out gros's code) | |||
Show difference between Revision 1.53 and 1.54 | |||
Revision 1.53 | mwedel | 2002/09/10 00:43:34 | +2 -3 |
Fix bug in check_enemy introduced in last checkin. MSW 2002-09-09 | |||
Show difference between Revision 1.52 and 1.53 | |||
Revision 1.52 | mwedel | 2002/09/07 16:30:45 | +12 -1 |
server/monster.c: Add some code in check_enemy so that the enemy has to be a monster/generator/player to be considered valid - I was seeing things like arrows ending up as target enemies. MSW 2002-09-07 | |||
Show difference between Revision 1.51 and 1.52 | |||
Revision 1.51 | mwedel | 2002/09/05 23:44:46 | +7 -5 |
CHANGES: Update build instructions for the plugin. random_maps/square_spiral.c: Fix bug that could cause the search function to go off the edge of the map looking for a clear space. Doesn't happen often, but one crash did happen here. server/monster.c: Fix some bugs with monsters and wakeup - remove check for friendly that could never be true, and also fix logic so that monsters will now find the players. MSW 2002-09-12 | |||
Show difference between Revision 1.50 and 1.51 | |||
Revision 1.50 | mwedel | 2002/09/05 00:23:15 | +3 -4 |
common/readlable.c: Fix crash caused by passing null value to mon_desc - check for non null was at end of { } do loop - check should be at the start. server/monster.c: Make it so that monsters with see invisible are not immune to blind - monster can be given appropriate resistance to make it so it is not effected by blind. MSW 2002-09-11 | |||
Show difference between Revision 1.49 and 1.50 | |||
Revision 1.49 | mwedel | 2002/09/04 00:17:06 | +6 -6 |
server/main.c: Move #endif in crypt_string to more proper place. server/monster.c: Fix bad if statement that may have been waking up monsters when they shouldn't have been. MSW 2002-09-03 | |||
Show difference between Revision 1.48 and 1.49 | |||
Revision 1.48 | mwedel | 2002/09/01 01:32:31 | +60 -83 |
This change mostly deals with improving behaviour of pet monstes. Most of the code is from K. Reinert - however, I did some code cleanup/ fixes related to pet monsters, so it is difficult to note where each piece of code came from. One thing this does fix is handling of multipart pets - these now work properly. common/map.c: Update comment for get_rangevector() - no code change. common/object.c: Add get_search_arr() which is used in pet monster code. This returns a semi random scrambling of the freearr array. doc/Developers/protocol: Update documentation about map1a protocol command. include/libproto.h, include/sproto.h: rebuilt. server/attack.c: Have drain attacks return 1 damage so that it is clear that you are actually hitting your opponent. Otherwise, you would get messages that 'you missed xyz', even though you are draining it. This extra point of damage shouldn't change balance in any significant way. server/monster.c: Update hnadling of enemies for pet monsters. It should more intelligently choose the monsters and not switch/clear the enemy field for no reason anymore. Change find_nearest_living_creature to use the get_search_arr() to more randomly choose direction of target - before, there was a proclivity to always look in the north direction. Modify can_hit() to look for closes part of enemy - otherwise, monsters may not attack opponents even if they were right next to them because they couldn't get to the enemies head. Remove move_object from this function - merged with move_ob in move.c server/move.c: Fix move_ob to use 'cleaner' code of move_object, but also have specific features that move_ob had (player handling). Before move_ob didn't handle multipart objects correctly, and the two functions were largely the same. Now move_object() just calls move_ob - the only difference in the functions is that move_ob() takes 3 parameters instead of 2 of move_object() (added parameter is originator). I think this should now mean multipart player objects may now work. server/pets.c: get_pet_enemy enhanced to be much smarter about selecting/finding things for the pet to attack. server/player.c: Remove commented out line of init_beforeplay MSW 2002-08-31 | |||
Show difference between Revision 1.47 and 1.48 | |||
Revision 1.47 | mwedel | 2002/08/26 02:14:11 | +37 -34 |
Various bugfixes: common/map.c: Change so that same logic is used to determine pclose/fclose that is used to determine popen/fopen - otherwise, compressed map files probably don't work properly. common/treasure.c: Do a memset to make sure entire treasureslist is set to sane values. lib/archetypes: Fix 'slaying' field (which determines spell name) in god_spelldirect_face_of_death and god_spelldirect_finger_of_death server/apply.c: Fix infinite loop if the player had cursed items that needed to be unapplied to apply an item - setting up next item iteration was inside if check when it shouldn't be. Also, print message to player if this is the case. server/monster.c: Better format some of the code for improved readability. Fix indentation of can_see_enemy. Clean up invisiblity check - may have fixed a bug - old code should have worked, but wasn't very readable. server/move.c: Fix some bad code from last checkin - didn't fix the crash on no floor for door type, and instead removed check type from next line by accident. server/player.c: Remove call for init_beforeplay - this is already properly called, and re-calling it resulted in some things being redone when they shouldn't be. server/skills.c: Add message if there is nothing to steal form the monster. server/spell_effect.c: Improve message when invisiblity duration is maximized. socket/init.c: change O_NDELAY to O_NONBLOCK of fcntl. MSW 2002-08-25 | |||
Show difference between Revision 1.46 and 1.47 | |||
Revision 1.46 | mwedel | 2002/07/30 01:37:22 | +102 -130 |
Various fixes: INSTALL: Update with note about --with-includes configure option. common/loader.c, common/loader.l: Add comment about flag_invis_undead include/define.h: Add FLAG_INVIS_UNDEAD lib/adm/map_info: Modify to not follow symbolic links. server/monster.c: Modify can_detect_enemy to be a bit more straightforward in its logic. Also, modify detection of invisible creatures - don't reduce duration, just return that the monster can detect the player. There were also spurious messages about the player being seen. Modify can_see_enemy to check FLAG_INVIS_UNDEAD, also fix broken comparison server/player.c: Clear FLAG_INVIS_UNDEAD when invisibility ends. Fix action_makes_visible() - had reverse logic on FLAG_MAKE_INVIS check, and a typo in the printed message. server/spell_effect.c: cast_invisible() to use FLAG_INVIS_UNDEAD - also check for maximum duration, and only search active objects when clearing enemy. server/weather.c: Fix off by one on comparision when intializing maps darkness when loading map from disk. In dawn_to_dusk, don't do further processing if the light hasn't changed. MSW 2002-07-29 | |||
Show difference between Revision 1.45 and 1.46 | |||
Revision 1.45 | mwedel | 2002/07/18 23:21:18 | +2 -3 |
Fix bug in monster_cast_scroll which was referencing an uninitialized value. MSW 2002-07-18 | |||
Show difference between Revision 1.44 and 1.45 | |||
Revision 1.44 | mwedel | 2002/07/14 23:57:13 | +618 -570 |
-- Start body commit notes -- Major commit. This adds body locations which is used for equipping items. Equipment has information which body part it gets equipped to, and monsters have information on how which body locations they can have. As part of this work, I also did a lot of code cleanup. To use this, you must use up to date archetypes - the ones included in this commit are fine - just make sure you install them. If you don't, players will not be able to equip items. common/arch.c: Initialize body_used to be same as body_info for archetypes - this way when monsters are created, they can start equipping items right away. common/exp.c: update new_exp() - some flags it checked for before no longer exist or have new names. common/info.c: describe_item() now takes second parameter - update dump_abilities to use new calling convention. common/item.c: Add table that describes the body_info locations and their names. Add functions that calculate item power for objects that don't have it set. Update display functions to show item_power in items. Update describe_monster() - use_horn/wand/rod merged into just use_range. Modify describe_item() to take second paramater - who the item is being described for. Show item_power in describe_item. common/living.c: Pull out MAXLEVEL from being defined in this file - define in in define.h, since other files use it. Add NUM_STATS define - replace hard coded values of having just 7 stats with it. Update change_abil to not display that the player has a new attacktype when equipping a bow that has it - fix_player() ignores the attacktype of the bow, so it was incorrect information. fix_player(): Initialize player ranges structure to null - will get filled in by code in function, updated to deal with updating the body_used data from body_info in the objects. Replace instances of last_heal with gen_sp_armour. Rearrange some code to make function more readable. common/loader.c, common/loader.l: Remove the variable_const information - no longer needed and confusing for new people when adding in new object elements. Add set_body_info() - parses the string from the load file and sets the appropriate array element. Add check_loaded_object() - does sanity checking for an object after finished loading - replaces need for long processing directive in the actual rules by having seperate function. Remove unused flags from load directives (apply_once, no_pretext, can_apply), add some new ones (item_power, gen_sp_armour), update others to can_use_range. Replace flag_links with simple array that contains the name for each corresponding flag. Update get_ob_diff to not use the V_ values and just include the actual string name - all recent changes have done this, just updated for old stuff. Update get_ob_diff to save new values that have been added. common/object.c: clear_object: Modify to use memset to clear the structure to zero - this is less error prone than listing all the specific values, and probably faster. Also, makes it easier to add new elements - no need to update object.c in most cases. common/player.c: Remove get_player_ob routine - this is now merged in with get_player_ob in server/player.c. Remove generate_ext_title - not used. common/readable.c: Update to pass second argument to describe_item. common/treasure.c: Update to calculate item_power of generated items. Clean up a lot of code formatting. Update add_abilities to use gen_sp_armour values, not last heal (note, it appears the last_heal values weren't being used before). Update calls to describe item to take second parameter. doc/Developers/objects: Update will_apply notes, add note about item_power, body location. include/define.h: Comment out unused flags (flag_apply_once, flag_paralyzed, flag_no_pretext, flag_ready_rod, flag_read_horn). Add flag_use_shield. rename flag_use_wand to flag_use_range. rename flag_ready_wand to flag_ready_range. Add flag_ready_scroll. Update ARMOUR_SPELLS access macro. Add AP_PRINT flag to apply flags. Add CAN_APPLY_.. return types for can_apply_object function. include/includes.h: add strftime, mktime checks to this file. include/libproto.h: rebuilt. include/living.h: Add NUM_STATS define, update extern declarations to use it for sizing. include/loader.h: remove the V_.. info and xbm_.. externs that were not used. include/newserver.h: Remove ext_tile information. include/object.h: Add Body_Locations structure, NUM_BODY_LOCATIONS define. Add definitions for WILL_APPLY values. Clean up object structure - formatting is now consistent, ordering of values groups values together more logically. Update all types to use the int8/int16/int32 types. Several unused fields removed. include/player.h: Update rangetype enum. Add unapplymode enum. Clean up player structure - type updates, unused fields removed, formatting fixed up. include/spells.h: remove range_name extern. Update SpellTypeFrom field to combine wand/rod/horn into spellMisc - none of the spell casting code was differentiating these. include/sproto.h: rebuilt. lib/Makefile.in: Add new help files (applymode, bind, brace) lib/archetypes: rebuilt for body_info, gen_sp_armour, item_power, can_use_shield information. lib/artifacts: updated for item_poer and gen_sp_armour changes. lib/treasures: remove unused _force for player treasure. plugin/plugin_python.c: Change FLAG_USE_WAND to FLAG_USE_RANGE. server/apply.c: Move stftime, mktime to include/includes.h. Remove draw_find() - one line function can just as easly be in the code itself. Update calls to long_desc to pass second parameter. move gravestone_text() to player.c file. Add direction parameter to apply_scroll() - in this way monsters can use it properly. Remove dead code. Update apply_special function. Add unapply_special(), get_item_from_body_location(), unapply_for_ob(), and can_apply_object() functions. server/attack.c: Remove SET_FLAG(op, FLAG_PARALYZED) line - no code was ever checking status of FLAG_PARALYZED. server/c_misc.c: add command_body() which dumps body information for player. Update who as idle element in player structure removed - was not being used by anything. Add command_applymode() to set players prefered unapply method. Remove calls to unlock_player() in various functions - unlock_player() has not done anything meaningful for a while. server/c_object.c: Modify long_desc to take a second parameter which is who is examing the object. this is needed so that we can pass it down to some of the lower level functions. Update calls to describe_item to pass this second parameter. remove FLAG_NO_PRETEXT code - no archetyps were using it. When examining objects, also tell player where to put them on. server/c_range.c: Update legal_range() - we now store the object that is responsible for a range in the player object, so code is much simpler. Update change_spell() to not destroy golem just by readying another spell - we now let players regain control of golems after switching to another range. Update change_spell to use item name of object for range description. server/c_wiz.c: remove reference to count_left from player object - field removed from structure. server/commands.c: add new commands (applymode, body) to command dispatch table. server/login.c: Remove unlock_player() and lock_player() and calls to it - current checking of names at login should be sufficient to prevent duplicates. Remove dead code from check_name. Update load/save code for unapply mode value. Add set_flag(op, FLAG_USE_SHIELD) if player is allowed to use armor - needed since flag_use_shield is really a class feature and so is not automatically updated for old player files. server/main.c: Remove references to count_left. memset marker object to NULL - seems to increase stability on metalforge server. server/monster.c: Many updates related to the body info - monsters follow some rules as players. Add monster_should_cast_spell function - monsters will use this for all spellcasting related actions (abilities, scrolls, wands, etc). Update for merged rod/horn/wand ranges. Update bow use by monsters - they don't actually need to equip it to fire - this way we don't need to constantly swap the monsters weapons between the bow and melee item. Use fire_bow from player.c for most of the work. Modify scroll usage - monster will use it when player is near, not when it first picks it up. Add FLAG_READY_SCROLL to denote the monster has a scroll to use. Also, monster now casts it in appropriate direciton. Merge the monster_use_wand/rod/horn into monster_use_range. Modify check_good_weapon and check_good_armour to just look at the stats of the two items without needing the monster to apply it first. server/player.c: Print motd in green so it is more noticable. Update get_player function to do work it did before as well as that of get_player_ob. Have get_player take a parameter which is the object of the player if he has one. Modify to use memset to clear the player structure - more sure fire than explicitly listing values to initialize. Remove calls to unlock_player. Modify fire_bow so that monsters can also use the function. Add fire_misc_object() to fire_wand/rod/horn - removes code from fire(). Add gravesetone_text() to this file. server/shop.c: Update to pass second parameter to describe_item(). server/skill_util.c: Update check_skill_to_fire since there are fewer rangetypes now. change range_scroll name to range_golem, as that is a bit more accurate for what it actually does. Modify show_skills() to show player his item power and total of items he has equipped. server/skills.c: Add second paramater to long_desc, remove references to count_left. server/spell_effect.c: Add second paramater to long_desc, remove references to count_left. Update range_scroll to range_golem server/spell_util.c: remove references to count_left. Update messages if player trying to cast where he can't with new range names. socket/info.c: Update range information and how we display what it is - we will use the object name of the range if available. Remove reference last_known_spell, last_shoot, last_spell, last_value player structure fields. socket/init.c: Remove ext_title information. socket/request.c: Add element for life_stealing in the resistance array. Remove references to idle, count_left in player structure. remove ext2 title information. MSW 2002-07-14 -- End body commit notes -- | |||
Show difference between Revision 1.43 and 1.44 | |||
Revision 1.43 | mwedel | 2002/05/30 23:18:39 | +1 -11 |
Main change is the addition of name_pl and client_type to object structure. The name_pl contains the proper plural name instance - fixes problem of '2 tooths'. client_type is sent to the client so that client doesn't need to figure out sorting on its own. Client_type is an object attribute, so can be modified in maps to hide the real type. -- common/arch.c: item_matched_string() modified to use the name_pl field when trying to match names, and not to try to make the name plural itself. common/item.c: query_short_name(),query_base_name() modified to use name_pl instead of trying to make the name plural. common/loader.c, common/loader.l: Add code to load and save the name_pl value and client_type. Add logic when object is finished loading to set name_pl value to same as name or arch name if no name_pl is specified - this supports old maps/characters in which the objects dont have a name_pl field yet. Disable logic for need_an and need_ie flags since they are no longer needed. Fix bug that caused elevation not to get saved. common/object.c: Add client_type check for CAN_MERGE function. Add appropriate logice in functions to handle setting, clearing, and copying of name_pl values. Remove unused anim_... fields initialization. doc/Developers/objects: Add information about the name_pl field and client_type. doc/Developers/protocol: Remove item protocol command info - it has been obsoleted. Add information about item2 protocol command. include/define.h: Remote ST1_* values - they were not being used. comment out FLAG_AN and FLAG_NEED_IE values. include/newserver.h: Add itemcmd to socket structure - this is the version of the item protocol command that will be sent to the client. include/object.h: Add name_pl and client_type field to object structure. Remove unused anim_* values. lib/archetypes: rebuilt with new archetypes that contain client_type and name_pl information. lib/bmaps, lib/bmaps.paths, lib/crossfire.1, lib/crossfire.0, lib/faces: rebuilt. server/monster.c: Remove anim_ references that were not being used. socket/init.c: Initialize itemcmd version in the socket to 1. socket/item.c: Remove special handling for clients of old versions - all clients now have to be at least sc_version 1024 (which has been around for a long time). This simplifies a lot of the object code that deals with sending or not sending plural names to the client - now always send them. Change code that sends item to client to use the item revision (currently 1 or 2) that the client wants. If version 2, send along client_type information. socket/request.c: Handle 'itemcmd' parameter in setup command. Make sure it is in proper range. If client is very old (sc_version < 1024) tell them so. MSW 2002-05-30 | |||
Show difference between Revision 1.42 and 1.43 | |||
Revision 1.42 | mwedel | 2001/12/23 02:17:36 | +19 -18 |
common/loader.l, common/loader.c, common/object.c, include/object.h, socket/item.c: Remove sub_type and sub_type2 information - these were poorly named fields and not properly implemented. common/treasure.c: Add missing return type to change_treasure function. crossedit/Edit.c: Add SET_MAP_FLAGS macro to set P_NEED_UPDATE flag before calling update_position. include/config.h: Add NEW_WORLD_MAP selection which results in proper emergency save paths if you are using the maps-bigworld distribution. server/c_wiz.c: Fix the formatting (indentation) of the command_create function. No actual changes in how it runs, but the old formatting was really terrible and inconsistent. server/main.c: remove call to send_mapstats_cmd server/monster.c: Update the comment style to be proper, as well as the comments themselves. socket/request.c: Fix up improper indentation in esrv_update_stats. remove send_mapstats_cmd function. MSW 2001-12-23 | |||
Show difference between Revision 1.41 and 1.42 | |||
Revision 1.41 | michtoen | 2001/11/26 22:33:46 | +0 -0 |
Arch type & subtype patch Added type & subtype system with 2 subtypes. Type & subtype will be send to client. Adding new types: FLOOR 71 WALL 77 LIGHT_SOURCE 78 MISC_OBJECT 79 MONSTER 80 SPAWN_GENERATOR 81 Added subtypes for armor & weapons. new commands are: sub_type <uint8> sub_typ2 <uint16> sub_type2 is for internal server use. Added new command: casting_speed <delay> This will be included later. I will use the sdl client as tester for this patch, older clients will not be effected even when the arches are updated. | |||
Show difference between Revision 1.40 and 1.41 | |||
Revision 1.40 | michtoen | 2001/11/26 11:52:26 | +317 -245 |
Attack Patch 25.11.01 Detailed information in the dev list. The changes are to many to explain here. | |||
Show difference between Revision 1.39 and 1.40 | |||
Revision 1.39 | michtoen | 2001/11/19 17:30:28 | +3 -2 |
Full support now for gender, rank and alignment. Full support for guilds & quests in code, most script functions included. - some fixes - old clients will not be effected - to avoid treasure file error msg, collect arches | |||
Show difference between Revision 1.38 and 1.39 | |||
Revision 1.38 | mwedel | 2001/11/13 02:14:26 | +22 -12 |
Various minor bugfixes - common/loader.c: rebuilt include/map.h: Change width,height,enter_x,enter_y to be 16 bit instead of 8 bits. lib/treasures: change skull treasure to tooth instead of skull_tooth since the later is not currently in the distributed archetypes file server/monster.c: Optimize some code, remove some other that is not used. server/plugins.c: Fix un initialized value in initPlugins that would cause crash at startup if plugin directory does not exist. MSW 2001-11-13 | |||
Show difference between Revision 1.37 and 1.38 | |||
Revision 1.37 | gros | 2001/11/11 03:39:54 | +2 -2 |
Some bugfixes, new timer system, support for custom plugins commands, new plugin hooks - Gros 11/11/01 | |||
Show difference between Revision 1.36 and 1.37 | |||
Revision 1.36 | michtoen | 2001/11/04 14:22:55 | +0 -0 |
One Arch/one pic patch. I use a modified map1cmd, called map2cmd for it. This is a first tryout implementation. The code can more then only submit offset data of multi arch, its also possible to include animation tags for the faces - we have now more free flags. The code is NOT optimized. Iam still unsure , what the best way is to send all this data. Sort & parsing cost time. At this stage, ill quick parse is by server, use slightly more bandwitch and let do the client more work. But thats perhaps not the best way. But this code will allow to install the arches for this one arch/one pic. MT | |||
Show difference between Revision 1.35 and 1.36 | |||
Revision 1.35 | michtoen | 2001/11/02 12:39:23 | +21 -2 |
Extended Animation Facings 18 This is the first step of complexer animation system (usable for flat & iso). This is not a fully clean implementation, because it depends on "one arch / one picture" which hopefully comes soon. MT02102001 | |||
Show difference between Revision 1.34 and 1.35 | |||
Revision 1.34 | michtoen | 2001/11/02 10:22:03 | +3 -1 |
add FLAG_PARALYZE Now, all player & monster have this flag set, when they are effected by paralyzes spell. I have not checked pets & summoned stuff yet, it will follow. | |||
Show difference between Revision 1.33 and 1.34 | |||
Revision 1.33 | michtoen | 2001/10/29 20:30:20 | +9 -10 |
Remove a bug, reset some modules | |||
Show difference between Revision 1.32 and 1.33 | |||
Revision 1.32 | michtoen | 2001/10/29 18:49:03 | +7 -10 |
really SOME fixes - most casting | |||
Show difference between Revision 1.31 and 1.32 | |||
Revision 1.31 | garbled | 2001/10/20 02:07:54 | +21 -1 |
Fix a crash bug noted by Mids when a map file contains: @match foo|foo|foo From the comment in the code: * your eyes aren't decieving you, this is code repetition. However, * the above code doesn't catch the case where line<cp going into the * for loop, skipping the above code completely, and leaving undefined * data in the keywords array. This patches it up and solves a crash * bug. garbled 2001-10-20 | |||
Show difference between Revision 1.30 and 1.31 | |||
Revision 1.30 | gros | 2001/10/14 02:57:14 | +86 -8 |
Major changes: Added dynamic plugin support, removed old Guile support. - Gros 10/14/01 | |||
Show difference between Revision 1.29 and 1.30 | |||
Revision 1.29 | mwedel | 2001/08/30 00:17:43 | +5 -2 |
Fix to prevent divide by zero crashes in dist_att. MSW 2001-08-29 | |||
Show difference between Revision 1.28 and 1.29 | |||
Revision 1.28 | mwedel | 2001/08/21 00:39:30 | +417 -337 |
Enhancements to make monsters 'do the right thing' with relation to tiled maps (ie, will detect players and attack them if on an adjoining tiled maps). This involved a rewrite of path_to_player - I've tested this out, and if anything, it seems that monsters may be more aggressive on spellcasting. ++ common/map.c: blocked modify to make sure it is checking valid coordinate value. blocked_link,blocked_two modified to translate for tiled maps. Add load_and_link_tiled_map which loads a tiled map and links in all pointers relative to adjoining maps. out_of_map modified to use this function instead of doing the work itself. Add get_rangevector function that returns offset, direction, and distance between two objects, taking into account tiled maps. get_rangevector_from_mapcoord added which is similar to get_rangevector, but takes a map and coordinates instead of a second object. on_same_map function added which returns true if the two objects are on the same logical (ie tiled) maps. doc/crossfire.doc: Add note about what Int does for monsters. include/map.h: Add some comments, and add structure for rangevector function return values. server/attack.c: add calls to on_same_map instead of doing op->map comparisons. server/monster.c: Many functions modified to properly handle tiled maps properly. server/pets.c: get_pet_enemy modified to know about tiled maps. server/player.c: get_nearest_player modified to know about tiled maps. path_to_player rewritten to know about tiled maps - I think some other bugs were also fixed in return values. Split player_attack_door from move_player attack to keep functions a more reasonable size. move_player_attack, player_can_view modified to know about tiled maps. server/skills.c: can detect_enemy modified to take another parameter - call in steal updated to pass this parameter. server/spell_util.c: ok_to_put_more, can_see_monsterP modified to handle tiled maps properly. socket/item.c: look_at modified to return proper results when player looks at something on an adjoining tiled map. ++ End of checkin | |||
Show difference between Revision 1.27 and 1.28 | |||
Revision 1.27 | mwedel | 2001/07/13 23:11:18 | +23 -23 |
Map tiling checkin server/Makefile.in: Remove encounter.c file. Use cproto instead of cextract to create proto file. server/alchemy.c,server/attack.c,server/c_object.c,server/c_wiz.c, server/disease.c, server/login.c, server/main.c, server/monster.c, server/move.c, server/pets.c, server/player.c, server/resurrection.c, server/rune.c, server/shop.c,server/skill_util.c, server/skills.c, server/spell_effect.c, server/spell_util.c, server/swap.c, server/time.c modified to use modified insert_ob_in_map function, use new macros to access map structure related data. change calls to update_all_los, remove lighting related code. server/apply.c: modified to use new insert_ob_in_map function. Update calls to update_object. remove RANDOM_ENCOUNTER code. for exits, modified to use the head for valid coordinates since the other parts may not have valid values since they are not saved out to disk anymore. server/c_misc.c,server/hiscore.c: modified to use new map structure/information. server/commands.c: remove dumplights command. server/encounter.c: removed - code no longer used server/init.c: remove RANDOM_ENCOUNTERS code. server/script.c: change Script_getMapObject to return NULL since there is no longer a map object. Modify to use new insert_ob_in_map and update_object functions. MSW 2001-07-13 | |||
Show difference between Revision 1.26 and 1.27 | |||
Revision 1.26 | mwedel | 2001/06/29 00:59:46 | +4 -4 |
common/object.c, common/player.c, include/object.h, server/skill_util.c: Remove the unused LINKED_SKILL code. common/Makefile.in: Use cproto to make prototypes - cextract fails for some reason and now seems unsupported. Cproto generates a bunch of warnings, but does do the job. common/arch.c,server/apply.c, server/main.c, server/monster.c: cleanup some compile warnings (unusued variables, returns without value doc/playbook/Makefile.in: Create proper dependencies for files. doc/playbook/treas2-extract: Add player_force to value to ignore. doc/spoiler-html/spoiler.html: rebuilt server/skill_util.c: Remove the unused LINKED_SKILL code. Prevent characters that have meditation skill from learning melee weapon skill. MSW 2001-06-28 | |||
Show difference between Revision 1.25 and 1.26 | |||
Revision 1.25 | michtoen | 2001/06/13 07:51:58 | +1 -1 |
Modified Files: player.c loader.l loader.c init.c request.c newserver.h Log Message: Removed 2 compiler warning from Scriptfire patch in loader.l/loader.c and script.c. added a new setup cmd: "newanim" a client giving the newanim cmd, will enable the new animation system. The interface is open and not server controlled at this moment. First using is to enable the player moving in 8 direction. Giving this option to a server without changed arch will invoke broken player animations. This will be changed in the future. MT 2001-06-13 | |||
Show difference between Revision 1.24 and 1.25 | |||
Revision 1.24 | michtoen | 2001/06/13 05:51:52 | +15 -5 |
Modified Files: aclocal.m4 configure. configure.in Makefile.in crossfire32.dsw crossfire32.dsp INSTALL_WIN32.txt common: arch.c loader.c treasure.c loader.l crossedit: Attr.c doc: README_EXTENSIONS README_SCRIPT include: autoconf.h define.h global.h includes.h loader.h object.h script.h spellist.h spells.h sproto.h version.h server: Makefile.in apply.c attack.c c_object.c gods.c init.c main.c monster.c player.c script.c script_spells.c script_types.c skills.c spell_effect.c spell_util.c time.c Log Message: Adding Scriptfire 0b11 to Crossfire. Massive changes. The facts are in the doc files. MT 2001-06-13 | |||
Show difference between Revision 1.23 and 1.24 | |||
Revision 1.23 | mwedel | 2001/06/11 23:29:44 | +2 -2 |
common/item.c: Add boots and gloves to items which are not magical just because they have resist physical. This bug resulted in most all boots and gloves being shown as magical, even though they had no special properties. socket/request.c: remove some dead code. Memset entire map cell to zero when scrolling and the map is cells is one that was not in view. This fixes redraw problems when using large viewable maps. MSW 2001-06-11 | |||
Show difference between Revision 1.22 and 1.23 | |||
Revision 1.22 | mwedel | 2001/05/28 23:41:53 | +1 -15 |
Make ALLOW_SKILLS standard part of game (remove #ifdef's for it) Files affected: common/living.c common/object.c common/treasure.c include/config.h include/player.h server/apply.c server/attack.c server/c_move.c server/c_range.c server/c_wiz.c server/commands.c server/init.c server/login.c server/monster.c server/player.c server/rune.c server/skill_util.c server/spell_util.c Make MULTIPLE_GODS standards part of game (remove #ifdefs for it) Files affected: common/readable.c include/spellist.h include/config.h server/attack.c server/gods.c server/skills.c server/spell_effect.c server/spell_util.c doc/Makefile.in, doc/Protocol: Add protocol description file here instead of in the client distribution. include/global.h: Move declaration of MAX_EXP_CAT near top of file so it is set before player.h is included. include/newclient.h: Add CS_STAT_SKILL* values for sending skill experience information to client. include/newserver.h: Add skillexp value to socket struct which determines if client wants skill experience informatiion. include/player.h: Add skill information tracking to player structure so we can easily know when to send updates to client. random_maps/expand2x.c: remove unused variable to prevent compiler warnings. random_maps/square_spiral.c: Include prototype information on all systems, not just win32 to prevent compiler warnings. server/skill_util.c: Initialize skill pointers to make it easier to find skill information when we want to update client. socket/init.c: Init socket->skillexp to 0. socket/loop.c: Fix indentation of table - whitespace change only socket/metaserver.c: Minor fix to prevent compile warnings (on the sprintf that composes the data to send to the metaserver) socket/request.c: Redo SetUp function to be more compact and IMO simpler as wll as easier to read (functionality remains the same). VersionCmd modified to warn users of on dxclients (code on MT) StatsCmd added to send skill information if client wants it. The sending of skill experience is by MT, rest of the changes by me. MSW 2001-05-28 | |||
Show difference between Revision 1.21 and 1.22 | |||
Revision 1.21 | mwedel | 2001/05/23 01:14:41 | +1 -6 |
server/pets.c: pet_move - fix formatting to be 4 space indentation. if we remove the monster, free it here instead of having move_monster do it. Add check for was_destroyed after first call to move_ob - crashes have been observed in that function, and I believe that is the cause. server/monster.c: move_monster: let pet_move free the pet if necessary. server/spell_effect.c: Clear sleeping flag of monsters when casting summon pet monster (or other creatures). Some archs have this value on by default, so the monsters don't follow the player until an enemy is found. MSW 2001-05-22 | |||
Show difference between Revision 1.20 and 1.21 | |||
Revision 1.20 | mwedel | 2001/05/02 02:26:51 | +8 -4 |
socket/item.c: Modify look_at to not stop when it finds the first invisible object. Not the changes look bigger than they actually were, as I did a lot of formatting changes to make it easier to read. server/monster.c: Modify monster_check_pickup to check to see if the next object got destroyed. I'm not sure the exact way this happens, but I've seen one crash where this did happen - I'm guess some function further down in the monster_check_apply look may call this or destroy the item. MSW 2001-05-01 | |||
Show difference between Revision 1.19 and 1.20 | |||
Revision 1.19 | mwedel | 2001/04/20 23:26:09 | +6 -2 |
server/monster.c: add check to was_destroyed when monster fires an arrow. Call was certainly missing, and appears to be responsible for crash. MSW 2001-04-20 | |||
Show difference between Revision 1.18 and 1.19 | |||
Revision 1.18 | mwedel | 2001/04/12 23:13:58 | +13 -2 |
server/monster.c: Properly alter direction monster moves if they are feared or confused. It was properly altering direction when monsters were using range attacks, but not if they were just wanting to move. MSW 2001-04-12 | |||
Show difference between Revision 1.17 and 1.18 | |||
Revision 1.17 | mwedel | 2001/02/23 00:06:35 | +3 -9 |
MSW 2001/02/22: TODO: Add some items, remove some others, remove outline of future versions, since it was out of date. common/loader.l,loader.c: Declare msgbuf a static outside the lex_load function. lex_load was otherwise clearing it each time it was called, which resulted in empty messages for the random artifacts (since the call lex_load one line at a time). Instead, we just zero this at start of load_object. Original reason of this change was due to purify errors - as I look at the code, it appears even before these changes that it was clearing the buffer properly. common/map.c: removing pending field from map objects. common/re-cmp.c: Comment out some code which was resulting in too many false compares. include/config.h: increase default for MAX_OBJECTS. 6000 is a bit small on current systems. include/map.h: Remove pending field from map structure. random_maps/treasure.c: Increase size of doorlist. Fixes crash, in that if a random map could place 8 doors around the treasure, the list was not terminated, so the problem would eventually try to read/dereference random memory after the array. server/c_misc.c: Remove pending field from maps, so remove functions and other places that referred to it (like the maps command) server/c_wiz.c: fix up wiz map reset command. Not really tested, but old code had some definate problems just from visual inspection. server/main.c: Further fix for unique exits - relative paths to unique maps from non unique maps should now work. server/monster.c: Various fixes - one is that should get more reliable distance values for multipart monsters. Second, modify dist_att to calculate from closest part of monster, and not the head of the monster. server/pets.c: Remove code dealing with pending objects. server/player.c: Don't remove invisible objects in players inventory when playing with permadeath mode. server/spell_util.c: If you try to cast denied spell, it no longer costs any spellpoints. socket/item.c: Fix bug where it was using 'item' protocol command instead of 'item1' End of MSW 2001/02/22 checkin. | |||
Show difference between Revision 1.16 and 1.17 | |||
Revision 1.16 | cvs | 2001/02/11 03:12:14 | +1 -19 |
MSW 2001/01/11: Other than various general cleanups, the main change this code does is that style maps (for random maps) get loaded special now - they objects they contain are not put on the active list, and they use a private map list so they do not appear in the output of the 'maps command. common/arch.c, common/treasure.c,server/login.c: Update calls to load_object common/loaderl.l,loader.c: Update lex_load to take an optional flags option. This is currently only used so that the loader can decide if it should call update_ob_speedto put objects on the active list or not. Calls to lex_load updated. load_object modified to take another option common.map.c: remove PROCESS_WHILE_LOADING and CHECK_ACTIVE_MAPS ifdefs. update calls to load_object. Remove some dead code. include/config.h: Remove CHECK_ACTIVE_MAPS and PROCESS_WHILE_LOADING flags. Those options did not work, and in all likelihood, this would be done via threading now days and not what code was there. include/libproto.h, sproto.h: updated or various function changes. include/map.h: Add MAP_STYLE flag. random_maps/exit.c: Call set_map_timeout after we load the final map so it will get swapped out. random_maps/standalone.c: Add dummy set_map_timeout function so it compiles. random_maps/style.c: Add load_style_map function which does the job of actually checking to see if a style map is in memory, and if not, loads it up. Updates the pointers so it appears on a map style map list and not the general map list. server/main.c: create set_map_timeout function that deals with setting the map timeouts. Fix bug so server doesn't crash if two players kill each other on hall of selection. server/monster.c remove dead code. socket/loop.c: If realloc fails, catch it and exit with meaningful error message. End of MSW 2001/02/11 checkin. | |||
Show difference between Revision 1.15 and 1.16 | |||
Revision 1.15 | cvs | 2001/01/26 01:23:26 | +18 -1 |
Undo some previous changes - remove players from friendly list, and instead change get_nearest_player to also look at the player list. check_wakeup (in monster.c) had to be changed also since it used the friendly list. MSW 2001-01-25 | |||
Show difference between Revision 1.14 and 1.15 | |||
Revision 1.14 | pjka | 2001/01/11 03:37:02 | +5 -3 |
Magic ear wouldn't hear what You say, if a NPC heard You first. Fixed. | |||
Show difference between Revision 1.13 and 1.14 | |||
Revision 1.13 | cvs | 2000/12/23 19:48:20 | +2 -2 |
MSW 2000/12/23: include/define.h: Add SIZEOFFREE1 and SIZEOFFREE2 values to use instead of arbitrary constants in the code. server/monster.c: change communicate function to use above values. Before it was stopping one short of the full 2 space array, so one particular space (-1, -2 relative to player) would not hear players speech. | |||
Show difference between Revision 1.12 and 1.13 | |||
Revision 1.12 | peterm | 2000/12/19 00:54:52 | +3 -3 |
Re-inserted the Spell of Conflict fixed a bug in attack.c | |||
Show difference between Revision 1.11 and 1.12 | |||
Revision 1.11 | cvs | 2000/12/03 18:40:05 | +8 -4 |
Checking for partial resistance code. Various minor errors also fixed (compiler warnings, unused variables, Makefile.in changes, etc). PR code also includes support to send protections to the client. | |||
Show difference between Revision 1.10 and 1.11 | |||
Revision 1.10 | peterm | 2000/11/23 19:16:01 | +3 -3 |
Commented out all the FLAG_BERSERK stuff. Attempt to add FLAG_BERSERK properly failed, so do this for now. | |||
Show difference between Revision 1.9 and 1.10 | |||
Revision 1.9 | peterm | 2000/11/19 18:59:16 | +32 -2 |
New spells added: conflict vitriol ironwood skin. | |||
Show difference between Revision 1.8 and 1.9 | |||
Revision 1.8 | cvs | 2000/06/22 00:56:33 | +24 -1 |
server/monster.c: Patch by Neil Muller so that corrupt/bad @match entries will not cause the server to crash. Applied by MSW 6/21/2000 | |||
Show difference between Revision 1.7 and 1.8 | |||
Revision 1.7 | jec | 2000/06/09 07:01:47 | +2 -2 |
common/loader.l: Fix handling of objects with no animation. Fixes server crash if object's archetype has an animation, but object doesn't. common/loader.l: get_ob_diff(): Bugfix: Issue a "is_animated 0" line if the object has an animation, but doesn't have FLAG_ANIMATE. server/apply.c: manual_apply() and monster_apply_special(): Don't check for FLAG_UNPAID if object is applied. This should make the code more robust if an unpaid item get's applied accidently. server/apply.c: apply_special(): New optional flags AP_NO_MERGE and AP_IGNORE_CURSE. server/monster.c: find_mon_throw_ob(); server/skills.c: find_throw_ob(): Bugfix: Use AP_NO_MERGE flag to prevent unapplied object be merged with other objects. server/spell_effect.c: animate_weapon: Bugfixes: Correctly unapply weapon. Don't set FLAG_APPLIED directly on weapon in golem, but use apply_special(). Don't call esrv_send_item() when caster is not a player (fixes server crash if monster casts this spell). | |||
Show difference between Revision 1.6 and 1.7 | |||
Revision 1.6 | cvs | 2000/05/27 01:02:58 | +4 -4 |
include/define.h: Add MIN_ACTIVE_SPEED value to determine what threshold something will be put on the active list or not instead of using varying values throughout the source code. common/item.c, common/object.c, server/monster.c, server/pets.c, server/spell_effect.c: Updated to use the MIN_ACTIVE_SPEED instead of hardcoded values. MSW 5/26/2000 | |||
Show difference between Revision 1.5 and 1.6 | |||
Revision 1.5 | jec | 2000/05/26 04:50:49 | +24 -17 |
* apply() cleanup patch 26/5/2000 | |||
Show difference between Revision 1.4 and 1.5 | |||
Revision 1.4 | jec | 2000/05/21 16:41:45 | +2 -2 |
common/init.c, common/loger.c, include/logger.h, server/init.c: New log level llevInfo which is the new default log level. Many other files: Use llevInfo instead of llevError where appropriate. Use 'settings.debug >= llevDebug' instead of 'settings.debug'. server/main.c: Use a marker object to track current position in the list of active objects. Using a pointer didn't work because all objects on that list can be removed from it by process_object(). One of the things this fixes is bogus "Free object on list" errors. | |||
Show difference between Revision 1.3 and 1.4 | |||
Revision 1.3 | cvs | 2000/04/12 01:38:04 | +2 -0 |
server/apply.c, server/monster.c: Fix in apply.c for encounter maps so that proper message is generated, and differentiate behaviour if it is a floor vs not a floor. Also, change to both files in that apply_below stops at the floor object. Patch by Jan Echternach, applied & checked in by Mark Wedel, 4/11/2000 | |||
Show difference between Revision 1.2 and 1.3 | |||
Revision 1.2 | cvs | 1999/07/13 01:03:04 | +0 -0 |
Global commit for 0.95.4 - most files have no changes but just have differing headers between my local RCS and the CVS versions and need to get synced up. | |||
Show difference between Revision 1.1 and 1.2 | |||
Revision 1.1 | uid200 | 1999/04/02 13:10:04 | None |
Initial revision | |||
First version | |||
Revision 1.1.1.1 | uid200 | 1999/04/02 13:10:04 | +0 -0 |
First CVS revsion: crossfire-0.95.3 | |||
Show difference between Revision 1.1 and 1.1.1.1 | |||
Revision 1.20.2.1 | mwedel | 2001/05/24 23:08:04 | +1 -6 |
doc/metaserver, doc/Makefile.in: Add metaserver file which describes working of metaserver and format of data fields. socket/metaserver.c: Add reporting of inbytes, output bytes, and uptime in seconds to notification of metaserver server/spell_util.c: Fix typo in polymorph code (when enabled in config.h) server/disease.c: replace disease->owner check with get_owner. MSW 2001-05-24 | |||
Show difference between Revision 1.20 and 1.20.2.1 |