CommonLibSSE (powerof3)
Loading...
Searching...
No Matches
InventoryChanges.h
Go to the documentation of this file.
1#pragma once
2
3#include "RE/B/BSContainer.h"
4#include "RE/B/BSTList.h"
5#include "RE/F/FormTypes.h"
8
9namespace RE
10{
11 class ExtraDataList;
12 class InventoryEntryData;
13
15 {
16 public:
18 {
19 public:
20 inline static constexpr auto RTTI = RTTI_InventoryChanges__IItemChangeVisitor;
22
23 virtual ~IItemChangeVisitor() = default; // 00
24
25 // add
26 virtual BSContainer::ForEachResult Visit(InventoryEntryData* a_entryData) = 0; // 01
27 virtual bool ShouldVisit([[maybe_unused]] InventoryEntryData* a_entryData, [[maybe_unused]] TESBoundObject* a_object) { return true; } // 02
28 virtual BSContainer::ForEachResult Unk_03(InventoryEntryData* a_entryData, [[maybe_unused]] void* a_arg2, bool* a_arg3) // 03
29 {
30 *a_arg3 = true;
31 return Visit(a_entryData);
32 }
33 };
34 static_assert(sizeof(IItemChangeVisitor) == 0x8);
35
39
41 TESObjectARMO* GetArmorInSlot(std::int32_t a_slot);
42 std::uint16_t GetNextUniqueID();
43 std::uint32_t GetWornMask();
47 void RemoveFavorite(InventoryEntryData* a_entry, ExtraDataList* a_itemList);
48 void SendContainerChangedEvent(ExtraDataList* a_itemExtraList, TESObjectREFR* a_fromRefr, TESForm* a_item, std::int32_t a_count);
49 void SetFavorite(InventoryEntryData* a_entry, ExtraDataList* a_itemList);
50 void SetUniqueID(ExtraDataList* a_itemList, TESForm* a_oldForm, TESForm* a_newForm);
53
55
56 // members
58 TESObjectREFR* owner{ nullptr }; // 08
59 float totalWeight{ 0.0F }; // 10
60 float armorWeight{ 0.0F }; // 14
61 bool changed{ false }; // 18
62 std::uint8_t unk19{ 0 }; // 19
63 std::uint8_t unk1A{ 0 }; // 1A
64 std::uint8_t unk1B{ 0 }; // 1B
65 std::uint32_t unk1C{ 0 }; // 1C
66
67 private:
68 InventoryChanges* Ctor(TESObjectREFR* a_ref);
69 void Dtor();
70 };
71 static_assert(sizeof(InventoryChanges) == 0x20);
72}
Definition: BSTList.h:10
Definition: ExtraDataList.h:49
Definition: InventoryChanges.h:18
virtual bool ShouldVisit(InventoryEntryData *a_entryData, TESBoundObject *a_object)
Definition: InventoryChanges.h:27
virtual BSContainer::ForEachResult Unk_03(InventoryEntryData *a_entryData, void *a_arg2, bool *a_arg3)
Definition: InventoryChanges.h:28
static constexpr auto VTABLE
Definition: InventoryChanges.h:21
virtual BSContainer::ForEachResult Visit(InventoryEntryData *a_entryData)=0
static constexpr auto RTTI
Definition: InventoryChanges.h:20
Definition: InventoryChanges.h:15
void SetUniqueID(ExtraDataList *a_itemList, TESForm *a_oldForm, TESForm *a_newForm)
void AddEntryData(InventoryEntryData *a_entry)
std::uint16_t GetNextUniqueID()
float totalWeight
Definition: InventoryChanges.h:59
std::uint8_t unk19
Definition: InventoryChanges.h:62
void VisitInventory(IItemChangeVisitor &visitor)
std::uint32_t GetWornMask()
std::uint32_t unk1C
Definition: InventoryChanges.h:65
float armorWeight
Definition: InventoryChanges.h:60
void RemoveFavorite(InventoryEntryData *a_entry, ExtraDataList *a_itemList)
TESObjectREFR * owner
Definition: InventoryChanges.h:58
TESObjectARMO * GetArmorInSlot(std::int32_t a_slot)
bool changed
Definition: InventoryChanges.h:61
std::uint8_t unk1B
Definition: InventoryChanges.h:64
void SendContainerChangedEvent(ExtraDataList *a_itemExtraList, TESObjectREFR *a_fromRefr, TESForm *a_item, std::int32_t a_count)
BSSimpleList< InventoryEntryData * > * entryList
Definition: InventoryChanges.h:57
std::uint8_t unk1A
Definition: InventoryChanges.h:63
void SetFavorite(InventoryEntryData *a_entry, ExtraDataList *a_itemList)
void VisitWornItems(IItemChangeVisitor &visitor)
InventoryChanges(TESObjectREFR *a_ref)
Definition: InventoryEntryData.h:15
Definition: TESBoundObject.h:24
Definition: TESForm.h:35
Definition: TESObjectARMO.h:37
Definition: TESObjectREFR.h:110
ForEachResult
Definition: BSContainer.h:6
Definition: AbsorbEffect.h:6
constexpr std::array< REL::ID, 1 > VTABLE_InventoryChanges__IItemChangeVisitor
Definition: Offsets_VTABLE.h:11920
constexpr REL::ID RTTI_InventoryChanges__IItemChangeVisitor(static_cast< std::uint64_t >(684949))