From 66f52dea233ad9d42bb49e40b75afffd20cb22a5 Mon Sep 17 00:00:00 2001 From: rexx <67599507+r-ex@users.noreply.github.com> Date: Sat, 20 May 2023 14:54:00 +0100 Subject: [PATCH] fix missing valid external lump check bsp_lump loading was missing a check for if the lump is supposed to be able to load from disk also removes VERTEX lumps from loading from disk due to crashes that occur when they are kept --- r5dev/engine/modelloader.cpp | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/r5dev/engine/modelloader.cpp b/r5dev/engine/modelloader.cpp index b8ac75d0..a24d637b 100644 --- a/r5dev/engine/modelloader.cpp +++ b/r5dev/engine/modelloader.cpp @@ -37,10 +37,10 @@ bool IsLumpIdxValid(int lumpType) case LUMP_UNKNOWN_37: case LUMP_UNKNOWN_38: case LUMP_UNKNOWN_39: - case LUMP_VERTEX_UNLIT: - case LUMP_VERTEX_LIT_FLAT: - case LUMP_VERTEX_LIT_BUMP: - case LUMP_VERTEX_UNLIT_TS: + //case LUMP_VERTEX_UNLIT: + //case LUMP_VERTEX_LIT_FLAT: + //case LUMP_VERTEX_LIT_BUMP: + //case LUMP_VERTEX_UNLIT_TS: case LUMP_MESH_INDICES: case LUMP_LIGHTMAP_DATA_SKY: case LUMP_CSM_AABB_NODES: @@ -182,12 +182,12 @@ void CMapLoadHelper::Constructor(CMapLoadHelper* loader, int lumpToLoad) if (loader->m_nLumpSize) { - FileHandle_t hLumpFile = FileSystem()->Open(pathBuf, "rb"); - loader->m_pData = loader->m_pRawData; - if (hLumpFile != FILESYSTEM_INVALID_HANDLE) + FileHandle_t hLumpFile; + if (IsLumpIdxValid(lumpToLoad) && (hLumpFile = FileSystem()->Open(pathBuf, "rb"), hLumpFile != FILESYSTEM_INVALID_HANDLE)) { + //DevMsg(eDLL_T::ENGINE, "Loading lump %.4x from file. Buffer: %p\n", lumpToLoad, loader->m_pRawData); FileSystem()->ReadEx(loader->m_pRawData, bytesToRead, bytesToRead, hLumpFile); FileSystem()->Close(hLumpFile);