tie ability descriptions into the menu. Still haven't worked out how to update the titles, though. :(
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@9412 c06c8d41-db1a-0410-9941-cceddc491573
6QVMISKCQYTVHBH2YZLOE77I72NIVUQN2D7ACECQ5TYMVC72LAWQC
2H6MSLB3SR42LG524K2QHJVCZ747RHAKI3VHFVTQ2K7X2LSOIEDQC
RXZRRWQZH7H3E66ENDI6WTSDDTC5F7MDGIMZTEDYDE4YCUQN4CSAC
N6J4ANT3WFBQYTFDPZFVF2PWS2S7CK4GHHX4UV3JW4VWAKETZR5AC
77H4BWWPPGLM3PLZH4QTAJRXIZTSDVNCOKZE223I437FN2UJ34RQC
Q3B3UVMYEVC4YJUPYVSNTR4DJH4E6J4JJDHZNT5LNOCHCPPMEMXAC
3TNMXC6XG723NP5RJDQS3ONETVCXPTZXOG3YTDFT2JKKGLCYL7WAC
SDLKLUNFGVKDS55DDJZCBAVIB7NL3RRYPTACAY65SCUQKV6APFSAC
LDBTCT5WIPLJPZWXS2RUQ26QKISCUUTLO77M464WOE6VSYSNPKYAC
3NUVKRHPHENI7JNHDDIHZ4FESSZ2Z5XJZVB56ZCXPGMP7O3JCM3QC
RPOZZWKG5GLPHVZZ7ZKMKS64ZMV2LDCQSARBJFJ6FZOTOKCQO7FAC
S34LKQDIQJLIWVIPASOJBBZ6ZCXDHP5KPS7TRBZJSCDRVNCLK6UAC
GACH6PWPGGUBEE7PFEPQMOZKSR7HTQGL2WLGF2AQPJD3FCCSKZNQC
B7EE54F23AM4BECQ7GENNC4MHIPH6YVMOXOGZAQUZJKDJYGL7RAQC
T3454DDD7P4UHQZFDSNXC5DDWW3OXPPEDZ3SWNA3ZM3Y2MKX2FAQC
YH23OR26YDA6C5K74QRWHROMTPGRNZHTHE4HJGPC3JVNAJ62CHGAC
2PAHDAPDO6PN4FNGB5N7CQNEGHSE3NOGPXYZMIAOJC4VW34FRVOAC
6NF5UR6BR6OBG62NDZPT3OMKYDT2MJ4AEF6QD4QUKWHNW2ZHAK2AC
7NFVYCNQ54IN77PF334ADAF4YQT6LEABMAIZF4Y4BH5C3CYXYQGQC
65CM2EZCAFFBWLAYZ7ALBV3BQKNZCYOHYIFY46KU7BZL3LHV36JAC
K2CS6TCX2NDVL2ASEHGP4J4K4IJ6FP3ANNKTSIWVG43HPYSBX6ZQC
MK7MCWBPFRJSUWVXZ43LPFJ5Y2AYZZCREDYBT7AWJUMTQ2ET5AZQC
JC6BEAFXLIHKITKL2AGBLHMJKMFDUWAWGJU2KPQTLSRCKN43B2UQC
SDUJUWFGTAF5BRRN3RDR6LODH4PBZNSDB2AREGNTQLQTGF5SN3CQC
WXSNNK2RXP3DQFAEQGQUZJHFWXJC7ZKG2WURZGL566UDM4YXFSWQC
OEHJJ5X5CBOHTXISZLJHVLCAPH77RYSVKKBGW3US2GGXZMZJ5CEQC
UXAXAS5XM2C2X7B77JUZXDD4TL7UATYMUJBPK4J7PPAFLAMCG7MQC
2N5AKUYV6EUUT254C47WSHZKD7FGN65JKJ3RCKSDP74XJIHIFMDQC
YQ5IYBHW2ICYKOC2M6CI5BNOZKST3DIMMZRQN72LUQCHDAPVYQCQC
J75GZPQLMV3NRQ6KP7FXHZXJ63L62NFGVNPVK7XFM65XLFQP5CUQC
QXD3HX6QQ37PW6HVKIIKGFLO2ACROLUGKK66KFX7ED6SO4FDXB2AC
"<lightgrey> [<w>a-z</w>: %s <w>?</w>: change action <w>/</w>: change sort]",
menu_action == ACT_TRAVEL ? "travel" : "examine");
"<lightgrey> [<w>a-z</w>: %s <w>?</w>/<w>!</w>: change action <w>/</w>: change sort]",
menu_action == ACT_EXECUTE ? "travel" : "examine");
if (key == '?')
{
sel.clear();
menu_action = (action)((menu_action+1) % ACT_NUM);
update_title();
return (true);
}
else if (key == '/')
if (key == '/')
bool draw_title_suffix( const std::string &s, bool titlefirst = true );
bool draw_title_suffix( const formatted_string &fs, bool titlefirst = true );
bool draw_title_suffix(const std::string &s, bool titlefirst = true);
bool draw_title_suffix(const formatted_string &fs, bool titlefirst = true);
: f_selitem(NULL), f_drawitem(NULL), f_keyfilter(NULL), title(NULL),
flags(_flags), tag(tagname), first_entry(0), y_offset(0),
pagesize(0), max_pagesize(0), more("-more-", true), items(),
sel(), select_filter(), highlighter(new MenuHighlighter), num(-1),
lastch(0), alive(false), last_selected(-1)
: f_selitem(NULL), f_drawitem(NULL), f_keyfilter(NULL), allow_toggle(false),
menu_action(ACT_EXAMINE), title(NULL), flags(_flags), tag(tagname),
first_entry(0), y_offset(0), pagesize(0), max_pagesize(0),
more("-more-", true), items(), sel(), select_filter(),
highlighter(new MenuHighlighter), num(-1), lastch(0), alive(false),
last_selected(-1)
else if (key == '!')
{
sel.clear();
menu_action = (action)((menu_action+1) % ACT_NUM);
update_title();
return (true);
}
}
}
else if (keyin == '!')
{
while (true)
{
selected = choose_ability_menu(talents, true);
if (selected == -1)
{
canned_msg( MSG_OK );
return (false);
}
_print_talent_description(talents[selected]);
abil_menu.set_more(formatted_string::parse_string(
"Choose any ability to read its description, "
"or exit the menu with Escape."));
abil_menu.set_flags(MF_SINGLESELECT | MF_ANYPRINTABLE |
MF_ALWAYS_SHOW_MORE);
}
else if (Options.tutorial_left)
{
abil_menu.set_flags(MF_SINGLESELECT | MF_ANYPRINTABLE |
MF_ALWAYS_SHOW_MORE);
}
else if (describe)
{
abil_menu.set_more(formatted_string::parse_string(
"Choose any ability to read its description, "
"or exit the menu with Escape."));
}
else
{
abil_menu.set_more(formatted_string::parse_string(
"Press '<w>!</w>' or '<w>?</w>' to toggle "
"between ability selection and description."));
std::vector<MenuEntry*> sel = abil_menu.show(false);
redraw_screen();
if (sel.empty())
while (true)
return (*(reinterpret_cast<int*>(sel[0]->data)));
int selected = *(reinterpret_cast<int*>(sel[0]->data));
if (abil_menu.menu_action == Menu::ACT_EXAMINE)
_print_talent_description(talents[selected]);
else
return (*(reinterpret_cast<int*>(sel[0]->data)));