… | |
… | |
220 | * hidden dm |
220 | * hidden dm |
221 | */ |
221 | */ |
222 | if (OB_MOVE_BLOCK (ob, tmp)) |
222 | if (OB_MOVE_BLOCK (ob, tmp)) |
223 | return 1; |
223 | return 1; |
224 | |
224 | |
225 | if (QUERY_FLAG (tmp, FLAG_ALIVE) |
225 | if (tmp->flag [FLAG_ALIVE] |
226 | && tmp->head_ () != ob |
226 | && tmp->head_ () != ob |
227 | && tmp != ob |
227 | && tmp != ob |
228 | && tmp->type != DOOR |
228 | && tmp->type != DOOR |
229 | && !tmp->flag [FLAG_WIZ] |
229 | && !(tmp->flag [FLAG_WIZ] && tmp->contr->hidden)) |
230 | && tmp->contr->hidden) |
|
|
231 | return 1; |
230 | return 1; |
232 | } |
231 | } |
233 | |
232 | |
234 | } |
233 | } |
235 | return 0; |
234 | return 0; |
… | |
… | |
671 | bool |
670 | bool |
672 | maptile::_load_header (object_thawer &thawer) |
671 | maptile::_load_header (object_thawer &thawer) |
673 | { |
672 | { |
674 | for (;;) |
673 | for (;;) |
675 | { |
674 | { |
676 | keyword kw = thawer.get_kv (); |
675 | thawer.next (); |
677 | |
676 | |
678 | switch (kw) |
677 | switch (thawer.kw) |
679 | { |
678 | { |
680 | case KW_msg: |
679 | case KW_msg: |
681 | thawer.get_ml (KW_endmsg, msg); |
680 | thawer.get_ml (KW_endmsg, msg); |
682 | break; |
681 | break; |
683 | |
682 | |
… | |
… | |
870 | free (regionmap), regionmap = 0; |
869 | free (regionmap), regionmap = 0; |
871 | |
870 | |
872 | if (spaces) |
871 | if (spaces) |
873 | { |
872 | { |
874 | for (mapspace *ms = spaces + size (); ms-- > spaces; ) |
873 | for (mapspace *ms = spaces + size (); ms-- > spaces; ) |
875 | while (object *op = ms->bot->head_ ()) |
874 | while (object *op = ms->bot) |
876 | { |
875 | { |
|
|
876 | op = op->head_ (); |
877 | op->destroy_inv (false); |
877 | op->destroy_inv (false); |
878 | op->destroy (); |
878 | op->destroy (); |
879 | } |
879 | } |
880 | |
880 | |
881 | sfree (spaces, size ()), spaces = 0; |
881 | sfree (spaces, size ()), spaces = 0; |