]> de.git.xonotic.org Git - xonotic/darkplaces.git/blobdiff - libcurl.c
trying to improve terrain collision brush issues in q3bsp
[xonotic/darkplaces.git] / libcurl.c
index c1c766fb4ec4ee23b1101635f155327b7d392c68..9db850e5cf34325dfc1d66289fa3f262c59a9fbd 100644 (file)
--- a/libcurl.c
+++ b/libcurl.c
@@ -350,7 +350,10 @@ static void Curl_EndDownload(downloadinfo *di, CurlStatus status, CURLcode error
        {
                ok = FS_AddPack(di->filename, NULL, true);
                if(ok && di->forthismap)
+               {
                        Mod_Reload();
+                       R_Modules_NewMap();
+               }
        }
 
        if(!ok && di->forthismap)
@@ -560,7 +563,10 @@ void Curl_Begin(const char *URL, const char *name, qboolean ispak, qboolean fort
                                        Con_DPrintf("(pak was already loaded)\n");
                                else
                                        if(forthismap)
+                                       {
                                                Mod_Reload();
+                                               R_Modules_NewMap();
+                                       }
                                return;
                        }
                        else
@@ -1153,8 +1159,7 @@ void Curl_SendRequirements()
        // for each requirement, find the pack name
        char sendbuffer[4096] = "";
        requirement *req;
-
-       strlcat(sendbuffer, "curl --clear_autodownload\n", sizeof(sendbuffer));
+       qboolean foundone = false;
 
        for(req = requirements; req; req = req->next)
        {
@@ -1173,6 +1178,9 @@ void Curl_SendRequirements()
 
                if(packurl && *packurl && strcmp(packurl, "-"))
                {
+                       if(!foundone)
+                               strlcat(sendbuffer, "curl --clear_autodownload\n", sizeof(sendbuffer));
+
                        strlcat(sendbuffer, "curl --pak --forthismap --as ", sizeof(sendbuffer));
                        strlcat(sendbuffer, thispack, sizeof(sendbuffer));
                        strlcat(sendbuffer, " --for ", sizeof(sendbuffer));
@@ -1181,10 +1189,13 @@ void Curl_SendRequirements()
                        strlcat(sendbuffer, packurl, sizeof(sendbuffer));
                        strlcat(sendbuffer, thispack, sizeof(sendbuffer));
                        strlcat(sendbuffer, "\n", sizeof(sendbuffer));
+
+                       foundone = true;
                }
        }
 
-       strlcat(sendbuffer, "curl --finish_autodownload\n", sizeof(sendbuffer));
+       if(foundone)
+               strlcat(sendbuffer, "curl --finish_autodownload\n", sizeof(sendbuffer));
 
        if(strlen(sendbuffer) + 1 < sizeof(sendbuffer))
                Host_ClientCommands("%s", sendbuffer);