#pragma once #include #include #include struct NotifyQuestUpdate; struct TESQuest; /** * @brief Handles quest sync * * This service is currently not in use. */ class QuestService final : public BSTEventSink, BSTEventSink { public: QuestService(World&, entt::dispatcher&); ~QuestService() = default; static bool IsNonSyncableQuest(TESQuest* apQuest); static void DebugDumpQuests(); static bool StopQuest(uint32_t aformId); private: friend struct QuestEventHandler; void OnConnected(const ConnectedEvent&) noexcept; BSTEventResult OnEvent(const TESQuestStartStopEvent*, const EventDispatcher*) override; BSTEventResult OnEvent(const TESQuestStageEvent*, const EventDispatcher*) override; void OnQuestUpdate(const NotifyQuestUpdate&) noexcept; World& m_world; entt::scoped_connection m_joinedConnection; entt::scoped_connection m_leftConnection; entt::scoped_connection m_questUpdateConnection; };