mirror of
https://github.com/Mauler125/r5sdk.git
synced 2025-02-09 19:15:03 +01:00
Light cleanup for 'CMapLoadHelper' ctor
This commit is contained in:
parent
2d0c033f95
commit
4c6840be6c
@ -179,73 +179,76 @@ void CMapLoadHelper::Constructor(CMapLoadHelper* loader, int lumpToLoad)
|
|||||||
const lump_t* lump = &s_MapHeader->lumps[lumpToLoad];
|
const lump_t* lump = &s_MapHeader->lumps[lumpToLoad];
|
||||||
|
|
||||||
const int lumpOffset = lump->fileofs;
|
const int lumpOffset = lump->fileofs;
|
||||||
//if (!lumpOffset)
|
|
||||||
// return; // Idk if this is correct.
|
|
||||||
|
|
||||||
const int lumpSize = lump->filelen;
|
const int lumpSize = lump->filelen;
|
||||||
if (lumpSize)
|
|
||||||
|
if (lumpSize <= 0)
|
||||||
{
|
{
|
||||||
loader->m_nLumpSize = lumpSize;
|
loader->m_nLumpSize = 0;
|
||||||
loader->m_nLumpOffset = lumpOffset;
|
loader->m_nLumpOffset = 0;
|
||||||
loader->m_nLumpVersion = lump->version;
|
loader->m_nLumpVersion = 0;
|
||||||
|
|
||||||
FileHandle_t mapFileHandle = *s_MapFileHandle;
|
// this lump has no data
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if (mapFileHandle == FILESYSTEM_INVALID_HANDLE)
|
loader->m_nLumpSize = lumpSize;
|
||||||
|
loader->m_nLumpOffset = lumpOffset;
|
||||||
|
loader->m_nLumpVersion = lump->version;
|
||||||
|
|
||||||
|
FileHandle_t mapFileHandle = *s_MapFileHandle;
|
||||||
|
|
||||||
|
if (mapFileHandle == FILESYSTEM_INVALID_HANDLE)
|
||||||
|
{
|
||||||
|
Error(eDLL_T::ENGINE, EXIT_FAILURE, "Can't load map from invalid handle!!!");
|
||||||
|
}
|
||||||
|
|
||||||
|
loader->m_nUncompressedLumpSize = lumpSize;
|
||||||
|
|
||||||
|
char lumpPathBuf[MAX_PATH];
|
||||||
|
|
||||||
|
FileSystemCache fileCache;
|
||||||
|
fileCache.pBuffer = nullptr;
|
||||||
|
|
||||||
|
V_snprintf(lumpPathBuf, sizeof(lumpPathBuf), "%s.%.4X.bsp_lump", s_szMapPathName, lumpToLoad);
|
||||||
|
|
||||||
|
// Determine whether to load the lump from filesystem cache or disk.
|
||||||
|
//if ((V_snprintf(lumpPathBuf, sizeof(lumpPathBuf), "%s.%.4X.bsp_lump", s_szMapPathName, lumpToLoad),
|
||||||
|
// FileSystem()->ReadFromCache(lumpPathBuf, &fileCache)))
|
||||||
|
//{
|
||||||
|
|
||||||
|
// printf("Reading %s from cache\n", lumpPathBuf);
|
||||||
|
|
||||||
|
// loader->m_pRawData = nullptr;
|
||||||
|
// loader->m_pData = fileCache.pBuffer->pData;
|
||||||
|
// loader->m_bExternal = IsLumpTypeExternal(lumpToLoad);
|
||||||
|
// loader->m_bUnk = fileCache.pBuffer->nUnk0 == 0;
|
||||||
|
//}
|
||||||
|
//else
|
||||||
|
{
|
||||||
|
loader->m_pRawData = MemAllocSingleton()->Alloc<byte>(lumpSize);
|
||||||
|
|
||||||
|
if (loader->m_nLumpSize)
|
||||||
{
|
{
|
||||||
Error(eDLL_T::ENGINE, EXIT_FAILURE, "Can't load map from invalid handle!!!");
|
loader->m_pData = loader->m_pRawData;
|
||||||
}
|
|
||||||
|
|
||||||
loader->m_nUncompressedLumpSize = lumpSize;
|
FileHandle_t hLumpFile = FileSystem()->Open(lumpPathBuf, "rb");
|
||||||
|
if (hLumpFile != FILESYSTEM_INVALID_HANDLE)
|
||||||
char lumpPathBuf[MAX_PATH];
|
|
||||||
//const int lumpHandlingType = GetLumpHandlingType(lumpToLoad);
|
|
||||||
|
|
||||||
FileSystemCache fileCache;
|
|
||||||
fileCache.pBuffer = nullptr;
|
|
||||||
|
|
||||||
if (/*lumpHandlingType &&*/ (V_snprintf(lumpPathBuf, sizeof(lumpPathBuf), "%s.%.4X.bsp_lump", s_szMapPathName, lumpToLoad),
|
|
||||||
FileSystem()->ReadFromCache(lumpPathBuf, &fileCache)))
|
|
||||||
{
|
|
||||||
loader->m_pRawData = nullptr;
|
|
||||||
loader->m_pData = fileCache.pBuffer->pData;
|
|
||||||
loader->m_bExternal = IsLumpTypeExternal(lumpToLoad);// lumpHandlingType == EXTERNAL_LUMP;
|
|
||||||
loader->m_bUnk = fileCache.pBuffer->nUnk0 == 0;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
const int bytesToRead = lumpSize ? lumpSize : 1;
|
|
||||||
loader->m_pRawData = MemAllocSingleton()->Alloc<byte>(bytesToRead);
|
|
||||||
|
|
||||||
if (loader->m_nLumpSize)
|
|
||||||
{
|
{
|
||||||
loader->m_pData = loader->m_pRawData;
|
//DevMsg(eDLL_T::ENGINE, "Loading lump %.4x from file. Buffer: %p\n", lumpToLoad, loader->m_pRawData);
|
||||||
|
FileSystem()->ReadEx(loader->m_pRawData, lumpSize, lumpSize, hLumpFile);
|
||||||
|
FileSystem()->Close(hLumpFile);
|
||||||
|
|
||||||
FileHandle_t hLumpFile;
|
loader->m_pRawData = nullptr;
|
||||||
if (/*lumpHandlingType &&*/ (hLumpFile = FileSystem()->Open(lumpPathBuf, "rb"), hLumpFile != FILESYSTEM_INVALID_HANDLE))
|
loader->m_bExternal = IsLumpTypeExternal(lumpToLoad);
|
||||||
{
|
}
|
||||||
//DevMsg(eDLL_T::ENGINE, "Loading lump %.4x from file. Buffer: %p\n", lumpToLoad, loader->m_pRawData);
|
else // Seek to offset in packed BSP file to load the lump.
|
||||||
FileSystem()->ReadEx(loader->m_pRawData, bytesToRead, bytesToRead, hLumpFile);
|
{
|
||||||
FileSystem()->Close(hLumpFile);
|
FileSystem()->Seek(mapFileHandle, loader->m_nLumpOffset, FILESYSTEM_SEEK_HEAD);
|
||||||
|
FileSystem()->ReadEx(loader->m_pRawData, lumpSize, lumpSize, mapFileHandle);
|
||||||
loader->m_pRawData = nullptr;
|
|
||||||
loader->m_bExternal = IsLumpTypeExternal(lumpToLoad); //lumpHandlingType == EXTERNAL_LUMP;
|
|
||||||
}
|
|
||||||
else // Seek to offset in packed BSP file to load the lump.
|
|
||||||
{
|
|
||||||
FileSystem()->Seek(mapFileHandle, loader->m_nLumpOffset, FILESYSTEM_SEEK_HEAD);
|
|
||||||
FileSystem()->ReadEx(loader->m_pRawData, bytesToRead, bytesToRead, mapFileHandle);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
|
||||||
{
|
|
||||||
loader->m_nLumpSize = 0;
|
|
||||||
loader->m_nLumpOffset = 0;
|
|
||||||
loader->m_nLumpVersion = 0;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
|
Loading…
x
Reference in New Issue
Block a user