diff --git a/include/qbsp/csg.hh b/include/qbsp/csg.hh index 41110e77..2fb1720f 100644 --- a/include/qbsp/csg.hh +++ b/include/qbsp/csg.hh @@ -36,3 +36,4 @@ std::unique_ptr NewFaceFromFace(const face_t *in); std::unique_ptr CopyFace(const face_t* in); std::tuple, std::unique_ptr> SplitFace(std::unique_ptr in, const qplane3d &split); void UpdateFaceSphere(face_t *in); +std::vector> MakeBspBrushList(mapentity_t *entity); diff --git a/qbsp/brushbsp.cc b/qbsp/brushbsp.cc index a4949419..27b44cf0 100644 --- a/qbsp/brushbsp.cc +++ b/qbsp/brushbsp.cc @@ -970,15 +970,7 @@ static std::unique_ptr BrushBSP(mapentity_t *entity, std::vector BrushBSP(mapentity_t *entity, bool midsplit) { - // set the original pointers - std::vector> brushcopies; - for (const auto &original : entity->brushes) { - auto copy = original->copy_unique(); - copy->original = original.get(); - brushcopies.push_back(std::move(copy)); - } - - auto tree = BrushBSP(entity, std::move(brushcopies)); + auto tree = BrushBSP(entity, MakeBspBrushList(entity)); return tree; } diff --git a/qbsp/csg.cc b/qbsp/csg.cc index be2935e9..a6808d7f 100644 --- a/qbsp/csg.cc +++ b/qbsp/csg.cc @@ -123,3 +123,16 @@ std::tuple, std::unique_ptr> SplitFace(std::uniq return {std::move(new_front), std::move(new_back)}; } + +std::vector> MakeBspBrushList(mapentity_t *entity) +{ + // set the original pointers + std::vector> brushcopies; + for (const auto &original : entity->brushes) { + auto copy = original->copy_unique(); + copy->original = original.get(); + brushcopies.push_back(std::move(copy)); + } + + return brushcopies; +}