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

@ -27,6 +27,22 @@ public sealed class ServerMessageTests
Assert.Equal(5u, parsed.Value.ChatType);
}
[Fact]
public void TryParse_PreservesEmbeddedCommandResponseNewlines()
{
const string text = "@acecommands\n@help\n@teleport";
byte[] msg = PackString16L(text);
byte[] body = new byte[4 + msg.Length + 4];
BinaryPrimitives.WriteUInt32LittleEndian(body, ServerMessage.Opcode);
Array.Copy(msg, 0, body, 4, msg.Length);
BinaryPrimitives.WriteUInt32LittleEndian(body.AsSpan(4 + msg.Length), 0u);
ServerMessage.Parsed parsed = Assert.IsType<ServerMessage.Parsed>(
ServerMessage.TryParse(body));
Assert.Equal(text, parsed.Message);
}
[Fact]
public void TryParse_WrongOpcode_ReturnsNull()
{