]> git.lizzy.rs Git - dragonfireclient.git/blobdiff - src/mesh.cpp
Full viewing range key message clarified
[dragonfireclient.git] / src / mesh.cpp
index 0a5b7fb6c1c64517bffcbfef6defb1a40464446b..3ab67510a258893808fbd9c96a70a75896927506 100644 (file)
@@ -175,6 +175,14 @@ void translateMesh(scene::IMesh *mesh, v3f vec)
        mesh->setBoundingBox(bbox);
 }
 
+void setMeshBufferColor(scene::IMeshBuffer *buf, const video::SColor &color)
+{
+       const u32 stride = getVertexPitchFromType(buf->getVertexType());
+       u32 vertex_count = buf->getVertexCount();
+       u8 *vertices = (u8 *) buf->getVertices();
+       for (u32 i = 0; i < vertex_count; i++)
+               ((video::S3DVertex *) (vertices + i * stride))->Color = color;
+}
 
 void setMeshColor(scene::IMesh *mesh, const video::SColor &color)
 {
@@ -182,14 +190,8 @@ void setMeshColor(scene::IMesh *mesh, const video::SColor &color)
                return;
 
        u32 mc = mesh->getMeshBufferCount();
-       for (u32 j = 0; j < mc; j++) {
-               scene::IMeshBuffer *buf = mesh->getMeshBuffer(j);
-               const u32 stride = getVertexPitchFromType(buf->getVertexType());
-               u32 vertex_count = buf->getVertexCount();
-               u8 *vertices = (u8 *)buf->getVertices();
-               for (u32 i = 0; i < vertex_count; i++)
-                       ((video::S3DVertex *)(vertices + i * stride))->Color = color;
-       }
+       for (u32 j = 0; j < mc; j++)
+               setMeshBufferColor(mesh->getMeshBuffer(j), color);
 }
 
 void colorizeMeshBuffer(scene::IMeshBuffer *buf, const video::SColor *buffercolor)
@@ -387,37 +389,39 @@ void recalculateBoundingBox(scene::IMesh *src_mesh)
 
 scene::IMeshBuffer* cloneMeshBuffer(scene::IMeshBuffer *mesh_buffer)
 {
-       scene::IMeshBuffer *clone = NULL;
        switch (mesh_buffer->getVertexType()) {
        case video::EVT_STANDARD: {
                video::S3DVertex *v = (video::S3DVertex *) mesh_buffer->getVertices();
                u16 *indices = mesh_buffer->getIndices();
-               scene::SMeshBuffer *temp_buf = new scene::SMeshBuffer();
-               temp_buf->append(v, mesh_buffer->getVertexCount(), indices,
+               scene::SMeshBuffer *cloned_buffer = new scene::SMeshBuffer();
+               cloned_buffer->append(v, mesh_buffer->getVertexCount(), indices,
                        mesh_buffer->getIndexCount());
-               return temp_buf;
-               break;
+               return cloned_buffer;
        }
        case video::EVT_2TCOORDS: {
                video::S3DVertex2TCoords *v =
                        (video::S3DVertex2TCoords *) mesh_buffer->getVertices();
                u16 *indices = mesh_buffer->getIndices();
-               scene::SMeshBufferTangents *temp_buf = new scene::SMeshBufferTangents();
-               temp_buf->append(v, mesh_buffer->getVertexCount(), indices,
+               scene::SMeshBufferTangents *cloned_buffer =
+                       new scene::SMeshBufferTangents();
+               cloned_buffer->append(v, mesh_buffer->getVertexCount(), indices,
                        mesh_buffer->getIndexCount());
-               break;
+               return cloned_buffer;
        }
        case video::EVT_TANGENTS: {
                video::S3DVertexTangents *v =
                        (video::S3DVertexTangents *) mesh_buffer->getVertices();
                u16 *indices = mesh_buffer->getIndices();
-               scene::SMeshBufferTangents *temp_buf = new scene::SMeshBufferTangents();
-               temp_buf->append(v, mesh_buffer->getVertexCount(), indices,
+               scene::SMeshBufferTangents *cloned_buffer =
+                       new scene::SMeshBufferTangents();
+               cloned_buffer->append(v, mesh_buffer->getVertexCount(), indices,
                        mesh_buffer->getIndexCount());
-               break;
+               return cloned_buffer;
        }
        }
-       return clone;
+       // This should not happen.
+       sanity_check(false);
+       return NULL;
 }
 
 scene::SMesh* cloneMesh(scene::IMesh *src_mesh)