39 lines
No EOL
726 B
C
39 lines
No EOL
726 B
C
#include "dolphin.h"
|
|
|
|
static u32 frand_seed;
|
|
|
|
static inline u32 frandom(u32 param)
|
|
{
|
|
s32 rand2, rand3;
|
|
|
|
if (param == 0) {
|
|
param = rand8();
|
|
param = param ^ (s64)OSGetTime();
|
|
param ^= 0xD826BC89;
|
|
}
|
|
|
|
rand2 = param / (u32)0x1F31D;
|
|
rand3 = param - (rand2 * 0x1F31D);
|
|
param = rand2 * 0xB14;
|
|
param = param - rand3 * 0x41A7;
|
|
return param;
|
|
}
|
|
|
|
u32 frand(void) {
|
|
return frand_seed = frandom(frand_seed);
|
|
}
|
|
|
|
f32 frandf(void) {
|
|
u32 value = frand();
|
|
f32 ret;
|
|
value &= 0x7FFFFFFF;
|
|
ret = (f32)value/2147483648;
|
|
return ret;
|
|
}
|
|
|
|
u32 frandmod(u32 arg0) {
|
|
u32 ret;
|
|
frand_seed = frandom(frand_seed);
|
|
ret = (frand_seed & 0x7FFFFFFF)%arg0;
|
|
return ret;
|
|
} |