TilesArray sideTiles( int side, Tilemap& oTilemap ) { int mapSize = oTilemap.size(); switch( side % 4 ) { case 0: return oTilemap.getArea( TilePos( 0, 0), TilePos( 0, mapSize-1 ) ); case 1: return oTilemap.getArea( TilePos( 0, mapSize-1), TilePos( mapSize-1, mapSize-1 ) ); case 2: return oTilemap.getArea( TilePos( mapSize-1, mapSize-1), TilePos( mapSize-1, 0 ) ); case 3: return oTilemap.getArea( TilePos( mapSize-1, 0), TilePos( 0, 0 ) ); } return TilesArray(); }
void GameLoader::Impl::initWaterTileAnimation( Tilemap& tmap ) { TilemapArea area = tmap.getArea( TilePos( 0, 0 ), Size( tmap.getSize() ) ); Animation water; water.setFrameDelay( 12 ); water.load( ResourceGroup::land1a, 121, 7 ); water.load( ResourceGroup::land1a, 127, 7, true ); foreach( Tile* tile, area ) { int rId = tile->getOriginalImgId() - 364; if( rId >= 0 && rId < 8 ) { water.setCurrentIndex( rId ); tile->setAnimation( water ); } }
bool haveReservoirWater( const Tilemap& tm, const TilePos& pos ) { TilesArray possiblePlace = tm.getArea( pos, pos + TilePos(1,1) ); return !possiblePlace.select( Tile::pReservoirWater ).empty(); }