]> git.saurik.com Git - wxWidgets.git/blame - demos/forty/card.h
added OpenGL libs for gcc and watcom (other don't require it)
[wxWidgets.git] / demos / forty / card.h
CommitLineData
63cafd27
JS
1/////////////////////////////////////////////////////////////////////////////
2// Name: card.h
3// Purpose: Forty Thieves patience game
4// Author: Chris Breeze
5// Modified by:
6// Created: 21/07/97
7// RCS-ID: $Id$
8// Copyright: (c) 1993-1998 Chris Breeze
9// Licence: wxWindows licence
10//---------------------------------------------------------------------------
11// Last modified: 22nd July 1998 - ported to wxWindows 2.0
12/////////////////////////////////////////////////////////////////////////////
13//+-------------------------------------------------------------+
14//| Description: |
15//| A class for drawing playing cards. |
16//| InitCards() must be called before using the Card class, |
17//| otherwise the card bitmaps will not be loaded. |
18//| CloseCards() must be called before terminating the |
19//| program so that the bitmaps are deleted and the memory |
20//| given back to Windows. |
21//+-------------------------------------------------------------+
22#ifndef _CARD_H_
23#define _CARD_H_
24
25 // Constants
26const int PackSize = 52;
fc799548
JS
27
28#define CardHeight Card::GetHeight()
29#define CardWidth Card::GetWidth()
63cafd27
JS
30
31 // Data types
32enum Suit { clubs = 0, diamonds = 1, hearts = 2, spades = 3 };
33enum SuitColour { red = 0, black = 1 };
34enum WayUp { faceup, facedown };
35
63cafd27
JS
36//--------------------------------//
37// A class defining a single card //
38//--------------------------------//
39class Card {
15bee36f
JS
40 friend class FortyApp;
41
42 static double m_scale;
43 static int m_width,m_height;
fc799548 44
63cafd27
JS
45public:
46 Card(int value, WayUp way_up = facedown);
47 virtual ~Card();
48
49 void Draw(wxDC& pDC, int x, int y);
50 static void DrawNullCard(wxDC& pDC, int x, int y); // Draw card place-holder
51 void Erase(wxDC& pDC, int x, int y);
52
53 void TurnCard(WayUp way_up = faceup) { m_wayUp = way_up; }
54 WayUp GetWayUp() const { return m_wayUp; }
55 int GetPipValue() const { return m_pipValue; }
56 Suit GetSuit() const { return m_suit; }
57 SuitColour GetColour() const { return m_colour; }
fc799548
JS
58 static void SetScale(double scale);
59 static int GetHeight() { return m_height; };
60 static int GetWidth() { return m_width; };
61 static double GetScale() { return m_scale; };
63cafd27
JS
62
63private:
64 Suit m_suit;
65 int m_pipValue; // in the range 1 (Ace) to 13 (King)
66 SuitColour m_colour; // red or black
67 bool m_status;
68 WayUp m_wayUp;
69
70 static wxBitmap* m_symbolBmap;
71 static wxBitmap* m_pictureBmap;
72};
73
74#endif // _CARD_H_