fix(combat): synchronize auto-target presentation
Make the retained toolbar consume retail's payload-free selection notice from canonical live state so a reentrant Auto Target replacement cannot be erased by the outer clear. Restrict automatic acquisition to the requested hostile non-player monster policy and record the intentional PK edge divergence. Co-Authored-By: Codex <codex@openai.com>
This commit is contained in:
parent
8be933fc94
commit
0f2d98c501
11 changed files with 225 additions and 7 deletions
|
|
@ -437,7 +437,16 @@ public sealed class SelectedObjectController : IRetainedPanelController
|
|||
}
|
||||
|
||||
private void OnSelectionTransition(SelectionTransition transition)
|
||||
=> ApplySelection(transition.SelectedObjectId);
|
||||
{
|
||||
// Retail's CM_UI::SendNotice_SelectionChanged (0x00479F50) carries no
|
||||
// selected-id payload. gmToolbarUI::HandleSelectionChanged therefore
|
||||
// reads the live ACCWeenieObject::selectedID when its notice handler
|
||||
// runs. This matters when an earlier handler (ClientCombatSystem::
|
||||
// AutoTarget) selects a replacement reentrantly: the outer "cleared"
|
||||
// notice must render that replacement, not stale transition data.
|
||||
_ = transition;
|
||||
ApplySelection(_selection.SelectedObjectId);
|
||||
}
|
||||
|
||||
public void Dispose()
|
||||
{
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue