From 569bdbba7d2a8c007671eb5619f2826653a31903 Mon Sep 17 00:00:00 2001 From: Qudix <17361645+Qudix@users.noreply.github.com> Date: Thu, 24 Oct 2024 13:20:59 -0500 Subject: [PATCH 1/5] feat: `HUDModeType` --- include/RE/G/GameMenuBase.h | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/include/RE/G/GameMenuBase.h b/include/RE/G/GameMenuBase.h index 171f54fb..c6b41c05 100644 --- a/include/RE/G/GameMenuBase.h +++ b/include/RE/G/GameMenuBase.h @@ -5,6 +5,17 @@ namespace RE { + class HUDModeType + { + public: + HUDModeType(const char* a_str) : + str(a_str) + {} + + // members + BSFixedString str; + }; + class GameMenuBase : public IMenu // 00 { From e70bda0b18a1ab3351b14f51c6fe2e7c053454fb Mon Sep 17 00:00:00 2001 From: Qudix <17361645+Qudix@users.noreply.github.com> Date: Thu, 24 Oct 2024 13:22:09 -0500 Subject: [PATCH 2/5] chore: order events alphabetically --- include/RE/E/Events.h | 4047 +++++++++++++++++++++-------------------- 1 file changed, 2047 insertions(+), 2000 deletions(-) diff --git a/include/RE/E/Events.h b/include/RE/E/Events.h index b38c8370..021f2de3 100644 --- a/include/RE/E/Events.h +++ b/include/RE/E/Events.h @@ -7,6 +7,7 @@ namespace RE { class Actor; + class HUDModeType; class TESBoundObject; class TESObjectBOOK; class TESObjectCELL; @@ -14,2376 +15,1778 @@ namespace RE enum class ACTOR_COMBAT_STATE : std::int32_t; - struct TESLoadGameEvent + struct Activation { - [[nodiscard]] static BSTEventSource* GetEventSource() + struct Event { - using func_t = decltype(&TESLoadGameEvent::GetEventSource); - static REL::Relocation func{ REL::ID(1868757) }; - return func(); - } + [[nodiscard]] static BSTEventSource* GetEventSource() + { + using func_t = decltype(&Activation::Event::GetEventSource); + static REL::Relocation func{ REL::ID(106834) }; + return func(); + } + + // members + NiPointer source; // 00 + NiPointer target; // 08 + }; + static_assert(sizeof(Activation::Event) == 0x10); }; - struct TESPlayerFollowerWarpEvent + struct ActivityEvents { - [[nodiscard]] static BSTEventSource* GetEventSource() + struct ActivityCompletedEvent { - using func_t = decltype(&TESPlayerFollowerWarpEvent::GetEventSource); - static REL::Relocation func{ REL::ID(107186) }; + [[nodiscard]] static BSTEventSource* GetEventSource() + { + using func_t = decltype(&ActivityEvents::ActivityCompletedEvent::GetEventSource); + static REL::Relocation func{ REL::ID(86737) }; + return func(); + } + }; + }; + + struct ActorCellChangeEvent + { + struct Event + { + [[nodiscard]] static BSTEventSource* GetEventSource() + { + using func_t = decltype(&ActorCellChangeEvent::Event::GetEventSource); + static REL::Relocation func{ REL::ID(107081) }; + return func(); + } + + // members + NiPointer actor; // 00 + }; + }; + + struct ActorItemEquipped + { + struct Event + { + [[nodiscard]] static BSTEventSource* GetEventSource() + { + using func_t = decltype(&ActorItemEquipped::Event::GetEventSource); + static REL::Relocation func{ REL::ID(151162) }; + return func(); + } + + // members + TESBoundObject* item; // 00 + NiPointer actor; // 08 + }; + static_assert(sizeof(ActorItemEquipped::Event) == 0x10); + }; + + struct AutoLoadDoorRolloverEvent + { + [[nodiscard]] static BSTEventSource* GetEventSource() + { + using func_t = decltype(&AutoLoadDoorRolloverEvent::GetEventSource); + static REL::Relocation func{ REL::ID(103703) }; return func(); } }; - struct DataMenu_Reopened + struct BarterMenu_BuyItem { - [[nodiscard]] static BSTEventSource* GetEventSource() + [[nodiscard]] static BSTEventSource* GetEventSource() { - using func_t = decltype(&DataMenu_Reopened::GetEventSource); - static REL::Relocation func{ REL::ID(141474) }; + using func_t = decltype(&BarterMenu_BuyItem::GetEventSource); + static REL::Relocation func{ REL::ID(138993) }; return func(); } }; - struct PhotoMode_RefineSetting + struct BarterMenu_CloseMenu { - [[nodiscard]] static BSTEventSource* GetEventSource() + [[nodiscard]] static BSTEventSource* GetEventSource() { - using func_t = decltype(&PhotoMode_RefineSetting::GetEventSource); - static REL::Relocation func{ REL::ID(1536789) }; + using func_t = decltype(&BarterMenu_CloseMenu::GetEventSource); + static REL::Relocation func{ REL::ID(138994) }; return func(); } }; - struct PhotoMode_StepperChanged + struct BarterMenu_HideModel { - [[nodiscard]] static BSTEventSource* GetEventSource() + [[nodiscard]] static BSTEventSource* GetEventSource() { - using func_t = decltype(&PhotoMode_StepperChanged::GetEventSource); - static REL::Relocation func{ REL::ID(139739) }; + using func_t = decltype(&BarterMenu_HideModel::GetEventSource); + static REL::Relocation func{ REL::ID(138995) }; return func(); } }; - struct MonocleMenu_Initialize + struct BarterMenu_LoadModel { - [[nodiscard]] static BSTEventSource* GetEventSource() + [[nodiscard]] static BSTEventSource* GetEventSource() { - using func_t = decltype(&MonocleMenu_Initialize::GetEventSource); - static REL::Relocation func{ REL::ID(139644) }; + using func_t = decltype(&BarterMenu_LoadModel::GetEventSource); + static REL::Relocation func{ REL::ID(138996) }; return func(); } }; - struct SaveLoadEvent + struct BarterMenu_SellItem { - [[nodiscard]] static BSTEventSource* GetEventSource() + [[nodiscard]] static BSTEventSource* GetEventSource() { - using func_t = decltype(&SaveLoadEvent::GetEventSource); - static REL::Relocation func{ REL::ID(129747) }; + using func_t = decltype(&BarterMenu_SellItem::GetEventSource); + static REL::Relocation func{ REL::ID(138997) }; return func(); } }; - struct PlayerSetWeaponStateEvent + struct BarterMenu_SetMouseOverModel { - [[nodiscard]] static BSTEventSource* GetEventSource() + [[nodiscard]] static BSTEventSource* GetEventSource() { - using func_t = decltype(&PlayerSetWeaponStateEvent::GetEventSource); - static REL::Relocation func{ REL::ID(138719) }; + using func_t = decltype(&BarterMenu_SetMouseOverModel::GetEventSource); + static REL::Relocation func{ REL::ID(138998) }; return func(); } }; - struct TESEquipEvent + struct BarterMenu_ViewedItem { - [[nodiscard]] static BSTEventSource* GetEventSource() + [[nodiscard]] static BSTEventSource* GetEventSource() { - using func_t = decltype(&TESEquipEvent::GetEventSource); - static REL::Relocation func{ REL::ID(107161) }; + using func_t = decltype(&BarterMenu_ViewedItem::GetEventSource); + static REL::Relocation func{ REL::ID(139000) }; return func(); } - - // members - NiPointer actor; // 00 - TESFormID baseObject; // 08 - TESFormID origRef; // 0C - std::uint16_t uniqueID; // 10 - bool equipped; // 12 }; - static_assert(sizeof(TESEquipEvent) == 0x18); - struct RuntimeComponentDBFactory + struct BGSAcousticSpaceListener { - struct ReferenceDetach + struct StackChangedEvent { - [[nodiscard]] static BSTEventSource* GetEventSource() + [[nodiscard]] static BSTEventSource* GetEventSource() { - using func_t = decltype(&RuntimeComponentDBFactory::ReferenceDetach::GetEventSource); - static REL::Relocation func{ REL::ID(77128) }; + using func_t = decltype(&BGSAcousticSpaceListener::StackChangedEvent::GetEventSource); + static REL::Relocation func{ REL::ID(145815) }; return func(); } - - // members - NiPointer ref; }; + }; - struct ReferenceSet3d + struct BGSAffinityEventEvent + { + [[nodiscard]] static BSTEventSource* GetEventSource() { - [[nodiscard]] static BSTEventSource* GetEventSource() - { - using func_t = decltype(&RuntimeComponentDBFactory::ReferenceSet3d::GetEventSource); - static REL::Relocation func{ REL::ID(88599) }; - return func(); - } + using func_t = decltype(&BGSAffinityEventEvent::GetEventSource); + static REL::Relocation func{ REL::ID(107086) }; + return func(); + } + }; - // members - NiPointer ref; - }; + struct BGSCellGridLoadEvent + { + [[nodiscard]] static BSTEventSource* GetEventSource() + { + using func_t = decltype(&BGSCellGridLoadEvent::GetEventSource); + static REL::Relocation func{ REL::ID(107087) }; + return func(); + } }; - struct PlayerFastTravel + namespace BGSPlanet { - struct Event + struct PlayerKnowledgeFlagSetEvent { - [[nodiscard]] static BSTEventSource* GetEventSource() + [[nodiscard]] static BSTEventSource* GetEventSource() { - using func_t = decltype(&PlayerFastTravel::Event::GetEventSource); - static REL::Relocation func{ REL::ID(153668) }; + using func_t = decltype(&BGSPlanet::PlayerKnowledgeFlagSetEvent::GetEventSource); + static REL::Relocation func{ REL::ID(92501) }; return func(); } }; }; - struct PlayerSneakingChangeEvent + struct BGSRadiationDamageEvent { - [[nodiscard]] static BSTEventSource* GetEventSource() + [[nodiscard]] static BSTEventSource* GetEventSource() { - using func_t = decltype(&PlayerSneakingChangeEvent::GetEventSource); - static REL::Relocation func{ REL::ID(129185) }; + using func_t = decltype(&BGSRadiationDamageEvent::GetEventSource); + static REL::Relocation func{ REL::ID(107106) }; return func(); } }; - struct HUDRolloverActivationButtonEvent + struct BGSScannerGuideEffectStatusUpdateEvent { - [[nodiscard]] static BSTEventSource* GetEventSource() + [[nodiscard]] static BSTEventSource* GetEventSource() { - using func_t = decltype(&HUDRolloverActivationButtonEvent::GetEventSource); - static REL::Relocation func{ REL::ID(133042) }; + using func_t = decltype(&BGSScannerGuideEffectStatusUpdateEvent::GetEventSource); + static REL::Relocation func{ REL::ID(138080) }; return func(); } }; - struct TESCombatEvent + struct BGSSceneActionPlayerDialogue { - [[nodiscard]] static BSTEventSource* GetEventSource() + struct ActionEndEvent { - using func_t = decltype(&TESCombatEvent::GetEventSource); - static REL::Relocation func{ REL::ID(107148) }; - return func(); - } - - // members - NiPointer source; // 00 - NiPointer target; // 08 - nullptr when combat state is none - ACTOR_COMBAT_STATE state; // 10 + [[nodiscard]] static BSTEventSource* GetEventSource() + { + using func_t = decltype(&BGSSceneActionPlayerDialogue::ActionEndEvent::GetEventSource); + static REL::Relocation func{ REL::ID(100215) }; + return func(); + } + }; }; - static_assert(sizeof(TESCombatEvent) == 0x18); - struct UpdateActivateListenerEvent + struct BinkMovieStoppedPlayingEvent { - [[nodiscard]] static BSTEventSource* GetEventSource() + [[nodiscard]] static BSTEventSource* GetEventSource() { - using func_t = decltype(&UpdateActivateListenerEvent::GetEventSource); - static REL::Relocation func{ REL::ID(132635) }; + using func_t = decltype(&BinkMovieStoppedPlayingEvent::GetEventSource); + static REL::Relocation func{ REL::ID(131237) }; return func(); } }; - struct HUDModeEvent + struct BooksRead { - [[nodiscard]] static BSTEventSource* GetEventSource() + struct Event { - using func_t = decltype(&HUDModeEvent::GetEventSource); - static REL::Relocation func{ REL::ID(133039) }; - return func(); - } + [[nodiscard]] static BSTEventSource* GetEventSource() + { + using func_t = decltype(&BooksRead::Event::GetEventSource); + static REL::Relocation func{ REL::ID(103540) }; + return func(); + } + + // members + TESObjectBOOK* book; // 00 + }; }; - struct FirstThirdPersonSwitch + struct Bounty { struct Event { - enum class Type : std::int32_t + [[nodiscard]] static BSTEventSource* GetEventSource() { - kFirst, - kThird, - }; - - [[nodiscard]] static BSTEventSource* GetEventSource() - { - using func_t = decltype(&FirstThirdPersonSwitch::Event::GetEventSource); - static REL::Relocation func{ REL::ID(34458) }; + using func_t = decltype(&Bounty::Event::GetEventSource); + static REL::Relocation func{ REL::ID(153651) }; return func(); } - [[nodiscard]] constexpr bool IsFirst() const noexcept { return type == Type::kFirst; } - [[nodiscard]] constexpr bool IsThird() const noexcept { return type == Type::kThird; } - // members - Type oldType; - Type type; + TESFaction* faction; // 00 + std::int32_t bounty; // 08 + std::int32_t oldBounty; // 0C }; - static_assert(sizeof(FirstThirdPersonSwitch::Event) == 0x8); + static_assert(sizeof(Bounty::Event) == 0x10); }; - struct HideSubtitleEvent + struct BSChargenAPI { - struct Event + struct BIDataUtils { - [[nodiscard]] static BSTEventSource* GetEventSource() + struct PresetNPCChangedEvent { - using func_t = decltype(&HideSubtitleEvent::Event::GetEventSource); - static REL::Relocation func{ REL::ID(133630) }; - return func(); - } + [[nodiscard]] static BSTEventSource* GetEventSource() + { + using func_t = decltype(&BSChargenAPI::BIDataUtils::PresetNPCChangedEvent::GetEventSource); + static REL::Relocation func{ REL::ID(141184) }; + return func(); + } + }; }; }; - struct ShowSubtitleEvent + struct CellAttachDetachEvent { - struct Event + enum class Type : std::int32_t { - [[nodiscard]] static BSTEventSource* GetEventSource() - { - using func_t = decltype(&ShowSubtitleEvent::Event::GetEventSource); - static REL::Relocation func{ REL::ID(133631) }; - return func(); - } + kPreAttach, + kPostAttach, + kPreDetach, + kPostDetach }; + + [[nodiscard]] static BSTEventSource* GetEventSource() + { + using func_t = decltype(&CellAttachDetachEvent::GetEventSource); + static REL::Relocation func{ REL::ID(84784) }; + return func(); + } + + // members + TESObjectCELL* cell; // 00 + Type type; // 08 }; + static_assert(sizeof(CellAttachDetachEvent) == 0x10); - struct LocationTextEvent + struct ChallengeCompletedEvent { struct Event { - [[nodiscard]] static BSTEventSource* GetEventSource() + [[nodiscard]] static BSTEventSource* GetEventSource() { - using func_t = decltype(&LocationTextEvent::Event::GetEventSource); - static REL::Relocation func{ REL::ID(138717) }; + using func_t = decltype(&ChallengeCompletedEvent::Event::GetEventSource); + static REL::Relocation func{ REL::ID(86781) }; return func(); } }; }; - struct TraitDiscoveryTextEvent + struct CharGen_BrowChange { - struct Event + [[nodiscard]] static BSTEventSource* GetEventSource() { - [[nodiscard]] static BSTEventSource* GetEventSource() - { - using func_t = decltype(&TraitDiscoveryTextEvent::Event::GetEventSource); - static REL::Relocation func{ REL::ID(138718) }; - return func(); - } - }; + using func_t = decltype(&CharGen_BrowChange::GetEventSource); + static REL::Relocation func{ REL::ID(141185) }; + return func(); + } }; - struct TESHarvestEvent + struct CharGen_BrowColorChange { - struct ItemHarvested + [[nodiscard]] static BSTEventSource* GetEventSource() { - [[nodiscard]] static BSTEventSource* GetEventSource() - { - using func_t = decltype(&TESHarvestEvent::ItemHarvested::GetEventSource); - static REL::Relocation func{ REL::ID(86518) }; - return func(); - } - - // members - TESBoundObject* item; - NiPointer itemRef; - NiPointer actor; - }; - static_assert(sizeof(TESHarvestEvent::ItemHarvested) == 0x18); + using func_t = decltype(&CharGen_BrowColorChange::GetEventSource); + static REL::Relocation func{ REL::ID(141186) }; + return func(); + } }; - struct HUDNotification_MissionActiveWidgetUpdate + struct CharGen_CancelTextEntry { - [[nodiscard]] static BSTEventSource* GetEventSource() + [[nodiscard]] static BSTEventSource* GetEventSource() { - using func_t = decltype(&HUDNotification_MissionActiveWidgetUpdate::GetEventSource); - static REL::Relocation func{ REL::ID(138666) }; + using func_t = decltype(&CharGen_CancelTextEntry::GetEventSource); + static REL::Relocation func{ REL::ID(141187) }; return func(); } }; - struct LevelUp_OnWidgetShown + struct CharGen_CloseMenu { - [[nodiscard]] static BSTEventSource* GetEventSource() + [[nodiscard]] static BSTEventSource* GetEventSource() { - using func_t = decltype(&LevelUp_OnWidgetShown::GetEventSource); - static REL::Relocation func{ REL::ID(138448) }; + using func_t = decltype(&CharGen_CloseMenu::GetEventSource); + static REL::Relocation func{ REL::ID(141188) }; return func(); } }; - struct MonocleMenu_PhotoMode + struct CharGen_CyclePronoun { - [[nodiscard]] static BSTEventSource* GetEventSource() + [[nodiscard]] static BSTEventSource* GetEventSource() { - using func_t = decltype(&MonocleMenu_PhotoMode::GetEventSource); - static REL::Relocation func{ REL::ID(139646) }; + using func_t = decltype(&CharGen_CyclePronoun::GetEventSource); + static REL::Relocation func{ REL::ID(141189) }; return func(); } }; - struct ShipEditor_SystemSelected + struct CharGen_DirtScarsEtcChange { - [[nodiscard]] static BSTEventSource* GetEventSource() + [[nodiscard]] static BSTEventSource* GetEventSource() { - using func_t = decltype(&ShipEditor_SystemSelected::GetEventSource); - static REL::Relocation func{ REL::ID(75542) }; + using func_t = decltype(&CharGen_DirtScarsEtcChange::GetEventSource); + static REL::Relocation func{ REL::ID(141190) }; return func(); } }; - struct CellAttachDetachEvent + struct CharGen_EndBodyChange { - enum class Type : std::int32_t + [[nodiscard]] static BSTEventSource* GetEventSource() { - kPreAttach, - kPostAttach, - kPreDetach, - kPostDetach - }; + using func_t = decltype(&CharGen_EndBodyChange::GetEventSource); + static REL::Relocation func{ REL::ID(141191) }; + return func(); + } + }; - [[nodiscard]] static BSTEventSource* GetEventSource() + struct CharGen_EndTextEntry + { + [[nodiscard]] static BSTEventSource* GetEventSource() { - using func_t = decltype(&CellAttachDetachEvent::GetEventSource); - static REL::Relocation func{ REL::ID(84784) }; + using func_t = decltype(&CharGen_EndTextEntry::GetEventSource); + static REL::Relocation func{ REL::ID(141192) }; return func(); } - - // members - TESObjectCELL* cell; // 00 - Type type; // 08 }; - static_assert(sizeof(CellAttachDetachEvent) == 0x10); - namespace BGSPlanet + struct CharGen_EyeColorChange { - struct PlayerKnowledgeFlagSetEvent + [[nodiscard]] static BSTEventSource* GetEventSource() { - [[nodiscard]] static BSTEventSource* GetEventSource() - { - using func_t = decltype(&BGSPlanet::PlayerKnowledgeFlagSetEvent::GetEventSource); - static REL::Relocation func{ REL::ID(92501) }; - return func(); - } - }; + using func_t = decltype(&CharGen_EyeColorChange::GetEventSource); + static REL::Relocation func{ REL::ID(141193) }; + return func(); + } }; - struct StarMap + struct CharGen_FacialHairChange { - struct PlanetTraitKnownEvent + [[nodiscard]] static BSTEventSource* GetEventSource() { - [[nodiscard]] static BSTEventSource* GetEventSource() - { - using func_t = decltype(&StarMap::PlanetTraitKnownEvent::GetEventSource); - static REL::Relocation func{ REL::ID(92502) }; - return func(); - } - }; + using func_t = decltype(&CharGen_FacialHairChange::GetEventSource); + static REL::Relocation func{ REL::ID(141194) }; + return func(); + } }; - struct TESQuestRewardEvent + struct CharGen_FacialHairColorChange { - [[nodiscard]] static BSTEventSource* GetEventSource() + [[nodiscard]] static BSTEventSource* GetEventSource() { - using func_t = decltype(&TESQuestRewardEvent::GetEventSource); - static REL::Relocation func{ REL::ID(95698) }; + using func_t = decltype(&CharGen_FacialHairColorChange::GetEventSource); + static REL::Relocation func{ REL::ID(141195) }; return func(); } }; - struct BGSSceneActionPlayerDialogue + struct CharGen_HairChange { - struct ActionEndEvent + [[nodiscard]] static BSTEventSource* GetEventSource() { - [[nodiscard]] static BSTEventSource* GetEventSource() - { - using func_t = decltype(&BGSSceneActionPlayerDialogue::ActionEndEvent::GetEventSource); - static REL::Relocation func{ REL::ID(100215) }; - return func(); - } - }; + using func_t = decltype(&CharGen_HairChange::GetEventSource); + static REL::Relocation func{ REL::ID(141196) }; + return func(); + } }; - struct AutoLoadDoorRolloverEvent + struct CharGen_HairColorChange { - [[nodiscard]] static BSTEventSource* GetEventSource() + [[nodiscard]] static BSTEventSource* GetEventSource() { - using func_t = decltype(&AutoLoadDoorRolloverEvent::GetEventSource); - static REL::Relocation func{ REL::ID(103703) }; + using func_t = decltype(&CharGen_HairColorChange::GetEventSource); + static REL::Relocation func{ REL::ID(141197) }; return func(); } }; - struct ClearQuickContainerEvent + struct CharGen_HeadpartPlusSelectorChange { - [[nodiscard]] static BSTEventSource* GetEventSource() + [[nodiscard]] static BSTEventSource* GetEventSource() { - using func_t = decltype(&ClearQuickContainerEvent::GetEventSource); - static REL::Relocation func{ REL::ID(103704) }; + using func_t = decltype(&CharGen_HeadpartPlusSelectorChange::GetEventSource); + static REL::Relocation func{ REL::ID(141198) }; return func(); } }; - struct PickRefUpdateEvent + struct CharGen_HeadpartPresetChange { - [[nodiscard]] static BSTEventSource* GetEventSource() + [[nodiscard]] static BSTEventSource* GetEventSource() { - using func_t = decltype(&PickRefUpdateEvent::GetEventSource); - static REL::Relocation func{ REL::ID(119433) }; + using func_t = decltype(&CharGen_HeadpartPresetChange::GetEventSource); + static REL::Relocation func{ REL::ID(141199) }; return func(); } }; - struct Workshop + struct CharGen_JewelryChange { - struct CargoLinkAddedEvent + [[nodiscard]] static BSTEventSource* GetEventSource() { - [[nodiscard]] static BSTEventSource* GetEventSource() - { - using func_t = decltype(&Workshop::CargoLinkAddedEvent::GetEventSource); - static REL::Relocation func{ REL::ID(119421) }; - return func(); - } - }; + using func_t = decltype(&CharGen_JewelryChange::GetEventSource); + static REL::Relocation func{ REL::ID(141200) }; + return func(); + } + }; - struct CargoLinkTargetChangedEvent - { - [[nodiscard]] static BSTEventSource* GetEventSource() - { - using func_t = decltype(&Workshop::CargoLinkTargetChangedEvent::GetEventSource); - static REL::Relocation func{ REL::ID(119422) }; - return func(); - } - }; - - struct EnterOutpostBeaconModeEvent - { - [[nodiscard]] static BSTEventSource* GetEventSource() - { - using func_t = decltype(&Workshop::EnterOutpostBeaconModeEvent::GetEventSource); - static REL::Relocation func{ REL::ID(119423) }; - return func(); - } - }; - - struct ItemGrabbedEvent - { - [[nodiscard]] static BSTEventSource* GetEventSource() - { - using func_t = decltype(&Workshop::ItemGrabbedEvent::GetEventSource); - static REL::Relocation func{ REL::ID(119424) }; - return func(); - } - }; - - struct ItemMovedEvent - { - [[nodiscard]] static BSTEventSource* GetEventSource() - { - using func_t = decltype(&Workshop::ItemMovedEvent::GetEventSource); - static REL::Relocation func{ REL::ID(119425) }; - return func(); - } - }; - - struct ItemPlacedEvent - { - [[nodiscard]] static BSTEventSource* GetEventSource() - { - using func_t = decltype(&Workshop::ItemPlacedEvent::GetEventSource); - static REL::Relocation func{ REL::ID(119426) }; - return func(); - } - }; - - struct ItemProducedEvent - { - [[nodiscard]] static BSTEventSource* GetEventSource() - { - using func_t = decltype(&Workshop::ItemProducedEvent::GetEventSource); - static REL::Relocation func{ REL::ID(119427) }; - return func(); - } - }; - - struct ItemRemovedEvent - { - [[nodiscard]] static BSTEventSource* GetEventSource() - { - using func_t = decltype(&Workshop::ItemRemovedEvent::GetEventSource); - static REL::Relocation func{ REL::ID(119428) }; - return func(); - } - }; - - struct ItemRepairedEvent - { - [[nodiscard]] static BSTEventSource* GetEventSource() - { - using func_t = decltype(&Workshop::ItemRepairedEvent::GetEventSource); - static REL::Relocation func{ REL::ID(119429) }; - return func(); - } - }; - - struct ItemScrappedEvent - { - [[nodiscard]] static BSTEventSource* GetEventSource() - { - using func_t = decltype(&Workshop::ItemScrappedEvent::GetEventSource); - static REL::Relocation func{ REL::ID(119430) }; - return func(); - } - }; - - struct OutpostNameChangedEvent - { - [[nodiscard]] static BSTEventSource* GetEventSource() - { - using func_t = decltype(&Workshop::OutpostNameChangedEvent::GetEventSource); - static REL::Relocation func{ REL::ID(119431) }; - return func(); - } - }; - - struct OutpostPlacedEvent - { - [[nodiscard]] static BSTEventSource* GetEventSource() - { - using func_t = decltype(&Workshop::OutpostPlacedEvent::GetEventSource); - static REL::Relocation func{ REL::ID(119432) }; - return func(); - } - }; - - struct PlacementStatusEvent - { - [[nodiscard]] static BSTEventSource* GetEventSource() - { - using func_t = decltype(&Workshop::PlacementStatusEvent::GetEventSource); - static REL::Relocation func{ REL::ID(119434) }; - return func(); - } - }; - - struct PowerOffEvent - { - [[nodiscard]] static BSTEventSource* GetEventSource() - { - using func_t = decltype(&Workshop::PowerOffEvent::GetEventSource); - static REL::Relocation func{ REL::ID(119435) }; - return func(); - } - }; - - struct PowerOnEvent - { - [[nodiscard]] static BSTEventSource* GetEventSource() - { - using func_t = decltype(&Workshop::PowerOnEvent::GetEventSource); - static REL::Relocation func{ REL::ID(119436) }; - return func(); - } - }; - - struct SnapBehaviorCycledEvent - { - [[nodiscard]] static BSTEventSource* GetEventSource() - { - using func_t = decltype(&Workshop::SnapBehaviorCycledEvent::GetEventSource); - static REL::Relocation func{ REL::ID(119437) }; - return func(); - } - }; - - struct WorkshopFlyCameraEvent - { - [[nodiscard]] static BSTEventSource* GetEventSource() - { - using func_t = decltype(&Workshop::WorkshopFlyCameraEvent::GetEventSource); - static REL::Relocation func{ REL::ID(119438) }; - return func(); - } - }; - - struct WorkshopItemPlacedEvent - { - [[nodiscard]] static BSTEventSource* GetEventSource() - { - using func_t = decltype(&Workshop::WorkshopItemPlacedEvent::GetEventSource); - static REL::Relocation func{ REL::ID(119439) }; - return func(); - } - }; - - struct WorkshopModeEvent - { - [[nodiscard]] static BSTEventSource* GetEventSource() - { - using func_t = decltype(&Workshop::WorkshopModeEvent::GetEventSource); - static REL::Relocation func{ REL::ID(119440) }; - return func(); - } - }; - - struct WorkshopOutputLinkEvent - { - [[nodiscard]] static BSTEventSource* GetEventSource() - { - using func_t = decltype(&Workshop::WorkshopOutputLinkEvent::GetEventSource); - static REL::Relocation func{ REL::ID(119441) }; - return func(); - } - }; - - struct WorkshopStatsChangedEvent - { - [[nodiscard]] static BSTEventSource* GetEventSource() - { - using func_t = decltype(&Workshop::WorkshopStatsChangedEvent::GetEventSource); - static REL::Relocation func{ REL::ID(119442) }; - return func(); - } - }; - - struct WorkshopUpdateStatsEvent - { - [[nodiscard]] static BSTEventSource* GetEventSource() - { - using func_t = decltype(&Workshop::WorkshopUpdateStatsEvent::GetEventSource); - static REL::Relocation func{ REL::ID(119443) }; - return func(); - } - }; - }; - - struct ShipCameraStateToggled - { - [[nodiscard]] static BSTEventSource* GetEventSource() - { - using func_t = decltype(&ShipCameraStateToggled::GetEventSource); - static REL::Relocation func{ REL::ID(120266) }; - return func(); - } - }; - - struct PlayerControls - { - struct PlayerJumpPressEvent - { - [[nodiscard]] static BSTEventSource* GetEventSource() - { - using func_t = decltype(&PlayerControls::PlayerJumpPressEvent::GetEventSource); - static REL::Relocation func{ REL::ID(129146) }; - return func(); - } - }; - - struct PlayerJumpReleaseEvent - { - [[nodiscard]] static BSTEventSource* GetEventSource() - { - using func_t = decltype(&PlayerControls::PlayerJumpReleaseEvent::GetEventSource); - static REL::Relocation func{ REL::ID(129147) }; - return func(); - } - }; - - struct PlayerZeroGSprintJustPressedEvent - { - [[nodiscard]] static BSTEventSource* GetEventSource() - { - using func_t = decltype(&PlayerControls::PlayerZeroGSprintJustPressedEvent::GetEventSource); - static REL::Relocation func{ REL::ID(129188) }; - return func(); - } - }; - - struct PlayerIronSightsEndEvent - { - [[nodiscard]] static BSTEventSource* GetEventSource() - { - using func_t = decltype(&PlayerControls::PlayerIronSightsEndEvent::GetEventSource); - static REL::Relocation func{ REL::ID(129341) }; - return func(); - } - }; - - struct PlayerIronSightsStartEvent - { - [[nodiscard]] static BSTEventSource* GetEventSource() - { - using func_t = decltype(&PlayerControls::PlayerIronSightsStartEvent::GetEventSource); - static REL::Relocation func{ REL::ID(129342) }; - return func(); - } - }; - - struct PlayerZeroGSprintReleasedEvent - { - [[nodiscard]] static BSTEventSource* GetEventSource() - { - using func_t = decltype(&PlayerControls::PlayerZeroGSprintReleasedEvent::GetEventSource); - static REL::Relocation func{ REL::ID(129189) }; - return func(); - } - }; - }; - - struct SpaceshipWeaponBinding - { - struct SpaceshipWeaponBindingChangedEvent - { - [[nodiscard]] static BSTEventSource* GetEventSource() - { - using func_t = decltype(&SpaceshipWeaponBinding::SpaceshipWeaponBindingChangedEvent::GetEventSource); - static REL::Relocation func{ REL::ID(130322) }; - return func(); - } - }; - }; - - struct PhotoGallery_DeletePhoto - { - [[nodiscard]] static BSTEventSource* GetEventSource() - { - using func_t = decltype(&PhotoGallery_DeletePhoto::GetEventSource); - static REL::Relocation func{ REL::ID(130819) }; - return func(); - } - }; - - struct PowersMenu_ActivateEssence - { - [[nodiscard]] static BSTEventSource* GetEventSource() - { - using func_t = decltype(&PowersMenu_ActivateEssence::GetEventSource); - static REL::Relocation func{ REL::ID(130908) }; - return func(); - } - }; - - struct PowersMenu_EquipPower - { - [[nodiscard]] static BSTEventSource* GetEventSource() - { - using func_t = decltype(&PowersMenu_EquipPower::GetEventSource); - static REL::Relocation func{ REL::ID(130909) }; - return func(); - } - }; - - struct PowersMenu_FavoritePower - { - [[nodiscard]] static BSTEventSource* GetEventSource() - { - using func_t = decltype(&PowersMenu_FavoritePower::GetEventSource); - static REL::Relocation func{ REL::ID(130910) }; - return func(); - } - }; - - struct ContainerMenuClosed - { - struct Event - { - [[nodiscard]] static BSTEventSource* GetEventSource() - { - using func_t = decltype(&ContainerMenuClosed::Event::GetEventSource); - static REL::Relocation func{ REL::ID(131197) }; - return func(); - } - }; - }; - - struct BinkMovieStoppedPlayingEvent - { - [[nodiscard]] static BSTEventSource* GetEventSource() - { - using func_t = decltype(&BinkMovieStoppedPlayingEvent::GetEventSource); - static REL::Relocation func{ REL::ID(131237) }; - return func(); - } - }; - - struct CraftingMenu_CraftItem - { - [[nodiscard]] static BSTEventSource* GetEventSource() - { - using func_t = decltype(&CraftingMenu_CraftItem::GetEventSource); - static REL::Relocation func{ REL::ID(132096) }; - return func(); - } - }; - - struct CraftingMenu_ExitBench - { - [[nodiscard]] static BSTEventSource* GetEventSource() - { - using func_t = decltype(&CraftingMenu_ExitBench::GetEventSource); - static REL::Relocation func{ REL::ID(132097) }; - return func(); - } - }; - - struct CraftingMenu_InstallMod - { - [[nodiscard]] static BSTEventSource* GetEventSource() - { - using func_t = decltype(&CraftingMenu_InstallMod::GetEventSource); - static REL::Relocation func{ REL::ID(132098) }; - return func(); - } - }; - - struct CraftingMenu_RenameItem - { - [[nodiscard]] static BSTEventSource* GetEventSource() - { - using func_t = decltype(&CraftingMenu_RenameItem::GetEventSource); - static REL::Relocation func{ REL::ID(132099) }; - return func(); - } - }; - - struct CraftingMenu_RevertedModdedItem - { - [[nodiscard]] static BSTEventSource* GetEventSource() - { - using func_t = decltype(&CraftingMenu_RevertedModdedItem::GetEventSource); - static REL::Relocation func{ REL::ID(132100) }; - return func(); - } - }; - - struct CraftingMenu_SelectedMod - { - [[nodiscard]] static BSTEventSource* GetEventSource() - { - using func_t = decltype(&CraftingMenu_SelectedMod::GetEventSource); - static REL::Relocation func{ REL::ID(132101) }; - return func(); - } - }; - - struct CraftingMenu_SelectedModSlot - { - [[nodiscard]] static BSTEventSource* GetEventSource() - { - using func_t = decltype(&CraftingMenu_SelectedModSlot::GetEventSource); - static REL::Relocation func{ REL::ID(132102) }; - return func(); - } - }; - - struct CraftingMenu_SelectedModdableItem - { - [[nodiscard]] static BSTEventSource* GetEventSource() - { - using func_t = decltype(&CraftingMenu_SelectedModdableItem::GetEventSource); - static REL::Relocation func{ REL::ID(132103) }; - return func(); - } - }; - - struct CraftingMenu_SelectedRecipe - { - [[nodiscard]] static BSTEventSource* GetEventSource() - { - using func_t = decltype(&CraftingMenu_SelectedRecipe::GetEventSource); - static REL::Relocation func{ REL::ID(132104) }; - return func(); - } - }; - - struct CraftingMenu_ToggleTracking - { - [[nodiscard]] static BSTEventSource* GetEventSource() - { - using func_t = decltype(&CraftingMenu_ToggleTracking::GetEventSource); - static REL::Relocation func{ REL::ID(132106) }; - return func(); - } - }; - - struct CraftingMenu_ViewingModdableItem - { - [[nodiscard]] static BSTEventSource* GetEventSource() - { - using func_t = decltype(&CraftingMenu_ViewingModdableItem::GetEventSource); - static REL::Relocation func{ REL::ID(132107) }; - return func(); - } - }; - - struct CraftingMenu_CloseMenu - { - [[nodiscard]] static BSTEventSource* GetEventSource() - { - using func_t = decltype(&CraftingMenu_CloseMenu::GetEventSource); - static REL::Relocation func{ REL::ID(132468) }; - return func(); - } - }; - - struct InventoryMenu_Change3DView - { - [[nodiscard]] static BSTEventSource* GetEventSource() - { - using func_t = decltype(&InventoryMenu_Change3DView::GetEventSource); - static REL::Relocation func{ REL::ID(132470) }; - return func(); - } - }; - - struct InventoryMenu_PaperDollTryOn - { - [[nodiscard]] static BSTEventSource* GetEventSource() - { - using func_t = decltype(&InventoryMenu_PaperDollTryOn::GetEventSource); - static REL::Relocation func{ REL::ID(132471) }; - return func(); - } - }; - - struct InventoryMenu_ResetPaperDollInv - { - [[nodiscard]] static BSTEventSource* GetEventSource() - { - using func_t = decltype(&InventoryMenu_ResetPaperDollInv::GetEventSource); - static REL::Relocation func{ REL::ID(132472) }; - return func(); - } - }; - - struct ShowingQuestMarketTextEvent - { - [[nodiscard]] static BSTEventSource* GetEventSource() - { - using func_t = decltype(&ShowingQuestMarketTextEvent::GetEventSource); - static REL::Relocation func{ REL::ID(133279) }; - return func(); - } - }; - - struct TargetHitEvent - { - [[nodiscard]] static BSTEventSource* GetEventSource() - { - using func_t = decltype(&TargetHitEvent::GetEventSource); - static REL::Relocation func{ REL::ID(133346) }; - return func(); - } - }; - - struct ClearHUDMessagesEvent - { - [[nodiscard]] static BSTEventSource* GetEventSource() - { - using func_t = decltype(&ClearHUDMessagesEvent::GetEventSource); - static REL::Relocation func{ REL::ID(133511) }; - return func(); - } - }; - - struct ShowHUDMessageEvent - { - [[nodiscard]] static BSTEventSource* GetEventSource() - { - using func_t = decltype(&ShowHUDMessageEvent::GetEventSource); - static REL::Relocation func{ REL::ID(133512) }; - return func(); - } - }; - - struct PlayerDetectionLevelChangeEvent - { - [[nodiscard]] static BSTEventSource* GetEventSource() - { - using func_t = decltype(&PlayerDetectionLevelChangeEvent::GetEventSource); - static REL::Relocation func{ REL::ID(133601) }; - return func(); - } - }; - - struct InventoryMenu_ToggleHelmet - { - [[nodiscard]] static BSTEventSource* GetEventSource() - { - using func_t = decltype(&InventoryMenu_ToggleHelmet::GetEventSource); - static REL::Relocation func{ REL::ID(134925) }; - return func(); - } - }; - - struct InventoryMenu_ToggleSuit - { - [[nodiscard]] static BSTEventSource* GetEventSource() - { - using func_t = decltype(&InventoryMenu_ToggleSuit::GetEventSource); - static REL::Relocation func{ REL::ID(134926) }; - return func(); - } - }; - - struct ControlsRemappedEvent - { - [[nodiscard]] static BSTEventSource* GetEventSource() - { - using func_t = decltype(&ControlsRemappedEvent::GetEventSource); - static REL::Relocation func{ REL::ID(136133) }; - return func(); - } - }; - - struct ShowLongShipBootup - { - [[nodiscard]] static BSTEventSource* GetEventSource() - { - using func_t = decltype(&ShowLongShipBootup::GetEventSource); - static REL::Relocation func{ REL::ID(137014) }; - return func(); - } - }; - - struct ShipHudQuickContainer_TransferMenu - { - [[nodiscard]] static BSTEventSource* GetEventSource() - { - using func_t = decltype(&ShipHudQuickContainer_TransferMenu::GetEventSource); - static REL::Relocation func{ REL::ID(137015) }; - return func(); - } - }; - - struct ShipHud_Activate - { - [[nodiscard]] static BSTEventSource* GetEventSource() - { - using func_t = decltype(&ShipHud_Activate::GetEventSource); - static REL::Relocation func{ REL::ID(137016) }; - return func(); - } - }; - - struct ShipHud_BodyViewMarkerDimensions - { - [[nodiscard]] static BSTEventSource* GetEventSource() - { - using func_t = decltype(&ShipHud_BodyViewMarkerDimensions::GetEventSource); - static REL::Relocation func{ REL::ID(137017) }; - return func(); - } - }; - - struct ShipHud_ChangeComponentSelection - { - [[nodiscard]] static BSTEventSource* GetEventSource() - { - using func_t = decltype(&ShipHud_ChangeComponentSelection::GetEventSource); - static REL::Relocation func{ REL::ID(137018) }; - return func(); - } - }; - - struct ShipHud_Deselect - { - [[nodiscard]] static BSTEventSource* GetEventSource() - { - using func_t = decltype(&ShipHud_Deselect::GetEventSource); - static REL::Relocation func{ REL::ID(137020) }; - return func(); - } - }; - - struct ShipHud_FarTravel - { - [[nodiscard]] static BSTEventSource* GetEventSource() - { - using func_t = decltype(&ShipHud_FarTravel::GetEventSource); - static REL::Relocation func{ REL::ID(137021) }; - return func(); - } - }; - - struct ShipHud_HailAccepted - { - [[nodiscard]] static BSTEventSource* GetEventSource() - { - using func_t = decltype(&ShipHud_HailAccepted::GetEventSource); - static REL::Relocation func{ REL::ID(137022) }; - return func(); - } - }; - - struct ShipHud_HailCancelled - { - [[nodiscard]] static BSTEventSource* GetEventSource() - { - using func_t = decltype(&ShipHud_HailCancelled::GetEventSource); - static REL::Relocation func{ REL::ID(137023) }; - return func(); - } - }; - - struct ShipHud_JumpToQuestMarker - { - [[nodiscard]] static BSTEventSource* GetEventSource() - { - using func_t = decltype(&ShipHud_JumpToQuestMarker::GetEventSource); - static REL::Relocation func{ REL::ID(137023) }; - return func(); - } - }; - - struct ShipHud_Land + struct CharGen_JewelryColorChange { - [[nodiscard]] static BSTEventSource* GetEventSource() + [[nodiscard]] static BSTEventSource* GetEventSource() { - using func_t = decltype(&ShipHud_Land::GetEventSource); - static REL::Relocation func{ REL::ID(137025) }; + using func_t = decltype(&CharGen_JewelryColorChange::GetEventSource); + static REL::Relocation func{ REL::ID(141201) }; return func(); } }; - struct ShipHud_LandingMarkerMap + struct CharGen_MakeupChange { - [[nodiscard]] static BSTEventSource* GetEventSource() + [[nodiscard]] static BSTEventSource* GetEventSource() { - using func_t = decltype(&ShipHud_LandingMarkerMap::GetEventSource); - static REL::Relocation func{ REL::ID(137026) }; + using func_t = decltype(&CharGen_MakeupChange::GetEventSource); + static REL::Relocation func{ REL::ID(141202) }; return func(); } }; - struct ShipHud_Map + struct CharGen_MarkingsChange { - [[nodiscard]] static BSTEventSource* GetEventSource() + [[nodiscard]] static BSTEventSource* GetEventSource() { - using func_t = decltype(&ShipHud_Map::GetEventSource); - static REL::Relocation func{ REL::ID(137027) }; + using func_t = decltype(&CharGen_MarkingsChange::GetEventSource); + static REL::Relocation func{ REL::ID(141203) }; return func(); } }; - struct ShipHud_OpenPhotoMode + struct CharGen_PostBlendColorOptionChange { - [[nodiscard]] static BSTEventSource* GetEventSource() + [[nodiscard]] static BSTEventSource* GetEventSource() { - using func_t = decltype(&ShipHud_OpenPhotoMode::GetEventSource); - static REL::Relocation func{ REL::ID(137029) }; + using func_t = decltype(&CharGen_PostBlendColorOptionChange::GetEventSource); + static REL::Relocation func{ REL::ID(141204) }; return func(); } }; - struct ShipHud_Repair + struct CharGen_PostBlendFaceChange { - [[nodiscard]] static BSTEventSource* GetEventSource() + [[nodiscard]] static BSTEventSource* GetEventSource() { - using func_t = decltype(&ShipHud_Repair::GetEventSource); - static REL::Relocation func{ REL::ID(137030) }; + using func_t = decltype(&CharGen_PostBlendFaceChange::GetEventSource); + static REL::Relocation func{ REL::ID(141205) }; return func(); } }; - struct ShipHud_SetTargetMode + struct CharGen_PostBlendIntensityChange { - [[nodiscard]] static BSTEventSource* GetEventSource() + [[nodiscard]] static BSTEventSource* GetEventSource() { - using func_t = decltype(&ShipHud_SetTargetMode::GetEventSource); - static REL::Relocation func{ REL::ID(137031) }; + using func_t = decltype(&CharGen_PostBlendIntensityChange::GetEventSource); + static REL::Relocation func{ REL::ID(141206) }; return func(); } }; - struct ShipHud_Target + struct CharGen_PresetChange { - [[nodiscard]] static BSTEventSource* GetEventSource() + [[nodiscard]] static BSTEventSource* GetEventSource() { - using func_t = decltype(&ShipHud_Target::GetEventSource); - static REL::Relocation func{ REL::ID(137032) }; + using func_t = decltype(&CharGen_PresetChange::GetEventSource); + static REL::Relocation func{ REL::ID(141207) }; return func(); } }; - struct ShipHud_TargetShipSystem + struct CharGen_RollOffLocomotion { - [[nodiscard]] static BSTEventSource* GetEventSource() + [[nodiscard]] static BSTEventSource* GetEventSource() { - using func_t = decltype(&ShipHud_TargetShipSystem::GetEventSource); - static REL::Relocation func{ REL::ID(137033) }; + using func_t = decltype(&CharGen_RollOffLocomotion::GetEventSource); + static REL::Relocation func{ REL::ID(141208) }; return func(); } }; - struct ShipHud_UntargetShipSystem + struct CharGen_RollOnLocomotion { - [[nodiscard]] static BSTEventSource* GetEventSource() + [[nodiscard]] static BSTEventSource* GetEventSource() { - using func_t = decltype(&ShipHud_UntargetShipSystem::GetEventSource); - static REL::Relocation func{ REL::ID(137034) }; + using func_t = decltype(&CharGen_RollOnLocomotion::GetEventSource); + static REL::Relocation func{ REL::ID(141209) }; return func(); } }; - struct ShipHud_UpdateComponentPower + struct CharGen_RotatePaperdoll { - [[nodiscard]] static BSTEventSource* GetEventSource() + [[nodiscard]] static BSTEventSource* GetEventSource() { - using func_t = decltype(&ShipHud_UpdateComponentPower::GetEventSource); - static REL::Relocation func{ REL::ID(137035) }; + using func_t = decltype(&CharGen_RotatePaperdoll::GetEventSource); + static REL::Relocation func{ REL::ID(141210) }; return func(); } }; - struct BGSScannerGuideEffectStatusUpdateEvent + struct CharGen_SetAdditionalSlider { - [[nodiscard]] static BSTEventSource* GetEventSource() + [[nodiscard]] static BSTEventSource* GetEventSource() { - using func_t = decltype(&BGSScannerGuideEffectStatusUpdateEvent::GetEventSource); - static REL::Relocation func{ REL::ID(138080) }; + using func_t = decltype(&CharGen_SetAdditionalSlider::GetEventSource); + static REL::Relocation func{ REL::ID(141211) }; return func(); } }; - struct ExperienceMeterDisplayData + struct CharGen_SetBackground { - [[nodiscard]] static BSTEventSource* GetEventSource() + [[nodiscard]] static BSTEventSource* GetEventSource() { - using func_t = decltype(&ExperienceMeterDisplayData::GetEventSource); - static REL::Relocation func{ REL::ID(138446) }; + using func_t = decltype(&CharGen_SetBackground::GetEventSource); + static REL::Relocation func{ REL::ID(141212) }; return func(); } }; - struct LevelUp_AnimFinished + struct CharGen_SetBlockInputUnderPopup { - [[nodiscard]] static BSTEventSource* GetEventSource() + [[nodiscard]] static BSTEventSource* GetEventSource() { - using func_t = decltype(&LevelUp_AnimFinished::GetEventSource); - static REL::Relocation func{ REL::ID(138447) }; + using func_t = decltype(&CharGen_SetBlockInputUnderPopup::GetEventSource); + static REL::Relocation func{ REL::ID(141213) }; return func(); } }; - struct LocationTextWidget_FinishedQueue + struct CharGen_SetBodyValues { - [[nodiscard]] static BSTEventSource* GetEventSource() + [[nodiscard]] static BSTEventSource* GetEventSource() { - using func_t = decltype(&LocationTextWidget_FinishedQueue::GetEventSource); - static REL::Relocation func{ REL::ID(138451) }; + using func_t = decltype(&CharGen_SetBodyValues::GetEventSource); + static REL::Relocation func{ REL::ID(141214) }; return func(); } }; - struct PlayerCrosshairModeEvent + struct CharGen_SetCameraPosition { - [[nodiscard]] static BSTEventSource* GetEventSource() + [[nodiscard]] static BSTEventSource* GetEventSource() { - using func_t = decltype(&PlayerCrosshairModeEvent::GetEventSource); - static REL::Relocation func{ REL::ID(133336) }; + using func_t = decltype(&CharGen_SetCameraPosition::GetEventSource); + static REL::Relocation func{ REL::ID(141215) }; return func(); } }; - struct HUDNotificationEvent + struct CharGen_SetPronoun { - [[nodiscard]] static BSTEventSource* GetEventSource() + [[nodiscard]] static BSTEventSource* GetEventSource() { - using func_t = decltype(&HUDNotificationEvent::GetEventSource); - static REL::Relocation func{ REL::ID(138665) }; + using func_t = decltype(&CharGen_SetPronoun::GetEventSource); + static REL::Relocation func{ REL::ID(141216) }; return func(); } }; - struct HUDNotification_SetMissionActive + struct CharGen_SetSex { - [[nodiscard]] static BSTEventSource* GetEventSource() + [[nodiscard]] static BSTEventSource* GetEventSource() { - using func_t = decltype(&HUDNotification_SetMissionActive::GetEventSource); - static REL::Relocation func{ REL::ID(138669) }; + using func_t = decltype(&CharGen_SetSex::GetEventSource); + static REL::Relocation func{ REL::ID(141217) }; return func(); } }; - struct BarterMenu_BuyItem + struct CharGen_SetSlider { - [[nodiscard]] static BSTEventSource* GetEventSource() + [[nodiscard]] static BSTEventSource* GetEventSource() { - using func_t = decltype(&BarterMenu_BuyItem::GetEventSource); - static REL::Relocation func{ REL::ID(138993) }; + using func_t = decltype(&CharGen_SetSlider::GetEventSource); + static REL::Relocation func{ REL::ID(141218) }; return func(); } }; - struct BarterMenu_CloseMenu + struct CharGen_SetTrait { - [[nodiscard]] static BSTEventSource* GetEventSource() + [[nodiscard]] static BSTEventSource* GetEventSource() { - using func_t = decltype(&BarterMenu_CloseMenu::GetEventSource); - static REL::Relocation func{ REL::ID(138994) }; + using func_t = decltype(&CharGen_SetTrait::GetEventSource); + static REL::Relocation func{ REL::ID(141219) }; return func(); } }; - struct BarterMenu_HideModel + struct CharGen_ShowChooseBackgroundMessage { - [[nodiscard]] static BSTEventSource* GetEventSource() + [[nodiscard]] static BSTEventSource* GetEventSource() { - using func_t = decltype(&BarterMenu_HideModel::GetEventSource); - static REL::Relocation func{ REL::ID(138995) }; + using func_t = decltype(&CharGen_ShowChooseBackgroundMessage::GetEventSource); + static REL::Relocation func{ REL::ID(141220) }; return func(); } }; - struct BarterMenu_LoadModel + struct CharGen_ShowPlayerRenameMessage { - [[nodiscard]] static BSTEventSource* GetEventSource() + [[nodiscard]] static BSTEventSource* GetEventSource() { - using func_t = decltype(&BarterMenu_LoadModel::GetEventSource); - static REL::Relocation func{ REL::ID(138996) }; + using func_t = decltype(&CharGen_ShowPlayerRenameMessage::GetEventSource); + static REL::Relocation func{ REL::ID(141221) }; return func(); } }; - struct BarterMenu_SellItem + struct CharGen_SkintoneChange { - [[nodiscard]] static BSTEventSource* GetEventSource() + [[nodiscard]] static BSTEventSource* GetEventSource() { - using func_t = decltype(&BarterMenu_SellItem::GetEventSource); - static REL::Relocation func{ REL::ID(138997) }; + using func_t = decltype(&CharGen_SkintoneChange::GetEventSource); + static REL::Relocation func{ REL::ID(141222) }; return func(); } }; - struct BarterMenu_SetMouseOverModel + struct CharGen_StartBodyChange { - [[nodiscard]] static BSTEventSource* GetEventSource() + [[nodiscard]] static BSTEventSource* GetEventSource() { - using func_t = decltype(&BarterMenu_SetMouseOverModel::GetEventSource); - static REL::Relocation func{ REL::ID(138998) }; + using func_t = decltype(&CharGen_StartBodyChange::GetEventSource); + static REL::Relocation func{ REL::ID(141223) }; return func(); } }; - struct BarterMenu_ViewedItem + struct CharGen_StartTextEntry { - [[nodiscard]] static BSTEventSource* GetEventSource() + [[nodiscard]] static BSTEventSource* GetEventSource() { - using func_t = decltype(&BarterMenu_ViewedItem::GetEventSource); - static REL::Relocation func{ REL::ID(139000) }; + using func_t = decltype(&CharGen_StartTextEntry::GetEventSource); + static REL::Relocation func{ REL::ID(141224) }; return func(); } }; - struct MissionMenu_ClearState + struct CharGen_SwitchBodyType { - [[nodiscard]] static BSTEventSource* GetEventSource() + [[nodiscard]] static BSTEventSource* GetEventSource() { - using func_t = decltype(&MissionMenu_ClearState::GetEventSource); - static REL::Relocation func{ REL::ID(139095) }; + using func_t = decltype(&CharGen_SwitchBodyType::GetEventSource); + static REL::Relocation func{ REL::ID(141225) }; return func(); } }; - struct MissionMenu_PlotToLocation + struct CharGen_SwitchLocomotion { - [[nodiscard]] static BSTEventSource* GetEventSource() + [[nodiscard]] static BSTEventSource* GetEventSource() { - using func_t = decltype(&MissionMenu_PlotToLocation::GetEventSource); - static REL::Relocation func{ REL::ID(139096) }; + using func_t = decltype(&CharGen_SwitchLocomotion::GetEventSource); + static REL::Relocation func{ REL::ID(141226) }; return func(); } }; - struct MissionMenu_RejectQuest + struct CharGen_TeethChange { - [[nodiscard]] static BSTEventSource* GetEventSource() + [[nodiscard]] static BSTEventSource* GetEventSource() { - using func_t = decltype(&MissionMenu_RejectQuest::GetEventSource); - static REL::Relocation func{ REL::ID(139097) }; + using func_t = decltype(&CharGen_TeethChange::GetEventSource); + static REL::Relocation func{ REL::ID(141227) }; return func(); } }; - struct MissionMenu_ShowItemLocation + struct CharGen_TeethRollOff { - [[nodiscard]] static BSTEventSource* GetEventSource() + [[nodiscard]] static BSTEventSource* GetEventSource() { - using func_t = decltype(&MissionMenu_ShowItemLocation::GetEventSource); - static REL::Relocation func{ REL::ID(139100) }; + using func_t = decltype(&CharGen_TeethRollOff::GetEventSource); + static REL::Relocation func{ REL::ID(141228) }; return func(); } }; - struct MissionMenu_ToggleTrackingQuest + struct CharGen_TeethRollOn { - [[nodiscard]] static BSTEventSource* GetEventSource() + [[nodiscard]] static BSTEventSource* GetEventSource() { - using func_t = decltype(&MissionMenu_ToggleTrackingQuest::GetEventSource); - static REL::Relocation func{ REL::ID(139102) }; + using func_t = decltype(&CharGen_TeethRollOn::GetEventSource); + static REL::Relocation func{ REL::ID(141229) }; return func(); } }; - struct DataSlateMenu_playSFX + struct CharGen_ToggleMarking { - [[nodiscard]] static BSTEventSource* GetEventSource() + [[nodiscard]] static BSTEventSource* GetEventSource() { - using func_t = decltype(&DataSlateMenu_playSFX::GetEventSource); - static REL::Relocation func{ REL::ID(139188) }; + using func_t = decltype(&CharGen_ToggleMarking::GetEventSource); + static REL::Relocation func{ REL::ID(141230) }; return func(); } }; - struct DataSlateMenu_toggleAudio + struct CharGen_TogglePreviewHabSuit { - [[nodiscard]] static BSTEventSource* GetEventSource() + [[nodiscard]] static BSTEventSource* GetEventSource() { - using func_t = decltype(&DataSlateMenu_toggleAudio::GetEventSource); - static REL::Relocation func{ REL::ID(139189) }; + using func_t = decltype(&CharGen_TogglePreviewHabSuit::GetEventSource); + static REL::Relocation func{ REL::ID(141231) }; return func(); } }; - struct InventoryMenu_HideModel + struct ClearHUDMessagesEvent { - [[nodiscard]] static BSTEventSource* GetEventSource() + [[nodiscard]] static BSTEventSource* GetEventSource() { - using func_t = decltype(&InventoryMenu_HideModel::GetEventSource); - static REL::Relocation func{ REL::ID(139340) }; + using func_t = decltype(&ClearHUDMessagesEvent::GetEventSource); + static REL::Relocation func{ REL::ID(133511) }; return func(); } }; - struct InventoryMenu_LoadModel + struct ClearQuickContainerEvent { - [[nodiscard]] static BSTEventSource* GetEventSource() + [[nodiscard]] static BSTEventSource* GetEventSource() { - using func_t = decltype(&InventoryMenu_LoadModel::GetEventSource); - static REL::Relocation func{ REL::ID(139341) }; + using func_t = decltype(&ClearQuickContainerEvent::GetEventSource); + static REL::Relocation func{ REL::ID(103704) }; return func(); } }; - struct InventoryMenu_OnEnterCategory + struct ClearShipHudTarget { - [[nodiscard]] static BSTEventSource* GetEventSource() + struct Event { - using func_t = decltype(&InventoryMenu_OnEnterCategory::GetEventSource); - static REL::Relocation func{ REL::ID(139342) }; - return func(); - } + [[nodiscard]] static BSTEventSource* GetEventSource() + { + using func_t = decltype(&ClearShipHudTarget::Event::GetEventSource); + static REL::Relocation func{ REL::ID(137011) }; + return func(); + } + }; }; - struct InventoryMenu_OpenCargoHold + struct ContainerMenu_HideModel { - [[nodiscard]] static BSTEventSource* GetEventSource() + [[nodiscard]] static BSTEventSource* GetEventSource() { - using func_t = decltype(&InventoryMenu_OpenCargoHold::GetEventSource); - static REL::Relocation func{ REL::ID(139343) }; + using func_t = decltype(&ContainerMenu_HideModel::GetEventSource); + static REL::Relocation func{ REL::ID(166510) }; return func(); } }; - struct InventoryMenu_SelectItem + struct ContainerMenu_Jettison { - [[nodiscard]] static BSTEventSource* GetEventSource() + [[nodiscard]] static BSTEventSource* GetEventSource() { - using func_t = decltype(&InventoryMenu_SelectItem::GetEventSource); - static REL::Relocation func{ REL::ID(139344) }; + using func_t = decltype(&ContainerMenu_Jettison::GetEventSource); + static REL::Relocation func{ REL::ID(166511) }; return func(); } }; - struct InventoryMenu_SetMouseOverModel + struct ContainerMenu_LoadModel { - [[nodiscard]] static BSTEventSource* GetEventSource() + [[nodiscard]] static BSTEventSource* GetEventSource() { - using func_t = decltype(&InventoryMenu_SetMouseOverModel::GetEventSource); - static REL::Relocation func{ REL::ID(139345) }; + using func_t = decltype(&ContainerMenu_LoadModel::GetEventSource); + static REL::Relocation func{ REL::ID(166512) }; return func(); } }; - struct InventoryMenu_ToggleFavorite + struct ContainerMenu_OpenRefuelMenu { - [[nodiscard]] static BSTEventSource* GetEventSource() + [[nodiscard]] static BSTEventSource* GetEventSource() { - using func_t = decltype(&InventoryMenu_ToggleFavorite::GetEventSource); - static REL::Relocation func{ REL::ID(139347) }; + using func_t = decltype(&ContainerMenu_OpenRefuelMenu::GetEventSource); + static REL::Relocation func{ REL::ID(166513) }; return func(); } }; - struct MissionBoard_MissionEntryChanged + struct ContainerMenu_SetMouseOverModel { - [[nodiscard]] static BSTEventSource* GetEventSource() + [[nodiscard]] static BSTEventSource* GetEventSource() { - using func_t = decltype(&MissionBoard_MissionEntryChanged::GetEventSource); - static REL::Relocation func{ REL::ID(139500) }; + using func_t = decltype(&ContainerMenu_SetMouseOverModel::GetEventSource); + static REL::Relocation func{ REL::ID(166514) }; return func(); } }; - struct MissionBoard_MissionEntryPressed + struct ContainerMenu_TakeAll { - [[nodiscard]] static BSTEventSource* GetEventSource() + [[nodiscard]] static BSTEventSource* GetEventSource() { - using func_t = decltype(&MissionBoard_MissionEntryPressed::GetEventSource); - static REL::Relocation func{ REL::ID(139501) }; + using func_t = decltype(&ContainerMenu_TakeAll::GetEventSource); + static REL::Relocation func{ REL::ID(166515) }; return func(); } }; - struct MonocleMenu_Bioscan + struct ContainerMenu_ToggleEquip { - [[nodiscard]] static BSTEventSource* GetEventSource() + [[nodiscard]] static BSTEventSource* GetEventSource() { - using func_t = decltype(&MonocleMenu_Bioscan::GetEventSource); - static REL::Relocation func{ REL::ID(139641) }; + using func_t = decltype(&ContainerMenu_ToggleEquip::GetEventSource); + static REL::Relocation func{ REL::ID(166516) }; return func(); } }; - struct MonocleMenu_FastTravel + struct ContainerMenu_TransferItem { - [[nodiscard]] static BSTEventSource* GetEventSource() + [[nodiscard]] static BSTEventSource* GetEventSource() { - using func_t = decltype(&MonocleMenu_FastTravel::GetEventSource); - static REL::Relocation func{ REL::ID(139642) }; + using func_t = decltype(&ContainerMenu_TransferItem::GetEventSource); + static REL::Relocation func{ REL::ID(166518) }; return func(); } }; - struct MonocleMenu_Harvest + struct ContainerMenuClosed { - [[nodiscard]] static BSTEventSource* GetEventSource() + struct Event { - using func_t = decltype(&MonocleMenu_Harvest::GetEventSource); - static REL::Relocation func{ REL::ID(139643) }; - return func(); - } + [[nodiscard]] static BSTEventSource* GetEventSource() + { + using func_t = decltype(&ContainerMenuClosed::Event::GetEventSource); + static REL::Relocation func{ REL::ID(131197) }; + return func(); + } + }; }; - struct MonocleMenu_Outpost + struct ControlsRemappedEvent { - [[nodiscard]] static BSTEventSource* GetEventSource() + [[nodiscard]] static BSTEventSource* GetEventSource() { - using func_t = decltype(&MonocleMenu_Outpost::GetEventSource); - static REL::Relocation func{ REL::ID(139645) }; + using func_t = decltype(&ControlsRemappedEvent::GetEventSource); + static REL::Relocation func{ REL::ID(136133) }; return func(); } }; - struct MonocleMenu_SocialSpell + struct CraftingMenu_CloseMenu { - [[nodiscard]] static BSTEventSource* GetEventSource() + [[nodiscard]] static BSTEventSource* GetEventSource() { - using func_t = decltype(&MonocleMenu_SocialSpell::GetEventSource); - static REL::Relocation func{ REL::ID(139648) }; + using func_t = decltype(&CraftingMenu_CloseMenu::GetEventSource); + static REL::Relocation func{ REL::ID(132468) }; return func(); } }; - struct MonocleMenu_SurfaceMap + struct CraftingMenu_CraftItem { - [[nodiscard]] static BSTEventSource* GetEventSource() + [[nodiscard]] static BSTEventSource* GetEventSource() { - using func_t = decltype(&MonocleMenu_SurfaceMap::GetEventSource); - static REL::Relocation func{ REL::ID(139651) }; + using func_t = decltype(&CraftingMenu_CraftItem::GetEventSource); + static REL::Relocation func{ REL::ID(132096) }; return func(); } }; - struct MonocleMenu_ZoomIn + struct CraftingMenu_ExitBench { - [[nodiscard]] static BSTEventSource* GetEventSource() + [[nodiscard]] static BSTEventSource* GetEventSource() { - using func_t = decltype(&MonocleMenu_ZoomIn::GetEventSource); - static REL::Relocation func{ REL::ID(139653) }; + using func_t = decltype(&CraftingMenu_ExitBench::GetEventSource); + static REL::Relocation func{ REL::ID(132097) }; return func(); } }; - struct MonocleMenu_ZoomOut + struct CraftingMenu_Highlight3D { - [[nodiscard]] static BSTEventSource* GetEventSource() + [[nodiscard]] static BSTEventSource* GetEventSource() { - using func_t = decltype(&MonocleMenu_ZoomOut::GetEventSource); - static REL::Relocation func{ REL::ID(139654) }; + using func_t = decltype(&CraftingMenu_Highlight3D::GetEventSource); + static REL::Relocation func{ REL::ID(144186) }; return func(); } }; - struct PhotoMode_InitializeCategory + struct CraftingMenu_InstallMod { - [[nodiscard]] static BSTEventSource* GetEventSource() + [[nodiscard]] static BSTEventSource* GetEventSource() { - using func_t = decltype(&PhotoMode_InitializeCategory::GetEventSource); - static REL::Relocation func{ REL::ID(139736) }; + using func_t = decltype(&CraftingMenu_InstallMod::GetEventSource); + static REL::Relocation func{ REL::ID(132098) }; return func(); } }; - struct PhotoMode_ResetToDefaults + struct CraftingMenu_RenameItem { - [[nodiscard]] static BSTEventSource* GetEventSource() + [[nodiscard]] static BSTEventSource* GetEventSource() { - using func_t = decltype(&PhotoMode_ResetToDefaults::GetEventSource); - static REL::Relocation func{ REL::ID(139737) }; + using func_t = decltype(&CraftingMenu_RenameItem::GetEventSource); + static REL::Relocation func{ REL::ID(132099) }; return func(); } }; - struct PhotoMode_SliderChanged + struct CraftingMenu_RevertedModdedItem { - [[nodiscard]] static BSTEventSource* GetEventSource() + [[nodiscard]] static BSTEventSource* GetEventSource() { - using func_t = decltype(&PhotoMode_SliderChanged::GetEventSource); - static REL::Relocation func{ REL::ID(139738) }; + using func_t = decltype(&CraftingMenu_RevertedModdedItem::GetEventSource); + static REL::Relocation func{ REL::ID(132100) }; return func(); } }; - struct PhotoMode_TakeSnapshot + struct CraftingMenu_RevertHighlight { - [[nodiscard]] static BSTEventSource* GetEventSource() + [[nodiscard]] static BSTEventSource* GetEventSource() { - using func_t = decltype(&PhotoMode_TakeSnapshot::GetEventSource); - static REL::Relocation func{ REL::ID(139740) }; + using func_t = decltype(&CraftingMenu_RevertHighlight::GetEventSource); + static REL::Relocation func{ REL::ID(144187) }; return func(); } }; - struct PhotoMode_ToggleHelmet + struct CraftingMenu_SelectedMod { - [[nodiscard]] static BSTEventSource* GetEventSource() + [[nodiscard]] static BSTEventSource* GetEventSource() { - using func_t = decltype(&PhotoMode_ToggleHelmet::GetEventSource); - static REL::Relocation func{ REL::ID(139741) }; + using func_t = decltype(&CraftingMenu_SelectedMod::GetEventSource); + static REL::Relocation func{ REL::ID(132101) }; return func(); } }; - struct PhotoMode_ToggleUI + struct CraftingMenu_SelectedModSlot { - [[nodiscard]] static BSTEventSource* GetEventSource() + [[nodiscard]] static BSTEventSource* GetEventSource() { - using func_t = decltype(&PhotoMode_ToggleUI::GetEventSource); - static REL::Relocation func{ REL::ID(139742) }; + using func_t = decltype(&CraftingMenu_SelectedModSlot::GetEventSource); + static REL::Relocation func{ REL::ID(132102) }; return func(); } }; - struct PickpocketMenu_OnItemSelect + struct CraftingMenu_SelectedModdableItem { - [[nodiscard]] static BSTEventSource* GetEventSource() + [[nodiscard]] static BSTEventSource* GetEventSource() { - using func_t = decltype(&PickpocketMenu_OnItemSelect::GetEventSource); - static REL::Relocation func{ REL::ID(139918) }; + using func_t = decltype(&CraftingMenu_SelectedModdableItem::GetEventSource); + static REL::Relocation func{ REL::ID(132103) }; return func(); } }; - struct ResearchMenu_AddMaterial + struct CraftingMenu_SelectedRecipe { - [[nodiscard]] static BSTEventSource* GetEventSource() + [[nodiscard]] static BSTEventSource* GetEventSource() { - using func_t = decltype(&ResearchMenu_AddMaterial::GetEventSource); - static REL::Relocation func{ REL::ID(140018) }; + using func_t = decltype(&CraftingMenu_SelectedRecipe::GetEventSource); + static REL::Relocation func{ REL::ID(132104) }; return func(); } }; - struct ResearchMenu_CategorySelected + struct CraftingMenu_ToggleTracking { - [[nodiscard]] static BSTEventSource* GetEventSource() + [[nodiscard]] static BSTEventSource* GetEventSource() { - using func_t = decltype(&ResearchMenu_CategorySelected::GetEventSource); - static REL::Relocation func{ REL::ID(140019) }; + using func_t = decltype(&CraftingMenu_ToggleTracking::GetEventSource); + static REL::Relocation func{ REL::ID(132106) }; return func(); } }; - struct ResearchMenu_HideModel + struct CraftingMenu_ViewingModdableItem { - [[nodiscard]] static BSTEventSource* GetEventSource() + [[nodiscard]] static BSTEventSource* GetEventSource() { - using func_t = decltype(&ResearchMenu_HideModel::GetEventSource); - static REL::Relocation func{ REL::ID(140021) }; + using func_t = decltype(&CraftingMenu_ViewingModdableItem::GetEventSource); + static REL::Relocation func{ REL::ID(132107) }; return func(); } }; - struct ResearchMenu_PreviewProject + struct CriticalHitEvent { - [[nodiscard]] static BSTEventSource* GetEventSource() + struct Event { - using func_t = decltype(&ResearchMenu_PreviewProject::GetEventSource); - static REL::Relocation func{ REL::ID(140022) }; - return func(); - } + [[nodiscard]] static BSTEventSource* GetEventSource() + { + using func_t = decltype(&CriticalHitEvent::Event::GetEventSource); + static REL::Relocation func{ REL::ID(153653) }; + return func(); + } + + // members + const NiPointer attacker; // 00 + const TESObjectWEAP* weapon; // 08 + bool isSneakAttack; // 10 + }; + static_assert(sizeof(CriticalHitEvent::Event) == 0x18); }; - struct ResearchMenu_ProjectViewed + struct CustomMarkerUpdate { - [[nodiscard]] static BSTEventSource* GetEventSource() + struct Event { - using func_t = decltype(&ResearchMenu_ProjectViewed::GetEventSource); - static REL::Relocation func{ REL::ID(140023) }; - return func(); - } + [[nodiscard]] static BSTEventSource* GetEventSource() + { + using func_t = decltype(&CustomMarkerUpdate::Event::GetEventSource); + static REL::Relocation func{ REL::ID(153654) }; + return func(); + } + }; }; - struct ResearchMenu_ToggleTrackingProject + struct DataMenu_Missions { - [[nodiscard]] static BSTEventSource* GetEventSource() + [[nodiscard]] static BSTEventSource* GetEventSource() { - using func_t = decltype(&ResearchMenu_ToggleTrackingProject::GetEventSource); - static REL::Relocation func{ REL::ID(140025) }; + using func_t = decltype(&DataMenu_Missions::GetEventSource); + static REL::Relocation func{ REL::ID(141471) }; return func(); } }; - struct UnlockedTerminalElementEvent + struct DataMenu_PlotToLocation { - [[nodiscard]] static BSTEventSource* GetEventSource() + [[nodiscard]] static BSTEventSource* GetEventSource() { - using func_t = decltype(&UnlockedTerminalElementEvent::GetEventSource); - static REL::Relocation func{ REL::ID(140243) }; + using func_t = decltype(&DataMenu_PlotToLocation::GetEventSource); + static REL::Relocation func{ REL::ID(141473) }; return func(); } }; - struct SecurityMenu_BackOutKey + struct DataMenu_Reopened { - [[nodiscard]] static BSTEventSource* GetEventSource() + [[nodiscard]] static BSTEventSource* GetEventSource() { - using func_t = decltype(&SecurityMenu_BackOutKey::GetEventSource); - static REL::Relocation func{ REL::ID(140244) }; + using func_t = decltype(&DataMenu_Reopened::GetEventSource); + static REL::Relocation func{ REL::ID(141474) }; return func(); } }; - struct SecurityMenu_ConfirmExit + struct DataMenu_SetPaperDollActive { - [[nodiscard]] static BSTEventSource* GetEventSource() + [[nodiscard]] static BSTEventSource* GetEventSource() { - using func_t = decltype(&SecurityMenu_ConfirmExit::GetEventSource); - static REL::Relocation func{ REL::ID(140246) }; + using func_t = decltype(&DataMenu_SetPaperDollActive::GetEventSource); + static REL::Relocation func{ REL::ID(141482) }; return func(); } }; - struct SecurityMenu_EliminateUnusedKeys + struct DataSlateMenu_playSFX { - [[nodiscard]] static BSTEventSource* GetEventSource() + [[nodiscard]] static BSTEventSource* GetEventSource() { - using func_t = decltype(&SecurityMenu_EliminateUnusedKeys::GetEventSource); - static REL::Relocation func{ REL::ID(140247) }; + using func_t = decltype(&DataSlateMenu_playSFX::GetEventSource); + static REL::Relocation func{ REL::ID(139188) }; return func(); } }; - struct SecurityMenu_GetRingHint + struct DataSlateMenu_toggleAudio { - [[nodiscard]] static BSTEventSource* GetEventSource() + [[nodiscard]] static BSTEventSource* GetEventSource() { - using func_t = decltype(&SecurityMenu_GetRingHint::GetEventSource); - static REL::Relocation func{ REL::ID(140248) }; + using func_t = decltype(&DataSlateMenu_toggleAudio::GetEventSource); + static REL::Relocation func{ REL::ID(139189) }; return func(); } }; - struct SecurityMenu_SelectNewKey + struct DialogueMenu_OnDialogueSelect { - [[nodiscard]] static BSTEventSource* GetEventSource() + [[nodiscard]] static BSTEventSource* GetEventSource() { - using func_t = decltype(&SecurityMenu_SelectNewKey::GetEventSource); - static REL::Relocation func{ REL::ID(140249) }; + using func_t = decltype(&DialogueMenu_OnDialogueSelect::GetEventSource); + static REL::Relocation func{ REL::ID(166594) }; return func(); } }; - struct SecurityMenu_TryUseKey + struct DialogueMenu_OnListVisibilityChange { - [[nodiscard]] static BSTEventSource* GetEventSource() + [[nodiscard]] static BSTEventSource* GetEventSource() { - using func_t = decltype(&SecurityMenu_TryUseKey::GetEventSource); - static REL::Relocation func{ REL::ID(140250) }; + using func_t = decltype(&DialogueMenu_OnListVisibilityChange::GetEventSource); + static REL::Relocation func{ REL::ID(166595) }; return func(); } }; - struct Refuel_Accept + struct DialogueMenu_OnPersuasionAutoWin { - [[nodiscard]] static BSTEventSource* GetEventSource() + [[nodiscard]] static BSTEventSource* GetEventSource() { - using func_t = decltype(&Refuel_Accept::GetEventSource); - static REL::Relocation func{ REL::ID(140363) }; + using func_t = decltype(&DialogueMenu_OnPersuasionAutoWin::GetEventSource); + static REL::Relocation func{ REL::ID(166596) }; return func(); } }; - struct Refuel_Cancel + struct DialogueMenu_RequestExit { - [[nodiscard]] static BSTEventSource* GetEventSource() + [[nodiscard]] static BSTEventSource* GetEventSource() { - using func_t = decltype(&Refuel_Cancel::GetEventSource); - static REL::Relocation func{ REL::ID(140364) }; + using func_t = decltype(&DialogueMenu_RequestExit::GetEventSource); + static REL::Relocation func{ REL::ID(166598) }; return func(); } }; - struct SkillsMenu_Accept + struct DialogueMenu_RequestSkipDialogue { - [[nodiscard]] static BSTEventSource* GetEventSource() + [[nodiscard]] static BSTEventSource* GetEventSource() { - using func_t = decltype(&SkillsMenu_Accept::GetEventSource); - static REL::Relocation func{ REL::ID(140522) }; + using func_t = decltype(&DialogueMenu_RequestSkipDialogue::GetEventSource); + static REL::Relocation func{ REL::ID(166599) }; return func(); } }; - struct BSChargenAPI + struct EnteredUnity { - struct BIDataUtils + struct Event { - struct PresetNPCChangedEvent + [[nodiscard]] static BSTEventSource* GetEventSource() { - [[nodiscard]] static BSTEventSource* GetEventSource() - { - using func_t = decltype(&BSChargenAPI::BIDataUtils::PresetNPCChangedEvent::GetEventSource); - static REL::Relocation func{ REL::ID(141184) }; - return func(); - } - }; + using func_t = decltype(&EnteredUnity::Event::GetEventSource); + static REL::Relocation func{ REL::ID(153656) }; + return func(); + } }; }; - struct CharGen_BrowChange + struct ExperienceMeterDisplayData { - [[nodiscard]] static BSTEventSource* GetEventSource() + [[nodiscard]] static BSTEventSource* GetEventSource() { - using func_t = decltype(&CharGen_BrowChange::GetEventSource); - static REL::Relocation func{ REL::ID(141185) }; + using func_t = decltype(&ExperienceMeterDisplayData::GetEventSource); + static REL::Relocation func{ REL::ID(138446) }; return func(); } }; - struct CharGen_BrowColorChange + struct FavoritesMenu_AssignQuickkey { - [[nodiscard]] static BSTEventSource* GetEventSource() + [[nodiscard]] static BSTEventSource* GetEventSource() { - using func_t = decltype(&CharGen_BrowColorChange::GetEventSource); - static REL::Relocation func{ REL::ID(141186) }; + using func_t = decltype(&FavoritesMenu_AssignQuickkey::GetEventSource); + static REL::Relocation func{ REL::ID(166789) }; return func(); } }; - struct CharGen_CancelTextEntry + struct FavoritesMenu_UseQuickkey { - [[nodiscard]] static BSTEventSource* GetEventSource() + [[nodiscard]] static BSTEventSource* GetEventSource() { - using func_t = decltype(&CharGen_CancelTextEntry::GetEventSource); - static REL::Relocation func{ REL::ID(141187) }; + using func_t = decltype(&FavoritesMenu_UseQuickkey::GetEventSource); + static REL::Relocation func{ REL::ID(166790) }; return func(); } }; - struct CharGen_CloseMenu + struct FirstThirdPersonSwitch { - [[nodiscard]] static BSTEventSource* GetEventSource() + struct Event { - using func_t = decltype(&CharGen_CloseMenu::GetEventSource); - static REL::Relocation func{ REL::ID(141188) }; - return func(); - } + enum class Type : std::int32_t + { + kFirst, + kThird, + }; + + [[nodiscard]] static BSTEventSource* GetEventSource() + { + using func_t = decltype(&FirstThirdPersonSwitch::Event::GetEventSource); + static REL::Relocation func{ REL::ID(34458) }; + return func(); + } + + [[nodiscard]] constexpr bool IsFirst() const noexcept { return type == Type::kFirst; } + [[nodiscard]] constexpr bool IsThird() const noexcept { return type == Type::kThird; } + + // members + Type oldType; // 00 + Type type; // 04 + }; + static_assert(sizeof(FirstThirdPersonSwitch::Event) == 0x8); }; - struct CharGen_CyclePronoun + struct HideSubtitleEvent { - [[nodiscard]] static BSTEventSource* GetEventSource() + struct Event { - using func_t = decltype(&CharGen_CyclePronoun::GetEventSource); - static REL::Relocation func{ REL::ID(141189) }; - return func(); - } + [[nodiscard]] static BSTEventSource* GetEventSource() + { + using func_t = decltype(&HideSubtitleEvent::Event::GetEventSource); + static REL::Relocation func{ REL::ID(133630) }; + return func(); + } + }; }; - struct CharGen_DirtScarsEtcChange + struct HUDModeEvent { - [[nodiscard]] static BSTEventSource* GetEventSource() + [[nodiscard]] static BSTEventSource* GetEventSource() { - using func_t = decltype(&CharGen_DirtScarsEtcChange::GetEventSource); - static REL::Relocation func{ REL::ID(141190) }; + using func_t = decltype(&HUDModeEvent::GetEventSource); + static REL::Relocation func{ REL::ID(133039) }; return func(); } + + // members + const BSTArray* modes; }; + static_assert(sizeof(HUDModeEvent) == 0x8); - struct CharGen_EndBodyChange + struct HUDNotification_MissionActiveWidgetUpdate { - [[nodiscard]] static BSTEventSource* GetEventSource() + [[nodiscard]] static BSTEventSource* GetEventSource() { - using func_t = decltype(&CharGen_EndBodyChange::GetEventSource); - static REL::Relocation func{ REL::ID(141191) }; + using func_t = decltype(&HUDNotification_MissionActiveWidgetUpdate::GetEventSource); + static REL::Relocation func{ REL::ID(138666) }; return func(); } }; - struct CharGen_EndTextEntry + struct HUDNotification_SetMissionActive { - [[nodiscard]] static BSTEventSource* GetEventSource() + [[nodiscard]] static BSTEventSource* GetEventSource() { - using func_t = decltype(&CharGen_EndTextEntry::GetEventSource); - static REL::Relocation func{ REL::ID(141192) }; + using func_t = decltype(&HUDNotification_SetMissionActive::GetEventSource); + static REL::Relocation func{ REL::ID(138669) }; return func(); } }; - struct CharGen_EyeColorChange + struct HUDNotificationEvent { - [[nodiscard]] static BSTEventSource* GetEventSource() + [[nodiscard]] static BSTEventSource* GetEventSource() { - using func_t = decltype(&CharGen_EyeColorChange::GetEventSource); - static REL::Relocation func{ REL::ID(141193) }; + using func_t = decltype(&HUDNotificationEvent::GetEventSource); + static REL::Relocation func{ REL::ID(138665) }; return func(); } }; - struct CharGen_FacialHairChange + struct HUDRolloverActivationButtonEvent { - [[nodiscard]] static BSTEventSource* GetEventSource() + [[nodiscard]] static BSTEventSource* GetEventSource() { - using func_t = decltype(&CharGen_FacialHairChange::GetEventSource); - static REL::Relocation func{ REL::ID(141194) }; + using func_t = decltype(&HUDRolloverActivationButtonEvent::GetEventSource); + static REL::Relocation func{ REL::ID(133042) }; return func(); } }; - struct CharGen_FacialHairColorChange + struct InstantReferenceInteractionEvent { - [[nodiscard]] static BSTEventSource* GetEventSource() + [[nodiscard]] static BSTEventSource* GetEventSource() { - using func_t = decltype(&CharGen_FacialHairColorChange::GetEventSource); - static REL::Relocation func{ REL::ID(141195) }; + using func_t = decltype(&InstantReferenceInteractionEvent::GetEventSource); + static REL::Relocation func{ REL::ID(107112) }; return func(); } }; - struct CharGen_HairChange + struct InventoryItemEvent { - [[nodiscard]] static BSTEventSource* GetEventSource() + struct Event { - using func_t = decltype(&CharGen_HairChange::GetEventSource); - static REL::Relocation func{ REL::ID(141196) }; - return func(); - } + [[nodiscard]] static BSTEventSource* GetEventSource() + { + using func_t = decltype(&InventoryItemEvent::Event::GetEventSource); + static REL::Relocation func{ REL::ID(87526) }; + return func(); + } + }; }; - struct CharGen_HairColorChange + struct InventoryMenu_Change3DView { - [[nodiscard]] static BSTEventSource* GetEventSource() + [[nodiscard]] static BSTEventSource* GetEventSource() { - using func_t = decltype(&CharGen_HairColorChange::GetEventSource); - static REL::Relocation func{ REL::ID(141197) }; + using func_t = decltype(&InventoryMenu_Change3DView::GetEventSource); + static REL::Relocation func{ REL::ID(132470) }; return func(); } }; - struct CharGen_HeadpartPlusSelectorChange + + struct InventoryMenu_HideModel { - [[nodiscard]] static BSTEventSource* GetEventSource() + [[nodiscard]] static BSTEventSource* GetEventSource() { - using func_t = decltype(&CharGen_HeadpartPlusSelectorChange::GetEventSource); - static REL::Relocation func{ REL::ID(141198) }; + using func_t = decltype(&InventoryMenu_HideModel::GetEventSource); + static REL::Relocation func{ REL::ID(139340) }; return func(); } }; - struct CharGen_HeadpartPresetChange + struct InventoryMenu_LoadModel { - [[nodiscard]] static BSTEventSource* GetEventSource() + [[nodiscard]] static BSTEventSource* GetEventSource() { - using func_t = decltype(&CharGen_HeadpartPresetChange::GetEventSource); - static REL::Relocation func{ REL::ID(141199) }; + using func_t = decltype(&InventoryMenu_LoadModel::GetEventSource); + static REL::Relocation func{ REL::ID(139341) }; return func(); } }; - struct CharGen_JewelryChange + struct InventoryMenu_OnEnterCategory { - [[nodiscard]] static BSTEventSource* GetEventSource() + [[nodiscard]] static BSTEventSource* GetEventSource() { - using func_t = decltype(&CharGen_JewelryChange::GetEventSource); - static REL::Relocation func{ REL::ID(141200) }; + using func_t = decltype(&InventoryMenu_OnEnterCategory::GetEventSource); + static REL::Relocation func{ REL::ID(139342) }; return func(); } }; - struct CharGen_JewelryColorChange + struct InventoryMenu_OpenCargoHold { - [[nodiscard]] static BSTEventSource* GetEventSource() + [[nodiscard]] static BSTEventSource* GetEventSource() { - using func_t = decltype(&CharGen_JewelryColorChange::GetEventSource); - static REL::Relocation func{ REL::ID(141201) }; + using func_t = decltype(&InventoryMenu_OpenCargoHold::GetEventSource); + static REL::Relocation func{ REL::ID(139343) }; return func(); } }; - struct CharGen_MakeupChange + struct InventoryMenu_PaperDollTryOn { - [[nodiscard]] static BSTEventSource* GetEventSource() + [[nodiscard]] static BSTEventSource* GetEventSource() { - using func_t = decltype(&CharGen_MakeupChange::GetEventSource); - static REL::Relocation func{ REL::ID(141202) }; + using func_t = decltype(&InventoryMenu_PaperDollTryOn::GetEventSource); + static REL::Relocation func{ REL::ID(132471) }; return func(); } }; - struct CharGen_MarkingsChange + struct InventoryMenu_ResetPaperDollInv { - [[nodiscard]] static BSTEventSource* GetEventSource() + [[nodiscard]] static BSTEventSource* GetEventSource() { - using func_t = decltype(&CharGen_MarkingsChange::GetEventSource); - static REL::Relocation func{ REL::ID(141203) }; + using func_t = decltype(&InventoryMenu_ResetPaperDollInv::GetEventSource); + static REL::Relocation func{ REL::ID(132472) }; return func(); } }; - struct CharGen_PostBlendColorOptionChange + struct InventoryMenu_SelectItem { - [[nodiscard]] static BSTEventSource* GetEventSource() + [[nodiscard]] static BSTEventSource* GetEventSource() { - using func_t = decltype(&CharGen_PostBlendColorOptionChange::GetEventSource); - static REL::Relocation func{ REL::ID(141204) }; + using func_t = decltype(&InventoryMenu_SelectItem::GetEventSource); + static REL::Relocation func{ REL::ID(139344) }; return func(); } }; - struct CharGen_PostBlendFaceChange + struct InventoryMenu_SetMouseOverModel { - [[nodiscard]] static BSTEventSource* GetEventSource() + [[nodiscard]] static BSTEventSource* GetEventSource() { - using func_t = decltype(&CharGen_PostBlendFaceChange::GetEventSource); - static REL::Relocation func{ REL::ID(141205) }; + using func_t = decltype(&InventoryMenu_SetMouseOverModel::GetEventSource); + static REL::Relocation func{ REL::ID(139345) }; return func(); } }; - struct CharGen_PostBlendIntensityChange + struct InventoryMenu_ToggleFavorite { - [[nodiscard]] static BSTEventSource* GetEventSource() + [[nodiscard]] static BSTEventSource* GetEventSource() { - using func_t = decltype(&CharGen_PostBlendIntensityChange::GetEventSource); - static REL::Relocation func{ REL::ID(141206) }; + using func_t = decltype(&InventoryMenu_ToggleFavorite::GetEventSource); + static REL::Relocation func{ REL::ID(139347) }; return func(); } }; - struct CharGen_PresetChange + struct InventoryMenu_ToggleHelmet { - [[nodiscard]] static BSTEventSource* GetEventSource() + [[nodiscard]] static BSTEventSource* GetEventSource() { - using func_t = decltype(&CharGen_PresetChange::GetEventSource); - static REL::Relocation func{ REL::ID(141207) }; + using func_t = decltype(&InventoryMenu_ToggleHelmet::GetEventSource); + static REL::Relocation func{ REL::ID(134925) }; return func(); } }; - struct CharGen_RollOffLocomotion + struct InventoryMenu_ToggleSuit { - [[nodiscard]] static BSTEventSource* GetEventSource() + [[nodiscard]] static BSTEventSource* GetEventSource() { - using func_t = decltype(&CharGen_RollOffLocomotion::GetEventSource); - static REL::Relocation func{ REL::ID(141208) }; + using func_t = decltype(&InventoryMenu_ToggleSuit::GetEventSource); + static REL::Relocation func{ REL::ID(134926) }; return func(); } }; - struct CharGen_RollOnLocomotion + struct LevelIncrease { - [[nodiscard]] static BSTEventSource* GetEventSource() + struct Event { - using func_t = decltype(&CharGen_RollOnLocomotion::GetEventSource); - static REL::Relocation func{ REL::ID(141209) }; - return func(); - } + [[nodiscard]] static BSTEventSource* GetEventSource() + { + using func_t = decltype(&LevelIncrease::Event::GetEventSource); + static REL::Relocation func{ REL::ID(153662) }; + return func(); + } + + // members + std::uint32_t level; + }; + static_assert(sizeof(LevelIncrease::Event) == 0x4); }; - struct CharGen_RotatePaperdoll + struct LevelUp_AnimFinished { - [[nodiscard]] static BSTEventSource* GetEventSource() + [[nodiscard]] static BSTEventSource* GetEventSource() { - using func_t = decltype(&CharGen_RotatePaperdoll::GetEventSource); - static REL::Relocation func{ REL::ID(141210) }; + using func_t = decltype(&LevelUp_AnimFinished::GetEventSource); + static REL::Relocation func{ REL::ID(138447) }; return func(); } }; - struct CharGen_SetAdditionalSlider + struct LevelUp_OnWidgetShown { - [[nodiscard]] static BSTEventSource* GetEventSource() + [[nodiscard]] static BSTEventSource* GetEventSource() { - using func_t = decltype(&CharGen_SetAdditionalSlider::GetEventSource); - static REL::Relocation func{ REL::ID(141211) }; + using func_t = decltype(&LevelUp_OnWidgetShown::GetEventSource); + static REL::Relocation func{ REL::ID(138448) }; return func(); } }; - struct CharGen_SetBackground + struct LocationLinked { - [[nodiscard]] static BSTEventSource* GetEventSource() + struct Event { - using func_t = decltype(&CharGen_SetBackground::GetEventSource); - static REL::Relocation func{ REL::ID(141212) }; - return func(); - } + [[nodiscard]] static BSTEventSource* GetEventSource() + { + using func_t = decltype(&LocationLinked::Event::GetEventSource); + static REL::Relocation func{ REL::ID(104623) }; + return func(); + } + }; }; - struct CharGen_SetBlockInputUnderPopup + struct LocationTextEvent { - [[nodiscard]] static BSTEventSource* GetEventSource() + struct Event { - using func_t = decltype(&CharGen_SetBlockInputUnderPopup::GetEventSource); - static REL::Relocation func{ REL::ID(141213) }; - return func(); - } + [[nodiscard]] static BSTEventSource* GetEventSource() + { + using func_t = decltype(&LocationTextEvent::Event::GetEventSource); + static REL::Relocation func{ REL::ID(138717) }; + return func(); + } + }; }; - struct CharGen_SetBodyValues + struct LocationTextWidget_FinishedQueue { - [[nodiscard]] static BSTEventSource* GetEventSource() + [[nodiscard]] static BSTEventSource* GetEventSource() { - using func_t = decltype(&CharGen_SetBodyValues::GetEventSource); - static REL::Relocation func{ REL::ID(141214) }; + using func_t = decltype(&LocationTextWidget_FinishedQueue::GetEventSource); + static REL::Relocation func{ REL::ID(138451) }; return func(); } }; - struct CharGen_SetCameraPosition + struct MessageBoxMenu_OnBackOut { - [[nodiscard]] static BSTEventSource* GetEventSource() + [[nodiscard]] static BSTEventSource* GetEventSource() { - using func_t = decltype(&CharGen_SetCameraPosition::GetEventSource); - static REL::Relocation func{ REL::ID(141215) }; + using func_t = decltype(&MessageBoxMenu_OnBackOut::GetEventSource); + static REL::Relocation func{ REL::ID(167116) }; return func(); } }; - struct CharGen_SetPronoun + struct MessageBoxMenu_OnButtonPress { - [[nodiscard]] static BSTEventSource* GetEventSource() + [[nodiscard]] static BSTEventSource* GetEventSource() { - using func_t = decltype(&CharGen_SetPronoun::GetEventSource); - static REL::Relocation func{ REL::ID(141216) }; + using func_t = decltype(&MessageBoxMenu_OnButtonPress::GetEventSource); + static REL::Relocation func{ REL::ID(167117) }; return func(); } }; - struct CharGen_SetSex + struct MessageBoxMenu_OnScriptedButtonPress { - [[nodiscard]] static BSTEventSource* GetEventSource() + [[nodiscard]] static BSTEventSource* GetEventSource() { - using func_t = decltype(&CharGen_SetSex::GetEventSource); - static REL::Relocation func{ REL::ID(141217) }; + using func_t = decltype(&MessageBoxMenu_OnScriptedButtonPress::GetEventSource); + static REL::Relocation func{ REL::ID(167118) }; return func(); } }; - struct CharGen_SetSlider + struct MissionBoard_MissionEntryChanged { - [[nodiscard]] static BSTEventSource* GetEventSource() + [[nodiscard]] static BSTEventSource* GetEventSource() { - using func_t = decltype(&CharGen_SetSlider::GetEventSource); - static REL::Relocation func{ REL::ID(141218) }; + using func_t = decltype(&MissionBoard_MissionEntryChanged::GetEventSource); + static REL::Relocation func{ REL::ID(139500) }; return func(); } }; - struct CharGen_SetTrait + struct MissionBoard_MissionEntryPressed { - [[nodiscard]] static BSTEventSource* GetEventSource() + [[nodiscard]] static BSTEventSource* GetEventSource() { - using func_t = decltype(&CharGen_SetTrait::GetEventSource); - static REL::Relocation func{ REL::ID(141219) }; + using func_t = decltype(&MissionBoard_MissionEntryPressed::GetEventSource); + static REL::Relocation func{ REL::ID(139501) }; return func(); } }; - struct CharGen_ShowChooseBackgroundMessage + struct MissionMenu_ClearState { - [[nodiscard]] static BSTEventSource* GetEventSource() + [[nodiscard]] static BSTEventSource* GetEventSource() { - using func_t = decltype(&CharGen_ShowChooseBackgroundMessage::GetEventSource); - static REL::Relocation func{ REL::ID(141220) }; + using func_t = decltype(&MissionMenu_ClearState::GetEventSource); + static REL::Relocation func{ REL::ID(139095) }; return func(); } }; - struct CharGen_ShowPlayerRenameMessage + struct MissionMenu_PlotToLocation { - [[nodiscard]] static BSTEventSource* GetEventSource() + [[nodiscard]] static BSTEventSource* GetEventSource() { - using func_t = decltype(&CharGen_ShowPlayerRenameMessage::GetEventSource); - static REL::Relocation func{ REL::ID(141221) }; + using func_t = decltype(&MissionMenu_PlotToLocation::GetEventSource); + static REL::Relocation func{ REL::ID(139096) }; return func(); } }; - struct CharGen_SkintoneChange + struct MissionMenu_RejectQuest { - [[nodiscard]] static BSTEventSource* GetEventSource() + [[nodiscard]] static BSTEventSource* GetEventSource() { - using func_t = decltype(&CharGen_SkintoneChange::GetEventSource); - static REL::Relocation func{ REL::ID(141222) }; + using func_t = decltype(&MissionMenu_RejectQuest::GetEventSource); + static REL::Relocation func{ REL::ID(139097) }; return func(); } }; - struct CharGen_StartBodyChange + struct MissionMenu_ShowItemLocation { - [[nodiscard]] static BSTEventSource* GetEventSource() + [[nodiscard]] static BSTEventSource* GetEventSource() { - using func_t = decltype(&CharGen_StartBodyChange::GetEventSource); - static REL::Relocation func{ REL::ID(141223) }; + using func_t = decltype(&MissionMenu_ShowItemLocation::GetEventSource); + static REL::Relocation func{ REL::ID(139100) }; return func(); } }; - struct CharGen_StartTextEntry + struct MissionMenu_ToggleTrackingQuest { - [[nodiscard]] static BSTEventSource* GetEventSource() + [[nodiscard]] static BSTEventSource* GetEventSource() { - using func_t = decltype(&CharGen_StartTextEntry::GetEventSource); - static REL::Relocation func{ REL::ID(141224) }; + using func_t = decltype(&MissionMenu_ToggleTrackingQuest::GetEventSource); + static REL::Relocation func{ REL::ID(139102) }; return func(); } }; - struct CharGen_SwitchBodyType + namespace ModelReferenceEffectEvents { - [[nodiscard]] static BSTEventSource* GetEventSource() + struct ReferenceEffectFinished { - using func_t = decltype(&CharGen_SwitchBodyType::GetEventSource); - static REL::Relocation func{ REL::ID(141225) }; - return func(); - } + [[nodiscard]] static BSTEventSource* GetEventSource() + { + using func_t = decltype(&ModelReferenceEffectEvents::ReferenceEffectFinished::GetEventSource); + static REL::Relocation func{ REL::ID(145389) }; + return func(); + } + }; }; - struct CharGen_SwitchLocomotion + struct MonocleMenu_Bioscan { - [[nodiscard]] static BSTEventSource* GetEventSource() + [[nodiscard]] static BSTEventSource* GetEventSource() { - using func_t = decltype(&CharGen_SwitchLocomotion::GetEventSource); - static REL::Relocation func{ REL::ID(141226) }; + using func_t = decltype(&MonocleMenu_Bioscan::GetEventSource); + static REL::Relocation func{ REL::ID(139641) }; return func(); } }; - struct CharGen_TeethChange + struct MonocleMenu_FastTravel { - [[nodiscard]] static BSTEventSource* GetEventSource() + [[nodiscard]] static BSTEventSource* GetEventSource() { - using func_t = decltype(&CharGen_TeethChange::GetEventSource); - static REL::Relocation func{ REL::ID(141227) }; + using func_t = decltype(&MonocleMenu_FastTravel::GetEventSource); + static REL::Relocation func{ REL::ID(139642) }; return func(); } }; - struct CharGen_TeethRollOff + struct MonocleMenu_Harvest { - [[nodiscard]] static BSTEventSource* GetEventSource() + [[nodiscard]] static BSTEventSource* GetEventSource() { - using func_t = decltype(&CharGen_TeethRollOff::GetEventSource); - static REL::Relocation func{ REL::ID(141228) }; + using func_t = decltype(&MonocleMenu_Harvest::GetEventSource); + static REL::Relocation func{ REL::ID(139643) }; return func(); } }; - struct CharGen_TeethRollOn + struct MonocleMenu_Initialize { - [[nodiscard]] static BSTEventSource* GetEventSource() + [[nodiscard]] static BSTEventSource* GetEventSource() { - using func_t = decltype(&CharGen_TeethRollOn::GetEventSource); - static REL::Relocation func{ REL::ID(141229) }; + using func_t = decltype(&MonocleMenu_Initialize::GetEventSource); + static REL::Relocation func{ REL::ID(139644) }; return func(); } }; - struct CharGen_ToggleMarking + struct MonocleMenu_Outpost { - [[nodiscard]] static BSTEventSource* GetEventSource() + [[nodiscard]] static BSTEventSource* GetEventSource() { - using func_t = decltype(&CharGen_ToggleMarking::GetEventSource); - static REL::Relocation func{ REL::ID(141230) }; + using func_t = decltype(&MonocleMenu_Outpost::GetEventSource); + static REL::Relocation func{ REL::ID(139645) }; return func(); } }; - struct CharGen_TogglePreviewHabSuit + struct MonocleMenu_PhotoMode { - [[nodiscard]] static BSTEventSource* GetEventSource() + [[nodiscard]] static BSTEventSource* GetEventSource() { - using func_t = decltype(&CharGen_TogglePreviewHabSuit::GetEventSource); - static REL::Relocation func{ REL::ID(141231) }; + using func_t = decltype(&MonocleMenu_PhotoMode::GetEventSource); + static REL::Relocation func{ REL::ID(139646) }; return func(); } }; - struct UIMenuChargenMenuDisablePaperdoll + struct MonocleMenu_SocialSpell { - [[nodiscard]] static BSTEventSource* GetEventSource() + [[nodiscard]] static BSTEventSource* GetEventSource() { - using func_t = decltype(&UIMenuChargenMenuDisablePaperdoll::GetEventSource); - static REL::Relocation func{ REL::ID(141232) }; + using func_t = decltype(&MonocleMenu_SocialSpell::GetEventSource); + static REL::Relocation func{ REL::ID(139648) }; return func(); } }; - struct DataMenu_Missions + struct MonocleMenu_SurfaceMap { - [[nodiscard]] static BSTEventSource* GetEventSource() + [[nodiscard]] static BSTEventSource* GetEventSource() { - using func_t = decltype(&DataMenu_Missions::GetEventSource); - static REL::Relocation func{ REL::ID(141471) }; + using func_t = decltype(&MonocleMenu_SurfaceMap::GetEventSource); + static REL::Relocation func{ REL::ID(139651) }; return func(); } }; - struct DataMenu_PlotToLocation + struct MonocleMenu_ZoomIn { - [[nodiscard]] static BSTEventSource* GetEventSource() + [[nodiscard]] static BSTEventSource* GetEventSource() { - using func_t = decltype(&DataMenu_PlotToLocation::GetEventSource); - static REL::Relocation func{ REL::ID(141473) }; + using func_t = decltype(&MonocleMenu_ZoomIn::GetEventSource); + static REL::Relocation func{ REL::ID(139653) }; return func(); } }; - struct DataMenu_SetPaperDollActive + struct MonocleMenu_ZoomOut { - [[nodiscard]] static BSTEventSource* GetEventSource() + [[nodiscard]] static BSTEventSource* GetEventSource() { - using func_t = decltype(&DataMenu_SetPaperDollActive::GetEventSource); - static REL::Relocation func{ REL::ID(141482) }; + using func_t = decltype(&MonocleMenu_ZoomOut::GetEventSource); + static REL::Relocation func{ REL::ID(139654) }; return func(); } }; @@ -2478,714 +1881,850 @@ namespace RE } }; - struct PlayBink_CloseMenu + struct PerkChanged { - [[nodiscard]] static BSTEventSource* GetEventSource() + struct Event { - using func_t = decltype(&PlayBink_CloseMenu::GetEventSource); - static REL::Relocation func{ REL::ID(141653) }; + [[nodiscard]] static BSTEventSource* GetEventSource() + { + using func_t = decltype(&PerkChanged::Event::GetEventSource); + static REL::Relocation func{ REL::ID(76533) }; + return func(); + } + }; + }; + + struct PhotoGallery_DeletePhoto + { + [[nodiscard]] static BSTEventSource* GetEventSource() + { + using func_t = decltype(&PhotoGallery_DeletePhoto::GetEventSource); + static REL::Relocation func{ REL::ID(130819) }; return func(); } }; - struct Reticle_OnLongAnimFinished + struct PhotoMode_InitializeCategory { - [[nodiscard]] static BSTEventSource* GetEventSource() + [[nodiscard]] static BSTEventSource* GetEventSource() { - using func_t = decltype(&Reticle_OnLongAnimFinished::GetEventSource); - static REL::Relocation func{ REL::ID(141816) }; + using func_t = decltype(&PhotoMode_InitializeCategory::GetEventSource); + static REL::Relocation func{ REL::ID(139736) }; return func(); } }; - struct ShipHudQuickContainer_TransferItem + struct PhotoMode_RefineSetting { - [[nodiscard]] static BSTEventSource* GetEventSource() + [[nodiscard]] static BSTEventSource* GetEventSource() { - using func_t = decltype(&ShipHudQuickContainer_TransferItem::GetEventSource); - static REL::Relocation func{ REL::ID(141817) }; + using func_t = decltype(&PhotoMode_RefineSetting::GetEventSource); + static REL::Relocation func{ REL::ID(1536789) }; return func(); } }; - struct ShipHud_AbortJump + struct PhotoMode_ResetToDefaults { - [[nodiscard]] static BSTEventSource* GetEventSource() + [[nodiscard]] static BSTEventSource* GetEventSource() { - using func_t = decltype(&ShipHud_AbortJump::GetEventSource); - static REL::Relocation func{ REL::ID(141818) }; + using func_t = decltype(&PhotoMode_ResetToDefaults::GetEventSource); + static REL::Relocation func{ REL::ID(139737) }; return func(); } }; - struct ShipHud_DockRequested + struct PhotoMode_SliderChanged { - [[nodiscard]] static BSTEventSource* GetEventSource() + [[nodiscard]] static BSTEventSource* GetEventSource() { - using func_t = decltype(&ShipHud_DockRequested::GetEventSource); - static REL::Relocation func{ REL::ID(141819) }; + using func_t = decltype(&PhotoMode_SliderChanged::GetEventSource); + static REL::Relocation func{ REL::ID(139738) }; return func(); } }; - struct ShipHud_HailShip + struct PhotoMode_StepperChanged { - [[nodiscard]] static BSTEventSource* GetEventSource() + [[nodiscard]] static BSTEventSource* GetEventSource() { - using func_t = decltype(&ShipHud_HailShip::GetEventSource); - static REL::Relocation func{ REL::ID(141820) }; + using func_t = decltype(&PhotoMode_StepperChanged::GetEventSource); + static REL::Relocation func{ REL::ID(139739) }; return func(); } }; - struct ShipHud_UpdateTargetPanelRect + struct PhotoMode_TakeSnapshot { - [[nodiscard]] static BSTEventSource* GetEventSource() + [[nodiscard]] static BSTEventSource* GetEventSource() { - using func_t = decltype(&ShipHud_UpdateTargetPanelRect::GetEventSource); - static REL::Relocation func{ REL::ID(141821) }; + using func_t = decltype(&PhotoMode_TakeSnapshot::GetEventSource); + static REL::Relocation func{ REL::ID(139740) }; return func(); } }; - struct TakeoffMenu_ExitShip + struct PhotoMode_ToggleHelmet { - [[nodiscard]] static BSTEventSource* GetEventSource() + [[nodiscard]] static BSTEventSource* GetEventSource() { - using func_t = decltype(&TakeoffMenu_ExitShip::GetEventSource); - static REL::Relocation func{ REL::ID(141823) }; + using func_t = decltype(&PhotoMode_ToggleHelmet::GetEventSource); + static REL::Relocation func{ REL::ID(139741) }; return func(); } }; - struct TakeoffMenu_Launch + struct PhotoMode_ToggleUI { - [[nodiscard]] static BSTEventSource* GetEventSource() + [[nodiscard]] static BSTEventSource* GetEventSource() { - using func_t = decltype(&TakeoffMenu_Launch::GetEventSource); - static REL::Relocation func{ REL::ID(141824) }; + using func_t = decltype(&PhotoMode_ToggleUI::GetEventSource); + static REL::Relocation func{ REL::ID(139742) }; return func(); } }; - struct StarMapMenu_LandingInputInProgress + struct PickpocketMenu_OnItemSelect { - [[nodiscard]] static BSTEventSource* GetEventSource() + [[nodiscard]] static BSTEventSource* GetEventSource() + { + using func_t = decltype(&PickpocketMenu_OnItemSelect::GetEventSource); + static REL::Relocation func{ REL::ID(139918) }; + return func(); + } + }; + + struct PickRefUpdateEvent + { + [[nodiscard]] static BSTEventSource* GetEventSource() + { + using func_t = decltype(&PickRefUpdateEvent::GetEventSource); + static REL::Relocation func{ REL::ID(119433) }; + return func(); + } + }; + + struct PlayBink_CloseMenu + { + [[nodiscard]] static BSTEventSource* GetEventSource() + { + using func_t = decltype(&PlayBink_CloseMenu::GetEventSource); + static REL::Relocation func{ REL::ID(141653) }; + return func(); + } + }; + + struct PlayerAmmoChanged + { + struct Event + { + [[nodiscard]] static BSTEventSource* GetEventSource() + { + using func_t = decltype(&PlayerAmmoChanged::Event::GetEventSource); + static REL::Relocation func{ REL::ID(153665) }; + return func(); + } + + // members + std::uint32_t clipCount; + std::uint32_t reserveCount; + }; + static_assert(sizeof(PlayerAmmoChanged::Event) == 0x8); + }; + + struct PlayerControls + { + struct PlayerIronSightsEndEvent + { + [[nodiscard]] static BSTEventSource* GetEventSource() + { + using func_t = decltype(&PlayerControls::PlayerIronSightsEndEvent::GetEventSource); + static REL::Relocation func{ REL::ID(129341) }; + return func(); + } + }; + + struct PlayerIronSightsStartEvent + { + [[nodiscard]] static BSTEventSource* GetEventSource() + { + using func_t = decltype(&PlayerControls::PlayerIronSightsStartEvent::GetEventSource); + static REL::Relocation func{ REL::ID(129342) }; + return func(); + } + }; + + struct PlayerJumpPressEvent + { + [[nodiscard]] static BSTEventSource* GetEventSource() + { + using func_t = decltype(&PlayerControls::PlayerJumpPressEvent::GetEventSource); + static REL::Relocation func{ REL::ID(129146) }; + return func(); + } + }; + + struct PlayerJumpReleaseEvent + { + [[nodiscard]] static BSTEventSource* GetEventSource() + { + using func_t = decltype(&PlayerControls::PlayerJumpReleaseEvent::GetEventSource); + static REL::Relocation func{ REL::ID(129147) }; + return func(); + } + }; + + struct PlayerZeroGSprintJustPressedEvent { - using func_t = decltype(&StarMapMenu_LandingInputInProgress::GetEventSource); - static REL::Relocation func{ REL::ID(142192) }; - return func(); - } - }; + [[nodiscard]] static BSTEventSource* GetEventSource() + { + using func_t = decltype(&PlayerControls::PlayerZeroGSprintJustPressedEvent::GetEventSource); + static REL::Relocation func{ REL::ID(129188) }; + return func(); + } + }; - struct StarMapMenu_MarkerGroupContainerVisibilityChanged - { - [[nodiscard]] static BSTEventSource* GetEventSource() + struct PlayerZeroGSprintReleasedEvent { - using func_t = decltype(&StarMapMenu_MarkerGroupContainerVisibilityChanged::GetEventSource); - static REL::Relocation func{ REL::ID(142193) }; - return func(); - } + [[nodiscard]] static BSTEventSource* GetEventSource() + { + using func_t = decltype(&PlayerControls::PlayerZeroGSprintReleasedEvent::GetEventSource); + static REL::Relocation func{ REL::ID(129189) }; + return func(); + } + }; }; - struct StarMapMenu_MarkerGroupEntryClicked + struct PlayerCrosshairModeEvent { - [[nodiscard]] static BSTEventSource* GetEventSource() + [[nodiscard]] static BSTEventSource* GetEventSource() { - using func_t = decltype(&StarMapMenu_MarkerGroupEntryClicked::GetEventSource); - static REL::Relocation func{ REL::ID(142194) }; + using func_t = decltype(&PlayerCrosshairModeEvent::GetEventSource); + static REL::Relocation func{ REL::ID(133336) }; return func(); } }; - struct StarMapMenu_MarkerGroupEntryHoverChanged + struct PlayerDetectionLevelChangeEvent { - [[nodiscard]] static BSTEventSource* GetEventSource() + [[nodiscard]] static BSTEventSource* GetEventSource() { - using func_t = decltype(&StarMapMenu_MarkerGroupEntryHoverChanged::GetEventSource); - static REL::Relocation func{ REL::ID(142195) }; + using func_t = decltype(&PlayerDetectionLevelChangeEvent::GetEventSource); + static REL::Relocation func{ REL::ID(133601) }; return func(); } }; - struct StarMapMenu_ScanPlanet + struct PlayerFastTravel { - [[nodiscard]] static BSTEventSource* GetEventSource() + struct Event { - using func_t = decltype(&StarMapMenu_ScanPlanet::GetEventSource); - static REL::Relocation func{ REL::ID(142196) }; - return func(); - } + [[nodiscard]] static BSTEventSource* GetEventSource() + { + using func_t = decltype(&PlayerFastTravel::Event::GetEventSource); + static REL::Relocation func{ REL::ID(153668) }; + return func(); + } + }; }; - struct StarMapMenu_SelectedLandingSite + struct PlayerSetWeaponStateEvent { - [[nodiscard]] static BSTEventSource* GetEventSource() + [[nodiscard]] static BSTEventSource* GetEventSource() { - using func_t = decltype(&StarMapMenu_SelectedLandingSite::GetEventSource); - static REL::Relocation func{ REL::ID(142197) }; + using func_t = decltype(&PlayerSetWeaponStateEvent::GetEventSource); + static REL::Relocation func{ REL::ID(138719) }; return func(); } }; - struct StarMapMenu_SelectedLandingSiteFailed + struct PlayerSneakingChangeEvent { - [[nodiscard]] static BSTEventSource* GetEventSource() + [[nodiscard]] static BSTEventSource* GetEventSource() { - using func_t = decltype(&StarMapMenu_SelectedLandingSiteFailed::GetEventSource); - static REL::Relocation func{ REL::ID(142198) }; + using func_t = decltype(&PlayerSneakingChangeEvent::GetEventSource); + static REL::Relocation func{ REL::ID(129185) }; return func(); } + + // members + bool sneaking; // 00 }; + static_assert(sizeof(PlayerSneakingChangeEvent) == 0x1); - struct StarMapMenu_ShowRealCursor + struct PlayerUpdateEvent { - [[nodiscard]] static BSTEventSource* GetEventSource() + [[nodiscard]] static BSTEventSource* GetEventSource() { - using func_t = decltype(&StarMapMenu_ShowRealCursor::GetEventSource); - static REL::Relocation func{ REL::ID(142199) }; + using func_t = decltype(&PlayerUpdateEvent::GetEventSource); + static REL::Relocation func{ REL::ID(134924) }; return func(); } }; - struct StarMapMenu_QuickSelectChange + struct PowersMenu_ActivateEssence { - [[nodiscard]] static BSTEventSource* GetEventSource() + [[nodiscard]] static BSTEventSource* GetEventSource() { - using func_t = decltype(&StarMapMenu_QuickSelectChange::GetEventSource); - static REL::Relocation func{ REL::ID(142493) }; + using func_t = decltype(&PowersMenu_ActivateEssence::GetEventSource); + static REL::Relocation func{ REL::ID(130908) }; return func(); } }; - struct StarMapMenu_Galaxy_FocusSystem + struct PowersMenu_EquipPower { - [[nodiscard]] static BSTEventSource* GetEventSource() + [[nodiscard]] static BSTEventSource* GetEventSource() { - using func_t = decltype(&StarMapMenu_Galaxy_FocusSystem::GetEventSource); - static REL::Relocation func{ REL::ID(142763) }; + using func_t = decltype(&PowersMenu_EquipPower::GetEventSource); + static REL::Relocation func{ REL::ID(130909) }; return func(); } }; - struct StarMapMenu_OnGalaxyViewInitialized + struct PowersMenu_FavoritePower { - [[nodiscard]] static BSTEventSource* GetEventSource() + [[nodiscard]] static BSTEventSource* GetEventSource() { - using func_t = decltype(&StarMapMenu_OnGalaxyViewInitialized::GetEventSource); - static REL::Relocation func{ REL::ID(142764) }; + using func_t = decltype(&PowersMenu_FavoritePower::GetEventSource); + static REL::Relocation func{ REL::ID(130910) }; return func(); } }; - struct StarMapMenu_ExecuteRoute + struct Refuel_Accept { - [[nodiscard]] static BSTEventSource* GetEventSource() + [[nodiscard]] static BSTEventSource* GetEventSource() { - using func_t = decltype(&StarMapMenu_ExecuteRoute::GetEventSource); - static REL::Relocation func{ REL::ID(142945) }; + using func_t = decltype(&Refuel_Accept::GetEventSource); + static REL::Relocation func{ REL::ID(140363) }; return func(); } }; - struct StarMapMenu_OnCancel + struct Refuel_Cancel { - [[nodiscard]] static BSTEventSource* GetEventSource() + [[nodiscard]] static BSTEventSource* GetEventSource() { - using func_t = decltype(&StarMapMenu_OnCancel::GetEventSource); - static REL::Relocation func{ REL::ID(142946) }; + using func_t = decltype(&Refuel_Cancel::GetEventSource); + static REL::Relocation func{ REL::ID(140364) }; return func(); } }; - struct StarMapMenu_OnClearRoute + struct ReloadWeaponEvent { - [[nodiscard]] static BSTEventSource* GetEventSource() + struct Event { - using func_t = decltype(&StarMapMenu_OnClearRoute::GetEventSource); - static REL::Relocation func{ REL::ID(142947) }; - return func(); - } + [[nodiscard]] static BSTEventSource* GetEventSource() + { + using func_t = decltype(&ReloadWeaponEvent::Event::GetEventSource); + static REL::Relocation func{ REL::ID(151744) }; + return func(); + } + }; }; - struct StarMapMenu_OnExitStarMap + struct Research { - [[nodiscard]] static BSTEventSource* GetEventSource() + struct ResearchProgressEvent { - using func_t = decltype(&StarMapMenu_OnExitStarMap::GetEventSource); - static REL::Relocation func{ REL::ID(142948) }; - return func(); - } + [[nodiscard]] static BSTEventSource* GetEventSource() + { + using func_t = decltype(&Research::ResearchProgressEvent::GetEventSource); + static REL::Relocation func{ REL::ID(147163) }; + return func(); + } + }; }; - struct StarMapMenu_OnHintButtonClicked + struct ResearchMenu_AddMaterial { - [[nodiscard]] static BSTEventSource* GetEventSource() + [[nodiscard]] static BSTEventSource* GetEventSource() { - using func_t = decltype(&StarMapMenu_OnHintButtonClicked::GetEventSource); - static REL::Relocation func{ REL::ID(142949) }; + using func_t = decltype(&ResearchMenu_AddMaterial::GetEventSource); + static REL::Relocation func{ REL::ID(140018) }; return func(); } }; - struct StarMapMenu_OnOutpostEntrySelected + struct ResearchMenu_CategorySelected { - [[nodiscard]] static BSTEventSource* GetEventSource() + [[nodiscard]] static BSTEventSource* GetEventSource() { - using func_t = decltype(&StarMapMenu_OnOutpostEntrySelected::GetEventSource); - static REL::Relocation func{ REL::ID(142950) }; + using func_t = decltype(&ResearchMenu_CategorySelected::GetEventSource); + static REL::Relocation func{ REL::ID(140019) }; return func(); } }; - struct StarMapMenu_ReadyToClose + struct ResearchMenu_HideModel { - [[nodiscard]] static BSTEventSource* GetEventSource() + [[nodiscard]] static BSTEventSource* GetEventSource() { - using func_t = decltype(&StarMapMenu_ReadyToClose::GetEventSource); - static REL::Relocation func{ REL::ID(142951) }; + using func_t = decltype(&ResearchMenu_HideModel::GetEventSource); + static REL::Relocation func{ REL::ID(140021) }; return func(); } }; - struct SurfaceMapMenu_MarkerClicked + struct ResearchMenu_PreviewProject { - [[nodiscard]] static BSTEventSource* GetEventSource() + [[nodiscard]] static BSTEventSource* GetEventSource() { - using func_t = decltype(&SurfaceMapMenu_MarkerClicked::GetEventSource); - static REL::Relocation func{ REL::ID(143330) }; + using func_t = decltype(&ResearchMenu_PreviewProject::GetEventSource); + static REL::Relocation func{ REL::ID(140022) }; return func(); } }; - struct SurfaceMapMenu_TryPlaceCustomMarker + struct ResearchMenu_ProjectViewed { - [[nodiscard]] static BSTEventSource* GetEventSource() + [[nodiscard]] static BSTEventSource* GetEventSource() { - using func_t = decltype(&SurfaceMapMenu_TryPlaceCustomMarker::GetEventSource); - static REL::Relocation func{ REL::ID(143331) }; + using func_t = decltype(&ResearchMenu_ProjectViewed::GetEventSource); + static REL::Relocation func{ REL::ID(140023) }; return func(); } }; - struct TerminalMenu_CancelEvent + struct ResearchMenu_ToggleTrackingProject { - [[nodiscard]] static BSTEventSource* GetEventSource() + [[nodiscard]] static BSTEventSource* GetEventSource() { - using func_t = decltype(&TerminalMenu_CancelEvent::GetEventSource); - static REL::Relocation func{ REL::ID(143771) }; + using func_t = decltype(&ResearchMenu_ToggleTrackingProject::GetEventSource); + static REL::Relocation func{ REL::ID(140025) }; return func(); } }; - struct Terminal_CloseAllViews + struct Reticle_OnLongAnimFinished { - [[nodiscard]] static BSTEventSource* GetEventSource() + [[nodiscard]] static BSTEventSource* GetEventSource() { - using func_t = decltype(&Terminal_CloseAllViews::GetEventSource); - static REL::Relocation func{ REL::ID(143772) }; + using func_t = decltype(&Reticle_OnLongAnimFinished::GetEventSource); + static REL::Relocation func{ REL::ID(141816) }; return func(); } }; - struct Terminal_CloseTopView + struct RuntimeComponentDBFactory { - [[nodiscard]] static BSTEventSource* GetEventSource() + struct ReferenceDetach { - using func_t = decltype(&Terminal_CloseTopView::GetEventSource); - static REL::Relocation func{ REL::ID(143773) }; - return func(); - } - }; + [[nodiscard]] static BSTEventSource* GetEventSource() + { + using func_t = decltype(&RuntimeComponentDBFactory::ReferenceDetach::GetEventSource); + static REL::Relocation func{ REL::ID(77128) }; + return func(); + } - struct Terminal_CloseView - { - [[nodiscard]] static BSTEventSource* GetEventSource() + // members + NiPointer ref; + }; + static_assert(sizeof(RuntimeComponentDBFactory::ReferenceDetach) == 0x8); + + struct ReferenceSet3d { - using func_t = decltype(&Terminal_CloseView::GetEventSource); - static REL::Relocation func{ REL::ID(143773) }; - return func(); - } + [[nodiscard]] static BSTEventSource* GetEventSource() + { + using func_t = decltype(&RuntimeComponentDBFactory::ReferenceSet3d::GetEventSource); + static REL::Relocation func{ REL::ID(88599) }; + return func(); + } + + // members + NiPointer ref; + }; + static_assert(sizeof(RuntimeComponentDBFactory::ReferenceSet3d) == 0x8); }; - struct CraftingMenu_Highlight3D + struct SaveLoadEvent { - [[nodiscard]] static BSTEventSource* GetEventSource() + [[nodiscard]] static BSTEventSource* GetEventSource() { - using func_t = decltype(&CraftingMenu_Highlight3D::GetEventSource); - static REL::Relocation func{ REL::ID(144186) }; + using func_t = decltype(&SaveLoadEvent::GetEventSource); + static REL::Relocation func{ REL::ID(129747) }; return func(); } }; - struct CraftingMenu_RevertHighlight + struct SecurityMenu_BackOutKey { - [[nodiscard]] static BSTEventSource* GetEventSource() + [[nodiscard]] static BSTEventSource* GetEventSource() { - using func_t = decltype(&CraftingMenu_RevertHighlight::GetEventSource); - static REL::Relocation func{ REL::ID(144187) }; + using func_t = decltype(&SecurityMenu_BackOutKey::GetEventSource); + static REL::Relocation func{ REL::ID(140244) }; return func(); } }; - struct WorkshopBuilderMenu_ChangeBuildItem + struct SecurityMenu_ConfirmExit { - [[nodiscard]] static BSTEventSource* GetEventSource() + [[nodiscard]] static BSTEventSource* GetEventSource() { - using func_t = decltype(&WorkshopBuilderMenu_ChangeBuildItem::GetEventSource); - static REL::Relocation func{ REL::ID(144229) }; + using func_t = decltype(&SecurityMenu_ConfirmExit::GetEventSource); + static REL::Relocation func{ REL::ID(140246) }; return func(); } }; - struct WorkshopBuilderMenu_SelectedItem + struct SecurityMenu_EliminateUnusedKeys { - [[nodiscard]] static BSTEventSource* GetEventSource() + [[nodiscard]] static BSTEventSource* GetEventSource() { - using func_t = decltype(&WorkshopBuilderMenu_SelectedItem::GetEventSource); - static REL::Relocation func{ REL::ID(144230) }; + using func_t = decltype(&SecurityMenu_EliminateUnusedKeys::GetEventSource); + static REL::Relocation func{ REL::ID(140247) }; return func(); } }; - struct WorkshopBuilderMenu_ToggleTracking + struct SecurityMenu_GetRingHint { - [[nodiscard]] static BSTEventSource* GetEventSource() + [[nodiscard]] static BSTEventSource* GetEventSource() { - using func_t = decltype(&WorkshopBuilderMenu_ToggleTracking::GetEventSource); - static REL::Relocation func{ REL::ID(144231) }; + using func_t = decltype(&SecurityMenu_GetRingHint::GetEventSource); + static REL::Relocation func{ REL::ID(140248) }; return func(); } }; - struct WorkshopMenu_AttemptBuild + struct SecurityMenu_SelectNewKey { - [[nodiscard]] static BSTEventSource* GetEventSource() + [[nodiscard]] static BSTEventSource* GetEventSource() { - using func_t = decltype(&WorkshopMenu_AttemptBuild::GetEventSource); - static REL::Relocation func{ REL::ID(144358) }; + using func_t = decltype(&SecurityMenu_SelectNewKey::GetEventSource); + static REL::Relocation func{ REL::ID(140249) }; return func(); } }; - struct WorkshopMenu_ChangeVariant + struct SecurityMenu_TryUseKey { - [[nodiscard]] static BSTEventSource* GetEventSource() + [[nodiscard]] static BSTEventSource* GetEventSource() { - using func_t = decltype(&WorkshopMenu_ChangeVariant::GetEventSource); - static REL::Relocation func{ REL::ID(144360) }; + using func_t = decltype(&SecurityMenu_TryUseKey::GetEventSource); + static REL::Relocation func{ REL::ID(140250) }; return func(); } }; - struct WorkshopMenu_ConnectionEvent + struct ShipCameraStateToggled { - [[nodiscard]] static BSTEventSource* GetEventSource() + [[nodiscard]] static BSTEventSource* GetEventSource() { - using func_t = decltype(&WorkshopMenu_ConnectionEvent::GetEventSource); - static REL::Relocation func{ REL::ID(144361) }; + using func_t = decltype(&ShipCameraStateToggled::GetEventSource); + static REL::Relocation func{ REL::ID(120266) }; return func(); } }; - struct WorkshopMenu_SelectedCategory + struct ShipEditor_SystemSelected { - [[nodiscard]] static BSTEventSource* GetEventSource() + [[nodiscard]] static BSTEventSource* GetEventSource() { - using func_t = decltype(&WorkshopMenu_SelectedCategory::GetEventSource); - static REL::Relocation func{ REL::ID(144364) }; + using func_t = decltype(&ShipEditor_SystemSelected::GetEventSource); + static REL::Relocation func{ REL::ID(75542) }; return func(); } }; - struct WorkshopMenu_SelectedGridObject + struct ShipHud_AbortJump { - [[nodiscard]] static BSTEventSource* GetEventSource() + [[nodiscard]] static BSTEventSource* GetEventSource() { - using func_t = decltype(&WorkshopMenu_SelectedGridObject::GetEventSource); - static REL::Relocation func{ REL::ID(144365) }; + using func_t = decltype(&ShipHud_AbortJump::GetEventSource); + static REL::Relocation func{ REL::ID(141818) }; return func(); } }; - struct WorkshopMenu_ShowExtras + struct ShipHud_Activate { - [[nodiscard]] static BSTEventSource* GetEventSource() + [[nodiscard]] static BSTEventSource* GetEventSource() { - using func_t = decltype(&WorkshopMenu_ShowExtras::GetEventSource); - static REL::Relocation func{ REL::ID(144366) }; + using func_t = decltype(&ShipHud_Activate::GetEventSource); + static REL::Relocation func{ REL::ID(137016) }; return func(); } }; - struct WorkshopMenu_SwitchMode + struct ShipHud_BodyViewMarkerDimensions { - [[nodiscard]] static BSTEventSource* GetEventSource() + [[nodiscard]] static BSTEventSource* GetEventSource() { - using func_t = decltype(&WorkshopMenu_SwitchMode::GetEventSource); - static REL::Relocation func{ REL::ID(144367) }; + using func_t = decltype(&ShipHud_BodyViewMarkerDimensions::GetEventSource); + static REL::Relocation func{ REL::ID(137017) }; return func(); } }; - struct WorkshopMenu_ToggleDistance + struct ShipHud_ChangeComponentSelection { - [[nodiscard]] static BSTEventSource* GetEventSource() + [[nodiscard]] static BSTEventSource* GetEventSource() { - using func_t = decltype(&WorkshopMenu_ToggleDistance::GetEventSource); - static REL::Relocation func{ REL::ID(144368) }; + using func_t = decltype(&ShipHud_ChangeComponentSelection::GetEventSource); + static REL::Relocation func{ REL::ID(137018) }; return func(); } }; - struct WorkshopMenu_ToggleTracking + struct ShipHud_Deselect { - [[nodiscard]] static BSTEventSource* GetEventSource() + [[nodiscard]] static BSTEventSource* GetEventSource() { - using func_t = decltype(&WorkshopMenu_ToggleTracking::GetEventSource); - static REL::Relocation func{ REL::ID(144369) }; + using func_t = decltype(&ShipHud_Deselect::GetEventSource); + static REL::Relocation func{ REL::ID(137020) }; return func(); } }; - struct WorkshopMenu_ToggleView + struct ShipHud_DockRequested { - [[nodiscard]] static BSTEventSource* GetEventSource() + [[nodiscard]] static BSTEventSource* GetEventSource() { - using func_t = decltype(&WorkshopMenu_ToggleView::GetEventSource); - static REL::Relocation func{ REL::ID(144370) }; + using func_t = decltype(&ShipHud_DockRequested::GetEventSource); + static REL::Relocation func{ REL::ID(141819) }; return func(); } }; - namespace ModelReferenceEffectEvents + struct ShipHud_FarTravel { - struct ReferenceEffectFinished + [[nodiscard]] static BSTEventSource* GetEventSource() { - [[nodiscard]] static BSTEventSource* GetEventSource() - { - using func_t = decltype(&ModelReferenceEffectEvents::ReferenceEffectFinished::GetEventSource); - static REL::Relocation func{ REL::ID(145389) }; - return func(); - } - }; + using func_t = decltype(&ShipHud_FarTravel::GetEventSource); + static REL::Relocation func{ REL::ID(137021) }; + return func(); + } }; - struct BGSAcousticSpaceListener + struct ShipHud_HailAccepted { - struct StackChangedEvent + [[nodiscard]] static BSTEventSource* GetEventSource() { - [[nodiscard]] static BSTEventSource* GetEventSource() - { - using func_t = decltype(&BGSAcousticSpaceListener::StackChangedEvent::GetEventSource); - static REL::Relocation func{ REL::ID(145815) }; - return func(); - } - }; + using func_t = decltype(&ShipHud_HailAccepted::GetEventSource); + static REL::Relocation func{ REL::ID(137022) }; + return func(); + } }; - struct SpaceshipBIEvents + struct ShipHud_HailCancelled { - struct ShipPowerAllocationBIEventSent + [[nodiscard]] static BSTEventSource* GetEventSource() { - [[nodiscard]] static BSTEventSource* GetEventSource() - { - using func_t = decltype(&SpaceshipBIEvents::ShipPowerAllocationBIEventSent::GetEventSource); - static REL::Relocation func{ REL::ID(146094) }; - return func(); - } - }; + using func_t = decltype(&ShipHud_HailCancelled::GetEventSource); + static REL::Relocation func{ REL::ID(137023) }; + return func(); + } }; - struct Research + struct ShipHud_HailShip { - struct ResearchProgressEvent + [[nodiscard]] static BSTEventSource* GetEventSource() { - [[nodiscard]] static BSTEventSource* GetEventSource() - { - using func_t = decltype(&Research::ResearchProgressEvent::GetEventSource); - static REL::Relocation func{ REL::ID(147163) }; - return func(); - } - }; + using func_t = decltype(&ShipHud_HailShip::GetEventSource); + static REL::Relocation func{ REL::ID(141820) }; + return func(); + } }; - struct ContainerMenu_HideModel + struct ShipHud_JumpToQuestMarker { - [[nodiscard]] static BSTEventSource* GetEventSource() + [[nodiscard]] static BSTEventSource* GetEventSource() { - using func_t = decltype(&ContainerMenu_HideModel::GetEventSource); - static REL::Relocation func{ REL::ID(166510) }; + using func_t = decltype(&ShipHud_JumpToQuestMarker::GetEventSource); + static REL::Relocation func{ REL::ID(137023) }; return func(); } }; - struct ContainerMenu_Jettison + struct ShipHud_Land { - [[nodiscard]] static BSTEventSource* GetEventSource() + [[nodiscard]] static BSTEventSource* GetEventSource() { - using func_t = decltype(&ContainerMenu_Jettison::GetEventSource); - static REL::Relocation func{ REL::ID(166511) }; + using func_t = decltype(&ShipHud_Land::GetEventSource); + static REL::Relocation func{ REL::ID(137025) }; return func(); } }; - struct ContainerMenu_LoadModel + struct ShipHud_LandingMarkerMap { - [[nodiscard]] static BSTEventSource* GetEventSource() + [[nodiscard]] static BSTEventSource* GetEventSource() { - using func_t = decltype(&ContainerMenu_LoadModel::GetEventSource); - static REL::Relocation func{ REL::ID(166512) }; + using func_t = decltype(&ShipHud_LandingMarkerMap::GetEventSource); + static REL::Relocation func{ REL::ID(137026) }; return func(); } }; - struct ContainerMenu_OpenRefuelMenu + struct ShipHud_Map { - [[nodiscard]] static BSTEventSource* GetEventSource() + [[nodiscard]] static BSTEventSource* GetEventSource() { - using func_t = decltype(&ContainerMenu_OpenRefuelMenu::GetEventSource); - static REL::Relocation func{ REL::ID(166513) }; + using func_t = decltype(&ShipHud_Map::GetEventSource); + static REL::Relocation func{ REL::ID(137027) }; return func(); } }; - struct ContainerMenu_SetMouseOverModel + struct ShipHud_OpenPhotoMode { - [[nodiscard]] static BSTEventSource* GetEventSource() + [[nodiscard]] static BSTEventSource* GetEventSource() { - using func_t = decltype(&ContainerMenu_SetMouseOverModel::GetEventSource); - static REL::Relocation func{ REL::ID(166514) }; + using func_t = decltype(&ShipHud_OpenPhotoMode::GetEventSource); + static REL::Relocation func{ REL::ID(137029) }; return func(); } }; - struct ContainerMenu_TakeAll + struct ShipHud_Repair { - [[nodiscard]] static BSTEventSource* GetEventSource() + [[nodiscard]] static BSTEventSource* GetEventSource() { - using func_t = decltype(&ContainerMenu_TakeAll::GetEventSource); - static REL::Relocation func{ REL::ID(166515) }; + using func_t = decltype(&ShipHud_Repair::GetEventSource); + static REL::Relocation func{ REL::ID(137030) }; return func(); } }; - struct ContainerMenu_ToggleEquip + struct ShipHud_SetTargetMode { - [[nodiscard]] static BSTEventSource* GetEventSource() + [[nodiscard]] static BSTEventSource* GetEventSource() { - using func_t = decltype(&ContainerMenu_ToggleEquip::GetEventSource); - static REL::Relocation func{ REL::ID(166516) }; + using func_t = decltype(&ShipHud_SetTargetMode::GetEventSource); + static REL::Relocation func{ REL::ID(137031) }; return func(); } }; - struct ContainerMenu_TransferItem + struct ShipHud_Target { - [[nodiscard]] static BSTEventSource* GetEventSource() + [[nodiscard]] static BSTEventSource* GetEventSource() { - using func_t = decltype(&ContainerMenu_TransferItem::GetEventSource); - static REL::Relocation func{ REL::ID(166518) }; + using func_t = decltype(&ShipHud_Target::GetEventSource); + static REL::Relocation func{ REL::ID(137032) }; return func(); } }; - struct DialogueMenu_OnDialogueSelect + struct ShipHud_TargetShipSystem { - [[nodiscard]] static BSTEventSource* GetEventSource() + [[nodiscard]] static BSTEventSource* GetEventSource() { - using func_t = decltype(&DialogueMenu_OnDialogueSelect::GetEventSource); - static REL::Relocation func{ REL::ID(166594) }; + using func_t = decltype(&ShipHud_TargetShipSystem::GetEventSource); + static REL::Relocation func{ REL::ID(137033) }; return func(); } }; - struct DialogueMenu_OnListVisibilityChange + struct ShipHud_UntargetShipSystem { - [[nodiscard]] static BSTEventSource* GetEventSource() + [[nodiscard]] static BSTEventSource* GetEventSource() { - using func_t = decltype(&DialogueMenu_OnListVisibilityChange::GetEventSource); - static REL::Relocation func{ REL::ID(166595) }; + using func_t = decltype(&ShipHud_UntargetShipSystem::GetEventSource); + static REL::Relocation func{ REL::ID(137034) }; return func(); } }; - struct DialogueMenu_OnPersuasionAutoWin + struct ShipHud_UpdateComponentPower { - [[nodiscard]] static BSTEventSource* GetEventSource() + [[nodiscard]] static BSTEventSource* GetEventSource() { - using func_t = decltype(&DialogueMenu_OnPersuasionAutoWin::GetEventSource); - static REL::Relocation func{ REL::ID(166596) }; + using func_t = decltype(&ShipHud_UpdateComponentPower::GetEventSource); + static REL::Relocation func{ REL::ID(137035) }; return func(); } }; - struct DialogueMenu_RequestExit + struct ShipHud_UpdateTargetPanelRect { - [[nodiscard]] static BSTEventSource* GetEventSource() + [[nodiscard]] static BSTEventSource* GetEventSource() { - using func_t = decltype(&DialogueMenu_RequestExit::GetEventSource); - static REL::Relocation func{ REL::ID(166598) }; + using func_t = decltype(&ShipHud_UpdateTargetPanelRect::GetEventSource); + static REL::Relocation func{ REL::ID(141821) }; return func(); } }; - struct DialogueMenu_RequestSkipDialogue + struct ShipHudQuickContainer_TransferItem { - [[nodiscard]] static BSTEventSource* GetEventSource() + [[nodiscard]] static BSTEventSource* GetEventSource() { - using func_t = decltype(&DialogueMenu_RequestSkipDialogue::GetEventSource); - static REL::Relocation func{ REL::ID(166599) }; + using func_t = decltype(&ShipHudQuickContainer_TransferItem::GetEventSource); + static REL::Relocation func{ REL::ID(141817) }; return func(); } }; - struct FavoritesMenu_AssignQuickkey + struct ShipHudQuickContainer_TransferMenu { - [[nodiscard]] static BSTEventSource* GetEventSource() + [[nodiscard]] static BSTEventSource* GetEventSource() { - using func_t = decltype(&FavoritesMenu_AssignQuickkey::GetEventSource); - static REL::Relocation func{ REL::ID(166789) }; + using func_t = decltype(&ShipHudQuickContainer_TransferMenu::GetEventSource); + static REL::Relocation func{ REL::ID(137015) }; return func(); } }; - struct FavoritesMenu_UseQuickkey + struct ShowHUDMessageEvent { - [[nodiscard]] static BSTEventSource* GetEventSource() + [[nodiscard]] static BSTEventSource* GetEventSource() { - using func_t = decltype(&FavoritesMenu_UseQuickkey::GetEventSource); - static REL::Relocation func{ REL::ID(166790) }; + using func_t = decltype(&ShowHUDMessageEvent::GetEventSource); + static REL::Relocation func{ REL::ID(133512) }; return func(); } + + // members + BSFixedString text; // 00 + BSFixedString sound; // 08 + bool canThrottle; // 10 + bool isWarning; // 11 + bool isRadio; // 12 - TODO: verify name }; - struct MessageBoxMenu_OnBackOut + struct ShowingQuestMarketTextEvent { - [[nodiscard]] static BSTEventSource* GetEventSource() + [[nodiscard]] static BSTEventSource* GetEventSource() { - using func_t = decltype(&MessageBoxMenu_OnBackOut::GetEventSource); - static REL::Relocation func{ REL::ID(167116) }; + using func_t = decltype(&ShowingQuestMarketTextEvent::GetEventSource); + static REL::Relocation func{ REL::ID(133279) }; return func(); } }; - struct MessageBoxMenu_OnButtonPress + struct ShowLongShipBootup { - [[nodiscard]] static BSTEventSource* GetEventSource() + [[nodiscard]] static BSTEventSource* GetEventSource() { - using func_t = decltype(&MessageBoxMenu_OnButtonPress::GetEventSource); - static REL::Relocation func{ REL::ID(167117) }; + using func_t = decltype(&ShowLongShipBootup::GetEventSource); + static REL::Relocation func{ REL::ID(137014) }; return func(); } }; - struct MessageBoxMenu_OnScriptedButtonPress + struct ShowSubtitleEvent { - [[nodiscard]] static BSTEventSource* GetEventSource() + struct Event { - using func_t = decltype(&MessageBoxMenu_OnScriptedButtonPress::GetEventSource); - static REL::Relocation func{ REL::ID(167118) }; + [[nodiscard]] static BSTEventSource* GetEventSource() + { + using func_t = decltype(&ShowSubtitleEvent::Event::GetEventSource); + static REL::Relocation func{ REL::ID(133631) }; + return func(); + } + }; + }; + + struct SkillsMenu_Accept + { + [[nodiscard]] static BSTEventSource* GetEventSource() + { + using func_t = decltype(&SkillsMenu_Accept::GetEventSource); + static REL::Relocation func{ REL::ID(140522) }; return func(); } }; @@ -3453,177 +2992,324 @@ namespace RE }; }; - struct UpdateSceneRectEvent + struct SpaceshipBIEvents { - [[nodiscard]] static BSTEventSource* GetEventSource() + struct ShipPowerAllocationBIEventSent { - using func_t = decltype(&UpdateSceneRectEvent::GetEventSource); - static REL::Relocation func{ REL::ID(187249) }; + [[nodiscard]] static BSTEventSource* GetEventSource() + { + using func_t = decltype(&SpaceshipBIEvents::ShipPowerAllocationBIEventSent::GetEventSource); + static REL::Relocation func{ REL::ID(146094) }; + return func(); + } + }; + }; + + struct SpaceshipWeaponBinding + { + struct SpaceshipWeaponBindingChangedEvent + { + [[nodiscard]] static BSTEventSource* GetEventSource() + { + using func_t = decltype(&SpaceshipWeaponBinding::SpaceshipWeaponBindingChangedEvent::GetEventSource); + static REL::Relocation func{ REL::ID(130322) }; + return func(); + } + }; + }; + + struct StarMap + { + struct PlanetTraitKnownEvent + { + [[nodiscard]] static BSTEventSource* GetEventSource() + { + using func_t = decltype(&StarMap::PlanetTraitKnownEvent::GetEventSource); + static REL::Relocation func{ REL::ID(92502) }; + return func(); + } + }; + }; + + struct StarMapMenu_LandingInputInProgress + { + [[nodiscard]] static BSTEventSource* GetEventSource() + { + using func_t = decltype(&StarMapMenu_LandingInputInProgress::GetEventSource); + static REL::Relocation func{ REL::ID(142192) }; + return func(); + } + }; + + struct StarMapMenu_MarkerGroupContainerVisibilityChanged + { + [[nodiscard]] static BSTEventSource* GetEventSource() + { + using func_t = decltype(&StarMapMenu_MarkerGroupContainerVisibilityChanged::GetEventSource); + static REL::Relocation func{ REL::ID(142193) }; + return func(); + } + }; + + struct StarMapMenu_MarkerGroupEntryClicked + { + [[nodiscard]] static BSTEventSource* GetEventSource() + { + using func_t = decltype(&StarMapMenu_MarkerGroupEntryClicked::GetEventSource); + static REL::Relocation func{ REL::ID(142194) }; + return func(); + } + }; + + struct StarMapMenu_MarkerGroupEntryHoverChanged + { + [[nodiscard]] static BSTEventSource* GetEventSource() + { + using func_t = decltype(&StarMapMenu_MarkerGroupEntryHoverChanged::GetEventSource); + static REL::Relocation func{ REL::ID(142195) }; + return func(); + } + }; + + struct StarMapMenu_ScanPlanet + { + [[nodiscard]] static BSTEventSource* GetEventSource() + { + using func_t = decltype(&StarMapMenu_ScanPlanet::GetEventSource); + static REL::Relocation func{ REL::ID(142196) }; + return func(); + } + }; + + struct StarMapMenu_SelectedLandingSite + { + [[nodiscard]] static BSTEventSource* GetEventSource() + { + using func_t = decltype(&StarMapMenu_SelectedLandingSite::GetEventSource); + static REL::Relocation func{ REL::ID(142197) }; + return func(); + } + }; + + struct StarMapMenu_SelectedLandingSiteFailed + { + [[nodiscard]] static BSTEventSource* GetEventSource() + { + using func_t = decltype(&StarMapMenu_SelectedLandingSiteFailed::GetEventSource); + static REL::Relocation func{ REL::ID(142198) }; + return func(); + } + }; + + struct StarMapMenu_ShowRealCursor + { + [[nodiscard]] static BSTEventSource* GetEventSource() + { + using func_t = decltype(&StarMapMenu_ShowRealCursor::GetEventSource); + static REL::Relocation func{ REL::ID(142199) }; + return func(); + } + }; + + struct StarMapMenu_QuickSelectChange + { + [[nodiscard]] static BSTEventSource* GetEventSource() + { + using func_t = decltype(&StarMapMenu_QuickSelectChange::GetEventSource); + static REL::Relocation func{ REL::ID(142493) }; + return func(); + } + }; + + struct StarMapMenu_Galaxy_FocusSystem + { + [[nodiscard]] static BSTEventSource* GetEventSource() + { + using func_t = decltype(&StarMapMenu_Galaxy_FocusSystem::GetEventSource); + static REL::Relocation func{ REL::ID(142763) }; + return func(); + } + }; + + struct StarMapMenu_OnGalaxyViewInitialized + { + [[nodiscard]] static BSTEventSource* GetEventSource() + { + using func_t = decltype(&StarMapMenu_OnGalaxyViewInitialized::GetEventSource); + static REL::Relocation func{ REL::ID(142764) }; + return func(); + } + }; + + struct StarMapMenu_ExecuteRoute + { + [[nodiscard]] static BSTEventSource* GetEventSource() + { + using func_t = decltype(&StarMapMenu_ExecuteRoute::GetEventSource); + static REL::Relocation func{ REL::ID(142945) }; + return func(); + } + }; + + struct StarMapMenu_OnCancel + { + [[nodiscard]] static BSTEventSource* GetEventSource() + { + using func_t = decltype(&StarMapMenu_OnCancel::GetEventSource); + static REL::Relocation func{ REL::ID(142946) }; + return func(); + } + }; + + struct StarMapMenu_OnClearRoute + { + [[nodiscard]] static BSTEventSource* GetEventSource() + { + using func_t = decltype(&StarMapMenu_OnClearRoute::GetEventSource); + static REL::Relocation func{ REL::ID(142947) }; + return func(); + } + }; + + struct StarMapMenu_OnExitStarMap + { + [[nodiscard]] static BSTEventSource* GetEventSource() + { + using func_t = decltype(&StarMapMenu_OnExitStarMap::GetEventSource); + static REL::Relocation func{ REL::ID(142948) }; return func(); } }; - struct TESCellNavmeshGeneratedEvent + struct StarMapMenu_OnHintButtonClicked { - [[nodiscard]] static BSTEventSource* GetEventSource() + [[nodiscard]] static BSTEventSource* GetEventSource() { - using func_t = decltype(&TESCellNavmeshGeneratedEvent::GetEventSource); - static REL::Relocation func{ REL::ID(34446) }; + using func_t = decltype(&StarMapMenu_OnHintButtonClicked::GetEventSource); + static REL::Relocation func{ REL::ID(142949) }; return func(); } }; - struct PerkChanged + struct StarMapMenu_OnOutpostEntrySelected { - struct Event + [[nodiscard]] static BSTEventSource* GetEventSource() { - [[nodiscard]] static BSTEventSource* GetEventSource() - { - using func_t = decltype(&PerkChanged::Event::GetEventSource); - static REL::Relocation func{ REL::ID(76533) }; - return func(); - } - }; + using func_t = decltype(&StarMapMenu_OnOutpostEntrySelected::GetEventSource); + static REL::Relocation func{ REL::ID(142950) }; + return func(); + } }; - struct ActivityEvents + struct StarMapMenu_ReadyToClose { - struct ActivityCompletedEvent + [[nodiscard]] static BSTEventSource* GetEventSource() { - [[nodiscard]] static BSTEventSource* GetEventSource() - { - using func_t = decltype(&ActivityEvents::ActivityCompletedEvent::GetEventSource); - static REL::Relocation func{ REL::ID(86737) }; - return func(); - } - }; + using func_t = decltype(&StarMapMenu_ReadyToClose::GetEventSource); + static REL::Relocation func{ REL::ID(142951) }; + return func(); + } }; - struct ChallengeCompletedEvent + struct SurfaceMapMenu_MarkerClicked { - struct Event + [[nodiscard]] static BSTEventSource* GetEventSource() { - [[nodiscard]] static BSTEventSource* GetEventSource() - { - using func_t = decltype(&ChallengeCompletedEvent::Event::GetEventSource); - static REL::Relocation func{ REL::ID(86781) }; - return func(); - } - }; + using func_t = decltype(&SurfaceMapMenu_MarkerClicked::GetEventSource); + static REL::Relocation func{ REL::ID(143330) }; + return func(); + } }; - struct InventoryItemEvent + struct SurfaceMapMenu_TryPlaceCustomMarker { - struct Event + [[nodiscard]] static BSTEventSource* GetEventSource() { - [[nodiscard]] static BSTEventSource* GetEventSource() - { - using func_t = decltype(&InventoryItemEvent::Event::GetEventSource); - static REL::Relocation func{ REL::ID(87526) }; - return func(); - } - }; + using func_t = decltype(&SurfaceMapMenu_TryPlaceCustomMarker::GetEventSource); + static REL::Relocation func{ REL::ID(143331) }; + return func(); + } }; - struct BooksRead + struct TakeoffMenu_ExitShip { - struct Event + [[nodiscard]] static BSTEventSource* GetEventSource() { - [[nodiscard]] static BSTEventSource* GetEventSource() - { - using func_t = decltype(&BooksRead::Event::GetEventSource); - static REL::Relocation func{ REL::ID(103540) }; - return func(); - } - - // members - TESObjectBOOK* book; // 00 - }; + using func_t = decltype(&TakeoffMenu_ExitShip::GetEventSource); + static REL::Relocation func{ REL::ID(141823) }; + return func(); + } }; - struct LocationLinked + struct TakeoffMenu_Launch { - struct Event + [[nodiscard]] static BSTEventSource* GetEventSource() { - [[nodiscard]] static BSTEventSource* GetEventSource() - { - using func_t = decltype(&LocationLinked::Event::GetEventSource); - static REL::Relocation func{ REL::ID(104623) }; - return func(); - } - }; + using func_t = decltype(&TakeoffMenu_Launch::GetEventSource); + static REL::Relocation func{ REL::ID(141824) }; + return func(); + } }; - struct Activation + struct TargetHitEvent { - struct Event + [[nodiscard]] static BSTEventSource* GetEventSource() { - [[nodiscard]] static BSTEventSource* GetEventSource() - { - using func_t = decltype(&Activation::Event::GetEventSource); - static REL::Relocation func{ REL::ID(106834) }; - return func(); - } - - // members - NiPointer source; // 00 - NiPointer target; // 08 - }; - static_assert(sizeof(Activation::Event) == 0x10); + using func_t = decltype(&TargetHitEvent::GetEventSource); + static REL::Relocation func{ REL::ID(133346) }; + return func(); + } }; - struct ActorCellChangeEvent + struct Terminal_CloseAllViews { - struct Event + [[nodiscard]] static BSTEventSource* GetEventSource() { - [[nodiscard]] static BSTEventSource* GetEventSource() - { - using func_t = decltype(&ActorCellChangeEvent::Event::GetEventSource); - static REL::Relocation func{ REL::ID(107081) }; - return func(); - } - - // members - NiPointer actor; // 00 - }; + using func_t = decltype(&Terminal_CloseAllViews::GetEventSource); + static REL::Relocation func{ REL::ID(143772) }; + return func(); + } }; - struct BGSAffinityEventEvent + struct Terminal_CloseTopView { - [[nodiscard]] static BSTEventSource* GetEventSource() + [[nodiscard]] static BSTEventSource* GetEventSource() { - using func_t = decltype(&BGSAffinityEventEvent::GetEventSource); - static REL::Relocation func{ REL::ID(107086) }; + using func_t = decltype(&Terminal_CloseTopView::GetEventSource); + static REL::Relocation func{ REL::ID(143773) }; return func(); } }; - struct BGSCellGridLoadEvent + struct Terminal_CloseView { - [[nodiscard]] static BSTEventSource* GetEventSource() + [[nodiscard]] static BSTEventSource* GetEventSource() { - using func_t = decltype(&BGSCellGridLoadEvent::GetEventSource); - static REL::Relocation func{ REL::ID(107087) }; + using func_t = decltype(&Terminal_CloseView::GetEventSource); + static REL::Relocation func{ REL::ID(143773) }; return func(); } }; - struct BGSRadiationDamageEvent + struct TerminalHacked { - [[nodiscard]] static BSTEventSource* GetEventSource() + struct Event { - using func_t = decltype(&BGSRadiationDamageEvent::GetEventSource); - static REL::Relocation func{ REL::ID(107106) }; - return func(); - } + [[nodiscard]] static BSTEventSource* GetEventSource() + { + using func_t = decltype(&TerminalHacked::Event::GetEventSource); + static REL::Relocation func{ REL::ID(153673) }; + return func(); + } + }; }; - struct InstantReferenceInteractionEvent + struct TerminalMenu_CancelEvent { - [[nodiscard]] static BSTEventSource* GetEventSource() + [[nodiscard]] static BSTEventSource* GetEventSource() { - using func_t = decltype(&InstantReferenceInteractionEvent::GetEventSource); - static REL::Relocation func{ REL::ID(107112) }; + using func_t = decltype(&TerminalMenu_CancelEvent::GetEventSource); + static REL::Relocation func{ REL::ID(143771) }; return func(); } }; @@ -3655,6 +3341,7 @@ namespace RE // members NiPointer ref; // 00 }; + static_assert(sizeof(TESBookReadEvent) == 0x8); struct TESCellFullyLoadedEvent { @@ -3668,6 +3355,33 @@ namespace RE // members NiPointer cell; // 00 }; + static_assert(sizeof(TESCellFullyLoadedEvent) == 0x8); + + struct TESCellNavmeshGeneratedEvent + { + [[nodiscard]] static BSTEventSource* GetEventSource() + { + using func_t = decltype(&TESCellNavmeshGeneratedEvent::GetEventSource); + static REL::Relocation func{ REL::ID(34446) }; + return func(); + } + }; + + struct TESCombatEvent + { + [[nodiscard]] static BSTEventSource* GetEventSource() + { + using func_t = decltype(&TESCombatEvent::GetEventSource); + static REL::Relocation func{ REL::ID(107148) }; + return func(); + } + + // members + NiPointer source; // 00 + NiPointer target; // 08 - nullptr when combat state is none + ACTOR_COMBAT_STATE state; // 10 + }; + static_assert(sizeof(TESCombatEvent) == 0x18); struct TESContainerChangedEvent { @@ -3706,6 +3420,24 @@ namespace RE }; static_assert(sizeof(TESDeathEvent) == 0x18); + struct TESEquipEvent + { + [[nodiscard]] static BSTEventSource* GetEventSource() + { + using func_t = decltype(&TESEquipEvent::GetEventSource); + static REL::Relocation func{ REL::ID(107161) }; + return func(); + } + + // members + NiPointer actor; // 00 + TESFormID baseObject; // 08 + TESFormID origRef; // 0C + std::uint16_t uniqueID; // 10 + bool equipped; // 12 + }; + static_assert(sizeof(TESEquipEvent) == 0x18); + struct TESFormDeleteEvent { [[nodiscard]] static BSTEventSource* GetEventSource() @@ -3716,7 +3448,7 @@ namespace RE } // members - TESFormID formID; + TESFormID formID; // 00 }; static_assert(sizeof(TESFormDeleteEvent) == 0x4); @@ -3730,8 +3462,8 @@ namespace RE } // members - TESFormID oldFormID; - TESFormID newFormID; + TESFormID oldFormID; // 00 + TESFormID newFormID; // 04 }; static_assert(sizeof(TESFormIDRemapEvent) == 0x8); @@ -3753,27 +3485,56 @@ namespace RE [[nodiscard]] constexpr bool IsEnter() const noexcept { return type == Type::kEnter; } [[nodiscard]] constexpr bool IsExit() const noexcept { return type == Type::kExit; } - // members - std::byte pad00[0x8]; // 00 - wtf is this now? it used to be an NiPointer in previous games - NiPointer furniture; // 08 - Type type; // 10 + // members + std::byte pad00[0x8]; // 00 - wtf is this now? it used to be an NiPointer in previous games + NiPointer furniture; // 08 + Type type; // 10 + }; + static_assert(sizeof(TESFurnitureEvent) == 0x18); + + struct TESGrabReleaseEvent + { + [[nodiscard]] static BSTEventSource* GetEventSource() + { + using func_t = decltype(&TESGrabReleaseEvent::GetEventSource); + static REL::Relocation func{ REL::ID(107169) }; + return func(); + } + + // members + NiPointer target; // 00 + bool grabbed; // 08 + }; + static_assert(sizeof(TESGrabReleaseEvent) == 0x10); + + struct TESHarvestEvent + { + struct ItemHarvested + { + [[nodiscard]] static BSTEventSource* GetEventSource() + { + using func_t = decltype(&TESHarvestEvent::ItemHarvested::GetEventSource); + static REL::Relocation func{ REL::ID(86518) }; + return func(); + } + + // members + TESBoundObject* item; // 00 + NiPointer itemRef; // 08 + NiPointer actor; // 10 + }; + static_assert(sizeof(TESHarvestEvent::ItemHarvested) == 0x18); }; - static_assert(sizeof(TESFurnitureEvent) == 0x18); - - struct TESGrabReleaseEvent + + struct TESLoadGameEvent { - [[nodiscard]] static BSTEventSource* GetEventSource() + [[nodiscard]] static BSTEventSource* GetEventSource() { - using func_t = decltype(&TESGrabReleaseEvent::GetEventSource); - static REL::Relocation func{ REL::ID(107169) }; + using func_t = decltype(&TESLoadGameEvent::GetEventSource); + static REL::Relocation func{ REL::ID(1868757) }; return func(); } - - // members - NiPointer target; // 00 - bool grabbed; // 08 }; - static_assert(sizeof(TESGrabReleaseEvent) == 0x10); struct TESMissionAcceptedEvent { @@ -3810,6 +3571,30 @@ namespace RE static REL::Relocation func{ REL::ID(107183) }; return func(); } + + // members + NiPointer actor; // 00 + }; + static_assert(sizeof(TESPickNewIdleEvent) == 0x8); + + struct TESPlayerFollowerWarpEvent + { + [[nodiscard]] static BSTEventSource* GetEventSource() + { + using func_t = decltype(&TESPlayerFollowerWarpEvent::GetEventSource); + static REL::Relocation func{ REL::ID(107186) }; + return func(); + } + }; + + struct TESQuestRewardEvent + { + [[nodiscard]] static BSTEventSource* GetEventSource() + { + using func_t = decltype(&TESQuestRewardEvent::GetEventSource); + static REL::Relocation func{ REL::ID(95698) }; + return func(); + } }; struct TESResetEvent @@ -3824,6 +3609,7 @@ namespace RE // members NiPointer ref; // 00 }; + static_assert(sizeof(TESResetEvent) == 0x8); struct TESResolveNPCTemplatesEvent { @@ -3833,181 +3619,442 @@ namespace RE static REL::Relocation func{ REL::ID(107194) }; return func(); } + + // members + TESFormID formID; // 00 }; + static_assert(sizeof(TESResolveNPCTemplatesEvent) == 0x4); - struct ClearShipHudTarget + struct TraitDiscoveryTextEvent + { + struct Event + { + [[nodiscard]] static BSTEventSource* GetEventSource() + { + using func_t = decltype(&TraitDiscoveryTextEvent::Event::GetEventSource); + static REL::Relocation func{ REL::ID(138718) }; + return func(); + } + }; + }; + + struct TryUpdateShipHudTarget { struct Event { - [[nodiscard]] static BSTEventSource* GetEventSource() + [[nodiscard]] static BSTEventSource* GetEventSource() + { + using func_t = decltype(&TryUpdateShipHudTarget::Event::GetEventSource); + static REL::Relocation func{ REL::ID(137012) }; + return func(); + } + }; + }; + + struct UIMenuChargenMenuDisablePaperdoll + { + [[nodiscard]] static BSTEventSource* GetEventSource() + { + using func_t = decltype(&UIMenuChargenMenuDisablePaperdoll::GetEventSource); + static REL::Relocation func{ REL::ID(141232) }; + return func(); + } + }; + + struct UnlockedTerminalElementEvent + { + [[nodiscard]] static BSTEventSource* GetEventSource() + { + using func_t = decltype(&UnlockedTerminalElementEvent::GetEventSource); + static REL::Relocation func{ REL::ID(140243) }; + return func(); + } + }; + + struct UpdateActivateListenerEvent + { + [[nodiscard]] static BSTEventSource* GetEventSource() + { + using func_t = decltype(&UpdateActivateListenerEvent::GetEventSource); + static REL::Relocation func{ REL::ID(132635) }; + return func(); + } + }; + + struct UpdateSceneRectEvent + { + [[nodiscard]] static BSTEventSource* GetEventSource() + { + using func_t = decltype(&UpdateSceneRectEvent::GetEventSource); + static REL::Relocation func{ REL::ID(187249) }; + return func(); + } + }; + + struct WeaponFiredEvent + { + [[nodiscard]] static auto GetEventSource() + { + static REL::Relocation*> ptr{ REL::ID(773902) }; + return ptr.get(); + } + + // members + void* unk00; // 00 + void* unk08; // 08 + NiPointer actor; // 10 + }; + + struct Workshop + { + struct CargoLinkAddedEvent + { + [[nodiscard]] static BSTEventSource* GetEventSource() + { + using func_t = decltype(&Workshop::CargoLinkAddedEvent::GetEventSource); + static REL::Relocation func{ REL::ID(119421) }; + return func(); + } + }; + + struct CargoLinkTargetChangedEvent + { + [[nodiscard]] static BSTEventSource* GetEventSource() + { + using func_t = decltype(&Workshop::CargoLinkTargetChangedEvent::GetEventSource); + static REL::Relocation func{ REL::ID(119422) }; + return func(); + } + }; + + struct EnterOutpostBeaconModeEvent + { + [[nodiscard]] static BSTEventSource* GetEventSource() + { + using func_t = decltype(&Workshop::EnterOutpostBeaconModeEvent::GetEventSource); + static REL::Relocation func{ REL::ID(119423) }; + return func(); + } + }; + + struct ItemGrabbedEvent + { + [[nodiscard]] static BSTEventSource* GetEventSource() + { + using func_t = decltype(&Workshop::ItemGrabbedEvent::GetEventSource); + static REL::Relocation func{ REL::ID(119424) }; + return func(); + } + }; + + struct ItemMovedEvent + { + [[nodiscard]] static BSTEventSource* GetEventSource() + { + using func_t = decltype(&Workshop::ItemMovedEvent::GetEventSource); + static REL::Relocation func{ REL::ID(119425) }; + return func(); + } + }; + + struct ItemPlacedEvent + { + [[nodiscard]] static BSTEventSource* GetEventSource() + { + using func_t = decltype(&Workshop::ItemPlacedEvent::GetEventSource); + static REL::Relocation func{ REL::ID(119426) }; + return func(); + } + }; + + struct ItemProducedEvent + { + [[nodiscard]] static BSTEventSource* GetEventSource() + { + using func_t = decltype(&Workshop::ItemProducedEvent::GetEventSource); + static REL::Relocation func{ REL::ID(119427) }; + return func(); + } + }; + + struct ItemRemovedEvent + { + [[nodiscard]] static BSTEventSource* GetEventSource() + { + using func_t = decltype(&Workshop::ItemRemovedEvent::GetEventSource); + static REL::Relocation func{ REL::ID(119428) }; + return func(); + } + }; + + struct ItemRepairedEvent + { + [[nodiscard]] static BSTEventSource* GetEventSource() + { + using func_t = decltype(&Workshop::ItemRepairedEvent::GetEventSource); + static REL::Relocation func{ REL::ID(119429) }; + return func(); + } + }; + + struct ItemScrappedEvent + { + [[nodiscard]] static BSTEventSource* GetEventSource() + { + using func_t = decltype(&Workshop::ItemScrappedEvent::GetEventSource); + static REL::Relocation func{ REL::ID(119430) }; + return func(); + } + }; + + struct OutpostNameChangedEvent + { + [[nodiscard]] static BSTEventSource* GetEventSource() + { + using func_t = decltype(&Workshop::OutpostNameChangedEvent::GetEventSource); + static REL::Relocation func{ REL::ID(119431) }; + return func(); + } + }; + + struct OutpostPlacedEvent + { + [[nodiscard]] static BSTEventSource* GetEventSource() + { + using func_t = decltype(&Workshop::OutpostPlacedEvent::GetEventSource); + static REL::Relocation func{ REL::ID(119432) }; + return func(); + } + }; + + struct PlacementStatusEvent + { + [[nodiscard]] static BSTEventSource* GetEventSource() + { + using func_t = decltype(&Workshop::PlacementStatusEvent::GetEventSource); + static REL::Relocation func{ REL::ID(119434) }; + return func(); + } + }; + + struct PowerOffEvent + { + [[nodiscard]] static BSTEventSource* GetEventSource() { - using func_t = decltype(&ClearShipHudTarget::Event::GetEventSource); - static REL::Relocation func{ REL::ID(137011) }; + using func_t = decltype(&Workshop::PowerOffEvent::GetEventSource); + static REL::Relocation func{ REL::ID(119435) }; return func(); } }; - }; - struct TryUpdateShipHudTarget - { - struct Event + struct PowerOnEvent { - [[nodiscard]] static BSTEventSource* GetEventSource() + [[nodiscard]] static BSTEventSource* GetEventSource() { - using func_t = decltype(&TryUpdateShipHudTarget::Event::GetEventSource); - static REL::Relocation func{ REL::ID(137012) }; + using func_t = decltype(&Workshop::PowerOnEvent::GetEventSource); + static REL::Relocation func{ REL::ID(119436) }; return func(); } }; - }; - struct ActorItemEquipped - { - struct Event + struct SnapBehaviorCycledEvent { - [[nodiscard]] static BSTEventSource* GetEventSource() + [[nodiscard]] static BSTEventSource* GetEventSource() { - using func_t = decltype(&ActorItemEquipped::Event::GetEventSource); - static REL::Relocation func{ REL::ID(151162) }; + using func_t = decltype(&Workshop::SnapBehaviorCycledEvent::GetEventSource); + static REL::Relocation func{ REL::ID(119437) }; return func(); } - - // members - TESBoundObject* item; // 00 - NiPointer actor; // 08 }; - }; - struct ReloadWeaponEvent - { - struct Event + struct WorkshopFlyCameraEvent { - [[nodiscard]] static BSTEventSource* GetEventSource() + [[nodiscard]] static BSTEventSource* GetEventSource() { - using func_t = decltype(&ReloadWeaponEvent::Event::GetEventSource); - static REL::Relocation func{ REL::ID(151744) }; + using func_t = decltype(&Workshop::WorkshopFlyCameraEvent::GetEventSource); + static REL::Relocation func{ REL::ID(119438) }; return func(); } }; - }; - struct Bounty - { - struct Event + struct WorkshopItemPlacedEvent { - [[nodiscard]] static BSTEventSource* GetEventSource() + [[nodiscard]] static BSTEventSource* GetEventSource() { - using func_t = decltype(&Bounty::Event::GetEventSource); - static REL::Relocation func{ REL::ID(153651) }; + using func_t = decltype(&Workshop::WorkshopItemPlacedEvent::GetEventSource); + static REL::Relocation func{ REL::ID(119439) }; return func(); } - - // members - TESFaction* faction; // 00 - std::int32_t bounty; // 08 - std::int32_t oldBounty; // 0C }; - static_assert(sizeof(Bounty::Event) == 0x10); - }; - struct CriticalHitEvent - { - struct Event + struct WorkshopModeEvent { - [[nodiscard]] static BSTEventSource* GetEventSource() + [[nodiscard]] static BSTEventSource* GetEventSource() { - using func_t = decltype(&CriticalHitEvent::Event::GetEventSource); - static REL::Relocation func{ REL::ID(153653) }; + using func_t = decltype(&Workshop::WorkshopModeEvent::GetEventSource); + static REL::Relocation func{ REL::ID(119440) }; return func(); } }; - }; - struct CustomMarkerUpdate - { - struct Event + struct WorkshopOutputLinkEvent { - [[nodiscard]] static BSTEventSource* GetEventSource() + [[nodiscard]] static BSTEventSource* GetEventSource() { - using func_t = decltype(&CustomMarkerUpdate::Event::GetEventSource); - static REL::Relocation func{ REL::ID(153654) }; + using func_t = decltype(&Workshop::WorkshopOutputLinkEvent::GetEventSource); + static REL::Relocation func{ REL::ID(119441) }; return func(); } }; - }; - struct EnteredUnity - { - struct Event + struct WorkshopStatsChangedEvent { - [[nodiscard]] static BSTEventSource* GetEventSource() + [[nodiscard]] static BSTEventSource* GetEventSource() { - using func_t = decltype(&EnteredUnity::Event::GetEventSource); - static REL::Relocation func{ REL::ID(153656) }; + using func_t = decltype(&Workshop::WorkshopStatsChangedEvent::GetEventSource); + static REL::Relocation func{ REL::ID(119442) }; return func(); } }; - }; - struct LevelIncrease - { - struct Event + struct WorkshopUpdateStatsEvent { - [[nodiscard]] static BSTEventSource* GetEventSource() + [[nodiscard]] static BSTEventSource* GetEventSource() { - using func_t = decltype(&LevelIncrease::Event::GetEventSource); - static REL::Relocation func{ REL::ID(153662) }; + using func_t = decltype(&Workshop::WorkshopUpdateStatsEvent::GetEventSource); + static REL::Relocation func{ REL::ID(119443) }; return func(); } - - // members - std::uint32_t level; }; - static_assert(sizeof(LevelIncrease::Event) == 0x4); }; - struct PlayerAmmoChanged + struct WorkshopBuilderMenu_ChangeBuildItem { - struct Event + [[nodiscard]] static BSTEventSource* GetEventSource() { - [[nodiscard]] static BSTEventSource* GetEventSource() - { - using func_t = decltype(&PlayerAmmoChanged::Event::GetEventSource); - static REL::Relocation func{ REL::ID(153665) }; - return func(); - } + using func_t = decltype(&WorkshopBuilderMenu_ChangeBuildItem::GetEventSource); + static REL::Relocation func{ REL::ID(144229) }; + return func(); + } + }; - // members - std::uint32_t clipCount; - std::uint32_t reserveCount; - }; - static_assert(sizeof(PlayerAmmoChanged::Event) == 0x8); + struct WorkshopBuilderMenu_SelectedItem + { + [[nodiscard]] static BSTEventSource* GetEventSource() + { + using func_t = decltype(&WorkshopBuilderMenu_SelectedItem::GetEventSource); + static REL::Relocation func{ REL::ID(144230) }; + return func(); + } }; - struct TerminalHacked + struct WorkshopBuilderMenu_ToggleTracking { - struct Event + [[nodiscard]] static BSTEventSource* GetEventSource() { - [[nodiscard]] static BSTEventSource* GetEventSource() - { - using func_t = decltype(&TerminalHacked::Event::GetEventSource); - static REL::Relocation func{ REL::ID(153673) }; - return func(); - } - }; + using func_t = decltype(&WorkshopBuilderMenu_ToggleTracking::GetEventSource); + static REL::Relocation func{ REL::ID(144231) }; + return func(); + } }; - struct WeaponFiredEvent + struct WorkshopMenu_AttemptBuild { - [[nodiscard]] static auto GetEventSource() + [[nodiscard]] static BSTEventSource* GetEventSource() { - static REL::Relocation*> ptr{ REL::ID(773902) }; - return ptr.get(); + using func_t = decltype(&WorkshopMenu_AttemptBuild::GetEventSource); + static REL::Relocation func{ REL::ID(144358) }; + return func(); } + }; - // members - void* unk00; // 00 - void* unk08; // 08 - NiPointer actor; // 10 + struct WorkshopMenu_ChangeVariant + { + [[nodiscard]] static BSTEventSource* GetEventSource() + { + using func_t = decltype(&WorkshopMenu_ChangeVariant::GetEventSource); + static REL::Relocation func{ REL::ID(144360) }; + return func(); + } + }; + + struct WorkshopMenu_ConnectionEvent + { + [[nodiscard]] static BSTEventSource* GetEventSource() + { + using func_t = decltype(&WorkshopMenu_ConnectionEvent::GetEventSource); + static REL::Relocation func{ REL::ID(144361) }; + return func(); + } + }; + + struct WorkshopMenu_SelectedCategory + { + [[nodiscard]] static BSTEventSource* GetEventSource() + { + using func_t = decltype(&WorkshopMenu_SelectedCategory::GetEventSource); + static REL::Relocation func{ REL::ID(144364) }; + return func(); + } + }; + + struct WorkshopMenu_SelectedGridObject + { + [[nodiscard]] static BSTEventSource* GetEventSource() + { + using func_t = decltype(&WorkshopMenu_SelectedGridObject::GetEventSource); + static REL::Relocation func{ REL::ID(144365) }; + return func(); + } + }; + + struct WorkshopMenu_ShowExtras + { + [[nodiscard]] static BSTEventSource* GetEventSource() + { + using func_t = decltype(&WorkshopMenu_ShowExtras::GetEventSource); + static REL::Relocation func{ REL::ID(144366) }; + return func(); + } + }; + + struct WorkshopMenu_SwitchMode + { + [[nodiscard]] static BSTEventSource* GetEventSource() + { + using func_t = decltype(&WorkshopMenu_SwitchMode::GetEventSource); + static REL::Relocation func{ REL::ID(144367) }; + return func(); + } + }; + + struct WorkshopMenu_ToggleDistance + { + [[nodiscard]] static BSTEventSource* GetEventSource() + { + using func_t = decltype(&WorkshopMenu_ToggleDistance::GetEventSource); + static REL::Relocation func{ REL::ID(144368) }; + return func(); + } + }; + + struct WorkshopMenu_ToggleTracking + { + [[nodiscard]] static BSTEventSource* GetEventSource() + { + using func_t = decltype(&WorkshopMenu_ToggleTracking::GetEventSource); + static REL::Relocation func{ REL::ID(144369) }; + return func(); + } + }; + + struct WorkshopMenu_ToggleView + { + [[nodiscard]] static BSTEventSource* GetEventSource() + { + using func_t = decltype(&WorkshopMenu_ToggleView::GetEventSource); + static REL::Relocation func{ REL::ID(144370) }; + return func(); + } }; } From 41162e3d7c00e2dfae31cb8d0c49e44932b9df86 Mon Sep 17 00:00:00 2001 From: Qudix <17361645+Qudix@users.noreply.github.com> Date: Fri, 25 Oct 2024 13:24:38 -0500 Subject: [PATCH 3/5] feat: events --- include/RE/E/Events.h | 265 +++++++++++++++++++++++++++++++++++++++++- 1 file changed, 261 insertions(+), 4 deletions(-) diff --git a/include/RE/E/Events.h b/include/RE/E/Events.h index 021f2de3..7fd1226e 100644 --- a/include/RE/E/Events.h +++ b/include/RE/E/Events.h @@ -7,10 +7,12 @@ namespace RE { class Actor; + class BGSLocation; class HUDModeType; class TESBoundObject; class TESObjectBOOK; class TESObjectCELL; + class TESObjectMISC; class TESObjectREFR; enum class ACTOR_COMBAT_STATE : std::int32_t; @@ -59,7 +61,10 @@ namespace RE // members NiPointer actor; // 00 + TESObjectCELL* cellA; // 08 + TESObjectCELL* cellB; // 10 }; + static_assert(sizeof(ActorCellChangeEvent::Event) == 0x18); }; struct ActorItemEquipped @@ -80,6 +85,21 @@ namespace RE static_assert(sizeof(ActorItemEquipped::Event) == 0x10); }; + struct AttachReference + { + struct Event + { + [[nodiscard]] static auto GetEventSource() + { + static REL::Relocation*> ptr{ REL::ID(778826) }; + return ptr.get(); + } + + // members + NiPointer ref; // 00 + }; + }; + struct AutoLoadDoorRolloverEvent { [[nodiscard]] static BSTEventSource* GetEventSource() @@ -173,6 +193,32 @@ namespace RE }; }; + struct BGSActorEvent + { + // members + ActorHandle actor; // 00 + }; + static_assert(sizeof(BGSActorEvent) == 0x4); + + struct BGSActorCellEvent : + public BGSActorEvent + { + enum class Type : std::uint32_t + { + kEnter = 0, + kLeave = 1 + }; + + [[nodiscard]] auto GetCell() const { return TESForm::LookupByID(formID); } + + [[nodiscard]] constexpr bool IsEnter() const noexcept { return type == Type::kEnter; } + [[nodiscard]] constexpr bool IsLeave() const noexcept { return type == Type::kLeave; } + + // members + TESFormID formID; + Type type; + }; + struct BGSAffinityEventEvent { [[nodiscard]] static BSTEventSource* GetEventSource() @@ -261,8 +307,11 @@ namespace RE } // members - TESObjectBOOK* book; // 00 + TESObjectBOOK* book; // 00 + bool hasAV; // 08 + bool hasPerk; // 09 }; + static_assert(sizeof(BooksRead::Event) == 0x10); }; struct Bounty @@ -1505,6 +1554,24 @@ namespace RE } }; + struct ItemSteal + { + struct Event + { + [[nodiscard]] static BSTEventSource* GetEventSource() + { + using func_t = decltype(&ItemSteal::Event::GetEventSource); + static REL::Relocation func{ REL::ID(153659) }; + return func(); + } + + // members + std::uint32_t count; // 00 + TESObjectMISC* item; // 04 + }; + static_assert(sizeof(ItemSteal::Event) == 0x10); + }; + struct LevelIncrease { struct Event @@ -1816,7 +1883,7 @@ namespace RE [[nodiscard]] static BSTEventSource* GetEventSource() { using func_t = decltype(&PauseMenu_ConfirmLoad::GetEventSource); - static REL::Relocation func{ REL::ID(141615) }; + static REL::Relocation func{ REL::ID(141616) }; return func(); } }; @@ -1994,6 +2061,16 @@ namespace RE } }; + struct PickRefStateChangedEvent + { + [[nodiscard]] static BSTEventSource* GetEventSource() + { + using func_t = decltype(&PickRefStateChangedEvent::GetEventSource); + static REL::Relocation func{ REL::ID(86519) }; + return func(); + } + }; + struct PickRefUpdateEvent { [[nodiscard]] static BSTEventSource* GetEventSource() @@ -2032,6 +2109,22 @@ namespace RE static_assert(sizeof(PlayerAmmoChanged::Event) == 0x8); }; + struct PlayerAssaultActorEvent + { + [[nodiscard]] static BSTEventSource* GetEventSource() + { + using func_t = decltype(&PlayerAssaultActorEvent::GetEventSource); + static REL::Relocation func{ REL::ID(107120) }; + return func(); + } + + // members + NiPointer actor; // 00 + BGSLocation* location; // 08 - nullptr if no location + bool isCrime; // 10 + }; + static_assert(sizeof(PlayerAssaultActorEvent) == 0x18); + struct PlayerControls { struct PlayerIronSightsEndEvent @@ -2095,6 +2188,42 @@ namespace RE }; }; + struct PlayerCrimeGoldEvent + { + enum class Type : std::uint32_t + { + kNone = static_cast>(-1), + kSteal, + kPickpocket, + kTrespass, + kAttack, + kMurder, + kEscape, + kUnused, + }; + + [[nodiscard]] static BSTEventSource* GetEventSource() + { + using func_t = decltype(&PlayerCrimeGoldEvent::GetEventSource); + static REL::Relocation func{ REL::ID(107122) }; + return func(); + } + + [[nodiscard]] constexpr bool IsSteal() const noexcept { return type == Type::kSteal; } + [[nodiscard]] constexpr bool IsPickpocket() const noexcept { return type == Type::kPickpocket; } + [[nodiscard]] constexpr bool IsTrespass() const noexcept { return type == Type::kTrespass; } + [[nodiscard]] constexpr bool IsAttack() const noexcept { return type == Type::kAttack; } + [[nodiscard]] constexpr bool IsMurder() const noexcept { return type == Type::kMurder; } + [[nodiscard]] constexpr bool IsEscape() const noexcept { return type == Type::kEscape; } + + // members + std::uint64_t unk00; // 00 + TESFaction* faction; // 08 + std::uint32_t value; // 10 + Type type; // 18 + }; + static_assert(sizeof(PlayerCrimeGoldEvent) == 0x18); + struct PlayerCrosshairModeEvent { [[nodiscard]] static BSTEventSource* GetEventSource() @@ -2128,6 +2257,55 @@ namespace RE }; }; + struct PlayerJailEvent + { + [[nodiscard]] static BSTEventSource* GetEventSource() + { + using func_t = decltype(&PlayerJailEvent::GetEventSource); + static REL::Relocation func{ REL::ID(107124) }; + return func(); + } + + // members + std::uint64_t unk00; // 00 - Guard ActorHandle? + TESFaction* faction; // 08 + BGSLocation* location; // 10 - nullptr if no location + std::uint32_t value; // 18 + }; + static_assert(sizeof(PlayerJailEvent) == 0x20); + + struct PlayerMurderActorEvent + { + [[nodiscard]] static BSTEventSource* GetEventSource() + { + using func_t = decltype(&PlayerMurderActorEvent::GetEventSource); + static REL::Relocation func{ REL::ID(107126) }; + return func(); + } + + // members + NiPointer actor; // 00 + BGSLocation* location; // 08 - nullptr if no location + bool isCrime; // 10 + }; + static_assert(sizeof(PlayerMurderActorEvent) == 0x18); + + struct PlayerPayFineEvent + { + [[nodiscard]] static BSTEventSource* GetEventSource() + { + using func_t = decltype(&PlayerPayFineEvent::GetEventSource); + static REL::Relocation func{ REL::ID(107127) }; + return func(); + } + + // members + std::uint64_t unk00; // 00 + TESFaction* faction; // 08 + std::uint32_t value; // 10 + }; + static_assert(sizeof(PlayerPayFineEvent) == 0x18); + struct PlayerSetWeaponStateEvent { [[nodiscard]] static BSTEventSource* GetEventSource() @@ -2148,10 +2326,26 @@ namespace RE } // members - bool sneaking; // 00 + bool isSneaking; // 00 }; static_assert(sizeof(PlayerSneakingChangeEvent) == 0x1); + struct PlayerTrespassEvent + { + [[nodiscard]] static BSTEventSource* GetEventSource() + { + using func_t = decltype(&PlayerTrespassEvent::GetEventSource); + static REL::Relocation func{ REL::ID(107131) }; + return func(); + } + + // members + NiPointer actor; // 00 + BGSLocation* location; // 08 - nullptr if no location + bool isCrime; // 10 + }; + static_assert(sizeof(PlayerTrespassEvent) == 0x18); + struct PlayerUpdateEvent { [[nodiscard]] static BSTEventSource* GetEventSource() @@ -2222,6 +2416,8 @@ namespace RE static REL::Relocation func{ REL::ID(151744) }; return func(); } + + NiPointer actor; // 00 }; }; @@ -2683,8 +2879,8 @@ namespace RE BSFixedString sound; // 08 bool canThrottle; // 10 bool isWarning; // 11 - bool isRadio; // 12 - TODO: verify name }; + static_assert(sizeof(ShowHUDMessageEvent) == 0x18); struct ShowingQuestMarketTextEvent { @@ -2704,7 +2900,11 @@ namespace RE static REL::Relocation func{ REL::ID(137014) }; return func(); } + + // members + bool unk00; // 00 }; + static_assert(sizeof(ShowLongShipBootup) == 0x1); struct ShowSubtitleEvent { @@ -3329,6 +3529,37 @@ namespace RE }; static_assert(sizeof(TESActivateEvent) == 0x10); + struct TESActorActivatedRefEvent + { + [[nodiscard]] static BSTEventSource* GetEventSource() + { + using func_t = decltype(&TESActorActivatedRefEvent::GetEventSource); + static REL::Relocation func{ REL::ID(107139) }; + return func(); + } + + // members + NiPointer actor; // 00 + NiPointer target; // 08 + }; + static_assert(sizeof(TESActorActivatedRefEvent) == 0x10); + + struct TESActorLocationChangeEvent + { + [[nodiscard]] static BSTEventSource* GetEventSource() + { + using func_t = decltype(&TESActorLocationChangeEvent::GetEventSource); + static REL::Relocation func{ REL::ID(107140) }; + return func(); + } + + // members + NiPointer actor; // 00 + BGSLocation* oldLocation; // 08 + BGSLocation* newLocation; // 10 + }; + static_assert(sizeof(TESActorLocationChangeEvent) == 0x18); + struct TESBookReadEvent { [[nodiscard]] static BSTEventSource* GetEventSource() @@ -3755,7 +3986,13 @@ namespace RE static REL::Relocation func{ REL::ID(119425) }; return func(); } + + // members + NiPointer workshop; // 00 + NiPointer item; // 08 + NiPointer source; // 10 - game always passes PlayerCharacter? }; + static_assert(sizeof(ItemMovedEvent) == 0x18); struct ItemPlacedEvent { @@ -3765,7 +4002,14 @@ namespace RE static REL::Relocation func{ REL::ID(119426) }; return func(); } + + // members + bool unk00; // 00 + NiPointer workshop; // 08 + NiPointer item; // 10 + NiPointer source; // 18 - game always passes PlayerCharacter? }; + static_assert(sizeof(ItemPlacedEvent) == 0x20); struct ItemProducedEvent { @@ -3785,7 +4029,13 @@ namespace RE static REL::Relocation func{ REL::ID(119428) }; return func(); } + + // members + NiPointer workshop; // 00 + NiPointer item; // 08 + NiPointer source; // 10 - game always passes PlayerCharacter? }; + static_assert(sizeof(ItemRemovedEvent) == 0x18); struct ItemRepairedEvent { @@ -3885,6 +4135,9 @@ namespace RE static REL::Relocation func{ REL::ID(119439) }; return func(); } + + // members + NiPointer workshop; // 00 }; struct WorkshopModeEvent @@ -3895,6 +4148,10 @@ namespace RE static REL::Relocation func{ REL::ID(119440) }; return func(); } + + // members + NiPointer workshop; // 00 + NiPointer source; // 08 - game always passes PlayerCharacter? }; struct WorkshopOutputLinkEvent From ffe29791bee8695dec0fe0683319cd480f4eeac1 Mon Sep 17 00:00:00 2001 From: Qudix <17361645+Qudix@users.noreply.github.com> Date: Fri, 25 Oct 2024 16:47:04 -0500 Subject: [PATCH 4/5] feat: `TESHitEvent` --- include/RE/E/Events.h | 50 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) diff --git a/include/RE/E/Events.h b/include/RE/E/Events.h index 7fd1226e..fb59f748 100644 --- a/include/RE/E/Events.h +++ b/include/RE/E/Events.h @@ -7,7 +7,9 @@ namespace RE { class Actor; + class BGSAttackData; class BGSLocation; + class bhkNPCollisionObject; class HUDModeType; class TESBoundObject; class TESObjectBOOK; @@ -3756,6 +3758,54 @@ namespace RE }; static_assert(sizeof(TESHarvestEvent::ItemHarvested) == 0x18); }; + + struct DamageImpactData + { + // members + NiPoint3A location; // 00 + NiPoint3A normal; // 10 + NiPoint3A velocity; // 20 + NiPointer colObj; // 30 + }; + static_assert(sizeof(DamageImpactData) == 0x40); + + class HitData + { + public: + // members + DamageImpactData impactData; // 00 + std::uint32_t aggressor; // 40 - ActorHandle + std::uint32_t target; // 44 - ActorHandle + std::uint32_t sourceRef; // 48 - ObjectRefHandle + std::uint64_t attackData; // 50 - NiPointer + BGSObjectInstanceT weapon; // 58 + SpellItem* criticalEffect; // 68 + SpellItem* hitEffect; // 70 + std::uint64_t unk78; // 78 + const TESAmmo* ammo; // 80 + std::byte pad88[0x68]; // 88 + }; + static_assert(sizeof(HitData) == 0xF0); + + struct TESHitEvent + { + [[nodiscard]] static BSTEventSource* GetEventSource() + { + using func_t = decltype(&TESHitEvent::GetEventSource); + static REL::Relocation func{ REL::ID(34450) }; + return func(); + } + + // members + HitData hitData; // 000 + NiPointer target; // 0F0 + NiPointer cause; // 0F8 + BSFixedString material; // 100 + TESFormID sourceFormID; // 108 + TESFormID projectileFormID; // 10C + bool usesHitData; // 110 + }; + static_assert(sizeof(TESHitEvent) == 0x120); struct TESLoadGameEvent { From ac58f6f6b8e34656df362c714baa95cc1eb64cab Mon Sep 17 00:00:00 2001 From: Qudix <17361645+Qudix@users.noreply.github.com> Date: Fri, 25 Oct 2024 18:27:57 -0500 Subject: [PATCH 5/5] feat: `TESHitEvent` --- include/RE/E/Events.h | 24 +++++++++++++----------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/include/RE/E/Events.h b/include/RE/E/Events.h index fb59f748..a66ce7dc 100644 --- a/include/RE/E/Events.h +++ b/include/RE/E/Events.h @@ -3773,17 +3773,19 @@ namespace RE { public: // members - DamageImpactData impactData; // 00 - std::uint32_t aggressor; // 40 - ActorHandle - std::uint32_t target; // 44 - ActorHandle - std::uint32_t sourceRef; // 48 - ObjectRefHandle - std::uint64_t attackData; // 50 - NiPointer - BGSObjectInstanceT weapon; // 58 - SpellItem* criticalEffect; // 68 - SpellItem* hitEffect; // 70 - std::uint64_t unk78; // 78 - const TESAmmo* ammo; // 80 - std::byte pad88[0x68]; // 88 + DamageImpactData impactData; // 00 + std::uint32_t aggressor; // 40 - ActorHandle + std::uint32_t target; // 44 - ActorHandle + std::uint32_t sourceRef; // 48 - ObjectRefHandle + std::uint64_t attackData; // 50 - NiPointer + BGSObjectInstanceT weapon; // 58 + SpellItem* criticalEffect; // 68 + SpellItem* hitEffect; // 70 + std::uint64_t unk78; // 78 + const TESAmmo* ammo; // 80 + std::byte pad88[0x5C]; // 88 + REX::Enum damageLimb; // E4 + std::byte padE8[0x8]; // E8 }; static_assert(sizeof(HitData) == 0xF0);