From: cloudwalk Date: Sun, 24 May 2020 14:18:15 +0000 (+0000) Subject: Fix FS_Seek for compressed file from PK3 X-Git-Tag: xonotic-v0.8.5~12 X-Git-Url: https://git.rm.cloudns.org/?a=commitdiff_plain;h=5a5a88c3bd19432bae67c498e01edeb284ba4d74;p=xonotic%2Fdarkplaces.git Fix FS_Seek for compressed file from PK3 From Slava: "Currently FS_Seek works incorrectly with compressed files from PK3 but this issue isn't noticed because in most cases engine is using FS_LoadFile which reads file sequentially without seeking." git-svn-id: svn://svn.icculus.org/twilight/trunk/darkplaces@12564 d7cf8633-e32d-0410-b094-e92efae38249 ::stable-branch::merge=79fff8c0583c2b27bc216f718332d12d4623ebbc --- diff --git a/fs.c b/fs.c index 87367a77..44c15abb 100644 --- a/fs.c +++ b/fs.c @@ -3242,9 +3242,9 @@ int FS_Seek (qfile_t* file, fs_offset_t offset, int whence) buffer = (unsigned char *)Mem_Alloc (tempmempool, buffersize); // Skip all data until we reach the requested offset - while (offset > file->position) + while (offset > (file->position - file->buff_len + file->buff_ind)) { - fs_offset_t diff = offset - file->position; + fs_offset_t diff = offset - (file->position - file->buff_len + file->buff_ind); fs_offset_t count, len; count = (diff > buffersize) ? buffersize : diff;