refactor: remove the packet macros, WriteHeader and PacketUtils

Nothing in the server writes or reads a packet by hand any more, so the
helpers for doing so go:
- CBITSTREAM, CMSGHEADER, CINSTREAM, CINSTREAM_SKIP_HEADER, SEND_PACKET,
  SEND_PACKET_BROADCAST and HEADER_SIZE leave dCommonVars.h;
- the free BitStreamUtils::WriteHeader (LUBitStream::WriteHeader writes the
  same bytes) and the unused PacketUtils::SavePacket are deleted.
The last raw reads are replaced: WorldServer builds its input stream
directly, the master packet logs read the header with
LUBitStream::ReadHeader instead of peeking at packet->data[1] and [3], and
MessageInspector reads a sent game message's header with the new
NetGameMsg::ReadPacketHeader (the counterpart of WritePacket) instead of
memcmp/memcpy. packet->data[0] is still compared with RakNet's own
connection IDs.

The frozen oracles keep using the macros verbatim through the test-only
tests/dGameTests/LegacyPacketMacros.h; the HeaderSkip tests, which only
tested CINSTREAM_SKIP_HEADER, are removed.

docs/PacketArchitecture.md: "where we are" now describes the final state
and what still touches raw bytes (RakNet IDs, replica headers, behavior bit
streams), and a new section collects the known wire discrepancies found
during the conversion, with client addresses.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Aaron Kimbrell
2026-09-27 00:59:12 -05:00
parent b2a1e9e0b8
commit 542f0a89f0
34 changed files with 154 additions and 100 deletions

View File

@@ -3,7 +3,7 @@
#include "dCommonVars.h"
TEST(LUString33Test, SerializeWriteTestOld) {
CBITSTREAM;
RakNet::BitStream bitStream;
std::string testString;
for (int i = 0; i < 33; i++) testString += "a";
for (const auto& c : testString) bitStream.Write(c);
@@ -14,7 +14,7 @@ TEST(LUString33Test, SerializeWriteTestOld) {
}
TEST(LUString33Test, SerializeWriteTestOldPartial) {
CBITSTREAM;
RakNet::BitStream bitStream;
std::string testString;
for (int i = 0; i < 15; i++) testString += "a";
for (const auto& c : testString) bitStream.Write(c);
@@ -34,7 +34,7 @@ TEST(LUString33Test, SerializeWriteTestOldPartial) {
}
TEST(LUString33Test, SerializeWriteTestNew) {
CBITSTREAM;
RakNet::BitStream bitStream;
std::string testString;
for (int i = 0; i < 33; i++) testString += "a";
bitStream.Write(LUString(testString, 33));
@@ -45,7 +45,7 @@ TEST(LUString33Test, SerializeWriteTestNew) {
}
TEST(LUString33Test, SerializeWriteTestNewPartial) {
CBITSTREAM;
RakNet::BitStream bitStream;
std::string testString;
for (int i = 0; i < 15; i++) testString += "a";
bitStream.Write(LUString(testString, 33));
@@ -64,7 +64,7 @@ TEST(LUString33Test, SerializeWriteTestNewPartial) {
}
TEST(LUString33Test, SerializeReadTestOld) {
CBITSTREAM;
RakNet::BitStream bitStream;
std::string testString;
for (int i = 0; i < 33; i++) testString += "a";
for (const auto& c : testString) bitStream.Write(c);
@@ -76,7 +76,7 @@ TEST(LUString33Test, SerializeReadTestOld) {
}
TEST(LUString33Test, SerializeReadTestOldPartial) {
CBITSTREAM;
RakNet::BitStream bitStream;
std::string testString;
for (int i = 0; i < 15; i++) testString += "a";
for (const auto& c : testString) bitStream.Write(c);
@@ -97,7 +97,7 @@ TEST(LUString33Test, SerializeReadTestOldPartial) {
}
TEST(LUString33Test, SerializeReadTestNew) {
CBITSTREAM;
RakNet::BitStream bitStream;
std::string testString;
for (int i = 0; i < 33; i++) testString += "a";
bitStream.Write(LUString(testString, 33));
@@ -109,7 +109,7 @@ TEST(LUString33Test, SerializeReadTestNew) {
}
TEST(LUString33Test, SerializeReadTestNewPartial) {
CBITSTREAM;
RakNet::BitStream bitStream;
std::string testString;
for (int i = 0; i < 15; i++) testString += "a";
bitStream.Write(LUString(testString, 33));