aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorjackpoz <giacomopoz@gmail.com>2021-07-28 12:27:34 +0200
committerjackpoz <giacomopoz@gmail.com>2021-07-28 12:27:34 +0200
commite615e2ddefd2c18b6dec8e08fb3d17580b64ea99 (patch)
tree7a7cec7d7159dc630ea1985e05939eb3f5975f22 /src
parentfece5bdbf39ba3fb99c2b99dd00580ffdc68c5a2 (diff)
Core/MMAPs: Reduce chances of breaking tile connections
Reduce chances of breaking tile connections caused by floating point rounding issues.
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 44812edc330..7131dab6bfa 100644
--- a/src/tools/mmaps_generator/MapBuilder.cpp
+++ b/src/tools/mmaps_generator/MapBuilder.cpp
@@ -645,10 +645,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();