Killed all other Shoal:$ maps for now. Fixed some items not getting noted on pickup.
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@1810 c06c8d41-db1a-0410-9941-cceddc491573
HZK3YN3SAISTDS5JI4COBYFG7YB4ABDVENXWZZEYLFA2LDI232VAC
IGHO5UHUXYBLIHLUMLZ672YHAYUSK4FSFX7SA42XARIKLIMCVLUAC
SDLKLUNFGVKDS55DDJZCBAVIB7NL3RRYPTACAY65SCUQKV6APFSAC
K2CS6TCX2NDVL2ASEHGP4J4K4IJ6FP3ANNKTSIWVG43HPYSBX6ZQC
TZ55IZNANEJO2WDTKYWVLY2W2VV6BR7WKIN7XLNISAMMFT6LG2WQC
WWR4IDWLXP4XLBWDZBA5GFG7CRKUJQNRK7FFUFOISK6OJTMYQPFQC
KCHX2F3JFEWOZT3WMJVZAAQUU2QSZ5Q7RDCD7WUJ7VE65J52JFUQC
56C44YMFHZ62GXAAOLYSLLGBVGRWXB53W2VI37Q26ZECEK2XG5SQC
A3CO4KBFTFU3ZSHWRY2OPPX3MMTFV7OUCZGL7Q4Y2FU7JO4AP7MAC
4RFKVDJKTCRBZU6WPJ2E5OVI5IRPY3UTRPOBLC5QHY4CQJJTLZKQC
3XZOL3FFQZITUJIGDD6B6V6ZYMBN524JKNN6ZPJAXEC7RY433I3QC
AOLWOUIFBQDQTCMSVB7N7GAKFUY5J5LH7CJZAY3HEY3WEUSLADZAC
KXUQB3WNWC5IFL6VFWADEPQMMU3VV3NDI5FLA666PGOEWFYUHCLQC
ANBVGN4RZOMY5LI4QSHOV2477FN55H353ZYLSVCPTXC7AWWSQZBAC
RPOZZWKG5GLPHVZZ7ZKMKS64ZMV2LDCQSARBJFJ6FZOTOKCQO7FAC
H3552BCIAVBLKAYKE4DHFLBLFW5RGRMYBMRRYHYEB5IPIJRUVU5QC
grd[centres[0].x+2][centres[0].y] = DNGN_STONE_STAIRS_UP_III;
grd[centres[0].x-1][centres[0].y] = DNGN_STONE_STAIRS_UP_III;
// Place the rune
int vaultidx;
do {
vaultidx = dgn_random_map_for_place(true);
} while ( vaultidx == -1 ||
!map_by_index(vaultidx)->has_tag("has_rune") );
// Minivault creation will place the rune (96.4% of the time)
build_minivaults( level_number, vaultidx,
centres[1] - coord_def(3,3) );
for ( int i = 2; i < num_islands; ++i )
{
// Place (non-rune) minivaults on the other islands
do {
vaultidx = dgn_random_map_for_place(true);
} while ( vaultidx == -1 ||
map_by_index(vaultidx)->has_tag("has_rune") );
build_minivaults( level_number, vaultidx,
centres[i] - coord_def(3,3) );
}
// FIXME hand-hackery for placing minivaults at the bottom of the Shoals.
if ( (level_id::current().branch == BRANCH_SHOALS) &&
(level_id::current().depth = branches[BRANCH_SHOALS].depth) )
{
int tries = 40;
int num_to_place = random2(3) + 4;
for ( int i = 0; i < num_to_place && tries > 0; ++i, --tries )
{
const int vault = dgn_random_map_for_place(true);
if (vault == -1)
{
--i;
continue;
}
// If we've already used this minivault and it doesn't
// want duplicates, do another iteration.
if (used.find(vault) != used.end()
&& !map_by_index(vault)->has_tag("allow_dup"))
{
--i;
continue;
}
build_minivaults(level_number, vault);
used.insert(vault);
}
}