VR-Forces 4.7 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
diGuyController.h
Go to the documentation of this file.
1  /******************************************************************************
2 ** Copyright (c) 2013 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 "vrfobjcore/boolIOPort.h"
19 
21 
22 class DtSimManager;
23 class DtSimMessage;
25 class DtDiGuyAnimation;
30 class DtInputPortGroup;
31 class DtAnalogInputPort;
32 class DtBooleanInputPort;
33 class DtStringInputPort;
36 
38 {
46 };
47 
65  public DtBindableLuaComponent < DtDiGuyController >
66 {
67 
68 public:
69 
72  DtDiGuyController(const DtString& name,
73  DtVrfObject* owner,
74  DtSimManager* simManager,
75  DtComponentDescriptor* desc = 0,
76  DtReaderWriterRegistry* parentRegistry = 0);
77 
79  virtual ~DtDiGuyController();
80 
83  virtual const char* type() const;
84 
87  virtual bool init();
88 
94  virtual bool createPSR();
95 
99  virtual void preFirstTickInit();
100 
102  virtual void tick();
103 
107  virtual void taskedTick(DtTime & dT);
108 
111  virtual bool intrinsicOverride();
112 
116  virtual bool intrinsicTick(DtLifeformStaticPosture post,
117  double speed,DtWeaponState weapon, DtString & demeanor);
118 
120  virtual bool tickWhileDestroyed() const;
121 
124  virtual void setCurrentAnimation(DtDiGuyAnimation * animation,bool overridePosture = false);
125 
128  virtual void sendSetPosture(DtLifeformState post);
129 
131  static void setCharacteristicsCallback(DtSimMessage * msg, void * usr);
132  virtual void processSetCharacterCharacteristics(DtSimMessage* msg);
133 
135  static void setAppearanceCallback(DtSimMessage * msg, void * usr);
136  virtual void processSetCharacterAppearance(DtSimMessage* msg);
137 
139  static void setHandItemCallback(DtSimMessage * msg, void * usr);
140  virtual void processSetCharacterHandItem(DtSimMessage* msg);
141 
143  static void setHeadCallback(DtSimMessage * msg, void * usr);
144  virtual void processSetCharacterHead(DtSimMessage* msg);
145 
146  static void setRestoreCallback(DtSimMessage * msg, void * usrData);
147  virtual void processSetRestore(DtSimMessage * msg);
148 
149  static void animationTaskCallback(DtSimMessage * msg, void * usrData);
150  virtual void processAnimationTask(DtSimMessage * msg);
151 
154  virtual void clearTask();
155  virtual void taskComplete(bool success = true);
156  virtual void reset();
157 
159  virtual void updateAnimationState(DtLifeformStaticPosture post,
160  double speed,DtWeaponState weapon, const DtString & demeanor);
161 
163  virtual DtDiGuyDirectionType directionStringToEnum(const DtString & direction);
164 
168 
169 
171  bool isAnimationAvailable(const std::string& animation) const;
172 
174  bool isAppearanceAvailable(const std::string& appearance) const;
175 
177  bool isHandItemAvailable(const std::string& item) const;
178 
181  bool isHeadAvailable(const std::string& head) const;
182 
184  bool isGestureAvailable(const std::string& gesture) const;
185 
187 
190  virtual void bindLuaFunctions(lua_State* L);
191  virtual void bindLuaGlobals(lua_State* L);
192 
196  static DtSimComponent * creator(const DtString& name,
197  DtVrfObject* owner,
198  DtSimManager* simManager,
199  DtComponentDescriptor* desc = 0,
200  DtReaderWriterRegistry* parentRegistry = 0);
201 
202 protected:
203 
205  virtual void registerRadioMessageCallbacks();
206 
208  virtual void registerDiGuyTasks();
209 
212  virtual void determineInitialHandItem();
213 
214  virtual DtVector groundClamp(double heading, const DtVector& location) const;
215 
216 protected:
219 
221  DtDiGuyController(const DtDiGuyController & orig);
222 
225  orig);
226 
228  virtual bool createPortGroups();
229 
231  virtual bool createPorts();
232 
235  virtual bool createCollisionPort();
236  virtual bool createAimDirectionPort();
237  virtual bool createOrderedAnimationPort();
238 
239  virtual bool determineDemeanor(DtWeaponState weapon, DtLifeformStaticPosture post, DtString & demeanor);
240 
242  virtual void determineDirection();
243 
244  virtual DtString chooseRandomAppearance();
245 
247  virtual void updatePosition(const DtTime & dT,DtTaitBryan & localOrientation);
248 
249  virtual DtString selectDamageAnimation(const DtRwNLengthStringVector& animations);
250 
251 protected:
252 
255  std::vector<DtString> myStunnedAnimationList;
256  std::vector<DtString> myProneAnimationList;
257  std::vector<DtString> myDeadAnimationList;
258 
265  DtTaitBryan myTaskedOrientation;
266 
271 
283 
287 
295 
303 
309 
314 
318 
320 };

Document ID: Generated on Fri Apr 26 21:53:14 EDT 2019 from SVN revision 197883
Copyright © 2005-2019 VT MAK. All Rights Reserved (www.mak.com)