From 80bc10752a7e9f4f86b4d2ca155ddddfd959cd36 Mon Sep 17 00:00:00 2001 From: Jan Date: Tue, 24 Dec 2019 01:59:40 +0100 Subject: [PATCH] ZoneLoading: Fix not respecting the block type when trying to load data --- .../Zone/Stream/Impl/XBlockInputStream.cpp | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/src/ZoneLoading/Zone/Stream/Impl/XBlockInputStream.cpp b/src/ZoneLoading/Zone/Stream/Impl/XBlockInputStream.cpp index bde1c76f..438dc272 100644 --- a/src/ZoneLoading/Zone/Stream/Impl/XBlockInputStream.cpp +++ b/src/ZoneLoading/Zone/Stream/Impl/XBlockInputStream.cpp @@ -122,7 +122,22 @@ void XBlockInputStream::LoadDataInBlock(void* dst, const size_t size) // Theoretically ptr should always be at the current block offset. assert(dst == &block->m_buffer[m_block_offsets[block->m_index]]); - m_stream->Load(dst, size); + switch (block->m_type) + { + case XBlock::Type::BLOCK_TYPE_TEMP: + case XBlock::Type::BLOCK_TYPE_NORMAL: + m_stream->Load(dst, size); + break; + + case XBlock::Type::BLOCK_TYPE_RUNTIME: + memset(dst, 0, size); + break; + + case XBlock::Type::BLOCK_TYPE_DELAY: + assert(false); + break; + } + IncBlockPos(size); }