Account for static blockers in frontier reachability#1924
Account for static blockers in frontier reachability#1924DevOpsOfChaos wants to merge 5 commits into
Conversation
Head branch was pushed to by a user without write access
|
Just asking: Does this by chance also take into account, that objects can change (due to scripts) so an object that is static, could become env. Also not sure, pineapple trees are also static, are they? They can be passed though. |
Head branch was pushed to by a user without write access
5468f5f to
5b07479
Compare
Good point, I added a small regression test for that. Passable size-0 static objects and environment objects are still treated as passable. Only current static objects with actual blocking behavior affect this reachability check. No production code change in this follow-up, just test coverage. Validation:
|
Flamefire
left a comment
There was a problem hiding this comment.
Double checked and looks good. Just a few minor comments.
The first on is because it confused me to now have 3 classes:
PathConditionHuman, PathConditionReachable, PathConditionReachableWithStaticBlockers and why the code of this new one can't be in the existing one(s).
So this needs at least a comment
|
Addressed the remaining minor review comments. I added a short explanation for Validation:
|
Summary
Motivation
The
FRONTIER_DISTANCE_REACHABLEaddon previously checked terrain reachability only. This meant blocking static map objects, such as decorative objects used as permanent path blockers, could be ignored when determining whether enemy military buildings were reachable.This keeps the check intentionally narrow: it only treats blocking
Staticobjects as blockers and does not switch to full human pathing behavior.Validation
Test_integrationlocally with Visual Studio 2022 / DebugTest_integration.exe --run_test=FrontierDistanceSuite --report_level=shortFixes #979