fix(items): finish corpse pickup and combat switching
Port retail's first-slot ShowPendingInPlayer path for double-click loot and carry the current owned-container destination through deferred pickup. Retire the previous ground-container view as soon as a replacement is requested so its range close cannot cancel ACE's active MoveTo chain. Preserve active-combat weapon intent across ACE's authoritative wand-to-missile stance tail while leaving peace-mode switches unchanged. Release build succeeds and all 5,885 tests pass with five intentional skips. Co-authored-by: OpenAI Codex <codex@openai.com>
This commit is contained in:
parent
d51a0fc825
commit
0392c6d721
17 changed files with 631 additions and 81 deletions
|
|
@ -33,9 +33,11 @@ public sealed class ExternalContainerLifecycleController : IDisposable
|
|||
if (transition.PreviousContainerId != 0u)
|
||||
_objects.StopViewingContentsTree(transition.PreviousContainerId);
|
||||
|
||||
// Only replacement emits Event_NoLongerViewingContents. The authored
|
||||
// close/range path instead sends Use(root) and waits for event 0x0052.
|
||||
if (transition.Kind == ExternalContainerTransitionKind.Replaced
|
||||
// SetGroundObject(new, notifyServer:true) emits this while the new
|
||||
// request is still pending, not after ViewContents arrives. The
|
||||
// authored close/range path instead sends Use(root) and waits for
|
||||
// event 0x0052.
|
||||
if (transition.Kind == ExternalContainerTransitionKind.ReplacementRequested
|
||||
&& transition.PreviousContainerId != 0u)
|
||||
{
|
||||
_sendNoLongerViewingContents(transition.PreviousContainerId);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue