git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@9541 c06c8d41-db1a-0410-9941-cceddc491573
HVEU33HIUHCYFINJMVSSOIRUPZGGVC7NMWUN2EADG2W373JP3WOAC TMLDT7CQ5U43SYJ2NYQHDOECFABG3A4NCII5QBNC2PPY4UC4JHCAC FSJKED4U2SOUP64DTHF2NEGAYY7EUMSIDKC2SATEXAXEVOCNL3CAC V6MJ46WTZVSZVTUF7Y5FDDAHD54QMWW4XNUNU6MKHPXUXT7RVG7QC CBNTD4Q6ZFTB2JGKN4K5X3VOFXEMS5UUPTNIMPIW6RFEMOBGCVVQC EPRT5LWIQULNZW5XP3ZMAGMEZ5KC4PQTW2BDTEXNH367LDL5NE5QC I2WJK6VZZCWKSJ2XQH7W4HXRNZZ2MSCKO65IIRFBGGMWMUZ2VZ6QC SJJMO4TFG3QO46SLHUFSUYXXVZJDULVYTU4RTCM7TQPIGHZTWBDAC ZNMT5CZHP2FC4HTLNA7KYEDGFBXSCUE5QHJOALVPE6RDPHSEDXRQC K2CS6TCX2NDVL2ASEHGP4J4K4IJ6FP3ANNKTSIWVG43HPYSBX6ZQC TGJZXTUIAKCFZQJ54ZQEBGFBVZSJCAX6AWDRSH3TP7UJRLGUM5SAC RPOZZWKG5GLPHVZZ7ZKMKS64ZMV2LDCQSARBJFJ6FZOTOKCQO7FAC PKXXBHS3LWLPZI2QVRX22MSQ4R2626IXRSNHFFYHXYTLJJQU54LQC ZGZVOMRXLVC42FV67RBTLBOZWFYRL4UHL54A365BR76OUIYRWQXAC EOMCPVNQLX3IMLC46EAO67DPBH5KEG2FQTPBLGU62HIRWA3UQ7XQC XVFTIQ7MSVKQDMQ2HT3IY6FJOZFK4H6OFGTUAID5VGCA5BGVXYPAC SDLKLUNFGVKDS55DDJZCBAVIB7NL3RRYPTACAY65SCUQKV6APFSAC Q3B3UVMYEVC4YJUPYVSNTR4DJH4E6J4JJDHZNT5LNOCHCPPMEMXAC JVSCP4FTW2G57C6YD5HZOZXTODGZH7TR75JQGFJBEPX3LCZH236QC E6JXIMRH2TX5WHZ6BT2QZ3EANM3PWCHCVYC4XWRJGRBDSP42X2RAC FWNNTOEERPUKXPE4OC52UABFZLKIU3O5GRNNLDK4QI4HR2IOU36QC JVFPF4MBNVY2UEXPWJDKTWL6RY7WCXPB6GBOK3WPJOGM6CX3D7HQC 3CRSIZM7N5F46UWBKM2Y3CNKADWZGLI4JWMUO762ND2TT4247RGQC UC6V7JDZ6CKQNL5AARWFJ4ZPX4ZYCO5J3FW52I52I3PBJO6T6VEAC CCRQESB4ADT4WA7FGLNZZXAJ6G5QMCTYCZIWORBN45P6ZPILC34AC 7NFVYCNQ54IN77PF334ADAF4YQT6LEABMAIZF4Y4BH5C3CYXYQGQC 2PAHDAPDO6PN4FNGB5N7CQNEGHSE3NOGPXYZMIAOJC4VW34FRVOAC CIPVRZGLOZHCERK6YPOBV3P2E4IAB4H6D5EHLRQE2O5E4P4VCBUAC QCUMH3C7GXV7ZW444WT5SFAXQOJKJSE2YCQCEHMRYXCWF4QI7UMAC 77H4BWWPPGLM3PLZH4QTAJRXIZTSDVNCOKZE223I437FN2UJ34RQC BWAQ3FHBBM6G3K3KYP75CRTR343RDQZJRYX5ZGYUEXYBAC3APDLAC BW3XFNOS6LDAQLHOZ6RXARCMKCY5JVLVDSXDSSAX4DSYM3FANQBAC NR7PW3FTNYTZEM7RSWVNMWB5NQHRDMMY3TB6L5II5VCW76OAMT6QC OQ76R2BGEXU64TGDEQF46WVKM3LW5JO67CVITYQSIKE36LQZ725AC RXZRRWQZH7H3E66ENDI6WTSDDTC5F7MDGIMZTEDYDE4YCUQN4CSAC MUNICOGJDTT3DH4BIKWYE3LBC2YTSC6XMPB4RGCEABRP6Q7W733QC HKQTMQVLLOBG2VO47TUGSTQALA3D2YLMEVADXXYNR4RGGKD3F2ZAC UQ4P6W76CTKR2MQNH3EWPS4QPDXE3YRLJRR6744ZJJ32XKYPXQQQC HTR7KACUG3OB7ANWNQDJ2DDSAR2FQY6VLNLRAJ7OWW4P2AX5LOGAC 6QVMISKCQYTVHBH2YZLOE77I72NIVUQN2D7ACECQ5TYMVC72LAWQC 5V47S4NNTHWTSAHV3YLO2VGH7JTUIYJ3GBPDN5ZM4UQALT2ZEXDQC MSRJ3N4NX255RVISUOPTTTY2GG4JVVNNM76HWUZ2EKCYESNI6MLQC I4HQEB6RVIPJD3EQCNADMQJVGYAIIHTBGFVMPXHDNLYYG5JVIK4AC PI5BATR2SER3RFE76IUGHM2AGXVFOUM3PLU7WC2K2Q2BA5K2E73QC RYT42Z6CED4KV5CCJ45CHZ3DQGLFMDCVH6CSQZNXOILULDG4MXVQC QLEBDRVUQ3BMCT7LV4EBPG7T5X4KMQJAVLMLHHB7DRCNNGDQBRNQC VCG3BRIYRTNNWYC3LOXD6KFGXOX37HAFW2HNV7WXVG2V7EUHLDZQC UOWPKKEVEMM6D67GLKB2PKCAWJU2GJJQTOLF6IQ6ZQB5WB3UH5JQC XKSYV5QUG2PET6BNBZPNI4D7LDBJGWOH335OD3J24AKJWE63J3WQC PTHJX2MZO5SDSHZMZOWBUPHUEZZPNU6NQAFOC6L3IYMO7C3C4UWQC H2TREER2QXNII3D6GTVASY5RVE7S7KATVKWRKOOISR5ZGOTLPFZQC RR2J4VLJCZSAKY3HNS334KI4YUAPOMSETO2HGCGEEIUCUJAYAGSQC IHOKNI4O7EEW4UBMKHP6XOZNEIQSW4AYOT4O3JXUIXNNR553IQAQC B7MSPF6X2RLGWN4M6ZZF3WSOPKGYPTTD7LIJVST7DXN27DG6JHNAC 7YUGK5Q64KG5O7GJGTUBRRLHAHBCJ5YOE23YUPT6UBKUSB67CYAQC 4FQAKUKUO6PCAZ3N4HUR5XL6E4VA5UQUZ3AEDGRBLVY7W2LMWI7QC 2IJDLTWK74ULETLFTIPUIY2MSG6RNONVAFNFE7MADPT6UNYSSBDAC S34LKQDIQJLIWVIPASOJBBZ6ZCXDHP5KPS7TRBZJSCDRVNCLK6UAC LSFNAB57FI3ERTIMXZI6MRIN6Z6AUZSVX4RKIOEKQWREDP36IYDQC 3KBPG2GCDMENTQJY6UARZAWI57CKHP5JO24LRN243OP4WTUPFK4QC WDWRHNIIHFS24TXNPNRR43PXFEEJHFPKDURX6IZSW6P25TBMJFXAC WXSNNK2RXP3DQFAEQGQUZJHFWXJC7ZKG2WURZGL566UDM4YXFSWQC T57T7U2OARKQBYXPOZ4BOL7JJW4WA356CVOQ6ZZOMOV3JQSGBEVQC RVST2QHYJ757ZHK4AUJ5NGPDZ44AD6RVFVXYPKQIBJXZBDNUCHXQC (!map_bounds(gc)) ? 0: (!crawl_view.in_grid_los(gc)) ? get_envmap_char(gc.x, gc.y): (gc == you.pos()) ? you.symbol: get_screen_glyph(gc.x, gc.y);
(!map_bounds(gc)) ? 0 :(!crawl_view.in_grid_los(gc)) ? get_envmap_char(gc.x, gc.y) :(gc == you.pos()) ? you.symbol: get_screen_glyph(gc.x, gc.y);
std::string lookup;if (level == 1)lookup = "starting";else if (level <= 3 || level == 4 && coinflip())lookup = "easy";else if (level <= 6)lookup = "moderate";
std::string bookname;if (god == GOD_XOM && coinflip()){bookname = getRandNameString("book_noun") + " of "+ getRandNameString("Xom_book_title");}
std::string bookname;// First try for names respecting the book's previous owner/author// (if one exists), then check for general difficulty.if (has_owner)bookname = getRandNameString(lookup + " owner");
// First try for names respecting the book's previous owner/author// (if one exists), then check for general difficulty.if (has_owner)bookname = getRandNameString(lookup + " owner");if (!has_owner || bookname.empty())bookname = getRandNameString(lookup);
if (!has_owner || bookname.empty())bookname = getRandNameString(lookup);
bookname = uppercase_first(bookname);if (has_owner){if (bookname.substr(0, 4) == "The ")bookname = bookname.substr(4);else if (bookname.substr(0, 2) == "A ")bookname = bookname.substr(2);else if (bookname.substr(0, 3) == "An ")bookname = bookname.substr(3);}
bookname = uppercase_first(bookname);if (has_owner){if (bookname.substr(0, 4) == "The ")bookname = bookname.substr(4);else if (bookname.substr(0, 2) == "A ")bookname = bookname.substr(2);else if (bookname.substr(0, 3) == "An ")bookname = bookname.substr(3);
if (bookname.find("@level@", 0) != std::string::npos){std::string number;switch (level){case 1: number = "One"; break;case 2: number = "Two"; break;case 3: number = "Three"; break;case 4: number = "Four"; break;case 5: number = "Five"; break;case 6: number = "Six"; break;case 7: number = "Seven"; break;case 8: number = "Eight"; break;case 9: number = "Nine"; break;default:number = ""; break;}bookname = replace_all(bookname, "@level@", number);}
if (bookname.find("@level@", 0) != std::string::npos){std::string number;switch (level){case 1: number = "One"; break;case 2: number = "Two"; break;case 3: number = "Three"; break;case 4: number = "Four"; break;case 5: number = "Five"; break;case 6: number = "Six"; break;case 7: number = "Seven"; break;case 8: number = "Eight"; break;case 9: number = "Nine"; break;default:number = ""; break;}bookname = replace_all(bookname, "@level@", number);}
return (false);
{if (completely_random)return (false);// Rather than give up at this point, choose schools randomly.// This way, an acquirement won't fail once the player has// seen all spells.if (!_get_weighted_discs(true, god, disc1, disc2))return (false);}
if (first_entry + pagesize < static_cast<int>(items.size()) &&items[first_entry + pagesize]->level != MEL_TITLE )
if (first_entry + pagesize < static_cast<int>(items.size())&& items[first_entry + pagesize]->level != MEL_TITLE)
// returns values < 0 for edible chunks (non-rotten except for Saprovores),// 0 for non-chunks, and values > 0 for rotten chunks for non-Saprovores
// Returns values < 0 for edible chunks (non-rotten except for Saprovores),// 0 for non-chunks, and values > 0 for rotten chunks for non-Saprovores.
description <<"$It uses its own mana reservoir for casting spells, and ""recharges automatically by channeling mana from its ""wielder.";
if (verbose){description <<"$It uses its own mana reservoir for casting spells, and ""recharges automatically by channeling mana from its ""wielder.";
const int max_charges = MAX_ROD_CHARGE;if (item_ident(item, ISFLAG_KNOW_PLUSES)){const int num_charges = item.plus2 / ROD_CHARGE_MULT;if (max_charges > num_charges)
const int max_charges = MAX_ROD_CHARGE;if (item_ident(item, ISFLAG_KNOW_PLUSES))
description << "$It can currently hold " << num_charges<< " charges. It can be magically recharged "<< "to contain up to " << max_charges<< " charges.";
const int num_charges = item.plus2 / ROD_CHARGE_MULT;if (max_charges > num_charges){description << "$It can currently hold " << num_charges<< " charges. It can be magically recharged "<< "to contain up to " << max_charges<< " charges.";}elsedescription << "$It is fully charged.";
static void _describe_cards(std::vector<card_type> cards){ASSERT(!cards.empty());std::ostringstream data;for (unsigned int i = 0; i < cards.size(); ++i){std::string name = card_name(cards[i]);std::string desc = getLongDescription(name + " card");if (desc.empty())desc = "No description found.";data << name << "$$" << desc << "$$";}print_description(data.str());if (getch() == 0)getch();
clrscr();cgotoxy(1,1);textcolor(WHITE);cprintf("Press a digit to select a card, ""then another digit to swap it.");cgotoxy(1,10);cprintf("Press Enter to accept.");_redraw_stacked_cards(draws, selected);// Hand-hacked implementation, instead of using Menu. Oh well.
if (need_prompt_redraw){clrscr();cgotoxy(1,1);textcolor(WHITE);cprintf("Press a digit to select a card, then another digit ""to swap it.");cgotoxy(1,10);cprintf("Press ? for the card descriptions, or Enter to ""accept.");_redraw_stacked_cards(draws, selected);need_prompt_redraw = false;}// Hand-hacked implementation, instead of using Menu. Oh well.
mpr("You draw... (choose one card)");for (int i = 0; i < num_to_draw; ++i){msg::streams(MSGCH_PROMPT) << (static_cast<char>(i + 'a')) << " - "<< card_name(draws[i]) << std::endl;}