From 87ec916c2e75f090ba99dea83851a965cdb9000a Mon Sep 17 00:00:00 2001 From: kaetemi Date: Sat, 19 Mar 2016 22:13:38 +0100 Subject: [PATCH] Fix random thunder activation caused by rounding error in setup interpolation --- code/nel/src/misc/bitmap.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/code/nel/src/misc/bitmap.cpp b/code/nel/src/misc/bitmap.cpp index 11a27e67e..5574a8597 100644 --- a/code/nel/src/misc/bitmap.cpp +++ b/code/nel/src/misc/bitmap.cpp @@ -3106,11 +3106,17 @@ bool CBitmap::blit(const CBitmap *src, sint32 x, sint32 y) // Private : float CBitmap::getColorInterp (float x, float y, float colorInXY00, float colorInXY10, float colorInXY01, float colorInXY11) const { + if (colorInXY00 == colorInXY10 + && colorInXY00 == colorInXY01 + && colorInXY00 == colorInXY11) + return colorInXY00; // Fix rounding error for alpha 255... + float res = colorInXY00*(1.0f-x)*(1.0f-y) + colorInXY10*( x)*(1.0f-y) + colorInXY01*(1.0f-x)*( y) + colorInXY11*( x)*( y); - clamp (res, 0.0f, 255.0f); + clamp(res, 0.0f, 255.0f); + return res; }