mirror of
https://github.com/DarkflameUniverse/DarkflameServer.git
synced 2026-10-02 10:53:44 +00:00
Live DropClientLoot (12,501 decoded): use_position is set only when a player is the source (1,432, all activity rewards such as the dragon, Frakjaw and BONS chests); drops from enemies, smashables and chests leave it clear, so the client spawns the loot at the source object as it sees it and falls back to spawn_position only if that object is gone (LWODestroyableComponent::GetLootSpawnPos). Coins land where they spawn (final = spawn in all 3,158 coin drops); items land 10 units away (median 9.998, uniform direction) at spawn height. DLU always set use_position and scattered everything 4.2 units away. Inferred: the 10-unit rule for player-sourced items (live spread there ranges 0-58 units, source unknown). Check: kill enemies and smash crates: coins pop out of the object, items fly about 10 units away; open an activity chest (e.g. after a dragon or Frakjaw) and the loot still appears around you. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
55 lines
1.8 KiB
CMake
55 lines
1.8 KiB
CMake
set(DGAMETEST_SOURCES
|
|
"GameDependencies.cpp"
|
|
"LUBitStreamTests.cpp"
|
|
"MailIdPinTests.cpp"
|
|
"EconomyLedgerTests.cpp"
|
|
"PlayerReportsLimitTests.cpp"
|
|
"SlashCommandPermissionTests.cpp"
|
|
"StaleSaveGuardTests.cpp"
|
|
"ContrabandTests.cpp"
|
|
"KnockbackTests.cpp"
|
|
"CollisionFilterTests.cpp"
|
|
"ItemSetPassiveAbilityTests.cpp"
|
|
"PowerUpStatisticTests.cpp"
|
|
"PlayerStatisticTests.cpp"
|
|
"BrickByBrickTests.cpp"
|
|
"PropertyBuildersTests.cpp"
|
|
"ModularBuildTableTests.cpp"
|
|
"UgcManifestTests.cpp"
|
|
"SceneGhostingTests.cpp"
|
|
"HolidayEventsTests.cpp"
|
|
"SetCurrencySourceTests.cpp"
|
|
"LootDropPositionTests.cpp"
|
|
)
|
|
|
|
add_subdirectory(dComponentsTests)
|
|
list(APPEND DGAMETEST_SOURCES ${DCOMPONENTS_TESTS})
|
|
|
|
add_subdirectory(dGameMessagesTests)
|
|
list(APPEND DGAMETEST_SOURCES ${DGAMEMESSAGES_TESTS})
|
|
|
|
add_subdirectory(dNetTests)
|
|
list(APPEND DGAMETEST_SOURCES ${DNET_TESTS})
|
|
|
|
file(COPY ${GAMEMESSAGE_TESTBITSTREAMS} DESTINATION ${CMAKE_CURRENT_BINARY_DIR})
|
|
file(COPY ${COMPONENT_TEST_DATA} DESTINATION ${CMAKE_CURRENT_BINARY_DIR})
|
|
|
|
# Add the executable. Remember to add all tests above this!
|
|
add_executable(dGameTests ${DGAMETEST_SOURCES})
|
|
target_include_directories(dGameTests PRIVATE "." "${PROJECT_SOURCE_DIR}/dChatServer" "${PROJECT_SOURCE_DIR}/dScripts")
|
|
# Tests against the live CDClient look for it in the source tree's build folder
|
|
target_compile_definitions(dGameTests PRIVATE PROJECT_SOURCE_DIR="${PROJECT_SOURCE_DIR}")
|
|
|
|
if(APPLE)
|
|
add_custom_target(dGameTestsLink
|
|
${CMAKE_COMMAND} -E copy $<TARGET_FILE:MariaDB::ConnCpp> ${CMAKE_CURRENT_BINARY_DIR})
|
|
|
|
add_dependencies(dGameTests dGameTestsLink)
|
|
endif()
|
|
|
|
target_link_libraries(dGameTests ${COMMON_LIBRARIES} GTest::gtest_main
|
|
dGame dScripts dPhysics Detour Recast tinyxml2 dWorldServer dZoneManager dChatFilter dNavigation bcrypt MD5)
|
|
|
|
# Discover the tests
|
|
gtest_discover_tests(dGameTests)
|