]> git.rm.cloudns.org Git - xonotic/netradiant.git/commitdiff
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)
committerrambetter <rambetter@8a3a26a2-13c4-0310-b231-cf6edde360e5>
Thu, 20 Jan 2011 07:15:47 +0000 (07:15 +0000)
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 186102b0f16bb06e282435ccfd64d643b4c5bbb5..927ba76ae99fad7f191a48fa191a9d9c53973e09 100644 (file)
@@ -303,6 +303,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;
@@ -312,6 +314,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;
+               }
+       }
+       
 }