qbsp: delete bspfile.cc/hh
This commit is contained in:
parent
ad2ac31e71
commit
208a9610ad
|
|
@ -35,7 +35,6 @@ set(COMMON_INCLUDES
|
|||
${CMAKE_SOURCE_DIR}/include/common/bsputils.hh)
|
||||
|
||||
set(QBSP_INCLUDES
|
||||
${CMAKE_SOURCE_DIR}/include/qbsp/bspfile.hh
|
||||
${CMAKE_SOURCE_DIR}/include/qbsp/file.hh
|
||||
${CMAKE_SOURCE_DIR}/include/qbsp/parser.hh
|
||||
${CMAKE_SOURCE_DIR}/include/qbsp/qbsp.hh
|
||||
|
|
@ -67,7 +66,6 @@ set(QBSP_SOURCES
|
|||
${CMAKE_SOURCE_DIR}/common/polylib.cc
|
||||
${CMAKE_SOURCE_DIR}/common/bsputils.cc
|
||||
${CMAKE_SOURCE_DIR}/qbsp/brush.cc
|
||||
${CMAKE_SOURCE_DIR}/qbsp/bspfile.cc
|
||||
${CMAKE_SOURCE_DIR}/qbsp/csg4.cc
|
||||
${CMAKE_SOURCE_DIR}/qbsp/file.cc
|
||||
${CMAKE_SOURCE_DIR}/qbsp/globals.cc
|
||||
|
|
|
|||
|
|
@ -1,35 +0,0 @@
|
|||
/*
|
||||
Copyright (C) 1996-1997 Id Software, Inc.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
|
||||
See file, 'COPYING', for details.
|
||||
*/
|
||||
|
||||
#ifndef __BSPFILE_H__
|
||||
#define __BSPFILE_H__
|
||||
|
||||
#include <string>
|
||||
|
||||
#include <stdint.h>
|
||||
|
||||
#include <common/bspfile.hh>
|
||||
|
||||
void LoadBSPFile(void);
|
||||
void WriteBSPFile(void);
|
||||
void PrintBSPFileSizes(void);
|
||||
void BSPX_AddLump(const char *xname, const void *xdata, size_t xsize);
|
||||
|
||||
#endif /* __BSPFILE_H__ */
|
||||
|
|
@ -38,7 +38,8 @@
|
|||
#include <string.h>
|
||||
#include <time.h>
|
||||
|
||||
#include "bspfile.hh"
|
||||
#include <common/bspfile.hh>
|
||||
|
||||
#include "file.hh"
|
||||
#include "warnerr.hh"
|
||||
|
||||
|
|
|
|||
119
qbsp/bspfile.cc
119
qbsp/bspfile.cc
|
|
@ -1,119 +0,0 @@
|
|||
/*
|
||||
Copyright (C) 1996-1997 Id Software, Inc.
|
||||
Copyright (C) 1997 Greg Lewis
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
|
||||
See file, 'COPYING', for details.
|
||||
*/
|
||||
|
||||
#include <stddef.h>
|
||||
|
||||
#include <qbsp/file.hh>
|
||||
#include <qbsp/qbsp.hh>
|
||||
|
||||
static dheader_t *header;
|
||||
|
||||
/*
|
||||
=============
|
||||
LoadBSPFile
|
||||
=============
|
||||
*/
|
||||
void
|
||||
LoadBSPFile(void)
|
||||
{
|
||||
}
|
||||
|
||||
void BSPX_AddLump(const char *xname, const void *xdata, size_t xsize)
|
||||
{
|
||||
}
|
||||
|
||||
template <class C>
|
||||
static void CopyVector(const std::vector<C>& vec, int* elementCountOut, C** arrayCopyOut)
|
||||
{
|
||||
const size_t numBytes = sizeof(C) * vec.size();
|
||||
void* data = (void*)malloc(numBytes);
|
||||
memcpy(data, vec.data(), numBytes);
|
||||
|
||||
*elementCountOut = vec.size();
|
||||
*arrayCopyOut = (C*)data;
|
||||
}
|
||||
|
||||
static void CopyString(const std::string& string, bool addNullTermination, int* elementCountOut, void** arrayCopyOut)
|
||||
{
|
||||
const size_t numBytes = addNullTermination ? string.size() + 1 : string.size();
|
||||
void* data = malloc(numBytes);
|
||||
memcpy(data, string.data(), numBytes); // std::string::data() has null termination, so it's safe to copy it
|
||||
|
||||
*elementCountOut = numBytes;
|
||||
*arrayCopyOut = data;
|
||||
}
|
||||
|
||||
/*
|
||||
=============
|
||||
WriteBSPFile
|
||||
=============
|
||||
*/
|
||||
void
|
||||
WriteBSPFile(void)
|
||||
{
|
||||
bspdata_t bspdata{};
|
||||
|
||||
bspdata.version = &bspver_generic;
|
||||
bspdata.hullcount = MAX_MAP_HULLS_Q1;
|
||||
|
||||
CopyVector(map.exported_planes, &bspdata.data.mbsp.numplanes, &bspdata.data.mbsp.dplanes);
|
||||
CopyVector(map.exported_leafs_bsp29, &bspdata.data.mbsp.numleafs, &bspdata.data.mbsp.dleafs);
|
||||
CopyVector(map.exported_vertexes, &bspdata.data.mbsp.numvertexes, &bspdata.data.mbsp.dvertexes);
|
||||
CopyVector(map.exported_nodes_bsp29, &bspdata.data.mbsp.numnodes, &bspdata.data.mbsp.dnodes);
|
||||
CopyVector(map.exported_texinfos, &bspdata.data.mbsp.numtexinfo, &bspdata.data.mbsp.texinfo);
|
||||
CopyVector(map.exported_faces, &bspdata.data.mbsp.numfaces, &bspdata.data.mbsp.dfaces);
|
||||
CopyVector(map.exported_clipnodes, &bspdata.data.mbsp.numclipnodes, &bspdata.data.mbsp.dclipnodes);
|
||||
CopyVector(map.exported_marksurfaces, &bspdata.data.mbsp.numleaffaces, &bspdata.data.mbsp.dleaffaces);
|
||||
CopyVector(map.exported_surfedges, &bspdata.data.mbsp.numsurfedges, &bspdata.data.mbsp.dsurfedges);
|
||||
CopyVector(map.exported_edges, &bspdata.data.mbsp.numedges, &bspdata.data.mbsp.dedges);
|
||||
CopyVector(map.exported_models, &bspdata.data.mbsp.nummodels, &bspdata.data.mbsp.dmodels);
|
||||
|
||||
CopyString(map.exported_entities, true, &bspdata.data.mbsp.entdatasize, (void**)&bspdata.data.mbsp.dentdata);
|
||||
CopyString(map.exported_texdata, false, &bspdata.data.mbsp.texdatasize, (void**)&bspdata.data.mbsp.dtexdata);
|
||||
|
||||
// TODO: pass bspx lumps to generic bsp code so they are written
|
||||
|
||||
//GenLump("LMSHIFT", BSPX_LMSHIFT, 1);
|
||||
|
||||
ConvertBSPFormat(&bspdata, &bspver_q1); // assume q1 for now
|
||||
|
||||
StripExtension(options.szBSPName);
|
||||
strcat(options.szBSPName, ".bsp");
|
||||
|
||||
WriteBSPFile(options.szBSPName, &bspdata);
|
||||
logprint("Wrote %s\n", options.szBSPName);
|
||||
|
||||
PrintBSPFileSizes(&bspdata);
|
||||
}
|
||||
|
||||
//============================================================================
|
||||
|
||||
/*
|
||||
=============
|
||||
PrintBSPFileSizes
|
||||
|
||||
Dumps info about current file
|
||||
=============
|
||||
*/
|
||||
void
|
||||
PrintBSPFileSizes(void)
|
||||
{
|
||||
}
|
||||
|
|
@ -302,9 +302,9 @@ UpdateEntLump(void)
|
|||
FixRotateOrigin(entity);
|
||||
}
|
||||
|
||||
LoadBSPFile();
|
||||
WriteEntitiesToString();
|
||||
WriteBSPFile();
|
||||
//LoadBSPFile(); // FIXME: fix -onlyents
|
||||
WriteEntitiesToString();
|
||||
//WriteBSPFile(); // FIXME: fix -onlyents
|
||||
|
||||
if (!options.fAllverbose)
|
||||
options.fVerbose = false;
|
||||
|
|
@ -317,7 +317,7 @@ This lump replaces the clipnodes stuff for custom collision sizes.
|
|||
*/
|
||||
void BSPX_Brushes_Finalize(struct bspxbrushes_s *ctx)
|
||||
{
|
||||
BSPX_AddLump("BRUSHLIST", ctx->lumpinfo, ctx->lumpsize);
|
||||
//BSPX_AddLump("BRUSHLIST", ctx->lumpinfo, ctx->lumpsize); // FIXME: fix bspx
|
||||
|
||||
// free(ctx->lumpinfo);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -394,6 +394,72 @@ WriteExtendedTexinfoFlags(void)
|
|||
fclose(texinfofile);
|
||||
}
|
||||
|
||||
template <class C>
|
||||
static void
|
||||
CopyVector(const std::vector<C>& vec, int* elementCountOut, C** arrayCopyOut)
|
||||
{
|
||||
const size_t numBytes = sizeof(C) * vec.size();
|
||||
void* data = (void*)malloc(numBytes);
|
||||
memcpy(data, vec.data(), numBytes);
|
||||
|
||||
*elementCountOut = vec.size();
|
||||
*arrayCopyOut = (C*)data;
|
||||
}
|
||||
|
||||
static void
|
||||
CopyString(const std::string& string, bool addNullTermination, int* elementCountOut, void** arrayCopyOut)
|
||||
{
|
||||
const size_t numBytes = addNullTermination ? string.size() + 1 : string.size();
|
||||
void* data = malloc(numBytes);
|
||||
memcpy(data, string.data(), numBytes); // std::string::data() has null termination, so it's safe to copy it
|
||||
|
||||
*elementCountOut = numBytes;
|
||||
*arrayCopyOut = data;
|
||||
}
|
||||
|
||||
/*
|
||||
=============
|
||||
WriteBSPFile
|
||||
=============
|
||||
*/
|
||||
static void
|
||||
WriteBSPFile()
|
||||
{
|
||||
bspdata_t bspdata{};
|
||||
|
||||
bspdata.version = &bspver_generic;
|
||||
bspdata.hullcount = MAX_MAP_HULLS_Q1;
|
||||
|
||||
CopyVector(map.exported_planes, &bspdata.data.mbsp.numplanes, &bspdata.data.mbsp.dplanes);
|
||||
CopyVector(map.exported_leafs_bsp29, &bspdata.data.mbsp.numleafs, &bspdata.data.mbsp.dleafs);
|
||||
CopyVector(map.exported_vertexes, &bspdata.data.mbsp.numvertexes, &bspdata.data.mbsp.dvertexes);
|
||||
CopyVector(map.exported_nodes_bsp29, &bspdata.data.mbsp.numnodes, &bspdata.data.mbsp.dnodes);
|
||||
CopyVector(map.exported_texinfos, &bspdata.data.mbsp.numtexinfo, &bspdata.data.mbsp.texinfo);
|
||||
CopyVector(map.exported_faces, &bspdata.data.mbsp.numfaces, &bspdata.data.mbsp.dfaces);
|
||||
CopyVector(map.exported_clipnodes, &bspdata.data.mbsp.numclipnodes, &bspdata.data.mbsp.dclipnodes);
|
||||
CopyVector(map.exported_marksurfaces, &bspdata.data.mbsp.numleaffaces, &bspdata.data.mbsp.dleaffaces);
|
||||
CopyVector(map.exported_surfedges, &bspdata.data.mbsp.numsurfedges, &bspdata.data.mbsp.dsurfedges);
|
||||
CopyVector(map.exported_edges, &bspdata.data.mbsp.numedges, &bspdata.data.mbsp.dedges);
|
||||
CopyVector(map.exported_models, &bspdata.data.mbsp.nummodels, &bspdata.data.mbsp.dmodels);
|
||||
|
||||
CopyString(map.exported_entities, true, &bspdata.data.mbsp.entdatasize, (void**)&bspdata.data.mbsp.dentdata);
|
||||
CopyString(map.exported_texdata, false, &bspdata.data.mbsp.texdatasize, (void**)&bspdata.data.mbsp.dtexdata);
|
||||
|
||||
// TODO: pass bspx lumps to generic bsp code so they are written
|
||||
|
||||
//GenLump("LMSHIFT", BSPX_LMSHIFT, 1);
|
||||
|
||||
ConvertBSPFormat(&bspdata, &bspver_q1); // assume q1 for now
|
||||
|
||||
StripExtension(options.szBSPName);
|
||||
strcat(options.szBSPName, ".bsp");
|
||||
|
||||
WriteBSPFile(options.szBSPName, &bspdata);
|
||||
logprint("Wrote %s\n", options.szBSPName);
|
||||
|
||||
PrintBSPFileSizes(&bspdata);
|
||||
}
|
||||
|
||||
/*
|
||||
==================
|
||||
FinishBSPFile
|
||||
|
|
@ -407,7 +473,6 @@ FinishBSPFile(void)
|
|||
|
||||
WriteExtendedTexinfoFlags();
|
||||
WriteBSPFile();
|
||||
PrintBSPFileSizes();
|
||||
|
||||
options.fVerbose = options.fAllverbose;
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue