diff --git a/landscape.c b/landscape.c --- a/landscape.c +++ b/landscape.c @@ -246,14 +246,17 @@ bool hasFoundation(TileInfo *ti, bool di { bool south, other; // southern corner and east/west corner uint slope = _tile_type_procs[ti->type]->get_slope_tileh_proc(ti); - south = ((ti->tileh) & 2) != (slope & 2); + uint tileh = ti->tileh; + + if(slope==0 && slope!=tileh) tileh=15; + south = (tileh & 2) != (slope & 2); if(direction) - other = ((ti->tileh) & 4) != (slope & 4); + other = (tileh & 4) != (slope & 4); else - other = ((ti->tileh) & 1) != (slope & 1); + other = (tileh & 1) != (slope & 1); + return south || other; - return south || other; } void DrawFoundation(TileInfo *ti, uint f)