fix(client): restore retail interaction parity
All checks were successful
CI / linux-portable (push) Successful in 3m27s
CI / windows-gate (push) Successful in 6m42s
CI / release (push) Successful in 2m12s

Harden keyboard and camera routing, inventory and vendor interactions, chat/emotes, relog portal flow, and paperdoll rendering. Add retail research, connected gate coverage, and release-gate validation.
This commit is contained in:
Erik 2026-08-26 20:45:11 +02:00
parent 0c699240e0
commit f6fe0f2a4f
151 changed files with 10162 additions and 1211 deletions

View file

@ -221,6 +221,13 @@ public sealed class KeyboardConfigLiveMountProbeTests
string[] keys =
{
"ID_ActionKeyMap_MapInstructions",
"ID_ActionKeyMap_Binding",
"ID_ActionKeyMap_ButtonLabel",
"ID_ActionKeyMap_NonUserBindableBinding",
"ID_ActionKeyMap_OverwriteExistingBinding",
"ID_ActionKeyMap_OverwriteExistingBindings",
"ID_ActionKeyMap_TT_ExistingBinding",
"ID_ActionKeyMap_TT_NewBinding",
"ID_KeyDescDelimiter",
"ID_KeyNameWithSubControl",
"ID_KeyMapCantOverwriteReadOnlyKeymap_Label",
@ -251,7 +258,11 @@ public sealed class KeyboardConfigLiveMountProbeTests
}
// Candidate variable-name hashes for the MapInstructions template slot.
foreach (string candidate in new[] { "ACTION", "NAME", "KEY", "SUBCONTROL", "PLAYER", "COMMAND" })
foreach (string candidate in new[]
{
"ACTION", "BINDINGS", "KEY", "LABEL", "VALUE",
"NAME", "SUBCONTROL", "PLAYER", "COMMAND",
})
Console.WriteLine(
$"[kbstr] hash('{candidate}') = 0x{DatStringResolver.ComputeHash(candidate):X8}");