Fix coloured fog in main menu (#8181)
authorrandom-geek <35757396+random-geek@users.noreply.github.com>
Fri, 15 Feb 2019 19:44:21 +0000 (11:44 -0800)
committersfan5 <sfan5@live.de>
Fri, 15 Feb 2019 19:44:21 +0000 (20:44 +0100)
Fixes #4727. The issue was due to the video driver fog colour never getting reset after closing the game.

src/gui/guiEngine.cpp

index 241c85aa89e68eeda52c360deddd363916aba5da..6030a5bfb5d3be0953691089b2693e6d273b26dd 100644 (file)
@@ -242,6 +242,24 @@ void GUIEngine::run()
        irr::core::dimension2d<u32> previous_screen_size(g_settings->getU16("screen_w"),
                g_settings->getU16("screen_h"));
 
+       static const video::SColor sky_color(255, 140, 186, 250);
+
+       // Reset fog color
+       {
+               video::SColor fog_color;
+               video::E_FOG_TYPE fog_type = video::EFT_FOG_LINEAR;
+               f32 fog_start = 0;
+               f32 fog_end = 0;
+               f32 fog_density = 0;
+               bool fog_pixelfog = false;
+               bool fog_rangefog = false;
+               driver->getFog(fog_color, fog_type, fog_start, fog_end, fog_density,
+                               fog_pixelfog, fog_rangefog);
+
+               driver->setFog(sky_color, fog_type, fog_start, fog_end, fog_density,
+                               fog_pixelfog, fog_rangefog);
+       }
+
        while (RenderingEngine::run() && (!m_startgame) && (!m_kill)) {
 
                const irr::core::dimension2d<u32> &current_screen_size =
@@ -263,7 +281,7 @@ void GUIEngine::run()
                        text_height = g_fontengine->getTextHeight();
                }
 
-               driver->beginScene(true, true, video::SColor(255,140,186,250));
+               driver->beginScene(true, true, sky_color);
 
                if (m_clouds_enabled)
                {