VR-Forces 4.7 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
hostilityManager.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2016 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 class DtlInputStream;
28 
35 {
36 public:
37  DtHostilityManager(DtSimManager* simManager);
38  virtual ~DtHostilityManager();
39 
40 private:
42 
44  DtHostilityManager& operator=(const DtHostilityManager& orig);
46 
47 protected:
49 
50 public:
54  virtual bool init();
55 
60  virtual void setDefaultHostility();
61 
65  virtual bool addForce(DtString forceName, DtVector forceColor, bool includeInDialogs, int forceType = -1);
66 
68  virtual bool removeForce(DtU8 force);
69 
71  virtual bool hasForceNamed(const DtString&) const;
72 
75  virtual int forceTypeForForceNamed(const DtString&) const;
76 
82  virtual void setHostility(DtU8 force, DtU8 targetForce, bool hostile);
83 
85  virtual bool hostile(DtU8 force, DtU8 targetForce) const;
86 
89  virtual void hostileForces(DtU8 force, std::list<DtU8>& forceList) const;
90  virtual void hostileForces(DtU8 force, std::set<DtU8>& forceList) const;
91 
94  virtual int forceHostileTo(DtU8 force) const;
95 
98  virtual void friendlyForces(DtU8 force, std::list<DtU8>& forceList) const;
99 
104 
105  virtual void addHostilityChangedCallback(DtHostitliyChangedCallbackFcn fcn, void* usr);
106  virtual void removeHostilityChangedCallback(DtHostitliyChangedCallbackFcn fcn, void* usr);
108 
110 
111  virtual void setName(DtU8 force, DtString forceName);
112  virtual DtString name(DtU8 force) const;
114 
116 
117  virtual void setIncludeInDialogs(DtU8 force, bool includeInDialogs);
118  virtual bool includeInDialogs(DtU8 force);
120 
122 
123  virtual void setColor(DtU8 force, DtVector forceColor);
124  virtual DtVector color(DtU8 force);
126 
128 
129  virtual void setForceIsUsed(DtU8 force, bool forceIsUsed);
130  virtual bool forceIsUsed(DtU8 force);
132 
134  virtual int numForces() const;
135 
137  virtual DtU8 nextAvailableForceId();
138 /*
141  virtual void writeHostilityFile(const DtString& filename);
142 */
146  virtual void getForceDescriptionList(DtRwForceDescriptionList& output);
147 
153  virtual bool readHostilityFile(const DtString& filename, bool clear = true);
154  virtual bool readHostilityFileFromZipFile(const DtFilename& scenarioZipFile, const DtString& filename, bool clear = true);
155 
157  virtual bool processHostilityFile(DtlInputStream*, bool clear);
158 
163  virtual void setDataFromDescriptionList(const DtRwForceDescriptionList& l, bool clear = true);
164 
166  virtual void sendHostilityMatrix();
167 
169  virtual void sendForces();
170 
171 protected:
172 
173 //****************************************************************************
175 //****************************************************************************
177  virtual void registerInterfaceMessageCallbacks();
178 
180 
181  static void requestHostilityMatrixCallback(DtSimMessage* msg, void* usr);
182  virtual void processRequestHostilityMatrix(DtSimMessage* msg);
184 
186 
187  static void requestForcesCallback(DtSimMessage* msg, void* usr);
188  virtual void processRequestForces(DtSimMessage* msg);
190 
192 
193  static void setHostilityMatrixCallback(DtSimMessage* msg, void* usr);
194  virtual void processSetHostilityMatrix(DtSimMessage* msg);
196 
198 
199  static void requestForceHostilityCallback(DtSimMessage* msg, void* usr);
200  virtual void processRequestForceHostility(DtSimMessage* msg);
202 
204 
205  static void setForceHostilityCallback(DtSimMessage* msg, void* usr);
206  virtual void processSetForceHostility(DtSimMessage* msg);
208 
209 //****************************************************************************
211 //****************************************************************************
212 
215  virtual void clearMatrix();
216 
217 //****************************************************************************
219 //****************************************************************************
220 
221  typedef std::vector<bool> DtBoolVector;
222  typedef std::vector<DtBoolVector> DtBoolVectorVector;
223  typedef std::vector<DtString> DtNameVector;
224  typedef std::vector<DtVector> DtVectorVector;
225 
226 //****************************************************************************
228 //****************************************************************************
229 
231 
236 
241 
243 };

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)