Protocol: | pserver | User: | anonymous |
Machine: | crossfire.cvs.sourceforge.net | CVSROOT: | /cvsroot/crossfire |
Filename: living.c | |||
Revision 1.79 | ryo_saeba | 2006/08/26 12:56:19 | +1 -8 |
Remove obsolete event system. | |||
Show difference between Revision 1.78 and 1.79 | |||
Revision 1.78 | tchize | 2006/04/06 16:18:34 | +9 -3 |
finished common/arch.c unit test, fixed a few bugs, moved function around and renamed other | |||
Show difference between Revision 1.77 and 1.78 | |||
Revision 1.77 | cavesomething | 2006/03/07 12:46:23 | +23 -20 |
Add settings permanent_experience_percentage, death_penalty_percentage and death_penalty_levels to the settings file. --- common/living.c: don't hardcode exp calculations common/init.c, include/config.h, lib/settings: set defaults for new values doc/settings: document new values include/global.h: change settings struct to hold the new values server/init.c: parse new values in the settings file. server/skill_util.c: reference new value | |||
Show difference between Revision 1.76 and 1.77 | |||
Revision 1.76 | akirschbaum | 2006/02/08 18:48:36 | +7 -7 |
Apply patch #1427979 (code-cleanup: add const, fix warnings) by Stefan Huehner. | |||
Show difference between Revision 1.75 and 1.76 | |||
Revision 1.75 | cavesomething | 2006/01/09 13:35:10 | +8 -3 |
spell listing support | |||
Show difference between Revision 1.74 and 1.75 | |||
Revision 1.74 | mwedel | 2005/11/16 02:16:00 | +215 -222 |
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 | akirschbaum | 2005/08/15 17:40:14 | +27 -23 |
common/living.c, include/living.h: Make global arrays really const. | |||
Show difference between Revision 1.72 and 1.73 | |||
Revision 1.72 | ryo_saeba | 2005/08/12 08:46:34 | +8 -8 |
Fields changed from char* to const char*, cleanup. | |||
Show difference between Revision 1.71 and 1.72 | |||
Revision 1.71 | ryo_saeba | 2005/08/10 08:38:31 | +2 -2 |
Use ARCH_DEPLETION instead of depletion. | |||
Show difference between Revision 1.70 and 1.71 | |||
Revision 1.70 | ryo_saeba | 2005/07/15 08:51:48 | +47 -47 |
Glue cleaning. New plugin function. | |||
Show difference between Revision 1.69 and 1.70 | |||
Revision 1.69 | akirschbaum | 2005/06/14 13:51:29 | +2 -2 |
common/living.c: Print correct message when (un-)wearing items with negative luck. | |||
Show difference between Revision 1.68 and 1.69 | |||
Revision 1.68 | ryo_saeba | 2005/05/03 13:31:05 | +5 -5 |
Use const char* instead of char* when possible | |||
Show difference between Revision 1.67 and 1.68 | |||
Revision 1.67 | akirschbaum | 2005/03/22 15:44:43 | +12 -9 |
common/living.c: Allow luck to drop back to zero. Limit bad luck object to +/-100 to prevent overflows. | |||
Show difference between Revision 1.66 and 1.67 | |||
Revision 1.66 | akirschbaum | 2005/03/20 10:32:55 | +6 -3 |
common/living.c: When randomly adjusting luck, change both op->stats.luck and the applied bad_luck object. | |||
Show difference between Revision 1.65 and 1.66 | |||
Revision 1.65 | akirschbaum | 2005/03/06 13:05:24 | +2 -2 |
common/living.c, include/living.h: Change type of weight_limit to uint32. socket/request.c: Remove non-portable assignment to rvalue. | |||
Show difference between Revision 1.64 and 1.65 | |||
Revision 1.64 | mwedel | 2004/10/15 02:09:35 | +6 -5 |
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.63 and 1.64 | |||
Revision 1.63 | mwedel | 2004/04/10 02:27:56 | +11 -10 |
common/living.c: Patch by Bernd Edler to remove cap on exp for players. MSW 2004-04-09 | |||
Show difference between Revision 1.62 and 1.63 | |||
Revision 1.62 | mwedel | 2004/04/06 02:05:06 | +40 -31 |
common/potion.c: Fix up change_abil() to more properly deal with potions - characters could get 0 stat values. Also, messages were not being properly displayed. Patch is slightly modified from one sent in by Bernd Edler. MSW 2004-04-05 | |||
Show difference between Revision 1.61 and 1.62 | |||
Revision 1.61 | ryo_saeba | 2004/03/26 15:59:26 | +7 -3 |
Win32 fixes | |||
Show difference between Revision 1.60 and 1.61 | |||
Revision 1.60 | ryo_saeba | 2004/02/27 17:00:26 | +4 -4 |
Some warnings cleaning. | |||
Show difference between Revision 1.59 and 1.60 | |||
Revision 1.59 | mwedel | 2004/02/24 00:00:24 | +5 -1 |
common/living.c: Have give_skill_by_name() update the skill pointers in the player object. MSW 2004-02-23 | |||
Show difference between Revision 1.58 and 1.59 | |||
Revision 1.58 | mwedel | 2003/12/28 00:06:00 | +40 -37 |
common/living.c: fix fix_player() so that character gets benefits/penalties for sp/hp/grace/etc regen bonuses as related to the god they worship. server/player.c: dragon_ability_gain(): Modify so that character now gets attacktype of new ability that they gain. Also, add code so that the characters face/animation can change (getting set to values the bonus ability). MSW 2003-12-27 | |||
Show difference between Revision 1.57 and 1.58 | |||
Revision 1.57 | mwedel | 2003/11/09 23:39:50 | +15 -15 |
bulk of this is to fix exp loss when changing gods if you have more than 2 billion exp, removal of spells when you switch levels, and not giving you all new spells when you switch religions. -- common/living.c: Update exp functions to be fully 64 bit aware. Don't take away from player total exp if SK_SUBTRACT_SKILL_EXP is passed in. common/utils.c: Add 64 bit version of random_roll(), called random_roll64() lib/treasures: Make indentation consistent for some treasures. server/apply.c: Use the FLAG_STARTEQUIP to denote god given spells, instead of using special prayer markers. This simplifies the spell learning and removal code. server/gods.c: Make exp loss for changing religions 64 bit compliant. Fix become_follower() so that it doesn't give all the new gods special spells if you switch religions. Fix code so that it properly removes all special prayers from previous god, and also print out message on what spells you lost. Don't set the prayer skill as applied in various areas - this results in two skills being applied, which isn't proper. MSW 2003-11-09 | |||
Show difference between Revision 1.56 and 1.57 | |||
Revision 1.56 | ryo_saeba | 2003/11/07 13:54:49 | +4 -4 |
Fixed newline issue with previous commit. | |||
Show difference between Revision 1.55 and 1.56 | |||
Revision 1.55 | ryo_saeba | 2003/11/07 13:01:29 | +6 -3 |
Improved 'tell' command. Fix Win32-Python issues. Fix Win32 compilation issue. | |||
Show difference between Revision 1.54 and 1.55 | |||
Revision 1.54 | mwedel | 2003/10/27 01:24:13 | +37 -27 |
Various bug fixes: common/arch.c: Fix item_matched_string() so that it only passes in the length of the pssed in name in the strncasecmp(), and not the shorter of the passed in string or item name. Otherwise, if player does a 'drop wand of', unidentified wands (name just wand) would match. Similarly, if a player did 'drop ringmail', unidentified rings would match, etc. common/living.c: Fix fix_player() to always process the praying skill with respect to resistances and whatnot. This is necessary because the god give abilities are put in this skill, and those shouldn't go away depending on if the skill is in use or not. Also fix bug in add_exp routines which wasn't multiplying permanent exp by PERM_EXP_GAIN_RATIO common/object.c: Fix find_obj_by_type_subtype() - had extraneous semicolon after the for loop, so the if code that was supposed to be for each object was never called and instead would crash as it would get called with tmp was null. server/attack.c: Fix problem with kill_object() not finding proper skill - it would use the skill object instead of the skill. Fix problem of poisoning not setting up proper skill name in poisoning object. server/c_range.c: If player is invoking a spell, don't update their range_magic value. server/skill_util.c: Fix divide by zero problem if improperly passed skill object. MSW 2003-10-26 | |||
Show difference between Revision 1.53 and 1.54 | |||
Revision 1.53 | mwedel | 2003/09/26 00:46:09 | +5 -5 |
common/living.c, include/libproto.h: Update some functions to take 64 bit int values for exp usage. MSW 2003-09-25 | |||
Show difference between Revision 1.52 and 1.53 | |||
Revision 1.52 | mwedel | 2003/09/15 01:12:48 | +4 -1 |
Fix same bugs as fixed in rel-1-5-0-patch. common/living.c, server/login.c: Fix crashes when dragon player inventory is completely wiped out. That in itself shouldn't happen, but we still shouldn't crash. Problem is missing skin and ability forces. MSW 2003-09-14 common/treasure.c Fix problem with the even structure not fully being initiliazed, resulting in crashes for artifacts that have events (eg, occidental mages item). MSW 2003-09-14 | |||
Show difference between Revision 1.51 and 1.52 | |||
Revision 1.51 | mwedel | 2003/09/13 00:01:27 | +300 -243 |
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.50 and 1.51 | |||
Revision 1.50 | gros | 2003/06/26 06:27:42 | +7 -5 |
Re-implemented the event hooks in objects as a dynamically linked list, instead of a static table. | |||
Show difference between Revision 1.49 and 1.50 | |||
Revision 1.49 | mwedel | 2003/03/08 18:44:11 | +2 -2 |
Update a few printf/sprintf to use %lld for 64 bit exp values. MSW 2003-03-08 | |||
Show difference between Revision 1.48 and 1.49 | |||
Revision 1.48 | mwedel | 2003/03/07 23:35:32 | +40 -15 |
Patch for 64 bit experience total, as well as flexible number of levels. Basically, max level is now dynamic, set in exp_table file. Experience is now a 64 bit value, so much higher totals now allowed. To allow for flexible levels, add new function - did_make_save() which is used for players/monsters to see if they make their saving throw - this is necessary because the savethrow[] array may not be as large as max level - did_make_save takes this into account. NOTE: If your updating a server, you will need to copy over/set up a new exp_table file that has max_levels defined and at least one of the tables uncommented. There are no longer any compiled in defaults -- configure, configure.ac: Add AC_CHECK_SIZEOF calls for long and long long so we can know which one to use for 64 bit support (other checks may need to be added) common/exp.c: Remove levels table, replace it with a 64 bit pointer. Change init_experience to allocate appropriately sized table, have it read max_level value from exp_table file. Replace atoi calls with atoll to get 64 bit value. Update dump_experience to properly print 64 bit values. common/info.c: Update dump routines that dump exp to properly print 64 bit values. common/init.c: Add initializing for settings.max_level value. common/item.c: Update sprintf's to handle 64 bit output of exp (speed) value in objects. common/living.c: change MAX_EXP define, update MAX_EXP_IN_OBJ define, add MAX_SAVE_LEVEL which corresponds to how large the savethrow table is. Change MAXLEVEL to settings.max_level. Change level_exp() to return 64 bit value, other updates in functions to use 64 bit values. Add did_make_save() function. common/loader.l, common/loader.c: Update load/save routins of exp to deal with 64 bit values. common/map.c: Update calculate_difficulty to use 64 bit values when storing exp - unlikely to make a difference, since unlikely any map will get to a point where it has that much exp on it. common/porting.c: Remove dead code from save_long(), add save_long_long() to save 64 bit values. include/autoconf.h.in: SIZEOF_LONG and SIZEOF_LONG_LONG values added. include/global.h: Add code to typedef sint64/uint64 types based on what type gives us those values. Add max_level to settings array. include/libproto.h: rebuilt. include/living.h: Replace exp field with 64 bit value. include/player.h: Update party kill log exp tracking to have 64 bit values. lib/exp_table: Udpate comments about max_level, uncomment what was the default table so new installs have working table. Add 5 levels to all the tables. random_maps/monster.c: Update place_monsters to use 64 bit when storing exp total for map/per square. server/apply.c: Replace MAXLEVEL with settings.max_level, add did_make_save calls where appropriate server/c_misc.c: have statistics command properly print 64 bit exp value. server/c_wiz.c: Have stats command properly display 64 bit value. server/hiscore.c: Replace exp values with 64 bit values, update to properly load/display them. server/player.c: replace savethrow[] reference with did_make_save() server/skill_util.c: Update skills command to properly show 64 bit exp values. server/spell_effect.c: replace savethrow[] reference with did_make_save(), allow players to cast directors right beneath themselves, but other walls must be on empty space. MSW 2003-03-07 | |||
Show difference between Revision 1.47 and 1.48 | |||
Revision 1.47 | garbled | 2003/01/09 12:29:51 | +5 -10 |
level_exp() made no sense at all, and looked like it predated the 110 level thing. Update this, and fix the bug where you could never drop out of level 110. (well, unless you lost *Alot* of exp.) | |||
Show difference between Revision 1.46 and 1.47 | |||
Revision 1.46 | mwedel | 2002/12/21 02:02:33 | +2 -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.45 and 1.46 | |||
Revision 1.45 | mwedel | 2002/12/05 23:36:28 | +4 -3 |
common/exp.c: Fix bug were drain attacks added exp. MSW 2002-12-05 | |||
Show difference between Revision 1.44 and 1.45 | |||
Revision 1.44 | mwedel | 2002/12/03 01:40:10 | +2 -1 |
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.43 and 1.44 | |||
Revision 1.43 | 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.42 and 1.43 | |||
Revision 1.42 | garbled | 2002/11/12 18:26:12 | +12 -17 |
#ifdef SPELL_ENCUMBRANCE -> settings.spell_encumbrance #ifdef SPELL_FAILURE_EFFECTS -> settings.spell_failure_effects | |||
Show difference between Revision 1.41 and 1.42 | |||
Revision 1.41 | garbled | 2002/11/12 17:20:11 | +2 -4 |
#ifdef SEARCH_ITEMS -> settings.search_items | |||
Show difference between Revision 1.40 and 1.41 | |||
Revision 1.40 | mwedel | 2002/10/14 02:03:16 | +10 -1 |
Minor bugfixes: common/living.c: Fix it so that if you die, you won't _gain_ exp in any skills - could happen if new table is harder - 3 level loss could still mean having higher exp total. common/map.c: Fix on_same_map so check to see if either object has null map value - prevents crashes. MSW 2002-10-13 | |||
Show difference between Revision 1.39 and 1.40 | |||
Revision 1.39 | mwedel | 2002/10/12 00:34:29 | +225 -235 |
Experience cleanup - the main functional change is that no upper limit of exp in an individual skill, save for the limit that there is an upper limit of total exp a player can have. Thus, if a player concentrates complete in one skill, he could get to level 110 in it. A lot of code cleanup was done - so much had gotten added to the exp code that it was a real mess. common/living.c: re-arrange some of the code, so all the exp related functions are together. remove adjust_exp(), change check_dm_add_exp_to_obj() to check_exp_adjust. Add new functions add_player_exp(), check_exp_loss(), check_exp_add(), subtract_player_exp(). include/libproto.h: rebuilt. server/c_wiz.c: Update command_addexp() to use new exp functions. server/gods.c: Update lose_priest_exp() to use new exp functions. MSW 2002-10-11 | |||
Show difference between Revision 1.38 and 1.39 | |||
Revision 1.38 | mwedel | 2002/09/11 01:21:46 | +7 -68 |
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 | mwedel | 2002/07/14 23:57:11 | +529 -475 |
-- 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.36 and 1.37 | |||
Revision 1.36 | avogl | 2002/03/14 16:16:14 | +3 -3 |
Modified dragon titles: Now players with > 50% skin resistance are "ancient dragons" and with > 80% (VERY hard) are "legendary dragons" | |||
Show difference between Revision 1.35 and 1.36 | |||
Revision 1.35 | avogl | 2002/03/10 10:18:13 | +1 -9 |
I've increased the length of the player->title string (from 16 to 32 byte) to fix the buffer-overrun issue with long dragon titles. Note that the object->title remains unchanged. Tell me if I'm wrong, but afaik the player title doesn't mingle with object titles. I also simplified the storage of dragon titles. It is no longer saved in the dragon_ability_force but recalculated every reload. | |||
Show difference between Revision 1.34 and 1.35 | |||
Revision 1.34 | avogl | 2002/03/03 15:56:58 | +10 -2 |
patch: the special titles of dragon players now get saved into the player file and are always present after re-login. Also added initial woodsman skill to the dragon-race. That's good for identifying food, and it doesn't influence balance IMO. | |||
Show difference between Revision 1.33 and 1.34 | |||
Revision 1.33 | avogl | 2002/03/03 14:05:57 | +2 -4 |
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:09 | +118 -8 |
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 | darth_bob | 2001/12/18 03:52:33 | +3 -2 |
More life stealing stuff | |||
Show difference between Revision 1.30 and 1.31 | |||
Revision 1.30 | garbled | 2001/10/31 01:00:24 | +10 -1 |
Big commit time. This does the following: Add weapontypes to the game. These are currently used for nothing other than messages, which are not fully written yet. Players should not see them appear yet. Fix the bug where you opened a door with a key and saw "You ." Fix a bug in the PLUGIN code where current_weapon wasn't set when the player loaded from savefile. Take the setting of current_weapon out of #ifdef PLUGIN garbled 2001-10-31 | |||
Show difference between Revision 1.29 and 1.30 | |||
Revision 1.29 | garbled | 2001/09/26 16:12:33 | +4 -4 |
Initial commit of new luck code. utils.c is the file that contains the actual luck routines, living.c was modified to use the luck code. Discussed at length with dhb, av and gros. Has been tested on both the mids crossfire server, and on my private server. This code removes all current use of the luck stat for players, and replaces it with a general luck modifier for all random rolls. The intent of this code is to give a general positive (or negative) effect on a player due to luck. This effect should be generally intangible to the player, yet help him out over the course of a game. | |||
Show difference between Revision 1.28 and 1.29 | |||
Revision 1.28 | mwedel | 2001/07/13 23:04:53 | +14 -8 |
common/Makefile.in: Remove ltostr.c and sqrt.c from list of files common/ltostr.c, common/sqrt.c: Moved into porting.c common/anim.c, common/button.c, common/item.c: Update calls to update_object common/living.c: have fix_player calculate light value for player/monster. common/logger.c: Remove code that has server exit if too many LOG messages happen too quickly. This was not a reliable mechanism, and it should really be up to the functions doing the logging to know if they can continue or not. common/los.c: Changes on how it deals with lighting on maps - get light value from map space array instead of using the linked list. Functions that managed the light list have been removed. Change logic of line of sight function to be more efficient (before, we may examine the same space multiple times). rename update_all_los to update_all_map_los, and change update_all_los to take coordinates so that we only have clients within view of the change recalculate los. Also, have update_all_los check for tiled maps that may have clients that need to get updated. common/map.c: remove refresh_map - this used to be used to try to recover from map errors if many_cores was not set - IMO better to core and just restart and really fix the error than try to deal with possible corruption that may otherwise result. Move open_and_uncompress and close_and_delete functions to porting.c - they are 'common' functions that are not related to the map code. Remove some lighting related code, as that is no longer done with a list. Many modifications because of new map structure. And logic to load and save the new map structure format. Modify many of the functions to take map tiling into account. Change way multipart objects are saved, and add logic to relink objects when maps are loaded up. Remove some functions that are only used by the editor into the editor. Move update_position from object.c to map.c as it is better placed in map.c. Modify function to figure out light for a space. Make out_of_map a function that knows about map tiling. New function - get_map_from_coord which knows about map tiling and does coordinate and map translation. common/object.c: Have update_object take another parameter which tells update object what has changed about the object. This lets the function know if it should call update_position right away or if it can just mark the space as needing an update at a later time. move update_position to map.c. insert_ob_in_map: now takes another parameter that describes actions not to do. modified to know about map tiling and do appropriate translation. Does some object sorting so it should handle spell objects more efficiently. insert_ob_in_map_simple is now replaced by using appropriate flag to this changed version of insert_ob_in_map. Clean up remove_ob - seemed to have done things in a more complicated fashion that is no longer necessary. Modify check_walk_on to look at all objects on space, not those below the object - with changes to insert_ob_in_map, new object won't always be on top. common/porting.c: functions from ltostr.c, sqrt.c, as open_and_uncompress close_and_delete, make_path_to_file from map.c common/treasure.c: Modified to use updated insert_ob_in_map MSW 2001-07-13 | |||
Show difference between Revision 1.27 and 1.28 | |||
Revision 1.27 | mwedel | 2001/05/28 23:41:53 | +6 -67 |
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.26 and 1.27 | |||
Revision 1.26 | mardahl | 2001/05/24 21:42:26 | +25 -1 |
Implemented reduced death penalty: 20% or 3 levels, whichever is lower. --PeterM 5/24/2001 | |||
Show difference between Revision 1.25 and 1.26 | |||
Revision 1.25 | mwedel | 2001/05/12 14:17:37 | +16 -12 |
common/living.c: Fix AC wrapping problem - now limit ac to +/- 120. MSW 2001-05-12 | |||
Show difference between Revision 1.24 and 1.25 | |||
Revision 1.24 | mwedel | 2001/04/12 01:03:40 | +6 -2 |
common/living.c: Don't use the last_heal object in experience objects as sp regen penalty. This should fix the problem of inconsistent sp regen rates - last_heal is used in experience objects if the permanent experience option is turned on. MSW 2001-04-11 | |||
Show difference between Revision 1.23 and 1.24 | |||
Revision 1.23 | avogl | 2001/03/10 21:15:18 | +9 -5 |
Fixed a very old bug about stat potions: When a player with maxed stats applied a stack of potions, they got screwed. The result was stat potions that didn't work and didn't stack with "normal" potions. --AV | |||
Show difference between Revision 1.22 and 1.23 | |||
Revision 1.22 | cvs | 2001/01/31 23:02:55 | +7 -3 |
Fix bug that resulted in higher hp if you had a negative con penalty that was odd than you should have. Basically, if your con penalty was -3, you would have more hp than if your con penalty was -2. Now it works properly. MSW 2001-01-31 | |||
Show difference between Revision 1.21 and 1.22 | |||
Revision 1.21 | avogl | 2001/01/08 15:33:11 | +4 -4 |
Figured out that the "wraparound bug" for players attacking damage was client sided (silly me, grumble). The true living.dam - variable is of type "sint16", so I threw out my previous patch on living.c again. Soo... please someone fix this client-bug for the unix-clients. | |||
Show difference between Revision 1.20 and 1.21 | |||
Revision 1.20 | avogl | 2001/01/08 14:31:54 | +4 -4 |
Fixed the wraparound-bug for players' damage. The attacking damage will now max out at 127 and NOT go into negative values. | |||
Show difference between Revision 1.19 and 1.20 | |||
Revision 1.19 | avogl | 2001/01/01 17:00:57 | +4 -3 |
Fixed a bug that prevented god-properties like hp/spell/grace-regeneration and sustenance to be inherited by players joining a cult. | |||
Show difference between Revision 1.18 and 1.19 | |||
Revision 1.18 | cvs | 2000/12/27 01:53:33 | +1 -4 |
MSW 2000/12/26: Checkin of Jan's new god intervention code. I haven't played around with it much, but I haven't seen any really obvious problems. common/living.c: remove learn_prayer_chance common/treasure.c: Various changes to treasure generation - mostly to deal with starting equipment and putting it in the inventory. doc/crossfire.doc: Update docs on god intervention. include/define.h: GT_... flags removed. include/treasure.h: GT_... flags added. Addition flags added from what was in define.h before. lib/archetypes, lib/crossfire.png, lib/treasures: Updated with new archetypes and treasures. random_maps/standalone.c,server/rune.c,server/time.c: Calls to create_treasure updated server/apply.c: New functions for god intervention added, update calls to create_treasure, other god related changes. server/c_wiz.c: Calls to create_treasure updated, various functions to allow DM's to learn/unlearn spells added. server/commands.c: Various commands added to the wiz set of commands. See commen for c_wiz.c server/disease.c: Changes to reduce_symptoms server/gods.c: Numerous updates for god intervention code. server/player.c: Modifications for starting player equipment. server/skill_util.c: Display the god the character worships when they issue the skills command. server/skills.c: Minor cosmetic change made to message when praying on altar. server/spell_effect.c: Changes related to gods, cure spells, and generation of treasures & items. End of MSW 2000/12/26 checkin. | |||
Show difference between Revision 1.17 and 1.18 | |||
Revision 1.17 | cvs | 2000/12/16 18:39:16 | +3 -3 |
MSW 2000/12/16: server/player.c: If the player race archetype has a message, print that out. This allows a descriptive message about what the different races will get. The message is removed from the player once they decide on the race. common/living.c: Add some parens around some PR resistant checks - eliminates warnings from gcc. server/disease.c: have cure_disease remove all diseases a player is infected with. The code suggested it was attempting to do so, and the messages it printed out certainly suggested that the character was disease free. | |||
Show difference between Revision 1.16 and 1.17 | |||
Revision 1.16 | avogl | 2000/12/15 09:36:25 | +8 -7 |
Player chars that cannot wear armour (like quetzal and fireborn) gain in addition to ac a small amount of armour (= resist_physical) per level. A maxed out char (level 110) will get 80% armour. This is not too much, but at least a little help. | |||
Show difference between Revision 1.15 and 1.16 | |||
Revision 1.15 | avogl | 2000/12/13 21:51:21 | +65 -29 |
PR-patch by AndreasV: Main features of this patch: o Negative resistances are calculated in a "logical" way. For example: +30 and -30 makes a total of zero. o Vulnerabilities work as "caps" for protection. E.g.: While wearing one item with fire -20, you cannot get more than fire +80 overall from equipment. If one is forced to live with high vulnerability (like wraith: fire -30), you can still use a potion to go beyond the cap. o Potions work completely different than before. The so-called "immunity-potions" grant an absolute value of 90% protection (independant from the players's equipment and properties), there are also very rare ones with 95% and cheap ones with 50%. If the player has already got more protection than the potion provides, drinking it won't have any effect. o Cursed potions are working now (have been broken before). They give a temporare vulnerability, but can be overriden by uncursed potions of the same res.-type. o Protection spells work different than potions. Their effect does add to the player's equipment. The amount of protection granted depends on the caster's skill level and path attunes (if a related spellpath exists). The maximum a player can get is currently 60% (at wisdom lvl 107 & path_attuned). o When the player's state of resistance changes, a new kind of message shows up: The percentage of the new resistance is displayed: e.g. "You resistance to fire rises to 67%". o When a player got hit by dam<1 it used to be zero. To make the calculations more accurate, for 0<dam<1 I "simulate" a floating point value-effect now. Example: If the correct damage value would be 0.4, there is 40% chance for dam=1, else dam=0. For 0.7, ther'd be 70% chance for dam=1... etc. Without that feature, there would most of the times be no difference between resistance 95 and 100. | |||
Show difference between Revision 1.14 and 1.15 | |||
Revision 1.14 | cvs | 2000/12/03 18:40:03 | +63 -142 |
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 | peterm | 2000/10/21 15:12:52 | +3 -2 |
Symptoms will no longer add their attacktype to the player or victim. | |||
Show difference between Revision 1.12 and 1.13 | |||
Revision 1.12 | peterm | 2000/10/16 14:22:57 | +2 -2 |
living.c: cleric fail chance array modified. map.c: bugfix for random map/recycle tmp map problem. | |||
Show difference between Revision 1.11 and 1.12 | |||
Revision 1.11 | cvs | 2000/08/25 01:23:28 | +40 -14 |
common/living.c, server/skill_util.c: Patches by Garth Denley: Fixes divide by zero crash, sets up perm exp when a new player is loaded, seperates permanent exp code/calculations into another function. checked in by MSW, 8/24/2000 | |||
Show difference between Revision 1.10 and 1.11 | |||
Revision 1.10 | cvs | 2000/08/08 01:57:57 | +3 -1 |
Add/Remove some LOG calls: common/living.c: Remove log messages about gen_sp values on armor server/login.c, server/main.c: Add messages about player logins/logouts with IP address. Useful for tracking potentially troublesome players and where they are player from. MSW 8/7/2000 | |||
Show difference between Revision 1.9 and 1.10 | |||
Revision 1.9 | cvs | 2000/08/02 01:04:50 | +51 -3 |
include/config.h, include/global.h, common/init.c, common/living.c, server/init.c, server/player.c, server/skill_util.c: Add permanent experience and balanced stat loss features (code by Garth Denley). Permanent experience make some experience in the skills permanent. Balance stat loss makes stat loss less likely/costly at low level and more costly at higher levels. These features are by default off, but can be turned on either in the config.h file or via command line options. Code checked in by MSW 8/1/2000 | |||
Show difference between Revision 1.8 and 1.9 | |||
Revision 1.8 | jec | 2000/06/19 07:23:11 | +10 -6 |
common/living.c: fix_player(): Bugfix: Don't reset FLAG_FLYING, FLAG_REFL_SPELL, FLAG_REFL_MISSILE and FLAG_SEE_IN_DARK if the archetype has these flags. | |||
Show difference between Revision 1.7 and 1.8 | |||
Revision 1.7 | jec | 2000/06/08 11:08:41 | +9 -3 |
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.6 and 1.7 | |||
Revision 1.6 | cvs | 2000/05/27 00:23:22 | +4 -3 |
common/living.c: Add entries for the attack type AT_INTERNAL in description. include/material.h: Update to include saves against INTERNAL attacktype. include/living.h: Remove defunct objects_saves external referance. The additions of internal to the tables should not really be needed, as internal attacktypes should not be used publically, but these also act as placeholders for future attacktypes. MSW 5/26/2000 | |||
Show difference between Revision 1.5 and 1.6 | |||
Revision 1.5 | jec | 2000/05/26 04:50:45 | +2 -2 |
* apply() cleanup patch 26/5/2000 | |||
Show difference between Revision 1.4 and 1.5 | |||
Revision 1.4 | jec | 2000/05/15 15:57:44 | +2 -2 |
See CHANGES file. | |||
Show difference between Revision 1.3 and 1.4 | |||
Revision 1.3 | damn | 1999/09/17 14:20:31 | +30 -49 |
- minor bugfix - fix_player now calculates sp regen penalty from armour --DAMN | |||
Show difference between Revision 1.2 and 1.3 | |||
Revision 1.2 | cvs | 1999/07/13 01:02:41 | +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:03 | None |
Initial revision | |||
First version | |||
Revision 1.1.1.1 | uid200 | 1999/04/02 13:10:03 | +0 -0 |
First CVS revsion: crossfire-0.95.3 | |||
Show difference between Revision 1.1 and 1.1.1.1 | |||
Revision 1.50.2.1 | mwedel | 2003/09/15 01:09:40 | +5 -2 |
Fix crashes when dragon player inventory is completely wiped out. That in itself shouldn't happen, but we still shouldn't crash. Problem is missing skin and ability forces. MSW 2003-09-14 | |||
Show difference between Revision 1.50 and 1.50.2.1 |