Beispiel #1
0
TilesArea::TilesArea(const Tilemap& tmap, int distance, OverlayPtr overlay)
{
  if( overlay.isNull() )
    return;

  TilePos offset( distance, distance  );
  TilePos size( overlay->size().width(), overlay->size().height() );
  TilePos start = overlay->tile().epos();
  _size = overlay->size();
  append( tmap.area( start - offset, start + size + offset ) );
}
Beispiel #2
0
bool haveReservoirWater( const Tilemap& tm, const TilePos& pos )
{
  TilesArray possiblePlace = tm.area( pos, pos + TilePos(1,1) );
  return !possiblePlace.select( Tile::pReservoirWater ).empty();
}
Beispiel #3
0
TilesArea::TilesArea(const Tilemap &tmap, const TilePos& leftup, const Size& size)
{
  _size = size;
  append( tmap.area( leftup, size ) );
}
Beispiel #4
0
TilesArea::TilesArea(const Tilemap &tmap, int distance, const TilePos& center)
{
  TilePos offset( distance, distance );
  _size = Size::square( distance ) * 2;
  append( tmap.area( center - offset, center + offset ) );
}
Beispiel #5
0
TilesArea::TilesArea(const Tilemap &tmap, const TilePos& leftup, const TilePos& rightdown)
{
  _size = Size( abs( rightdown.i() - leftup.i() ),
                abs( rightdown.j() - leftup.j() ) );
  append( tmap.area( leftup, rightdown ) );
}