From e55ad48ade1cfae05d21162ad5249747c7acbe8e Mon Sep 17 00:00:00 2001 From: Erik Date: Thu, 14 May 2026 17:09:45 +0200 Subject: [PATCH] fix(B.5): make creature-pickup guard silent (retail-faithful) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The previous "Can't pick that up" toast wasn't retail behavior either — retail silently dropped the malformed pickup with no client-side feedback. Drop the toast, keep the guard. The user learns by trying again (which IS the retail UX). Filter still prevents the malformed packet from reaching ACE, so the WeenieError 0x0029 + NPC-emote chain that originally surfaced this bug stays suppressed. --- src/AcDream.App/Rendering/GameWindow.cs | 21 ++++++++++----------- 1 file changed, 10 insertions(+), 11 deletions(-) diff --git a/src/AcDream.App/Rendering/GameWindow.cs b/src/AcDream.App/Rendering/GameWindow.cs index b78148d..55291ad 100644 --- a/src/AcDream.App/Rendering/GameWindow.cs +++ b/src/AcDream.App/Rendering/GameWindow.cs @@ -8897,19 +8897,18 @@ public sealed class GameWindow : IDisposable return; } - // B.5 polish (2026-05-14): block client-side when the selected - // entity is a creature/NPC — ACE's HandleActionPutItemInContainer - // would otherwise reject with WeenieError.Stuck (0x0029, "You - // cannot pick that up!") AND trigger the NPC's emote chain, - // which surfaces as "the NPC talks to me when I press F" if the - // user single-clicked an NPC last before the F press. Use - // (double-click) is the right action for NPCs; F is only for - // ground items. + // B.5 polish (2026-05-14): silently block client-side when the + // selected entity is a creature/NPC. ACE's + // HandleActionPutItemInContainer would otherwise reject with + // WeenieError.Stuck (0x0029, "You cannot pick that up!") AND + // trigger the NPC's emote chain, which surfaces as "the NPC + // talks to me when I press F" if the user single-clicked an + // NPC last before the F press. Use (double-click) is the right + // action for NPCs; F is only for ground items. Silent rejection + // matches retail behavior — retail showed no client-side + // feedback for this case either. if (IsLiveCreatureTarget(itemGuid)) - { - _debugVm?.AddToast("Can't pick that up"); return; - } var seq = _liveSession.NextGameActionSequence(); var body = AcDream.Core.Net.Messages.InteractRequests.BuildPickUp(