git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@7485 c06c8d41-db1a-0410-9941-cceddc491573
ZFGIHLY6UMKMJOU62DUHJWHLFU76ML226WNDRIKOYHMG2BEL7PNQC
HHVSLL26MH52H7L3JJO7CJCE43VICS3XTO4AQDVJKDZ4AXGKFJVQC
26HVORSNY267C3BZQ4RZD5NINMTJPDOAXBVPJX5HWMTOEINNBY3QC
LTX72QGIPNUGWQN5ULPOMFCOPZTK7472DQY4AYX5WM3WHSUVXI5QC
RPOZZWKG5GLPHVZZ7ZKMKS64ZMV2LDCQSARBJFJ6FZOTOKCQO7FAC
K2CS6TCX2NDVL2ASEHGP4J4K4IJ6FP3ANNKTSIWVG43HPYSBX6ZQC
7NDXS36TE7QVXTXJWMYSVG5UHCCLPIO4VL6NXFGTDK3ZNKE3A2IAC
PL6I2CMSTHY5ZHWVMIQE5YTM5S5VPKBNZM6QJVHZSSKOJGIJ5W4AC
5UVDIVD4NSXA52U4QMQIVST3GSZJ2A2YZK3RUEXKPM43YVQ7LI5AC
TFZ4TER7O2Z4FOGF2RCPEPYIHBTUA4LG3ECXLR7XGLCC6GO6OOTAC
WINPLTSMGJYDSOAB2JRLTNEGMX6AZSZEYXSNMILWKCYVP3JP3LFQC
ZVK4J5HTKFNOOIVCI62ZWEYGXEE5TYJ65DLYYZAZWTADFSXE62ZAC
W52PTX4I7TUG2LS36FJHLZ72DWCVXGUCTUIKPI3IGEYO5KWL6OVAC
W45PMU4HNPSAMMEBJ4XH4MTHLPVIASZT4FXTBPID5LFXKIMNUBKAC
PRG7UT7G56GT4W3FQ3KG5JRPGMKKJBFDLVHDLYFQK6IZW25JQLBQC
2C6B6QRTOK2ZMK2ZOF3EPSFUZTKG5B3IZXWBWIUYC4ZOVGQ2OV2QC
7PRZJ6KZLG26YVTAMXT7YOTQLWZHGWGRTKXZZ52P4XYCQD4GT5WQC
43ZTEB57FU7KE5EVMYWZONNVJBZCGF3JEAJZIY25LC4LGE65PG5QC
4KZCX2DSUCAWFYONVHEM7EXGF3KNNKZEIA2N3Z6ICLBQLQJHOG5AC
CKY7MRFWMNHXIPJD5ZUAJN5T2YHUIEAYBNYYV5GN74LBZJRDJMEQC
LDBTCT5WIPLJPZWXS2RUQ26QKISCUUTLO77M464WOE6VSYSNPKYAC
DHOSSNN4CUCGXX32MBLW6BAHHH5HUE4SAC6BNFHAG2OZZP6JQ7LAC
SDLKLUNFGVKDS55DDJZCBAVIB7NL3RRYPTACAY65SCUQKV6APFSAC
while (grd[pos_x][pos_y] != DNGN_FLOOR
|| (pos_x >= v1x && pos_x <= v2x && pos_y >= v1y
&& pos_y <= v2y));
while ((grd[pos_x][pos_y] != DNGN_FLOOR
|| (!is_layout && pos_x >= v1x && pos_x <= v2x
&& pos_y >= v1y && pos_y <= v2y))
&& tries-- > 0);
if (tries <= 0)
{
#ifdef DEBUG_DIAGNOSTICS
dump_map("debug.map", true);
end(1, false,
"Failed to create level: vault stairs for %s "
"(layout: %s) failed",
place.map.name.c_str(), is_layout? "yes" : "no");
#endif
pos_x = you.pos().x;
pos_y = you.pos().y;
}
if (niters > 1)
{
mesclr();
mprf("On %s (%d); %d g, %d fail, %d err%s, %d uniq, "
"%d try, %d (%.2lf%%) vetos",
level_id::current().describe().c_str(), niters,
mg_levels_tried, mg_levels_failed, mapgen_errors.size(),
mapgen_last_error.empty()? ""
: (" (" + mapgen_last_error + ")").c_str(),
mapgen_use_count.size(),
mg_build_attempts, mg_vetoes,
mg_build_attempts? mg_vetoes * 100.0 / mg_build_attempts : 0.0);
}
mesclr();
mprf("On %s (%d); %d g, %d fail, %d err%s, %d uniq, "
"%d try, %d (%.2lf%%) vetos",
level_id::current().describe().c_str(), niters,
mg_levels_tried, mg_levels_failed, mapgen_errors.size(),
mapgen_last_error.empty()? ""
: (" (" + mapgen_last_error + ")").c_str(),
mapgen_use_count.size(),
mg_build_attempts, mg_vetoes,
mg_build_attempts? mg_vetoes * 100.0 / mg_build_attempts : 0.0);
int min_x = GXM-1, max_x = 0, min_y = GYM-1, max_y = 0;
if (debug)
{
// Write the whole map out without checking for mappedness. Handy
// for debugging level-generation issues.
for (int y = 0; y < GYM; ++y)
{
for (int x = 0; x < GXM; ++x)
fputc(grid_character_at(coord_def(x,y)), fp);
fputc('\n', fp);
}
}
else
{
int min_x = GXM-1, max_x = 0, min_y = GYM-1, max_y = 0;
for (int i = X_BOUND_1; i <= X_BOUND_2; i++)
for (int j = Y_BOUND_1; j <= Y_BOUND_2; j++)
if (env.map[i][j].known())
{
if (i > max_x) max_x = i;
if (i < min_x) min_x = i;
if (j > max_y) max_y = j;
if (j < min_y) min_y = j;
}
for (int i = X_BOUND_1; i <= X_BOUND_2; i++)
for (int j = Y_BOUND_1; j <= Y_BOUND_2; j++)
if (env.map[i][j].known())
{
if (i > max_x) max_x = i;
if (i < min_x) min_x = i;
if (j > max_y) max_y = j;
if (j < min_y) min_y = j;
}
for (int y = min_y; y <= max_y; ++y)
{
for (int x = min_x; x <= max_x; ++x)
fputc( env.map[x][y].glyph(), fp );
for (int y = min_y; y <= max_y; ++y)
{
for (int x = min_x; x <= max_x; ++x)
fputc( env.map[x][y].glyph(), fp );