FR: Magic mapping now comments on the number of altars and shops/portals sensed.
Also, take a note when a notable feature is first seen.
BY5XD4MZ34JNBO4Y3QFE7DKUW5VYW3NXJGQWF3YHZDC35LLO7MHQC G7DNYFW745Q567EF3TPR2FCQ4ATPN236ON7X5TLYC7TEPZW3BAFAC RPOZZWKG5GLPHVZZ7ZKMKS64ZMV2LDCQSARBJFJ6FZOTOKCQO7FAC UJHVY3MHU23VJMYKIXCDSAIXF6HH6MWKT5H2KHSJTHJVU4DYWTFAC K2CS6TCX2NDVL2ASEHGP4J4K4IJ6FP3ANNKTSIWVG43HPYSBX6ZQC V25XPIUUPVMKRK663D33PWE3GFQR47XZAV642T2NYGRFWZR5LT6AC SIDH2P7NBIG5KEOE27XHD3ZT2NQ2OJZFN6VZXWNWYFFY5YVXSSVQC XP2DL4CJ7FH2IPNNA6KHNOAFW6J2RSC44JWEGLYQHWUMU5EVHFUQC QEFW63ZHJEAR4GS5UBXDSLCET7QBV2SORJHWSO63ROO33QJMHGKAC ZHFUXYUHS6V47WK2NRH7OU6RX77NRKTXOZC3MND2GG7PEEWSGFTAC 5ASC3STDYCNLZFEBN6UTMUCGDETHBR2OCBZCF5VIAZ5RRWLOTDYQC 4VDKJOSBXI4KTWFJT4KWRF6EAQYQEXHJORP3L7RTDJXAYTKQELNAC if (!(env.map[x][y].flags & (MAP_MAGIC_MAPPED_FLAG | MAP_SEEN_FLAG))&& grd[x][y] == DNGN_ENTER_LABYRINTH){coord_def pos(x, y);take_note(Note(NOTE_SEEN_FEAT, 0, 0,feature_description(pos, false, DESC_NOCAP_A).c_str()));}
const dungeon_feature_type feat = grd[x][y];
// Magic mapping doesn't reveal the description of the portal vault// entrance.if (!(env.map[x][y].flags & MAP_SEEN_FLAG)&& grd[x][y] == DNGN_ENTER_PORTAL_VAULT&& you.level_type != LEVEL_PORTAL_VAULT)
// First time we've seen a notable feature.if (!(env.map[x][y].flags & MAP_SEEN_FLAG) && is_notable_terrain(feat))
coord_def pos(x, y);take_note(Note(NOTE_SEEN_FEAT, 0, 0,feature_description(pos, false, DESC_NOCAP_A).c_str()));
const bool boring =// A portal deeper into the Zigguart is boring.(feat == DNGN_ENTER_PORTAL_VAULT&& you.level_type == LEVEL_PORTAL_VAULT)// Altars in the temple are boring.|| (feat_is_altar(feat)&& player_in_branch(BRANCH_ECUMENICAL_TEMPLE))// Only note the first entrance to the Abyss/Pan/Hell// which is found.|| ((feat == DNGN_ENTER_ABYSS || feat == DNGN_ENTER_PANDEMONIUM|| feat == DNGN_ENTER_HELL)&& overmap_knows_num_portals(feat) > 1)// There are at least three Zot entrances, and they're always// on D:27, so ignore them.|| feat == DNGN_ENTER_ZOT;if (!boring){coord_def pos(x, y);std::string desc =feature_description(pos, false, DESC_NOCAP_A);take_note(Note(NOTE_SEEN_FEAT, 0, 0, desc.c_str()));}
std::vector<std::string> sensed;if (num_altars > 0)sensed.push_back(make_stringf("%d altar%s", num_altars,num_altars > 1 ? "s" : ""));if (num_shops_portals > 0){const char* plur = num_shops_portals > 1 ? "s" : "";sensed.push_back(make_stringf("%d shop%s/portal%s",num_shops_portals, plur, plur));}if (!sensed.empty())mpr_comma_separated_list("You sensed ", sensed);