|
@@ -4448,6 +4448,10 @@ BUILDIN_FUNC(rand)
|
|
|
}
|
|
|
if( range <= 1 )
|
|
|
script_pushint(st, min);
|
|
|
+ else if( range > SHRT_MAX ) {
|
|
|
+ int step1 = rand()%(range&0xffff), step2 = rand()%(range>>16);
|
|
|
+ script_pushint(st, step1 + (step2<<16) + min);
|
|
|
+ }
|
|
|
else
|
|
|
script_pushint(st, rand()%range + min);
|
|
|
|