VR-Forces Development_Version Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
ballisticGunController.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 
15 #include "vrfutil/simClock.h"
16 #include <vl/hostStructs.h>
17 #include "vrfutil/simMunition.h"
18 #include <vlpi/disEnums.h>
20 
23 class DtIntegerInputPort;
25 class DtVrfBalGunPSR;
26 class DtOutputPortGroup;
27 class DtBooleanInputPort;
30 
46 {
47 
48 public:
49 
53  DtVrfObject* owner,
54  DtSimManager* simManager,
55  DtComponentDescriptor* desc = 0,
56  DtReaderWriterRegistry* parentRegistry = 0);
57 
59  virtual ~DtBallisticGunController();
60 
64  virtual bool postAddComponentsInit();
65 
68  virtual const char* type() const;
69 
71  virtual bool init();
72 
76  virtual void preFirstTickInit();
77 
79  virtual void tick();
80 
83  virtual bool createTriggerPort();
84  virtual DtBooleanOutputPort * triggerPort() const;
85 
86  virtual bool createQuantityOutputPort();
87  virtual DtIntegerOutputPort* quantityOutputPort() const;
88 
89  virtual bool createLoadedPort();
90  virtual DtBooleanOutputPort * loadedPort() const;
91 
92  virtual bool createLosOutputPort();
93  virtual DtIntegerOutputPort * losOutputPort() const;
94 
95  virtual bool createLosInputPort();
96  virtual DtIntegerInputPort * losInputPort() const;
97 
98  virtual bool createWeaponsHoldInputPort();
99 
100  virtual bool createTargetToAcquireOutputPort();
101 
102  virtual void setLoadAmmoTime(DtTime loadAmmoTime);
103  virtual DtTime loadAmmoTime() const;
104 
105  virtual void setUnloadAmmoTime(DtTime unloadAmmoTime);
106  virtual DtTime unloadAmmoTime() const;
107 
111  virtual void fire();
112 
120  virtual bool chooseAmmo(const DtEntityType& targetType,
121  const DtUUID& target, DtSimMunition&
122  munition, DtDetonatorFuze& fuze, int& ammoAvailable);
123 
125  virtual void initProcessSR();
126 
130  static DtSimComponent * creator(const DtString& name,
131  DtVrfObject* owner,
132  DtSimManager* simManager,
133  DtComponentDescriptor* desc = 0,
134  DtReaderWriterRegistry* parentRegistry = 0);
135 
136 protected:
137 
139  virtual bool createPorts();
140 
142  virtual bool createPortGroups();
143 
151  virtual void lookupAndCacheProcessSR();
152 
156  static DtReaderWriter* roundsPerTriggerPullCallback(void* ctrlr);
157  virtual DtReaderWriter* provideRoundsPerTriggerPull();
159 
162  virtual DtIntegerResource * lookupMunitionResource(const DtString &
163  resource) const;
164 
166  void getMunitionResources(std::list<DtString>& resourceList);
167 
169  virtual void updateResourceList();
170 
173  virtual bool weaponsHoldState();
174 
178  static void setResourceCallback(DtSimMessage * msg, void * usrData);
179  virtual void processSetResource(DtSimMessage * msg);
181 
185  static void setRestoreCallback(DtSimMessage * msg, void * usrData);
186  virtual void processSetRestore(DtSimMessage * msg);
188 
189 protected:
192 
195 
198  orig);
199 
200 protected:
201 
204 
212 
219 
227 
234 
242 
246 
254 
255 
261 
265 
268  DtDetonatorFuze myCurrentFuze;
269 
272 
279 
282 
287 
290 
294 };

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)