diff --git a/SKSE/Plugins/ArtifactTracker.dll b/SKSE/Plugins/ArtifactTracker.dll index 9e8eaa1..0cee496 100644 Binary files a/SKSE/Plugins/ArtifactTracker.dll and b/SKSE/Plugins/ArtifactTracker.dll differ diff --git a/Source/ArtifactTrackerDLL/src/EventListener.cpp b/Source/ArtifactTrackerDLL/src/EventListener.cpp index 3c67cff..d06b59e 100644 --- a/Source/ArtifactTrackerDLL/src/EventListener.cpp +++ b/Source/ArtifactTrackerDLL/src/EventListener.cpp @@ -138,15 +138,16 @@ RE::BSEventNotifyControl EventListener::ProcessEvent( RE::InputEvent* const* a_event, RE::BSTEventSource* a_eventSource) { - if (RE::UI::GetSingleton()->GameIsPaused()) { - auto inputEvent = a_event ? *a_event : nullptr; - auto buttonEvent = inputEvent ? inputEvent->AsButtonEvent() : nullptr; + auto inputEvent = a_event ? *a_event : nullptr; + auto buttonEvent = inputEvent ? inputEvent->AsButtonEvent() : nullptr; - if (!buttonEvent) { - return RE::BSEventNotifyControl::kContinue; - } + if (!buttonEvent || !buttonEvent->IsPressed()) { + return RE::BSEventNotifyControl::kContinue; + } - if (RE::UI::GetSingleton()->IsMenuOpen("ContainerMenu") && buttonEvent->QUserEvent() == RE::UserEvents::GetSingleton()->xButton) { + if (RE::UI::GetSingleton()->GameIsPaused() && RE::UI::GetSingleton()->IsItemMenuOpen() && RE::UI::GetSingleton()->IsMenuOpen("ContainerMenu")) { + const auto takeAllKey = RE::ControlMap::GetSingleton()->GetMappedKey(RE::UserEvents::GetSingleton()->readyWeapon, buttonEvent->GetDevice(), RE::UserEvents::INPUT_CONTEXT_ID::kGameplay); + if (takeAllKey == buttonEvent->GetIDCode()) { ArtifactTracker::g_bTakeAll = true; ArtifactTracker::g_bTakeAllCount = 0; }