| 273 | }*/ |
| 274 | |
| 275 | void ReserveGroundHeight(PlacementReserve &reserve, TilePosition desiredPosition) |
| 276 | { |
| 277 | TilePosition start = desiredPosition - TilePosition(MAX_RANGE,MAX_RANGE)/2; |
| 278 | |
| 279 | // Exclude locations with a different ground height, but restore a backup in case there are no more build locations |
| 280 | reserve.backup(); |
| 281 | int targetHeight = Broodwar->getGroundHeight(desiredPosition); |
| 282 | reserve.iterate( [&](PlacementReserve *pr, int x, int y) |
| 283 | { |
| 284 | if ( Broodwar->getGroundHeight( start + TilePosition(x,y) ) != targetHeight ) |
| 285 | pr->setValue(x, y, 0); |
| 286 | }); |
| 287 | |
| 288 | // Restore original if there is nothing left |
| 289 | reserve.restoreIfInvalid(__FUNCTION__); |
| 290 | } |
| 291 | |
| 292 | void ReserveExistingAddonPlacement(PlacementReserve &reserve, TilePosition desiredPosition) |
| 293 | { |
no test coverage detected