From fbce35d27e931197ac8d6eaddeb54975bb83d399 Mon Sep 17 00:00:00 2001 From: Inuyasha Date: Wed, 11 May 2016 13:54:40 -0700 Subject: [PATCH] cast P_Random(Key/Range) PRNG calls to INT64 to preserve old behavior (it's still technically "undefined" behavior anyway) --- src/m_random.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/m_random.c b/src/m_random.c index 5fde12535..129a3b288 100644 --- a/src/m_random.c +++ b/src/m_random.c @@ -151,7 +151,7 @@ INT32 P_RandomKeyD(const char *rfile, INT32 rline, INT32 a) { CONS_Printf("P_RandomKey() at: %sp %d\n", rfile, rline); #endif - return (INT32)((__internal_prng__() * a) >> FRACBITS); + return (INT32)(((INT64)__internal_prng__() * a) >> FRACBITS); } /** Provides a random integer in a given range. @@ -171,7 +171,7 @@ INT32 P_RandomRangeD(const char *rfile, INT32 rline, INT32 a, INT32 b) { CONS_Printf("P_RandomRange() at: %sp %d\n", rfile, rline); #endif - return (INT32)((__internal_prng__() * (b-a+1)) >> FRACBITS) + a; + return (INT32)(((INT64)__internal_prng__() * (b-a+1)) >> FRACBITS) + a; }