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 ); } } } }