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);