From 9d32a824b54a5225ff7bad1954dcef1bc37a9f5c Mon Sep 17 00:00:00 2001 From: epoque11 Date: Tue, 13 Dec 2011 17:31:31 +0000 Subject: [PATCH] - Fixed rand() script command not allowing a range of over 32767 on several systems git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@15090 54d463be-8e91-2dee-dedb-b68131a5f0ec --- src/map/script.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/map/script.c b/src/map/script.c index c9cb65f632..6b051dba0a 100644 --- a/src/map/script.c +++ b/src/map/script.c @@ -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);