Esempio n. 1
0
void Pathfinder::update( const Tilemap& tilemap )
{
  _d->tilemap = const_cast< Tilemap* >( &tilemap );

  _d->grid.resize( tilemap.getSize() );
  for( int k=0; k < tilemap.getSize(); k++)
  {
    _d->grid[ k ].resize( tilemap.getSize());
  }

  TilemapTiles tiles = _d->tilemap->getArea( TilePos( 0, 0 ), Size( tilemap.getSize() ) );
  foreach( Tile* tile, tiles )
  {
    _d->grid[ tile->getI() ][ tile->getJ() ] = new AStarPoint( tile );
  }
Esempio n. 2
0
void GameLoader::Impl::initEntryExitTile( const TilePos& tlPos, Tilemap& tileMap, const unsigned int picIdStart, bool exit )
{
  unsigned int idOffset = 0;
  TilePos tlOffset;
  if( tlPos.getI() == 0 || tlPos.getI() == tileMap.getSize() - 1 )
  {
    tlOffset = TilePos( 0, 1 );
    idOffset = (tlPos.getI() == 0 ? 1 : 3 );

  }
  else if( tlPos.getJ() == 0 || tlPos.getJ() == tileMap.getSize() - 1 )
  {
    tlOffset = TilePos( 1, 0 );
    idOffset = (tlPos.getJ() == 0 ? 2 : 0 );
  }

  Tile& signTile = tileMap.at( tlPos + tlOffset );

  StringHelper::debug( 0xff, "(%d, %d)", tlPos.getI(),    tlPos.getJ()    );
  StringHelper::debug( 0xff, "(%d, %d)", tlOffset.getI(), tlOffset.getJ() );

  signTile.setPicture( ResourceGroup::land3a, picIdStart + idOffset );
  signTile.setFlag( Tile::tlRock, true );
}
Esempio n. 3
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 );
    }
  }
RoadPropagator::RoadPropagator( const Tilemap& tileMap, const Tile& startTile ) 
    : _d( new Impl( tileMap, startTile ) )
{
    _d->mapSize = tileMap.getSize();
}