handle carving fortifications in dig-now

develop
myk002 2022-03-12 13:11:07 -08:00 committed by Myk
parent 82910015c1
commit e60ef479c6
1 changed files with 13 additions and 3 deletions

@ -497,8 +497,19 @@ static bool smooth_tile(color_ostream &out, MapExtras::MapCache &map,
const DFCoord &pos) {
df::tiletype tt = map.tiletypeAt(pos);
df::tiletype_shape shape = tileShape(tt);
df::tiletype_variant variant = tileVariant(tt);
df::tiletype_special special = df::tiletype_special::SMOOTH;
TileDirection tdir;
if (tileShape(tt) == df::tiletype_shape::WALL) {
if (is_smooth_wall(map, pos)) {
// engraving is filtered out at a higher level, so this is a
// fortification designation
shape = tiletype_shape::FORTIFICATION;
variant = df::tiletype_variant::NONE;
special = df::tiletype_special::NONE;
}
else if (shape == df::tiletype_shape::WALL) {
if (adjust_smooth_wall_dir(map, DFCoord(pos.x, pos.y-1, pos.z),
TileDirection(0, 1, 0, 0)))
tdir.north = 1;
@ -514,8 +525,7 @@ static bool smooth_tile(color_ostream &out, MapExtras::MapCache &map,
tdir = ensure_valid_tdir(tdir);
}
tt = findTileType(tileShape(tt), tileMaterial(tt), tileVariant(tt),
df::tiletype_special::SMOOTH, tdir);
tt = findTileType(shape, tileMaterial(tt), variant, special, tdir);
if (tt == df::tiletype::Void)
return false;