From b8dcc7535edc6b5d27a423468be9093fa49a339d Mon Sep 17 00:00:00 2001 From: Eric Wasylishen Date: Wed, 15 Jun 2022 23:27:39 -0600 Subject: [PATCH 1/2] qbsp: rename FreeAllPortals -> FreeTreePortals_r --- include/qbsp/portals.hh | 2 +- qbsp/portals.cc | 13 +++++++------ qbsp/qbsp.cc | 2 +- qbsp/surfaces.cc | 2 +- 4 files changed, 10 insertions(+), 9 deletions(-) diff --git a/include/qbsp/portals.hh b/include/qbsp/portals.hh index e2928bbc..aa918c2c 100644 --- a/include/qbsp/portals.hh +++ b/include/qbsp/portals.hh @@ -42,5 +42,5 @@ struct tree_t contentflags_t ClusterContents(const node_t *node); void MakeTreePortals(tree_t *tree); -void FreeAllPortals(node_t *node); +void FreeTreePortals_r(node_t *node); void WritePortalFile(tree_t *tree); diff --git a/qbsp/portals.cc b/qbsp/portals.cc index 9604299f..f3ab1bc9 100644 --- a/qbsp/portals.cc +++ b/qbsp/portals.cc @@ -620,7 +620,7 @@ void MakeTreePortals(tree_t *tree) state.iNodesDone = 0; - FreeAllPortals(tree->headnode); + FreeTreePortals_r(tree->headnode); AssertNoPortals(tree->headnode); MakeHeadnodePortals(tree); @@ -640,10 +640,11 @@ void WritePortalFile(tree_t *tree) state.iNodesDone = 0; - FreeAllPortals(tree->headnode); + FreeTreePortals_r(tree->headnode); AssertNoPortals(tree->headnode); MakeHeadnodePortals(tree); + CutNodePortals_r(tree->headnode, &state); /* save portal file for vis tracing */ @@ -656,17 +657,17 @@ void WritePortalFile(tree_t *tree) /* ================== -FreeAllPortals +FreeTreePortals_r ================== */ -void FreeAllPortals(node_t *node) +void FreeTreePortals_r(node_t *node) { portal_t *p, *nextp; if (node->planenum != PLANENUM_LEAF) { - FreeAllPortals(node->children[0]); - FreeAllPortals(node->children[1]); + FreeTreePortals_r(node->children[0]); + FreeTreePortals_r(node->children[1]); } for (p = node->portals; p; p = nextp) { diff --git a/qbsp/qbsp.cc b/qbsp/qbsp.cc index 4eb35ad5..1d1d2ae6 100644 --- a/qbsp/qbsp.cc +++ b/qbsp/qbsp.cc @@ -895,7 +895,7 @@ static void ProcessEntity(mapentity_t *entity, const int hullnum) tree = BrushBSP(entity, false); } - FreeAllPortals(tree->headnode); + FreeTreePortals_r(tree->headnode); PruneNodes(tree->headnode); diff --git a/qbsp/surfaces.cc b/qbsp/surfaces.cc index 5f176ece..613dffee 100644 --- a/qbsp/surfaces.cc +++ b/qbsp/surfaces.cc @@ -157,7 +157,7 @@ std::list SubdivideFace(face_t *f) static void FreeNode(node_t *node) { - FreeAllPortals(node); + FreeTreePortals_r(node); for (face_t *f : node->facelist) { delete f; } From b164b7b250711d115e7fdaf74cbfd820968497dc Mon Sep 17 00:00:00 2001 From: Eric Wasylishen Date: Thu, 16 Jun 2022 17:14:40 -0600 Subject: [PATCH 2/2] bspfile: fix bad optional access on Q1 maps --- include/common/bspfile.hh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/include/common/bspfile.hh b/include/common/bspfile.hh index bf79eb9f..34a2dcb1 100644 --- a/include/common/bspfile.hh +++ b/include/common/bspfile.hh @@ -351,8 +351,8 @@ struct fmt::formatter return format_to(ctx.out(), "{}:{}", ident, v.version.value()); } - // Q1-esque BSPs are printed as, ex, 29 - return format_to(ctx.out(), "{}", v.version.value()); + // Q1-esque BSPs are printed as, ex, bsp29 + return format_to(ctx.out(), "{}", v.short_name); } };