]> git.lizzy.rs Git - dragonfireclient.git/blobdiff - src/light.h
Fixed FastPlace and AutoPlace
[dragonfireclient.git] / src / light.h
index 984e6d7c28d5d59b5e182b6f3f3e71f63c084497..44082a1632cea1e7091027bb9d9e6257ad596c87 100644 (file)
@@ -17,9 +17,8 @@ with this program; if not, write to the Free Software Foundation, Inc.,
 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 */
 
-#ifndef LIGHT_HEADER
-#define LIGHT_HEADER
-
+#pragma once
+#include <cassert>
 #include "irrlichttypes.h"
 
 /*
@@ -36,35 +35,6 @@ with this program; if not, write to the Free Software Foundation, Inc.,
 // This brightness is reserved for sunlight
 #define LIGHT_SUN 15
 
-inline u8 diminish_light(u8 light)
-{
-       if(light == 0)
-               return 0;
-       if(light >= LIGHT_MAX)
-               return LIGHT_MAX - 1;
-               
-       return light - 1;
-}
-
-inline u8 diminish_light(u8 light, u8 distance)
-{
-       if(distance >= light)
-               return 0;
-       return  light - distance;
-}
-
-inline u8 undiminish_light(u8 light)
-{
-       // We don't know if light should undiminish from this particular 0.
-       // Thus, keep it at 0.
-       if(light == 0)
-               return 0;
-       if(light == LIGHT_MAX)
-               return light;
-       
-       return light + 1;
-}
-
 #ifndef SERVER
 
 /**
@@ -85,29 +55,15 @@ extern const u8 *light_decode_table;
 // 0 <= return value <= 255
 inline u8 decode_light(u8 light)
 {
-       if(light > LIGHT_MAX)
-               light = LIGHT_MAX;
-       
+       // assert(light <= LIGHT_SUN);
+       if (light > LIGHT_SUN)
+               light = LIGHT_SUN;
        return light_decode_table[light];
 }
 
 // 0.0 <= light <= 1.0
 // 0.0 <= return value <= 1.0
-inline float decode_light_f(float light_f)
-{
-       s32 i = (u32)(light_f * LIGHT_MAX + 0.5);
-
-       if(i <= 0)
-               return (float)light_decode_table[0] / 255.0;
-       if(i >= LIGHT_MAX)
-               return (float)light_decode_table[LIGHT_MAX] / 255.0;
-
-       float v1 = (float)light_decode_table[i-1] / 255.0;
-       float v2 = (float)light_decode_table[i] / 255.0;
-       float f0 = (float)i - 0.5;
-       float f = light_f * LIGHT_MAX - f0;
-       return f * v2 + (1.0 - f) * v1;
-}
+float decode_light_f(float light_f);
 
 void set_light_table(float gamma);
 
@@ -119,11 +75,8 @@ void set_light_table(float gamma);
 inline u8 blend_light(u32 daylight_factor, u8 lightday, u8 lightnight)
 {
        u32 c = 1000;
-       u32 l = ((daylight_factor * lightday + (c-daylight_factor) * lightnight))/c;
-       if(l > LIGHT_SUN)
+       u32 l = ((daylight_factor * lightday + (c - daylight_factor) * lightnight)) / c;
+       if (l > LIGHT_SUN)
                l = LIGHT_SUN;
        return l;
 }
-
-#endif
-