1 Index: empserver/include/damage.h
2 --- empserver/include/damage.h 16 Mar 2005 21:51:57 -0000 1.3
3 +++ empserver/include/damage.h 17 Mar 2005 10:01:13 -0000
5 #define DPERCENT_DAMAGE(x) ((double)(100.0 * (x) / ((x) + 100.0)))
6 #define DMINE_HITCHANCE(x) ((double) ( (x) / ((x)+20.0) ) )
7 #define DMINE_LHITCHANCE(x) ((double) ( (x) / ((x)+35.0) ) )
8 -#define MINE_DAMAGE() (22 + random()%21)
9 -#define MINE_LDAMAGE() (10 + random()%11)
10 +#define MINE_DAMAGE() (22 + emp_random()%21)
11 +#define MINE_LDAMAGE() (10 + emp_random()%11)
12 #define DTORP_HITCHANCE(range, vis) ((double)(0.9/((range)+1)+(((vis)<6)?(5-(vis))*0.03:0)))
13 -#define TORP_DAMAGE() (torpedo_damage + (random() % torpedo_damage) + \
14 - (random() % torpedo_damage))
15 +#define TORP_DAMAGE() (torpedo_damage + (emp_random() % torpedo_damage) + \
16 + (emp_random() % torpedo_damage))
18 #endif /* _DAMAGE_H_ */
19 Index: empserver/include/prototypes.h
20 --- empserver/include/prototypes.h 2 Oct 2005 16:30:43 -0000 1.90
21 +++ empserver/include/prototypes.h 4 Oct 2005 14:57:35 -0000
24 extern char *strdup(char *x);
27 +extern void emp_srandom(unsigned int);
28 +extern long emp_random(void);
32 Index: empserver/src/lib/commands/anti.c
33 --- empserver/src/lib/commands/anti.c 16 Mar 2005 21:56:00 -0000 1.10
34 +++ empserver/src/lib/commands/anti.c 17 Mar 2005 10:01:14 -0000
38 sect.sct_loyal = sect.sct_loyal * 0.5;
39 - n_cheleft = (random() % 4);
40 + n_cheleft = (emp_random() % 4);
41 /* 75% chance some che will get left */
43 /* Ok, now leave anywhere from 16% to 25% of the che */
44 Index: empserver/src/lib/commands/laun.c
45 --- empserver/src/lib/commands/laun.c 16 Mar 2005 21:56:01 -0000 1.10
46 +++ empserver/src/lib/commands/laun.c 17 Mar 2005 10:01:14 -0000
49 i = pp->pln_tech + pp->pln_effic;
50 if (chance(1.0 - (i / (i + 50.0)))) {
51 - dir = (random() % 6) + 1;
52 + dir = (emp_random() % 6) + 1;
55 pr("Your trajectory was a little off.\n");
56 Index: empserver/src/lib/commands/mfir.c
57 --- empserver/src/lib/commands/mfir.c 16 Mar 2005 21:56:02 -0000 1.23
58 +++ empserver/src/lib/commands/mfir.c 17 Mar 2005 10:01:14 -0000
60 /* dam = (int)((double)dam / 2.0);*/
63 - (double)((double)(90 - (random() % 11)) /
64 + (double)((double)(90 - (emp_random() % 11)) /
68 Index: empserver/src/lib/commands/new.c
69 --- empserver/src/lib/commands/new.c 16 Mar 2005 21:56:02 -0000 1.21
70 +++ empserver/src/lib/commands/new.c 17 Mar 2005 10:01:14 -0000
73 for (i = 0; i < 300 && !player->aborted; i++) {
74 /* Both x and y should be either odd or even */
75 - x = (random() % WORLD_X) - (WORLD_X / 2);
76 - y = (((random() % WORLD_Y) - (WORLD_Y / 2)) & ~1) | (x & 1);
77 + x = (emp_random() % WORLD_X) - (WORLD_X / 2);
78 + y = (((emp_random() % WORLD_Y) - (WORLD_Y / 2)) & ~1) | (x & 1);
80 * If either of the two potential
81 * sanctuary sectors are already
82 Index: empserver/src/lib/commands/news.c
83 --- empserver/src/lib/commands/news.c 16 Mar 2005 21:56:02 -0000 1.9
84 +++ empserver/src/lib/commands/news.c 17 Mar 2005 10:01:14 -0000
87 * vary the order of the printing of "%d times "
89 - if ((random() & 3) == 0 && np->nws_ntm > 1) {
90 + if ((emp_random() & 3) == 0 && np->nws_ntm > 1) {
91 sprintf(cp, "%s times ", ptr);
96 if (np->nws_vrb < 1 || np->nws_vrb > N_MAX_VERB)
98 - sprintf(cp, rpt[(int)np->nws_vrb].r_newstory[random() % NUM_RPTS],
99 + sprintf(cp, rpt[(int)np->nws_vrb].r_newstory[emp_random() % NUM_RPTS],
102 if (np->nws_ntm != 1) {
103 Index: empserver/src/lib/commands/sabo.c
104 --- empserver/src/lib/commands/sabo.c 16 Mar 2005 21:56:03 -0000 1.11
105 +++ empserver/src/lib/commands/sabo.c 17 Mar 2005 10:01:14 -0000
107 dam = landgun(3 * land.lnd_effic, 7);
108 if (sect.sct_item[I_SHELL] > 20)
109 dam += seagun(land.lnd_effic,
110 - random() % (sect.sct_item[I_SHELL] / 10));
111 + emp_random() % (sect.sct_item[I_SHELL] / 10));
112 if (sect.sct_item[I_PETROL] > 100)
113 dam += seagun(land.lnd_effic,
114 - random() % (sect.sct_item[I_PETROL] / 50));
115 + emp_random() % (sect.sct_item[I_PETROL] / 50));
117 pr("Explosion in %s causes %d damage.\n",
118 xyas(land.lnd_x, land.lnd_y, land.lnd_own), dam);
119 Index: empserver/src/lib/common/damage.c
120 --- empserver/src/lib/common/damage.c 16 Mar 2005 21:56:04 -0000 1.11
121 +++ empserver/src/lib/common/damage.c 17 Mar 2005 10:01:14 -0000
126 - if ((random() % 100) < (tmp % 100))
127 + if ((emp_random() % 100) < (tmp % 100))
131 Index: empserver/src/lib/gen/chance.c
132 --- empserver/src/lib/gen/chance.c 16 Mar 2005 21:56:05 -0000 1.5
133 +++ empserver/src/lib/gen/chance.c 17 Mar 2005 10:01:14 -0000
143 +#define RANDOM random
144 +#define SRANDOM srandom
145 +#else /* ! NOSVIDPRNG */
146 +#define RANDOM lrand48
147 +#define SRANDOM srand48
148 +#endif /* ! NOSVIDPRNG */
149 +#endif /* ! RANDOM */
152 +emp_srandom(unsigned int n)
160 + return (RANDOM()); /* 5/28/91 by bailey@mcs.kent.edu */
168 - roll = (random() & 0x7fff);
169 + roll = (emp_random() & 0x7fff);
171 if (d > roll / 32768.0)
177 - return (random() % n) + 1;
178 + return (emp_random() % n) + 1;
182 Index: empserver/src/lib/subs/attsub.c
183 --- empserver/src/lib/subs/attsub.c 2 Oct 2005 14:35:18 -0000 1.30
184 +++ empserver/src/lib/subs/attsub.c 4 Oct 2005 14:57:37 -0000
185 @@ -1863,12 +1863,12 @@
186 * recalculate the odds every 8-50 casualties, not every cacsualty,
187 * since a single dead guy normally wouldn't cause a commander to
188 * rethink his strategies, but 50 dead guys might. */
189 - odds = odds + (double)((double)((random() % 11) - 5) / 100.0);
190 + odds = odds + (double)((double)((emp_random() % 11) - 5) / 100.0);
195 - recalctime = 8 + (random() % 43);
196 + recalctime = 8 + (emp_random() % 43);
197 while (!success && ototal) {
200 @@ -1884,9 +1884,9 @@
201 if (((a_cas + d_cas) % 70) == 69)
203 if (recalctime-- <= 0) {
204 - recalctime = 8 + (random() % 43);
205 + recalctime = 8 + (emp_random() % 43);
206 odds = att_calcodds(ototal, dtotal);
207 - odds = odds + (double)((double)((random() % 11) - 5) / 100.0);
208 + odds = odds + (double)((double)((emp_random() % 11) - 5) / 100.0);
212 Index: empserver/src/lib/subs/landgun.c
213 --- empserver/src/lib/subs/landgun.c 16 Mar 2005 21:57:53 -0000 1.5
214 +++ empserver/src/lib/subs/landgun.c 17 Mar 2005 10:01:14 -0000
217 double g = (double)min(guns, 7);
219 - d = ((double)(random() % 30) + 20.0) * ((double)g / 7.0);
220 + d = ((double)(emp_random() % 30) + 20.0) * ((double)g / 7.0);
221 d *= ((double)effic);
228 - d += 10.0 + (double)(random() % 6);
229 + d += 10.0 + (double)(emp_random() % 6);
230 d *= ((double)effic) * 0.01;
235 shots = min(shots, guns);
237 - d += 5.0 + (double)(random() % 6);
238 + d += 5.0 + (double)(emp_random() % 6);
239 d *= ((double)effic) * 0.01;
240 if (shells < ammo && ammo != 0)
241 d *= (double)((double)shells / (double)ammo);
242 Index: empserver/src/lib/subs/shpsub.c
243 --- empserver/src/lib/subs/shpsub.c 3 Oct 2005 14:47:59 -0000 1.22
244 +++ empserver/src/lib/subs/shpsub.c 4 Oct 2005 14:57:37 -0000
247 nreport(sp->shp_own, N_HIT_MINE, 0, 1);
249 - m = 22.0 + (double)(random() % 21);
250 + m = 22.0 + (double)(emp_random() % 21);
251 if (mcp->m_flags & M_SWEEP)
254 Index: empserver/src/lib/subs/takeover.c
255 --- empserver/src/lib/subs/takeover.c 16 Mar 2005 21:57:55 -0000 1.14
256 +++ empserver/src/lib/subs/takeover.c 17 Mar 2005 10:01:14 -0000
258 if (!(chance(LND_SPY_DETECT_CHANCE(lp->lnd_effic))))
261 - n = lp->lnd_effic - (30 + (random() % 100));
262 + n = lp->lnd_effic - (30 + (emp_random() % 100));
267 * how spunky are these guys?
268 * n: random number from -25:75 + (50 - loyalty)
270 - n = (50 - sp->sct_loyal) + ((random() % 100) - 25);
271 + n = (50 - sp->sct_loyal) + ((emp_random() % 100) - 25);
273 if (n > 0 && sp->sct_own == sp->sct_oldown) {
274 che_count = (civ * n / 3000) + 5;
276 * XXX If this was done right, planes could escape,
277 * flying to a nearby friendly airport.
279 - n = pp->pln_effic - (30 + (random() % 100));
280 + n = pp->pln_effic - (30 + (emp_random() % 100));
284 Index: empserver/src/lib/update/human.c
285 diff -u -r1.18 human.c
286 --- empserver/src/lib/update/human.c 2 Oct 2005 19:10:16 -0000 1.18
287 +++ empserver/src/lib/update/human.c 4 Oct 2005 14:57:37 -0000
288 @@ -116,12 +116,12 @@
289 nreport(sp->sct_own, N_DIE_FAMINE, 0, 1);
292 - sp->sct_loyal += (random() % 8) + 2;
293 + sp->sct_loyal += (emp_random() % 8) + 2;
297 if (sp->sct_work < 100)
298 - sctwork = sp->sct_work + 8 + (random() % 15);
299 + sctwork = sp->sct_work + 8 + (emp_random() % 15);
302 if (!player->simulation)
303 Index: empserver/src/lib/update/plague.c
304 --- empserver/src/lib/update/plague.c 16 Mar 2005 21:57:57 -0000 1.15
305 +++ empserver/src/lib/update/plague.c 17 Mar 2005 10:01:15 -0000
310 - *ptime = (etus / 2) + (random() % etus);
311 + *ptime = (etus / 2) + (emp_random() % etus);
315 Index: empserver/src/lib/update/populace.c
316 --- empserver/src/lib/update/populace.c 16 Mar 2005 21:57:57 -0000 1.9
317 +++ empserver/src/lib/update/populace.c 17 Mar 2005 10:01:15 -0000
319 n = roundavg(etu * 0.125);
322 - n = sp->sct_loyal + (random() % n) + 1;
323 + n = sp->sct_loyal + (emp_random() % n) + 1;
328 if (sp->sct_loyal > 65 && mil < civ / 20) {
331 - work_red = sp->sct_loyal - (50 + (random() % 15));
332 + work_red = sp->sct_loyal - (50 + (emp_random() % 15));
333 n = sp->sct_work - work_red;
336 Index: empserver/src/lib/update/revolt.c
337 --- empserver/src/lib/update/revolt.c 31 Jul 2005 13:55:49 -0000 1.16
338 +++ empserver/src/lib/update/revolt.c 11 Aug 2005 09:14:25 -0000
342 /* che due to civilian unrest */
343 - n = 10 - (random() % 20);
344 + n = 10 - (emp_random() % 20);
345 che_civ = 3 + (civ * n / 500);
351 /* che due to uw unrest */
352 - n = 10 + (random() % 30);
353 + n = 10 + (emp_random() % 30);
354 che_uw = 5 + (uw * n / 500);
361 - n = sp->sct_loyal - (random() % 15);
362 + n = sp->sct_loyal - (emp_random() % 15);
367 * Note this disrupts work in the sector.
370 - n = (random() % 10) + (random() % che);
371 + n = (emp_random() % 10) + (emp_random() % che);
374 tmp = sp->sct_work - n;
375 @@ -351,14 +351,14 @@
376 /* loyalty drops during recruitment efforts */
379 - n += (random() % 5) + 1;
380 + n += (emp_random() % 5) + 1;
382 - n += (random() % 10) + 4;
383 + n += (emp_random() % 10) + 4;
387 if (sp->sct_oldown != sp->sct_own || n > 100) {
388 - n = civ * (random() % 3) / 200;
389 + n = civ * (emp_random() % 3) / 200;
390 n /= hap_fact(tnat, getnatp(sp->sct_oldown));
391 if (n + che > CHE_MAX)
395 sp->sct_item[I_CIVIL] = civ;
397 - n = uw * (random() % 3) / 200;
398 + n = uw * (emp_random() % 3) / 200;
399 if (n + che > CHE_MAX)
403 val = roundintby(val, 10);
404 /* inject a modicum of indeterminism; also
405 * avoids che preferring certain directions */
406 - val += random() % 10 - 5;
407 + val += emp_random() % 10 - 5;
411 Index: empserver/src/server/main.c
412 --- empserver/src/server/main.c 3 May 2005 00:06:10 -0000 1.62
413 +++ empserver/src/server/main.c 28 May 2005 08:32:40 -0000
418 - srandom(time(NULL));
419 + emp_srandom(time(NULL));
423 Index: empserver/src/server/update.c
424 --- empserver/src/server/update.c 16 Mar 2005 21:57:58 -0000 1.18
425 +++ empserver/src/server/update.c 17 Mar 2005 10:01:15 -0000
428 next_update_time(&now, &update_time, &delta);
429 if (update_window > 0) {
430 - wind = (random() % update_window);
431 + wind = (emp_random() % update_window);
435 Index: empserver/src/util/fairland.c
436 --- empserver/src/util/fairland.c 16 Mar 2005 22:03:16 -0000 1.25
437 +++ empserver/src/util/fairland.c 17 Mar 2005 10:01:15 -0000
440 #define max(a,b) (a>b?a:b)
442 -#define rnd(x) (random() % (x))
443 +#define rnd(x) (lrand48() % (x))
445 int secs; /* number of sectors grown */
446 int ctot; /* total number of continents and islands grown */
453 if (emp_config(config_file))