Trying to fix some downloading vfs stuff.

git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@1779 fc73d0e0-1445-4013-8a0c-d673dee63da5
This commit is contained in:
Spoike 2006-01-02 23:46:44 +00:00
parent 19ab4fd050
commit 975a0a2cc4
2 changed files with 12 additions and 5 deletions

View File

@ -922,7 +922,7 @@ void CL_ParseChunkedDownload(void)
if (cls.downloadmethod == DL_QWCHUNKS) if (cls.downloadmethod == DL_QWCHUNKS)
Host_EndGame("Received second download - \"%s\"\n", svname); Host_EndGame("Received second download - \"%s\"\n", svname);
if (!strcmp(cls.downloadname, svname)) if (strcmp(cls.downloadname, svname))
Host_EndGame("Server sent the wrong download - \"%s\" instead of \"%s\"\n", svname, cls.downloadname); Host_EndGame("Server sent the wrong download - \"%s\" instead of \"%s\"\n", svname, cls.downloadname);
//start the new download //start the new download
@ -937,11 +937,15 @@ void CL_ParseChunkedDownload(void)
COM_DefaultExtension(cls.downloadtempname, ".tmp"); COM_DefaultExtension(cls.downloadtempname, ".tmp");
if (!strncmp(cls.downloadtempname,"skins/",6)) if (!strncmp(cls.downloadtempname,"skins/",6))
sprintf (osname, "qw/%s", cls.downloadtempname); //skins go to quake/qw/skins. never quake/gamedir/skins (blame id) {
FS_CreatePath (va("qw/%s", cls.downloadtempname), FS_BASE);
cls.downloadqw = FS_OpenVFS (va("qw/%s", cls.downloadtempname), "wb", FS_BASE);
}
else else
sprintf (osname, "%s/%s", com_gamedir, cls.downloadtempname); {
COM_CreatePath (osname); FS_CreatePath (cls.downloadtempname, FS_GAME);
cls.downloadqw = FS_OpenVFS (osname, "wb", FS_GAME); cls.downloadqw = FS_OpenVFS (cls.downloadtempname, "wb", FS_GAME);
}
if (!cls.downloadqw) if (!cls.downloadqw)
{ {

View File

@ -1626,6 +1626,9 @@ vfsfile_t *FS_OpenVFS(char *filename, char *mode, int relativeto)
return loc.search->funcs->OpenVFS(loc.search->handle, &loc, mode); return loc.search->funcs->OpenVFS(loc.search->handle, &loc, mode);
} }
//if we're meant to be writing, best write to it.
if (strchr(mode , 'w'))
return VFSOS_Open(fullname, mode);
return NULL; return NULL;
} }