From ae65a64828e317466421d96c71aaf1a8eb97ceca Mon Sep 17 00:00:00 2001 From: aurhat Date: Thu, 6 Feb 2020 23:03:11 +0100 Subject: [PATCH] Fix some errors and warnings for GCC 6 * do not use std::abs() because math.h includes one, that converts ints to double. Use own iabs(), which directly uses labs() instead. * don't use the word "gamma" as name for variables * don't use a homebrew round() function It bases mainly on 98d01d1f34f49a49dae59478550e54d4aaf8cc91 --- source/src/bot/bot_waypoint.cpp | 12 ++++++------ source/src/command.cpp | 2 +- source/src/command.h | 1 + source/src/crypto.cpp | 2 +- source/src/editing.cpp | 6 +++--- source/src/entity.h | 2 +- source/src/main.cpp | 10 +++++----- source/src/platform.h | 9 +-------- source/src/protos.h | 3 ++- source/src/rendercubes.cpp | 8 ++++---- source/src/rendertext.cpp | 4 ++-- source/src/tools.h | 2 +- source/src/world.cpp | 6 +++--- source/src/worldrender.cpp | 2 +- 14 files changed, 32 insertions(+), 37 deletions(-) diff --git a/source/src/bot/bot_waypoint.cpp b/source/src/bot/bot_waypoint.cpp index 520c686b..7b265ef3 100644 --- a/source/src/bot/bot_waypoint.cpp +++ b/source/src/bot/bot_waypoint.cpp @@ -1221,7 +1221,7 @@ void CWaypointClass::CalcCost(node_s *pNode) flCost += (1.0f-flFraction)*0.5f; } - if ((abs(a) > 4) || (abs(b) > 4)) continue; + if ((iabs(a) > 4) || (iabs(b) > 4)) continue; vec from = to; to.z -= (JUMP_HEIGHT - 1.0f); @@ -1249,7 +1249,7 @@ void CWaypointClass::CalcCost(node_s *pNode) flCost += (1.0f-flFraction)*0.5f; } - if ((abs(a) > 4) || (abs(b) > 4)) continue; + if ((iabs(a) > 4) || (iabs(b) > 4)) continue; vec from = to; to.z -= (JUMP_HEIGHT - 1.0f); @@ -1671,12 +1671,12 @@ node_s *CWaypointClass::GetNearestTriggerFloodWP(vec v_origin, float flRange) void CWaypointClass::GetNodeIndexes(const vec &v_origin, short *i, short *j) { // Function code by cheesy and PMB - //*i = abs((int)((int)(v_origin.x + (2*ssize)) / SECTOR_SIZE)); - //*j = abs((int)((int)(v_origin.y + (2*ssize)) / SECTOR_SIZE)); + //*i = iabs((int)((int)(v_origin.x + (2*ssize)) / SECTOR_SIZE)); + //*j = iabs((int)((int)(v_origin.y + (2*ssize)) / SECTOR_SIZE)); //*i = (int)((v_origin.x) / ssize * MAX_MAP_GRIDS); //*j = (int)((v_origin.y) / ssize * MAX_MAP_GRIDS); - *i = abs((int)((v_origin.x) / MAX_MAP_GRIDS)); - *j = abs((int)((v_origin.y) / MAX_MAP_GRIDS)); + *i = iabs((int)((v_origin.x) / MAX_MAP_GRIDS)); + *j = iabs((int)((v_origin.y) / MAX_MAP_GRIDS)); if (*i > MAX_MAP_GRIDS - 1) *i = MAX_MAP_GRIDS - 1; diff --git a/source/src/command.cpp b/source/src/command.cpp index 1f107d57..136287ae 100644 --- a/source/src/command.cpp +++ b/source/src/command.cpp @@ -497,7 +497,7 @@ char *executeret(const char *p) // all evaluation hap if(lc<=seer_t1.length()) { int dt = seer_t1[seer_index] - seer_t1[lc]; - if(abs(dt)<2) + if(iabs(dt)<2) { conoutf("SCRIPT EXECUTION warning [%d:%s]", &p, p); seer_t2.add(seer_t1[seer_index]); diff --git a/source/src/command.h b/source/src/command.h index a3ca68a9..2a3de0cd 100644 --- a/source/src/command.h +++ b/source/src/command.h @@ -86,6 +86,7 @@ enum { IEXC_CORE = 0, IEXC_CFG, IEXC_PROMPT, IEXC_MAPCFG, IEXC_MDLCFG, IEXC_NUM #define VARNP(name, global, min, cur, max) int global = variable(#name, min, cur, max, &global, NULL, true) #define VARF(name, min, cur, max, body) extern int name; void var_##name() { body; } int name = variable(#name, min, cur, max, &name, var_##name, false) #define VARFP(name, min, cur, max, body) extern int name; void var_##name() { body; } int name = variable(#name, min, cur, max, &name, var_##name, true) +#define VARNFP(name, global, min, cur, max, body) extern int global; void var_##name() { body; } int global = variable(#name, min, cur, max, &global, var_##name, true) #define FVARP(name, min, cur, max) float name = fvariable(#name, min, cur, max, &name, NULL, true) #define FVAR(name, min, cur, max) float name = fvariable(#name, min, cur, max, &name, NULL, false) diff --git a/source/src/crypto.cpp b/source/src/crypto.cpp index 55567da7..30768af2 100644 --- a/source/src/crypto.cpp +++ b/source/src/crypto.cpp @@ -763,7 +763,7 @@ bool hashstring(const char *str, char *result, int maxlen) const char *genpwdhash(const char *name, const char *pwd, int salt) { static string temp; - formatstring(temp)("%s %d %s %s %d", pwd, salt, name, pwd, abs(PROTOCOL_VERSION)); + formatstring(temp)("%s %d %s %s %d", pwd, salt, name, pwd, iabs(PROTOCOL_VERSION)); tiger::hashval hash; tiger::hash((uchar *)temp, (int)strlen(temp), hash); formatstring(temp)("%llx %llx %llx", hash.chunks[0], hash.chunks[1], hash.chunks[2]); diff --git a/source/src/editing.cpp b/source/src/editing.cpp index 21ce8fc5..4562a4ff 100644 --- a/source/src/editing.cpp +++ b/source/src/editing.cpp @@ -126,11 +126,11 @@ void checkselections() void makesel(bool isnew) { block &cursel = sels.last(); //RR 10/12/12 - FIXEME, error checking should happen with "isnew", not here checking if it really is new. - if(isnew || sels.length() == 0) addselection(min(lastx, cx), min(lasty, cy), abs(lastx-cx)+1, abs(lasty-cy)+1, max(lasth, ch)); + if(isnew || sels.length() == 0) addselection(min(lastx, cx), min(lasty, cy), iabs(lastx-cx)+1, iabs(lasty-cy)+1, max(lasth, ch)); else { cursel.x = min(lastx, cx); cursel.y = min(lasty, cy); - cursel.xs = abs(lastx-cx)+1; cursel.ys = abs(lasty-cy)+1; + cursel.xs = iabs(lastx-cx)+1; cursel.ys = iabs(lasty-cy)+1; cursel.h = max(lasth, ch); correctsel(cursel); } @@ -645,7 +645,7 @@ void movemap(int xo, int yo, int zo) // move whole map } if(xo || yo) { - block b = { max(-xo, 0), max(-yo, 0), ssize - abs(xo), ssize - abs(yo) }, *cp = blockcopy(b); + block b = { max(-xo, 0), max(-yo, 0), ssize - iabs(xo), ssize - iabs(yo) }, *cp = blockcopy(b); cp->x = max(xo, 0); cp->y = max(yo, 0); blockpaste(*cp); diff --git a/source/src/entity.h b/source/src/entity.h index e118d16d..15ac37c4 100644 --- a/source/src/entity.h +++ b/source/src/entity.h @@ -540,7 +540,7 @@ public: { const int maxskin[2] = { 4, 6 }; t = team_base(t < 0 ? team : t); - nextskin[t] = abs(s) % maxskin[t]; + nextskin[t] = iabs(s) % maxskin[t]; } }; diff --git a/source/src/main.cpp b/source/src/main.cpp index 69893599..594851ac 100644 --- a/source/src/main.cpp +++ b/source/src/main.cpp @@ -513,11 +513,11 @@ void setresdata(char *s, enet_uint32 c) COMMANDF(screenres, "ii", (int *w, int *h) { screenres(*w, *h); }); static int curgamma = 100; -VARFP(gamma, 30, 100, 300, +VARNFP(gamma, vgamma, 30, 100, 300, { - if(gamma == curgamma) return; - curgamma = gamma; - float f = gamma/100.0f; + if(vgamma == curgamma) return; + curgamma = vgamma; + float f = vgamma/100.0f; if(SDL_SetGamma(f,f,f)==-1) conoutf("Could not set gamma: %s", SDL_GetError()); }); @@ -1322,4 +1322,4 @@ int main(int argc, char **argv) } VAR(version, 1, AC_VERSION, 0); -VAR(protocol, 1, PROTOCOL_VERSION, 0); \ No newline at end of file +VAR(protocol, 1, PROTOCOL_VERSION, 0); diff --git a/source/src/platform.h b/source/src/platform.h index aece7e24..fd2eef11 100644 --- a/source/src/platform.h +++ b/source/src/platform.h @@ -2,14 +2,6 @@ #ifdef _FORTIFY_SOURCE #undef _FORTIFY_SOURCE #endif - - #define gamma __gamma -#endif - -#include - -#ifdef __GNUC__ - #undef gamma #endif #include @@ -19,6 +11,7 @@ #include #include #include +#include #ifdef __GNUC__ #include #include diff --git a/source/src/protos.h b/source/src/protos.h index 7d46b481..c11bbe16 100644 --- a/source/src/protos.h +++ b/source/src/protos.h @@ -1029,7 +1029,8 @@ struct servercommandline { demo_interm = true; } - else if(ai > 0) maxdemos = ai; break; + else if(ai > 0) maxdemos = ai; + break; } case 'W': demopath = a; break; case 'r': maprot = a; break; diff --git a/source/src/rendercubes.cpp b/source/src/rendercubes.cpp index b6b364d0..e428697c 100644 --- a/source/src/rendercubes.cpp +++ b/source/src/rendercubes.cpp @@ -202,9 +202,9 @@ void render_flat(int wtex, int x, int y, int size, int h, sqr *l1, sqr *l4, sqr else // continue strip { int lighterr = lighterror*2; - if((abs(ol1r-l3->r)r)g)g)b)b)r)r)g)g)b)b)r)g)b)r)g)b) 0) ? --sp : sp]; // restore color else if(c == 'b') { if(allowblinkingtext && !ignoreblinkingbit) stack[sp] *= -1; } // blinking text - only if allowed else stack[sp] = c; - switch(abs(stack[sp])) + switch(iabs(stack[sp])) { case '0': color = bvec( 2, 255, 128 ); break; // green: player talk case '1': color = bvec( 96, 160, 255 ); break; // blue: team chat @@ -380,7 +380,7 @@ static void text_color(char c, char *stack, int size, int &sp, bvec color, int a //default: color = bvec( 255, 255, 255 ); break; } int b = (int) (sinf(lastmillis / 200.0f) * 115.0f); - b = stack[sp] > 0 ? 100 : min(abs(b), 100); + b = stack[sp] > 0 ? 100 : min(iabs(b), 100); glColor4ub(color.x, color.y, color.z, (a * b) / 100); } } diff --git a/source/src/tools.h b/source/src/tools.h index 4204a308..dde94e17 100644 --- a/source/src/tools.h +++ b/source/src/tools.h @@ -55,7 +55,7 @@ static inline T min(T a, T b) return a < b ? a : b; } -static inline float round(float x) { return floor(x + 0.5f); } +inline int iabs(int n) { return labs(n); } #define clamp(a,b,c) (max(b, min(a, c))) #define rnd(x) ((int)(randomMT()&0xFFFFFF)%(x)) diff --git a/source/src/world.cpp b/source/src/world.cpp index c272a452..6aeec5cc 100644 --- a/source/src/world.cpp +++ b/source/src/world.cpp @@ -79,9 +79,9 @@ void remip(const block &b, int level) || o[i]->ceil!=o[3]->ceil || o[i]->ftex!=o[3]->ftex || o[i]->ctex!=o[3]->ctex - || abs(o[i+1]->r-o[0]->r)>lighterr // perfect mip even if light is not exactly equal - || abs(o[i+1]->g-o[0]->g)>lighterr - || abs(o[i+1]->b-o[0]->b)>lighterr + || iabs(o[i+1]->r-o[0]->r)>lighterr // perfect mip even if light is not exactly equal + || iabs(o[i+1]->g-o[0]->g)>lighterr + || iabs(o[i+1]->b-o[0]->b)>lighterr || o[i]->utex!=o[3]->utex || o[i]->wtex!=o[3]->wtex) goto c; } diff --git a/source/src/worldrender.cpp b/source/src/worldrender.cpp index 2d6b5959..5c19f59b 100644 --- a/source/src/worldrender.cpp +++ b/source/src/worldrender.cpp @@ -273,7 +273,7 @@ void render_world(float vx, float vy, float vh, float changelod, int yaw, int pi min_lod = minimap || (player1->isspectating() && player1->spectatemode == SM_OVERVIEW) ? MAX_LOD : MIN_LOD+abs(pitch)/12; yaw = 360-yaw; float widef = fov/75.0f; - int cdist = abs(yaw%90-45); + int cdist = iabs(yaw%90-45); if(cdist<7) // hack to avoid popup at high fovs at 45 yaw { min_lod = max(min_lod, (int)(MIN_LOD+(10-cdist)/1.0f*widef)); // less if lod worked better