2022-07-31 18:55:11 +00:00
|
|
|
#pragma once
|
|
|
|
|
2023-12-21 11:41:08 +00:00
|
|
|
#include "Patches/DialogueMenuPatch.h"
|
|
|
|
#include "Patches/HeroMenuPatch.h"
|
2023-12-15 20:39:41 +00:00
|
|
|
#include "Util.h"
|
|
|
|
#include <shellapi.h>
|
|
|
|
|
2022-07-31 18:55:11 +00:00
|
|
|
class EventListener :
|
|
|
|
public RE::BSTEventSink<SKSE::ModCallbackEvent>,
|
|
|
|
public RE::BSTEventSink<RE::TESContainerChangedEvent>,
|
|
|
|
public RE::BSTEventSink<RE::MenuOpenCloseEvent>,
|
2024-01-15 01:47:42 +00:00
|
|
|
public RE::BSTEventSink<RE::TESActivateEvent>,
|
2024-01-15 04:01:05 +00:00
|
|
|
public RE::BSTEventSink<RE::TESCombatEvent>,
|
|
|
|
public RE::BSTEventSink<RE::TESHitEvent>
|
2022-07-31 18:55:11 +00:00
|
|
|
{
|
|
|
|
public:
|
|
|
|
~EventListener() = default;
|
|
|
|
EventListener(const EventListener&) = delete;
|
|
|
|
EventListener& operator=(const EventListener&) = delete;
|
|
|
|
EventListener& operator=(EventListener&&) = delete;
|
|
|
|
|
|
|
|
static auto GetSingleton() -> EventListener*;
|
|
|
|
|
|
|
|
static void Install();
|
|
|
|
|
|
|
|
auto ProcessEvent(
|
|
|
|
const RE::TESContainerChangedEvent* a_event,
|
|
|
|
RE::BSTEventSource<RE::TESContainerChangedEvent>* a_eventSource)
|
|
|
|
-> RE::BSEventNotifyControl override;
|
|
|
|
|
|
|
|
auto ProcessEvent(
|
|
|
|
const RE::MenuOpenCloseEvent* a_event,
|
|
|
|
RE::BSTEventSource<RE::MenuOpenCloseEvent>* a_eventSource)
|
|
|
|
-> RE::BSEventNotifyControl override;
|
|
|
|
|
|
|
|
auto ProcessEvent(
|
|
|
|
const SKSE::ModCallbackEvent* a_event,
|
|
|
|
RE::BSTEventSource<SKSE::ModCallbackEvent>* a_eventSource)
|
|
|
|
-> RE::BSEventNotifyControl override;
|
|
|
|
|
|
|
|
auto ProcessEvent(
|
|
|
|
const RE::TESActivateEvent* a_event,
|
|
|
|
RE::BSTEventSource<RE::TESActivateEvent>* a_eventSource)
|
|
|
|
-> RE::BSEventNotifyControl override;
|
|
|
|
|
2024-01-15 01:47:42 +00:00
|
|
|
auto ProcessEvent(
|
|
|
|
const RE::TESCombatEvent* a_event,
|
|
|
|
RE::BSTEventSource<RE::TESCombatEvent>* a_eventSource)
|
|
|
|
-> RE::BSEventNotifyControl override;
|
|
|
|
|
2024-01-15 04:01:05 +00:00
|
|
|
auto ProcessEvent(
|
|
|
|
const RE::TESHitEvent* a_event,
|
|
|
|
RE::BSTEventSource<RE::TESHitEvent>* a_eventSource)
|
|
|
|
-> RE::BSEventNotifyControl override;
|
|
|
|
|
2022-07-31 18:55:11 +00:00
|
|
|
private:
|
|
|
|
EventListener() = default;
|
|
|
|
};
|