fix: include projectile events in v1 JSON export#77
Merged
Conversation
Grenades and smoke grenades were being captured via :PROJECTILE: command but not exported to JSON because the handler skipped memory backend storage and the v1 builder didn't include them. Changes: - Add ProjectileEventToFiredEvent converter to extract start/end positions from projectile trajectory LineStringZM geometry - Update handleProjectileEvent to record to memory backend by converting to FiredEvent format - Simplify framesFired format to [frameNum, [x, y, z]] to match old C++ extension and web frontend expectations The extended format with weapon/magazine/firingMode can be added in v2 when the web frontend supports it.
The :TIMESTAMP: command was only handled in RVExtension (simple format) but not in RVExtensionArgs (args format). When the addon called via the args format, it resulted in "no handler registered" errors.
Replace JSON parsing with direct SQF array format parsing for better performance. The new format uses: - Indexed array elements instead of JSON object keys - diag_tickTime instead of extension :TIMESTAMP: calls - Stringified nested arrays for positions and hitParts This aligns with the addon changes that eliminate the JSON encoding overhead and remove the :TIMESTAMP: extension calls.
f4acf19 to
46a5aa8
Compare
Merging this branch changes the coverage (2 decrease, 1 increase)
Coverage by fileChanged files (no unit tests)
Please note that the "Total", "Covered", and "Missed" counts above refer to code statements instead of lines of code. The value in brackets refers to the test coverage of that file in the old version of the code. Changed unit test files
|
Member
Author
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
framesFiredformat simplified to match old C++ extension:[frameNum, [x, y, z]]Problem
Projectile events (grenades, smokes, etc.) sent via
:PROJECTILE:command were:handleProjectileEventskipped memory backend storageSolution
ProjectileEventToFiredEventconverter to extract start/end positions from LineStringZM geometryhandleProjectileEventto record to memory backend when configuredframesFiredformat from extended format to simple[frameNum, [x, y, z]]Test plan