// === CONSTANTS ===
#define RANDOM_SEED 0xACE55052
-#define RANDOM_A 0x12231ADE
-#define RANDOM_C 0xBEEF1BAD
+#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
*/
int strncmp(char *Str1, char *Str2, size_t num)
{
- while(num-- && *Str1 && *Str1 == *Str2)
+ if(num == 0) return 0; // TODO: Check what should officially happen here
+ while(--num && *Str1 && *Str1 == *Str2)
Str1++, Str2++;
return *Str1-*Str2;
}
*/
Uint rand()
{
- #if 0
- Uint ret = giRandomState;
- int roll = randomState & 31;
- randomState = (randomState << roll) | (randomState >> (32-roll));
- randomState ^= 0x9A3C5E78;
- return ret;
- #else
+ Uint old = giRandomState;
+ // Get the next state value
giRandomState = (RANDOM_A*giRandomState + RANDOM_C) & 0xFFFFFFFF;
- Log("giRandomState = 0x%x", giRandomState);
+ // Check if it has changed, and if it hasn't, change it
+ if(giRandomState == old) giRandomState += RANDOM_SPRUCE;
return giRandomState;
- #endif
}
EXPORT(timestamp);