VR-Forces Development_Version Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
targetSelectionController.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2012 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 
8 
11 
12 #pragma once
13 
16 #include "vlpi/disEnums.h"
17 #include <map>
18 #include <list>
20 #include "targetRankOperator.h"
21 
30 class DtSimMessage;
31 class DtVrfObjectMessage;
33 
34 typedef std::map<DtArtPartType, std::list<const DtWeaponComponentInterface*> > artPartWeaponMap;
35 
49 
77 {
78 private:
85  const DtTargetSelectionController& orig);
86 public:
87 
88  typedef std::list<DtWeaponComponentInterface*> DtWeaponInterfaceList;
89 
93  DtSimManager* simManager, DtComponentDescriptor* desc=0,
94  DtReaderWriterRegistry *parentRegistry=0);
95 
97  virtual ~DtTargetSelectionController();
98 
100  virtual bool init();
101 
104  virtual const char* type() const;
105 
107  virtual void registerTaskMsgCallbacks();
108 
111  virtual void updateWeaponInterfaceTaskState(DtWeaponComponentInterface* weapIf);
112 
116 
117  static void fireAtTargetTaskCallback(DtSimMessage* msg, void* usr);
118  virtual void processFireAtTargetTask(DtSimMessage* msg);
120 
123 
124  static void weaponListRequestCallback(const DtVrfObjectMessage* msg, void* usr);
125  virtual void processWeaponListRequest(const DtVrfObjectMessage* msg);
127 
129 
130  static void fireNowCallback(DtSimMessage* msg, void* usr);
131  virtual void processFireNow(DtSimMessage* msg);
133 
135  virtual void taskComplete(bool success = true);
136 
138  virtual bool postAddComponentsInit();
139 
142  virtual void preFirstTickInit();
143 
149  virtual void tick();
150 
154  static DtSimComponent* creator(const DtString& name,
155  DtVrfObject* owner,
156  DtSimManager* simManager,
157  DtComponentDescriptor* desc = 0,
158  DtReaderWriterRegistry* parentRegistry = 0);
159 
160 protected:
161  typedef std::set<DtRwSensorContactInfo*, DtTargetRankOperatorWrapper> DtOrderedTargetSet;
162 
164  virtual bool createPorts();
165 
169  virtual bool createOutputPorts();
170 
176  virtual bool createPSR();
177 
179  virtual void registerRadioMessageCallbacks();
180 
182  static void setTargetCallback(DtSimMessage* msg, void* usr);
183 
186  virtual void processSetTarget(DtSimMessage* msg);
187 
196  virtual void selectTargets();
197 
200  virtual bool targetForce(DtForceType force) const;
201 
205  virtual bool validTarget(const DtRwSensorContactInfo& contactInfo,
206  const DtWeaponComponentInterface& weapIf) const;
207 
210  virtual DtEntityTargetInformation targetInfoFromContactInfo(
211  const DtRwSensorContactInfo& contactInfo) const;
212 
215  virtual void updateRegionEvaluators();
216 
220  virtual DtTargetRankOperator* createTargetRankOperator(
221  const DtTargetSelectionCriteria& criteria) const;
222 
225  virtual void setupDetectableForces(DtForceType);
226 
229 
230  static void hostilitiesChangedCallback(DtU8 force, void* usr);
231  virtual void processHostilitiesChanged(DtU8 force);
233 
235  virtual void clearTargets();
236 
238  virtual bool isSurrenderedLifeform(const DtVrfObject* entity) const;
239 
240  virtual bool findFusedTargets(const DtSensorContactInfoList* contactList,
241  const DtWeaponComponentInterface& weapIf, DtRwSensorContactInfo& userTargetInfo,
242  DtOrderedTargetSet & orderedTargets);
243  virtual void setTargetsToWeaponInterface(DtWeaponComponentInterface& weapIf, DtRwSensorContactInfo& userTargetInfo, DtOrderedTargetSet& orderedTargets);
244 
247  virtual void findWeaponControlInterfaces();
248 
253  virtual bool permissionToFire() const;
254 
256  virtual bool suppressed() const;
257 
264  virtual bool allowedToFire() const;
265 
269  virtual bool haveCommonMount(DtWeaponComponentInterface *weapon1,
270  DtWeaponComponentInterface *weapon2) const;
271 
275  virtual int nextPriorityValue();
277  virtual void setNextPriorityValue(const int val);
279 
283  virtual const artPartWeaponMap & articulatedPartWeapons() const;
284  virtual void addArtPartWeaponToMap(const DtArtPartType part,
285  const DtWeaponComponentInterface* weaponInterface);
286  virtual void setArticulatedPartWeapons(
287  const artPartWeaponMap &artPartMap);
289 
309  virtual bool yieldsFiringPrecedenceTo(
311  bool weapon1IsBeingTasked,
312  DtWeaponComponentInterface* weapon2);
313 
316  virtual bool tokenConflict(
318  DtWeaponComponentInterface* weapon2);
319 
324  virtual bool artPartConflict(
327  DtArtPartType* conflictingPart);
328 
347  virtual bool otherWeaponBlocksWeapon(
348  DtWeaponComponentInterface* weapon, bool weaponIsBeingTasked,
349  DtWeaponComponentInterface** conflictingWeapon,
350  bool* controlExternalTurret);
351 
359  virtual void clearLowerPriorityWeaponTargets(
361 
362 protected:
363 
371 
379 
383 
385 
387  DtForceType myForce;
388 
393 
397 
401 
410 
411  //---------------------------------
415 
416 };

Document ID: Generated on Tue Mar 8 22:13:38 EST 2016 from SVN revision 162938
Copyright © 2005-2015 VT MÄK. All Rights Reserved (www.mak.com)