# HG changeset patch # User rubidium # Date 1212181039 0 # Node ID a6dc0c24f4c930f6a745643c9402b3edef686786 # Parent 645e32bc09e7228f9d6ee6d1550faafc93fb1256 (svn r13345) -Codechange: only one of all the NewsItem's instance duration variable, so move it so there is only once instance of that variable. Patch by Cirdan. diff -r 645e32bc09e7 -r a6dc0c24f4c9 src/news_gui.cpp --- a/src/news_gui.cpp Fri May 30 20:08:32 2008 +0000 +++ b/src/news_gui.cpp Fri May 30 20:57:19 2008 +0000 @@ -168,9 +168,11 @@ struct NewsWindow : Window { uint16 chat_height; NewsItem *ni; + static uint duration; NewsWindow(const WindowDesc *desc, NewsItem *ni) : Window(desc), ni(ni) { + NewsWindow::duration = 555; const Window *w = FindWindowById(WC_SEND_NETWORK_MSG, 0); this->chat_height = (w != NULL) ? w->height : 0; @@ -258,7 +260,7 @@ { switch (widget) { case 1: - this->ni->duration = 0; + NewsWindow::duration = 0; delete this; _forced_news = NULL; break; @@ -314,6 +316,8 @@ } }; +/* static */ uint NewsWindow::duration; ///< Remaining time for showing current news message + static const Widget _news_type13_widgets[] = { { WWT_PANEL, RESIZE_NONE, 15, 0, 429, 0, 169, 0x0, STR_NULL}, @@ -361,7 +365,6 @@ static void ShowNewspaper(NewsItem *ni) { ni->flags &= ~NF_FORCE_BIG; - ni->duration = 555; SoundFx sound = _news_type_data[_news_subtype_data[ni->subtype].type].sound; if (sound != 0) SndPlayFx(sound); @@ -438,10 +441,10 @@ if (IsNewsTickerShown()) return false; /* Newspaper message, decrement duration counter */ - if (ni->duration != 0) ni->duration--; + if (NewsWindow::duration != 0) NewsWindow::duration--; /* neither newsticker nor newspaper are running */ - return (ni->duration == 0 || FindWindowById(WC_NEWS_WINDOW, 0) == NULL); + return (NewsWindow::duration == 0 || FindWindowById(WC_NEWS_WINDOW, 0) == NULL); } /** Move to the next news item */ @@ -613,7 +616,7 @@ _forced_news = ni; if (_forced_news != NULL) { - ni->duration = 555; + NewsWindow::duration = 555; ni->flags |= NF_FORCE_BIG; DeleteWindowById(WC_NEWS_WINDOW, 0); ShowNewspaper(ni); diff -r 645e32bc09e7 -r a6dc0c24f4c9 src/news_type.h --- a/src/news_type.h Fri May 30 20:08:32 2008 +0000 +++ b/src/news_type.h Fri May 30 20:57:19 2008 +0000 @@ -104,7 +104,6 @@ NewsItem *prev; ///< Previous news item NewsItem *next; ///< Next news item StringID string_id; ///< Message text - uint16 duration; ///< Remaining time for showing this news message Date date; ///< Date of the news NewsSubtype subtype; ///< News subtype @see NewsSubtype NewsFlag flags; ///< NewsFlags bits @see NewsFlag