[comp.sources.games] v11i037: vcraps - display-oriented craps game, Patch2

billr@saab.CNA.TEK.COM (Bill Randle) (08/29/90)

Submitted-by: Robert Steven Glickstein <bobg+@andrew.cmu.edu>
Posting-number: Volume 11, Issue 37
Archive-name: vcraps/Patch2
Patch-To: vcraps: Volume 11, Issue 34-35

[[This patch adds the 'm' keystroke, which allows the user to review
previous messages.]]

#! /bin/sh
# This is a shell archive.  Remove anything before this line, then unpack
# it by saving it into a file and typing "sh file".  To overwrite existing
# files, type "sh file -c".  You can also feed this as standard input via
# unshar, or by typing "sh <file", e.g..  If this archive is complete, you
# will see the following message at the end:
#		"End of shell archive."
# Contents:  patches02
# Wrapped by billr@saab on Fri Aug 24 12:10:43 1990
PATH=/bin:/usr/bin:/usr/ucb ; export PATH
if test -f 'patches02' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'patches02'\"
else
echo shar: Extracting \"'patches02'\" \(4949 characters\)
sed "s/^X//" >'patches02' <<'END_OF_FILE'
X*** dist/vcraps.c	Fri Aug 24 13:22:14 1990
X--- vcraps.c	Fri Aug 24 13:13:39 1990
X***************
X*** 2,11 ****
X  #include <curses.h>
X  #include <setjmp.h>
X  
X  extern int      CrapsErrorDatum;
X  extern int      optind;
X! extern char    *optarg;
X  
X  jmp_buf         LoopEnv;
X  
X  WINDOW         *dontplace4win, *dontplace5win, *dontplace6win, *dontplace8win;
X--- 2,16 ----
X  #include <curses.h>
X  #include <setjmp.h>
X  
X+ #define MSGQUEUELEN (20)
X+ 
X  extern int      CrapsErrorDatum;
X  extern int      optind;
X! extern char    *optarg, *malloc();
X  
X+ int             MsgQueueLen, MsgQueueLatest;
X+ char           *MsgQueue[MSGQUEUELEN];
X+ 
X  jmp_buf         LoopEnv;
X  
X  WINDOW         *dontplace4win, *dontplace5win, *dontplace6win, *dontplace8win;
X***************
X*** 123,128 ****
X--- 128,135 ----
X  {
X      int             c;
X  
X+     MsgQueueLen = 0;
X+     MsgQueueLatest = -1;
X      init();
X      Craps_SetBankroll(&Table, 1000);
X      while ((c = getopt(argc, argv, "b:sx")) != EOF) {
X***************
X*** 147,152 ****
X--- 154,160 ----
X  Driver()
X  {
X      int             c, amount, fullupdate = 1, jmpval, die1, die2, i;
X+     int             msgptr, msgcount;
X      char            buf[20];
X      CrapsError_t    err;
X      CrapsTable_t   *t = &Table;
X***************
X*** 159,168 ****
X  	Update(fullupdate);
X  	bcopy(&Table, &OldTable, (sizeof(CrapsTable_t)));
X  	fullupdate = 0;
X! 	Prompt("Command [12345689abcdfhprt$X?]:");
X  	wclear(commandwin);
X  	wrefresh(commandwin);
X! 	c = Getch("12345689abcdfhprt$X?", 1);
X  	switch (c) {
X  	    case '1':
X  		Prompt("[012]:");
X--- 167,176 ----
X  	Update(fullupdate);
X  	bcopy(&Table, &OldTable, (sizeof(CrapsTable_t)));
X  	fullupdate = 0;
X! 	Prompt("Command [12345689abcdfhmprt$X?]:");
X  	wclear(commandwin);
X  	wrefresh(commandwin);
X! 	c = Getch("12345689abcdfhmprt$X?", 1);
X  	switch (c) {
X  	    case '1':
X  		Prompt("[012]:");
X***************
X*** 546,551 ****
X--- 554,575 ----
X  			break;
X  		}
X  		break;
X+ 	    case 'm':
X+ 		msgptr = MsgQueueLatest;
X+ 		msgcount = 0;
X+ 		do {
X+ 		    if (++msgcount > MsgQueueLen)
X+ 			c = ' ';
X+ 		    else {
X+ 			wcenter(msgwin, MsgQueue[msgptr], 0, 0);
X+ 			wrefresh(msgwin);
X+ 			msgptr = (msgptr - 1 + MSGQUEUELEN) % MSGQUEUELEN;
X+ 			c = wgetch(msgwin);
X+ 			wclear(msgwin);
X+ 		    }
X+ 		} while (c != ' ');
X+ 		wrefresh(msgwin);
X+ 		break;
X  	    case 'p':
X  		if (Craps_Point(&Table)) {
X  		    Prompt("Amount for odds on Pass Line:");
X***************
X*** 885,893 ****
X  Message(str)
X  char           *str;
X  {
X      wcenter(msgwin, str, 0, 0);
X      wrefresh(msgwin);
X!     while (wgetch(msgwin) != ' ');
X      wclear(msgwin);
X      wrefresh(msgwin);
X  }
X--- 909,942 ----
X  Message(str)
X  char           *str;
X  {
X+     char           *copy = malloc(1 + strlen(str));
X+     int             c, msgptr, msgcount;
X+ 
X+     if (copy) {
X+ 	strcpy(copy, str);
X+ 	MsgQueueLatest = (MsgQueueLatest + 1) % MSGQUEUELEN;
X+ 	if (MsgQueueLen == MSGQUEUELEN)
X+ 	    free(MsgQueue[MsgQueueLatest]);
X+ 	else
X+ 	    ++MsgQueueLen;
X+ 	MsgQueue[MsgQueueLatest] = copy;
X+     }
X+     msgptr = (MsgQueueLatest - 1 + MSGQUEUELEN) % MSGQUEUELEN;
X+     msgcount = 1;
X      wcenter(msgwin, str, 0, 0);
X      wrefresh(msgwin);
X!     do {
X! 	c = wgetch(msgwin);
X! 	if (c == 'm') {
X! 	    if (++msgcount > MsgQueueLen)
X! 		c = ' ';
X! 	    else {
X! 		wcenter(msgwin, MsgQueue[msgptr], 0, 0);
X! 		wrefresh(msgwin);
X! 		msgptr = (msgptr - 1 + MSGQUEUELEN) % MSGQUEUELEN;
X! 	    }
X! 	}
X!     } while (c != ' ');
X      wclear(msgwin);
X      wrefresh(msgwin);
X  }
X***************
X*** 1697,1704 ****
X      addstr("4dc - don't-come odds on 4    4dp - don't place 4\n\n");
X      addstr("Bets are taken down by typing t followed by one of the\n");
X      addstr("bet commands above.\n\n");
X!     addstr("$   - show total bets         X   - Exit program\n");
X!     addstr("                                                    continue...");
X      refresh();
X      getch();
X      longjmp(LoopEnv, 2);
X--- 1746,1753 ----
X      addstr("4dc - don't-come odds on 4    4dp - don't place 4\n\n");
X      addstr("Bets are taken down by typing t followed by one of the\n");
X      addstr("bet commands above.\n\n");
X!     addstr("$ - show total bets   m - review messages   X - exit\n");
X!     addstr("                                                        continue...");
X      refresh();
X      getch();
X      longjmp(LoopEnv, 2);
X***************
X*** 1706,1713 ****
X  
X  ShowTotal()
X  {
X!     int i, total = 0;
X!     char buf[80];
X  
X      for (i = craps_PassLine; i < craps_Bets; ++i)
X  	total += Craps_GetBet(&Table, i);
X--- 1755,1762 ----
X  
X  ShowTotal()
X  {
X!     int             i, total = 0;
X!     char            buf[80];
X  
X      for (i = craps_PassLine; i < craps_Bets; ++i)
X  	total += Craps_GetBet(&Table, i);
X
X*** patchlevel.h.orig	Fri Aug 24 11:04:33 1990
X--- patchlevel.h	Fri Aug 24 12:09:14 1990
X***************
X*** 1 ****
X! #define PATCHLEVEL	1
X--- 1 ----
X! #define PATCHLEVEL	2
END_OF_FILE
if test 4949 -ne `wc -c <'patches02'`; then
    echo shar: \"'patches02'\" unpacked with wrong size!
fi
# end of 'patches02'
fi
echo shar: End of shell archive.
exit 0