clickable. '_' toggles between inventory and spell display. Actual tiles are still missing, but everything works as it should.
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@10648 c06c8d41-db1a-0410-9941-cceddc491573
A5PQLNX3XFGSNBUEEI6DYWZZ3U2HZVEPZA6GTIT4ZEC4SHKJUENAC
DDYDJKL5CGSTC3NGTOBCNKHDTG5LX5F4U7VNZN2YAK5ANLT7UO5AC
MXGC23X2PXGP6TM2FIGK2HQM74QYGY3HVZSH3BSTXAYUUUQCPASAC
C35MTVNINKCQBR7V52L7SLPO7455LDCQ5MBBXJFPQKJBF43JHRPQC
7NPJXMYAWQD47U2DFEOLIAV3VFFRAW4Y5ZBWE7CR3GVRPWQK3HGAC
4WF6HXUDMBJJMBSYMXJ6BHAG77HT4BRXLCJ4SQZ4INL5PPM2HGCQC
Q3B3UVMYEVC4YJUPYVSNTR4DJH4E6J4JJDHZNT5LNOCHCPPMEMXAC
XIFNWKKXBHUZG52JL2PICXF4C3I5HDGFAEU2CHHVBXNT75WQE5NAC
IYKF7624NNMXQET3NQ5RVEB6DXXCZX4GQOPUGWF2DWBOIMUAB2QAC
P5XTDFSJX6W4TXSO2SZCKUY6PIOBUAZBZ7GPKE7QMPY4L7QDXWPAC
NDE6CROMCVOJRMRMEID7QISFPZKUK2VCV6ISP5OEQRBH7EIXUIEQC
OGDVYT4KKXIUOB4NCNWBX64EJWS25B54DF23UP3NMQ6QWHEW2RAAC
XKSYV5QUG2PET6BNBZPNI4D7LDBJGWOH335OD3J24AKJWE63J3WQC
2H6MSLB3SR42LG524K2QHJVCZ747RHAKI3VHFVTQ2K7X2LSOIEDQC
K2CS6TCX2NDVL2ASEHGP4J4K4IJ6FP3ANNKTSIWVG43HPYSBX6ZQC
76XAPPSY2BXXT7AC45TNI7DL7AP6242DXC45CDIZ6T3RN4ZI3R4AC
POP6UTTHSJGDU5NU7ENQJOZVFUHYM63HJ6HLPXDDLK7XFIP4XEIQC
3QMVUDNISBRQJZY76HDNCPB3L6J3Z6QIGFKSUI674QZB6NYZYI5AC
FCL7KOWXA5O3GLMDR22JCGMTHMZ57C4WQIJKBIIUQV3LI2CI3X7AC
JJULXW764V5C2HJKZNWQAEWB6QM5YZADD7ZCE35LYTBFEM6PMYCAC
VVT3MLWGHKXHO3TAWGKRHU6DY3F5J3LNPJCEYRRXMLKKHTKS7JGQC
UXAXAS5XM2C2X7B77JUZXDD4TL7UATYMUJBPK4J7PPAFLAMCG7MQC
4QE4GYRBDR2URCA7UE7TSRBYYMWM3ZBD4PSZGOVTTHC2GON52V3QC
JM7UAK777RAVDAVLQLEOBRTGNW2B47S5G55XITJXO243IUNZHVYQC
DDU4A3JGN5IUIPP5IASOODKPR2WBHSDSV4FITZ6HNXNSXXQACWAQC
25CH7HH4LKXFIZ75YNMXS3TSXO6O27DYSOPLOD45K4OCNFWLS4LQC
F2ZJ55CL3T66DFM34BQWCJNHIT4XJFCGTWTA5KESV6NHWFLTGUYAC
IXWJ54CASZWYHSTDOU3TRQS2DSF4MKBRPO4VZYLE72JL5RD22O2AC
HBPUTW5HDHUEPB62DMJ6GGP2D2GLZB53O5VRTWDLQ4Z53NWB3MKQC
RX6575DZOHRUXQUZH34YZGPZJF4STUPLBQDIVTINA2L6LVCKRIGQC
TFYLN3PQEKFQNOYRVJRCXFJ4J6VSKC7QQFOHNWTDPSVYWAPAJABAC
UEI5JAVCMN7Y2SACTEZPZSNFJWOJTC55G24Q6LKQCT4XNDH5ZQIAC
4NNN5LKBZLDXMDN2322PBG7WFHF4TWOEMVODSO7BXXCM3AZKQN4QC
BWH4C6ZVGZV37Y3ILA6Q22IBZKEYY35TJTT2YULSRIYI6SQNLPQQC
NS3KXJXQSN33UQSOBDK3WXXKA3KY5YOUJL67NBZKGQAJYDYZ2COQC
for (int i = 0; i < 52; ++i)
{
const char letter = index_to_letter(i);
const spell_type spell = get_spell_by_letter(letter);
if (spell == SPELL_NO_SPELL)
continue;
InventoryTile desc;
// desc.tile = tileidx_spell(item);
desc.tile = TILE_ERROR;
desc.idx = (int) spell;
// If an equipped artefact prevents teleportation, the following spells
// cannot be cast.
if ((spell == SPELL_BLINK || spell == SPELL_CONTROLLED_BLINK
|| spell == SPELL_TELEPORT_SELF)
&& scan_artefacts(ARTP_PREVENT_TELEPORTATION, false))
{
desc.flag |= TILEI_FLAG_MELDED;
}
else if (spell_mana(spell) > you.magic_points)
desc.flag |= TILEI_FLAG_MELDED;
inv.push_back(desc);
}
const int mx = m_region_inv->mx;
const int my = m_region_inv->my;
const unsigned int max_spells = std::min(22, mx*my);
while (inv.size() < max_spells)
{
InventoryTile desc;
// if ((int)inv.size() >= max_pack_items)
// desc.flag |= TILEI_FLAG_INVALID;
inv.push_back(desc);
}
m_region_inv->update(inv.size(), &inv[0]);
}
void TilesFramework::update_inventory()
{
static int _handle_spells_mouse(MouseEvent &event, int idx, int item_idx)
{
const spell_type spell = (spell_type) idx;
if (event.button == MouseEvent::LEFT)
{
you.last_clicked_item = item_idx;
if (!cast_a_spell(true, spell))
flush_input_buffer( FLUSH_ON_FAILURE );
return CK_MOUSE_CMD;
}
else if (event.button == MouseEvent::RIGHT)
{
you.last_clicked_item = item_idx;
describe_spell(spell);
redraw_screen();
return CK_MOUSE_CMD;
}
return 0;
}
if (keyin == '?' || keyin == '*')
{
keyin = list_spells(true, false, minRange);
if (!keyin)
keyin = ESCAPE;
if (keyin == '?' || keyin == '*')
{
keyin = list_spells(true, false, minRange);
if (!keyin)
keyin = ESCAPE;
if (keyin == ESCAPE)
{
canned_msg( MSG_OK );
return (false);
}
if (!isalpha(keyin))
{
mpr("You don't know that spell.");
crawl_state.zero_turns_taken();
return (false);
}
if (!isalpha(keyin))
{
mpr("You don't know that spell.");
crawl_state.zero_turns_taken();
return (false);
spell = get_spell_by_letter( keyin );
//---------------------------------------------------------------
//
// describe_spell
//
// Describes (most) every spell in the game.
//
//---------------------------------------------------------------
void describe_spell(spell_type spelled, const item_def* item)
bool _get_spell_description(const spell_type spell, std::string &description,
const item_def* item = NULL)
print_description(description);
void get_spell_desc(const spell_type spell, describe_info &inf)
{
std::string desc;
_get_spell_description(spell, desc);
inf.body << desc;
}
//---------------------------------------------------------------
//
// describe_spell
//
// Describes (most) every spell in the game.
//
//---------------------------------------------------------------
void describe_spell(spell_type spelled, const item_def* item)
{
std::string desc;
bool can_mem = _get_spell_description(spelled, desc, item);
print_description(desc);