Not necessary on-topic devwork, but using global variables I developed in internal to make there less code repetition/iteration in the WAD limit checks.

This commit is contained in:
toaster 2018-06-18 12:49:06 +01:00
parent 247f3e9b03
commit 00d75840b6
3 changed files with 10 additions and 39 deletions

View File

@ -3081,26 +3081,14 @@ static void Command_Addfile(void)
if (*p == '\\' || *p == '/' || *p == ':') if (*p == '\\' || *p == '/' || *p == ':')
break; break;
++p; ++p;
// check total packet size and no of files currently loaded // check total packet size and no of files currently loaded
// See W_LoadWadFile in w_wad.c
if ((numwadfiles >= MAX_WADFILES)
|| ((packetsizetally + nameonlylength(fn) + 22) > MAXFILENEEDED*sizeof(UINT8)))
{ {
size_t packetsize = 0; CONS_Alert(CONS_ERROR, M_GetText("Too many files loaded to add %s\n"), fn);
serverinfo_pak *dummycheck = NULL; return;
// Shut the compiler up.
(void)dummycheck;
// See W_LoadWadFile in w_wad.c
for (i = 0; i < numwadfiles; i++)
packetsize += nameonlylength(wadfiles[i]->filename) + 22;
packetsize += nameonlylength(fn) + 22;
if ((numwadfiles >= MAX_WADFILES)
|| (packetsize > sizeof(dummycheck->fileneeded)))
{
CONS_Alert(CONS_ERROR, M_GetText("Too many files loaded to add %s\n"), fn);
return;
}
} }
WRITESTRINGN(buf_p,p,240); WRITESTRINGN(buf_p,p,240);
@ -3150,11 +3138,6 @@ static void Got_RequestAddfilecmd(UINT8 **cp, INT32 playernum)
boolean kick = false; boolean kick = false;
boolean toomany = false; boolean toomany = false;
INT32 i; INT32 i;
size_t packetsize = 0;
serverinfo_pak *dummycheck = NULL;
// Shut the compiler up.
(void)dummycheck;
READSTRINGN(*cp, filename, 240); READSTRINGN(*cp, filename, 240);
READMEM(*cp, md5sum, 16); READMEM(*cp, md5sum, 16);
@ -3181,13 +3164,8 @@ static void Got_RequestAddfilecmd(UINT8 **cp, INT32 playernum)
} }
// See W_LoadWadFile in w_wad.c // See W_LoadWadFile in w_wad.c
for (i = 0; i < numwadfiles; i++)
packetsize += nameonlylength(wadfiles[i]->filename) + 22;
packetsize += nameonlylength(filename) + 22;
if ((numwadfiles >= MAX_WADFILES) if ((numwadfiles >= MAX_WADFILES)
|| (packetsize > sizeof(dummycheck->fileneeded))) || ((packetsizetally + nameonlylength(filename) + 22) > MAXFILENEEDED*sizeof(UINT8)))
toomany = true; toomany = true;
else else
ncs = findfile(filename,md5sum,true); ncs = findfile(filename,md5sum,true);

View File

@ -324,10 +324,6 @@ INT32 CL_CheckFiles(void)
INT32 ret = 1; INT32 ret = 1;
size_t packetsize = 0; size_t packetsize = 0;
size_t filestoget = 0; size_t filestoget = 0;
serverinfo_pak *dummycheck = NULL;
// Shut the compiler up.
(void)dummycheck;
// if (M_CheckParm("-nofiles")) // if (M_CheckParm("-nofiles"))
// return 1; // return 1;
@ -371,8 +367,7 @@ INT32 CL_CheckFiles(void)
} }
// See W_LoadWadFile in w_wad.c // See W_LoadWadFile in w_wad.c
for (i = 0; i < numwadfiles; i++) packetsize = packetsizetally;
packetsize += nameonlylength(wadfiles[i]->filename) + 22;
for (i = 1; i < fileneedednum; i++) for (i = 1; i < fileneedednum; i++)
{ {
@ -396,7 +391,7 @@ INT32 CL_CheckFiles(void)
packetsize += nameonlylength(fileneeded[i].filename) + 22; packetsize += nameonlylength(fileneeded[i].filename) + 22;
if ((numwadfiles+filestoget >= MAX_WADFILES) if ((numwadfiles+filestoget >= MAX_WADFILES)
|| (packetsize > sizeof(dummycheck->fileneeded))) || (packetsize > MAXFILENEEDED*sizeof(UINT8)))
return 3; return 3;
filestoget++; filestoget++;

View File

@ -360,9 +360,7 @@ UINT16 W_InitFile(const char *filename)
// see PutFileNeeded in d_netfil.c // see PutFileNeeded in d_netfil.c
if ((important = !W_VerifyNMUSlumps(filename))) if ((important = !W_VerifyNMUSlumps(filename)))
{ {
packetsize = packetsizetally; packetsize = packetsizetally + nameonlylength(filename) + 22;
packetsize += nameonlylength(filename) + 22;
if (packetsize > MAXFILENEEDED*sizeof(UINT8)) if (packetsize > MAXFILENEEDED*sizeof(UINT8))
{ {