… | |
… | |
604 | void |
604 | void |
605 | fix_stopped_item (object *op, maptile *map, object *originator) |
605 | fix_stopped_item (object *op, maptile *map, object *originator) |
606 | { |
606 | { |
607 | if (map == NULL) |
607 | if (map == NULL) |
608 | return; |
608 | return; |
|
|
609 | |
609 | if (QUERY_FLAG (op, FLAG_REMOVED)) |
610 | if (QUERY_FLAG (op, FLAG_REMOVED)) |
610 | insert_ob_in_map (op, map, originator, 0); |
611 | insert_ob_in_map (op, map, originator, 0); |
611 | else if (op->type == ARROW) |
612 | else if (op->type == ARROW) |
612 | merge_ob (op, NULL); /* only some arrows actually need this */ |
613 | merge_ob (op, NULL); /* only some arrows actually need this */ |
613 | } |
614 | } |
614 | |
|
|
615 | |
615 | |
616 | object * |
616 | object * |
617 | fix_stopped_arrow (object *op) |
617 | fix_stopped_arrow (object *op) |
618 | { |
618 | { |
619 | if (rndm (0, 99) < op->stats.food) |
619 | if (rndm (0, 99) < op->stats.food) |
… | |
… | |
648 | op->stats.hp = 0; |
648 | op->stats.hp = 0; |
649 | op->stats.grace = 0; |
649 | op->stats.grace = 0; |
650 | op->level = 0; |
650 | op->level = 0; |
651 | op->face = op->arch->clone.face; |
651 | op->face = op->arch->clone.face; |
652 | op->owner = NULL; /* So that stopped arrows will be saved */ |
652 | op->owner = NULL; /* So that stopped arrows will be saved */ |
653 | update_object (op, UP_OBJ_FACE); |
653 | update_object (op, UP_OBJ_CHANGE); |
654 | return op; |
654 | return op; |
655 | } |
655 | } |
656 | |
656 | |
657 | /* stop_arrow() - what to do when a non-living flying object |
657 | /* stop_arrow() - what to do when a non-living flying object |
658 | * has to stop. Sept 96 - I added in thrown object code in |
658 | * has to stop. Sept 96 - I added in thrown object code in |