+
+ driver->setMaterial(m_materials[1]);
+
+ //video::SColor cloudyfogcolor(255,255,255,255);
+ video::SColor cloudyfogcolor = m_bgcolor;
+ //video::SColor cloudyfogcolor = m_bgcolor.getInterpolated(m_skycolor, 0.5);
+
+ // Draw far cloudy fog thing
+ for(u32 j=0; j<4; j++)
+ {
+ video::SColor c = cloudyfogcolor.getInterpolated(m_skycolor, 0.45);
+ vertices[0] = video::S3DVertex(-1, 0.08,-1, 0,0,1, c, t, t);
+ vertices[1] = video::S3DVertex( 1, 0.08,-1, 0,0,1, c, o, t);
+ vertices[2] = video::S3DVertex( 1, 0.12,-1, 0,0,1, c, o, o);
+ vertices[3] = video::S3DVertex(-1, 0.12,-1, 0,0,1, c, t, o);
+ for(u32 i=0; i<4; i++){
+ if(j==0)
+ // Don't switch
+ {}
+ else if(j==1)
+ // Switch from -Z (south) to +X (east)
+ vertices[i].Pos.rotateXZBy(90);
+ else if(j==2)
+ // Switch from -Z (south) to -X (west)
+ vertices[i].Pos.rotateXZBy(-90);
+ else
+ // Switch from -Z (south) to -Z (north)
+ vertices[i].Pos.rotateXZBy(-180);
+ }
+ driver->drawIndexedTriangleFan(&vertices[0], 4, indices, 2);
+ }
+ for(u32 j=0; j<4; j++)
+ {
+ video::SColor c = cloudyfogcolor;
+ vertices[0] = video::S3DVertex(-1,-1.0,-1, 0,0,1, c, t, t);
+ vertices[1] = video::S3DVertex( 1,-1.0,-1, 0,0,1, c, o, t);
+ vertices[2] = video::S3DVertex( 1, 0.08,-1, 0,0,1, c, o, o);
+ vertices[3] = video::S3DVertex(-1, 0.08,-1, 0,0,1, c, t, o);
+ for(u32 i=0; i<4; i++){
+ if(j==0)
+ // Don't switch
+ {}
+ else if(j==1)
+ // Switch from -Z (south) to +X (east)
+ vertices[i].Pos.rotateXZBy(90);
+ else if(j==2)
+ // Switch from -Z (south) to -X (west)
+ vertices[i].Pos.rotateXZBy(-90);
+ else
+ // Switch from -Z (south) to -Z (north)
+ vertices[i].Pos.rotateXZBy(-180);
+ }
+ driver->drawIndexedTriangleFan(&vertices[0], 4, indices, 2);
+ }