difficulty comparison and sorting functions. Make V work as a shortcut for xx, but keep the original monster listing (now repaired) for the dump.
Most of the monster_pane_function struct and functions are now also included in Tiles compiles, even though the monster list itself is still not available.
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@6800 c06c8d41-db1a-0410-9941-cceddc491573
WEFNLSQ7HRLNHIKFH46FIBBZNAORSXGOVIJWZGVVEHL36MICAUAAC
3ZEUBINC2EEJYVO5AYQZBCU3RKDGONBJYKYHTBTHICPOGPSRXI2QC
VMDHEP2MGV6D5MTWNNTUYV4SY45JC3ITDEZLHT4HDJ4N2GXM755AC
TE3QYFTQB2N6RHYG6VULGNUZ7EN6MZ5IDITC7KWD75UHPG7A2YAAC
QSRRV725GCNDOMIDS36NYAA65MOLDMAZSENVSZ3PNOLBFSGHH7BQC
K2CS6TCX2NDVL2ASEHGP4J4K4IJ6FP3ANNKTSIWVG43HPYSBX6ZQC
JR2RAQ523LOWNDYJNK6AZVKI6WVMI622PIV72XWOVZYPXPUKSQWAC
SKWBAGSAB625IIN4UP3NCPRX2H3KCPC2LULHS2A7JVRLO3EUBJDAC
SDLKLUNFGVKDS55DDJZCBAVIB7NL3RRYPTACAY65SCUQKV6APFSAC
TPO6FNMPNUSWH4NCKO3VLYNAADEPSAXLUITCCACLZZSY53PKA62QC
JQK4F4RTKVQWIF5YKFPH7IHF7UREBOY2NOFQ7J3O44KYPCNHNL5AC
NO2HRD7RZS42S55UG4FQ5EFQDY6WYWKGIXHUKYLWF36HHE3VZ7WAC
GQF26J3LYUS35FFHOV4N26QHSJIA5GXMNBXVVKDGX7YMFBFJK4LQC
C3C6VLGVL7RLM53TCSL7ZWUTVV45MMZXCDL75BEAI4RIO43W6J7AC
AYYQVALBAAKFK5U52WGHWE2N7LCVZM3BGRADPVJQWOFLS2TXK6QAC
RPOZZWKG5GLPHVZZ7ZKMKS64ZMV2LDCQSARBJFJ6FZOTOKCQO7FAC
HKQTMQVLLOBG2VO47TUGSTQALA3D2YLMEVADXXYNR4RGGKD3F2ZAC
XX62GOJVDP352L4BH7MELNYXHMZNA6VAGF7B6RWWOSULX7VJR5YAC
if ( mgrd(*ri) != NON_MONSTER )
{
const monsters *mon = &menv[mgrd(*ri)];
if (player_monster_visible(mon)
&& !mons_is_submerged(mon)
&& (!mons_is_mimic(mon->type)
|| testbits(mon->flags, MF_KNOWN_MIMIC)))
{
mons.push_back(mon);
}
}
}
msg = "There ";
msg += (past ? "were" : "are");
msg += " no monsters in sight!";
if (count == 1)
describe.push_back(_get_monster_name(mons[i-1], true).c_str());
else
{
describe.push_back(number_in_words(count) + " "
+ pluralise(_get_monster_name(mons[i-1]).c_str()));
}
describe.push_back(_get_monster_name(mons[i-1], count).c_str());
}
// handle last monster
if (mons.size() == 1
|| _compare_monsters_attitude(mons[size-2], mons[size-1]))
{
describe.push_back(_get_monster_name(mons[size-1], true).c_str());
}
else
{
describe.push_back(number_in_words(count) + " "
+ pluralise(_get_monster_name(mons[size-1]).c_str()));
}
// If past is true, the messages should be printed in the past tense
// because they're needed for the morgue dump.
std::string mpr_monster_list(bool past)
{
std::vector<std::string> describe;
_get_visible_monsters(describe);
std::string msg = "";
if (describe.empty())
{
msg = "There ";
msg += (past ? "were" : "are");
msg += " no monsters in sight!";
// Get monsters via the monster_pane_info, sorted by difficulty.
std::vector<monster_pane_info> mons;
get_monster_pane_info(mons);
std::sort(mons.begin(), mons.end(), monster_pane_info::less_than_wrapper);
for (unsigned int i = 0; i < mons.size(); i++)
list_mons.push_back(mons[i].m_mon);