]> de.git.xonotic.org Git - xonotic/darkplaces.git/blobdiff - libcurl.c
Fix engine not starting on Windows if linked against SDL > 2.0.5
[xonotic/darkplaces.git] / libcurl.c
index 43051547159b8c674c89fc6b089c802960b861b9..de205748dbd01855e5bc1bcc47d9990a78835f00 100644 (file)
--- a/libcurl.c
+++ b/libcurl.c
@@ -598,7 +598,7 @@ static void Curl_EndDownload(downloadinfo *di, CurlStatus status, CURLcode error
 
                pixels = decode_image(di, content_type);
                if(pixels)
-                       Draw_NewPic(p, image_width, image_height, true, pixels);
+                       Draw_NewPic(p, image_width, image_height, pixels, TEXTYPE_BGRA, TEXF_ALPHA | TEXF_CLAMP);
                else
                        CLEAR_AND_RETRY();
        }
@@ -615,7 +615,7 @@ static void Curl_EndDownload(downloadinfo *di, CurlStatus status, CURLcode error
 
                pixels = decode_image(di, content_type);
                if(pixels)
-                       R_SkinFrame_LoadInternalBGRA(p, TEXF_FORCE_RELOAD | TEXF_MIPMAP | TEXF_ALPHA, pixels, image_width, image_height, false); // TODO what sRGB argument to put here?
+                       R_SkinFrame_LoadInternalBGRA(p, TEXF_FORCE_RELOAD | TEXF_MIPMAP | TEXF_ALPHA, pixels, image_width, image_height, 0, 0, 0, false); // TODO what sRGB argument to put here?
                else
                        CLEAR_AND_RETRY();
        }
@@ -966,20 +966,21 @@ static qboolean Curl_Begin(const char *URL, const char *extraheaders, double max
 
                        // already downloading the file?
                        {
-                               downloadinfo *di = Curl_Find(fn);
-                               if(di)
+                               downloadinfo *existingdownloadinfo = Curl_Find(fn);
+                               if(existingdownloadinfo)
                                {
-                                       Con_Printf("Can't download %s, already getting it from %s!\n", fn, CleanURL(di->url, urlbuf, sizeof(urlbuf)));
+                                       Con_Printf("Can't download %s, already getting it from %s!\n", fn, CleanURL(existingdownloadinfo->url, urlbuf, sizeof(urlbuf)));
 
                                        // however, if it was not for this map yet...
-                                       if(forthismap && !di->forthismap)
+                                       if(forthismap && !existingdownloadinfo->forthismap)
                                        {
-                                               di->forthismap = true;
+                                               existingdownloadinfo->forthismap = true;
                                                // this "fakes" a download attempt so the client will wait for
                                                // the download to finish and then reconnect
                                                ++numdownloads_added;
                                        }
 
+                                       if (curl_mutex) Thread_UnlockMutex(curl_mutex);
                                        return false;
                                }
                        }
@@ -1003,6 +1004,7 @@ static qboolean Curl_Begin(const char *URL, const char *extraheaders, double max
                                                        }
                                                }
 
+                                               if (curl_mutex) Thread_UnlockMutex(curl_mutex);
                                                return false;
                                        }
                                        else
@@ -1010,10 +1012,10 @@ static qboolean Curl_Begin(const char *URL, const char *extraheaders, double max
                                                qfile_t *f = FS_OpenRealFile(fn, "rb", false);
                                                if(f)
                                                {
-                                                       char buf[4] = {0};
-                                                       FS_Read(f, buf, sizeof(buf)); // no "-1", I will use memcmp
+                                                       char b[4] = {0};
+                                                       FS_Read(f, b, sizeof(b)); // no "-1", I will use memcmp
 
-                                                       if(memcmp(buf, "PK\x03\x04", 4) && memcmp(buf, "PACK", 4))
+                                                       if(memcmp(b, "PK\x03\x04", 4) && memcmp(b, "PACK", 4))
                                                        {
                                                                Con_DPrintf("Detected non-PAK %s, clearing and NOT resuming.\n", fn);
                                                                FS_Close(f);
@@ -1776,7 +1778,7 @@ static qboolean Curl_SendRequirement(const char *filename, qboolean foundone, ch
        const char *thispack = FS_WhichPack(filename);
        const char *packurl;
 
-       if(!thispack)
+       if(!thispack || !*thispack)
                return false;
 
        p = strrchr(thispack, '/');