diff options
author | Vitaliy <silverunicorn2011@yandex.ru> | 2017-12-12 21:29:55 +0300 |
---|---|---|
committer | SmallJoker <SmallJoker@users.noreply.github.com> | 2017-12-12 19:29:55 +0100 |
commit | 2d9f0d344e45282638f9c1c1b57019c5e7f3999c (patch) | |
tree | f39357d702e0317a18b240e3eb059b259fc5692b /src/light.h | |
parent | b19241b9bc43e2d9721927ab32e5e56345721652 (diff) | |
download | minetest-2d9f0d344e45282638f9c1c1b57019c5e7f3999c.tar.gz minetest-2d9f0d344e45282638f9c1c1b57019c5e7f3999c.tar.bz2 minetest-2d9f0d344e45282638f9c1c1b57019c5e7f3999c.zip |
Update light decoding table size (#6696)
Fix old undiminish_light bug
Diffstat (limited to 'src/light.h')
-rw-r--r-- | src/light.h | 15 |
1 files changed, 8 insertions, 7 deletions
diff --git a/src/light.h b/src/light.h index 14fd26d1d..f8c4b83c3 100644 --- a/src/light.h +++ b/src/light.h @@ -18,7 +18,7 @@ with this program; if not, write to the Free Software Foundation, Inc., */ #pragma once - +#include <cassert> #include "irrlichttypes.h" /* @@ -54,11 +54,12 @@ inline u8 diminish_light(u8 light, u8 distance) inline u8 undiminish_light(u8 light) { + assert(light <= LIGHT_SUN); // 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) + if (light >= LIGHT_MAX) return light; return light + 1; @@ -84,9 +85,9 @@ 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]; } @@ -98,8 +99,8 @@ inline float decode_light_f(float light_f) if (i <= 0) return (float)light_decode_table[0] / 255.0; - if (i >= LIGHT_MAX) - return (float)light_decode_table[LIGHT_MAX] / 255.0; + if (i >= LIGHT_SUN) + return (float)light_decode_table[LIGHT_SUN] / 255.0; float v1 = (float)light_decode_table[i - 1] / 255.0; float v2 = (float)light_decode_table[i] / 255.0; |