summary refs log tree commit diff
path: root/src/World/World.cpp
diff options
context:
space:
mode:
authorMel <einebeere@gmail.com>2023-08-03 02:42:50 +0200
committerMel <einebeere@gmail.com>2023-08-03 02:42:50 +0200
commita627fb7038c94de9be9709ea88dcd1dddc95c5a3 (patch)
tree89500a83e9444032b903724574d8d71cd40d8e32 /src/World/World.cpp
parent1d574e5e8fe3f08d13f1b8c4444fc4cb02cf0faf (diff)
downloadmeowcraft-a627fb7038c94de9be9709ea88dcd1dddc95c5a3.tar.zst
meowcraft-a627fb7038c94de9be9709ea88dcd1dddc95c5a3.zip
Reset status of cancelled chunks
Diffstat (limited to 'src/World/World.cpp')
-rw-r--r--src/World/World.cpp10
1 files 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,