home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / top2src.zip / GAMES.ZIP / TOPPOKER.H < prev   
C/C++ Source or Header  |  1995-05-22  |  5KB  |  133 lines

  1.  
  2. #define POKHAND_HIGHCARD      0x0000
  3. #define POKHAND_ONEPAIR       0x1000
  4. #define POKHAND_TWOPAIR       0x2000
  5. #define POKHAND_THREEKIND     0x3000
  6. #define POKHAND_STRAIGHT      0x4000
  7. #define POKHAND_FLUSH         0x5000
  8. #define POKHAND_FULLHOUSE     0x6000
  9. #define POKHAND_FOURKIND      0x7000
  10. #define POKHAND_STRAIGHTFLUSH 0x8000
  11. #define POKHAND_ROYALFLUSH    0x800D
  12.  
  13. #define POKRULE_ACEHIGH         0x01
  14. #define POKRULE_ACELOW          0x02
  15. #define POKRULE_USEJOKERS       0x04
  16.  
  17. #define POKGAME_5CARDDRAW          0
  18.  
  19. #define POKPL_WAITING              0
  20. #define POKPL_PLAYING              1
  21. #define POKPL_JOINED             100
  22.  
  23. #define POKSTG_BET                0
  24. #define POKSTG_DISCARD            1
  25. #define POKSTG_FINALBET           2
  26. #define POKSTG_ENDCYCLE           3     /* Used by turn advance function. */
  27. #define POKSTG_ANYBET           100     /* Used for turn checking. */
  28. #define POKSTG_ANYTURN          110     /* Used for turn checking. */
  29.  
  30. #define POKERMAXGAMES          32767
  31. #define POKERMAXCARDS             10
  32. #define POKERMAXPLAYERS           10
  33. #define POKERMAXDECK              54
  34.  
  35. typedef struct poker_plyr_str
  36.     {
  37.     XINT          node;
  38.     char          cards[POKERMAXCARDS];
  39.     unsigned long totalbet;
  40.     unsigned long origcash;
  41.     unsigned long winchksum;
  42.     } poker_plyr_typ;
  43.  
  44. typedef struct poker_game_str
  45.     {
  46.     poker_plyr_typ player[POKERMAXPLAYERS];
  47.     char          inuse;
  48.     char          type;
  49.     XINT          dealer;
  50.     unsigned char rules;
  51.     unsigned long minbet;
  52.     unsigned long maxbet;
  53.     unsigned long ante;
  54.     XINT          maxrounds;
  55.     char          maxcycles;
  56.     char          minpl;
  57.     char          maxpl;
  58.     char          minai;
  59.     char          maxai;
  60.     char          mindisc;
  61.     char          maxdisc;
  62.     char          wildcards[14];
  63.     unsigned char decksize;
  64.     unsigned char numcards;
  65.     XINT          delaytime;
  66.     XINT          waittime;
  67.     char          held;
  68.     char          speedup;
  69.     XINT          wanttoplay[POKERMAXPLAYERS];
  70.     XINT          wtpcount;
  71.     XINT          plcount;
  72.     time_t        eventtime;
  73.     char          cycle;
  74.     char          stage;
  75.     XINT          round;
  76.     char          turn;
  77.     unsigned long pot;
  78.     unsigned long highbet;
  79.     char          numcalls;
  80.     char          deck[POKERMAXDECK];
  81.     char          cardvals[POKERMAXDECK];
  82.     char          cardsuits[POKERMAXDECK];
  83.     char          started[POKERMAXPLAYERS];
  84.     char          finished[POKERMAXPLAYERS];
  85.     char          winners[POKERMAXPLAYERS];
  86.     } poker_game_typ;
  87.  
  88. extern void poker_game(XINT pgwords);
  89. extern void poker_core(XINT msggam, byte *msgstr);
  90. extern void poker_eventkernel(XINT gamenum);
  91. extern XINT poker_startnewgame(poker_game_typ *sgame);
  92. extern void poker_initnew(poker_game_typ *newgame);
  93. extern void poker_resetgame(poker_game_typ *rgame);
  94. extern void poker_dealhand(poker_game_typ *dhgame, char *cardbuf);
  95. extern void poker_dealcard(poker_game_typ *dgame, char *dcard);
  96. extern void poker_shuffle(poker_game_typ *shufgame);
  97. extern char poker_joingame(XINT gamenum, poker_game_typ *jgame);
  98. extern void poker_foldplayer(XINT fpnode, XINT fpnum, 
  99.                              poker_game_typ *fpgame);
  100. extern char XFAR *poker_gethandname(poker_game_typ *hgame, char *handdat);
  101. extern char XFAR *poker_getshortname(poker_game_typ *hgame, char *handdat);
  102. extern XINT poker_findwinners(XINT fwnode, unsigned XINT *fwwin,
  103.                               poker_game_typ *fwgame);
  104. extern unsigned XINT poker_scorehand(poker_game_typ *sgame, char *shand);
  105. extern unsigned long poker_rawscorehand(poker_game_typ *sgame, char *shand);
  106. extern void poker_sorthand(poker_game_typ *sgame, char *shand);
  107. extern XINT poker_getplayernum(char gpntype, XINT gpnnode,
  108.                                poker_game_typ *gpngame);
  109. extern XINT poker_gethighplayer(char ghptype, poker_game_typ *ghpgame);
  110. extern void poker_displayhand(poker_game_typ *dhgame, char *dhhand);
  111. extern void poker_endgamedisplay(poker_game_typ *egame);
  112. extern char poker_checkturn(char ctstage, XINT ctnode,
  113.                             poker_game_typ *ctgame);
  114. extern void poker_advanceturn(XINT atnum, poker_game_typ *atgame);
  115. extern char poker_loadgame(XINT gamenum, poker_game_typ *gamebuf);
  116. extern char poker_savegame(XINT gamenum, poker_game_typ *gamebuf);
  117. extern void poker_lockgame(XINT gamenum);
  118. extern void poker_unlockgame(XINT gamenum);
  119. extern void poker_sendmessage(XINT smtype, char smecho, XINT smnum,
  120.                               char smplayonly, unsigned char *smstr,
  121.                               poker_game_typ *smgame);
  122.  
  123. extern char XFAR *pokerlockflags;
  124. extern time_t XFAR *pokeretimes;
  125. extern XINT XFAR *pokerdtimes;
  126. extern XINT XFAR *pokerwtimes;
  127. extern char XFAR *pokeringame;
  128.  
  129. extern XINT pokermaingame;
  130.  
  131. extern char XFAR pokerdefcardvals[POKERMAXDECK];
  132. extern char XFAR pokerdefcardsuits[POKERMAXDECK];
  133.