summaryrefslogtreecommitdiffstats
path: root/crawl-ref/source/describe.cc
diff options
context:
space:
mode:
authorharanp <haranp@c06c8d41-db1a-0410-9941-cceddc491573>2008-04-03 14:40:19 +0000
committerharanp <haranp@c06c8d41-db1a-0410-9941-cceddc491573>2008-04-03 14:40:19 +0000
commitb49316f91a8dfd8386ae41a4cf2b9e1814fb9166 (patch)
tree520a548fb84493df971ed251e53fe3cd0f043921 /crawl-ref/source/describe.cc
parent4f5d24c39a9fb20f44953732a793ba24b88b1252 (diff)
downloadcrawl-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.cc26
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 )
{