VR-Forces Development_Version Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
hostilityManager.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2013 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 
8 
10 
11 #pragma once
12 
15 #include <vlutil/vlMachineTypes.h>
16 #include <vlutil/vlString.h>
17 #include <vector>
18 #include <list>
19 #include <set>
22 #include <matrix/vlVector.h>
23 
24 //forward defs
25 class DtSimManager;
26 class DtSimMessage;
27 
34 {
35 public:
36  DtHostilityManager(DtSimManager* simManager);
37  virtual ~DtHostilityManager();
38 
39 private:
41 
43  DtHostilityManager& operator=(const DtHostilityManager& orig);
45 
46 protected:
48 
49 public:
53  virtual bool init();
54 
59  virtual void setDefaultHostility();
60 
64  virtual bool addForce(DtString forceName, DtVector forceColor, bool includeInDialogs, int forceType = -1);
65 
67  virtual bool removeForce(DtU8 force);
68 
70  virtual bool hasForceNamed(const DtString&) const;
71 
74  virtual int forceTypeForForceNamed(const DtString&) const;
75 
81  virtual void setHostility(DtU8 force, DtU8 targetForce, bool hostile);
82 
84  virtual bool hostile(DtU8 force, DtU8 targetForce) const;
85 
88  virtual void hostileForces(DtU8 force, std::list<DtU8>& forceList) const;
89  virtual void hostileForces(DtU8 force, std::set<DtU8>& forceList) const;
90 
93  virtual void friendlyForces(DtU8 force, std::list<DtU8>& forceList) const;
94 
99 
100  virtual void addHostilityChangedCallback(DtHostitliyChangedCallbackFcn fcn, void* usr);
101  virtual void removeHostilityChangedCallback(DtHostitliyChangedCallbackFcn fcn, void* usr);
103 
105 
106  virtual void setName(DtU8 force, DtString forceName);
107  virtual DtString name(DtU8 force) const;
109 
111 
112  virtual void setIncludeInDialogs(DtU8 force, bool includeInDialogs);
113  virtual bool includeInDialogs(DtU8 force);
115 
117 
118  virtual void setColor(DtU8 force, DtVector forceColor);
119  virtual DtVector color(DtU8 force);
121 
123 
124  virtual void setForceIsUsed(DtU8 force, bool forceIsUsed);
125  virtual bool forceIsUsed(DtU8 force);
127 
129  virtual int numForces() const;
130 
132  virtual DtU8 nextAvailableForceId();
133 /*
136  virtual void writeHostilityFile(const DtString& filename);
137 */
141  virtual const DtRwForceDescriptionList& forceDescriptionList();
142 
148  virtual bool readHostilityFile(const DtString& filename, bool clear = true);
149 
154  virtual void setDataFromDescriptionList(const DtRwForceDescriptionList& l, bool clear = true);
155 
157  virtual void sendHostilityMatrix();
158 
160  virtual void sendForces();
161 
162 protected:
163 
164 //****************************************************************************
166 //****************************************************************************
168  virtual void registerInterfaceMessageCallbacks();
169 
171 
172  static void requestHostilityMatrixCallback(DtSimMessage* msg, void* usr);
173  virtual void processRequestHostilityMatrix(DtSimMessage* msg);
175 
177 
178  static void requestForcesCallback(DtSimMessage* msg, void* usr);
179  virtual void processRequestForces(DtSimMessage* msg);
181 
183 
184  static void setHostilityMatrixCallback(DtSimMessage* msg, void* usr);
185  virtual void processSetHostilityMatrix(DtSimMessage* msg);
187 
189 
190  static void requestForceHostilityCallback(DtSimMessage* msg, void* usr);
191  virtual void processRequestForceHostility(DtSimMessage* msg);
193 
195 
196  static void setForceHostilityCallback(DtSimMessage* msg, void* usr);
197  virtual void processSetForceHostility(DtSimMessage* msg);
199 
200 //****************************************************************************
202 //****************************************************************************
203 
206  virtual void clearMatrix();
207 
208 //****************************************************************************
210 //****************************************************************************
211 
212  typedef std::vector<bool> DtBoolVector;
213  typedef std::vector<DtBoolVector> DtBoolVectorVector;
214  typedef std::vector<DtString> DtNameVector;
215  typedef std::vector<DtVector> DtVectorVector;
216 
217 //****************************************************************************
219 //****************************************************************************
220 
222 
227 
232 
237 
239 };

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)