51 lines
1.5 KiB
C
51 lines
1.5 KiB
C
/* Type def's needed if your using the card DLL */
|
||
|
||
typedef enum { faceup = 0,
|
||
facedown = 1,
|
||
hilite = 2,
|
||
ghost = 3,
|
||
remove = 4
|
||
} cardMode;
|
||
|
||
typedef enum { club = 0,
|
||
diamond = 1,
|
||
heart = 2,
|
||
spade = 3
|
||
} cardSuit;
|
||
|
||
typedef enum { ace = 0,
|
||
two = 1,
|
||
three = 2,
|
||
four = 3,
|
||
five = 4,
|
||
six = 5,
|
||
seven = 6,
|
||
eight = 7,
|
||
nine = 8,
|
||
ten = 9,
|
||
jack = 10,
|
||
queen = 11,
|
||
king = 12
|
||
} cardRank;
|
||
|
||
/* Commonly needed macros for card games. */
|
||
|
||
#define CardIndex(suit, rank) ((rank) << 2 + (suit))
|
||
#define CardSuit(index) ((index) & 3)
|
||
#define CardRank(index) ((index) >> 2)
|
||
#define SameSuit(index1, index2) (CardSuit((index1)) == CardSuit((index2)))
|
||
#define SameRank(index1, index2) (CardRank((index1)) == CardRank((index2)))
|
||
|
||
#define ACELOW 13
|
||
#define ACEHIGH 14
|
||
#define IndexValue(index, acerank) (CardRank(index) % (acerank))
|
||
//-protect-#define RanksHigher(index1, index2, acerank)
|
||
// (IndexValue((index1), (acerank)) > IndexValue((index2), (acerank)))
|
||
|
||
/* Function prototypes for API resolved in the cards DLL */
|
||
|
||
BOOL APIENTRY cdtInit(INT FAR *width, INT FAR *height);
|
||
BOOL APIENTRY cdtDraw(HDC hDC, INT x, INT y,
|
||
INT crd, cardMode mode, DWORD rgbBgnd);
|
||
BOOL APIENTRY cdtTerm(VOID);
|
||
|