home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / top2src.zip / GAMES.ZIP / POKER_IO.C < prev    next >
C/C++ Source or Header  |  1995-05-05  |  3KB  |  112 lines

  1. #include "top.h"
  2.  
  3. char poker_loadgame(XINT gamenum, poker_game_typ *gamebuf)
  4.     {
  5.     char lres;
  6.  
  7.     if (((long) gamenum + 1L) * (long) sizeof(poker_game_typ) >
  8.         filelength(pokdatafil))
  9.         {
  10.         return 0;
  11.         }
  12.  
  13.     lres = lseek(pokdatafil, (long) gamenum * (long) sizeof(poker_game_typ),
  14.                  SEEK_SET);
  15.     if (lres == -1)
  16.         {
  17.         return 0;
  18.         }
  19.     lres = read(pokdatafil, gamebuf, sizeof(poker_game_typ));
  20.     if (lres == -1)
  21.         {
  22.         return 0;
  23.         }
  24.  
  25.     pokeretimes[gamenum] = gamebuf->eventtime;
  26.     pokerdtimes[gamenum] = gamebuf->delaytime;
  27.     pokerwtimes[gamenum] = gamebuf->waittime;
  28.  
  29.     return 1;
  30.     }
  31.  
  32. char poker_savegame(XINT gamenum, poker_game_typ *gamebuf)
  33.     {
  34.     char sres;
  35.  
  36.     pokeretimes[gamenum] = gamebuf->eventtime;
  37.     pokerdtimes[gamenum] = gamebuf->delaytime;
  38.     pokerwtimes[gamenum] = gamebuf->waittime;
  39.  
  40.     if (((long) gamenum + 1L) * (long) sizeof(poker_game_typ) >
  41.         filelength(pokdatafil))
  42.         {
  43.         chsize(pokdatafil,
  44.                ((long) gamenum + 1L) * (long) sizeof(poker_game_typ));
  45.         }
  46.  
  47.     sres = lseek(pokdatafil, (long) gamenum * (long) sizeof(poker_game_typ),
  48.                  SEEK_SET);
  49.     if (sres == -1)
  50.         {
  51.         return 0;
  52.         }
  53.     sres = write(pokdatafil, gamebuf, sizeof(poker_game_typ));
  54.     if (sres == -1)
  55.         {
  56.         return 0;
  57.         }
  58.  
  59.     return 1;
  60.     }
  61.  
  62. void poker_lockgame(XINT gamenum)
  63.     {
  64.  
  65.     rec_locking(REC_LOCK, pokdatafil,
  66.                 (long) gamenum * (long) sizeof(poker_game_typ),
  67.                 sizeof(poker_game_typ));
  68.  
  69.     pokerlockflags[gamenum] = 1;
  70.  
  71.     }
  72.  
  73. void poker_unlockgame(XINT gamenum)
  74.     {
  75.  
  76.     rec_locking(REC_UNLOCK, pokdatafil,
  77.                 (long) gamenum * (long) sizeof(poker_game_typ),
  78.                 sizeof(poker_game_typ));
  79.  
  80.     pokerlockflags[gamenum] = 0;
  81.  
  82.     }
  83.  
  84. void poker_sendmessage(XINT smtype, char smecho, XINT smnum,
  85.                        char smplayonly, unsigned char *smstr,
  86.                        poker_game_typ *smgame)
  87.     {
  88.     XINT smd, tnn;
  89.  
  90.     for (smd = 0; smd < smgame->maxpl; smd++)
  91.         {
  92.         if (smplayonly)
  93.             {
  94.             tnn = smgame->player[smd].node;
  95.             }
  96.         else
  97.             {
  98.             tnn = smgame->wanttoplay[smd];
  99.             }
  100.         if (tnn > -1)
  101.             {
  102.             if (tnn != od_control.od_node || smecho)
  103.                 {
  104.                 msgextradata = smnum;
  105.                 dispatch_message(smtype, smstr, tnn, 1, 0);
  106.                 }
  107.             }
  108.         }
  109.  
  110.     }
  111.  
  112.