From a627fb7038c94de9be9709ea88dcd1dddc95c5a3 Mon Sep 17 00:00:00 2001 From: Mel Date: Thu, 3 Aug 2023 02:42:50 +0200 Subject: Reset status of cancelled chunks --- src/World/World.cpp | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/World/World.cpp b/src/World/World.cpp index 0f83310..3ff0cf4 100644 --- a/src/World/World.cpp +++ b/src/World/World.cpp @@ -119,7 +119,10 @@ void World::reassess_priorities(Position::World player_position) { // TODO: How do we know a chunk has been requested as an update? m_generation_queue.reassess([&](ChunkIndex id) -> GenerationQueue::Reassession { - if (!is_chunk_in_radius(player_position, id)) return {GenerationQueue::Reassession::Cancel}; + if (!is_chunk_in_radius(player_position, id)) { + m_registry.get(id).status = ChunkRegistry::Status::Empty; + return {GenerationQueue::Reassession::Cancel}; + } return { GenerationQueue::Reassession::Reassess, @@ -128,7 +131,10 @@ void World::reassess_priorities(Position::World player_position) { }); m_reification_queue.reassess([&](ChunkIndex id) -> ReificationQueue::Reassession { - if (!is_chunk_in_radius(player_position, id)) return {ReificationQueue::Reassession::Cancel}; + if (!is_chunk_in_radius(player_position, id)) { + m_registry.get(id).status = ChunkRegistry::Status::NeedsReification; + return {ReificationQueue::Reassession::Cancel}; + } return { ReificationQueue::Reassession::Reassess, -- cgit 1.4.1