--- crossfire/server ---


Protocol:pserver User:anonymous
Machine:crossfire.cvs.sourceforge.net CVSROOT:/cvsroot/crossfire

Filename: gods.c
Revision 1.63qal21 2006/09/06 18:38:50 +2 -2
Make get_god_for_race() safe for gods without races.
Show difference between Revision 1.62 and 1.63
Revision 1.62gros 2006/07/21 07:39:54 +14 -3
Modified the way the "undead" flag is removed from the player when changing god. This fixes bug #1157459;
now, the player should recover its initial race after leaving the Devourers for another god.
- gros 2006/07/21
Show difference between Revision 1.61 and 1.62
Revision 1.61mwedel 2006/06/05 01:28:56 +10 -2
Clean up some compiler warnings. Most of the changes are related to replaced
%lld with FMT64 defines so that the format will be correct, no matter if
the 64 bit type is a long, long long, or if this is windows. #if 0 out a
bunch of code that isn't used.
--
common/exp.c: Replaced lld with FMT64
common/holy.c: #if 0 out baptize_altar(). Add banner copyright at top of file.
common/info.c, common/item.c, common/loader.l, common/loader.c, common/map.c:
common/porting.c Replaced lld with FMT64
common/time.c: Replace a bunch of variables declared as longs to be uint32.
Update various sprintf appropriately.
include/global.h: Add FMT64 and FMT64U as appropriate for different systems.
Change max_time to be a uint32
include/sockproto.h, include/sproto.h: rebuilt
server/apply.c: #if 0 out monster_apply_special
server/c_range.c: Add != 0 in assignment if statement - same meaning, clearer
on intention and avoids compiler warning.
server/c_wiz.c: Update command_kick() to take const char. Update command_speed()
to operate properly based on max_time being a uint32. Update various lld
to FMT64. Clarify ambiguous if/if/else statement in command_insert_into()
server/commands.c: Add cast to command_kick for new function prototype. #if
0 out find_command(), parse_string(), parse_command()
server/disease.c: #if 0 out find_disease(), reduce_symptoms()
server/egoitem.c: #if 0 out create_artifact(). Add copyright at top of file.
server/gods.c: #if 0 out get_god()
server/hiscore.c: Replace lld with FMT64
server/login.c: #if 0 out create_savedir_if_needed()
server/resurrection.c: Replace lld with FMT64. #if 0 out dead_character() and
dead_player_exists()
server/server.c: Remove info_keys() - hasn't been used in a long time. #if 0
out process_active_maps()
server/skill_util.c: Replace lld with FMT64
server/spell_util.c: #if 0 out check_spell_effect()
server/weather.c: #if 0 out feather_map(). Fix what I suspect is an error
in worldmap_to_weathermap() to skip over starting slashes.
socket/image.c: Add a fair number of char * casts to suppress warnings.
socket/init.c: Change buflen in init_connection() to socklen_t to match
function prototype. Add some char * casts.
socket/loop.c: Add some char * casts.
--
MSW 2006-06-04
Show difference between Revision 1.60 and 1.61
Revision 1.60ryo_saeba 2006/05/05 04:26:35 +18 -10
First part of patch #1453869 courtesy Stefan Huehner (shuehner)
Show difference between Revision 1.59 and 1.60
Revision 1.59tchize 2006/04/06 16:18:35 +6 -6

