W45NU6ICYOPWOGDUDFQPWLP423VDRPSLBLRRRLEIVWKTWEXLIQ3AC // Checks whether there is a straight path from p1 to p2 that passes// through features >= allowed.// If it exists, such a path may be missed; on the other hand, it// is not guaranteed that p2 is visible from p1 according to LOS rules.// Not symmetric.bool can_go_straight(const coord_def& p1, const coord_def& p2,dungeon_feature_type allowed){if (distance(p1, p2) > get_los_radius_squared())return (false);dungeon_feature_type max_disallowed = DNGN_MAXOPAQUE;if (allowed != DNGN_UNSEEN)max_disallowed = static_cast<dungeon_feature_type>(allowed - 1);return (!num_feats_between(p1, p2, DNGN_UNSEEN, max_disallowed,true, true));}
// Checks whether there is a straight path from p1 to p2 that passes// through features >= allowed.// If it exists, such a path may be missed; on the other hand, it// is not guaranteed that p2 is visible from p1 according to LOS rules.// Not symmetric.bool can_go_straight(const coord_def& p1, const coord_def& p2,dungeon_feature_type allowed){if (distance(p1, p2) > _los_radius_squared)return (false);dungeon_feature_type max_disallowed = DNGN_MAXOPAQUE;if (allowed != DNGN_UNSEEN)max_disallowed = static_cast<dungeon_feature_type>(allowed - 1);return (!num_feats_between(p1, p2, DNGN_UNSEEN, max_disallowed,true, true));}