| 336 | } |
| 337 | |
| 338 | static void clean_ramp(MapExtras::MapCache &map, const DFCoord &pos) { |
| 339 | if (!map.ensureBlockAt(pos)) |
| 340 | return; |
| 341 | |
| 342 | df::tiletype tt = map.tiletypeAt(pos); |
| 343 | if (tileShape(tt) != df::tiletype_shape::RAMP) |
| 344 | return; |
| 345 | |
| 346 | if (is_wall(map, DFCoord(pos.x-1, pos.y, pos.z)) || |
| 347 | is_wall(map, DFCoord(pos.x+1, pos.y, pos.z)) || |
| 348 | is_wall(map, DFCoord(pos.x, pos.y-1, pos.z)) || |
| 349 | is_wall(map, DFCoord(pos.x, pos.y+1, pos.z)) || |
| 350 | is_wall(map, DFCoord(pos.x-1, pos.y-1, pos.z)) || |
| 351 | is_wall(map, DFCoord(pos.x-1, pos.y+1, pos.z)) || |
| 352 | is_wall(map, DFCoord(pos.x+1, pos.y-1, pos.z)) || |
| 353 | is_wall(map, DFCoord(pos.x+1, pos.y+1, pos.z))) |
| 354 | return; |
| 355 | |
| 356 | remove_ramp_top(map, DFCoord(pos.x, pos.y, pos.z+1)); |
| 357 | dig_shape(map,pos, tt, df::tiletype_shape::FLOOR); |
| 358 | } |
| 359 | |
| 360 | // removes self and/or orthogonally adjacent ramps that are no longer adjacent |
| 361 | // to a wall |
no test coverage detected