Fix unnecessary block loading (#4847)

This commit makes the game load blocks only if they are not in the
memory.
This commit is contained in:
Dániel Juhász 2016-12-18 10:20:23 +01:00 committed by Zeno-
parent 78bf7c46e5
commit 6d4e7f223a
1 changed files with 9 additions and 7 deletions

View File

@ -508,13 +508,15 @@ EmergeAction EmergeThread::getBlockOrStartGen(
// 1). Attempt to fetch block from memory // 1). Attempt to fetch block from memory
*block = m_map->getBlockNoCreateNoEx(pos); *block = m_map->getBlockNoCreateNoEx(pos);
if (*block && !(*block)->isDummy() && (*block)->isGenerated()) if (*block && !(*block)->isDummy()) {
return EMERGE_FROM_MEMORY; if ((*block)->isGenerated())
return EMERGE_FROM_MEMORY;
// 2). Attempt to load block from disk } else {
*block = m_map->loadBlock(pos); // 2). Attempt to load block from disk if it was not in the memory
if (*block && (*block)->isGenerated()) *block = m_map->loadBlock(pos);
return EMERGE_FROM_DISK; if (*block && (*block)->isGenerated())
return EMERGE_FROM_DISK;
}
// 3). Attempt to start generation // 3). Attempt to start generation
if (allow_gen && m_map->initBlockMake(pos, bmdata)) if (allow_gen && m_map->initBlockMake(pos, bmdata))