+
+ // Add some trees if appropriate
+ if(tree_amount_avg >= 0.0065 && steepness < 1.4
+ && ground_is_mud == true)
+ {
+ driver->setMaterial(m_materials[1]);
+
+ float b = m_brightness;
+ c = video::SColor(255, b*255, b*255, b*255);
+
+ {
+ video::S3DVertex vertices[4] =
+ {
+ video::S3DVertex(p0.X,noise[0],p0.Y,
+ 0,0,0, c, 0,1),
+ video::S3DVertex(p0.X,noise[0]+BS*MAP_BLOCKSIZE,p0.Y,
+ 0,0,0, c, 0,0),
+ video::S3DVertex(p1.X,noise[2]+BS*MAP_BLOCKSIZE,p1.Y,
+ 0,0,0, c, 1,0),
+ video::S3DVertex(p1.X,noise[2],p1.Y,
+ 0,0,0, c, 1,1),
+ };
+ u16 indices[] = {0,1,2,2,3,0};
+ driver->drawVertexPrimitiveList(vertices, 4, indices, 2,
+ video::EVT_STANDARD, scene::EPT_TRIANGLES,
+ video::EIT_16BIT);
+ }
+ {
+ video::S3DVertex vertices[4] =
+ {
+ video::S3DVertex(p1.X,noise[3],p0.Y,
+ 0,0,0, c, 0,1),
+ video::S3DVertex(p1.X,noise[3]+BS*MAP_BLOCKSIZE,p0.Y,
+ 0,0,0, c, 0,0),
+ video::S3DVertex(p0.X,noise[1]+BS*MAP_BLOCKSIZE,p1.Y,
+ 0,0,0, c, 1,0),
+ video::S3DVertex(p0.X,noise[1],p1.Y,
+ 0,0,0, c, 1,1),
+ };
+ u16 indices[] = {0,1,2,2,3,0};
+ driver->drawVertexPrimitiveList(vertices, 4, indices, 2,
+ video::EVT_STANDARD, scene::EPT_TRIANGLES,
+ video::EIT_16BIT);
+ }
+ }