From 951a604c7d78876b80383c309fb356712d7262b9 Mon Sep 17 00:00:00 2001 From: TimePath Date: Tue, 1 May 2018 22:34:59 +1000 Subject: [PATCH] Fix the build --- contrib/bobtoolz/DEntity.cpp | 2 +- libs/container/hashfunc.h | 20 ++++++++++---------- radiant/renderstate.cpp | 6 ++++++ tools/quake3/common/threads.c | 1 + tools/quake3/q3map2/surface.c | 20 ++++++++++++-------- 5 files changed, 30 insertions(+), 19 deletions(-) diff --git a/contrib/bobtoolz/DEntity.cpp b/contrib/bobtoolz/DEntity.cpp index f4d9f0b1..d764c312 100644 --- a/contrib/bobtoolz/DEntity.cpp +++ b/contrib/bobtoolz/DEntity.cpp @@ -164,7 +164,7 @@ bool DEntity::LoadFromPrt(char *filename) for (unsigned int j = 0; j < portals.node[i].portal_count; j++) { for (unsigned int k = 0; k < portals.node[i].portal[j].point_count - 2; k++) { - vec3_t v1, v2, normal, n; + vec3_t v1{}, v2{}, normal{}, n{}; VectorSubtract(portals.node[i].portal[j].point[k + 2].p, portals.node[i].portal[j].point[k + 1].p, v1); VectorSubtract(portals.node[i].portal[j].point[k].p, portals.node[i].portal[j].point[k + 1].p, v2); CrossProduct(v1, v2, n); diff --git a/libs/container/hashfunc.h b/libs/container/hashfunc.h index 6d216697..305202d0 100644 --- a/libs/container/hashfunc.h +++ b/libs/container/hashfunc.h @@ -203,17 +203,17 @@ inline ub4 hash( c += length; switch ( len ) /* all the case statements fall through */ { - case 11: c += ( ( ub4 ) UB1Traits::as_ub1( k[10] ) << 24 ); - case 10: c += ( ( ub4 ) UB1Traits::as_ub1( k[9] ) << 16 ); - case 9: c += ( ( ub4 ) UB1Traits::as_ub1( k[8] ) << 8 ); + case 11: c += ( ( ub4 ) UB1Traits::as_ub1( k[10] ) << 24 ); __attribute((fallthrough)); + case 10: c += ( ( ub4 ) UB1Traits::as_ub1( k[9] ) << 16 ); __attribute((fallthrough)); + case 9: c += ( ( ub4 ) UB1Traits::as_ub1( k[8] ) << 8 ); __attribute((fallthrough)); /* the first byte of c is reserved for the length */ - case 8: b += ( ( ub4 ) UB1Traits::as_ub1( k[7] ) << 24 ); - case 7: b += ( ( ub4 ) UB1Traits::as_ub1( k[6] ) << 16 ); - case 6: b += ( ( ub4 ) UB1Traits::as_ub1( k[5] ) << 8 ); - case 5: b += UB1Traits::as_ub1( k[4] ); - case 4: a += ( ( ub4 ) UB1Traits::as_ub1( k[3] ) << 24 ); - case 3: a += ( ( ub4 ) UB1Traits::as_ub1( k[2] ) << 16 ); - case 2: a += ( ( ub4 ) UB1Traits::as_ub1( k[1] ) << 8 ); + case 8: b += ( ( ub4 ) UB1Traits::as_ub1( k[7] ) << 24 ); __attribute((fallthrough)); + case 7: b += ( ( ub4 ) UB1Traits::as_ub1( k[6] ) << 16 ); __attribute((fallthrough)); + case 6: b += ( ( ub4 ) UB1Traits::as_ub1( k[5] ) << 8 ); __attribute((fallthrough)); + case 5: b += UB1Traits::as_ub1( k[4] ); __attribute((fallthrough)); + case 4: a += ( ( ub4 ) UB1Traits::as_ub1( k[3] ) << 24 ); __attribute((fallthrough)); + case 3: a += ( ( ub4 ) UB1Traits::as_ub1( k[2] ) << 16 ); __attribute((fallthrough)); + case 2: a += ( ( ub4 ) UB1Traits::as_ub1( k[1] ) << 8 ); __attribute((fallthrough)); case 1: a += UB1Traits::as_ub1( k[0] ); /* case 0: nothing left to add */ } diff --git a/radiant/renderstate.cpp b/radiant/renderstate.cpp index faa04502..1da08b71 100644 --- a/radiant/renderstate.cpp +++ b/radiant/renderstate.cpp @@ -2463,16 +2463,22 @@ void OpenGLShader::construct(const char *name) switch (alphafunc) { case IShader::eAlways: state.m_alphafunc = GL_ALWAYS; + break; case IShader::eEqual: state.m_alphafunc = GL_EQUAL; + break; case IShader::eLess: state.m_alphafunc = GL_LESS; + break; case IShader::eGreater: state.m_alphafunc = GL_GREATER; + break; case IShader::eLEqual: state.m_alphafunc = GL_LEQUAL; + break; case IShader::eGEqual: state.m_alphafunc = GL_GEQUAL; + break; } } reinterpret_cast( state.m_colour ) = m_shader->getTexture()->color; diff --git a/tools/quake3/common/threads.c b/tools/quake3/common/threads.c index 054dc746..fd38ef9f 100644 --- a/tools/quake3/common/threads.c +++ b/tools/quake3/common/threads.c @@ -20,6 +20,7 @@ */ #include "globaldefs.h" +#include #if !GDEF_OS_WINDOWS // The below define is necessary to use // pthreads extensions like pthread_mutexattr_settype diff --git a/tools/quake3/q3map2/surface.c b/tools/quake3/q3map2/surface.c index e47f2567..a51db8c1 100644 --- a/tools/quake3/q3map2/surface.c +++ b/tools/quake3/q3map2/surface.c @@ -781,6 +781,10 @@ byte GetShaderIndexForPoint( indexMap_t *im, vec3_t eMins, vec3_t eMaxs, vec3_t } +#define snprintf_ignore(s, n, format, ...) do { \ + size_t __n = snprintf(s, n, format, __VA_ARGS__); \ + if (n >= n) {} /* truncated, ignore */ \ +} while (0) /* GetIndexedShader() - ydnar @@ -827,10 +831,10 @@ shaderInfo_t *GetIndexedShader( shaderInfo_t *parent, indexMap_t *im, int numPoi /* make a shader name */ if ( minShaderIndex == maxShaderIndex ) { - sprintf( shader, "textures/%s_%d", im->shader, maxShaderIndex ); + snprintf_ignore( shader, sizeof shader, "textures/%s_%d", im->shader, maxShaderIndex ); } else{ - sprintf( shader, "textures/%s_%dto%d", im->shader, minShaderIndex, maxShaderIndex ); + snprintf_ignore( shader, sizeof shader, "textures/%s_%dto%d", im->shader, minShaderIndex, maxShaderIndex ); } /* get the shader */ @@ -926,17 +930,17 @@ mapDrawSurface_t *DrawSurfaceForSide( entity_t *e, brush_t *b, side_t *s, windin /* ydnar: sky hack/fix for GL_CLAMP borders on ati cards */ if ( skyFixHack && si->skyParmsImageBase[ 0 ] != '\0' ) { //% Sys_FPrintf( SYS_VRB, "Enabling sky hack for shader %s using env %s\n", si->shader, si->skyParmsImageBase ); - sprintf( tempShader, "%s_lf", si->skyParmsImageBase ); + snprintf_ignore( tempShader, sizeof tempShader, "%s_lf", si->skyParmsImageBase ); DrawSurfaceForShader( tempShader ); - sprintf( tempShader, "%s_rt", si->skyParmsImageBase ); + snprintf_ignore( tempShader, sizeof tempShader, "%s_rt", si->skyParmsImageBase ); DrawSurfaceForShader( tempShader ); - sprintf( tempShader, "%s_ft", si->skyParmsImageBase ); + snprintf_ignore( tempShader, sizeof tempShader, "%s_ft", si->skyParmsImageBase ); DrawSurfaceForShader( tempShader ); - sprintf( tempShader, "%s_bk", si->skyParmsImageBase ); + snprintf_ignore( tempShader, sizeof tempShader, "%s_bk", si->skyParmsImageBase ); DrawSurfaceForShader( tempShader ); - sprintf( tempShader, "%s_up", si->skyParmsImageBase ); + snprintf_ignore( tempShader, sizeof tempShader, "%s_up", si->skyParmsImageBase ); DrawSurfaceForShader( tempShader ); - sprintf( tempShader, "%s_dn", si->skyParmsImageBase ); + snprintf_ignore( tempShader, sizeof tempShader, "%s_dn", si->skyParmsImageBase ); DrawSurfaceForShader( tempShader ); } -- 2.39.2