Fix directional fog color in front view
authorBlockMen <nmuelll@web.de>
Fri, 25 Apr 2014 08:24:15 +0000 (10:24 +0200)
committerBlockMen <nmuelll@web.de>
Fri, 25 Apr 2014 08:35:45 +0000 (10:35 +0200)
src/sky.cpp

index 04bb3ab42e033d4444409c59ad9d9e79f1a392f2..be7798407e959e6f3fcfe104ba1b6aac4e75d217 100644 (file)
@@ -10,6 +10,7 @@
 #include "util/numeric.h" // MYMIN
 #include <cmath>
 #include "settings.h"
+#include "camera.h" // CameraModes
 
 //! constructor
 Sky::Sky(scene::ISceneNode* parent, scene::ISceneManager* mgr, s32 id, LocalPlayer* player):
@@ -577,8 +578,11 @@ void Sky::update(float time_of_day, float time_brightness,
        if (m_directional_colored_fog) {
                if (m_horizon_blend() != 0)
                {
-                       // calculate hemisphere value from yaw
-                       f32 pointcolor_blend = wrapDegrees_0_360(m_player->getYaw() + 90);
+                       // calculate hemisphere value from yaw, (inverted in third person front view)
+                       s8 dir_factor = 1;
+                       if (m_player->camera_mode > CAMERA_MODE_THIRD)
+                               dir_factor = -1;
+                       f32 pointcolor_blend = wrapDegrees_0_360(m_player->getYaw()*dir_factor + 90);
                        if (pointcolor_blend > 180)
                                pointcolor_blend = 360 - pointcolor_blend;
                        pointcolor_blend /= 180;