fix(interaction): restore retail loot placement and world-drop projection

This commit is contained in:
Erik 2026-07-27 00:03:15 +02:00
parent 4d095be286
commit 921712f412
24 changed files with 1581 additions and 34 deletions

View file

@ -993,7 +993,13 @@ public sealed class EquippedChildRenderController : IDisposable
private void OnObjectMoved(ClientObjectMove move)
{
if (move.Current.EquipLocation == EquipMask.None)
// ServerSaysMoveItem publishes both complete placements. Only an
// equipped -> unequipped transition retires an attached paperdoll
// projection. InventoryPutObjectIn3D also has EquipLocation=None, but
// it is a world-entry confirmation and must never withdraw a Position
// projection that arrived just before the F019A event.
if (move.Previous.EquipLocation != EquipMask.None
&& move.Current.EquipLocation == EquipMask.None)
BeginDetachedRemoval(move.ItemId);
}