(svn r25893) -Fix: Document RandomRange and change misleading parameter name 'max' in random functions.

This commit is contained in:
fonsinchen 2013-10-20 14:48:08 +00:00
parent 9337c561b0
commit fe550c2db3
2 changed files with 22 additions and 14 deletions

View File

@ -29,13 +29,14 @@ uint32 Randomizer::Next()
} }
/** /**
* Generate the next pseudo random number scaled to max * Generate the next pseudo random number scaled to \a limit, excluding \a limit
* @param max the maximum value of the returned random number * itself.
* @return the random number * @param limit Limit of the range to be generated from.
* @return Random number in [0,\a limit)
*/ */
uint32 Randomizer::Next(uint32 max) uint32 Randomizer::Next(uint32 limit)
{ {
return ((uint64)this->Next() * (uint64)max) >> 32; return ((uint64)this->Next() * (uint64)limit) >> 32;
} }
/** /**
@ -75,8 +76,8 @@ uint32 DoRandom(int line, const char *file)
return _random.Next(); return _random.Next();
} }
uint32 DoRandomRange(uint32 max, int line, const char *file) uint32 DoRandomRange(uint32 limit, int line, const char *file)
{ {
return ((uint64)DoRandom(line, file) * (uint64)max) >> 32; return ((uint64)DoRandom(line, file) * (uint64)limit) >> 32;
} }
#endif /* RANDOM_DEBUG */ #endif /* RANDOM_DEBUG */

View File

@ -25,7 +25,7 @@ struct Randomizer {
uint32 state[2]; uint32 state[2];
uint32 Next(); uint32 Next();
uint32 Next(uint32 max); uint32 Next(uint32 limit);
void SetSeed(uint32 seed); void SetSeed(uint32 seed);
}; };
extern Randomizer _random; ///< Random used in the game state calculations extern Randomizer _random; ///< Random used in the game state calculations
@ -65,17 +65,24 @@ void SetRandomSeed(uint32 seed);
#define Random() DoRandom(__LINE__, __FILE__) #define Random() DoRandom(__LINE__, __FILE__)
#endif #endif
uint32 DoRandom(int line, const char *file); uint32 DoRandom(int line, const char *file);
#define RandomRange(max) DoRandomRange(max, __LINE__, __FILE__) #define RandomRange(limit) DoRandomRange(limit, __LINE__, __FILE__)
uint32 DoRandomRange(uint32 max, int line, const char *file); uint32 DoRandomRange(uint32 limit, int line, const char *file);
#else #else
static inline uint32 Random() static inline uint32 Random()
{ {
return _random.Next(); return _random.Next();
} }
static inline uint32 RandomRange(uint32 max) /**
* Pick a random number between 0 and \a limit - 1, inclusive. That means 0
* can be returned and \a limit - 1 can be returned, but \a limit can not be
* returned.
* @param limit Limit for the range to be picked from.
* @return A random number in [0,\a limit).
*/
static inline uint32 RandomRange(uint32 limit)
{ {
return _random.Next(max); return _random.Next(limit);
} }
#endif #endif
@ -84,9 +91,9 @@ static inline uint32 InteractiveRandom()
return _interactive_random.Next(); return _interactive_random.Next();
} }
static inline uint32 InteractiveRandomRange(uint32 max) static inline uint32 InteractiveRandomRange(uint32 limit)
{ {
return _interactive_random.Next(max); return _interactive_random.Next(limit);
} }
/** /**