feat(ui): finish retail toolbar controls

Discover all seven panel launchers from their DAT panel-id attributes, route mounted panels through event-driven retained window state, and ghost unavailable panels. Port Use and Examine selection/target behavior with exact Appraise dispatch and retail cursor modes.

Co-Authored-By: Codex <codex@openai.com>
This commit is contained in:
Erik 2026-07-11 12:11:53 +02:00
parent 21fefce0e0
commit d3d1c895a0
19 changed files with 478 additions and 72 deletions

View file

@ -168,4 +168,16 @@ public sealed class WorldSessionCombatTests
InteractRequests.BuildUseWithTarget(1, 0x50000A01u, 0x50000001u),
captured);
}
[Fact]
public void SendAppraise_UsesRetailBuilder()
{
using var session = NewSession();
byte[]? captured = null;
session.GameActionCapture = body => captured = body;
session.SendAppraise(0x5000000Au);
Assert.Equal(AppraiseRequest.Build(1u, 0x5000000Au), captured);
}
}