1
0
Fork 0
mirror of https://github.com/luanti-org/luanti.git synced 2025-06-27 16:36:03 +00:00

Update light decoding table size (#6696)

Fix old undiminish_light bug
This commit is contained in:
Vitaliy 2017-12-12 21:29:55 +03:00 committed by SmallJoker
parent b19241b9bc
commit 2d9f0d344e
2 changed files with 12 additions and 13 deletions

View file

@ -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;