From 8133f4d57e6c7bd7b1bb248c1e0291ecad11a2f9 Mon Sep 17 00:00:00 2001 From: Jan Date: Tue, 22 Mar 2022 16:08:28 +0100 Subject: [PATCH] Fix accidentally setting size in bits value to a size in byte field when converting indexarray and enumedarray --- .../IW4/AssetLoaders/AssetLoaderStructuredDataDefSet.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/ObjLoading/Game/IW4/AssetLoaders/AssetLoaderStructuredDataDefSet.cpp b/src/ObjLoading/Game/IW4/AssetLoaders/AssetLoaderStructuredDataDefSet.cpp index 12dc47b3..aae3fc26 100644 --- a/src/ObjLoading/Game/IW4/AssetLoaders/AssetLoaderStructuredDataDefSet.cpp +++ b/src/ObjLoading/Game/IW4/AssetLoaders/AssetLoaderStructuredDataDefSet.cpp @@ -6,6 +6,7 @@ #include "Game/IW4/IW4.h" #include "StructuredDataDef/StructuredDataDefReader.h" #include "Pool/GlobalAssetPool.h" +#include "Utils/Alignment.h" using namespace IW4; @@ -113,14 +114,14 @@ void AssetLoaderStructuredDataDefSet::ConvertIndexedArray(StructuredDataIndexedA { outputIndexedArray->arraySize = static_cast(inputIndexedArray->m_element_count); outputIndexedArray->elementType = ConvertType(inputIndexedArray->m_array_type); - outputIndexedArray->elementSize = inputIndexedArray->m_element_size_in_bits; + outputIndexedArray->elementSize = utils::Align(inputIndexedArray->m_element_size_in_bits, 8u) / 8u; } void AssetLoaderStructuredDataDefSet::ConvertEnumedArray(StructuredDataEnumedArray* outputEnumedArray, const CommonStructuredDataEnumedArray* inputEnumedArray, MemoryManager* memory) { outputEnumedArray->enumIndex = static_cast(inputEnumedArray->m_enum_index); outputEnumedArray->elementType = ConvertType(inputEnumedArray->m_array_type); - outputEnumedArray->elementSize = inputEnumedArray->m_element_size_in_bits; + outputEnumedArray->elementSize = utils::Align(inputEnumedArray->m_element_size_in_bits, 8u) / 8u; } void AssetLoaderStructuredDataDefSet::ConvertDef(StructuredDataDef* outputDef, const CommonStructuredDataDef* inputDef, MemoryManager* memory)