1616#include " always.h"
1717#include " statemachine.h"
1818
19+ enum AIStateType
20+ {
21+ AI_IDLE = 0 ,
22+ AI_MOVE_TO = 1 ,
23+ AI_FOLLOW_WAYPOINT_PATH_AS_TEAM = 2 ,
24+ AI_FOLLOW_WAYPOINT_PATH_AS_INDIVIDUALS = 3 ,
25+ AI_FOLLOW_WAYPOINT_PATH_EXACT_AS_TEAM = 4 ,
26+ AI_FOLLOW_WAYPOINT_PATH_EXACT_AS_INDIVIDUALS = 5 ,
27+ AI_FOLLOW_PATH = 6 ,
28+ AI_FOLLOW_EXITPRODUCTION_PATH = 7 ,
29+ AI_WAIT = 8 ,
30+ AI_ATTACK_POSITION = 9 ,
31+ AI_ATTACK_OBJECT = 10 ,
32+ AI_FORCE_ATTACK_OBJECT = 11 ,
33+ AI_ATTACK_AND_FOLLOW_OBJECT = 12 ,
34+ AI_DEAD = 13 ,
35+ AI_DOCK = 14 ,
36+ AI_ENTER = 15 ,
37+ AI_GUARD = 16 ,
38+ AI_HUNT = 17 ,
39+ AI_WANDER = 18 ,
40+ AI_PANIC = 19 ,
41+ AI_ATTACK_SQUAD = 20 ,
42+ AI_GUARD_TUNNEL_NETWORK = 21 ,
43+ AI_MOVE_OUT_OF_THE_WAY = 23 ,
44+ AI_MOVE_AND_TIGHTEN = 24 ,
45+ AI_MOVE_AND_EVACUATE = 25 ,
46+ AI_MOVE_AND_EVACUATE_AND_EXIT = 26 ,
47+ AI_MOVE_AND_DELETE = 27 ,
48+ AI_ATTACK_AREA = 28 ,
49+ AI_ATTACK_MOVE_TO = 30 ,
50+ AI_ATTACKFOLLOW_WAYPOINT_PATH_AS_INDIVIDUALS = 31 ,
51+ AI_ATTACKFOLLOW_WAYPOINT_PATH_AS_TEAM = 32 ,
52+ AI_FACE_POSITION = 33 ,
53+ AI_FACE_OBJECT = 34 ,
54+ AI_RAPPEL = 35 ,
55+ AI_EXIT = 37 ,
56+ AI_PICK_UP_CRATE = 38 ,
57+ AI_MOVE_AWAY_FROM_REPULSORS = 39 ,
58+ AI_WANDER_IN_PLACE = 40 ,
59+ AI_BUSY = 41 ,
60+ AI_EXIT_INSTANTLY = 42 ,
61+ AI_GUARD_RETALIATE = 43 ,
62+ NUM_AI_STATES = 44 ,
63+ };
64+
1965class Squad ;
2066
2167class AIStateMachine : public StateMachine
@@ -32,6 +78,9 @@ class AIStateMachine : public StateMachine
3278 virtual Utf8String Get_Current_State_Name () override ;
3379#endif
3480
81+ int Get_Goal_Path_Count () const { return m_goalPath.size (); }
82+ const Coord3D *Get_Goal_Path_Position (int i) const ;
83+
3584private:
3685 std::vector<Coord3D> m_goalPath;
3786 Waypoint *m_goalWaypoint;
0 commit comments