(svn r11454) -Fix: the CHANCE16 functions were biased; a 32768 in 65536 chance was really a 32769 in 65536 chance.

This commit is contained in:
rubidium
2007-11-17 23:16:41 +00:00
parent 32202be452
commit 80a7a91730
2 changed files with 15 additions and 10 deletions

View File

@@ -731,16 +731,14 @@ no_slope:
* maybe terraform some. */
desired_slope = (dir == DIAGDIR_NW || dir == DIAGDIR_SE) ? SLOPE_NW : SLOPE_NE;
if (desired_slope != cur_slope && ComplementSlope(desired_slope) != cur_slope) {
uint32 r = Random();
if (CHANCE16I(1, 8, r)) {
if (CHANCE16(1, 8)) {
CommandCost res = CMD_ERROR;
if (!_generating_world && CHANCE16I(1, 10, r >> 4)) {
if (!_generating_world && CHANCE16(1, 10)) {
/* Note: Do not replace " ^ 0xF" with ComplementSlope(). The slope might be steep. */
res = DoCommand(tile, CHANCE16I(1, 16, r >> 8) ? cur_slope : cur_slope ^ 0xF, 0,
res = DoCommand(tile, CHANCE16(1, 16) ? cur_slope : cur_slope ^ 0xF, 0,
DC_EXEC | DC_AUTO | DC_NO_WATER, CMD_TERRAFORM_LAND);
}
if (CmdFailed(res) && CHANCE16I(1, 3, r >> 16)) {
if (CmdFailed(res) && CHANCE16(1, 3)) {
/* We can consider building on the slope, though. */
goto no_slope;
}