bot: implemented asynchronous pathfinding

nav: floyd-warshall matrices and practice updates are done asynchronously by now
add: yb_threadpool_workers cvar, that controls number of worker threads bot will use
add: cv_autovacate_keep_slots, the amount of slots to keep by auto vacate
aim: enemy prediction is now done asynchronously by now
bot: minor fixes and refactoring, including analyze suspend mistake (ref #441)

note: the master builds are now NOT production ready, please test before installing on real servers!
This commit is contained in:
jeefo 2023-05-06 20:14:03 +03:00
commit a616f25b1a
No known key found for this signature in database
GPG key ID: 927BCA0779BEA8ED
30 changed files with 743 additions and 421 deletions

View file

@ -126,6 +126,7 @@ void GraphAnalyze::suspend () {
m_updateInterval = 0.0f;
m_isAnalyzing = false;
m_isAnalyzed = false;
m_basicsCreated = false;
}
void GraphAnalyze::finish () {
@ -144,7 +145,7 @@ void GraphAnalyze::finish () {
ctrl.msg ("Complete map analyzation.");
// autosave bots graph
// auto save bots graph
if (cv_graph_analyze_auto_save.bool_ ()) {
if (!graph.saveGraphData ()) {
ctrl.msg ("Can't save analyzed graph. Internal error.");
@ -170,7 +171,7 @@ void GraphAnalyze::optimize () {
}
cleanup ();
// clear the uselss connections
// clear the useless connections
if (cv_graph_analyze_clean_paths_on_finish.bool_ ()) {
for (auto i = 0; i < graph.length (); ++i) {
graph.clearConnections (i);