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
TurretBin Struct Reference

Public Member Functions

 TurretBin ()
 
bool operator< (const TurretBin &o) const
 
void AssignTargets (const TargetAndRange &finalChoice, const Matrix &pos)
 

Public Attributes

float maxrange
 
vector< RangeSortedTurretsturret
 
vector< TargetAndRangelistOfTargets [2]
 

Detailed Description

Definition at line 155 of file fire.cpp.

Constructor & Destructor Documentation

TurretBin::TurretBin ( )
inline

Definition at line 160 of file fire.cpp.

161  {
162  maxrange = 0;
163  }

Member Function Documentation

void TurretBin::AssignTargets ( const TargetAndRange finalChoice,
const Matrix pos 
)
inline

Definition at line 168 of file fire.cpp.

References CanFaceTarget(), f, ROLES::getPriority(), i, index, TargetAndRange::range, TargetAndRange::t, Unit::Target(), Unit::TargetTurret(), and Unit::unitRole().

169  {
170  //go through modularly assigning as you go;
171  int count = 0;
172  const unsigned int lotsize[2] = {listOfTargets[0].size(), listOfTargets[1].size()};
173  for (vector< RangeSortedTurrets >::iterator uniter = turret.begin(); uniter != turret.end(); ++uniter) {
174  bool foundfinal = false;
175  uniter->tur->Target( NULL );
176  uniter->tur->TargetTurret( NULL );
177  if (finalChoice.t) {
178  if (finalChoice.range < uniter->gunrange
179  && ROLES::getPriority( uniter->tur->attackPreference() )[finalChoice.t->unitRole()] < 31) {
180  if ( CanFaceTarget( uniter->tur, finalChoice.t, pos ) ) {
181  uniter->tur->Target( finalChoice.t );
182  uniter->tur->TargetTurret( finalChoice.t );
183  foundfinal = true;
184  }
185  }
186  }
187  if (!foundfinal) {
188  for (unsigned int f = 0; f < 2 && !foundfinal; f++) {
189  for (unsigned int i = 0; i < lotsize[f]; i++) {
190  const int index = (count+i)%lotsize[f];
191  if (listOfTargets[f][index].range < uniter->gunrange) {
192  if ( CanFaceTarget( uniter->tur, finalChoice.t, pos ) ) {
193  uniter->tur->Target( listOfTargets[f][index].t );
194  uniter->tur->TargetTurret( listOfTargets[f][index].t );
195  count++;
196  foundfinal = true;
197  break;
198  }
199  }
200  }
201  }
202  }
203  }
204  }
bool TurretBin::operator< ( const TurretBin o) const
inline

Definition at line 164 of file fire.cpp.

References maxrange.

165  {
166  return maxrange > o.maxrange;
167  }

Member Data Documentation

vector< TargetAndRange > TurretBin::listOfTargets[2]

Definition at line 159 of file fire.cpp.

float TurretBin::maxrange

Definition at line 157 of file fire.cpp.

Referenced by operator<().

vector< RangeSortedTurrets > TurretBin::turret

Definition at line 158 of file fire.cpp.


The documentation for this struct was generated from the following file: