mirror of
https://github.com/DarkflameUniverse/DarkflameServer.git
synced 2026-10-15 09:04:10 +00:00
Converts ActivityEnter, ActivityExit, ActivityStart, ActivityStop,
ActivityPause, StartActivityTime, RequestActivityEnter,
RequestActivityExit and ShowActivityCountdown to NetGameMsgs in
ActivityMessages.{h,cpp}, switches their callers (racing, shooting
gallery, survival, waves, AG course, NT combat challenge) and deletes
the old GameMessages::Send* / HandleRequestActivityExit functions.
REQUEST_ACTIVITY_EXIT is registered in GameMessageHandler's map.
No wire change. Verified by comparing every struct byte for byte with a
frozen verbatim copy of the old functions (tests/.../Legacy) over a
grid of inputs, both to one client and as a broadcast (a temporary test
proved the copy matched production before it was deleted), plus hand
computed golden bytes, round trips and a deliberate field mutation that
made the tests fail. Layouts confirmed against the 1.10.64 client in
Ghidra. Only difference: a broadcast no longer makes
the extra Send(UNASSIGNED, false) that RakNet already rejected.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
25 lines
1.0 KiB
CMake
25 lines
1.0 KiB
CMake
set(DGAME_DGAMEMESSAGES_SOURCES
|
|
"ActivityMessages.cpp"
|
|
"GameMessageHandler.cpp"
|
|
"GameMessages.cpp"
|
|
"PropertyDataMessage.cpp"
|
|
"PropertySelectQueryProperty.cpp")
|
|
|
|
add_library(dGameMessages OBJECT ${DGAME_DGAMEMESSAGES_SOURCES})
|
|
target_link_libraries(dGameMessages
|
|
PUBLIC dDatabase
|
|
INTERFACE dGameBase # TradingManager
|
|
)
|
|
target_include_directories(dGameMessages PUBLIC "."
|
|
PRIVATE
|
|
"${PROJECT_SOURCE_DIR}/dGame/dComponents" # direct MissionComponent.h
|
|
"${PROJECT_SOURCE_DIR}/dGame/dUtilities" # direct SlashCommandHandler.h
|
|
"${PROJECT_SOURCE_DIR}/dGame/dPropertyBehaviors" # direct ControlBehaviors.h
|
|
"${PROJECT_SOURCE_DIR}/dGame/dMission" # via MissionComponent.h
|
|
"${PROJECT_SOURCE_DIR}/dGame/dBehaviors" # via InventoryComponent.h
|
|
"${PROJECT_SOURCE_DIR}/dGame/dInventory" # via InventoryComponent.h
|
|
"${PROJECT_SOURCE_DIR}/dGame/dEntity" # via dZoneManager/Spawner.h
|
|
"${PROJECT_SOURCE_DIR}/dZoneManager" # via GameMessages.cpp, GameMessageHandler.cpp
|
|
)
|
|
target_precompile_headers(dGameMessages REUSE_FROM dGameBase)
|