sources » ScenarioClass » GenerateUniqueSeed
// this function generates a "uniqueID" used to identify this game session
void Hash(int * buffer, int key)
{
*buffer = key + (*buffer >> 31) + 2 * *buffer;
}
int ScenarioClass::GenerateUniqueSeed() {
int UniqueSeed = timeGetTime(); // man winapi
int InitialKey = GetAvailDiskSpace();
Hash(&UniqueSeed, InitialKey);
const char *path = getenv("PATH");
if(path && strlen(path) > 1) {
int idx = 0;
do {
Hash(&UniqueSeed, path[idx++]);
} while (idx < strlen(path) - 1);
this->UniqueID = UniqueSeed;
return UniqueSeed;
}
}