|
Orxonox
0.0.5 Codename: Arcturus
|
#include </home/jenkins/workspace/orxonox_doxygen_trunk/src/orxonox/controllers/FormationController.h>
Public Types | |
| enum | FormationMode { NORMAL, DEFEND, ATTACK } |
| Mode of the formation, behaviour of slaves Normal-normal behaviour Defend-just defend the master Attack-leave formation, attack every target. More... | |
Public Member Functions | |
| FormationController (Context *context) | |
| virtual | ~FormationController () |
| virtual void | changedControllableEntity () override |
| FormationController * | getController (void) |
| bool | getFormationFlight () const |
| FormationMode | getFormationMode () const |
| int | getFormationSize () const |
| FormationController * | getMaster (void) |
| bool | getPassive () const |
| FormationController * | getSlave (void) |
| virtual void | hit (Pawn *originator, btManifoldPoint &contactpoint, float damage) override |
| void | setFormationFlight (bool formation) |
| void | setFormationMode (FormationMode val) |
| Sets the new mode. More... | |
| void | setFormationSize (int size) |
| void | setNewMasterWithinFormation (FormationController *newMaster) |
| void | setPassive (bool passive) |
| virtual void | XMLPort (Element &xmlelement, XMLPort::Mode mode) override |
| XML loading and saving. More... | |
Public Member Functions inherited from orxonox::Controller | |
| Controller (Context *context) | |
| virtual | ~Controller () |
| ControllableEntity * | getControllableEntity () const |
| bool | getGodMode () |
| PlayerInfo * | getPlayer () const |
| int | getTeam () const |
| void | setControllableEntity (ControllableEntity *entity) |
| void | setGodMode (bool mode) |
| void | setPlayer (PlayerInfo *player) |
| void | setTeam (int team) |
Public Member Functions inherited from orxonox::BaseObject | |
| BaseObject (Context *context) | |
| Constructor: Registers the object in the BaseObject-list. More... | |
| virtual | ~BaseObject () |
| Destructor. More... | |
| void | addEventListener (BaseObject *listener) |
| Adds an object which listens to the events of this object. More... | |
| void | addEventSource (BaseObject *source, const std::string &state) |
| Adds a new event source for a specific state. More... | |
| void | addTemplate (const std::string &name) |
| Adds a Template to the object. More... | |
| void | addTemplate (Template *temp) |
| Adds a Template to the object. More... | |
| virtual void | changedActivity () |
| This function gets called if the activity of the object changes. More... | |
| virtual void | changedMainStateName () |
| This function gets called if the main state name of the object changes. More... | |
| virtual void | changedName () |
| This function gets called if the name of the object changes. More... | |
| virtual void | changedVisibility () |
| This function gets called if the visibility of the object changes. More... | |
| void | fireEvent (const std::string &name="") |
| Fires an event (without a state). More... | |
| void | fireEvent (bool activate, const std::string &name="") |
| Fires an event which activates or deactivates a state. More... | |
| void | fireEvent (bool activate, BaseObject *originator, const std::string &name="") |
| Fires an event which activates or deactivates a state with agiven originator (the object which triggered the event). More... | |
| void | fireEvent (Event &event) |
| Fires an event, using the Event struct. More... | |
| BaseObject * | getCreator () const |
| BaseObject * | getEventListener (unsigned int index) const |
| Returns an event listener with a given index. More... | |
| BaseObject * | getEventSource (unsigned int index, const std::string &state) const |
| Returns an eventsource with a given index. More... | |
| const XMLFile * | getFile () const |
| Returns a pointer to the XMLFile that loaded this object. More... | |
| const std::string & | getFilename () const |
| Returns the levelfile that loaded this object. More... | |
| Gametype * | getGametype () const |
| Level * | getLevel () const |
| const std::string & | getLoaderIndentation () const |
| Returns the indentation of the debug output in the Loader. More... | |
| const std::string & | getMainStateName () const |
| Returns the name of the main state. More... | |
| const std::string & | getName () const |
| Returns the name of the object. More... | |
| Namespace * | getNamespace () const |
| const std::string & | getOldName () const |
| Returns the old name of the object. More... | |
| Scene * | getScene () const |
| virtual uint32_t | getSceneID () const |
| const std::set< Template * > & | getTemplates () const |
| Returns the set of all aplied templates. More... | |
| const mbool & | isActive () const |
| Returns the state of the objects activity. More... | |
| bool | isInitialized () const |
| Returns if the object was initialized (passed the object registration). More... | |
| const mbool & | isVisible () const |
| Returns the state of the objects visibility. More... | |
| virtual void | processEvent (Event &event) |
| Processing an event by calling the right main state. More... | |
| void | removeEventSource (BaseObject *source) |
| Removes an eventsource (but doesn't unregister itself at the source). More... | |
| void | setActive (bool bActive) |
| Sets the state of the objects activity. More... | |
| void | setCreator (BaseObject *creator) |
| void | setFile (const XMLFile *file) |
| Sets a pointer to the xml file that loaded this object. More... | |
| void | setGametype (const StrongOrWeakPtr< Gametype > &gametype) |
| void | setLevel (const StrongOrWeakPtr< Level > &level) |
| void | setLoaderIndentation (const std::string &indentation) |
| Sets the indentation of the debug output in the Loader. More... | |
| void | setMainState (bool state) |
| Sets the main state of the object to a given boolean value. More... | |
| void | setMainStateName (const std::string &name) |
| Sets the name of the main state (used for event reactions). More... | |
| void | setName (const std::string &name) |
| Sets the name of the object. More... | |
| void | setNamespace (const StrongOrWeakPtr< Namespace > &ns) |
| void | setScene (const StrongOrWeakPtr< Scene > &scene, uint32_t sceneID) |
| void | setVisible (bool bVisible) |
| Sets the state of the objects visibility. More... | |
| virtual void | XMLEventPort (Element &xmlelement, XMLPort::Mode mode) |
| Defines the possible event states of this object and parses eventsources from an XML file. More... | |
Public Member Functions inherited from orxonox::OrxonoxClass | |
| OrxonoxClass () | |
| OrxonoxClass & | operator= (const OrxonoxClass &)=default |
Public Member Functions inherited from orxonox::Configurable | |
| Configurable () | |
| void | setConfigValues () |
| Function to collect the SetConfigValue-macro calls. More... | |
Public Member Functions inherited from orxonox::Listable | |
| Listable () | |
| Constructor: Allocates space in the element list. More... | |
| Listable (Context *context) | |
| Constructor: Allocates space in the element list and assigns the context. More... | |
| virtual | ~Listable () |
| Destructor: Removes the object from the object-lists. More... | |
| Context * | getContext () const |
| void | setContext (Context *context) |
| Changes the context. More... | |
| void | unregisterObject () |
| Removes this object from the object-lists. More... | |
Public Member Functions inherited from orxonox::Identifiable | |
| Identifiable () | |
| Constructor: Sets the default values. More... | |
| virtual | ~Identifiable () |
| ORX_FORCEINLINE void * | getDerivedPointer (unsigned int classID) |
| Returns a valid pointer of any derived type that is registered in the class hierarchy. More... | |
| template<class T > | |
| ORX_FORCEINLINE T * | getDerivedPointer (unsigned int classID) |
| Version of getDerivedPointer with template. More... | |
| template<class T > | |
| ORX_FORCEINLINE const T * | getDerivedPointer (unsigned int classID) const |
| Const version of getDerivedPointer with template. More... | |
| Identifier * | getIdentifier () const |
| Returns the Identifier of the object. More... | |
| bool | isA (const Identifier *identifier) |
| Returns true if the object's class is of the given type or a derivative. More... | |
| template<class B > | |
| bool | isA (const SubclassIdentifier< B > *identifier) |
| Returns true if the object's class is of the given type or a derivative. More... | |
| bool | isA (const Identifiable *object) |
| Returns true if the object's class is of the given type or a derivative. More... | |
| bool | isChildOf (const Identifier *identifier) |
| Returns true if the object's class is a child of the given type. More... | |
| template<class B > | |
| bool | isChildOf (const SubclassIdentifier< B > *identifier) |
| Returns true if the object's class is a child of the given type. More... | |
| bool | isChildOf (const Identifiable *object) |
| Returns true if the object's class is a child of the given type. More... | |
| bool | isDirectChildOf (const Identifier *identifier) |
| Returns true if the object's class is a direct child of the given type. More... | |
| template<class B > | |
| bool | isDirectChildOf (const SubclassIdentifier< B > *identifier) |
| Returns true if the object's class is a direct child of the given type. More... | |
| bool | isDirectChildOf (const Identifiable *object) |
| Returns true if the object's class is a direct child of the given type. More... | |
| bool | isDirectParentOf (const Identifier *identifier) |
| Returns true if the object's class is a direct parent of the given type. More... | |
| template<class B > | |
| bool | isDirectParentOf (const SubclassIdentifier< B > *identifier) |
| Returns true if the object's class is a direct parent of the given type. More... | |
| bool | isDirectParentOf (const Identifiable *object) |
| Returns true if the object's class is a direct child of the given type. More... | |
| bool | isExactlyA (const Identifier *identifier) |
| Returns true if the object's class is exactly of the given type. More... | |
| template<class B > | |
| bool | isExactlyA (const SubclassIdentifier< B > *identifier) |
| Returns true if the object's class is exactly of the given type. More... | |
| bool | isExactlyA (const Identifiable *object) |
| Returns true if the object's class is exactly of the given type. More... | |
| bool | isParentOf (const Identifier *identifier) |
| Returns true if the object's class is a parent of the given type. More... | |
| template<class B > | |
| bool | isParentOf (const SubclassIdentifier< B > *identifier) |
| Returns true if the object's class is a parent of the given type. More... | |
| bool | isParentOf (const Identifiable *object) |
| Returns true if the object's class is a parent of the given type. More... | |
Public Member Functions inherited from orxonox::Destroyable | |
| Destroyable () | |
| Constructor: Sets the default values. More... | |
| virtual | ~Destroyable () |
| Destructor: Notifies all DestructionListener (for example weak pointers) that this object is being deleted. More... | |
| void | destroy () |
| Deletes the object if no strong pointers point to this object. More... | |
| void | destroyLater () |
| Works like destroy() but doesn't destroy the object until the current tick has ended. More... | |
| unsigned int | getReferenceCount () const |
| Returns the number of strong pointers that point to this object. More... | |
Static Public Member Functions | |
| static void | followme () |
| A human player gets followed by its nearest master. More... | |
| static void | formationflight (const bool form) |
| Activates / deactivates formationflight behaviour. More... | |
| static void | formationsize (const int size) |
| Sets maximal formation size. More... | |
| static void | masteraction (const int action) |
| Get all masters to do a "specific master action". More... | |
| static void | passivebehaviour (const bool passive) |
| Sets shooting behaviour of pawns. More... | |
Static Public Member Functions inherited from orxonox::BaseObject | |
| static void | loadAllEventStates (Element &xmlelement, XMLPort::Mode mode, BaseObject *object, Identifier *identifier) |
| Manually loads all event states, even if the class doesn't officially support them. More... | |
Protected Types | |
| enum | SpecificMasterAction { NONE, HOLD, SPIN, TURN180, FOLLOW } |
| enum | State { SLAVE, MASTER, FREE } |
Protected Member Functions | |
| void | absoluteMoveToPosition (const Vector3 &target) |
| void | commandSlaves () |
| Commands the slaves of a master into a formation. More... | |
| void | copyOrientation (const Quaternion &orient) |
| void | copyTargetOrientation () |
| void | follow () |
| Master follows target with adjusted speed. More... | |
| void | followInit (Pawn *pawn, const bool always=false, const int secondsToFollow=100) |
| Master begins to follow a pawn. More... | |
| void | followRandomHumanInit () |
| Master begins to follow a randomly chosen human player of the same team. More... | |
| bool | forcedFree () |
| Checks wether caller has been forced free, decrements time to stay forced free. More... | |
| void | forceFreedom () |
| void | forceFreeSlaves () |
| Master sets its slaves free for FREEDOM_COUNT seconds. More... | |
| void | forgetTarget () |
| void | freeSlaves () |
| Frees all slaves from a master. More... | |
| void | loseMasterState () |
| void | masterAttacked (Pawn *originator) |
| if called, half of the formation will attack the originator More... | |
| void | moveToPosition (const Vector3 &target) |
| void | moveToTargetPosition () |
| virtual void | positionReached () |
| void | removeFromFormation () |
| void | searchNewMaster () |
| void | searchNewTarget () |
| void | searchRandomTargetPosition () |
| void | setNewMasterWithinFormation () |
| Sets a new master within the formation. More... | |
| void | setTarget (Pawn *target) |
| void | setTargetOrientation (const Quaternion &orient) |
| void | setTargetOrientation (Pawn *target) |
| void | setTargetPosition (const Vector3 &target) |
| void | specificMasterActionHold () |
| Used to continue a "specific master action" for a certain time and resuming normal behaviour after. More... | |
| void | spin () |
| Execute the spin. More... | |
| void | spinInit () |
| Master initializes a spin around its looking direction axis. More... | |
| void | takeLeadOfFormation () |
| Call to take the lead of formation (if free, become slave of nearest formation, then, if Slave, become Master) More... | |
| void | targetDied () |
| void | turn180 () |
| Execute the 180 degree turn. More... | |
| void | turn180Init () |
| Master initializes a 180 degree turn. More... | |
| void | unregisterSlave () |
| Unregisters a slave from its master. More... | |
Protected Member Functions inherited from orxonox::BaseObject | |
| void | addEventState (const std::string &name, EventState *container) |
| Adds a new event-state to the object. More... | |
| EventState * | getEventState (const std::string &name) const |
| Returns the event-state with the given name. More... | |
Protected Member Functions inherited from orxonox::Destroyable | |
| virtual void | preDestroy () |
| This virtual function is called if destroy() is called and no StrongPtr points to this object. More... | |
Static Protected Member Functions | |
| static bool | sameTeam (ControllableEntity *entity1, ControllableEntity *entity2, Gametype *gametype) |
Protected Attributes | |
| bool | bHasTargetOrientation_ |
| bool | bHasTargetPosition_ |
| bool | bShooting_ |
| bool | formationFlight_ |
| FormationMode | formationMode_ |
| int | freedomCount_ |
| unsigned int | maxFormationSize_ |
| FormationController * | myMaster_ |
| bool | passive_ |
| std::vector< FormationController * > | slaves_ |
| SpecificMasterAction | specificMasterAction_ |
| int | specificMasterActionHoldCount_ |
| float | speedCounter_ |
| State | state_ |
| WeakPtr< Pawn > | target_ |
| Quaternion | targetOrientation_ |
| Vector3 | targetPosition_ |
Protected Attributes inherited from orxonox::Controller | |
| ControllableEntity * | controllableEntity_ |
| PlayerInfo * | player_ |
| int | team_ |
Protected Attributes inherited from orxonox::BaseObject | |
| mbool | bActive_ |
| True = the object is active. More... | |
| mbool | bVisible_ |
| True = the object is visible. More... | |
| FunctorPtr | mainStateFunctor_ |
| std::string | mainStateName_ |
| std::string | name_ |
| The name of the object. More... | |
| std::set< std::string > | networkTemplateNames_ |
| std::string | oldName_ |
| The old name of the object. More... | |
|
protected |
|
protected |
| orxonox::FormationController::FormationController | ( | Context * | context | ) |
|
virtual |
|
protected |
|
overridevirtual |
Reimplemented from orxonox::Controller.
Reimplemented in orxonox::NewHumanController, and orxonox::ArtificialController.
|
protected |
Commands the slaves of a master into a formation.
Sufficiently fast not to be called within tick. Initiated by a master.
|
protected |
|
protected |
|
protected |
Master follows target with adjusted speed.
Called within tick.
|
protected |
Master begins to follow a pawn.
Is a "specific master action".
| pawn | pawn to follow. |
| always | follows pawn forever if true (false if omitted). |
| secondsToFollow | seconds to follow the pawn if always is false. Will follow pawn 100 seconds if omitted (set in header). |
|
static |
A human player gets followed by its nearest master.
Initiated by console command, so far intended for demonstration puproses (possible future pickup).
|
protected |
Master begins to follow a randomly chosen human player of the same team.
Is a "specific master action".
|
protected |
Checks wether caller has been forced free, decrements time to stay forced free.
|
protected |
|
protected |
Master sets its slaves free for FREEDOM_COUNT seconds.
|
protected |
|
static |
Activates / deactivates formationflight behaviour.
| form | activate formflight if form is true |
|
static |
Sets maximal formation size.
| size | maximal formation size. |
|
protected |
Frees all slaves from a master.
Initiated by a master.
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
overridevirtual |
Reimplemented from orxonox::Controller.
Reimplemented in orxonox::NewHumanController.
|
protected |
|
static |
Get all masters to do a "specific master action".
| action | which action to perform (integer, so it can be called with a console command (tmp solution)) |
if called, half of the formation will attack the originator
|
protected |
|
protected |
|
static |
Sets shooting behaviour of pawns.
| passive | if true, bots won't shoot. |
|
inlineprotectedvirtual |
Reimplemented in orxonox::DockingController.
|
protected |
|
staticprotected |
|
protected |
|
protected |
|
protected |
|
inline |
| void orxonox::FormationController::setFormationMode | ( | FormationMode | val | ) |
Sets the new mode.
If master, set it for all slaves.
|
inline |
| void orxonox::FormationController::setNewMasterWithinFormation | ( | FormationController * | newMaster | ) |
|
protected |
Sets a new master within the formation.
Called by a master.
|
inline |
|
protected |
|
protected |
|
protected |
Used to continue a "specific master action" for a certain time and resuming normal behaviour after.
|
protected |
Execute the spin.
Called within tick.
|
protected |
Master initializes a spin around its looking direction axis.
Leads to a "specific master action".
|
protected |
Call to take the lead of formation (if free, become slave of nearest formation, then, if Slave, become Master)
|
protected |
|
protected |
Execute the 180 degree turn.
Called within tick.
|
protected |
Master initializes a 180 degree turn.
Leads to a "specific master action".
|
protected |
Unregisters a slave from its master.
Initiated by a slave.
|
overridevirtual |
XML loading and saving.
| xmlelement | The XML-element |
| mode | The mode defines the operation that is being executed: loading or saving the object (from or to XML respectively) |
Reimplemented from orxonox::Controller.
Reimplemented in orxonox::SpaceRaceController, orxonox::ControllerDirector, orxonox::WaypointPatrolController, and orxonox::ArtificialController.
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
1.8.11