From d221917170c2bb43c66e5e09f2a43350cf28d71b Mon Sep 17 00:00:00 2001 From: RealBadAngel Date: Tue, 21 Oct 2014 05:12:15 +0200 Subject: Recalculate normals for cached meshes. Check if mesh is here before adding to meshcollector. Fix deleting the meshes. --- src/content_mapblock.cpp | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) (limited to 'src/content_mapblock.cpp') diff --git a/src/content_mapblock.cpp b/src/content_mapblock.cpp index 996db421b..527086b89 100644 --- a/src/content_mapblock.cpp +++ b/src/content_mapblock.cpp @@ -1720,11 +1720,13 @@ void mapblock_mesh_generate_special(MeshMakeData *data, v3f pos = intToFloat(p, BS); video::SColor c = MapBlock_LightColor(255, getInteriorLight(n, 1, nodedef), f.light_source); u8 facedir = n.getFaceDir(nodedef); - for(u16 j = 0; j < f.mesh_ptr[facedir]->getMeshBufferCount(); j++) { - scene::IMeshBuffer *buf = f.mesh_ptr[facedir]->getMeshBuffer(j); - collector.append(getNodeTileN(n, p, j, data), - (video::S3DVertex *)buf->getVertices(), buf->getVertexCount(), - buf->getIndices(), buf->getIndexCount(), pos, c); + if (f.mesh_ptr[facedir]) { + for(u16 j = 0; j < f.mesh_ptr[facedir]->getMeshBufferCount(); j++) { + scene::IMeshBuffer *buf = f.mesh_ptr[facedir]->getMeshBuffer(j); + collector.append(getNodeTileN(n, p, j, data), + (video::S3DVertex *)buf->getVertices(), buf->getVertexCount(), + buf->getIndices(), buf->getIndexCount(), pos, c); + } } break;} } -- cgit v1.2.3