From d7f0de9d4074383d07ce28e108ceeb16d0b5e06f Mon Sep 17 00:00:00 2001 From: rexx <67599507+r-ex@users.noreply.github.com> Date: Sat, 20 May 2023 13:49:12 +0100 Subject: [PATCH] fix external bsp_lump loading previously the lump data was being freed immediately after loading. this sets m_pRawData to nullptr so that doesn't happen --- r5dev/engine/modelloader.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/r5dev/engine/modelloader.cpp b/r5dev/engine/modelloader.cpp index 0a0b4a4d..b8ac75d0 100644 --- a/r5dev/engine/modelloader.cpp +++ b/r5dev/engine/modelloader.cpp @@ -184,11 +184,14 @@ void CMapLoadHelper::Constructor(CMapLoadHelper* loader, int lumpToLoad) { FileHandle_t hLumpFile = FileSystem()->Open(pathBuf, "rb"); + loader->m_pData = loader->m_pRawData; + if (hLumpFile != FILESYSTEM_INVALID_HANDLE) { FileSystem()->ReadEx(loader->m_pRawData, bytesToRead, bytesToRead, hLumpFile); FileSystem()->Close(hLumpFile); + loader->m_pRawData = nullptr; loader->m_bExternal = true; } else // Seek to offset in packed BSP file to load the lump. @@ -196,8 +199,6 @@ void CMapLoadHelper::Constructor(CMapLoadHelper* loader, int lumpToLoad) FileSystem()->Seek(mapFileHandle, loader->m_nLumpOffset, FILESYSTEM_SEEK_HEAD); FileSystem()->ReadEx(loader->m_pRawData, bytesToRead, bytesToRead, mapFileHandle); } - - loader->m_pData = loader->m_pRawData; } } }