+/* $NetBSD: roll.c,v 1.9 2003/08/07 09:37:29 agc 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.9 2003/08/07 09:37:29 agc Exp $");
+#endif
#endif /* not lint */
+#include "monop.ext"
+#include <stdlib.h>
+
/*
* This routine rolls ndie nside-sided dice.
*/
-# define reg register
-
-# if !defined(vax) && !defined(tahoe)
-# define MAXRAND 32767L
+#if defined(pdp11)
+#define MAXRAND 32767L
+int
roll(ndie, nsides)
-int ndie, nsides; {
-
- reg long tot;
- reg unsigned n, r;
+ int ndie, nsides;
+{
+ long tot;
+ unsigned n, r;
tot = 0;
n = ndie;
return (int) ((tot * (long) nsides) / ((long) MAXRAND + 1)) + ndie;
}
-# else
+#else
+int
roll(ndie, nsides)
-reg int ndie, nsides; {
-
- reg int tot, r;
- reg double num_sides;
+ int ndie, nsides;
+{
+ int tot, r;
+ double num_sides;
num_sides = nsides;
tot = 0;
while (ndie--)
- tot += (r = rand()) * (num_sides / 017777777777) + 1;
+ tot += (r = rand()) * (num_sides / RAND_MAX) + 1;
return tot;
}
-# endif
+#endif