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:
parent
35024bfa7d
commit
d14793f7ab
|
|
@ -40,10 +40,9 @@ main(int argc, char **argv)
|
|||
DefaultExtension(source, ".bsp");
|
||||
printf("%s\n", source);
|
||||
|
||||
LoadBSPFile(source);
|
||||
|
||||
GetBSPGlobals(&bsp);
|
||||
LoadBSPFile(source, &bsp);
|
||||
PrintBSPFileSizes(&bsp);
|
||||
|
||||
printf("---------------------\n");
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -96,10 +96,10 @@ ExportWad(FILE *f)
|
|||
int
|
||||
main(int argc, char **argv)
|
||||
{
|
||||
int i;
|
||||
int err;
|
||||
bspdata_t bsp;
|
||||
char source[1024];
|
||||
FILE *f;
|
||||
int i, err;
|
||||
|
||||
printf("---- bsputil / TyrUtils " stringify(TYRUTILS_VERSION) " ----\n");
|
||||
if (argc == 1) {
|
||||
|
|
@ -113,7 +113,8 @@ main(int argc, char **argv)
|
|||
printf("---------------------\n");
|
||||
printf("%s\n", source);
|
||||
|
||||
LoadBSPFile(source);
|
||||
LoadBSPFile(source, &bsp);
|
||||
SetBSPGlobals(&bsp); /* FIXME */
|
||||
|
||||
for (i = 0; i < argc - 1; i++) {
|
||||
if (!strcmp(argv[i], "--extract-entities")) {
|
||||
|
|
@ -125,7 +126,7 @@ main(int argc, char **argv)
|
|||
if (!f)
|
||||
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)
|
||||
Error("%s", strerror(errno));
|
||||
|
||||
|
|
|
|||
|
|
@ -354,9 +354,8 @@ CopyLump(const dheader_t *header, int lumpnum, void *destptr)
|
|||
* =============
|
||||
*/
|
||||
int
|
||||
LoadBSPFile(const char *filename)
|
||||
LoadBSPFile(const char *filename, bspdata_t *bsp)
|
||||
{
|
||||
bspdata_t bsp;
|
||||
dheader_t *header;
|
||||
int i, version;
|
||||
|
||||
|
|
@ -376,32 +375,29 @@ LoadBSPFile(const char *filename)
|
|||
}
|
||||
|
||||
/* copy the data */
|
||||
memset(&bsp, 0, sizeof(bsp));
|
||||
bsp.nummodels = CopyLump(header, LUMP_MODELS, &bsp.dmodels);
|
||||
bsp.numvertexes = CopyLump(header, LUMP_VERTEXES, &bsp.dvertexes);
|
||||
bsp.numplanes = CopyLump(header, LUMP_PLANES, &bsp.dplanes);
|
||||
bsp.numleafs = CopyLump(header, LUMP_LEAFS, &bsp.dleafs);
|
||||
bsp.numnodes = CopyLump(header, LUMP_NODES, &bsp.dnodes);
|
||||
bsp.numtexinfo = CopyLump(header, LUMP_TEXINFO, &bsp.texinfo);
|
||||
bsp.numclipnodes = CopyLump(header, LUMP_CLIPNODES, &bsp.dclipnodes);
|
||||
bsp.numfaces = CopyLump(header, LUMP_FACES, &bsp.dfaces);
|
||||
bsp.nummarksurfaces = CopyLump(header, LUMP_MARKSURFACES, &bsp.dmarksurfaces);
|
||||
bsp.numsurfedges = CopyLump(header, LUMP_SURFEDGES, &bsp.dsurfedges);
|
||||
bsp.numedges = CopyLump(header, LUMP_EDGES, &bsp.dedges);
|
||||
memset(bsp, 0, sizeof(*bsp));
|
||||
bsp->nummodels = CopyLump(header, LUMP_MODELS, &bsp->dmodels);
|
||||
bsp->numvertexes = CopyLump(header, LUMP_VERTEXES, &bsp->dvertexes);
|
||||
bsp->numplanes = CopyLump(header, LUMP_PLANES, &bsp->dplanes);
|
||||
bsp->numleafs = CopyLump(header, LUMP_LEAFS, &bsp->dleafs);
|
||||
bsp->numnodes = CopyLump(header, LUMP_NODES, &bsp->dnodes);
|
||||
bsp->numtexinfo = CopyLump(header, LUMP_TEXINFO, &bsp->texinfo);
|
||||
bsp->numclipnodes = CopyLump(header, LUMP_CLIPNODES, &bsp->dclipnodes);
|
||||
bsp->numfaces = CopyLump(header, LUMP_FACES, &bsp->dfaces);
|
||||
bsp->nummarksurfaces = CopyLump(header, LUMP_MARKSURFACES, &bsp->dmarksurfaces);
|
||||
bsp->numsurfedges = CopyLump(header, LUMP_SURFEDGES, &bsp->dsurfedges);
|
||||
bsp->numedges = CopyLump(header, LUMP_EDGES, &bsp->dedges);
|
||||
|
||||
bsp.texdatasize = CopyLump(header, LUMP_TEXTURES, &bsp.dtexdata.base);
|
||||
bsp.visdatasize = CopyLump(header, LUMP_VISIBILITY, &bsp.dvisdata);
|
||||
bsp.lightdatasize = CopyLump(header, LUMP_LIGHTING, &bsp.dlightdata);
|
||||
bsp.entdatasize = CopyLump(header, LUMP_ENTITIES, &bsp.dentdata);
|
||||
bsp->texdatasize = CopyLump(header, LUMP_TEXTURES, &bsp->dtexdata.base);
|
||||
bsp->visdatasize = CopyLump(header, LUMP_VISIBILITY, &bsp->dvisdata);
|
||||
bsp->lightdatasize = CopyLump(header, LUMP_LIGHTING, &bsp->dlightdata);
|
||||
bsp->entdatasize = CopyLump(header, LUMP_ENTITIES, &bsp->dentdata);
|
||||
|
||||
/* everything has been copied out */
|
||||
free(header);
|
||||
|
||||
/* swap everything */
|
||||
SwapBSPFile(&bsp, TO_CPU);
|
||||
|
||||
/* Set the bsp globals for compatibility */
|
||||
SetBSPGlobals(&bsp);
|
||||
SwapBSPFile(bsp, TO_CPU);
|
||||
|
||||
/* Return the version */
|
||||
return version;
|
||||
|
|
|
|||
|
|
@ -308,7 +308,7 @@ void GetBSPGlobals(bspdata_t *bspdata);
|
|||
void SetBSPGlobals(const bspdata_t *bspdata);
|
||||
|
||||
/* 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 PrintBSPFileSizes(const bspdata_t *bsp);
|
||||
|
||||
|
|
|
|||
|
|
@ -297,7 +297,8 @@ main(int argc, const char **argv)
|
|||
strcpy(source, argv[i]);
|
||||
StripExtension(source);
|
||||
DefaultExtension(source, ".bsp");
|
||||
bsp_version = LoadBSPFile(source);
|
||||
bsp_version = LoadBSPFile(source, &bsp);
|
||||
SetBSPGlobals(&bsp); /* FIXME */
|
||||
|
||||
LoadEntities();
|
||||
MakeTnodes();
|
||||
|
|
@ -308,6 +309,7 @@ main(int argc, const char **argv)
|
|||
|
||||
WriteEntitiesToString();
|
||||
|
||||
/* Still need to update from globals */
|
||||
GetBSPGlobals(&bsp);
|
||||
WriteBSPFile(source, &bsp, bsp_version);
|
||||
|
||||
|
|
|
|||
|
|
@ -1224,7 +1224,8 @@ main(int argc, char **argv)
|
|||
StripExtension(sourcefile);
|
||||
DefaultExtension(sourcefile, ".bsp");
|
||||
|
||||
bsp_version = LoadBSPFile(sourcefile);
|
||||
bsp_version = LoadBSPFile(sourcefile, &bsp);
|
||||
SetBSPGlobals(&bsp); /* FIXME */
|
||||
|
||||
strcpy(portalfile, argv[i]);
|
||||
StripExtension(portalfile);
|
||||
|
|
@ -1256,6 +1257,7 @@ main(int argc, char **argv)
|
|||
|
||||
CalcAmbientSounds();
|
||||
|
||||
/* still need to update from globals */
|
||||
GetBSPGlobals(&bsp);
|
||||
WriteBSPFile(sourcefile, &bsp, bsp_version);
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue