Fix visual_scale for NDT_PLANTLIKE being set too small
authorCraig Robbins <kde.psych@gmail.com>
Thu, 18 Dec 2014 05:39:02 +0000 (15:39 +1000)
committerCraig Robbins <kde.psych@gmail.com>
Thu, 18 Dec 2014 10:28:14 +0000 (20:28 +1000)
src/content_mapblock.cpp

index 378a344a40a4d69ec1069c9a00c412cf0768b1b4..165073e52664a883ff16b2b1ff6406f64eb6ded7 100644 (file)
@@ -1162,15 +1162,16 @@ void mapblock_mesh_generate_special(MeshMakeData *data,
                        u16 l = getInteriorLight(n, 1, nodedef);
                        video::SColor c = MapBlock_LightColor(255, l, f.light_source);
                        
-                       float s = BS / 2;
-                       for(u32 j = 0; j < 2; j++)
+                       float s = BS / 2 * f.visual_scale;
+
+                       for (int j = 0; j < 2; j++)
                        {
                                video::S3DVertex vertices[4] =
                                {
-                                       video::S3DVertex(-s,-s, 0, 0,0,0, c, 0,1),
-                                       video::S3DVertex( s,-s, 0, 0,0,0, c, 1,1),
-                                       video::S3DVertex( s, s, 0, 0,0,0, c, 1,0),
-                                       video::S3DVertex(-s, s, 0, 0,0,0, c, 0,0),
+                                       video::S3DVertex(-s,-BS/2, 0, 0,0,0, c, 0,1),
+                                       video::S3DVertex( s,-BS/2, 0, 0,0,0, c, 1,1),
+                                       video::S3DVertex( s,-BS/2 + s*2,0, 0,0,0, c, 1,0),
+                                       video::S3DVertex(-s,-BS/2 + s*2,0, 0,0,0, c, 0,0),
                                };
 
                                if(j == 0)
@@ -1184,10 +1185,11 @@ void mapblock_mesh_generate_special(MeshMakeData *data,
                                                vertices[i].Pos.rotateXZBy(-44 + n.param2 * 2);
                                }
 
-                               for(u16 i = 0; i < 4; i++)
+                               for (int i = 0; i < 4; i++)
                                {
                                        vertices[i].Pos *= f.visual_scale;
-                                       vertices[i].Pos.Y -= s * (1 - f.visual_scale);
+                                       if (f.visual_scale < 1)
+                                               vertices[i].Pos.Y -= BS/2 * (1 - f.visual_scale);
                                        vertices[i].Pos += intToFloat(p, BS);
                                }