Changeset 707
- Timestamp:
- 02/16/08 09:04:45 (9 months ago)
- Files:
-
- trunk/src/melee1.c (modified) (1 diff)
- trunk/src/store.c (modified) (2 diffs)
- trunk/src/z-rand.c (modified) (5 diffs)
- trunk/src/z-rand.h (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/src/melee1.c
r656 r707 447 447 448 448 /* Roll out the damage */ 449 damage = damroll(d_dice, d_side); 449 if (d_dice > 0 && d_side > 0) 450 damage = damroll(d_dice, d_side); 451 else 452 damage = 0; 450 453 451 454 /* Apply appropriate damage */ trunk/src/store.c
r681 r707 1214 1214 1215 1215 /* 1216 * Decide min/max levels 1216 * Decide min/max levels 1217 1217 */ 1218 1218 if (st == STORE_B_MARKET) … … 1227 1227 } 1228 1228 1229 if (min_level > 55) min_level = 65;1229 if (min_level > 55) min_level = 55; 1230 1230 if (max_level > 70) max_level = 70; 1231 1231 trunk/src/z-rand.c
r507 r707 118 118 * This method has no bias, and is much less affected by patterns 119 119 * in the "low" bits of the underlying RNG's. 120 *121 * Note that "m" must not be greater than 0x1000000, or division122 * by zero will result.123 *124 * ToDo: Check for m > 0x1000000.125 120 */ 126 121 u32b Rand_div(u32b m) 127 122 { 128 123 u32b r, n; 124 125 /* Division by zero will result if m is larger than 0x10000000 */ 126 assert(m <= 0x10000000); 129 127 130 128 /* Hack -- simple case */ … … 199 197 static s16b Rand_normal_table[RANDNOR_NUM] = 200 198 { 201 206, 613, 1022, 1430, 1838, 2245, 2652,3058,202 3463, 3867, 4271, 4673, 5075, 5475, 5874,6271,203 6667, 7061, 7454, 7845, 8234, 8621, 9006,9389,204 9770, 10148, 10524, 10898, 11269, 11638, 12004, 12367,199 206, 613, 1022, 1430, 1838, 2245, 2652, 3058, 200 3463, 3867, 4271, 4673, 5075, 5475, 5874, 6271, 201 6667, 7061, 7454, 7845, 8234, 8621, 9006, 9389, 202 9770, 10148, 10524, 10898, 11269, 11638, 12004, 12367, 205 203 12727, 13085, 13440, 13792, 14140, 14486, 14828, 15168, 206 204 15504, 15836, 16166, 16492, 16814, 17133, 17449, 17761, … … 306 304 * "external" program parts like the main-*.c files. It preserves 307 305 * the current RNG state to prevent influences on game-play. 308 *309 * Could also use rand() from <stdlib.h> directly. XXX XXX XXX310 306 */ 311 307 u32b Rand_simple(u32b m) … … 361 357 int sum = 0; 362 358 359 /* assert(sides > 0); */ 363 360 if (sides <= 0) return (0); 364 361 … … 369 366 } 370 367 368 369 /** 370 * Generates a random signed long integer X where `A` <= X <= `B`. 371 * The integer X falls along a uniform distribution. 372 * 373 * Note that "rand_range(0, N-1)" == "rand_int(N)". 374 */ 375 int rand_range(int A, int B) 376 { 377 if (A == B) return A; 378 379 assert(A < B); 380 assert(B > A); 381 382 return A + (s32b)Rand_div(1 + B - A); 383 } trunk/src/z-rand.h
r583 r707 32 32 #define randint(M) ((s32b) Rand_div(M) + 1) 33 33 #define rand_die(M) (rand_int(M) + 1) 34 35 36 /**37 * Generates a random signed long integer X where "A <= X <= B"38 * Note that "rand_range(0, N-1)" == "rand_int(N)"39 *40 * The integer X falls along a uniform distribution.41 */42 #define rand_range(A,B) ((A) + (rand_int(1+(B)-(A))))43 34 44 35 … … 100 91 int damroll(int num, int sides); 101 92 93 /** 94 * Generates a random signed long integer X where "A <= X <= B" 95 * Note that "rand_range(0, N-1)" == "rand_int(N)" 96 * 97 * The integer X falls along a uniform distribution. 98 */ 99 int rand_range(int A, int B); 100 102 101 103 102 #endif /* INCLUDED_Z_RAND_H */