finished common/arch.c unit test, fixed a few bugs, moved function around and renamed other
Show difference between Revision 1.58 and 1.59
Revision 1.58akirschbaum 2006/01/07 12:56:51 +2 -2
Use named constants instead of numbers.
Show difference between Revision 1.57 and 1.58
Revision 1.57akirschbaum 2006/01/01 07:03:07 +3 -1
Properly unready forgotten spells. Prevents crashing the server if casting a
forgotten spell.
Show difference between Revision 1.56 and 1.57
Revision 1.56akirschbaum 2005/11/01 12:56:37 +8 -3
Fix bug #1082534 (monks with weapons): Now monks properly are denied from
using weapons. Only newly created monks are affected since it now relies on a
force named "no weapon force" in the player's inventory. The problem was that
become_follower() assumed it was the only means do allow/disallow weapon use.
Show difference between Revision 1.55 and 1.56
Revision 1.55gros 2005/10/18 11:54:31 +8 -35
Upgrade of the Crossfire server to version 2.0 of the plugin interface.
Upgrade of the Python plugin to version 2.0 of the plugin interface.
Gros - 18/10/05
Show difference between Revision 1.54 and 1.55
Revision 1.54ryo_saeba 2005/10/16 03:48:30 +4 -4
Don't stack WoR effects. Don't display 'can't recast xx' message for divine intervention
Show difference between Revision 1.53 and 1.54
Revision 1.53ryo_saeba 2005/09/25 04:47:23 +3 -2
Fix some compilation warnings.
Show difference between Revision 1.52 and 1.53
Revision 1.52akirschbaum 2005/08/14 14:06:19 +13 -9
server/gods.c: Fix crash for monsters without appropriate god.
Show difference between Revision 1.51 and 1.52
Revision 1.51akirschbaum 2005/08/14 13:21:01 +3 -2
server/gods.c: Add missing braces around body of if statement.
Show difference between Revision 1.50 and 1.51
Revision 1.50cavesomething 2005/08/12 18:16:31 +39 -10
Change the way NPCs are allocated gods
Show difference between Revision 1.49 and 1.50
Revision 1.49ryo_saeba 2005/08/12 08:46:34 +3 -3
Fields changed from char* to const char*, cleanup.
Show difference between Revision 1.48 and 1.49
Revision 1.48ryo_saeba 2005/08/12 03:18:59 +5 -5
Use const char* instead of char* when possible
Show difference between Revision 1.47 and 1.48
Revision 1.47ryo_saeba 2005/08/10 08:38:31 +2 -2
Use ARCH_DEPLETION instead of depletion.
Show difference between Revision 1.46 and 1.47
Revision 1.46akirschbaum 2005/07/25 19:23:00 +3 -1
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.45 and 1.46
Revision 1.45akirschbaum 2005/02/20 14:43:15 +4 -2
common/object.c, include/libproto.h: change nrof parameter of get_split_ob to
uint32 type.
server/c_object.c, include/sproto.h: change nrof parameter of drop_object to
uint32 type.
plugin/{plugin_python.c, include/plugin_python.h},
plugin_animator/{plugin_animator.c, include/plugin_animator.h},
server/{apply.c, attack.c, gods.c, monster.c, player.c, skills.c, time.c,
timers.c}: Change type of CFParm.Value[5] and StackParm1[] to uint32 to be
able to pass an "nrof" value.
Show difference between Revision 1.44 and 1.45
Revision 1.44akirschbaum 2004/11/15 11:58:08 +3 -3
Fix comment.
Show difference between Revision 1.43 and 1.44
Revision 1.43mwedel 2004/05/20 00:50:00 +7 -1
include/book.h: Increase the size of BOOK_BUF, so inscribed books can hold
more informatin.
lib/Makefile.am, lib/Makefile.in: Add the 'rename' to the list of help
files.
lib/archetypes: update the glyph/rune spells to have proper face.
lib/bmaps, lib/crossfire.* - add glyph.111 image.
server/gods.c: Modify tailor_god_spell() to look harder to find a god -
necessary for glyph spells.
server/spell_attack.c: Give players 50% of exp for monsters they charm.
MSW 2004-05-19
Show difference between Revision 1.42 and 1.43
Revision 1.42ryo_saeba 2004/04/18 04:32:30 +66 -26
Update comments, doxygen format
Show difference between Revision 1.41 and 1.42
Revision 1.41mwedel 2004/04/18 02:59:36 +18 -5
common/button.c: Patch by Bernd Edler to have proper speed set for items
activated by buttons.
server/apply.c: Apply the 'special prayer' marker stuff, since it wasn't
used anymore.
server/gods.c: Check for FLAG_EQUIP on spells and not for a special prayer
marker to guess if a spell is a god given spell or not.
server/spell_util.c: Patch by Bernd Edler so that firewalls are immune
to casting time.
MSW 2004-04-17
Show difference between Revision 1.40 and 1.41
Revision 1.40mwedel 2004/02/22 19:21:28 +5 -4
lib/*: different spell for dragons vs players for firebreath - update
treasures so monsters use ability version.
server/gods.c: Add missing call to link_player_skills(), resulting in players
having multiple praying skills.
server/skill_util.c: Change learn_skill() so we don't create a skill pointer
for the player if they didn't learn the skill (even if they can't use
such a created skill, it is still a bit confusing). Fix finding of
hand to hand skills to make sure the player can in fact use the skill
in question.
MSW 2004-02-22
Show difference between Revision 1.39 and 1.40
Revision 1.39ryo_saeba 2004/02/08 11:07:08 +9 -4
Object weight limit, become fellower bug
Show difference between Revision 1.38 and 1.39
Revision 1.38mwedel 2003/11/09 23:39:50 +22 -17
bulk of this is to fix exp loss when changing gods if you have more than
2 billion exp, removal of spells when you switch levels, and not giving you
all new spells when you switch religions.
--
common/living.c: Update exp functions to be fully 64 bit aware. Don't
take away from player total exp if SK_SUBTRACT_SKILL_EXP is passed in.
common/utils.c: Add 64 bit version of random_roll(), called random_roll64()
lib/treasures: Make indentation consistent for some treasures.
server/apply.c: Use the FLAG_STARTEQUIP to denote god given spells, instead
of using special prayer markers. This simplifies the spell learning
and removal code.
server/gods.c: Make exp loss for changing religions 64 bit compliant.
Fix become_follower() so that it doesn't give all the new gods special
spells if you switch religions. Fix code so that it properly removes
all special prayers from previous god, and also print out message on what
spells you lost. Don't set the prayer skill as applied in various
areas - this results in two skills being applied, which isn't proper.
MSW 2003-11-09
Show difference between Revision 1.37 and 1.38
Revision 1.37mwedel 2003/09/13 00:02:10 +331 -351
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.36 and 1.37
Revision 1.36gros 2003/06/26 06:27:43 +7 -6
Re-implemented the event hooks in objects as a dynamically linked list,
instead of a static table.
Show difference between Revision 1.35 and 1.36
Revision 1.35garbled 2002/12/12 23:09:49 +3 -2
Fix a typo in the attacktype bow->arrow transfer. Make it so gods can
now bless bows like they would any other weapon. Make slaying transfer
fom the bow to the arrow, so the god enchantment is not lost.
Show difference between Revision 1.34 and 1.35
Revision 1.34garbled 2002/11/26 02:48:20 +2 -3
Get rid of #ifdef PLUGINS (it is on by default, I didn't take out gros's
code)
Show difference between Revision 1.33 and 1.34
Revision 1.33garbled 2002/11/26 01:55:24 +1 -9
remove MORE_PRIEST_GIFTS MULTIPLE_GODS ifdefs
Show difference between Revision 1.32 and 1.33
Revision 1.32mwedel 2002/10/12 00:34:29 +4 -3
Experience cleanup - the main functional change is that no upper limit of
exp in an individual skill, save for the limit that there is an upper
limit of total exp a player can have. Thus, if a player concentrates
complete in one skill, he could get to level 110 in it. A lot of
code cleanup was done - so much had gotten added to the exp code that it
was a real mess.
common/living.c: re-arrange some of the code, so all the exp related
functions are together. remove adjust_exp(), change check_dm_add_exp_to_obj()
to check_exp_adjust. Add new functions add_player_exp(), check_exp_loss(),
check_exp_add(), subtract_player_exp().
include/libproto.h: rebuilt.
server/c_wiz.c: Update command_addexp() to use new exp functions.
server/gods.c: Update lose_priest_exp() to use new exp functions.
MSW 2002-10-11
Show difference between Revision 1.31 and 1.32
Revision 1.31mwedel 2002/07/14 23:25:40 +4 -3
Update banner copyright with proper contact information.
MSW 2002-07-14
Show difference between Revision 1.30 and 1.31
Revision 1.30mwedel 2002/06/07 02:00:45 +5 -5
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.29 and 1.30
Revision 1.29mwedel 2002/04/24 01:31:49 +18 -4
crossedit/xutil.c: Update to use name of png file.
lib/archetypes: collected - pl_dragon arch changed a while back, with no
new collect.
lib/collect.pl.in: Add some notes about usage if no option is given or
if --help is given.
server/gods.c: Fix that resulted in weapon/armor restrictions not working.
MSW 2002-04-23
Show difference between Revision 1.28 and 1.29
Revision 1.28michtoen 2001/10/29 20:30:20 +5 -5
Remove a bug, reset some modules
Show difference between Revision 1.27 and 1.28
Revision 1.27michtoen 2001/10/29 18:49:02 +6 -6
really SOME fixes - most casting
Show difference between Revision 1.26 and 1.27
Revision 1.26garbled 2001/10/15 16:12:08 +2 -2
Remove all instances of RANDOM()% and replace with rndm() from utils.c

garbled 2001-10-15
Show difference between Revision 1.25 and 1.26
Revision 1.25gros 2001/10/14 02:57:14 +29 -14
Major changes: Added dynamic plugin support, removed old Guile support.
- Gros 10/14/01
Show difference between Revision 1.24 and 1.25
Revision 1.24garbled 2001/09/26 16:34:08 +16 -12
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.23 and 1.24
Revision 1.23avogl 2001/09/20 11:44:37 +76 -10
Included the new patch that removes godgiven
items when changing cults.
The treasurelist of the former god is read and
any matching items in the players inventory get
deleted.
This is very important to keep playbalance up
(Especially considering Gaea's powerful gifts).
--Andreas V.
Show difference between Revision 1.22 and 1.23
Revision 1.22michtoen 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.21 and 1.22
Revision 1.21michtoen 2001/06/13 05:51:37 +55 -32
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.20 and 1.21
Revision 1.20mwedel 2001/05/28 23:41:53 +1 -4
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.19 and 1.20
Revision 1.19mardahl 2001/05/03 04:09:07 +2 -2
Fix a bug spotted by Jan. code for moving players could fail
for some directions.
Show difference between Revision 1.18 and 1.19
Revision 1.18mardahl 2001/04/28 01:19:54 +6 -1
Toss someone off of an altar if he's praying at the wrong altar.
Changing religion is still possible by getting back on.

PeterM
Show difference between Revision 1.17 and 1.18
Revision 1.17avogl 2001/04/19 10:40:26 +3 -3
Fixed a TERRIBLE bug in the god code:
When a player (created under 0.96.0 code) changed gods,
he lost all his experience objects.
That means the character gets screwed completely and
irreversible (except by editing player files).

Puh, thank heavens I found that bug.
--AV
Show difference between Revision 1.16 and 1.17
Revision 1.16peterm 2001/01/11 00:37:59 +25 -6
Some changes allowing Ruggilli's immolation ability to be
inserted on conversion and withdrawn on reconversion.
Show difference between Revision 1.15 and 1.16
Revision 1.15avogl 2001/01/09 17:50:37 +4 -22
Fixed a terrible bug about special prayers:
Players always lost ALL spells on god-intervention!
That happened due to several bugs in the new
god functions.
Well, after this patch it should work as intended.
Show difference between Revision 1.14 and 1.15
Revision 1.14avogl 2001/01/01 17:09:32 +4 -3
Minor adjustments to the chance of a god-intervention
to happen. It was a tick too low for low/medium-level
priests.
Show difference between Revision 1.13 and 1.14
Revision 1.13cvs 2000/12/27 01:53:35 +431 -221
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.12 and 1.13
Revision 1.12avogl 2000/12/16 17:32:14 +12 -3
gods.c:

Fixed a problem concerning PR: The god's
immunities must not always be transferred to
the players joining the cult. For example:
Sorig has elec +100%, but the player shall only
get +30%.

player.c:

Small mod, to make the new mini-playguides not
startequip 1. So players can keep them and
even pass them around.
Show difference between Revision 1.11 and 1.12
Revision 1.11cvs 2000/12/03 18:40:05 +3 -3
Checking for partial resistance code. Various minor errors also fixed
(compiler warnings, unused variables, Makefile.in changes, etc).
PR code also includes support to send protections to the client.
Show difference between Revision 1.10 and 1.11
Revision 1.10mids 2000/10/24 18:01:19 +11 -1
dnh's god aligned weapon patch. Weapons can only get the specials of one god.
Show difference between Revision 1.9 and 1.10
Revision 1.9jec 2000/06/08 11:08:41 +5 -2
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.8 and 1.9
Revision 1.8jec 2000/05/26 04:50:49 +2 -2
* apply() cleanup patch 26/5/2000
Show difference between Revision 1.7 and 1.8
Revision 1.7jec 2000/05/22 08:06:15 +17 -12
common/object.c: Splitted set_owner() into set_owner_simple() and
set_owner. copy_owner(): New function.
server/spell_util.c: explode_object(): Use copy_owner() instead of setting
skill and experience objects manually. Bugfix: Don't use op->owner
directly (fixed by using the caster in call to SP_level_dam_adjust(),
not the owner, which was wrong anyway).
server/spell_util.c: fire_arch_from_position(): Use copy_owner() instead
of set_owner() if 'op' isn't the real owner but only a spell object
owned by somebody else.
server/spell_util.c: move_swarm_spell(): Use the swarm spell object as
the owner in call to fire_arch_from_position(), which now handles this
case correctly.
server/spell_util.c: fire_swarm(): Call tailor_god_spell().
server/gods.c: determine_god(): op->type==SWARM_SPELL is a spell.
server/gods.c: tailor_god_spell(): op->type==SWARM_SPELL is a spell.
Always abort function if we couldn't find a god. Always add god's
attacktype if the spellop's attacktype has AT_GODPOWER.
Show difference between Revision 1.6 and 1.7
Revision 1.6cvs 2000/04/27 02:35:01 +93 -74
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.5 and 1.6
Revision 1.5cvs 2000/04/13 23:48:19 +4 -4
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.4 and 1.5
Revision 1.4damn 1999/09/17 13:44:43 +32 -24
- minor bugfix/cleanup
- luck slightly improves chance of divine intervention
Show difference between Revision 1.3 and 1.4
Revision 1.3cvs 1999/07/30 02:20:16 +21 -4
Hacked in a mod so that players who change religions
lose any special spells they learned from their
former religion. --PeterM
Show difference between Revision 1.2 and 1.3
Revision 1.2cvs 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.1uid200 1999/04/02 13:10:04 None
Initial revision
First version
Revision 1.1.1.1uid200 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


File made using version 1.98 of cvs2html by leaf at 2011-07-21 17:33