From 09da3876897296079002d6d392c682b2e84b6b2b Mon Sep 17 00:00:00 2001 From: Christoph Oelckers Date: Thu, 16 Sep 2010 14:26:56 +0000 Subject: [PATCH] - added: If a map contains both extended normal and GL nodes the GL nodes loader will now load the prebuilt GL nodes. SVN r2797 (trunk) --- src/p_glnodes.cpp | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) diff --git a/src/p_glnodes.cpp b/src/p_glnodes.cpp index 382f026b2..8a491f595 100644 --- a/src/p_glnodes.cpp +++ b/src/p_glnodes.cpp @@ -851,6 +851,48 @@ static int FindGLNodesInFile(FileReader * f, const char * label) bool P_LoadGLNodes(MapData * map) { + + if (map->MapLumps[ML_GLZNODES].Size != 0) + { + const int idcheck = MAKE_ID('Z','G','L','N'); + const int idcheck2 = MAKE_ID('Z','G','L','2'); + const int idcheck3 = MAKE_ID('X','G','L','N'); + const int idcheck4 = MAKE_ID('X','G','L','2'); + int id; + + map->Seek(ML_GLZNODES); + map->file->Read (&id, 4); + if (id == idcheck || id == idcheck2 || id == idcheck3 || id == idcheck4) + { + try + { + subsectors = NULL; + segs = NULL; + nodes = NULL; + P_LoadZNodes (*map->file, id); + return true; + } + catch (CRecoverableError &) + { + if (subsectors != NULL) + { + delete[] subsectors; + subsectors = NULL; + } + if (segs != NULL) + { + delete[] segs; + segs = NULL; + } + if (nodes != NULL) + { + delete[] nodes; + nodes = NULL; + } + } + } + } + if (!CheckCachedNodes(map)) { wadlump_t gwalumps[4];