diff --git a/src/nodedef.cpp b/src/nodedef.cpp index 5735ef914..2f95b68f9 100644 --- a/src/nodedef.cpp +++ b/src/nodedef.cpp @@ -171,6 +171,12 @@ ContentFeatures::ContentFeatures() ContentFeatures::~ContentFeatures() { +#ifndef SERVER + for (u32 i = 0; i < 24; i++) { + if (mesh_ptr[i]) + mesh_ptr[i]->drop(); + } +#endif } void ContentFeatures::reset() @@ -851,12 +857,12 @@ void CNodeDefManager::updateTextures(IGameDef *gamedef) //Cache 6dfacedir rotated clones of meshes if (f->mesh_ptr[0] && (f->param_type_2 == CPT2_FACEDIR)) { - for (u16 j = 1; j < 24; j++) { - f->mesh_ptr[j] = cloneMesh(f->mesh_ptr[0]); - rotateMeshBy6dFacedir(f->mesh_ptr[j], j); - recalculateBoundingBox(f->mesh_ptr[j]); - } + for (u16 j = 1; j < 24; j++) { + f->mesh_ptr[j] = cloneMesh(f->mesh_ptr[0]); + rotateMeshBy6dFacedir(f->mesh_ptr[j], j); + recalculateBoundingBox(f->mesh_ptr[j]); } + } } #endif }