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
Briefing::Ship Class Reference

#include <briefing.h>

Public Member Functions

 ~Ship ()
 
void Destroy ()
 
bool LoadFailed ()
 
Vector Position ()
 
void SetPosition (const Vector &pos)
 
 Ship (const char *filename, int faction, const Vector &position)
 
void Render (const Matrix &cam, double interpol)
 
void Update ()
 
void OverrideOrder (const Vector &destination, float time)
 
void EnqueueOrder (const Vector &destination, float time)
 

Public Attributes

float cloak
 

Detailed Description

Definition at line 23 of file briefing.h.

Constructor & Destructor Documentation

Briefing::Ship::~Ship ( )

Definition at line 96 of file briefing.cpp.

References VSDESTRUCT2.

97 {
98  Destroy();
100 }
Briefing::Ship::Ship ( const char *  filename,
int  faction,
const Vector position 
)

Definition at line 8 of file briefing.cpp.

References cloak, UnitFactory::createUnit(), Unit::Kill(), SetPosition(), Unit::StealMeshes(), and VSCONSTRUCT2.

9 {
10  VSCONSTRUCT2( 's' )
11  Unit*tmp = UnitFactory::createUnit( filename, true, faction );
12  meshdata = tmp->StealMeshes();
13  tmp->Kill();
14  cloak = 1;
15  SetPosition( position );
16 }

Member Function Documentation

void Briefing::Ship::Destroy ( )

Definition at line 102 of file briefing.cpp.

References i.

103 {
104  for (unsigned int i = 0; i < meshdata.size(); i++)
105  delete meshdata[i];
106  meshdata.clear();
107 }
void Briefing::Ship::EnqueueOrder ( const Vector destination,
float  time 
)

Definition at line 182 of file briefing.cpp.

References Magnitude(), and SIMULATION_ATOM.

183 {
184  if (time < .00001)
185  time = SIMULATION_ATOM;
186  orders.push_back( BriefingOrder( destination, ( destination-Position() ).Magnitude()/time ) );
187 }
bool Briefing::Ship::LoadFailed ( )
inline

Definition at line 30 of file briefing.h.

Referenced by Briefing::AddStarship().

31  {
32  return meshdata.empty();
33  }
void Briefing::Ship::OverrideOrder ( const Vector destination,
float  time 
)

Definition at line 176 of file briefing.cpp.

References Briefing::EnqueueOrder().

177 {
178  orders.clear();
179  EnqueueOrder( destination, time );
180 }
Vector Briefing::Ship::Position ( )
inline

Definition at line 34 of file briefing.h.

35  {
36  return pos;
37  } //return Vector (mat[12],mat[13],mat[14]);}
void Briefing::Ship::Render ( const Matrix cam,
double  interpol 
)

Definition at line 73 of file briefing.cpp.

References i, Identity(), int, MultMatrix(), SetDirection(), UpdatePosition(), and Vector.

74 {
75  Matrix final;
76  Identity( final );
77  Vector pos( Position() );
78  Vector dir = Position()+Vector( 1, 0, 0 );
79  if ( !orders.empty() ) {
80  UpdatePosition( pos, Position(), orders.front().vec, orders.front().speed*interpol );
81  dir = orders.front().vec;
82  }
83  SetDirection( final, pos, dir, cam, !orders.empty() );
84  final.p = pos.Cast();
85 
86  Matrix camfinal;
87  MultMatrix( camfinal, cam, final );
88  for (unsigned int i = 0; i < meshdata.size(); i++) {
89  int scloak = int( cloak*( (-1) > 1 ) ); //FIXME short fix?
90  if ( (scloak&0x1) == 0 )
91  scloak += 1;
92  meshdata[i]->Draw( 1, camfinal, 1, cloak > .99 ? -1 : scloak );
93  }
94 }
void Briefing::Ship::SetPosition ( const Vector pos)
inline

Definition at line 38 of file briefing.h.

Referenced by Ship().

39  {
40  this->pos = pos;
41  } //mat[12]=pos.i;mat[13]=pos.j;mat[14]=pos.k;}
void Briefing::Ship::Update ( )

Definition at line 166 of file briefing.cpp.

References Briefing::SetPosition(), UpdatePosition(), and Vector.

167 {
168  if ( !orders.empty() ) {
169  Vector finpos;
170  if ( UpdatePosition( finpos, Position(), orders.front().vec, orders.front().speed ) ) {
171  orders.pop_front();
172  }
173  SetPosition( finpos );
174  }
175 }

Member Data Documentation

float Briefing::Ship::cloak

Definition at line 42 of file briefing.h.

Referenced by Ship().


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