version 1.28 | | version 1.29 |
---|
| | |
/* | | /* |
* static char *rcsid_spell_attack_c = | | * static char *rcsid_spell_attack_c = |
* "$Id: spell_attack.c,v 1.28 2005/11/30 21:16:07 akirschbaum Exp $"; | | * "$Id: spell_attack.c,v 1.29 2005/12/01 08:25:45 mwedel Exp $"; |
*/ | | */ |
| | |
| | |
| | |
| | |
mflags = get_map_flags(op->map,&m, op->x, op->y, &sx, &sy); | | mflags = get_map_flags(op->map,&m, op->x, op->y, &sx, &sy); |
| | |
if ( !OB_TYPE_MOVE_BLOCK(op, GET_MAP_MOVE_BLOCK(m, sx, sy))) | | if (!(mflags & P_IS_ALIVE) && !OB_TYPE_MOVE_BLOCK(op, GET_MAP_MOVE_BLOCK(m, sx, sy))) |
return; | | return; |
| | |
if (op->other_arch) { | | if (op->other_arch) { |
| | |
| | |
mflags = get_map_flags(op->map, &m, new_x, new_y, &new_x, &new_y); | | mflags = get_map_flags(op->map, &m, new_x, new_y, &new_x, &new_y); |
| | |
if (OB_TYPE_MOVE_BLOCK(op, GET_MAP_MOVE_BLOCK(m, new_x, new_y))) { | | if ((mflags & P_IS_ALIVE) || OB_TYPE_MOVE_BLOCK(op, GET_MAP_MOVE_BLOCK(m, new_x, new_y))) { |
tag_t tag = op->count; | | tag_t tag = op->count; |
hit_map (op, op->direction, AT_MAGIC, 1); | | hit_map (op, op->direction, AT_MAGIC, 1); |
/* Basically, missile only hits one thing then goes away. | | /* Basically, missile only hits one thing then goes away. |