git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@2962 c06c8d41-db1a-0410-9941-cceddc491573
XDJGQNFELURGXMUAOOVALQMSLAJVHMG63KPKVA33HTJFVZROGZ4AC XMQO4XAQWQBHP53TJRYEYDGCNEW34WK2YNIVY6UWZAPR2ZZXPBMQC IDWM4TPSETNZMHQY3V6PGMZPWOJSTJ77PD3ZUOJLLZADQ2KKAVJQC GCDBSJXJCPEK4NCX5CVGDBK3432PFCU5OCO2F3DA32332ALI2ZYQC DELYWRJYVTRDE5XWQ2L2IRJPO4N2F3JVLPLCTGOU7QS5JO75NOPAC 3YBQGKQ22WFXA5RXDSKLFWMABLJ6KHBVWEIA3WIDHWM25OECNTYAC EJEHTLHZ5DL4SJQJBMQL5K3IV2ZMCZQBVCRRERER7SPOMNKFJTVQC 5BJPWUPLJFS34FUTFJVKA4A52YMIGV6EWDXLNSDCWBJWBGVSQFGQC KFULGQQOHWUTXOM3BXCCYPGGVGGY4Z6265XUFRCBPNLTZAEHJZSQC JW2KRJHES33W7UTWZ6NDO4TLMK4EFU4HKZXBWR2UJOMPCCOTR4CQC K2CS6TCX2NDVL2ASEHGP4J4K4IJ6FP3ANNKTSIWVG43HPYSBX6ZQC ONKB2ZZ2MWY7UGPBHW6EE4N3EEPJONPRRALEFZZR2YTZHNEIGV5AC FLKXPXQ7SRFZPJPDM35D5CG6M52WP4SL32QNEZNSHGBNZYTKYGYAC 3NFVCXRVGHN2CHLLWFZES5RBS4R2BCDS4EEQNSDCFYIFQWQK7MUQC YATODO2EN3AW7IXW5PL25HHK34YHF6Y32QBMOUZXEATZZ4YQQWZQC CJ6OSJQPAZOGWC56OYBALICSITGVUEQERE7LWIYJL2AXWRZE523AC LOJYD6QZRNLNDDZJKVBMKQIBPTKSRN2ETCYGNVV47M7L3QLUJUJAC SLDR32H45VDN74AVZ2JDPLNK7AZWXDS2YRTLMGK7E3FYW6OWOFJAC WHY6LRRJ5T2NSBE3IUCR4X3TOAH7TTK5NPUPUIFT7TPNJ6J4HBDAC CQ24AVAI6SW3AHTIDMLPSTRRBEU6FHRF5I5FD6G5QIYE6PO4BQMQC RRNEVUYOK5S4M4QH77N34IXSSNUXVQAIZQLXAQKQCRITMPUKGP6AC SDLKLUNFGVKDS55DDJZCBAVIB7NL3RRYPTACAY65SCUQKV6APFSAC RISMOCQM6BKK4XSIRKYLOBB2UPDYJNDAL6OGIIR5GGNZQAK5YSZAC TAVHZJPVNJBZR7CUURAOYNDZPNVQ3AGHTXDEP5K4JGYETBLQJDRQC TV3ZC6WOZKSQQJQN26JIVKCHK6UK7WMDBYZDUYRWEAZ4JB4YVNAAC RPOZZWKG5GLPHVZZ7ZKMKS64ZMV2LDCQSARBJFJ6FZOTOKCQO7FAC VEOWM6UDFNWRAXP5YUO7XBH4ZALAJXCWRA4IRDITXJ3QWH42CTWAC RLN5WLM2K5U6QBIBWBLK5XTDD3MPPXXXOVPUT33JKOQF3PHF6WZQC L4UCVNVRFTHENDKDOY6X75LXIE2B7XIMSKGVKHBOXNID7RDTBQRAC Z7SW3IKYNXMOHHD77NGXN6RGL32PZBO6AIHLJY74IRO23AIRKWMQC TMFNNWBMIPWM2FDC7I5R2RUKWNBS3GD3DX6VN452VYRPC3GU2HCQC K2GMFKXUWN5R3KCW6OYVXHN47MIQZKEEIOSAU6LFFKBNKF6JBVWAC EGV2HM7SD7UQSWJGLR65NQJTUBAJ7WHLM67FMH4UFP7JRSFKREPAC E42EFZ3RINKLTGOJJZAH2N5QF3P4S5NCO5T52HLXJRMBPP463HTAC LUNOTEIMYZJ7JL5P55GEHUVSDEZMYX3TWYUB2ABRHAYJEWQSSXIAC GOX2FK35IXLRJJJYT6QHL2GTFUWN6IJ6P7GIWKSP2LDOGTWA7XEQC case GOD_NO_GOD:sprintf(godname_buff, "No God");break;case GOD_RANDOM:sprintf(godname_buff, "random");break;case GOD_ZIN:sprintf(godname_buff, "Zin%s", long_name ? " the Law-Giver" : "");break;case GOD_SHINING_ONE:strcpy(godname_buff, "The Shining One");break;case GOD_KIKUBAAQUDGHA:strcpy(godname_buff, "Kikubaaqudgha");break;
case GOD_NO_GOD: return "No God";case GOD_RANDOM: return "random";case GOD_ZIN: return (long_name ? "Zin the Law-Giver" : "Zin");case GOD_SHINING_ONE: return "The Shining One";case GOD_KIKUBAAQUDGHA: return "Kikubaaqudgha";
sprintf(godname_buff, "Yredelemnul%s", long_name ? " the Dark" : "");break;
return (long_name ? "Yredelemnul the Dark" : "Yredelemnul");case GOD_VEHUMET: return "Vehumet";case GOD_OKAWARU: return (long_name ? "Warmaster Okawaru" : "Okawaru");case GOD_MAKHLEB: return (long_name ? "Makhleb the Destroyer" : "Makhleb");case GOD_SIF_MUNA:return (long_name ? "Sif Muna the Loreminder" : "Sif Muna");case GOD_TROG: return (long_name ? "Trog the Wrathful" : "Trog");case GOD_NEMELEX_XOBEH: return "Nemelex Xobeh";case GOD_ELYVILON: return (long_name ? "Elyvilon the Healer" : "Elyvilon");case GOD_LUGONU: return (long_name ? "Lugonu the Unformed" : "Lugonu");case GOD_BEOGH: return (long_name ? "Beogh the Brigand" : "Beogh");
strcat(godname_buff, " ");switch(random2(30)){default:strcat(godname_buff, "of Chaos");break;case 1:strcat(godname_buff, "the Random");if (coinflip())strcat(godname_buff, coinflip()?"master":" Number God");break;case 2:strcat(godname_buff, "the Tricky");break;case 3:sprintf( godname_buff, "Xom the %sredictable", coinflip() ? "Less-P": "Unp" );break;case 4:strcat(godname_buff, "of Many Doors");break;case 5:strcat(godname_buff, "the Capricious");break;case 6:strcat(godname_buff, "of ");strcat(godname_buff, coinflip() ? "Bloodstained" : "Enforced");strcat(godname_buff, " Whimsey");break;case 7:strcat(godname_buff, "\"What was your username?\" *clickity-click*");break;case 8:strcat(godname_buff, "of Bone-Dry Humour");break;case 9:strcat(godname_buff, "of ");strcat(godname_buff, coinflip() ? "Malevolent" : "Malicious");strcat(godname_buff, " Giggling");break;case 10:strcat(godname_buff, "the Psycho");strcat(godname_buff, coinflip() ? "tic" : "path");break;case 11:strcat(godname_buff, "of ");switch(random2(5)){case 0: strcat(godname_buff, "Gnomic"); break;case 1: strcat(godname_buff, "Ineffable"); break;case 2: strcat(godname_buff, "Fickle"); break;case 3: strcat(godname_buff, "Swiftly Tilting"); break;case 4: strcat(godname_buff, "Unknown"); break;}strcat(godname_buff, " Intent");if (coinflip())strcat(godname_buff, "ion");break;case 12:sprintf(godname_buff, "The Xom-Meister");if (coinflip())strcat(godname_buff, ", Xom-a-lom-a-ding-dong");else if (coinflip())strcat(godname_buff, ", Xom-o-Rama");else if (coinflip())strcat(godname_buff, ", Xom-Xom-bo-Bom, Banana-Fana-fo-Fom");break;case 13:strcat(godname_buff, "the Begetter of ");strcat(godname_buff, coinflip() ? "Turbulence" : "Discontinuities");break;}
const char* xom_names[] = {"Xom the Random", "Xom the Random Number God","Xom the Tricky", "Xom the Less-Predictable","Xom the Unpredictable", "Xom of Many Doors","Xom the Capricious", "Xom of Bloodstained Whimsey","Xom of Enforced Whimsey", "Xom of Bone-Dry Humour","Xom of Malevolent Giggling", "Xom of Malicious Giggling","Xom the Psychotic", "Xom the Psychopath","Xom of Gnomic Intent", "Xom the Fickle","Xom of Unknown Intention", "The Xom-Meister","Xom the Begetter of Turbulence"};return (one_chance_in(3) ? RANDOM_ELEMENT(xom_names): "Xom of Chaos");
break;case GOD_VEHUMET:strcpy(godname_buff, "Vehumet");break;case GOD_OKAWARU:sprintf(godname_buff, "%sOkawaru", long_name ? "Warmaster " : "");break;case GOD_MAKHLEB:sprintf(godname_buff, "Makhleb%s", long_name ? " the Destroyer" : "");break;case GOD_SIF_MUNA:sprintf(godname_buff, "Sif Muna%s", long_name ? " the Loreminder" : "");break;case GOD_TROG:sprintf(godname_buff, "Trog%s", long_name ? " the Wrathful" : "");break;case GOD_NEMELEX_XOBEH:strcpy(godname_buff, "Nemelex Xobeh");break;case GOD_ELYVILON:sprintf(godname_buff, "Elyvilon%s", long_name ? " the Healer" : "");break;case GOD_LUGONU:sprintf(godname_buff, "Lugonu%s", long_name? " the Unformed" : "");break;case GOD_BEOGH:sprintf(godname_buff, "Beogh%s", long_name? " the Brigand" : "");break;default:sprintf(godname_buff, "The Buggy One (%d)", which_god);
case NUM_GODS: return "Buggy";
desc += std::string(god_name(static_cast<god_type>(iorig)))+ " gifted " + article_it(item) + " to you ";
desc += god_name(static_cast<god_type>(iorig))+ " gifted " + article_it(item) + " to you ";
}static void unmark_deck(item_def& deck){if ( !is_deck(deck) )return;CrawlHashTable &props = deck.props;if ( !props.exists("card_flags") )return;CrawlVector &flags = props["card_flags"];for ( unsigned int i = 0; i < flags.size(); ++i )flags[i] =static_cast<char>((static_cast<char>(flags[i]) & ~CFLAG_MARKED));// We'll be mean and leave non_brownie_draws as-is.props["num_marked"] = static_cast<char>(0);}static void unmark_and_shuffle_deck(item_def& deck){if ( is_deck(deck) ){unmark_deck(deck);shuffle_deck(deck);}}static void shuffle_all_decks_on_level(){for ( int i = 0; i < MAX_ITEMS; ++i ){item_def& item(mitm[i]);if ( is_valid_item(item) && is_deck(item) ){#ifdef DEBUG_DIAGNOSTICSmprf(MSGCH_DIAGNOSTICS, "Shuffling: %s on level %d, branch %d",item.name(DESC_PLAIN).c_str(),static_cast<int>(you.your_level),static_cast<int>(you.where_are_you));#endifunmark_and_shuffle_deck(item);}}
static void shuffle_inventory_decks(){for ( int i = 0; i < ENDOFPACK; ++i ){item_def& item(you.inv[i]);if ( is_valid_item(item) && is_deck(item) ){#ifdef DEBUG_DIAGNOSTICSmprf(MSGCH_DIAGNOSTICS, "Shuffling in inventory: %s",item.name(DESC_PLAIN).c_str());#endifunmark_and_shuffle_deck(item);}}}void nemelex_shuffle_decks(){apply_to_all_dungeons(shuffle_all_decks_on_level);shuffle_inventory_decks();god_speaks(GOD_NEMELEX_XOBEH, "You hear Nemelex chuckle.");}
char name[80];strncpy(name, god_name(gi), sizeof(name));char *ptr = strstr( strlwr(name), strlwr(specs) );if (ptr != NULL)
if ( lowercase_string(god_name(gi)).find(specs) != std::string::npos)