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
script.cpp File Reference
#include "script.h"
#include "navigation.h"
#include "xml_support.h"
#include "flybywire.h"
#include <stdio.h>
#include <vector>
#include <stack>
#include "vsfilesystem.h"
#include "tactics.h"
#include "cmd/unit_generic.h"
#include "hard_coded_scripts.h"
#include "universe_util.h"
#include <assert.h>

Go to the source code of this file.

Classes

struct  AIScriptXML
 

Namespaces

 AiXml
 

Constant Groups

 AiXml
 

Typedefs

typedef vsUMap< string,
CCScript * > 
HardCodedMap
 

Enumerations

enum  AiXml::Names {
  AiXml::SCRIPT, AiXml::MOVETO, AiXml::VECTOR, AiXml::FFLOAT,
  AiXml::X, AiXml::Y, AiXml::Z, AiXml::ACCURACY,
  AiXml::UNKNOWN, AiXml::EXECUTEFOR, AiXml::TIME, AiXml::AFTERBURN,
  AiXml::CHANGEHEAD, AiXml::MATCHLIN, AiXml::MATCHANG, AiXml::MATCHVEL,
  AiXml::ANGULAR, AiXml::LINEAR, AiXml::LOCAL, AiXml::TERMINATE,
  AiXml::VALUE, AiXml::ADD, AiXml::SUB, AiXml::NEG,
  AiXml::NORMALIZE, AiXml::SCALE, AiXml::CROSS, AiXml::DOT,
  AiXml::MULTF, AiXml::ADDF, AiXml::FROMF, AiXml::TOF,
  AiXml::FACETARGET, AiXml::ITTTS, AiXml::TARGETPOS, AiXml::THREATPOS,
  AiXml::YOURPOS, AiXml::TARGETV, AiXml::THREATV, AiXml::YOURV,
  AiXml::TARGETWORLD, AiXml::THREATWORLD, AiXml::TARGETLOCAL, AiXml::THREATLOCAL,
  AiXml::YOURLOCAL, AiXml::YOURWORLD, AiXml::SIMATOM, AiXml::DUPLIC,
  AiXml::CLOAKFOR, AiXml::DEFAULT
}
 

Functions

static HardCodedMap MakeHardCodedScripts ()
 
bool validateHardCodedScript (std::string s)
 

Variables

static HardCodedMap hard_coded_scripts = MakeHardCodedScripts()
 
const EnumMap::Pair AiXml::element_names []
 
const EnumMap::Pair AiXml::attribute_names []
 
const EnumMap AiXml::element_map (element_names, 32)
 
const EnumMap AiXml::attribute_map (attribute_names, 19)
 

Typedef Documentation

typedef vsUMap< string, CCScript* > HardCodedMap

Definition at line 15 of file script.cpp.

Function Documentation

static HardCodedMap MakeHardCodedScripts ( )
static

Definition at line 16 of file script.cpp.

References AfterburnerSlide, AfterburnEvadeLeftRight, AfterburnEvadeUpDown, AfterburnTurnAway, AfterburnTurnTowards, AfterburnTurnTowardsITTS, AfterburnVeerAndTurnAway, AfterburnVeerAndVectorAway, AggressiveLoopAround, AggressiveLoopAroundFast, AggressiveLoopAroundSlow, BarrelRoll, CloakForScript, CoastToStop, DoNothing, DropCargo, DropHalfCargo, DropOneCargo, EvadeLeftRight, EvadeUpDown, FacePerpendicular, FacePerpendicularFast, FacePerpendicularSlow, FlyStraight, FlyStraightAfterburner, Kickstop, LoopAround, LoopAroundFast, LoopAroundSlow, MatchVelocity, MoveTo, RollFacePerpendicular, RollFacePerpendicularFast, RollFacePerpendicularSlow, RollLeft, RollLeftHard, RollRight, RollRightHard, SelfDestruct, SheltonSlide, SkilledABSlide, Stop, Takeoff, TakeoffEveryZig, TurnAway, TurnTowards, TurnTowardsITTS, VeerAndVectorAway, VeerAway, and VeerAwayITTS.

