From 2d9f0d344e45282638f9c1c1b57019c5e7f3999c Mon Sep 17 00:00:00 2001 From: Vitaliy Date: Tue, 12 Dec 2017 21:29:55 +0300 Subject: Update light decoding table size (#6696) Fix old undiminish_light bug --- src/light.h | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) (limited to 'src/light.h') 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 #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; -- cgit v1.2.3