From c53f9ba39b599cb33711945808e405f9c1781e4c Mon Sep 17 00:00:00 2001 From: Eddoursul Date: Thu, 4 Jul 2024 17:57:59 +0200 Subject: [PATCH] Configurable pickup delay --- src/EventListener.cpp | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/EventListener.cpp b/src/EventListener.cpp index 9dca5f5..698eaa2 100644 --- a/src/EventListener.cpp +++ b/src/EventListener.cpp @@ -7,7 +7,8 @@ RE::BGSKeyword* EventListener::keywordHide; RE::BGSKeyword* EventListener::keywordIngot; inline std::map g_settings{ - { "fRadius", 350.0f }, + { "iRadius", 350 }, + { "iPickupDelay", 100 }, { "bPickupGold", true }, { "bPickupLockpicks", true }, { "bPickupMaterials", true }, @@ -84,7 +85,7 @@ auto EventListener::ProcessEvent( std::unordered_set refQueue; - TES->ForEachReferenceInRange(baseRef, std::any_cast(g_settings["fRadius"]), [&](RE::TESObjectREFR* a_ref) { + TES->ForEachReferenceInRange(baseRef, static_cast(std::any_cast(g_settings["iRadius"])), [&](RE::TESObjectREFR* a_ref) { if (!a_ref) { return RE::BSContainer::ForEachResult::kContinue; } @@ -157,9 +158,10 @@ auto EventListener::ProcessEvent( std::thread([refQueue]() { RE::ScriptEventSourceHolder::GetSingleton()->GetEventSource()->RemoveEventSink(EventListener::GetSingleton()); + int iPickupDelay = std::any_cast(g_settings["iPickupDelay"]); for (const auto& item : refQueue) { - std::this_thread::sleep_for(std::chrono::milliseconds(100)); + std::this_thread::sleep_for(std::chrono::milliseconds(iPickupDelay)); SKSE::GetTaskInterface()->AddTask([&item]() { if (item && item->formID) { item->ActivateRef(RE::PlayerCharacter::GetSingleton(), 0, nullptr, item->extraList.GetCount(), false);