Also, made sure we release the faultu dtNavMesh instance if we're not going to use it.
#jira UE-71027
#review-6676106 @Yoan.StAmant
#rb Yoan.StAmant
[CL 6676722 by Mieszko Zielinski in Dev-Framework branch]
The bug resulted from us using a strange extent ({Radius,Radius,Radius}) when projecting the initial location to navmesh. I've used a lot more reasonable DefaultQueryExtent for this purpose with Z being set to BIG_NUMBER. When a big Radius value was used the underlying recast code was expected to query a lot of polygons, but there's a hard limit of 128 polygons to process in multiple places in Recast lib (for performance reasons). These two facts combined resulted in finding awkward query starting point when using large Radius. The new approach first projects the query origin 'down' taking advantage of the assumption that the querier location is (more or less) on navmesh, since the whole query is about reachable locations.
#jira UE-66058
#review-6665296 @Yoan.StAmant
#rb Yoan.StAmant
[CL 6674755 by Mieszko Zielinski in Dev-Framework branch]
It wasn't virtual pre-4.23 and was added to accomodate on of the internal project's requirements. I've refactored the project-specific code to not need it.
This change is required in support of the soon-to-come navigation system refactor/extension.
#jira none
#review-6618928 @Yoan.StAmant
#rb Yoan.StAmant
[CL 6628443 by Mieszko Zielinski in Dev-Framework branch]
Removed UNavigationSystemV1::ConditionalPopulateNavOctreeActor has been added to allow one of the internal project filter out some actors being added to nav octree. I'm removing this function before it ships with 4.23. I've replaced the function with UNavigationSystemV1::AddLevelToOctree that gets called in the same circumstances but a bit "higher level" - it's operating on the whole ULevel rather than individual actors, which ends up being more efficient.
#rb none
#jira none
[CL 6604304 by Mieszko Zielinski in Dev-Framework branch]
While at it had to mess around with RegastNavMeshGenerator's initialization - the old way in some cases resulted in overriding once configured properties or needless dtNavMesh instance recreation.
In the process I've removed the Generator->Init() call from ARecastNavMesh::ConditionalConstructGenerator since now we call Init as part of generator's construction.
#jira UE-74448
#review-6533131 Yoan.StAmant
#rb Yoan.StAmant
[CL 6604191 by Mieszko Zielinski in Dev-Framework branch]
Added virtual method INavLinkCustomInterface::GetSupportedAgents to allow derived classes to provide their supported agents when a NavigationLink is created by INavLinkCustomInterface::GetModifier.
Added property SupportedAgents to NavLinkCustomComponent and override GetSupportedAgents to forward the filter to the NavigationLink.
#jira UE-74364
#review-6523922 @mieszko.zielinski
#rb mieszko.zielinski
[CL 6533612 by Yoan StAmant in Dev-Framework branch]
I was able to fix a NavigationSystemBase case because it only needed a soft ref, but the Pawn needs a hard ref to AIController so AIController must be loaded before Pawn's CDO gets initialized
The AISupportModule now has a hard reference to an AI module symbol, this causes that module to get loaded very early, but the StarutpModule happens at the same time it used to, fairly late in startup
#codereview mieszko.zielinski
#rb gil.gribb
[CL 6317743 by Ben Zeigler in Dev-Framework branch]
Add support for MODULE_VTABLE for exposing the VTable (Also optionally if enabled RTTI) info for a given type for clang (Linux/Mac)
Rename command line arg bHideSymbolsByDefault to bPublicSymbolsByDefault, as well as now add support for setting this change the BuildConfiguration.xml file
Started from Github PR #3351 though a different way to go about it
#jira UE-42635
#rb Arciel.Rekman, Steve.Robb, Ben.Marsh, Michael.Trepka
#fyi Chris.Bunner, Chris.Gagnon
[CL 4923631 by Brandon Schaefer in Dev-Editor branch]