- Timestamp:
- Aug 11, 2010, 8:55:13 AM (15 years ago)
- Location:
- code/trunk
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
code/trunk
- Property svn:mergeinfo changed
-
code/trunk/src/orxonox/controllers/ArtificialController.h
r6417 r7163 23 23 * Fabian 'x3n' Landau 24 24 * Co-authors: 25 * ...25 * Dominik Solenicki 26 26 * 27 27 */ … … 32 32 #include "OrxonoxPrereqs.h" 33 33 34 #include <vector> 35 34 36 #include "util/Math.h" 35 37 #include "Controller.h" 38 #include "controllers/NewHumanController.h" 36 39 37 40 namespace orxonox … … 43 46 virtual ~ArtificialController(); 44 47 48 virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode); 49 45 50 void abandonTarget(Pawn* target); 46 51 52 inline void setTeam(int team) 53 { this->team_ = team; } 54 inline int getTeam() const 55 { return this->team_; } 56 57 inline void setFormationFlight(bool formation) 58 { this->formationFlight_ = formation; } 59 inline bool getFormationFlight() const 60 { return this->formationFlight_; } 61 62 inline void setFormationSize(int size) 63 { this->maxFormationSize_ = size; } 64 inline int getFormationSize() const 65 { return this->maxFormationSize_; } 66 67 inline void setPassive(bool passive) 68 { this->passive_ = passive; } 69 inline bool getPassive() const 70 { return this->passive_; } 71 72 virtual void changedControllableEntity(); 73 74 static void formationflight(const bool form); 75 static void masteraction(const int action); 76 static void followme(); 77 static void passivebehaviour(const bool passive); 78 static void formationsize(const int size); 79 47 80 protected: 48 void targetDied(); 81 82 int team_; 83 bool formationFlight_; 84 bool passive_; 85 unsigned int maxFormationSize_; 86 int freedomCount_; 87 enum State {SLAVE, MASTER, FREE}; 88 State state_; 89 std::vector<ArtificialController*> slaves_; 90 ArtificialController *myMaster_; 91 enum SpecificMasterAction {NONE, HOLD, SPIN, TURN180, FOLLOW}; 92 SpecificMasterAction specificMasterAction_; 93 int specificMasterActionHoldCount_; 94 float speedCounter_; //for speed adjustment when following 49 95 50 96 void moveToPosition(const Vector3& target); 51 97 void moveToTargetPosition(); 98 99 void removeFromFormation(); 100 void unregisterSlave(); 101 void searchNewMaster(); 102 void commandSlaves(); 103 void setNewMasterWithinFormation(); 104 105 void freeSlaves(); 106 void forceFreeSlaves(); 107 void loseMasterState(); 108 void forceFreedom(); 109 bool forcedFree(); 110 111 void specificMasterActionHold(); 112 void turn180Init(); 113 void turn180(); 114 void spinInit(); 115 void spin(); 116 void followInit(Pawn* pawn, const bool always = false, const int secondsToFollow = 100); 117 void followRandomHumanInit(); 118 void follow(); 119 void followForSlaves(const Vector3& target); 52 120 53 121 void setTargetPosition(const Vector3& target); … … 61 129 bool isCloseAtTarget(float distance) const; 62 130 bool isLookingAtTarget(float angle) const; 131 132 void targetDied(); 63 133 64 134 static bool sameTeam(ControllableEntity* entity1, ControllableEntity* entity2, Gametype* gametype); // hack
Note: See TracChangeset
for help on using the changeset viewer.