void SwarmGame::transformToZombie(EntitySprite& entity)
{
   EntityType toType;
   if (transformToType(entity.m_entity->type(), toType))
   {
      MobileEntity* zombie = static_cast<MobileEntity*>(EntityFactory::instance().createEntity(toType));
      if ( NULL != zombie  )
      {
         m_ZombieSwarm.addEntity(zombie);
         CCTexture2D* entityTexture = NULL;
         CCTextureCache* textureCache = CCTextureCache::sharedTextureCache();
         entityTexture = textureCache->textureForKey(xmlDataManager::instance().getEntitySprite (toType));
         int mapHeight = m_map.height() * c_blockSize;

         //create new sprite
         SpriteEntity* sprite = SpriteEntity::spriteWithEntity(zombie);
         sprite->setAnchorPoint(entity.m_sprite->getAnchorPoint());
         sprite->setScaleX(entity.m_sprite->getScaleX());
         sprite->setScaleY(entity.m_sprite->getScaleY());
         sprite->setPosition(entity.m_sprite->getPosition());

         m_mapLayer->removeChild(entity.m_sprite, true);
         entity.m_sprite = sprite; 
         entity.m_sprite->setMaxHealth( zombie->hitPoints() );
         entity.m_sprite->setIsVisible(true);
         m_mapLayer->addChild(entity.m_sprite);

         //TODO: add more properties
         m_map.removeEntity(entity.m_entity);
         m_map.placeEntity(zombie, entity.m_entity->x(), entity.m_entity->y());

         m_ZombieSwarm.removeTarget(entity.m_entity);
         m_HumanSwarm.removeEntity(entity.m_entity, true);
         //m_map->removeEntity(entity.m_entity);
         m_HumanSwarm.addTarget (zombie);

         entity.m_entity = zombie;         
      }
   }
}