Skip to content
Snippets Groups Projects
Commit c332d48e authored by Sal's avatar Sal
Browse files

Only reseek if we have to

Makes it act similarly to before if only 1 node needs the file.
parent cc54d98a
No related branches found
No related tags found
No related merge requests found
......@@ -103,6 +103,7 @@ typedef struct fileused_s
{
FILE *file;
UINT8 count;
UINT32 position;
} fileused_t;
static fileused_t transferFiles[UINT8_MAX + 1];
......@@ -895,7 +896,7 @@ void SV_FileSendTicker(void)
if (filesize == -1)
I_Error("Error getting filesize of %s", f->id.filename);
f->size = (UINT32)filesize;
f->size = transferFiles[f->fileid].position = (UINT32)filesize;
}
transfer[i].position = 0;
......@@ -904,7 +905,11 @@ void SV_FileSendTicker(void)
if (!ram)
{
fseek(transferFiles[f->fileid].file, transfer[i].position, SEEK_SET);
// Seek to the right position if we aren't already there.
if (transferFiles[f->fileid].position != transfer[i].position)
{
fseek(transferFiles[f->fileid].file, transfer[i].position, SEEK_SET);
}
}
// Build a packet containing a file fragment
......@@ -924,6 +929,8 @@ void SV_FileSendTicker(void)
{
I_Error("SV_FileSendTicker: can't read %s byte on %s at %d because %s",
sizeu1(size), f->id.filename, transfer[i].position, M_FileError(transferFiles[f->fileid].file));
transferFiles[f->fileid].position = (UINT32)(transferFiles[f->fileid].position + size);
}
p->position = LONG(transfer[i].position);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment