diff options
Diffstat (limited to 'src/map.cpp')
-rw-r--r-- | src/map.cpp | 18 |
1 files changed, 15 insertions, 3 deletions
diff --git a/src/map.cpp b/src/map.cpp index 2d661a522..63c6ad57c 100644 --- a/src/map.cpp +++ b/src/map.cpp @@ -35,6 +35,8 @@ with this program; if not, write to the Free Software Foundation, Inc., #include "settings.h" #include "log.h" +#define PP(x) "("<<(x).X<<","<<(x).Y<<","<<(x).Z<<")" + /* SQLite format specification: - Initially only replaces sectors/ and sectors2/ @@ -1819,9 +1821,14 @@ NodeMetadata* Map::getNodeMetadata(v3s16 p) v3s16 blockpos = getNodeBlockPos(p); v3s16 p_rel = p - blockpos*MAP_BLOCKSIZE; MapBlock *block = getBlockNoCreateNoEx(blockpos); - if(block == NULL) + if(!block){ + infostream<<"Map::getNodeMetadata(): Need to emerge " + <<PP(blockpos)<<std::endl; + block = emergeBlock(blockpos, false); + } + if(!block) { - infostream<<"WARNING: Map::setNodeMetadata(): Block not found" + infostream<<"WARNING: Map::getNodeMetadata(): Block not found" <<std::endl; return NULL; } @@ -1834,7 +1841,12 @@ void Map::setNodeMetadata(v3s16 p, NodeMetadata *meta) v3s16 blockpos = getNodeBlockPos(p); v3s16 p_rel = p - blockpos*MAP_BLOCKSIZE; MapBlock *block = getBlockNoCreateNoEx(blockpos); - if(block == NULL) + if(!block){ + infostream<<"Map::setNodeMetadata(): Need to emerge " + <<PP(blockpos)<<std::endl; + block = emergeBlock(blockpos, false); + } + if(!block) { infostream<<"WARNING: Map::setNodeMetadata(): Block not found" <<std::endl; |