Random Numbers

From ASSS Wiki
Revision as of 07:53, 30 November 2005 by Mine GO BOOM (talk | contribs) (Reverted edit of Zc321, changed back to last version by Cyan~Fire)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigationJump to search

SubSpace uses random numbers primarily in its encryption, generating prizes, and controlling doors.

The following code is used in generating the encrypted keystream, prizes, and doors:

#define MULT_C	0x834E0B5F
#define DIV_C	0x1F31D

DWORD SS_RNG(DWORD seed)
{
	DWORD nseed, temp;

	temp = (MULT_C * (unsigned __int64)seed) >> 32;
	temp = (temp >> 16) + (temp >> 31);	//aka the sign bit

	nseed = (seed % DIV_C) * 16807;
	nseed -= (temp * 2836);
	nseed += 123;

	if (!nseed || nseed > 0x7FFFFFFF)
		nseed += 0x7FFFFFFF;

	return nseed;
}