Protocol: | pserver | User: | anonymous |
Machine: | crossfire.cvs.sourceforge.net | CVSROOT: | /cvsroot/crossfire |
Filename: c_object.c | |||
Revision 1.89 | qal21 | 2006/09/09 19:04:35 | +7 -9 |
Use is_in_shop() to check if it's in a a shop. | |||
Show difference between Revision 1.88 and 1.89 | |||
Revision 1.88 | qal21 | 2006/09/09 15:31:31 | +8 -7 |
Make drop_object return a pointer to the dropped object, NULL otherwise. | |||
Show difference between Revision 1.87 and 1.88 | |||
Revision 1.87 | gros | 2006/08/12 13:59:59 | +3 -3 |
Fixed the Burial Ground so the clues cannot be destroyed or removed. Added a couple of details on the gravestones to make them a little more, hum, alive :). Fixed a mistake in the code of examine that didn't properly detect the @match directives. This is a fix for bug #1539227 - may it Rest In Peace. gros, 2006-08-12 | |||
Show difference between Revision 1.86 and 1.87 | |||
Revision 1.86 | gros | 2006/08/12 07:23:30 | +53 -40 |
Modified command_take so it is less noisy about no_pick items when doing a "get all" request. This is a fix for bug #1539122. gros, 2006-08-12 | |||
Show difference between Revision 1.85 and 1.86 | |||
Revision 1.85 | gros | 2006/08/12 07:00:31 | +24 -14 |
Modified command_drop so it is less noisy about locked items when doing a "drop all" request. This is a fix for bug #1539121. gros, 2006-08-12 | |||
Show difference between Revision 1.84 and 1.85 | |||
Revision 1.84 | ryo_saeba | 2006/07/29 03:39:29 | +12 -9 |
Fix bug #1529969 (shop floor not working in random maps) | |||
Show difference between Revision 1.83 and 1.84 | |||
Revision 1.83 | tchize | 2006/07/02 10:32:35 | +2 -2 |
more progress in unit testing, marked points of interrest in code | |||
Show difference between Revision 1.82 and 1.83 | |||
Revision 1.82 | akirschbaum | 2006/06/02 03:19:35 | +26 -9 |
Do not merge renamed items with differing custom names. | |||
Show difference between Revision 1.81 and 1.82 | |||
Revision 1.81 | akirschbaum | 2006/05/21 14:58:17 | +2 -2 |
Simplify expression. | |||
Show difference between Revision 1.80 and 1.81 | |||
Revision 1.80 | akirschbaum | 2006/05/21 14:56:29 | +2 -2 |
Fix typo in comment. | |||
Show difference between Revision 1.79 and 1.80 | |||
Revision 1.79 | ryo_saeba | 2006/05/05 04:47:40 | +10 -19 |
Third and last part of patch #1453869 courtesy Stefan Huehner (shuehner) | |||
Show difference between Revision 1.78 and 1.79 | |||
Revision 1.78 | ryo_saeba | 2006/03/14 09:25:24 | +20 -27 |
Merge 2 functions which are the same | |||
Show difference between Revision 1.77 and 1.78 | |||
Revision 1.77 | mwedel | 2006/02/07 01:54:46 | +56 -41 |
Code that adds transports. Transports are described more in detail in docs/Developers/objects. --- loader.l: Add new move type ('boat'). Update move_name field to be aware of this type. common/object.c: Unrelated to transport, but more apparant with transports - fix bug with insert_ob_in_map() and multipart objects - we now only try to fix up map and coordinates if the provided coordinates are out of the map. Before, function would always use the passed map for multipart objects, which is incorrect if we have already set valid coordinates. doc/Developers/objects: Update notes for TRANSPORTS. Update move information to include MOVE_BOAT. include/define.h: Add type TRANSPORT. Add MOVE_BOAT. include/player.h: Add transport field to player structure. include/sproto.h: rebuilt. server/apply.c: Add code to handle applying of transports. Update apply_below to apply transport if player is on one. server/attack.c: Update hit_map() to look for transports, and hit any players with the damage. server/c_object.c: Update put_object_in_sack() to also handle TRANSPORTS so that code can be re-used. server/move.c: Fix handling of multipart objects in move_object() - old code didn't work right with multipart objects moving along seams of tiled maps. Add code to move_ob() to update player map position for all players in a moving transport. server/player.c: Update move_player_attack() too check of player is in tranport, and use that for map and location information. Update move_player() to handle speed related issues with transports. server/time.c: Add code to credit time back to TRANSPORT objects since we remove time in move_player() for TRANSPORTS. socket/item.c: Add add_object_to_socklist() so that same code isn't reproduced in 3 different places in the file. Update draw_look() to handle transports - send transport object itself, then objects in transport. Update esrv_send_inventory() and esrv_send_item() to use add_object_to_socklist(). Update esrv_get_ob_from_count() to look for objects in transport if player is in transport. socket/loop.c: Remove checking of pl->map status, since draw_client_map() does that, and we need to handle if the player is in a transport. socket/request.c: Handle map drawing if player is in a transport. MSW 2006-02-06 | |||
Show difference between Revision 1.76 and 1.77 | |||
Revision 1.76 | cavesomething | 2006/01/11 10:28:00 | +2 -3 |
stop rename crashing if there is no name to rename to when object is passed by number. | |||
Show difference between Revision 1.75 and 1.76 | |||
Revision 1.75 | cavesomething | 2006/01/10 20:03:29 | +13 -4 |
allow rename command to use item tag instead of name | |||
Show difference between Revision 1.74 and 1.75 | |||
Revision 1.74 | mwedel | 2005/11/16 02:16:08 | +3 -3 |
Commit for new blocking code. Not going to dictate all the changes - but will outline the broad points. Note also that the doc/Developers/objects is updated and goes into more details also. - check for P_WALL no longer used - instead, need to use GET_MAP_MOVE_BLCOK and check against movement type of objects. - arch_blocked() changed to ob_blocked(), now takes object. Needed because just looking at archetype move_ values is no longer sufficient. - find_first_free_spot() changed to take object, since it just calls arch_blocked() - FLAG_FLYING removed, now in move type. - walk_on/walk_off/fly_on/fly_off removed - now based on move_on and move_off fields. - Map space structure extended to hold the move_on/move_off, etc values so that we can shortcut some processing by not having to check every object on the space when something enters it if move_on isn't set. - archetypes recollected - boulders needed move_walk to properly trigger buttons. - Note that the new plugin code has to be fixed up for the new movement code. Look for FIXME in plugins/cfpython/cfpython_object.c MSW 2005-11-15 | |||
Show difference between Revision 1.73 and 1.74 | |||
Revision 1.73 | ryo_saeba | 2005/11/12 07:49:07 | +5 -3 |
Patch 1352485 (newpickup rings/amulets) courtesy anonymous | |||
Show difference between Revision 1.72 and 1.73 | |||
Revision 1.72 | akirschbaum | 2005/11/01 07:42:15 | +5 -3 |
Improve newpickup command: add new flag PU_NOT_CURSED to ignore cursed items. | |||
Show difference between Revision 1.71 and 1.72 | |||
Revision 1.71 | akirschbaum | 2005/10/28 14:08:53 | +3 -3 |
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.70 and 1.71 | |||
Revision 1.70 | gros | 2005/10/18 11:54:31 | +6 -30 |
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.69 and 1.70 | |||
Revision 1.69 | cavesomething | 2005/10/02 22:29:41 | +16 -9 |
add support for specialised shops | |||
Show difference between Revision 1.68 and 1.69 | |||
Revision 1.68 | ryo_saeba | 2005/10/01 11:36:35 | +3 -3 |
Clean some compilation warnings. | |||
Show difference between Revision 1.67 and 1.68 | |||
Revision 1.67 | ryo_saeba | 2005/09/25 04:47:23 | +2 -2 |
Fix some compilation warnings. | |||
Show difference between Revision 1.66 and 1.67 | |||
Revision 1.66 | akirschbaum | 2005/09/04 11:58:12 | +4 -4 |
common/{anim.c, image.c, los.c, map.c, porting.c, treasure.c}, include/define.h, random_maps/treasure.c, server/{apply.c, c_misc.c, c_object.c, c_wiz.c, commands.c, daemon.c, hiscore.c, init.c, login.c, player.c, plugins.c, resurrection.c, weather.c}, socket/{init.c, item.c, loop.c, lowlevel.c}: Use LOG() for error messages and debug output instead of stdout/stderr. Include filename in error messages. server/resurrection.c: Fix error message in read_player(). | |||
Show difference between Revision 1.65 and 1.66 | |||
Revision 1.65 | tchize | 2005/09/03 14:15:45 | +2 -1 |
Added glowing crystal charge/max charge information in description. See RFE #1241712 on sourceforge http://sourceforge.net/tracker/index.php?func=detail&aid=1241712&group_id=13833&atid=363833 | |||
Show difference between Revision 1.64 and 1.65 | |||
Revision 1.64 | ryo_saeba | 2005/08/12 08:46:34 | +5 -5 |
Fields changed from char* to const char*, cleanup. | |||
Show difference between Revision 1.63 and 1.64 | |||
Revision 1.63 | ryo_saeba | 2005/08/12 03:18:59 | +2 -2 |
Use const char* instead of char* when possible | |||
Show difference between Revision 1.62 and 1.63 | |||
Revision 1.62 | ryo_saeba | 2005/07/16 05:53:10 | +81 -90 |
Improve pickup command. | |||
Show difference between Revision 1.61 and 1.62 | |||
Revision 1.61 | ryo_saeba | 2005/03/13 09:13:11 | +3 -1 |
Apply patches #1119366 and #1161816 | |||
Show difference between Revision 1.60 and 1.61 | |||
Revision 1.60 | akirschbaum | 2005/02/20 14:43:15 | +2 -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.59 and 1.60 | |||
Revision 1.59 | ryo_saeba | 2004/09/12 07:52:11 | +3 -3 |
Various fixes for Win32, apply some tracker patches | |||
Show difference between Revision 1.58 and 1.59 | |||
Revision 1.58 | akirschbaum | 2004/06/13 12:30:38 | +7 -6 |
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. | |||
Show difference between Revision 1.57 and 1.58 | |||
Revision 1.57 | mwedel | 2004/04/26 00:07:52 | +44 -41 |
common/item.c, server/c_object.c: Fix code so that skill tools (talismans, holy symbols, etc) are properly describe. Clean up formatting of long_desc() MSW 2004-04-25 | |||
Show difference between Revision 1.56 and 1.57 | |||
Revision 1.56 | ryo_saeba | 2004/02/08 11:07:08 | +2 -1 |
Object weight limit, become fellower bug | |||
Show difference between Revision 1.55 and 1.56 | |||
Revision 1.55 | ryo_saeba | 2004/01/18 04:36:10 | +4 -1 |
Added map-building code. | |||
Show difference between Revision 1.54 and 1.55 | |||
Revision 1.54 | gros | 2003/10/27 03:48:34 | +3 -3 |
Corrected improperly assigned pointers when calling a plugin drop event. | |||
Show difference between Revision 1.53 and 1.54 | |||
Revision 1.53 | mwedel | 2003/10/02 02:13:24 | +25 -18 |
Clean up sack_can_hold. Same functionality, just prevent the buffers from overflowing, and quit processing once we know we can't succeed. MSW 2003-10-01 | |||
Show difference between Revision 1.52 and 1.53 | |||
Revision 1.52 | mwedel | 2003/09/13 00:02:08 | +57 -23 |
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.51 and 1.52 | |||
Revision 1.51 | tchize | 2003/09/03 08:42:19 | +148 -1 |
Allow renaming items for users. Thanks to Nicolas Weeger (Ryo) | |||
Show difference between Revision 1.50 and 1.51 | |||
Revision 1.50 | tchize | 2003/08/02 11:02:50 | +2 -2 |
Correct a bug in find_best_object_apply_match so now match is coherent with find_best_object_match patch according to what submitted by Nicolas Wegeer on cf-devel mailing on 1st of august 2003 with subject "[CF-Devel] Patch submission: apply item matching bug" | |||
Show difference between Revision 1.49 and 1.50 | |||
Revision 1.49 | gros | 2003/06/26 06:27:43 | +7 -6 |
Re-implemented the event hooks in objects as a dynamically linked list, instead of a static table. | |||
Show difference between Revision 1.48 and 1.49 | |||
Revision 1.48 | mwedel | 2003/04/02 02:13:26 | +22 -2 |
TODO: Various updates aclocal.m4,configure: Update path to find python (fix again) common/image.c: Minor update to a ocmment in the code. common/los.c: Add missing P_OUT_OF_MAP checks that resulted in some incorrect LOS calcuations. include/funcpoint.h: Remove draw_func function pointer. lib/Makefile.am, in: Remove bmaps.paths to from being installed or being part of distribution - bmaps.paths is only needed when collecting the image lib/*: Rebuilt server/c_object.c: Patch by Bernd Edler to have the apply functions take into acount if the item is equipped or not when looking for good matched items. server/commands.c: Move printlos to normal commands. I don't think it reveals any information that is in any way harmful. And since it dumps the output to the players screen, no concern of it filling up log files. Also, when doing LOS debugging, it is pointless to have it as a DM command because LOS is ignored for DM's. server/disease.c: Modify remove_symptoms to remove all symptoms the player may have a disease. Modify infect_object() to not allow a creature to have more than one instance of the same disease. socket/info.c: remove draw() - instead, draw_client_map() can be used, as that is most the only thing draw() did anyways. socket/loop.c: Update draw() calls to draw_client_map() socket/request.c: Remove special handling for darkness==4 cases (first space that is in full darkness) - this is extra complications and causes display problems. Update draw_client_map() to include the little bit of logic that draw() had that this function did not have. MSW 2003-04-01 | |||
Show difference between Revision 1.47 and 1.48 | |||
Revision 1.47 | mwedel | 2003/02/25 01:18:07 | +2 -2 |
*/Makefile.in, related files: Updated for 1.5.0 server/attack.c: Don't change weak wall image if no damage was actually done. server/c_object.c: Include math.h - needed for pow() server/spell_effect.c: fix infinite loop in town_portal MSW 2003-02-24 | |||
Show difference between Revision 1.46 and 1.47 | |||
Revision 1.46 | garbled | 2003/02/13 23:50:37 | +313 -4 |
Lots of updates here: common/item.c: make item_power stop showing up in ring short descriptions. fix some of the items that were double-displaying materialnames, like mithril mithril chainmail. common/loader.l: add tooltype common/utils.c: Unless the object is armour or weapons, pick the first materialname we find. Now, newly generated diamonds will stack. Fix name_to_material to return NULL if it finds nothing, fixes navar_city/museum crash. Change set_materialname to take a materialtype_t argument, allowing functions to manually set the materialname, rather than let the randomizer pick for them. include/define.h: Add TOOL and BUILDFAC for item building. include/object.h: add tooltype for item building. include/materials.h: add M_SPECIAL. Set this in an object, to prevent things like mithril mithril chainmail. This is primarily only needed in artifacts, because they change the base material of the arch. Also useful in things like the demonspawn shield, and on maps. lib/artifacts: sprinkle M_SPECIAL around. server/player.c: remove auto_heal. This never should have been committed, and was never referenced by any code. server/c_object.c: add item building, but add it disabled. Too many bugfixes were tied in with this code to cleanly add them. When enabled, this code will add player item building, similar to create to take place. Requires a host of graphics and arches to be useable. | |||
Show difference between Revision 1.45 and 1.46 | |||
Revision 1.45 | garbled | 2003/01/29 18:07:09 | +4 -10 |
New materialtype system for crossfire. Based in concept on my original design, but rewritten from scratch to make it easily extensible. In a nutshell: Each of the old materialtypes (metal, glass, stone, wood) are now a class of materials. When an item in the game is created, if it does not have a specific materialname of it's own, a materialname is generated randomly from the matching entries in the "lib/materials" file. This file contains all of the saving throws, and other material specific modifications for each of the expanded materials. Materials can be manually specified in the arch with the "materialname" directive. Such as the gold coins, which are specified to be made of, you guessed it, gold. Saving throws have been slightly rewritten to use the new materialtypes, and a few other minor details associated with materialtypes have been patched up. Adding a new type of stone or wood, is as simple as adding a new entry in the lib/materials file. The game will automatically start distributing them around randomly. | |||
Show difference between Revision 1.44 and 1.45 | |||
Revision 1.44 | mwedel | 2003/01/27 01:34:34 | +3 -3 |
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.43 and 1.44 | |||
Revision 1.43 | mwedel | 2002/12/03 01:40:17 | +2 -2 |
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.42 and 1.43 | |||
Revision 1.42 | mwedel | 2002/11/30 21:46:25 | +11 -5 |
common/object.c, include/object.h: Add INS_BELOW_ORIGINATOR flag to insert_ob_in_map - this is used for treasure chests so the treasure is put below the player. Also fix insertiong of items on spaces that block view - put them in proper order, and not just directly above the floor server/apply.c: Tell player what level they need to be if they are not of sufficient level to improve armor. Modify apply_treasure to use INS_BELOW_ORIGINATOR flag, clean up some of the other logic in apply_treasure. server/c_object.c: Modify command_take to use the container inventory when doing a pickup, and not the container itself. MSW 2002-11-30 | |||
Show difference between Revision 1.41 and 1.42 | |||
Revision 1.41 | 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.40 and 1.41 | |||
Revision 1.40 | garbled | 2002/11/12 22:57:32 | +2 -7 |
#ifdef REAL_WIZ -> settings.real_wiz #ifdef RECYCLE_TMP_MAPS -> settings.recycle_tmp_maps Even found a cute bug while fixing up real_wiz. | |||
Show difference between Revision 1.39 and 1.40 | |||
Revision 1.39 | garbled | 2002/11/12 17:20:11 | +7 -4 |
#ifdef SEARCH_ITEMS -> settings.search_items | |||
Show difference between Revision 1.38 and 1.39 | |||
Revision 1.38 | mwedel | 2002/09/11 01:21:46 | +12 -2 |
INSTALL: Update directions with new automake method. common/Makefile.am, common/Makefile.in: Fix code for building the libproto.h file - it was including loader.l and not loader.c common/exp.c: Add init_experience() and dump_experience() functions - init_experience() loads the experience table from a file. Add default experience table into this file common/init.c: Add call to init_experience() common/living.c: Remove experience tables - players can select the one they want by changing the exp_table file. Remove reference to new_levels[] - only levels[] is used now for the formentioned reason. include/config.h: Update notes about SIMPLE_EXP system. include/libproto.h: rebuilt. lib/Makefile.am, lib/Makefile.in: Add exp_table to list of files. lib/exp_table: New file that contains experience information. server/c_object.c: Modify command_take() to look for objects above the player to pick up, then objects below. This fixes the bug with not being able to use the take command on items from a chest the player opens without moving off the space. server/init.c: Add -mexp dump switch to dump the experience table. Allow the simple experience system to be set in the settings file. server/skill_util.c: Fix oddness in calc_skill_exp() which could result in add amounts of exp given. MSW 2002-09-10 | |||
Show difference between Revision 1.37 and 1.38 | |||
Revision 1.37 | jbontje | 2002/08/22 07:37:55 | +8 -1 |
Pickups: added pickups for spellbooks,skillscrols,normal book/scroll. Patch created by Aprogas mids 2002/08/22 | |||
Show difference between Revision 1.36 and 1.37 | |||
Revision 1.36 | mwedel | 2002/07/14 23:57:13 | +25 -22 |
-- 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.35 and 1.36 | |||
Revision 1.35 | mwedel | 2002/04/21 00:23:20 | +9 -13 |
Various minor bugfixes. Note the changes may appear larger than they really are due to formatting/indentation changes. Run diff -w to supress those: make_win32/installwin32.bat: Update for new image files. server/c_object.c: Fix SAVE_INTERVAL #ifdef block. It failed to compile as it was written. Simplify code, but it should have the same effect. server/move.c: Modify push_object so that if a player swaps position with his pet, we send a esrv_map_scroll. This should save bandwidth, and also prevents display corruption when fog of war on the client is in use. Add some new comments, adjust some formatting. server/player.c: Fix minor typo in comment. server/skills.c: Modify new_draw_info that is responsible for the "You pray" messages to not have the NDI_UNIQUE flag so that they can get batched up, depending on users value of output-count server/swap.c: Remove swapped out per player unique maps from the list of maps. Reduces cpu and memory consumption by a minor amount, and results in a cleaner 'maps command output. server/weather.c: Add standard crossfire banner to top of file. Modify long long declartion to just be a long. MSW 2002-04-20 | |||
Show difference between Revision 1.34 and 1.35 | |||
Revision 1.34 | mwedel | 2002/03/20 00:27:46 | +5 -3 |
Updates for 1.1.0 release - pretty much all minor bug fixes, like compiler warning messages, invalid ANSI C constructs, missing files to include in the distribution. Makefile.in, include/version.h: update version. include/Makefile.in: Add some missing files include/libproto.h, sproto.h: rebuilt to prevent compiler warnings lib/Makefile.in: Include the wizhelp files in the archive. server/apply.c, server/skill_util.c: fix invalid code (function parameter names can't match structs/typedefs), add a missing return value. server/c_move.c, server/c_new.c, server/c_object.c, server/commands.c, server/daemon.c: Don't include the sproto.h if CEXTRACT is defined. server/plugins.c: fix printf command that was printing wrong value type. doc/spoiler-html/Makefile.in: Remove extraneous newline | |||
Show difference between Revision 1.33 and 1.34 | |||
Revision 1.33 | avogl | 2002/03/03 14:05:58 | +2 -2 |
two fixes to my dragon-race code: - fixed stringcompares wich caused crashed with players that have race NULL. - forgot to commit "server/init.c" before, which resulted in function dragon_ability_gain() not to get bound, thus missing dragon ability gains. | |||
Show difference between Revision 1.32 and 1.33 | |||
Revision 1.32 | avogl | 2002/03/01 15:33:11 | +10 -2 |
As announced on cf-devel, this is the patch which adds a new dragon-race to Crossfire. Players of this dragon race can gain resistances by eating the flesh of their defeated foes. They can also specify in a certain resistance-type and gain various abilities when increasing levels. This "focus" can be switched by eating very special As announced on cf-devel, this is the patch which adds a new dragon-race to Crossfire. Players of this dragon race can gain resistances by eating the flesh of their defeated foes. They can also specify in a certain resistance-type and gain various abilities when increasing levels. This "focus" can be switched by eating very special flesh, which will be available for sale. Dragon players gain special titles which cannot be overwritten by manually set titles. Also see the dragon race description during the race selection process. Note that the quetzal has been slightly modified (picture and race) to prevent getting mixed up with the new dragon race. Please keep in mind that this is the first version of this dragon-race-code. Do not expect it to be perfectly balanced in all aspects. Player's opinions will provide some good feedback for further development I hope. --AndreasV | |||
Show difference between Revision 1.31 and 1.32 | |||
Revision 1.31 | gros | 2001/11/11 03:39:54 | +10 -5 |
Some bugfixes, new timer system, support for custom plugins commands, new plugin hooks - Gros 11/11/01 | |||
Show difference between Revision 1.30 and 1.31 | |||
Revision 1.30 | gros | 2001/10/14 02:57:14 | +25 -12 |
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/09/03 01:44:55 | +2 -2 |
This checkin mainly fixes multipart teleporters - they should now work properly. Also a minor fix to make the new pickup code work. server/apply.c: apply_shop_mat rewritten to be more 'presentable'. Minor changes were needed in any case to pass the player/creature a a second object to teleport. server/c_object.c: change the sscanf to be unsigned when getting value for new pickup mode. At least on my system, if the value in the string was larger than the max signed value, sscanf set it to the max value. server/move.c: teleport function largely re-written. Instead of the third arg being the 'originator', it is now the object to teleport. This allows the head of the teleporter to get passed to this function even if the object to teleport is not on the head. server/time.c: move_teleporter modified to also check for objects on the other parts of multipart teleporters. Also, pass the head object to the teleport function so that proper destination is used. MSW 2001-09-02 | |||
Show difference between Revision 1.28 and 1.29 | |||
Revision 1.28 | mwedel | 2001/08/29 02:14:16 | +93 -7 |
include/define.h: Pickup type defines added. include/player.h: Change mode (pickup mode) to 32 bits. server/c_object.c: command_pickup function modified to support all the new pickup options. server/player.c: Fix for path_to_player to prevent crashes. Add check in move_player_attack just in case. check_pick function modified to support new pickup options. do_some_living modified to eat flesh items if player is starving and they don't have any food. server/spell_effect.c: cast_detection modified so that detect magic/curse will not show objects beneath the floor. Change so that detect_monster and detect_evil spells copy the face of what they detected - gives better appearance on client. socket/item.c: fix bug LookAt that ws checking blocked_los on wrong offset. MSW 2001-08-28 | |||
Show difference between Revision 1.27 and 1.28 | |||
Revision 1.27 | mwedel | 2001/07/13 23:11:18 | +4 -8 |
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 | 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.25 and 1.26 | |||
Revision 1.25 | michtoen | 2001/06/13 05:51:31 | +74 -117 |
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.24 and 1.25 | |||
Revision 1.24 | darth_bob | 2001/05/14 06:42:07 | +3 -3 |
Obvious mistake where by things for sale print out 'The It would cost you 168 platinum coins.' I welcome someone with alittle time to actually check all these, unfortunetly my time is short =(, dnh 14/05/01 | |||
Show difference between Revision 1.23 and 1.24 | |||
Revision 1.23 | darth_bob | 2001/05/09 04:39:56 | +16 -16 |
Okay commit this time please =), dnh | |||
Show difference between Revision 1.22 and 1.23 | |||
Revision 1.22 | mwedel | 2001/05/09 00:16:50 | +5 -7 |
Modify inventory function to call new_draw_info_format directly instead of using temp buf. May fix buffer overrun issue. MSW 2001-05-08 | |||
Show difference between Revision 1.21 and 1.22 | |||
Revision 1.21 | mwedel | 2001/04/23 01:23:32 | +2 -2 |
server/c_object.c: Pass right object to query_cost_string so that if you pick up an unpaid object into a container, it generates the correct price. MSW 2001-04-22 | |||
Show difference between Revision 1.20 and 1.21 | |||
Revision 1.20 | mwedel | 2001/04/07 21:59:06 | +4 -2 |
server/c_object.c: Fix bug in pick_up where it was not using the right count for picking up objects if the player did not specify one. This allowed players to put objects into containers that should not really fit. MSW 2001-04-07 | |||
Show difference between Revision 1.19 and 1.20 | |||
Revision 1.19 | mwedel | 2001/04/06 00:25:26 | +2 -2 |
server/c_object.c: modify examine so that it properly shows info about magic bullet spell books. MSW 2001-04-05 | |||
Show difference between Revision 1.18 and 1.19 | |||
Revision 1.18 | mwedel | 2001/04/02 00:55:36 | +6 -3 |
server/c_object: Modify examine command to only be able to examine valid objects, and not whatever is on top of the space, which may be insivisible. MSW 2001-04-01 | |||
Show difference between Revision 1.17 and 1.18 | |||
Revision 1.17 | mwedel | 2001/03/23 01:42:40 | +6 -2 |
server/c_object.c: drop_object function: send delete item to client as item is dropped. This fixes a problem of phantom objects in the inventory. Unrelated change to not call esrv_send_item for objects that are dropped - esrv_draw_look will get called later on and will update this at that time. MSW 2001/03/16 | |||
Show difference between Revision 1.16 and 1.17 | |||
Revision 1.16 | mwedel | 2001/03/22 00:45:05 | +4 -4 |
server/c_object.c: Update the return value for some matches - they function was returning immediately when it got a match, but did not give them a high match value, so searching for 'key ring' used to return a match value of 6 or so on the key ring, but a 14 on a key. | |||
Show difference between Revision 1.15 and 1.16 | |||
Revision 1.15 | cvs | 2000/12/18 01:38:25 | +333 -1 |
MSW 2000/12/17: Various changes. Note that the scope of files in this checkin make it appear that a lot was changed, but in fact it was mostly just re-orginization - very little code has actually changed. include/autoconf.h.in: Add HAVE_LIBDES to file. include/config.h: Remove comments after defines for MAP_MIN/MAX timeouts. This just removes some warnings during compile. comments are now on lines by themselves. include/player.h: remove shootstrength for player structure. It was unused. server/Makefile.in: remove input.c file, add c_range.c file. server/c_chat.c: remove command_last, add command_shout and command_tell from input.c to this file. Also fix bug in command tell which would let players crash server at will. server/c_misc.c,server/c_object.c: Relocate many functions from input.c into these files. server/c_move.c, server/c_new.c: Add standard crossfire banner comment. server/c_range.c: New file - contains range related commands, including spell casting (relocated from input.c) server/c_wiz.c: move command_invisible from input.c into this file. server/commands.c: Remove unused commands (bell, last, strength) server/input.c: removed file. server/main.c: Change HAVE_DES_H to HAVE_LIBDES server/player.c: When choosing a race, draw it facing south for best presentation of image. server/spell_util.c: Remove dead code (#if 0 shootstrength related code) socket/loop.c: remove unused variables. NOTE: Due to the addition/removal of files, you will need to do 'config.status; make depend; make' from the top level directory for everything to be compiled properly. End of MSW 2000/12/17 checkin. | |||
Show difference between Revision 1.14 and 1.15 | |||
Revision 1.14 | cvs | 2000/12/03 18:40:05 | +3 -3 |
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.13 and 1.14 | |||
Revision 1.13 | jec | 2000/11/06 17:06:47 | +75 -42 |
* stop_item() / attack fix patch 2000-11-06 | |||
Show difference between Revision 1.12 and 1.13 | |||
Revision 1.12 | cvs | 2000/11/02 23:42:56 | +5 -2 |
server/c_object.c, socket/item.c: Fixed for long item support. pick_up_object in c_object was overwriting a fixed length string, causing server crashes. item.c was not properly terminating plural version of object name, resulting in corrupt packets being sent to the client. MSW 11/2/2000 | |||
Show difference between Revision 1.11 and 1.12 | |||
Revision 1.11 | avogl | 2000/10/22 09:27:39 | +9 -1 |
Startequip items could be put into containers and transferred to other players that way. This is now fixed. --AndreasV | |||
Show difference between Revision 1.10 and 1.11 | |||
Revision 1.10 | cvs | 2000/08/07 00:16:34 | +8 -4 |
The following change basically does the following: When the server sends an item name to the client, this item name is now two pieces - the first piece of the name is its singular form, the second piece is the plural name. This now makes items in the inventory appear more proper in terms of pluralization and just normal English. I did notice that the server does not know how to properly make 'torch' plural - it turns it into torchs. A matching check in for the client has also been done. include/newserver.h: Update VERSION_SC to 1024 common/item.c: Change query_base_name to take a second option on whether we should generate a plural version of the name or not. socket/item.c: Modify functions to use second argument on the query_base_name function. Update item commands to send two part names (singular & plural). Modify esrv_send_look to use item1 protocol command instead of item command. server/c_object.c: Update item_matched_string to use second option to query_base_name. Modify function to check against both singular and plural versions of name. server/shop.c: Modify shop_listing command usage in query_basename to use second option. It will also generate the singular name, but that is only used on sorting, so I don't think it will generally cause any problems. include/libproto.h: rebuilt because query_base_name has an addition opt. Mark Wedel 8/13/2000 | |||
Show difference between Revision 1.9 and 1.10 | |||
Revision 1.9 | cvs | 2000/06/27 23:53:58 | +2 -2 |
server/c_object.c: Fix command_drop which was doing incorrect check for invisible object - it was supposed to skip over them and only do visible objects, instead it was doing the reverse. Fixes the 'drop command. MSW 6/27/2000 server/input.c: Make the inventory command more robust for very long object names - specify a maximum number of characters we will take from the name. Without this, you could get buffer overruns that cause crashes. No normally generated items would ever likely have names long enough to exploit this bug however. MSW 6/27/2000 | |||
Show difference between Revision 1.8 and 1.9 | |||
Revision 1.8 | jec | 2000/06/21 04:34:56 | +1 -29 |
server/commands.c; server/c_object.c: dump_object_from_tag(): Removed broken command. Fixes server crashes very easily triggered by players. server/attack.c: deathstrike_player(): Check for def_lev == 0 very early (and print error message if we find such an invalid level). Should fix server crash in case archetypes or maps get broken again in that an alive object has level < 1. | |||
Show difference between Revision 1.7 and 1.8 | |||
Revision 1.7 | jec | 2000/06/09 07:01:47 | +6 -16 |
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 | jec | 2000/06/08 11:08:41 | +13 -8 |
common/button.c: do_mood_floor(): Bugfixes: Only players can have pets. Call add_friendly_object() for friendly monsters. server/spell_effect.c and server/spell_util.c: Several functions: Only add a pet if there really is a pet's owner, and it's a player. server/spell_effect.c: cast_charm() and cast_charm_undead(): Bugfixes: Only players can cast these spells. This fixes server crash if a monster casted a charm spell, and the charmed pet was killed. Call add_friendly_object for friendly monsters. common/friend.c: remove_friendly_object(): Use llevError for error messages. common/living.c: fix_player(); server/gods.c: tailor_god_spell(); server/spell_effect.c: summon_avatar() and animate_weapon(): Bugfix: Set a string to NULL after calling free_string(). This fixes a nasty bug that caused the string's reference count drop below 0, which resulted in corruption of malloc()'s internal data structures (and possibly server crashes). server/time.c: move_creator(): Bugfix: Call free_string() to free old values of op->name and op->title before overwriting them with new values. common/object.c: insert_ob_in_map_simple() and insert_ob_in_map(): Check that we don't insert freed objects. server/attack.c: hit_player_attacktype() and hit_player(): Bugfix: Check that find_god() really found a god, and that 'god->slaying' is not NULL. Fixes crash if a monster casted turn undead and actually hit something. server/attack.c: hit_player(): Check that a pet's owner is a player. Prevents server crashes if a monster has a pet monster due to a bug somewhere. Use llevError for error message. server/time.c: move_arrow(): Use llevDebug level for "Arrow had no map" message. server/c_object.c, server/spell_effect.c, server/spell_util.c: Bugfixes: Added some missing checks for destroyed objects. Use was_destroyed() or return value of insert_ob_in_map() to check for destroyed objects, not FLAG_FREED or FLAG_REMOVED. Don't use op->count of destroyed objects. server/shop.c: get_payment2(): Type of tag is 'tag_t', not 'long'. server/spell_effect.c: animate_bomb(): Fix environment checks. server/spell_util.c: fire_bolt(): Bugfix: Set level of bolt. server/spell_util.c: explosion(): Bugfix: Set FLAG_NO_APPLY before moving the exploding object to the top. server/spell_util.c: put_a_monster(): First create the monster completely, then just insert its head. server/time.c: generate_monster(): Bugfix: Don't free generators that are used up in this function. process_object() already does this. This fixes steambolt (which is a generator but must not used up here - generate_monster() wasn't looking at FLAG_IS_USED_UP) and all generators which should really be used up (because process_object() didn't expect generate_monster() to destroy the object). | |||
Show difference between Revision 1.5 and 1.6 | |||
Revision 1.5 | jec | 2000/05/26 04:50:49 | +6 -31 |
* apply() cleanup patch 26/5/2000 | |||
Show difference between Revision 1.4 and 1.5 | |||
Revision 1.4 | cvs | 2000/03/22 01:32:21 | +37 -7 |
server/c_object.c: Fix pick_up_object function to deal with non players picking up objects - prior to fix, program would crash when monsters pick up objects. Also, add standard banner at top of file about copyright, contact, version information. msw 3/21/2000 | |||
Show difference between Revision 1.3 and 1.4 | |||
Revision 1.3 | damn | 1999/09/17 18:54:55 | +12 -13 |
Minor bugfix / cleanup -- DAMN | |||
Show difference between Revision 1.2 and 1.3 | |||
Revision 1.2 | cvs | 1999/06/13 00:24:24 | +6 -0 |
Fix so that when picking up objects from a container, the client gets an update to remove the object display from the container (ie, if you pick up all the gold coins from a container, the total in the players inventory always got corrected, but the client still displayed some in the container even if there should not be.) The change is in c_object.c - msw | |||
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 |