… | |
… | |
351 | ms.flags_ = 0; |
351 | ms.flags_ = 0; |
352 | } |
352 | } |
353 | else |
353 | else |
354 | { |
354 | { |
355 | f.parse_warn (format ("object %s out of range", op->debug_desc ())); |
355 | f.parse_warn (format ("object %s out of range", op->debug_desc ())); |
|
|
356 | op->destroy_inv (false); // be explicit about dropping |
356 | op->destroy (); |
357 | op->destroy (true); |
357 | } |
358 | } |
358 | } |
359 | } |
359 | |
360 | |
360 | continue; |
361 | continue; |
361 | |
362 | |
… | |
… | |
714 | unique = 1; |
715 | unique = 1; |
715 | |
716 | |
716 | if (op->head_ () == op && (QUERY_FLAG (op, FLAG_UNIQUE) || unique)) |
717 | if (op->head_ () == op && (QUERY_FLAG (op, FLAG_UNIQUE) || unique)) |
717 | { |
718 | { |
718 | op->destroy_inv (false); |
719 | op->destroy_inv (false); |
719 | op->destroy (); |
720 | op->destroy (true); |
720 | } |
721 | } |
721 | |
722 | |
722 | op = above; |
723 | op = above; |
723 | } |
724 | } |
724 | } |
725 | } |
… | |
… | |
815 | |
816 | |
816 | object *head = op->head_ (); |
817 | object *head = op->head_ (); |
817 | if (op == head) |
818 | if (op == head) |
818 | { |
819 | { |
819 | op->destroy_inv (false); |
820 | op->destroy_inv (false); |
820 | op->destroy (); |
821 | op->destroy (true); |
821 | } |
822 | } |
822 | else if (head->map != op->map) |
823 | else if (head->map != op->map) |
823 | { |
824 | { |
824 | LOG (llevDebug, "bad luck for object crossing map borders: %s", head->debug_desc ()); |
825 | LOG (llevDebug, "bad luck for object crossing map borders: %s", head->debug_desc ()); |
825 | head->destroy (); |
826 | head->destroy (true); |
826 | } |
827 | } |
827 | } |
828 | } |
828 | |
829 | |
829 | sfree0 (spaces, size ()); |
830 | sfree0 (spaces, size ()); |
830 | } |
831 | } |
… | |
… | |
936 | destroy = 1; |
937 | destroy = 1; |
937 | } |
938 | } |
938 | |
939 | |
939 | /* adjust overall chance below */ |
940 | /* adjust overall chance below */ |
940 | if (destroy && rndm (0, 1)) |
941 | if (destroy && rndm (0, 1)) |
941 | op->destroy (); |
942 | op->destroy (true); |
942 | } |
943 | } |
943 | } |
944 | } |
944 | |
945 | |
945 | /* |
946 | /* |
946 | * Updates every button on the map (by calling update_button() for them). |
947 | * Updates every button on the map (by calling update_button() for them). |