[comp.sources.games] v11i051: vcraps2 - display-oriented craps game

billr@saab.CNA.TEK.COM (Bill Randle) (09/15/90)

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

[[This patch creates vcraps 2.2 from vcraps 2.1, and crapslib 2.1 from
crapslib 2.0.  Previously, crapslib allowed only single or double free
odds bets.  However, it has come to my attention that some casinos offer
as much as 10x odds.  Thus, crapslib now supports any integer free odds,
as does vcraps.  In earlier versions of vcraps, double odds was the
default, and the "-s" switch selected single odds.  The "-s" flag is
still present for backward-compatability, but now there is a "-o <num>"
switch to allow <num> odds.]]


#! /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 Sep 14 14:30:50 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'\" \(12081 characters\)
sed "s/^X//" >'patches02' <<'END_OF_FILE'
X*** dist/crapslib.h	Thu Sep  6 21:53:50 1990
X--- crapslib.h	Thu Sep  6 21:48:49 1990
X***************
X*** 1,5 ****
X  #define CRAPSLIB_VERSION (2)
X! #define CRAPSLIB_PATCHLEVEL (0)
X  
X  typedef enum {
X      craps_PassLine = 0, craps_PassLineOdds,
X--- 1,5 ----
X  #define CRAPSLIB_VERSION (2)
X! #define CRAPSLIB_PATCHLEVEL (1)
X  
X  typedef enum {
X      craps_PassLine = 0, craps_PassLineOdds,
X***************
X*** 45,51 ****
X      int             bankroll, point, die1, die2;
X      int             bought4, bought10; /* booleans */
X      /* Configuration: */
X!     int             doublep;
X      CrapsPayoff_t   field2payoff, field12payoff, big6payoff;
X      CrapsPayoff_t   big8payoff, oneroll2payoff, oneroll3payoff;
X      CrapsPayoff_t   oneroll11payoff, oneroll12payoff;
X--- 45,51 ----
X      int             bankroll, point, die1, die2;
X      int             bought4, bought10; /* booleans */
X      /* Configuration: */
X!     int             odds;
X      CrapsPayoff_t   field2payoff, field12payoff, big6payoff;
X      CrapsPayoff_t   big8payoff, oneroll2payoff, oneroll3payoff;
X      CrapsPayoff_t   oneroll11payoff, oneroll12payoff;
X***************
X*** 59,65 ****
X  #define Craps_Die2(t) ((t)->die2)
X  #define Craps_Bought4(t) ((t)->bought4)
X  #define Craps_Bought10(t) ((t)->bought10)
X! #define Craps_Doublep(t) ((t)->doublep)
X  #define Craps_Field2Payoff(t) (&((t)->field2payoff))
X  #define Craps_Field12Payoff(t) (&((t)->field12payoff))
X  #define Craps_Big6Payoff(t) (&((t)->big6payoff))
X--- 59,65 ----
X  #define Craps_Die2(t) ((t)->die2)
X  #define Craps_Bought4(t) ((t)->bought4)
X  #define Craps_Bought10(t) ((t)->bought10)
X! #define Craps_Odds(t) ((t)->odds)
X  #define Craps_Field2Payoff(t) (&((t)->field2payoff))
X  #define Craps_Field12Payoff(t) (&((t)->field12payoff))
X  #define Craps_Big6Payoff(t) (&((t)->big6payoff))
X***************
X*** 71,77 ****
X  #define Craps_GetBet(t,type) ((t)->bets[(int)(type)])
X  
X  #define Craps_SetBankroll(t,b) (((t)->bankroll)=(b))
X! #define Craps_SetDouble(t,d) (((t)->doublep)=(d))
X  
X  #define Craps_IncrBankroll(t,amt) (((t)->bankroll)+=(amt))
X  
X--- 71,77 ----
X  #define Craps_GetBet(t,type) ((t)->bets[(int)(type)])
X  
X  #define Craps_SetBankroll(t,b) (((t)->bankroll)=(b))
X! #define Craps_SetOdds(t,o) (((t)->odds)=(o))
X  
X  #define Craps_IncrBankroll(t,amt) (((t)->bankroll)+=(amt))
X  
X*** dist/crapslib.c	Thu Sep  6 21:53:48 1990
X--- crapslib.c	Thu Sep  6 21:48:48 1990
X***************
X*** 224,230 ****
X      t->die1 = 5;
X      t->die2 = 6;
X      t->bought4 = t->bought10 = 0;
X!     t->doublep = 1;
X      t->field2payoff.numerator = 2;
X      t->field2payoff.denominator = 1;
X      t->field12payoff.numerator = 2;
X--- 224,230 ----
X      t->die1 = 5;
X      t->die2 = 6;
X      t->bought4 = t->bought10 = 0;
X!     t->odds = 2;
X      t->field2payoff.numerator = 2;
X      t->field2payoff.denominator = 1;
X      t->field12payoff.numerator = 2;
X***************
X*** 695,702 ****
X  	    else {
X  		Craps_GetPayoff(t, which, &payoff);
X  		orig = t->bets[(int) craps_PassLine];
X! 		if (t->doublep)
X! 		    orig *= 2;
X  		if (orig % payoff.denominator)
X  		    max = (orig - (orig % payoff.denominator)) + payoff.denominator;
X  		else
X--- 695,701 ----
X  	    else {
X  		Craps_GetPayoff(t, which, &payoff);
X  		orig = t->bets[(int) craps_PassLine];
X! 		orig *= t->odds;
X  		if (orig % payoff.denominator)
X  		    max = (orig - (orig % payoff.denominator)) + payoff.denominator;
X  		else
X***************
X*** 722,729 ****
X  	case craps_ComeOdds4:
X  	    if (!(max = t->bets[(int) craps_Come4]))
X  		return (crapserr_NoBet);
X! 	    if (t->doublep)
X! 		max *= 2;
X  	    if (bet > max) {
X  		CrapsErrorDatum = max;
X  		return (crapserr_TooMuch);
X--- 721,727 ----
X  	case craps_ComeOdds4:
X  	    if (!(max = t->bets[(int) craps_Come4]))
X  		return (crapserr_NoBet);
X! 	    max *= t->odds;
X  	    if (bet > max) {
X  		CrapsErrorDatum = max;
X  		return (crapserr_TooMuch);
X***************
X*** 733,740 ****
X  	case craps_ComeOdds10:
X  	    if (!(max = t->bets[(int) craps_Come10]))
X  		return (crapserr_NoBet);
X! 	    if (t->doublep)
X! 		max *= 2;
X  	    if (bet > max) {
X  		CrapsErrorDatum = max;
X  		return (crapserr_TooMuch);
X--- 731,737 ----
X  	case craps_ComeOdds10:
X  	    if (!(max = t->bets[(int) craps_Come10]))
X  		return (crapserr_NoBet);
X! 	    max *= t->odds;
X  	    if (bet > max) {
X  		CrapsErrorDatum = max;
X  		return (crapserr_TooMuch);
X***************
X*** 744,751 ****
X  	case craps_ComeOdds5:
X  	    if (!(max = t->bets[(int) craps_Come5]))
X  		return (crapserr_NoBet);
X! 	    if (t->doublep)
X! 		max *= 2;
X  	    if (max % 2)
X  		++max;
X  	    if (bet > max) {
X--- 741,747 ----
X  	case craps_ComeOdds5:
X  	    if (!(max = t->bets[(int) craps_Come5]))
X  		return (crapserr_NoBet);
X! 	    max *= t->odds;
X  	    if (max % 2)
X  		++max;
X  	    if (bet > max) {
X***************
X*** 761,768 ****
X  	case craps_ComeOdds9:
X  	    if (!(max = t->bets[(int) craps_Come9]))
X  		return (crapserr_NoBet);
X! 	    if (t->doublep)
X! 		max *= 2;
X  	    if (max % 2)
X  		++max;
X  	    if (bet > max) {
X--- 757,763 ----
X  	case craps_ComeOdds9:
X  	    if (!(max = t->bets[(int) craps_Come9]))
X  		return (crapserr_NoBet);
X! 	    max *= t->odds;
X  	    if (max % 2)
X  		++max;
X  	    if (bet > max) {
X***************
X*** 778,785 ****
X  	case craps_ComeOdds6:
X  	    if (!(orig = t->bets[(int) craps_Come6]))
X  		return (crapserr_NoBet);
X! 	    if (t->doublep)
X! 		orig *= 2;
X  	    if (orig % 5)
X  		max = (orig - (orig % 5)) + 5;
X  	    else
X--- 773,779 ----
X  	case craps_ComeOdds6:
X  	    if (!(orig = t->bets[(int) craps_Come6]))
X  		return (crapserr_NoBet);
X! 	    orig *= t->odds;
X  	    if (orig % 5)
X  		max = (orig - (orig % 5)) + 5;
X  	    else
X***************
X*** 797,804 ****
X  	case craps_ComeOdds8:
X  	    if (!(orig = t->bets[(int) craps_Come8]))
X  		return (crapserr_NoBet);
X! 	    if (t->doublep)
X! 		orig *= 2;
X  	    if (orig % 5)
X  		max = (orig - (orig % 5)) + 5;
X  	    else
X--- 791,797 ----
X  	case craps_ComeOdds8:
X  	    if (!(orig = t->bets[(int) craps_Come8]))
X  		return (crapserr_NoBet);
X! 	    orig *= t->odds;
X  	    if (orig % 5)
X  		max = (orig - (orig % 5)) + 5;
X  	    else
X***************
X*** 824,831 ****
X  		return (crapserr_ComeOut);
X  	    if (!(orig = t->bets[(int) craps_DontPass]))
X  		return (crapserr_NoBet);
X! 	    if (t->doublep)
X! 		orig *= 2;
X  	    Craps_GetPayoff(t, which, &payoff);
X  	    if (orig % payoff.numerator)
X  		max = (orig - (orig % payoff.numerator)) + payoff.numerator;
X--- 817,823 ----
X  		return (crapserr_ComeOut);
X  	    if (!(orig = t->bets[(int) craps_DontPass]))
X  		return (crapserr_NoBet);
X! 	    orig *= t->odds;
X  	    Craps_GetPayoff(t, which, &payoff);
X  	    if (orig % payoff.numerator)
X  		max = (orig - (orig % payoff.numerator)) + payoff.numerator;
X***************
X*** 851,858 ****
X  	case craps_DontComeOdds4:
X  	    if (!(orig = t->bets[(int) craps_DontCome4]))
X  		return (crapserr_NoBet);
X! 	    if (t->doublep)
X! 		orig *= 2;
X  	    max = orig * 2;
X  	    if (bet > max) {
X  		CrapsErrorDatum = max;
X--- 843,849 ----
X  	case craps_DontComeOdds4:
X  	    if (!(orig = t->bets[(int) craps_DontCome4]))
X  		return (crapserr_NoBet);
X! 	    orig *= t->odds;
X  	    max = orig * 2;
X  	    if (bet > max) {
X  		CrapsErrorDatum = max;
X***************
X*** 867,874 ****
X  	case craps_DontComeOdds10:
X  	    if (!(orig = t->bets[(int) craps_DontCome10]))
X  		return (crapserr_NoBet);
X! 	    if (t->doublep)
X! 		orig *= 2;
X  	    max = orig * 2;
X  	    if (bet > max) {
X  		CrapsErrorDatum = max;
X--- 858,864 ----
X  	case craps_DontComeOdds10:
X  	    if (!(orig = t->bets[(int) craps_DontCome10]))
X  		return (crapserr_NoBet);
X! 	    orig *= t->odds;
X  	    max = orig * 2;
X  	    if (bet > max) {
X  		CrapsErrorDatum = max;
X***************
X*** 883,890 ****
X  	case craps_DontComeOdds5:
X  	    if (!(orig = t->bets[(int) craps_DontCome5]))
X  		return (crapserr_NoBet);
X! 	    if (t->doublep)
X! 		orig *= 2;
X  	    max = (orig % 2) ? (orig + 1) : orig;
X  	    max /= 2;
X  	    max *= 3;
X--- 873,879 ----
X  	case craps_DontComeOdds5:
X  	    if (!(orig = t->bets[(int) craps_DontCome5]))
X  		return (crapserr_NoBet);
X! 	    orig *= t->odds;
X  	    max = (orig % 2) ? (orig + 1) : orig;
X  	    max /= 2;
X  	    max *= 3;
X***************
X*** 901,908 ****
X  	case craps_DontComeOdds9:
X  	    if (!(orig = t->bets[(int) craps_DontCome9]))
X  		return (crapserr_NoBet);
X! 	    if (t->doublep)
X! 		orig *= 2;
X  	    max = (orig % 2) ? (orig + 1) : orig;
X  	    max /= 2;
X  	    max *= 3;
X--- 890,896 ----
X  	case craps_DontComeOdds9:
X  	    if (!(orig = t->bets[(int) craps_DontCome9]))
X  		return (crapserr_NoBet);
X! 	    orig *= t->odds;
X  	    max = (orig % 2) ? (orig + 1) : orig;
X  	    max /= 2;
X  	    max *= 3;
X***************
X*** 919,926 ****
X  	case craps_DontComeOdds6:
X  	    if (!(orig = t->bets[(int) craps_DontCome6]))
X  		return (crapserr_NoBet);
X! 	    if (t->doublep)
X! 		orig *= 2;
X  	    if (orig % 5)
X  		max = (orig - (orig % 5)) + 5;
X  	    else
X--- 907,913 ----
X  	case craps_DontComeOdds6:
X  	    if (!(orig = t->bets[(int) craps_DontCome6]))
X  		return (crapserr_NoBet);
X! 	    orig *= t->odds;
X  	    if (orig % 5)
X  		max = (orig - (orig % 5)) + 5;
X  	    else
X***************
X*** 940,947 ****
X  	case craps_DontComeOdds8:
X  	    if (!(orig = t->bets[(int) craps_DontCome8]))
X  		return (crapserr_NoBet);
X! 	    if (t->doublep)
X! 		orig *= 2;
X  	    if (orig % 5)
X  		max = (orig - (orig % 5)) + 5;
X  	    else
X--- 927,933 ----
X  	case craps_DontComeOdds8:
X  	    if (!(orig = t->bets[(int) craps_DontCome8]))
X  		return (crapserr_NoBet);
X! 	    orig *= t->odds;
X  	    if (orig % 5)
X  		max = (orig - (orig % 5)) + 5;
X  	    else
X*** dist/vcraps.c	Thu Sep  6 21:54:06 1990
X--- vcraps.c	Thu Sep  6 21:52:05 1990
X***************
X*** 3,19 ****
X  #include <setjmp.h>
X  
X  #define VCRAPS_VERSION (2)
X! #define VCRAPS_PATCHLEVEL (1)
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--- 3,21 ----
X  #include <setjmp.h>
X  
X  #define VCRAPS_VERSION (2)
X! #define VCRAPS_PATCHLEVEL (2)
X  
X  #define MSGQUEUELEN (20)
X  
X  extern int      CrapsErrorDatum;
X  extern int      optind;
X! extern char    *optarg, *malloc(), *index(), *rindex();
X  
X  int             MsgQueueLen, MsgQueueLatest;
X  char           *MsgQueue[MSGQUEUELEN];
X  
X+ char           *ProgramName;
X+ 
X  jmp_buf         LoopEnv;
X  
X  WINDOW         *dontplace4win, *dontplace5win, *dontplace6win, *dontplace8win;
X***************
X*** 130,151 ****
X  char          **argv;
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  	switch (c) {
X  	    case 'b':
X  		Craps_SetBankroll(&Table, atoi(optarg));
X  		break;
X  	    case 's':
X! 		Craps_SetDouble(&Table, 0);
X  		break;
X  	    default:
X  		deinit();
X! 		fprintf(stderr, "Usage: vcraps [-b bankroll] [-s]\n");
X  		exit(1);
X  	}
X      }
X--- 132,160 ----
X  char          **argv;
X  {
X      int             c;
X+     char           *tmp;
X  
X+     ProgramName = (tmp = rindex(argv[0], '/')) ? tmp + 1 : argv[0];
X      MsgQueueLen = 0;
X      MsgQueueLatest = -1;
X      init();
X      Craps_SetBankroll(&Table, 1000);
X!     Craps_SetOdds(&Table, 2);
X!     while ((c = getopt(argc, argv, "b:o:sx")) != EOF) {
X  	switch (c) {
X  	    case 'b':
X  		Craps_SetBankroll(&Table, atoi(optarg));
X  		break;
X+ 	    case 'o':
X+ 		Craps_SetOdds(&Table, atoi(optarg));
X+ 		break;
X  	    case 's':
X! 		Craps_SetOdds(&Table, 1);
X  		break;
X  	    default:
X  		deinit();
X! 		fprintf(stderr, "Usage: %s [-b bankroll] [-s] [-o odds]\n",
X! 			ProgramName);
X  		exit(1);
X  	}
X      }
X
X*** patchlevel.h.orig	Fri Sep 14 14:29:14 1990
X--- patchlevel.h	Fri Sep 14 14:29:58 1990
X***************
X*** 1 ****
X! #define PATCHLEVEL 1
X--- 1 ----
X! #define PATCHLEVEL 2
END_OF_FILE
if test 12081 -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