diff options
author | haranp <haranp@c06c8d41-db1a-0410-9941-cceddc491573> | 2008-04-03 14:40:19 +0000 |
---|---|---|
committer | haranp <haranp@c06c8d41-db1a-0410-9941-cceddc491573> | 2008-04-03 14:40:19 +0000 |
commit | b49316f91a8dfd8386ae41a4cf2b9e1814fb9166 (patch) | |
tree | 520a548fb84493df971ed251e53fe3cd0f043921 /crawl-ref/source/describe.cc | |
parent | 4f5d24c39a9fb20f44953732a793ba24b88b1252 (diff) | |
download | crawl-ref-b49316f91a8dfd8386ae41a4cf2b9e1814fb9166.tar.gz crawl-ref-b49316f91a8dfd8386ae41a4cf2b9e1814fb9166.zip |
Nemelex changes:
- Renamed abilities, and reordered so that you get Draw One before Peek Two
- Mark Four and Peek Two now lose some cards from the deck
- Viewing a deck now shows which cards have been marked in it
Also fixed a small warning in format.cc.
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@4059 c06c8d41-db1a-0410-9941-cceddc491573
Diffstat (limited to 'crawl-ref/source/describe.cc')
-rw-r--r-- | crawl-ref/source/describe.cc | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/crawl-ref/source/describe.cc b/crawl-ref/source/describe.cc index 461ff62bd2..af1598b224 100644 --- a/crawl-ref/source/describe.cc +++ b/crawl-ref/source/describe.cc @@ -1377,6 +1377,7 @@ static std::string describe_deck( const item_def &item ) } const int num_cards = cards_in_deck(item); + int last_known_card = -1; if ( top_card_is_known(item) ) { description += "Next card(s): "; @@ -1389,6 +1390,7 @@ static std::string describe_deck( const item_def &item ) if ( i != 0 ) description += ", "; description += card_name(card); + last_known_card = i; } else break; @@ -1396,6 +1398,30 @@ static std::string describe_deck( const item_def &item ) description += "$"; } + // Marked cards which we don't know straight off. + std::vector<card_type> marked_cards; + for ( int i = last_known_card + 1; i < num_cards; ++i ) + { + unsigned char flags; + const card_type card = get_card_and_flags(item, -i-1, flags); + if ( flags & CFLAG_MARKED ) + marked_cards.push_back(card); + } + if ( !marked_cards.empty() ) + { + std::sort(marked_cards.begin(), marked_cards.end(), + compare_card_names); + description += "Marked card(s): "; + for ( unsigned int i = 0; i < marked_cards.size(); ++i ) + { + if ( i != 0 ) + description += ", "; + description += card_name(marked_cards[i]); + } + description += "$"; + } + + // Seen cards in the deck. std::vector<card_type> seen_cards; for ( int i = 0; i < num_cards; ++i ) { |