1
0
mirror of https://github.com/OpenRCT2/OpenRCT2 synced 2026-01-06 06:32:56 +01:00

Properly clear whole news queue

This commit is contained in:
Gymnasiast
2025-03-18 23:23:29 +01:00
parent d93de5c5b1
commit ccd86f1730
2 changed files with 6 additions and 9 deletions

View File

@@ -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<size_t>(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;
}

View File

@@ -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: