… | |
… | |
296 | tmp->stats.Dex = spob->stats.Dex; |
296 | tmp->stats.Dex = spob->stats.Dex; |
297 | tmp->stats.Con = spob->stats.Con; |
297 | tmp->stats.Con = spob->stats.Con; |
298 | |
298 | |
299 | tmp->direction = dir; |
299 | tmp->direction = dir; |
300 | if (tmp->flag [FLAG_IS_TURNABLE]) |
300 | if (tmp->flag [FLAG_IS_TURNABLE]) |
301 | SET_ANIMATION (tmp, dir); |
301 | tmp->set_anim_frame (dir); |
302 | |
302 | |
303 | tmp->set_owner (op); |
303 | tmp->set_owner (op); |
304 | set_spell_skill (op, caster, spob, tmp); |
304 | set_spell_skill (op, caster, spob, tmp); |
305 | |
305 | |
306 | tmp->x = op->x + DIRX (tmp->direction); |
306 | tmp->x = op->x + DIRX (tmp->direction); |
… | |
… | |
642 | tmp->stats.maxhp = spob->range + SP_level_range_adjust (caster, spob); |
642 | tmp->stats.maxhp = spob->range + SP_level_range_adjust (caster, spob); |
643 | tmp->dam_modifier = spob->stats.food + SP_level_dam_adjust (caster, spob); |
643 | tmp->dam_modifier = spob->stats.food + SP_level_dam_adjust (caster, spob); |
644 | |
644 | |
645 | tmp->direction = dir; |
645 | tmp->direction = dir; |
646 | if (tmp->flag [FLAG_IS_TURNABLE]) |
646 | if (tmp->flag [FLAG_IS_TURNABLE]) |
647 | SET_ANIMATION (tmp, dir); |
647 | tmp->set_anim_frame (dir); |
648 | |
648 | |
649 | tmp->set_owner (op); |
649 | tmp->set_owner (op); |
650 | set_spell_skill (op, caster, spob, tmp); |
650 | set_spell_skill (op, caster, spob, tmp); |
651 | |
651 | |
652 | tmp->x = op->x + DIRX (dir); |
652 | tmp->x = op->x + DIRX (dir); |
… | |
… | |
953 | * op is the original bomb object. |
953 | * op is the original bomb object. |
954 | */ |
954 | */ |
955 | void |
955 | void |
956 | animate_bomb (object *op) |
956 | animate_bomb (object *op) |
957 | { |
957 | { |
958 | if (op->state != NUM_ANIMATIONS (op) - 1) |
958 | if (op->state != op->anim_frames () - 1) |
959 | return; |
959 | return; |
960 | |
960 | |
961 | object *env = op->outer_env (); |
961 | object *env = op->outer_env (); |
962 | |
962 | |
963 | if (op->env) |
963 | if (op->env) |
… | |
… | |
998 | tmp->set_owner (op); |
998 | tmp->set_owner (op); |
999 | if (op->skill && op->skill != tmp->skill) |
999 | if (op->skill && op->skill != tmp->skill) |
1000 | tmp->skill = op->skill; |
1000 | tmp->skill = op->skill; |
1001 | |
1001 | |
1002 | if (tmp->flag [FLAG_IS_TURNABLE]) |
1002 | if (tmp->flag [FLAG_IS_TURNABLE]) |
1003 | SET_ANIMATION (tmp, i); |
1003 | tmp->set_anim_frame (1); |
1004 | |
1004 | |
1005 | op->map->insert (tmp, op->x + DIRX (i), op->y + DIRX (i), op); |
1005 | op->map->insert (tmp, op->x + DIRX (i), op->y + DIRX (i), op); |
1006 | move_bullet (tmp); |
1006 | move_bullet (tmp); |
1007 | } |
1007 | } |
1008 | } |
1008 | } |
… | |
… | |
1240 | |
1240 | |
1241 | int i = spell_find_dir (pos.m, pos.x, pos.y, op->owner); |
1241 | int i = spell_find_dir (pos.m, pos.x, pos.y, op->owner); |
1242 | if (i > 0 && i != op->direction) |
1242 | if (i > 0 && i != op->direction) |
1243 | { |
1243 | { |
1244 | op->direction = i; |
1244 | op->direction = i; |
1245 | SET_ANIMATION (op, op->direction); |
1245 | op->set_anim_frame (op->direction); |
1246 | } |
1246 | } |
1247 | |
1247 | |
1248 | pos.insert (op, op); |
1248 | pos.insert (op, op); |
1249 | } |
1249 | } |
1250 | |
1250 | |