acdream/src
Erik a33e897400 perf(D.5.4): toolbar re-binds only on shortcut-guid object changes; clear on remove
Now that the object table holds ALL entities (creatures, NPCs, world objects),
filtering ObjectAdded/Updated/Removed to the 18 shortcut guids prevents the bar
from thrashing on every creature spawn in a busy zone.

Also subscribes to ObjectRemoved so a despawned/traded-away item clears its slot
(matching retail gmToolbarUI::SetDelayedShortcutNum's deferred-bind contract).

Four new unit tests (iconIds spy pattern) verify: non-shortcut ObjectAdded/Removed
do NOT invoke Populate; shortcut ObjectAdded deferred-binds; shortcut ObjectRemoved
clears the slot. 2671 tests, 4 skipped, 0 failures.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-18 16:57:04 +02:00
..
AcDream.App perf(D.5.4): toolbar re-binds only on shortcut-guid object changes; clear on remove 2026-06-18 16:57:04 +02:00
AcDream.Cli chore(cli): dump-font-atlas tool for headless font inspection 2026-06-16 15:24:37 +02:00
AcDream.Core refactor(D.5.4): delete EnrichItem (superseded by Ingest merge-upsert) 2026-06-18 16:42:58 +02:00
AcDream.Core.Net feat(D.5.4): PlayerDescription = membership manifest; drop WeenieClassId=ContainerType misuse 2026-06-18 16:38:54 +02:00
AcDream.Plugin.Abstractions feat(D.2b): IUiRegistry plugin UI surface + buffered drain into UiHost 2026-06-14 17:46:37 +02:00
AcDream.Plugins.Smoke feat(app): wire IGameState+IEvents into Program and SmokePlugin 2026-04-10 20:31:50 +02:00
AcDream.UI.Abstractions feat(D.2b): write-mode movement gate that preserves autorun 2026-06-16 15:24:19 +02:00
AcDream.UI.ImGui fix(ui): scope title-bar-only-drag absorber to BeginChild — Settings tabs work 2026-04-26 23:04:10 +02:00