Fixed more vault generation infelicities.
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@599 c06c8d41-db1a-0410-9941-cceddc491573
7J3H7JY6AUO2UHNF6DAHDZI4O33JMTUUTYTPRM3CKNPUOF2RQOGAC
else if (dug && grd(dig_at) == DNGN_FLOOR)
break;
else if (grd(dig_at) == DNGN_FLOOR && i > 0)
{
// If the floor square has at least two non-solid squares,
// we're done.
int adjacent_count = 0;
for (int yi = -1; yi <= 1; ++yi)
{
for (int xi = -1; xi <= 1; ++xi)
{
if (!xi && !yi)
continue;
if (!grid_is_solid(dig_at + coord_def(xi, yi))
&& ++adjacent_count >= 2)
{
return;
}
}
}
}
const int v1x = place.x + 1;
const int v1y = place.y + 1;
const int v2x = place.x + place.width;
const int v2y = place.y + place.height;
const int v1x = place.x;
const int v1y = place.y;
const int v2x = place.x + place.width - 1;
const int v2y = place.y + place.height - 1;
std::vector<coord_def> ex_connection_points;
// Giving target_connections directly to build_rooms causes
// problems with long, skinny vaults where paths to the exit
// tend to cut through the vault. By backing out of the vault
// one square, we improve connectability.
for (int i = 0, size = target_connections.size(); i < size; ++i)
{
const coord_def &p = target_connections[i];
ex_connection_points.push_back(p + dig_away_dir(place, p));
}
##############################################################################
# Entry vaults
##############################################################################
# A dummy vault included purely to make the others less likely.
NAME: dummy_entry
TAGS: entry
ORIENT: float
MAP
x
ENDMAP
##############################################################################
# Lemuel's entry vaults.
NAME: lemuel_001
TAGS: entry
ORIENT: southwest
# Can't rotate - the aspect ratio makes it look hideous.
FLAGS: no_rotate
MAP
xxxxxxxxxxxx.@.xxxxxx
xxxxxxxxxxxx.x.xxxxxx
xxxxxxxxxxxx...xxxxxx
xxxxxxxxxxxx.x.xxxxxx
xxxxxxxxxxxx...xxxxxx
xxxxxxxxxxxx.x.xxxxxx
xxxxxxxxxxxx...xxxxxx
xxxxxxxxxxxx.x.xxxxxx
xxxxxxxxxxxx...xxxxxx
xxxxxxxxxxxx...xxxxxx
xxxxxxx.............x
xxxxxxx.............x
xxxxxxx.....[{(.....x
xxxxxxx.............x
xxxxxxx.............x
xxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxx
ENDMAP
##############################################################################
# Another Lemuel entry vault
NAME: lemuel_002
TAGS: entry
ORIENT: float
# dungeon.cc isn't very clever with non-rectangular geometries...
MAP
......x@x......
....xxx.xxx....
...xx.....xx...
..xx.......xx..
.xx.........xx.
xx...........xx
x.............x
x......{......x
x.....[.(.....x
x......<......x
x.............x
xx...........xx
.xx.........xx.
..xx.......xx..
...xx.....xx...
....xx...xx....
.....xx.xx.....
......x@x......
ENDMAP
##############################################################################
# lemuel_003
NAME: lemuel_003
TAGS: entry
ORIENT: float
# The map will be padded out to the right with rock.
# This is the sort of map that would benefit a lot from non-rectangular vaults.
MAP
xxxxxxxxxx
xxxxxxxx{x
xxxxxxxx.x
xxxxxxxx.x
xxxxxxxx.x
xxxxxxxx.xxxxxxx
xx[...........(x
xxxxxxxx.xxxxxxx
xxxxxxxx.x
xxxxxxxx.x
xxxxxxxx.x
xxxxxxxx.xx
xxxxxxxG.Gx
xxxxxxxx.xx
xxxxxxxx.x
xxxxxxxx@x
ENDMAP
##############################################################################
# lemuel_004
NAME: lemuel_004
TAGS: entry
ORIENT: float
MAP
xxxxxxxxxxx@xxxxxx
xxxxxxxxxxx.xxxxxx
xx..............xx
xx..............xx
xx..xx.xxxxxxx..xx
xx..x.......(x..xx
xx...........x...@
xx..x........x..xx
xx..x...{....x..xx
xx..x........x..xx
@...x...........xx
xx..x[.......x..xx
xx..xxxxxxx.xx..xx
xx..............xx
xx..............xx
xxxxxx.xxxxxxxxxxx
xxxxxx@xxxxxxxxxxx
ENDMAP
##############################################################################
# Regular vaults
##############################################################################