fix(ui): port exact paperdoll body selection
Resolve and sample retail's authored nine-color paperdoll click map, preserve local click coordinates, and select the stable highest-priority worn item with the player fallback. Keep targeted-use body clicks routed to self and pin both synthetic and live-DAT conformance. Co-Authored-By: Codex <codex@openai.com>
This commit is contained in:
parent
2644d1d527
commit
0b74d19475
16 changed files with 490 additions and 32 deletions
|
|
@ -597,11 +597,13 @@ public sealed class RetailUiRuntime : IDisposable
|
|||
});
|
||||
|
||||
uint contents, sideBag, mainPack;
|
||||
PaperdollClickMap? paperdollClickMap;
|
||||
lock (_bindings.Assets.DatLock)
|
||||
{
|
||||
contents = ItemListCellTemplate.ResolveEmptySprite(_bindings.Assets.Dats, 0x21000021u, 0x100001C6u);
|
||||
sideBag = ItemListCellTemplate.ResolveEmptySprite(_bindings.Assets.Dats, 0x21000022u, 0x100001CAu);
|
||||
mainPack = ItemListCellTemplate.ResolveEmptySprite(_bindings.Assets.Dats, 0x21000022u, 0x100001C9u);
|
||||
paperdollClickMap = PaperdollClickMap.Load(_bindings.Assets.Dats);
|
||||
}
|
||||
|
||||
InventoryRuntimeBindings b = _bindings.Inventory;
|
||||
|
|
@ -618,7 +620,7 @@ public sealed class RetailUiRuntime : IDisposable
|
|||
StackSplitQuantity);
|
||||
PaperdollController paperdoll = PaperdollController.Bind(
|
||||
layout, b.Objects, b.PlayerGuid, b.ResolveIcon, b.Selection, b.SendWield,
|
||||
contents, _bindings.Assets.DefaultFont, b.ItemInteraction);
|
||||
contents, _bindings.Assets.DefaultFont, b.ItemInteraction, paperdollClickMap);
|
||||
Host.WindowManager.AttachController(
|
||||
WindowNames.Inventory,
|
||||
new RetainedPanelControllerGroup(inventory, paperdoll));
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue