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
AImissionScript Class Reference

#include <missionscript.h>

Inheritance diagram for AImissionScript:
FlyByWire Orders::MatchVelocity Orders::MatchAngularVelocity Order AIFlyToJumppoint AIFlyToWaypoint AIFlyToWaypointDefend AIOrderList AIPatrol AIPatrolDefend AISuperiority

Public Member Functions

 AImissionScript (string modulename)
 saves scriptname in the filename var More...
 
 ~AImissionScript ()
 
void Execute ()
 Loads the AI script from the hard drive, or executes if loaded. More...
 
virtual string getOrderDescription ()
 
- Public Member Functions inherited from FlyByWire
 FlyByWire ()
 
 ~FlyByWire ()
 
void SwitchFlightMode ()
 
void ThrustRight (float percent)
 Turns on or off velocity resolution. More...
 
void ThrustUp (float percent)
 
void ThrustFront (float percent)
 
void DirectThrustRight (float percent)
 
void DirectThrustUp (float percent)
 
void DirectThrustFront (float percent)
 
void SheltonSlide (bool onoff)
 
void InertialFlight (bool onoff)
 
bool InertialFlight () const
 
bool InertialFlightEnable () const
 
void Stop (float percentage)
 Stops... sets desired velocity to 0. More...
 
void Right (float percentage)
 pass in the percentage of the turn they were turnin right. -age indicates left More...
 
void Up (float percentage)
 pass in the percentage of the turn they were turning up More...
 
void RollRight (float percentage)
 
void Afterburn (float percentage)
 Specifies match speed to use afterbuner and gives in higher velocity. More...
 
void MatchSpeed (const Vector &velocity)
 matches set_speed to this velocity's magnitude More...
 
void Accel (float percentage)
 negative is decel... 0 = nothing More...
 
- Public Member Functions inherited from Orders::MatchVelocity
 MatchVelocity (const Vector &desired, const Vector &desired_ang, const bool Local, const bool afterburner, const bool fini=true)
 
void SetDesiredVelocity (const Vector &desired, const bool Local)
 
void SetAfterburn (bool use_afterburn)
 
virtual ~MatchVelocity ()
 
- Public Member Functions inherited from Orders::MatchAngularVelocity
 MatchAngularVelocity (const Vector &desired, bool Local, bool fini=true)
 
void SetDesiredAngularVelocity (const Vector &desired, bool Local)
 
virtual ~MatchAngularVelocity ()
 
- 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...
 
virtual void Destroy ()
 The virutal function that unrefs all memory then calls Destruct () which takes care of unreffing this or calling delete on this. 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)
 
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 Attributes

string modulename
 
unsigned int classid
 
bool first_run
 
- Protected Attributes inherited from FlyByWire
Vector DesiredShiftVelocity
 
Vector DirectThrust
 
bool sheltonslide
 If shelton slide, do not have the computer match linear. More...
 
bool controltype
 
bool inertial_flight_model
 
bool inertial_flight_enable
 
bool stolen_setspeed
 
float stolen_setspeed_value
 
- Protected Attributes inherited from Orders::MatchVelocity
Vector desired_velocity
 werld space... generally r*speed or local space More...
 
bool LocalVelocity
 Is the above in world space? More...
 
bool afterburn
 
- Protected Attributes inherited from Orders::MatchAngularVelocity
Vector desired_ang_velocity
 werld space or local space (pitch = 1 on the x axis) More...
 
bool LocalAng
 specified in Local or World coordinates More...
 
bool willfinish
 Whether this script should terminate upon reaching desired angular velocity. More...
 
- 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
 

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 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...
 

Detailed Description

Definition at line 35 of file missionscript.h.

Constructor & Destructor Documentation

AImissionScript::AImissionScript ( string  modulename)

saves scriptname in the filename var

Definition at line 40 of file missionscript.cpp.

References Order::actionstring, classid, Mission::createClassInstance(), first_run, mission, VSFileSystem::modname, and modulename.

41 {
42  actionstring = "";
43 
45 
47 
48  first_run = true;
49 }
AImissionScript::~AImissionScript ( )

Definition at line 51 of file missionscript.cpp.

References classid, Mission::destroyClassInstance(), Unit::getFullAIDescription(), mission, modulename, Order::parent, Mission::runScript(), and VSFileSystem::vs_fprintf().

52 {
53  printf( "destructor\n%s", parent->getFullAIDescription().c_str() );
54 
55  mission->runScript( modulename, "quitai", classid );
56 
58 #ifdef ORDERDEBUG
59  VSFileSystem::vs_fprintf( stderr, "aims%x", this );
60  fflush( stderr );
61 #endif
62 }

Member Function Documentation

void AImissionScript::Execute ( )
virtual

Loads the AI script from the hard drive, or executes if loaded.

Reimplemented from FlyByWire.

Definition at line 64 of file missionscript.cpp.

References active_missions, varInst::bool_val, classid, Mission::deleteVarInst(), Orders::MatchAngularVelocity::desired_ang_velocity, Orders::MatchVelocity::desired_velocity, Order::done, Order::Execute(), FlyByWire::Execute(), first_run, i, varInst::int_val, Mission::lookupClassVariable(), mission, modulename, Order::parent, Mission::runScript(), Mission::setCurrentAIOrder(), Mission::setCurrentAIUnit(), varInst::type, VAR_BOOL, VAR_INT, and Vector.

65 {
66  desired_ang_velocity = Vector( 0, 0, 0 );
67  desired_velocity = Vector( 0, 0, 0 );
68 
70  mission->setCurrentAIOrder( this );
71  if (first_run) {
72  for (unsigned int i = 0;
73  ( i < active_missions.size() )
74  && ( !( mission->runScript( modulename, "initai", classid ) ) );
75  i++) {}
76  first_run = false;
77  }
78  mission->runScript( modulename, "executeai", classid );
79 
81  if (vi == NULL || vi->type != VAR_INT) {
83  } else {
84  if (vi->int_val == 0)
86  else if (vi->int_val == 1)
88  }
89  mission->deleteVarInst( vi );
90  done = false;
91 
92  varInst *done_vi = mission->lookupClassVariable( modulename, "_done", classid );
93  if (done_vi != NULL && done_vi->type == VAR_BOOL && done_vi->bool_val == true)
94  done = true;
95  mission->deleteVarInst( done_vi );
96 }
virtual string AImissionScript::getOrderDescription ( )
inlinevirtual

Reimplemented from FlyByWire.

Definition at line 44 of file missionscript.h.

References buffer, classid, and Order::getActionString().

45  {
46  char buffer[300];
47  sprintf( buffer, "%s:%d:%s", modulename.c_str(), classid, getActionString().c_str() );
48  return buffer;
49  }

Member Data Documentation

bool AImissionScript::first_run
protected

Definition at line 55 of file missionscript.h.

Referenced by AImissionScript(), and Execute().


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