From 1ade1221e4513b891cb92ef86e365d2cc18a90a9 Mon Sep 17 00:00:00 2001 From: Robbe Bryssinck Date: Sat, 12 Feb 2022 00:03:17 +0100 Subject: [PATCH] tweak: properly handle no parsed ExtraData --- Code/client/Games/Skyrim/TESObjectREFR.cpp | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/Code/client/Games/Skyrim/TESObjectREFR.cpp b/Code/client/Games/Skyrim/TESObjectREFR.cpp index 42fc81a79..2d925bf66 100644 --- a/Code/client/Games/Skyrim/TESObjectREFR.cpp +++ b/Code/client/Games/Skyrim/TESObjectREFR.cpp @@ -163,7 +163,7 @@ void TESObjectREFR::AddItem(const Container::Entry& arEntry) noexcept BSExtraDataList* pExtraData = nullptr; - if (arEntry.ContainsExtraData() && arEntry.ExtraEnchantId.BaseId == 0) + if (arEntry.ContainsExtraData()) { pExtraData = Memory::Allocate(); pExtraData->data = nullptr; @@ -183,6 +183,7 @@ void TESObjectREFR::AddItem(const Container::Entry& arEntry) noexcept // TODO: deal with temp forms for enchanted items if (arEntry.ExtraEnchantId != 0) { + spdlog::info("Enchanted"); } if (arEntry.ExtraHealth > 0.f) @@ -245,6 +246,12 @@ void TESObjectREFR::AddItem(const Container::Entry& arEntry) noexcept pExtraWornLeft->next = nullptr; pExtraData->Add(ExtraData::WornLeft, pExtraWornLeft); } + + if (pExtraData->data == nullptr) + { + Memory::Delete(pExtraData); + pExtraData = nullptr; + } } /*