display as for spellcasting. Also force a redraw() if the player clicked on a spell.
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@10661 c06c8d41-db1a-0410-9941-cceddc491573
GSCSER2ZAH6ACCCMIUNKHN7OVGRVRTWVHBNYWLZGR7AQSOMF2TSQC HQQTCFCAQDCLCKN2JKOWOQB4IJBIE7JIX2L2PWTRQOLNXOIKR4SAC O57XB4MDBAOSELCNBA2VDXKPGCYNCHKV2MGELL4PK3MRDJAUP72QC A5PQLNX3XFGSNBUEEI6DYWZZ3U2HZVEPZA6GTIT4ZEC4SHKJUENAC Q3B3UVMYEVC4YJUPYVSNTR4DJH4E6J4JJDHZNT5LNOCHCPPMEMXAC P5XTDFSJX6W4TXSO2SZCKUY6PIOBUAZBZ7GPKE7QMPY4L7QDXWPAC 6WTIPODXGUFWCOP5ADMR2XCCQ63HMZR7LHZM2FX4L2ACZWLKTQQAC XKSYV5QUG2PET6BNBZPNI4D7LDBJGWOH335OD3J24AKJWE63J3WQC 4NNN5LKBZLDXMDN2322PBG7WFHF4TWOEMVODSO7BXXCM3AZKQN4QC C35MTVNINKCQBR7V52L7SLPO7455LDCQ5MBBXJFPQKJBF43JHRPQC K2CS6TCX2NDVL2ASEHGP4J4K4IJ6FP3ANNKTSIWVG43HPYSBX6ZQC TRZAZJJA5VQBJ65SO5H5DNSILIZEJHIZCBYEBHEATCT6ZSMWIFKQC M37SPVN6HIVMCINBTCAJSEJDLM67DWEZRCR45QTIILJ2XQ73ZF6QC I6BG7QKQHT7OMBMSD5LN6ILPSZOT6RM4RY3VB2HFUXZMWQTZPW2AC EZOLOYGEKWHZKTETREC3LK3RZFRBJJHR6O4EQT2WOZYXLFYPDXVQC DO6W27HYFNVFMX7FSGG4RCX5UW32ORCVYZBQYPCUD4VCHMA4LFFQC RPOZZWKG5GLPHVZZ7ZKMKS64ZMV2LDCQSARBJFJ6FZOTOKCQO7FAC C6SU6CPHYLFEJTVDX4Q5VBL4GCCKZNTI3TEB3YSFG2RYELSQGA2QC DDYDJKL5CGSTC3NGTOBCNKHDTG5LX5F4U7VNZN2YAK5ANLT7UO5AC 25CH7HH4LKXFIZ75YNMXS3TSXO6O27DYSOPLOD45K4OCNFWLS4LQC IXWJ54CASZWYHSTDOU3TRQS2DSF4MKBRPO4VZYLE72JL5RD22O2AC NROTGB26G7CER2PUMZWEQTW6OCAAQBHEVVESKY7XBGFBTIZKFS3AC if (Options.tile_display == TDSP_MEMORISE){std::vector<spell_type> spells = get_mem_spell_list();for (unsigned int i = 0; i < spells.size(); ++i){const spell_type spell = spells[i];InventoryTile desc;desc.tile = tileidx_spell(spell);desc.idx = (int) spell;desc.quantity = spell_difficulty(spell);if (spell_difficulty(spell) > you.experience_level|| player_spell_levels() < spell_levels_required(spell)){desc.flag |= TILEI_FLAG_MELDED;}inv.push_back(desc);}m_region_inv->update(inv.size(), &inv[0]);return;}
desc = info;}else // if (Options.tile_display == TDSP_MEMORISE){snprintf(info, INFO_SIZE, "%s (%s) %d/%d spell slot%s",spell_title(spell),failure_rate_to_string(spell_fail(spell)),spell_levels_required(spell),player_spell_levels(),spell_levels_required(spell) > 1 ? "s" : "");
if (!learn_spell())
Options.tile_display = TDSP_MEMORISE;tiles.update_inventory();return CK_MOUSE_CMD;}if (Options.tile_display == TDSP_SPELLS){you.last_clicked_item = item_idx;tiles.set_need_redraw();if (!cast_a_spell(true, spell))flush_input_buffer( FLUSH_ON_FAILURE );}else if (Options.tile_display == TDSP_MEMORISE){you.last_clicked_item = item_idx;tiles.set_need_redraw();if (!learn_spell(spell))
return CK_MOUSE_CMD;
// if (!can_learn_spell(true) || !has_spells_to_memorise()){// Jump back to spells list. (Really, this should only happen// if there aren't any other spells to memorise, but this// doesn't work for some reason.)Options.tile_display = TDSP_SPELLS;tiles.update_inventory();}
if (m_items[item_idx].key == 0 && Options.tile_display_spells){int key = _handle_spells_mouse(event, idx, item_idx);if (key != 0)you.last_clicked_item = item_idx;return (key);}
if (m_items[item_idx].key == 0 && Options.tile_display != TDSP_INVENT)return _handle_spells_mouse(event, idx, item_idx);
if (flag & TILEI_FLAG_MELDED)tip = "You cannot cast this spell right now.";elsetip = "[L-Click] Cast (z)";
if (Options.tile_display == TDSP_SPELLS){if (flag & TILEI_FLAG_MELDED)tip = "You cannot cast this spell right now.";elsetip = "[L-Click] Cast (z)";}else if (Options.tile_display == TDSP_MEMORISE){if (flag & TILEI_FLAG_MELDED)tip = "You don't have enough slots for this spell right now.";elsetip = "[L-Click] Memorise (M)";}
spell_list mem_spells;spells_to_books book_hash;unsigned int num_unreadable;unsigned int num_race;if (!_get_mem_list(mem_spells, book_hash, num_unreadable, num_race))return (spells);for (unsigned int i = 0; i < mem_spells.size(); i++)spells.push_back(mem_spells[i]);return (spells);}