diff --git a/src/crashlog.cpp b/src/crashlog.cpp index 531b5c64c9..bcad5e35f7 100644 --- a/src/crashlog.cpp +++ b/src/crashlog.cpp @@ -303,7 +303,7 @@ char *CrashLog::LogGamelog(char *buffer, const char *last) const } /** - * Writes any recent news messages to the buffer. + * Writes up to 32 recent news messages to the buffer, with the most recent first. * @param buffer The begin where to write at. * @param last The last position in the buffer to write to. * @return the position of the \c '\0' character after the buffer. @@ -312,7 +312,8 @@ char *CrashLog::LogRecentNews(char *buffer, const char *last) const { buffer += seprintf(buffer, last, "Recent news messages:\n"); - for (NewsItem *news = _oldest_news; news != nullptr; news = news->next) { + int i = 0; + for (NewsItem *news = _latest_news; i < 32 && news != nullptr; news = news->prev, i++) { YearMonthDay ymd; ConvertDateToYMD(news->date, &ymd); buffer += seprintf(buffer, last, "(%i-%02i-%02i) StringID: %u, Type: %u, Ref1: %u, %u, Ref2: %u, %u\n", diff --git a/src/news_gui.cpp b/src/news_gui.cpp index be83b374c6..7e99939b17 100644 --- a/src/news_gui.cpp +++ b/src/news_gui.cpp @@ -43,10 +43,10 @@ const NewsItem *_statusbar_news_item = nullptr; -static uint MIN_NEWS_AMOUNT = 30; ///< preferred minimum amount of news messages -static uint _total_news = 0; ///< current number of news items -NewsItem *_oldest_news = nullptr; ///< head of news items queue -static NewsItem *_latest_news = nullptr; ///< tail of news items queue +static uint MIN_NEWS_AMOUNT = 30; ///< preferred minimum amount of news messages +static uint _total_news = 0; ///< current number of news items +static NewsItem *_oldest_news = nullptr; ///< head of news items queue +NewsItem *_latest_news = nullptr; ///< tail of news items queue /** * Forced news item. @@ -54,7 +54,7 @@ static NewsItem *_latest_news = nullptr; ///< tail of news items queue * If the message being shown was forced by the user, a pointer is stored * in _forced_news. Otherwise, \a _forced_news variable is nullptr. */ -static const NewsItem *_forced_news = nullptr; ///< item the user has asked for +static const NewsItem *_forced_news = nullptr; /** Current news item (last item shown regularly). */ static const NewsItem *_current_news = nullptr; diff --git a/src/news_gui.h b/src/news_gui.h index 0f42c68c6c..569a8b8a74 100644 --- a/src/news_gui.h +++ b/src/news_gui.h @@ -17,6 +17,6 @@ void ShowLastNewsMessage(); void ShowMessageHistory(); -extern NewsItem *_oldest_news; +extern NewsItem *_latest_news; #endif /* NEWS_GUI_H */