#pragma once #include "RE/B/BSPointerHandle.h" #include "RE/B/BSTArray.h" #include "RE/B/BSTEvent.h" #include "RE/B/BSTHashMap.h" #include "RE/N/NiPoint3.h" #include "RE/P/PipboyDataGroup.h" namespace RE { class BGSActorCellEvent; class MapMarkerData; class PlayerUpdateEvent; class TESLocationClearedEvent; namespace ActorValueEvents { class ActorValueChangedEvent; } namespace CustomMarkerUpdate { class Event; } namespace LocalMapCameraUpdate { class Event; } namespace LocationMarkerArrayUpdate { class Event; } namespace PlayerCharacterQuestEvent { class Event; } namespace TESQuestEvent { class Event; } namespace TravelMarkerStateChange { class Event; } class __declspec(novtable) PipboyMapData : 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: static constexpr auto RTTI{ RTTI::PipboyMapData }; static constexpr auto VTABLE{ VTABLE::PipboyMapData }; virtual ~PipboyMapData() = default; virtual BSEventNotifyControl ProcessEvent(const TravelMarkerStateChange::Event& a_event, BSTEventSource* a_source); // 01 virtual BSEventNotifyControl ProcessEvent(const PlayerUpdateEvent& a_event, BSTEventSource* a_source); // 02 virtual BSEventNotifyControl ProcessEvent(const BGSActorCellEvent& a_event, BSTEventSource* a_source); // 03 virtual BSEventNotifyControl ProcessEvent(const TESQuestEvent::Event& a_event, BSTEventSource* a_source); // 04 virtual BSEventNotifyControl ProcessEvent(const PlayerCharacterQuestEvent::Event& a_event, BSTEventSource* a_source); // 05 virtual BSEventNotifyControl ProcessEvent(const CustomMarkerUpdate::Event& a_event, BSTEventSource* a_source); // 06 virtual BSEventNotifyControl ProcessEvent(const LocationMarkerArrayUpdate::Event& a_event, BSTEventSource* a_source); // 07 virtual BSEventNotifyControl ProcessEvent(const LocalMapCameraUpdate::Event& a_event, BSTEventSource* a_source); // 08 virtual BSEventNotifyControl ProcessEvent(const TESLocationClearedEvent& a_event, BSTEventSource* a_source); // 09 virtual BSEventNotifyControl ProcessEvent(const ActorValueEvents::ActorValueChangedEvent& a_event, BSTEventSource* a_source); // 0A // override virtual void Populate(bool a_arg1) override; // 0B virtual void DoClearData() override; // 0C virtual void DoClearSink() override; // 0D // members PipboyObject* mapObject; // E8 BSTHashMap travelLocationsMarkers; // F0 BSTHashMap travelLocationRefrHandles; // 120 BSTArray doorMarkers; // 150 BSTArray doorRefHandles; // 168 BSTHashMap localQuestMarkers; // 180 BSTHashMap worldQuestMarkers; // 1B0 NiPoint3 playerLastLocationPosition; // 1E0 NiPoint3 playerLastWorldPosition; // 1EC PipboyObject* localPlayerMarker; // 1F8 PipboyObject* worldPlayerMarker; // 200 PipboyObject* localCustomMarker; // 208 PipboyObject* worldCustomMarker; // 210 PipboyObject* localPowerArmorMarker; // 218 PipboyObject* worldPowerArmorMarker; // 220 PipboyObject* worldMapExtents; // 230 PipboyObject* localMapExtents; // 238 }; static_assert(sizeof(PipboyMapData) == 0x238); }