Random Numbers

From ASSS Wiki
Revision as of 03:15, 25 March 2005 by Mine GO BOOM (talk | contribs) (Spelling and link)
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:

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;
}