fix: vehicle class exclusion broken when kindOf list is empty#81
Conversation
… is empty The `_vic` variable (reference to the vehicle being checked) was declared inside the `excludeKindFromRecord` conditional block. When that setting was empty, the block never executed, leaving `_vic` undefined. The subsequent `excludeClassFromRecord` check silently failed because `typeOf nil` returns "" which never matches any class name. This caused ACE_friesAnchorBar entities (and any other class-excluded vehicles) to be recorded despite being in the exclusion list, resulting in phantom black helicopter icons overlapping real helicopters in playback. Also sync the excludeClassFromRecord default value to include WeaponHolderSimulated as the setting description already documents.
Summary of ChangesHello @fank, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed! This pull request addresses a critical bug in the vehicle recording exclusion logic that could lead to unintended entities appearing in recordings. By correcting a variable scoping issue and updating a default exclusion list, it ensures that unwanted objects are properly filtered, improving the accuracy and clarity of recorded data. Highlights
Changelog
Activity
Using Gemini Code AssistThe full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips. Invoking Gemini You can request assistance from Gemini at any point by creating a comment using either
Customization To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a Limitations & Feedback Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here. You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension. Footnotes
|
There was a problem hiding this comment.
Code Review
This pull request correctly fixes a variable scoping bug in fnc_captureLoop.sqf that caused vehicle exclusion logic to fail silently. Additionally, it synchronizes a default setting value with its description in XEH_preInit.sqf. The changes are accurate and effectively resolve the issue. I have added one suggestion to improve performance within the capture loop, which is a critical part of the addon.
Avoid calling parseSimpleArray twice per setting (once for the emptiness check, once for forEach) on every vehicle every frame.
Summary
fnc_captureLoop.sqf: the_vicvariable (vehicle reference) was declared inside theexcludeKindFromRecordconditional block. When that setting was empty,_vicwas never set, causing theexcludeClassFromRecordcheck to silently fail —typeOf nilreturns""which never matches any class name.excludeClassFromRecordto includeWeaponHolderSimulatedas the setting description already documents.Context
Reported as black helicopter icons overlapping real helicopters in OCAP playback. The phantom icons are
ACE_friesAnchorBarentities (ACE3 fast-rope attachment points) that should have been filtered byexcludeClassFromRecordbut weren't, because the server had cleared theexcludeKindFromRecordsetting.Test plan
excludeKindFromRecordset to[](empty) thatACE_friesAnchorBarentities are still excluded