showing schools/success and hunger/power.
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@1693 c06c8d41-db1a-0410-9941-cceddc491573
FCL7KOWXA5O3GLMDR22JCGMTHMZ57C4WQIJKBIIUQV3LI2CI3X7AC T5E3N5YFW7ANN7XRUTQGAOBJ3CR6KPH3L2PWTN3Q2BNQBOIBKLTQC K2CS6TCX2NDVL2ASEHGP4J4K4IJ6FP3ANNKTSIWVG43HPYSBX6ZQC DDU4A3JGN5IUIPP5IASOODKPR2WBHSDSV4FITZ6HNXNSXXQACWAQC PR2XIEELO6UJWT3EXDHWCJZGIZCCF3D6KF6LC67R6RWWAVNWEHWAC DWQDVEHZSTDVFS2GU24ZLIGJDA3M4767TB734JAQEAUVOOCLZ75AC RPOZZWKG5GLPHVZZ7ZKMKS64ZMV2LDCQSARBJFJ6FZOTOKCQO7FAC IJ6KN5MQLEB7DR7NW2AYQNCVBV5IUKECUSECUMEJWOBRNJBAXHCQC SDLKLUNFGVKDS55DDJZCBAVIB7NL3RRYPTACAY65SCUQKV6APFSAC 2GV6OW7P54FXZ5OD2NUMX7MLXH424LYAFMOAUQ2UGSOLKLYDBJGAC switch (level){case 1: return 50;case 2: return 95;case 3: return 160;case 4: return 250;case 5: return 350;case 6: return 550;case 7: return 700;case 8: return 850;case 9: return 1000;case 10: return 1000;case 11: return 1100;case 12: return 1250;case 13: return 1380;case 14: return 1500;case 15: return 1600;default: return 1600 + (20 * level);}} // end spell_hunger();
const int basehunger[] = {50, 95, 160, 250, 350, 550, 700, 850, 1000};int hunger;if ( level < 10 && level > 0 )hunger = basehunger[level-1];elsehunger = (basehunger[0] * level * level) / 4;hunger -= you.intel * you.skills[SK_SPELLCASTING];if ( hunger < 0 )hunger = 0;
// spell power, fail rate, leveldesc << std::setw(14) << spell_power_string(spell)<< std::setw(12) << failure_rate_to_string(spell_fail(spell))
static std::string spell_extra_description(spell_type spell){std::ostringstream desc;desc << std::left;// spell namedesc << std::setw(30) << spell_title(spell);// spell power, hunger level, leveldesc << std::setw(30) << spell_power_string(spell)<< std::setw(12) << spell_hunger_string(spell)
};struct ToggleableMenuEntry : public MenuEntry{public:std::string alt_text;ToggleableMenuEntry( const std::string &txt = std::string(),const std::string &alt_txt = std::string(),MenuEntryLevel lev = MEL_ITEM,int qty = 0, int hotk = 0 ) :MenuEntry(txt, lev, qty, hotk), alt_text(alt_txt) {}void toggle() { text.swap(alt_text); }
// Allows toggling by specific keys.class ToggleableMenu : public Menu{public:ToggleableMenu( int _flags = MF_MULTISELECT ) : Menu(_flags) {}void add_toggle_key(int newkey) { toggle_keys.push_back(newkey); }protected:virtual int pre_process(int key);std::vector<int> toggle_keys;};
int ToggleableMenu::pre_process(int key){if ( std::find(toggle_keys.begin(), toggle_keys.end(), key) !=toggle_keys.end() ){// Toggle all menu entriesfor ( unsigned int i = 0; i < items.size(); ++i ){ToggleableMenuEntry* const p =dynamic_cast<ToggleableMenuEntry*>(items[i]);if ( p )p->toggle();}// Toggle titleToggleableMenuEntry* const pt =dynamic_cast<ToggleableMenuEntry*>(title);if ( pt )pt->toggle();// Redrawdraw_menu();// Don't further process the keyreturn 0;}return key;}