]> git.cameronkatri.com Git - bsdgames-darwin.git/blobdiff - monop/roll.c
buffnum is shared between subs.c and fancy.c
[bsdgames-darwin.git] / monop / roll.c
index 9de116f492b6ba666bdcc3062d91021514d9413c..373fc73311293511ee69d16eb90e384fe768f5e9 100644 (file)
@@ -1,6 +1,8 @@
+/*     $NetBSD: roll.c,v 1.14 2012/06/19 05:35:32 dholland Exp $       */
+
 /*
- * Copyright (c) 1980 Regents of the University of California.
- * All rights reserved.
+ * Copyright (c) 1980, 1993
+ *     The Regents of the University of California.  All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
  * modification, are permitted provided that the following conditions
  * 2. Redistributions in binary form must reproduce the above copyright
  *    notice, this list of conditions and the following disclaimer in the
  *    documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- *    must display the following acknowledgement:
- *     This product includes software developed by the University of
- *     California, Berkeley and its contributors.
- * 4. Neither the name of the University nor the names of its contributors
+ * 3. Neither the name of the University nor the names of its contributors
  *    may be used to endorse or promote products derived from this software
  *    without specific prior written permission.
  *
  * SUCH DAMAGE.
  */
 
+#include <sys/cdefs.h>
 #ifndef lint
-static char sccsid[] = "@(#)roll.c     5.5 (Berkeley) 6/1/90";
+#if 0
+static char sccsid[] = "@(#)roll.c     8.1 (Berkeley) 5/31/93";
+#else
+__RCSID("$NetBSD: roll.c,v 1.14 2012/06/19 05:35:32 dholland Exp $");
+#endif
 #endif /* not lint */
 
+#include <stdlib.h>
+
+#include "monop.h"
+
 /*
  *     This routine rolls ndie nside-sided dice.
  */
 
-# define       reg     register
-
-# if !defined(vax) && !defined(tahoe)
-# define       MAXRAND 32767L
-
-roll(ndie, nsides)
-int    ndie, nsides; {
-
-       reg long        tot;
-       reg unsigned    n, r;
-
-       tot = 0;
-       n = ndie;
-       while (n--)
-               tot += rand();
-       return (int) ((tot * (long) nsides) / ((long) MAXRAND + 1)) + ndie;
-}
-
-# else
-
-roll(ndie, nsides)
-reg int        ndie, nsides; {
-
-       reg int         tot, r;
-       reg double      num_sides;
+int
+roll(int ndie, int nsides)
+{
+       long tot;
 
-       num_sides = nsides;
        tot = 0;
        while (ndie--)
-               tot += (r = rand()) * (num_sides / 017777777777) + 1;
-       return tot;
+               tot += (random() % nsides) + 1;
+       return (int)tot;
 }
-# endif