Fix fs_cache getting outdated after file renames/removes.

git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@5597 fc73d0e0-1445-4013-8a0c-d673dee63da5
This commit is contained in:
Spoike 2020-01-02 05:48:05 +00:00
parent effeb6e089
commit 246f24bafd
1 changed files with 16 additions and 2 deletions

View File

@ -2213,7 +2213,15 @@ qboolean FS_Rename2(const char *oldf, const char *newf, enum fs_relative oldrela
return false;
FS_CreatePath(newf, newrelativeto);
return Sys_Rename(oldfullname, newfullname);
if (Sys_Rename(oldfullname, newfullname))
{
if (oldrelativeto >= FS_GAME)
FS_FlushFSHashRemoved(oldf);
if (newrelativeto >= FS_GAME)
FS_FlushFSHashWritten(newf);
return true;
}
return false;
}
qboolean FS_Rename(const char *oldf, const char *newf, enum fs_relative relativeto)
{
@ -2226,7 +2234,13 @@ qboolean FS_Remove(const char *fname, enum fs_relative relativeto)
if (!FS_NativePath(fname, relativeto, fullname, sizeof(fullname)))
return false;
return Sys_remove (fullname);
if (Sys_remove (fullname))
{
if (relativeto >= FS_GAME)
FS_FlushFSHashRemoved(fname);
return true;
}
return false;
}
//create a path for the given filename (dir-only must have trailing slash)
void FS_CreatePath(const char *pname, enum fs_relative relativeto)