mirror of
https://github.com/OpenTTD/OpenTTD.git
synced 2025-02-08 07:21:53 +00:00
(svn r25893) -Fix: Document RandomRange and change misleading parameter name 'max' in random functions.
This commit is contained in:
parent
9337c561b0
commit
fe550c2db3
@ -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 */
|
||||||
|
@ -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);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
Loading…
Reference in New Issue
Block a user