void HighBridge::build( const TilePos& pos ) { TilePos endPos, startPos; _d->direction=D_NONE; _d->subtiles.clear(); _fgPictures.clear(); CityPtr city = Scenario::instance().getCity(); Tilemap& tilemap = city->getTilemap(); _checkParams( _d->direction, startPos, endPos, pos ); if( _d->direction != D_NONE ) { _computePictures( startPos, endPos, _d->direction ); for( HighBridgeSubTiles::iterator it=_d->subtiles.begin(); it != _d->subtiles.end(); it++ ) { HighBridgeSubTilePtr subtile = (*it); TilePos buildPos = pos + subtile->_pos; Tile& tile = tilemap.at( buildPos ); subtile->setPicture( tile.getPicture() ); subtile->_imgId = tile.getTerrain().getOriginalImgId(); subtile->_info = tile.getTerrain().encode(); subtile->_parent = this; city->build( subtile.as<Construction>(), buildPos ); } } }