Skip to content

Commit

Permalink
tweak: more hacks to make it not crash
Browse files Browse the repository at this point in the history
  • Loading branch information
RobbeBryssinck committed Feb 11, 2022
1 parent e52d8bf commit 6b9264f
Show file tree
Hide file tree
Showing 2 changed files with 18 additions and 2 deletions.
15 changes: 14 additions & 1 deletion Code/client/Games/Skyrim/TESObjectREFR.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -163,7 +163,7 @@ void TESObjectREFR::AddItem(const Container::Entry& arEntry) noexcept

BSExtraDataList* pExtraData = nullptr;

if (arEntry.ContainsExtraData())
if (arEntry.ContainsExtraData() && arEntry.ExtraEnchantId.BaseId == 0)
{
pExtraData = Memory::Allocate<BSExtraDataList>();
pExtraData->data = nullptr;
Expand All @@ -175,6 +175,7 @@ void TESObjectREFR::AddItem(const Container::Entry& arEntry) noexcept
{
ExtraCharge* pExtraCharge = Memory::Allocate<ExtraCharge>();
*((uint64_t*)pExtraCharge) = 0x141623AB0;
pExtraCharge->next = nullptr;
pExtraCharge->fCharge = arEntry.ExtraCharge;
pExtraData->Add(ExtraData::Charge, pExtraCharge);
}
Expand All @@ -188,6 +189,7 @@ void TESObjectREFR::AddItem(const Container::Entry& arEntry) noexcept
{
ExtraHealth* pExtraHealth = Memory::Allocate<ExtraHealth>();
*((uint64_t*)pExtraHealth) = 0x141623A50;
pExtraHealth->next = nullptr;
pExtraHealth->fHealth = arEntry.ExtraHealth;
pExtraData->Add(ExtraData::Health, pExtraHealth);
}
Expand All @@ -203,6 +205,7 @@ void TESObjectREFR::AddItem(const Container::Entry& arEntry) noexcept
{
ExtraPoison* pExtraPoison = Memory::Allocate<ExtraPoison>();
*((uint64_t*)pExtraPoison) = 0x141623E50;
pExtraPoison->next = nullptr;
pExtraPoison->pPoison = pPoison;
pExtraPoison->uiCount = arEntry.ExtraPoisonCount;
pExtraData->Add(ExtraData::Poison, pExtraPoison);
Expand All @@ -213,6 +216,7 @@ void TESObjectREFR::AddItem(const Container::Entry& arEntry) noexcept
{
ExtraSoul* pExtraSoul = Memory::Allocate<ExtraSoul>();
*((uint64_t*)pExtraSoul) = 0x141627220;
pExtraSoul->next = nullptr;
pExtraSoul->cSoul = static_cast<SOUL_LEVEL>(arEntry.ExtraSoulLevel);
pExtraData->Add(ExtraData::Soul, pExtraSoul);
}
Expand All @@ -221,6 +225,7 @@ void TESObjectREFR::AddItem(const Container::Entry& arEntry) noexcept
{
ExtraTextDisplayData* pExtraText = Memory::Allocate<ExtraTextDisplayData>();
*((uint64_t*)pExtraText) = 0x1416244D0;
pExtraText->next = nullptr;
pExtraText->DisplayName = arEntry.ExtraTextDisplayName.c_str();
pExtraData->Add(ExtraData::TextDisplayData, pExtraText);
}
Expand All @@ -229,17 +234,25 @@ void TESObjectREFR::AddItem(const Container::Entry& arEntry) noexcept
{
ExtraWorn* pExtraWorn = Memory::Allocate<ExtraWorn>();
*((uint64_t*)pExtraWorn) = 0x1416239F0;
pExtraWorn->next = nullptr;
pExtraData->Add(ExtraData::Worn, pExtraWorn);
}

if (arEntry.ExtraWornLeft)
{
ExtraWornLeft* pExtraWornLeft = Memory::Allocate<ExtraWornLeft>();
*((uint64_t*)pExtraWornLeft) = 0x141623A10;
pExtraWornLeft->next = nullptr;
pExtraData->Add(ExtraData::WornLeft, pExtraWornLeft);
}
}

/*
BSExtraDataList* pExtraData2 = pExtraData;
if (pExtraData)
DebugBreak();
*/

AddObjectToContainer(pObject, pExtraData, arEntry.Count, nullptr);
spdlog::info("Added object to container, form id: {:X}, extra data count: {}, entry count: {}", pObject->formID,
pExtraData ? pExtraData->GetCount() : -1, arEntry.Count);
Expand Down
5 changes: 4 additions & 1 deletion Code/client/Services/Debug/TestService.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -102,7 +102,10 @@ void TestService::OnUpdate(const UpdateEvent& acUpdateEvent) noexcept
{
s_f8Pressed = true;

PlaceActorInWorld();
//PlaceActorInWorld();
Actor* pActor = RTTI_CAST(TESForm::GetById(0x1348C), TESForm, Actor);
auto container = PlayerCharacter::Get()->GetFullContainer();
pActor->SetFullContainer(container);
}
}
else
Expand Down

0 comments on commit 6b9264f

Please sign in to comment.