aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorjackpoz <giacomopoz@gmail.com>2021-07-28 12:27:34 +0200
committerShauren <shauren.trinity@gmail.com>2022-01-04 20:44:26 +0100
commitbe7acb2527b28b338b4d7cc03a7e5cb3d7cb593a (patch)
tree5a8885c6b355cf925c472f4e1671d84bfd78b9c9 /src
parentdbb7f65723fd4c46ae7f12801fa12ca2196fcb03 (diff)
Core/MMAPs: Reduce chances of breaking tile connections
Reduce chances of breaking tile connections caused by floating point rounding issues. (cherry picked from commit e615e2ddefd2c18b6dec8e08fb3d17580b64ea99)
Diffstat (limited to 'src')
-rw-r--r--src/tools/mmaps_generator/MapBuilder.cpp13
1 files changed, 9 insertions, 4 deletions
diff --git a/src/tools/mmaps_generator/MapBuilder.cpp b/src/tools/mmaps_generator/MapBuilder.cpp
index 4f8567a97e2..f60a9888d04 100644
--- a/src/tools/mmaps_generator/MapBuilder.cpp
+++ b/src/tools/mmaps_generator/MapBuilder.cpp
@@ -647,10 +647,15 @@ namespace MMAP
Tile& tile = tiles[x + y * TILES_PER_MAP];
// Calculate the per tile bounding box.
- tileCfg.bmin[0] = config.bmin[0] + float(x*config.tileSize - config.borderSize)*config.cs;
- tileCfg.bmin[2] = config.bmin[2] + float(y*config.tileSize - config.borderSize)*config.cs;
- tileCfg.bmax[0] = config.bmin[0] + float((x+1)*config.tileSize + config.borderSize)*config.cs;
- tileCfg.bmax[2] = config.bmin[2] + float((y+1)*config.tileSize + config.borderSize)*config.cs;
+ tileCfg.bmin[0] = config.bmin[0] + x * float(config.tileSize * config.cs);
+ tileCfg.bmin[2] = config.bmin[2] + y * float(config.tileSize * config.cs);
+ tileCfg.bmax[0] = config.bmin[0] + (x + 1) * float(config.tileSize * config.cs);
+ tileCfg.bmax[2] = config.bmin[2] + (y + 1) * float(config.tileSize * config.cs);
+
+ tileCfg.bmin[0] -= tileCfg.borderSize * tileCfg.cs;
+ tileCfg.bmin[2] -= tileCfg.borderSize * tileCfg.cs;
+ tileCfg.bmax[0] += tileCfg.borderSize * tileCfg.cs;
+ tileCfg.bmax[2] += tileCfg.borderSize * tileCfg.cs;
// build heightfield
tile.solid = rcAllocHeightfield();