--- deliantra/server/common/map.C 2006/08/15 15:00:20 1.2 +++ deliantra/server/common/map.C 2006/08/20 20:57:34 1.5 @@ -1,6 +1,6 @@ /* * static char *rcsid_map_c = - * "$Id: map.C,v 1.2 2006/08/15 15:00:20 elmex Exp $"; + * "$Id: map.C,v 1.5 2006/08/20 20:57:34 elmex Exp $"; */ /* @@ -270,8 +270,10 @@ if (nx) *nx = newx; if (ny) *ny = newy; retval |= mp->spaces[newx + mp->width * newy].flags; - if (mp->safe_map) - retval |= P_NO_MAGIC | P_NO_CLERIC | P_SAFE_MAP; + + if (retval & P_SAFE) + retval |= P_NO_MAGIC | P_NO_CLERIC; // P_SAFE does imply these + return retval; } @@ -1330,6 +1332,7 @@ fp2 = fp; /* save unique items into fp2 */ if ((flag == 0 || flag == 2) && !m->unique && !m->templatemap) { sprintf (buf,"%s.v00",create_items_path (m->path)); + unlink (buf); // unlink here too, so that we have backups when using hard links if ((fp2 = fopen (buf, "w")) == NULL) { LOG(llevError, "Can't open unique items file %s\n", buf); } @@ -1826,6 +1829,8 @@ flags |= P_NO_MAGIC; if (QUERY_FLAG(tmp,FLAG_DAMNED)) flags |= P_NO_CLERIC; + if (tmp->type == SAFE_GROUND) + flags |= P_SAFE; if (QUERY_FLAG(tmp,FLAG_BLOCKSVIEW)) flags |= P_BLOCKSVIEW;