From e9e51287548ca10c7c77232e889dd135dd054dd2 Mon Sep 17 00:00:00 2001 From: mazmazz Date: Mon, 24 Dec 2018 20:22:10 -0500 Subject: [PATCH] Use DBL_EPSILON for colormap comparison --- src/doomdef.h | 4 ++++ src/r_data.c | 4 +++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/src/doomdef.h b/src/doomdef.h index 796221c9..27b94614 100644 --- a/src/doomdef.h +++ b/src/doomdef.h @@ -410,6 +410,10 @@ INT32 I_GetKey(void); #define max(x, y) (((x) > (y)) ? (x) : (y)) #endif +// Floating point comparison epsilons from float.h +#define FLT_EPSILON 1.1920928955078125e-7f +#define DBL_EPSILON 2.2204460492503131e-16 + // An assert-type mechanism. #ifdef PARANOIA #define I_Assert(e) ((e) ? (void)0 : I_Error("assert failed: %s, file %s, line %d", #e, __FILE__, __LINE__)) diff --git a/src/r_data.c b/src/r_data.c index ae44631b..b497d4b0 100644 --- a/src/r_data.c +++ b/src/r_data.c @@ -1220,7 +1220,7 @@ INT32 R_CreateColormap(char *p1, char *p2, char *p3) continue; if (maskcolor == extra_colormaps[i].maskcolor && fadecolor == extra_colormaps[i].fadecolor - && fabs(maskamt - extra_colormaps[i].maskamt) < 1.0E-36 + && fabs(maskamt - extra_colormaps[i].maskamt) < DBL_EPSILON && fadestart == extra_colormaps[i].fadestart && fadeend == extra_colormaps[i].fadeend && fog == extra_colormaps[i].fog) @@ -1229,6 +1229,8 @@ INT32 R_CreateColormap(char *p1, char *p2, char *p3) } } + CONS_Printf("Making a new colormap\n"); + if (num_extra_colormaps == MAXCOLORMAPS) I_Error("R_CreateColormap: Too many colormaps! the limit is %d\n", MAXCOLORMAPS);