mirror of https://github.com/OpenTTD/OpenTTD
(svn r25148) -Fix [FS#5517]: [Script] XXBase::Chance function did not work for large values (>65535)
parent
e5a77f94bd
commit
70454b8d64
|
@ -44,7 +44,7 @@
|
||||||
/* static */ bool ScriptBase::Chance(uint out, uint max)
|
/* static */ bool ScriptBase::Chance(uint out, uint max)
|
||||||
{
|
{
|
||||||
EnforcePrecondition(false, out <= max);
|
EnforcePrecondition(false, out <= max);
|
||||||
return (uint16)Rand() <= (uint16)((65535 * out) / max);
|
return ScriptBase::RandRange(max) < out;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* static */ bool ScriptBase::ChanceItem(int unused_param, uint out, uint max)
|
/* static */ bool ScriptBase::ChanceItem(int unused_param, uint out, uint max)
|
||||||
|
|
|
@ -70,6 +70,7 @@ public:
|
||||||
* @param unused_param This parameter is not used, but is needed to work with lists.
|
* @param unused_param This parameter is not used, but is needed to work with lists.
|
||||||
* @param out How many times it should return true.
|
* @param out How many times it should return true.
|
||||||
* @param max Out of this many times.
|
* @param max Out of this many times.
|
||||||
|
* @pre \a out is at most equal to \a max.
|
||||||
* @return True if the chance worked out.
|
* @return True if the chance worked out.
|
||||||
*/
|
*/
|
||||||
static bool ChanceItem(int unused_param, uint out, uint max);
|
static bool ChanceItem(int unused_param, uint out, uint max);
|
||||||
|
|
Loading…
Reference in New Issue