home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / gamtlk11.zip / source.zip / BLACKJACK / BLACKJACK.H < prev    next >
C/C++ Source or Header  |  1999-03-29  |  3KB  |  130 lines

  1. /************************************************************************
  2.  *
  3.  * File: BlackJack.H
  4.  *
  5.  * Main include file for the BlackJack program.
  6.  *
  7.  ************************************************************************/
  8. #define INCL_WINHELP
  9. #include    <os2.h>
  10.  
  11. typedef unsigned char CARD;
  12.  
  13. #define MAXHANDSIZE     10
  14. #define MAXHANDS    4
  15. #define NUMCARDS    52
  16. #define BACK_INDEX   2048
  17. #define NUMCHIPS        1
  18. #define MIN_BET                     5
  19. #define MAX_BET                     100
  20. #define BANKFONT                    "Tms Rmn"
  21. #define BETFONT                     "Tms Rmn"
  22. #define BUTTONFONT                  "Helv"
  23. #define HANDFONT                "Tms Rmn"
  24. #define BANKFONTID          1
  25. #define BETFONTID           2
  26. #define BUTTONFONTID        3
  27. #define HANDFONTID                  4
  28.  
  29. #define DECKNAME    "STANDARD"
  30.  
  31.     /* Defaults */
  32.  
  33. #define DEF_SOFTHIT     17
  34. #define DEF_HARDHIT     16
  35. #define DEF_RULEFLAGS       0
  36. #define DEF_NUMDECKS    6
  37. #define DEF_DECKPENETRATION     0xE000
  38. #define DEF_FLAGS   (FLAG_SOUND)
  39. #define DEF_WAGER   5
  40. #define MIN_NUMDECKS     2
  41. #define MAX_NUMDECKS     8
  42.  
  43.     /* Face values */
  44. #define ACE     1
  45. #define TWO     2
  46. #define THREE   3
  47. #define FOUR    4
  48. #define FIVE        5
  49. #define SIX         6
  50. #define SEVEN   7
  51. #define EIGHT       8
  52. #define NINE        9
  53. #define TEN         10
  54. #define JACK        11
  55. #define QUEEN       12
  56. #define KING        13
  57. #define SOFT_VALUE      0x40
  58.  
  59. typedef struct {
  60.     CARD    Hand[MAXHANDSIZE];
  61.     char Value;
  62.     ULONG   Bet;
  63.     char    BetStr[10];
  64.     POINTL  BetCircle;
  65.     USHORT  CircleDiameter;
  66.     POINTL  Chip[2];
  67.     RECTL   BetPos;
  68.     POINTL  ValuePos[2];
  69.     char    ValueStr[16];
  70.     POINTL  Card[MAXHANDSIZE][4];
  71. } BJHAND;
  72.  
  73. typedef struct {
  74.     USHORT   Flags;
  75.     char    SoftHit, HardHit;
  76.     char    NumDecks;
  77.     USHORT  DeckPenetration;
  78. } RULES;
  79.  
  80.     /* Bitflags for rules */
  81.  
  82. #define RULE_ACESPLIT   0x0001
  83. #define RULE_BJLOWPAY   0x0002
  84. #define RULE_EARLYSURRENDER     0x0004
  85. #define RULE_LATESURRENDER      0x0008
  86. #define RULE_DOUBLE1011ONLY     0x0010
  87.  
  88. #define FLAG_SOUND          0x0001
  89.  
  90. typedef struct {
  91.     USHORT  cbSize;
  92.     HAB     hab;
  93.     HMODULE Module;
  94.     HWND    hwndFrame, hwndClient, hwndHelpInstance;
  95.     HELPINIT    HelpData;
  96.     LONG   xLeft, yBottom, xRight, yTop;
  97.     ULONG   SizeFlags, Flags;
  98.     RULES   Rules;
  99.     TID     AnimateThread;
  100.     ULONG   AnimateAction;
  101.     HEV     AnimateSem;
  102.     float   Bank;
  103.     char    BankStr[16];
  104.     POINTL      BankPos[2];
  105.     LONG    Wager;
  106.     char    NumHands, HandNum;
  107.     BJHAND    DealerHand;
  108.     BJHAND    PlayerHand[MAXHANDS];
  109.     CARD    Shoe[NUMCARDS*MAX_NUMDECKS];
  110.     USHORT  ShoeIndex, Marker;
  111.     POINTL      ShoePosition[4];
  112.     LONG        ShoeBorderX, ShoeBorderY;
  113.     char    Prompt[32][64];
  114.     HBITMAP Chip[NUMCHIPS];
  115.     HBITMAP Card[NUMCARDS+1];
  116. } BJACK, *pBJACK;
  117.  
  118.     /* Custom messages */
  119.  
  120. #define MESS_CREATE     4097
  121. #define MESS_DEALT          4098
  122.  
  123. #define ANIMATE_DEAL    4200
  124. #define ANIMATE_HIT                 4201
  125. #define ANIMATE_STAND               4202
  126. #define ANIMATE_SPLIT               4203
  127. #define ANIMATE_DOUBLE              4204
  128. #define ANIMATE_ADD100              4205
  129. #define ANIMATE_EXIT                4206
  130.