diff --git a/src/defaultsettings.cpp b/src/defaultsettings.cpp index 2b6cb7f53..3f6901e8f 100644 --- a/src/defaultsettings.cpp +++ b/src/defaultsettings.cpp @@ -64,8 +64,9 @@ void set_default_settings(Settings *settings) settings->setDefault("wanted_fps", "30"); settings->setDefault("fps_max", "60"); - settings->setDefault("viewing_range_nodes_max", "300"); - settings->setDefault("viewing_range_nodes_min", "15"); + // A bit more than the server will send around the player, to make fog blend well + settings->setDefault("viewing_range_nodes_min", "35"); + settings->setDefault("viewing_range_nodes_max", "128"); settings->setDefault("screenW", "800"); settings->setDefault("screenH", "600"); settings->setDefault("address", ""); diff --git a/src/game.cpp b/src/game.cpp index 5f7eaa8c4..2b1d96907 100644 --- a/src/game.cpp +++ b/src/game.cpp @@ -438,7 +438,7 @@ void update_skybox(video::IVideoDriver* driver, ITextureSource *tsrc, if(g_settings->getBool("enable_farmesh")) return;*/ - if(brightness >= 0.5) + if(brightness >= 0.7) { skybox = smgr->addSkyBoxSceneNode( tsrc->getTextureRaw("skybox2.png"), @@ -1972,14 +1972,21 @@ void the_game( u32 daynight_ratio = client.getDayNightRatio(); u8 light8 = decode_light((daynight_ratio * LIGHT_SUN) / 1000); brightness = (float)light8/255.0; - video::SColor bgcolor = video::SColor( - 255, - bgcolor_bright.getRed() * brightness, - bgcolor_bright.getGreen() * brightness, - bgcolor_bright.getBlue() * brightness); - /*skycolor.getRed() * brightness, - skycolor.getGreen() * brightness, - skycolor.getBlue() * brightness);*/ + // Make night look good + brightness = brightness * 1.15 - 0.15; + video::SColor bgcolor; + if(brightness >= 0.2 && brightness < 0.7) + bgcolor = video::SColor( + 255, + bgcolor_bright.getRed() * brightness, + bgcolor_bright.getGreen() * brightness*0.7, + bgcolor_bright.getBlue() * brightness*0.5); + else + bgcolor = video::SColor( + 255, + bgcolor_bright.getRed() * brightness, + bgcolor_bright.getGreen() * brightness, + bgcolor_bright.getBlue() * brightness); /* Update skybox @@ -1994,7 +2001,7 @@ void the_game( { clouds->step(dtime); clouds->update(v2f(player_position.X, player_position.Z), - 0.05+brightness*0.95); + brightness); } /* @@ -2010,7 +2017,7 @@ void the_game( farmesh->step(dtime); farmesh->update(v2f(player_position.X, player_position.Z), - 0.05+brightness*0.95, farmesh_range); + brightness, farmesh_range); } // Store brightness value @@ -2029,7 +2036,7 @@ void the_game( } else { - range = draw_control.wanted_range*BS + MAP_BLOCKSIZE*BS*1.5; + range = draw_control.wanted_range*BS + 0.0*MAP_BLOCKSIZE*BS; range *= 0.9; if(draw_control.range_all) range = 100000*BS; diff --git a/src/utility.cpp b/src/utility.cpp index 06b60884f..7c87b9ae4 100644 --- a/src/utility.cpp +++ b/src/utility.cpp @@ -208,7 +208,7 @@ bool isBlockInSight(v3s16 blockpos_b, v3f camera_pos, v3f camera_dir, return true; // If block is far away, it's not in sight - if(d > range * BS) + if(d > range) return false; // Maximum radius of a block