Save number of times a message is displayed to the config file.
git-svn-id: svn+ssh://svn.code.sf.net/p/supertuxkart/code/main/trunk@8057 178a84e3-b1eb-0310-8ba1-8eac791a3b58
This commit is contained in:
parent
4af41ee77a
commit
ff152bfeed
@ -320,6 +320,7 @@ const core::stringw NetworkHttp::getNextNewsMessage()
|
||||
// Now we have a message that was finished being
|
||||
// displayed --> increase display count.
|
||||
m_news.getData()[m_current_news_message].increaseDisplayCount();
|
||||
updateUserConfigFile();
|
||||
}
|
||||
m_current_news_message++;
|
||||
if(m_current_news_message >= (int)m_news.getData().size())
|
||||
@ -331,6 +332,23 @@ const core::stringw NetworkHttp::getNextNewsMessage()
|
||||
return m;
|
||||
} // getNextNewsMessage
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
/** Saves the information about which message was being displayed how often
|
||||
* to the user config file.
|
||||
* Note that this function assumes that m_news is already locked!
|
||||
*/
|
||||
void NetworkHttp::updateUserConfigFile() const
|
||||
{
|
||||
std::ostringstream o;
|
||||
for(unsigned int i=0; i<m_news.getData().size(); i++)
|
||||
{
|
||||
const NewsMessage &n=m_news.getData()[i];
|
||||
o << n.getMessageId() << ":"
|
||||
<< n.getDisplayCount() << " ";
|
||||
}
|
||||
|
||||
UserConfigParams::m_display_count = o.str();
|
||||
} // updateUserConfigFile
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
size_t NetworkHttp::writeStr(char ptr [], size_t size, size_t nb_char,
|
||||
|
@ -70,6 +70,10 @@ private:
|
||||
const core::stringw& getNews() const {return m_news;}
|
||||
/** Increases how often this message was being displayed. */
|
||||
void increaseDisplayCount() {m_display_count++;}
|
||||
/** Returns the news id. */
|
||||
int getMessageId() const {return m_message_id;}
|
||||
/** Returns the display count. */
|
||||
int getDisplayCount() const {return m_display_count; }
|
||||
}; // NewsMessage
|
||||
|
||||
mutable Synchronised< std::vector<NewsMessage> > m_news;
|
||||
@ -108,6 +112,7 @@ private:
|
||||
|
||||
void updateNews(const XMLNode *xml,
|
||||
const std::string &filename);
|
||||
void updateUserConfigFile() const;
|
||||
void loadAddonsList(const XMLNode *xml,
|
||||
const std::string &filename);
|
||||
std::string downloadToStrInternal(std::string url);
|
||||
|
@ -432,6 +432,11 @@ namespace UserConfigParams
|
||||
&m_addon_group,
|
||||
"How often news should be updated.") );
|
||||
|
||||
PARAM_PREFIX StringUserConfigParam m_display_count
|
||||
PARAM_DEFAULT( StringUserConfigParam("", "news_display_count",
|
||||
&m_addon_group,
|
||||
"How often all news messages have been displayed") );
|
||||
|
||||
PARAM_PREFIX TimeUserConfigParam m_addons_last_updated
|
||||
PARAM_DEFAULT( TimeUserConfigParam(0, "addon_last_updated",
|
||||
&m_addon_group,
|
||||
|
@ -107,7 +107,7 @@ void LabelWidget::add()
|
||||
IGUIFont* font = m_title_font ? GUIEngine::getTitleFont()
|
||||
: GUIEngine::getFont();
|
||||
core::dimension2du r = font->getDimension(getText().c_str());
|
||||
m_scroll_offset = r.Width;
|
||||
m_scroll_offset = (float)r.Width;
|
||||
}
|
||||
} // add
|
||||
|
||||
@ -128,7 +128,7 @@ void LabelWidget::setText(const wchar_t *text)
|
||||
|
||||
if (m_scroll_speed > 0)
|
||||
{
|
||||
m_scroll_offset = m_element->getAbsolutePosition().getWidth();
|
||||
m_scroll_offset = (float)m_element->getAbsolutePosition().getWidth();
|
||||
}
|
||||
|
||||
Widget::setText(text);
|
||||
@ -142,11 +142,9 @@ void LabelWidget::update(float dt)
|
||||
{
|
||||
if (m_scroll_speed != 0)
|
||||
{
|
||||
m_scroll_offset -= dt*m_scroll_speed*5.0f;
|
||||
|
||||
//printf("m_scroll_offset = %f; x = %f\n", m_scroll_offset, m_x + m_scroll_offset);
|
||||
|
||||
m_element->setRelativePosition( core::position2di( /*m_x +*/ m_scroll_offset, /*m_y*/ 0 ) );
|
||||
m_scroll_offset -= dt*m_scroll_speed*5.0f;
|
||||
m_element->setRelativePosition( core::position2di( /*m_x +*/ (int)m_scroll_offset,
|
||||
/*m_y*/ 0 ) );
|
||||
}
|
||||
} // update
|
||||
// ----------------------------------------------------------------------------
|
||||
@ -162,7 +160,8 @@ bool LabelWidget::scrolledOff() const
|
||||
/** Sets horizontal scroll speed. */
|
||||
void LabelWidget::setScrollSpeed(float speed)
|
||||
{
|
||||
m_scroll_offset = -m_element->getAbsolutePosition().getWidth() - 10; // start scrolled off
|
||||
// start scrolled off
|
||||
m_scroll_offset = (float)(-m_element->getAbsolutePosition().getWidth()-10);
|
||||
m_scroll_speed = speed;
|
||||
} // setScrollSpeed
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user