git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@7507 c06c8d41-db1a-0410-9941-cceddc491573
RN242L3YZK35BFY7JRTCSYWD6FWDCRFUFDI7PKYFUCA2UPX6ZEAQC
26HVORSNY267C3BZQ4RZD5NINMTJPDOAXBVPJX5HWMTOEINNBY3QC
FQ7XALBL6NZAGBKKYIFHYQ7MUWIHR4TEU4TCS33EG4I3JTND5SQAC
K2CS6TCX2NDVL2ASEHGP4J4K4IJ6FP3ANNKTSIWVG43HPYSBX6ZQC
RPOZZWKG5GLPHVZZ7ZKMKS64ZMV2LDCQSARBJFJ6FZOTOKCQO7FAC
6ZCKL3LCJ2QYYRI6CVK7CU4VXZMIZ6RIOTFUDEM2QTM4EHKVUKMAC
W52PTX4I7TUG2LS36FJHLZ72DWCVXGUCTUIKPI3IGEYO5KWL6OVAC
ED62QWGKBPORWVKDFOQRKJXEIWZVNGR3O4KWQBDSRNPT36AYOQYAC
AUXHSGS4EFOPZ6TVZYWNVOUDO7NYKUKE3HBKGQQWTALSVFOE3HAAC
PRG7UT7G56GT4W3FQ3KG5JRPGMKKJBFDLVHDLYFQK6IZW25JQLBQC
ZLQAAP55CJ77XIJN3DZVPT4GTTVLIBFJLIJJKI6L5UBSHX7VUK6AC
2YSMM7QMFZOPD5NXAD2OAMDJEY5LOZO4NCYBC7UCQVANKINJRNBAC
W45PMU4HNPSAMMEBJ4XH4MTHLPVIASZT4FXTBPID5LFXKIMNUBKAC
NVSFIV2ZKP44XHCSCXG6OZVGL67OIFINC34J2EMKTA4KULCERUEAC
G277QSURADDFZIIO5PIMBA4YWHYULQCEGNMNI6TLBWZXHQOOP6FAC
C22455VGUQOSUX2OORA32LROFQ7NNYDMD2ZDTTUZSAQLXK4AD6QAC
for (unsigned i = 0, size = vdefs.size(); i < size; ++i)
if (sel.accept(vdefs[i]))
for (unsigned f = 0, size = filtered.size(); f < size; ++f)
{
const int i = filtered[f];
if (!sel.ignore_chance && vdefs[i].chance > 0)
if (!sel.ignore_chance && vdefs[i].chance > 0)
// There may be several alternatives for a portal
// vault that want to be governed by one common
// CHANCE. In this case each vault will use a
// CHANCE, and a common chance_xxx tag. Pick the
// first such vault for the chance roll. Note that
// at this point we ignore chance_priority.
const std::string tag = _vault_chance_tag(vdefs[i]);
if (chance_tags.find(tag) == chance_tags.end())
// There may be several alternatives for a portal
// vault that want to be governed by one common
// CHANCE. In this case each vault will use a
// CHANCE, and a common chance_xxx tag. Pick the
// first such vault for the chance roll. Note that
// at this point we ignore chance_priority.
const std::string tag = _vault_chance_tag(vdefs[i]);
if (chance_tags.find(tag) == chance_tags.end())
{
if (!tag.empty())
chance_tags.insert(tag);
chance.push_back(i);
}
}
else
{
eligible.push_back(i);
if (!tag.empty())
chance_tags.insert(tag);
chance.push_back(i);
x = std::min(std::max(x, X_BOUND_1+1), X_BOUND_2-1);
y = std::min(std::max(y, Y_BOUND_1+1), Y_BOUND_2-1);
const int edge_offset = edge_ok ? 0 : 1;
x = std::min(std::max(x, X_BOUND_1 + edge_offset), X_BOUND_2 - edge_offset);
y = std::min(std::max(y, Y_BOUND_1 + edge_offset), Y_BOUND_2 - edge_offset);