acdream/src/AcDream.Runtime
Erik 581a61ef0c feat(chat): the talk-focus menu's Tell-to / Squelch entries actually work
Both entries were deliberate no-ops — the code said so — and both showed a
static label where retail shows the selected player's NAME.

Retail builds them in gmMainChatUI::InitTalkFocusMenu @0x004CDC50 and rebuilds
their labels every time the menu opens, substituting the selection through
StringInfo::AddVariable_String (@0x004CD91C / @0x004CD982). So they now read
"Tell to Dww" / "Squelch (ignore) Dww", rebuilt on open from a live selection
provider, and grey out with nothing selected — retail arms the tell slot only
for a talkable target (SetTalkFocusEnabled(2, 1) @0x004CD9B0).

Picking "Tell to X" aims the chat bar at X. That needed one piece of plumbing:
the parser's plain-speech fallthrough returned a null target, so a line typed
under a Tell focus was dropped by the router for having no one to send to.
Parse/Submit now carry an optional default tell target for exactly that case.

"Squelch X" publishes the ALREADY-REGISTERED /squelch verb rather than
reimplementing the request — the ModifyCharacterSquelch wire builder
(CM_Communication::Event_ModifyCharacterSquelch @0x006A42D0) has been there all
along; only the menu path to it was missing.

UiMenu gains an OnOpen seam, because a menu whose Items are fixed at Bind can
only ever say "Tell to Selected". It fires before _open flips so the rebuilt
rows are measured and drawn in the same opening.

Solution builds clean; 14,480 tests pass on the standard hermetic lane filter,
0 failures.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-21 06:23:46 +02:00
..
Chat feat(chat): the talk-focus menu's Tell-to / Squelch entries actually work 2026-08-21 06:23:46 +02:00
Entities fix(plugins): close LA5 ownership races 2026-08-14 19:28:14 +02:00
Gameplay test: replace campaign labels with behavior names 2026-08-18 12:25:00 +02:00
Physics fix(runtime): transient collision-seal failure no longer terminal for login (#357) 2026-08-09 12:32:53 +02:00
Session fix #417: world ambience kept playing at character select after the in-world logoff 2026-08-17 18:46:04 +02:00
World fix: retail text and golden-string tests must not follow the machine's locale 2026-08-19 19:56:09 +02:00
AcDream.Runtime.csproj feat(platform): Campaign LA LA0 — extract ApplicationPathSet to AcDream.Platform 2026-08-14 15:19:02 +02:00
GameRuntime.cs feat(ui): House tab ownership text — DisplayPurchaseTimeText + RuntimeHouseState 2026-08-17 03:38:16 +02:00
GameRuntimeActionViews.cs refactor(runtime): own combat and magic intent 2026-07-26 11:56:40 +02:00
GameRuntimeClock.cs feat(runtime): define borrowed views commands and ordered events 2026-07-25 19:08:42 +02:00
GameRuntimeCommands.cs feat(chargen): Campaign CC slice CC5 — Summary page, Finish flow, RandomizeCharacter port 2026-08-16 00:01:07 +02:00
GameRuntimeEventHub.cs feat(headless): complete deterministic bot command parity 2026-07-27 08:23:36 +02:00
GameRuntimeEvents.cs feat(runtime): FA2 -- RuntimeFellowshipState + RuntimeAllegianceState sibling J-owners 2026-08-12 01:31:54 +02:00
GameRuntimeGameplayViews.cs feat(runtime): FA4 -- fellowship roster enumeration + Social selection source 2026-08-12 04:40:19 +02:00
GameRuntimeViews.cs feat(app): Campaign CC slice CC4 — chargen screen shell + Heritage/Profession/Skills/Town pages 2026-08-15 17:45:51 +02:00
packages.linux-x64.lock.json build: make release restore reproducible 2026-08-18 10:29:00 +02:00
packages.neutral.lock.json build: make release restore reproducible 2026-08-18 10:29:00 +02:00
packages.win-x64.lock.json build: make release restore reproducible 2026-08-18 10:29:00 +02:00
RuntimeAssemblyMarker.cs arch(runtime): establish presentation-independent boundary 2026-07-25 17:33:11 +02:00
RuntimeGeneration.cs feat(runtime): define borrowed views commands and ordered events 2026-07-25 19:08:42 +02:00
RuntimeGenerationReset.cs feat(ui): House tab ownership text — DisplayPurchaseTimeText + RuntimeHouseState 2026-08-17 03:38:16 +02:00
RuntimeSimulationOwnership.cs feat: secure trade with other players - wire, RuntimeTradeState, the 2026-08-14 11:49:13 +02:00