drawn, you get to stack them in any order, and the rest of the deck is discarded. The next card is inscribed on the deck; the remainder can be seen with 'v'. This is now Nemelex's top ability.
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@1467 c06c8d41-db1a-0410-9941-cceddc491573
RR2J4VLJCZSAKY3HNS334KI4YUAPOMSETO2HGCGEEIUCUJAYAGSQC 2ESKXYN266CEMLSL6DNCKG4REDO34FXL4ODVGMWDJTNJRKMXWCRQC K2CS6TCX2NDVL2ASEHGP4J4K4IJ6FP3ANNKTSIWVG43HPYSBX6ZQC JW2KRJHES33W7UTWZ6NDO4TLMK4EFU4HKZXBWR2UJOMPCCOTR4CQC CIPVRZGLOZHCERK6YPOBV3P2E4IAB4H6D5EHLRQE2O5E4P4VCBUAC RPOZZWKG5GLPHVZZ7ZKMKS64ZMV2LDCQSARBJFJ6FZOTOKCQO7FAC H7BW6SEIQ57X6V4BM2RX54W42W6BH5XJBAS6FYCYKLQQG43ZMU4QC KAL42YT6OQXFPMKKKHE2NQM47W5KMLSRI6KWFRTJFAO4WKP4MMLAC VNHFP63ZLLZU3A3PLXP4BITX57DUIYDHFOHQYK3BOBHV3S64G26QC WHY6LRRJ5T2NSBE3IUCR4X3TOAH7TTK5NPUPUIFT7TPNJ6J4HBDAC 2IJDLTWK74ULETLFTIPUIY2MSG6RNONVAFNFE7MADPT6UNYSSBDAC RYT42Z6CED4KV5CCJ45CHZ3DQGLFMDCVH6CSQZNXOILULDG4MXVQC if ( is_deck(item) && item.plus2 != 0 ){description += "$Next card(s): ";description += card_name(static_cast<card_type>(item.plus2 - 1));long spec = item.special;while ( spec ){description += ", ";description += card_name(static_cast<card_type>((spec & 0xFF)-1));spec >>= 8;}description += "$";}
case CARD_DEMON_GREATER: return "a huge demon";case CARD_DEMON_SWARM: return "a swarm of little demons";case CARD_YAK: return "a huge, shaggy yak";case CARD_FIEND: return "a huge, scaly devil";case CARD_DRAGON: return "a huge, scaly dragon";
case CARD_DEMON_GREATER: return "a demon";case CARD_DEMON_SWARM: return "a demon";case CARD_YAK: return "a yak";case CARD_FIEND: return "a devil";case CARD_DRAGON: return "a dragon";
case CARD_HEALING: return "the Elixir of Health";case CARD_HEAL_WOUNDS: return "the Symbol of Immediate Regeneration";case CARD_TORMENT: return "the Symbol of Torment";
case CARD_HEALING: return "Health";case CARD_HEAL_WOUNDS: return "Health";case CARD_TORMENT: return "Torment";
item.special = chosen + 1;
item.plus2 = chosen + 1;you.wield_change = true;return true;}bool deck_stack(){if ( !wielding_deck() ){mpr("You aren't wielding a deck!");return false;}item_def& item(you.inv[you.equip[EQ_WEAPON]]);if ( item.plus2 != 0 ){mpr("You can't stack a marked deck.");return false;}const int num_to_stack = (item.plus < 5 ? item.plus : 5);const deck_type dtype = subtype_to_decktype(item.sub_type);std::vector<card_type> draws;for ( int i = 0; i < num_to_stack; ++i )draws.push_back(choose_one_card(dtype, false));if ( draws.size() == 1 )mpr("There's only one card left!");elsempr("Order the cards (bottom to top)...", MSGCH_PROMPT);item.special = 0;while ( draws.size() > 1 ){for ( unsigned int i = 0; i < draws.size(); ++i ){msg::stream << (static_cast<char>(i + 'a')) << " - "<< card_name(draws[i]) << std::endl;}int selected = -1;while ( 1 ){const int keyin = tolower(get_ch());if (keyin >= 'a' && keyin < 'a' + static_cast<int>(draws.size())){selected = keyin - 'a';break;}else{canned_msg(MSG_HUH);}}item.special <<= 8;item.special += draws[selected] + 1;draws.erase(draws.begin() + selected);mpr("Next card?", MSGCH_PROMPT);}item.plus2 = draws[0] + 1;item.plus = num_to_stack; // no more deck after the stack
cards(static_cast<card_type>(deck.special - 1));deck.special = 0;
// draw the marked cardcards(static_cast<card_type>(deck.plus2 - 1));// If there are more marked cards, shift them upif ( deck.special ){const short next_card = (deck.special & 0xFF);deck.special >>= 8;deck.plus2 = next_card;}else{deck.plus2 = 0;}