CMSG_EMOTE / CMSG_SEND_TEXT_EMOTE are a simplified runtime; they do not reproduce C++ validation, scripts, achievement criteria, EmotesText DB2 lookup, or range.
C++: Handlers/ChatHandler.cpp (HandleTextEmote), Player.cpp emote path, EmotesText.db2.
From the C#-vs-C++ reference audit (local docs/audits/csharp-reference-contrast.md). Plan: docs/migration/PORT_PLAN.md (L26) · State: docs/migration/STATE.md.
Done = contrast Rust vs the cited C++; if it matches, re-anchor the comment to C++ file:line; if it differs, fix behavior to C++. Live + capture-clean. 1 issue = 1 PR.
CMSG_EMOTE / CMSG_SEND_TEXT_EMOTE are a simplified runtime; they do not reproduce C++ validation, scripts, achievement criteria, EmotesText DB2 lookup, or range.
C++: Handlers/ChatHandler.cpp (HandleTextEmote), Player.cpp emote path, EmotesText.db2.
From the C#-vs-C++ reference audit (local docs/audits/csharp-reference-contrast.md). Plan: docs/migration/PORT_PLAN.md (L26) · State: docs/migration/STATE.md.
Done = contrast Rust vs the cited C++; if it matches, re-anchor the comment to C++ file:line; if it differs, fix behavior to C++. Live + capture-clean. 1 issue = 1 PR.