From 013ae71c871c81437a1bad197e0bf7481d02b4a6 Mon Sep 17 00:00:00 2001 From: "madmaxoft@gmail.com" Date: Tue, 28 Feb 2012 12:11:14 +0000 Subject: Chunk now has an indicator of load failure; Chunk generator uses cChunkStay git-svn-id: http://mc-server.googlecode.com/svn/trunk@337 0a769ca7-a7f5-676a-18bf-c427514a06d6 --- source/cChunkMap.cpp | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) (limited to 'source/cChunkMap.cpp') diff --git a/source/cChunkMap.cpp b/source/cChunkMap.cpp index 2f4d39ca2..0485df1eb 100644 --- a/source/cChunkMap.cpp +++ b/source/cChunkMap.cpp @@ -782,6 +782,11 @@ bool cChunkMap::LoadChunk(int a_ChunkX, int a_ChunkY, int a_ChunkZ) // Already loaded return true; } + if (Chunk->HasLoadFailed()) + { + // Already tried loading and it failed + return false; + } } return m_World->GetStorage().LoadChunk(a_ChunkX, a_ChunkY, a_ChunkZ); } @@ -803,6 +808,21 @@ void cChunkMap::LoadChunks(const cChunkCoordsList & a_Chunks) +void cChunkMap::ChunkLoadFailed(int a_ChunkX, int a_ChunkY, int a_ChunkZ) +{ + cCSLock Lock(m_CSLayers); + cChunkPtr Chunk = GetChunkNoLoad(a_ChunkX, a_ChunkY, a_ChunkZ); + if (Chunk == NULL) + { + return; + } + Chunk->MarkLoadFailed(); +} + + + + + void cChunkMap::UpdateSign(int a_X, int a_Y, int a_Z, const AString & a_Line1, const AString & a_Line2, const AString & a_Line3, const AString & a_Line4) { cCSLock Lock(m_CSLayers); -- cgit v1.2.3