backport: nodes flooder (analyzer) from cs-ebot
analyze: allow to disable goal marking analyze: add cvars descriptions and bounds nav: added optional post path smoothing for astar algorithm nav: now bots will use Dijkstra algo instead of floyd-warshall if memory usage too high (controlled via yb_path_floyd_memory_limit cvar) (fixes #434) nav: vistable are now calculated every frame to prevent game-freeze during loading the game (fixes #434) graph: pracrice reworked to hash table so memory footprint is as low as possible (at cost 5-10% performance loss on practice) (fixes #434) control: bots commands now is case-insensitive bot: major refactoring of bot's code nav: issue warnings about path fail only with debug practice: check for visibility when updating danger index analyzer: suspend any analyzing on change level control: add kickall_ct/kickall_t nav: increase blocked distance in stuck check
This commit is contained in:
parent
bb2e93a539
commit
e7712a551a
31 changed files with 3114 additions and 1722 deletions
61
inc/vistable.h
Normal file
61
inc/vistable.h
Normal file
|
|
@ -0,0 +1,61 @@
|
|||
//
|
||||
// YaPB - Counter-Strike Bot based on PODBot by Markus Klinge.
|
||||
// Copyright © 2004-2023 YaPB Project <yapb@jeefo.net>.
|
||||
//
|
||||
// SPDX-License-Identifier: MIT
|
||||
//
|
||||
|
||||
#pragma once
|
||||
|
||||
// limits for storing practice data
|
||||
CR_DECLARE_SCOPED_ENUM_TYPE (VisIndex, int32_t,
|
||||
None = 0,
|
||||
Stand = 1,
|
||||
Crouch = 2,
|
||||
Any = Stand | Crouch
|
||||
)
|
||||
|
||||
// defines visibility count
|
||||
struct PathVis {
|
||||
uint16_t stand, crouch;
|
||||
};
|
||||
|
||||
class GraphVistable final : public Singleton <GraphVistable> {
|
||||
public:
|
||||
using VisStorage = uint8_t;
|
||||
|
||||
private:
|
||||
SmallArray <VisStorage> m_vistable {};
|
||||
bool m_rebuild {};
|
||||
int m_length {};
|
||||
|
||||
int m_curIndex {};
|
||||
int m_sliceIndex {};
|
||||
|
||||
float m_notifyMsgTimestamp {};
|
||||
|
||||
public:
|
||||
GraphVistable () = default;
|
||||
~GraphVistable () = default;
|
||||
|
||||
public:
|
||||
bool visible (int srcIndex, int destIndex, VisIndex vis = VisIndex::Any);
|
||||
|
||||
void load ();
|
||||
void save ();
|
||||
void rebuild ();
|
||||
|
||||
public:
|
||||
|
||||
// triggers re-check for all the nodes
|
||||
void startRebuild ();
|
||||
|
||||
// ready to use ?
|
||||
bool isReady () const {
|
||||
return !m_rebuild;
|
||||
}
|
||||
};
|
||||
|
||||
// explose global
|
||||
CR_EXPOSE_GLOBAL_SINGLETON (GraphVistable, vistab);
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue