#pragma once #include "RE/B/BSTEvent.h" #include "RE/P/PipboyDataGroup.h" namespace RE { class PerkPointIncreaseEvent; class PlayerUpdateEvent; namespace ActorEquipManagerEvent { class Event; } namespace ActorValueEvents { class ActorValueChangedEvent; } namespace BGSInventoryItemEvent { class Event; } namespace BGSInventoryListEvent { class Event; } namespace HourPassed { class Event; } namespace LevelIncrease { class Event; } namespace PerkValueEvents { class PerkEntryUpdatedEvent; } namespace PlayerActiveEffectChanged { class Event; } namespace PlayerCharacterQuestEvent { class Event; } namespace PlayerDifficultySettingChanged { class Event; } namespace SPECIALMenuEvent { class NameChangedEvent; } class __declspec(novtable) PipboyPlayerInfoData : public PipboyDataGroup, // 00 public BSTEventSink, // 98 public BSTEventSink, // A0 public BSTEventSink, // A8 public BSTEventSink, // B0 public BSTEventSink, // B8 public BSTEventSink, // C0 public BSTEventSink, // C8 public BSTEventSink, // D0 public BSTEventSink, // D8 public BSTEventSink, // E0 public BSTEventSink, // E8 public BSTEventSink, // F0 public BSTEventSink // F8 { public: static constexpr auto RTTI{ RTTI::PipboyPlayerInfoData }; static constexpr auto VTABLE{ VTABLE::PipboyPlayerInfoData }; virtual ~PipboyPlayerInfoData() = 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 ActorEquipManagerEvent::Event& a_event, BSTEventSource* a_source); // 03 virtual BSEventNotifyControl ProcessEvent(const LevelIncrease::Event& a_event, BSTEventSource* a_source); // 04 virtual BSEventNotifyControl ProcessEvent(const PerkPointIncreaseEvent& a_event, BSTEventSource* a_source); // 05 virtual BSEventNotifyControl ProcessEvent(const PerkValueEvents::PerkEntryUpdatedEvent& a_event, BSTEventSource* a_source); // 06 virtual BSEventNotifyControl ProcessEvent(const HourPassed::Event& a_event, BSTEventSource* a_source); // 07 virtual BSEventNotifyControl ProcessEvent(const SPECIALMenuEvent::NameChangedEvent& a_event, BSTEventSource* a_source); // 08 virtual BSEventNotifyControl ProcessEvent(const PlayerUpdateEvent& a_event, BSTEventSource* a_source); // 09 virtual BSEventNotifyControl ProcessEvent(const BGSInventoryItemEvent::Event& a_event, BSTEventSource* a_source); // 0A virtual BSEventNotifyControl ProcessEvent(const PlayerActiveEffectChanged::Event& a_event, BSTEventSource* a_source); // 0B virtual BSEventNotifyControl ProcessEvent(const PlayerCharacterQuestEvent::Event& a_event, BSTEventSource* a_source); // 0C virtual BSEventNotifyControl ProcessEvent(const PlayerDifficultySettingChanged::Event& a_event, BSTEventSource* a_source); // 0D // override virtual void Populate(bool a_arg1) override; // 0E virtual void DoClearData() override; // 0F virtual void DoClearSink() override; // 10 void UpdateCarryWeightData() { using func_t = decltype(&PipboyPlayerInfoData::UpdateCarryWeightData); static REL::Relocation func{ ID::PipboyPlayerInfoData::UpdateCarryWeightData }; return func(this); } // members PipboyObject* playerInfoObject; }; static_assert(sizeof(PipboyPlayerInfoData) == 0x108); }