In function AddGamePath() in path_init.c for q3map2,
authorrambetter <rambetter@8a3a26a2-13c4-0310-b231-cf6edde360e5>
Thu, 20 Jan 2011 07:15:47 +0000 (07:15 +0000)
committerRudolf Polzer <divVerent@xonotic.org>
Thu, 20 Jan 2011 13:35:44 +0000 (14:35 +0100)
only adding path if it's not already added (remove duplicates).
It's cleaner this way.

git-svn-id: https://zerowing.idsoftware.com/svn/radiant/GtkRadiant/trunk@432 8a3a26a2-13c4-0310-b231-cf6edde360e5

tools/quake3/q3map2/path_init.c

index e6b4d95..83383e2 100644 (file)
@@ -305,6 +305,8 @@ adds a game path to the list
 
 void AddGamePath( char *path )
 {
+       int     i;
+
        /* dummy check */
        if( path == NULL || path[ 0 ] == '\0' || numGamePaths >= MAX_GAME_PATHS )
                return;
@@ -314,6 +316,19 @@ void AddGamePath( char *path )
        strcpy( gamePaths[ numGamePaths ], path );
        CleanPath( gamePaths[ numGamePaths ] );
        numGamePaths++;
+
+       /* don't add it if it's already there */
+       for (i = 0; i < numGamePaths - 1; i++)
+       {
+               if (strcmp(gamePaths[i], gamePaths[numGamePaths - 1]) == 0)
+               {
+                       free(gamePaths[numGamePaths - 1]);
+                       gamePaths[numGamePaths - 1] = NULL;
+                       numGamePaths--;
+                       break;
+               }
+       }
+       
 }