mirror of
https://github.com/DarkflameUniverse/DarkflameServer.git
synced 2026-10-27 06:57:15 +00:00
THIS CHANGES THE BYTES SENT TO THE CLIENT (intentionally). UnSmash::Serialize wrote the "duration != 3.0f" flag but guarded the value with "builderID != 3.0f" (a typo), so the 32-bit duration was always written, even after a 0 flag. The LEGO Universe 1.10.64 client (GameMessage::UnSmash::Serialize/Deserialize @ 00dc0e80/00dc0f50, default 3.0f @ 017e66b4) writes it only when duration != 3.0f. The client read the flag and ignored the trailing 32 bits, so this removes 4 junk bytes from default UnSmash messages; messages with a non-default duration are unchanged. Uses WriteOptional/ReadOptional and adds Deserialize. Verified with hand computed golden bits for every flag combination and round trips. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
18 lines
625 B
CMake
18 lines
625 B
CMake
SET(DGAMEMESSAGES_TESTS
|
|
"GameMessageTests.cpp"
|
|
"GameMsgSplitTests.cpp"
|
|
"UnSmashTests.cpp"
|
|
"LegacyGameMessageTests.cpp")
|
|
|
|
# Get the folder name and prepend it to the files above
|
|
get_filename_component(thisFolderName ${CMAKE_CURRENT_SOURCE_DIR} NAME)
|
|
list(TRANSFORM DGAMEMESSAGES_TESTS PREPEND "${thisFolderName}/")
|
|
|
|
# Copy test files to testing directory
|
|
add_subdirectory(TestBitStreams)
|
|
list(TRANSFORM GAMEMESSAGE_TESTBITSTREAMS PREPEND "${thisFolderName}/")
|
|
set(GAMEMESSAGE_TESTBITSTREAMS ${GAMEMESSAGE_TESTBITSTREAMS} PARENT_SCOPE)
|
|
|
|
# Export to parent scope
|
|
set(DGAMEMESSAGES_TESTS ${DGAMEMESSAGES_TESTS} PARENT_SCOPE)
|