virtual void _updateTexture( GfxEngine& painter )
  {
    Label::_updateTexture( painter );

    std::string buildingStr, peoplesStr;
    switch( _service )
    {
    case B_BATHS: buildingStr = _("##bath##"); peoplesStr = _("##peoples##"); break;
    case B_BARBER: buildingStr = _("##barber##"); peoplesStr = _("##peoples##"); break;
    case B_HOSPITAL: buildingStr = _("##hospital##"); peoplesStr = _("##patients##"); break;
    case B_DOCTOR: buildingStr = _("##doctor##"); peoplesStr = _("##peoples##"); break;
    default: break;
    }

    PictureRef& texture = getTextPicture();
    Font font = getFont();
    std::string buildingStrT = StringHelper::format( 0xff, "%d %s", _numberBuilding, buildingStr.c_str() );
    font.draw( *texture, buildingStrT, 0, 0 );

    std::string buildingWorkT = StringHelper::format( 0xff, "%d", _workingBuilding );
    font.draw( *texture, buildingWorkT, 165, 0 );

    std::string peoplesStrT = StringHelper::format( 0xff, "%d %s", _peoplesCount, peoplesStr.c_str() );
    font.draw( *texture, peoplesStrT, 255, 0 );
  }
  virtual void _updateTexture( GfxEngine& painter )
  {
    Label::_updateTexture( painter );

    PictureRef& texture = getTextPicture();
    Font font = getFont();

    if( _divinity.isValid() )
    {
      _lastFestival = _divinity->getLastFestivalDate().getMonthToDate( GameDate::current() );
      _mood = _divinity->getRelation();

      font.draw( *texture, _divinity->getName(), 0, 0 );
      Font fontBlack = Font::create( FONT_1 );
      fontBlack.draw( *texture, StringHelper::format( 0xff, "(%s)", _divinity->getShortDescription().c_str() ), 80, 0 );
      font.draw( *texture, StringHelper::format( 0xff, "%d", _smallTempleCount ), 220, 0 );
      font.draw( *texture, StringHelper::format( 0xff, "%d", _bigTempleCount ), 280, 0 );
      font.draw( *texture, StringHelper::format( 0xff, "%d", _lastFestival ), 350, 0 );
      font.draw( *texture, StringHelper::format( 0xff, "%d", _mood ), 420, 0 );
    }
    else
    {
      font.draw( *texture, _("##Oracles_in_city##"), 0, 0 );
      font.draw( *texture, StringHelper::format( 0xff, "%d", _smallTempleCount ), 220, 0 );
    }
  }
  virtual void _updateTexture( GfxEngine& painter )
  {
    Label::_updateTexture( painter );

    Picture goodIcon = GoodHelper::getPicture( _type );
    std::string goodName = GoodHelper::getName( _type );

    if( getTextPicture() )
    {
      getTextPicture()->draw( goodIcon, 15, 0, false );
      getTextPicture()->draw( goodIcon, 390, 0, false );

      Font font = getFont();    
      font.draw( *getTextPicture(), goodName, 55, 0 );   
    }
  }
  virtual void _updateTexture( GfxEngine& painter )
  {
    Label::_updateTexture( painter );

    std::string buildingStr, peoplesStr;
    switch( _service )
    {
    case B_THEATER: buildingStr = _("##theaters##"); peoplesStr = _("##peoples##"); break;
    case B_AMPHITHEATER: buildingStr = _("##amphitheatres##"); peoplesStr = _("##peoples##"); break;
    case B_COLLOSSEUM: buildingStr = _("##colloseum##"); peoplesStr = _("##peoples##"); break;
    case B_HIPPODROME: buildingStr = _("##hippodromes##"); peoplesStr = "-"; break;
    default:
    break;
    }

    PictureRef& texture = getTextPicture();
    Font font = getFont();
    font.draw( *texture, StringHelper::format( 0xff, "%d %s", _numberBuilding, buildingStr.c_str() ), 0, 0 );
    font.draw( *texture, StringHelper::format( 0xff, "%d", _workingBuilding ), 165, 0 );
    font.draw( *texture, StringHelper::format( 0xff, "%d", _showBuilding ), 245, 0 );
    font.draw( *texture, StringHelper::format( 0xff, "%d %s", _peoplesCount, peoplesStr.c_str() ), 305, 0 );
  }