Esempio n. 1
0
  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();
  }
Esempio n. 2
0
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 );
    }
  }
Esempio n. 3
0
bool haveReservoirWater( const Tilemap& tm, const TilePos& pos )
{
  TilesArray possiblePlace = tm.getArea( pos, pos + TilePos(1,1) );
  return !possiblePlace.select( Tile::pReservoirWater ).empty();
}