common: make LoadBSPFile take a bspdata struct

No longer update the globals in this function - make the callers do it
instead.

bspinfo no longer refers to the globals at all.

Signed-off-by: Kevin Shanahan <kmshanah@disenchant.net>
This commit is contained in:
Kevin Shanahan 2013-04-20 16:51:45 +09:30
parent 35024bfa7d
commit d14793f7ab
6 changed files with 32 additions and 32 deletions

View File

@ -40,10 +40,9 @@ main(int argc, char **argv)
DefaultExtension(source, ".bsp"); DefaultExtension(source, ".bsp");
printf("%s\n", source); printf("%s\n", source);
LoadBSPFile(source); LoadBSPFile(source, &bsp);
GetBSPGlobals(&bsp);
PrintBSPFileSizes(&bsp); PrintBSPFileSizes(&bsp);
printf("---------------------\n"); printf("---------------------\n");
} }

View File

@ -96,10 +96,10 @@ ExportWad(FILE *f)
int int
main(int argc, char **argv) main(int argc, char **argv)
{ {
int i; bspdata_t bsp;
int err;
char source[1024]; char source[1024];
FILE *f; FILE *f;
int i, err;
printf("---- bsputil / TyrUtils " stringify(TYRUTILS_VERSION) " ----\n"); printf("---- bsputil / TyrUtils " stringify(TYRUTILS_VERSION) " ----\n");
if (argc == 1) { if (argc == 1) {
@ -113,7 +113,8 @@ main(int argc, char **argv)
printf("---------------------\n"); printf("---------------------\n");
printf("%s\n", source); printf("%s\n", source);
LoadBSPFile(source); LoadBSPFile(source, &bsp);
SetBSPGlobals(&bsp); /* FIXME */
for (i = 0; i < argc - 1; i++) { for (i = 0; i < argc - 1; i++) {
if (!strcmp(argv[i], "--extract-entities")) { if (!strcmp(argv[i], "--extract-entities")) {
@ -125,7 +126,7 @@ main(int argc, char **argv)
if (!f) if (!f)
Error("couldn't open %s for writing\n", source); Error("couldn't open %s for writing\n", source);
err = fwrite(dentdata, sizeof(char), entdatasize - 1, f); err = fwrite(bsp.dentdata, sizeof(char), bsp.entdatasize - 1, f);
if (err != entdatasize - 1) if (err != entdatasize - 1)
Error("%s", strerror(errno)); Error("%s", strerror(errno));

View File

@ -354,9 +354,8 @@ CopyLump(const dheader_t *header, int lumpnum, void *destptr)
* ============= * =============
*/ */
int int
LoadBSPFile(const char *filename) LoadBSPFile(const char *filename, bspdata_t *bsp)
{ {
bspdata_t bsp;
dheader_t *header; dheader_t *header;
int i, version; int i, version;
@ -376,32 +375,29 @@ LoadBSPFile(const char *filename)
} }
/* copy the data */ /* copy the data */
memset(&bsp, 0, sizeof(bsp)); memset(bsp, 0, sizeof(*bsp));
bsp.nummodels = CopyLump(header, LUMP_MODELS, &bsp.dmodels); bsp->nummodels = CopyLump(header, LUMP_MODELS, &bsp->dmodels);
bsp.numvertexes = CopyLump(header, LUMP_VERTEXES, &bsp.dvertexes); bsp->numvertexes = CopyLump(header, LUMP_VERTEXES, &bsp->dvertexes);
bsp.numplanes = CopyLump(header, LUMP_PLANES, &bsp.dplanes); bsp->numplanes = CopyLump(header, LUMP_PLANES, &bsp->dplanes);
bsp.numleafs = CopyLump(header, LUMP_LEAFS, &bsp.dleafs); bsp->numleafs = CopyLump(header, LUMP_LEAFS, &bsp->dleafs);
bsp.numnodes = CopyLump(header, LUMP_NODES, &bsp.dnodes); bsp->numnodes = CopyLump(header, LUMP_NODES, &bsp->dnodes);
bsp.numtexinfo = CopyLump(header, LUMP_TEXINFO, &bsp.texinfo); bsp->numtexinfo = CopyLump(header, LUMP_TEXINFO, &bsp->texinfo);
bsp.numclipnodes = CopyLump(header, LUMP_CLIPNODES, &bsp.dclipnodes); bsp->numclipnodes = CopyLump(header, LUMP_CLIPNODES, &bsp->dclipnodes);
bsp.numfaces = CopyLump(header, LUMP_FACES, &bsp.dfaces); bsp->numfaces = CopyLump(header, LUMP_FACES, &bsp->dfaces);
bsp.nummarksurfaces = CopyLump(header, LUMP_MARKSURFACES, &bsp.dmarksurfaces); bsp->nummarksurfaces = CopyLump(header, LUMP_MARKSURFACES, &bsp->dmarksurfaces);
bsp.numsurfedges = CopyLump(header, LUMP_SURFEDGES, &bsp.dsurfedges); bsp->numsurfedges = CopyLump(header, LUMP_SURFEDGES, &bsp->dsurfedges);
bsp.numedges = CopyLump(header, LUMP_EDGES, &bsp.dedges); bsp->numedges = CopyLump(header, LUMP_EDGES, &bsp->dedges);
bsp.texdatasize = CopyLump(header, LUMP_TEXTURES, &bsp.dtexdata.base); bsp->texdatasize = CopyLump(header, LUMP_TEXTURES, &bsp->dtexdata.base);
bsp.visdatasize = CopyLump(header, LUMP_VISIBILITY, &bsp.dvisdata); bsp->visdatasize = CopyLump(header, LUMP_VISIBILITY, &bsp->dvisdata);
bsp.lightdatasize = CopyLump(header, LUMP_LIGHTING, &bsp.dlightdata); bsp->lightdatasize = CopyLump(header, LUMP_LIGHTING, &bsp->dlightdata);
bsp.entdatasize = CopyLump(header, LUMP_ENTITIES, &bsp.dentdata); bsp->entdatasize = CopyLump(header, LUMP_ENTITIES, &bsp->dentdata);
/* everything has been copied out */ /* everything has been copied out */
free(header); free(header);
/* swap everything */ /* swap everything */
SwapBSPFile(&bsp, TO_CPU); SwapBSPFile(bsp, TO_CPU);
/* Set the bsp globals for compatibility */
SetBSPGlobals(&bsp);
/* Return the version */ /* Return the version */
return version; return version;

View File

@ -308,7 +308,7 @@ void GetBSPGlobals(bspdata_t *bspdata);
void SetBSPGlobals(const bspdata_t *bspdata); void SetBSPGlobals(const bspdata_t *bspdata);
/* LoadBSPFile returns the BSP version... */ /* LoadBSPFile returns the BSP version... */
int LoadBSPFile(const char *filename); int LoadBSPFile(const char *filename, bspdata_t *bsp);
void WriteBSPFile(const char *filename, bspdata_t *bsp, int version); void WriteBSPFile(const char *filename, bspdata_t *bsp, int version);
void PrintBSPFileSizes(const bspdata_t *bsp); void PrintBSPFileSizes(const bspdata_t *bsp);

View File

@ -297,7 +297,8 @@ main(int argc, const char **argv)
strcpy(source, argv[i]); strcpy(source, argv[i]);
StripExtension(source); StripExtension(source);
DefaultExtension(source, ".bsp"); DefaultExtension(source, ".bsp");
bsp_version = LoadBSPFile(source); bsp_version = LoadBSPFile(source, &bsp);
SetBSPGlobals(&bsp); /* FIXME */
LoadEntities(); LoadEntities();
MakeTnodes(); MakeTnodes();
@ -308,6 +309,7 @@ main(int argc, const char **argv)
WriteEntitiesToString(); WriteEntitiesToString();
/* Still need to update from globals */
GetBSPGlobals(&bsp); GetBSPGlobals(&bsp);
WriteBSPFile(source, &bsp, bsp_version); WriteBSPFile(source, &bsp, bsp_version);

View File

@ -1224,7 +1224,8 @@ main(int argc, char **argv)
StripExtension(sourcefile); StripExtension(sourcefile);
DefaultExtension(sourcefile, ".bsp"); DefaultExtension(sourcefile, ".bsp");
bsp_version = LoadBSPFile(sourcefile); bsp_version = LoadBSPFile(sourcefile, &bsp);
SetBSPGlobals(&bsp); /* FIXME */
strcpy(portalfile, argv[i]); strcpy(portalfile, argv[i]);
StripExtension(portalfile); StripExtension(portalfile);
@ -1256,6 +1257,7 @@ main(int argc, char **argv)
CalcAmbientSounds(); CalcAmbientSounds();
/* still need to update from globals */
GetBSPGlobals(&bsp); GetBSPGlobals(&bsp);
WriteBSPFile(sourcefile, &bsp, bsp_version); WriteBSPFile(sourcefile, &bsp, bsp_version);