diff --git a/src/openrct2/management/NewsItem.cpp b/src/openrct2/management/NewsItem.cpp index 855348b7d2..eb46193e3e 100644 --- a/src/openrct2/management/NewsItem.cpp +++ b/src/openrct2/management/NewsItem.cpp @@ -104,9 +104,8 @@ void News::ItemQueues::Clear() Archived.clear(); } -void News::InitQueue() +void News::InitQueue(GameState_t& gameState) { - auto& gameState = GetGameState(); gameState.NewsItems.Clear(); assert(gameState.NewsItems.IsEmpty()); @@ -494,13 +493,8 @@ void News::importNewsItems( { gameState.NewsItems[i] = recent[i]; } - size_t offset = News::ItemHistoryStart; for (size_t i = 0; i < std::min(archived.size(), News::MaxItemsArchive); i++) { - gameState.NewsItems[offset + i] = archived[i]; + gameState.NewsItems[News::ItemHistoryStart + i] = archived[i]; } - - // Still need to set the correct type to properly terminate the queue - if (archived.size() < News::MaxItemsArchive) - gameState.NewsItems[offset + archived.size()].Type = News::ItemType::Null; } diff --git a/src/openrct2/management/NewsItem.h b/src/openrct2/management/NewsItem.h index 00efbade45..d907cbdf64 100644 --- a/src/openrct2/management/NewsItem.h +++ b/src/openrct2/management/NewsItem.h @@ -241,7 +241,10 @@ namespace OpenRCT2::News void clear() noexcept { - front().Type = News::ItemType::Null; + for (size_t i = 0; i < N; i++) + { + Queue[i].Type = News::ItemType::Null; + } } private: