Example #1
0
bool Gatehouse::build( const city::AreaInfo& info )
{
  _update( info );
  _d->updateSprite();

  TilesArea tiles( info.city->tilemap(), info.pos, size() );
  foreach( it, tiles )
  {
    RoadPtr road = ptr_cast<Road>( (*it)->overlay() );
    if( road.isValid() )
    {
      road->setState( pr::lockTerrain, 1 );
    }
  }
void Roads::Impl::updateRoadsAround( Propagator& propagator, UpdateInfo info )
{
  propagator.init( info.first );
  PathwayList pathWayList = propagator.getWays( info.second );

  for( auto&& path : pathWayList )
  {
    const TilesArray& tiles = path->allTiles();
    for( auto tile : tiles )
    {
      RoadPtr road = tile->overlay().as<Road>();
      if( road.isValid() )
      {
        road->appendPaved( defaultIncreasePaved );
      }
    }
  }
}