#pragma once #include "RE/B/BSTEvent.h" #include "RE/B/BSTHashMap.h" #include "RE/B/BSTSmartPointer.h" #include "RE/P/PipboyDataGroup.h" namespace RE { class ConditionBoyEvent; namespace ActorItemEquipped { class Event; } namespace ActorValueEvents { class ActorValueChangedEvent; } namespace BGSInventoryItemEvent { class Event; } namespace BGSInventoryListEvent { class Event; } namespace PlayerActiveEffectChanged { class Event; } class __declspec(novtable) PipboyStatsData : public PipboyDataGroup, // 00 public BSTEventSink, // 98 public BSTEventSink, // A0 public BSTEventSink, // A8 public BSTEventSink, // B0 public BSTEventSink, // B8 public BSTEventSink // C0 { public: static constexpr auto RTTI{ RTTI::PipboyStatsData }; static constexpr auto VTABLE{ VTABLE::PipboyStatsData }; virtual ~PipboyStatsData() = default; virtual BSEventNotifyControl ProcessEvent(const ActorValueEvents::ActorValueChangedEvent& a_event, BSTEventSource* a_source); // 01 virtual BSEventNotifyControl ProcessEvent(const BGSInventoryListEvent::Event& a_event, BSTEventSource* a_source); // 02 virtual BSEventNotifyControl ProcessEvent(const PlayerActiveEffectChanged::Event& a_event, BSTEventSource* a_source); // 03 virtual BSEventNotifyControl ProcessEvent(const ConditionBoyEvent& a_event, BSTEventSource* a_source); // 04 virtual BSEventNotifyControl ProcessEvent(const ActorItemEquipped::Event& a_event, BSTEventSource* a_source); // 05 virtual BSEventNotifyControl ProcessEvent(const BGSInventoryItemEvent::Event& a_event, BSTEventSource* a_source); // 06 // override virtual void Populate(bool a_arg1) override; // 07 virtual void DoClearData() override; // 08 virtual void DoClearSink() override; // 09 // members PipboyObject* playerStatsObject; // C8 PipboyArray* activeEffectsArray; // D0 BSTHashMap activeEffectsMap; // D8 BSTHashMap, PipboyObject*> activeEffectEntriesMap; // 108 }; static_assert(sizeof(PipboyStatsData) == 0x138); }