diff --git a/bsputil/bsputil.cc b/bsputil/bsputil.cc index 43822f06..5dc65156 100644 --- a/bsputil/bsputil.cc +++ b/bsputil/bsputil.cc @@ -31,6 +31,7 @@ #include #include #include +#include // std::sort /* FIXME - share header with qbsp, etc. */ typedef struct { @@ -236,6 +237,7 @@ CheckBSPFile(const bsp2_t *bsp) std::set referenced_texinfos; std::set referenced_planenums; std::set referenced_vertexes; + std::set used_lightstyles; /* faces */ for (i = 0; i < bsp->numfaces; i++) { @@ -278,6 +280,10 @@ CheckBSPFile(const bsp2_t *bsp) printf("warning: face %d has edges out of range (%d..%d >= %d)\n", i, face->firstedge, face->firstedge + face->numedges - 1, bsp->numsurfedges); + + for (int j=0; j<4; j++) { + used_lightstyles.insert(face->styles[j]); + } } /* edges */ @@ -424,6 +430,20 @@ CheckBSPFile(const bsp2_t *bsp) printf("%d unique visdata offsets for %d leafs\n", static_cast(visofs_set.size()), bsp->numleafs); printf("%d visleafs in world model\n", bsp->dmodels[0].visleafs); + + /* unique lightstyles */ + printf("%d lightstyles used:\n", static_cast(used_lightstyles.size())); + { + std::vector v; + for (uint8_t style : used_lightstyles) { + v.push_back(static_cast(style)); + } + std::sort(v.begin(), v.end()); + for (int style : v) { + printf("\t%d\n", style); + } + } + } int