mirror of
https://github.com/DarkflameUniverse/DarkflameServer.git
synced 2026-10-02 02:43:44 +00:00
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>
35 lines
1.1 KiB
CMake
35 lines
1.1 KiB
CMake
set(DNET_SOURCES "AuthPackets.cpp"
|
|
"CommonPackets.cpp"
|
|
"BitStreamUtils.cpp"
|
|
"ChatPackets.cpp"
|
|
"ClientPackets.cpp"
|
|
"dServer.cpp"
|
|
"MailInfo.cpp"
|
|
"MasterPackets.cpp"
|
|
"Stamps.cpp"
|
|
"WorldPackets.cpp"
|
|
"WorldRoutePacket.cpp"
|
|
"ZoneInstanceManager.cpp")
|
|
|
|
add_library(dNet STATIC ${DNET_SOURCES})
|
|
target_link_libraries(dNet PRIVATE bcrypt MD5 glm::glm)
|
|
target_include_directories(dNet PRIVATE
|
|
"${PROJECT_SOURCE_DIR}/dCommon"
|
|
"${PROJECT_SOURCE_DIR}/dCommon/dEnums"
|
|
|
|
"${PROJECT_SOURCE_DIR}/dZoneManager"
|
|
|
|
"${PROJECT_SOURCE_DIR}/dDatabase/CDClientDatabase"
|
|
"${PROJECT_SOURCE_DIR}/dDatabase/CDClientDatabase/CDClientTables"
|
|
"${PROJECT_SOURCE_DIR}/dDatabase/GameDatabase"
|
|
"${PROJECT_SOURCE_DIR}/dDatabase/GameDatabase/ITables"
|
|
|
|
"${PROJECT_SOURCE_DIR}/dGame" # UserManager.h
|
|
"${PROJECT_SOURCE_DIR}/dGame/dComponents"
|
|
"${PROJECT_SOURCE_DIR}/dGame/dEntity" # via dZoneManager
|
|
"${PROJECT_SOURCE_DIR}/dGame/dGameMessages" # GameMessages.h
|
|
"${PROJECT_SOURCE_DIR}/dGame/dInventory" # via PossessableComponent.h
|
|
"${PROJECT_SOURCE_DIR}/dGame/dUtilities" # via Item.h
|
|
"${PROJECT_SOURCE_DIR}/dScripts" # transitive through components
|
|
)
|