From 46d856a72378d7ee6c70cc2205ea0a9cb44c9d90 Mon Sep 17 00:00:00 2001 From: hdpoliveira <35645457+hdpoliveira@users.noreply.github.com> Date: Sun, 10 May 2020 18:19:56 -0300 Subject: [PATCH] Extract function news_item_first_open_queue_slot (#11594) --- src/openrct2/management/NewsItem.cpp | 39 ++++++++++++---------------- 1 file changed, 16 insertions(+), 23 deletions(-) diff --git a/src/openrct2/management/NewsItem.cpp b/src/openrct2/management/NewsItem.cpp index 917c6baf1c..7d4b5ed1ba 100644 --- a/src/openrct2/management/NewsItem.cpp +++ b/src/openrct2/management/NewsItem.cpp @@ -295,6 +295,20 @@ std::optional news_item_get_subject_location(int32_t type, int32_t su return subjectLoc; } +static NewsItem* news_item_first_open_queue_slot() +{ + NewsItem* newsItem = gNewsItems; + + while (newsItem->Type != NEWS_ITEM_NULL) + { + if (newsItem + 1 >= &gNewsItems[10]) + news_item_close_current(); + else + newsItem++; + } + return newsItem; +} + /** * * rct2: 0x0066DF55 @@ -311,18 +325,7 @@ NewsItem* news_item_add_to_queue(uint8_t type, rct_string_id string_id, uint32_t NewsItem* news_item_add_to_queue_raw(uint8_t type, const utf8* text, uint32_t assoc) { - NewsItem* newsItem = gNewsItems; - - // Find first open slot - while (newsItem->Type != NEWS_ITEM_NULL) - { - if (newsItem + 1 >= &gNewsItems[10]) - news_item_close_current(); - else - newsItem++; - } - - // Now we have found an item slot to place the new news in + NewsItem* newsItem = news_item_first_open_queue_slot(); newsItem->Type = type; newsItem->Flags = 0; newsItem->Assoc = assoc; @@ -476,17 +479,7 @@ void news_item_disable_news(uint8_t type, uint32_t assoc) void news_item_add_to_queue_custom(NewsItem* newNewsItem) { - NewsItem* newsItem = gNewsItems; - - // Find first open slot - while (newsItem->Type != NEWS_ITEM_NULL) - { - if (newsItem + 1 >= &gNewsItems[10]) - news_item_close_current(); - else - newsItem++; - } - + NewsItem* newsItem = news_item_first_open_queue_slot(); *newsItem = *newNewsItem; newsItem++; newsItem->Type = NEWS_ITEM_NULL;