reactos/lib/3rdparty/cardlib/cardstack.h
Cameron Gutman 29fa274d6d - Create another branch for networking fixes
- TSVN choked repeatedly when attempting to merge ~9000 revs into the branch (tried 3 times on 2 different computers)
 - If someone wants to delete aicom-network-fixes, they are welcome to
 - Lesson learned: Letting a branch get thousands of revs out of date is a horrible idea

svn path=/branches/aicom-network-branch/; revision=44353
2009-12-02 03:23:19 +00:00

53 lines
956 B
C++

#ifndef CARDSTACK_INCLUDED
#define CARDSTACK_INCLUDED
#include "card.h"
#define MAX_CARDSTACK_SIZE 128
class CardStack
{
friend class CardRegion;
public:
CardStack() : nNumCards(0) { }
void NewDeck();
int NumCards() const { return nNumCards; }
void Shuffle();
void Clear();
void Reverse();
void Push(const Card card);
void Push(const CardStack &cardstack);
Card Pop();
CardStack Pop(int items);
Card Top();
CardStack Top(int items);
void Print();
Card RemoveCard(size_t index);
void InsertCard(size_t index, Card card);
//subscript capability!!
Card & operator[] (size_t index);
const Card & operator[] (size_t index) const;
CardStack &operator += (Card card);
CardStack &operator += (CardStack &cs);
CardStack operator + (Card card);
CardStack operator + (CardStack &cs);
private:
CardStack(CardStack &copythis, size_t fromindex);
Card cardlist[MAX_CARDSTACK_SIZE];
int nNumCards;
};
#endif