]> git.localhorst.tv Git - blank.git/blobdiff - src/world/chunk.cpp
cache chunks received by the client
[blank.git] / src / world / chunk.cpp
index 1d1a118a80030131b94e31534d2b5b7115591b80..6fb46794a474f4ae30ef202912cd1391d16e8644 100644 (file)
@@ -920,12 +920,14 @@ void ChunkIndex::Unset(int index) noexcept {
 }
 
 Chunk::Pos ChunkIndex::NextMissing() noexcept {
-       int roundtrip = last_missing;
-       while (chunks[last_missing]) {
-               ++last_missing;
-               last_missing %= total_length;
-               if (last_missing == roundtrip) {
-                       break;
+       if (MissingChunks() > 0) {
+               int roundtrip = last_missing;
+               last_missing = (last_missing + 1) % total_length;
+               while (chunks[last_missing]) {
+                       last_missing = (last_missing + 1) % total_length;
+                       if (last_missing == roundtrip) {
+                               break;
+                       }
                }
        }
        return PositionOf(last_missing);