git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@7470 c06c8d41-db1a-0410-9941-cceddc491573
7G2RWMLC5YBT3W7DNXDGEA4SMTI524RJIH3VO7MOQYGBMQHML2MAC PDOFPXD2X6VI23AHKCGQ5RVDBG74CNP2E3YOHKXLOARHHBXEK3HQC VXSORUQOM2VZA4CAZDC6KPAY373NQIN3UT7CXQXTRCYXO2WM62DAC SVY2PTCLXR3KNPQAWXVXTTGCC5DR334HOAKHYO3VDDRWM2BWMALAC K2CS6TCX2NDVL2ASEHGP4J4K4IJ6FP3ANNKTSIWVG43HPYSBX6ZQC 5BJPWUPLJFS34FUTFJVKA4A52YMIGV6EWDXLNSDCWBJWBGVSQFGQC TO43FWKHNIA5MVDOFXYHQODTLBQYEZKX5UIUGID57436UF7G2EXQC GQL5SIGBHLU3FMCE54XVGLRY5AZHRM6DUEB722REA2DPLGJSN6EQC SDLKLUNFGVKDS55DDJZCBAVIB7NL3RRYPTACAY65SCUQKV6APFSAC T4IH76FA5TWHFOZUJFHLQXQJENJHWTUZZP4EGNA7D4GTZY7D4ZKAC 7Y5HSDFKA5TPLS2TWTRFMQVX6UXUDHXU5MUMXQSDFAIY4THQ3BIQC KT3JMGSH5VTNRV2H5POWZLYNXSIRE5CT2XW3ZID7FNZTXYOZG22QC SW3RLYFNRT3IJBK6LYKHKP2J2YDU7SXQWAJZX7U6S7ICYW43OMNQC 5B5DP5S6A6LQMKZYVLQAEMHQZWFWYDHPCKQGRNSCNNYIBQYZ6BIQC TLO257LZSB6ZO36STDUEWJBO2LETXFKTFGXELA6Y4BZBVAEIIINAC 45EMD3KLQPMERNMIKU5G76H6556XOMIW352TSBP7VLWJX2YYGS7AC ZJLJGSB2XSBQU42OFQMXL3EG4CXAQGOYAU6YTV2SAWZEJIPFH2CAC NVSFIV2ZKP44XHCSCXG6OZVGL67OIFINC34J2EMKTA4KULCERUEAC // Adds a dungeon marker at the point of the level where returning from// a labyrinth or portal vault should drop the player.static void _mark_portal_return_point(const coord_def &pos){// First toss all markers of this type. Stale markers are possible// if the player goes to the Abyss from a portal vault /// labyrinth, thus returning to this level without activating a// previous portal vault exit marker.const std::vector<map_marker*> markers = env.markers.get_all(MAT_FEATURE);for (int i = 0, size = markers.size(); i < size; ++i)env.markers.remove(markers[i]);if (!env.markers.find(pos, MAT_FEATURE)){map_feature_marker *mfeat =new map_feature_marker(pos, DNGN_EXIT_PORTAL_VAULT);env.markers.add(mfeat);}}
grd[count_x][count_y] = featm->feat;env.markers.remove(marker);
// [ds] Ensure we're activating the correct feature// markers. Feature markers are also used for other// things, notably to indicate the return point from// a labyrinth or portal vault.switch (featm->feat){case DNGN_ENTER_COCYTUS:case DNGN_ENTER_DIS:case DNGN_ENTER_GEHENNA:case DNGN_ENTER_TARTARUS:grd[count_x][count_y] = featm->feat;env.markers.remove(marker);break;default:break;}
if (stair_to_find == DNGN_EXIT_PORTAL_VAULT){const coord_def pos(_dgn_find_feature_marker(stair_to_find));if (in_bounds(pos)){if (map_marker *marker = env.markers.find(pos, MAT_FEATURE))env.markers.remove(marker);return (pos);}#ifdef DEBUG_DIAGNOSTICSmprf(MSGCH_WARN, "Ouch, no portal vault exit point!");#endifstair_to_find = DNGN_FLOOR;}