git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@1898 c06c8d41-db1a-0410-9941-cceddc491573
2G55UEHQ7554OPNSZVTUCZTWSHIFKGT56QEGSYFKCTX547I4AL3AC
G4JT6UMXZW2M4GLNPX7C5NLHZIEJ5KGVHKRAXX7PEZEFVQCGN4DAC
3PY3L3A4QRW3Z5Y7SHO4TMVOOP2VNCO27X2MX4DTOP2SADLBQUOAC
SDLKLUNFGVKDS55DDJZCBAVIB7NL3RRYPTACAY65SCUQKV6APFSAC
NJDPIHOREOTAZJXOMZA5QA4TBADDWLFZ25NVAIFDQ7BUBVUWCEEAC
ANBVGN4RZOMY5LI4QSHOV2477FN55H353ZYLSVCPTXC7AWWSQZBAC
TAHSTXR7ROOMDFUSBUU4ZAIEWQLAS5CIRCTARLD4Q2BGNLSL7E5QC
PL6I2CMSTHY5ZHWVMIQE5YTM5S5VPKBNZM6QJVHZSSKOJGIJ5W4AC
RPOZZWKG5GLPHVZZ7ZKMKS64ZMV2LDCQSARBJFJ6FZOTOKCQO7FAC
K2CS6TCX2NDVL2ASEHGP4J4K4IJ6FP3ANNKTSIWVG43HPYSBX6ZQC
74LQ7JXVLAFSHLI7LCBKFX47CNTYSKGUQSXNX5FCIUIGCC2JTR3QC
2WRXQTGYDBLV46WRNVIUKGNA5QS563XZNNW3N2L6PVOCHIP2YGHQC
MSQI3TH6T62JAXQGLL52QZCWAMC372TGB6ZNNRDGUGMJKBNNV2VAC
5V47S4NNTHWTSAHV3YLO2VGH7JTUIYJ3GBPDN5ZM4UQALT2ZEXDQC
X5WLJCJVW55SXZVP7IKP7ADCJIGNKN4PKAXFECVR6TNK7XSMZR7QC
IVVTHLTTLOP5TSULXJWUSSXHOKYWVU3OWKYVK45A7RIB6V34MYQAC
CVC5FFFLGVRR3KPYDNB6RF4FNACV3LI3HPSR4MCUNZ4C3FSQYBDAC
ODNAIEJW732NG7USKQKCIP4R4DAEYXXJQX6LY7TIN32NKE75454QC
std::string stair_info::describe() const
{
if (destination.is_valid())
{
const level_pos &lp(destination);
return
make_stringf(
" (-> %s@(%d,%d)%s%s)", lp.id.describe().c_str(),
lp.pos.x, lp.pos.y,
guessed_pos? " guess" : "",
type == PLACEHOLDER? " placeholder" : "");
}
else if (destination.id.is_valid())
{
return make_stringf(
" (->%s (?))", destination.id.describe().c_str());
}
return (" (?)");
}
void LevelInfo::create_placeholder_stair(const coord_def &stair,
const level_pos &dest)
{
// If there are any existing placeholders with the same 'dest', zap them.
for (int i = 0, size = stairs.size(); i < size; ++i)
{
if (stairs[i].type == stair_info::PLACEHOLDER
&& stairs[i].destination == dest)
{
stairs.erase( stairs.begin() + i );
break;
}
}
stair_info placeholder;
placeholder.position = stair;
placeholder.grid = DNGN_FLOOR;
placeholder.destination = dest;
placeholder.type = stair_info::PLACEHOLDER;
stairs.push_back(placeholder);
resize_stair_distances();
}
if ((x == you.x_pos && y == you.y_pos)
|| (envc
&& is_travelable_stair(grid)
&& (is_terrain_seen(x, y)
|| !is_branch_stair(x, y))))
if (((x == you.x_pos && y == you.y_pos)
|| envc)
&& is_travelable_stair(grid)
&& (is_terrain_seen(x, y) || !is_branch_stair(x, y)))
bool collect_travel_data = you.level_type != LEVEL_LABYRINTH
&& you.level_type != LEVEL_ABYSS
&& you.level_type != LEVEL_PANDEMONIUM;
const bool collect_travel_data = you.level_type != LEVEL_LABYRINTH
&& you.level_type != LEVEL_ABYSS
&& you.level_type != LEVEL_PANDEMONIUM;
}
#ifdef DEBUG_DIAGNOSTICS
static std::string stair_destination_description(const coord_def &pos)
{
if (LevelInfo *linf = travel_cache.find_level_info(level_id::current()))
{
const stair_info *si = linf->get_stair(pos);
if (si)
return (" " + si->describe());
else if (is_stair(grd(pos)))
return (" (unknown stair)");
}
return ("");