From 02b953e993d42408db12a9d049cc95f900b29c64 Mon Sep 17 00:00:00 2001 From: Ozkan Sezer Date: Sun, 12 Jun 2022 14:32:28 +0300 Subject: [PATCH] use C11 _Generic macros for q_min, q_max and CLAMP, if available. .. if not, then use GCC expression macros for them, if available. --- Quake/Makefile | 2 ++ Quake/Makefile.darwin | 4 +-- Quake/Makefile.w32 | 4 +-- Quake/Makefile.w64 | 4 +-- Quake/common.h | 65 +++++++++++++++++++++++++++++++++++++++++++ Quake/gl_draw.c | 16 +++++------ Quake/gl_model.c | 2 +- Quake/gl_rmain.c | 4 +-- Quake/gl_screen.c | 8 +++--- Quake/gl_sky.c | 4 +-- Quake/gl_texmgr.c | 3 +- Quake/host.c | 2 +- Quake/host_cmd.c | 4 ++- Quake/pl_linux.c | 4 +-- Quake/pl_osx.m | 4 +-- Quake/pl_win.c | 4 +-- Quake/pr_edict.c | 2 +- Quake/protocol.h | 2 +- Quake/r_alias.c | 8 +++--- Quake/sbar.c | 4 +-- 20 files changed, 110 insertions(+), 40 deletions(-) diff --git a/Quake/Makefile b/Quake/Makefile index ff2bb9c4..ff687eb1 100644 --- a/Quake/Makefile +++ b/Quake/Makefile @@ -53,6 +53,7 @@ CPUFLAGS= LDFLAGS = DFLAGS ?= CFLAGS ?= -Wall -Wno-trigraphs +CFLAGS += $(call check_gcc,-std=gnu11,) CFLAGS += $(CPUFLAGS) ifneq ($(DEBUG),0) DFLAGS += -DDEBUG @@ -61,6 +62,7 @@ do_strip= else DFLAGS += -DNDEBUG CFLAGS += -O2 +# -fno-asynchronous-unwind-tables CFLAGS += $(call check_gcc,-fweb,) CFLAGS += $(call check_gcc,-frename-registers,) cmd_strip=$(STRIP) $(1) diff --git a/Quake/Makefile.darwin b/Quake/Makefile.darwin index e9d70890..804b7160 100644 --- a/Quake/Makefile.darwin +++ b/Quake/Makefile.darwin @@ -84,11 +84,11 @@ CFLAGS +=-mmacosx-version-min=11.0 LDFLAGS +=-mmacosx-version-min=11.0 USE_RPATH=1 endif +CFLAGS += $(call check_gcc,-std=gnu11,) CFLAGS += $(CPUFLAGS) ifeq ($(USE_RPATH),1) LDFLAGS+=-Wl,-rpath,@executable_path/../Frameworks endif - ifneq ($(DEBUG),0) DFLAGS += -DDEBUG CFLAGS += -g @@ -96,6 +96,7 @@ do_strip= else DFLAGS += -DNDEBUG CFLAGS += -O2 +# -fno-asynchronous-unwind-tables CFLAGS += $(call check_gcc,-fweb,) CFLAGS += $(call check_gcc,-frename-registers,) cmd_strip=$(STRIP) $(1) @@ -339,4 +340,3 @@ debug: clean: rm -f $(shell find . \( -name '*~' -o -name '#*#' -o -name '*.o' -o -name '*.res' -o -name $(DEFAULT_TARGET) \) -print) - diff --git a/Quake/Makefile.w32 b/Quake/Makefile.w32 index 3dc1ab4a..8e6c746b 100644 --- a/Quake/Makefile.w32 +++ b/Quake/Makefile.w32 @@ -50,8 +50,8 @@ CPUFLAGS= LDFLAGS = -m32 -mwindows -static-libgcc DFLAGS ?= CFLAGS ?= -m32 -Wall -Wno-trigraphs +CFLAGS += $(call check_gcc,-std=gnu11,) CFLAGS += $(CPUFLAGS) - ifneq ($(DEBUG),0) DFLAGS += -DDEBUG CFLAGS += -g @@ -59,6 +59,7 @@ do_strip= else DFLAGS += -DNDEBUG CFLAGS += -O2 +# -fno-asynchronous-unwind-tables CFLAGS += $(call check_gcc,-fweb,) CFLAGS += $(call check_gcc,-frename-registers,) cmd_strip=$(STRIP) $(1) @@ -296,4 +297,3 @@ debug: clean: rm -f $(shell find . \( -name '*~' -o -name '#*#' -o -name '*.o' -o -name '*.res' -o -name $(DEFAULT_TARGET) \) -print) - diff --git a/Quake/Makefile.w64 b/Quake/Makefile.w64 index 5b7c52c6..ecf8282d 100644 --- a/Quake/Makefile.w64 +++ b/Quake/Makefile.w64 @@ -48,8 +48,8 @@ CPUFLAGS= LDFLAGS = -m64 -mwindows -static-libgcc DFLAGS ?= CFLAGS ?= -m64 -Wall -Wno-trigraphs +CFLAGS += $(call check_gcc,-std=gnu11,) CFLAGS += $(CPUFLAGS) - ifneq ($(DEBUG),0) DFLAGS += -DDEBUG CFLAGS += -g @@ -57,6 +57,7 @@ do_strip= else DFLAGS += -DNDEBUG CFLAGS += -O2 +# -fno-asynchronous-unwind-tables CFLAGS += $(call check_gcc,-fweb,) CFLAGS += $(call check_gcc,-frename-registers,) cmd_strip=$(STRIP) $(1) @@ -289,4 +290,3 @@ debug: clean: rm -f $(shell find . \( -name '*~' -o -name '#*#' -o -name '*.o' -o -name '*.res' -o -name $(DEFAULT_TARGET) \) -print) - diff --git a/Quake/common.h b/Quake/common.h index 11c9436d..6c0dd922 100644 --- a/Quake/common.h +++ b/Quake/common.h @@ -41,11 +41,76 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. #undef min #undef max + +#if (defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 201112L)) || \ + (defined(__cplusplus) && (__cplusplus >= 201103L)) +#define GENERIC_TYPES(x, separator) \ + x(int, i) separator \ + x(unsigned int, u) separator \ + x(long, l) separator \ + x(unsigned long, ul) separator \ + x(long long, ll) separator \ + x(unsigned long long, ull) separator \ + x(float, f) separator \ + x(double, d) + +#define COMMA , +#define NO_COMMA + +#define IMPL_GENERIC_FUNCS(type, suffix) \ +static inline type q_min_##suffix (type a, type b) { \ + return (a < b) ? a : b; \ +} \ +static inline type q_max_##suffix (type a, type b) { \ + return (a > b) ? a : b; \ +} \ +static inline type clamp_##suffix (type minval, type val, type maxval) { \ + return (val < minval) ? minval : ((val > maxval) ? maxval : val); \ +} + +GENERIC_TYPES (IMPL_GENERIC_FUNCS, NO_COMMA) + +#define SELECT_Q_MIN(type, suffix) type: q_min_##suffix +#define q_min(a, b) _Generic((a) + (b), GENERIC_TYPES (SELECT_Q_MIN, COMMA))(a, b) + +#define SELECT_Q_MAX(type, suffix) type: q_max_##suffix +#define q_max(a, b) _Generic((a) + (b), GENERIC_TYPES (SELECT_Q_MAX, COMMA))(a, b) + +#define SELECT_CLAMP(type, suffix) type: clamp_##suffix +#define CLAMP(minval, val, maxval) _Generic((minval) + (val) + (maxval), \ + GENERIC_TYPES (SELECT_CLAMP, COMMA))(minval, val, maxval) + +#elif defined(__GNUC__) +/* min and max macros with type checking -- based on tyrquake. */ +#define q_max(a,b) ({ \ + const __typeof(a) a_ = (a); \ + const __typeof(b) b_ = (b); \ + (void)(&a_ == &b_); \ + (a_ > b_) ? a_ : b_; \ +}) +#define q_min(a,b) ({ \ + const __typeof(a) a_ = (a); \ + const __typeof(b) b_ = (b); \ + (void)(&a_ == &b_); \ + (a_ < b_) ? a_ : b_; \ +}) +#define CLAMP(_minval, x, _maxval) ({ \ + const __typeof(x) x_ = (x); \ + const __typeof(_minval) valmin_ = (_minval);\ + const __typeof(_maxval) valmax_ = (_maxval);\ + (void)(&x_ == &valmin_); \ + (void)(&x_ == &valmax_); \ + (x_ < valmin_) ? valmin_ : \ + (x_ > valmax_) ? valmax_ : x_; \ +}) + +#else #define q_min(a, b) (((a) < (b)) ? (a) : (b)) #define q_max(a, b) (((a) > (b)) ? (a) : (b)) #define CLAMP(_minval, x, _maxval) \ ((x) < (_minval) ? (_minval) : \ (x) > (_maxval) ? (_maxval) : (x)) +#endif typedef struct sizebuf_s { diff --git a/Quake/gl_draw.c b/Quake/gl_draw.c index 0f679044..d60db57e 100644 --- a/Quake/gl_draw.c +++ b/Quake/gl_draw.c @@ -559,13 +559,13 @@ void Draw_ConsoleBackground (void) pic->width = vid.conwidth; pic->height = vid.conheight; - alpha = (con_forcedup) ? 1.0 : scr_conalpha.value; + alpha = (con_forcedup) ? 1.0f : scr_conalpha.value; GL_SetCanvas (CANVAS_CONSOLE); //in case this is called from weird places - if (alpha > 0.0) + if (alpha > 0.0f) { - if (alpha < 1.0) + if (alpha < 1.0f) { glEnable (GL_BLEND); glColor4f (1,1,1,alpha); @@ -575,7 +575,7 @@ void Draw_ConsoleBackground (void) Draw_Pic (0, 0, pic); - if (alpha < 1.0) + if (alpha < 1.0f) { glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE); glEnable (GL_ALPHA_TEST); @@ -703,14 +703,14 @@ void GL_SetCanvas (canvastype newcanvas) glViewport (glx, gly, glwidth, glheight); break; case CANVAS_MENU: - s = q_min((float)glwidth / 320.0, (float)glheight / 200.0); - s = CLAMP (1.0, scr_menuscale.value, s); + s = q_min((float)glwidth / 320.0f, (float)glheight / 200.0f); + s = CLAMP (1.0f, scr_menuscale.value, s); // ericw -- doubled width to 640 to accommodate long keybindings glOrtho (0, 640, 200, 0, -99999, 99999); glViewport (glx + (glwidth - 320*s) / 2, gly + (glheight - 200*s) / 2, 640*s, 200*s); break; case CANVAS_SBAR: - s = CLAMP (1.0, scr_sbarscale.value, (float)glwidth / 320.0); + s = CLAMP (1.0f, scr_sbarscale.value, (float)glwidth / 320.0f); if (cl.gametype == GAME_DEATHMATCH) { glOrtho (0, glwidth / s, 48, 0, -99999, 99999); @@ -727,7 +727,7 @@ void GL_SetCanvas (canvastype newcanvas) glViewport (glx, gly+glheight-gl_warpimagesize, gl_warpimagesize, gl_warpimagesize); break; case CANVAS_CROSSHAIR: //0,0 is center of viewport - s = CLAMP (1.0, scr_crosshairscale.value, 10.0); + s = CLAMP (1.0f, scr_crosshairscale.value, 10.0f); glOrtho (scr_vrect.width/-2/s, scr_vrect.width/2/s, scr_vrect.height/2/s, scr_vrect.height/-2/s, -99999, 99999); glViewport (scr_vrect.x, glheight - scr_vrect.y - scr_vrect.height, scr_vrect.width & ~1, scr_vrect.height & ~1); break; diff --git a/Quake/gl_model.c b/Quake/gl_model.c index fe8ac6a6..02c388e2 100644 --- a/Quake/gl_model.c +++ b/Quake/gl_model.c @@ -508,7 +508,7 @@ void Mod_LoadTextures (lump_t *l) if (((byte*)(mt+1) + pixels) > (mod_base + l->fileofs + l->filelen)) { Con_DPrintf("Texture %s extends past end of lump\n", mt->name); - pixels = q_max(0, (mod_base + l->fileofs + l->filelen) - (byte*)(mt+1)); + pixels = q_max(0L, (long)((mod_base + l->fileofs + l->filelen) - (byte*)(mt+1))); } tx->update_warp = false; //johnfitz diff --git a/Quake/gl_rmain.c b/Quake/gl_rmain.c index 79234518..e9cee614 100644 --- a/Quake/gl_rmain.c +++ b/Quake/gl_rmain.c @@ -233,7 +233,7 @@ void GLSLGamma_GammaCorrect (void) // draw the texture back to the framebuffer with a fragment shader GL_UseProgramFunc (r_gamma_program); GL_Uniform1fFunc (gammaLoc, vid_gamma.value); - GL_Uniform1fFunc (contrastLoc, q_min(2.0, q_max(1.0, vid_contrast.value))); + GL_Uniform1fFunc (contrastLoc, q_min(2.0f, q_max(1.0f, vid_contrast.value))); GL_Uniform1iFunc (textureLoc, 0); // use texture unit 0 glDisable (GL_ALPHA_TEST); @@ -662,7 +662,7 @@ R_EmitWirePoint -- johnfitz -- draws a wireframe cross shape for point entities */ void R_EmitWirePoint (vec3_t origin) { - int size=8; + const int size = 8; glBegin (GL_LINES); glVertex3f (origin[0]-size, origin[1], origin[2]); diff --git a/Quake/gl_screen.c b/Quake/gl_screen.c index 1c254a40..bc209d2f 100644 --- a/Quake/gl_screen.c +++ b/Quake/gl_screen.c @@ -307,7 +307,7 @@ static void SCR_CalcRefdef (void) //johnfitz -- rewrote this section size = scr_viewsize.value; - scale = CLAMP (1.0, scr_sbarscale.value, (float)glwidth / 320.0); + scale = CLAMP (1.0f, scr_sbarscale.value, (float)glwidth / 320.0f); if (size >= 120 || cl.intermission || scr_sbaralpha.value < 1) //johnfitz -- scr_sbaralpha.value sb_lines = 0; @@ -316,12 +316,12 @@ static void SCR_CalcRefdef (void) else sb_lines = 48 * scale; - size = q_min(scr_viewsize.value, 100) / 100; + size = q_min(scr_viewsize.value, 100.f) / 100; //johnfitz //johnfitz -- rewrote this section - r_refdef.vrect.width = q_max(glwidth * size, 96); //no smaller than 96, for icons - r_refdef.vrect.height = q_min(glheight * size, glheight - sb_lines); //make room for sbar + r_refdef.vrect.width = q_max(glwidth * size, 96.0f); //no smaller than 96, for icons + r_refdef.vrect.height = q_min((int)(glheight * size), glheight - sb_lines); //make room for sbar r_refdef.vrect.x = (glwidth - r_refdef.vrect.width)/2; r_refdef.vrect.y = (glheight - sb_lines - r_refdef.vrect.height)/2; //johnfitz diff --git a/Quake/gl_sky.c b/Quake/gl_sky.c index 6cc522c1..0f256de7 100644 --- a/Quake/gl_sky.c +++ b/Quake/gl_sky.c @@ -800,7 +800,7 @@ void Sky_DrawSkyBox (void) c = Fog_GetColor(); glEnable (GL_BLEND); glDisable (GL_TEXTURE_2D); - glColor4f (c[0],c[1],c[2], CLAMP(0.0,skyfog,1.0)); + glColor4f (c[0],c[1],c[2], CLAMP(0.0f,skyfog,1.0f)); glBegin (GL_QUADS); Sky_EmitSkyBoxVertex (skymins[0][i], skymins[1][i], i); @@ -951,7 +951,7 @@ void Sky_DrawFaceQuad (glpoly_t *p) c = Fog_GetColor(); glEnable (GL_BLEND); glDisable (GL_TEXTURE_2D); - glColor4f (c[0],c[1],c[2], CLAMP(0.0,skyfog,1.0)); + glColor4f (c[0],c[1],c[2], CLAMP(0.0f,skyfog,1.0f)); glBegin (GL_QUADS); for (i=0, v=p->verts[0] ; i<4 ; i++, v+=VERTEXSIZE) diff --git a/Quake/gl_texmgr.c b/Quake/gl_texmgr.c index 4087785a..cc425338 100644 --- a/Quake/gl_texmgr.c +++ b/Quake/gl_texmgr.c @@ -679,7 +679,8 @@ int TexMgr_SafeTextureSize (int s) p = TexMgr_Pad(p); if (p < s) s = p; } - s = q_min(gl_hardware_maxsize, s); + if (s > gl_hardware_maxsize) + s = gl_hardware_maxsize; return s; } diff --git a/Quake/host.c b/Quake/host.c index 07cf641c..ac9dc2c8 100644 --- a/Quake/host.c +++ b/Quake/host.c @@ -577,7 +577,7 @@ qboolean Host_FilterTime (float time) realtime += time; //johnfitz -- max fps cvar - maxfps = CLAMP (10.0, host_maxfps.value, 1000.0); + maxfps = CLAMP (10.f, host_maxfps.value, 1000.f); if (!cls.timedemo && realtime - oldrealtime < 1.0/maxfps) return false; // framerate is too high //johnfitz diff --git a/Quake/host_cmd.c b/Quake/host_cmd.c index 2d6e3603..79917676 100644 --- a/Quake/host_cmd.c +++ b/Quake/host_cmd.c @@ -1008,7 +1008,9 @@ static void Host_SavegameComment (char *text) if (p1 != NULL) *p1 = 0; if (p2 != NULL) *p2 = 0; - memcpy (text, cl.levelname, q_min(strlen(cl.levelname),22)); //johnfitz -- only copy 22 chars. + i = (int) strlen(cl.levelname); + if (i > 22) i = 22; + memcpy (text, cl.levelname, (size_t)i); sprintf (kills,"kills:%3i/%3i", cl.stats[STAT_MONSTERS], cl.stats[STAT_TOTALMONSTERS]); memcpy (text+22, kills, strlen(kills)); // convert space to _ to make stdio happy diff --git a/Quake/pl_linux.c b/Quake/pl_linux.c index 9e62ceb8..25fe6b4b 100644 --- a/Quake/pl_linux.c +++ b/Quake/pl_linux.c @@ -80,8 +80,8 @@ char *PL_GetClipboardData (void) * such as an ip address, etc: do chop the size * here, otherwise we may experience Z_Malloc() * failures and all other not-oh-so-fun stuff. */ - size = q_min(MAX_CLIPBOARDTXT, size); - data = (char *) Z_Malloc(size); + size = q_min((size_t)(MAX_CLIPBOARDTXT), size); + data = (char *) Z_Malloc((int)size); q_strlcpy (data, cliptext, size); } #endif diff --git a/Quake/pl_osx.m b/Quake/pl_osx.m index e9b1e4fe..e3a5b98b 100644 --- a/Quake/pl_osx.m +++ b/Quake/pl_osx.m @@ -56,8 +56,8 @@ char *PL_GetClipboardData (void) NSString* clipboardString = [pasteboard stringForType: NSPasteboardTypeString]; if (clipboardString != NULL && [clipboardString length] > 0) { size_t sz = [clipboardString length] + 1; - sz = q_min(MAX_CLIPBOARDTXT, sz); - data = (char *) Z_Malloc(sz); + sz = q_min((size_t)(MAX_CLIPBOARDTXT), sz); + data = (char *) Z_Malloc((int)sz); #if (MAC_OS_X_VERSION_MIN_REQUIRED < 1040) /* for ppc builds targeting 10.3 and older */ q_strlcpy (data, [clipboardString cString], sz); #else diff --git a/Quake/pl_win.c b/Quake/pl_win.c index d6a5045e..486e3fcb 100644 --- a/Quake/pl_win.c +++ b/Quake/pl_win.c @@ -95,8 +95,8 @@ char *PL_GetClipboardData (void) * such as an ip address, etc: do chop the size * here, otherwise we may experience Z_Malloc() * failures and all other not-oh-so-fun stuff. */ - size = q_min(MAX_CLIPBOARDTXT, size); - data = (char *) Z_Malloc(size); + size = q_min((size_t)(MAX_CLIPBOARDTXT), size); + data = (char *) Z_Malloc((int)size); q_strlcpy (data, cliptext, size); GlobalUnlock (hClipboardData); } diff --git a/Quake/pr_edict.c b/Quake/pr_edict.c index 042f574d..d4145161 100644 --- a/Quake/pr_edict.c +++ b/Quake/pr_edict.c @@ -924,7 +924,7 @@ const char *ED_ParseEdict (const char *data, edict_t *ent) //johnfitz -- hack to support .alpha even when progs.dat doesn't know about it if (!strcmp(keyname, "alpha")) - ent->alpha = ENTALPHA_ENCODE(atof(com_token)); + ent->alpha = ENTALPHA_ENCODE(Q_atof(com_token)); //johnfitz key = ED_FindField (keyname); diff --git a/Quake/protocol.h b/Quake/protocol.h index da8847b2..158d0a5f 100644 --- a/Quake/protocol.h +++ b/Quake/protocol.h @@ -131,7 +131,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. #define ENTALPHA_DEFAULT 0 //entity's alpha is "default" (i.e. water obeys r_wateralpha) -- must be zero so zeroed out memory works #define ENTALPHA_ZERO 1 //entity is invisible (lowest possible alpha) #define ENTALPHA_ONE 255 //entity is fully opaque (highest possible alpha) -#define ENTALPHA_ENCODE(a) (((a)==0)?ENTALPHA_DEFAULT:Q_rint(CLAMP(1,(a)*254.0f+1,255))) //server convert to byte to send to client +#define ENTALPHA_ENCODE(a) (((a)==0)?ENTALPHA_DEFAULT:Q_rint(CLAMP(1.0f,(a)*254.0f+1,255.0f))) //server convert to byte to send to client #define ENTALPHA_DECODE(a) (((a)==ENTALPHA_DEFAULT)?1.0f:((float)(a)-1)/(254)) //client convert to float for rendering #define ENTALPHA_TOSAVE(a) (((a)==ENTALPHA_DEFAULT)?0.0f:(((a)==ENTALPHA_ZERO)?-1.0f:((float)(a)-1)/(254))) //server convert to float for savegame //johnfitz diff --git a/Quake/r_alias.c b/Quake/r_alias.c index f9d7fd35..be411847 100644 --- a/Quake/r_alias.c +++ b/Quake/r_alias.c @@ -459,9 +459,9 @@ void R_SetupAliasFrame (aliashdr_t *paliashdr, int frame, lerpdata_t *lerpdata) if (r_lerpmodels.value && !(e->model->flags & MOD_NOLERP && r_lerpmodels.value != 2)) { if (e->lerpflags & LERP_FINISH && numposes == 1) - lerpdata->blend = CLAMP (0, (cl.time - e->lerpstart) / (e->lerpfinish - e->lerpstart), 1); + lerpdata->blend = CLAMP (0.0f, (float)(cl.time - e->lerpstart) / (e->lerpfinish - e->lerpstart), 1.0f); else - lerpdata->blend = CLAMP (0, (cl.time - e->lerpstart) / e->lerptime, 1); + lerpdata->blend = CLAMP (0.0f, (float)(cl.time - e->lerpstart) / e->lerptime, 1.0f); lerpdata->pose1 = e->previouspose; lerpdata->pose2 = e->currentpose; } @@ -507,9 +507,9 @@ void R_SetupEntityTransform (entity_t *e, lerpdata_t *lerpdata) if (r_lerpmove.value && e != &cl.viewent && e->lerpflags & LERP_MOVESTEP) { if (e->lerpflags & LERP_FINISH) - blend = CLAMP (0, (cl.time - e->movelerpstart) / (e->lerpfinish - e->movelerpstart), 1); + blend = CLAMP (0.0f, (float)(cl.time - e->movelerpstart) / (e->lerpfinish - e->movelerpstart), 1.0f); else - blend = CLAMP (0, (cl.time - e->movelerpstart) / 0.1, 1); + blend = CLAMP (0.0f, (float)(cl.time - e->movelerpstart) / 0.1f, 1.0f); //translation VectorSubtract (e->currentorigin, e->previousorigin, d); diff --git a/Quake/sbar.c b/Quake/sbar.c index 9c68780f..9afc4340 100644 --- a/Quake/sbar.c +++ b/Quake/sbar.c @@ -322,7 +322,7 @@ void Sbar_DrawScrollString (int x, int y, int width, const char *str) float scale; int len, ofs, left; - scale = CLAMP (1.0, scr_sbarscale.value, (float)glwidth / 320.0); + scale = CLAMP (1.0f, scr_sbarscale.value, (float)glwidth / 320.0f); left = x * scale; if (cl.gametype != GAME_DEATHMATCH) left += (((float)glwidth - 320.0 * scale) / 2); @@ -1191,7 +1191,7 @@ void Sbar_MiniDeathmatchOverlay (void) float scale; //johnfitz scoreboard_t *s; - scale = CLAMP (1.0, scr_sbarscale.value, (float)glwidth / 320.0); //johnfitz + scale = CLAMP (1.0f, scr_sbarscale.value, (float)glwidth / 320.0f); //johnfitz //MAX_SCOREBOARDNAME = 32, so total width for this overlay plus sbar is 632, but we can cut off some i guess if (glwidth/scale < 512 || scr_viewsize.value >= 120) //johnfitz -- test should consider scr_sbarscale