mirror of
https://github.com/JGRennison/OpenTTD-patches.git
synced 2024-11-09 19:10:38 +00:00
Fix #8129: Crash if a news message expires while viewing the endgame screen
This commit is contained in:
parent
dc8d0089e9
commit
4c45448fa9
@ -671,6 +671,11 @@ static bool ReadyForNextNewsItem()
|
|||||||
/** Move to the next ticker item */
|
/** Move to the next ticker item */
|
||||||
static void MoveToNextTickerItem()
|
static void MoveToNextTickerItem()
|
||||||
{
|
{
|
||||||
|
/* There is no status bar, so no reason to show news;
|
||||||
|
* especially important with the end game screen when
|
||||||
|
* there is no status bar but possible news. */
|
||||||
|
if (FindWindowById(WC_STATUS_BAR, 0) == nullptr) return;
|
||||||
|
|
||||||
InvalidateWindowData(WC_STATUS_BAR, 0, SBI_NEWS_DELETED); // invalidate the statusbar
|
InvalidateWindowData(WC_STATUS_BAR, 0, SBI_NEWS_DELETED); // invalidate the statusbar
|
||||||
|
|
||||||
/* if we're not at the last item, then move on */
|
/* if we're not at the last item, then move on */
|
||||||
@ -702,6 +707,11 @@ static void MoveToNextTickerItem()
|
|||||||
/** Move to the next news item */
|
/** Move to the next news item */
|
||||||
static void MoveToNextNewsItem()
|
static void MoveToNextNewsItem()
|
||||||
{
|
{
|
||||||
|
/* There is no status bar, so no reason to show news;
|
||||||
|
* especially important with the end game screen when
|
||||||
|
* there is no status bar but possible news. */
|
||||||
|
if (FindWindowById(WC_STATUS_BAR, 0) == nullptr) return;
|
||||||
|
|
||||||
DeleteWindowById(WC_NEWS_WINDOW, 0); // close the newspapers window if shown
|
DeleteWindowById(WC_NEWS_WINDOW, 0); // close the newspapers window if shown
|
||||||
_forced_news = nullptr;
|
_forced_news = nullptr;
|
||||||
|
|
||||||
@ -995,11 +1005,6 @@ void NewsLoop()
|
|||||||
/* no news item yet */
|
/* no news item yet */
|
||||||
if (_total_news == 0) return;
|
if (_total_news == 0) return;
|
||||||
|
|
||||||
/* There is no status bar, so no reason to show news;
|
|
||||||
* especially important with the end game screen when
|
|
||||||
* there is no status bar but possible news. */
|
|
||||||
if (FindWindowById(WC_STATUS_BAR, 0) == nullptr) return;
|
|
||||||
|
|
||||||
static byte _last_clean_month = 0;
|
static byte _last_clean_month = 0;
|
||||||
|
|
||||||
if (_last_clean_month != _cur_month) {
|
if (_last_clean_month != _cur_month) {
|
||||||
|
Loading…
Reference in New Issue
Block a user