Protocol: | pserver | User: | anonymous |
Machine: | crossfire.cvs.sourceforge.net | CVSROOT: | /cvsroot/crossfire |
Filename: spell_effect.c | |||
Revision 1.164 | qal21 | 2006/09/16 15:12:40 | +31 -20 |
Commit changes forgotten in previous commit of alchemy changes. | |||
Show difference between Revision 1.163 and 1.164 | |||
Revision 1.163 | ryo_saeba | 2006/09/03 09:00:56 | +2 -2 |
Missing return value. | |||
Show difference between Revision 1.162 and 1.163 | |||
Revision 1.162 | qal21 | 2006/08/21 00:40:49 | +2 -2 |
Fix error in previous commit. | |||
Show difference between Revision 1.161 and 1.162 | |||
Revision 1.161 | qal21 | 2006/08/21 00:18:00 | +2 -2 |
Make counterspell not effect permenant spell effects. Fixes bug #1539220. | |||
Show difference between Revision 1.160 and 1.161 | |||
Revision 1.160 | gros | 2006/08/12 09:52:15 | +85 -61 |
Added a field in the map structure to store the timestamp of the last original map loading, and modified the Town Portal spell so that it now cannot lead to a map that was marked before a reset, after a reset. This is a fix for bug #1539155 gros, 2006-08-12 | |||
Show difference between Revision 1.159 and 1.160 | |||
Revision 1.159 | gros | 2006/08/12 03:52:15 | +49 -42 |
fixed incorrect behavior of the create missile spell, that couldn't find a proper archetype when a bow or a crossbow was wielded. This is a fix for bug #1532403. gros - 2006-08-12 | |||
Show difference between Revision 1.158 and 1.159 | |||
Revision 1.158 | ryo_saeba | 2006/08/07 15:16:28 | +2 -1 |
Copy level of cosnecrated altar too. | |||
Show difference between Revision 1.157 and 1.158 | |||
Revision 1.157 | ryo_saeba | 2006/08/07 08:39:21 | +36 -22 |
Implement feature request #1528641 (consecrate should change face of altar) | |||
Show difference between Revision 1.156 and 1.157 | |||
Revision 1.156 | qal21 | 2006/07/14 12:58:09 | +7 -5 |
Add setting to allow server admins to allow town portals to be created in apartments. Based on a patch by pippijn in the cf-ext project. | |||
Show difference between Revision 1.155 and 1.156 | |||
Revision 1.155 | qal21 | 2006/05/13 00:18:44 | +2 -2 |
correct bug in previous commit. | |||
Show difference between Revision 1.154 and 1.155 | |||
Revision 1.154 | qal21 | 2006/05/13 00:02:09 | +7 -1 |
Disallow town portal while in transports (caused map corruption, crashes and other nasty things) | |||
Show difference between Revision 1.153 and 1.154 | |||
Revision 1.153 | ryo_saeba | 2006/05/05 04:26:35 | +4 -4 |
First part of patch #1453869 courtesy Stefan Huehner (shuehner) | |||
Show difference between Revision 1.152 and 1.153 | |||
Revision 1.152 | tchize | 2006/04/06 16:18:36 | +15 -15 |
finished common/arch.c unit test, fixed a few bugs, moved function around and renamed other | |||
Show difference between Revision 1.151 and 1.152 | |||
Revision 1.151 | akirschbaum | 2006/03/22 03:29:05 | +10 -7 |
Fix exploit with alchemy spell. This effectively removes the improvement implemented at 2006-03-07. | |||
Show difference between Revision 1.150 and 1.151 | |||
Revision 1.150 | ryo_saeba | 2006/03/18 09:05:37 | +57 -37 |
Massive cleaning of code. Shouldn't be any functional change. | |||
Show difference between Revision 1.149 and 1.150 | |||
Revision 1.149 | akirschbaum | 2006/02/19 12:06:24 | +4 -4 |
Do not allow to dimension door into monsters or earthwalls. | |||
Show difference between Revision 1.148 and 1.149 | |||
Revision 1.148 | akirschbaum | 2006/02/10 17:59:28 | +2 -2 |
Apply slightly modified patch #1428309 (code-cleanup: const, static) by Stefan Huehner: add const/static to functions/variables. Remove some type casts. | |||
Show difference between Revision 1.147 and 1.148 | |||
Revision 1.147 | akirschbaum | 2006/02/08 17:53:19 | +6 -5 |
Make create food spell work for all FOOD/DRINK objects. It used to fail for objects where another object with the same name but type POISON does exist. | |||
Show difference between Revision 1.146 and 1.147 | |||
Revision 1.146 | akirschbaum | 2006/01/07 12:56:51 | +2 -2 |
Use named constants instead of numbers. | |||
Show difference between Revision 1.145 and 1.146 | |||
Revision 1.145 | mwedel | 2006/01/02 00:45:53 | +6 -6 |
server/spell_effect.c: Apply patch 1394861 - fixes magic walls. In conjuction with archetype changes, look at the spell object (and not created wall) to see if it blocks. MSW 2006-01-01 | |||
Show difference between Revision 1.144 and 1.145 | |||
Revision 1.144 | mwedel | 2005/11/16 02:16:09 | +73 -39 |
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.143 and 1.144 | |||
Revision 1.143 | ryo_saeba | 2005/11/06 06:24:32 | +2 -2 |
Fix WoR not working on cursed ground with WIZCAST set for DM | |||
Show difference between Revision 1.142 and 1.143 | |||
Revision 1.142 | ryo_saeba | 2005/10/16 03:48:30 | +13 -6 |
Don't stack WoR effects. Don't display 'can't recast xx' message for divine intervention | |||
Show difference between Revision 1.141 and 1.142 | |||
Revision 1.141 | akirschbaum | 2005/10/07 14:38:50 | +3 -3 |
Make damage done by area spells not depend on monster size. include/sproto.h, server/attack.c: Add additional parameter "full_hit" to hit_map() and hit_player(). If set, do full damage, if unset scale down by monster size. server/{apply.c, attack.c, disease.c, monster.c, player.c, rune.c, spell_attack.c, spell_effect.c, spell_util.c, time.c}: Change callers to set "full_hit" parameter according to the attack used. | |||
Show difference between Revision 1.140 and 1.141 | |||
Revision 1.140 | ryo_saeba | 2005/10/01 11:36:35 | +3 -2 |
Clean some compilation warnings. | |||
Show difference between Revision 1.139 and 1.140 | |||
Revision 1.139 | akirschbaum | 2005/09/27 12:48:40 | +2 -2 |
server/spell_effect.c: In recharge() verify that the object to charge is in fact a wand or staff. | |||
Show difference between Revision 1.138 and 1.139 | |||
Revision 1.138 | qal21 | 2005/09/17 18:31:49 | +1 -2 |
Remove what appears to be a old debug message. Ugly to players. | |||
Show difference between Revision 1.137 and 1.138 | |||
Revision 1.137 | mwedel | 2005/09/13 01:46:35 | +3 -3 |
This change is mostly cosmetic and a preparation for the new movement type code. Basically, it just changes the old object movement_type field to attack_movement. This makes sense because that is what that field is called in saved and loaded objects/archetypes, and thus frees up that name for the new movement code. -- common/button.c: field name change common/loader.{cl}: field name change doc/Developers/objects: Add section on new movement types, update old documentation to note it is attack_movement and not movement_type field that is important. include/object.h: field name change. server/attack.c: field name change. server/monster.c: field name change server/pets.c: field name change server/skills.c: field name change. server/spell_attack.c: field name change server/spell_effect.c: field name change MSW 2005-09-12 | |||
Show difference between Revision 1.136 and 1.137 | |||
Revision 1.136 | akirschbaum | 2005/09/09 16:09:41 | +2 -2 |
Allow a DM to cast spells and prayers in no-magic/no-prayer areas. Add new command "wizcast" to toggle this setting. | |||
Show difference between Revision 1.135 and 1.136 | |||
Revision 1.135 | akirschbaum | 2005/08/30 13:50:49 | +53 -32 |
Fix bug #1256173 (Magic drain not exploding head): server/spell_effect.c: Prevent mana transfer to/from caster himself; also create fireball for overcharges resulting from sucking mana. | |||
Show difference between Revision 1.134 and 1.135 | |||
Revision 1.134 | akirschbaum | 2005/08/25 15:44:16 | +2 -2 |
server/rune.c: Fix crash if casting disarm out of map bounds. server/spell_effect.c: Fix crash if casting polymorph out of map bounds. | |||
Show difference between Revision 1.133 and 1.134 | |||
Revision 1.133 | ryo_saeba | 2005/08/12 08:46:34 | +3 -3 |
Fields changed from char* to const char*, cleanup. | |||
Show difference between Revision 1.132 and 1.133 | |||
Revision 1.132 | ryo_saeba | 2005/08/12 03:18:59 | +4 -4 |
Use const char* instead of char* when possible | |||
Show difference between Revision 1.131 and 1.132 | |||
Revision 1.131 | ryo_saeba | 2005/08/10 08:38:31 | +2 -2 |
Use ARCH_DEPLETION instead of depletion. | |||
Show difference between Revision 1.130 and 1.131 | |||
Revision 1.130 | akirschbaum | 2005/07/25 19:23:00 | +2 -2 |
The following changes prevent spells in player's inventories from being damaged by casting spells, using skills, or praying. server/attack.c: Limit cancellation and acid attacks to visible objects only. server/gods.c: Limit god granted remove curse/damnation to visible objects only. server/skills.c: Limit the skills sense curse and sense magic to visible objects only. server/spell_effect.c: Limit the spells detect curse and detect magic to visible objects only. | |||
Show difference between Revision 1.129 and 1.130 | |||
Revision 1.129 | ryo_saeba | 2005/07/19 15:59:34 | +4 -4 |
Don't hardcode values. Fix item transformer code. | |||
Show difference between Revision 1.128 and 1.129 | |||
Revision 1.128 | akirschbaum | 2005/07/16 16:10:40 | +4 -4 |
Fix spelling errors in string constants. | |||
Show difference between Revision 1.127 and 1.128 | |||
Revision 1.127 | akirschbaum | 2005/07/14 04:18:56 | +4 -3 |
common/{button.c, treasure.c, utils.c}, server/{c_wiz.c, login.c, shop.c, skill_util.c, spell_effect.c}, socket/{image.c, item.c}: Fix printf like format specifiers. At least one of them fixes a means to crash the server. Andreas Kirschbaum 2005-07-14 | |||
Show difference between Revision 1.126 and 1.127 | |||
Revision 1.126 | akirschbaum | 2005/03/06 14:38:55 | +2 -2 |
common/{map.c, readable.c, treasure.c}, crossedit/Attr.c, server/{apply.c, attack.c, c_wiz.c, init.c, monster.c, pets.c, shop.c, skill_util.c, skills.c, spell_attack.c, spell_effect.c, time.c}, socket/{info.c, request.c}: Add missing newline character to LOG() messages. | |||
Show difference between Revision 1.125 and 1.126 | |||
Revision 1.125 | majorwoo | 2005/02/27 12:05:45 | +5 -5 |
Applied patch 1144782 - Fix town portal to maps that have reset | |||
Show difference between Revision 1.124 and 1.125 | |||
Revision 1.124 | mwedel | 2005/01/12 02:04:01 | +8 -1 |
aclocal.m4, configure: Add check for python 2.4. common/re-cmp.c: Fix improper comparison *(str+1) instead of str+1 server/login.c: don't allow null names. server/main.c: Disable logging of removed objects - filling up log files on archmage of all the errors. server/player.c: Fix improper initialization of attacktype in for loop. Give players max grace, sp when they die - also, if they are near starvation, give them a bunch of food. server/spell_effect.c: Put cap on duration of godly retribution - it can otherwise last so long that if a player is killed by it at their savebed location, spell could still go on after players temporary immunity ends. Retribution as increases in damage, so no need to really increase damage and duration to really high amounts. server/spell_util.c: In fire_arch_from_position(), and check that player isn't casting spell on top of wall - fixes for many spells, including ball lightning. server/time.c: Change comparsion on return of get_map_flags() from == P_OUT_OF_MAP to & P_OUT_OF_MAP - keeps syntax consistent. MSW 2005-01-11 | |||
Show difference between Revision 1.123 and 1.124 | |||
Revision 1.123 | mwedel | 2004/12/29 02:45:09 | +10 -1 |
common/regexp.c: Fixed couple flaws in regexp handling. First, there was an off by one error in the handling of matches (if the match was for example eureca, player could just say eurec, and it would treat that as a valid match). Second case was that the regular expression logic would not try comparing the rest of the passed in string after a partial match - In the eureca case above, if the passed in string was 'where is eureca', after matching the first e (in where), it then fails to match the to prevent unpaid objects from teleporting out of the shop. Also extend code so that non living objects can't use shop mats. server/player.c: Insert force into the player when they die making them immune to any spells on the space they reappear on - this prevents multiple deaths if there is large spell effect going on in the savebed location. Duration of force should be long enough for most spells to run their course, but no so long that the player can use it for much of an advantage (plus, killing yourself to get such an advantage seems odd, and the force only makes the player immune to the attacktypes currently on the space) server/spell_effect.c: Fix spell casting walls (lighting wall, firewall, etc) in that the spell object they cast was not being inserted, resulting in the walls not doing anything. MSW 2004-12-28 Applied patch (bug misc/zoo2) by Lalo server/time.c: creators can now create multi part objects. Applied patch 1086102 by Salathar: server/attack.c: If player kills another player, add (pk) to the death message. Applied patch 1086103 by Salathar: server/move.c: If player pushes another player, send message to both players that pushed happened. Previously, when pushing another player, the pusher wouldn't get any notice. MSW 2004-12-28 | |||
Show difference between Revision 1.122 and 1.123 | |||
Revision 1.122 | akirschbaum | 2004/08/20 15:02:10 | +2 -1 |
server/disease.c: fix crash when casting diseases on tiled maps. server/move.c: fix problem with multi-tile monsters and pass thru walls. server/spell_effect.c: fix magic walls sometimes appearing in wrong place. Andreas Kirschbaum 2004-08-20 | |||
Show difference between Revision 1.121 and 1.122 | |||
Revision 1.121 | mwedel | 2004/06/16 02:09:45 | +2 -2 |
server/attack.c: Fix hit_with_arrow() so that it uses the proper map when inserting the arrow. server/c_wiz.c: Add note about brokeness of command_create() server/spell_effect.c: execute_word_of_recall() - don't attempt recall if player isn't on any map. MSW 2004-06-15 | |||
Show difference between Revision 1.120 and 1.121 | |||
Revision 1.120 | mwedel | 2004/06/01 02:21:11 | +38 -11 |
server/c_misc.c: Add sum_weight() call to fix_me command so that players weight is properly recalculated. server/skills.c: Fix up attempt_steal() so that it doesn't improperly remove object from target when person doing the stealing can't pick it up. server/spell_attack.c: Set maxhp properly, so multipled fireballs, etc can be going off at the same time. server/spell_effect.c: Fix up cast_create_missile() so more esoteric missiles can be created. MSW 2004-05-31 | |||
Show difference between Revision 1.119 and 1.120 | |||
Revision 1.119 | mwedel | 2004/05/16 01:05:09 | +2 -2 |
server/spell_effect.c: Fix cast_create_food() to call find_archetype_by_object_name() instead of find_archetype(). In this way, players can use invoke without having to know the archetype name. MSW 2004-05-15 | |||
Show difference between Revision 1.118 and 1.119 | |||
Revision 1.118 | ryo_saeba | 2004/05/03 16:38:48 | +2 -2 |
Win32 fixes | |||
Show difference between Revision 1.117 and 1.118 | |||
Revision 1.117 | mwedel | 2004/04/25 02:17:40 | +5 -9 |
Change most shop buy/sell functions to use 64 bit values. Problem arises where player would sell valuable item, and if they wanted to buy them back, it would overflow a 32 bit value, so they could buy them back for free. Note quite as odd when you consider the buy/sell price for really valuable items to be very different. include/global.h: Add UINT32_MAX and other max type defines for our typedef values so that we have standard setting of what the cap is. server/apply.c: Change get_payment call to take second argument. server/plugins.c: Add note about bug in handling of query_cost in this function. server/shop.c: query_cost() now returns 64 bit. Many other functions updated to also take/return 64 bit cost values. Have cost_string nicely deal with values that are beyond affordability. Rename get_payment2() to get_payment(), and remove the later, which was just a simple wrapper function that called get_payment2. server/spell_effect.c: Update alchemy code. Remove some suspect use of static values. MSW 2004-04-24 | |||
Show difference between Revision 1.116 and 1.117 | |||
Revision 1.116 | mwedel | 2004/04/07 01:49:38 | +2 -2 |
Patch by Bernd Edler to fix message printout on spells that raise stats - function cast_change_ability() MSW 2004-04-06 | |||
Show difference between Revision 1.115 and 1.116 | |||
Revision 1.115 | ryo_saeba | 2004/03/06 02:32:39 | +2 -1 |
Save player's name when using marking rune | |||
Show difference between Revision 1.114 and 1.115 | |||
Revision 1.114 | ryo_saeba | 2004/02/27 17:00:28 | +3 -3 |
Some warnings cleaning. | |||
Show difference between Revision 1.113 and 1.114 | |||
Revision 1.113 | mwedel | 2004/02/08 23:52:20 | +2 -2 |
cast_change_ability(): Make call to change_abil() after inserting force into player - necessary for change_abil() to work correctly. MSW 2004-02-08 | |||
Show difference between Revision 1.112 and 1.113 | |||
Revision 1.112 | mwedel | 2004/01/16 01:52:51 | +5 -3 |
Fix a bunch of crashes observed on metalforge: server/player.c: do_hidden_move(): Move call to find skill so that it is always called. server/skills.c: write_scroll(): Fix freeing of spell object in scroll - newscroll->inv isn't valid after calling remove_ob, so need to copy object to temporary pointer first. server/spell_effect.c: cast_detection(): Pass in skill to use. If no skill in use, use the caster object - fixes pointer derefence as op->chosen_skill wasn't always set. server/spell_util.c: modify caster_level() to always return at least 1. Fixes pointer potential divide by zero problems - also guarantees that players will be able to cast first level spells even if repelled to that spellpath. ok_to_put_more() - Fix to use correct map pointer variable. find_target_for_friendly_spell() - make it so it handles tiled maps OK. MSW 2003-01-15 | |||
Show difference between Revision 1.111 and 1.112 | |||
Revision 1.111 | mwedel | 2003/11/28 20:17:27 | +5 -3 |
Add some op->type==PLAYER checks in cast detection that were missing. Resulted in crashes if a monster cast one of the detection spells. MSW 2003-11-28 | |||
Show difference between Revision 1.110 and 1.111 | |||
Revision 1.110 | mwedel | 2003/11/16 18:13:55 | +3 -4 |
Fix cure_confusion spell - was looking for wrong object. MSW 2003-11-16 | |||
Show difference between Revision 1.109 and 1.110 | |||
Revision 1.109 | mwedel | 2003/11/06 23:17:16 | +7 -7 |
Fix bug would it cast_detect() would go into infinite loop. MSW 2003-11-06 | |||
Show difference between Revision 1.108 and 1.109 | |||
Revision 1.108 | mwedel | 2003/10/26 01:56:57 | +25 -23 |
common/glue.c, common/object.c, common/player.c, include/funcpoint.h, server/init.c, server/monster.c, server/shop.c, server/skill_util.c: add find_skill_by_number() function - this replaces find_skill. Locate new function in skill_util.c, which is more a proper place than common/player.c - this change necessitated adding glue function pointers so the other common files can call it. server/spell_effect.c: Fix cast_heal() so if the spell is not one that heals hit points, don't process the code that checks for that and sets a false success value. socket/metaserver.c: Clean up formatting - no code changes. MSW 2003-10-25 | |||
Show difference between Revision 1.107 and 1.108 | |||
Revision 1.107 | mwedel | 2003/10/11 22:59:46 | +2 -2 |
force was not properly initalized, resuling in cores. MSW 2003-10-11 | |||
Show difference between Revision 1.106 and 1.107 | |||
Revision 1.106 | mwedel | 2003/09/13 00:02:13 | +1153 -2645 |
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.105 and 1.106 | |||
Revision 1.105 | tchize | 2003/09/03 07:25:06 | +3 -3 |
generator may now use their inventory as a basis to generated items instead of the other_arch field. Will allow more fine tuned generators | |||
Show difference between Revision 1.104 and 1.105 | |||
Revision 1.104 | mwedel | 2003/03/21 02:01:09 | +337 -299 |
server/spell_effect.c: Some code cleanuip to cast_change_attr - mostly to combine the processing of the stat improving spells together. The actual change to playability is that bless and holy possession don't stack if cast multiple times. server/spell_util.c: Modify create_aura so that player can't have more than one aura (of the same type) active at a time. MSW 2003-03-20 | |||
Show difference between Revision 1.103 and 1.104 | |||
Revision 1.103 | mwedel | 2003/03/19 02:04:52 | +2 -2 |
common/anim.c: Pass direction to animate_object() - needed for player animations as player's facing may not match direction. crossedit/Attr.c, server/main.c, server/time.c: Update calls to animate_object() include/libproto.h: rebuilt include/newserver.h, plugin_animator/animator_box.c, socket/init.c, socket/request.c: Remove newanim field from socket structure - not needed - how to animate is determined by object, not by socket. server/move.c: Add check to P_OUT_OF_MAP in teleport function. server/player.c: change move_player to call animate_object, so it gets full power of functionality it supports instead of 4 way hardcode animation information. server/spell_effect.c: When altars are consecrated, don't look to arch name for first portion of name - always call them Altar of %s - fixes problem where altar is special god altar that has god's name in archetype, resulting in altar of .. of ... MSW 2003-03-18 | |||
Show difference between Revision 1.102 and 1.103 | |||
Revision 1.102 | mwedel | 2003/03/07 23:35:33 | +11 -4 |
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.101 and 1.102 | |||
Revision 1.101 | mwedel | 2003/03/02 23:13:08 | +22 -1 |
Various bug fixes. Makefile.am, Makefile.in: Put crossedit as the last directory, so any build errors for crossedit doesn't effect anything else. README: Update ftp site listing. TODO: More things aded. aclocal.m4, configure: Add missing / when checking in /usr/local for python headers. common/map.c: Add some debugging in free_all_objects that checks to make sure there are not objects remaining that belong to the map just freed - only active if MANY_CORES is set. random_maps/random_map.c: Increase minimum random map size to 10x10 - this is need for square spirals to work properly I think. server/spell_effect.c: Have perceive self tell dragon players what they are currently focused on. Fix town portal to remove force objects from players if destination is no longer available. server/swap.c: Reset maps reset_time when loading them in in read_map_log() - this is only used if recycle temp maps is on. Also, do sanity checking on reset_time value - bogus values were observed on metalforge. socket/request.c: Update map timeout in draw_client_map() - in this way, we don't swap out a map within a players view only to swap it back in. MSW 2003-03-01 | |||
Show difference between Revision 1.100 and 1.101 | |||
Revision 1.100 | mwedel | 2003/02/25 01:18:07 | +3 -4 |
*/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.99 and 1.100 | |||
Revision 1.99 | mwedel | 2003/02/24 01:39:00 | +54 -41 |
common/anim.c: Fix for 8 way facing animations. lib/treasures: Add sheep treasures lib/* (rest) - rebuilt server/spell_effect.c: Fix up counterspell - mainly fix a bug in that if counterspell hit a multipart magic that used magic as an attacktype, it would also crash. However, code also woudln't work properly on tiled maps, and I'm dubious if it would work properly if there was more than one effect on a space. MSW 2003-02-23 | |||
Show difference between Revision 1.98 and 1.99 | |||
Revision 1.98 | mwedel | 2003/02/22 01:26:56 | +232 -256 |
server/spell_effect.c: clean up town_portal to use its own arch's so it doesn't have to reset so many fields. Also, fix crash. server/spell_util.c: Update cast_create_obj to put new object below casting up. lib/*: Rebuilt MSW 2003-02-21 | |||
Show difference between Revision 1.97 and 1.98 | |||
Revision 1.97 | mwedel | 2003/02/21 01:55:38 | +2 -2 |
server/skills.c: Fix jump so that it updates the clients map properly. server/spell_effect.c: insert town portals below the player so it works better with apply. MSW 2003-02-20 | |||
Show difference between Revision 1.96 and 1.97 | |||
Revision 1.96 | mwedel | 2003/02/15 23:54:28 | +7 -2 |
Fix bug with light being cast outside the map. MSW 2003-02-15 | |||
Show difference between Revision 1.95 and 1.96 | |||
Revision 1.95 | mwedel | 2003/02/03 01:23:48 | +19 -13 |
More bugfixes: include/shop.h: remove _SHOP_H after endif, causing compiler warnings. include/skills.h: Add check to USING_SKILL to make sure chosen_skill is not null. server/c_chat.c: Add some missing return values, resulting in compiler warnings. server/skill_util.c: Remove unused variable. compiler warnings again. server/spell_effect.c: Change dimension door so that you can't go through spaces that block passsage and also block view (eg walls). This goes back to the more traditional behaviour. Remove some unused variables. server/spell_util.c: Add missing P_OUT_OF_MAP to move_missile, resulting in crashes. server/time.c: if generator is not on a map, don't have it generates. Fixes crashes. MSW 2003-02-02 | |||
Show difference between Revision 1.94 and 1.95 | |||
Revision 1.94 | garbled | 2003/01/29 18:07:09 | +14 -19 |
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.93 and 1.94 | |||
Revision 1.93 | mwedel | 2003/01/27 01:34:34 | +5 -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.92 and 1.93 | |||
Revision 1.92 | mwedel | 2003/01/23 01:38:44 | +3 -3 |
More bug fixes: server/player.c: Call fix_player after lifesaving device is used to reset body location values. server/spell_effect.c, server/spell_util.c: Add some more P_OUT_OF_MAP checks. MSW 2003-01-22 | |||
Show difference between Revision 1.91 and 1.92 | |||
Revision 1.91 | mwedel | 2003/01/15 01:18:06 | +4 -4 |
Add a bunch of P_OUT_OF_MAP checks to dimension door. MSW 2003-01-14 | |||
Show difference between Revision 1.90 and 1.91 | |||
Revision 1.90 | mwedel | 2003/01/08 02:39:21 | +598 -537 |
Bulk of this commit is to improve code for tiled maps - replace wall/blocks_magic/blocks_cleric, etc with get_map_flags which also does map tiling translation as needed. This should fix a lot of the bugs related to map tiling (there are sure to be more out there - all the get_map_ob still need to be checked). Other changes - many spells stopped progressing on spaces that blocked view - that is now removed - didn't make a lot of sense. Other fixes - some cleric spells (eg, word of recall) checked to see if magic was prohibited, didn't check to see if cleric was prohibited. Clean up some bugs in the lighting code that would cause erroneous results. Also, allow players to see immediately around them on outdoor maps no matter how dark the map really is - behaviour on indoor maps is the same. Lots of code reformatted, and lots of obsoleted/dead code removed. Add max range to dimension door. Fix magic map - got broken when the layer stuff was redone - was not showing proper colors. IT also works sensibly on tiled maps now - rather than display based on the map, it gives the player a 50x50 area centered on where the player is. Change fire_bow - move special player fire modes into own function - makes code much cleaner. Hopefully this fixes more bugs than it introduces. common/los.c, common/map.c, common/object.c, crossedit/Edit.c, include/libproto.h, include/sockproto.h, include/map.h, include/spellist.h, include/sproto.h, random_maps/treasure.c, random_maps/wall.c, server/attack.c, server/c_misc.c, server/c_wiz.c, server/disease.c, server/main.c, server/monster.c, server/pets.c, server/player.c, server/rune.c, server/shop.c, server/skill_util.c, server/skills.c, server/spell_effect.c, server/spell_util.c, server/time.c, socket/info.c: See note above server/apply.c: Limit number of times weapon can be enchanted so that it won't overflow item_power. Modify enchant armor to enchant as normal armor is enchanted, also only allows one item to be enchanted. MSW 2002-01-07 | |||
Show difference between Revision 1.89 and 1.90 | |||
Revision 1.89 | mwedel | 2003/01/05 17:50:15 | +17 -11 |
common/item.c: Add 'unidentified' to display of examined items if the item has not been identified. Only display spell regen penalty for armour if there is in fact a penalty. lib/archetypes: rebuilt for updated demon speed, pick up other new archs. lib/animations, lib/bmaps lib/bmaps.paths lib/crossfire.0 lib/crossfire.1 lib/faces: rebuilt server/main.c: Name random maps based on final map component (if available) or map they are spawned from - this gives so clue in 'who' command where the players really are. server/monster.c: Fix code that would cause monsters to ignore golems/ avatars. server/pets.c: Clean up a few warnings, fix bug in pet_move that caused crashes - owner of a pet isn't always a player. server/player.c: Remove on_same_map check - can_detect_monster also performed check, so no need to have extra call. server/spell_effect.c: modify alchemy to properly deal with tiled maps, change behavior for spells that block view - they no longer block alchemy, but spaces that block magic will. MSW 2002-01-05 | |||
Show difference between Revision 1.88 and 1.89 | |||
Revision 1.88 | garbled | 2002/12/28 00:35:23 | +11 -11 |
Fix some stupidity in summon_pet that made it not work above level 25 or so. | |||
Show difference between Revision 1.87 and 1.88 | |||
Revision 1.87 | mwedel | 2002/12/21 02:02:34 | +94 -84 |
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.86 and 1.87 | |||
Revision 1.86 | garbled | 2002/12/18 10:52:12 | +10 -6 |
Don't allow players to alchemy cauldrons into gold nuggets. | |||
Show difference between Revision 1.85 and 1.86 | |||
Revision 1.85 | garbled | 2002/12/18 10:39:59 | +2 -2 |
Add new DM command "possess". This command allows a DM to possess the body of a monster. Also, fix a bug in the new implementation of summon_pet() | |||
Show difference between Revision 1.84 and 1.85 | |||
Revision 1.84 | garbled | 2002/12/14 01:04:32 | +29 -45 |
Per the comment above summon_pet, I have modified summon_pet() to use the treasurelist, rather than the built-in compiled list. | |||
Show difference between Revision 1.83 and 1.84 | |||
Revision 1.83 | garbled | 2002/12/11 15:31:00 | +3 -2 |
It's really lame when I'm DM, and invisible, and a player casts "detect invisible", and it works on me.. | |||
Show difference between Revision 1.82 and 1.83 | |||
Revision 1.82 | mwedel | 2002/12/03 01:40:18 | +3 -5 |
TODO: Move more items from my mailbox to the TODO list. common/living.c: Init item_power in player to zero in fix_player() - bogus results were getting generated as it just kept getting incremented. common/porting.c: fix remove_directory so it works properly - checking for . and .. entries too late, calling unlink instead of rmdir. include/sproto.h: rebuilt lib/animations, lib/archetypes, lib/bmaps, lib/bmaps.paths, lib/crossfire.0, lib/crossfire.1, lib/faces: Rebuilt - new archs added, catch is_thrown addition to thrown rock/boulder archs. server/c_move.c, server/c_range.c: Add another parameter to do_skill() - part, which is closest part of creature to target object - current only used for the throw code. Update calls to this function to add additional parameter. server/c_object.c: Remove the NDI_UNIQUE from the 'item is too heavy to pick up' so that it won't flood the client with them if players goes onto space with lots of objects. server/main.c: Minor cleanup to fix compiler warning about ambigous if/else. server/monster.c: Pass closest part of monster when having it use a skill so that it doesn't throw rocks into itself. Update calls to do_skill as described above. server/player.c: Cal delete_player() when player quits - this properly cleans up any per player unique maps they have. Also, check for any such maps currently in memory, and delete those so that unique maps don't get 'gifted' to the next character of the same name. Update calls to do_skill as described above. server/shop.c: Combine items of the same name together in the output of the shop listings. Include the number of items, remove special casing of some objects so that query_base_name is used for all item types. server/skill_util.c: Modify do_skill() to take additional param as described above. Also, have do_skill return 1 on success, 0 on failur to use skill, and not return exp - otherwise, monster code has no idea if skill was successfully used, as throw doesn't grant exp, and this caused monsters to move into the object they just threw. Update calls to do_skill as described above. server/skills.c: Clean up skill_throw function to return meaningfull value. Also, pass along extra part of closest monster part to target. Modify do_throw to return value, use closest part of body as origin point for thwon object. server/spell_effect.c: Use isqrt function instead of definining ISQRT that used float version. Cleans up compile warning - most likely not seen before as spell was #ifdef SPELL_ENCUMBERANCE out. server/time.c: Put sanity checking for players speed_left in move_player_mover() - got some reports of infinite negative speed on metalforge, and this is the only place in the code where I could see that happening given the description of the events. utils/arch2xml.py, utils/cfarches.xsl: New script (and template) by Todd Mitchell. Script can convert archs to xml, and the template is usuable with mozilla to look at the output. MSW 2002-12-02 | |||
Show difference between Revision 1.81 and 1.82 | |||
Revision 1.81 | garbled | 2002/11/26 01:57:17 | +1 -9 |
get rid of #ifdef LOSSY_ALCHEMY | |||
Show difference between Revision 1.80 and 1.81 | |||
Revision 1.80 | garbled | 2002/11/13 19:08:57 | +2 -4 |
Nuke USE_LIGHTING and SHOP_LISTINGS from orbit. | |||
Show difference between Revision 1.79 and 1.80 | |||
Revision 1.79 | garbled | 2002/11/12 18:26:13 | +4 -4 |
#ifdef SPELL_ENCUMBRANCE -> settings.spell_encumbrance #ifdef SPELL_FAILURE_EFFECTS -> settings.spell_failure_effects | |||
Show difference between Revision 1.78 and 1.79 | |||
Revision 1.78 | garbled | 2002/11/11 02:59:09 | +3 -22 |
New alchemy code, as discussed on the developer list. Now recipies include two new tags: skill and cauldron. With skill, you can set which skill activates this recipie, and the cauldron, corresponds to the arch name of the facility you will use when creating the item. In this way, item creation is now more generalized than just alchemy, and specific formulae can be written to utilize different skills, or perhaps special formulae would require a hard-to-find cauldron. Functionally, the alchemy, or alchemy-like-skills are now activated by the use_skill command. The secondary use of the alchemy spell has been withdrawn, so now it functions in the way it was originally intended again. | |||
Show difference between Revision 1.77 and 1.78 | |||
Revision 1.77 | mwedel | 2002/10/04 00:46:23 | +2 -1 |
Bug fix for animate weapon control - broken in last change with golems, as golem_count wasn't getting set. MSW 2002-10-03 | |||
Show difference between Revision 1.76 and 1.77 | |||
Revision 1.76 | mwedel | 2002/10/03 02:07:44 | +2 -1 |
Bugfixes: Add golem_count element to player structure so we can properly detect when golem is destroyed. This fixes a crash in some places as the code tried to remove this already removed golem. Fix crash when null player maps. include/player.h: Add golem_count element to player structure. server/player.c: Add code in handle_newscs_player() that checks status of golem, clears op->contr->golem is value is bogus server/spell_effect.c, server/spell_util.c: Initialize golem_count value when golem is created. socket/request.c: Check for null map value. MSW 2002-10-04 | |||
Show difference between Revision 1.75 and 1.76 | |||
Revision 1.75 | mwedel | 2002/08/26 02:14:11 | +2 -3 |
Various bugfixes: common/map.c: Change so that same logic is used to determine pclose/fclose that is used to determine popen/fopen - otherwise, compressed map files probably don't work properly. common/treasure.c: Do a memset to make sure entire treasureslist is set to sane values. lib/archetypes: Fix 'slaying' field (which determines spell name) in god_spelldirect_face_of_death and god_spelldirect_finger_of_death server/apply.c: Fix infinite loop if the player had cursed items that needed to be unapplied to apply an item - setting up next item iteration was inside if check when it shouldn't be. Also, print message to player if this is the case. server/monster.c: Better format some of the code for improved readability. Fix indentation of can_see_enemy. Clean up invisiblity check - may have fixed a bug - old code should have worked, but wasn't very readable. server/move.c: Fix some bad code from last checkin - didn't fix the crash on no floor for door type, and instead removed check type from next line by accident. server/player.c: Remove call for init_beforeplay - this is already properly called, and re-calling it resulted in some things being redone when they shouldn't be. server/skills.c: Add message if there is nothing to steal form the monster. server/spell_effect.c: Improve message when invisiblity duration is maximized. socket/init.c: change O_NDELAY to O_NONBLOCK of fcntl. MSW 2002-08-25 | |||
Show difference between Revision 1.74 and 1.75 | |||
Revision 1.74 | mwedel | 2002/07/30 01:37:22 | +47 -33 |
Various fixes: INSTALL: Update with note about --with-includes configure option. common/loader.c, common/loader.l: Add comment about flag_invis_undead include/define.h: Add FLAG_INVIS_UNDEAD lib/adm/map_info: Modify to not follow symbolic links. server/monster.c: Modify can_detect_enemy to be a bit more straightforward in its logic. Also, modify detection of invisible creatures - don't reduce duration, just return that the monster can detect the player. There were also spurious messages about the player being seen. Modify can_see_enemy to check FLAG_INVIS_UNDEAD, also fix broken comparison server/player.c: Clear FLAG_INVIS_UNDEAD when invisibility ends. Fix action_makes_visible() - had reverse logic on FLAG_MAKE_INVIS check, and a typo in the printed message. server/spell_effect.c: cast_invisible() to use FLAG_INVIS_UNDEAD - also check for maximum duration, and only search active objects when clearing enemy. server/weather.c: Fix off by one on comparision when intializing maps darkness when loading map from disk. In dawn_to_dusk, don't do further processing if the light hasn't changed. MSW 2002-07-29 | |||
Show difference between Revision 1.73 and 1.74 | |||
Revision 1.73 | mwedel | 2002/07/25 01:57:14 | +13 -6 |
Various bug fixes, add glyph spell: TODO: Updated common/map.c: Fix change_map_light() - if darkness was reduced to zero, it wouldn't properly notify the players or update the maps they are on. Also, make it more robust to handle changes by more than one. include/define.h: Increase NROFREALSPELLS include/spellist.h: Add glyph spell. include/spells.h: Add SP_GLYPH entry. server/attack.c: Fix up kill_object() - it has had some many various additions that it was difficult to follow the logic. It should also now do better check on skill objects when awarding experience. server/player.c: Add some checks/addition to properly deal with freeing the name_pl in the player object. Fix it so that if you are braced, you still won't attack friendly creatures. server/rune.c: Add cast_generic_rune() to handle the glyph and rune spell. server/spell_effect.c: Fix up some pointers in cast_cause_disease() - needed so that it works properly when embedded in a glyph. Have it return 1 even if no one caught anything - you still cast the spell, so you should lose the grace for it. server/spell_util.c: Fix some formatting. Break out the code dealing with rune into cast_generic_rune() socket/loop.c: Add flag to player command mapping, and update structure - if flag is set, command can only be issued when player is in play, and not when waiting at the quit or login prompt - fixes crashes where players could wait for the map to get swapped out (after quitting), and then looking at a space. socket/request.c: Fix map2cmd so that invisible players are drawn. MSW 2002-07-24 | |||
Show difference between Revision 1.72 and 1.73 | |||
Revision 1.72 | mwedel | 2002/07/14 23:57:13 | +7 -16 |
-- 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.71 and 1.72 | |||
Revision 1.71 | uid39786 | 2002/07/05 17:22:29 | +147 -143 |
common/arch.c: Add 'unlocked' match for item_matched_string. lib/help/drop, lib/help/dropall: Help files for these commands. lib/Makefile.in: Update to include help commands above. server/spell_effect.c: Fix formatting of summon_pet() function. Modified so that it no longers sucks player spellpoints when casting it via scroll - scrolls should not cast the player spellpoints. No idea why that code was there - in fact, casting off a scroll used more sp than casting from memory. Modify cast_cause_disease() function so that if the passed direction is 0, we refer to the facing and cast in that direction - this means spells of cause disease now work. Also perform some minor formatting changes in the function. TODO: Add not about inscription. MSW 2002-07-05 | |||
Show difference between Revision 1.70 and 1.71 | |||
Revision 1.70 | mwedel | 2002/06/07 02:00:45 | +8 -10 |
Mostly bugfixes. I'm not sure if this will fix the disappearing arch problem- none of the changes made in the original multiple name would seem to cause it, so hard to say if any of these changes may fix it. -- common/arch.c: Change get_archetype_by_name to be more efficient and not leak memory. Modify code that frees all archetype data to free the name_pl information. Make sure the clone.name_pl is set to NULL. When singularites are created, set the name_pl for them. common/loader.l, common/loader.c: Modify code that fixes up name_pl to be more correct when it fixes up name_pl for old objects. common/map.c: Modify load_map_header so that tile_paths will be normalized - need for editor to be able to load maps that have a multipart object that spans the maps. crossedit/Edit.c: Modify some calls of out_of_map to OUT_OF_REAL_MAP, since tiling code really isn't fully in place for the editor. Modify EditPerformFill so that it actually works and doesn't crash the editor. include/global.h: Move FREE_AND_COPY macro from loader.l to here so that all source code files can use it. lib/adm/map_info: Modify to actually be able to examine just a sub portion of the map directories, and not all of them. Don't always show the unused objects - information isn't very interesting if only a portion is being examined. Modify the exit examining code to properly deal with random maps (if there is a finalmap component, make sure that does exist.) Loade the bmaps file and not the faces file to find valid faces. plugin/plugin_python.c: Add missing %s that described what script was actually loaded. random_maps/special.c, server/alchemy.c, server/c_misc.c, server/gods.c, server/login.c, server/player.c, server/spell_effect.c: Set up proper name_pl value for code that changes the name of objects. server/apply.c: Use FREE_AND_COPY to set up names. Set up proper name_pl values for cases that change name. In apply_lighter, call fix_player if player is lighting an object in his inventory - necessary for the players glow_radius to get updated so the change actually takes effect. socket/request.c: Modify esrv_map_scroll so that it properly clears cells that are moving out of view - failure to do this was resulting in the map1a updating these spaces with empty faces. This was causing fog of war wackiness with the client. MSW 2002-06-06 | |||
Show difference between Revision 1.69 and 1.70 | |||
Revision 1.69 | mwedel | 2002/02/10 22:22:06 | +2 -2 |
server/spell_effect.c: Fix bug in summon_cult_monster that would result in crash if monster was killed when inserted. MSW 2002-02-10 | |||
Show difference between Revision 1.68 and 1.69 | |||
Revision 1.68 | mwedel | 2001/12/31 21:56:23 | +25 -20 |
server/spell_effect.c: fix animate_bomb so that if the bomb is in a container, it does not crash the server - the problem was that it was calling drop, which would then drop it right back into the container. also, the x and y coordinates were not being properly set. MSW 2001-12-31 | |||
Show difference between Revision 1.67 and 1.68 | |||
Revision 1.67 | mwedel | 2001/12/03 01:51:46 | +15 -4 |
This checkin for the most part removes support for xpm and xbm graphics - now the only image supported is the png. common/arch.c: comment out printing on warning of object having no type - getting 300 meaningless messages at startup is annoying. common/image.c: Remove X11 color information from colorname array. Remove processing of color_fg and color_bg information from face file - only use color_fg if no magicmap information is available - foreground and background infoformation was only needed for bitmap graphics. common/loader.c, loader.l: Add elevation element, comment out some logging messages that are excessive and only really relevant for people who want to fix them (really should be in the collect script anyways). Remove some unused code. common/map.c: add outdoor field to map structure - add support for loading and saving it. crossedit/App.c,crossedit/CrUtil.c, crossedit/Defines.h, crossedit/crossedit.c crossedit/xutil.c: Remove support for non png graphics. crossedit/Attr.c: Add support for elevation variable, remove code for non png graphics. doc/map-technical: Add note about outdoor field. include/face.h: remove fg, bg fields from face struecture. include/global.h: Update colorname array definition. include/loader.h: Add V_ELEVATION field. include/map.h: Add outdoor field to map structure. include/newserver.h: Update types so it only loads/knows about png information. include/object.h: Add elevation field to object structure. lib/Makefile.in: Remove support for building crossfire.xpm and crossfire.xbm files. lib/animations, lib/archetypes, lib/bmaps, lib/bmaps.paths, lib/crossfire.png, lib/faces: Rebuilt. Main difference is a few sea types, and the fact that it hadn't been collected for a while. server/spell_effect.c: Modify dimension door so that it calls MapNewmapCmd so that fog of war does not get confused. Also, removes call to draw as functions further up will do that. server/spell_util.c: Remove color information from attack information that shuffle_attack uses. socket/init.c, socket/request.c: Remove support for non png images. MSW 2001-12-02 | |||
Show difference between Revision 1.66 and 1.67 | |||
Revision 1.66 | michtoen | 2001/11/26 22:33:46 | +0 -0 |
Arch type & subtype patch Added type & subtype system with 2 subtypes. Type & subtype will be send to client. Adding new types: FLOOR 71 WALL 77 LIGHT_SOURCE 78 MISC_OBJECT 79 MONSTER 80 SPAWN_GENERATOR 81 Added subtypes for armor & weapons. new commands are: sub_type <uint8> sub_typ2 <uint16> sub_type2 is for internal server use. Added new command: casting_speed <delay> This will be included later. I will use the sdl client as tester for this patch, older clients will not be effected even when the arches are updated. | |||
Show difference between Revision 1.65 and 1.66 | |||
Revision 1.65 | michtoen | 2001/11/26 11:52:26 | +3 -1 |
Attack Patch 25.11.01 Detailed information in the dev list. The changes are to many to explain here. | |||
Show difference between Revision 1.64 and 1.65 | |||
Revision 1.64 | garbled | 2001/10/31 01:00:24 | +4 -4 |
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.63 and 1.64 | |||
Revision 1.63 | garbled | 2001/10/15 16:12:08 | +18 -18 |
Remove all instances of RANDOM()% and replace with rndm() from utils.c garbled 2001-10-15 | |||
Show difference between Revision 1.62 and 1.63 | |||
Revision 1.62 | garbled | 2001/09/26 16:34:08 | +25 -22 |
Apply the big luck patch to all these files. This removes the special cases for alchemy and prayer as well. 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. garbled 2001-09-26 | |||
Show difference between Revision 1.61 and 1.62 | |||
Revision 1.61 | mwedel | 2001/08/29 02:14:16 | +161 -103 |
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.60 and 1.61 | |||
Revision 1.60 | mwedel | 2001/07/13 23:11:18 | +45 -48 |
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.59 and 1.60 | |||
Revision 1.59 | gros | 2001/06/30 14:36:42 | +3 -3 |
Corrected map-corruption problem with the Town Portal - Gros 2001-06-30 | |||
Show difference between Revision 1.58 and 1.59 | |||
Revision 1.58 | 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.57 and 1.58 | |||
Revision 1.57 | michtoen | 2001/06/13 05:52:08 | +261 -2 |
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.56 and 1.57 | |||
Revision 1.56 | michtoen | 2001/06/11 13:47:27 | +3 -2 |
change HANDLE to CF_HANDLE | |||
Show difference between Revision 1.55 and 1.56 | |||
Revision 1.55 | mwedel | 2001/06/04 01:41:02 | +6 -6 |
Checkin of code that supports larger map sizes (configurable in config.h). common/los.c: update los code since it only handled 11x11 maps. Now uses formulatic approach so any map size should be supported. This does result in a few more spaces getting blocked around corners, but it doesn't seem that bad - certainly not compared to the ability to have larger viewable maps. common/map.c, crossedit/CrEdit.c, crossedit/Edit.c, include/global.h, include/map.h,random_maps/monster.c,random_maps/special.c, random_maps/standalone.c, server/apply.c,server/c_misc.c, server/spell_effect.c,socket/info.c: change mapx,mapy to what they really point to, as it prevented using those as variable/structure element names. common/object.c: update_position - if faces for different layers are duplicate, set the duplicates to be blank to increase client update efficiency. doc/Protocol: Add map1 command description, update setup command to describe setting of mapsize. include/config.h: add MAP_CLIENT_X/Y to set maximum map size we can send to the client. include/newserver.h: add mapx, mapy values to socket structure include/player.h: Use MAP_CLIENT_X/Y for sizing arrays that hold map related information in player structure. server/player.c: As per player.h above, use appropriate sizing when initializing player stucture. server/shop.c: Update mapx,mapy like above, but re-do shop listings code as it was doing a lot more work than necessarily (I think some changes got put in for sorting, and the old object manipulation was never removed when that got done) socket/init.c: set default client map size to 11x11 in the socket. socket/item.c: LookAt - change checks for position checking (such that you can only look at things in bounds) use max viewable map size. socket/request.c: Make setup commands a little more forgiving if there are extra spaces. Add 'mapsize' command to setup command. Update old map sending code to use socket map sizes (to support even smaller than normal maps, or 13x13 or 15x15 maps). add draw_client_map1 command which implements the map1 protocol command. MSW 2001-06-03 | |||
Show difference between Revision 1.54 and 1.55 | |||
Revision 1.54 | mwedel | 2001/05/28 23:41:54 | +30 -71 |
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.53 and 1.54 | |||
Revision 1.53 | mardahl | 2001/05/25 02:23:32 | +8 -3 |
Bugfix: the unnecessarily complicated formula for calculating speed of a weapon broke for a player on CSUA, producing a zero-speed weapon. After looking at the incomprehensible expression for calculating the speed of a weapon, I decided to put in a simpler expression. --PeterM 05/25/2001 | |||
Show difference between Revision 1.52 and 1.53 | |||
Revision 1.52 | mwedel | 2001/05/23 01:14:41 | +3 -1 |
server/pets.c: pet_move - fix formatting to be 4 space indentation. if we remove the monster, free it here instead of having move_monster do it. Add check for was_destroyed after first call to move_ob - crashes have been observed in that function, and I believe that is the cause. server/monster.c: move_monster: let pet_move free the pet if necessary. server/spell_effect.c: Clear sleeping flag of monsters when casting summon pet monster (or other creatures). Some archs have this value on by default, so the monsters don't follow the player until an enemy is found. MSW 2001-05-22 | |||
Show difference between Revision 1.51 and 1.52 | |||
Revision 1.51 | mardahl | 2001/04/26 00:47:31 | +3 -2 |
Fix syntax error which caused the ban on non-player weapon-golems to fail. | |||
Show difference between Revision 1.50 and 1.51 | |||
Revision 1.50 | mardahl | 2001/04/24 03:13:26 | +20 -19 |
Switch the spell of peace to work on the head instead of on the parts. Experience works better this way.... | |||
Show difference between Revision 1.49 and 1.50 | |||
Revision 1.49 | mardahl | 2001/04/18 15:17:22 | +2 -2 |
Prevent monsters from using Dancing Sword or Animate Weapon: they're too powerful at the moment. | |||
Show difference between Revision 1.48 and 1.49 | |||
Revision 1.48 | mardahl | 2001/04/11 03:39:53 | +2 -2 |
Fix the spell of peace (spell_effect) Change the error level from ERROR to DEBUG (button). --PeterM | |||
Show difference between Revision 1.47 and 1.48 | |||
Revision 1.47 | mardahl | 2001/04/06 21:09:38 | +3 -1 |
Small mod to make created food grow lighter with level. | |||
Show difference between Revision 1.46 and 1.47 | |||
Revision 1.46 | mwedel | 2001/03/21 00:03:57 | +11 -3 |
server/spell_effect.c: Change cast_change_attr to find an enemy (and not friend) when casting the curse spell. MSW 2001/03/20 | |||
Show difference between Revision 1.45 and 1.46 | |||
Revision 1.45 | mwedel | 2001/03/19 01:58:10 | +4 -4 |
MSW 2001/03/18: common/init.c: add RESET_LOCATION_TIME initializer to settings structure. include/config.h: Add RESET_LOCATION_TIME value. If nonzero and the save was longer than the specified time in seconds, player will be returned home upon login from save. include/global.h: Add reset_loc_time field to settings structure. server/login.c: Remove some unused variables, add support to return player home as described above. server/spell_effect.c: Fix for crashes when casting control undead and your god does not have an enemy. Now properly check to make sure we are not dereferencing null pointers. | |||
Show difference between Revision 1.44 and 1.45 | |||
Revision 1.44 | mwedel | 2001/03/16 23:03:08 | +4 -1 |
MSW 2001/03/16: Change code so that if player dies and loading the players savebed map does not work, return player to EMERGENCY_MAPPATH instead. New function added to server/main.c called enter_player_savebed which does the work, Files changed: include/sproto.h server/main.c server/player.c server/spell_effect.c (comment added) Unrelated change: Remove messages about multiple resist types set. Files changed: common/loader.l common/loader.c | |||
Show difference between Revision 1.43 and 1.44 | |||
Revision 1.43 | mwedel | 2001/03/15 23:45:40 | +2 -2 |
MSW 2001/03/15: server/spell_effect.c: Add physical attacktype when casting holy possession. Otherwise, characters who use karate end up not being able to damaage anything. | |||
Show difference between Revision 1.42 and 1.43 | |||
Revision 1.42 | mwedel | 2001/03/07 01:24:30 | +4 -3 |
MSW 2001/03/06: server/spell_effect.c: Fix message when consecration fails - use the ob->name field and not the ob->title field. Also fix broken logic that checked for the floor. server/init.c: Related to 3-4 change which changed the default name of the logfile to "" so we know to use stderr. This doesn't work for daemon mode, so if the name is "", we use the default logfile instead. | |||
Show difference between Revision 1.41 and 1.42 | |||
Revision 1.41 | peterm | 2001/01/29 23:06:00 | +4 -1 |
Counterspell won't wipe out your own spells. | |||
Show difference between Revision 1.40 and 1.41 | |||
Revision 1.40 | avogl | 2001/01/25 18:59:09 | +10 -8 |
spell_effect.c: Modified polymorph spell: It will no longer bring up items that are either value=0 or startequip 1. This shall prevent polymorph handing out the gods' relicts. spell_util.c Modified ball lightning/divine shock: When this spell is casted by a player, it will hunt monsters/generators only (just like it used to). But when the spell is casted by non-player (monster/firewall/rune), it will track players only. This will re-enable ball lightnings as anti-player weapon in certain maps. | |||
Show difference between Revision 1.39 and 1.40 | |||
Revision 1.39 | cvs | 2000/12/27 01:53:35 | +44 -25 |
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.38 and 1.39 | |||
Revision 1.38 | peterm | 2000/12/19 00:54:52 | +2 -2 |
Re-inserted the Spell of Conflict fixed a bug in attack.c | |||
Show difference between Revision 1.37 and 1.38 | |||
Revision 1.37 | avogl | 2000/12/18 11:43:30 | +5 -2 |
player.c: Hopefully fixed a bug related to dying on battleground. spell_effect.c: The spell "word of recall" will now point to the players's last-applied savebed. This will make players more independant from Scorn. | |||
Show difference between Revision 1.36 and 1.37 | |||
Revision 1.36 | avogl | 2000/12/15 09:42:36 | +42 -21 |
server/attack.c: Acid will only corrode equipment while the player has less than 50% acid resist. Note that acid corrosion makes players feel *very* unappy since there is no way to reverse the process yet. Outcommented the deathstrike-debug message. It used to spam the log like crazy. server/spell_util.c: server/time.c: Patch for spell/missile reflecting: The "reflect spell/missile" flag does no longer provide living creatures with perfect immunity to projectiles. There is a missing chance of: 10% + level of projectile / 10 This does apply for all kinds of magic bullets/missiles, arrows, bolts and thrown objects. Smite spells and bolt spells are not affected, they will always bounce off. server/spell_effect.c: Done some more cleaning and adjusting for the protection spells. E.g. it is no longer possible to have both a god's blessing and a holy possession in effect. Also removed is the ability to add holy bless/poss. effects of more than one god to a char. | |||
Show difference between Revision 1.35 and 1.36 | |||
Revision 1.35 | avogl | 2000/12/13 21:52:33 | +44 -34 |
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.34 and 1.35 | |||
Revision 1.34 | cvs | 2000/12/10 21:59:49 | +15 -8 |
MSW 2000/12/10: include/config.h: Set ARCHTABLE size to correct value. server/player.c: Have server send update item to client for players face while select class. Added esrv_new_player in Roll_Again, because without it, the client had yet to receive information on what tag the player was so could not make sense of the updated face. server/spell_effect.c: Balance issues for polymorph. Reduce maximum value for high valued objects, remove ability to polymorph generators, put maximum level on polymorphed monsters and give them saving throws against the effects. | |||
Show difference between Revision 1.33 and 1.34 | |||
Revision 1.33 | peterm | 2000/12/09 17:56:02 | +13 -6 |
Most forces will just refresh and not reinforce when cast multiple times, excpt armour. | |||
Show difference between Revision 1.32 and 1.33 | |||
Revision 1.32 | cvs | 2000/12/03 18:40:05 | +210 -167 |
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.31 and 1.32 | |||
Revision 1.31 | peterm | 2000/11/23 19:16:01 | +2 -2 |
Commented out all the FLAG_BERSERK stuff. Attempt to add FLAG_BERSERK properly failed, so do this for now. | |||
Show difference between Revision 1.30 and 1.31 | |||
Revision 1.30 | peterm | 2000/11/19 18:59:16 | +37 -1 |
New spells added: conflict vitriol ironwood skin. | |||
Show difference between Revision 1.29 and 1.30 | |||
Revision 1.29 | peterm | 2000/11/19 01:33:30 | +52 -17 |
PeterM: Implementation of: 1) sanctuary 2) holy rage 3) peace 4) forked lightning 5) flaming aura 6) spiderweb | |||
Show difference between Revision 1.28 and 1.29 | |||
Revision 1.28 | peterm | 2000/11/18 17:19:31 | +8 -3 |
PeterM: some repairs to sanctuary and flaming aura. | |||
Show difference between Revision 1.27 and 1.28 | |||
Revision 1.27 | peterm | 2000/11/17 21:32:34 | +61 -3 |
10 new spells skeleton added to spellist.h and spells.h: SP_SANCTUARY, SP_PEACE, SP_SPIDERWEB SP_CONFLICT, SP_RAGE, SP_FORKED_LIGHTING SP_POISON_FOG, SP_FLAME_AURA, SP_VITRIOL Of these, SP_SANCTUARY and SP_FLAME_AURA are partially implemented. These two require archetypes yet. | |||
Show difference between Revision 1.26 and 1.27 | |||
Revision 1.26 | peterm | 2000/11/17 05:16:45 | +2 -2 |
New spell added, Windstorm. It pushes objects, mostly, and does a little damage. define.h: NROFREALSPELLS++ spellist.h spells.h: "windstorm" archetypes: new arch added for windstorm disease.c: comment on new title parameter. spell_effect.c, sproto.h spell*.c: implmenetation of windstorm. | |||
Show difference between Revision 1.25 and 1.26 | |||
Revision 1.25 | jec | 2000/11/06 17:06:47 | +4 -9 |
* stop_item() / attack fix patch 2000-11-06 | |||
Show difference between Revision 1.24 and 1.25 | |||
Revision 1.24 | peterm | 2000/10/20 14:19:39 | +3 -3 |
Moderated instant-death for players who cast too negative a prayer. | |||
Show difference between Revision 1.23 and 1.24 | |||
Revision 1.23 | peterm | 2000/10/05 18:25:52 | +3 -1 |
PeterM: 1) Diseases moderated in power by ~1/2 and randomized. Now monsters can have a mild/moderate/serious/fatal case of a particular disease. 2) cause disease spells modified to NOT go through objects spells ordinarily couldn't go through. | |||
Show difference between Revision 1.22 and 1.23 | |||
Revision 1.22 | jec | 2000/06/09 07:01:47 | +23 -41 |
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.21 and 1.22 | |||
Revision 1.21 | cvs | 2000/06/08 19:17:22 | +2 -2 |
Various improvements from jhantin@derringer.net: * fixed reversed strstr() calls * added a 'force' argument to infect_object(): if set, skip disease wc roll * pulled disease susceptibility checking out into its own function * diseases in an immune carrier last forever * diseased needles use infect_object() with the force flag set * cast_cause_disease() sets the force flag so it always catches on the first try * NDI_UNIQUE on "You infect %s with %s!" only if you infect a player | |||
Show difference between Revision 1.20 and 1.21 | |||
Revision 1.20 | jec | 2000/06/08 11:08:41 | +64 -57 |
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.19 and 1.20 | |||
Revision 1.19 | cvs | 2000/06/04 17:26:08 | +6 -2 |
Modified disease to allow self-limiting in generations. If armour > 0, wc (contageousness) is reduced by armour every time someone new is infected. | |||
Show difference between Revision 1.18 and 1.19 | |||
Revision 1.18 | jec | 2000/05/29 11:31:26 | +4 -2 |
lib/checkarch.pl: Check for archetypes with type FIRECHEST but no level. - Jan Echternach 5/29/2000 server/apply.c: move_apply(): Added handling of THROWN_OBJ, CANCELLATION and BALL_LIGHTNING. server/spell_effect.c: cancellation(): Traverse inventory of objects with type THROWN_OBJ. - Jan Echternach 5/29/2000 server/player.c: fire_bow() and server_skills.c: do_throw(): Bugfix: Don't use op->count of freed objects. Use was_destroyed() to check for freed objects instead of QUERY_FLAG (FLAG_FREED). - Jan Echternach 5/29/2000 server/spell_util.c: fire_a_ball(): Bugfixes: Use op->other_arch as the archetype to fire, not FBULLET. (-> Firechests now cast fire balls again, not snowballs.) Set level of fired archetype. Check if object was destroyed after insert_ob_in_map(). - Jan Echternach 5/29/2000 server/time.c: move_firewall() and move_firechest(): Do nothing if object has no map. Fixes server crashes if a dm creates such a thing in the inventory. - Jan Echternach 5/29/2000 | |||
Show difference between Revision 1.17 and 1.18 | |||
Revision 1.17 | cvs | 2000/05/27 01:02:58 | +4 -4 |
include/define.h: Add MIN_ACTIVE_SPEED value to determine what threshold something will be put on the active list or not instead of using varying values throughout the source code. common/item.c, common/object.c, server/monster.c, server/pets.c, server/spell_effect.c: Updated to use the MIN_ACTIVE_SPEED instead of hardcoded values. MSW 5/26/2000 | |||
Show difference between Revision 1.16 and 1.17 | |||
Revision 1.16 | jec | 2000/05/26 06:05:45 | +2 -1 |
* server/spell_effect.c: animate_weapon() and server/spell_util.c: summon_monster(): Bugfix: Set FLAG_FRIENDLY for friendly objects. | |||
Show difference between Revision 1.15 and 1.16 | |||
Revision 1.15 | jec | 2000/05/26 04:50:49 | +36 -39 |
* apply() cleanup patch 26/5/2000 | |||
Show difference between Revision 1.14 and 1.15 | |||
Revision 1.14 | cvs | 2000/05/16 22:51:15 | +2 -2 |
Fix server/spell_effect.c - was assigning altar->other_arch to an object and not archetype MSW 5/16/2000 | |||
Show difference between Revision 1.13 and 1.14 | |||
Revision 1.13 | jec | 2000/05/16 12:44:00 | +3 -4 |
See CHANGES file. | |||
Show difference between Revision 1.12 and 1.13 | |||
Revision 1.12 | jec | 2000/05/15 15:57:45 | +3 -1 |
See CHANGES file. | |||
Show difference between Revision 1.11 and 1.12 | |||
Revision 1.11 | cvs | 2000/04/27 02:35:01 | +41 -34 |
common/arch.c, common/loader.l (loader.c): Modify the load routines to strip off trailing whitespace in object names and other_arch fields - I believe this is why altars to Sorig did not generally work, and while generally that white space should not exist, doing a little extra checking for it is not a bad idea - MSW 4/26/2000 Add HOLY_ALTAR type, and use that for praying over for gods and the like. doc/crossfire.doc: Add description of HOLY_ALTAR type and meaning of fields. common/map.c: Disable consecration code for altars. include/define.h: Add type for HOLY_ALTAR include/sproto.h: Update for change of some functions below. server/c_wiz.c: Modify setgod command to call become_follower with proper second arg. server/gods.c: Change become_follower to take object pointer to god instead of name, since the holy_altar has the pointer in its other_arch. Modify pray_at_altar to use the new fields, as well as fixed what seemed to be numerous bugs in that function. sever/skills.c: Change check from ALTAR to HOLY_ALTAR, also change check to see if HOLY_ALTAR is consecrated by looking at the other_arch field. server/spell_effect.c: Update consecrate so that caster must be higher effective level than the altar, also update for differing fields. maps/thomas/sisters/shrine0, map/thomas/sisters/tower0: Remove title from altars on these maps - these were the only two maps using old style altars consecrated to a god. Since it appears the real purpose of the altars on these maps was to trigger something else, they were kept as old style altars. arch/gods/altars (relocated from arch/indoors, as I think the new location makes more logical sense): Update for new fields/format. This also affects lib/archetypes, lib/bmaps.paths, lib/crossfire.xpm, lib/crossfire.cfb lib/adm/archsearch.pl: Modified to hunt out old archetypes - some of the changes could be useful in general cases. MSW 4/26/2000 | |||
Show difference between Revision 1.10 and 1.11 | |||
Revision 1.10 | jec | 2000/04/19 06:46:42 | +5 -4 |
See CHANGES file. | |||
Show difference between Revision 1.9 and 1.10 | |||
Revision 1.9 | jec | 2000/04/17 09:18:13 | +3 -4 |
See CHANGES file. | |||
Show difference between Revision 1.8 and 1.9 | |||
Revision 1.8 | cvs | 2000/04/13 23:48:19 | +3 -3 |
Cosmetic fixes - updates to rcsid string to include right file name as well as updates to mail address and/or additions to top banner. Mark Wedel 4/13/2000 | |||
Show difference between Revision 1.7 and 1.8 | |||
Revision 1.7 | cvs | 2000/04/04 23:41:50 | +4 -3 |
server/spell_effect.c, magic_wall(): Fix calculation of duration of darkness spell. Before, you could get huge negative speed values with high experience levels, which meant very short duration. Patch by Jan Echternach, applied & checked in by Mark Wedel, 4/4/2000 | |||
Show difference between Revision 1.6 and 1.7 | |||
Revision 1.6 | cvs | 2000/03/27 00:13:53 | +3 -3 |
server/skills.c, server/spell_effect.c: Improve behaviour when identifying items - the identify routine already updates the client if it is in the players inventory, so only send update to client if the item is on the map. Also, do full item update, as many fields may change, and that is what the identify function does. Standard top of file banner also added to skills.c file. Bug and initial fix of item updates by Kurt Fitzner, implemented in a bit different way by Mark Wedel. 3/26/2000 | |||
Show difference between Revision 1.5 and 1.6 | |||
Revision 1.5 | cvs | 2000/03/13 23:37:42 | +187 -129 |
Change summon_cult_monster code so that it will no longer summon big monsters on top of walls or the player. Also, if there is not space for a big monster, try to find another pet monster that will fit in the space. File affected: server/spell_effect.c - msw | |||
Show difference between Revision 1.4 and 1.5 | |||
Revision 1.4 | damn | 1999/09/17 14:16:21 | +198 -67 |
- generalized staff_to_snake to animate_weapon --DAMN | |||
Show difference between Revision 1.3 and 1.4 | |||
Revision 1.3 | cvs | 1999/08/06 16:29:54 | +51 -19 |
patches from DAMN for various things: This one makes a couple things level dependent that used to be fixed: 1) time it takes Word of Recall to take effect 2) amount of energy transferred by Transferrence spell 3) percentage of energy drained by Magic Drain spell Also, the following effects have been modified: 1) Followers of a cult that considers undead enemies have a penalty to Command Undead. 2) Magic Drain gives back to the caster a small portion of the energy drained from the victim. And a bug was fixed: 1) SP_level_dam_adjust used and SP_level_strength_adjust used the player's level, where they should have used the caster's level. | |||
Show difference between Revision 1.2 and 1.3 | |||
Revision 1.2 | cvs | 1999/07/13 01:03:04 | +0 -0 |
Global commit for 0.95.4 - most files have no changes but just have differing headers between my local RCS and the CVS versions and need to get synced up. | |||
Show difference between Revision 1.1 and 1.2 | |||
Revision 1.1 | uid200 | 1999/04/02 13:10:04 | None |
Initial revision | |||
First version | |||
Revision 1.1.1.1 | uid200 | 1999/04/02 13:10:04 | +0 -0 |
First CVS revsion: crossfire-0.95.3 | |||
Show difference between Revision 1.1 and 1.1.1.1 | |||
Revision 1.51.2.1 | mwedel | 2001/05/24 23:08:04 | +3 -1 |
doc/metaserver, doc/Makefile.in: Add metaserver file which describes working of metaserver and format of data fields. socket/metaserver.c: Add reporting of inbytes, output bytes, and uptime in seconds to notification of metaserver server/spell_util.c: Fix typo in polymorph code (when enabled in config.h) server/disease.c: replace disease->owner check with get_owner. MSW 2001-05-24 | |||
Show difference between Revision 1.51 and 1.51.2.1 | |||
Revision 1.105.2.1 | mwedel | 2003/09/23 00:38:31 | +2 -2 |
Fix cast_charm_undead so it doesn't crash if there is no god. This is only a problem in the rel-1-5-0-patch branch, as the code was completely redone for main branch. Fixes crash seen on metalforge. MSW 2003-09-22 | |||
Show difference between Revision 1.105 and 1.105.2.1 |