Vegastrike 0.5.1 rc1  1.0
Original sources for Vegastrike Evolved
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Orders::ExecuteFor Class Reference

Executes another order for a number of seconds. More...

#include <order.h>

Inheritance diagram for Orders::ExecuteFor:
Order

Public Member Functions

 ExecuteFor (Order *chld, float seconds)
 
void Execute ()
 Executes child order and then any suborders that may be pertinant. More...
 
virtual void Destroy ()
 Removes this order. More...
 
- Public Member Functions inherited from Order
virtual void ChooseTarget ()
 this function calls the destructor (needs to be overridden for python; More...
 
virtual bool PursueTarget (Unit *, bool isleader)
 
void ClearMessages ()
 clears the messasges of this order More...
 
 Order ()
 The default constructor setting everything to NULL and no dependency on order. More...
 
 Order (int type, int subtype)
 The constructor that specifies what order dependencies this order has. More...
 
OrderqueryType (unsigned int type)
 returns a pointer to the first order that may be bitwised ored with that type More...
 
OrderqueryAny (unsigned int type)
 returns a pointer to the first order that may be bitwise ored with any type More...
 
void eraseType (unsigned int type)
 Erases all orders that bitwise OR with that type. More...
 
bool AttachOrder (Unit *targets)
 Attaches a group of targets to this order (used for strategery-type games) More...
 
bool AttachOrder (QVector target)
 Attaches a navigation point to this order. More...
 
bool AttachSelfOrder (Unit *targets)
 Attaches a group (form up) to this order. More...
 
OrderEnqueueOrder (Order *ord)
 Enqueues another order that will be executed (in parallel perhaps) when next void Execute() is called. More...
 
OrderReplaceOrder (Order *ord)
 Replaces the first order of that type in the order queue. More...
 
bool Done ()
 
int getType ()
 
int getSubType ()
 
virtual void SetParent (Unit *parent1)
 Sets the parent of this Unit. Any virtual functions must call this one. More...
 
UnitGetParent () const
 
virtual void Communicate (const class CommunicationMessage &c)
 Sends a communication message from the Unit (encapulated in c) to this unit. More...
 
virtual void ProcessCommMessage (class CommunicationMessage &c)
 processes a single message...generally called by the Messages() func More...
 
virtual void ProcessCommunicationMessages (float CommRepsonseTime, bool RemoveMessageProcessed)
 responds (or does not) to certain messages in the message queue More...
 
OrderfindOrder (Order *ord)
 return pointer to order or NULL if not found More...
 
void eraseOrder (Order *ord)
 erase that order from the list More...
 
OrderEnqueueOrderFirst (Order *ord)
 enqueue order as first order More...
 
virtual olist_tgetOrderList ()
 returns the orderlist (NULL for orders that haven't got any) More...
 
virtual void AdjustRelationTo (Unit *un, float factor)
 
virtual std::string getOrderDescription ()
 
OrderfindOrderList ()
 searches the suborders recursively for the first order that has an orderlist More...
 
std::string createFullOrderDescription (int level=0)
 
void setActionString (std::string astring)
 
std::string getActionString ()
 
virtual float getMood ()
 

Protected Member Functions

virtual ~ExecuteFor ()
 
- Protected Member Functions inherited from Order
virtual ~Order ()
 
virtual void Destructor ()
 changes the local relation of this unit to another...may inform superiors about "good" or bad! behavior depending on the AI More...
 

Additional Inherited Members

- Public Types inherited from Order
enum  ORDERTYPES {
  MOVEMENT =1, FACING =2, WEAPON =4, CLOAKING =8,
  ALLTYPES =(1|2|4|8)
}
 The varieties of order types MOVEMENT,FACING, and WEAPON orders may not be mutually executed (lest one engine goes left, the other right) More...
 
enum  SUBORDERTYPES { SLOCATION =1, STARGET =2, SSELF =4 }
 
- Protected Attributes inherited from Order
Unitparent
 The unit this order is attached to. More...
 
unsigned int type
 The bit code (from ORDERTYPES) that this order is (for parallel execution) More...
 
unsigned int subtype
 
bool done
 Whether or not this order is done. More...
 
UnitContainer group
 If this order applies to a group of units (as in form up with this group) More...
 
QVector targetlocation
 If this order applies to a physical location in world space. More...
 
std::vector< Order * > suborders
 The queue of suborders that will be executed in parallel according to bit code. More...
 
std::list< class
CommunicationMessage * > 
messagequeue
 a bunch of communications that have not been answered CommunicationMessages are actually containing reference to a nice Finite State Machine that can allow a player to have a reasonable conversation with an AI More...
 
std::string actionstring
 

Detailed Description

Executes another order for a number of seconds.

Definition at line 209 of file order.h.

Constructor & Destructor Documentation

virtual Orders::ExecuteFor::~ExecuteFor ( )
inlineprotectedvirtual

Definition at line 220 of file order.h.

220 {}
Orders::ExecuteFor::ExecuteFor ( Order chld,
float  seconds 
)
inline

Definition at line 221 of file order.h.

221  : ExecuteFor( Order *chld, float seconds ) : Order( chld->getType(), chld->getSubType() )
222  , child( chld )
223  , time( 0 )
224  , maxtime( seconds ) {}

Member Function Documentation

virtual void Orders::ExecuteFor::Destroy ( )
inlinevirtual

Removes this order.

Reimplemented from Order.

Definition at line 228 of file order.h.

References Order::Destroy().

229  {
230  child->Destroy();
231  Order::Destroy();
232  }
void Orders::ExecuteFor::Execute ( )
virtual

Executes child order and then any suborders that may be pertinant.

Reimplemented from Order.

Definition at line 242 of file order.cpp.

References Order::done, Order::Execute(), Order::getType(), Order::parent, Order::SetParent(), SIMULATION_ATOM, and Order::type.

243 {
244  if (child) {
245  child->SetParent( parent );
246  type = child->getType();
247  }
248  if (time > maxtime) {
249  done = true;
250  return;
251  }
252  time += SIMULATION_ATOM;
253  if (child)
254  child->Execute();
255 }

The documentation for this class was generated from the following files: