git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@2266 c06c8d41-db1a-0410-9941-cceddc491573
7ISXWQPJNJPE23HHB7JLHYXHEW5QTDULNJIFVNSWONUZXWQJ2L7AC
5BJPWUPLJFS34FUTFJVKA4A52YMIGV6EWDXLNSDCWBJWBGVSQFGQC
BDD25EQ4V26QJ7PXFI5WHPF52S2KVZIDFUIYL475FD5FBMESQGXQC
SDLKLUNFGVKDS55DDJZCBAVIB7NL3RRYPTACAY65SCUQKV6APFSAC
T4IH76FA5TWHFOZUJFHLQXQJENJHWTUZZP4EGNA7D4GTZY7D4ZKAC
I67HCZISOEMUYFEUA6VOJOO2L4TYK73IB4FSTY4CHDR7GZD6CS6QC
SVY2PTCLXR3KNPQAWXVXTTGCC5DR334HOAKHYO3VDDRWM2BWMALAC
K2CS6TCX2NDVL2ASEHGP4J4K4IJ6FP3ANNKTSIWVG43HPYSBX6ZQC
SW3RLYFNRT3IJBK6LYKHKP2J2YDU7SXQWAJZX7U6S7ICYW43OMNQC
DOZORMA366M4HB5JKSS27BMCR6ET7QNZNND2B7KV3NVEEPR5H7EAC
void StashTracker::show_stash_search_prompt()
{
std::vector<std::string> opts;
if (!lastsearch.empty())
opts.push_back(
make_stringf("Enter for \"%s\"", lastsearch.c_str()) );
if (level_type_is_stash_trackable(you.level_type)
&& lastsearch != ".")
{
opts.push_back(
make_stringf("press . for all items on level"));
}
std::string prompt_qual =
comma_separated_line(opts.begin(), opts.end(), ", or ", ", or ");
if (!prompt_qual.empty())
prompt_qual = " [" + prompt_qual + "]";
mprf(MSGCH_PROMPT, "Search for what%s?\n", prompt_qual.c_str());
}
char prompt[200];
if (lastsearch.length())
snprintf(prompt, sizeof prompt,
"Search for what [Enter for \"%s\"%s]?\n",
lastsearch.c_str(), lastsearch != "." ?
", or press . for all items on level" : "");
else
snprintf(prompt, sizeof prompt,
"Search for what [Press . for all items on level]?\n");
show_stash_search_prompt();
else if (you.level_type == LEVEL_PORTAL_VAULT)
csearch = "{Port}";
else if (you.level_type == LEVEL_PANDEMONIUM)
csearch = "{Pan}";
// items in Abyss and Labyrinths are not tracked
else if (you.level_type == LEVEL_ABYSS
|| you.level_type == LEVEL_LABYRINTH)
{
mprf("Items in %s cannot be tracked.",
you.level_type == LEVEL_ABYSS ? "the Abyss" : "labyrinths");
return;
}
#if defined(REGEX_PCRE) || defined(REGEX_POSIX)
#define RE_ESCAPE "\\"
#else
#define RE_ESCAPE ""
#endif
csearch = (RE_ESCAPE "{")
+ level_id::current().describe()
+ (RE_ESCAPE "}");
bool level_type_is_stash_trackable(level_area_type type)
{
return (type != LEVEL_ABYSS && type != LEVEL_LABYRINTH);
}