X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=Kernel%2Flib.c;h=88dc90c46737056c236f8624d5865c922638af1d;hb=e4b700d576ea9155c3fc86b0c57869a224851954;hp=b69bdd0befc61c4cd6e3b3c81df6fd8b9ee53dfa;hpb=db419c7f9e80bdf8382517df999f7605a7740d45;p=tpg%2Facess2.git diff --git a/Kernel/lib.c b/Kernel/lib.c index b69bdd0b..88dc90c4 100644 --- a/Kernel/lib.c +++ b/Kernel/lib.c @@ -8,6 +8,7 @@ #define RANDOM_SEED 0xACE55052 #define RANDOM_A 0x00731ADE #define RANDOM_C 12345 +#define RANDOM_SPRUCE 0xf12b02b // Jan Feb Mar Apr May Jun Jul Aug Sept Oct Nov Dec const short DAYS_BEFORE[] = {0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334}; #define UNIX_TO_2K ((30*365*3600*24) + (7*3600*24)) //Normal years + leap years @@ -325,7 +326,11 @@ Uint rand() randomState ^= 0x9A3C5E78; return ret; #else + Uint old = giRandomState; giRandomState = (RANDOM_A*giRandomState + RANDOM_C) & 0xFFFFFFFF; + if(giRandomState == old) { + giRandomState += RANDOM_SPRUCE; + } Log("giRandomState = 0x%x", giRandomState); return giRandomState; #endif