From 099b75eb609692a5b3b4631af295c6ae348553fd Mon Sep 17 00:00:00 2001 From: skyjake Date: Tue, 8 Aug 2006 20:38:57 +0000 Subject: [PATCH] Removed fixed 64 file limit in multiple init. --- doomsday/engine/portable/src/dd_wad.c | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/doomsday/engine/portable/src/dd_wad.c b/doomsday/engine/portable/src/dd_wad.c index b489b1a02f..b23bf5308b 100644 --- a/doomsday/engine/portable/src/dd_wad.c +++ b/doomsday/engine/portable/src/dd_wad.c @@ -723,8 +723,13 @@ int W_IsIWAD(char *fn) void W_InitMultipleFiles(char **filenames) { char **ptr; - byte loaded[64]; // Enough? + int numLoaded = 0; + byte *loaded = 0; + // Count number of files. + for(ptr = filenames; *ptr; ptr++, numLoaded++); + loaded = calloc(numLoaded, 1); + iwadLoaded = false; // Open all the files, load headers, and count lumps @@ -734,8 +739,6 @@ void W_InitMultipleFiles(char **filenames) // This'll force the loader NOT the flag new records Runtime. (?) loadingForStartup = true; - memset(loaded, 0, sizeof(loaded)); - // IWAD(s) must be loaded first. Let's see if one has been specified // with -iwad or -file options. for(ptr = filenames; *ptr; ptr++) @@ -754,9 +757,13 @@ void W_InitMultipleFiles(char **filenames) if(!loaded[ptr - filenames]) W_AddFile(*ptr, false); + // Bookkeeping no longer needed. + free(loaded); + loaded = NULL; + if(!numlumps) { - Con_Error("W_InitMultipleFiles: no files found"); + Con_Error("W_InitMultipleFiles: no files found.\n"); } }