Fixed farmesh to such that it was a long time ago.
authorPerttu Ahola <celeron55@gmail.com>
Wed, 3 Aug 2011 10:03:30 +0000 (13:03 +0300)
committerPerttu Ahola <celeron55@gmail.com>
Wed, 3 Aug 2011 10:03:30 +0000 (13:03 +0300)
src/defaultsettings.cpp
src/farmesh.cpp
src/farmesh.h
src/game.cpp

index 91524a6de55be29611a8f73ab0bf975d04962319..2659978579fe534553b5125bb53d928e6dafb37c 100644 (file)
@@ -70,8 +70,6 @@ void set_default_settings()
        g_settings.setDefault("fast_move", "false");
        g_settings.setDefault("invert_mouse", "false");
        g_settings.setDefault("enable_farmesh", "false");
-       g_settings.setDefault("farmesh_trees", "true");
-       g_settings.setDefault("farmesh_distance", "40");
        g_settings.setDefault("enable_clouds", "true");
        g_settings.setDefault("invisible_stone", "false");
        g_settings.setDefault("screenshot_path", ".");
index 2cd92243425c7d3c8a11212ac4288d882d291127..8f91e3a1ab4ddc427cf05a3032acb04e16549d1c 100644 (file)
@@ -70,7 +70,6 @@ FarMesh::FarMesh(
        m_box = core::aabbox3d<f32>(-BS*1000000,-BS*31000,-BS*1000000,
                        BS*1000000,BS*31000,BS*1000000);
 
-    trees = g_settings.getBool("farmesh_trees");
 }
 
 FarMesh::~FarMesh()
@@ -314,11 +313,12 @@ void FarMesh::render()
                                }
                                else
                                {
-                                       // Trees if there are over 0.01 trees per MapNode
-                                       if(trees && tree_amount_avg > 0.01)
+                                       /*// Trees if there are over 0.01 trees per MapNode
+                                       if(tree_amount_avg > 0.01)
                                                c = video::SColor(255,50,128,50);
                                        else
-                                               c = video::SColor(255,107,134,51);
+                                               c = video::SColor(255,107,134,51);*/
+                                       c = video::SColor(255,107,134,51);
                                        ground_is_mud = true;
                                }
                        }
@@ -351,7 +351,7 @@ void FarMesh::render()
                                video::EVT_STANDARD, scene::EPT_TRIANGLES, video::EIT_16BIT);
 
                // Add some trees if appropriate
-               if(trees && tree_amount_avg >= 0.0065 && steepness < 1.4
+               if(tree_amount_avg >= 0.0065 && steepness < 1.4
                                && ground_is_mud == true)
                {
                        driver->setMaterial(m_materials[1]);
@@ -404,11 +404,11 @@ void FarMesh::step(float dtime)
        m_time += dtime;
 }
 
-void FarMesh::update(v2f camera_p, float brightness)
+void FarMesh::update(v2f camera_p, float brightness, s16 render_range)
 {
        m_camera_pos = camera_p;
        m_brightness = brightness;
-       m_render_range = g_settings.getS16("farmesh_distance")*10;
+       m_render_range = render_range;
 }
 
 
index 577224e152bad3ba24a5b7043cca9d4d1e38e96a..0a30a8aefe348a000186f6f2213333c65ab13eb3 100644 (file)
@@ -67,7 +67,7 @@ public:
 
        void step(float dtime);
 
-       void update(v2f camera_p, float brightness);
+       void update(v2f camera_p, float brightness, s16 render_range);
 
 private:
        video::SMaterial m_materials[FARMESH_MATERIAL_COUNT];
@@ -79,7 +79,6 @@ private:
        float m_time;
        Client *m_client;
        s16 m_render_range;
-    bool trees;
 };
 
 #endif
index 6c0474ee70688d51608294b9028c44f8dcc9d98d..a42bf2b2cab249a9af612eff740ba50642948103 100644 (file)
@@ -1955,9 +1955,15 @@ void the_game(
                */
                if(farmesh)
                {
+                       farmesh_range = draw_control.wanted_range * 10;
+                       if(draw_control.range_all && farmesh_range < 500)
+                               farmesh_range = 500;
+                       if(farmesh_range > 1000)
+                               farmesh_range = 1000;
+
                        farmesh->step(dtime);
                        farmesh->update(v2f(player_position.X, player_position.Z),
-                                       0.05+brightness*0.95);
+                                       0.05+brightness*0.95, farmesh_range);
                }
                
                // Store brightness value