On Fri, Nov 24, 2000 at 11:07:21AM -0800, Peter Mardahl wrote: > (gdb) p **hitter [electric dragon] > $16 = {contr = 0x0, next = 0x89df5f0, prev = 0x8c16688, active_next = 0x0, > active_prev = 0x0, below = 0x0, above = 0x0, inv = 0x0, container = 0x0, > env = 0x0, more = 0x0, head = 0x0, map = 0x897e000, count = 0, refcount = 0, > sk_list = 0x0, name = 0x0, title = 0x0, race = 0x0, slaying = 0x0, > msg = 0x0, x = 9, y = 2, ox = 9, oy = 2, speed = 0, > speed_left = -0.100000024, nrof = 0, face = 0x8154050, direction = 0 '\000', > facing = 0 '\000', type = 88 'X', immune = 0, protected = 0, ^^^^^^^^^ CONE object > attacktype = 16384, vulnerable = 0, path_attuned = 0, path_repelled = 0, ^^^^^^^^^^^^^^^^^^ fear spell? Looks like the dragon decided to attack an already freed fear cone. I noticed a small problem in get_enemy(): The return npc->enemy = npc->owner->enemy; should be changed to npc->enemy = npc->owner->enemy; in order to verify that the owner has still a valid enemy. Nothing new apart from that. server/monster.c needs a review for missing was_destroyed() checks. Maybe an "enemy_count" should be added to the object structure. Monsters are casting spells and doing a lot of other things and are expecting that the enemy still exists after that. -- Jan