From 58728ec358b021d3ec4dc901ca1307e00cf14241 Mon Sep 17 00:00:00 2001 From: mazmazz Date: Mon, 24 Dec 2018 19:58:05 -0500 Subject: [PATCH 1/5] Fix float comparison for colormap maskamt --- src/r_data.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/r_data.c b/src/r_data.c index e0b9a814..ae44631b 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 - && fabsf((float)(maskamt - extra_colormaps[i].maskamt)) < 1.0E-36f + && fabs(maskamt - extra_colormaps[i].maskamt) < 1.0E-36 && fadestart == extra_colormaps[i].fadestart && fadeend == extra_colormaps[i].fadeend && fog == extra_colormaps[i].fog) From e9e51287548ca10c7c77232e889dd135dd054dd2 Mon Sep 17 00:00:00 2001 From: mazmazz Date: Mon, 24 Dec 2018 20:22:10 -0500 Subject: [PATCH 2/5] 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); From c65f44e805824c4b115585ff6aeead97d0832f7a Mon Sep 17 00:00:00 2001 From: mazmazz Date: Mon, 24 Dec 2018 20:33:59 -0500 Subject: [PATCH 3/5] Remove log message --- src/r_data.c | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/r_data.c b/src/r_data.c index b497d4b0..a21ba49a 100644 --- a/src/r_data.c +++ b/src/r_data.c @@ -1229,8 +1229,6 @@ 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); From 10a3e3fec9d0e37ebe16ba381b48a73a924b8d5d Mon Sep 17 00:00:00 2001 From: mazmazz Date: Mon, 24 Dec 2018 20:36:28 -0500 Subject: [PATCH 4/5] Define EPSILONs only if not already defined Fixes OSX buildbot --- src/doomdef.h | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/doomdef.h b/src/doomdef.h index 27b94614..d63c5038 100644 --- a/src/doomdef.h +++ b/src/doomdef.h @@ -411,8 +411,13 @@ INT32 I_GetKey(void); #endif // Floating point comparison epsilons from float.h +#ifndef FLT_EPSILON #define FLT_EPSILON 1.1920928955078125e-7f +#endif + +#ifndef DBL_EPSILON #define DBL_EPSILON 2.2204460492503131e-16 +#endif // An assert-type mechanism. #ifdef PARANOIA From b7edc7f8704c3729eabf057fd8febf383abb6059 Mon Sep 17 00:00:00 2001 From: mazmazz Date: Mon, 24 Dec 2018 20:58:26 -0500 Subject: [PATCH 5/5] Revert "Merge branch 'side-discolor-fix' into 'master'" This reverts commit e721a3d8823f420d414725ece7362e34c9d677dd, reversing changes made to 4656a0d02c070a1741b6c6d6c7010cc998af2225. --- src/r_segs.c | 3 --- 1 file changed, 3 deletions(-) diff --git a/src/r_segs.c b/src/r_segs.c index 6fdf5642..1637ce90 100644 --- a/src/r_segs.c +++ b/src/r_segs.c @@ -1126,9 +1126,6 @@ void R_RenderThickSideRange(drawseg_t *ds, INT32 x1, INT32 x2, ffloor_t *pfloor) // Get data for the column col = (column_t *)((UINT8 *)R_GetColumn(texnum,maskedtexturecol[dc_x]) - 3); - // guess what I just fixed? -monster psychic cat - dc_colormap = colormaps; - // SoM: New code does not rely on R_DrawColumnShadowed_8 which // will (hopefully) put less strain on the stack. if (dc_numlights)