From 00934e804e09f736dd929ff0fd5753cafba547de Mon Sep 17 00:00:00 2001 From: Jonathan Gray Date: Wed, 1 May 2013 21:17:31 +1000 Subject: [PATCH 01/14] remove surplus tokens after preprocessor directives --- code/Ratl/ratl_common.h | 2 +- code/cgame/cg_public.h | 2 +- code/game/g_roff.h | 2 +- code/ghoul2/G2_misc.cpp | 2 +- code/qcommon/cm_terrainmap.h | 2 +- code/qcommon/cm_trace.cpp | 2 +- code/qcommon/qcommon.h | 4 ++-- code/qcommon/qfiles.h | 2 +- 8 files changed, 9 insertions(+), 9 deletions(-) diff --git a/code/Ratl/ratl_common.h b/code/Ratl/ratl_common.h index a73e3f8..0e98f71 100644 --- a/code/Ratl/ratl_common.h +++ b/code/Ratl/ratl_common.h @@ -282,7 +282,7 @@ public: { return 1; } -#endif; +#endif }; diff --git a/code/cgame/cg_public.h b/code/cgame/cg_public.h index 2dfac2f..e11b3e5 100644 --- a/code/cgame/cg_public.h +++ b/code/cgame/cg_public.h @@ -211,4 +211,4 @@ Ghoul2 Insert End //---------------------------------------------- -#endif _CG_PUBLIC_H +#endif // _CG_PUBLIC_H diff --git a/code/game/g_roff.h b/code/game/g_roff.h index b03de62..ffe0526 100644 --- a/code/game/g_roff.h +++ b/code/game/g_roff.h @@ -85,4 +85,4 @@ void G_Roff( gentity_t *ent ); void G_SaveCachedRoffs(); void G_LoadCachedRoffs(); -#endif` +#endif diff --git a/code/ghoul2/G2_misc.cpp b/code/ghoul2/G2_misc.cpp index 5300d11..ae4ec64 100644 --- a/code/ghoul2/G2_misc.cpp +++ b/code/ghoul2/G2_misc.cpp @@ -236,7 +236,7 @@ public: SSkinGoreData *initgore): #else float fRadius): -#endif ): +#endif surfaceNum(initsurfaceNum), rootSList(initrootSList), diff --git a/code/qcommon/cm_terrainmap.h b/code/qcommon/cm_terrainmap.h index 33cd53c..335275f 100644 --- a/code/qcommon/cm_terrainmap.h +++ b/code/qcommon/cm_terrainmap.h @@ -73,5 +73,5 @@ void CM_TM_Upload(vec3_t player_origin, vec3_t player_angles); void CM_TM_SaveImageToDisk(const char * terrainName, const char * missionName, const char * seed); void CM_TM_ConvertPosition(int &x, int &y, int Width, int Height); -#endif CM_TERRAINMAP_H_INC +#endif // CM_TERRAINMAP_H_INC diff --git a/code/qcommon/cm_trace.cpp b/code/qcommon/cm_trace.cpp index 8e41871..a275e64 100644 --- a/code/qcommon/cm_trace.cpp +++ b/code/qcommon/cm_trace.cpp @@ -832,7 +832,7 @@ void CM_TraceThroughTree( traceWork_t *tw, clipMap_t *local, int num, float p1f, #ifdef _XBOX plane = cmg.planes + tr.world->nodes[num].planeNum; -#else mnode_s +#else plane = node->plane; #endif diff --git a/code/qcommon/qcommon.h b/code/qcommon/qcommon.h index 50e255d..4eb9e3f 100644 --- a/code/qcommon/qcommon.h +++ b/code/qcommon/qcommon.h @@ -845,6 +845,6 @@ struct Lump } } }; -#endif _XBOX +#endif // _XBOX -#endif //__QCOMMON_H__ \ No newline at end of file +#endif //__QCOMMON_H__ diff --git a/code/qcommon/qfiles.h b/code/qcommon/qfiles.h index 6051ca1..973c482 100644 --- a/code/qcommon/qfiles.h +++ b/code/qcommon/qfiles.h @@ -568,7 +568,7 @@ typedef struct { int patchHeight; } dsurface_t; -#endif _XBOX +#endif // _XBOX typedef enum //# hunkAllocType_e { From 88e6b70d0dab8f96d7b9c69591d29bab9a38aedc Mon Sep 17 00:00:00 2001 From: Jonathan Gray Date: Wed, 1 May 2013 21:32:28 +1000 Subject: [PATCH 02/14] remove the use of 'typedef enum' without an indentifier --- code/cgame/cg_media.h | 4 ++-- code/game/g_cmds.cpp | 2 +- code/game/g_items.h | 4 ++-- code/game/hitlocs.h | 2 +- code/game/wp_saber.h | 8 ++++---- code/ui/ui_main.cpp | 6 +++--- 6 files changed, 13 insertions(+), 13 deletions(-) diff --git a/code/cgame/cg_media.h b/code/cgame/cg_media.h index 56c5ba5..f95c329 100644 --- a/code/cgame/cg_media.h +++ b/code/cgame/cg_media.h @@ -76,7 +76,7 @@ typedef enum #define NUM_CHUNK_MODELS 4 -typedef enum +enum { CHUNK_METAL1 = 0, CHUNK_METAL2, @@ -410,4 +410,4 @@ typedef struct { extern cgs_t cgs; -#endif //__CG_MEDIA_H_ \ No newline at end of file +#endif //__CG_MEDIA_H_ diff --git a/code/game/g_cmds.cpp b/code/game/g_cmds.cpp index 420faf2..8a94c4f 100644 --- a/code/game/g_cmds.cpp +++ b/code/game/g_cmds.cpp @@ -1026,7 +1026,7 @@ void G_Victory( gentity_t *ent ) } } -typedef enum +enum { TAUNT_TAUNT = 0, TAUNT_BOW, diff --git a/code/game/g_items.h b/code/game/g_items.h index e57b774..b600347 100644 --- a/code/game/g_items.h +++ b/code/game/g_items.h @@ -4,7 +4,7 @@ #define __ITEMS_H__ // Items enums -typedef enum +enum { ITM_NONE, @@ -77,7 +77,7 @@ ITM_NUM_ITEMS }; // Inventory item enums -typedef enum //# item_e +enum //# item_e { INV_ELECTROBINOCULARS, INV_BACTA_CANISTER, diff --git a/code/game/hitlocs.h b/code/game/hitlocs.h index cc39a81..c9e7140 100644 --- a/code/game/hitlocs.h +++ b/code/game/hitlocs.h @@ -1,7 +1,7 @@ #ifndef HITLOCS_H #define HITLOCS_H -typedef enum //# hitloc_e +enum //# hitloc_e { HL_NONE = 0, HL_FOOT_RT, diff --git a/code/game/wp_saber.h b/code/game/wp_saber.h index 30115b1..49eb10b 100644 --- a/code/game/wp_saber.h +++ b/code/game/wp_saber.h @@ -58,7 +58,7 @@ typedef enum LOCK_FORCE_DRAIN } sabersLockMode_t; -typedef enum +enum { SABERLOCK_TOP, SABERLOCK_SIDE, @@ -69,7 +69,7 @@ typedef enum SABERLOCK_LOSE }; -typedef enum +enum { DIR_RIGHT, DIR_LEFT, @@ -148,7 +148,7 @@ extern char *saberColorStringForColor[]; #define MASK_FORCE_PUSH (MASK_OPAQUE|CONTENTS_SOLID) -typedef enum +enum { FORCE_LEVEL_0, FORCE_LEVEL_1, @@ -159,7 +159,7 @@ typedef enum #define FORCE_LEVEL_4 (FORCE_LEVEL_3+1) #define FORCE_LEVEL_5 (FORCE_LEVEL_4+1) -typedef enum +enum { FJ_FORWARD, FJ_BACKWARD, diff --git a/code/ui/ui_main.cpp b/code/ui/ui_main.cpp index 6b42f01..2bab02c 100644 --- a/code/ui/ui_main.cpp +++ b/code/ui/ui_main.cpp @@ -146,7 +146,7 @@ void UI_AdjustSaveGameListBox( int currentLine ); void Menus_CloseByName(const char *p); // Movedata Sounds -typedef enum +enum { MDS_NONE = 0, MDS_FORCE_JUMP, @@ -155,7 +155,7 @@ typedef enum MDS_MOVE_SOUNDS_MAX }; -typedef enum +enum { MD_ACROBATICS = 0, MD_SINGLE_FAST, @@ -1511,7 +1511,7 @@ static float UI_GetValue(int ownerDraw) } //Force Warnings -typedef enum +enum { FW_VERY_LIGHT = 0, FW_SEMI_LIGHT, From 178544362e4b5e1320a24d28c6cc7a4c7221b199 Mon Sep 17 00:00:00 2001 From: Jonathan Gray Date: Wed, 1 May 2013 23:38:21 +1000 Subject: [PATCH 03/14] avoid enum to int conversions --- code/sdl/sdl_input.cpp | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/code/sdl/sdl_input.cpp b/code/sdl/sdl_input.cpp index 5e0e4ac..6231dd0 100644 --- a/code/sdl/sdl_input.cpp +++ b/code/sdl/sdl_input.cpp @@ -77,7 +77,7 @@ static int vidRestartTime = 0; IN_PrintKey =============== */ -static void IN_PrintKey( const SDL_keysym *keysym, fakeAscii_t key, qboolean down ) +static void IN_PrintKey( const SDL_keysym *keysym, int key, qboolean down ) { if( down ) Com_Printf( "+ " ); @@ -120,7 +120,7 @@ static void IN_PrintKey( const SDL_keysym *keysym, fakeAscii_t key, qboolean dow IN_IsConsoleKey =============== */ -static qboolean IN_IsConsoleKey( fakeAscii_t key, const unsigned char character ) +static qboolean IN_IsConsoleKey( int key, const unsigned char character ) { typedef struct consoleKey_s { @@ -132,7 +132,7 @@ static qboolean IN_IsConsoleKey( fakeAscii_t key, const unsigned char character union { - fakeAscii_t key; + int key; unsigned char character; } u; } consoleKey_t; @@ -212,7 +212,7 @@ IN_TranslateSDLToQ3Key =============== */ static const char *IN_TranslateSDLToQ3Key( SDL_keysym *keysym, - fakeAscii_t *key, qboolean down ) + int *key, qboolean down ) { static unsigned char buf[ 2 ] = { '\0', '\0' }; @@ -878,7 +878,7 @@ static void IN_ProcessEvents( void ) { SDL_Event e; const char *character = NULL; - fakeAscii_t key = 0; + int key = 0; if( !SDL_WasInit( SDL_INIT_VIDEO ) ) return; From e95505989f6f5186533aef992d06f8b3839bdfaa Mon Sep 17 00:00:00 2001 From: Jonathan Gray Date: Wed, 1 May 2013 23:45:04 +1000 Subject: [PATCH 04/14] const fixes --- code/cgame/cg_players.cpp | 10 +++++----- code/client/cl_keys.cpp | 2 +- code/client/client.h | 2 +- code/game/q_shared.h | 2 +- code/qcommon/stringed_ingame.cpp | 16 ++++++++++------ code/sdl/sdl_input.cpp | 2 +- code/server/sv_savegame.cpp | 7 +++++-- 7 files changed, 24 insertions(+), 17 deletions(-) diff --git a/code/cgame/cg_players.cpp b/code/cgame/cg_players.cpp index a6434d1..d8a7b2a 100644 --- a/code/cgame/cg_players.cpp +++ b/code/cgame/cg_players.cpp @@ -251,10 +251,10 @@ static const char *GetCustomSound_VariantCapped(const char *ppsTable[], int iEnt if (iVariantCap || bForceVariant1) { - char *p = strchr(ppsTable[iEntryNum],'.'); - if (p && p-2 > ppsTable[iEntryNum] && isdigit(p[-1]) && !isdigit(p[-2])) + const char *pt = strchr(ppsTable[iEntryNum],'.'); + if (pt && pt-2 > ppsTable[iEntryNum] && isdigit(pt[-1]) && !isdigit(pt[-2])) { - int iThisVariant = p[-1]-'0'; + int iThisVariant = pt[-1]-'0'; if (iThisVariant > iVariantCap || bForceVariant1) { @@ -265,7 +265,7 @@ static const char *GetCustomSound_VariantCapped(const char *ppsTable[], int iEnt char sName[MAX_QPATH]; Q_strncpyz(sName, ppsTable[iEntryNum], sizeof(sName)); - p = strchr(sName,'.'); + char *p = strchr(sName,'.'); if (p) { *p = '\0'; @@ -8540,4 +8540,4 @@ void CG_ResetPlayerEntity( centity_t *cent ) { cent->pe.torso.yawing = qfalse; cent->pe.torso.pitchAngle = cent->lerpAngles[PITCH]; cent->pe.torso.pitching = qfalse; -} \ No newline at end of file +} diff --git a/code/client/cl_keys.cpp b/code/client/cl_keys.cpp index de495db..94f3e26 100644 --- a/code/client/cl_keys.cpp +++ b/code/client/cl_keys.cpp @@ -900,7 +900,7 @@ the K_* names are matched up. to be configured even if they don't have defined names. =================== */ -int Key_StringToKeynum( char *str ) { +int Key_StringToKeynum( const char *str ) { int i; if ( !str || !str[0] ) diff --git a/code/client/client.h b/code/client/client.h index bdadce6..2b3fc2f 100644 --- a/code/client/client.h +++ b/code/client/client.h @@ -354,7 +354,7 @@ void CL_WritePacket( void ); void IN_CenterView (void); float CL_KeyState (kbutton_t *key); -int Key_StringToKeynum( char *str ); +int Key_StringToKeynum( const char *str ); const char *Key_KeynumToString( int keynum/*, qboolean bTranslate*/ ); //note: translate is only called for menu display not configs // diff --git a/code/game/q_shared.h b/code/game/q_shared.h index 759886f..76cc9a9 100644 --- a/code/game/q_shared.h +++ b/code/game/q_shared.h @@ -1283,7 +1283,7 @@ inline char *Q_strupr( char *s1 ) return s1; } #endif -inline char *Q_strrchr( const char* str, int c ) { return strrchr(str, c); } +inline char *Q_strrchr( char* str, int c ) { return strrchr(str, c); } // buffer size safe library replacements void Q_strncpyz( char *dest, const char *src, int destsize, qboolean bBarfIfTooLong=qfalse ); diff --git a/code/qcommon/stringed_ingame.cpp b/code/qcommon/stringed_ingame.cpp index 88b761a..58f18f7 100644 --- a/code/qcommon/stringed_ingame.cpp +++ b/code/qcommon/stringed_ingame.cpp @@ -751,24 +751,28 @@ void CStringEdPackage::AddEntry( LPCSTR psLocalReference ) LPCSTR Leetify( LPCSTR psString ) { - static string str; - str = psString; if (sp_leet->integer == 42) // very specific test, so you won't hit it accidentally { static const char cReplace[]={ 'o','0','l','1','e','3','a','4','s','5','t','7','i','!','h','#', 'O','0','L','1','E','3','A','4','S','5','T','7','I','!','H','#' // laziness because of strchr() }; - + static char *str; char *p; + + free(str); + str = strdup(psString); + for (int i=0; imodified ) { - char *text_p, *token; + const char *text_p, *token; cl_consoleKeys->modified = qfalse; text_p = cl_consoleKeys->string; diff --git a/code/server/sv_savegame.cpp b/code/server/sv_savegame.cpp index b3af2fa..2f3681f 100644 --- a/code/server/sv_savegame.cpp +++ b/code/server/sv_savegame.cpp @@ -148,13 +148,16 @@ static const char *GetString_FailedToOpenSaveGame(const char *psFilename, qboole static LPCSTR SG_AddSavePath( LPCSTR psPathlessBaseName ) { static char sSaveName[8][MAX_OSPATH]; + char tpath[MAX_OSPATH]; static int i=0; i=++i&7; + Q_strncpyz(tpath, psPathlessBaseName, sizeof(tpath)); + if(psPathlessBaseName) { - char *p = strchr(psPathlessBaseName,'/'); + char *p = strchr(tpath,'/'); if (p) { while (p) @@ -164,7 +167,7 @@ static LPCSTR SG_AddSavePath( LPCSTR psPathlessBaseName ) } } } - Com_sprintf( sSaveName[i], MAX_OSPATH, "saves/%s.sav", psPathlessBaseName ); + Com_sprintf( sSaveName[i], MAX_OSPATH, "saves/%s.sav", tpath ); return sSaveName[i]; } From 4074a5321683588746548ebaab43982440560e50 Mon Sep 17 00:00:00 2001 From: Jonathan Gray Date: Wed, 1 May 2013 23:45:53 +1000 Subject: [PATCH 05/14] remove an uneeded extern decl that conflicts with an earlier one --- code/game/Q3_Interface.cpp | 1 - 1 file changed, 1 deletion(-) diff --git a/code/game/Q3_Interface.cpp b/code/game/Q3_Interface.cpp index 704e802..dc19779 100644 --- a/code/game/Q3_Interface.cpp +++ b/code/game/Q3_Interface.cpp @@ -7642,7 +7642,6 @@ int CQuake3GameInterface::RegisterScript( const char *strFileName, void **ppBuf, // Precache all the resources needed by a Script and it's Entity (or vice-versa). int CQuake3GameInterface::PrecacheEntity( gentity_t *pEntity ) { - extern stringID_table_t BSTable[]; int i; for ( i = 0; i < NUM_BSETS; i++ ) From 1a47ca760121e6a3031248ea6155e9f47fde8ec8 Mon Sep 17 00:00:00 2001 From: Jonathan Gray Date: Wed, 1 May 2013 21:11:49 +1000 Subject: [PATCH 06/14] disable some noisy and mostly harmless warnings --- code/CMakeLists.txt | 44 ++++++++++++++++++++++++++++++++++---------- 1 file changed, 34 insertions(+), 10 deletions(-) diff --git a/code/CMakeLists.txt b/code/CMakeLists.txt index 5a6fbff..5d4b7ec 100644 --- a/code/CMakeLists.txt +++ b/code/CMakeLists.txt @@ -1,4 +1,6 @@ cmake_minimum_required(VERSION 2.6) +include(CheckCCompilerFlag) +include(CheckCXXCompilerFlag) project(jasp) @@ -9,23 +11,45 @@ elseif(cpu STREQUAL "x86_64") set(cpu "amd64") endif() +if(CMAKE_COMPILER_IS_GNUC OR CMAKE_C_COMPILER_ID STREQUAL "Clang") + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -pipe -O2") + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -g") + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fno-strict-aliasing -fno-strict-overflow") + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -Wno-unknown-pragmas") + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-write-strings -Wno-missing-braces") + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-switch -Wno-comment") + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-unused-variable") + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-multichar") +endif() + if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID STREQUAL "Clang") - add_definitions(-pipe) - add_definitions(-Wall) - add_definitions(-g) - add_definitions(-O2) - add_definitions(-Wno-unknown-pragmas) - add_definitions(-Wno-write-strings) - add_definitions(-Wno-missing-braces) + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -pipe -O2") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-strict-aliasing -fno-strict-overflow") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wno-unknown-pragmas") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-write-strings -Wno-missing-braces") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-switch -Wno-comment") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-unused-variable") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-multichar") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-reorder") endif() if(CMAKE_COMPILER_IS_GNUCXX) - add_definitions(-Wno-pragmas) - add_definitions(-fpermissive) + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-pragmas") endif() if(CMAKE_CXX_COMPILER_ID STREQUAL "Clang") - add_definitions(-Wno-parentheses-equality) + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-parentheses-equality") +endif() + +check_c_compiler_flag(-Wno-unused-but-set-variable cc_has_unused_but_set) +if (cc_has_unused_but_set) + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-unused-but-set-variable") +endif() + +check_cxx_compiler_flag(-Wno-unused-but-set-variable cxx_has_unused_but_set) +if (cxx_has_unused_but_set) + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-unused-but-set-variable") endif() add_definitions( -D_M_IX86=1 ) # tested to mean little endian... From 42dd32771a624f35254a8ec162e40f1c56171cfc Mon Sep 17 00:00:00 2001 From: Jonathan Gray Date: Thu, 2 May 2013 00:52:09 +1000 Subject: [PATCH 07/14] set some possibly uninitialised vars to zero --- code/cgame/FxPrimitives.cpp | 2 +- code/cgame/cg_players.cpp | 2 +- code/game/bg_panimate.cpp | 2 +- code/game/g_weapon.cpp | 4 ++-- code/qcommon/cm_patch.cpp | 2 +- code/qcommon/common.cpp | 2 ++ code/renderer/tr_bsp.cpp | 2 +- 7 files changed, 9 insertions(+), 7 deletions(-) diff --git a/code/cgame/FxPrimitives.cpp b/code/cgame/FxPrimitives.cpp index c1ec05b..43be82b 100644 --- a/code/cgame/FxPrimitives.cpp +++ b/code/cgame/FxPrimitives.cpp @@ -1948,7 +1948,7 @@ void CPoly::Rotate() //---------------------------- bool CPoly::Update() { - vec3_t mOldOrigin; + vec3_t mOldOrigin = {0, 0, 0}; //FIXME: Handle Relative and Bolted Effects /* diff --git a/code/cgame/cg_players.cpp b/code/cgame/cg_players.cpp index d8a7b2a..45def0c 100644 --- a/code/cgame/cg_players.cpp +++ b/code/cgame/cg_players.cpp @@ -1739,7 +1739,7 @@ static qboolean CG_CheckLookTarget( centity_t *cent, vec3_t lookAngles, float *l //Now calc head angle to lookTarget, if any if ( cent->gent->client->renderInfo.lookTarget >= 0 && cent->gent->client->renderInfo.lookTarget < ENTITYNUM_WORLD ) { - vec3_t lookDir, lookOrg, eyeOrg; + vec3_t lookDir, lookOrg = {0, 0, 0}, eyeOrg; if ( cent->gent->client->renderInfo.lookMode == LM_ENT ) { centity_t *lookCent = &cg_entities[cent->gent->client->renderInfo.lookTarget]; diff --git a/code/game/bg_panimate.cpp b/code/game/bg_panimate.cpp index ca62fbf..f5c2149 100644 --- a/code/game/bg_panimate.cpp +++ b/code/game/bg_panimate.cpp @@ -373,7 +373,7 @@ saberMoveName_t transitionMove[Q_NUM_QUADS][Q_NUM_QUADS] = void PM_VelocityForSaberMove( playerState_t *ps, vec3_t throwDir ) { - vec3_t vForward, vRight, vUp, startQ, endQ; + vec3_t vForward, vRight, vUp, startQ = {0, 0, 0}, endQ = {0, 0, 0}; AngleVectors( ps->viewangles, vForward, vRight, vUp ); diff --git a/code/game/g_weapon.cpp b/code/game/g_weapon.cpp index a502c07..a371d28 100644 --- a/code/game/g_weapon.cpp +++ b/code/game/g_weapon.cpp @@ -3259,7 +3259,7 @@ qboolean WP_LobFire( gentity_t *self, vec3_t start, vec3_t target, vec3_t mins, //--------------------------------------------------------- { float targetDist, shotSpeed, speedInc = 100, travelTime, impactDist, bestImpactDist = Q3_INFINITE;//fireSpeed, - vec3_t targetDir, shotVel, failCase; + vec3_t targetDir, shotVel, failCase = {0, 0, 0}; trace_t trace; trajectory_t tr; qboolean blocked; @@ -5354,4 +5354,4 @@ void SP_misc_weapon_shooter( gentity_t *self ) { self->wait = 500; } -} \ No newline at end of file +} diff --git a/code/qcommon/cm_patch.cpp b/code/qcommon/cm_patch.cpp index 442abd1..378b9d7 100644 --- a/code/qcommon/cm_patch.cpp +++ b/code/qcommon/cm_patch.cpp @@ -2497,7 +2497,7 @@ void CM_TraceThroughPatchCollide( traceWork_t *tw, const struct patchCollide_s * float offset, enterFrac, leaveFrac, t; patchPlane_t *planes; facet_t *facet; - float plane[4], bestplane[4]; + float plane[4], bestplane[4] = {0, 0, 0, 0}; vec3_t startp, endp; #ifndef BSPC static cvar_t *cv; diff --git a/code/qcommon/common.cpp b/code/qcommon/common.cpp index e8de03e..a65eea9 100644 --- a/code/qcommon/common.cpp +++ b/code/qcommon/common.cpp @@ -1273,6 +1273,8 @@ try int msec, minMsec; static int lastTime; + timeBeforeFirstEvents = timeBeforeServer = timeBeforeEvents = timeBeforeClient = 0; + // write config file if anything changed #ifndef _XBOX Com_WriteConfiguration(); diff --git a/code/renderer/tr_bsp.cpp b/code/renderer/tr_bsp.cpp index f0d6828..9c946e1 100644 --- a/code/renderer/tr_bsp.cpp +++ b/code/renderer/tr_bsp.cpp @@ -215,7 +215,7 @@ static void R_LoadLightmaps( lump_t *l, const char *psMapName, world_t &worldDat float g = buf_p[j*3+1]; float b = buf_p[j*3+2]; float intensity; - float out[3]; + float out[3] = {0, 0, 0}; intensity = 0.33f * r + 0.685f * g + 0.063f * b; From 7d29fb84a5c01940776803bf65f6b2e22117a237 Mon Sep 17 00:00:00 2001 From: Jonathan Gray Date: Thu, 2 May 2013 11:51:06 +1000 Subject: [PATCH 08/14] remove surplus tokens after preprocessor directives --- codemp/Ratl/ratl_common.h | 2 +- codemp/icarus/interpreter.h | 2 +- codemp/namespace_end.h | 2 +- codemp/qcommon/cm_terrainmap.h | 2 +- codemp/qcommon/msg.cpp | 2 +- codemp/qcommon/qcommon.h | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/codemp/Ratl/ratl_common.h b/codemp/Ratl/ratl_common.h index e3515e0..54e7beb 100644 --- a/codemp/Ratl/ratl_common.h +++ b/codemp/Ratl/ratl_common.h @@ -280,7 +280,7 @@ public: { return 1; } -#endif; +#endif }; diff --git a/codemp/icarus/interpreter.h b/codemp/icarus/interpreter.h index 6653f55..64457fe 100644 --- a/codemp/icarus/interpreter.h +++ b/codemp/icarus/interpreter.h @@ -220,5 +220,5 @@ protected: static keywordArray_t m_conditionalKeywords[]; //Conditional }; -#endif __cplusplus +#endif // __cplusplus #endif //__INTERPRETER__ diff --git a/codemp/namespace_end.h b/codemp/namespace_end.h index 8194a65..d3ee3d3 100644 --- a/codemp/namespace_end.h +++ b/codemp/namespace_end.h @@ -14,4 +14,4 @@ using namespace ui; //#error Including namespace_end.h, but not in UI/GAME/CGAME #endif -#endif _XBOX \ No newline at end of file +#endif // _XBOX diff --git a/codemp/qcommon/cm_terrainmap.h b/codemp/qcommon/cm_terrainmap.h index 6899207..c4b8108 100644 --- a/codemp/qcommon/cm_terrainmap.h +++ b/codemp/qcommon/cm_terrainmap.h @@ -79,5 +79,5 @@ void CM_TM_Upload(vec3_t player_origin, vec3_t player_angles); void CM_TM_SaveImageToDisk(const char * terrainName, const char * missionName, const char * seed); void CM_TM_ConvertPosition(int &x, int &y, int Width, int Height); -#endif CM_TERRAINMAP_H_INC +#endif // CM_TERRAINMAP_H_INC diff --git a/codemp/qcommon/msg.cpp b/codemp/qcommon/msg.cpp index 6337354..8980897 100644 --- a/codemp/qcommon/msg.cpp +++ b/codemp/qcommon/msg.cpp @@ -3269,7 +3269,7 @@ void MSG_initHuffman() { Cbuf_AddText( "condump dump.txt\n" ); } -#endif _USINGNEWHUFFTABLE_ +#endif // _USINGNEWHUFFTABLE_ void MSG_shutdownHuffman() { diff --git a/codemp/qcommon/qcommon.h b/codemp/qcommon/qcommon.h index 8618f64..a14816d 100644 --- a/codemp/qcommon/qcommon.h +++ b/codemp/qcommon/qcommon.h @@ -1129,6 +1129,6 @@ struct Lump } } }; -#endif _XBOX +#endif // _XBOX #endif // _QCOMMON_H_ From 6ae7218c218f83cb3e2c252e933d88aabb3162fd Mon Sep 17 00:00:00 2001 From: Jonathan Gray Date: Thu, 2 May 2013 11:58:09 +1000 Subject: [PATCH 09/14] remove the use of 'typedef enum' without an indentifier --- codemp/botlib/be_ai_goal.cpp | 2 +- codemp/cgame/cg_event.c | 2 +- codemp/cgame/cg_local.h | 2 +- codemp/cgame/tr_types.h | 2 +- codemp/game/bg_public.h | 18 +++++++++--------- codemp/game/bg_vehicles.h | 2 +- codemp/game/bg_weapons.h | 2 +- codemp/game/g_active.c | 2 +- codemp/game/g_local.h | 4 ++-- codemp/game/q_shared.h | 18 +++++++++--------- codemp/game/teams.h | 2 +- codemp/game/w_saber.h | 2 +- codemp/server/NPCNav/navigator.h | 4 ++-- codemp/ui/ui_main.c | 4 ++-- codemp/ui/ui_public.h | 2 +- 15 files changed, 34 insertions(+), 34 deletions(-) diff --git a/codemp/botlib/be_ai_goal.cpp b/codemp/botlib/be_ai_goal.cpp index dad0cc8..0aeab10 100644 --- a/codemp/botlib/be_ai_goal.cpp +++ b/codemp/botlib/be_ai_goal.cpp @@ -72,7 +72,7 @@ typedef struct campspot_s } campspot_t; //FIXME: these are game specific -typedef enum { +enum { GT_FFA, // free for all GT_HOLOCRON, // holocron match GT_JEDIMASTER, // jedi master diff --git a/codemp/cgame/cg_event.c b/codemp/cgame/cg_event.c index 7a32080..96bad47 100644 --- a/codemp/cgame/cg_event.c +++ b/codemp/cgame/cg_event.c @@ -27,7 +27,7 @@ extern int cg_vehicleAmmoWarning; extern int cg_vehicleAmmoWarningTime; //I know, not siege, but... -typedef enum +enum { TAUNT_TAUNT = 0, TAUNT_BOW, diff --git a/codemp/cgame/cg_local.h b/codemp/cgame/cg_local.h index 3b5a361..69c19cb 100644 --- a/codemp/cgame/cg_local.h +++ b/codemp/cgame/cg_local.h @@ -1046,7 +1046,7 @@ extern cgscreffects_t cgScreenEffects; void CGCam_Shake( float intensity, int duration ); void CGCam_SetMusicMult( float multiplier, int duration ); -typedef enum +enum { CHUNK_METAL1 = 0, CHUNK_METAL2, diff --git a/codemp/cgame/tr_types.h b/codemp/cgame/tr_types.h index 170d4b2..3442f5c 100644 --- a/codemp/cgame/tr_types.h +++ b/codemp/cgame/tr_types.h @@ -275,7 +275,7 @@ typedef struct { } refdef_t; -typedef enum { +enum { STEREO_CENTER, STEREO_LEFT, STEREO_RIGHT diff --git a/codemp/game/bg_public.h b/codemp/game/bg_public.h index 111a066..bcfb5cc 100644 --- a/codemp/game/bg_public.h +++ b/codemp/game/bg_public.h @@ -180,7 +180,7 @@ typedef enum //for supplier class items #define TOSS_DEBOUNCE_TIME 5000 -typedef enum { +enum { GT_FFA, // free for all GT_HOLOCRON, // holocron ffa GT_JEDIMASTER, // jedi master @@ -206,7 +206,7 @@ extern vec3_t WP_MuzzlePoint[WP_NUM_WEAPONS]; extern int forcePowerSorted[NUM_FORCE_POWERS]; #include "../namespace_end.h" -typedef enum +enum { SABERLOCK_TOP, SABERLOCK_SIDE, @@ -217,7 +217,7 @@ typedef enum SABERLOCK_LOSE }; -typedef enum +enum { DIR_RIGHT, DIR_LEFT, @@ -380,7 +380,7 @@ typedef enum { } weaponstate_t; -typedef enum { +enum { FORCE_MASTERY_UNINITIATED, FORCE_MASTERY_INITIATE, FORCE_MASTERY_PADAWAN, @@ -649,7 +649,7 @@ typedef enum { } effectTypes_t; // NOTE: may not have more than 16 -typedef enum { +enum { PW_NONE, PW_QUAD, @@ -683,7 +683,7 @@ typedef enum { }; typedef int powerup_t; -typedef enum { +enum { HI_NONE, HI_SEEKER, @@ -1006,7 +1006,7 @@ typedef enum { -typedef enum { +enum { TEAM_FREE, TEAM_RED, TEAM_BLUE, @@ -1102,7 +1102,7 @@ typedef enum { //--------------------------------------------------------- // gitem_t->type -typedef enum { +enum { IT_BAD, IT_WEAPON, // EFX: rotate + upscale + minlight IT_AMMO, // EFX: rotate @@ -1286,7 +1286,7 @@ typedef struct #undef LS_NONE #endif -typedef enum { +enum { //totally invalid LS_INVALID = -1, // Invalid, or saber not armed diff --git a/codemp/game/bg_vehicles.h b/codemp/game/bg_vehicles.h index e4073de..5181aab 100644 --- a/codemp/game/bg_vehicles.h +++ b/codemp/game/bg_vehicles.h @@ -403,7 +403,7 @@ extern int numVehicles; #define VEH_MOUNT_THROW_RIGHT -6 -typedef enum +enum { VEH_EJECT_LEFT, VEH_EJECT_RIGHT, diff --git a/codemp/game/bg_weapons.h b/codemp/game/bg_weapons.h index 1e47571..15d1537 100644 --- a/codemp/game/bg_weapons.h +++ b/codemp/game/bg_weapons.h @@ -5,7 +5,7 @@ #ifndef __WEAPONS_H__ #define __WEAPONS_H__ -typedef enum { +enum { WP_NONE, WP_STUN_BATON, diff --git a/codemp/game/g_active.c b/codemp/game/g_active.c index f7ef0f1..59b0229 100644 --- a/codemp/game/g_active.c +++ b/codemp/game/g_active.c @@ -1650,7 +1650,7 @@ void G_HeldByMonster( gentity_t *ent, usercmd_t **ucmd ) (*ucmd)->upmove = 0; } -typedef enum +enum { TAUNT_TAUNT = 0, TAUNT_BOW, diff --git a/codemp/game/g_local.h b/codemp/game/g_local.h index 17a4bfb..4f3422a 100644 --- a/codemp/game/g_local.h +++ b/codemp/game/g_local.h @@ -95,7 +95,7 @@ typedef enum { #define SP_PODIUM_MODEL "models/mapobjects/podium/podium4.md3" -typedef enum +enum { HL_NONE = 0, HL_FOOT_RT, @@ -363,7 +363,7 @@ struct gentity_s { #define DAMAGEREDIRECT_RLEG 2 #define DAMAGEREDIRECT_LLEG 3 -typedef enum { +enum { CON_DISCONNECTED, CON_CONNECTING, CON_CONNECTED diff --git a/codemp/game/q_shared.h b/codemp/game/q_shared.h index 17edee8..c76ad63 100644 --- a/codemp/game/q_shared.h +++ b/codemp/game/q_shared.h @@ -617,7 +617,7 @@ typedef enum { -typedef enum +enum { SABER_RED, SABER_ORANGE, @@ -630,7 +630,7 @@ typedef enum }; typedef int saber_colors_t; -typedef enum +enum { FP_FIRST = 0,//marker FP_HEAL = 0,//instant @@ -883,7 +883,7 @@ typedef struct } saberInfo_t; #define MAX_SABERS 2 -typedef enum +enum { FORCE_LEVEL_0, FORCE_LEVEL_1, @@ -1007,7 +1007,7 @@ enum sharedEIKMoveState }; //material stuff needs to be shared -typedef enum //# material_e +enum //# material_e { MAT_METAL = 0, // scorched blue-grey metal MAT_GLASS, // not a real chunk type, just plays an effect with glass sprites @@ -1995,7 +1995,7 @@ typedef struct { // sound channels // channel 0 never willingly overrides // other channels will allways override a playing sound on that channel -typedef enum { +enum { CHAN_AUTO, //## %s !!"W:\game\base\!!sound\*.wav;*.mp3" # Auto-picks an empty channel to play sound on CHAN_LOCAL, //## %s !!"W:\game\base\!!sound\*.wav;*.mp3" # menu sounds, etc CHAN_WEAPON,//## %s !!"W:\game\base\!!sound\*.wav;*.mp3" @@ -3082,7 +3082,7 @@ typedef struct qtime_s { #define AS_MPLAYER 3 // (Obsolete) // cinematic states -typedef enum { +enum { FMV_IDLE, FMV_PLAY, // play FMV_EOF, // all other conditions, i.e. stop/EOF/abort @@ -3093,7 +3093,7 @@ typedef enum { }; typedef int e_status; -typedef enum _flag_status { +enum _flag_status { FLAG_ATBASE = 0, FLAG_TAKEN, // CTF FLAG_TAKEN_RED, // One Flag CTF @@ -3136,7 +3136,7 @@ typedef struct { // For ghoul2 axis use -typedef enum Eorientations +enum Eorientations { ORIGIN = 0, POSITIVE_X, @@ -3154,7 +3154,7 @@ Ghoul2 Insert End // define the new memory tags for the zone, used by all modules now // #define TAGDEF(blah) TAG_ ## blah -typedef enum { +enum { #include "../qcommon/tags.h" }; typedef char memtag_t; diff --git a/codemp/game/teams.h b/codemp/game/teams.h index 707194e..78cacea 100644 --- a/codemp/game/teams.h +++ b/codemp/game/teams.h @@ -1,7 +1,7 @@ #ifndef TEAMS_H #define TEAMS_H -typedef enum //# team_e +enum //# team_e { NPCTEAM_FREE, // also TEAM_FREE - caution, some code checks a team_t via "if (!team_t_varname)" so I guess this should stay as entry 0, great or what? -slc NPCTEAM_ENEMY, // also TEAM_RED diff --git a/codemp/game/w_saber.h b/codemp/game/w_saber.h index bc79d9e..d2e5657 100644 --- a/codemp/game/w_saber.h +++ b/codemp/game/w_saber.h @@ -32,7 +32,7 @@ #define FORCE_LIGHTNING_RADIUS 300 #define MAX_DRAIN_DISTANCE 512 -typedef enum +enum { FJ_FORWARD, FJ_BACKWARD, diff --git a/codemp/server/NPCNav/navigator.h b/codemp/server/NPCNav/navigator.h index ff93b01..045813d 100644 --- a/codemp/server/NPCNav/navigator.h +++ b/codemp/server/NPCNav/navigator.h @@ -138,7 +138,7 @@ class CNavigator #if __NEWCOLLECT - typedef struct nodeList_t + struct nodeList_t { int nodeID; unsigned int distance; @@ -277,4 +277,4 @@ private: extern CNavigator navigator; -#endif //__G_NAVIGATOR__ \ No newline at end of file +#endif //__G_NAVIGATOR__ diff --git a/codemp/ui/ui_main.c b/codemp/ui/ui_main.c index ba5f06f..d486206 100644 --- a/codemp/ui/ui_main.c +++ b/codemp/ui/ui_main.c @@ -363,7 +363,7 @@ void UI_XBL_FriendsListScript(char **args, const char *name) #endif // _XBOX // Movedata Sounds -typedef enum +enum { MDS_NONE = 0, MDS_FORCE_JUMP, @@ -372,7 +372,7 @@ typedef enum MDS_MOVE_SOUNDS_MAX }; -typedef enum +enum { MD_ACROBATICS = 0, MD_SINGLE_FAST, diff --git a/codemp/ui/ui_public.h b/codemp/ui/ui_public.h index 10622b6..c05add8 100644 --- a/codemp/ui/ui_public.h +++ b/codemp/ui/ui_public.h @@ -191,7 +191,7 @@ Ghoul2 Insert End */ } uiImport_t; -typedef enum { +enum { UIMENU_NONE, UIMENU_MAIN, UIMENU_INGAME, From 804687385c6851d78271aee5ad7ebff94091febe Mon Sep 17 00:00:00 2001 From: Jonathan Gray Date: Thu, 2 May 2013 12:04:25 +1000 Subject: [PATCH 10/14] avoid enum to int conversions --- codemp/sdl/sdl_glimp.cpp | 2 +- codemp/sdl/sdl_input.cpp | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/codemp/sdl/sdl_glimp.cpp b/codemp/sdl/sdl_glimp.cpp index c7ef8d2..140d4ff 100644 --- a/codemp/sdl/sdl_glimp.cpp +++ b/codemp/sdl/sdl_glimp.cpp @@ -1190,7 +1190,7 @@ void GLimp_EndFrame( void ) needToToggle = (!!r_fullscreen->integer != fullscreen) ? qtrue : qfalse; if( needToToggle ) - sdlToggled = SDL_WM_ToggleFullScreen( s ); + sdlToggled = SDL_WM_ToggleFullScreen( s ) ? qtrue : qfalse; } if( needToToggle ) diff --git a/codemp/sdl/sdl_input.cpp b/codemp/sdl/sdl_input.cpp index c0632f2..6b8830e 100644 --- a/codemp/sdl/sdl_input.cpp +++ b/codemp/sdl/sdl_input.cpp @@ -77,7 +77,7 @@ static int vidRestartTime = 0; IN_PrintKey =============== */ -static void IN_PrintKey( const SDL_keysym *keysym, fakeAscii_t key, qboolean down ) +static void IN_PrintKey( const SDL_keysym *keysym, int key, qboolean down ) { if( down ) Com_Printf( "+ " ); @@ -120,7 +120,7 @@ static void IN_PrintKey( const SDL_keysym *keysym, fakeAscii_t key, qboolean dow IN_IsConsoleKey =============== */ -static qboolean IN_IsConsoleKey( fakeAscii_t key, const unsigned char character ) +static qboolean IN_IsConsoleKey( int key, const unsigned char character ) { typedef struct consoleKey_s { @@ -132,7 +132,7 @@ static qboolean IN_IsConsoleKey( fakeAscii_t key, const unsigned char character union { - fakeAscii_t key; + int key; unsigned char character; } u; } consoleKey_t; @@ -212,7 +212,7 @@ IN_TranslateSDLToQ3Key =============== */ static const char *IN_TranslateSDLToQ3Key( SDL_keysym *keysym, - fakeAscii_t *key, qboolean down ) + int *key, qboolean down ) { static unsigned char buf[ 2 ] = { '\0', '\0' }; @@ -878,7 +878,7 @@ static void IN_ProcessEvents( void ) { SDL_Event e; const char *character = NULL; - fakeAscii_t key = 0; + int key = 0; if( !SDL_WasInit( SDL_INIT_VIDEO ) ) return; From 624419334fb3befa892018f46f3bbb4973e07b33 Mon Sep 17 00:00:00 2001 From: Jonathan Gray Date: Thu, 2 May 2013 13:03:47 +1000 Subject: [PATCH 11/14] const fixes --- codemp/client/cl_keys.cpp | 4 ++-- codemp/client/client.h | 2 +- codemp/qcommon/files_pc.cpp | 2 +- codemp/qcommon/stringed_ingame.cpp | 16 ++++++++++------ codemp/renderer/tr_image.cpp | 2 +- codemp/sdl/sdl_input.cpp | 2 +- 6 files changed, 16 insertions(+), 12 deletions(-) diff --git a/codemp/client/cl_keys.cpp b/codemp/client/cl_keys.cpp index 4bb04df..e7895d4 100644 --- a/codemp/client/cl_keys.cpp +++ b/codemp/client/cl_keys.cpp @@ -724,7 +724,7 @@ static void keyConcatArgs( void ) { } static void ConcatRemaining( const char *src, const char *start ) { - char *str; + const char *str; str = strstr(src, start); if (!str) { @@ -1023,7 +1023,7 @@ the K_* names are matched up. to be configured even if they don't have defined names. =================== */ -int Key_StringToKeynum( char *str ) { +int Key_StringToKeynum( const char *str ) { int i; if ( !str || !str[0] ) diff --git a/codemp/client/client.h b/codemp/client/client.h index 6c231c6..92fce28 100644 --- a/codemp/client/client.h +++ b/codemp/client/client.h @@ -501,7 +501,7 @@ void IN_CenterView (void); void CL_VerifyCode( void ); float CL_KeyState (kbutton_t *key); -int Key_StringToKeynum( char *str ); +int Key_StringToKeynum( const char *str ); const char *Key_KeynumToString( int keynum/*, qboolean bTranslate */ ); //note: translate is only called for menu display not configs // diff --git a/codemp/qcommon/files_pc.cpp b/codemp/qcommon/files_pc.cpp index 0c9c099..261d611 100644 --- a/codemp/qcommon/files_pc.cpp +++ b/codemp/qcommon/files_pc.cpp @@ -646,7 +646,7 @@ bool FS_FileCacheable(const char* const filename) FS_ShiftedStrStr =========== */ -char *FS_ShiftedStrStr(const char *string, const char *substring, int shift) { +const char *FS_ShiftedStrStr(const char *string, const char *substring, int shift) { char buf[MAX_STRING_TOKENS]; int i; diff --git a/codemp/qcommon/stringed_ingame.cpp b/codemp/qcommon/stringed_ingame.cpp index 88b761a..58f18f7 100644 --- a/codemp/qcommon/stringed_ingame.cpp +++ b/codemp/qcommon/stringed_ingame.cpp @@ -751,24 +751,28 @@ void CStringEdPackage::AddEntry( LPCSTR psLocalReference ) LPCSTR Leetify( LPCSTR psString ) { - static string str; - str = psString; if (sp_leet->integer == 42) // very specific test, so you won't hit it accidentally { static const char cReplace[]={ 'o','0','l','1','e','3','a','4','s','5','t','7','i','!','h','#', 'O','0','L','1','E','3','A','4','S','5','T','7','I','!','H','#' // laziness because of strchr() }; - + static char *str; char *p; + + free(str); + str = strdup(psString); + for (int i=0; imodified ) { - char *text_p, *token; + const char *text_p, *token; cl_consoleKeys->modified = qfalse; text_p = cl_consoleKeys->string; From 2a6c6cf358266593a03911a799661620ab4f83b8 Mon Sep 17 00:00:00 2001 From: Jonathan Gray Date: Thu, 2 May 2013 12:18:42 +1000 Subject: [PATCH 12/14] disable some noisy and mostly harmless warnings --- codemp/CMakeLists.txt | 29 ++++++++++++++++++++++++++--- 1 file changed, 26 insertions(+), 3 deletions(-) diff --git a/codemp/CMakeLists.txt b/codemp/CMakeLists.txt index a0f3246..dec8e7c 100644 --- a/codemp/CMakeLists.txt +++ b/codemp/CMakeLists.txt @@ -1,4 +1,6 @@ cmake_minimum_required(VERSION 2.6) +include(CheckCCompilerFlag) +include(CheckCXXCompilerFlag) project(jamp) @@ -18,24 +20,45 @@ endif() if(CMAKE_COMPILER_IS_GNUC OR CMAKE_C_COMPILER_ID STREQUAL "Clang") set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -pipe -O2") - set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -Wno-unknown-pragmas -Wno-write-strings -Wno-missing-braces") set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -g") + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fno-strict-aliasing -fno-strict-overflow") + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -Wno-unknown-pragmas") + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-write-strings -Wno-missing-braces") + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-switch -Wno-comment") + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-unused-variable") + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-multichar") endif() if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID STREQUAL "Clang") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -pipe -O2") - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wno-unknown-pragmas -Wno-write-strings -Wno-missing-braces") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-strict-aliasing -fno-strict-overflow") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wno-unknown-pragmas") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-write-strings -Wno-missing-braces") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-switch -Wno-comment") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-unused-variable") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-multichar") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-reorder") endif() if(CMAKE_COMPILER_IS_GNUCXX) - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-pragmas -fpermissive") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-pragmas") endif() if(CMAKE_CXX_COMPILER_ID STREQUAL "Clang") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-parentheses-equality") endif() +check_c_compiler_flag(-Wno-unused-but-set-variable cc_has_unused_but_set) +if (cc_has_unused_but_set) + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-unused-but-set-variable") +endif() + +check_cxx_compiler_flag(-Wno-unused-but-set-variable cxx_has_unused_but_set) +if (cxx_has_unused_but_set) + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-unused-but-set-variable") +endif() + # avoid -rdynamic or loaded libraries will stomp over cvars set(CMAKE_SHARED_LIBRARY_LINK_C_FLAGS "") set(CMAKE_SHARED_LIBRARY_LINK_CXX_FLAGS "") From a3d6db9f5d889565204a7940c413a14f5ad1c0a4 Mon Sep 17 00:00:00 2001 From: Jonathan Gray Date: Thu, 2 May 2013 13:46:58 +1000 Subject: [PATCH 13/14] set some possibly uninitialised vars to zero --- codemp/botlib/be_aas_reach.cpp | 6 +++--- codemp/qcommon/RoffSystem.cpp | 10 ++++++++++ codemp/qcommon/cm_patch.cpp | 2 +- codemp/renderer/tr_bsp.cpp | 2 +- 4 files changed, 15 insertions(+), 5 deletions(-) diff --git a/codemp/botlib/be_aas_reach.cpp b/codemp/botlib/be_aas_reach.cpp index b72d3e9..241f5f9 100644 --- a/codemp/botlib/be_aas_reach.cpp +++ b/codemp/botlib/be_aas_reach.cpp @@ -1050,8 +1050,8 @@ int AAS_Reachability_Step_Barrier_WaterJump_WalkOffLedge(int area1num, int area2 float length, ground_bestlength, water_bestlength, ground_bestdist, water_bestdist; vec3_t v1, v2, v3, v4, tmpv, p1area1, p1area2, p2area1, p2area2; vec3_t normal, ort, edgevec, start, end, dir; - vec3_t ground_beststart, ground_bestend, ground_bestnormal; - vec3_t water_beststart, water_bestend, water_bestnormal; + vec3_t ground_beststart = {0, 0, 0}, ground_bestend = {0, 0, 0}, ground_bestnormal = {0, 0, 0}; + vec3_t water_beststart = {0, 0, 0}, water_bestend = {0, 0, 0}, water_bestnormal = {0, 0, 0}; vec3_t invgravity = {0, 0, 1}; vec3_t testpoint; aas_plane_t *plane; @@ -2368,7 +2368,7 @@ int AAS_Reachability_Ladder(int area1num, int area2num) float face1area, face2area, bestface1area, bestface2area; float phys_jumpvel, maxjumpheight; vec3_t area1point, area2point, v1, v2, up = {0, 0, 1}; - vec3_t mid, lowestpoint, start, end, sharededgevec, dir; + vec3_t mid, lowestpoint = {0, 0}, start, end, sharededgevec, dir; aas_area_t *area1, *area2; aas_face_t *face1, *face2, *ladderface1, *ladderface2; aas_plane_t *plane1, *plane2; diff --git a/codemp/qcommon/RoffSystem.cpp b/codemp/qcommon/RoffSystem.cpp index d44f0aa..f53bf53 100644 --- a/codemp/qcommon/RoffSystem.cpp +++ b/codemp/qcommon/RoffSystem.cpp @@ -832,6 +832,11 @@ qboolean CROFFSystem::ApplyROFF( SROFFEntity *roff_ent, CROFFSystem::CROFF *roff origin = originTemp; VM_Call( cgvm, CG_GET_ANGLES, roff_ent->mEntID, angleTemp ); angle = angleTemp; +#else + originTrajectory = NULL; + angleTrajectory = NULL; + origin = NULL; + angle = NULL; #endif } else @@ -978,6 +983,11 @@ qboolean CROFFSystem::ClearLerp( SROFFEntity *roff_ent ) origin = originTemp; VM_Call( cgvm, CG_GET_ANGLES, roff_ent->mEntID, angleTemp ); angle = angleTemp; +#else + originTrajectory = NULL; + angleTrajectory = NULL; + origin = NULL; + angle = NULL; #endif } else diff --git a/codemp/qcommon/cm_patch.cpp b/codemp/qcommon/cm_patch.cpp index f3fc726..1143e3b 100644 --- a/codemp/qcommon/cm_patch.cpp +++ b/codemp/qcommon/cm_patch.cpp @@ -1395,7 +1395,7 @@ void CM_TraceThroughPatchCollide( traceWork_t *tw, trace_t &trace, const struct float offset, enterFrac, leaveFrac, t; patchPlane_t *planes; facet_t *facet; - float plane[4], bestplane[4]; + float plane[4], bestplane[4] = {0, 0, 0, 0}; vec3_t startp, endp; #ifndef BSPC static cvar_t *cv; diff --git a/codemp/renderer/tr_bsp.cpp b/codemp/renderer/tr_bsp.cpp index 6e423a9..d9e3473 100644 --- a/codemp/renderer/tr_bsp.cpp +++ b/codemp/renderer/tr_bsp.cpp @@ -210,7 +210,7 @@ static void R_LoadLightmaps( lump_t *l, const char *psMapName, world_t &worldDat float g = buf_p[j*3+1]; float b = buf_p[j*3+2]; float intensity; - float out[3]; + float out[3] = {0, 0, 0}; intensity = 0.33f * r + 0.685f * g + 0.063f * b; From dfb45c84f6697b18516b0b18570e4f8493b2e425 Mon Sep 17 00:00:00 2001 From: Jonathan Gray Date: Thu, 2 May 2013 19:08:16 +1000 Subject: [PATCH 14/14] make g_savegame.cpp build on amd64 without -fpermissive --- code/game/g_savegame.cpp | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/code/game/g_savegame.cpp b/code/game/g_savegame.cpp index af8ffd8..2486eb0 100644 --- a/code/game/g_savegame.cpp +++ b/code/game/g_savegame.cpp @@ -573,7 +573,7 @@ static void EvaluateField(const save_field_t *pField, byte *pbBase, byte *pbOrig for (int i=0; i