#pragma once class EventListener : public RE::BSTEventSink, public RE::BSTEventSink, public RE::BSTEventSink, public RE::BSTEventSink, public RE::BSTEventSink, public RE::BSTEventSink, public RE::BSTEventSink, public RE::BSTEventSink { 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* a_eventSource) -> RE::BSEventNotifyControl override; auto ProcessEvent( const RE::TESCellFullyLoadedEvent* a_event, RE::BSTEventSource* a_eventSource) -> RE::BSEventNotifyControl override; auto ProcessEvent( const RE::BGSActorCellEvent* a_event, RE::BSTEventSource* a_eventSource) -> RE::BSEventNotifyControl override; auto ProcessEvent( const RE::MenuOpenCloseEvent* a_event, RE::BSTEventSource* a_eventSource) -> RE::BSEventNotifyControl override; auto ProcessEvent( const SKSE::ModCallbackEvent* a_event, RE::BSTEventSource* a_eventSource) -> RE::BSEventNotifyControl override; auto ProcessEvent( const RE::TESActivateEvent* a_event, RE::BSTEventSource* a_eventSource) -> RE::BSEventNotifyControl override; auto ProcessEvent( const RE::TESActorLocationChangeEvent* a_event, RE::BSTEventSource* a_eventSource) -> RE::BSEventNotifyControl override; RE::BSEventNotifyControl ProcessEvent( RE::InputEvent* const* a_event, RE::BSTEventSource* a_eventSource) override; private: EventListener() = default; };