/** * Check whether an object has IDENT_KNOWN but should not */ bool object_is_not_known_consistently(const object_type *o_ptr) { if (easy_know(o_ptr)) return false; if (!(o_ptr.ident & IDENT_KNOWN)) return true; if ((o_ptr.ident & IDENTS_SET_BY_IDENTIFY) != IDENTS_SET_BY_IDENTIFY) return true; if (o_ptr.ident & IDENT_EMPTY) return true; else if (o_ptr.artifact && !(o_ptr.artifact.seen || o_ptr.artifact.everseen)) return true; if (!of_is_full(o_ptr.known_flags)) return true; return false; }
/** * Check whether an object has IDENT_KNOWN but should not */ bool object_is_not_known_consistently(const object_type *o_ptr) { if (easy_know(o_ptr)) return FALSE; if (!(o_ptr->ident & IDENT_KNOWN)) return TRUE; if ((o_ptr->ident & IDENTS_SET_BY_IDENTIFY) != IDENTS_SET_BY_IDENTIFY) return TRUE; if (o_ptr->ident & IDENT_EMPTY) return TRUE; else if (o_ptr->name1) { artifact_type *a_ptr = &a_info[o_ptr->name1]; if (!(a_ptr->seen || a_ptr->everseen)) return TRUE; } if (!of_is_full(o_ptr->known_flags)) return TRUE; return FALSE; }