17 {
18  HardCodedMap tmp;
19  typedef std::pair< std::string, CCScript* >MyPair;
20  tmp.insert( MyPair( "loop around fast", &LoopAroundFast ) );
21  tmp.insert( MyPair( "aggressive loop around fast", &AggressiveLoopAroundFast ) );
22  tmp.insert( MyPair( "loop around slow", &LoopAroundSlow ) );
23  tmp.insert( MyPair( "aggressive loop around slow", &AggressiveLoopAroundSlow ) );
24  tmp.insert( MyPair( "loop around", &LoopAround ) );
25  tmp.insert( MyPair( "aggressive loop around", &AggressiveLoopAround ) );
26  tmp.insert( MyPair( "barrel roll", &BarrelRoll ) );
27  tmp.insert( MyPair( "veer away", &VeerAway ) );
28  tmp.insert( MyPair( "veer away itts", &VeerAwayITTS ) );
29  tmp.insert( MyPair( "veer and turn away", &VeerAndVectorAway ) );
30  tmp.insert( MyPair( "veer and vector away", &VeerAndVectorAway ) );
31  tmp.insert( MyPair( "afterburn veer away", &AfterburnVeerAndTurnAway ) );
32  tmp.insert( MyPair( "afterburn vector away", &AfterburnVeerAndVectorAway ) );
33  tmp.insert( MyPair( "match velocity", &MatchVelocity ) );
34  tmp.insert( MyPair( "fly straight", &FlyStraight ) );
35  tmp.insert( MyPair( "fly straight afterburner", &FlyStraightAfterburner ) );
36  tmp.insert( MyPair( "afterburn fly straight", &FlyStraightAfterburner ) );
37  tmp.insert( MyPair( "do nothing", &DoNothing ) );
38  tmp.insert( MyPair( "take off", &Takeoff ) );
39  tmp.insert( MyPair( "coast to stop", &CoastToStop ) );
40  tmp.insert( MyPair( "self destruct", &SelfDestruct ) );
41  tmp.insert( MyPair( "take off every zig", &TakeoffEveryZig ) );
42  tmp.insert( MyPair( "afterburn turn towards", &AfterburnTurnTowards ) );
43  tmp.insert( MyPair( "afterburn turn towards itts", &AfterburnTurnTowardsITTS ) );
44  tmp.insert( MyPair( "cloak", &CloakForScript ) );
45  tmp.insert( MyPair( "evade", &AfterburnEvadeLeftRight ) );
46  tmp.insert( MyPair( "kick stop", &Kickstop ) );
47  tmp.insert( MyPair( "move to", &MoveTo ) );
48  tmp.insert( MyPair( "shelton slide", &SheltonSlide ) );
49  tmp.insert( MyPair( "skilled afterburner slide", &SkilledABSlide ) );
50  tmp.insert( MyPair( "afterburner slide", &AfterburnerSlide ) );
51  tmp.insert( MyPair( "stop", &Stop ) );
52  tmp.insert( MyPair( "turn away", &TurnAway ) );
53  tmp.insert( MyPair( "afterburn turn away", &AfterburnTurnAway ) );
54  tmp.insert( MyPair( "turn towards", &TurnTowards ) );
55  tmp.insert( MyPair( "turn towards itts", &TurnTowardsITTS ) );
56  tmp.insert( MyPair( "drop cargo", &DropCargo ) );
57  tmp.insert( MyPair( "drop half cargo", &DropHalfCargo ) );
58  tmp.insert( MyPair( "drop one cargo", &DropOneCargo ) );
59  tmp.insert( MyPair( "roll right", &RollRight ) );
60  tmp.insert( MyPair( "roll right hard", &RollRightHard ) );
61  tmp.insert( MyPair( "roll left", &RollLeft ) );
62  tmp.insert( MyPair( "roll left hard", &RollLeftHard ) );
63  tmp.insert( MyPair( "evade left right", &EvadeLeftRight ) );
64  tmp.insert( MyPair( "evade up down", &EvadeUpDown ) );
65  tmp.insert( MyPair( "afterburn evade left right", &AfterburnEvadeLeftRight ) );
66  tmp.insert( MyPair( "afterburn evade up down", &AfterburnEvadeUpDown ) );
67  tmp.insert( MyPair( "face perpendicular", &FacePerpendicular ) );
68  tmp.insert( MyPair( "face perpendicular slow", &FacePerpendicularSlow ) );
69  tmp.insert( MyPair( "face perpendicular fast", &FacePerpendicularFast ) );
70  tmp.insert( MyPair( "roll perpendicular", &RollFacePerpendicular ) );
71  tmp.insert( MyPair( "roll perpendicular slow", &RollFacePerpendicularSlow ) );
72  tmp.insert( MyPair( "roll perpendicular fast", &RollFacePerpendicularFast ) );
73  if (tmp.find("roll perpendicular fast")==tmp.end()){
74  exit(1);
75  }
76  return tmp;
77 }
bool validateHardCodedScript ( std::string  s)

Definition at line 80 of file script.cpp.

References hard_coded_scripts.

Referenced by AIEvents::AIEvresult::AIEvresult().

81 {
82  if (s.length() == 0) return true;
83  return hard_coded_scripts.find( s ) != hard_coded_scripts.end();
84 }

Variable Documentation

HardCodedMap hard_coded_scripts = MakeHardCodedScripts()
static

Definition at line 79 of file script.cpp.

Referenced by validateHardCodedScript().